aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Documentation/ABI/testing/debugfs-pktcdvd6
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-acpi8
-rw-r--r--Documentation/DocBook/Makefile5
-rw-r--r--Documentation/DocBook/kernel-api.tmpl6
-rw-r--r--Documentation/DocBook/kgdb.tmpl2
-rw-r--r--Documentation/block/biodoc.txt19
-rw-r--r--Documentation/cgroups/memory.txt55
-rw-r--r--Documentation/cgroups/resource_counter.txt27
-rw-r--r--Documentation/driver-model/platform.txt59
-rw-r--r--Documentation/filesystems/Locking24
-rw-r--r--Documentation/filesystems/caching/cachefiles.txt8
-rw-r--r--Documentation/filesystems/pohmelfs/design_notes.txt5
-rw-r--r--Documentation/filesystems/pohmelfs/info.txt21
-rw-r--r--Documentation/filesystems/vfs.txt3
-rw-r--r--Documentation/input/bcm5974.txt65
-rw-r--r--Documentation/input/multi-touch-protocol.txt140
-rw-r--r--Documentation/kbuild/makefiles.txt10
-rw-r--r--Documentation/kernel-doc-nano-HOWTO.txt7
-rw-r--r--Documentation/kernel-parameters.txt92
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt4
-rw-r--r--Documentation/lguest/.gitignore1
-rw-r--r--Documentation/lguest/lguest.txt11
-rw-r--r--Documentation/lockdep-design.txt6
-rw-r--r--Documentation/logo.gifbin0 -> 16335 bytes
-rw-r--r--Documentation/logo.svg2911
-rw-r--r--Documentation/logo.txt15
-rw-r--r--Documentation/networking/ip-sysctl.txt15
-rw-r--r--Documentation/powerpc/booting-without-of.txt89
-rw-r--r--Documentation/powerpc/dts-bindings/fsl/i2c.txt46
-rw-r--r--Documentation/powerpc/dts-bindings/mtd-physmap.txt80
-rw-r--r--Documentation/sound/alsa/HD-Audio.txt4
-rw-r--r--Documentation/spi/spi-summary6
-rw-r--r--Documentation/sysctl/net.txt2
-rw-r--r--Documentation/sysctl/vm.txt32
-rw-r--r--Documentation/sysfs-rules.txt2
-rw-r--r--Documentation/tomoyo.txt55
-rw-r--r--Documentation/vm/00-INDEX2
-rw-r--r--Documentation/vm/active_mm.txt83
-rw-r--r--Documentation/vm/unevictable-lru.txt1041
-rw-r--r--MAINTAINERS166
-rw-r--r--Makefile19
-rw-r--r--arch/alpha/include/asm/barrier.h2
-rw-r--r--arch/alpha/include/asm/futex.h118
-rw-r--r--arch/alpha/include/asm/percpu.h26
-rw-r--r--arch/alpha/include/asm/uaccess.h2
-rw-r--r--arch/alpha/kernel/Makefile6
-rw-r--r--arch/alpha/kernel/binfmt_loader.c2
-rw-r--r--arch/alpha/kernel/err_ev6.c2
-rw-r--r--arch/alpha/kernel/err_ev7.c4
-rw-r--r--arch/alpha/kernel/err_impl.h10
-rw-r--r--arch/alpha/kernel/err_marvel.c2
-rw-r--r--arch/alpha/kernel/err_titan.c4
-rw-r--r--arch/alpha/kernel/head.S3
-rw-r--r--arch/alpha/kernel/proto.h5
-rw-r--r--arch/alpha/kernel/vmlinux.lds.S2
-rw-r--r--arch/alpha/mm/extable.c40
-rw-r--r--arch/arm/Kconfig61
-rw-r--r--arch/arm/common/vic.c9
-rw-r--r--arch/arm/configs/davinci_all_defconfig1784
-rw-r--r--arch/arm/configs/imx27ads_defconfig826
-rw-r--r--arch/arm/configs/kirkwood_defconfig92
-rw-r--r--arch/arm/configs/mv78xx0_defconfig429
-rw-r--r--arch/arm/configs/mx1_defconfig (renamed from arch/arm/configs/mx31ads_defconfig)536
-rw-r--r--arch/arm/configs/mx27_defconfig (renamed from arch/arm/configs/pcm038_defconfig)354
-rw-r--r--arch/arm/configs/mx31moboard_defconfig790
-rw-r--r--arch/arm/configs/mx3_defconfig (renamed from arch/arm/configs/mx31litekit_defconfig)781
-rw-r--r--arch/arm/configs/orion5x_defconfig363
-rw-r--r--arch/arm/configs/s3c2410_defconfig1112
-rw-r--r--arch/arm/configs/viper_defconfig1
-rw-r--r--arch/arm/include/asm/elf.h16
-rw-r--r--arch/arm/include/asm/tlb.h25
-rw-r--r--arch/arm/include/asm/unistd.h2
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/module.c15
-rw-r--r--arch/arm/kernel/sys_oabi-compat.c20
-rw-r--r--arch/arm/mach-at91/at91rm9200_time.c2
-rw-r--r--arch/arm/mach-at91/at91sam926x_time.c2
-rw-r--r--arch/arm/mach-davinci/Kconfig47
-rw-r--r--arch/arm/mach-davinci/Makefile9
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c (renamed from arch/arm/mach-davinci/board-evm.c)318
-rw-r--r--arch/arm/mach-davinci/clock.c385
-rw-r--r--arch/arm/mach-davinci/clock.h87
-rw-r--r--arch/arm/mach-davinci/devices.c7
-rw-r--r--arch/arm/mach-davinci/dm644x.c461
-rw-r--r--arch/arm/mach-davinci/dma.c1135
-rw-r--r--arch/arm/mach-davinci/gpio.c82
-rw-r--r--arch/arm/mach-davinci/id.c35
-rw-r--r--arch/arm/mach-davinci/include/mach/asp.h25
-rw-r--r--arch/arm/mach-davinci/include/mach/board-dm6446evm.h20
-rw-r--r--arch/arm/mach-davinci/include/mach/clkdev.h13
-rw-r--r--arch/arm/mach-davinci/include/mach/clock.h1
-rw-r--r--arch/arm/mach-davinci/include/mach/common.h6
-rw-r--r--arch/arm/mach-davinci/include/mach/cputype.h49
-rw-r--r--arch/arm/mach-davinci/include/mach/dm644x.h37
-rw-r--r--arch/arm/mach-davinci/include/mach/edma.h228
-rw-r--r--arch/arm/mach-davinci/include/mach/gpio.h27
-rw-r--r--arch/arm/mach-davinci/include/mach/hardware.h51
-rw-r--r--arch/arm/mach-davinci/include/mach/io.h20
-rw-r--r--arch/arm/mach-davinci/include/mach/irqs.h103
-rw-r--r--arch/arm/mach-davinci/include/mach/mux.h220
-rw-r--r--arch/arm/mach-davinci/include/mach/psc.h53
-rw-r--r--arch/arm/mach-davinci/include/mach/serial.h21
-rw-r--r--arch/arm/mach-davinci/io.c23
-rw-r--r--arch/arm/mach-davinci/irq.c156
-rw-r--r--arch/arm/mach-davinci/mux.c100
-rw-r--r--arch/arm/mach-davinci/mux.h51
-rw-r--r--arch/arm/mach-davinci/psc.c98
-rw-r--r--arch/arm/mach-davinci/serial.c95
-rw-r--r--arch/arm/mach-davinci/time.c105
-rw-r--r--arch/arm/mach-davinci/usb.c2
-rw-r--r--arch/arm/mach-ep93xx/core.c2
-rw-r--r--arch/arm/mach-imx/include/mach/gpio.h1
-rw-r--r--arch/arm/mach-imx/time.c2
-rw-r--r--arch/arm/mach-ixp4xx/common.c2
-rw-r--r--arch/arm/mach-ixp4xx/ixp4xx_npe.c2
-rw-r--r--arch/arm/mach-kirkwood/common.c1
-rw-r--r--arch/arm/mach-kirkwood/include/mach/bridge-regs.h42
-rw-r--r--arch/arm/mach-kirkwood/include/mach/debug-macro.S2
-rw-r--r--arch/arm/mach-kirkwood/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-kirkwood/include/mach/kirkwood.h53
-rw-r--r--arch/arm/mach-kirkwood/include/mach/system.h3
-rw-r--r--arch/arm/mach-kirkwood/irq.c1
-rw-r--r--arch/arm/mach-loki/addr-map.c1
-rw-r--r--arch/arm/mach-loki/include/mach/bridge-regs.h33
-rw-r--r--arch/arm/mach-loki/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-loki/include/mach/loki.h14
-rw-r--r--arch/arm/mach-loki/include/mach/system.h3
-rw-r--r--arch/arm/mach-loki/irq.c1
-rw-r--r--arch/arm/mach-msm/timer.c4
-rw-r--r--arch/arm/mach-mv78xx0/common.c1
-rw-r--r--arch/arm/mach-mv78xx0/include/mach/bridge-regs.h39
-rw-r--r--arch/arm/mach-mv78xx0/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-mv78xx0/include/mach/mv78xx0.h42
-rw-r--r--arch/arm/mach-mv78xx0/include/mach/system.h3
-rw-r--r--arch/arm/mach-mv78xx0/irq.c2
-rw-r--r--arch/arm/mach-mx1/mx1ads.c6
-rw-r--r--arch/arm/mach-mx2/clock_imx21.c8
-rw-r--r--arch/arm/mach-mx3/Kconfig2
-rw-r--r--arch/arm/mach-mx3/mx31ads.c4
-rw-r--r--arch/arm/mach-mx3/pcm037.c4
-rw-r--r--arch/arm/mach-mx3/qong.c28
-rw-r--r--arch/arm/mach-netx/time.c2
-rw-r--r--arch/arm/mach-ns9xxx/time-ns9360.c2
-rw-r--r--arch/arm/mach-omap1/board-h2-mmc.c14
-rw-r--r--arch/arm/mach-omap1/board-h3-mmc.c6
-rw-r--r--arch/arm/mach-omap1/board-h3.c101
-rw-r--r--arch/arm/mach-omap1/board-nokia770.c6
-rw-r--r--arch/arm/mach-omap1/mcbsp.c4
-rw-r--r--arch/arm/mach-omap1/time.c2
-rw-r--r--arch/arm/mach-omap2/board-h4.c95
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c4
-rw-r--r--arch/arm/mach-omap2/board-rx51.c1
-rw-r--r--arch/arm/mach-omap2/clock24xx.c19
-rw-r--r--arch/arm/mach-omap2/clock24xx.h10
-rw-r--r--arch/arm/mach-omap2/clock34xx.h7
-rw-r--r--arch/arm/mach-omap2/devices.c33
-rw-r--r--arch/arm/mach-omap2/irq.c4
-rw-r--r--arch/arm/mach-omap2/timer-gp.c50
-rw-r--r--arch/arm/mach-omap2/usb-musb.c8
-rw-r--r--arch/arm/mach-omap2/usb-tusb6010.c2
-rw-r--r--arch/arm/mach-orion5x/addr-map.c2
-rw-r--r--arch/arm/mach-orion5x/include/mach/bridge-regs.h41
-rw-r--r--arch/arm/mach-orion5x/include/mach/entry-macro.S2
-rw-r--r--arch/arm/mach-orion5x/include/mach/orion5x.h68
-rw-r--r--arch/arm/mach-orion5x/include/mach/system.h3
-rw-r--r--arch/arm/mach-orion5x/irq.c2
-rw-r--r--arch/arm/mach-orion5x/mss2-setup.c1
-rw-r--r--arch/arm/mach-orion5x/pci.c1
-rw-r--r--arch/arm/mach-pxa/Kconfig4
-rw-r--r--arch/arm/mach-pxa/corgi.c10
-rw-r--r--arch/arm/mach-pxa/em-x270.c6
-rw-r--r--arch/arm/mach-pxa/generic.h3
-rw-r--r--arch/arm/mach-pxa/include/mach/audio.h10
-rw-r--r--arch/arm/mach-pxa/include/mach/colibri.h4
-rw-r--r--arch/arm/mach-pxa/include/mach/palmasoc.h7
-rw-r--r--arch/arm/mach-pxa/include/mach/palmt5.h1
-rw-r--r--arch/arm/mach-pxa/include/mach/palmtx.h1
-rw-r--r--arch/arm/mach-pxa/littleton.c9
-rw-r--r--arch/arm/mach-pxa/mioa701.c6
-rw-r--r--arch/arm/mach-pxa/palmld.c18
-rw-r--r--arch/arm/mach-pxa/palmt5.c29
-rw-r--r--arch/arm/mach-pxa/palmtx.c34
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c6
-rw-r--r--arch/arm/mach-pxa/spitz.c10
-rw-r--r--arch/arm/mach-pxa/time.c2
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa300.c5
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa320.c1
-rw-r--r--arch/arm/mach-realview/core.c2
-rw-r--r--arch/arm/mach-s3c2412/mach-jive.c5
-rw-r--r--arch/arm/mach-s3c2412/pm.c3
-rw-r--r--arch/arm/mach-s3c2440/mach-anubis.c2
-rw-r--r--arch/arm/mach-s3c2440/mach-osiris.c1
-rw-r--r--arch/arm/mach-s3c6400/include/mach/map.h2
-rw-r--r--arch/arm/mach-s3c6410/mach-smdk6410.c4
-rw-r--r--arch/arm/mach-sa1100/lart.c1
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mm/cache-v6.S33
-rw-r--r--arch/arm/mm/flush.c23
-rw-r--r--arch/arm/mm/proc-v6.S3
-rw-r--r--arch/arm/mm/proc-v7.S22
-rw-r--r--arch/arm/mm/tlb-v6.S3
-rw-r--r--arch/arm/mm/tlb-v7.S3
-rw-r--r--arch/arm/plat-mxc/dma-mx1-mx2.c17
-rw-r--r--arch/arm/plat-mxc/gpio.c2
-rw-r--r--arch/arm/plat-mxc/include/mach/board-mx27ads.h2
-rw-r--r--arch/arm/plat-mxc/include/mach/imx-uart.h2
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mx3.h48
-rw-r--r--arch/arm/plat-mxc/include/mach/irqs.h2
-rw-r--r--arch/arm/plat-mxc/include/mach/mx21.h3
-rw-r--r--arch/arm/plat-mxc/irq.c14
-rw-r--r--arch/arm/plat-mxc/time.c2
-rw-r--r--arch/arm/plat-omap/clock.c7
-rw-r--r--arch/arm/plat-omap/common.c4
-rw-r--r--arch/arm/plat-omap/dma.c13
-rw-r--r--arch/arm/plat-omap/dmtimer.c28
-rw-r--r--arch/arm/plat-omap/gpio.c20
-rw-r--r--arch/arm/plat-omap/include/mach/dmtimer.h2
-rw-r--r--arch/arm/plat-omap/include/mach/eac.h100
-rw-r--r--arch/arm/plat-omap/include/mach/gpioexpander.h35
-rw-r--r--arch/arm/plat-omap/include/mach/irda.h4
-rw-r--r--arch/arm/plat-omap/include/mach/mmc.h1
-rw-r--r--arch/arm/plat-omap/include/mach/timer-gp.h17
-rw-r--r--arch/arm/plat-orion/time.c4
-rw-r--r--arch/arm/plat-pxa/gpio.c23
-rw-r--r--arch/arm/plat-s3c/gpio-config.c3
-rw-r--r--arch/arm/plat-s3c/include/plat/devs.h1
-rw-r--r--arch/arm/plat-s3c24xx/adc.c19
-rw-r--r--arch/arm/plat-s3c24xx/gpiolib.c2
-rw-r--r--arch/avr32/Makefile2
-rw-r--r--arch/avr32/kernel/time.c2
-rw-r--r--arch/blackfin/kernel/time-ts.c12
-rw-r--r--arch/cris/Makefile14
-rw-r--r--arch/cris/arch-v10/boot/compressed/README25
-rw-r--r--arch/cris/arch-v10/boot/compressed/misc.c246
-rw-r--r--arch/cris/arch-v10/kernel/entry.S14
-rw-r--r--arch/cris/arch-v32/boot/Makefile20
-rw-r--r--arch/cris/arch-v32/boot/compressed/Makefile26
-rw-r--r--arch/cris/arch-v32/boot/rescue/Makefile26
-rw-r--r--arch/cris/arch-v32/drivers/mach-a3/gpio.c4
-rw-r--r--arch/cris/arch-v32/kernel/Makefile2
-rw-r--r--arch/cris/arch-v32/kernel/entry.S8
-rw-r--r--arch/cris/boot/.gitignore (renamed from arch/cris/arch-v10/boot/.gitignore)0
-rw-r--r--arch/cris/boot/Makefile (renamed from arch/cris/arch-v10/boot/Makefile)8
-rw-r--r--arch/cris/boot/compressed/Makefile (renamed from arch/cris/arch-v10/boot/compressed/Makefile)19
-rw-r--r--arch/cris/boot/compressed/README (renamed from arch/cris/arch-v32/boot/compressed/README)0
-rw-r--r--arch/cris/boot/compressed/decompress_v10.lds (renamed from arch/cris/arch-v10/boot/compressed/decompress.lds)0
-rw-r--r--arch/cris/boot/compressed/decompress_v32.lds (renamed from arch/cris/arch-v32/boot/compressed/decompress.lds)0
-rw-r--r--arch/cris/boot/compressed/head_v10.S (renamed from arch/cris/arch-v10/boot/compressed/head.S)4
-rw-r--r--arch/cris/boot/compressed/head_v32.S (renamed from arch/cris/arch-v32/boot/compressed/head.S)10
-rw-r--r--arch/cris/boot/compressed/misc.c (renamed from arch/cris/arch-v32/boot/compressed/misc.c)193
-rw-r--r--arch/cris/boot/rescue/Makefile (renamed from arch/cris/arch-v10/boot/rescue/Makefile)22
-rw-r--r--arch/cris/boot/rescue/head_v10.S (renamed from arch/cris/arch-v10/boot/rescue/head.S)2
-rw-r--r--arch/cris/boot/rescue/head_v32.S (renamed from arch/cris/arch-v32/boot/rescue/head.S)0
-rw-r--r--arch/cris/boot/rescue/kimagerescue.S (renamed from arch/cris/arch-v10/boot/rescue/kimagerescue.S)0
-rw-r--r--arch/cris/boot/rescue/rescue_v10.lds (renamed from arch/cris/arch-v10/boot/rescue/rescue.lds)0
-rw-r--r--arch/cris/boot/rescue/rescue_v32.lds (renamed from arch/cris/arch-v32/boot/rescue/rescue.lds)0
-rw-r--r--arch/cris/boot/rescue/testrescue.S (renamed from arch/cris/arch-v10/boot/rescue/testrescue.S)0
-rw-r--r--arch/cris/boot/tools/build.c (renamed from arch/cris/arch-v10/boot/tools/build.c)0
-rw-r--r--arch/cris/include/asm/unistd.h12
-rw-r--r--arch/frv/include/asm/bug.h5
-rw-r--r--arch/frv/include/asm/init.h12
-rw-r--r--arch/frv/include/asm/unistd.h4
-rw-r--r--arch/frv/kernel/entry.S2
-rw-r--r--arch/frv/kernel/head-mmu-fr451.S3
-rw-r--r--arch/frv/kernel/head-uc-fr401.S3
-rw-r--r--arch/frv/kernel/head-uc-fr451.S3
-rw-r--r--arch/frv/kernel/head-uc-fr555.S3
-rw-r--r--arch/frv/kernel/head.S3
-rw-r--r--arch/frv/kernel/setup.c1
-rw-r--r--arch/frv/kernel/vmlinux.lds.S2
-rw-r--r--arch/frv/mb93090-mb00/pci-vdk.c63
-rw-r--r--arch/h8300/include/asm/timer.h (renamed from include/asm-h8300/timer.h)0
-rw-r--r--arch/ia64/include/asm/idle.h7
-rw-r--r--arch/ia64/include/asm/paravirt_privop.h2
-rw-r--r--arch/ia64/include/asm/smp.h2
-rw-r--r--arch/ia64/include/asm/xen/events.h7
-rw-r--r--arch/ia64/kernel/cyclone.c2
-rw-r--r--arch/ia64/kernel/pci-swiotlb.c2
-rw-r--r--arch/ia64/kernel/smp.c14
-rw-r--r--arch/ia64/kernel/time.c4
-rw-r--r--arch/ia64/kvm/kvm-ia64.c14
-rw-r--r--arch/ia64/sn/kernel/sn2/timer.c2
-rw-r--r--arch/ia64/xen/xensetup.S2
-rw-r--r--arch/m32r/boot/compressed/Makefile1
-rw-r--r--arch/m32r/include/asm/Kbuild (renamed from include/asm-m32r/Kbuild)0
-rw-r--r--arch/m32r/include/asm/addrspace.h (renamed from include/asm-m32r/addrspace.h)0
-rw-r--r--arch/m32r/include/asm/assembler.h (renamed from include/asm-m32r/assembler.h)7
-rw-r--r--arch/m32r/include/asm/atomic.h (renamed from include/asm-m32r/atomic.h)0
-rw-r--r--arch/m32r/include/asm/auxvec.h (renamed from include/asm-m32r/auxvec.h)0
-rw-r--r--arch/m32r/include/asm/bitops.h (renamed from include/asm-m32r/bitops.h)0
-rw-r--r--arch/m32r/include/asm/bug.h (renamed from include/asm-m32r/bug.h)0
-rw-r--r--arch/m32r/include/asm/bugs.h (renamed from include/asm-m32r/bugs.h)0
-rw-r--r--arch/m32r/include/asm/byteorder.h (renamed from include/asm-m32r/byteorder.h)0
-rw-r--r--arch/m32r/include/asm/cache.h (renamed from include/asm-m32r/cache.h)0
-rw-r--r--arch/m32r/include/asm/cachectl.h (renamed from include/asm-m32r/cachectl.h)0
-rw-r--r--arch/m32r/include/asm/cacheflush.h (renamed from include/asm-m32r/cacheflush.h)0
-rw-r--r--arch/m32r/include/asm/checksum.h (renamed from include/asm-m32r/checksum.h)0
-rw-r--r--arch/m32r/include/asm/cputime.h (renamed from include/asm-m32r/cputime.h)0
-rw-r--r--arch/m32r/include/asm/current.h (renamed from include/asm-m32r/current.h)0
-rw-r--r--arch/m32r/include/asm/delay.h (renamed from include/asm-m32r/delay.h)0
-rw-r--r--arch/m32r/include/asm/device.h (renamed from include/asm-m32r/device.h)0
-rw-r--r--arch/m32r/include/asm/div64.h (renamed from include/asm-m32r/div64.h)0
-rw-r--r--arch/m32r/include/asm/dma.h (renamed from include/asm-m32r/dma.h)0
-rw-r--r--arch/m32r/include/asm/elf.h (renamed from include/asm-m32r/elf.h)0
-rw-r--r--arch/m32r/include/asm/emergency-restart.h (renamed from include/asm-m32r/emergency-restart.h)0
-rw-r--r--arch/m32r/include/asm/errno.h (renamed from include/asm-m32r/errno.h)0
-rw-r--r--arch/m32r/include/asm/fb.h (renamed from include/asm-m32r/fb.h)0
-rw-r--r--arch/m32r/include/asm/fcntl.h (renamed from include/asm-m32r/fcntl.h)0
-rw-r--r--arch/m32r/include/asm/flat.h (renamed from include/asm-m32r/flat.h)0
-rw-r--r--arch/m32r/include/asm/ftrace.h (renamed from include/asm-m32r/ftrace.h)0
-rw-r--r--arch/m32r/include/asm/futex.h (renamed from include/asm-m32r/futex.h)0
-rw-r--r--arch/m32r/include/asm/hardirq.h (renamed from include/asm-m32r/hardirq.h)0
-rw-r--r--arch/m32r/include/asm/hw_irq.h (renamed from include/asm-m32r/hw_irq.h)0
-rw-r--r--arch/m32r/include/asm/io.h (renamed from include/asm-m32r/io.h)0
-rw-r--r--arch/m32r/include/asm/ioctl.h (renamed from include/asm-m32r/ioctl.h)0
-rw-r--r--arch/m32r/include/asm/ioctls.h (renamed from include/asm-m32r/ioctls.h)0
-rw-r--r--arch/m32r/include/asm/ipcbuf.h (renamed from include/asm-m32r/ipcbuf.h)0
-rw-r--r--arch/m32r/include/asm/irq.h (renamed from include/asm-m32r/irq.h)0
-rw-r--r--arch/m32r/include/asm/irq_regs.h (renamed from include/asm-m32r/irq_regs.h)0
-rw-r--r--arch/m32r/include/asm/kdebug.h (renamed from include/asm-m32r/kdebug.h)0
-rw-r--r--arch/m32r/include/asm/kmap_types.h (renamed from include/asm-m32r/kmap_types.h)0
-rw-r--r--arch/m32r/include/asm/linkage.h (renamed from include/asm-m32r/linkage.h)0
-rw-r--r--arch/m32r/include/asm/local.h (renamed from include/asm-m32r/local.h)0
-rw-r--r--arch/m32r/include/asm/m32102.h (renamed from include/asm-m32r/m32102.h)0
-rw-r--r--arch/m32r/include/asm/m32104ut/m32104ut_pld.h (renamed from include/asm-m32r/m32104ut/m32104ut_pld.h)0
-rw-r--r--arch/m32r/include/asm/m32700ut/m32700ut_lan.h (renamed from include/asm-m32r/m32700ut/m32700ut_lan.h)0
-rw-r--r--arch/m32r/include/asm/m32700ut/m32700ut_lcd.h (renamed from include/asm-m32r/m32700ut/m32700ut_lcd.h)0
-rw-r--r--arch/m32r/include/asm/m32700ut/m32700ut_pld.h (renamed from include/asm-m32r/m32700ut/m32700ut_pld.h)0
-rw-r--r--arch/m32r/include/asm/m32r.h (renamed from include/asm-m32r/m32r.h)0
-rw-r--r--arch/m32r/include/asm/m32r_mp_fpga.h (renamed from include/asm-m32r/m32r_mp_fpga.h)0
-rw-r--r--arch/m32r/include/asm/mappi2/mappi2_pld.h (renamed from include/asm-m32r/mappi2/mappi2_pld.h)0
-rw-r--r--arch/m32r/include/asm/mappi3/mappi3_pld.h (renamed from include/asm-m32r/mappi3/mappi3_pld.h)0
-rw-r--r--arch/m32r/include/asm/mc146818rtc.h (renamed from include/asm-m32r/mc146818rtc.h)0
-rw-r--r--arch/m32r/include/asm/mman.h (renamed from include/asm-m32r/mman.h)0
-rw-r--r--arch/m32r/include/asm/mmu.h (renamed from include/asm-m32r/mmu.h)0
-rw-r--r--arch/m32r/include/asm/mmu_context.h (renamed from include/asm-m32r/mmu_context.h)0
-rw-r--r--arch/m32r/include/asm/mmzone.h (renamed from include/asm-m32r/mmzone.h)0
-rw-r--r--arch/m32r/include/asm/module.h (renamed from include/asm-m32r/module.h)0
-rw-r--r--arch/m32r/include/asm/msgbuf.h (renamed from include/asm-m32r/msgbuf.h)0
-rw-r--r--arch/m32r/include/asm/mutex.h (renamed from include/asm-m32r/mutex.h)0
-rw-r--r--arch/m32r/include/asm/opsput/opsput_lan.h (renamed from include/asm-m32r/opsput/opsput_lan.h)0
-rw-r--r--arch/m32r/include/asm/opsput/opsput_lcd.h (renamed from include/asm-m32r/opsput/opsput_lcd.h)0
-rw-r--r--arch/m32r/include/asm/opsput/opsput_pld.h (renamed from include/asm-m32r/opsput/opsput_pld.h)0
-rw-r--r--arch/m32r/include/asm/page.h (renamed from include/asm-m32r/page.h)0
-rw-r--r--arch/m32r/include/asm/param.h (renamed from include/asm-m32r/param.h)0
-rw-r--r--arch/m32r/include/asm/pci.h (renamed from include/asm-m32r/pci.h)0
-rw-r--r--arch/m32r/include/asm/percpu.h (renamed from include/asm-m32r/percpu.h)0
-rw-r--r--arch/m32r/include/asm/pgalloc.h (renamed from include/asm-m32r/pgalloc.h)0
-rw-r--r--arch/m32r/include/asm/pgtable-2level.h (renamed from include/asm-m32r/pgtable-2level.h)0
-rw-r--r--arch/m32r/include/asm/pgtable.h (renamed from include/asm-m32r/pgtable.h)0
-rw-r--r--arch/m32r/include/asm/poll.h (renamed from include/asm-m32r/poll.h)0
-rw-r--r--arch/m32r/include/asm/posix_types.h (renamed from include/asm-m32r/posix_types.h)0
-rw-r--r--arch/m32r/include/asm/processor.h (renamed from include/asm-m32r/processor.h)0
-rw-r--r--arch/m32r/include/asm/ptrace.h (renamed from include/asm-m32r/ptrace.h)0
-rw-r--r--arch/m32r/include/asm/resource.h (renamed from include/asm-m32r/resource.h)0
-rw-r--r--arch/m32r/include/asm/rtc.h (renamed from include/asm-m32r/rtc.h)0
-rw-r--r--arch/m32r/include/asm/s1d13806.h (renamed from include/asm-m32r/s1d13806.h)0
-rw-r--r--arch/m32r/include/asm/scatterlist.h (renamed from include/asm-m32r/scatterlist.h)0
-rw-r--r--arch/m32r/include/asm/sections.h (renamed from include/asm-m32r/sections.h)0
-rw-r--r--arch/m32r/include/asm/segment.h (renamed from include/asm-m32r/segment.h)0
-rw-r--r--arch/m32r/include/asm/sembuf.h (renamed from include/asm-m32r/sembuf.h)0
-rw-r--r--arch/m32r/include/asm/serial.h (renamed from include/asm-m32r/serial.h)0
-rw-r--r--arch/m32r/include/asm/setup.h (renamed from include/asm-m32r/setup.h)0
-rw-r--r--arch/m32r/include/asm/shmbuf.h (renamed from include/asm-m32r/shmbuf.h)0
-rw-r--r--arch/m32r/include/asm/shmparam.h (renamed from include/asm-m32r/shmparam.h)0
-rw-r--r--arch/m32r/include/asm/sigcontext.h (renamed from include/asm-m32r/sigcontext.h)0
-rw-r--r--arch/m32r/include/asm/siginfo.h (renamed from include/asm-m32r/siginfo.h)0
-rw-r--r--arch/m32r/include/asm/signal.h (renamed from include/asm-m32r/signal.h)0
-rw-r--r--arch/m32r/include/asm/smp.h (renamed from include/asm-m32r/smp.h)0
-rw-r--r--arch/m32r/include/asm/socket.h (renamed from include/asm-m32r/socket.h)0
-rw-r--r--arch/m32r/include/asm/sockios.h (renamed from include/asm-m32r/sockios.h)0
-rw-r--r--arch/m32r/include/asm/spinlock.h (renamed from include/asm-m32r/spinlock.h)0
-rw-r--r--arch/m32r/include/asm/spinlock_types.h (renamed from include/asm-m32r/spinlock_types.h)0
-rw-r--r--arch/m32r/include/asm/stat.h (renamed from include/asm-m32r/stat.h)0
-rw-r--r--arch/m32r/include/asm/statfs.h (renamed from include/asm-m32r/statfs.h)0
-rw-r--r--arch/m32r/include/asm/string.h (renamed from include/asm-m32r/string.h)0
-rw-r--r--arch/m32r/include/asm/swab.h (renamed from include/asm-m32r/swab.h)0
-rw-r--r--arch/m32r/include/asm/syscall.h (renamed from include/asm-m32r/syscall.h)0
-rw-r--r--arch/m32r/include/asm/system.h (renamed from include/asm-m32r/system.h)0
-rw-r--r--arch/m32r/include/asm/termbits.h (renamed from include/asm-m32r/termbits.h)0
-rw-r--r--arch/m32r/include/asm/termios.h (renamed from include/asm-m32r/termios.h)0
-rw-r--r--arch/m32r/include/asm/thread_info.h (renamed from include/asm-m32r/thread_info.h)0
-rw-r--r--arch/m32r/include/asm/timex.h (renamed from include/asm-m32r/timex.h)0
-rw-r--r--arch/m32r/include/asm/tlb.h (renamed from include/asm-m32r/tlb.h)0
-rw-r--r--arch/m32r/include/asm/tlbflush.h (renamed from include/asm-m32r/tlbflush.h)0
-rw-r--r--arch/m32r/include/asm/topology.h (renamed from include/asm-m32r/topology.h)0
-rw-r--r--arch/m32r/include/asm/types.h (renamed from include/asm-m32r/types.h)0
-rw-r--r--arch/m32r/include/asm/uaccess.h (renamed from include/asm-m32r/uaccess.h)0
-rw-r--r--arch/m32r/include/asm/ucontext.h (renamed from include/asm-m32r/ucontext.h)0
-rw-r--r--arch/m32r/include/asm/unaligned.h (renamed from include/asm-m32r/unaligned.h)0
-rw-r--r--arch/m32r/include/asm/unistd.h (renamed from include/asm-m32r/unistd.h)0
-rw-r--r--arch/m32r/include/asm/user.h (renamed from include/asm-m32r/user.h)0
-rw-r--r--arch/m32r/include/asm/vga.h (renamed from include/asm-m32r/vga.h)0
-rw-r--r--arch/m32r/include/asm/xor.h (renamed from include/asm-m32r/xor.h)0
-rw-r--r--arch/m32r/kernel/Makefile2
-rw-r--r--arch/m32r/kernel/head.S2
-rw-r--r--arch/m32r/kernel/vmlinux.lds.S2
-rw-r--r--arch/m68k/configs/amiga_defconfig163
-rw-r--r--arch/m68k/configs/apollo_defconfig120
-rw-r--r--arch/m68k/configs/atari_defconfig155
-rw-r--r--arch/m68k/configs/bvme6000_defconfig119
-rw-r--r--arch/m68k/configs/hp300_defconfig120
-rw-r--r--arch/m68k/configs/mac_defconfig125
-rw-r--r--arch/m68k/configs/multi_defconfig157
-rw-r--r--arch/m68k/configs/mvme147_defconfig119
-rw-r--r--arch/m68k/configs/mvme16x_defconfig119
-rw-r--r--arch/m68k/configs/q40_defconfig122
-rw-r--r--arch/m68k/configs/sun3_defconfig120
-rw-r--r--arch/m68k/configs/sun3x_defconfig120
-rw-r--r--arch/m68k/include/asm/unistd.h4
-rw-r--r--arch/m68k/kernel/entry.S2
-rw-r--r--arch/m68k/kernel/head.S2
-rw-r--r--arch/m68k/kernel/sun3-head.S3
-rw-r--r--arch/m68k/kernel/vmlinux-std.lds2
-rw-r--r--arch/m68k/kernel/vmlinux-sun3.lds2
-rw-r--r--arch/m68knommu/Kconfig1
-rw-r--r--arch/m68knommu/configs/m5208evb_defconfig163
-rw-r--r--arch/m68knommu/configs/m5249evb_defconfig268
-rw-r--r--arch/m68knommu/configs/m5272c3_defconfig (renamed from arch/arm/configs/pcm037_defconfig)556
-rw-r--r--arch/m68knommu/configs/m5275evb_defconfig167
-rw-r--r--arch/m68knommu/configs/m5307c3_defconfig231
-rw-r--r--arch/m68knommu/configs/m5407c3_defconfig179
-rw-r--r--arch/m68knommu/kernel/asm-offsets.c6
-rw-r--r--arch/m68knommu/kernel/dma.c37
-rw-r--r--arch/m68knommu/kernel/syscalltable.S2
-rw-r--r--arch/m68knommu/kernel/vmlinux.lds.S2
-rw-r--r--arch/m68knommu/platform/527x/config.c5
-rw-r--r--arch/m68knommu/platform/68328/timers.c2
-rw-r--r--arch/m68knommu/platform/coldfire/dma_timer.c2
-rw-r--r--arch/m68knommu/platform/coldfire/pit.c2
-rw-r--r--arch/m68knommu/platform/coldfire/timers.c2
-rw-r--r--arch/microblaze/Makefile8
-rw-r--r--arch/microblaze/include/asm/auxvec.h1
-rw-r--r--arch/microblaze/include/asm/cache.h5
-rw-r--r--arch/microblaze/include/asm/cputable.h1
-rw-r--r--arch/microblaze/include/asm/entry.h4
-rw-r--r--arch/microblaze/include/asm/exceptions.h3
-rw-r--r--arch/microblaze/include/asm/ftrace.h1
-rw-r--r--arch/microblaze/include/asm/hw_irq.h1
-rw-r--r--arch/microblaze/include/asm/io.h1
-rw-r--r--arch/microblaze/include/asm/of_platform.h10
-rw-r--r--arch/microblaze/include/asm/processor.h21
-rw-r--r--arch/microblaze/include/asm/ptrace.h4
-rw-r--r--arch/microblaze/include/asm/socket.h3
-rw-r--r--arch/microblaze/include/asm/unistd.h4
-rw-r--r--arch/microblaze/include/asm/user.h1
-rw-r--r--arch/microblaze/include/asm/vga.h1
-rw-r--r--arch/microblaze/kernel/asm-offsets.c2
-rw-r--r--arch/microblaze/kernel/cpu/cache.c3
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c9
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo-static.c4
-rw-r--r--arch/microblaze/kernel/cpu/cpuinfo.c2
-rw-r--r--arch/microblaze/kernel/cpu/mb.c4
-rw-r--r--arch/microblaze/kernel/early_printk.c2
-rw-r--r--arch/microblaze/kernel/of_device.c10
-rw-r--r--arch/microblaze/kernel/process.c23
-rw-r--r--arch/microblaze/kernel/prom.c1
-rw-r--r--arch/microblaze/kernel/ptrace.c1
-rw-r--r--arch/microblaze/kernel/signal.c15
-rw-r--r--arch/microblaze/kernel/sys_microblaze.c4
-rw-r--r--arch/microblaze/kernel/syscall_table.S2
-rw-r--r--arch/microblaze/kernel/timer.c2
-rw-r--r--arch/microblaze/kernel/traps.c2
-rw-r--r--arch/mips/Kconfig20
-rw-r--r--arch/mips/Makefile5
-rw-r--r--arch/mips/alchemy/common/time.c2
-rw-r--r--arch/mips/cavium-octeon/csrc-octeon.c2
-rw-r--r--arch/mips/include/asm/bitops.h4
-rw-r--r--arch/mips/include/asm/checksum.h4
-rw-r--r--arch/mips/include/asm/compat.h1
-rw-r--r--arch/mips/include/asm/cpu-features.h9
-rw-r--r--arch/mips/include/asm/div64.h142
-rw-r--r--arch/mips/include/asm/dma-mapping.h9
-rw-r--r--arch/mips/include/asm/fixmap.h3
-rw-r--r--arch/mips/include/asm/hazards.h5
-rw-r--r--arch/mips/include/asm/highmem.h6
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h6
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_ide.h17
-rw-r--r--arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h59
-rw-r--r--arch/mips/include/asm/mipsregs.h38
-rw-r--r--arch/mips/include/asm/page.h3
-rw-r--r--arch/mips/include/asm/pgtable-64.h6
-rw-r--r--arch/mips/include/asm/sn/addrs.h4
-rw-r--r--arch/mips/include/asm/sn/nmi.h4
-rw-r--r--arch/mips/include/asm/thread_info.h3
-rw-r--r--arch/mips/include/asm/time.h6
-rw-r--r--arch/mips/include/asm/uaccess.h66
-rw-r--r--arch/mips/kernel/cevt-smtc.c2
-rw-r--r--arch/mips/kernel/cevt-txx9.c2
-rw-r--r--arch/mips/kernel/csrc-bcm1480.c2
-rw-r--r--arch/mips/kernel/csrc-ioasic.c6
-rw-r--r--arch/mips/kernel/csrc-r4k.c2
-rw-r--r--arch/mips/kernel/csrc-sb1250.c2
-rw-r--r--arch/mips/kernel/i8253.c2
-rw-r--r--arch/mips/kernel/scall64-n32.S4
-rw-r--r--arch/mips/kernel/scall64-o32.S4
-rw-r--r--arch/mips/kernel/unaligned.c6
-rw-r--r--arch/mips/lib/dump_tlb.c9
-rw-r--r--arch/mips/mm/c-r4k.c2
-rw-r--r--arch/mips/mm/dma-default.c19
-rw-r--r--arch/mips/mm/highmem.c25
-rw-r--r--arch/mips/mm/init.c26
-rw-r--r--arch/mips/mm/sc-rm7k.c4
-rw-r--r--arch/mips/nxp/pnx8550/common/time.c2
-rw-r--r--arch/mips/pmc-sierra/Kconfig12
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_prom.c60
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_setup.c8
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_time.c7
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c2
-rw-r--r--arch/mips/sgi-ip32/ip32-berr.c2
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c4
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c7
-rw-r--r--arch/mips/sibyte/sb1250/irq.c7
-rw-r--r--arch/mips/txx9/generic/setup_tx4927.c2
-rw-r--r--arch/mips/txx9/generic/setup_tx4938.c2
-rw-r--r--arch/mips/txx9/generic/setup_tx4939.c2
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c2
-rw-r--r--arch/mn10300/configs/asb2303_defconfig160
-rw-r--r--arch/mn10300/include/asm/bug.h10
-rw-r--r--arch/mn10300/include/asm/unistd.h2
-rw-r--r--arch/mn10300/kernel/entry.S2
-rw-r--r--arch/mn10300/kernel/head.S3
-rw-r--r--arch/mn10300/kernel/setup.c4
-rw-r--r--arch/mn10300/kernel/vmlinux.lds.S5
-rw-r--r--arch/powerpc/Kconfig6
-rw-r--r--arch/powerpc/boot/4xx.c56
-rw-r--r--arch/powerpc/boot/Makefile69
-rw-r--r--arch/powerpc/boot/dts/gef_ppc9a.dts1
-rw-r--r--arch/powerpc/boot/dts/lite5200b.dts39
-rw-r--r--arch/powerpc/boot/dts/tqm8540.dts4
-rw-r--r--arch/powerpc/boot/dts/tqm8541.dts4
-rw-r--r--arch/powerpc/boot/dts/tqm8548-bigflash.dts8
-rw-r--r--arch/powerpc/boot/dts/tqm8548.dts8
-rw-r--r--arch/powerpc/boot/dts/tqm8555.dts4
-rw-r--r--arch/powerpc/boot/dts/tqm8560.dts4
-rw-r--r--arch/powerpc/boot/mktree.c10
-rw-r--r--arch/powerpc/boot/simpleboot.c2
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig69
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig74
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig77
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig69
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig76
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig114
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig114
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig107
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig113
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig103
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig108
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig96
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig104
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig111
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig96
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig86
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig1802
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig82
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig1802
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig89
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig1309
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig88
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig84
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig83
-rw-r--r--arch/powerpc/configs/85xx/socrates_defconfig385
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig105
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig100
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig101
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig224
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig101
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig101
-rw-r--r--arch/powerpc/configs/86xx/gef_ppc9a_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc310_defconfig92
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig122
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig100
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig211
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig114
-rw-r--r--arch/powerpc/configs/adder875_defconfig65
-rw-r--r--arch/powerpc/configs/c2k_defconfig128
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig74
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig63
-rw-r--r--arch/powerpc/configs/linkstation_defconfig96
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig74
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig72
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig188
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig91
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig115
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig252
-rw-r--r--arch/powerpc/configs/mpc85xx_smp_defconfig (renamed from arch/powerpc/configs/85xx/mpc8572_ds_defconfig)343
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig77
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig211
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig63
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig90
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig120
-rw-r--r--arch/powerpc/configs/storcenter_defconfig71
-rw-r--r--arch/powerpc/include/asm/elf.h4
-rw-r--r--arch/powerpc/include/asm/futex.h12
-rw-r--r--arch/powerpc/include/asm/iseries/iommu.h4
-rw-r--r--arch/powerpc/include/asm/of_platform.h10
-rw-r--r--arch/powerpc/include/asm/parport.h2
-rw-r--r--arch/powerpc/include/asm/ppc-opcode.h2
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h5
-rw-r--r--arch/powerpc/include/asm/system.h2
-rw-r--r--arch/powerpc/kernel/cputable.c15
-rw-r--r--arch/powerpc/kernel/head_32.S3
-rw-r--r--arch/powerpc/kernel/head_40x.S3
-rw-r--r--arch/powerpc/kernel/head_44x.S3
-rw-r--r--arch/powerpc/kernel/head_8xx.S3
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S3
-rw-r--r--arch/powerpc/kernel/machine_kexec.c4
-rw-r--r--arch/powerpc/kernel/pci-common.c21
-rw-r--r--arch/powerpc/kernel/pci_64.c15
-rw-r--r--arch/powerpc/kernel/prom.c8
-rw-r--r--arch/powerpc/kernel/prom_parse.c11
-rw-r--r--arch/powerpc/kernel/time.c8
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S5
-rw-r--r--arch/powerpc/mm/hash_utils_64.c2
-rw-r--r--arch/powerpc/mm/mem.c2
-rw-r--r--arch/powerpc/mm/tlb_nohash.c1
-rw-r--r--arch/powerpc/mm/tlb_nohash_low.S2
-rw-r--r--arch/powerpc/oprofile/op_model_power4.c9
-rw-r--r--arch/powerpc/platforms/40x/Kconfig1
-rw-r--r--arch/powerpc/platforms/44x/Kconfig1
-rw-r--r--arch/powerpc/platforms/cell/Kconfig5
-rw-r--r--arch/powerpc/platforms/cell/ras.c17
-rw-r--r--arch/powerpc/platforms/fsl_uli1575.c5
-rw-r--r--arch/powerpc/platforms/iseries/Kconfig1
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c6
-rw-r--r--arch/powerpc/platforms/iseries/pci.c1
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c4
-rw-r--r--arch/powerpc/platforms/ps3/os-area.c2
-rw-r--r--arch/powerpc/platforms/ps3/setup.c4
-rw-r--r--arch/powerpc/platforms/pseries/dtl.c1
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c2
-rw-r--r--arch/powerpc/sysdev/fsl_rio.c28
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c46
-rw-r--r--arch/powerpc/sysdev/mpic.c16
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c117
-rw-r--r--arch/s390/appldata/appldata_base.c34
-rw-r--r--arch/s390/appldata/appldata_mem.c2
-rw-r--r--arch/s390/defconfig63
-rw-r--r--arch/s390/include/asm/cpuid.h25
-rw-r--r--arch/s390/include/asm/cputime.h4
-rw-r--r--arch/s390/include/asm/kvm_host.h1
-rw-r--r--arch/s390/include/asm/lowcore.h12
-rw-r--r--arch/s390/include/asm/processor.h17
-rw-r--r--arch/s390/include/asm/ptrace.h2
-rw-r--r--arch/s390/include/asm/setup.h24
-rw-r--r--arch/s390/include/asm/thread_info.h3
-rw-r--r--arch/s390/include/asm/timer.h1
-rw-r--r--arch/s390/include/asm/timex.h5
-rw-r--r--arch/s390/include/asm/unistd.h4
-rw-r--r--arch/s390/kernel/asm-offsets.c2
-rw-r--r--arch/s390/kernel/compat_linux.c18
-rw-r--r--arch/s390/kernel/compat_wrapper.S18
-rw-r--r--arch/s390/kernel/early.c19
-rw-r--r--arch/s390/kernel/entry.S13
-rw-r--r--arch/s390/kernel/entry64.S13
-rw-r--r--arch/s390/kernel/head.S18
-rw-r--r--arch/s390/kernel/ipl.c1
-rw-r--r--arch/s390/kernel/nmi.c5
-rw-r--r--arch/s390/kernel/setup.c12
-rw-r--r--arch/s390/kernel/smp.c4
-rw-r--r--arch/s390/kernel/syscalls.S2
-rw-r--r--arch/s390/kernel/time.c79
-rw-r--r--arch/s390/kernel/vmlinux.lds.S4
-rw-r--r--arch/s390/kernel/vtime.c83
-rw-r--r--arch/sh/Kconfig18
-rw-r--r--arch/sh/boards/board-ap325rxa.c1
-rw-r--r--arch/sh/boards/board-urquell.c30
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig57
-rw-r--r--arch/sh/drivers/pci/ops-sh7785lcr.c5
-rw-r--r--arch/sh/drivers/pci/pci-sh7780.h2
-rw-r--r--arch/sh/drivers/pci/pci.c3
-rw-r--r--arch/sh/include/asm/dma-mapping.h36
-rw-r--r--arch/sh/include/asm/ptrace.h2
-rw-r--r--arch/sh/include/asm/scatterlist.h11
-rw-r--r--arch/sh/include/asm/topology.h7
-rw-r--r--arch/sh/include/asm/unistd_32.h4
-rw-r--r--arch/sh/include/asm/unistd_64.h4
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7722.c1
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c1
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7786.c14
-rw-r--r--arch/sh/kernel/cpu/sh5/entry.S5
-rw-r--r--arch/sh/kernel/head_32.S3
-rw-r--r--arch/sh/kernel/head_64.S5
-rw-r--r--arch/sh/kernel/sys_sh.c9
-rw-r--r--arch/sh/kernel/syscalls_32.S2
-rw-r--r--arch/sh/kernel/syscalls_64.S2
-rw-r--r--arch/sh/kernel/time_32.c2
-rw-r--r--arch/sh/kernel/timers/timer-tmu.c2
-rw-r--r--arch/sh/kernel/vmlinux_32.lds.S2
-rw-r--r--arch/sh/kernel/vmlinux_64.lds.S2
-rw-r--r--arch/sh/mm/consistent.c31
-rw-r--r--arch/sparc/configs/sparc32_defconfig98
-rw-r--r--arch/sparc/configs/sparc64_defconfig182
-rw-r--r--arch/sparc/include/asm/atomic_32.h2
-rw-r--r--arch/sparc/include/asm/parport.h5
-rw-r--r--arch/sparc/kernel/head_32.S4
-rw-r--r--arch/sparc/kernel/head_64.S2
-rw-r--r--arch/sparc/kernel/ldc.c6
-rw-r--r--arch/sparc/kernel/of_device_32.c21
-rw-r--r--arch/sparc/kernel/of_device_64.c21
-rw-r--r--arch/sparc/kernel/smp_64.c4
-rw-r--r--arch/sparc/kernel/sys_sparc32.c19
-rw-r--r--arch/sparc/kernel/time_64.c7
-rw-r--r--arch/sparc/kernel/vmlinux.lds.S2
-rw-r--r--arch/um/Kconfig.rest2
-rw-r--r--arch/um/kernel/time.c2
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--arch/x86/Kconfig.cpu1
-rw-r--r--arch/x86/Makefile6
-rw-r--r--arch/x86/ia32/sys_ia32.c19
-rw-r--r--arch/x86/include/asm/desc.h2
-rw-r--r--arch/x86/include/asm/hardirq.h2
-rw-r--r--arch/x86/include/asm/lguest_hcall.h2
-rw-r--r--arch/x86/include/asm/mce.h1
-rw-r--r--arch/x86/include/asm/pat.h4
-rw-r--r--arch/x86/include/asm/processor.h6
-rw-r--r--arch/x86/include/asm/required-features.h2
-rw-r--r--arch/x86/include/asm/tlbflush.h2
-rw-r--r--arch/x86/include/asm/topology.h2
-rw-r--r--arch/x86/include/asm/uv/uv_mmrs.h5
-rw-r--r--arch/x86/include/asm/xen/page.h3
-rw-r--r--arch/x86/kernel/amd_iommu_init.c16
-rw-r--r--arch/x86/kernel/apic/io_apic.c2
-rw-r--r--arch/x86/kernel/apic/nmi.c5
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c31
-rw-r--r--arch/x86/kernel/bios_uv.c3
-rw-r--r--arch/x86/kernel/cpu/common.c2
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c38
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c33
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c10
-rw-r--r--arch/x86/kernel/cpu/proc.c2
-rw-r--r--arch/x86/kernel/e820.c11
-rw-r--r--arch/x86/kernel/entry_64.S3
-rw-r--r--arch/x86/kernel/hpet.c24
-rw-r--r--arch/x86/kernel/i8253.c2
-rw-r--r--arch/x86/kernel/kgdb.c3
-rw-r--r--arch/x86/kernel/kvmclock.c7
-rw-r--r--arch/x86/kernel/machine_kexec_32.c4
-rw-r--r--arch/x86/kernel/machine_kexec_64.c4
-rw-r--r--arch/x86/kernel/microcode_core.c35
-rw-r--r--arch/x86/kernel/pci-swiotlb.c2
-rw-r--r--arch/x86/kernel/quirks.c2
-rw-r--r--arch/x86/kernel/tlb_uv.c189
-rw-r--r--arch/x86/kernel/tsc.c2
-rw-r--r--arch/x86/kernel/uv_sysfs.c4
-rw-r--r--arch/x86/kernel/uv_time.c10
-rw-r--r--arch/x86/kernel/vmiclock_32.c2
-rw-r--r--arch/x86/kernel/xsave.c4
-rw-r--r--arch/x86/kvm/mmu.c2
-rw-r--r--arch/x86/kvm/svm.c8
-rw-r--r--arch/x86/kvm/x86.c14
-rw-r--r--arch/x86/lguest/boot.c18
-rw-r--r--arch/x86/mm/init.c18
-rw-r--r--arch/x86/mm/ioremap.c10
-rw-r--r--arch/x86/mm/kmmio.c2
-rw-r--r--arch/x86/mm/numa_32.c2
-rw-r--r--arch/x86/mm/numa_64.c3
-rw-r--r--arch/x86/mm/pageattr.c127
-rw-r--r--arch/x86/mm/pat.c189
-rw-r--r--arch/x86/mm/srat_32.c2
-rw-r--r--arch/x86/mm/srat_64.c7
-rw-r--r--arch/x86/pci/amd_bus.c6
-rw-r--r--arch/x86/pci/common.c5
-rw-r--r--arch/x86/pci/i386.c4
-rw-r--r--arch/x86/pci/mmconfig-shared.c6
-rw-r--r--arch/x86/vdso/vclock_gettime.c12
-rw-r--r--arch/x86/xen/enlighten.c89
-rw-r--r--arch/x86/xen/mmu.c121
-rw-r--r--arch/x86/xen/mmu.h3
-rw-r--r--arch/x86/xen/smp.c4
-rw-r--r--arch/x86/xen/time.c7
-rw-r--r--arch/x86/xen/xen-ops.h2
-rw-r--r--arch/xtensa/Kconfig7
-rw-r--r--arch/xtensa/configs/s6105_defconfig3
-rw-r--r--arch/xtensa/include/asm/checksum.h6
-rw-r--r--arch/xtensa/include/asm/timex.h4
-rw-r--r--arch/xtensa/kernel/Makefile21
-rw-r--r--arch/xtensa/kernel/head.S3
-rw-r--r--arch/xtensa/kernel/traps.c16
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S8
-rw-r--r--arch/xtensa/platforms/s6105/setup.c3
-rw-r--r--arch/xtensa/variants/s6000/Makefile1
-rw-r--r--arch/xtensa/variants/s6000/delay.c27
-rw-r--r--arch/xtensa/variants/s6000/gpio.c3
-rw-r--r--arch/xtensa/variants/s6000/include/variant/gpio.h6
-rw-r--r--block/as-iosched.c116
-rw-r--r--block/blk-barrier.c3
-rw-r--r--block/blk-core.c10
-rw-r--r--block/blk-merge.c5
-rw-r--r--block/blk-settings.c20
-rw-r--r--block/blk-sysfs.c4
-rw-r--r--block/blk-timeout.c13
-rw-r--r--block/blk.h11
-rw-r--r--block/cfq-iosched.c300
-rw-r--r--block/elevator.c8
-rw-r--r--block/genhd.c12
-rw-r--r--block/ioctl.c2
-rw-r--r--block/scsi_ioctl.c19
-rw-r--r--drivers/Makefile4
-rw-r--r--drivers/acpi/acpica/Makefile27
-rw-r--r--drivers/acpi/acpica/aclocal.h7
-rw-r--r--drivers/acpi/acpica/hwsleep.c43
-rw-r--r--drivers/acpi/acpica/hwvalid.c86
-rw-r--r--drivers/acpi/acpica/rscalc.c7
-rw-r--r--drivers/acpi/acpica/rscreate.c27
-rw-r--r--drivers/acpi/bus.c2
-rw-r--r--drivers/acpi/button.c140
-rw-r--r--drivers/acpi/ec.c1
-rw-r--r--drivers/acpi/osl.c4
-rw-r--r--drivers/acpi/processor_idle.c60
-rw-r--r--drivers/acpi/processor_throttling.c25
-rw-r--r--drivers/acpi/sleep.c35
-rw-r--r--drivers/acpi/system.c11
-rw-r--r--drivers/acpi/thermal.c2
-rw-r--r--drivers/acpi/video.c92
-rw-r--r--drivers/ata/ata_piix.c18
-rw-r--r--drivers/ata/libata-core.c29
-rw-r--r--drivers/ata/libata-eh.c34
-rw-r--r--drivers/ata/libata-scsi.c68
-rw-r--r--drivers/ata/libata-sff.c27
-rw-r--r--drivers/ata/pata_hpt37x.c22
-rw-r--r--drivers/ata/pata_legacy.c37
-rw-r--r--drivers/ata/pata_ninja32.c4
-rw-r--r--drivers/ata/pata_pdc202xx_old.c6
-rw-r--r--drivers/ata/pata_via.c74
-rw-r--r--drivers/ata/sata_fsl.c15
-rw-r--r--drivers/ata/sata_mv.c127
-rw-r--r--drivers/ata/sata_sx4.c180
-rw-r--r--drivers/atm/solos-pci.c2
-rw-r--r--drivers/base/base.h2
-rw-r--r--drivers/base/core.c6
-rw-r--r--drivers/base/dd.c1
-rw-r--r--drivers/base/iommu.c2
-rw-r--r--drivers/base/platform.c255
-rw-r--r--drivers/block/brd.c5
-rw-r--r--drivers/block/cciss.c2
-rw-r--r--drivers/block/hd.c17
-rw-r--r--drivers/block/mg_disk.c19
-rw-r--r--drivers/block/ub.c20
-rw-r--r--drivers/block/umem.c1
-rw-r--r--drivers/char/agp/generic.c4
-rw-r--r--drivers/char/agp/intel-agp.c3
-rw-r--r--drivers/char/hpet.c2
-rw-r--r--drivers/char/hw_random/virtio-rng.c4
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c211
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c150
-rw-r--r--drivers/char/mem.c27
-rw-r--r--drivers/char/random.c19
-rw-r--r--drivers/char/sysrq.c5
-rw-r--r--drivers/char/vt.c2
-rw-r--r--drivers/char/vt_ioctl.c6
-rw-r--r--drivers/clocksource/acpi_pm.c12
-rw-r--r--drivers/clocksource/cyclone.c2
-rw-r--r--drivers/clocksource/scx200_hrt.c2
-rw-r--r--drivers/clocksource/tcb_clksrc.c2
-rw-r--r--drivers/dma/dmaengine.c17
-rw-r--r--drivers/dma/dmatest.c4
-rw-r--r--drivers/dma/ioat_dma.c45
-rw-r--r--drivers/dma/ipu/ipu_idmac.c7
-rw-r--r--drivers/edac/edac_core.h12
-rw-r--r--drivers/edac/edac_device.c2
-rw-r--r--drivers/edac/edac_mc.c2
-rw-r--r--drivers/edac/edac_pci.c2
-rw-r--r--drivers/edac/mpc85xx_edac.c2
-rw-r--r--drivers/firmware/iscsi_ibft.c4
-rw-r--r--drivers/gpu/drm/Kconfig7
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c19
-rw-r--r--drivers/gpu/drm/drm_drv.c3
-rw-r--r--drivers/gpu/drm/drm_stub.c26
-rw-r--r--drivers/gpu/drm/drm_sysfs.c3
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c21
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c2
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h26
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c200
-rw-r--r--drivers/gpu/drm/i915/i915_gem_debugfs.c93
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c112
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c2
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c15
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h2
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c24
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_display.c42
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h4
-rw-r--r--drivers/gpu/drm/i915/intel_fb.c6
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c40
-rw-r--r--drivers/gpu/drm/i915/intel_i2c.c17
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c54
-rw-r--r--drivers/gpu/drm/i915/intel_modes.c6
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c22
-rw-r--r--drivers/gpu/drm/r128/r128_cce.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h3
-rw-r--r--drivers/gpu/drm/via/via_dma.c12
-rw-r--r--drivers/hid/hid-apple.c2
-rw-r--r--drivers/hid/hid-core.c4
-rw-r--r--drivers/hid/hid-ids.h6
-rw-r--r--drivers/hid/hid-lg.c2
-rw-r--r--drivers/hid/hidraw.c12
-rw-r--r--drivers/hid/usbhid/hid-core.c4
-rw-r--r--drivers/hid/usbhid/hid-quirks.c3
-rw-r--r--drivers/hwmon/Kconfig10
-rw-r--r--drivers/hwmon/Makefile1
-rw-r--r--drivers/hwmon/asus_atk0110.c2
-rw-r--r--drivers/hwmon/hp_accel.c1
-rw-r--r--drivers/hwmon/sht15.c692
-rw-r--r--drivers/hwmon/w83781d.c3
-rw-r--r--drivers/i2c/algos/i2c-algo-bit.c2
-rw-r--r--drivers/i2c/algos/i2c-algo-pca.c11
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/i2c/busses/i2c-ali1535.c2
-rw-r--r--drivers/i2c/busses/i2c-ali15x3.c2
-rw-r--r--drivers/i2c/busses/i2c-amd756.c4
-rw-r--r--drivers/i2c/busses/i2c-cpm.c16
-rw-r--r--drivers/i2c/busses/i2c-i801.c8
-rw-r--r--drivers/i2c/busses/i2c-isch.c2
-rw-r--r--drivers/i2c/busses/i2c-mpc.c34
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c2
-rw-r--r--drivers/i2c/busses/i2c-pxa.c6
-rw-r--r--drivers/i2c/busses/i2c-sis5595.c2
-rw-r--r--drivers/i2c/busses/i2c-sis630.c2
-rw-r--r--drivers/i2c/busses/i2c-sis96x.c2
-rw-r--r--drivers/ide/cs5536.c1
-rw-r--r--drivers/ide/hpt366.c14
-rw-r--r--drivers/ide/icside.c2
-rw-r--r--drivers/ide/ide-cd.c11
-rw-r--r--drivers/ide/ide-gd.c17
-rw-r--r--drivers/ide/ide-io.c11
-rw-r--r--drivers/ide/ide-tape.c6
-rw-r--r--drivers/ide/palm_bk3710.c93
-rw-r--r--drivers/ide/piix.c1
-rw-r--r--drivers/ide/pmac.c2
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.c1
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c8
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_qp.c1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_fs.c2
-rw-r--r--drivers/infiniband/hw/mlx4/mlx4_ib.h1
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c10
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cmd.c16
-rw-r--r--drivers/infiniband/hw/nes/nes.h4
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c84
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.h1
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c30
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c67
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.h1
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c6
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c5
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c1
-rw-r--r--drivers/input/ff-memless.c2
-rw-r--r--drivers/input/gameport/gameport.c14
-rw-r--r--drivers/input/input.c37
-rw-r--r--drivers/input/joydev.c8
-rw-r--r--drivers/input/keyboard/atkbd.c36
-rw-r--r--drivers/input/keyboard/bf54x-keys.c2
-rw-r--r--drivers/input/keyboard/omap-keypad.c16
-rw-r--r--drivers/input/misc/Kconfig2
-rw-r--r--drivers/input/mouse/alps.c1
-rw-r--r--drivers/input/mouse/appletouch.c24
-rw-r--r--drivers/input/mouse/bcm5974.c108
-rw-r--r--drivers/input/mouse/elantech.c48
-rw-r--r--drivers/input/mouse/elantech.h5
-rw-r--r--drivers/input/mouse/lifebook.c6
-rw-r--r--drivers/input/mouse/maplemouse.c43
-rw-r--r--drivers/input/mouse/pc110pad.c1
-rw-r--r--drivers/input/serio/hp_sdc.c24
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h28
-rw-r--r--drivers/input/serio/i8042.c37
-rw-r--r--drivers/input/serio/sa1111ps2.c2
-rw-r--r--drivers/input/tablet/wacom.h5
-rw-r--r--drivers/input/tablet/wacom_sys.c13
-rw-r--r--drivers/input/touchscreen/ad7877.c4
-rw-r--r--drivers/input/touchscreen/ad7879.c3
-rw-r--r--drivers/input/touchscreen/ads7846.c12
-rw-r--r--drivers/input/touchscreen/da9034-ts.c29
-rw-r--r--drivers/input/touchscreen/mainstone-wm97xx.c7
-rw-r--r--drivers/input/touchscreen/tsc2007.c7
-rw-r--r--drivers/input/touchscreen/ucb1400_ts.c2
-rw-r--r--drivers/input/touchscreen/wm97xx-core.c3
-rw-r--r--drivers/isdn/capi/capifs.c11
-rw-r--r--drivers/isdn/hisax/st5481_usb.c9
-rw-r--r--drivers/lguest/lg.h3
-rw-r--r--drivers/lguest/segments.c13
-rw-r--r--drivers/lguest/x86/core.c9
-rw-r--r--drivers/macintosh/Kconfig2
-rw-r--r--drivers/macintosh/mediabay.c3
-rw-r--r--drivers/md/bitmap.c36
-rw-r--r--drivers/md/dm-bio-list.h117
-rw-r--r--drivers/md/dm-delay.c2
-rw-r--r--drivers/md/dm-mpath.c1
-rw-r--r--drivers/md/dm-raid1.c1
-rw-r--r--drivers/md/dm-region-hash.c1
-rw-r--r--drivers/md/dm-snap.c1
-rw-r--r--drivers/md/dm.c1
-rw-r--r--drivers/md/md.c111
-rw-r--r--drivers/md/md.h21
-rw-r--r--drivers/md/raid1.c1
-rw-r--r--drivers/md/raid10.c13
-rw-r--r--drivers/md/raid5.c7
-rw-r--r--drivers/media/radio/radio-sf16fmi.c2
-rw-r--r--drivers/media/radio/radio-sf16fmr2.c2
-rw-r--r--drivers/media/radio/radio-si470x.c2
-rw-r--r--drivers/media/video/au0828/au0828-core.c6
-rw-r--r--drivers/media/video/cafe_ccic.c1
-rw-r--r--drivers/media/video/cx18/cx18-audio.c2
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c16
-rw-r--r--drivers/media/video/cx231xx/Kconfig44
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c3
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c9
-rw-r--r--drivers/media/video/ivtv/ivtv-gpio.c4
-rw-r--r--drivers/media/video/ivtv/ivtv-ioctl.c5
-rw-r--r--drivers/media/video/ivtv/ivtv-irq.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-yuv.c3
-rw-r--r--drivers/media/video/ivtv/ivtvfb.c3
-rw-r--r--drivers/media/video/mx3_camera.c4
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c1
-rw-r--r--drivers/media/video/pwc/pwc-ctrl.c238
-rw-r--r--drivers/media/video/s2255drv.c2
-rw-r--r--drivers/media/video/saa5246a.c3
-rw-r--r--drivers/media/video/saa5249.c4
-rw-r--r--drivers/media/video/uvc/uvc_driver.c9
-rw-r--r--drivers/media/video/uvc/uvc_video.c2
-rw-r--r--drivers/media/video/v4l2-ioctl.c45
-rw-r--r--drivers/media/video/zoran/zoran_driver.c28
-rw-r--r--drivers/message/fusion/mptbase.c2
-rw-r--r--drivers/misc/eeprom/at24.c8
-rw-r--r--drivers/misc/eeprom/at25.c5
-rw-r--r--drivers/misc/isl29003.c9
-rw-r--r--drivers/misc/sgi-gru/grufile.c2
-rw-r--r--drivers/misc/sgi-xp/xp_main.c12
-rw-r--r--drivers/misc/sgi-xp/xpc.h254
-rw-r--r--drivers/misc/sgi-xp/xpc_channel.c138
-rw-r--r--drivers/misc/sgi-xp/xpc_main.c128
-rw-r--r--drivers/misc/sgi-xp/xpc_partition.c20
-rw-r--r--drivers/misc/sgi-xp/xpc_sn2.c164
-rw-r--r--drivers/misc/sgi-xp/xpc_uv.c257
-rw-r--r--drivers/mmc/card/block.c8
-rw-r--r--drivers/mmc/core/core.c4
-rw-r--r--drivers/mmc/host/mmci.c2
-rw-r--r--drivers/mmc/host/mvsdio.c11
-rw-r--r--drivers/mmc/host/omap.c2
-rw-r--r--drivers/mmc/host/sdhci-pci.c8
-rw-r--r--drivers/mmc/host/sdhci.h2
-rw-r--r--drivers/mtd/devices/m25p80.c26
-rw-r--r--drivers/mtd/mtdcore.c18
-rw-r--r--drivers/mtd/mtdsuper.c3
-rw-r--r--drivers/mtd/nand/cafe_nand.c2
-rw-r--r--drivers/net/arm/ep93xx_eth.c2
-rw-r--r--drivers/net/arm/ixp4xx_eth.c31
-rw-r--r--drivers/net/atl1c/atl1c_main.c4
-rw-r--r--drivers/net/benet/be.h14
-rw-r--r--drivers/net/benet/be_main.c14
-rw-r--r--drivers/net/bonding/bond_3ad.c11
-rw-r--r--drivers/net/bonding/bond_main.c8
-rw-r--r--drivers/net/jme.c8
-rw-r--r--drivers/net/meth.c27
-rw-r--r--drivers/net/mlx4/en_cq.c4
-rw-r--r--drivers/net/mlx4/en_rx.c1
-rw-r--r--drivers/net/mlx4/main.c2
-rw-r--r--drivers/net/mv643xx_eth.c41
-rw-r--r--drivers/net/vxge/vxge-traffic.c2
-rw-r--r--drivers/net/wan/ixp4xx_hss.c4
-rw-r--r--drivers/net/wimax/i2400m/rx.c5
-rw-r--r--drivers/net/wireless/airo.c10
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c22
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c2
-rw-r--r--drivers/net/wireless/p54/p54pci.c4
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187.h57
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_dev.c13
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_rtl8225.c8
-rw-r--r--drivers/parisc/superio.c3
-rw-r--r--drivers/pci/access.c4
-rw-r--r--drivers/pci/htirq.c1
-rw-r--r--drivers/pci/intel-iommu.c13
-rw-r--r--drivers/pci/msi.c8
-rw-r--r--drivers/pci/pci-sysfs.c12
-rw-r--r--drivers/pci/pci.c70
-rw-r--r--drivers/pci/pcie/aer/aerdrv.h3
-rw-r--r--drivers/pci/pcie/portdrv_pci.c2
-rw-r--r--drivers/pci/probe.c6
-rw-r--r--drivers/pci/quirks.c1
-rw-r--r--drivers/pci/setup-bus.c6
-rw-r--r--drivers/pci/slot.c4
-rw-r--r--drivers/pcmcia/pxa2xx_sharpsl.c3
-rw-r--r--drivers/platform/x86/asus-laptop.c6
-rw-r--r--drivers/platform/x86/eeepc-laptop.c47
-rw-r--r--drivers/platform/x86/sony-laptop.c27
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c81
-rw-r--r--drivers/pnp/pnpacpi/core.c8
-rw-r--r--drivers/regulator/bq24022.c3
-rw-r--r--drivers/regulator/core.c19
-rw-r--r--drivers/regulator/virtual.c8
-rw-r--r--drivers/rtc/Kconfig2
-rw-r--r--drivers/rtc/rtc-cmos.c20
-rw-r--r--drivers/rtc/rtc-sh.c67
-rw-r--r--drivers/rtc/rtc-twl4030.c4
-rw-r--r--drivers/s390/block/dasd.c37
-rw-r--r--drivers/s390/block/dasd_eckd.c16
-rw-r--r--drivers/s390/char/tape.h2
-rw-r--r--drivers/s390/char/tape_34xx.c8
-rw-r--r--drivers/s390/char/tape_3590.c8
-rw-r--r--drivers/s390/char/tape_core.c5
-rw-r--r--drivers/s390/cio/qdio_main.c43
-rw-r--r--drivers/s390/scsi/zfcp_aux.c11
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c1
-rw-r--r--drivers/s390/scsi/zfcp_cfdc.c3
-rw-r--r--drivers/s390/scsi/zfcp_def.h2
-rw-r--r--drivers/s390/scsi/zfcp_erp.c60
-rw-r--r--drivers/s390/scsi/zfcp_ext.h2
-rw-r--r--drivers/s390/scsi/zfcp_fc.c33
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c59
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c44
-rw-r--r--drivers/s390/scsi/zfcp_sysfs.c21
-rw-r--r--drivers/sbus/char/jsflash.c15
-rw-r--r--drivers/sbus/char/uctrl.c7
-rw-r--r--drivers/scsi/3w-9xxx.c8
-rw-r--r--drivers/scsi/a4000t.c2
-rw-r--r--drivers/scsi/aacraid/aachba.c2
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i.h2
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_ddp.c32
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_iscsi.c5
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.c4
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_pdu.c19
-rw-r--r--drivers/scsi/fcoe/fcoe.c59
-rw-r--r--drivers/scsi/fcoe/libfcoe.c2
-rw-r--r--drivers/scsi/ipr.c13
-rw-r--r--drivers/scsi/iscsi_tcp.c3
-rw-r--r--drivers/scsi/libfc/fc_disc.c54
-rw-r--r--drivers/scsi/libfc/fc_elsct.c2
-rw-r--r--drivers/scsi/libfc/fc_fcp.c7
-rw-r--r--drivers/scsi/libfc/fc_lport.c74
-rw-r--r--drivers/scsi/libfc/fc_rport.c82
-rw-r--r--drivers/scsi/libiscsi.c10
-rw-r--r--drivers/scsi/libiscsi_tcp.c5
-rw-r--r--drivers/scsi/lpfc/lpfc.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c266
-rw-r--r--drivers/scsi/lpfc/lpfc_crtn.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_debugfs.c45
-rw-r--r--drivers/scsi/lpfc/lpfc_disc.h1
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c245
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c88
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c205
-rw-r--r--drivers/scsi/lpfc/lpfc_logmsg.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_mbox.c63
-rw-r--r--drivers/scsi/lpfc/lpfc_mem.c19
-rw-r--r--drivers/scsi/lpfc/lpfc_nportdisc.c18
-rw-r--r--drivers/scsi/lpfc/lpfc_scsi.c128
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c401
-rw-r--r--drivers/scsi/lpfc/lpfc_version.h6
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c10
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c85
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h30
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_ctl.c216
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_ctl.h7
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c29
-rw-r--r--drivers/scsi/osd/osd_initiator.c125
-rw-r--r--drivers/scsi/osd/osd_uld.c20
-rw-r--r--drivers/scsi/scsi_lib.c4
-rw-r--r--drivers/scsi/scsi_scan.c2
-rw-r--r--drivers/scsi/scsi_wait_scan.c11
-rw-r--r--drivers/scsi/sd.c15
-rw-r--r--drivers/scsi/sg.c13
-rw-r--r--drivers/scsi/sr_ioctl.c5
-rw-r--r--drivers/serial/8250_pci.c2
-rw-r--r--drivers/serial/bfin_5xx.c6
-rw-r--r--drivers/serial/crisv10.c173
-rw-r--r--drivers/serial/jsm/jsm.h2
-rw-r--r--drivers/serial/jsm/jsm_driver.c1
-rw-r--r--drivers/serial/nwpserial.c4
-rw-r--r--drivers/serial/s3c6400.c1
-rw-r--r--drivers/serial/samsung.c65
-rw-r--r--drivers/serial/samsung.h4
-rw-r--r--drivers/sh/intc.c35
-rw-r--r--drivers/spi/pxa2xx_spi.c18
-rw-r--r--drivers/spi/spi.c22
-rw-r--r--drivers/staging/android/binder.c201
-rw-r--r--drivers/staging/at76_usb/at76_usb.c20
-rw-r--r--drivers/staging/b3dfg/b3dfg.c2
-rw-r--r--drivers/staging/comedi/TODO1
-rw-r--r--drivers/staging/epl/VirtualEthernetLinux.c17
-rw-r--r--drivers/staging/et131x/et131x_netdev.c23
-rw-r--r--drivers/staging/go7007/go7007-driver.c26
-rw-r--r--drivers/staging/go7007/go7007-i2c.c83
-rw-r--r--drivers/staging/go7007/go7007-priv.h1
-rw-r--r--drivers/staging/go7007/go7007-usb.c14
-rw-r--r--drivers/staging/go7007/s2250-board.c71
-rw-r--r--drivers/staging/go7007/wis-i2c.h9
-rw-r--r--drivers/staging/go7007/wis-ov7640.c56
-rw-r--r--drivers/staging/go7007/wis-saa7113.c60
-rw-r--r--drivers/staging/go7007/wis-saa7115.c60
-rw-r--r--drivers/staging/go7007/wis-sony-tuner.c62
-rw-r--r--drivers/staging/go7007/wis-tw2804.c57
-rw-r--r--drivers/staging/go7007/wis-tw9903.c60
-rw-r--r--drivers/staging/go7007/wis-uda1342.c52
-rw-r--r--drivers/staging/line6/audio.c9
-rw-r--r--drivers/staging/otus/usbdrv.c47
-rw-r--r--drivers/staging/otus/zdusb.c3
-rw-r--r--drivers/staging/otus/zdusb.h4
-rw-r--r--drivers/staging/pohmelfs/config.c61
-rw-r--r--drivers/staging/pohmelfs/dir.c24
-rw-r--r--drivers/staging/pohmelfs/inode.c137
-rw-r--r--drivers/staging/pohmelfs/lock.c3
-rw-r--r--drivers/staging/pohmelfs/net.c72
-rw-r--r--drivers/staging/pohmelfs/netfs.h21
-rw-r--r--drivers/staging/pohmelfs/trans.c33
-rw-r--r--drivers/staging/rt2860/rt_main_dev.c25
-rw-r--r--drivers/staging/rt2870/rt2870.h2
-rw-r--r--drivers/staging/rt2870/rt_main_dev.c28
-rw-r--r--drivers/staging/rt3070/rt_main_dev.c29
-rw-r--r--drivers/staging/rtl8187se/r8180.h2
-rw-r--r--drivers/staging/rtl8187se/r8180_core.c46
-rw-r--r--drivers/staging/slicoss/README31
-rw-r--r--drivers/staging/slicoss/slicoss.c25
-rw-r--r--drivers/staging/stlc45xx/Kconfig2
-rw-r--r--drivers/staging/sxg/sxg.c127
-rw-r--r--drivers/staging/uc2322/aten2011.c28
-rw-r--r--drivers/staging/winbond/wbusb.c9
-rw-r--r--drivers/staging/wlan-ng/p80211netdev.c20
-rw-r--r--drivers/thermal/thermal_sys.c8
-rw-r--r--drivers/uio/uio_cif.c1
-rw-r--r--drivers/usb/Makefile2
-rw-r--r--drivers/usb/class/cdc-acm.c4
-rw-r--r--drivers/usb/class/cdc-wdm.c27
-rw-r--r--drivers/usb/core/buffer.c2
-rw-r--r--drivers/usb/core/devio.c2
-rw-r--r--drivers/usb/core/hcd.c26
-rw-r--r--drivers/usb/core/hcd.h14
-rw-r--r--drivers/usb/core/message.c58
-rw-r--r--drivers/usb/core/usb.c2
-rw-r--r--drivers/usb/gadget/ci13xxx_udc.c5
-rw-r--r--drivers/usb/gadget/file_storage.c20
-rw-r--r--drivers/usb/gadget/omap_udc.c3
-rw-r--r--drivers/usb/gadget/u_ether.c8
-rw-r--r--drivers/usb/gadget/usbstring.c6
-rw-r--r--drivers/usb/host/ehci-sched.c2
-rw-r--r--drivers/usb/host/whci/asl.c15
-rw-r--r--drivers/usb/host/whci/hcd.c23
-rw-r--r--drivers/usb/host/whci/pzl.c16
-rw-r--r--drivers/usb/host/whci/qset.c24
-rw-r--r--drivers/usb/host/whci/whcd.h1
-rw-r--r--drivers/usb/host/whci/whci-hc.h1
-rw-r--r--drivers/usb/musb/cppi_dma.c23
-rw-r--r--drivers/usb/musb/musb_core.c14
-rw-r--r--drivers/usb/musb/musb_gadget.c33
-rw-r--r--drivers/usb/musb/musb_host.c406
-rw-r--r--drivers/usb/musb/musbhsdma.c66
-rw-r--r--drivers/usb/musb/omap2430.c1
-rw-r--r--drivers/usb/musb/tusb6010.c1
-rw-r--r--drivers/usb/musb/tusb6010.h1
-rw-r--r--drivers/usb/otg/nop-usb-xceiv.c4
-rw-r--r--drivers/usb/otg/otg.c3
-rw-r--r--drivers/usb/serial/cyberjack.c7
-rw-r--r--drivers/usb/serial/cypress_m8.c4
-rw-r--r--drivers/usb/serial/empeg.c6
-rw-r--r--drivers/usb/serial/ftdi_sio.c21
-rw-r--r--drivers/usb/serial/ftdi_sio.h13
-rw-r--r--drivers/usb/serial/garmin_gps.c8
-rw-r--r--drivers/usb/serial/generic.c6
-rw-r--r--drivers/usb/serial/io_edgeport.c8
-rw-r--r--drivers/usb/serial/io_ti.c8
-rw-r--r--drivers/usb/serial/ipaq.c6
-rw-r--r--drivers/usb/serial/ipw.c3
-rw-r--r--drivers/usb/serial/iuu_phoenix.c1
-rw-r--r--drivers/usb/serial/kobil_sct.c6
-rw-r--r--drivers/usb/serial/mos7720.c7
-rw-r--r--drivers/usb/serial/mos7840.c43
-rw-r--r--drivers/usb/serial/moto_modem.c1
-rw-r--r--drivers/usb/serial/opticon.c8
-rw-r--r--drivers/usb/serial/option.c8
-rw-r--r--drivers/usb/serial/qcserial.c21
-rw-r--r--drivers/usb/serial/sierra.c24
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c40
-rw-r--r--drivers/usb/serial/usb-serial.c104
-rw-r--r--drivers/usb/serial/visor.c8
-rw-r--r--drivers/usb/storage/Makefile3
-rw-r--r--drivers/usb/storage/transport.c4
-rw-r--r--drivers/usb/storage/unusual_devs.h25
-rw-r--r--drivers/usb/wusbcore/devconnect.c21
-rw-r--r--drivers/usb/wusbcore/wusbhc.c32
-rw-r--r--drivers/video/Kconfig23
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/asiliantfb.c1
-rw-r--r--drivers/video/aty/radeon_base.c4
-rw-r--r--drivers/video/backlight/backlight.c3
-rw-r--r--drivers/video/backlight/lcd.c3
-rw-r--r--drivers/video/cfbfillrect.c36
-rw-r--r--drivers/video/cirrusfb.c4
-rw-r--r--drivers/video/console/fbcon.c55
-rw-r--r--drivers/video/console/vgacon.c2
-rw-r--r--drivers/video/efifb.c7
-rw-r--r--drivers/video/fb_draw.h21
-rw-r--r--drivers/video/fbmem.c19
-rw-r--r--drivers/video/gbefb.c14
-rw-r--r--drivers/video/intelfb/intelfb.h2
-rw-r--r--drivers/video/intelfb/intelfb_i2c.c1
-rw-r--r--drivers/video/intelfb/intelfbdrv.c1
-rw-r--r--drivers/video/intelfb/intelfbhw.c5
-rw-r--r--drivers/video/logo/logo_linux_clut224.ppm4428
-rw-r--r--drivers/video/logo/logo_linux_vga16.ppm4339
-rw-r--r--drivers/video/mx3fb.c14
-rw-r--r--drivers/video/pxafb.c16
-rw-r--r--drivers/video/s3fb.c6
-rw-r--r--drivers/video/sa1100fb.c15
-rw-r--r--drivers/video/sa1100fb.h7
-rw-r--r--drivers/video/sis/sis_main.c2
-rw-r--r--drivers/video/skeletonfb.c8
-rw-r--r--drivers/video/sysfillrect.c30
-rw-r--r--drivers/video/uvesafb.c35
-rw-r--r--drivers/video/vfb.c11
-rw-r--r--drivers/video/via/viafbdev.c6
-rw-r--r--drivers/virtio/virtio_balloon.c3
-rw-r--r--drivers/watchdog/orion5x_wdt.c1
-rw-r--r--drivers/xen/balloon.c3
-rw-r--r--drivers/xen/cpu_hotplug.c40
-rw-r--r--drivers/xen/manage.c5
-rw-r--r--fs/9p/vfs_super.c12
-rw-r--r--fs/affs/super.c3
-rw-r--r--fs/afs/file.c2
-rw-r--r--fs/afs/super.c7
-rw-r--r--fs/autofs/dirhash.c34
-rw-r--r--fs/autofs4/dev-ioctl.c12
-rw-r--r--fs/autofs4/expire.c4
-rw-r--r--fs/binfmt_elf_fdpic.c4
-rw-r--r--fs/bio.c125
-rw-r--r--fs/btrfs/Makefile19
-rw-r--r--fs/btrfs/acl.c18
-rw-r--r--fs/btrfs/async-thread.c60
-rw-r--r--fs/btrfs/async-thread.h2
-rw-r--r--fs/btrfs/ctree.c56
-rw-r--r--fs/btrfs/ctree.h6
-rw-r--r--fs/btrfs/disk-io.c104
-rw-r--r--fs/btrfs/extent-tree.c51
-rw-r--r--fs/btrfs/extent_io.c167
-rw-r--r--fs/btrfs/extent_map.c17
-rw-r--r--fs/btrfs/file.c95
-rw-r--r--fs/btrfs/free-space-cache.c15
-rw-r--r--fs/btrfs/inode-map.c2
-rw-r--r--fs/btrfs/inode.c185
-rw-r--r--fs/btrfs/ioctl.c62
-rw-r--r--fs/btrfs/ordered-data.c2
-rw-r--r--fs/btrfs/super.c56
-rw-r--r--fs/btrfs/transaction.c6
-rw-r--r--fs/btrfs/tree-log.c2
-rw-r--r--fs/btrfs/volumes.c159
-rw-r--r--fs/btrfs/volumes.h16
-rw-r--r--fs/buffer.c66
-rw-r--r--fs/cifs/CHANGES16
-rw-r--r--fs/cifs/README10
-rw-r--r--fs/cifs/cifs_dfs_ref.c32
-rw-r--r--fs/cifs/cifs_spnego.c2
-rw-r--r--fs/cifs/cifs_unicode.c198
-rw-r--r--fs/cifs/cifs_unicode.h23
-rw-r--r--fs/cifs/cifsfs.c54
-rw-r--r--fs/cifs/cifsfs.h2
-rw-r--r--fs/cifs/cifsglob.h19
-rw-r--r--fs/cifs/cifspdu.h8
-rw-r--r--fs/cifs/cifsproto.h5
-rw-r--r--fs/cifs/cifssmb.c221
-rw-r--r--fs/cifs/connect.c1357
-rw-r--r--fs/cifs/dir.c160
-rw-r--r--fs/cifs/dns_resolve.c2
-rw-r--r--fs/cifs/file.c141
-rw-r--r--fs/cifs/inode.c98
-rw-r--r--fs/cifs/link.c114
-rw-r--r--fs/cifs/misc.c71
-rw-r--r--fs/cifs/netmisc.c2
-rw-r--r--fs/cifs/nterr.h9
-rw-r--r--fs/cifs/ntlmssp.h68
-rw-r--r--fs/cifs/readdir.c78
-rw-r--r--fs/cifs/sess.c373
-rw-r--r--fs/cifs/smberr.h1
-rw-r--r--fs/compat.c48
-rw-r--r--fs/compat_ioctl.c7
-rw-r--r--fs/configfs/symlink.c2
-rw-r--r--fs/dcache.c3
-rw-r--r--fs/devpts/inode.c23
-rw-r--r--fs/direct-io.c2
-rw-r--r--fs/ecryptfs/crypto.c21
-rw-r--r--fs/ecryptfs/ecryptfs_kernel.h1
-rw-r--r--fs/ecryptfs/inode.c37
-rw-r--r--fs/ecryptfs/main.c19
-rw-r--r--fs/ecryptfs/messaging.c82
-rw-r--r--fs/ecryptfs/miscdev.c43
-rw-r--r--fs/ecryptfs/mmap.c11
-rw-r--r--fs/ecryptfs/read_write.c32
-rw-r--r--fs/ecryptfs/super.c7
-rw-r--r--fs/eventpoll.c2
-rw-r--r--fs/exec.c111
-rw-r--r--fs/ext2/inode.c44
-rw-r--r--fs/ext2/super.c4
-rw-r--r--fs/ext4/extents.c39
-rw-r--r--fs/ext4/ialloc.c6
-rw-r--r--fs/ext4/inode.c50
-rw-r--r--fs/fat/Kconfig3
-rw-r--r--fs/fcntl.c6
-rw-r--r--fs/filesystems.c2
-rw-r--r--fs/fuse/file.c8
-rw-r--r--fs/fuse/inode.c4
-rw-r--r--fs/gfs2/glock.c11
-rw-r--r--fs/gfs2/glops.c6
-rw-r--r--fs/gfs2/inode.c8
-rw-r--r--fs/gfs2/inode.h14
-rw-r--r--fs/gfs2/ops_file.c12
-rw-r--r--fs/gfs2/ops_fstype.c13
-rw-r--r--fs/gfs2/ops_inode.c1
-rw-r--r--fs/gfs2/quota.c4
-rw-r--r--fs/gfs2/rgrp.c13
-rw-r--r--fs/hfs/inode.c4
-rw-r--r--fs/hfs/mdb.c1
-rw-r--r--fs/hpfs/super.c3
-rw-r--r--fs/hugetlbfs/inode.c14
-rw-r--r--fs/inode.c117
-rw-r--r--fs/ioctl.c75
-rw-r--r--fs/jbd/commit.c2
-rw-r--r--fs/jbd/revoke.c44
-rw-r--r--fs/jbd2/commit.c3
-rw-r--r--fs/jbd2/revoke.c21
-rw-r--r--fs/libfs.c3
-rw-r--r--fs/lockd/svc.c15
-rw-r--r--fs/namei.c15
-rw-r--r--fs/namespace.c30
-rw-r--r--fs/ncpfs/ioctl.c21
-rw-r--r--fs/nfs/file.c6
-rw-r--r--fs/nfs/nfs3xdr.c3
-rw-r--r--fs/nfs/super.c22
-rw-r--r--fs/nfsd/nfs4recover.c48
-rw-r--r--fs/nfsd/nfs4state.c1
-rw-r--r--fs/nfsd/nfs4xdr.c16
-rw-r--r--fs/nfsd/vfs.c34
-rw-r--r--fs/nilfs2/bmap.c5
-rw-r--r--fs/nilfs2/ioctl.c281
-rw-r--r--fs/nilfs2/mdt.c15
-rw-r--r--fs/nilfs2/nilfs.h8
-rw-r--r--fs/nilfs2/page.c3
-rw-r--r--fs/nilfs2/recovery.c26
-rw-r--r--fs/nilfs2/segment.c5
-rw-r--r--fs/nilfs2/segment.h3
-rw-r--r--fs/nilfs2/sufile.c290
-rw-r--r--fs/nilfs2/sufile.h79
-rw-r--r--fs/nilfs2/super.c7
-rw-r--r--fs/nilfs2/the_nilfs.c4
-rw-r--r--fs/notify/inotify/inotify_user.c2
-rw-r--r--fs/ocfs2/dcache.c15
-rw-r--r--fs/ocfs2/dir.c4
-rw-r--r--fs/ocfs2/export.c9
-rw-r--r--fs/ocfs2/file.c94
-rw-r--r--fs/ocfs2/journal.h5
-rw-r--r--fs/ocfs2/namei.c4
-rw-r--r--fs/ocfs2/suballoc.c21
-rw-r--r--fs/ocfs2/symlink.c77
-rw-r--r--fs/open.c2
-rw-r--r--fs/pipe.c42
-rw-r--r--fs/proc/array.c13
-rw-r--r--fs/proc/base.c9
-rw-r--r--fs/proc/meminfo.c2
-rw-r--r--fs/proc/root.c3
-rw-r--r--fs/proc/stat.c5
-rw-r--r--fs/proc/task_mmu.c4
-rw-r--r--fs/quota/Makefile9
-rw-r--r--fs/reiserfs/dir.c24
-rw-r--r--fs/reiserfs/namei.c17
-rw-r--r--fs/reiserfs/super.c9
-rw-r--r--fs/reiserfs/xattr.c181
-rw-r--r--fs/reiserfs/xattr_security.c12
-rw-r--r--fs/romfs/internal.h4
-rw-r--r--fs/romfs/storage.c68
-rw-r--r--fs/romfs/super.c7
-rw-r--r--fs/splice.c370
-rw-r--r--fs/squashfs/Makefile1
-rw-r--r--fs/squashfs/cache.c1
-rw-r--r--fs/squashfs/super.c10
-rw-r--r--fs/stat.c137
-rw-r--r--fs/super.c48
-rw-r--r--fs/sysfs/bin.c13
-rw-r--r--fs/sysfs/file.c16
-rw-r--r--fs/ubifs/super.c3
-rw-r--r--fs/ufs/dir.c2
-rw-r--r--fs/ufs/file.c2
-rw-r--r--fs/ufs/ufs.h2
-rw-r--r--fs/xattr.c10
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c38
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.h1
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.c9
-rw-r--r--fs/xfs/linux-2.6/xfs_fs_subr.c14
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl.c23
-rw-r--r--fs/xfs/linux-2.6/xfs_ioctl32.c12
-rw-r--r--fs/xfs/linux-2.6/xfs_lrw.c18
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.c78
-rw-r--r--fs/xfs/linux-2.6/xfs_sync.h9
-rw-r--r--fs/xfs/xfs_bmap.c192
-rw-r--r--fs/xfs/xfs_iget.c23
-rw-r--r--fs/xfs/xfs_inode.c2
-rw-r--r--fs/xfs/xfs_iomap.c61
-rw-r--r--fs/xfs/xfs_iomap.h3
-rw-r--r--fs/xfs/xfs_log.c78
-rw-r--r--fs/xfs/xfs_mount.c3
-rw-r--r--fs/xfs/xfs_mount.h2
-rw-r--r--fs/xfs/xfs_vnodeops.c7
-rw-r--r--include/acpi/processor.h1
-rw-r--r--include/acpi/video.h2
-rw-r--r--include/asm-arm/.gitignore2
-rw-r--r--include/asm-generic/atomic.h4
-rw-r--r--include/asm-generic/bug.h9
-rw-r--r--include/asm-generic/percpu.h35
-rw-r--r--include/asm-generic/siginfo.h2
-rw-r--r--include/asm-generic/vmlinux.lds.h7
-rw-r--r--include/drm/drm_pciids.h3
-rw-r--r--include/drm/i915_drm.h13
-rw-r--r--include/linux/Kbuild2
-rw-r--r--include/linux/acpi.h1
-rw-r--r--include/linux/ata.h28
-rw-r--r--include/linux/binfmts.h14
-rw-r--r--include/linux/bio.h110
-rw-r--r--include/linux/bitops.h19
-rw-r--r--include/linux/blkdev.h4
-rw-r--r--include/linux/buffer_head.h3
-rw-r--r--include/linux/clocksource.h37
-rw-r--r--include/linux/debug_locks.h1
-rw-r--r--include/linux/device.h10
-rw-r--r--include/linux/dmaengine.h6
-rw-r--r--include/linux/dynamic_debug.h2
-rw-r--r--include/linux/fb.h8
-rw-r--r--include/linux/fiemap.h2
-rw-r--r--include/linux/fs.h73
-rw-r--r--include/linux/fsl_devices.h8
-rw-r--r--include/linux/genhd.h1
-rw-r--r--include/linux/init.h13
-rw-r--r--include/linux/init_task.h13
-rw-r--r--include/linux/input.h24
-rw-r--r--include/linux/ipmi.h2
-rw-r--r--include/linux/ipmi_msgdefs.h8
-rw-r--r--include/linux/jbd.h3
-rw-r--r--include/linux/jbd2.h3
-rw-r--r--include/linux/kernel.h9
-rw-r--r--include/linux/kvm.h2
-rw-r--r--include/linux/libata.h8
-rw-r--r--include/linux/memcontrol.h6
-rw-r--r--include/linux/mman.h9
-rw-r--r--include/linux/namei.h1
-rw-r--r--include/linux/nls.h19
-rw-r--r--include/linux/of_platform.h10
-rw-r--r--include/linux/pci_ids.h2
-rw-r--r--include/linux/pci_regs.h1
-rw-r--r--include/linux/percpu-defs.h84
-rw-r--r--include/linux/percpu.h44
-rw-r--r--include/linux/pipe_fs_i.h5
-rw-r--r--include/linux/pktcdvd.h1
-rw-r--r--include/linux/platform_device.h43
-rw-r--r--include/linux/rcutree.h3
-rw-r--r--include/linux/regulator/driver.h1
-rw-r--r--include/linux/reiserfs_fs_sb.h5
-rw-r--r--include/linux/reiserfs_xattr.h3
-rw-r--r--include/linux/romfs_fs.h5
-rw-r--r--include/linux/seccomp.h2
-rw-r--r--include/linux/section-names.h6
-rw-r--r--include/linux/sht15.h24
-rw-r--r--include/linux/slow-work.h2
-rw-r--r--include/linux/spi/ads7846.h1
-rw-r--r--include/linux/spi/spi.h7
-rw-r--r--include/linux/splice.h12
-rw-r--r--include/linux/sunrpc/xprt.h1
-rw-r--r--include/linux/suspend.h36
-rw-r--r--include/linux/syscalls.h3
-rw-r--r--include/linux/usb.h9
-rw-r--r--include/linux/usb/musb.h5
-rw-r--r--include/linux/usb/serial.h7
-rw-r--r--include/linux/writeback.h2
-rw-r--r--include/net/9p/client.h1
-rw-r--r--include/scsi/fc/fc_fs.h1
-rw-r--r--include/scsi/libfc.h1
-rw-r--r--include/scsi/libiscsi.h2
-rw-r--r--include/scsi/osd_protocol.h96
-rw-r--r--include/sound/jack.h2
-rw-r--r--include/sound/pcm.h3
-rw-r--r--include/sound/pxa2xx-lib.h15
-rw-r--r--include/sound/version.h2
-rw-r--r--include/video/cyblafb.h175
-rw-r--r--init/initramfs.c18
-rw-r--r--init/main.c7
-rw-r--r--ipc/mq_sysctl.c2
-rw-r--r--kernel/audit_tree.c3
-rw-r--r--kernel/auditfilter.c4
-rw-r--r--kernel/cgroup.c3
-rw-r--r--kernel/irq/handle.c2
-rw-r--r--kernel/irq/manage.c5
-rw-r--r--kernel/kgdb.c4
-rw-r--r--kernel/kprobes.c31
-rw-r--r--kernel/lockdep.c22
-rw-r--r--kernel/panic.c42
-rw-r--r--kernel/posix-cpu-timers.c8
-rw-r--r--kernel/power/disk.c51
-rw-r--r--kernel/power/main.c24
-rw-r--r--kernel/power/swap.c2
-rw-r--r--kernel/ptrace.c11
-rw-r--r--kernel/rcupdate.c18
-rw-r--r--kernel/rcutree.c19
-rw-r--r--kernel/rcutree_trace.c14
-rw-r--r--kernel/resource.c46
-rw-r--r--kernel/sched.c12
-rw-r--r--kernel/slow-work.c4
-rw-r--r--kernel/softirq.c4
-rw-r--r--kernel/sys.c24
-rw-r--r--kernel/sysctl.c48
-rw-r--r--kernel/time/clocksource.c8
-rw-r--r--kernel/time/jiffies.c2
-rw-r--r--kernel/time/tick-common.c12
-rw-r--r--kernel/time/timekeeping.c12
-rw-r--r--kernel/trace/trace.c1
-rw-r--r--kernel/trace/trace_branch.c8
-rw-r--r--kernel/trace/trace_power.c7
-rw-r--r--lib/Kconfig.debug9
-rw-r--r--lib/Makefile2
-rw-r--r--lib/dma-debug.c53
-rw-r--r--lib/kobject.c3
-rw-r--r--lib/kobject_uevent.c4
-rw-r--r--lib/scatterlist.c9
-rw-r--r--mm/Kconfig30
-rw-r--r--mm/filemap.c5
-rw-r--r--mm/memcontrol.c40
-rw-r--r--mm/memory.c112
-rw-r--r--mm/mmap.c14
-rw-r--r--mm/nommu.c17
-rw-r--r--mm/oom_kill.c44
-rw-r--r--mm/page_alloc.c20
-rw-r--r--mm/pdflush.c31
-rw-r--r--mm/shmem.c35
-rw-r--r--mm/swap.c46
-rw-r--r--mm/util.c16
-rw-r--r--mm/vmalloc.c1
-rw-r--r--mm/vmscan.c19
-rw-r--r--net/9p/client.c114
-rw-r--r--net/9p/trans_fd.c14
-rw-r--r--net/9p/trans_rdma.c1
-rw-r--r--net/9p/trans_virtio.c1
-rw-r--r--net/bluetooth/hci_conn.c6
-rw-r--r--net/bluetooth/hci_event.c2
-rw-r--r--net/bluetooth/hci_sysfs.c3
-rw-r--r--net/bridge/br_input.c5
-rw-r--r--net/bridge/br_stp.c3
-rw-r--r--net/core/gen_estimator.c13
-rw-r--r--net/core/netpoll.c8
-rw-r--r--net/ipv4/Kconfig2
-rw-r--r--net/ipv4/ipconfig.c12
-rw-r--r--net/ipv4/tcp.c5
-rw-r--r--net/mac80211/rc80211_minstrel.c2
-rw-r--r--net/mac80211/rc80211_pid_algo.c2
-rw-r--r--net/netfilter/ipvs/ip_vs_conn.c9
-rw-r--r--net/netfilter/ipvs/ip_vs_core.c4
-rw-r--r--net/rds/rds.h2
-rw-r--r--net/sched/sch_teql.c5
-rw-r--r--net/sunrpc/xprt.c6
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c2
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_sendto.c3
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c3
-rw-r--r--net/sunrpc/xprtsock.c26
-rw-r--r--scripts/Makefile1
-rw-r--r--scripts/Makefile.build3
-rw-r--r--scripts/Makefile.lib9
-rw-r--r--scripts/dtc/Makefile54
-rw-r--r--scripts/dtc/Makefile.dtc (renamed from arch/powerpc/boot/dtc-src/Makefile.dtc)0
-rw-r--r--scripts/dtc/checks.c (renamed from arch/powerpc/boot/dtc-src/checks.c)0
-rw-r--r--scripts/dtc/data.c (renamed from arch/powerpc/boot/dtc-src/data.c)0
-rw-r--r--scripts/dtc/dtc-lexer.l (renamed from arch/powerpc/boot/dtc-src/dtc-lexer.l)0
-rw-r--r--scripts/dtc/dtc-lexer.lex.c_shipped (renamed from arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped)0
-rw-r--r--scripts/dtc/dtc-parser.tab.c_shipped (renamed from arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped)0
-rw-r--r--scripts/dtc/dtc-parser.tab.h_shipped (renamed from arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped)0
-rw-r--r--scripts/dtc/dtc-parser.y (renamed from arch/powerpc/boot/dtc-src/dtc-parser.y)0
-rw-r--r--scripts/dtc/dtc.c (renamed from arch/powerpc/boot/dtc-src/dtc.c)0
-rw-r--r--scripts/dtc/dtc.h (renamed from arch/powerpc/boot/dtc-src/dtc.h)0
-rw-r--r--scripts/dtc/flattree.c (renamed from arch/powerpc/boot/dtc-src/flattree.c)0
-rw-r--r--scripts/dtc/fstree.c (renamed from arch/powerpc/boot/dtc-src/fstree.c)0
-rw-r--r--scripts/dtc/libfdt/Makefile.libfdt (renamed from arch/powerpc/boot/libfdt/Makefile.libfdt)0
-rw-r--r--scripts/dtc/libfdt/fdt.c (renamed from arch/powerpc/boot/libfdt/fdt.c)0
-rw-r--r--scripts/dtc/libfdt/fdt.h (renamed from arch/powerpc/boot/libfdt/fdt.h)0
-rw-r--r--scripts/dtc/libfdt/fdt_ro.c (renamed from arch/powerpc/boot/libfdt/fdt_ro.c)0
-rw-r--r--scripts/dtc/libfdt/fdt_rw.c (renamed from arch/powerpc/boot/libfdt/fdt_rw.c)0
-rw-r--r--scripts/dtc/libfdt/fdt_strerror.c (renamed from arch/powerpc/boot/libfdt/fdt_strerror.c)0
-rw-r--r--scripts/dtc/libfdt/fdt_sw.c (renamed from arch/powerpc/boot/libfdt/fdt_sw.c)0
-rw-r--r--scripts/dtc/libfdt/fdt_wip.c (renamed from arch/powerpc/boot/libfdt/fdt_wip.c)0
-rw-r--r--scripts/dtc/libfdt/libfdt.h (renamed from arch/powerpc/boot/libfdt/libfdt.h)0
-rw-r--r--scripts/dtc/libfdt/libfdt_env.h (renamed from arch/powerpc/boot/dtc-src/libfdt_env.h)0
-rw-r--r--scripts/dtc/libfdt/libfdt_internal.h (renamed from arch/powerpc/boot/libfdt/libfdt_internal.h)0
-rw-r--r--scripts/dtc/livetree.c (renamed from arch/powerpc/boot/dtc-src/livetree.c)0
-rw-r--r--scripts/dtc/srcpos.c (renamed from arch/powerpc/boot/dtc-src/srcpos.c)0
-rw-r--r--scripts/dtc/srcpos.h (renamed from arch/powerpc/boot/dtc-src/srcpos.h)0
-rw-r--r--scripts/dtc/treesource.c (renamed from arch/powerpc/boot/dtc-src/treesource.c)0
-rw-r--r--scripts/dtc/version_gen.h (renamed from arch/powerpc/boot/dtc-src/version_gen.h)0
-rwxr-xr-xscripts/kernel-doc7
-rw-r--r--scripts/mod/modpost.c118
-rwxr-xr-xscripts/setlocalversion13
-rwxr-xr-xscripts/tags.sh2
-rw-r--r--security/selinux/hooks.c2
-rw-r--r--security/smack/smack_lsm.c11
-rw-r--r--security/tomoyo/common.c12
-rw-r--r--security/tomoyo/common.h2
-rw-r--r--security/tomoyo/domain.c2
-rw-r--r--security/tomoyo/file.c2
-rw-r--r--security/tomoyo/realpath.c18
-rw-r--r--security/tomoyo/realpath.h2
-rw-r--r--security/tomoyo/tomoyo.c2
-rw-r--r--security/tomoyo/tomoyo.h2
-rw-r--r--sound/aoa/codecs/onyx.c76
-rw-r--r--sound/aoa/codecs/tas.c66
-rw-r--r--sound/arm/pxa2xx-ac97-lib.c4
-rw-r--r--sound/core/control.c35
-rw-r--r--sound/core/jack.c3
-rw-r--r--sound/core/pcm_compat.c11
-rw-r--r--sound/core/pcm_lib.c54
-rw-r--r--sound/core/pcm_native.c93
-rw-r--r--sound/core/seq/seq_compat.c9
-rw-r--r--sound/core/timer.c11
-rw-r--r--sound/drivers/pcsp/pcsp_mixer.c2
-rw-r--r--sound/drivers/serial-u16550.c11
-rw-r--r--sound/isa/msnd/msnd.c6
-rw-r--r--sound/isa/sb/sb16_csp.c19
-rw-r--r--sound/isa/wavefront/wavefront_fx.c14
-rw-r--r--sound/isa/wavefront/wavefront_synth.c11
-rw-r--r--sound/pci/ac97/ac97_codec.c2
-rw-r--r--sound/pci/atiixp.c6
-rw-r--r--sound/pci/bt87x.c6
-rw-r--r--sound/pci/cmipci.c2
-rw-r--r--sound/pci/echoaudio/indigodjx.c1
-rw-r--r--sound/pci/echoaudio/indigoiox.c1
-rw-r--r--sound/pci/emu10k1/emufx.c41
-rw-r--r--sound/pci/emu10k1/io.c2
-rw-r--r--sound/pci/hda/hda_codec.c14
-rw-r--r--sound/pci/hda/hda_intel.c47
-rw-r--r--sound/pci/hda/patch_analog.c53
-rw-r--r--sound/pci/hda/patch_conexant.c21
-rw-r--r--sound/pci/hda/patch_realtek.c111
-rw-r--r--sound/pci/hda/patch_sigmatel.c44
-rw-r--r--sound/pci/intel8x0.c105
-rw-r--r--sound/pci/korg1212/korg1212.c6
-rw-r--r--sound/pci/riptide/riptide.c10
-rw-r--r--sound/pci/via82xx.c2
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c3
-rw-r--r--sound/ppc/keywest.c82
-rw-r--r--sound/soc/au1x/dbdma2.c2
-rw-r--r--sound/soc/codecs/Makefile1
-rw-r--r--sound/soc/codecs/twl4030.c8
-rw-r--r--sound/soc/codecs/wm8350.c2
-rw-r--r--sound/soc/codecs/wm8580.c16
-rw-r--r--sound/soc/codecs/wm8990.c40
-rw-r--r--sound/soc/codecs/wm9705.c2
-rw-r--r--sound/soc/davinci/Kconfig7
-rw-r--r--sound/soc/davinci/davinci-evm.c63
-rw-r--r--sound/soc/davinci/davinci-i2s.c26
-rw-r--r--sound/soc/davinci/davinci-pcm.c71
-rw-r--r--sound/soc/fsl/mpc5200_psc_i2s.c3
-rw-r--r--sound/soc/omap/n810.c4
-rw-r--r--sound/soc/omap/omap-mcbsp.c12
-rw-r--r--sound/soc/omap/omap-mcbsp.h3
-rw-r--r--sound/soc/omap/omap-pcm.c5
-rw-r--r--sound/soc/omap/omap-pcm.h3
-rw-r--r--sound/soc/omap/osk5912.c4
-rw-r--r--sound/soc/pxa/magician.c2
-rw-r--r--sound/soc/pxa/palm27x.c27
-rw-r--r--sound/soc/pxa/pxa-ssp.c37
-rw-r--r--sound/soc/s3c24xx/Kconfig6
-rw-r--r--sound/soc/s3c24xx/jive_wm8750.c12
-rw-r--r--sound/soc/s3c24xx/s3c-i2s-v2.c21
-rw-r--r--sound/soc/s3c24xx/s3c2412-i2s.c2
-rw-r--r--sound/soc/sh/dma-sh7760.c3
-rw-r--r--sound/soc/soc-core.c3
-rw-r--r--sound/sparc/dbri.c3
-rw-r--r--sound/usb/caiaq/Makefile4
-rw-r--r--sound/usb/caiaq/audio.c (renamed from sound/usb/caiaq/caiaq-audio.c)24
-rw-r--r--sound/usb/caiaq/audio.h (renamed from sound/usb/caiaq/caiaq-audio.h)0
-rw-r--r--sound/usb/caiaq/control.c (renamed from sound/usb/caiaq/caiaq-control.c)10
-rw-r--r--sound/usb/caiaq/control.h (renamed from sound/usb/caiaq/caiaq-control.h)0
-rw-r--r--sound/usb/caiaq/device.c (renamed from sound/usb/caiaq/caiaq-device.c)25
-rw-r--r--sound/usb/caiaq/device.h (renamed from sound/usb/caiaq/caiaq-device.h)0
-rw-r--r--sound/usb/caiaq/input.c (renamed from sound/usb/caiaq/caiaq-input.c)11
-rw-r--r--sound/usb/caiaq/input.h (renamed from sound/usb/caiaq/caiaq-input.h)0
-rw-r--r--sound/usb/caiaq/midi.c (renamed from sound/usb/caiaq/caiaq-midi.c)13
-rw-r--r--sound/usb/caiaq/midi.h (renamed from sound/usb/caiaq/caiaq-midi.h)0
-rw-r--r--sound/usb/usx2y/us122l.c22
-rw-r--r--sound/usb/usx2y/usX2Yhwdep.c13
-rw-r--r--sound/usb/usx2y/usb_stream.c67
-rw-r--r--sound/usb/usx2y/usbusx2yaudio.c3
-rw-r--r--virt/kvm/kvm_main.c11
1787 files changed, 38426 insertions, 34527 deletions
diff --git a/.gitignore b/.gitignore
index 869e1a3b64b6..51bd99d6a260 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,6 +49,7 @@ include/linux/compile.h
49include/linux/version.h 49include/linux/version.h
50include/linux/utsrelease.h 50include/linux/utsrelease.h
51include/linux/bounds.h 51include/linux/bounds.h
52include/generated
52 53
53# stgit generated dirs 54# stgit generated dirs
54patches-* 55patches-*
diff --git a/Documentation/ABI/testing/debugfs-pktcdvd b/Documentation/ABI/testing/debugfs-pktcdvd
index bf9c16b64c34..cf11736acb76 100644
--- a/Documentation/ABI/testing/debugfs-pktcdvd
+++ b/Documentation/ABI/testing/debugfs-pktcdvd
@@ -1,4 +1,4 @@
1What: /debug/pktcdvd/pktcdvd[0-7] 1What: /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
2Date: Oct. 2006 2Date: Oct. 2006
3KernelVersion: 2.6.20 3KernelVersion: 2.6.20
4Contact: Thomas Maier <balagi@justmail.de> 4Contact: Thomas Maier <balagi@justmail.de>
@@ -10,10 +10,10 @@ debugfs interface
10The pktcdvd module (packet writing driver) creates 10The pktcdvd module (packet writing driver) creates
11these files in debugfs: 11these files in debugfs:
12 12
13/debug/pktcdvd/pktcdvd[0-7]/ 13/sys/kernel/debug/pktcdvd/pktcdvd[0-7]/
14 info (0444) Lots of driver statistics and infos. 14 info (0444) Lots of driver statistics and infos.
15 15
16Example: 16Example:
17------- 17-------
18 18
19cat /debug/pktcdvd/pktcdvd0/info 19cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
diff --git a/Documentation/ABI/testing/sysfs-firmware-acpi b/Documentation/ABI/testing/sysfs-firmware-acpi
index e8ffc70ffe12..4f9ba3c2fca7 100644
--- a/Documentation/ABI/testing/sysfs-firmware-acpi
+++ b/Documentation/ABI/testing/sysfs-firmware-acpi
@@ -69,9 +69,13 @@ Description:
69 gpe1F: 0 invalid 69 gpe1F: 0 invalid
70 gpe_all: 1192 70 gpe_all: 1192
71 sci: 1194 71 sci: 1194
72 sci_not: 0
72 73
73 sci - The total number of times the ACPI SCI 74 sci - The number of times the ACPI SCI
74 has claimed an interrupt. 75 has been called and claimed an interrupt.
76
77 sci_not - The number of times the ACPI SCI
78 has been called and NOT claimed an interrupt.
75 79
76 gpe_all - count of SCI caused by GPEs. 80 gpe_all - count of SCI caused by GPEs.
77 81
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index 8918a32c6b3a..b1eb661e6302 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -143,7 +143,8 @@ quiet_cmd_db2pdf = PDF $@
143 $(call cmd,db2pdf) 143 $(call cmd,db2pdf)
144 144
145 145
146main_idx = Documentation/DocBook/index.html 146index = index.html
147main_idx = Documentation/DocBook/$(index)
147build_main_index = rm -rf $(main_idx) && \ 148build_main_index = rm -rf $(main_idx) && \
148 echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \ 149 echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \
149 echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \ 150 echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \
@@ -232,7 +233,7 @@ clean-files := $(DOCBOOKS) \
232 $(patsubst %.xml, %.pdf, $(DOCBOOKS)) \ 233 $(patsubst %.xml, %.pdf, $(DOCBOOKS)) \
233 $(patsubst %.xml, %.html, $(DOCBOOKS)) \ 234 $(patsubst %.xml, %.html, $(DOCBOOKS)) \
234 $(patsubst %.xml, %.9, $(DOCBOOKS)) \ 235 $(patsubst %.xml, %.9, $(DOCBOOKS)) \
235 $(C-procfs-example) 236 $(C-procfs-example) $(index)
236 237
237clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man 238clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
238 239
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index d6ac5d61820e..44b3def961a2 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -190,16 +190,20 @@ X!Ekernel/module.c
190!Edrivers/pci/pci.c 190!Edrivers/pci/pci.c
191!Edrivers/pci/pci-driver.c 191!Edrivers/pci/pci-driver.c
192!Edrivers/pci/remove.c 192!Edrivers/pci/remove.c
193!Edrivers/pci/pci-acpi.c
194!Edrivers/pci/search.c 193!Edrivers/pci/search.c
195!Edrivers/pci/msi.c 194!Edrivers/pci/msi.c
196!Edrivers/pci/bus.c 195!Edrivers/pci/bus.c
196!Edrivers/pci/access.c
197!Edrivers/pci/irq.c
198!Edrivers/pci/htirq.c
197<!-- FIXME: Removed for now since no structured comments in source 199<!-- FIXME: Removed for now since no structured comments in source
198X!Edrivers/pci/hotplug.c 200X!Edrivers/pci/hotplug.c
199--> 201-->
200!Edrivers/pci/probe.c 202!Edrivers/pci/probe.c
203!Edrivers/pci/slot.c
201!Edrivers/pci/rom.c 204!Edrivers/pci/rom.c
202!Edrivers/pci/iov.c 205!Edrivers/pci/iov.c
206!Idrivers/pci/pci-sysfs.c
203 </sect1> 207 </sect1>
204 <sect1><title>PCI Hotplug Support Library</title> 208 <sect1><title>PCI Hotplug Support Library</title>
205!Edrivers/pci/hotplug/pci_hotplug_core.c 209!Edrivers/pci/hotplug/pci_hotplug_core.c
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl
index 372dec20c8da..5cff41a5fa7c 100644
--- a/Documentation/DocBook/kgdb.tmpl
+++ b/Documentation/DocBook/kgdb.tmpl
@@ -281,7 +281,7 @@
281 seriously wrong while debugging, it will most often be the case 281 seriously wrong while debugging, it will most often be the case
282 that you want to enable gdb to be verbose about its target 282 that you want to enable gdb to be verbose about its target
283 communications. You do this prior to issuing the <constant>target 283 communications. You do this prior to issuing the <constant>target
284 remote</constant> command by typing in: <constant>set remote debug 1</constant> 284 remote</constant> command by typing in: <constant>set debug remote 1</constant>
285 </para> 285 </para>
286 </chapter> 286 </chapter>
287 <chapter id="KGDBTestSuite"> 287 <chapter id="KGDBTestSuite">
diff --git a/Documentation/block/biodoc.txt b/Documentation/block/biodoc.txt
index ecad6ee75705..6fab97ea7e6b 100644
--- a/Documentation/block/biodoc.txt
+++ b/Documentation/block/biodoc.txt
@@ -1040,23 +1040,21 @@ Front merges are handled by the binary trees in AS and deadline schedulers.
1040iii. Plugging the queue to batch requests in anticipation of opportunities for 1040iii. Plugging the queue to batch requests in anticipation of opportunities for
1041 merge/sort optimizations 1041 merge/sort optimizations
1042 1042
1043This is just the same as in 2.4 so far, though per-device unplugging
1044support is anticipated for 2.5. Also with a priority-based i/o scheduler,
1045such decisions could be based on request priorities.
1046
1047Plugging is an approach that the current i/o scheduling algorithm resorts to so 1043Plugging is an approach that the current i/o scheduling algorithm resorts to so
1048that it collects up enough requests in the queue to be able to take 1044that it collects up enough requests in the queue to be able to take
1049advantage of the sorting/merging logic in the elevator. If the 1045advantage of the sorting/merging logic in the elevator. If the
1050queue is empty when a request comes in, then it plugs the request queue 1046queue is empty when a request comes in, then it plugs the request queue
1051(sort of like plugging the bottom of a vessel to get fluid to build up) 1047(sort of like plugging the bath tub of a vessel to get fluid to build up)
1052till it fills up with a few more requests, before starting to service 1048till it fills up with a few more requests, before starting to service
1053the requests. This provides an opportunity to merge/sort the requests before 1049the requests. This provides an opportunity to merge/sort the requests before
1054passing them down to the device. There are various conditions when the queue is 1050passing them down to the device. There are various conditions when the queue is
1055unplugged (to open up the flow again), either through a scheduled task or 1051unplugged (to open up the flow again), either through a scheduled task or
1056could be on demand. For example wait_on_buffer sets the unplugging going 1052could be on demand. For example wait_on_buffer sets the unplugging going
1057(by running tq_disk) so the read gets satisfied soon. So in the read case, 1053through sync_buffer() running blk_run_address_space(mapping). Or the caller
1058the queue gets explicitly unplugged as part of waiting for completion, 1054can do it explicity through blk_unplug(bdev). So in the read case,
1059in fact all queues get unplugged as a side-effect. 1055the queue gets explicitly unplugged as part of waiting for completion on that
1056buffer. For page driven IO, the address space ->sync_page() takes care of
1057doing the blk_run_address_space().
1060 1058
1061Aside: 1059Aside:
1062 This is kind of controversial territory, as it's not clear if plugging is 1060 This is kind of controversial territory, as it's not clear if plugging is
@@ -1067,11 +1065,6 @@ Aside:
1067 multi-page bios being queued in one shot, we may not need to wait to merge 1065 multi-page bios being queued in one shot, we may not need to wait to merge
1068 a big request from the broken up pieces coming by. 1066 a big request from the broken up pieces coming by.
1069 1067
1070 Per-queue granularity unplugging (still a Todo) may help reduce some of the
1071 concerns with just a single tq_disk flush approach. Something like
1072 blk_kick_queue() to unplug a specific queue (right away ?)
1073 or optionally, all queues, is in the plan.
1074
10754.4 I/O contexts 10684.4 I/O contexts
1076I/O contexts provide a dynamically allocated per process data area. They may 1069I/O contexts provide a dynamically allocated per process data area. They may
1077be used in I/O schedulers, and in the block layer (could be used for IO statis, 1070be used in I/O schedulers, and in the block layer (could be used for IO statis,
diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
index a98a7fe7aabb..1a608877b14e 100644
--- a/Documentation/cgroups/memory.txt
+++ b/Documentation/cgroups/memory.txt
@@ -6,15 +6,14 @@ used here with the memory controller that is used in hardware.
6 6
7Salient features 7Salient features
8 8
9a. Enable control of both RSS (mapped) and Page Cache (unmapped) pages 9a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
10 Swap Cache memory pages.
10b. The infrastructure allows easy addition of other types of memory to control 11b. The infrastructure allows easy addition of other types of memory to control
11c. Provides *zero overhead* for non memory controller users 12c. Provides *zero overhead* for non memory controller users
12d. Provides a double LRU: global memory pressure causes reclaim from the 13d. Provides a double LRU: global memory pressure causes reclaim from the
13 global LRU; a cgroup on hitting a limit, reclaims from the per 14 global LRU; a cgroup on hitting a limit, reclaims from the per
14 cgroup LRU 15 cgroup LRU
15 16
16NOTE: Swap Cache (unmapped) is not accounted now.
17
18Benefits and Purpose of the memory controller 17Benefits and Purpose of the memory controller
19 18
20The memory controller isolates the memory behaviour of a group of tasks 19The memory controller isolates the memory behaviour of a group of tasks
@@ -290,34 +289,44 @@ will be charged as a new owner of it.
290 moved to the parent. If you want to avoid that, force_empty will be useful. 289 moved to the parent. If you want to avoid that, force_empty will be useful.
291 290
2925.2 stat file 2915.2 stat file
293 memory.stat file includes following statistics (now) 292
294 cache - # of pages from page-cache and shmem. 293memory.stat file includes following statistics
295 rss - # of pages from anonymous memory. 294
296 pgpgin - # of event of charging 295cache - # of bytes of page cache memory.
297 pgpgout - # of event of uncharging 296rss - # of bytes of anonymous and swap cache memory.
298 active_anon - # of pages on active lru of anon, shmem. 297pgpgin - # of pages paged in (equivalent to # of charging events).
299 inactive_anon - # of pages on active lru of anon, shmem 298pgpgout - # of pages paged out (equivalent to # of uncharging events).
300 active_file - # of pages on active lru of file-cache 299active_anon - # of bytes of anonymous and swap cache memory on active
301 inactive_file - # of pages on inactive lru of file cache 300 lru list.
302 unevictable - # of pages cannot be reclaimed.(mlocked etc) 301inactive_anon - # of bytes of anonymous memory and swap cache memory on
303 302 inactive lru list.
304 Below is depend on CONFIG_DEBUG_VM. 303active_file - # of bytes of file-backed memory on active lru list.
305 inactive_ratio - VM internal parameter. (see mm/page_alloc.c) 304inactive_file - # of bytes of file-backed memory on inactive lru list.
306 recent_rotated_anon - VM internal parameter. (see mm/vmscan.c) 305unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
307 recent_rotated_file - VM internal parameter. (see mm/vmscan.c) 306
308 recent_scanned_anon - VM internal parameter. (see mm/vmscan.c) 307The following additional stats are dependent on CONFIG_DEBUG_VM.
309 recent_scanned_file - VM internal parameter. (see mm/vmscan.c) 308
310 309inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
311 Memo: 310recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
311recent_rotated_file - VM internal parameter. (see mm/vmscan.c)
312recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
313recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
314
315Memo:
312 recent_rotated means recent frequency of lru rotation. 316 recent_rotated means recent frequency of lru rotation.
313 recent_scanned means recent # of scans to lru. 317 recent_scanned means recent # of scans to lru.
314 showing for better debug please see the code for meanings. 318 showing for better debug please see the code for meanings.
315 319
320Note:
321 Only anonymous and swap cache memory is listed as part of 'rss' stat.
322 This should not be confused with the true 'resident set size' or the
323 amount of physical memory used by the cgroup. Per-cgroup rss
324 accounting is not done yet.
316 325
3175.3 swappiness 3265.3 swappiness
318 Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only. 327 Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
319 328
320 Following cgroup's swapiness can't be changed. 329 Following cgroups' swapiness can't be changed.
321 - root cgroup (uses /proc/sys/vm/swappiness). 330 - root cgroup (uses /proc/sys/vm/swappiness).
322 - a cgroup which uses hierarchy and it has child cgroup. 331 - a cgroup which uses hierarchy and it has child cgroup.
323 - a cgroup which uses hierarchy and not the root of hierarchy. 332 - a cgroup which uses hierarchy and not the root of hierarchy.
diff --git a/Documentation/cgroups/resource_counter.txt b/Documentation/cgroups/resource_counter.txt
index f196ac1d7d25..95b24d766eab 100644
--- a/Documentation/cgroups/resource_counter.txt
+++ b/Documentation/cgroups/resource_counter.txt
@@ -47,13 +47,18 @@ to work with it.
47 47
482. Basic accounting routines 482. Basic accounting routines
49 49
50 a. void res_counter_init(struct res_counter *rc) 50 a. void res_counter_init(struct res_counter *rc,
51 struct res_counter *rc_parent)
51 52
52 Initializes the resource counter. As usual, should be the first 53 Initializes the resource counter. As usual, should be the first
53 routine called for a new counter. 54 routine called for a new counter.
54 55
55 b. int res_counter_charge[_locked] 56 The struct res_counter *parent can be used to define a hierarchical
56 (struct res_counter *rc, unsigned long val) 57 child -> parent relationship directly in the res_counter structure,
58 NULL can be used to define no relationship.
59
60 c. int res_counter_charge(struct res_counter *rc, unsigned long val,
61 struct res_counter **limit_fail_at)
57 62
58 When a resource is about to be allocated it has to be accounted 63 When a resource is about to be allocated it has to be accounted
59 with the appropriate resource counter (controller should determine 64 with the appropriate resource counter (controller should determine
@@ -67,15 +72,25 @@ to work with it.
67 * if the charging is performed first, then it should be uncharged 72 * if the charging is performed first, then it should be uncharged
68 on error path (if the one is called). 73 on error path (if the one is called).
69 74
70 c. void res_counter_uncharge[_locked] 75 If the charging fails and a hierarchical dependency exists, the
76 limit_fail_at parameter is set to the particular res_counter element
77 where the charging failed.
78
79 d. int res_counter_charge_locked
80 (struct res_counter *rc, unsigned long val)
81
82 The same as res_counter_charge(), but it must not acquire/release the
83 res_counter->lock internally (it must be called with res_counter->lock
84 held).
85
86 e. void res_counter_uncharge[_locked]
71 (struct res_counter *rc, unsigned long val) 87 (struct res_counter *rc, unsigned long val)
72 88
73 When a resource is released (freed) it should be de-accounted 89 When a resource is released (freed) it should be de-accounted
74 from the resource counter it was accounted to. This is called 90 from the resource counter it was accounted to. This is called
75 "uncharging". 91 "uncharging".
76 92
77 The _locked routines imply that the res_counter->lock is taken. 93 The _locked routines imply that the res_counter->lock is taken.
78
79 94
80 2.1 Other accounting routines 95 2.1 Other accounting routines
81 96
diff --git a/Documentation/driver-model/platform.txt b/Documentation/driver-model/platform.txt
index 83009fdcbbc8..2e2c2ea90ceb 100644
--- a/Documentation/driver-model/platform.txt
+++ b/Documentation/driver-model/platform.txt
@@ -169,3 +169,62 @@ three different ways to find such a match:
169 be probed later if another device registers. (Which is OK, since 169 be probed later if another device registers. (Which is OK, since
170 this interface is only for use with non-hotpluggable devices.) 170 this interface is only for use with non-hotpluggable devices.)
171 171
172
173Early Platform Devices and Drivers
174~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175The early platform interfaces provide platform data to platform device
176drivers early on during the system boot. The code is built on top of the
177early_param() command line parsing and can be executed very early on.
178
179Example: "earlyprintk" class early serial console in 6 steps
180
1811. Registering early platform device data
182~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183The architecture code registers platform device data using the function
184early_platform_add_devices(). In the case of early serial console this
185should be hardware configuration for the serial port. Devices registered
186at this point will later on be matched against early platform drivers.
187
1882. Parsing kernel command line
189~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190The architecture code calls parse_early_param() to parse the kernel
191command line. This will execute all matching early_param() callbacks.
192User specified early platform devices will be registered at this point.
193For the early serial console case the user can specify port on the
194kernel command line as "earlyprintk=serial.0" where "earlyprintk" is
195the class string, "serial" is the name of the platfrom driver and
1960 is the platform device id. If the id is -1 then the dot and the
197id can be omitted.
198
1993. Installing early platform drivers belonging to a certain class
200~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201The architecture code may optionally force registration of all early
202platform drivers belonging to a certain class using the function
203early_platform_driver_register_all(). User specified devices from
204step 2 have priority over these. This step is omitted by the serial
205driver example since the early serial driver code should be disabled
206unless the user has specified port on the kernel command line.
207
2084. Early platform driver registration
209~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210Compiled-in platform drivers making use of early_platform_init() are
211automatically registered during step 2 or 3. The serial driver example
212should use early_platform_init("earlyprintk", &platform_driver).
213
2145. Probing of early platform drivers belonging to a certain class
215~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216The architecture code calls early_platform_driver_probe() to match
217registered early platform devices associated with a certain class with
218registered early platform drivers. Matched devices will get probed().
219This step can be executed at any point during the early boot. As soon
220as possible may be good for the serial port case.
221
2226. Inside the early platform driver probe()
223~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224The driver code needs to take special care during early boot, especially
225when it comes to memory allocation and interrupt registration. The code
226in the probe() function can use is_early_platform_device() to check if
227it is called at early platform device or at the regular platform device
228time. The early serial driver performs register_console() at this point.
229
230For further information, see <linux/platform_device.h>.
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 76efe5b71d7d..3120f8dd2c31 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -512,16 +512,24 @@ locking rules:
512 BKL mmap_sem PageLocked(page) 512 BKL mmap_sem PageLocked(page)
513open: no yes 513open: no yes
514close: no yes 514close: no yes
515fault: no yes 515fault: no yes can return with page locked
516page_mkwrite: no yes no 516page_mkwrite: no yes can return with page locked
517access: no yes 517access: no yes
518 518
519 ->page_mkwrite() is called when a previously read-only page is 519 ->fault() is called when a previously not present pte is about
520about to become writeable. The file system is responsible for 520to be faulted in. The filesystem must find and return the page associated
521protecting against truncate races. Once appropriate action has been 521with the passed in "pgoff" in the vm_fault structure. If it is possible that
522taking to lock out truncate, the page range should be verified to be 522the page may be truncated and/or invalidated, then the filesystem must lock
523within i_size. The page mapping should also be checked that it is not 523the page, then ensure it is not already truncated (the page lock will block
524NULL. 524subsequent truncate), and then return with VM_FAULT_LOCKED, and the page
525locked. The VM will unlock the page.
526
527 ->page_mkwrite() is called when a previously read-only pte is
528about to become writeable. The filesystem again must ensure that there are
529no truncate/invalidate races, and then return with the page locked. If
530the page has been truncated, the filesystem should not look up a new page
531like the ->fault() handler, but simply return with VM_FAULT_NOPAGE, which
532will cause the VM to retry the fault.
525 533
526 ->access() is called when get_user_pages() fails in 534 ->access() is called when get_user_pages() fails in
527acces_process_vm(), typically used to debug a process through 535acces_process_vm(), typically used to debug a process through
diff --git a/Documentation/filesystems/caching/cachefiles.txt b/Documentation/filesystems/caching/cachefiles.txt
index c78a49b7bba6..748a1ae49e12 100644
--- a/Documentation/filesystems/caching/cachefiles.txt
+++ b/Documentation/filesystems/caching/cachefiles.txt
@@ -407,7 +407,7 @@ A NOTE ON SECURITY
407================== 407==================
408 408
409CacheFiles makes use of the split security in the task_struct. It allocates 409CacheFiles makes use of the split security in the task_struct. It allocates
410its own task_security structure, and redirects current->act_as to point to it 410its own task_security structure, and redirects current->cred to point to it
411when it acts on behalf of another process, in that process's context. 411when it acts on behalf of another process, in that process's context.
412 412
413The reason it does this is that it calls vfs_mkdir() and suchlike rather than 413The reason it does this is that it calls vfs_mkdir() and suchlike rather than
@@ -429,9 +429,9 @@ This means it may lose signals or ptrace events for example, and affects what
429the process looks like in /proc. 429the process looks like in /proc.
430 430
431So CacheFiles makes use of a logical split in the security between the 431So CacheFiles makes use of a logical split in the security between the
432objective security (task->sec) and the subjective security (task->act_as). The 432objective security (task->real_cred) and the subjective security (task->cred).
433objective security holds the intrinsic security properties of a process and is 433The objective security holds the intrinsic security properties of a process and
434never overridden. This is what appears in /proc, and is what is used when a 434is never overridden. This is what appears in /proc, and is what is used when a
435process is the target of an operation by some other process (SIGKILL for 435process is the target of an operation by some other process (SIGKILL for
436example). 436example).
437 437
diff --git a/Documentation/filesystems/pohmelfs/design_notes.txt b/Documentation/filesystems/pohmelfs/design_notes.txt
index 6d6db60d567d..dcf833587162 100644
--- a/Documentation/filesystems/pohmelfs/design_notes.txt
+++ b/Documentation/filesystems/pohmelfs/design_notes.txt
@@ -56,9 +56,10 @@ workloads and can fully utilize the bandwidth to the servers when doing bulk
56data transfers. 56data transfers.
57 57
58POHMELFS clients operate with a working set of servers and are capable of balancing read-only 58POHMELFS clients operate with a working set of servers and are capable of balancing read-only
59operations (like lookups or directory listings) between them. 59operations (like lookups or directory listings) between them according to IO priorities.
60Administrators can add or remove servers from the set at run-time via special commands (described 60Administrators can add or remove servers from the set at run-time via special commands (described
61in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers. 61in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers, which are connected
62with write permission turned on. IO priority and permissions can be changed in run-time.
62 63
63POHMELFS is capable of full data channel encryption and/or strong crypto hashing. 64POHMELFS is capable of full data channel encryption and/or strong crypto hashing.
64One can select any kernel supported cipher, encryption mode, hash type and operation mode 65One can select any kernel supported cipher, encryption mode, hash type and operation mode
diff --git a/Documentation/filesystems/pohmelfs/info.txt b/Documentation/filesystems/pohmelfs/info.txt
index 4e3d50157083..db2e41393626 100644
--- a/Documentation/filesystems/pohmelfs/info.txt
+++ b/Documentation/filesystems/pohmelfs/info.txt
@@ -1,6 +1,8 @@
1POHMELFS usage information. 1POHMELFS usage information.
2 2
3Mount options: 3Mount options.
4All but index, number of crypto threads and maximum IO size can changed via remount.
5
4idx=%u 6idx=%u
5 Each mountpoint is associated with a special index via this option. 7 Each mountpoint is associated with a special index via this option.
6 Administrator can add or remove servers from the given index, so all mounts, 8 Administrator can add or remove servers from the given index, so all mounts,
@@ -52,16 +54,27 @@ mcache_timeout=%u
52 54
53Usage examples. 55Usage examples.
54 56
55Add (or remove if it already exists) server server1.net:1025 into the working set with index $idx 57Add server server1.net:1025 into the working set with index $idx
56with appropriate hash algorithm and key file and cipher algorithm, mode and key file: 58with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
57$cfg -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key 59$cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
58 60
59Mount filesystem with given index $idx to /mnt mountpoint. 61Mount filesystem with given index $idx to /mnt mountpoint.
60Client will connect to all servers specified in the working set via previous command: 62Client will connect to all servers specified in the working set via previous command:
61mount -t pohmel -o idx=$idx q /mnt 63mount -t pohmel -o idx=$idx q /mnt
62 64
63One can add or remove servers from working set after mounting too. 65Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw):
66$cfg A modify -a server1.net -p 1025 -i $idx -I 1
67
68Change IO priority to 123 (node with the highest priority gets read requests).
69$cfg A modify -a server1.net -p 1025 -i $idx -P 123
64 70
71One can check currect status of all connections in the mountstats file:
72# cat /proc/$PID/mountstats
73...
74device none mounted on /mnt with fstype pohmel
75idx addr(:port) socket_type protocol active priority permissions
760 server1.net:1026 1 6 1 250 1
770 server2.net:1025 1 6 1 123 3
65 78
66Server installation. 79Server installation.
67 80
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index deeeed0faa8f..f49eecf2e573 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -277,8 +277,7 @@ or bottom half).
277 unfreeze_fs: called when VFS is unlocking a filesystem and making it writable 277 unfreeze_fs: called when VFS is unlocking a filesystem and making it writable
278 again. 278 again.
279 279
280 statfs: called when the VFS needs to get filesystem statistics. This 280 statfs: called when the VFS needs to get filesystem statistics.
281 is called with the kernel lock held
282 281
283 remount_fs: called when the filesystem is remounted. This is called 282 remount_fs: called when the filesystem is remounted. This is called
284 with the kernel lock held 283 with the kernel lock held
diff --git a/Documentation/input/bcm5974.txt b/Documentation/input/bcm5974.txt
new file mode 100644
index 000000000000..5e22dcf6d48d
--- /dev/null
+++ b/Documentation/input/bcm5974.txt
@@ -0,0 +1,65 @@
1BCM5974 Driver (bcm5974)
2------------------------
3 Copyright (C) 2008-2009 Henrik Rydberg <rydberg@euromail.se>
4
5The USB initialization and package decoding was made by Scott Shawcroft as
6part of the touchd user-space driver project:
7 Copyright (C) 2008 Scott Shawcroft (scott.shawcroft@gmail.com)
8
9The BCM5974 driver is based on the appletouch driver:
10 Copyright (C) 2001-2004 Greg Kroah-Hartman (greg@kroah.com)
11 Copyright (C) 2005 Johannes Berg (johannes@sipsolutions.net)
12 Copyright (C) 2005 Stelian Pop (stelian@popies.net)
13 Copyright (C) 2005 Frank Arnold (frank@scirocco-5v-turbo.de)
14 Copyright (C) 2005 Peter Osterlund (petero2@telia.com)
15 Copyright (C) 2005 Michael Hanselmann (linux-kernel@hansmi.ch)
16 Copyright (C) 2006 Nicolas Boichat (nicolas@boichat.ch)
17
18This driver adds support for the multi-touch trackpad on the new Apple
19Macbook Air and Macbook Pro laptops. It replaces the appletouch driver on
20those computers, and integrates well with the synaptics driver of the Xorg
21system.
22
23Known to work on Macbook Air, Macbook Pro Penryn and the new unibody
24Macbook 5 and Macbook Pro 5.
25
26Usage
27-----
28
29The driver loads automatically for the supported usb device ids, and
30becomes available both as an event device (/dev/input/event*) and as a
31mouse via the mousedev driver (/dev/input/mice).
32
33USB Race
34--------
35
36The Apple multi-touch trackpads report both mouse and keyboard events via
37different interfaces of the same usb device. This creates a race condition
38with the HID driver, which, if not told otherwise, will find the standard
39HID mouse and keyboard, and claim the whole device. To remedy, the usb
40product id must be listed in the mouse_ignore list of the hid driver.
41
42Debug output
43------------
44
45To ease the development for new hardware version, verbose packet output can
46be switched on with the debug kernel module parameter. The range [1-9]
47yields different levels of verbosity. Example (as root):
48
49echo -n 9 > /sys/module/bcm5974/parameters/debug
50
51tail -f /var/log/debug
52
53echo -n 0 > /sys/module/bcm5974/parameters/debug
54
55Trivia
56------
57
58The driver was developed at the ubuntu forums in June 2008 [1], and now has
59a more permanent home at bitmath.org [2].
60
61Links
62-----
63
64[1] http://ubuntuforums.org/showthread.php?t=840040
65[2] http://http://bitmath.org/code/
diff --git a/Documentation/input/multi-touch-protocol.txt b/Documentation/input/multi-touch-protocol.txt
new file mode 100644
index 000000000000..9f09557aea39
--- /dev/null
+++ b/Documentation/input/multi-touch-protocol.txt
@@ -0,0 +1,140 @@
1Multi-touch (MT) Protocol
2-------------------------
3 Copyright (C) 2009 Henrik Rydberg <rydberg@euromail.se>
4
5
6Introduction
7------------
8
9In order to utilize the full power of the new multi-touch devices, a way to
10report detailed finger data to user space is needed. This document
11describes the multi-touch (MT) protocol which allows kernel drivers to
12report details for an arbitrary number of fingers.
13
14
15Usage
16-----
17
18Anonymous finger details are sent sequentially as separate packets of ABS
19events. Only the ABS_MT events are recognized as part of a finger
20packet. The end of a packet is marked by calling the input_mt_sync()
21function, which generates a SYN_MT_REPORT event. The end of multi-touch
22transfer is marked by calling the usual input_sync() function.
23
24A set of ABS_MT events with the desired properties is defined. The events
25are divided into categories, to allow for partial implementation. The
26minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and
27ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the
28device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size
29of the approaching finger. Anisotropy and direction may be specified with
30ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. Devices with
31more granular information may specify general shapes as blobs, i.e., as a
32sequence of rectangular shapes grouped together by an
33ABS_MT_BLOB_ID. Finally, the ABS_MT_TOOL_TYPE may be used to specify
34whether the touching tool is a finger or a pen or something else.
35
36
37Event Semantics
38---------------
39
40The word "contact" is used to describe a tool which is in direct contact
41with the surface. A finger, a pen or a rubber all classify as contacts.
42
43ABS_MT_TOUCH_MAJOR
44
45The length of the major axis of the contact. The length should be given in
46surface units. If the surface has an X times Y resolution, the largest
47possible value of ABS_MT_TOUCH_MAJOR is sqrt(X^2 + Y^2), the diagonal.
48
49ABS_MT_TOUCH_MINOR
50
51The length, in surface units, of the minor axis of the contact. If the
52contact is circular, this event can be omitted.
53
54ABS_MT_WIDTH_MAJOR
55
56The length, in surface units, of the major axis of the approaching
57tool. This should be understood as the size of the tool itself. The
58orientation of the contact and the approaching tool are assumed to be the
59same.
60
61ABS_MT_WIDTH_MINOR
62
63The length, in surface units, of the minor axis of the approaching
64tool. Omit if circular.
65
66The above four values can be used to derive additional information about
67the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates
68the notion of pressure. The fingers of the hand and the palm all have
69different characteristic widths [1].
70
71ABS_MT_ORIENTATION
72
73The orientation of the ellipse. The value should describe half a revolution
74clockwise around the touch center. The scale of the value is arbitrary, but
75zero should be returned for an ellipse aligned along the Y axis of the
76surface. As an example, an index finger placed straight onto the axis could
77return zero orientation, something negative when twisted to the left, and
78something positive when twisted to the right. This value can be omitted if
79the touching object is circular, or if the information is not available in
80the kernel driver.
81
82ABS_MT_POSITION_X
83
84The surface X coordinate of the center of the touching ellipse.
85
86ABS_MT_POSITION_Y
87
88The surface Y coordinate of the center of the touching ellipse.
89
90ABS_MT_TOOL_TYPE
91
92The type of approaching tool. A lot of kernel drivers cannot distinguish
93between different tool types, such as a finger or a pen. In such cases, the
94event should be omitted. The protocol currently supports MT_TOOL_FINGER and
95MT_TOOL_PEN [2].
96
97ABS_MT_BLOB_ID
98
99The BLOB_ID groups several packets together into one arbitrarily shaped
100contact. This is a low-level anonymous grouping, and should not be confused
101with the high-level contactID, explained below. Most kernel drivers will
102not have this capability, and can safely omit the event.
103
104
105Finger Tracking
106---------------
107
108The kernel driver should generate an arbitrary enumeration of the set of
109anonymous contacts currently on the surface. The order in which the packets
110appear in the event stream is not important.
111
112The process of finger tracking, i.e., to assign a unique contactID to each
113initiated contact on the surface, is left to user space; preferably the
114multi-touch X driver [3]. In that driver, the contactID stays the same and
115unique until the contact vanishes (when the finger leaves the surface). The
116problem of assigning a set of anonymous fingers to a set of identified
117fingers is a euclidian bipartite matching problem at each event update, and
118relies on a sufficiently rapid update rate.
119
120Notes
121-----
122
123In order to stay compatible with existing applications, the data
124reported in a finger packet must not be recognized as single-touch
125events. In addition, all finger data must bypass input filtering,
126since subsequent events of the same type refer to different fingers.
127
128The first kernel driver to utilize the MT protocol is the bcm5974 driver,
129where examples can be found.
130
131[1] With the extension ABS_MT_APPROACH_X and ABS_MT_APPROACH_Y, the
132difference between the contact position and the approaching tool position
133could be used to derive tilt.
134[2] The list can of course be extended.
135[3] The multi-touch X driver is currently in the prototyping stage. At the
136time of writing (April 2009), the MT protocol is not yet merged, and the
137prototype implements finger matching, basic mouse support and two-finger
138scrolling. The project aims at improving the quality of current multi-touch
139functionality available in the synaptics X driver, and in addition
140implement more advanced gestures.
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index d4b05672f9f7..d76cfd8712e1 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -316,6 +316,16 @@ more details, with real examples.
316 #arch/m68k/fpsp040/Makefile 316 #arch/m68k/fpsp040/Makefile
317 ldflags-y := -x 317 ldflags-y := -x
318 318
319 subdir-ccflags-y, subdir-asflags-y
320 The two flags listed above are similar to ccflags-y and as-falgs-y.
321 The difference is that the subdir- variants has effect for the kbuild
322 file where tey are present and all subdirectories.
323 Options specified using subdir-* are added to the commandline before
324 the options specified using the non-subdir variants.
325
326 Example:
327 subdir-ccflags-y := -Werror
328
319 CFLAGS_$@, AFLAGS_$@ 329 CFLAGS_$@, AFLAGS_$@
320 330
321 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current 331 CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
diff --git a/Documentation/kernel-doc-nano-HOWTO.txt b/Documentation/kernel-doc-nano-HOWTO.txt
index 026ec7d57384..4d04572b6549 100644
--- a/Documentation/kernel-doc-nano-HOWTO.txt
+++ b/Documentation/kernel-doc-nano-HOWTO.txt
@@ -269,7 +269,10 @@ Use the argument mechanism to document members or constants.
269 269
270Inside a struct description, you can use the "private:" and "public:" 270Inside a struct description, you can use the "private:" and "public:"
271comment tags. Structure fields that are inside a "private:" area 271comment tags. Structure fields that are inside a "private:" area
272are not listed in the generated output documentation. 272are not listed in the generated output documentation. The "private:"
273and "public:" tags must begin immediately following a "/*" comment
274marker. They may optionally include comments between the ":" and the
275ending "*/" marker.
273 276
274Example: 277Example:
275 278
@@ -283,7 +286,7 @@ Example:
283struct my_struct { 286struct my_struct {
284 int a; 287 int a;
285 int b; 288 int b;
286/* private: */ 289/* private: internal use only */
287 int c; 290 int c;
288}; 291};
289 292
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 6172e4360f60..e87bdbfbcc75 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -17,6 +17,12 @@ are specified on the kernel command line with the module name plus
17 17
18 usbcore.blinkenlights=1 18 usbcore.blinkenlights=1
19 19
20Hyphens (dashes) and underscores are equivalent in parameter names, so
21 log_buf_len=1M print-fatal-signals=1
22can also be entered as
23 log-buf-len=1M print_fatal_signals=1
24
25
20This document may not be entirely up to date and comprehensive. The command 26This document may not be entirely up to date and comprehensive. The command
21"modinfo -p ${modulename}" shows a current list of all parameters of a loadable 27"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
22module. Loadable modules, after being loaded into the running kernel, also 28module. Loadable modules, after being loaded into the running kernel, also
@@ -134,7 +140,7 @@ and is between 256 and 4096 characters. It is defined in the file
134./include/asm/setup.h as COMMAND_LINE_SIZE. 140./include/asm/setup.h as COMMAND_LINE_SIZE.
135 141
136 142
137 acpi= [HW,ACPI,X86-64,i386] 143 acpi= [HW,ACPI,X86]
138 Advanced Configuration and Power Interface 144 Advanced Configuration and Power Interface
139 Format: { force | off | ht | strict | noirq | rsdt } 145 Format: { force | off | ht | strict | noirq | rsdt }
140 force -- enable ACPI if default was off 146 force -- enable ACPI if default was off
@@ -218,7 +224,7 @@ and is between 256 and 4096 characters. It is defined in the file
218 acpi_osi="!string2" # remove built-in string2 224 acpi_osi="!string2" # remove built-in string2
219 acpi_osi= # disable all strings 225 acpi_osi= # disable all strings
220 226
221 acpi_pm_good [X86-32,X86-64] 227 acpi_pm_good [X86]
222 Override the pmtimer bug detection: force the kernel 228 Override the pmtimer bug detection: force the kernel
223 to assume that this machine's pmtimer latches its value 229 to assume that this machine's pmtimer latches its value
224 and always returns good values. 230 and always returns good values.
@@ -231,6 +237,35 @@ and is between 256 and 4096 characters. It is defined in the file
231 power state again in power transition. 237 power state again in power transition.
232 1 : disable the power state check 238 1 : disable the power state check
233 239
240 acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
241 Format: { level | edge | high | low }
242
243 acpi_serialize [HW,ACPI] force serialization of AML methods
244
245 acpi_skip_timer_override [HW,ACPI]
246 Recognize and ignore IRQ0/pin2 Interrupt Override.
247 For broken nForce2 BIOS resulting in XT-PIC timer.
248
249 acpi_sleep= [HW,ACPI] Sleep options
250 Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
251 old_ordering, s4_nonvs }
252 See Documentation/power/video.txt for information on
253 s3_bios and s3_mode.
254 s3_beep is for debugging; it makes the PC's speaker beep
255 as soon as the kernel's real-mode entry point is called.
256 s4_nohwsig prevents ACPI hardware signature from being
257 used during resume from hibernation.
258 old_ordering causes the ACPI 1.0 ordering of the _PTS
259 control method, with respect to putting devices into
260 low power states, to be enforced (the ACPI 2.0 ordering
261 of _PTS is used by default).
262 s4_nonvs prevents the kernel from saving/restoring the
263 ACPI NVS memory during hibernation.
264
265 acpi_use_timer_override [HW,ACPI]
266 Use timer override. For some broken Nvidia NF5 boards
267 that require a timer override, but don't have HPET
268
234 acpi_enforce_resources= [ACPI] 269 acpi_enforce_resources= [ACPI]
235 { strict | lax | no } 270 { strict | lax | no }
236 Check for resource conflicts between native drivers 271 Check for resource conflicts between native drivers
@@ -250,6 +285,9 @@ and is between 256 and 4096 characters. It is defined in the file
250 ad1848= [HW,OSS] 285 ad1848= [HW,OSS]
251 Format: <io>,<irq>,<dma>,<dma2>,<type> 286 Format: <io>,<irq>,<dma>,<dma2>,<type>
252 287
288 add_efi_memmap [EFI; X86] Include EFI memory map in
289 kernel's map of available physical RAM.
290
253 advansys= [HW,SCSI] 291 advansys= [HW,SCSI]
254 See header of drivers/scsi/advansys.c. 292 See header of drivers/scsi/advansys.c.
255 293
@@ -313,7 +351,7 @@ and is between 256 and 4096 characters. It is defined in the file
313 not play well with APC CPU idle - disable it if you have 351 not play well with APC CPU idle - disable it if you have
314 APC and your system crashes randomly. 352 APC and your system crashes randomly.
315 353
316 apic= [APIC,i386] Advanced Programmable Interrupt Controller 354 apic= [APIC,X86-32] Advanced Programmable Interrupt Controller
317 Change the output verbosity whilst booting 355 Change the output verbosity whilst booting
318 Format: { quiet (default) | verbose | debug } 356 Format: { quiet (default) | verbose | debug }
319 Change the amount of debugging information output 357 Change the amount of debugging information output
@@ -459,7 +497,7 @@ and is between 256 and 4096 characters. It is defined in the file
459 Also note the kernel might malfunction if you disable 497 Also note the kernel might malfunction if you disable
460 some critical bits. 498 some critical bits.
461 499
462 code_bytes [IA32/X86_64] How many bytes of object code to print 500 code_bytes [X86] How many bytes of object code to print
463 in an oops report. 501 in an oops report.
464 Range: 0 - 8192 502 Range: 0 - 8192
465 Default: 64 503 Default: 64
@@ -592,7 +630,7 @@ and is between 256 and 4096 characters. It is defined in the file
592 MTRR settings. This parameter disables that behavior, 630 MTRR settings. This parameter disables that behavior,
593 possibly causing your machine to run very slowly. 631 possibly causing your machine to run very slowly.
594 632
595 disable_timer_pin_1 [i386,x86-64] 633 disable_timer_pin_1 [X86]
596 Disable PIN 1 of APIC timer 634 Disable PIN 1 of APIC timer
597 Can be useful to work around chipset bugs. 635 Can be useful to work around chipset bugs.
598 636
@@ -624,7 +662,7 @@ and is between 256 and 4096 characters. It is defined in the file
624 UART at the specified I/O port or MMIO address. 662 UART at the specified I/O port or MMIO address.
625 The options are the same as for ttyS, above. 663 The options are the same as for ttyS, above.
626 664
627 earlyprintk= [X86-32,X86-64,SH,BLACKFIN] 665 earlyprintk= [X86,SH,BLACKFIN]
628 earlyprintk=vga 666 earlyprintk=vga
629 earlyprintk=serial[,ttySn[,baudrate]] 667 earlyprintk=serial[,ttySn[,baudrate]]
630 earlyprintk=dbgp 668 earlyprintk=dbgp
@@ -659,7 +697,7 @@ and is between 256 and 4096 characters. It is defined in the file
659 See Documentation/block/as-iosched.txt and 697 See Documentation/block/as-iosched.txt and
660 Documentation/block/deadline-iosched.txt for details. 698 Documentation/block/deadline-iosched.txt for details.
661 699
662 elfcorehdr= [IA64,PPC,SH,X86-32,X86_64] 700 elfcorehdr= [IA64,PPC,SH,X86]
663 Specifies physical address of start of kernel core 701 Specifies physical address of start of kernel core
664 image elf header. Generally kexec loader will 702 image elf header. Generally kexec loader will
665 pass this option to capture kernel. 703 pass this option to capture kernel.
@@ -670,7 +708,7 @@ and is between 256 and 4096 characters. It is defined in the file
670 to discrete, to make X server driver able to add WB 708 to discrete, to make X server driver able to add WB
671 entry later. This parameter enables that. 709 entry later. This parameter enables that.
672 710
673 enable_timer_pin_1 [i386,x86-64] 711 enable_timer_pin_1 [X86]
674 Enable PIN 1 of APIC timer 712 Enable PIN 1 of APIC timer
675 Can be useful to work around chipset bugs 713 Can be useful to work around chipset bugs
676 (in particular on some ATI chipsets). 714 (in particular on some ATI chipsets).
@@ -743,7 +781,7 @@ and is between 256 and 4096 characters. It is defined in the file
743 781
744 hashdist= [KNL,NUMA] Large hashes allocated during boot 782 hashdist= [KNL,NUMA] Large hashes allocated during boot
745 are distributed across NUMA nodes. Defaults on 783 are distributed across NUMA nodes. Defaults on
746 for IA-64, off otherwise. 784 for 64bit NUMA, off otherwise.
747 Format: 0 | 1 (for off | on) 785 Format: 0 | 1 (for off | on)
748 786
749 hcl= [IA-64] SGI's Hardware Graph compatibility layer 787 hcl= [IA-64] SGI's Hardware Graph compatibility layer
@@ -938,7 +976,7 @@ and is between 256 and 4096 characters. It is defined in the file
938 See comment before marvel_specify_io7 in 976 See comment before marvel_specify_io7 in
939 arch/alpha/kernel/core_marvel.c. 977 arch/alpha/kernel/core_marvel.c.
940 978
941 io_delay= [X86-32,X86-64] I/O delay method 979 io_delay= [X86] I/O delay method
942 0x80 980 0x80
943 Standard port 0x80 based delay 981 Standard port 0x80 based delay
944 0xed 982 0xed
@@ -1000,7 +1038,7 @@ and is between 256 and 4096 characters. It is defined in the file
1000 1038
1001 keepinitrd [HW,ARM] 1039 keepinitrd [HW,ARM]
1002 1040
1003 kernelcore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter 1041 kernelcore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter
1004 specifies the amount of memory usable by the kernel 1042 specifies the amount of memory usable by the kernel
1005 for non-movable allocations. The requested amount is 1043 for non-movable allocations. The requested amount is
1006 spread evenly throughout all nodes in the system. The 1044 spread evenly throughout all nodes in the system. The
@@ -1034,7 +1072,7 @@ and is between 256 and 4096 characters. It is defined in the file
1034 Configure the RouterBoard 532 series on-chip 1072 Configure the RouterBoard 532 series on-chip
1035 Ethernet adapter MAC address. 1073 Ethernet adapter MAC address.
1036 1074
1037 kstack=N [X86-32,X86-64] Print N words from the kernel stack 1075 kstack=N [X86] Print N words from the kernel stack
1038 in oops dumps. 1076 in oops dumps.
1039 1077
1040 l2cr= [PPC] 1078 l2cr= [PPC]
@@ -1044,7 +1082,7 @@ and is between 256 and 4096 characters. It is defined in the file
1044 lapic [X86-32,APIC] Enable the local APIC even if BIOS 1082 lapic [X86-32,APIC] Enable the local APIC even if BIOS
1045 disabled it. 1083 disabled it.
1046 1084
1047 lapic_timer_c2_ok [X86-32,x86-64,APIC] trust the local apic timer 1085 lapic_timer_c2_ok [X86,APIC] trust the local apic timer
1048 in C2 power state. 1086 in C2 power state.
1049 1087
1050 libata.dma= [LIBATA] DMA control 1088 libata.dma= [LIBATA] DMA control
@@ -1229,7 +1267,7 @@ and is between 256 and 4096 characters. It is defined in the file
1229 [KNL,SH] Allow user to override the default size for 1267 [KNL,SH] Allow user to override the default size for
1230 per-device physically contiguous DMA buffers. 1268 per-device physically contiguous DMA buffers.
1231 1269
1232 memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact 1270 memmap=exactmap [KNL,X86] Enable setting of an exact
1233 E820 memory map, as specified by the user. 1271 E820 memory map, as specified by the user.
1234 Such memmap=exactmap lines can be constructed based on 1272 Such memmap=exactmap lines can be constructed based on
1235 BIOS output or other requirements. See the memmap=nn@ss 1273 BIOS output or other requirements. See the memmap=nn@ss
@@ -1320,7 +1358,7 @@ and is between 256 and 4096 characters. It is defined in the file
1320 mousedev.yres= [MOUSE] Vertical screen resolution, used for devices 1358 mousedev.yres= [MOUSE] Vertical screen resolution, used for devices
1321 reporting absolute coordinates, such as tablets 1359 reporting absolute coordinates, such as tablets
1322 1360
1323 movablecore=nn[KMG] [KNL,X86-32,IA-64,PPC,X86-64] This parameter 1361 movablecore=nn[KMG] [KNL,X86,IA-64,PPC] This parameter
1324 is similar to kernelcore except it specifies the 1362 is similar to kernelcore except it specifies the
1325 amount of memory used for migratable allocations. 1363 amount of memory used for migratable allocations.
1326 If both kernelcore and movablecore is specified, 1364 If both kernelcore and movablecore is specified,
@@ -1422,7 +1460,7 @@ and is between 256 and 4096 characters. It is defined in the file
1422 when a NMI is triggered. 1460 when a NMI is triggered.
1423 Format: [state][,regs][,debounce][,die] 1461 Format: [state][,regs][,debounce][,die]
1424 1462
1425 nmi_watchdog= [KNL,BUGS=X86-32,X86-64] Debugging features for SMP kernels 1463 nmi_watchdog= [KNL,BUGS=X86] Debugging features for SMP kernels
1426 Format: [panic,][num] 1464 Format: [panic,][num]
1427 Valid num: 0,1,2 1465 Valid num: 0,1,2
1428 0 - turn nmi_watchdog off 1466 0 - turn nmi_watchdog off
@@ -1475,11 +1513,11 @@ and is between 256 and 4096 characters. It is defined in the file
1475 1513
1476 nodsp [SH] Disable hardware DSP at boot time. 1514 nodsp [SH] Disable hardware DSP at boot time.
1477 1515
1478 noefi [X86-32,X86-64] Disable EFI runtime services support. 1516 noefi [X86] Disable EFI runtime services support.
1479 1517
1480 noexec [IA-64] 1518 noexec [IA-64]
1481 1519
1482 noexec [X86-32,X86-64] 1520 noexec [X86]
1483 On X86-32 available only on PAE configured kernels. 1521 On X86-32 available only on PAE configured kernels.
1484 noexec=on: enable non-executable mappings (default) 1522 noexec=on: enable non-executable mappings (default)
1485 noexec=off: disable non-executable mappings 1523 noexec=off: disable non-executable mappings
@@ -1525,7 +1563,7 @@ and is between 256 and 4096 characters. It is defined in the file
1525 noirqdebug [X86-32] Disables the code which attempts to detect and 1563 noirqdebug [X86-32] Disables the code which attempts to detect and
1526 disable unhandled interrupt sources. 1564 disable unhandled interrupt sources.
1527 1565
1528 no_timer_check [X86-32,X86_64,APIC] Disables the code which tests for 1566 no_timer_check [X86,APIC] Disables the code which tests for
1529 broken timer IRQ sources. 1567 broken timer IRQ sources.
1530 1568
1531 noisapnp [ISAPNP] Disables ISA PnP code. 1569 noisapnp [ISAPNP] Disables ISA PnP code.
@@ -1588,6 +1626,8 @@ and is between 256 and 4096 characters. It is defined in the file
1588 1626
1589 nowb [ARM] 1627 nowb [ARM]
1590 1628
1629 nox2apic [X86-64,APIC] Do not enable x2APIC mode.
1630
1591 nptcg= [IA64] Override max number of concurrent global TLB 1631 nptcg= [IA64] Override max number of concurrent global TLB
1592 purges which is reported from either PAL_VM_SUMMARY or 1632 purges which is reported from either PAL_VM_SUMMARY or
1593 SAL PALO. 1633 SAL PALO.
@@ -1689,7 +1729,7 @@ and is between 256 and 4096 characters. It is defined in the file
1689 disable the use of PCIE advanced error reporting. 1729 disable the use of PCIE advanced error reporting.
1690 nodomains [PCI] Disable support for multiple PCI 1730 nodomains [PCI] Disable support for multiple PCI
1691 root domains (aka PCI segments, in ACPI-speak). 1731 root domains (aka PCI segments, in ACPI-speak).
1692 nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI 1732 nommconf [X86] Disable use of MMCONFIG for PCI
1693 Configuration 1733 Configuration
1694 nomsi [MSI] If the PCI_MSI kernel config parameter is 1734 nomsi [MSI] If the PCI_MSI kernel config parameter is
1695 enabled, this kernel boot option can be used to 1735 enabled, this kernel boot option can be used to
@@ -1838,6 +1878,12 @@ and is between 256 and 4096 characters. It is defined in the file
1838 autoconfiguration. 1878 autoconfiguration.
1839 Ranges are in pairs (memory base and size). 1879 Ranges are in pairs (memory base and size).
1840 1880
1881 ports= [IP_VS_FTP] IPVS ftp helper module
1882 Default is 21.
1883 Up to 8 (IP_VS_APP_MAX_PORTS) ports
1884 may be specified.
1885 Format: <port>,<port>....
1886
1841 print-fatal-signals= 1887 print-fatal-signals=
1842 [KNL] debug: print fatal signals 1888 [KNL] debug: print fatal signals
1843 print-fatal-signals=1: print segfault info to 1889 print-fatal-signals=1: print segfault info to
@@ -2380,7 +2426,7 @@ and is between 256 and 4096 characters. It is defined in the file
2380 reported either. 2426 reported either.
2381 2427
2382 unknown_nmi_panic 2428 unknown_nmi_panic
2383 [X86-32,X86-64] 2429 [X86]
2384 Set unknown_nmi_panic=1 early on boot. 2430 Set unknown_nmi_panic=1 early on boot.
2385 2431
2386 usbcore.autosuspend= 2432 usbcore.autosuspend=
@@ -2447,12 +2493,12 @@ and is between 256 and 4096 characters. It is defined in the file
2447 medium is write-protected). 2493 medium is write-protected).
2448 Example: quirks=0419:aaf5:rl,0421:0433:rc 2494 Example: quirks=0419:aaf5:rl,0421:0433:rc
2449 2495
2450 vdso= [X86-32,SH,x86-64] 2496 vdso= [X86,SH]
2451 vdso=2: enable compat VDSO (default with COMPAT_VDSO) 2497 vdso=2: enable compat VDSO (default with COMPAT_VDSO)
2452 vdso=1: enable VDSO (default) 2498 vdso=1: enable VDSO (default)
2453 vdso=0: disable VDSO mapping 2499 vdso=0: disable VDSO mapping
2454 2500
2455 vdso32= [X86-32,X86-64] 2501 vdso32= [X86]
2456 vdso32=2: enable compat VDSO (default with COMPAT_VDSO) 2502 vdso32=2: enable compat VDSO (default with COMPAT_VDSO)
2457 vdso32=1: enable 32-bit VDSO (default) 2503 vdso32=1: enable 32-bit VDSO (default)
2458 vdso32=0: disable 32-bit VDSO mapping 2504 vdso32=0: disable 32-bit VDSO mapping
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 3d7650768bb5..e7e9a69069e1 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -1,7 +1,7 @@
1 ThinkPad ACPI Extras Driver 1 ThinkPad ACPI Extras Driver
2 2
3 Version 0.22 3 Version 0.23
4 November 23rd, 2008 4 April 10th, 2009
5 5
6 Borislav Deianov <borislav@users.sf.net> 6 Borislav Deianov <borislav@users.sf.net>
7 Henrique de Moraes Holschuh <hmh@hmh.eng.br> 7 Henrique de Moraes Holschuh <hmh@hmh.eng.br>
diff --git a/Documentation/lguest/.gitignore b/Documentation/lguest/.gitignore
new file mode 100644
index 000000000000..115587fd5f65
--- /dev/null
+++ b/Documentation/lguest/.gitignore
@@ -0,0 +1 @@
lguest
diff --git a/Documentation/lguest/lguest.txt b/Documentation/lguest/lguest.txt
index 29510dc51510..28c747362f95 100644
--- a/Documentation/lguest/lguest.txt
+++ b/Documentation/lguest/lguest.txt
@@ -3,11 +3,11 @@
3 /, /` - or, A Young Coder's Illustrated Hypervisor 3 /, /` - or, A Young Coder's Illustrated Hypervisor
4 \\"--\\ http://lguest.ozlabs.org 4 \\"--\\ http://lguest.ozlabs.org
5 5
6Lguest is designed to be a minimal hypervisor for the Linux kernel, for 6Lguest is designed to be a minimal 32-bit x86 hypervisor for the Linux kernel,
7Linux developers and users to experiment with virtualization with the 7for Linux developers and users to experiment with virtualization with the
8minimum of complexity. Nonetheless, it should have sufficient 8minimum of complexity. Nonetheless, it should have sufficient features to
9features to make it useful for specific tasks, and, of course, you are 9make it useful for specific tasks, and, of course, you are encouraged to fork
10encouraged to fork and enhance it (see drivers/lguest/README). 10and enhance it (see drivers/lguest/README).
11 11
12Features: 12Features:
13 13
@@ -37,6 +37,7 @@ Running Lguest:
37 "Paravirtualized guest support" = Y 37 "Paravirtualized guest support" = Y
38 "Lguest guest support" = Y 38 "Lguest guest support" = Y
39 "High Memory Support" = off/4GB 39 "High Memory Support" = off/4GB
40 "PAE (Physical Address Extension) Support" = N
40 "Alignment value to which kernel should be aligned" = 0x100000 41 "Alignment value to which kernel should be aligned" = 0x100000
41 (CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and 42 (CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
42 CONFIG_PHYSICAL_ALIGN=0x100000) 43 CONFIG_PHYSICAL_ALIGN=0x100000)
diff --git a/Documentation/lockdep-design.txt b/Documentation/lockdep-design.txt
index 938ea22f2cc0..e20d913d5914 100644
--- a/Documentation/lockdep-design.txt
+++ b/Documentation/lockdep-design.txt
@@ -54,9 +54,9 @@ locking error messages, inside curlies. A contrived example:
54The bit position indicates STATE, STATE-read, for each of the states listed 54The bit position indicates STATE, STATE-read, for each of the states listed
55above, and the character displayed in each indicates: 55above, and the character displayed in each indicates:
56 56
57 '.' acquired while irqs disabled 57 '.' acquired while irqs disabled and not in irq context
58 '+' acquired in irq context 58 '-' acquired in irq context
59 '-' acquired with irqs enabled 59 '+' acquired with irqs enabled
60 '?' acquired in irq context with irqs enabled. 60 '?' acquired in irq context with irqs enabled.
61 61
62Unused mutexes cannot be part of the cause of an error. 62Unused mutexes cannot be part of the cause of an error.
diff --git a/Documentation/logo.gif b/Documentation/logo.gif
new file mode 100644
index 000000000000..2eae75fecfb9
--- /dev/null
+++ b/Documentation/logo.gif
Binary files differ
diff --git a/Documentation/logo.svg b/Documentation/logo.svg
deleted file mode 100644
index cb9e4851d8c3..000000000000
--- a/Documentation/logo.svg
+++ /dev/null
@@ -1,2911 +0,0 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3<svg
4 xmlns:dc="http://purl.org/dc/elements/1.1/"
5 xmlns:cc="http://creativecommons.org/ns#"
6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7 xmlns:svg="http://www.w3.org/2000/svg"
8 xmlns="http://www.w3.org/2000/svg"
9 xmlns:xlink="http://www.w3.org/1999/xlink"
10 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 width="1771.6534"
13 height="1417.3228"
14 id="svg2"
15 sodipodi:version="0.32"
16 inkscape:version="0.46"
17 sodipodi:docname="tuz.svg"
18 inkscape:output_extension="org.inkscape.output.svg.inkscape"
19 version="1.0"
20 style="display:inline;enable-background:new"
21 inkscape:export-filename="/home/cheeseness/Documents/LCA09/mascot/tuz_final.png"
22 inkscape:export-xdpi="100.03588"
23 inkscape:export-ydpi="100.03588">
24 <sodipodi:namedview
25 id="base"
26 pagecolor="#ffffff"
27 bordercolor="#666666"
28 borderopacity="1.0"
29 gridtolerance="10000"
30 guidetolerance="10"
31 objecttolerance="10"
32 inkscape:pageopacity="0.0"
33 inkscape:pageshadow="2"
34 inkscape:zoom="0.25"
35 inkscape:cx="-174.7931"
36 inkscape:cy="784.26325"
37 inkscape:document-units="px"
38 inkscape:current-layer="svg2"
39 showgrid="false"
40 inkscape:window-width="1280"
41 inkscape:window-height="823"
42 inkscape:window-x="-4"
43 inkscape:window-y="25"
44 showguides="true"
45 inkscape:guide-bbox="true"
46 units="mm" />
47 <defs
48 id="defs4">
49 <filter
50 inkscape:collect="always"
51 x="-0.084654994"
52 width="1.16931"
53 y="-0.36592469"
54 height="1.7318494"
55 id="filter11361">
56 <feGaussianBlur
57 inkscape:collect="always"
58 stdDeviation="4.5740586"
59 id="feGaussianBlur11363" />
60 </filter>
61 <inkscape:perspective
62 sodipodi:type="inkscape:persp3d"
63 inkscape:vp_x="0 : 564.0976 : 1"
64 inkscape:vp_y="0 : 1000 : 0"
65 inkscape:vp_z="1445.8591 : 564.0976 : 1"
66 inkscape:persp3d-origin="722.92957 : 376.06506 : 1"
67 id="perspective8145" />
68 <linearGradient
69 id="linearGradient7622">
70 <stop
71 style="stop-color:#ffffff;stop-opacity:1;"
72 offset="0"
73 id="stop7624" />
74 <stop
75 style="stop-color:#ffffff;stop-opacity:0;"
76 offset="1"
77 id="stop7626" />
78 </linearGradient>
79 <linearGradient
80 id="linearGradient4113">
81 <stop
82 style="stop-color:#000000;stop-opacity:0;"
83 offset="0"
84 id="stop4115" />
85 <stop
86 style="stop-color:#000000;stop-opacity:1;"
87 offset="1"
88 id="stop4117" />
89 </linearGradient>
90 <linearGradient
91 inkscape:collect="always"
92 id="linearGradient3660">
93 <stop
94 style="stop-color:#ffffff;stop-opacity:1;"
95 offset="0"
96 id="stop3662" />
97 <stop
98 style="stop-color:#ffffff;stop-opacity:0;"
99 offset="1"
100 id="stop3664" />
101 </linearGradient>
102 <linearGradient
103 id="linearGradient3627">
104 <stop
105 style="stop-color:#ffffff;stop-opacity:1;"
106 offset="0"
107 id="stop3629" />
108 <stop
109 style="stop-color:#000000;stop-opacity:1;"
110 offset="1"
111 id="stop3631" />
112 </linearGradient>
113 <linearGradient
114 id="linearGradient2843">
115 <stop
116 id="stop2845"
117 offset="0"
118 style="stop-color:#000000;stop-opacity:1;" />
119 <stop
120 style="stop-color:#000000;stop-opacity:1;"
121 offset="0.02188784"
122 id="stop2847" />
123 <stop
124 style="stop-color:#000000;stop-opacity:1;"
125 offset="0.75866222"
126 id="stop2849" />
127 <stop
128 id="stop2851"
129 offset="0.88508981"
130 style="stop-color:#232323;stop-opacity:1;" />
131 <stop
132 id="stop2853"
133 offset="1"
134 style="stop-color:#595959;stop-opacity:1;" />
135 </linearGradient>
136 <linearGradient
137 inkscape:collect="always"
138 id="linearGradient8964">
139 <stop
140 style="stop-color:#1a1a1a;stop-opacity:1;"
141 offset="0"
142 id="stop8966" />
143 <stop
144 style="stop-color:#1a1a1a;stop-opacity:0;"
145 offset="1"
146 id="stop8968" />
147 </linearGradient>
148 <linearGradient
149 id="linearGradient8952">
150 <stop
151 style="stop-color:#0a0c0c;stop-opacity:1;"
152 offset="0"
153 id="stop8954" />
154 <stop
155 style="stop-color:#1f2727;stop-opacity:0;"
156 offset="1"
157 id="stop8956" />
158 </linearGradient>
159 <linearGradient
160 id="linearGradient8430">
161 <stop
162 style="stop-color:#1e2323;stop-opacity:1;"
163 offset="0"
164 id="stop8432" />
165 <stop
166 id="stop8438"
167 offset="0.55992389"
168 style="stop-color:#181d1d;stop-opacity:1;" />
169 <stop
170 style="stop-color:#000000;stop-opacity:1;"
171 offset="1"
172 id="stop8434" />
173 </linearGradient>
174 <linearGradient
175 id="linearGradient8398">
176 <stop
177 style="stop-color:#283131;stop-opacity:0;"
178 offset="0"
179 id="stop8400" />
180 <stop
181 id="stop8402"
182 offset="0.5125587"
183 style="stop-color:#1e2424;stop-opacity:0;" />
184 <stop
185 style="stop-color:#000000;stop-opacity:1;"
186 offset="1"
187 id="stop8404" />
188 </linearGradient>
189 <linearGradient
190 inkscape:collect="always"
191 id="linearGradient4870">
192 <stop
193 style="stop-color:#c7bd80;stop-opacity:1;"
194 offset="0"
195 id="stop4872" />
196 <stop
197 style="stop-color:#c7bd80;stop-opacity:0;"
198 offset="1"
199 id="stop4874" />
200 </linearGradient>
201 <linearGradient
202 inkscape:collect="always"
203 id="linearGradient4862">
204 <stop
205 style="stop-color:#e2e2e2;stop-opacity:1;"
206 offset="0"
207 id="stop4864" />
208 <stop
209 style="stop-color:#e2e2e2;stop-opacity:0;"
210 offset="1"
211 id="stop4866" />
212 </linearGradient>
213 <linearGradient
214 id="linearGradient4478">
215 <stop
216 style="stop-color:#f9eed3;stop-opacity:1;"
217 offset="0"
218 id="stop4480" />
219 <stop
220 style="stop-color:#000000;stop-opacity:0;"
221 offset="1"
222 id="stop4482" />
223 </linearGradient>
224 <linearGradient
225 id="linearGradient4106">
226 <stop
227 style="stop-color:#d9e002;stop-opacity:1;"
228 offset="0"
229 id="stop4108" />
230 <stop
231 id="stop4114"
232 offset="0.5"
233 style="stop-color:#a9ae01;stop-opacity:1;" />
234 <stop
235 style="stop-color:#717501;stop-opacity:1;"
236 offset="1"
237 id="stop4110" />
238 </linearGradient>
239 <linearGradient
240 id="linearGradient4084">
241 <stop
242 style="stop-color:#7d7d00;stop-opacity:1;"
243 offset="0"
244 id="stop4086" />
245 <stop
246 id="stop4088"
247 offset="0.3636601"
248 style="stop-color:#c6c700;stop-opacity:1;" />
249 <stop
250 style="stop-color:#f6f800;stop-opacity:1;"
251 offset="1"
252 id="stop4090" />
253 </linearGradient>
254 <linearGradient
255 id="linearGradient4041">
256 <stop
257 id="stop4043"
258 offset="0"
259 style="stop-color:#ffff00;stop-opacity:1;" />
260 <stop
261 id="stop4045"
262 offset="1"
263 style="stop-color:#ffff00;stop-opacity:0;" />
264 </linearGradient>
265 <linearGradient
266 id="linearGradient4025">
267 <stop
268 style="stop-color:#ffffff;stop-opacity:1;"
269 offset="0"
270 id="stop4027" />
271 <stop
272 style="stop-color:#ffffff;stop-opacity:0;"
273 offset="1"
274 id="stop4031" />
275 </linearGradient>
276 <linearGradient
277 id="linearGradient4013">
278 <stop
279 style="stop-color:#ffff00;stop-opacity:1;"
280 offset="0"
281 id="stop4015" />
282 <stop
283 style="stop-color:#b2b200;stop-opacity:1;"
284 offset="1"
285 id="stop4017" />
286 </linearGradient>
287 <linearGradient
288 id="linearGradient3985">
289 <stop
290 style="stop-color:#000000;stop-opacity:1;"
291 offset="0"
292 id="stop3987" />
293 <stop
294 style="stop-color:#1d1d1d;stop-opacity:1;"
295 offset="1"
296 id="stop3989" />
297 </linearGradient>
298 <linearGradient
299 id="linearGradient3961">
300 <stop
301 style="stop-color:#283131;stop-opacity:0;"
302 offset="0"
303 id="stop3963" />
304 <stop
305 id="stop3965"
306 offset="0.5"
307 style="stop-color:#1e2424;stop-opacity:1;" />
308 <stop
309 style="stop-color:#000000;stop-opacity:1;"
310 offset="1"
311 id="stop3967" />
312 </linearGradient>
313 <linearGradient
314 id="linearGradient3951">
315 <stop
316 id="stop3953"
317 offset="0"
318 style="stop-color:#344040;stop-opacity:1;" />
319 <stop
320 style="stop-color:#222929;stop-opacity:1;"
321 offset="0.5"
322 id="stop3955" />
323 <stop
324 id="stop3957"
325 offset="1"
326 style="stop-color:#000000;stop-opacity:1;" />
327 </linearGradient>
328 <linearGradient
329 id="linearGradient3909">
330 <stop
331 style="stop-color:#283131;stop-opacity:1;"
332 offset="0"
333 id="stop3911" />
334 <stop
335 id="stop3917"
336 offset="0.5"
337 style="stop-color:#1e2424;stop-opacity:1;" />
338 <stop
339 style="stop-color:#000000;stop-opacity:1;"
340 offset="1"
341 id="stop3913" />
342 </linearGradient>
343 <linearGradient
344 id="linearGradient3537">
345 <stop
346 style="stop-color:#ada469;stop-opacity:1;"
347 offset="0"
348 id="stop3539" />
349 <stop
350 id="stop3545"
351 offset="0.81132078"
352 style="stop-color:#ada469;stop-opacity:1;" />
353 <stop
354 style="stop-color:#ffffff;stop-opacity:1;"
355 offset="1"
356 id="stop3541" />
357 </linearGradient>
358 <linearGradient
359 id="linearGradient3317">
360 <stop
361 style="stop-color:#cfc690;stop-opacity:1"
362 offset="0"
363 id="stop3319" />
364 <stop
365 id="stop3321"
366 offset="0.21161865"
367 style="stop-color:#afa775;stop-opacity:1;" />
368 <stop
369 id="stop3323"
370 offset="0.53408515"
371 style="stop-color:#615c3a;stop-opacity:1;" />
372 <stop
373 style="stop-color:#000000;stop-opacity:1;"
374 offset="0.76504093"
375 id="stop3325" />
376 <stop
377 id="stop3327"
378 offset="1"
379 style="stop-color:#403518;stop-opacity:1;" />
380 </linearGradient>
381 <linearGradient
382 id="linearGradient3239">
383 <stop
384 id="stop3251"
385 offset="0"
386 style="stop-color:#cfc690;stop-opacity:1;" />
387 <stop
388 style="stop-color:#afa775;stop-opacity:1;"
389 offset="0.21161865"
390 id="stop3267" />
391 <stop
392 style="stop-color:#615c3a;stop-opacity:1;"
393 offset="0.53408515"
394 id="stop3261" />
395 <stop
396 id="stop3265"
397 offset="0.76504093"
398 style="stop-color:#000000;stop-opacity:1;" />
399 <stop
400 style="stop-color:#403518;stop-opacity:1;"
401 offset="1"
402 id="stop3243" />
403 </linearGradient>
404 <radialGradient
405 inkscape:collect="always"
406 xlink:href="#linearGradient3239"
407 id="radialGradient3281"
408 gradientUnits="userSpaceOnUse"
409 gradientTransform="matrix(1.5480423,1.7414304,-1.9683515,1.7497638,-1130.5586,-1872.5121)"
410 spreadMethod="pad"
411 cx="806.52582"
412 cy="212.68117"
413 fx="806.52582"
414 fy="212.68117"
415 r="48.363216" />
416 <radialGradient
417 inkscape:collect="always"
418 xlink:href="#linearGradient3317"
419 id="radialGradient3315"
420 cx="543.6698"
421 cy="147.3131"
422 fx="543.6698"
423 fy="147.3131"
424 r="47.863216"
425 gradientTransform="matrix(2.1382256,0,0,2.3382884,-77.03847,-101.68704)"
426 gradientUnits="userSpaceOnUse" />
427 <radialGradient
428 inkscape:collect="always"
429 xlink:href="#linearGradient3537"
430 id="radialGradient3543"
431 cx="385"
432 cy="237.00504"
433 fx="385"
434 fy="237.00504"
435 r="86.928574"
436 gradientTransform="matrix(1,0,0,0.8562038,0,34.080427)"
437 gradientUnits="userSpaceOnUse" />
438 <radialGradient
439 inkscape:collect="always"
440 xlink:href="#linearGradient3909"
441 id="radialGradient3915"
442 cx="418.30365"
443 cy="342.47794"
444 fx="418.30365"
445 fy="342.47794"
446 r="131.4509"
447 gradientTransform="matrix(1.3957347,0.6211056,-0.4244067,0.9537174,-15.061913,-227.96711)"
448 gradientUnits="userSpaceOnUse" />
449 <radialGradient
450 inkscape:collect="always"
451 xlink:href="#linearGradient3951"
452 id="radialGradient3933"
453 cx="397.16388"
454 cy="336.95245"
455 fx="397.16388"
456 fy="336.95245"
457 r="36.75"
458 gradientUnits="userSpaceOnUse"
459 gradientTransform="matrix(1.9449972,2.4894837e-7,-2.4894833e-7,1.9449969,-375.31868,-318.41912)" />
460 <linearGradient
461 inkscape:collect="always"
462 xlink:href="#linearGradient3961"
463 id="linearGradient3959"
464 x1="398.21429"
465 y1="343.52289"
466 x2="379.28571"
467 y2="265.30862"
468 gradientUnits="userSpaceOnUse"
469 gradientTransform="translate(450.03125,73.843964)" />
470 <filter
471 inkscape:collect="always"
472 id="filter3981"
473 x="-0.30000001"
474 width="1.6"
475 y="-0.30000001"
476 height="1.6">
477 <feGaussianBlur
478 inkscape:collect="always"
479 stdDeviation="2"
480 id="feGaussianBlur3983" />
481 </filter>
482 <radialGradient
483 inkscape:collect="always"
484 xlink:href="#linearGradient3985"
485 id="radialGradient3991"
486 cx="402.48898"
487 cy="317.23578"
488 fx="402.48898"
489 fy="317.23578"
490 r="23.714285"
491 gradientUnits="userSpaceOnUse"
492 gradientTransform="matrix(4.3776616,0,0,4.3776616,-1358.3025,-1070.7357)" />
493 <clipPath
494 clipPathUnits="userSpaceOnUse"
495 id="clipPath3999">
496 <path
497 style="opacity:1;fill:#f5ff04;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
498 d="M 179.64286,267.36218 C 157.23242,307.0651 119.02676,383.14247 110.35715,417.00504 C 101.70994,450.78014 101.58516,483.42158 110,503.43362 C 118.3602,523.31575 136.16398,539.06642 150.71428,544.86218 C 150.1179,530.48631 165.08723,501.57635 223.57143,472.36218 C 282.1977,443.07704 301.95306,445.23132 327.14285,425.21932 C 352.77291,404.85756 339.75316,358.17469 330.35714,331.29075 C 320.9229,304.29747 295.38973,272.16627 263.92857,261.6479 C 232.8953,251.27258 198.91081,256.79953 179.64286,267.36218 z"
499 id="path4001"
500 sodipodi:nodetypes="czzczzzzc" />
501 </clipPath>
502 <radialGradient
503 inkscape:collect="always"
504 xlink:href="#linearGradient4013"
505 id="radialGradient4056"
506 gradientUnits="userSpaceOnUse"
507 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)"
508 cx="228.81355"
509 cy="440.26971"
510 fx="228.81355"
511 fy="440.26971"
512 r="119.17509" />
513 <radialGradient
514 inkscape:collect="always"
515 xlink:href="#linearGradient4041"
516 id="radialGradient4060"
517 gradientUnits="userSpaceOnUse"
518 gradientTransform="matrix(5.911206e-2,2.6869855,-0.7234268,1.5914947e-2,408.72779,-424.56452)"
519 cx="275.4422"
520 cy="335.34866"
521 fx="275.4422"
522 fy="335.34866"
523 r="36.75" />
524 <radialGradient
525 inkscape:collect="always"
526 xlink:href="#linearGradient4025"
527 id="radialGradient4062"
528 gradientUnits="userSpaceOnUse"
529 gradientTransform="matrix(5.911206e-2,2.6869855,-0.7234268,1.5914947e-2,408.72779,-424.56452)"
530 cx="275.4422"
531 cy="335.34866"
532 fx="275.4422"
533 fy="335.34866"
534 r="36.75" />
535 <linearGradient
536 inkscape:collect="always"
537 xlink:href="#linearGradient4084"
538 id="linearGradient4082"
539 gradientUnits="userSpaceOnUse"
540 x1="182.35046"
541 y1="256.11136"
542 x2="145.53348"
543 y2="542.20502" />
544 <clipPath
545 clipPathUnits="userSpaceOnUse"
546 id="clipPath4100">
547 <path
548 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.9000755px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
549 d="M 265.93541,126.68393 L 247.1682,295.54701 L 421.27363,222.42633 L 483.22803,311.08516 L 541.11243,279.09486 L 503.57801,99.035183 L 265.93541,126.68393 z"
550 id="path4102"
551 sodipodi:nodetypes="ccccccc" />
552 </clipPath>
553 <radialGradient
554 inkscape:collect="always"
555 xlink:href="#linearGradient4106"
556 id="radialGradient4112"
557 cx="250.22678"
558 cy="475.09763"
559 fx="250.22678"
560 fy="475.09763"
561 r="95.98877"
562 gradientTransform="matrix(1.2259004,-0.7077739,0.1413989,0.2449102,322.22326,608.91815)"
563 gradientUnits="userSpaceOnUse" />
564 <linearGradient
565 inkscape:collect="always"
566 xlink:href="#linearGradient4478"
567 id="linearGradient4484"
568 x1="412.08926"
569 y1="404.91574"
570 x2="417.375"
571 y2="401.82648"
572 gradientUnits="userSpaceOnUse" />
573 <linearGradient
574 inkscape:collect="always"
575 xlink:href="#linearGradient4478"
576 id="linearGradient4486"
577 x1="411.91071"
578 y1="404.91577"
579 x2="417.375"
580 y2="401.82648"
581 gradientUnits="userSpaceOnUse" />
582 <linearGradient
583 inkscape:collect="always"
584 xlink:href="#linearGradient4478"
585 id="linearGradient4488"
586 x1="411.91071"
587 y1="405.54077"
588 x2="417.375"
589 y2="401.82648"
590 gradientUnits="userSpaceOnUse" />
591 <linearGradient
592 inkscape:collect="always"
593 xlink:href="#linearGradient4478"
594 id="linearGradient4490"
595 x1="412.08926"
596 y1="405.54077"
597 x2="417.375"
598 y2="401.82648"
599 gradientUnits="userSpaceOnUse" />
600 <linearGradient
601 inkscape:collect="always"
602 xlink:href="#linearGradient4478"
603 id="linearGradient4492"
604 x1="411.73212"
605 y1="405.54077"
606 x2="417.375"
607 y2="401.82648"
608 gradientUnits="userSpaceOnUse" />
609 <radialGradient
610 inkscape:collect="always"
611 xlink:href="#linearGradient4862"
612 id="radialGradient4868"
613 cx="429.56738"
614 cy="377.42877"
615 fx="429.56738"
616 fy="377.42877"
617 r="72.079735"
618 gradientTransform="matrix(1,0,0,0.618034,0,144.16496)"
619 gradientUnits="userSpaceOnUse" />
620 <radialGradient
621 inkscape:collect="always"
622 xlink:href="#linearGradient4870"
623 id="radialGradient4876"
624 cx="437.6991"
625 cy="391.21735"
626 fx="437.6991"
627 fy="391.21735"
628 r="36.611931"
629 gradientTransform="matrix(1,0,0,0.618034,0,149.43174)"
630 gradientUnits="userSpaceOnUse" />
631 <radialGradient
632 inkscape:collect="always"
633 xlink:href="#linearGradient4013"
634 id="radialGradient3585"
635 gradientUnits="userSpaceOnUse"
636 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)"
637 cx="228.81355"
638 cy="440.26971"
639 fx="228.81355"
640 fy="440.26971"
641 r="119.17509" />
642 <linearGradient
643 inkscape:collect="always"
644 xlink:href="#linearGradient4084"
645 id="linearGradient3587"
646 gradientUnits="userSpaceOnUse"
647 x1="182.35046"
648 y1="256.11136"
649 x2="145.53348"
650 y2="542.20502" />
651 <radialGradient
652 inkscape:collect="always"
653 xlink:href="#linearGradient3317"
654 id="radialGradient8410"
655 gradientUnits="userSpaceOnUse"
656 gradientTransform="matrix(1.0036478,-1.0345492e-7,1.7124628e-7,1.6613125,-753.99632,-302.76972)"
657 cx="317.78754"
658 cy="129.65378"
659 fx="317.78754"
660 fy="129.65378"
661 r="47.863216" />
662 <radialGradient
663 inkscape:collect="always"
664 xlink:href="#linearGradient8398"
665 id="radialGradient8412"
666 gradientUnits="userSpaceOnUse"
667 gradientTransform="matrix(2.0747661,-0.1577957,0.2382425,3.1325183,-1144.2358,-272.29325)"
668 cx="325.30847"
669 cy="80.909554"
670 fx="325.30847"
671 fy="80.909554"
672 r="26.937988" />
673 <clipPath
674 clipPathUnits="userSpaceOnUse"
675 id="clipPath8514">
676 <path
677 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
678 d="M 352.24553,211.99185 C 348.4411,186.72762 335.43581,161.35383 335.08873,136.46662 C 334.90247,123.1111 338.36158,109.89571 348.84426,96.912574 C 385.19128,31.616739 465.78517,12.217889 534.77892,5.447147 C 621.70131,-5.569654 719.69159,23.387219 768.15026,100.84843 C 822.27428,176.58173 824.82502,273.38755 848.7623,360.37638 C 878.20009,487.50398 903.54144,616.59052 909.15454,747.22673 C 906.09106,825.40858 900.7282,912.41088 848.65133,975.36086 C 800.62479,1025.7183 725.86486,1025.4139 661.58145,1034.3632 C 571.02606,1039.0182 477.22992,1018.2174 399.79755,970.16496 C 335.02191,932.22495 304.06736,856.68633 302.51815,784.14538 C 294.12898,704.27022 328.90967,630.33687 354.13855,556.98577 C 361.60916,474.2247 363.55141,390.73802 363.79189,307.60093 C 362.95507,275.40549 356.70236,243.7836 352.24553,211.99185 z"
679 id="path8516"
680 sodipodi:nodetypes="cscccccccccccc" />
681 </clipPath>
682 <clipPath
683 clipPathUnits="userSpaceOnUse"
684 id="clipPath8604">
685 <path
686 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
687 d="M 352.24553,211.99185 C 348.4411,186.72762 335.43581,161.35383 335.08873,136.46662 C 334.90247,123.1111 338.36158,109.89571 348.84426,96.912574 C 385.19128,31.616739 465.78517,12.217889 534.77892,5.447147 C 621.70131,-5.569654 719.69159,23.387219 768.15026,100.84843 C 822.27428,176.58173 824.82502,273.38755 848.7623,360.37638 C 878.20009,487.50398 903.54144,616.59052 909.15454,747.22673 C 906.09106,825.40858 900.7282,912.41088 848.65133,975.36086 C 800.62479,1025.7183 725.86486,1025.4139 661.58145,1034.3632 C 571.02606,1039.0182 477.22992,1018.2174 399.79755,970.16496 C 335.02191,932.22495 304.06736,856.68633 302.51815,784.14538 C 294.12898,704.27022 328.90967,630.33687 354.13855,556.98577 C 361.60916,474.2247 363.55141,390.73802 363.79189,307.60093 C 362.95507,275.40549 356.70236,243.7836 352.24553,211.99185 z"
688 id="path8606"
689 sodipodi:nodetypes="cscccccccccccc" />
690 </clipPath>
691 <clipPath
692 clipPathUnits="userSpaceOnUse"
693 id="clipPath8610">
694 <path
695 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
696 d="M 352.24553,211.99185 C 348.4411,186.72762 335.43581,161.35383 335.08873,136.46662 C 334.90247,123.1111 338.36158,109.89571 348.84426,96.912574 C 385.19128,31.616739 465.78517,12.217889 534.77892,5.447147 C 621.70131,-5.569654 719.69159,23.387219 768.15026,100.84843 C 822.27428,176.58173 824.82502,273.38755 848.7623,360.37638 C 878.20009,487.50398 903.54144,616.59052 909.15454,747.22673 C 906.09106,825.40858 900.7282,912.41088 848.65133,975.36086 C 800.62479,1025.7183 725.86486,1025.4139 661.58145,1034.3632 C 571.02606,1039.0182 477.22992,1018.2174 399.79755,970.16496 C 335.02191,932.22495 304.06736,856.68633 302.51815,784.14538 C 294.12898,704.27022 328.90967,630.33687 354.13855,556.98577 C 361.60916,474.2247 363.55141,390.73802 363.79189,307.60093 C 362.95507,275.40549 356.70236,243.7836 352.24553,211.99185 z"
697 id="path8612"
698 sodipodi:nodetypes="cscccccccccccc" />
699 </clipPath>
700 <clipPath
701 clipPathUnits="userSpaceOnUse"
702 id="clipPath8616">
703 <path
704 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
705 d="M 352.24553,211.99185 C 348.4411,186.72762 335.43581,161.35383 335.08873,136.46662 C 334.90247,123.1111 338.36158,109.89571 348.84426,96.912574 C 385.19128,31.616739 465.78517,12.217889 534.77892,5.447147 C 621.70131,-5.569654 719.69159,23.387219 768.15026,100.84843 C 822.27428,176.58173 824.82502,273.38755 848.7623,360.37638 C 878.20009,487.50398 903.54144,616.59052 909.15454,747.22673 C 906.09106,825.40858 900.7282,912.41088 848.65133,975.36086 C 800.62479,1025.7183 725.86486,1025.4139 661.58145,1034.3632 C 571.02606,1039.0182 477.22992,1018.2174 399.79755,970.16496 C 335.02191,932.22495 304.06736,856.68633 302.51815,784.14538 C 294.12898,704.27022 328.90967,630.33687 354.13855,556.98577 C 361.60916,474.2247 363.55141,390.73802 363.79189,307.60093 C 362.95507,275.40549 356.70236,243.7836 352.24553,211.99185 z"
706 id="path8618"
707 sodipodi:nodetypes="cscccccccccccc" />
708 </clipPath>
709 <clipPath
710 clipPathUnits="userSpaceOnUse"
711 id="clipPath8622">
712 <path
713 style="opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
714 d="M 821.64329,477.88997 C 821.64329,477.88997 844.26276,471.38316 857.38604,472.01724 C 870.50932,472.65133 888.02762,473.95586 901.09489,484.20343 C 914.16216,494.45099 926.16263,511.3435 935.20728,542.57308 C 944.25193,573.80266 936.9056,641.82509 929.03125,685.92043 C 921.1569,730.01577 900.76615,792.03341 884.03125,825.92043 C 867.29635,859.80745 834.23354,903.41563 823.46182,915.79659 C 812.0976,928.85856 767.25593,952.22276 744.03125,958.06326 C 749.33455,947.45666 792.93101,907.47442 779.03125,897.349 C 765.01228,887.13674 733.27116,943.33136 694.7381,926.38217 C 716.12041,913.25005 736.5175,875.19611 728.77871,859.78772 C 720.93846,844.17733 698.07378,908.54529 635.24317,896.8006 C 665.29521,869.27394 690.65023,825.89659 676.50587,813.8209 C 662.09071,801.51403 616.04412,868.11405 616.04412,868.11405 C 616.04412,868.11405 613.22222,826.41287 629.81732,799.50673 C 646.45667,772.52886 709.47029,717.89146 729.37045,687.80331 C 749.2706,657.71517 762.98301,621.79429 771.50587,595.28537 C 780.02873,568.77645 787.30681,518.18583 787.30681,518.18583"
715 id="path8624"
716 sodipodi:nodetypes="czzzzzzczczczczzzc" />
717 </clipPath>
718 <clipPath
719 clipPathUnits="userSpaceOnUse"
720 id="clipPath8642">
721 <path
722 style="opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
723 d="M 366.88839,504.13471 C 366.88839,504.13471 337.33433,544.70776 319.03125,578.42042 C 300.72816,612.13309 260.41016,704.77736 248.67411,749.49185 C 236.91471,794.29529 186.17411,873.06329 186.17411,873.06329 L 262.24554,891.27757 C 262.24554,891.27757 274.05266,878.45422 293.31696,845.20614 C 312.58126,811.95806 353.67411,706.63471 353.67411,706.63471 L 366.88839,504.13471 z"
724 id="path8644"
725 sodipodi:nodetypes="czzcczcc" />
726 </clipPath>
727 <clipPath
728 clipPathUnits="userSpaceOnUse"
729 id="clipPath8658">
730 <path
731 style="opacity:1;fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
732 d="M 569.03125,1018.7776 C 564.74554,1019.4919 541.4031,1022.3957 511.17411,1028.7776 C 480.94512,1035.1595 411.39918,1054.7395 368.31696,1064.4919 C 325.23474,1074.2443 251.05253,1099.3079 211.40434,1091.7573 C 171.75616,1084.2067 121.88839,1027.349 121.88839,1027.349 L 126.17411,933.06329 C 126.17411,933.06329 212.05962,916.86235 238.31696,899.49186 C 264.57431,882.12137 283.89934,849.82588 297.60268,828.06329 C 311.30602,806.3007 330.45982,756.63471 330.45982,756.63471 L 569.03125,1018.7776 z"
733 id="path8660"
734 sodipodi:nodetypes="czzzcczzcc" />
735 </clipPath>
736 <filter
737 inkscape:collect="always"
738 id="filter8802"
739 x="-0.35311759"
740 width="1.7062352"
741 y="-0.1817714"
742 height="1.3635428">
743 <feGaussianBlur
744 inkscape:collect="always"
745 stdDeviation="48.038491"
746 id="feGaussianBlur8804" />
747 </filter>
748 <filter
749 inkscape:collect="always"
750 id="filter8806"
751 x="-0.61142862"
752 width="2.2228572"
753 y="-0.14930232"
754 height="1.2986046">
755 <feGaussianBlur
756 inkscape:collect="always"
757 stdDeviation="37.830213"
758 id="feGaussianBlur8808" />
759 </filter>
760 <filter
761 inkscape:collect="always"
762 id="filter8810"
763 x="-0.23519406"
764 width="1.4703881"
765 y="-0.24500646"
766 height="1.4900129">
767 <feGaussianBlur
768 inkscape:collect="always"
769 stdDeviation="58.328041"
770 id="feGaussianBlur8812" />
771 </filter>
772 <filter
773 inkscape:collect="always"
774 id="filter8814"
775 x="-0.20466694"
776 width="1.4093339"
777 y="-0.29007819"
778 height="1.5801564">
779 <feGaussianBlur
780 inkscape:collect="always"
781 stdDeviation="22.300169"
782 id="feGaussianBlur8816" />
783 </filter>
784 <filter
785 inkscape:collect="always"
786 id="filter8818"
787 x="-0.34381232"
788 width="1.6876246"
789 y="-0.18433961"
790 height="1.3686792">
791 <feGaussianBlur
792 inkscape:collect="always"
793 stdDeviation="34.542167"
794 id="feGaussianBlur8820" />
795 </filter>
796 <filter
797 inkscape:collect="always"
798 id="filter8822"
799 x="-0.2742857"
800 width="1.5485713"
801 y="-0.21333334"
802 height="1.4266667">
803 <feGaussianBlur
804 inkscape:collect="always"
805 stdDeviation="11.313708"
806 id="feGaussianBlur8824" />
807 </filter>
808 <filter
809 inkscape:collect="always"
810 id="filter8826"
811 x="-0.25894088"
812 width="1.5178818"
813 y="-0.2236412"
814 height="1.4472824">
815 <feGaussianBlur
816 inkscape:collect="always"
817 stdDeviation="19.631544"
818 id="feGaussianBlur8828" />
819 </filter>
820 <filter
821 inkscape:collect="always"
822 id="filter8856"
823 x="-0.3253231"
824 width="1.6506462"
825 y="-0.19013336"
826 height="1.3802667">
827 <feGaussianBlur
828 inkscape:collect="always"
829 stdDeviation="28.712591"
830 id="feGaussianBlur8858" />
831 </filter>
832 <filter
833 inkscape:collect="always"
834 id="filter8860"
835 x="-0.38093024"
836 width="1.7618605"
837 y="-0.17518716"
838 height="1.3503743">
839 <feGaussianBlur
840 inkscape:collect="always"
841 stdDeviation="19.304015"
842 id="feGaussianBlur8862" />
843 </filter>
844 <filter
845 inkscape:collect="always"
846 id="filter8888"
847 x="-0.2112188"
848 width="1.4224375"
849 y="-0.16808605"
850 height="1.3361721">
851 <feGaussianBlur
852 inkscape:collect="always"
853 stdDeviation="8.3693583"
854 id="feGaussianBlur8890" />
855 </filter>
856 <filter
857 inkscape:collect="always"
858 id="filter8892"
859 x="-0.18692794"
860 width="1.3738559"
861 y="-0.23646873"
862 height="1.4729375">
863 <feGaussianBlur
864 inkscape:collect="always"
865 stdDeviation="31.21228"
866 id="feGaussianBlur8894" />
867 </filter>
868 <clipPath
869 clipPathUnits="userSpaceOnUse"
870 id="clipPath8906">
871 <path
872 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
873 d="M 352.24553,211.99185 C 348.4411,186.72762 335.43581,161.35383 335.08873,136.46662 C 334.90247,123.1111 338.36158,109.89571 348.84426,96.912574 C 385.19128,31.616739 465.78517,12.217889 534.77892,5.447147 C 621.70131,-5.569654 719.69159,23.387219 768.15026,100.84843 C 822.27428,176.58173 824.82502,273.38755 848.7623,360.37638 C 878.20009,487.50398 903.54144,616.59052 909.15454,747.22673 C 906.09106,825.40858 900.7282,912.41088 848.65133,975.36086 C 800.62479,1025.7183 725.86486,1025.4139 661.58145,1034.3632 C 571.02606,1039.0182 477.22992,1018.2174 399.79755,970.16496 C 335.02191,932.22495 304.06736,856.68633 302.51815,784.14538 C 294.12898,704.27022 328.90967,630.33687 354.13855,556.98577 C 361.60916,474.2247 363.55141,390.73802 363.79189,307.60093 C 362.95507,275.40549 356.70236,243.7836 352.24553,211.99185 z"
874 id="path8908"
875 sodipodi:nodetypes="cscccccccccccc" />
876 </clipPath>
877 <filter
878 inkscape:collect="always"
879 id="filter8940"
880 x="-0.25152978"
881 width="1.5030596"
882 y="-0.053035267"
883 height="1.1060705">
884 <feGaussianBlur
885 inkscape:collect="always"
886 stdDeviation="13.024603"
887 id="feGaussianBlur8942" />
888 </filter>
889 <linearGradient
890 inkscape:collect="always"
891 xlink:href="#linearGradient8952"
892 id="linearGradient8958"
893 x1="609.31244"
894 y1="239.46866"
895 x2="560.83142"
896 y2="262.86206"
897 gradientUnits="userSpaceOnUse"
898 gradientTransform="translate(450.03125,73.843964)" />
899 <linearGradient
900 inkscape:collect="always"
901 xlink:href="#linearGradient8964"
902 id="linearGradient8970"
903 x1="603.84064"
904 y1="627.85303"
905 x2="616.24396"
906 y2="585.42664"
907 gradientUnits="userSpaceOnUse"
908 gradientTransform="translate(450.03125,73.843964)" />
909 <filter
910 inkscape:collect="always"
911 id="filter9020"
912 x="-0.32861114"
913 width="1.6572223"
914 y="-0.182"
915 height="1.364">
916 <feGaussianBlur
917 inkscape:collect="always"
918 stdDeviation="20.912684"
919 id="feGaussianBlur9022" />
920 </filter>
921 <filter
922 inkscape:collect="always"
923 id="filter9024"
924 x="-0.55453134"
925 width="2.1090627"
926 y="-0.51434779"
927 height="2.0286956">
928 <feGaussianBlur
929 inkscape:collect="always"
930 stdDeviation="20.912684"
931 id="feGaussianBlur9026" />
932 </filter>
933 <filter
934 inkscape:collect="always"
935 id="filter9044"
936 x="-0.32631579"
937 width="1.6526316"
938 y="-0.84545463"
939 height="2.6909094">
940 <feGaussianBlur
941 inkscape:collect="always"
942 stdDeviation="21.92031"
943 id="feGaussianBlur9046" />
944 </filter>
945 <filter
946 inkscape:collect="always"
947 id="filter9048"
948 x="-0.40879121"
949 width="1.8175824"
950 y="-0.71538466"
951 height="2.4307692">
952 <feGaussianBlur
953 inkscape:collect="always"
954 stdDeviation="21.92031"
955 id="feGaussianBlur9050" />
956 </filter>
957 <filter
958 inkscape:collect="always"
959 id="filter3587"
960 x="-0.1">
961 <feGaussianBlur
962 inkscape:collect="always"
963 stdDeviation="8.881432"
964 id="feGaussianBlur3589" />
965 </filter>
966 <clipPath
967 clipPathUnits="userSpaceOnUse"
968 id="clipPath3602">
969 <path
970 sodipodi:nodetypes="czzzzzzczczczczzzc"
971 id="path3604"
972 d="M 647.61204,540.04601 C 647.61204,540.04601 670.23151,533.5392 683.35479,534.17328 C 696.47807,534.80737 713.99637,536.1119 727.06364,546.35947 C 740.13091,556.60703 752.13138,573.49954 761.17603,604.72912 C 770.22068,635.9587 762.87435,703.98113 755,748.07647 C 747.12565,792.17181 726.7349,854.18945 710,888.07647 C 693.2651,921.96349 660.20229,965.57167 649.43057,977.95263 C 638.06635,991.0146 593.22468,1014.3788 570,1020.2193 C 575.3033,1009.6127 618.89976,969.63046 605,959.50504 C 590.98103,949.29278 559.23991,1005.4874 520.70685,988.53821 C 542.08916,975.40609 562.48625,937.35215 554.74746,921.94376 C 546.90721,906.33337 524.04253,970.70133 461.21192,958.95664 C 491.26396,931.42998 516.61898,888.05263 502.47462,875.97694 C 488.05946,863.67007 442.01287,930.27009 442.01287,930.27009 C 442.01287,930.27009 439.19097,888.56891 455.78607,861.66277 C 472.42542,834.6849 535.43904,780.0475 555.3392,749.95935 C 575.23935,719.87121 588.95176,683.95033 597.47462,657.44141 C 605.99748,630.93249 613.27556,580.34187 613.27556,580.34187"
973 style="opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
974 </clipPath>
975 <filter
976 inkscape:collect="always"
977 id="filter4120"
978 x="-0.2770822"
979 width="1.5541644"
980 y="-0.32482043"
981 height="1.6496409">
982 <feGaussianBlur
983 inkscape:collect="always"
984 stdDeviation="19.956289"
985 id="feGaussianBlur4122" />
986 </filter>
987 <clipPath
988 clipPathUnits="userSpaceOnUse"
989 id="clipPath3631">
990 <path
991 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
992 d="M 760.16396,935.83377 C 766.95806,954.73656 770.65765,969.13346 772.05426,987.04566 C 773.45088,1004.958 768.27158,1038.8465 769.1538,1057.7018 C 770.03555,1076.547 777.28749,1097.8008 796.49843,1106.6707 C 815.9173,1115.6365 845.81767,1116.882 870.61827,1103.5251 C 895.41887,1090.1681 928.01929,1033.1996 941.59253,1006.2164 C 955.21638,979.13246 980.3536,891.71903 986.25333,856.44781 C 992.15306,821.1766 988.80387,815.14704 981.63585,807.39232 C 984.27615,779.55217 980.13613,752.45689 994.74554,720.20614 C 964.49653,732.03184 957.36325,760.36684 946.42665,785.71122 C 938.42574,734.77829 946.63581,714.43803 949.74554,684.49186 C 920.68078,699.26977 906.88403,731.60588 904.74554,777.349 C 893.82159,776.0448 883.3541,772.91477 871.17411,776.63471 C 870.91007,730.61137 869.71055,699.7453 880.08474,662.42822 C 826.82927,683.45508 817.13746,769.02232 824.03125,775.20614 C 813.14843,775.74114 802.66017,773.90884 791.17411,778.06329 C 791.81303,735.49194 790.91365,693.15468 761.17411,655.20614 C 761.17411,655.20614 730.21605,736.12848 729.74554,758.77757 C 729.27503,781.42666 739.19713,798.94345 739.19713,798.94345 C 739.19713,798.94345 730.62906,835.68396 732.89854,857.17568 C 735.19439,878.91714 753.34144,916.85185 760.16396,935.83377 z"
993 id="path3633"
994 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
995 </clipPath>
996 <clipPath
997 clipPathUnits="userSpaceOnUse"
998 id="clipPath3665">
999 <path
1000 sodipodi:nodetypes="czzcczcc"
1001 id="path3667"
1002 d="M 366.88839,504.13471 C 366.88839,504.13471 337.33433,544.70776 319.03125,578.42042 C 300.72816,612.13309 260.41016,704.77736 248.67411,749.49185 C 236.91471,794.29529 186.17411,873.06329 186.17411,873.06329 L 262.24554,891.27757 C 262.24554,891.27757 274.05266,878.45422 293.31696,845.20614 C 312.58126,811.95806 353.67411,706.63471 353.67411,706.63471 L 366.88839,504.13471 z"
1003 style="opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1004 </clipPath>
1005 <clipPath
1006 clipPathUnits="userSpaceOnUse"
1007 id="clipPath3677">
1008 <path
1009 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1010 d="M 586.13271,997.98981 C 592.92681,1016.8926 596.6264,1031.2895 598.02301,1049.2017 C 599.41963,1067.114 594.24033,1101.0025 595.12255,1119.8578 C 596.0043,1138.703 603.25624,1159.9568 622.46718,1168.8267 C 641.88605,1177.7925 671.78642,1179.038 696.58702,1165.6811 C 721.38762,1152.3241 753.98804,1095.3556 767.56128,1068.3724 C 781.18513,1041.2885 806.32235,953.87507 812.22208,918.60385 C 818.12181,883.33264 814.77262,877.30308 807.6046,869.54836 C 810.2449,841.70821 806.10488,814.61293 820.71429,782.36218 C 790.46528,794.18788 783.332,822.52288 772.3954,847.86726 C 764.39449,796.93433 772.60456,776.59407 775.71429,746.6479 C 746.64953,761.42581 732.85278,793.76192 730.71429,839.50504 C 719.79034,838.20084 709.32285,835.07081 697.14286,838.79075 C 696.87882,792.76741 695.6793,761.90134 706.05349,724.58426 C 652.79802,745.61112 643.10621,831.17836 650,837.36218 C 639.11718,837.89718 628.62892,836.06488 617.14286,840.21933 C 617.78178,797.64798 616.8824,755.31072 587.14286,717.36218 C 587.14286,717.36218 556.1848,798.28452 555.71429,820.93361 C 555.24378,843.5827 565.16588,861.09949 565.16588,861.09949 C 565.16588,861.09949 556.59781,897.84 558.86729,919.33172 C 561.16314,941.07318 579.31019,979.00789 586.13271,997.98981 z"
1011 id="path3679"
1012 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
1013 </clipPath>
1014 <filter
1015 inkscape:collect="always"
1016 id="filter3898">
1017 <feGaussianBlur
1018 inkscape:collect="always"
1019 stdDeviation="10.892985"
1020 id="feGaussianBlur3900" />
1021 </filter>
1022 <filter
1023 inkscape:collect="always"
1024 id="filter4130"
1025 x="-0.49509686"
1026 width="1.9901937"
1027 y="-0.26708817"
1028 height="1.5341763">
1029 <feGaussianBlur
1030 inkscape:collect="always"
1031 stdDeviation="10.730622"
1032 id="feGaussianBlur4132" />
1033 </filter>
1034 <filter
1035 inkscape:collect="always"
1036 id="filter4141"
1037 x="-0.40611032"
1038 width="1.8122206"
1039 y="-0.30260596"
1040 height="1.6052119">
1041 <feGaussianBlur
1042 inkscape:collect="always"
1043 stdDeviation="9.8586086"
1044 id="feGaussianBlur4143" />
1045 </filter>
1046 <clipPath
1047 clipPathUnits="userSpaceOnUse"
1048 id="clipPath4177">
1049 <path
1050 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1051 id="path4179"
1052 d="M 586.13271,997.98981 C 592.92681,1016.8926 596.6264,1031.2895 598.02301,1049.2017 C 599.41963,1067.114 594.24033,1101.0025 595.12255,1119.8578 C 596.0043,1138.703 603.25624,1159.9568 622.46718,1168.8267 C 641.88605,1177.7925 671.78642,1179.038 696.58702,1165.6811 C 721.38762,1152.3241 753.98804,1095.3556 767.56128,1068.3724 C 781.18513,1041.2885 806.32235,953.87507 812.22208,918.60385 C 818.12181,883.33264 814.77262,877.30308 807.6046,869.54836 C 810.2449,841.70821 806.10488,814.61293 820.71429,782.36218 C 790.46528,794.18788 783.332,822.52288 772.3954,847.86726 C 764.39449,796.93433 772.60456,776.59407 775.71429,746.6479 C 746.64953,761.42581 732.85278,793.76192 730.71429,839.50504 C 719.79034,838.20084 709.32285,835.07081 697.14286,838.79075 C 696.87882,792.76741 695.6793,761.90134 706.05349,724.58426 C 652.79802,745.61112 643.10621,831.17836 650,837.36218 C 639.11718,837.89718 628.62892,836.06488 617.14286,840.21933 C 617.78178,797.64798 616.8824,755.31072 587.14286,717.36218 C 587.14286,717.36218 556.1848,798.28452 555.71429,820.93361 C 555.24378,843.5827 565.16588,861.09949 565.16588,861.09949 C 565.16588,861.09949 556.59781,897.84 558.86729,919.33172 C 561.16314,941.07318 579.31019,979.00789 586.13271,997.98981 z"
1053 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1054 </clipPath>
1055 <filter
1056 inkscape:collect="always"
1057 id="filter4185">
1058 <feGaussianBlur
1059 inkscape:collect="always"
1060 stdDeviation="3.6164709"
1061 id="feGaussianBlur4187" />
1062 </filter>
1063 <filter
1064 inkscape:collect="always"
1065 id="filter4105">
1066 <feGaussianBlur
1067 inkscape:collect="always"
1068 stdDeviation="3.8640966"
1069 id="feGaussianBlur4107" />
1070 </filter>
1071 <clipPath
1072 clipPathUnits="userSpaceOnUse"
1073 id="clipPath2833">
1074 <path
1075 style="opacity:1;fill:#292929;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1076 d="M 569.03125,1018.7776 C 564.74554,1019.4919 541.4031,1022.3957 511.17411,1028.7776 C 480.94512,1035.1595 453.86016,1033.7437 375.38803,1046.1072 C 295.53625,1058.688 281.32367,1088.6495 267.26578,1093.1715 C 252.56564,1097.9001 121.88839,1027.349 121.88839,1027.349 L 126.17411,933.06329 C 126.17411,933.06329 212.05962,916.86235 238.31696,899.49186 C 264.57431,882.12137 283.89934,849.82588 297.60268,828.06329 C 311.30602,806.3007 330.45982,756.63471 330.45982,756.63471 L 569.03125,1018.7776 z"
1077 id="path2835"
1078 sodipodi:nodetypes="czzzcczzcc" />
1079 </clipPath>
1080 <linearGradient
1081 inkscape:collect="always"
1082 xlink:href="#linearGradient2843"
1083 id="linearGradient2841"
1084 gradientUnits="userSpaceOnUse"
1085 x1="347.89655"
1086 y1="1070.2124"
1087 x2="275.58191"
1088 y2="867.97992" />
1089 <linearGradient
1090 inkscape:collect="always"
1091 xlink:href="#linearGradient3627"
1092 id="linearGradient3688"
1093 gradientUnits="userSpaceOnUse"
1094 x1="699.32867"
1095 y1="269.76755"
1096 x2="698.97504"
1097 y2="346.1351" />
1098 <mask
1099 maskUnits="userSpaceOnUse"
1100 id="mask3684">
1101 <path
1102 sodipodi:type="arc"
1103 style="opacity:1;fill:url(#linearGradient3688);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.43724918px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1104 id="path3686"
1105 sodipodi:cx="579.474"
1106 sodipodi:cy="260.57516"
1107 sodipodi:rx="192.6866"
1108 sodipodi:ry="164.04877"
1109 d="M 772.1606,260.57516 A 192.6866,164.04877 0 1 1 386.7874,260.57516 A 192.6866,164.04877 0 1 1 772.1606,260.57516 z"
1110 transform="translate(-174.03125,62.156036)" />
1111 </mask>
1112 <clipPath
1113 clipPathUnits="userSpaceOnUse"
1114 id="clipPath3622">
1115 <path
1116 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1117 d="M 266.27183,924.57186 C 264.86456,943.37307 265.12693,957.32289 268.35357,973.87514 C 271.58022,990.42748 284.75965,1019.7825 288.68797,1037.0589 C 292.61419,1054.326 291.3821,1075.3685 276.22853,1088.2071 C 260.91092,1101.1845 234.17726,1109.806 208.39623,1103.9409 C 182.61517,1098.0756 138.84716,1054.7175 119.80604,1033.7126 C 100.6939,1012.6293 56.045183,939.86194 41.867508,909.43681 C 27.689836,879.01169 29.207903,872.71824 33.747793,863.90708 C 24.381071,839.38658 21.334081,813.84027 0.035335518,788.33044 C 30.360815,791.44488 43.915625,815.28677 60.161025,835.47019 C 54.631129,787.39416 42.10631,771.05369 31.787073,744.74589 C 61.781368,750.82755 82.366433,776.61829 95.766856,817.45839 C 105.32101,813.54048 114.00462,808.08545 125.95427,808.39719 C 114.65677,766.70139 108.00481,738.48135 89.267015,707.32725 C 142.70898,712.99758 172.92404,787.96657 168.23844,795.28805 C 178.21641,793.04406 187.24409,788.75767 198.67497,789.63638 C 187.42601,751.28936 177.62716,712.76848 195.01526,670.9882 C 195.01526,670.9882 243.30204,736.42507 249.40492,756.79397 C 255.50779,777.16288 250.92373,795.49449 250.92373,795.49449 C 250.92373,795.49449 267.8833,826.57978 271.21765,846.58862 C 274.59075,866.82997 267.68496,905.69194 266.27183,924.57186 z"
1118 id="path3624"
1119 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
1120 </clipPath>
1121 <clipPath
1122 clipPathUnits="userSpaceOnUse"
1123 id="clipPath3636">
1124 <path
1125 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1126 d="M 760.16396,935.83377 C 766.95806,954.73656 770.65765,969.13346 772.05426,987.04566 C 773.45088,1004.958 768.27158,1038.8465 769.1538,1057.7018 C 770.03555,1076.547 777.28749,1097.8008 796.49843,1106.6707 C 815.9173,1115.6365 845.81767,1116.882 870.61827,1103.5251 C 895.41887,1090.1681 928.01929,1033.1996 941.59253,1006.2164 C 955.21638,979.13246 980.3536,891.71903 986.25333,856.44781 C 992.15306,821.1766 988.80387,815.14704 981.63585,807.39232 C 984.27615,779.55217 980.13613,752.45689 994.74554,720.20614 C 964.49653,732.03184 957.36325,760.36684 946.42665,785.71122 C 938.42574,734.77829 946.63581,714.43803 949.74554,684.49186 C 920.68078,699.26977 906.88403,731.60588 904.74554,777.349 C 893.82159,776.0448 883.3541,772.91477 871.17411,776.63471 C 870.91007,730.61137 869.71055,699.7453 880.08474,662.42822 C 826.82927,683.45508 817.13746,769.02232 824.03125,775.20614 C 813.14843,775.74114 802.66017,773.90884 791.17411,778.06329 C 791.81303,735.49194 790.91365,693.15468 761.17411,655.20614 C 761.17411,655.20614 730.21605,736.12848 729.74554,758.77757 C 729.27503,781.42666 739.19713,798.94345 739.19713,798.94345 C 739.19713,798.94345 730.62906,835.68396 732.89854,857.17568 C 735.19439,878.91714 753.34144,916.85185 760.16396,935.83377 z"
1127 id="path3638"
1128 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
1129 </clipPath>
1130 <linearGradient
1131 inkscape:collect="always"
1132 xlink:href="#linearGradient3660"
1133 id="linearGradient3666"
1134 x1="1255.7386"
1135 y1="667.09216"
1136 x2="893.69995"
1137 y2="858.01099"
1138 gradientUnits="userSpaceOnUse" />
1139 <filter
1140 inkscape:collect="always"
1141 id="filter3779"
1142 x="-0.087980822"
1143 width="1.1759616"
1144 y="-0.17728332"
1145 height="1.3545666">
1146 <feGaussianBlur
1147 inkscape:collect="always"
1148 stdDeviation="16.340344"
1149 id="feGaussianBlur3781" />
1150 </filter>
1151 <filter
1152 id="filter3785"
1153 inkscape:label="White Fur">
1154 <feTurbulence
1155 id="feTurbulence3787"
1156 in="SourceAlpha"
1157 type="fractalNoise"
1158 baseFrequency="0.24044943820224721"
1159 numOctaves="10"
1160 seed="655"
1161 result="result0" />
1162 <feDisplacementMap
1163 id="feDisplacementMap3789"
1164 in="SourceGraphic"
1165 in2="result0"
1166 scale="62"
1167 xChannelSelector="B"
1168 yChannelSelector="G" />
1169 </filter>
1170 <filter
1171 inkscape:collect="always"
1172 id="filter3677">
1173 <feGaussianBlur
1174 inkscape:collect="always"
1175 stdDeviation="2.0397518"
1176 id="feGaussianBlur3679" />
1177 </filter>
1178 <clipPath
1179 clipPathUnits="userSpaceOnUse"
1180 id="clipPath3722">
1181 <path
1182 style="opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1183 d="M 709.28572,844.50504 C 763.57143,843.07647 835.32072,829.45305 879.28572,817.71932 C 923.33843,805.96218 1005.172,781.37208 1054.6428,759.86218 C 1103.9821,738.40946 1168.2465,700.58058 1208.9286,667.71933 C 1249.4367,634.99864 1261.3185,611.89952 1269.6429,634.1479 C 1278.012,656.51569 1253.2359,690.47352 1231.7857,715.21933 C 1210.1816,740.14273 1179.0544,767.92466 1132.8571,804.50504 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 C 862.93394,960.20183 791.79666,991.31489 747.85714,1005.5765 C 703.91762,1019.8381 616.42857,1036.6479 616.42857,1036.6479 L 709.28572,844.50504 z"
1184 id="path3724"
1185 sodipodi:nodetypes="czzzzzzzzcc" />
1186 </clipPath>
1187 <clipPath
1188 clipPathUnits="userSpaceOnUse"
1189 id="clipPath3986">
1190 <path
1191 style="opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1192 d="M 709.28572,844.50504 C 763.57143,843.07647 835.32072,829.45305 879.28572,817.71932 C 923.33843,805.96218 1005.172,781.37208 1054.6428,759.86218 C 1103.9821,738.40946 1168.2465,700.58058 1208.9286,667.71933 C 1249.4367,634.99864 1261.3185,611.89952 1269.6429,634.1479 C 1278.012,656.51569 1253.2359,690.47352 1231.7857,715.21933 C 1210.1816,740.14273 1179.0544,767.92466 1132.8571,804.50504 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 C 862.93394,960.20183 791.79666,991.31489 747.85714,1005.5765 C 703.91762,1019.8381 616.42857,1036.6479 616.42857,1036.6479 L 709.28572,844.50504 z"
1193 id="path3988"
1194 sodipodi:nodetypes="czzzzzzzzcc" />
1195 </clipPath>
1196 <clipPath
1197 clipPathUnits="userSpaceOnUse"
1198 id="clipPath3992">
1199 <path
1200 style="opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1201 d="M 709.28572,844.50504 C 763.57143,843.07647 835.32072,829.45305 879.28572,817.71932 C 923.33843,805.96218 1005.172,781.37208 1054.6428,759.86218 C 1103.9821,738.40946 1168.2465,700.58058 1208.9286,667.71933 C 1249.4367,634.99864 1261.3185,611.89952 1269.6429,634.1479 C 1278.012,656.51569 1253.2359,690.47352 1231.7857,715.21933 C 1210.1816,740.14273 1179.0544,767.92466 1132.8571,804.50504 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 C 862.93394,960.20183 791.79666,991.31489 747.85714,1005.5765 C 703.91762,1019.8381 616.42857,1036.6479 616.42857,1036.6479 L 709.28572,844.50504 z"
1202 id="path3994"
1203 sodipodi:nodetypes="czzzzzzzzcc" />
1204 </clipPath>
1205 <clipPath
1206 clipPathUnits="userSpaceOnUse"
1207 id="clipPath3998">
1208 <path
1209 style="opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1210 d="M 178.21428,274.14789 C 174.40985,248.88366 161.40456,223.50987 161.05748,198.62266 C 160.87122,185.26714 164.33033,172.05175 174.81301,159.06861 C 211.16003,93.772775 291.75392,74.373925 360.74767,67.603183 C 447.67006,56.586382 545.66034,85.543255 594.11901,163.00447 C 648.24303,238.73777 650.79377,335.54359 674.73105,422.53242 C 704.16884,549.66002 729.51019,678.74656 735.12329,809.38277 C 732.05981,887.56462 726.69695,974.56692 674.62008,1037.5169 C 626.59354,1087.8743 551.83361,1087.5699 487.5502,1096.5192 C 396.99481,1101.1742 303.19867,1080.3734 225.7663,1032.321 C 160.99066,994.38099 130.03611,918.84237 128.4869,846.30142 C 120.09773,766.42626 154.87842,692.49291 180.1073,619.14181 C 187.57791,536.38074 189.52016,452.89406 189.76064,369.75697 C 188.92382,337.56153 182.67111,305.93964 178.21428,274.14789 z"
1211 id="path4000"
1212 sodipodi:nodetypes="cscccccccccccc" />
1213 </clipPath>
1214 <filter
1215 inkscape:collect="always"
1216 id="filter4002"
1217 x="-0.24334238"
1218 width="1.4866848"
1219 y="-0.39104807"
1220 height="1.7820961">
1221 <feGaussianBlur
1222 inkscape:collect="always"
1223 stdDeviation="14.589518"
1224 id="feGaussianBlur4004" />
1225 </filter>
1226 <filter
1227 inkscape:collect="always"
1228 id="filter4010"
1229 x="-0.14577261"
1230 width="1.2915452"
1231 y="-0.23523259"
1232 height="1.4704652">
1233 <feGaussianBlur
1234 inkscape:collect="always"
1235 stdDeviation="4.4442907"
1236 id="feGaussianBlur4012" />
1237 </filter>
1238 <filter
1239 inkscape:collect="always"
1240 id="filter4053">
1241 <feGaussianBlur
1242 inkscape:collect="always"
1243 stdDeviation="0.6062947"
1244 id="feGaussianBlur4055" />
1245 </filter>
1246 <filter
1247 inkscape:collect="always"
1248 id="filter4079">
1249 <feGaussianBlur
1250 inkscape:collect="always"
1251 stdDeviation="6.5887624"
1252 id="feGaussianBlur4081" />
1253 </filter>
1254 <filter
1255 inkscape:collect="always"
1256 id="filter4083">
1257 <feGaussianBlur
1258 inkscape:collect="always"
1259 stdDeviation="1.5052066"
1260 id="feGaussianBlur4085" />
1261 </filter>
1262 <radialGradient
1263 inkscape:collect="always"
1264 xlink:href="#linearGradient4113"
1265 id="radialGradient4119"
1266 cx="296.33783"
1267 cy="427.17749"
1268 fx="296.33783"
1269 fy="427.17749"
1270 r="19.704132"
1271 gradientUnits="userSpaceOnUse"
1272 gradientTransform="matrix(2.9797125,0,0,2.9797125,-599.28727,-827.0855)" />
1273 <filter
1274 inkscape:collect="always"
1275 id="filter6949"
1276 x="-0.10294895"
1277 width="1.2058979"
1278 y="-0.34224695"
1279 height="1.6844939">
1280 <feGaussianBlur
1281 inkscape:collect="always"
1282 stdDeviation="1.1675612"
1283 id="feGaussianBlur6951" />
1284 </filter>
1285 <filter
1286 inkscape:collect="always"
1287 id="filter6953"
1288 x="-0.098320946"
1289 width="1.1966419"
1290 y="-0.19750816"
1291 height="1.3950163">
1292 <feGaussianBlur
1293 inkscape:collect="always"
1294 stdDeviation="1.1675612"
1295 id="feGaussianBlur6955" />
1296 </filter>
1297 <filter
1298 inkscape:collect="always"
1299 id="filter6957"
1300 x="-0.098213427"
1301 width="1.1964267"
1302 y="-0.19838208"
1303 height="1.3967642">
1304 <feGaussianBlur
1305 inkscape:collect="always"
1306 stdDeviation="1.1675612"
1307 id="feGaussianBlur6959" />
1308 </filter>
1309 <filter
1310 inkscape:collect="always"
1311 id="filter6961"
1312 x="-0.09919104"
1313 width="1.1983821"
1314 y="-0.22643611"
1315 height="1.4528722">
1316 <feGaussianBlur
1317 inkscape:collect="always"
1318 stdDeviation="1.1675612"
1319 id="feGaussianBlur6963" />
1320 </filter>
1321 <filter
1322 inkscape:collect="always"
1323 id="filter6965"
1324 x="-0.099081434"
1325 width="1.1981629"
1326 y="-0.22529824"
1327 height="1.4505965">
1328 <feGaussianBlur
1329 inkscape:collect="always"
1330 stdDeviation="1.1675612"
1331 id="feGaussianBlur6967" />
1332 </filter>
1333 <filter
1334 inkscape:collect="always"
1335 id="filter6969"
1336 x="-0.10450897"
1337 width="1.2090179"
1338 y="-0.40468886"
1339 height="1.8093777">
1340 <feGaussianBlur
1341 inkscape:collect="always"
1342 stdDeviation="1.1675612"
1343 id="feGaussianBlur6971" />
1344 </filter>
1345 <filter
1346 inkscape:collect="always"
1347 id="filter6973"
1348 x="-0.10330495"
1349 width="1.2066098"
1350 y="-0.36439717"
1351 height="1.7287945">
1352 <feGaussianBlur
1353 inkscape:collect="always"
1354 stdDeviation="1.1675612"
1355 id="feGaussianBlur6975" />
1356 </filter>
1357 <filter
1358 inkscape:collect="always"
1359 id="filter6977"
1360 x="-0.10224481"
1361 width="1.2044896"
1362 y="-0.32371372"
1363 height="1.6474274">
1364 <feGaussianBlur
1365 inkscape:collect="always"
1366 stdDeviation="1.1675612"
1367 id="feGaussianBlur6979" />
1368 </filter>
1369 <filter
1370 inkscape:collect="always"
1371 id="filter6981"
1372 x="-0.10052545"
1373 width="1.2010509"
1374 y="-0.2742162"
1375 height="1.5484324">
1376 <feGaussianBlur
1377 inkscape:collect="always"
1378 stdDeviation="1.1675612"
1379 id="feGaussianBlur6983" />
1380 </filter>
1381 <filter
1382 inkscape:collect="always"
1383 id="filter6985"
1384 x="-0.098428868"
1385 width="1.1968577"
1386 y="-0.20853186"
1387 height="1.4170637">
1388 <feGaussianBlur
1389 inkscape:collect="always"
1390 stdDeviation="1.1675612"
1391 id="feGaussianBlur6987" />
1392 </filter>
1393 <filter
1394 inkscape:collect="always"
1395 id="filter6989"
1396 x="-0.098428868"
1397 width="1.1968577"
1398 y="-0.20287035"
1399 height="1.4057407">
1400 <feGaussianBlur
1401 inkscape:collect="always"
1402 stdDeviation="1.1675612"
1403 id="feGaussianBlur6991" />
1404 </filter>
1405 <filter
1406 inkscape:collect="always"
1407 id="filter6993"
1408 x="-0.098213255"
1409 width="1.1964265"
1410 y="-0.19838208"
1411 height="1.3967642">
1412 <feGaussianBlur
1413 inkscape:collect="always"
1414 stdDeviation="1.1675612"
1415 id="feGaussianBlur6995" />
1416 </filter>
1417 <filter
1418 inkscape:collect="always"
1419 id="filter6997">
1420 <feGaussianBlur
1421 inkscape:collect="always"
1422 stdDeviation="1.1675612"
1423 id="feGaussianBlur6999" />
1424 </filter>
1425 <filter
1426 inkscape:collect="always"
1427 id="filter7001">
1428 <feGaussianBlur
1429 inkscape:collect="always"
1430 stdDeviation="1.1675612"
1431 id="feGaussianBlur7003" />
1432 </filter>
1433 <filter
1434 inkscape:collect="always"
1435 id="filter7285"
1436 x="-0.030884685"
1437 width="1.0617694"
1438 y="-0.10267408"
1439 height="1.2053483">
1440 <feGaussianBlur
1441 inkscape:collect="always"
1442 stdDeviation="0.35026836"
1443 id="feGaussianBlur7287" />
1444 </filter>
1445 <filter
1446 inkscape:collect="always"
1447 id="filter7289">
1448 <feGaussianBlur
1449 inkscape:collect="always"
1450 stdDeviation="0.35026836"
1451 id="feGaussianBlur7291" />
1452 </filter>
1453 <filter
1454 inkscape:collect="always"
1455 id="filter7293">
1456 <feGaussianBlur
1457 inkscape:collect="always"
1458 stdDeviation="0.35026836"
1459 id="feGaussianBlur7295" />
1460 </filter>
1461 <filter
1462 inkscape:collect="always"
1463 id="filter7297">
1464 <feGaussianBlur
1465 inkscape:collect="always"
1466 stdDeviation="0.35026836"
1467 id="feGaussianBlur7299" />
1468 </filter>
1469 <filter
1470 inkscape:collect="always"
1471 id="filter7301">
1472 <feGaussianBlur
1473 inkscape:collect="always"
1474 stdDeviation="0.35026836"
1475 id="feGaussianBlur7303" />
1476 </filter>
1477 <filter
1478 inkscape:collect="always"
1479 id="filter7305">
1480 <feGaussianBlur
1481 inkscape:collect="always"
1482 stdDeviation="0.35026836"
1483 id="feGaussianBlur7307" />
1484 </filter>
1485 <filter
1486 inkscape:collect="always"
1487 id="filter7309">
1488 <feGaussianBlur
1489 inkscape:collect="always"
1490 stdDeviation="0.35026836"
1491 id="feGaussianBlur7311" />
1492 </filter>
1493 <filter
1494 inkscape:collect="always"
1495 id="filter7313">
1496 <feGaussianBlur
1497 inkscape:collect="always"
1498 stdDeviation="0.35026836"
1499 id="feGaussianBlur7315" />
1500 </filter>
1501 <filter
1502 inkscape:collect="always"
1503 id="filter7317">
1504 <feGaussianBlur
1505 inkscape:collect="always"
1506 stdDeviation="0.35026836"
1507 id="feGaussianBlur7319" />
1508 </filter>
1509 <filter
1510 inkscape:collect="always"
1511 id="filter7321">
1512 <feGaussianBlur
1513 inkscape:collect="always"
1514 stdDeviation="0.35026836"
1515 id="feGaussianBlur7323" />
1516 </filter>
1517 <filter
1518 inkscape:collect="always"
1519 id="filter7325"
1520 x="-0.031352691"
1521 width="1.0627054"
1522 y="-0.12140666"
1523 height="1.2428133">
1524 <feGaussianBlur
1525 inkscape:collect="always"
1526 stdDeviation="0.35026836"
1527 id="feGaussianBlur7327" />
1528 </filter>
1529 <filter
1530 inkscape:collect="always"
1531 id="filter7329"
1532 x="-0.030991485"
1533 width="1.061983"
1534 y="-0.10931916"
1535 height="1.2186383">
1536 <feGaussianBlur
1537 inkscape:collect="always"
1538 stdDeviation="0.35026836"
1539 id="feGaussianBlur7331" />
1540 </filter>
1541 <filter
1542 inkscape:collect="always"
1543 id="filter7333">
1544 <feGaussianBlur
1545 inkscape:collect="always"
1546 stdDeviation="0.35026836"
1547 id="feGaussianBlur7335" />
1548 </filter>
1549 <filter
1550 inkscape:collect="always"
1551 id="filter7337">
1552 <feGaussianBlur
1553 inkscape:collect="always"
1554 stdDeviation="0.35026836"
1555 id="feGaussianBlur7339" />
1556 </filter>
1557 <filter
1558 inkscape:collect="always"
1559 id="filter7345">
1560 <feGaussianBlur
1561 inkscape:collect="always"
1562 stdDeviation="1.7233839"
1563 id="feGaussianBlur7347" />
1564 </filter>
1565 <clipPath
1566 clipPathUnits="userSpaceOnUse"
1567 id="clipPath7421">
1568 <path
1569 sodipodi:type="inkscape:offset"
1570 inkscape:radius="0"
1571 inkscape:original="M 1111.4062 -285.9375 L 1107.4688 -284.0625 C 1107.4283 -284.05228 1107.3692 -284.04201 1107.3438 -284.03125 C 1106.925 -283.8184 1107.1791 -283.93067 1106.6875 -283.71875 C 1106.2014 -283.50919 1104.9499 -283.13456 1102.5938 -282.25 C 1099.2626 -280.99942 1096.7895 -280.10016 1095.5938 -279.1875 C 1094.0576 -279.16623 1091.8733 -278.95419 1089.9375 -278.46875 C 1086.956 -277.72108 1085.0823 -277.29474 1083.1875 -276.875 C 1081.2927 -276.45527 1081.512 -276.23281 1080.3125 -276 C 1079.0159 -275.74833 1078.5911 -276.00899 1074.875 -275.21875 C 1071.3851 -274.4766 1065.9802 -273.28768 1064.7188 -272.53125 C 1063.1348 -272.71203 1060.8513 -272.85303 1058.875 -272.5625 C 1055.8346 -272.11554 1053.9588 -271.88974 1052.0312 -271.65625 C 1051.3758 -271.57687 1050.9902 -271.45547 1050.6875 -271.375 C 1050.2613 -271.24334 1050.0017 -271.11498 1049.3125 -271.03125 C 1048.0009 -270.87188 1047.5503 -271.18808 1043.7812 -270.75 C 1040.2273 -270.33691 1034.7758 -269.47718 1033.5312 -268.8125 C 1031.9322 -269.10979 1029.6735 -269.34669 1027.6875 -269.15625 C 1024.6287 -268.86293 1022.7155 -268.67226 1020.7812 -268.5 C 1018.847 -268.32773 1019.0926 -268.07763 1017.875 -267.96875 C 1016.5588 -267.85105 1016.1152 -268.13238 1012.3438 -267.71875 C 1008.8017 -267.3303 1003.3359 -266.50948 1002.0625 -265.84375 C 1000.4636 -266.13844 998.1753 -266.35076 996.1875 -266.15625 C 993.12921 -265.857 991.2463 -265.67601 989.3125 -265.5 C 988.65501 -265.44015 988.27245 -265.32144 987.96875 -265.25 C 987.54105 -265.13104 987.28525 -265.03193 986.59375 -264.96875 C 985.27775 -264.84849 984.834 -265.16363 981.0625 -264.75 C 977.50631 -264.35998 972.0569 -263.51084 970.8125 -262.84375 C 969.21381 -263.13793 966.95265 -263.36747 964.96875 -263.15625 C 961.91305 -262.83092 959.9947 -262.63001 958.0625 -262.4375 C 956.13031 -262.24499 956.37275 -261.99662 955.15625 -261.875 C 953.84137 -261.74353 953.3932 -262.03954 949.625 -261.59375 C 946.08611 -261.17509 940.6473 -260.30158 939.375 -259.625 C 937.77741 -259.90604 935.51505 -260.04543 933.53125 -259.8125 C 930.47927 -259.45413 928.58625 -259.24464 926.65625 -259.03125 C 926.00007 -258.95869 925.6156 -258.85856 925.3125 -258.78125 C 924.88571 -258.65402 924.6276 -258.51405 923.9375 -258.4375 C 922.62411 -258.29181 922.17015 -258.61152 918.40625 -258.125 C 914.85737 -257.66624 909.4276 -256.70598 908.1875 -256 C 906.59441 -256.24424 904.3537 -256.38135 902.375 -256.125 C 899.32741 -255.73018 897.4243 -255.47655 895.5 -255.21875 C 893.57571 -254.96096 893.7739 -254.72522 892.5625 -254.5625 C 891.25301 -254.3866 890.8153 -254.66688 887.0625 -254.09375 C 883.53821 -253.55551 878.1393 -252.39458 876.875 -251.65625 C 875.28751 -251.85979 873.0295 -251.91098 871.0625 -251.5625 C 868.03631 -251.02638 866.1636 -250.70081 864.25 -250.375 C 863.59941 -250.26423 863.2363 -250.10406 862.9375 -250 C 862.51681 -249.83512 862.27405 -249.6687 861.59375 -249.53125 C 860.29905 -249.26966 859.86665 -249.53745 856.15625 -248.71875 C 852.65777 -247.9468 847.31035 -246.33582 846.09375 -245.5 C 844.53085 -245.57745 842.33625 -245.41472 840.40625 -244.90625 C 837.43387 -244.12312 835.58855 -243.67416 833.71875 -243.15625 C 831.84875 -242.63835 832.0521 -242.38897 830.875 -242.0625 C 829.60251 -241.7096 829.17795 -241.95541 825.53125 -240.875 C 822.10657 -239.86037 816.88185 -237.94183 815.65625 -237.03125 C 814.11747 -237.01851 811.93645 -236.75903 810.03125 -236.15625 C 807.10027 -235.22891 805.2809 -234.69783 803.4375 -234.09375 C 802.81071 -233.88837 802.44585 -233.70117 802.15625 -233.5625 C 801.74867 -233.34889 801.50295 -233.15375 800.84375 -232.9375 C 799.58925 -232.52596 799.1576 -232.74846 795.5625 -231.5 C 792.17261 -230.32283 786.96755 -228.2863 785.78125 -227.34375 C 784.25737 -227.28408 782.1312 -226.94888 780.25 -226.28125 C 777.35261 -225.25296 775.55095 -224.60577 773.71875 -223.96875 C 771.88655 -223.33174 772.0909 -223.12021 770.9375 -222.71875 C 769.69071 -222.28479 769.27395 -222.51903 765.71875 -221.15625 C 762.38005 -219.87645 757.23165 -217.6737 756.03125 -216.6875 C 754.52407 -216.57981 752.39555 -216.1887 750.53125 -215.46875 C 747.66307 -214.36115 745.90735 -213.68719 744.09375 -213 C 743.47705 -212.76637 743.0973 -212.55797 742.8125 -212.40625 C 742.81251 -212.40625 742.8125 -212.37673 742.8125 -212.375 L 734.8125 -209.1875 L 736.625 -194.46875 C 736.36701 -194.52956 742.8125 -191.15625 742.8125 -191.15625 C 743.03891 -191.30093 743.26145 -191.42886 743.53125 -191.53125 C 744.61177 -191.94123 745.70285 -191.74702 749.53125 -193.21875 C 753.35977 -194.69049 754.7553 -195.22373 755.4375 -195.625 C 756.11711 -196.02478 757.04925 -196.50437 757.65625 -197.15625 C 759.48317 -197.294 761.22705 -197.64948 762.59375 -198.15625 C 765.56175 -199.25677 767.4691 -199.96244 769.375 -200.625 C 771.28081 -201.28754 771.72915 -202.03987 772.78125 -202.40625 C 773.87287 -202.78636 774.97635 -202.57163 778.84375 -203.9375 C 782.71115 -205.30336 784.1269 -205.76458 784.8125 -206.15625 C 785.51361 -206.55677 786.5133 -207.08923 787.125 -207.75 C 789.09581 -207.80466 790.94195 -208.13463 792.40625 -208.625 C 795.40777 -209.63008 797.3324 -210.24671 799.25 -210.875 C 800.78861 -211.3791 801.42415 -211.92177 802.15625 -212.3125 C 802.38647 -212.44681 802.63215 -212.56623 802.90625 -212.65625 C 804.00457 -213.01673 805.0877 -212.73762 809 -213.96875 C 812.91231 -215.19988 814.366 -215.6417 815.0625 -216 C 815.75641 -216.35697 816.6926 -216.79261 817.3125 -217.40625 C 819.17771 -217.42891 820.94835 -217.67308 822.34375 -218.09375 C 825.37415 -219.00729 827.33615 -219.52385 829.28125 -220.0625 C 831.22637 -220.60114 831.70745 -221.32702 832.78125 -221.625 C 833.89527 -221.93415 835.00125 -221.61761 838.96875 -222.65625 C 842.93625 -223.69488 844.38625 -224.08898 845.09375 -224.40625 C 845.82855 -224.73584 846.90765 -225.15997 847.53125 -225.78125 C 849.52907 -225.66525 851.3887 -225.80134 852.875 -226.15625 C 855.95311 -226.89125 857.9584 -227.25719 859.9375 -227.65625 C 861.52541 -227.97643 862.1818 -228.4468 862.9375 -228.75 C 863.17501 -228.8568 863.4044 -228.94276 863.6875 -229 C 864.82091 -229.22919 865.99215 -228.79107 870.03125 -229.5 C 874.07067 -230.20893 875.5315 -230.42709 876.25 -230.6875 C 876.96581 -230.94694 877.95435 -231.25474 878.59375 -231.78125 C 880.51795 -231.54176 882.34165 -231.55672 883.78125 -231.78125 C 886.90767 -232.26887 888.9358 -232.48192 890.9375 -232.75 C 892.93921 -233.01807 893.42625 -233.69514 894.53125 -233.84375 C 895.67767 -233.99793 896.8071 -233.54218 900.875 -234.0625 C 904.94281 -234.58282 906.43525 -234.75823 907.15625 -235 C 907.89337 -235.24714 908.95435 -235.58623 909.59375 -236.125 C 911.64375 -235.78947 913.56745 -235.72704 915.09375 -235.90625 C 918.23595 -236.27521 920.27375 -236.46561 922.28125 -236.6875 C 923.89207 -236.86552 924.5459 -237.2957 925.3125 -237.53125 C 925.55341 -237.61677 925.80655 -237.68685 926.09375 -237.71875 C 927.24345 -237.84647 928.39505 -237.3721 932.46875 -237.84375 C 936.54245 -238.3154 938.0278 -238.45435 938.75 -238.6875 C 939.46941 -238.91977 940.45025 -239.16096 941.09375 -239.65625 C 943.03005 -239.32279 944.8638 -239.25201 946.3125 -239.40625 C 949.45851 -239.7412 951.49 -239.92484 953.5 -240.125 C 955.50991 -240.32514 955.98415 -240.95139 957.09375 -241.0625 C 958.24485 -241.17778 959.39025 -240.69744 963.46875 -241.125 C 967.54725 -241.55256 969.05765 -241.68709 969.78125 -241.90625 C 970.52047 -242.13011 971.57685 -242.4195 972.21875 -242.9375 C 974.27575 -242.53883 976.2206 -242.4441 977.75 -242.59375 C 980.89871 -242.90185 982.9258 -243.067 984.9375 -243.25 C 986.55151 -243.39682 987.20055 -243.81055 987.96875 -244.03125 C 988.21005 -244.11211 988.4623 -244.16116 988.75 -244.1875 C 989.90211 -244.29295 991.0429 -243.79475 995.125 -244.1875 C 999.20711 -244.58025 1000.7139 -244.71834 1001.4375 -244.9375 C 1002.1584 -245.15583 1003.1371 -245.3852 1003.7812 -245.875 C 1005.7193 -245.52501 1007.5501 -245.42062 1009 -245.5625 C 1012.1487 -245.8706 1014.1758 -246.03575 1016.1875 -246.21875 C 1018.1991 -246.40174 1018.7017 -247.05677 1019.8125 -247.15625 C 1020.9648 -247.25948 1022.1047 -246.77142 1026.1875 -247.15625 C 1030.2704 -247.54107 1031.7762 -247.65725 1032.5 -247.875 C 1033.2393 -248.09743 1034.2956 -248.38949 1034.9375 -248.90625 C 1036.9949 -248.50448 1038.9404 -248.40292 1040.4688 -248.5625 C 1043.6153 -248.89102 1045.6458 -249.0852 1047.6562 -249.28125 C 1049.2692 -249.43854 1049.9219 -249.91273 1050.6875 -250.15625 C 1050.9282 -250.24429 1051.1507 -250.27762 1051.4375 -250.3125 C 1052.5858 -250.4522 1053.7542 -249.97259 1057.8125 -250.5625 C 1061.8708 -251.15242 1063.3743 -251.33964 1064.0938 -251.59375 C 1064.8104 -251.84691 1065.7684 -252.15182 1066.4062 -252.6875 C 1068.3259 -252.47556 1070.1262 -252.53609 1071.5625 -252.78125 C 1074.6816 -253.31365 1076.6741 -253.70986 1078.6562 -254.09375 C 1080.6383 -254.47762 1081.1305 -255.1334 1082.2188 -255.375 C 1083.3475 -255.62566 1084.489 -255.25871 1088.4688 -256.25 C 1092.4483 -257.24127 1093.8983 -257.6693 1094.5938 -258.03125 C 1095.316 -258.40725 1096.3555 -258.90183 1096.9688 -259.5625 C 1098.9317 -259.57454 1100.7625 -259.85355 1102.1875 -260.40625 C 1105.1387 -261.55085 1107.0607 -262.27567 1108.875 -263.15625 C 1110.3307 -263.86277 1111.1941 -264.85828 1111.4062 -265.15625 C 1111.6185 -265.4542 1111.5051 -265.8848 1111.5312 -265.90625 C 1111.5742 -265.94148 1111.8716 -266.00028 1112.0312 -266.34375 C 1112.8902 -268.19082 1114.3544 -271.97139 1114.4688 -272.65625 C 1114.5825 -273.33839 1114.6368 -274.00902 1114.6875 -274.40625 C 1114.7169 -274.63575 1114.5404 -275.28515 1114.5625 -275.34375 C 1114.5934 -275.42579 1114.8508 -275.59432 1114.9062 -275.84375 C 1115.1725 -277.04206 1114.9953 -278.05111 1114.7812 -279.46875 C 1114.5673 -280.88638 1113.8096 -284.08338 1113.1562 -284.9375 C 1112.4973 -285.79922 1111.9314 -285.94801 1111.4062 -285.9375 z "
1572 style="fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1573 id="path7423"
1574 d="M 1111.4062,-285.9375 L 1107.4688,-284.0625 C 1107.4283,-284.05228 1107.3692,-284.04201 1107.3438,-284.03125 C 1106.925,-283.8184 1107.1791,-283.93067 1106.6875,-283.71875 C 1106.2014,-283.50919 1104.9499,-283.13456 1102.5938,-282.25 C 1099.2626,-280.99942 1096.7895,-280.10016 1095.5938,-279.1875 C 1094.0576,-279.16623 1091.8733,-278.95419 1089.9375,-278.46875 C 1086.956,-277.72108 1085.0823,-277.29474 1083.1875,-276.875 C 1081.2927,-276.45527 1081.512,-276.23281 1080.3125,-276 C 1079.0159,-275.74833 1078.5911,-276.00899 1074.875,-275.21875 C 1071.3851,-274.4766 1065.9802,-273.28768 1064.7188,-272.53125 C 1063.1348,-272.71203 1060.8513,-272.85303 1058.875,-272.5625 C 1055.8346,-272.11554 1053.9588,-271.88974 1052.0312,-271.65625 C 1051.3758,-271.57687 1050.9902,-271.45547 1050.6875,-271.375 C 1050.2613,-271.24334 1050.0017,-271.11498 1049.3125,-271.03125 C 1048.0009,-270.87188 1047.5503,-271.18808 1043.7812,-270.75 C 1040.2273,-270.33691 1034.7758,-269.47718 1033.5312,-268.8125 C 1031.9322,-269.10979 1029.6735,-269.34669 1027.6875,-269.15625 C 1024.6287,-268.86293 1022.7155,-268.67226 1020.7812,-268.5 C 1018.847,-268.32773 1019.0926,-268.07763 1017.875,-267.96875 C 1016.5588,-267.85105 1016.1152,-268.13238 1012.3438,-267.71875 C 1008.8017,-267.3303 1003.3359,-266.50948 1002.0625,-265.84375 C 1000.4636,-266.13844 998.1753,-266.35076 996.1875,-266.15625 C 993.12921,-265.857 991.2463,-265.67601 989.3125,-265.5 C 988.65501,-265.44015 988.27245,-265.32144 987.96875,-265.25 C 987.54105,-265.13104 987.28525,-265.03193 986.59375,-264.96875 C 985.27775,-264.84849 984.834,-265.16363 981.0625,-264.75 C 977.50631,-264.35998 972.0569,-263.51084 970.8125,-262.84375 C 969.21381,-263.13793 966.95265,-263.36747 964.96875,-263.15625 C 961.91305,-262.83092 959.9947,-262.63001 958.0625,-262.4375 C 956.13031,-262.24499 956.37275,-261.99662 955.15625,-261.875 C 953.84137,-261.74353 953.3932,-262.03954 949.625,-261.59375 C 946.08611,-261.17509 940.6473,-260.30158 939.375,-259.625 C 937.77741,-259.90604 935.51505,-260.04543 933.53125,-259.8125 C 930.47927,-259.45413 928.58625,-259.24464 926.65625,-259.03125 C 926.00007,-258.95869 925.6156,-258.85856 925.3125,-258.78125 C 924.88571,-258.65402 924.6276,-258.51405 923.9375,-258.4375 C 922.62411,-258.29181 922.17015,-258.61152 918.40625,-258.125 C 914.85737,-257.66624 909.4276,-256.70598 908.1875,-256 C 906.59441,-256.24424 904.3537,-256.38135 902.375,-256.125 C 899.32741,-255.73018 897.4243,-255.47655 895.5,-255.21875 C 893.57571,-254.96096 893.7739,-254.72522 892.5625,-254.5625 C 891.25301,-254.3866 890.8153,-254.66688 887.0625,-254.09375 C 883.53821,-253.55551 878.1393,-252.39458 876.875,-251.65625 C 875.28751,-251.85979 873.0295,-251.91098 871.0625,-251.5625 C 868.03631,-251.02638 866.1636,-250.70081 864.25,-250.375 C 863.59941,-250.26423 863.2363,-250.10406 862.9375,-250 C 862.51681,-249.83512 862.27405,-249.6687 861.59375,-249.53125 C 860.29905,-249.26966 859.86665,-249.53745 856.15625,-248.71875 C 852.65777,-247.9468 847.31035,-246.33582 846.09375,-245.5 C 844.53085,-245.57745 842.33625,-245.41472 840.40625,-244.90625 C 837.43387,-244.12312 835.58855,-243.67416 833.71875,-243.15625 C 831.84875,-242.63835 832.0521,-242.38897 830.875,-242.0625 C 829.60251,-241.7096 829.17795,-241.95541 825.53125,-240.875 C 822.10657,-239.86037 816.88185,-237.94183 815.65625,-237.03125 C 814.11747,-237.01851 811.93645,-236.75903 810.03125,-236.15625 C 807.10027,-235.22891 805.2809,-234.69783 803.4375,-234.09375 C 802.81071,-233.88837 802.44585,-233.70117 802.15625,-233.5625 C 801.74867,-233.34889 801.50295,-233.15375 800.84375,-232.9375 C 799.58925,-232.52596 799.1576,-232.74846 795.5625,-231.5 C 792.17261,-230.32283 786.96755,-228.2863 785.78125,-227.34375 C 784.25737,-227.28408 782.1312,-226.94888 780.25,-226.28125 C 777.35261,-225.25296 775.55095,-224.60577 773.71875,-223.96875 C 771.88655,-223.33174 772.0909,-223.12021 770.9375,-222.71875 C 769.69071,-222.28479 769.27395,-222.51903 765.71875,-221.15625 C 762.38005,-219.87645 757.23165,-217.6737 756.03125,-216.6875 C 754.52407,-216.57981 752.39555,-216.1887 750.53125,-215.46875 C 747.66307,-214.36115 745.90735,-213.68719 744.09375,-213 C 743.47705,-212.76637 743.0973,-212.55797 742.8125,-212.40625 C 742.81251,-212.40625 742.8125,-212.37673 742.8125,-212.375 L 734.8125,-209.1875 L 736.625,-194.46875 C 736.36701,-194.52956 742.8125,-191.15625 742.8125,-191.15625 C 743.03891,-191.30093 743.26145,-191.42886 743.53125,-191.53125 C 744.61177,-191.94123 745.70285,-191.74702 749.53125,-193.21875 C 753.35977,-194.69049 754.7553,-195.22373 755.4375,-195.625 C 756.11711,-196.02478 757.04925,-196.50437 757.65625,-197.15625 C 759.48317,-197.294 761.22705,-197.64948 762.59375,-198.15625 C 765.56175,-199.25677 767.4691,-199.96244 769.375,-200.625 C 771.28081,-201.28754 771.72915,-202.03987 772.78125,-202.40625 C 773.87287,-202.78636 774.97635,-202.57163 778.84375,-203.9375 C 782.71115,-205.30336 784.1269,-205.76458 784.8125,-206.15625 C 785.51361,-206.55677 786.5133,-207.08923 787.125,-207.75 C 789.09581,-207.80466 790.94195,-208.13463 792.40625,-208.625 C 795.40777,-209.63008 797.3324,-210.24671 799.25,-210.875 C 800.78861,-211.3791 801.42415,-211.92177 802.15625,-212.3125 C 802.38647,-212.44681 802.63215,-212.56623 802.90625,-212.65625 C 804.00457,-213.01673 805.0877,-212.73762 809,-213.96875 C 812.91231,-215.19988 814.366,-215.6417 815.0625,-216 C 815.75641,-216.35697 816.6926,-216.79261 817.3125,-217.40625 C 819.17771,-217.42891 820.94835,-217.67308 822.34375,-218.09375 C 825.37415,-219.00729 827.33615,-219.52385 829.28125,-220.0625 C 831.22637,-220.60114 831.70745,-221.32702 832.78125,-221.625 C 833.89527,-221.93415 835.00125,-221.61761 838.96875,-222.65625 C 842.93625,-223.69488 844.38625,-224.08898 845.09375,-224.40625 C 845.82855,-224.73584 846.90765,-225.15997 847.53125,-225.78125 C 849.52907,-225.66525 851.3887,-225.80134 852.875,-226.15625 C 855.95311,-226.89125 857.9584,-227.25719 859.9375,-227.65625 C 861.52541,-227.97643 862.1818,-228.4468 862.9375,-228.75 C 863.17501,-228.8568 863.4044,-228.94276 863.6875,-229 C 864.82091,-229.22919 865.99215,-228.79107 870.03125,-229.5 C 874.07067,-230.20893 875.5315,-230.42709 876.25,-230.6875 C 876.96581,-230.94694 877.95435,-231.25474 878.59375,-231.78125 C 880.51795,-231.54176 882.34165,-231.55672 883.78125,-231.78125 C 886.90767,-232.26887 888.9358,-232.48192 890.9375,-232.75 C 892.93921,-233.01807 893.42625,-233.69514 894.53125,-233.84375 C 895.67767,-233.99793 896.8071,-233.54218 900.875,-234.0625 C 904.94281,-234.58282 906.43525,-234.75823 907.15625,-235 C 907.89337,-235.24714 908.95435,-235.58623 909.59375,-236.125 C 911.64375,-235.78947 913.56745,-235.72704 915.09375,-235.90625 C 918.23595,-236.27521 920.27375,-236.46561 922.28125,-236.6875 C 923.89207,-236.86552 924.5459,-237.2957 925.3125,-237.53125 C 925.55341,-237.61677 925.80655,-237.68685 926.09375,-237.71875 C 927.24345,-237.84647 928.39505,-237.3721 932.46875,-237.84375 C 936.54245,-238.3154 938.0278,-238.45435 938.75,-238.6875 C 939.46941,-238.91977 940.45025,-239.16096 941.09375,-239.65625 C 943.03005,-239.32279 944.8638,-239.25201 946.3125,-239.40625 C 949.45851,-239.7412 951.49,-239.92484 953.5,-240.125 C 955.50991,-240.32514 955.98415,-240.95139 957.09375,-241.0625 C 958.24485,-241.17778 959.39025,-240.69744 963.46875,-241.125 C 967.54725,-241.55256 969.05765,-241.68709 969.78125,-241.90625 C 970.52047,-242.13011 971.57685,-242.4195 972.21875,-242.9375 C 974.27575,-242.53883 976.2206,-242.4441 977.75,-242.59375 C 980.89871,-242.90185 982.9258,-243.067 984.9375,-243.25 C 986.55151,-243.39682 987.20055,-243.81055 987.96875,-244.03125 C 988.21005,-244.11211 988.4623,-244.16116 988.75,-244.1875 C 989.90211,-244.29295 991.0429,-243.79475 995.125,-244.1875 C 999.20711,-244.58025 1000.7139,-244.71834 1001.4375,-244.9375 C 1002.1584,-245.15583 1003.1371,-245.3852 1003.7812,-245.875 C 1005.7193,-245.52501 1007.5501,-245.42062 1009,-245.5625 C 1012.1487,-245.8706 1014.1758,-246.03575 1016.1875,-246.21875 C 1018.1991,-246.40174 1018.7017,-247.05677 1019.8125,-247.15625 C 1020.9648,-247.25948 1022.1047,-246.77142 1026.1875,-247.15625 C 1030.2704,-247.54107 1031.7762,-247.65725 1032.5,-247.875 C 1033.2393,-248.09743 1034.2956,-248.38949 1034.9375,-248.90625 C 1036.9949,-248.50448 1038.9404,-248.40292 1040.4688,-248.5625 C 1043.6153,-248.89102 1045.6458,-249.0852 1047.6562,-249.28125 C 1049.2692,-249.43854 1049.9219,-249.91273 1050.6875,-250.15625 C 1050.9282,-250.24429 1051.1507,-250.27762 1051.4375,-250.3125 C 1052.5858,-250.4522 1053.7542,-249.97259 1057.8125,-250.5625 C 1061.8708,-251.15242 1063.3743,-251.33964 1064.0938,-251.59375 C 1064.8104,-251.84691 1065.7684,-252.15182 1066.4062,-252.6875 C 1068.3259,-252.47556 1070.1262,-252.53609 1071.5625,-252.78125 C 1074.6816,-253.31365 1076.6741,-253.70986 1078.6562,-254.09375 C 1080.6383,-254.47762 1081.1305,-255.1334 1082.2188,-255.375 C 1083.3475,-255.62566 1084.489,-255.25871 1088.4688,-256.25 C 1092.4483,-257.24127 1093.8983,-257.6693 1094.5938,-258.03125 C 1095.316,-258.40725 1096.3555,-258.90183 1096.9688,-259.5625 C 1098.9317,-259.57454 1100.7625,-259.85355 1102.1875,-260.40625 C 1105.1387,-261.55085 1107.0607,-262.27567 1108.875,-263.15625 C 1110.3307,-263.86277 1111.1941,-264.85828 1111.4062,-265.15625 C 1111.6185,-265.4542 1111.5051,-265.8848 1111.5312,-265.90625 C 1111.5742,-265.94148 1111.8716,-266.00028 1112.0312,-266.34375 C 1112.8902,-268.19082 1114.3544,-271.97139 1114.4688,-272.65625 C 1114.5825,-273.33839 1114.6368,-274.00902 1114.6875,-274.40625 C 1114.7169,-274.63575 1114.5404,-275.28515 1114.5625,-275.34375 C 1114.5934,-275.42579 1114.8508,-275.59432 1114.9062,-275.84375 C 1115.1725,-277.04206 1114.9953,-278.05111 1114.7812,-279.46875 C 1114.5673,-280.88638 1113.8096,-284.08338 1113.1562,-284.9375 C 1112.4973,-285.79922 1111.9314,-285.94801 1111.4062,-285.9375 z"
1575 transform="translate(8.0045714e-2,-3.125e-2)" />
1576 </clipPath>
1577 <filter
1578 inkscape:collect="always"
1579 id="filter7578"
1580 x="-0.08160872"
1581 width="1.1632174"
1582 y="-0.22659944"
1583 height="1.4531989">
1584 <feGaussianBlur
1585 inkscape:collect="always"
1586 stdDeviation="2.437399"
1587 id="feGaussianBlur7580" />
1588 </filter>
1589 <filter
1590 inkscape:collect="always"
1591 id="filter7594"
1592 x="-0.040804356"
1593 width="1.0816087"
1594 y="-0.11329972"
1595 height="1.2265995">
1596 <feGaussianBlur
1597 inkscape:collect="always"
1598 stdDeviation="1.2186995"
1599 id="feGaussianBlur7596" />
1600 </filter>
1601 <clipPath
1602 clipPathUnits="userSpaceOnUse"
1603 id="clipPath7606">
1604 <path
1605 id="path7608"
1606 d="M 1049.205,-282.26672 L 1049.1152,-282.25891 C 1047.7278,-281.37446 1042.5119,-280.65171 1042.4862,-272.73547 C 1042.462,-265.31022 1057.4991,-255.64401 1059.6425,-254.64172 C 1061.3727,-253.83263 1063.2341,-253.23296 1065.0488,-252.92297 L 1066.4862,-252.70422 C 1068.4059,-252.49228 1070.2062,-252.55281 1071.6425,-252.79797 C 1074.7616,-253.33037 1076.7541,-253.72658 1078.7362,-254.11047 C 1080.7183,-254.49434 1081.2105,-255.15012 1082.2988,-255.39172 C 1083.4275,-255.64238 1084.569,-255.27543 1088.5488,-256.26672 C 1092.5283,-257.258 1093.9782,-257.68602 1094.6738,-258.04797 C 1095.396,-258.42398 1096.4355,-258.91855 1097.0488,-259.57922 C 1099.0117,-259.59127 1100.8425,-259.87027 1102.2675,-260.42297 C 1105.2187,-261.56758 1107.1407,-262.29239 1108.955,-263.17297 C 1110.4107,-263.8795 1111.2741,-264.875 1111.4862,-265.17297 C 1111.6985,-265.47093 1111.5852,-265.90152 1111.6112,-265.92297 C 1111.6542,-265.95821 1111.9517,-266.017 1112.1112,-266.36047 C 1112.9702,-268.20755 1114.4344,-271.98811 1114.5488,-272.67297 C 1114.6625,-273.35512 1114.7168,-274.02574 1114.7675,-274.42297 C 1114.7969,-274.65248 1114.6204,-275.30187 1114.6425,-275.36047 C 1114.6734,-275.44252 1114.9308,-275.61104 1114.9862,-275.86047 C 1115.2525,-277.05879 1115.0754,-278.06783 1114.8612,-279.48547 C 1114.6473,-280.90311 1113.8896,-284.1001 1113.2362,-284.95422 C 1112.8168,-285.50279 1112.4369,-285.74672 1112.08,-285.86047 C 1112.0129,-285.87776 1111.9561,-285.90721 1111.8925,-285.92297 C 1111.8715,-285.92695 1111.8508,-285.91983 1111.83,-285.92297 C 1111.5184,-285.99847 1111.2215,-286.08164 1110.6738,-286.14172 C 1109.6883,-286.24984 1108.2491,-286.40112 1106.705,-286.39172 C 1106.1903,-286.38859 1105.6679,-286.34408 1105.1425,-286.29797 C 1101.5836,-285.98569 1096.1327,-285.30689 1094.9238,-284.67297 C 1093.2907,-285.00699 1090.9756,-285.2852 1088.9862,-285.14172 C 1085.9222,-284.92075 1084.0185,-284.79953 1082.08,-284.67297 C 1080.1416,-284.54642 1080.3939,-284.28433 1079.1738,-284.20422 C 1077.8547,-284.11762 1077.3869,-284.42747 1073.6112,-284.11047 C 1070.0655,-283.81275 1064.6306,-283.1173 1063.3925,-282.48547 C 1061.7591,-282.81998 1059.4466,-283.09786 1057.455,-282.95422 C 1054.3908,-282.73324 1052.4872,-282.58078 1050.5488,-282.45422 C 1049.8896,-282.41119 1049.5064,-282.33029 1049.205,-282.26672 z"
1607 style="opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1608 </clipPath>
1609 <filter
1610 inkscape:collect="always"
1611 id="filter7610"
1612 x="-0.021942979"
1613 width="1.0438859"
1614 y="-0.10017137"
1615 height="1.2003427">
1616 <feGaussianBlur
1617 inkscape:collect="always"
1618 stdDeviation="0.57530213"
1619 id="feGaussianBlur7612" />
1620 </filter>
1621 <clipPath
1622 clipPathUnits="userSpaceOnUse"
1623 id="clipPath7616">
1624 <path
1625 id="path7618"
1626 d="M 205.47016,-408.97318 L 205.38003,-408.97164 C 203.9344,-408.18598 198.68082,-407.82829 198.10378,-399.93307 C 197.56244,-392.52754 211.88973,-381.83741 213.95811,-380.68826 C 215.62775,-379.76062 217.44286,-379.03275 219.23156,-378.59711 L 220.65023,-378.27877 C 222.5505,-377.93363 224.35065,-377.86862 225.80054,-378.01314 C 228.94914,-378.32698 230.9644,-378.58345 232.96843,-378.82834 C 234.97245,-379.07322 235.50913,-379.69312 236.61162,-379.85833 C 237.75504,-380.02976 238.86821,-379.58419 242.90739,-380.29586 C 246.94627,-381.00755 248.42246,-381.33354 249.14158,-381.64616 C 249.88822,-381.97095 250.95964,-382.39191 251.61747,-383.00826 C 253.57644,-382.88355 255.42223,-383.03435 256.88227,-383.48645 C 259.90603,-384.42272 261.87384,-385.01189 263.74507,-385.76396 C 265.24645,-386.36738 266.17709,-387.30032 266.40943,-387.58279 C 266.64197,-387.86524 266.55894,-388.30268 266.58637,-388.32227 C 266.63172,-388.35443 266.93259,-388.39235 267.11563,-388.72388 C 268.1012,-390.50664 269.82518,-394.17603 269.987,-394.85126 C 270.14794,-395.52383 270.24882,-396.18904 270.32707,-396.58177 C 270.37238,-396.80868 270.24154,-397.46878 270.26767,-397.5257 C 270.30421,-397.6054 270.57272,-397.75558 270.64536,-398.00055 C 270.99449,-399.17741 270.8881,-400.19633 270.77316,-401.62545 C 270.65853,-403.05454 270.12535,-406.29655 269.53303,-407.1941 C 269.15286,-407.77056 268.79088,-408.04035 268.44277,-408.17869 C 268.37703,-408.20061 268.32242,-408.23394 268.26007,-408.2541 C 268.2394,-408.25953 268.21826,-408.25387 268.19773,-408.25845 C 267.89214,-408.35547 267.60176,-408.45912 267.05957,-408.5572 C 266.084,-408.7337 264.65883,-408.98486 263.11782,-409.08304 C 262.60416,-409.11577 262.07992,-409.10775 261.55259,-409.09835 C 257.98058,-409.03472 252.49564,-408.73725 251.24552,-408.18907 C 249.63965,-408.63604 247.34955,-409.07483 245.35499,-409.07027 C 242.28304,-409.06325 240.37552,-409.07493 238.43292,-409.0837 C 236.49041,-409.09248 236.72384,-408.81345 235.50112,-408.81852 C 234.1792,-408.82401 233.73411,-409.16569 229.9455,-409.11245 C 226.38768,-409.06243 220.91754,-408.74723 219.63844,-408.20318 C 218.0323,-408.65065 215.74477,-409.08893 213.74801,-409.08436 C 210.67586,-409.07735 208.76626,-409.05786 206.82375,-409.06662 C 206.16316,-409.06961 205.77525,-409.0156 205.47016,-408.97318 z"
1627 style="opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1628 </clipPath>
1629 <linearGradient
1630 inkscape:collect="always"
1631 xlink:href="#linearGradient7622"
1632 id="linearGradient7708"
1633 gradientUnits="userSpaceOnUse"
1634 gradientTransform="translate(-19.091883,4.2426407)"
1635 x1="774.97668"
1636 y1="-211.87105"
1637 x2="755.11584"
1638 y2="-202.67865" />
1639 <mask
1640 maskUnits="userSpaceOnUse"
1641 id="mask7704">
1642 <path
1643 style="fill:url(#linearGradient7708);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1644 d="M 718.40812,-224.31217 L 751.65812,-168.31217 L 1027.6581,-192.31217 L 1187.1581,-240.56217 L 1120.6581,-323.31217 L 718.40812,-224.31217 z"
1645 id="path7706" />
1646 </mask>
1647 <radialGradient
1648 inkscape:collect="always"
1649 xlink:href="#linearGradient8430"
1650 id="radialGradient7904"
1651 gradientUnits="userSpaceOnUse"
1652 gradientTransform="matrix(-0.3324832,0.9022288,-0.9582407,-0.3531242,305.29227,19.909497)"
1653 cx="142.95833"
1654 cy="107.09234"
1655 fx="142.95833"
1656 fy="107.09234"
1657 r="66.981766" />
1658 <radialGradient
1659 inkscape:collect="always"
1660 xlink:href="#linearGradient3317"
1661 id="radialGradient7906"
1662 gradientUnits="userSpaceOnUse"
1663 gradientTransform="matrix(1.0036478,-1.0345492e-7,1.7124628e-7,1.6613125,-160.53487,-96.205369)"
1664 cx="317.78754"
1665 cy="129.65378"
1666 fx="317.78754"
1667 fy="129.65378"
1668 r="47.863216" />
1669 <radialGradient
1670 inkscape:collect="always"
1671 xlink:href="#linearGradient8398"
1672 id="radialGradient7908"
1673 gradientUnits="userSpaceOnUse"
1674 gradientTransform="matrix(2.0747661,-0.1577957,0.2382425,3.1325183,-550.77432,-65.728909)"
1675 cx="325.30847"
1676 cy="80.909554"
1677 fx="325.30847"
1678 fy="80.909554"
1679 r="26.937988" />
1680 <clipPath
1681 clipPathUnits="userSpaceOnUse"
1682 id="clipPath8209">
1683 <path
1684 sodipodi:nodetypes="czcc"
1685 id="path8211"
1686 d="M 734.03125,519.49186 C 734.03125,519.49186 750.78638,556.50992 762.73266,573.44581 C 774.67895,590.3817 815.45982,629.49186 815.45982,629.49186 L 816.05699,490.90211"
1687 style="opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1688 </clipPath>
1689 <filter
1690 inkscape:collect="always"
1691 id="filter8225">
1692 <feGaussianBlur
1693 inkscape:collect="always"
1694 stdDeviation="10.661912"
1695 id="feGaussianBlur8227" />
1696 </filter>
1697 <filter
1698 inkscape:collect="always"
1699 id="filter8333">
1700 <feGaussianBlur
1701 inkscape:collect="always"
1702 stdDeviation="7.18"
1703 id="feGaussianBlur8335" />
1704 </filter>
1705 <clipPath
1706 clipPathUnits="userSpaceOnUse"
1707 id="clipPath8338">
1708 <path
1709 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1710 id="path8340"
1711 d="M 266.27183,924.57185 C 264.86456,943.37307 265.12693,957.32289 268.35357,973.87513 C 271.58023,990.42751 284.75966,1019.7825 288.68798,1037.0589 C 292.61419,1054.326 291.38211,1075.3686 276.22854,1088.2071 C 260.91093,1101.1846 234.17727,1109.8061 208.39624,1103.9409 C 182.61518,1098.0756 138.84716,1054.7175 119.80605,1033.7126 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 C 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 C 24.38107,839.38658 21.33408,813.84026 0.035334479,788.33044 C 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 C 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 C 61.781367,750.82754 82.366432,776.61828 95.766855,817.45839 C 105.32101,813.54047 114.00462,808.08545 125.95427,808.39719 C 114.65677,766.70139 108.0048,738.48134 89.267014,707.32725 C 142.70898,712.99757 172.92404,787.96657 168.23844,795.28805 C 178.21641,793.04406 187.24409,788.75767 198.67497,789.63638 C 187.426,751.28935 177.62715,712.76848 195.01526,670.98819 C 195.01526,670.98819 243.30204,736.42507 249.40491,756.79397 C 255.50779,777.16287 250.92373,795.49448 250.92373,795.49448 C 250.92373,795.49448 267.8833,826.57978 271.21765,846.58862 C 274.59075,866.82996 267.68496,905.69193 266.27183,924.57185 z"
1712 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1713 </clipPath>
1714 <filter
1715 inkscape:collect="always"
1716 id="filter8354">
1717 <feGaussianBlur
1718 inkscape:collect="always"
1719 stdDeviation="6.82"
1720 id="feGaussianBlur8356" />
1721 </filter>
1722 <clipPath
1723 clipPathUnits="userSpaceOnUse"
1724 id="clipPath8359">
1725 <path
1726 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1727 id="path8361"
1728 d="M 266.27183,924.57185 C 264.86456,943.37307 265.12693,957.32289 268.35357,973.87513 C 271.58023,990.42751 284.75966,1019.7825 288.68798,1037.0589 C 292.61419,1054.326 291.38211,1075.3686 276.22854,1088.2071 C 260.91093,1101.1846 234.17727,1109.8061 208.39624,1103.9409 C 182.61518,1098.0756 138.84716,1054.7175 119.80605,1033.7126 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 C 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 C 24.38107,839.38658 21.33408,813.84026 0.035334479,788.33044 C 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 C 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 C 61.781367,750.82754 82.366432,776.61828 95.766855,817.45839 C 105.32101,813.54047 114.00462,808.08545 125.95427,808.39719 C 114.65677,766.70139 108.0048,738.48134 89.267014,707.32725 C 142.70898,712.99757 172.92404,787.96657 168.23844,795.28805 C 178.21641,793.04406 187.24409,788.75767 198.67497,789.63638 C 187.426,751.28935 177.62715,712.76848 195.01526,670.98819 C 195.01526,670.98819 243.30204,736.42507 249.40491,756.79397 C 255.50779,777.16287 250.92373,795.49448 250.92373,795.49448 C 250.92373,795.49448 267.8833,826.57978 271.21765,846.58862 C 274.59075,866.82996 267.68496,905.69193 266.27183,924.57185 z"
1729 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1730 </clipPath>
1731 <filter
1732 inkscape:collect="always"
1733 id="filter8379"
1734 x="-0.14413793"
1735 width="1.288276"
1736 y="-0.10278689"
1737 height="1.2055738">
1738 <feGaussianBlur
1739 inkscape:collect="always"
1740 stdDeviation="7.389266"
1741 id="feGaussianBlur8381" />
1742 </filter>
1743 <clipPath
1744 clipPathUnits="userSpaceOnUse"
1745 id="clipPath8392">
1746 <path
1747 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1748 id="path8394"
1749 d="M 760.16396,935.83377 C 766.95806,954.73656 770.65765,969.13346 772.05426,987.04566 C 773.45088,1004.958 768.27158,1038.8465 769.1538,1057.7018 C 770.03555,1076.547 777.28749,1097.8008 796.49843,1106.6707 C 815.9173,1115.6365 845.81767,1116.882 870.61827,1103.5251 C 895.41887,1090.1681 928.01929,1033.1996 941.59253,1006.2164 C 955.21638,979.13246 980.3536,891.71903 986.25333,856.44781 C 992.15306,821.1766 988.80387,815.14704 981.63585,807.39232 C 984.27615,779.55217 980.13613,752.45689 994.74554,720.20614 C 964.49653,732.03184 957.36325,760.36684 946.42665,785.71122 C 938.42574,734.77829 946.63581,714.43803 949.74554,684.49186 C 920.68078,699.26977 906.88403,731.60588 904.74554,777.349 C 893.82159,776.0448 883.3541,772.91477 871.17411,776.63471 C 870.91007,730.61137 869.71055,699.7453 880.08474,662.42822 C 826.82927,683.45508 817.13746,769.02232 824.03125,775.20614 C 813.14843,775.74114 802.66017,773.90884 791.17411,778.06329 C 791.81303,735.49194 790.91365,693.15468 761.17411,655.20614 C 761.17411,655.20614 730.21605,736.12848 729.74554,758.77757 C 729.27503,781.42666 739.19713,798.94345 739.19713,798.94345 C 739.19713,798.94345 730.62906,835.68396 732.89854,857.17568 C 735.19439,878.91714 753.34144,916.85185 760.16396,935.83377 z"
1750 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1751 </clipPath>
1752 <filter
1753 inkscape:collect="always"
1754 id="filter8404"
1755 x="-0.090268657"
1756 width="1.1805373"
1757 y="-0.10250848"
1758 height="1.205017">
1759 <feGaussianBlur
1760 inkscape:collect="always"
1761 stdDeviation="5.3457272"
1762 id="feGaussianBlur8406" />
1763 </filter>
1764 <clipPath
1765 clipPathUnits="userSpaceOnUse"
1766 id="clipPath8417">
1767 <path
1768 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1769 id="path8419"
1770 d="M 760.16396,935.83377 C 766.95806,954.73656 770.65765,969.13346 772.05426,987.04566 C 773.45088,1004.958 768.27158,1038.8465 769.1538,1057.7018 C 770.03555,1076.547 777.28749,1097.8008 796.49843,1106.6707 C 815.9173,1115.6365 845.81767,1116.882 870.61827,1103.5251 C 895.41887,1090.1681 928.01929,1033.1996 941.59253,1006.2164 C 955.21638,979.13246 980.3536,891.71903 986.25333,856.44781 C 992.15306,821.1766 988.80387,815.14704 981.63585,807.39232 C 984.27615,779.55217 980.13613,752.45689 994.74554,720.20614 C 964.49653,732.03184 957.36325,760.36684 946.42665,785.71122 C 938.42574,734.77829 946.63581,714.43803 949.74554,684.49186 C 920.68078,699.26977 906.88403,731.60588 904.74554,777.349 C 893.82159,776.0448 883.3541,772.91477 871.17411,776.63471 C 870.91007,730.61137 869.71055,699.7453 880.08474,662.42822 C 826.82927,683.45508 817.13746,769.02232 824.03125,775.20614 C 813.14843,775.74114 802.66017,773.90884 791.17411,778.06329 C 791.81303,735.49194 790.91365,693.15468 761.17411,655.20614 C 761.17411,655.20614 730.21605,736.12848 729.74554,758.77757 C 729.27503,781.42666 739.19713,798.94345 739.19713,798.94345 C 739.19713,798.94345 730.62906,835.68396 732.89854,857.17568 C 735.19439,878.91714 753.34144,916.85185 760.16396,935.83377 z"
1771 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1772 </clipPath>
1773 </defs>
1774 <metadata
1775 id="metadata7">
1776 <rdf:RDF>
1777 <cc:Work
1778 rdf:about="">
1779 <dc:format>image/svg+xml</dc:format>
1780 <dc:type
1781 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1782 </cc:Work>
1783 </rdf:RDF>
1784 </metadata>
1785 <g
1786 inkscape:groupmode="layer"
1787 id="layer1"
1788 inkscape:label="Shadow">
1789 <path
1790 style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter11361);enable-background:new"
1791 d="M 304.64285,526.6479 C 294.64285,527.00505 286.42857,529.50504 286.42857,529.50504 L 293.92857,535.57647 L 304.28571,539.1479 L 320.35714,539.50504 L 342.85714,534.1479 L 350.71428,535.21933 L 371.07143,533.07647 L 360.71428,539.86219 C 366.17351,538.83858 378.10757,543.4313 370.35714,545.21933 C 368.61714,545.62075 384.28571,540.57648 384.28571,540.57648 L 386.78571,535.93361 L 390.35714,526.6479 L 401.78571,526.6479 L 419.99999,522.00504 L 423.57143,517.00505 L 407.49999,518.07647 L 395.35714,520.21933 L 380.71428,515.21933 L 310.02218,531.92707 L 304.64285,526.6479 z"
1792 id="path10326"
1793 sodipodi:nodetypes="cccccccccsccccccccccc"
1794 transform="matrix(10.726753,0,0,10.726753,-2882.1235,-4565.4583)"
1795 inkscape:export-filename="/home/cheeseness/Documents/LCA09/mascot/tuz_new.png"
1796 inkscape:export-xdpi="142.10527"
1797 inkscape:export-ydpi="142.10527" />
1798 </g>
1799 <g
1800 inkscape:groupmode="layer"
1801 id="layer20"
1802 inkscape:label="New Ear">
1803 <g
1804 style="opacity:1;display:inline;enable-background:new"
1805 id="g7882"
1806 transform="matrix(0.71084,-0.1937433,0.262963,0.9648058,503.68027,136.48399)">
1807 <path
1808 sodipodi:nodetypes="czzzzcc"
1809 id="path7876"
1810 d="M 245.12255,100.05344 C 245.12255,100.05344 197.99444,68.406519 177.9079,64.252501 C 157.86998,60.108538 139.435,60.934923 125.97426,77.859824 C 112.51352,94.784725 113.89687,139.12502 112.43872,164.82937 C 110.98057,190.53372 114.98817,235.00638 130.04332,253.49489 C 145.09848,271.98339 175.92966,267.07991 179.97027,274.90859 C 182.1831,279.19595 245.12255,100.05344 245.12255,100.05344 z"
1811 style="opacity:1;fill:url(#radialGradient7904);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1812 <path
1813 sodipodi:nodetypes="czzzzzc"
1814 id="path7878"
1815 d="M 135.37935,82.017807 C 135.37935,82.017807 161.7229,83.95659 173.01242,95.920995 C 184.42736,108.01833 186.74699,117.25251 188.30828,133.65558 C 189.87165,150.08057 187.45871,162.0737 180.49446,169.69292 C 173.53021,177.31214 179.49017,189.27624 154.57841,181.76399 C 129.66665,174.25174 127.54617,153.98101 128.06318,135.45924 C 128.58039,116.93026 135.37935,82.017807 135.37935,82.017807 z"
1816 style="opacity:1;fill:url(#radialGradient7906);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1817 <path
1818 sodipodi:nodetypes="czccssc"
1819 id="path7880"
1820 d="M 135.648,81.927211 C 135.648,81.927211 131.00335,98.292286 136.23625,110.49031 C 141.72419,123.28285 163.4605,154.75038 163.4605,165.14596 L 186.11675,160.14596 C 188.65893,153.17952 189.32727,144.3939 188.30425,133.64596 C 186.74296,117.24289 184.43795,108.02455 173.023,95.927211 C 163.36812,85.695164 141.42989,82.552354 135.648,81.927211 z"
1821 style="opacity:1;fill:url(#radialGradient7908);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1822 </g>
1823 </g>
1824 <g
1825 inkscape:groupmode="layer"
1826 id="layer21"
1827 inkscape:label="Rendered2"
1828 style="display:inline">
1829 <path
1830 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1831 d="M 845.03125,1154.7776 C 840.74554,1155.4919 817.4031,1158.3957 787.17411,1164.7776 C 756.94512,1171.1595 729.86016,1169.7437 651.38803,1182.1072 C 571.53625,1194.688 557.32367,1224.6495 543.26578,1229.1715 C 528.56564,1233.9001 397.88839,1163.349 397.88839,1163.349 L 402.17411,1069.0633 C 402.17411,1069.0633 488.05962,1052.8624 514.31696,1035.4919 C 540.57431,1018.1214 559.89934,985.82588 573.60268,964.06329 C 587.30602,942.3007 606.45982,892.63471 606.45982,892.63471 L 845.03125,1154.7776 z"
1832 id="path7917"
1833 sodipodi:nodetypes="czzzcczzcc" />
1834 <path
1835 style="opacity:0.5;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8888);enable-background:accumulate"
1836 d="M 332.34019,898.38549 L 299.60838,837.08593 L 261.99104,882.19239 C 264.16779,883.5095 267.76529,861.33636 307.59144,817.77531 L 332.34019,898.38549 z"
1837 id="path7919"
1838 clip-path="url(#clipPath8658)"
1839 sodipodi:nodetypes="ccccc"
1840 transform="translate(276,136)" />
1841 <path
1842 style="opacity:1;fill:url(#linearGradient2841);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8892);enable-background:accumulate"
1843 d="M 200.81833,863.03015 L 347.18943,811.41136 L 591.14127,1037.6855 L 349.31075,1177.6927 L 168.29141,1090.0114 L 200.81833,863.03015 z"
1844 id="path7923"
1845 clip-path="url(#clipPath2833)"
1846 sodipodi:nodetypes="cccccc"
1847 transform="translate(276,136)" />
1848 <path
1849 style="opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1850 d="M 642.88839,640.13471 C 642.88839,640.13471 613.33433,680.70776 595.03125,714.42042 C 576.72816,748.13309 536.41016,840.77736 524.67411,885.49185 C 512.91471,930.29529 462.17411,1009.0633 462.17411,1009.0633 L 538.24554,1027.2776 C 538.24554,1027.2776 550.05266,1014.4542 569.31696,981.20614 C 588.58126,947.95806 629.67411,842.63471 629.67411,842.63471 L 642.88839,640.13471 z"
1851 id="path7921"
1852 sodipodi:nodetypes="czzcczcc" />
1853 <path
1854 style="opacity:0.4;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8856);enable-background:accumulate"
1855 d="M 430.28131,381.94122 C 423.21025,384.76965 194.10007,414.09303 194.10007,414.09303 L 154.46046,773.92607 L 244.65895,866.56568 L 296.98485,752.01438 L 397.45289,565.62246 L 430.28131,381.94122 z"
1856 id="path7925"
1857 sodipodi:nodetypes="ccccccc"
1858 clip-path="url(#clipPath3665)"
1859 transform="translate(276,136)" />
1860 <path
1861 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1862 d="M 969.67051,1164.0346 C 969.67051,1164.0346 992.92679,1175.4283 1005.7383,1184.5107 C 1018.4357,1193.5122 1035.2107,1209.1598 1047.4307,1221.8712 C 1059.7362,1234.6714 1067.5434,1244.4699 1088.9634,1246.032 C 1110.3956,1247.5949 1142.2458,1237.2444 1162.2594,1221.3678 C 1182.2729,1205.4912 1207.9063,1152.135 1207.9063,1152.135 L 1080.7455,1009.0633"
1863 id="path7927"
1864 sodipodi:nodetypes="czzzzcc" />
1865 <path
1866 style="opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8860);enable-background:accumulate"
1867 d="M 331.34019,641.50471 L 216.17367,835.36467 L 260.2153,925.96265 L 357.79603,732.21539 L 331.34019,641.50471 z"
1868 id="path7929"
1869 clip-path="url(#clipPath8642)"
1870 sodipodi:nodetypes="ccccc"
1871 transform="translate(276,136)" />
1872 <g
1873 style="opacity:1;display:inline;enable-background:new"
1874 id="g7931"
1875 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
1876 inkscape:transform-center-x="-347.89063"
1877 inkscape:transform-center-y="-28.255779">
1878 <path
1879 style="opacity:1;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1880 d="M 1049.205,-282.26672 L 1049.1152,-282.25891 C 1047.7278,-281.37446 1042.5119,-280.65171 1042.4862,-272.73547 C 1042.462,-265.31022 1057.4991,-255.64401 1059.6425,-254.64172 C 1061.3727,-253.83263 1063.2341,-253.23296 1065.0488,-252.92297 L 1066.4862,-252.70422 C 1068.4059,-252.49228 1070.2062,-252.55281 1071.6425,-252.79797 C 1074.7616,-253.33037 1076.7541,-253.72658 1078.7362,-254.11047 C 1080.7183,-254.49434 1081.2105,-255.15012 1082.2988,-255.39172 C 1083.4275,-255.64238 1084.569,-255.27543 1088.5488,-256.26672 C 1092.5283,-257.258 1093.9782,-257.68602 1094.6738,-258.04797 C 1095.396,-258.42398 1096.4355,-258.91855 1097.0488,-259.57922 C 1099.0117,-259.59127 1100.8425,-259.87027 1102.2675,-260.42297 C 1105.2187,-261.56758 1107.1407,-262.29239 1108.955,-263.17297 C 1110.4107,-263.8795 1111.2741,-264.875 1111.4862,-265.17297 C 1111.6985,-265.47093 1111.5852,-265.90152 1111.6112,-265.92297 C 1111.6542,-265.95821 1111.9517,-266.017 1112.1112,-266.36047 C 1112.9702,-268.20755 1114.4344,-271.98811 1114.5488,-272.67297 C 1114.6625,-273.35512 1114.7168,-274.02574 1114.7675,-274.42297 C 1114.7969,-274.65248 1114.6204,-275.30187 1114.6425,-275.36047 C 1114.6734,-275.44252 1114.9308,-275.61104 1114.9862,-275.86047 C 1115.2525,-277.05879 1115.0754,-278.06783 1114.8612,-279.48547 C 1114.6473,-280.90311 1113.8896,-284.1001 1113.2362,-284.95422 C 1112.8168,-285.50279 1112.4369,-285.74672 1112.08,-285.86047 C 1112.0129,-285.87776 1111.9561,-285.90721 1111.8925,-285.92297 C 1111.8715,-285.92695 1111.8508,-285.91983 1111.83,-285.92297 C 1111.5184,-285.99847 1111.2215,-286.08164 1110.6738,-286.14172 C 1109.6883,-286.24984 1108.2491,-286.40112 1106.705,-286.39172 C 1106.1903,-286.38859 1105.6679,-286.34408 1105.1425,-286.29797 C 1101.5836,-285.98569 1096.1327,-285.30689 1094.9238,-284.67297 C 1093.2907,-285.00699 1090.9756,-285.2852 1088.9862,-285.14172 C 1085.9222,-284.92075 1084.0185,-284.79953 1082.08,-284.67297 C 1080.1416,-284.54642 1080.3939,-284.28433 1079.1738,-284.20422 C 1077.8547,-284.11762 1077.3869,-284.42747 1073.6112,-284.11047 C 1070.0655,-283.81275 1064.6306,-283.1173 1063.3925,-282.48547 C 1061.7591,-282.81998 1059.4466,-283.09786 1057.455,-282.95422 C 1054.3908,-282.73324 1052.4872,-282.58078 1050.5488,-282.45422 C 1049.8896,-282.41119 1049.5064,-282.33029 1049.205,-282.26672 z"
1881 id="path7933" />
1882 <g
1883 clip-path="url(#clipPath7616)"
1884 style="display:inline;filter:url(#filter7610);enable-background:new"
1885 id="g7935"
1886 transform="matrix(0.9975712,-6.9654277e-2,6.9654277e-2,0.9975712,872.72062,140.02502)">
1887 <path
1888 sodipodi:nodetypes="ccssscsssscscsscsssccscssccsscssscc"
1889 id="path7937"
1890 d="M 229.94262,-409.12268 C 226.38481,-409.07267 220.91842,-408.76259 219.63928,-408.21854 C 218.03319,-408.66601 215.73612,-409.09985 213.73933,-409.09528 C 210.66734,-409.08826 208.77464,-409.08651 206.83206,-409.09528 C 206.17159,-409.09827 205.78447,-409.02811 205.47939,-408.98569 C 205.47939,-408.98569 205.47939,-407.88976 205.47939,-407.88976 C 205.59911,-408.06923 205.87191,-408.58022 206.42914,-408.65691 C 207.17672,-408.7598 211.59842,-408.80814 213.73933,-408.76651 C 215.51393,-408.73198 218.19456,-408.49224 220.12854,-407.80756 C 220.44994,-407.69378 220.74779,-407.53378 221.02073,-407.39659 C 222.98415,-406.40966 228.96409,-403.09505 228.96409,-403.09505 C 228.96409,-403.09505 222.33134,-407.04273 221.48122,-407.53358 C 221.27791,-407.65097 220.90658,-407.79127 220.44513,-407.94456 C 221.66576,-408.39235 225.5211,-408.56427 228.27336,-408.65691 C 231.29786,-408.75873 231.62112,-408.7465 233.68405,-408.46512 C 235.81336,-408.17469 237.02256,-407.86236 237.02256,-407.86236 C 237.02255,-407.86236 236.9442,-408.50354 238.05865,-408.65691 C 238.80622,-408.7598 243.22794,-408.80814 245.36884,-408.76651 C 247.43834,-408.72625 250.73489,-408.35935 252.65024,-407.39659 C 253.65356,-406.89226 255.68588,-405.82796 257.44559,-404.86088 L 257.5412,-404.88031 C 257.5412,-404.88031 253.96086,-407.04273 253.11073,-407.53358 C 252.90742,-407.65097 252.5361,-407.79127 252.07464,-407.94456 C 253.29526,-408.39235 257.12183,-408.56427 259.87409,-408.65691 C 262.89859,-408.75873 263.22184,-408.7465 265.28478,-408.46512 C 267.23794,-408.19872 268.2977,-407.93506 268.47939,-407.88976 C 268.47939,-407.88976 268.4523,-408.20122 268.4523,-408.20122 C 268.04327,-408.33767 267.73806,-408.43457 267.05192,-408.5587 C 265.75111,-408.79403 263.6528,-409.16026 261.54335,-409.12268 C 257.9714,-409.05904 252.49007,-408.76672 251.24001,-408.21854 C 249.63418,-408.66549 247.36339,-409.09984 245.36884,-409.09528 C 242.29685,-409.08826 240.37536,-409.08651 238.43279,-409.09528 C 236.49023,-409.10406 236.72011,-408.81621 235.49721,-408.8213 C 234.1753,-408.8268 233.73109,-409.17593 229.94262,-409.12268 C 229.94262,-409.12268 229.94262,-409.12268 229.94262,-409.12268"
1891 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1892 <path
1893 id="path7939"
1894 d="M 206.1989,-407.47878 C 208.11911,-406.66172 210.77605,-405.28595 212.35787,-404.08139 C 213.93971,-402.87683 215.26544,-402.30771 217.91246,-400.16344 C 218.79803,-399.44606 219.66111,-398.81359 220.50439,-398.2417 L 221.04496,-398.43181 C 220.33173,-398.9152 219.5772,-399.45212 218.77587,-400.05384 C 215.95364,-402.17305 215.14932,-402.86357 212.7608,-404.32798 C 210.37226,-405.79238 208.66132,-406.69374 206.1989,-407.47878 C 206.1989,-407.47878 206.1989,-407.47878 206.1989,-407.47878"
1895 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1896 sodipodi:nodetypes="cssccsscc" />
1897 <path
1898 id="path7941"
1899 d="M 237.79963,-407.47878 C 239.71984,-406.66172 242.40557,-405.28595 243.98738,-404.08139 C 244.80045,-403.46223 245.54587,-403.01097 246.43784,-402.42738 L 247.08684,-402.54404 C 246.28853,-403.12041 245.51507,-403.63839 244.39031,-404.32798 C 242.00177,-405.79238 240.26205,-406.69374 237.79963,-407.47878 C 237.79963,-407.47878 237.79963,-407.47878 237.79963,-407.47878"
1900 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1901 sodipodi:nodetypes="csccscc" />
1902 </g>
1903 <g
1904 clip-path="url(#clipPath7606)"
1905 id="g7943">
1906 <path
1907 style="opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7578);enable-background:new"
1908 d="M 1056.25,-278.80481 C 1060.3946,-280.28358 1066.25,-275.67981 1066.25,-275.67981 C 1067.149,-275.39889 1068.9751,-276.57428 1068.8743,-277.36595 C 1068.8743,-277.36595 1067.324,-279.22657 1068.5,-280.30481 C 1069.676,-281.38305 1073.796,-278.79743 1076,-278.67981 C 1078.204,-278.56219 1081.5621,-278.90922 1083,-279.42981 C 1084.4379,-279.9504 1084.1129,-280.8544 1085.625,-281.17981 C 1087.1371,-281.50522 1090.7439,-280.14227 1092.6855,-280.01098 C 1094.6271,-279.87969 1097.3336,-279.67671 1098.5,-280.17981 C 1099.6664,-280.68291 1098.6782,-281.33902 1100.375,-282.05481 C 1102.0718,-282.7706 1108.1352,-283.01143 1110,-282.17981 C 1111.8648,-281.34819 1111.8099,-281.66061 1112.625,-279.17981 C 1113.4401,-276.69901 1120.0648,-274.01696 1111.5,-265.80481 C 1102.9352,-257.59266 1052.1221,-252.01887 1045.875,-263.05481 C 1039.6279,-274.09075 1052.1054,-277.32604 1056.25,-278.80481 z"
1909 id="path7945"
1910 sodipodi:nodetypes="czzzzzzzzzzzzzz" />
1911 <path
1912 style="opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7594);enable-background:new"
1913 d="M 1058.5,-275.42981 C 1062.6446,-276.90858 1068.5,-272.30481 1068.5,-272.30481 C 1069.399,-272.02389 1071.2251,-273.19928 1071.1243,-273.99095 C 1071.1243,-273.99095 1069.574,-275.85157 1070.75,-276.92981 C 1071.926,-278.00805 1076.046,-275.42243 1078.25,-275.30481 C 1080.454,-275.18719 1083.8121,-275.53422 1085.25,-276.05481 C 1086.6879,-276.5754 1086.3629,-277.4794 1087.875,-277.80481 C 1089.3871,-278.13022 1092.9939,-276.76727 1094.9355,-276.63598 C 1096.8771,-276.50469 1099.5836,-276.30171 1100.75,-276.80481 C 1101.9164,-277.30791 1100.9282,-277.96402 1102.625,-278.67981 C 1104.3218,-279.3956 1110.3852,-279.63643 1112.25,-278.80481 C 1114.1148,-277.97319 1114.0599,-278.28561 1114.875,-275.80481 C 1115.6901,-273.32401 1122.3148,-270.64196 1113.75,-262.42981 C 1105.1852,-254.21766 1054.3721,-248.64387 1048.125,-259.67981 C 1041.8779,-270.71575 1054.3554,-273.95104 1058.5,-275.42981 z"
1914 id="path7947"
1915 sodipodi:nodetypes="czzzzzzzzzzzzzz" />
1916 </g>
1917 </g>
1918 <path
1919 style="opacity:1;fill:#101414;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1920 d="M 628.24553,347.99185 C 624.4411,322.72762 611.43581,297.35383 611.08873,272.46662 C 610.90247,259.1111 614.36158,245.89571 624.84426,232.91257 C 661.19128,167.61674 741.78517,148.21789 810.77892,141.44715 C 897.70131,130.43035 995.69159,159.38722 1044.1503,236.84843 C 1098.2743,312.58173 1100.825,409.38755 1124.7623,496.37638 C 1154.2001,623.50398 1179.5414,752.59052 1185.1545,883.22673 C 1182.0911,961.40858 1176.7282,1048.4109 1124.6513,1111.3609 C 1076.6248,1161.7183 1001.8649,1161.4139 937.58145,1170.3632 C 847.02606,1175.0182 753.22992,1154.2174 675.79755,1106.165 C 611.02191,1068.225 580.06736,992.68633 578.51815,920.14538 C 570.12898,840.27022 604.90967,766.33687 630.13855,692.98577 C 637.60916,610.2247 639.55141,526.73802 639.79189,443.60093 C 638.95507,411.40549 632.70236,379.7836 628.24553,347.99185 z"
1921 id="path7949"
1922 sodipodi:nodetypes="cscccccccccccc" />
1923 <path
1924 style="opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8940);enable-background:accumulate"
1925 d="M 311.83409,415.43155 L 321.73359,537.05392 L 261.62951,673.52553 L 277.18586,848.1809 C 292.79912,910.0601 309.37131,946.84995 351.56201,965.23473 C 355.88112,928.99475 312.95049,822.27485 312.31937,776.11489 C 311.68792,729.93044 323.14971,667.50703 342.99704,617.81842 C 363.04539,567.62654 379.89378,572.972 385.12193,525.22549 C 390.35008,477.47898 367.69553,375.83357 367.69553,375.83357 L 311.83409,415.43155 z"
1926 id="path7951"
1927 sodipodi:nodetypes="ccccczzzcc"
1928 clip-path="url(#clipPath8616)"
1929 transform="translate(276,136)" />
1930 <path
1931 style="opacity:1;fill:url(#linearGradient8970);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
1932 d="M 1010.0312,655.49186 C 1010.0312,655.49186 1026.7864,692.50992 1038.7327,709.44581 C 1050.6789,726.3817 1091.4598,765.49186 1091.4598,765.49186 L 1144.057,637.90211"
1933 id="path7953"
1934 sodipodi:nodetypes="czcc" />
1935 <path
1936 style="opacity:0.07999998;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8822);enable-background:accumulate"
1937 d="M 730.31998,536.56864 C 730.31998,545.05392 772.86772,595.03667 772.86772,595.03667 L 785.47431,566.26713 L 730.31998,536.56864 z"
1938 id="path7955"
1939 sodipodi:nodetypes="cccc"
1940 clip-path="url(#clipPath8209)"
1941 transform="translate(276,136)" />
1942 <g
1943 transform="translate(450.03125,73.843964)"
1944 style="opacity:1;display:inline;enable-background:new"
1945 id="g7957"
1946 clip-path="url(#clipPath3998)">
1947 <g
1948 transform="translate(-174.03125,62.156036)"
1949 style="filter:url(#filter3677)"
1950 id="g7959">
1951 <g
1952 id="g7961"
1953 style="filter:url(#filter3785)">
1954 <path
1955 sodipodi:nodetypes="czzzzzzzzzz"
1956 id="path7963"
1957 d="M 425.88244,476.99186 C 436.68787,475.5132 450.62645,480.34637 470.5253,480.20614 C 490.42415,480.06591 527.97852,463.29492 552.66815,463.06328 C 577.35778,462.83164 615.41985,475.34734 631.95387,478.06328 C 648.48789,480.77922 654.80219,477.90476 659.45386,485.92043 C 664.10553,493.9361 661.38057,496.66767 649.09672,506.63472 C 636.81287,516.60177 608.30704,519.27104 583.02529,519.49186 C 557.74295,519.71268 512.644,526.57038 487.66815,523.42042 C 462.6923,520.27046 430.73059,515.59775 418.73958,505.56328 C 406.74857,495.52881 398.88874,488.83146 401.23958,481.63471 C 403.59042,474.43796 415.07701,478.47052 425.88244,476.99186 z"
1958 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1959 <rect
1960 y="412.60312"
1961 x="343.6539"
1962 height="181.01935"
1963 width="381.83765"
1964 id="rect7965"
1965 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1966 </g>
1967 <g
1968 id="g7967"
1969 style="filter:url(#filter3785)">
1970 <path
1971 sodipodi:nodetypes="czzzcc"
1972 id="path7969"
1973 d="M 687.14286,452.36218 C 676.68117,462.07661 600.16326,471.36732 586.42857,481.6479 C 572.69388,491.92848 571.67605,494.53616 574.28571,501.6479 C 576.89537,508.75964 580.83098,511.05362 600,510.21932 C 619.16902,509.38502 698.57143,482.5976 698.57143,488.79075 L 687.14286,452.36218 z"
1974 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
1975 transform="translate(174.03125,-62.156036)" />
1976 <rect
1977 y="344.82138"
1978 x="702.86414"
1979 height="162.63455"
1980 width="207.8894"
1981 id="rect7971"
1982 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
1983 </g>
1984 </g>
1985 <g
1986 transform="translate(-174.03125,62.156036)"
1987 style="opacity:0.18000004;display:inline;enable-background:new"
1988 id="g7973">
1989 <g
1990 id="g7975"
1991 style="filter:url(#filter3785)">
1992 <path
1993 sodipodi:nodetypes="czzzzzzzzzz"
1994 id="path7977"
1995 d="M 425.88244,476.99186 C 436.68787,475.5132 450.62645,480.34637 470.5253,480.20614 C 490.42415,480.06591 527.97852,463.29492 552.66815,463.06328 C 577.35778,462.83164 615.41985,475.34734 631.95387,478.06328 C 648.48789,480.77922 654.80219,477.90476 659.45386,485.92043 C 664.10553,493.9361 661.38057,496.66767 649.09672,506.63472 C 636.81287,516.60177 608.30704,519.27104 583.02529,519.49186 C 557.74295,519.71268 512.644,526.57038 487.66815,523.42042 C 462.6923,520.27046 430.73059,515.59775 418.73958,505.56328 C 406.74857,495.52881 398.88874,488.83146 401.23958,481.63471 C 403.59042,474.43796 415.07701,478.47052 425.88244,476.99186 z"
1996 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
1997 <rect
1998 y="412.60312"
1999 x="343.6539"
2000 height="181.01935"
2001 width="381.83765"
2002 id="rect7979"
2003 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2004 </g>
2005 <g
2006 id="g7981"
2007 style="filter:url(#filter3785)">
2008 <path
2009 sodipodi:nodetypes="czzzcc"
2010 id="path7983"
2011 d="M 687.14286,452.36218 C 676.68117,462.07661 600.16326,471.36732 586.42857,481.6479 C 572.69388,491.92848 571.67605,494.53616 574.28571,501.6479 C 576.89537,508.75964 580.83098,511.05362 600,510.21932 C 619.16902,509.38502 698.57143,482.5976 698.57143,488.79075 L 687.14286,452.36218 z"
2012 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2013 transform="translate(174.03125,-62.156036)" />
2014 <rect
2015 y="344.82138"
2016 x="702.86414"
2017 height="162.63455"
2018 width="207.8894"
2019 id="rect7985"
2020 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2021 </g>
2022 </g>
2023 </g>
2024 <path
2025 style="opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8802);enable-background:accumulate"
2026 d="M 582.65599,-7.4183011 L 695.79307,78.848726 L 804.68752,337.64981 L 842.87128,545.5392 L 963.07944,637.46308 C 963.07944,637.46308 950.35151,350.37773 943.28044,323.50767 C 936.20938,296.63761 793.37381,-69.643698 793.37381,-69.643698 L 582.65599,-7.4183011 z"
2027 id="path7987"
2028 clip-path="url(#clipPath8604)"
2029 sodipodi:nodetypes="cccccscc"
2030 transform="translate(276,136)" />
2031 <path
2032 style="opacity:1;fill:url(#linearGradient8958);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2033 d="M 964.13839,239.599 C 964.13839,239.599 972.81571,250.49562 988.24554,251.56328 C 1003.6754,252.63094 1037.9672,211.61061 1058.4241,199.42043 C 1078.9034,187.2169 1105.4705,172.81818 1122.3527,179.06329 C 1139.2348,185.30839 1144.5105,205.49938 1150.2098,227.099 C 1155.9092,248.69861 1156.9284,288.91289 1147.5313,319.95615 C 1138.1341,350.9994 1097.028,393.0599 1082.1741,423.349 C 1067.3202,453.6381 1070.567,463.17043 1070.567,463.17043"
2034 id="path7989"
2035 sodipodi:nodetypes="czzzzzzc" />
2036 <path
2037 style="opacity:1;fill:url(#radialGradient3315);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2038 d="M 1124.4955,207.63471 C 1108.6027,206.74185 1074.7767,219.74054 1058.4241,231.92043 C 1041.9855,244.16433 1029.2032,256.03483 1029.1384,284.06328 C 1029.0732,312.26932 1042.2575,323.13969 1058.2455,331.02757 C 1074.2335,338.91546 1091.9317,338.14685 1110.2098,319.24186 C 1128.488,300.33686 1124.4955,207.63471 1124.4955,207.63471 z"
2039 id="path7991"
2040 sodipodi:nodetypes="czzzzc" />
2041 <path
2042 sodipodi:type="arc"
2043 style="opacity:0.75;fill:url(#radialGradient3543);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4120);enable-background:accumulate"
2044 id="path7993"
2045 sodipodi:cx="385"
2046 sodipodi:cy="237.00504"
2047 sodipodi:rx="86.428574"
2048 sodipodi:ry="73.928574"
2049 d="M 471.42857,237.00504 A 86.428574,73.928574 0 1 1 298.57143,237.00504 A 86.428574,73.928574 0 1 1 471.42857,237.00504 z"
2050 transform="matrix(0.9434749,-0.1239943,0.1440089,1.0957669,451.94827,134.5988)"
2051 clip-path="url(#clipPath4100)" />
2052 <path
2053 transform="translate(450.03125,73.843964)"
2054 style="opacity:1;fill:url(#radialGradient3915);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2055 d="M 527.60588,407.44884 C 527.60588,407.44884 405.56444,445.85232 340.09154,417.08065 C 274.61865,388.30899 265.71429,292.36218 265.71429,292.36218 C 265.71429,292.36218 339.09587,211.85825 395.63507,208.74742 C 451.46212,205.67578 486.20893,228.89074 510.50508,274.59913 C 534.85708,320.41261 527.60588,407.44884 527.60588,407.44884 z"
2056 id="path7995"
2057 sodipodi:nodetypes="csczzc"
2058 mask="url(#mask3684)" />
2059 <path
2060 style="opacity:1;fill:url(#linearGradient3959);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2061 d="M 772.17411,393.349 C 772.17411,393.349 808.39165,365.96653 823.78125,357.45614 C 838.95859,349.06313 849.49553,345.849 859.6741,345.849 L 844.13839,412.81328"
2062 id="path7997"
2063 sodipodi:nodetypes="czcc" />
2064 <path
2065 sodipodi:type="arc"
2066 style="opacity:1;fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2067 id="path7999"
2068 sodipodi:cx="409.28571"
2069 sodipodi:cy="306.64789"
2070 sodipodi:rx="36.25"
2071 sodipodi:ry="36.25"
2072 d="M 445.53571,306.64789 A 36.25,36.25 0 1 1 373.03571,306.64789 A 36.25,36.25 0 1 1 445.53571,306.64789 z"
2073 transform="translate(449.49554,74.915393)" />
2074 <path
2075 style="opacity:0.3;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8806);enable-background:accumulate"
2076 d="M 311.83409,415.43155 L 321.73359,537.05392 L 261.62951,673.52553 L 277.18586,848.1809 C 292.79912,910.0601 309.37131,946.84995 351.56201,965.23473 C 355.88112,928.99475 360.24362,892.86709 320.31937,742.11489 L 337.99704,672.81842 L 410.12193,534.22549 L 367.69553,375.83357 L 311.83409,415.43155 z"
2077 id="path8001"
2078 sodipodi:nodetypes="cccccccccc"
2079 clip-path="url(#clipPath8616)"
2080 transform="translate(276,136)" />
2081 <path
2082 style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8826);enable-background:accumulate"
2083 d="M 635.21025,581.13004 C 621.06811,593.85796 674.44372,615.71019 711.57778,605.17167 C 748.71184,594.63315 816.22265,569.6073 814.81537,525.97571 C 813.40809,482.34413 738.44784,397.28228 738.44784,397.28228 L 635.21025,581.13004 z"
2084 id="path8003"
2085 sodipodi:nodetypes="czzcc" />
2086 <path
2087 sodipodi:type="arc"
2088 style="opacity:1;fill:url(#radialGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2089 id="path8005"
2090 sodipodi:cx="410"
2091 sodipodi:cy="306.64789"
2092 sodipodi:rx="23.214285"
2093 sodipodi:ry="23.214285"
2094 d="M 433.21428,306.64789 A 23.214285,23.214285 0 1 1 386.78572,306.64789 A 23.214285,23.214285 0 1 1 433.21428,306.64789 z"
2095 transform="translate(449.67411,74.915393)" />
2096 <path
2097 sodipodi:type="arc"
2098 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3981);enable-background:accumulate"
2099 id="path8007"
2100 sodipodi:cx="414.28571"
2101 sodipodi:cy="303.07648"
2102 sodipodi:rx="7.5"
2103 sodipodi:ry="7.5"
2104 d="M 421.78571,303.07648 A 7.5,7.5 0 1 1 406.78571,303.07648 A 7.5,7.5 0 1 1 421.78571,303.07648 z"
2105 transform="translate(451.99554,73.486821)" />
2106 <path
2107 style="opacity:1;fill:url(#radialGradient4112);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2108 d="M 789.31696,478.349 C 789.31696,478.349 796.33977,497.91759 788.24553,513.349 C 780.15129,528.78041 745.92236,552.33722 720.74554,563.349 C 695.43582,574.41891 635.27254,596.31293 618.95982,605.31328 C 602.49834,614.39571 600.74554,617.99185 600.74554,617.99185 C 600.74554,617.99185 593.59861,598.92744 629.49553,566.20615 C 665.66764,533.23401 771.52265,518.15665 789.31696,478.349 z"
2109 id="path8009"
2110 sodipodi:nodetypes="czzzczc" />
2111 <g
2112 style="opacity:1;display:inline;enable-background:new"
2113 id="g8011"
2114 transform="translate(780.74553,74.55825)">
2115 <path
2116 transform="translate(-329.81481,0)"
2117 clip-path="url(#clipPath3999)"
2118 sodipodi:nodetypes="czzczzzszc"
2119 id="path8013"
2120 d="M 179.64286,267.36218 C 157.23242,307.0651 119.02676,383.14247 110.35715,417.00504 C 101.70994,450.78014 101.58516,483.42158 110,503.43362 C 118.3602,523.31575 136.16398,539.06642 150.71428,544.86218 C 150.1179,530.48631 165.08723,501.57635 223.57143,472.36218 C 282.1977,443.07704 301.95306,445.23132 327.14285,425.21932 C 352.77291,404.85756 335.34872,345.57268 330.35714,331.29075 C 325.36556,317.00882 329.12051,327.91101 328.41112,326.19774 C 317.72184,300.38182 294.1968,271.76744 263.92857,261.6479 C 233.66034,251.52836 198.91081,256.79953 179.64286,267.36218 z"
2121 style="opacity:1;fill:url(#radialGradient3585);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
2122 <path
2123 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-166.62245,2.387362)"
2124 d="M 248.28731,338.07648 A 64.715881,134.00607 0 1 1 118.85555,338.07648 A 64.715881,134.00607 0 1 1 248.28731,338.07648 z"
2125 sodipodi:ry="134.00607"
2126 sodipodi:rx="64.715881"
2127 sodipodi:cy="338.07648"
2128 sodipodi:cx="183.57143"
2129 id="path8015"
2130 style="opacity:1;fill:url(#radialGradient4060);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2131 sodipodi:type="arc" />
2132 <path
2133 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-162.19388,-18.755495)"
2134 d="M 248.28731,338.07648 A 64.715881,134.00607 0 1 1 118.85555,338.07648 A 64.715881,134.00607 0 1 1 248.28731,338.07648 z"
2135 sodipodi:ry="134.00607"
2136 sodipodi:rx="64.715881"
2137 sodipodi:cy="338.07648"
2138 sodipodi:cx="183.57143"
2139 id="path8017"
2140 style="opacity:1;fill:url(#radialGradient4062);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2141 sodipodi:type="arc" />
2142 <path
2143 transform="translate(-329.81481,3e-7)"
2144 clip-path="url(#clipPath3999)"
2145 sodipodi:nodetypes="czzczzzszc"
2146 id="path8019"
2147 d="M 179.64286,267.36218 C 157.23242,307.0651 119.02676,383.14247 110.35715,417.00504 C 101.70994,450.78014 101.58516,483.42158 110,503.43362 C 118.3602,523.31575 136.16398,539.06642 150.71428,544.86218 C 150.1179,530.48631 165.08723,501.57635 223.57143,472.36218 C 282.1977,443.07704 301.95306,445.23132 327.14285,425.21932 C 352.77291,404.85756 335.34872,345.57268 330.35714,331.29075 C 325.36556,317.00882 329.12051,327.91101 328.41112,326.19774 C 317.72184,300.38182 294.1968,271.76744 263.92857,261.6479 C 233.66034,251.52836 198.91081,256.79953 179.64286,267.36218 z"
2148 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3587);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter4079);enable-background:new" />
2149 </g>
2150 <path
2151 sodipodi:type="arc"
2152 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2153 id="path8021"
2154 sodipodi:cx="310.71429"
2155 sodipodi:cy="398.07648"
2156 sodipodi:rx="19.704132"
2157 sodipodi:ry="19.704132"
2158 d="M 330.41843,398.07648 A 19.704132,19.704132 0 1 1 291.01016,398.07648 A 19.704132,19.704132 0 1 1 330.41843,398.07648 z"
2159 transform="translate(452.55663,72.581273)" />
2160 <path
2161 sodipodi:type="arc"
2162 style="opacity:1;fill:url(#radialGradient4056);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4082);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4083);enable-background:accumulate"
2163 id="path8023"
2164 sodipodi:cx="310.71429"
2165 sodipodi:cy="398.07648"
2166 sodipodi:rx="19.704132"
2167 sodipodi:ry="19.704132"
2168 d="M 330.41843,398.07648 A 19.704132,19.704132 0 1 1 291.01016,398.07648 A 19.704132,19.704132 0 1 1 330.41843,398.07648 z"
2169 transform="translate(450.55663,72.581273)" />
2170 <path
2171 sodipodi:type="arc"
2172 style="opacity:1;fill:url(#radialGradient4119);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2173 id="path8025"
2174 sodipodi:cx="310.71429"
2175 sodipodi:cy="398.07648"
2176 sodipodi:rx="19.704132"
2177 sodipodi:ry="19.704132"
2178 d="M 330.41843,398.07648 A 19.704132,19.704132 0 1 1 291.01016,398.07648 A 19.704132,19.704132 0 1 1 330.41843,398.07648 z"
2179 transform="translate(450.55663,72.581273)" />
2180 <path
2181 sodipodi:type="arc"
2182 style="opacity:1;fill:url(#radialGradient4868);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4002);enable-background:accumulate"
2183 id="path8027"
2184 sodipodi:cx="429.56738"
2185 sodipodi:cy="377.42877"
2186 sodipodi:rx="72.079735"
2187 sodipodi:ry="44.547726"
2188 d="M 501.64712,377.42877 A 72.079735,44.547726 0 1 1 357.48765,377.42877 A 72.079735,44.547726 0 1 1 501.64712,377.42877 z"
2189 transform="matrix(0.9969564,-7.7961675e-2,7.7961675e-2,0.9969564,436.61877,125.29509)"
2190 inkscape:transform-center-x="-47.231976"
2191 inkscape:transform-center-y="-3.6935079" />
2192 <path
2193 sodipodi:type="arc"
2194 style="opacity:1;fill:url(#radialGradient4876);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4010);enable-background:accumulate"
2195 id="path8029"
2196 sodipodi:cx="437.6991"
2197 sodipodi:cy="391.21735"
2198 sodipodi:rx="36.611931"
2199 sodipodi:ry="22.627417"
2200 d="M 474.31103,391.21735 A 36.611931,22.627417 0 1 1 401.08717,391.21735 A 36.611931,22.627417 0 1 1 474.31103,391.21735 z"
2201 transform="matrix(1.4357951,-6.9991037e-2,6.9991037e-2,1.4357951,235.18065,-63.86546)"
2202 inkscape:transform-center-x="-20.955902"
2203 inkscape:transform-center-y="-13.056625" />
2204 <g
2205 transform="translate(450.03125,73.843964)"
2206 id="g8031"
2207 style="opacity:1;display:inline;filter:url(#filter4053);enable-background:new">
2208 <path
2209 d="M 416.87499,401.82648 A 3.2142856,3.2142856 0 1 1 410.44642,401.82648 A 3.2142856,3.2142856 0 1 1 416.87499,401.82648 z"
2210 sodipodi:ry="3.2142856"
2211 sodipodi:rx="3.2142856"
2212 sodipodi:cy="401.82648"
2213 sodipodi:cx="413.66071"
2214 id="path8033"
2215 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4484);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2216 sodipodi:type="arc" />
2217 <path
2218 transform="translate(13.125009,8.1249913)"
2219 d="M 416.87499,401.82648 A 3.2142856,3.2142856 0 1 1 410.44642,401.82648 A 3.2142856,3.2142856 0 1 1 416.87499,401.82648 z"
2220 sodipodi:ry="3.2142856"
2221 sodipodi:rx="3.2142856"
2222 sodipodi:cy="401.82648"
2223 sodipodi:cx="413.66071"
2224 id="path8035"
2225 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4486);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2226 sodipodi:type="arc" />
2227 <path
2228 transform="translate(32.946437,7.4999913)"
2229 d="M 416.87499,401.82648 A 3.2142856,3.2142856 0 1 1 410.44642,401.82648 A 3.2142856,3.2142856 0 1 1 416.87499,401.82648 z"
2230 sodipodi:ry="3.2142856"
2231 sodipodi:rx="3.2142856"
2232 sodipodi:cy="401.82648"
2233 sodipodi:cx="413.66071"
2234 id="path8037"
2235 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4488);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2236 sodipodi:type="arc" />
2237 <path
2238 transform="translate(24.910723,-10.267866)"
2239 d="M 416.87499,401.82648 A 3.2142856,3.2142856 0 1 1 410.44642,401.82648 A 3.2142856,3.2142856 0 1 1 416.87499,401.82648 z"
2240 sodipodi:ry="3.2142856"
2241 sodipodi:rx="3.2142856"
2242 sodipodi:cy="401.82648"
2243 sodipodi:cx="413.66071"
2244 id="path8039"
2245 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4490);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2246 sodipodi:type="arc" />
2247 <path
2248 transform="translate(47.589294,-0.6250087)"
2249 d="M 416.87499,401.82648 A 3.2142856,3.2142856 0 1 1 410.44642,401.82648 A 3.2142856,3.2142856 0 1 1 416.87499,401.82648 z"
2250 sodipodi:ry="3.2142856"
2251 sodipodi:rx="3.2142856"
2252 sodipodi:cy="401.82648"
2253 sodipodi:cx="413.66071"
2254 id="path8041"
2255 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4492);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2256 sodipodi:type="arc" />
2257 </g>
2258 <path
2259 style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2260 d="M 896.20301,482.92837 C 897.1881,487.27845 900.74008,489.10785 903.58974,490.82019 C 908.05042,493.33311 910.1099,492.3423 912.74425,490.06258 C 914.3462,488.14141 923.42736,485.36393 928.33848,482.99151 C 932.66809,481.5326 937.24178,477.63278 941.723,474.65775 C 945.11814,473.03051 947.06964,475.01239 949.55168,475.6679 C 952.4958,476.38451 953.96285,477.83965 955.6126,479.20344 C 958.00876,480.37863 954.6847,482.34657 958.8956,483.49658 C 960.08651,483.71452 961.31255,484.07303 962.17859,482.99151"
2261 id="path8043"
2262 sodipodi:nodetypes="ccccccccc" />
2263 <path
2264 style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2265 d="M 910.85021,475.35223 C 913.16515,475.32025 914.02799,475.99476 916.34292,474.53148 C 919.79856,471.45035 921.74546,471.38671 924.29787,470.11206 C 927.32444,468.79683 930.83357,478.26375 934.3994,479.96105 C 936.79449,479.13963 935.68854,481.75484 935.85149,482.6127 C 935.90862,485.25954 938.65843,486.29076 940.20777,488.04227 C 943.52381,490.29776 947.583,494.33773 951.31945,493.34557 C 957.7647,490.4145 961.59867,492.06411 967.60816,485.95883 C 968.31221,484.77749 967.02391,479.06423 970.70175,478.76149 C 973.22574,479.01487 974.86842,478.81164 976.76267,479.32971 C 982.20367,481.4469 984.50045,485.77971 991.47301,487.28466 C 997.65591,488.25105 999.08565,491.07892 1005.3626,492.33542"
2266 id="path8045"
2267 sodipodi:nodetypes="cccccccccccc" />
2268 <path
2269 style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2270 d="M 876.98133,483.52197 C 879.37991,482.72817 883.08746,487.71407 885.15446,490.56765 C 885.74727,493.24717 886.30823,496.0541 885.91207,502.68948 C 886.6972,505.10702 888.59256,505.72043 890.7103,505.97248 C 893.82775,505.4357 896.58699,504.64818 898.0339,502.94202 C 899.9055,501.00035 903.34643,505.33596 906.11512,506.98263 C 909.72521,508.89472 913.8889,508.96149 917.98442,509.25547 C 919.688,509.02483 920.35482,513.77062 921.26741,517.3367 C 921.65155,521.71476 920.38197,524.23239 919.49965,527.18568 C 919.20535,529.68223 922.48815,530.71542 925.8131,531.73137 C 928.99554,532.47261 932.35734,533.39321 934.90447,533.49914 C 940.04633,534.37405 942.99321,536.18966 947.0263,537.53975 C 949.26544,538.3563 950.28649,539.78191 951.57199,541.07528"
2271 id="path8047"
2272 sodipodi:nodetypes="ccccccccccccc" />
2273 <path
2274 style="opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter8814);enable-background:new"
2275 d="M 332,187.69519 C 332,187.69519 389.5,162.19519 389.5,159.69519 C 389.5,157.19519 395,107.69519 395,107.69519 C 395,107.69519 486,59.195189 486.5,57.195189 C 487,55.195189 572.5,-4.8048114 572.5,-4.8048114 L 386.5,17.195189 L 311,123.19519 L 332,187.69519 z"
2276 id="path8049"
2277 clip-path="url(#clipPath8514)"
2278 transform="translate(276,136)" />
2279 <path
2280 style="opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2281 d="M 1697.2846,722.5514 C 1697.2846,722.5514 1581.3191,796.0905 1574.2481,800.33314 C 1567.177,804.57578 1343.7312,937.51186 1343.7312,937.51186 L 1347.9739,977.10984 L 1564.3486,876.70067 L 1681.7283,774.8773 L 1697.2846,722.5514 z"
2282 id="path8051" />
2283 <path
2284 style="opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8810);enable-background:accumulate"
2285 d="M 528.91587,556.85291 C 523.25902,555.4387 347.89654,631.80623 347.89654,631.80623 L 313.95541,812.82557 L 365.05087,1006.7738 L 622.25397,1074.4551 C 622.25397,1074.4551 828.72915,1227.1901 834.386,1222.9475 C 840.04286,1218.7049 1002.6774,1029.2002 1002.6774,1029.2002 L 842.87128,845.35248 L 796.20224,667.16157 L 528.91587,556.85291 z"
2286 id="path8053"
2287 clip-path="url(#clipPath8610)"
2288 sodipodi:nodetypes="cccccscccc"
2289 transform="translate(276,136)" />
2290 <path
2291 style="opacity:1;fill:#0c0c0c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2292 d="M 1097.6433,613.88997 C 1097.6433,613.88997 1120.2628,607.38316 1133.386,608.01724 C 1146.5093,608.65133 1164.0276,609.95586 1177.0949,620.20343 C 1190.1622,630.45099 1202.1626,647.3435 1211.2073,678.57308 C 1220.2519,709.80266 1212.9056,777.82509 1205.0312,821.92043 C 1197.1569,866.01577 1176.7661,928.03341 1160.0312,961.92043 C 1143.2964,995.80745 1110.2335,1039.4156 1099.4618,1051.7966 C 1088.0976,1064.8586 1043.2559,1088.2228 1020.0312,1094.0633 C 1025.3346,1083.4567 1068.931,1043.4744 1055.0312,1033.349 C 1041.0123,1023.1367 1009.2712,1079.3314 970.7381,1062.3822 C 992.12041,1049.2501 1012.5175,1011.1961 1004.7787,995.78772 C 996.93846,980.17733 974.07378,1044.5453 911.24317,1032.8006 C 941.29521,1005.2739 966.65023,961.89659 952.50587,949.8209 C 938.09071,937.51403 892.04412,1004.1141 892.04412,1004.1141 C 892.04412,1004.1141 889.22222,962.41287 905.81732,935.50673 C 922.45667,908.52886 985.47029,853.89146 1005.3704,823.80331 C 1025.2706,793.71517 1038.983,757.79429 1047.5059,731.28537 C 1056.0287,704.77645 1063.3068,654.18583 1063.3068,654.18583"
2293 id="path8055"
2294 sodipodi:nodetypes="czzzzzzczczczczzzc" />
2295 <path
2296 style="opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8818);enable-background:accumulate"
2297 d="M 770.74639,609.17881 L 719.8347,706.75955 L 639.93163,817.77531 L 674.57987,889.19309 L 717.00628,968.38906 L 789.13117,923.13422 L 803.27331,730.80117 L 824.48651,592.20825 L 810.34437,502.05213 L 770.74639,609.17881 z"
2298 id="path8057"
2299 clip-path="url(#clipPath8622)"
2300 sodipodi:nodetypes="cccccccccc"
2301 transform="translate(276,136)" />
2302 <path
2303 style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8810);enable-background:accumulate"
2304 d="M 295,846.19519 L 301.64488,777.27234 C 301.64488,777.27234 391.96439,866.27691 464,900.19519 C 536.03561,934.11347 772,962.19519 772,962.19519 L 926,936.19519 L 890,1098.1952 L 604,1124.1952 L 306,1035.1952 L 295,846.19519 z"
2305 id="path8059"
2306 clip-path="url(#clipPath8906)"
2307 sodipodi:nodetypes="cczcccccc"
2308 transform="translate(276,136)" />
2309 <path
2310 transform="translate(450.03125,73.843964)"
2311 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3587);enable-background:new"
2312 d="M 405.79629,845.99023 L 480.74961,911.04406 L 483.24924,927.92446 L 502.6526,938.08337 L 509.14464,961.13446 L 540.85369,952.76336 L 555.70293,1000.8466 C 567.95945,1013.5745 645.49637,887.7369 611.56436,1039.0304 L 550.75318,1055.2939 L 461.55026,960.60104 L 398.72523,906.80141 L 405.79629,845.99023 z"
2313 id="path8061"
2314 sodipodi:nodetypes="cccccccccccc"
2315 clip-path="url(#clipPath3602)" />
2316 <path
2317 style="opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2318 d="M 1159.317,918.349 C 1213.6027,916.92043 1285.352,903.29701 1329.317,891.56328 C 1373.3697,879.80614 1455.2033,855.21604 1504.674,833.70614 C 1554.0133,812.25342 1618.2778,774.42454 1658.9599,741.56329 C 1699.468,708.8426 1711.3498,685.74348 1719.6741,707.99186 C 1728.0432,730.35965 1703.2672,764.31748 1681.817,789.06329 C 1660.2128,813.98669 1629.0856,841.76862 1582.8883,878.349 C 1536.691,914.92938 1426.8058,979.93363 1370.0312,1006.9204 C 1312.9652,1034.0458 1241.8279,1065.1589 1197.8884,1079.4205 C 1153.9489,1093.6821 1066.4598,1110.4919 1066.4598,1110.4919 L 1159.317,918.349 z"
2319 id="path8063"
2320 sodipodi:nodetypes="czzzzzzzzcc" />
2321 <path
2322 transform="translate(450.03125,73.843964)"
2323 style="opacity:0.5;fill:url(#linearGradient3666);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3779);enable-background:accumulate"
2324 d="M 1241.5965,652.95007 C 1241.5965,652.95007 1176.875,707.28713 1095.9326,751.94501 C 1013.9082,797.19985 811.67556,845.28311 811.67556,845.28311 C 811.67556,845.28311 796.57419,866.33507 856.93045,873.56739 C 917.28671,880.79971 1081.0124,820.2667 1135.5306,777.40085 C 1190.0488,734.535 1255.7387,665.67799 1255.7387,665.67799 L 1241.5965,652.95007 z"
2325 id="path8065"
2326 sodipodi:nodetypes="czczzcc"
2327 clip-path="url(#clipPath3992)" />
2328 <g
2329 transform="translate(450.03125,73.843964)"
2330 style="opacity:1;display:inline;enable-background:new"
2331 id="g8067"
2332 clip-path="url(#clipPath3986)">
2333 <g
2334 transform="translate(-174.03125,62.156036)"
2335 style="filter:url(#filter3677)"
2336 id="g8069">
2337 <g
2338 style="filter:url(#filter3785)"
2339 id="g8071">
2340 <path
2341 sodipodi:nodetypes="czzccccc"
2342 id="path8073"
2343 d="M 1094.2857,725.93361 C 1094.2857,725.93361 1093.9896,752.09452 1098.9285,763.79076 C 1103.8674,775.487 1118.9666,790.27741 1127.5,795.21933 C 1136.0334,800.16125 1146.4286,803.79075 1146.4286,803.79075 L 1264.2857,688.79075 L 1282.1429,613.07647 L 1185.7143,651.6479 L 1094.2857,725.93361 z"
2344 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2345 transform="translate(174.03125,-62.156036)" />
2346 <rect
2347 y="486.14224"
2348 x="1197.8389"
2349 height="309.71277"
2350 width="333.75412"
2351 id="rect8075"
2352 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2353 </g>
2354 </g>
2355 <g
2356 transform="translate(-174.03125,62.156036)"
2357 style="opacity:0.18000004;display:inline;enable-background:new"
2358 id="g8077">
2359 <g
2360 style="filter:url(#filter3785)"
2361 id="g8079">
2362 <path
2363 sodipodi:nodetypes="czzccccc"
2364 id="path8081"
2365 d="M 1094.2857,725.93361 C 1094.2857,725.93361 1093.9896,752.09452 1098.9285,763.79076 C 1103.8674,775.487 1118.9666,790.27741 1127.5,795.21933 C 1136.0334,800.16125 1146.4286,803.79075 1146.4286,803.79075 L 1264.2857,688.79075 L 1282.1429,613.07647 L 1185.7143,651.6479 L 1094.2857,725.93361 z"
2366 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2367 transform="translate(174.03125,-62.156036)" />
2368 <rect
2369 y="486.14224"
2370 x="1197.8389"
2371 height="309.71277"
2372 width="333.75412"
2373 id="rect8083"
2374 style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2375 </g>
2376 </g>
2377 </g>
2378 <path
2379 transform="translate(450.03125,73.843964)"
2380 style="opacity:0.83300003;fill:#050505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter;marker:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter8225);enable-background:accumulate"
2381 d="M 1264.1875,605 C 1259.6964,605.73268 1256.0305,608.45509 1252.25,611.40625 C 1242.1687,619.27601 1224.0805,645.83149 1204.2188,661.875 C 1164.3514,694.07816 1100.2228,731.85201 1051.6562,752.96875 C 1003.0422,774.10613 921.11498,798.78676 877.34375,810.46875 C 833.94554,822.05121 762.29972,835.59982 709.09375,837 L 704.53125,837.125 L 702.53125,841.25 L 609.6875,1033.375 L 603.1875,1046.8438 L 617.84375,1044 C 617.84375,1044 705.11343,1027.3486 750.1875,1012.7188 C 794.9127,998.20213 865.97836,967.05197 923.21875,939.84375 C 980.82199,912.46306 1090.1551,847.86412 1137.5,810.375 C 1183.8608,773.66518 1215.3049,745.65818 1237.4375,720.125 C 1248.3386,707.549 1260.1823,692.59356 1268.4688,677.375 C 1276.7552,662.15644 1287.6285,633.15692 1282.1562,618.53125 C 1280.9385,615.27651 1279.6048,612.46995 1277.5625,610.03125 C 1275.5202,607.59255 1269.0878,608.45926 1269,605 C 1268.7902,596.73518 1265.6845,604.75577 1264.1875,605 z M 1266.3438,620.21875 C 1266.7586,620.80449 1267.3749,621.77641 1268.125,623.78125 C 1271.0218,631.52338 1266.6843,655.68 1259.3125,669.21875 C 1251.9407,682.7575 1236.6741,698.14269 1226.125,710.3125 C 1205.0496,734.62606 1174.2213,762.17406 1128.1875,798.625 C 1083.1379,834.29659 972.72717,899.71959 916.78125,926.3125 C 859.88952,953.35499 788.68509,984.4309 745.53125,998.4375 C 709.16634,1010.2406 649.68654,1022.2713 629.8125,1026.2188 L 714.09375,851.75 C 768.80066,849.7007 837.88634,836.53365 881.21875,824.96875 C 925.55297,813.1365 1007.2974,788.63242 1057.625,766.75 C 1107.737,744.96129 1170.1594,705.58184 1211.6562,672.0625 C 1232.3026,655.38529 1253.4011,629.51662 1261.4688,623.21875 C 1263.9058,621.31633 1265.5494,620.58295 1266.3438,620.21875 z"
2382 id="path8085"
2383 clip-path="url(#clipPath3722)"
2384 sodipodi:nodetypes="cssssccccccssssssssccssssssccssssc" />
2385 <g
2386 style="opacity:1;display:inline;enable-background:new"
2387 id="g8087"
2388 mask="url(#mask7704)"
2389 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
2390 inkscape:transform-center-x="-185.09603"
2391 inkscape:transform-center-y="-12.859654">
2392 <path
2393 transform="translate(8.0045714e-2,-3.125e-2)"
2394 style="fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2395 d="M 1111.4062,-285.9375 L 1107.4688,-284.0625 C 1107.4283,-284.05228 1107.3692,-284.04201 1107.3438,-284.03125 C 1106.925,-283.8184 1107.1791,-283.93067 1106.6875,-283.71875 C 1106.2014,-283.50919 1104.9499,-283.13456 1102.5938,-282.25 C 1099.2626,-280.99942 1096.7895,-280.10016 1095.5938,-279.1875 C 1094.0576,-279.16623 1091.8733,-278.95419 1089.9375,-278.46875 C 1086.956,-277.72108 1085.0823,-277.29474 1083.1875,-276.875 C 1081.2927,-276.45527 1081.512,-276.23281 1080.3125,-276 C 1079.0159,-275.74833 1078.5911,-276.00899 1074.875,-275.21875 C 1071.3851,-274.4766 1065.9802,-273.28768 1064.7188,-272.53125 C 1063.1348,-272.71203 1060.8513,-272.85303 1058.875,-272.5625 C 1055.8346,-272.11554 1053.9588,-271.88974 1052.0312,-271.65625 C 1051.3758,-271.57687 1050.9902,-271.45547 1050.6875,-271.375 C 1050.2613,-271.24334 1050.0017,-271.11498 1049.3125,-271.03125 C 1048.0009,-270.87188 1047.5503,-271.18808 1043.7812,-270.75 C 1040.2273,-270.33691 1034.7758,-269.47718 1033.5312,-268.8125 C 1031.9322,-269.10979 1029.6735,-269.34669 1027.6875,-269.15625 C 1024.6287,-268.86293 1022.7155,-268.67226 1020.7812,-268.5 C 1018.847,-268.32773 1019.0926,-268.07763 1017.875,-267.96875 C 1016.5588,-267.85105 1016.1152,-268.13238 1012.3438,-267.71875 C 1008.8017,-267.3303 1003.3359,-266.50948 1002.0625,-265.84375 C 1000.4636,-266.13844 998.1753,-266.35076 996.1875,-266.15625 C 993.12921,-265.857 991.2463,-265.67601 989.3125,-265.5 C 988.65501,-265.44015 988.27245,-265.32144 987.96875,-265.25 C 987.54105,-265.13104 987.28525,-265.03193 986.59375,-264.96875 C 985.27775,-264.84849 984.834,-265.16363 981.0625,-264.75 C 977.50631,-264.35998 972.0569,-263.51084 970.8125,-262.84375 C 969.21381,-263.13793 966.95265,-263.36747 964.96875,-263.15625 C 961.91305,-262.83092 959.9947,-262.63001 958.0625,-262.4375 C 956.13031,-262.24499 956.37275,-261.99662 955.15625,-261.875 C 953.84137,-261.74353 953.3932,-262.03954 949.625,-261.59375 C 946.08611,-261.17509 940.6473,-260.30158 939.375,-259.625 C 937.77741,-259.90604 935.51505,-260.04543 933.53125,-259.8125 C 930.47927,-259.45413 928.58625,-259.24464 926.65625,-259.03125 C 926.00007,-258.95869 925.6156,-258.85856 925.3125,-258.78125 C 924.88571,-258.65402 924.6276,-258.51405 923.9375,-258.4375 C 922.62411,-258.29181 922.17015,-258.61152 918.40625,-258.125 C 914.85737,-257.66624 909.4276,-256.70598 908.1875,-256 C 906.59441,-256.24424 904.3537,-256.38135 902.375,-256.125 C 899.32741,-255.73018 897.4243,-255.47655 895.5,-255.21875 C 893.57571,-254.96096 893.7739,-254.72522 892.5625,-254.5625 C 891.25301,-254.3866 890.8153,-254.66688 887.0625,-254.09375 C 883.53821,-253.55551 878.1393,-252.39458 876.875,-251.65625 C 875.28751,-251.85979 873.0295,-251.91098 871.0625,-251.5625 C 868.03631,-251.02638 866.1636,-250.70081 864.25,-250.375 C 863.59941,-250.26423 863.2363,-250.10406 862.9375,-250 C 862.51681,-249.83512 862.27405,-249.6687 861.59375,-249.53125 C 860.29905,-249.26966 859.86665,-249.53745 856.15625,-248.71875 C 852.65777,-247.9468 847.31035,-246.33582 846.09375,-245.5 C 844.53085,-245.57745 842.33625,-245.41472 840.40625,-244.90625 C 837.43387,-244.12312 835.58855,-243.67416 833.71875,-243.15625 C 831.84875,-242.63835 832.0521,-242.38897 830.875,-242.0625 C 829.60251,-241.7096 829.17795,-241.95541 825.53125,-240.875 C 822.10657,-239.86037 816.88185,-237.94183 815.65625,-237.03125 C 814.11747,-237.01851 811.93645,-236.75903 810.03125,-236.15625 C 807.10027,-235.22891 805.2809,-234.69783 803.4375,-234.09375 C 802.81071,-233.88837 802.44585,-233.70117 802.15625,-233.5625 C 801.74867,-233.34889 801.50295,-233.15375 800.84375,-232.9375 C 799.58925,-232.52596 799.1576,-232.74846 795.5625,-231.5 C 792.17261,-230.32283 786.96755,-228.2863 785.78125,-227.34375 C 784.25737,-227.28408 782.1312,-226.94888 780.25,-226.28125 C 777.35261,-225.25296 775.55095,-224.60577 773.71875,-223.96875 C 771.88655,-223.33174 772.0909,-223.12021 770.9375,-222.71875 C 769.69071,-222.28479 769.27395,-222.51903 765.71875,-221.15625 C 762.38005,-219.87645 757.23165,-217.6737 756.03125,-216.6875 C 754.52407,-216.57981 752.39555,-216.1887 750.53125,-215.46875 C 747.66307,-214.36115 745.90735,-213.68719 744.09375,-213 C 743.47705,-212.76637 743.0973,-212.55797 742.8125,-212.40625 C 742.81251,-212.40625 742.8125,-212.37673 742.8125,-212.375 L 734.8125,-209.1875 L 722.3366,-205.69561 L 730.26626,-186.41789 C 729.67463,-184.44432 742.8125,-191.15625 742.8125,-191.15625 C 743.03891,-191.30093 743.26145,-191.42886 743.53125,-191.53125 C 744.61177,-191.94123 745.70285,-191.74702 749.53125,-193.21875 C 753.35977,-194.69049 754.7553,-195.22373 755.4375,-195.625 C 756.11711,-196.02478 757.04925,-196.50437 757.65625,-197.15625 C 759.48317,-197.294 761.22705,-197.64948 762.59375,-198.15625 C 765.56175,-199.25677 767.4691,-199.96244 769.375,-200.625 C 771.28081,-201.28754 771.72915,-202.03987 772.78125,-202.40625 C 773.87287,-202.78636 774.97635,-202.57163 778.84375,-203.9375 C 782.71115,-205.30336 784.1269,-205.76458 784.8125,-206.15625 C 785.51361,-206.55677 786.5133,-207.08923 787.125,-207.75 C 789.09581,-207.80466 790.94195,-208.13463 792.40625,-208.625 C 795.40777,-209.63008 797.3324,-210.24671 799.25,-210.875 C 800.78861,-211.3791 801.42415,-211.92177 802.15625,-212.3125 C 802.38647,-212.44681 802.63215,-212.56623 802.90625,-212.65625 C 804.00457,-213.01673 805.0877,-212.73762 809,-213.96875 C 812.91231,-215.19988 814.366,-215.6417 815.0625,-216 C 815.75641,-216.35697 816.6926,-216.79261 817.3125,-217.40625 C 819.17771,-217.42891 820.94835,-217.67308 822.34375,-218.09375 C 825.37415,-219.00729 827.33615,-219.52385 829.28125,-220.0625 C 831.22637,-220.60114 831.70745,-221.32702 832.78125,-221.625 C 833.89527,-221.93415 835.00125,-221.61761 838.96875,-222.65625 C 842.93625,-223.69488 844.38625,-224.08898 845.09375,-224.40625 C 845.82855,-224.73584 846.90765,-225.15997 847.53125,-225.78125 C 849.52907,-225.66525 851.3887,-225.80134 852.875,-226.15625 C 855.95311,-226.89125 857.9584,-227.25719 859.9375,-227.65625 C 861.52541,-227.97643 862.1818,-228.4468 862.9375,-228.75 C 863.17501,-228.8568 863.4044,-228.94276 863.6875,-229 C 864.82091,-229.22919 865.99215,-228.79107 870.03125,-229.5 C 874.07067,-230.20893 875.5315,-230.42709 876.25,-230.6875 C 876.96581,-230.94694 877.95435,-231.25474 878.59375,-231.78125 C 880.51795,-231.54176 882.34165,-231.55672 883.78125,-231.78125 C 886.90767,-232.26887 888.9358,-232.48192 890.9375,-232.75 C 892.93921,-233.01807 893.42625,-233.69514 894.53125,-233.84375 C 895.67767,-233.99793 896.8071,-233.54218 900.875,-234.0625 C 904.94281,-234.58282 906.43525,-234.75823 907.15625,-235 C 907.89337,-235.24714 908.95435,-235.58623 909.59375,-236.125 C 911.64375,-235.78947 913.56745,-235.72704 915.09375,-235.90625 C 918.23595,-236.27521 920.27375,-236.46561 922.28125,-236.6875 C 923.89207,-236.86552 924.5459,-237.2957 925.3125,-237.53125 C 925.55341,-237.61677 925.80655,-237.68685 926.09375,-237.71875 C 927.24345,-237.84647 928.39505,-237.3721 932.46875,-237.84375 C 936.54245,-238.3154 938.0278,-238.45435 938.75,-238.6875 C 939.46941,-238.91977 940.45025,-239.16096 941.09375,-239.65625 C 943.03005,-239.32279 944.8638,-239.25201 946.3125,-239.40625 C 949.45851,-239.7412 951.49,-239.92484 953.5,-240.125 C 955.50991,-240.32514 955.98415,-240.95139 957.09375,-241.0625 C 958.24485,-241.17778 959.39025,-240.69744 963.46875,-241.125 C 967.54725,-241.55256 969.05765,-241.68709 969.78125,-241.90625 C 970.52047,-242.13011 971.57685,-242.4195 972.21875,-242.9375 C 974.27575,-242.53883 976.2206,-242.4441 977.75,-242.59375 C 980.89871,-242.90185 982.9258,-243.067 984.9375,-243.25 C 986.55151,-243.39682 987.20055,-243.81055 987.96875,-244.03125 C 988.21005,-244.11211 988.4623,-244.16116 988.75,-244.1875 C 989.90211,-244.29295 991.0429,-243.79475 995.125,-244.1875 C 999.20711,-244.58025 1000.7139,-244.71834 1001.4375,-244.9375 C 1002.1584,-245.15583 1003.1371,-245.3852 1003.7812,-245.875 C 1005.7193,-245.52501 1007.5501,-245.42062 1009,-245.5625 C 1012.1487,-245.8706 1014.1758,-246.03575 1016.1875,-246.21875 C 1018.1991,-246.40174 1018.7017,-247.05677 1019.8125,-247.15625 C 1020.9648,-247.25948 1022.1047,-246.77142 1026.1875,-247.15625 C 1030.2704,-247.54107 1031.7762,-247.65725 1032.5,-247.875 C 1033.2393,-248.09743 1034.2956,-248.38949 1034.9375,-248.90625 C 1036.9949,-248.50448 1038.9404,-248.40292 1040.4688,-248.5625 C 1043.6153,-248.89102 1045.6458,-249.0852 1047.6562,-249.28125 C 1049.2692,-249.43854 1049.9219,-249.91273 1050.6875,-250.15625 C 1050.9282,-250.24429 1051.1507,-250.27762 1051.4375,-250.3125 C 1052.5858,-250.4522 1053.7542,-249.97259 1057.8125,-250.5625 C 1061.8708,-251.15242 1063.3743,-251.33964 1064.0938,-251.59375 C 1064.8104,-251.84691 1065.7684,-252.15182 1066.4062,-252.6875 C 1068.3259,-252.47556 1070.1262,-252.53609 1071.5625,-252.78125 C 1074.6816,-253.31365 1076.6741,-253.70986 1078.6562,-254.09375 C 1080.6383,-254.47762 1081.1305,-255.1334 1082.2188,-255.375 C 1083.3475,-255.62566 1084.489,-255.25871 1088.4688,-256.25 C 1092.4483,-257.24127 1093.8983,-257.6693 1094.5938,-258.03125 C 1095.316,-258.40725 1096.3555,-258.90183 1096.9688,-259.5625 C 1098.9317,-259.57454 1100.7625,-259.85355 1102.1875,-260.40625 C 1105.1387,-261.55085 1107.0607,-262.27567 1108.875,-263.15625 C 1110.3307,-263.86277 1111.1941,-264.85828 1111.4062,-265.15625 C 1111.6185,-265.4542 1111.5051,-265.8848 1111.5312,-265.90625 C 1111.5742,-265.94148 1111.8716,-266.00028 1112.0312,-266.34375 C 1112.8902,-268.19082 1114.3544,-271.97139 1114.4688,-272.65625 C 1114.5825,-273.33839 1114.6368,-274.00902 1114.6875,-274.40625 C 1114.7169,-274.63575 1114.5404,-275.28515 1114.5625,-275.34375 C 1114.5934,-275.42579 1114.8508,-275.59432 1114.9062,-275.84375 C 1115.1725,-277.04206 1114.9953,-278.05111 1114.7812,-279.46875 C 1114.5673,-280.88638 1113.8096,-284.08338 1113.1562,-284.9375 C 1112.4973,-285.79922 1111.9314,-285.94801 1111.4062,-285.9375 z"
2396 id="path8089"
2397 sodipodi:nodetypes="ccssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssscccccssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssssssssc" />
2398 <g
2399 clip-path="url(#clipPath7421)"
2400 id="g8091">
2401 <path
2402 id="path8093"
2403 d="M 1107.409,-284.04961 C 1106.9903,-283.83678 1107.2534,-283.95572 1106.7618,-283.7438 C 1106.2757,-283.53426 1105.0384,-283.16941 1102.6822,-282.28485 C 1099.3511,-281.03428 1096.852,-280.13141 1095.6563,-279.21875 C 1094.1202,-279.19749 1091.9358,-278.98544 1090,-278.5 C 1087.0185,-277.75234 1085.1448,-277.32599 1083.25,-276.90625 C 1081.3552,-276.48653 1081.5745,-276.26406 1080.375,-276.03125 C 1079.0784,-275.77959 1078.6536,-276.04024 1074.9375,-275.25 C 1071.4476,-274.50786 1066.0427,-273.31893 1064.7813,-272.5625 C 1063.1974,-272.74329 1060.9138,-272.88428 1058.9375,-272.59375 C 1055.8971,-272.1468 1054.0213,-271.92099 1052.0938,-271.6875 C 1051.4384,-271.60813 1051.0527,-271.48672 1050.75,-271.40625 C 1050.3238,-271.2746 1050.0642,-271.14623 1049.375,-271.0625 C 1048.0634,-270.90314 1047.6128,-271.21933 1043.8438,-270.78125 C 1040.2899,-270.36817 1034.8384,-269.50843 1033.5938,-268.84375 C 1031.9948,-269.14105 1029.736,-269.37794 1027.75,-269.1875 C 1024.6912,-268.89419 1022.778,-268.70351 1020.8438,-268.53125 C 1018.9095,-268.35899 1019.1551,-268.10888 1017.9375,-268 C 1016.6213,-267.88231 1016.1777,-268.16363 1012.4063,-267.75 C 1008.8644,-267.36156 1003.3984,-266.54073 1002.125,-265.875 C 1000.5261,-266.1697 998.23783,-266.38201 996.25,-266.1875 C 993.19176,-265.88826 991.30887,-265.70726 989.375,-265.53125 C 988.71751,-265.47141 988.33496,-265.35269 988.03125,-265.28125 C 987.6036,-265.1623 987.34774,-265.06318 986.65625,-265 C 985.34029,-264.87975 984.89649,-265.19488 981.125,-264.78125 C 977.56886,-264.39124 972.11946,-263.54209 970.875,-262.875 C 969.27637,-263.16919 967.01516,-263.39872 965.03125,-263.1875 C 961.97565,-262.86218 960.05721,-262.66126 958.125,-262.46875 C 956.19279,-262.27625 956.43513,-262.02787 955.21875,-261.90625 C 953.90387,-261.77479 953.45577,-262.07079 949.6875,-261.625 C 946.14863,-261.20635 940.70982,-260.33283 939.4375,-259.65625 C 937.83995,-259.9373 935.57754,-260.07668 933.59375,-259.84375 C 930.54177,-259.48539 928.64867,-259.27589 926.71875,-259.0625 C 926.06255,-258.98995 925.67809,-258.88981 925.375,-258.8125 C 924.94823,-258.68528 924.69009,-258.5453 924,-258.46875 C 922.68667,-258.32307 922.23254,-258.64277 918.46875,-258.15625 C 914.91986,-257.6975 909.49012,-256.73723 908.25,-256.03125 C 906.65695,-256.27549 904.41619,-256.4126 902.4375,-256.15625 C 899.38991,-255.76144 897.48679,-255.5078 895.5625,-255.25 C 893.63822,-254.99221 893.83639,-254.75647 892.625,-254.59375 C 891.31554,-254.41785 890.87781,-254.69813 887.125,-254.125 C 883.60071,-253.58676 878.20185,-252.42583 876.9375,-251.6875 C 875.35,-251.89104 873.092,-251.94223 871.125,-251.59375 C 868.09883,-251.05763 866.22611,-250.73206 864.3125,-250.40625 C 863.66189,-250.29548 863.29879,-250.13531 863,-250.03125 C 862.57933,-249.86637 862.33655,-249.69995 861.65625,-249.5625 C 860.3616,-249.30091 859.92913,-249.5687 856.21875,-248.75 C 852.72022,-247.97805 847.3728,-246.36707 846.15625,-245.53125 C 844.59347,-245.6087 842.39867,-245.44597 840.46875,-244.9375 C 837.49631,-244.15437 835.65114,-243.70541 833.78125,-243.1875 C 831.91137,-242.6696 832.11465,-242.42022 830.9375,-242.09375 C 829.66504,-241.74085 829.24047,-241.98666 825.59375,-240.90625 C 822.16905,-239.89162 816.94431,-237.97308 815.71875,-237.0625 C 814.17992,-237.04976 811.99892,-236.79028 810.09375,-236.1875 C 807.16269,-235.26016 805.34344,-234.72908 803.5,-234.125 C 802.87324,-233.91962 802.50827,-233.73242 802.21875,-233.59375 C 801.81112,-233.38014 801.56541,-233.185 800.90625,-232.96875 C 799.65179,-232.55721 799.22014,-232.77971 795.625,-231.53125 C 792.23515,-230.35408 787.03002,-228.31755 785.84375,-227.375 C 784.31986,-227.31533 782.1937,-226.98013 780.3125,-226.3125 C 777.41511,-225.28421 775.61342,-224.63702 773.78125,-224 C 771.94908,-223.36299 772.1534,-223.15146 771,-222.75 C 769.75322,-222.31604 769.33639,-222.55028 765.78125,-221.1875 C 762.44258,-219.9077 757.2941,-217.70495 756.09375,-216.71875 C 754.58657,-216.61106 752.45806,-216.21995 750.59375,-215.5 C 747.72557,-214.3924 745.96995,-213.71844 744.15625,-213.03125 C 743.53959,-212.79762 743.15984,-212.58922 742.875,-212.4375 C 742.875,-212.4375 742.875,-211.34375 742.875,-211.34375 C 742.98678,-211.56611 743.26099,-212.16118 743.78125,-212.4375 C 744.47922,-212.80822 748.59488,-214.43087 750.59375,-215.15625 C 752.25061,-215.7575 754.74764,-216.48493 756.5625,-216.46875 C 756.86412,-216.46606 757.15012,-216.41785 757.40625,-216.375 C 759.24874,-216.06675 764.875,-214.8125 764.875,-214.8125 C 764.87499,-214.8125 758.64151,-216.45925 757.84375,-216.65625 C 757.65296,-216.70336 757.30803,-216.72497 756.875,-216.71875 C 758.02046,-217.58846 761.636,-219.11226 764.21875,-220.15625 C 767.05697,-221.30352 767.33556,-221.40807 769.28125,-221.8125 C 771.28955,-222.22994 772.4375,-222.3125 772.4375,-222.3125 C 772.4375,-222.31249 772.35514,-222.91364 773.40625,-223.4375 C 774.11135,-223.78891 778.29327,-225.3299 780.3125,-226 C 782.2644,-226.64773 785.3699,-227.3585 787.1875,-227 C 789.05073,-226.6325 794.71875,-225.1875 794.71875,-225.1875 C 794.71876,-225.1875 788.43175,-227.05861 787.625,-227.28125 C 787.43208,-227.3345 787.09416,-227.36729 786.65625,-227.375 C 787.81459,-228.20788 791.45069,-229.57032 794.0625,-230.53125 C 796.93266,-231.58726 797.22984,-231.69305 799.1875,-232.0625 C 801.04099,-232.41229 802.04634,-232.48798 802.21875,-232.5 C 802.33235,-232.71724 802.5962,-233.31002 803.125,-233.5625 C 803.83444,-233.90124 808.05107,-235.27525 810.09375,-235.875 C 811.78692,-236.37211 814.33452,-236.91177 816.1875,-236.78125 C 816.49545,-236.75957 816.80099,-236.68399 817.0625,-236.625 C 818.94368,-236.20068 824.65625,-234.59375 824.65625,-234.59375 C 824.65626,-234.59375 818.31451,-236.659 817.5,-236.90625 C 817.30521,-236.96539 816.94212,-237.01019 816.5,-237.03125 C 817.66949,-237.8288 821.36302,-239.08747 824,-239.96875 C 826.89781,-240.93722 827.23301,-240.97207 829.21875,-241.25 C 831.2684,-241.53689 832.40625,-241.5625 832.40625,-241.5625 C 832.40623,-241.5625 832.3335,-242.16947 833.40625,-242.625 C 834.12585,-242.93057 838.39723,-244.12575 840.46875,-244.625 C 842.47119,-245.10758 845.66724,-245.55329 847.53125,-245.03125 C 849.44203,-244.4961 855.25,-242.53125 855.25,-242.53125 C 855.25,-242.53125 848.82734,-244.95476 848,-245.25 C 847.80216,-245.32061 847.41784,-245.39039 846.96875,-245.4375 C 848.15665,-246.16615 851.88402,-247.21158 854.5625,-247.9375 C 857.50592,-248.73525 857.85458,-248.70833 859.875,-248.84375 C 861.78789,-248.97198 862.82205,-248.91484 863,-248.90625 C 863.11728,-249.10991 863.39176,-249.68573 863.9375,-249.875 C 864.66969,-250.12894 869.01602,-250.92289 871.125,-251.25 C 872.87313,-251.52111 875.52588,-251.7347 877.4375,-251.34375 C 877.75516,-251.27879 878.04272,-251.15824 878.3125,-251.0625 C 880.25324,-250.37377 886.15625,-247.96875 886.15625,-247.96875 C 886.15626,-247.96875 879.62154,-250.91952 878.78125,-251.28125 C 878.58028,-251.36776 878.20612,-251.44804 877.75,-251.53125 C 878.9565,-252.16443 882.77956,-252.92685 885.5,-253.4375 C 888.48953,-253.99869 888.80023,-253.96704 890.84375,-253.96875 C 892.95301,-253.97052 894.15625,-253.84375 894.15625,-253.84375 C 894.15625,-253.84374 894.08354,-254.47494 895.1875,-254.78125 C 895.92802,-254.98672 900.31362,-255.61512 902.4375,-255.84375 C 904.49052,-256.06474 907.75613,-256.09597 909.65625,-255.375 C 911.60404,-254.63593 917.5,-252 917.5,-252 C 917.50002,-252 910.93712,-255.17897 910.09375,-255.5625 C 909.89207,-255.65423 909.55154,-255.74871 909.09375,-255.84375 C 910.30467,-256.44563 914.07817,-257.09259 916.8125,-257.5 C 919.8173,-257.94772 920.13801,-257.9517 922.1875,-257.90625 C 924.12795,-257.86323 925.19449,-257.71202 925.375,-257.6875 C 925.49392,-257.88066 925.7589,-258.45333 926.3125,-258.59375 C 927.05521,-258.78213 931.46679,-259.32803 933.59375,-259.53125 C 935.35678,-259.69967 938.01384,-259.76554 939.9375,-259.28125 C 940.25718,-259.20077 940.54101,-259.07766 940.8125,-258.96875 C 942.76543,-258.18526 948.71875,-255.5 948.71875,-255.5 C 948.71873,-255.5 942.12684,-258.75348 941.28125,-259.15625 C 941.07903,-259.25257 940.70899,-259.36328 940.25,-259.46875 C 941.46414,-260.04302 945.29366,-260.59094 948.03125,-260.96875 C 951.03963,-261.38395 951.35432,-261.41138 953.40625,-261.34375 C 955.52423,-261.27394 956.71875,-261.09375 956.71875,-261.09375 C 956.71873,-261.09375 956.6415,-261.73116 957.75,-262 C 958.49362,-262.18035 962.90176,-262.66355 965.03125,-262.84375 C 967.08972,-263.01792 970.37449,-262.96807 972.28125,-262.1875 C 974.23584,-261.38734 980.15625,-258.65625 980.15625,-258.65625 C 980.15623,-258.65625 973.59632,-261.96501 972.75,-262.375 C 972.54763,-262.47305 972.17814,-262.5781 971.71875,-262.6875 C 972.93392,-263.2514 976.72883,-263.8018 979.46875,-264.15625 C 982.47966,-264.54577 982.79006,-264.5539 984.84375,-264.46875 C 986.78814,-264.38815 987.85038,-264.21551 988.03125,-264.1875 C 988.15041,-264.37836 988.41402,-264.93281 988.96875,-265.0625 C 989.71301,-265.2365 994.11868,-265.71297 996.25,-265.875 C 998.01662,-266.00927 1000.6997,-266.00071 1002.625,-265.5 C 1002.945,-265.41679 1003.2283,-265.29873 1003.5,-265.1875 C 1005.4546,-264.38734 1011.4063,-261.625 1011.4063,-261.625 C 1011.4062,-261.625 1004.8151,-264.96501 1003.9688,-265.375 C 1003.7664,-265.47305 1003.3969,-265.57811 1002.9375,-265.6875 C 1004.1526,-266.2514 1007.9788,-266.77056 1010.7188,-267.125 C 1013.7297,-267.51453 1014.0713,-267.5539 1016.125,-267.46875 C 1018.2447,-267.38087 1019.4375,-267.15625 1019.4375,-267.15625 C 1019.4375,-267.15625 1019.3591,-267.80527 1020.4688,-268.0625 C 1021.2131,-268.23506 1025.6183,-268.68586 1027.75,-268.84375 C 1029.8106,-268.99635 1033.0929,-268.94052 1035,-268.15625 C 1036.955,-267.3523 1042.875,-264.65625 1042.875,-264.65625 C 1042.875,-264.65625 1036.3152,-267.93212 1035.4688,-268.34375 C 1035.2663,-268.44219 1034.897,-268.54597 1034.4375,-268.65625 C 1035.6529,-269.21779 1039.4494,-269.78403 1042.1875,-270.15625 C 1045.1965,-270.5653 1045.5102,-270.57183 1047.5625,-270.5 C 1049.5056,-270.43201 1050.5697,-270.33515 1050.75,-270.3125 C 1050.8688,-270.5069 1051.1346,-271.04131 1051.6875,-271.1875 C 1052.4293,-271.38362 1056.8186,-272.01628 1058.9375,-272.28125 C 1060.6939,-272.50086 1063.3428,-272.61356 1065.25,-272.25 C 1065.5669,-272.18959 1065.8558,-272.06062 1066.125,-271.96875 C 1068.0612,-271.30783 1073.9688,-269.03125 1073.9688,-269.03125 C 1073.9687,-269.03125 1067.4321,-271.8378 1066.5938,-272.1875 C 1066.3933,-272.27113 1066.0176,-272.36083 1065.5625,-272.4375 C 1066.7662,-273.08796 1070.5816,-273.80945 1073.2813,-274.4375 C 1076.248,-275.1277 1076.5702,-275.19257 1078.5938,-275.3125 C 1080.6824,-275.4363 1081.875,-275.34375 1081.875,-275.34375 C 1081.875,-275.34374 1081.788,-275.9758 1082.875,-276.375 C 1083.6042,-276.6428 1087.9222,-277.71297 1090,-278.1875 C 1092.0085,-278.64619 1095.1679,-279.2168 1097,-278.8125 C 1098.8781,-278.39804 1110.5782,-275.79687 1110.5782,-275.79687 C 1110.5782,-275.79687 1098.2507,-278.81953 1097.4375,-279.0625 C 1097.243,-279.12062 1096.8789,-279.16876 1096.4375,-279.1875 C 1097.6051,-279.99119 1099.9517,-280.8748 1102.5469,-281.89062 C 1104.2283,-282.5488 1103.4706,-282.26721 1105.3228,-282.89422 C 1107.0764,-283.48788 1107.8082,-283.90493 1107.9532,-284.00721 C 1108.2993,-284.21372 1107.5972,-284.12909 1107.409,-284.04961 z"
2404 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7001);enable-background:new"
2405 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc" />
2406 <path
2407 id="path8095"
2408 d="M 1082.625,-275.125 C 1084.498,-274.73152 1087.1211,-273.97945 1088.6563,-273.15625 C 1090.1915,-272.33306 1091.4785,-272.10025 1094.0313,-270.65625 C 1096.5579,-269.22699 1098.8271,-268.64929 1101,-268.125 C 1103.3476,-267.55858 1106.4354,-267.40977 1109.8438,-266.9375 C 1108.7549,-267.77725 1103.2364,-268.10995 1101.4375,-268.5 C 1099.6386,-268.89006 1097.5434,-269.51616 1094.8438,-270.8125 C 1092.1441,-272.10884 1091.3494,-272.61146 1089.0313,-273.5 C 1086.7131,-274.38854 1085.0269,-274.88314 1082.625,-275.125 z"
2409 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6949);enable-background:new" />
2410 <path
2411 id="path8097"
2412 d="M 1051.4688,-270 C 1053.3741,-269.42241 1055.9969,-268.38428 1057.5625,-267.40625 C 1059.1281,-266.42823 1060.4427,-266.04644 1063.0625,-264.28125 C 1065.6555,-262.53409 1068.0484,-261.57198 1070.3125,-260.6875 C 1072.7586,-259.73193 1075.9951,-259.03037 1079.7188,-257.625 C 1078.5292,-258.76284 1072.6557,-260.31175 1070.7813,-261 C 1068.9068,-261.68825 1066.6995,-262.5662 1063.9063,-264.28125 C 1061.113,-265.99629 1060.3327,-266.56515 1057.9688,-267.6875 C 1055.6047,-268.80984 1053.9121,-269.52205 1051.4688,-270 z"
2413 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6961);enable-background:new" />
2414 <path
2415 id="path8099"
2416 d="M 1020.2188,-266.84375 C 1022.1307,-266.20564 1024.8,-265.08839 1026.375,-264.03125 C 1027.9501,-262.9741 1029.2706,-262.52258 1031.9063,-260.625 C 1034.5149,-258.74679 1036.9347,-257.59497 1039.2188,-256.5625 C 1041.6865,-255.44705 1044.9833,-254.3892 1048.75,-252.71875 C 1047.5467,-253.94128 1041.5472,-256.03298 1039.6563,-256.84375 C 1037.7653,-257.65452 1035.5914,-258.73754 1032.7813,-260.59375 C 1029.9711,-262.44995 1029.1595,-263.07068 1026.7813,-264.3125 C 1024.403,-265.5543 1022.6706,-266.28819 1020.2188,-266.84375 z"
2417 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6957);enable-background:new" />
2418 <path
2419 id="path8101"
2420 d="M 1110.1719,-266.89063 C 1110.3227,-266.84207 1110.8599,-266.25963 1110.2813,-265.40625 C 1109.4712,-264.21166 1104.5764,-262.08196 1101.7188,-261.28125 C 1098.8739,-260.48413 1095.4287,-260.30351 1091.1563,-261.65625 C 1086.8547,-263.0182 1085.6866,-264.12497 1080.5,-265.96875 C 1085.164,-263.85358 1086.6953,-262.01642 1090.625,-260.625 C 1092.2457,-260.05113 1093.9921,-259.6854 1095.6875,-259.59375 C 1095.2424,-259.26812 1094.1572,-258.61045 1092.125,-258 C 1089.3295,-257.16031 1085.4759,-256.46622 1083.875,-256.375 C 1082.3604,-256.28868 1080.733,-256.88749 1080.4375,-257 C 1080.6042,-256.89692 1080.8107,-256.62266 1080.1875,-255.96875 C 1079.2882,-255.02512 1074.0401,-254.04575 1071.0625,-253.71875 C 1068.0982,-253.3932 1064.5409,-253.73471 1060.1563,-255.625 C 1056.1783,-257.33997 1054.8173,-258.54036 1050.75,-260.375 C 1050.75,-260.375 1050.75,-260.21875 1050.75,-260.21875 C 1054.3931,-258.12346 1056.034,-256.33548 1059.625,-254.65625 C 1061.3552,-253.84716 1063.2167,-253.24749 1065.0313,-252.9375 C 1064.4964,-252.65074 1063.4735,-252.22599 1061.5938,-251.90625 C 1058.7248,-251.41829 1054.7848,-251.09011 1053.1563,-251.15625 C 1052.3056,-251.19079 1051.4277,-251.34062 1050.75,-251.5625 C 1050.0652,-251.77738 1049.5603,-252.00717 1049.4375,-252.0625 C 1049.6069,-251.95529 1049.8686,-251.65962 1049.2188,-251.03125 C 1048.3091,-250.15163 1042.9727,-249.69487 1039.9688,-249.5625 C 1036.9783,-249.43071 1033.3799,-250.01313 1028.9688,-252.125 C 1024.5276,-254.25126 1023.3273,-255.5266 1018.0625,-257.90625 C 1022.7968,-255.30921 1024.349,-253.27715 1028.4063,-251.1875 C 1030.0796,-250.32565 1031.8915,-249.69325 1033.6563,-249.25 C 1033.193,-249.01668 1032.0669,-248.56186 1029.9688,-248.3125 C 1027.0825,-247.96952 1023.1342,-247.81962 1021.5,-247.9375 C 1019.9538,-248.049 1018.2688,-248.79446 1017.9688,-248.9375 C 1018.1379,-248.81721 1018.3826,-248.52702 1017.75,-247.9375 C 1016.8372,-247.08677 1011.5059,-246.67538 1008.5,-246.5625 C 1005.5075,-246.45013 1001.9103,-247.05293 997.5,-249.15625 C 993.49875,-251.06448 992.11197,-252.29408 988.03125,-254.25 C 988.03122,-254.25 988.03125,-254.09375 988.03125,-254.09375 C 991.68631,-251.88983 993.32546,-250.0412 996.9375,-248.1875 C 998.67779,-247.29435 1000.5745,-246.65923 1002.4063,-246.21875 C 1001.8663,-245.97045 1000.8282,-245.60342 998.9375,-245.375 C 996.05182,-245.02642 992.07145,-244.85405 990.4375,-244.96875 C 989.58405,-245.02865 988.71119,-245.22666 988.03125,-245.46875 C 987.34415,-245.70405 986.8419,-245.94101 986.71875,-246 C 986.88873,-245.88773 987.18323,-245.57775 986.53125,-244.96875 C 985.6186,-244.11625 980.25592,-243.67538 977.25,-243.5625 C 974.25754,-243.45013 970.65654,-244.09055 966.25,-246.15625 C 961.81347,-248.23603 960.60312,-249.48796 955.34375,-251.8125 C 960.07313,-249.26501 961.63449,-247.2347 965.6875,-245.1875 C 967.35905,-244.34317 969.17304,-243.72107 970.9375,-243.28125 C 970.47427,-243.04703 969.3478,-242.59718 967.25,-242.34375 C 964.36431,-241.99517 960.4138,-241.77423 958.78125,-241.875 C 957.23669,-241.97032 955.58094,-242.70385 955.28125,-242.84375 C 955.45024,-242.72522 955.66317,-242.4399 955.03125,-241.84375 C 954.11939,-240.98347 948.7846,-240.5135 945.78125,-240.375 C 942.7913,-240.2371 939.2138,-240.82568 934.8125,-242.84375 C 930.81942,-244.67464 929.44739,-245.87295 925.375,-247.75 C 925.37498,-247.75 925.375,-247.59375 925.375,-247.59375 C 929.02261,-245.46048 930.64533,-243.65888 934.25,-241.875 C 935.98675,-241.01549 937.85727,-240.42486 939.6875,-240 C 939.14803,-239.7471 938.13687,-239.35871 936.25,-239.09375 C 933.37022,-238.68939 929.41187,-238.44813 927.78125,-238.53125 C 926.92953,-238.57466 926.05355,-238.7398 925.375,-238.96875 C 924.68931,-239.19076 924.1854,-239.41214 924.0625,-239.46875 C 924.23209,-239.35976 924.4944,-239.0591 923.84375,-238.4375 C 922.93296,-237.56736 917.59354,-237.04598 914.59375,-236.875 C 911.60742,-236.70479 908.01994,-237.19077 903.625,-239.15625 C 899.20011,-241.13513 898.01904,-242.38444 892.78125,-244.53125 C 897.49122,-242.14358 899.05142,-240.14252 903.09375,-238.1875 C 904.7609,-237.38119 906.55418,-236.79092 908.3125,-236.40625 C 907.85087,-236.15755 906.7155,-235.694 904.625,-235.375 C 901.7494,-234.93624 897.8446,-234.6419 896.21875,-234.6875 C 894.68052,-234.73062 892.98595,-235.43272 892.6875,-235.5625 C 892.85583,-235.44968 893.09807,-235.14875 892.46875,-234.53125 C 891.56063,-233.64015 886.2658,-233.003 883.28125,-232.71875 C 880.31007,-232.43577 876.70783,-232.89455 872.34375,-234.65625 C 868.38441,-236.25456 867.0146,-237.45112 863,-238.96875 C 863.00003,-238.96875 863,-238.8125 863,-238.8125 C 866.5959,-237.00115 868.23831,-235.23017 871.8125,-233.65625 C 873.53457,-232.8979 875.39998,-232.3673 877.21875,-232.03125 C 876.68266,-231.75217 875.65217,-231.34362 873.78125,-230.96875 C 870.92586,-230.39665 866.99183,-229.94936 865.375,-229.9375 C 864.53049,-229.93129 863.66892,-230.01844 863,-230.1875 C 862.32409,-230.34901 861.83991,-230.51673 861.71875,-230.5625 C 861.88597,-230.46848 862.14142,-230.17902 861.5,-229.5 C 860.60213,-228.54948 855.31352,-227.58292 852.375,-227.0625 C 849.44966,-226.54441 845.94285,-226.68826 841.65625,-228.09375 C 837.34045,-229.50882 836.18348,-230.62369 831.09375,-232.0625 C 835.6706,-230.31149 837.1823,-228.50244 841.125,-227.0625 C 842.75108,-226.46861 844.49385,-226.10685 846.21875,-225.90625 C 845.7659,-225.60923 844.66397,-225.02286 842.625,-224.4375 C 839.82028,-223.63233 835.98614,-222.86167 834.40625,-222.6875 C 832.9115,-222.5227 831.29002,-223.00431 831,-223.09375 C 831.16356,-223.00368 831.39278,-222.73382 830.78125,-222.03125 C 829.89878,-221.0174 824.73673,-219.6596 821.84375,-218.96875 C 818.96373,-218.28097 815.50815,-218.20873 811.28125,-219.40625 C 807.4464,-220.4927 806.10867,-221.47862 802.21875,-222.53125 C 802.21874,-222.53125 802.21875,-222.375 802.21875,-222.375 C 805.70293,-220.98015 807.28816,-219.4556 810.75,-218.34375 C 812.41793,-217.80803 814.20578,-217.55701 815.96875,-217.46875 C 815.44911,-217.11663 814.46836,-216.55423 812.65625,-215.9375 C 809.89059,-214.99625 806.06601,-214.00213 804.5,-213.78125 C 803.68206,-213.66586 802.8669,-213.65842 802.21875,-213.75 C 801.56379,-213.83321 801.08615,-213.96827 800.96875,-214 C 801.13079,-213.92536 801.40274,-213.65956 800.78125,-212.90625 C 799.91125,-211.85172 794.77162,-210.247 791.90625,-209.46875 C 789.05372,-208.69399 785.64713,-208.51055 781.46875,-209.5625 C 777.26192,-210.62163 776.11206,-211.60416 771.125,-212.71875 C 775.60954,-211.25929 777.09435,-209.58352 780.9375,-208.46875 C 782.52254,-208.00898 784.22429,-207.8305 785.90625,-207.78125 C 785.46468,-207.44449 784.39374,-206.75352 782.40625,-206 C 779.67232,-204.96351 775.95427,-203.83731 774.40625,-203.5625 C 772.94163,-203.30248 771.34667,-203.67904 771.0625,-203.75 C 771.22275,-203.67035 771.44294,-203.42902 770.84375,-202.6875 C 769.97909,-201.61744 764.92723,-199.86935 762.09375,-199 C 759.27295,-198.13453 755.88625,-197.84369 751.75,-198.78125 C 747.99741,-199.63186 746.70215,-200.49772 742.875,-201.375 C 742.875,-201.375 742.875,-201.21875 742.875,-201.21875 C 746.30296,-199.98096 747.86241,-198.58645 751.25,-197.6875 C 752.88216,-197.25436 754.61704,-197.10449 756.34375,-197.125 C 755.83482,-196.74083 754.867,-196.10318 753.09375,-195.375 C 750.38741,-194.26366 746.65742,-193.06719 745.125,-192.75 C 744.3246,-192.58431 743.51269,-192.53138 742.875,-192.59375 C 742.875,-192.59375 742.875,-192.07823 742.875,-191.67146 C 742.875,-191.40639 742.875,-191.1875 742.875,-191.1875 C 743.10145,-191.33218 743.32391,-191.46011 743.59375,-191.5625 C 744.67427,-191.97248 745.76536,-191.77827 749.59375,-193.25 C 753.42218,-194.72174 754.81787,-195.25498 755.5,-195.65625 C 756.1796,-196.05603 757.11165,-196.53562 757.71875,-197.1875 C 759.5456,-197.32525 761.2895,-197.68073 762.65625,-198.1875 C 765.62437,-199.28802 767.53162,-199.99369 769.4375,-200.65625 C 771.34336,-201.31879 771.79159,-202.07112 772.84375,-202.4375 C 773.9353,-202.81761 775.03886,-202.60288 778.90625,-203.96875 C 782.7737,-205.33461 784.18941,-205.79583 784.875,-206.1875 C 785.57609,-206.58802 786.57581,-207.12048 787.1875,-207.78125 C 789.1583,-207.83591 791.00435,-208.16588 792.46875,-208.65625 C 795.47023,-209.66133 797.3949,-210.27796 799.3125,-210.90625 C 800.8511,-211.41035 801.48652,-211.95302 802.21875,-212.34375 C 802.44891,-212.47806 802.69449,-212.59748 802.96875,-212.6875 C 804.06698,-213.04798 805.1502,-212.76887 809.0625,-214 C 812.97483,-215.23113 814.42855,-215.67295 815.125,-216.03125 C 815.81888,-216.38822 816.75515,-216.82386 817.375,-217.4375 C 819.24021,-217.46016 821.01081,-217.70433 822.40625,-218.125 C 825.43668,-219.03854 827.39863,-219.5551 829.34375,-220.09375 C 831.28886,-220.63239 831.76993,-221.35827 832.84375,-221.65625 C 833.95776,-221.9654 835.06369,-221.64886 839.03125,-222.6875 C 842.99886,-223.72613 844.44883,-224.12023 845.15625,-224.4375 C 845.89112,-224.76709 846.97008,-225.19122 847.59375,-225.8125 C 849.59149,-225.6965 851.45118,-225.83259 852.9375,-226.1875 C 856.01561,-226.9225 858.02094,-227.28844 860,-227.6875 C 861.58792,-228.00768 862.24429,-228.47805 863,-228.78125 C 863.23757,-228.88805 863.46695,-228.97401 863.75,-229.03125 C 864.88347,-229.26044 866.05448,-228.82232 870.09375,-229.53125 C 874.13308,-230.24018 875.594,-230.45834 876.3125,-230.71875 C 877.02836,-230.97819 878.01678,-231.28599 878.65625,-231.8125 C 880.58052,-231.57301 882.40413,-231.58797 883.84375,-231.8125 C 886.97008,-232.30012 888.9983,-232.51317 891,-232.78125 C 893.00171,-233.04932 893.48869,-233.72639 894.59375,-233.875 C 895.74014,-234.02918 896.86967,-233.57343 900.9375,-234.09375 C 905.00534,-234.61407 906.49763,-234.78948 907.21875,-235.03125 C 907.95585,-235.27839 909.01684,-235.61748 909.65625,-236.15625 C 911.70632,-235.82072 913.63003,-235.75829 915.15625,-235.9375 C 918.29856,-236.30646 920.33619,-236.49686 922.34375,-236.71875 C 923.95451,-236.89677 924.60842,-237.32695 925.375,-237.5625 C 925.61594,-237.64802 925.86912,-237.7181 926.15625,-237.75 C 927.30603,-237.87772 928.45754,-237.40335 932.53125,-237.875 C 936.60499,-238.34665 938.09034,-238.4856 938.8125,-238.71875 C 939.53196,-238.95102 940.51274,-239.19221 941.15625,-239.6875 C 943.09262,-239.35404 944.92631,-239.28326 946.375,-239.4375 C 949.52102,-239.77245 951.55256,-239.95609 953.5625,-240.15625 C 955.57246,-240.35639 956.04664,-240.98264 957.15625,-241.09375 C 958.30739,-241.20903 959.45268,-240.72869 963.53125,-241.15625 C 967.60986,-241.58381 969.12011,-241.71834 969.84375,-241.9375 C 970.5829,-242.16136 971.63947,-242.45075 972.28125,-242.96875 C 974.33835,-242.57008 976.28312,-242.47535 977.8125,-242.625 C 980.96123,-242.9331 982.98834,-243.09825 985,-243.28125 C 986.61407,-243.42807 987.2631,-243.8418 988.03125,-244.0625 C 988.27267,-244.14336 988.52478,-244.19241 988.8125,-244.21875 C 989.96461,-244.3242 991.10546,-243.826 995.1875,-244.21875 C 999.26958,-244.6115 1000.7764,-244.74959 1001.5,-244.96875 C 1002.2209,-245.18708 1003.1997,-245.41645 1003.8438,-245.90625 C 1005.7818,-245.55626 1007.6126,-245.45187 1009.0625,-245.59375 C 1012.2112,-245.90185 1014.2383,-246.067 1016.25,-246.25 C 1018.2616,-246.43299 1018.7642,-247.08802 1019.875,-247.1875 C 1021.0273,-247.29073 1022.1672,-246.80267 1026.25,-247.1875 C 1030.3329,-247.57232 1031.8387,-247.6885 1032.5625,-247.90625 C 1033.3018,-248.12868 1034.3581,-248.42074 1035,-248.9375 C 1037.0574,-248.53573 1039.0029,-248.43417 1040.5313,-248.59375 C 1043.6779,-248.92227 1045.7084,-249.11645 1047.7188,-249.3125 C 1049.3318,-249.46979 1049.9844,-249.94398 1050.75,-250.1875 C 1050.9907,-250.27554 1051.2132,-250.30887 1051.5,-250.34375 C 1052.6483,-250.48345 1053.8167,-250.00384 1057.875,-250.59375 C 1061.9333,-251.18367 1063.4368,-251.37089 1064.1563,-251.625 C 1064.873,-251.87816 1065.8308,-252.18307 1066.4688,-252.71875 C 1068.3885,-252.50681 1070.1887,-252.56734 1071.625,-252.8125 C 1074.7441,-253.3449 1076.7366,-253.74111 1078.7188,-254.125 C 1080.7009,-254.50887 1081.1931,-255.16465 1082.2813,-255.40625 C 1083.4101,-255.65691 1084.5516,-255.28996 1088.5313,-256.28125 C 1092.5109,-257.27253 1093.9609,-257.70055 1094.6563,-258.0625 C 1095.3786,-258.43851 1096.4182,-258.93308 1097.0313,-259.59375 C 1098.9943,-259.6058 1100.825,-259.8848 1102.25,-260.4375 C 1105.2012,-261.58211 1107.1232,-262.30692 1108.9375,-263.1875 C 1110.3932,-263.89403 1111.2723,-264.87391 1111.4844,-265.17188 C 1111.6966,-265.46984 1111.5962,-265.91718 1111.6223,-265.93863 C 1111.6652,-265.97387 1111.9416,-266.0236 1112.1013,-266.36707 C 1112.9602,-268.21415 1114.4223,-272.01166 1114.5365,-272.69652 C 1114.6502,-273.37868 1114.7003,-274.04426 1114.751,-274.44149 C 1114.7804,-274.67101 1114.6043,-275.30693 1114.6264,-275.36553 C 1114.6573,-275.44759 1114.9309,-275.63081 1114.9863,-275.88024 C 1115.2526,-277.07857 1115.0752,-278.07153 1114.8612,-279.48917 C 1114.6472,-280.90681 1113.8775,-284.11131 1113.2243,-284.96543 C 1112.5654,-285.82715 1112.0014,-285.9766 1111.4764,-285.96609 C 1111.2678,-285.69633 1111.6132,-285.703 1111.639,-285.65348 C 1112.3196,-285.60269 1112.573,-285.28484 1113.0582,-284.75686 C 1113.5434,-284.22888 1114.501,-280.8173 1114.6376,-279.36691 C 1114.7742,-277.91652 1114.8276,-276.50671 1114.5496,-275.89827 C 1114.2715,-275.28982 1113.6054,-275.46963 1113.313,-275.40375 C 1113.844,-275.21786 1114.2038,-275.19053 1114.2654,-274.34607 C 1114.3247,-273.53269 1114.1322,-272.70638 1113.7456,-271.54045 C 1113.3544,-270.36044 1111.9004,-267.19047 1111.4599,-266.94168 C 1111.0076,-266.68617 1110.5075,-266.75969 1110.1719,-266.89063 z"
2421 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6997);enable-background:new"
2422 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc" />
2423 <path
2424 id="path8103"
2425 d="M 988.75,-263.84375 C 990.66161,-263.20935 993.30027,-262.08534 994.875,-261.03125 C 996.44977,-259.97716 997.7711,-259.54873 1000.4063,-257.65625 C 1003.0145,-255.78311 1005.4332,-254.64103 1007.7188,-253.59375 C 1010.1881,-252.46228 1013.4709,-251.43901 1017.25,-249.65625 C 1016.0428,-250.91465 1010.111,-253.0207 1008.2188,-253.84375 C 1006.3266,-254.66679 1004.0908,-255.77424 1001.2813,-257.625 C 998.47169,-259.47575 997.65906,-260.10654 995.28125,-261.34375 C 992.90343,-262.58094 991.20137,-263.29295 988.75,-263.84375 z"
2426 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6953);enable-background:new" />
2427 <path
2428 id="path8105"
2429 d="M 957.5,-260.78125 C 959.41,-260.16315 962.08288,-259.07191 963.65625,-258.03125 C 965.22964,-256.99059 966.55233,-256.54873 969.1875,-254.65625 C 971.79573,-252.7831 974.21442,-251.64104 976.5,-250.59375 C 978.96931,-249.46228 982.25213,-248.439 986.03125,-246.65625 C 984.82397,-247.91465 978.82971,-250.05195 976.9375,-250.875 C 975.04533,-251.69804 972.84084,-252.8055 970.03125,-254.65625 C 967.22167,-256.507 966.4383,-257.09557 964.0625,-258.3125 C 961.68672,-259.52941 959.94929,-260.25135 957.5,-260.78125 z"
2430 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6993);enable-background:new" />
2431 <path
2432 id="path8107"
2433 d="M 926.09375,-257.375 C 928.00147,-256.77755 930.64723,-255.71116 932.21875,-254.6875 C 933.79025,-253.66385 935.08897,-253.24779 937.71875,-251.40625 C 940.32166,-249.58352 942.74762,-248.43405 945.03125,-247.40625 C 947.49845,-246.29584 950.7866,-245.31302 954.5625,-243.5625 C 953.35627,-244.8106 947.3906,-246.88059 945.5,-247.6875 C 943.60942,-248.4944 941.39758,-249.57854 938.59375,-251.375 C 935.7899,-253.17144 934.96671,-253.77751 932.59375,-254.96875 C 930.22078,-256.15999 928.54013,-256.87158 926.09375,-257.375 z"
2434 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6989);enable-background:new" />
2435 <path
2436 id="path8109"
2437 d="M 894.90625,-253.5625 C 896.80838,-253.00895 899.49326,-251.97363 901.0625,-250.96875 C 902.63173,-249.96388 903.93651,-249.56011 906.5625,-247.75 C 909.16162,-245.95836 911.56284,-244.87811 913.84375,-243.875 C 916.30803,-242.79126 919.60359,-241.83471 923.375,-240.125 C 922.1702,-241.36007 916.20084,-243.36978 914.3125,-244.15625 C 912.42418,-244.94272 910.2373,-245.98705 907.4375,-247.75 C 904.63773,-249.51294 903.83831,-250.11836 901.46875,-251.28125 C 899.09918,-252.44413 897.3455,-253.11537 894.90625,-253.5625 z"
2438 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6985);enable-background:new" />
2439 <path
2440 id="path8111"
2441 d="M 863.71875,-248.65625 C 865.59937,-248.22716 868.22302,-247.27587 869.78125,-246.34375 C 871.33948,-245.41164 872.63358,-245.08599 875.25,-243.34375 C 877.83971,-241.61931 880.23067,-240.63573 882.5,-239.71875 C 884.95176,-238.72806 888.23959,-237.84168 892,-236.21875 C 890.79869,-237.42609 884.84751,-239.28484 882.96875,-240 C 881.09,-240.71517 878.88335,-241.68442 876.09375,-243.375 C 873.30412,-245.06557 872.50914,-245.60322 870.15625,-246.65625 C 867.80333,-247.70926 866.13041,-248.36873 863.71875,-248.65625 z"
2442 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6965);enable-background:new" />
2443 <path
2444 id="path8113"
2445 d="M 833.15625,-241.375 C 835.00461,-241.07856 837.6257,-240.39868 839.15625,-239.59375 C 840.68683,-238.78882 841.96999,-238.53802 844.53125,-237.0625 C 847.06629,-235.60204 849.42193,-234.73741 851.65625,-234 C 854.07024,-233.20332 857.31336,-232.53311 861.03125,-231.15625 C 859.84354,-232.28498 853.94353,-233.746 852.09375,-234.3125 C 850.24398,-234.879 848.09033,-235.68642 845.34375,-237.15625 C 842.59718,-238.62608 841.84239,-239.07653 839.53125,-239.9375 C 837.2201,-240.79845 835.52654,-241.25759 833.15625,-241.375 z"
2446 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6981);enable-background:new" />
2447 <path
2448 id="path8115"
2449 d="M 802.90625,-232.3125 C 804.72845,-232.10123 807.27201,-231.51193 808.78125,-230.78125 C 810.2905,-230.05059 811.53693,-229.85127 814.0625,-228.5 C 816.56226,-227.16254 818.89404,-226.45157 821.09375,-225.84375 C 823.47028,-225.18708 826.65839,-224.77087 830.3125,-223.65625 C 829.14515,-224.70121 823.38362,-225.75954 821.5625,-226.21875 C 819.74139,-226.67796 817.61025,-227.34571 814.90625,-228.65625 C 812.20222,-229.96677 811.43519,-230.37615 809.15625,-231.125 C 806.8773,-231.87383 805.243,-232.30431 802.90625,-232.3125 z"
2450 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6977);enable-background:new" />
2451 <path
2452 id="path8117"
2453 d="M 773.1875,-222.1875 C 774.99859,-222.0088 777.50809,-221.52244 779,-220.84375 C 780.49194,-220.16506 781.7534,-220.04553 784.25,-218.78125 C 786.72107,-217.52987 789.04005,-216.88511 791.21875,-216.34375 C 793.57262,-215.75887 796.71009,-215.44623 800.3125,-214.5 C 799.16166,-215.49116 793.45999,-216.2833 791.65625,-216.6875 C 789.85253,-217.0917 787.74072,-217.70866 785.0625,-218.9375 C 782.38432,-220.16634 781.65905,-220.54839 779.40625,-221.21875 C 777.15346,-221.88909 775.50998,-222.22107 773.1875,-222.1875 z"
2454 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6973);enable-background:new" />
2455 <path
2456 id="path8119"
2457 d="M 743.5625,-211.1875 C 745.35531,-211.05839 747.83563,-210.63785 749.3125,-210 C 750.7894,-209.36215 752.0286,-209.25844 754.5,-208.0625 C 756.94618,-206.87878 759.22054,-206.31584 761.375,-205.84375 C 763.70267,-205.33372 766.7946,-205.16311 770.375,-204.28125 C 769.23121,-205.25185 763.62741,-205.8719 761.84375,-206.21875 C 760.06008,-206.56559 757.9609,-207.10631 755.3125,-208.25 C 752.66409,-209.39368 751.91755,-209.76631 749.6875,-210.375 C 747.45742,-210.98368 745.86156,-211.28466 743.5625,-211.1875 z"
2458 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter6969);enable-background:new" />
2459 <g
2460 id="g8121"
2461 style="fill:#ffffff;fill-opacity:1;filter:url(#filter7345)">
2462 <path
2463 sodipodi:nodetypes="czzzczzc"
2464 id="path8123"
2465 d="M 744.9375,-212.11731 C 744.9375,-212.11731 752.15979,-215.34049 754,-215.61731 C 755.84021,-215.89413 757.35225,-215.62054 760,-215.05481 C 762.64775,-214.48908 768.7357,-212.83963 771.1875,-211.67981 C 773.6393,-210.51999 776.5,-208.11731 776.5,-208.11731 C 776.5,-208.11731 769.35356,-210.8975 766.3125,-211.67981 C 763.27144,-212.46212 758.66789,-213.76355 755.9375,-213.99231 C 753.20711,-214.22107 744.9375,-212.11731 744.9375,-212.11731 z"
2466 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
2467 <path
2468 sodipodi:nodetypes="czzzczzc"
2469 id="path8125"
2470 d="M 735.46875,-206.95416 C 735.46875,-206.95416 739.12854,-209.17734 740.96875,-209.45416 C 742.80896,-209.73098 744.6335,-209.20739 747.28125,-208.64166 C 749.929,-208.07593 756.01695,-206.42648 758.46875,-205.26666 C 760.92055,-204.10684 765.03125,-203.14166 765.03125,-203.14166 C 765.03125,-203.14166 756.63481,-204.48435 753.59375,-205.26666 C 750.55269,-206.04897 745.63664,-207.6004 742.90625,-207.82916 C 740.17586,-208.05792 735.46875,-206.95416 735.46875,-206.95416 z"
2471 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2472 <path
2473 sodipodi:nodetypes="czzzczzc"
2474 id="path8127"
2475 d="M 759.85042,-217.61116 C 759.85042,-217.61116 768.39412,-220.90973 770.2482,-221.06902 C 772.10229,-221.22832 773.88986,-220.58982 776.4963,-219.85694 C 779.10274,-219.12406 785.07354,-217.091 787.44666,-215.77769 C 789.81978,-214.46438 793.86083,-213.23987 793.86083,-213.23987 C 793.86083,-213.23987 785.5667,-215.11352 782.58152,-216.08754 C 779.59633,-217.06156 774.78883,-218.92232 772.0785,-219.32416 C 769.36817,-219.726 759.85042,-217.61116 759.85042,-217.61116 z"
2476 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2477 <path
2478 sodipodi:nodetypes="czzzczzc"
2479 id="path8129"
2480 d="M 775.19813,-223.2266 C 775.19813,-223.2266 782.96946,-226.00904 784.82644,-226.13009 C 786.68341,-226.25113 788.45744,-225.57592 791.04822,-224.78947 C 793.63899,-224.00302 799.56662,-221.8473 801.91216,-220.48535 C 804.25771,-219.1234 808.27265,-217.81585 808.27265,-217.81585 C 808.27265,-217.81585 800.01892,-219.86008 797.05444,-220.89543 C 794.08997,-221.93078 789.32185,-223.89024 786.62038,-224.34786 C 783.91891,-224.80549 775.19813,-223.2266 775.19813,-223.2266 z"
2481 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2482 <path
2483 inkscape:transform-center-y="-4.3190906"
2484 inkscape:transform-center-x="13.852145"
2485 sodipodi:nodetypes="czzzczzc"
2486 id="path8131"
2487 d="M 789.64298,-227.95417 C 789.64298,-227.95417 798.32554,-231.47448 800.18452,-231.55952 C 802.04349,-231.64455 803.8041,-230.9351 806.37915,-230.09859 C 808.9542,-229.2621 814.83894,-226.99193 817.15766,-225.58479 C 819.47638,-224.17764 823.46523,-222.79255 823.46523,-222.79255 C 823.46523,-222.79255 815.25266,-224.99632 812.3088,-226.08891 C 809.36494,-227.1815 804.63568,-229.23299 801.94358,-229.74288 C 799.25149,-230.25276 789.64298,-227.95417 789.64298,-227.95417 z"
2488 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2489 <path
2490 inkscape:transform-center-y="-4.3190906"
2491 inkscape:transform-center-x="13.852145"
2492 sodipodi:nodetypes="czzzczzc"
2493 id="path8133"
2494 d="M 804.49513,-233.32948 C 804.49513,-233.32948 812.30269,-235.91229 814.16167,-235.99733 C 816.02064,-236.08236 817.78125,-235.37291 820.3563,-234.5364 C 822.93135,-233.69991 828.81609,-231.42974 831.13481,-230.0226 C 833.45353,-228.61545 837.44238,-227.23036 837.44238,-227.23036 C 837.44238,-227.23036 829.22981,-229.43413 826.28595,-230.52672 C 823.34209,-231.61931 818.61283,-233.6708 815.92073,-234.18069 C 813.22864,-234.69057 804.49513,-233.32948 804.49513,-233.32948 z"
2495 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2496 <path
2497 inkscape:transform-center-y="-4.3190906"
2498 inkscape:transform-center-x="13.852145"
2499 sodipodi:nodetypes="czzzczzc"
2500 id="path8135"
2501 d="M 819.55763,-237.57948 C 819.55763,-237.57948 828.11519,-240.16229 829.97417,-240.24733 C 831.83314,-240.33236 833.59375,-239.62291 836.1688,-238.7864 C 838.74385,-237.94991 844.62859,-235.67974 846.94731,-234.2726 C 849.26603,-232.86545 853.25488,-231.48036 853.25488,-231.48036 C 853.25488,-231.48036 845.04231,-233.68413 842.09845,-234.77672 C 839.15459,-235.86931 834.42533,-237.9208 831.73323,-238.43069 C 829.04114,-238.94057 819.55763,-237.57948 819.55763,-237.57948 z"
2502 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2503 <path
2504 inkscape:transform-center-y="-4.9269042"
2505 inkscape:transform-center-x="13.64141"
2506 sodipodi:nodetypes="czzzczzc"
2507 id="path8137"
2508 d="M 836.23395,-242.60125 C 836.23395,-242.60125 843.20097,-244.58848 845.06179,-244.56882 C 846.9226,-244.54915 848.64052,-243.7418 851.16444,-242.76177 C 853.68837,-241.78177 859.4361,-239.18419 861.672,-237.64886 C 863.9079,-236.11351 867.81253,-234.50625 867.81253,-234.50625 C 867.81253,-234.50625 859.73692,-237.16847 856.85917,-238.42491 C 853.98143,-239.68136 849.37505,-241.99561 846.71589,-242.65612 C 844.05674,-243.31661 836.23395,-242.60125 836.23395,-242.60125 z"
2509 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2510 <path
2511 inkscape:transform-center-y="-5.1542119"
2512 inkscape:transform-center-x="13.55068"
2513 sodipodi:nodetypes="czzzczzc"
2514 id="path8139"
2515 d="M 850.73028,-246.00461 C 850.73028,-246.00461 858.41812,-248.03229 860.2781,-247.97315 C 862.13807,-247.914 863.83848,-247.07036 866.34103,-246.03699 C 868.84358,-245.00365 874.5349,-242.28467 876.73771,-240.70224 C 878.94053,-239.11979 882.81016,-237.43004 882.81016,-237.43004 C 882.81016,-237.43004 874.79287,-240.26302 871.94244,-241.58026 C 869.09201,-242.89749 864.53578,-245.30898 861.89124,-246.02576 C 859.2467,-246.74254 850.73028,-246.00461 850.73028,-246.00461 z"
2516 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2517 <path
2518 inkscape:transform-center-y="-5.4740887"
2519 inkscape:transform-center-x="13.41151"
2520 sodipodi:nodetypes="czzzczzc"
2521 id="path8141"
2522 d="M 864.82496,-249.21081 C 864.82496,-249.21081 872.99448,-251.17987 874.85184,-251.06477 C 876.70919,-250.94965 878.38342,-250.05521 880.85374,-248.94698 C 883.32405,-247.83877 888.93094,-244.94971 891.08512,-243.30167 C 893.2393,-241.65363 897.05632,-239.84815 897.05632,-239.84815 C 897.05632,-239.84815 889.12793,-242.92121 886.31845,-244.32365 C 883.50896,-245.72609 879.02739,-248.27364 876.40562,-249.06971 C 873.78386,-249.86577 864.82496,-249.21081 864.82496,-249.21081 z"
2523 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2524 <path
2525 inkscape:transform-center-y="-5.79376"
2526 inkscape:transform-center-x="13.258805"
2527 sodipodi:nodetypes="czzzczzc"
2528 id="path8143"
2529 d="M 881.38485,-251.60282 C 881.38485,-251.60282 889.47021,-253.51091 891.32322,-253.33946 C 893.17622,-253.16799 894.82252,-252.22313 897.25804,-251.04038 C 899.69357,-249.85767 905.21013,-246.79968 907.31327,-245.08699 C 909.41641,-243.37429 913.17684,-241.45373 913.17684,-241.45373 C 913.17684,-241.45373 905.34544,-244.76613 902.57984,-246.25323 C 899.81423,-247.74035 895.41209,-250.42282 892.8157,-251.29814 C 890.21933,-252.17345 881.38485,-251.60282 881.38485,-251.60282 z"
2530 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2531 <path
2532 inkscape:transform-center-y="-5.7433893"
2533 inkscape:transform-center-x="13.28378"
2534 sodipodi:nodetypes="czzzczzc"
2535 id="path8145"
2536 d="M 896.58415,-254.34724 C 896.58415,-254.34724 904.22581,-255.77494 906.07962,-255.61239 C 907.93342,-255.44983 909.58424,-254.51289 912.02541,-253.34186 C 914.46659,-252.17086 919.99779,-249.1394 922.10913,-247.43684 C 924.22047,-245.73426 927.99009,-243.83179 927.99009,-243.83179 C 927.99009,-243.83179 920.14286,-247.10653 917.37014,-248.58034 C 914.59743,-250.05414 910.18245,-252.71543 907.58189,-253.57827 C 904.98134,-254.44109 896.58415,-254.34724 896.58415,-254.34724 z"
2537 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2538 <path
2539 inkscape:transform-center-y="-5.7433893"
2540 inkscape:transform-center-x="13.28378"
2541 sodipodi:nodetypes="czzzczzc"
2542 id="path8147"
2543 d="M 911.45328,-255.98544 C 911.45328,-255.98544 920.09494,-257.53814 921.94875,-257.37559 C 923.80255,-257.21303 925.45337,-256.27609 927.89454,-255.10506 C 930.33572,-253.93406 935.86692,-250.9026 937.97826,-249.20004 C 940.0896,-247.49746 943.85922,-245.59499 943.85922,-245.59499 C 943.85922,-245.59499 936.01199,-248.86973 933.23927,-250.34354 C 930.46656,-251.81734 926.05158,-254.47863 923.45102,-255.34147 C 920.85047,-256.20429 911.45328,-255.98544 911.45328,-255.98544 z"
2544 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2545 <path
2546 inkscape:transform-center-y="-5.7433893"
2547 inkscape:transform-center-x="13.28378"
2548 sodipodi:nodetypes="czzzczzc"
2549 id="path8149"
2550 d="M 927.70328,-258.29794 C 927.70328,-258.29794 935.34494,-259.16314 937.19875,-259.00059 C 939.05255,-258.83803 940.70337,-257.90109 943.14454,-256.73006 C 945.58572,-255.55906 951.11692,-252.5276 953.22826,-250.82504 C 955.3396,-249.12246 959.10922,-247.21999 959.10922,-247.21999 C 959.10922,-247.21999 951.26199,-250.49473 948.48927,-251.96854 C 945.71656,-253.44234 941.30158,-256.10363 938.70102,-256.96647 C 936.10047,-257.82929 927.70328,-258.29794 927.70328,-258.29794 z"
2551 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2552 <path
2553 inkscape:transform-center-y="-5.7433893"
2554 inkscape:transform-center-x="13.28378"
2555 sodipodi:nodetypes="czzzczzc"
2556 id="path8151"
2557 d="M 942.82828,-259.48544 C 942.82828,-259.48544 951.40744,-260.97564 953.26125,-260.81309 C 955.11505,-260.65053 956.76587,-259.71359 959.20704,-258.54256 C 961.64822,-257.37156 967.17942,-254.3401 969.29076,-252.63754 C 971.4021,-250.93496 975.17172,-249.03249 975.17172,-249.03249 C 975.17172,-249.03249 967.32449,-252.30723 964.55177,-253.78104 C 961.77906,-255.25484 957.36408,-257.91613 954.76352,-258.77897 C 952.16297,-259.64179 942.82828,-259.48544 942.82828,-259.48544 z"
2558 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2559 <path
2560 inkscape:transform-center-y="-5.7433893"
2561 inkscape:transform-center-x="13.28378"
2562 sodipodi:nodetypes="czzzczzc"
2563 id="path8153"
2564 d="M 959.07828,-261.54794 C 959.07828,-261.54794 966.90744,-262.35064 968.76125,-262.18809 C 970.61505,-262.02553 972.26587,-261.08859 974.70704,-259.91756 C 977.14822,-258.74656 982.67942,-255.7151 984.79076,-254.01254 C 986.9021,-252.30996 990.67172,-250.40749 990.67172,-250.40749 C 990.67172,-250.40749 982.82449,-253.68223 980.05177,-255.15604 C 977.27906,-256.62984 972.86408,-259.29113 970.26352,-260.15397 C 967.66297,-261.01679 959.07828,-261.54794 959.07828,-261.54794 z"
2565 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2566 <path
2567 inkscape:transform-center-y="-5.7433893"
2568 inkscape:transform-center-x="13.28378"
2569 sodipodi:nodetypes="czzzczzc"
2570 id="path8155"
2571 d="M 974.45328,-262.79794 C 974.45328,-262.79794 982.84494,-263.97564 984.69875,-263.81309 C 986.55255,-263.65053 988.20337,-262.71359 990.64454,-261.54256 C 993.08572,-260.37156 998.61692,-257.3401 1000.7283,-255.63754 C 1002.8396,-253.93496 1006.6092,-252.03249 1006.6092,-252.03249 C 1006.6092,-252.03249 998.76199,-255.30723 995.98927,-256.78104 C 993.21656,-258.25484 988.80158,-260.91613 986.20102,-261.77897 C 983.60047,-262.64179 974.45328,-262.79794 974.45328,-262.79794 z"
2572 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2573 <path
2574 inkscape:transform-center-y="-5.7433893"
2575 inkscape:transform-center-x="13.28378"
2576 sodipodi:nodetypes="czzzczzc"
2577 id="path8157"
2578 d="M 990.64078,-264.86044 C 990.64078,-264.86044 997.53244,-265.85064 999.38625,-265.68809 C 1001.2401,-265.52553 1002.8909,-264.58859 1005.332,-263.41756 C 1007.7732,-262.24656 1013.3044,-259.2151 1015.4158,-257.51254 C 1017.5271,-255.80996 1021.2967,-253.90749 1021.2967,-253.90749 C 1021.2967,-253.90749 1013.4495,-257.18223 1010.6768,-258.65604 C 1007.9041,-260.12984 1003.4891,-262.79113 1000.8885,-263.65397 C 998.28797,-264.51679 990.64078,-264.86044 990.64078,-264.86044 z"
2579 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2580 <path
2581 inkscape:transform-center-y="-5.7433893"
2582 inkscape:transform-center-x="13.28378"
2583 sodipodi:nodetypes="czzzczzc"
2584 id="path8159"
2585 d="M 1007.7658,-265.79794 C 1007.7658,-265.79794 1014.5949,-266.97564 1016.4488,-266.81309 C 1018.3026,-266.65053 1019.9534,-265.71359 1022.3945,-264.54256 C 1024.8357,-263.37156 1030.3669,-260.3401 1032.4783,-258.63754 C 1034.5896,-256.93496 1038.3592,-255.03249 1038.3592,-255.03249 C 1038.3592,-255.03249 1030.512,-258.30723 1027.7393,-259.78104 C 1024.9666,-261.25484 1020.5516,-263.91613 1017.951,-264.77897 C 1015.3505,-265.64179 1007.7658,-265.79794 1007.7658,-265.79794 z"
2586 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2587 <path
2588 inkscape:transform-center-y="-5.7433893"
2589 inkscape:transform-center-x="13.28378"
2590 sodipodi:nodetypes="czzzczzc"
2591 id="path8161"
2592 d="M 1023.8908,-267.79794 C 1023.8908,-267.79794 1029.9699,-268.22564 1031.8238,-268.06309 C 1033.6776,-267.90053 1035.3284,-266.96359 1037.7695,-265.79256 C 1040.2107,-264.62156 1045.7419,-261.5901 1047.8533,-259.88754 C 1049.9646,-258.18496 1053.7342,-256.28249 1053.7342,-256.28249 C 1053.7342,-256.28249 1045.887,-259.55723 1043.1143,-261.03104 C 1040.3416,-262.50484 1035.9266,-265.16613 1033.326,-266.02897 C 1030.7255,-266.89179 1023.8908,-267.79794 1023.8908,-267.79794 z"
2593 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2594 <path
2595 inkscape:transform-center-y="-5.7433893"
2596 inkscape:transform-center-x="13.28378"
2597 sodipodi:nodetypes="czzzczzc"
2598 id="path8163"
2599 d="M 1039.7033,-269.17294 C 1039.7033,-269.17294 1046.1574,-269.85064 1048.0113,-269.68809 C 1049.8651,-269.52553 1051.5159,-268.58859 1053.957,-267.41756 C 1056.3982,-266.24656 1061.9294,-263.2151 1064.0408,-261.51254 C 1066.1521,-259.80996 1069.9217,-257.90749 1069.9217,-257.90749 C 1069.9217,-257.90749 1062.0745,-261.18223 1059.3018,-262.65604 C 1056.5291,-264.12984 1052.1141,-266.79113 1049.5135,-267.65397 C 1046.913,-268.51679 1039.7033,-269.17294 1039.7033,-269.17294 z"
2600 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2601 <path
2602 inkscape:transform-center-y="-5.1360724"
2603 inkscape:transform-center-x="13.55813"
2604 sodipodi:nodetypes="czzzczzc"
2605 id="path8165"
2606 d="M 1055.2718,-271.03319 C 1055.2718,-271.03319 1060.7694,-271.94264 1062.6296,-271.88667 C 1064.4897,-271.83067 1066.1915,-270.98993 1068.6957,-269.96081 C 1071.2001,-268.93171 1076.896,-266.22241 1079.1015,-264.64372 C 1081.307,-263.06501 1085.1795,-261.38182 1085.1795,-261.38182 C 1085.1795,-261.38182 1077.1575,-264.20121 1074.3047,-265.5136 C 1071.4521,-266.82598 1066.8918,-269.22973 1064.246,-269.94203 C 1061.6003,-270.65431 1055.2718,-271.03319 1055.2718,-271.03319 z"
2607 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2608 <path
2609 inkscape:transform-center-y="-4.6370147"
2610 inkscape:transform-center-x="13.74758"
2611 sodipodi:nodetypes="czzzczzc"
2612 id="path8167"
2613 d="M 1072.7007,-273.48537 C 1072.7007,-273.48537 1077.2479,-274.64118 1079.1087,-274.67158 C 1080.9694,-274.70196 1082.7083,-273.94109 1085.2576,-273.02927 C 1087.807,-272.1175 1093.6225,-269.67541 1095.899,-268.20077 C 1098.1753,-266.72609 1102.1217,-265.22441 1102.1217,-265.22441 C 1102.1217,-265.22441 1093.9775,-267.66852 1091.067,-268.84713 C 1088.1565,-270.02573 1083.4896,-272.21528 1080.8136,-272.80404 C 1078.1377,-273.39279 1072.7007,-273.48537 1072.7007,-273.48537 z"
2614 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2615 <path
2616 inkscape:transform-center-y="-4.4842392"
2617 inkscape:transform-center-x="13.79933"
2618 sodipodi:nodetypes="czzzczzc"
2619 id="path8169"
2620 d="M 1087.1585,-276.5244 C 1087.1585,-276.5244 1093.1185,-278.29795 1094.9787,-278.35464 C 1096.8387,-278.41131 1098.5883,-277.67509 1101.1502,-276.79939 C 1103.7122,-275.92373 1103.6728,-275.94226 1106.4837,-275.30924 C 1109.2806,-274.67938 1113.5604,-273.79611 1113.5604,-273.79611 C 1113.5604,-273.79611 1109.9449,-273.81239 1106.7681,-274.26225 C 1103.6526,-274.70344 1099.3938,-275.9605 1096.7097,-276.51138 C 1094.0258,-277.06226 1087.1585,-276.5244 1087.1585,-276.5244 z"
2621 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new" />
2622 <path
2623 sodipodi:nodetypes="czczc"
2624 id="path8171"
2625 d="M 1099.25,-279.92981 C 1099.4112,-279.66119 1110.4581,-284.53027 1111.4375,-284.61731 C 1112.4169,-284.70435 1113.4375,-281.49231 1113.4375,-281.49231 C 1113.4375,-281.49231 1112.6624,-282.99665 1110.5625,-282.55481 C 1108.4626,-282.11297 1099.2616,-279.8834 1099.25,-279.92981 z"
2626 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
2627 </g>
2628 <path
2629 id="path8173"
2630 d="M 1107.4532,-284.0938 C 1107.0345,-283.88097 1107.2976,-283.99991 1106.806,-283.78799 C 1106.3199,-283.57845 1105.0826,-283.2136 1102.7264,-282.32904 C 1099.3953,-281.07847 1096.8962,-280.1756 1095.7005,-279.26294 C 1094.1644,-279.24168 1091.98,-279.02963 1090.0442,-278.54419 C 1087.0627,-277.79653 1085.189,-277.37018 1083.2942,-276.95044 C 1081.3994,-276.53072 1081.6187,-276.30825 1080.4192,-276.07544 C 1079.1226,-275.82378 1078.6978,-276.08443 1074.9817,-275.29419 C 1071.4918,-274.55205 1066.0869,-273.36312 1064.8255,-272.60669 C 1063.2416,-272.78748 1060.958,-272.92847 1058.9817,-272.63794 C 1055.9413,-272.19099 1054.0655,-271.96518 1052.138,-271.73169 C 1051.4826,-271.65232 1051.0969,-271.53091 1050.7942,-271.45044 C 1050.368,-271.31879 1050.1084,-271.19042 1049.4192,-271.10669 C 1048.1076,-270.94733 1047.657,-271.26352 1043.888,-270.82544 C 1040.3341,-270.41236 1034.8826,-269.55262 1033.638,-268.88794 C 1032.039,-269.18524 1029.7802,-269.42213 1027.7942,-269.23169 C 1024.7354,-268.93838 1022.8222,-268.7477 1020.888,-268.57544 C 1018.9537,-268.40318 1019.1993,-268.15307 1017.9817,-268.04419 C 1016.6655,-267.9265 1016.2219,-268.20782 1012.4505,-267.79419 C 1008.9086,-267.40575 1003.4426,-266.58492 1002.1692,-265.91919 C 1000.5703,-266.21389 998.28202,-266.4262 996.29419,-266.23169 C 993.23595,-265.93245 991.35306,-265.75145 989.41919,-265.57544 C 988.7617,-265.5156 988.37915,-265.39688 988.07544,-265.32544 C 987.64779,-265.20649 987.39193,-265.10737 986.70044,-265.04419 C 985.38448,-264.92394 984.94068,-265.23907 981.16919,-264.82544 C 977.61305,-264.43543 972.16365,-263.58628 970.91919,-262.91919 C 969.32056,-263.21338 967.05935,-263.44291 965.07544,-263.23169 C 962.01984,-262.90637 960.1014,-262.70545 958.16919,-262.51294 C 956.23698,-262.32044 956.47932,-262.07206 955.26294,-261.95044 C 953.94806,-261.81898 953.49996,-262.11498 949.73169,-261.66919 C 946.19282,-261.25054 940.75401,-260.37702 939.48169,-259.70044 C 937.88414,-259.98149 935.62173,-260.12087 933.63794,-259.88794 C 930.58596,-259.52958 928.69286,-259.32008 926.76294,-259.10669 C 926.10674,-259.03414 925.72228,-258.934 925.41919,-258.85669 C 924.99242,-258.72947 924.73428,-258.58949 924.04419,-258.51294 C 922.73086,-258.36726 922.27673,-258.68696 918.51294,-258.20044 C 914.96405,-257.74169 909.53431,-256.78142 908.29419,-256.07544 C 906.70114,-256.31968 904.46038,-256.45679 902.48169,-256.20044 C 899.4341,-255.80563 897.53098,-255.55199 895.60669,-255.29419 C 893.68241,-255.0364 893.88058,-254.80066 892.66919,-254.63794 C 891.35973,-254.46204 890.922,-254.74232 887.16919,-254.16919 C 883.6449,-253.63095 878.24604,-252.47002 876.98169,-251.73169 C 875.39419,-251.93523 873.13619,-251.98642 871.16919,-251.63794 C 868.14302,-251.10182 866.2703,-250.77625 864.35669,-250.45044 C 863.70608,-250.33967 863.34298,-250.1795 863.04419,-250.07544 C 862.62352,-249.91056 862.38074,-249.74414 861.70044,-249.60669 C 860.40579,-249.3451 859.97332,-249.61289 856.26294,-248.79419 C 852.76441,-248.02224 847.41699,-246.41126 846.20044,-245.57544 C 844.63766,-245.65289 842.44286,-245.49016 840.51294,-244.98169 C 837.5405,-244.19856 835.69533,-243.7496 833.82544,-243.23169 C 831.95556,-242.71379 832.15884,-242.46441 830.98169,-242.13794 C 829.70923,-241.78504 829.28466,-242.03085 825.63794,-240.95044 C 822.21324,-239.93581 816.9885,-238.01727 815.76294,-237.10669 C 814.22411,-237.09395 812.04311,-236.83447 810.13794,-236.23169 C 807.20688,-235.30435 805.38763,-234.77327 803.54419,-234.16919 C 802.91743,-233.96381 802.55246,-233.77661 802.26294,-233.63794 C 801.85531,-233.42433 801.6096,-233.22919 800.95044,-233.01294 C 799.69598,-232.6014 799.26433,-232.8239 795.66919,-231.57544 C 792.27934,-230.39827 787.07421,-228.36174 785.88794,-227.41919 C 784.36405,-227.35952 782.23789,-227.02432 780.35669,-226.35669 C 777.4593,-225.3284 775.65761,-224.68121 773.82544,-224.04419 C 771.99327,-223.40718 772.19759,-223.19565 771.04419,-222.79419 C 769.79741,-222.36023 769.38058,-222.59447 765.82544,-221.23169 C 762.48677,-219.95189 757.33829,-217.74914 756.13794,-216.76294 C 754.63076,-216.65525 752.50225,-216.26414 750.63794,-215.54419 C 747.76976,-214.43659 746.01414,-213.76263 744.20044,-213.07544 C 743.58378,-212.84181 743.20403,-212.63341 742.91919,-212.48169 C 742.91919,-212.48169 742.91919,-211.38794 742.91919,-211.38794 C 743.03097,-211.6103 743.30518,-212.20537 743.82544,-212.48169 C 744.52341,-212.85241 748.63907,-214.47506 750.63794,-215.20044 C 752.2948,-215.80169 754.79183,-216.52912 756.60669,-216.51294 C 756.90831,-216.51025 757.19431,-216.46204 757.45044,-216.41919 C 759.29293,-216.11094 764.91919,-214.85669 764.91919,-214.85669 C 764.91918,-214.85669 758.6857,-216.50344 757.88794,-216.70044 C 757.69715,-216.74755 757.35222,-216.76916 756.91919,-216.76294 C 758.06465,-217.63265 761.68019,-219.15645 764.26294,-220.20044 C 767.10116,-221.34771 767.37975,-221.45226 769.32544,-221.85669 C 771.33374,-222.27413 772.48169,-222.35669 772.48169,-222.35669 C 772.48169,-222.35668 772.39933,-222.95783 773.45044,-223.48169 C 774.15554,-223.8331 778.33746,-225.37409 780.35669,-226.04419 C 782.30859,-226.69192 785.41409,-227.40269 787.23169,-227.04419 C 789.09492,-226.67669 794.76294,-225.23169 794.76294,-225.23169 C 794.76295,-225.23169 788.47594,-227.1028 787.66919,-227.32544 C 787.47627,-227.37869 787.13835,-227.41148 786.70044,-227.41919 C 787.85878,-228.25207 791.49488,-229.61451 794.10669,-230.57544 C 796.97685,-231.63145 797.27403,-231.73724 799.23169,-232.10669 C 801.08518,-232.45648 802.09053,-232.53217 802.26294,-232.54419 C 802.37654,-232.76143 802.64039,-233.35421 803.16919,-233.60669 C 803.87863,-233.94543 808.09526,-235.31944 810.13794,-235.91919 C 811.83111,-236.4163 814.37871,-236.95596 816.23169,-236.82544 C 816.53964,-236.80376 816.84518,-236.72818 817.10669,-236.66919 C 818.98787,-236.24487 824.70044,-234.63794 824.70044,-234.63794 C 824.70045,-234.63794 818.3587,-236.70319 817.54419,-236.95044 C 817.3494,-237.00958 816.98631,-237.05438 816.54419,-237.07544 C 817.71368,-237.87299 821.40721,-239.13166 824.04419,-240.01294 C 826.942,-240.98141 827.2772,-241.01626 829.26294,-241.29419 C 831.31259,-241.58108 832.45044,-241.60669 832.45044,-241.60669 C 832.45042,-241.60669 832.37769,-242.21366 833.45044,-242.66919 C 834.17004,-242.97476 838.44142,-244.16994 840.51294,-244.66919 C 842.51538,-245.15177 845.71143,-245.59748 847.57544,-245.07544 C 849.48622,-244.54029 855.29419,-242.57544 855.29419,-242.57544 C 855.29419,-242.57544 848.87153,-244.99895 848.04419,-245.29419 C 847.84635,-245.3648 847.46203,-245.43458 847.01294,-245.48169 C 848.20084,-246.21034 851.92821,-247.25577 854.60669,-247.98169 C 857.55011,-248.77944 857.89877,-248.75252 859.91919,-248.88794 C 861.83208,-249.01617 862.86624,-248.95903 863.04419,-248.95044 C 863.16147,-249.1541 863.43595,-249.72992 863.98169,-249.91919 C 864.71388,-250.17313 869.06021,-250.96708 871.16919,-251.29419 C 872.91732,-251.5653 875.57007,-251.77889 877.48169,-251.38794 C 877.79935,-251.32298 878.08691,-251.20243 878.35669,-251.10669 C 880.29743,-250.41796 886.20044,-248.01294 886.20044,-248.01294 C 886.20045,-248.01294 879.66573,-250.96371 878.82544,-251.32544 C 878.62447,-251.41195 878.25031,-251.49223 877.79419,-251.57544 C 879.00069,-252.20862 882.82375,-252.97104 885.54419,-253.48169 C 888.53372,-254.04288 888.84442,-254.01123 890.88794,-254.01294 C 892.9972,-254.01471 894.20044,-253.88794 894.20044,-253.88794 C 894.20044,-253.88793 894.12773,-254.51913 895.23169,-254.82544 C 895.97221,-255.03091 900.35781,-255.65931 902.48169,-255.88794 C 904.53471,-256.10893 907.80032,-256.14016 909.70044,-255.41919 C 911.64823,-254.68012 917.54419,-252.04419 917.54419,-252.04419 C 917.54421,-252.04419 910.98131,-255.22316 910.13794,-255.60669 C 909.93626,-255.69842 909.59573,-255.7929 909.13794,-255.88794 C 910.34886,-256.48982 914.12236,-257.13678 916.85669,-257.54419 C 919.86149,-257.99191 920.1822,-257.99589 922.23169,-257.95044 C 924.17214,-257.90742 925.23868,-257.75621 925.41919,-257.73169 C 925.53811,-257.92485 925.80309,-258.49752 926.35669,-258.63794 C 927.0994,-258.82632 931.51098,-259.37222 933.63794,-259.57544 C 935.40097,-259.74386 938.05803,-259.80973 939.98169,-259.32544 C 940.30137,-259.24496 940.5852,-259.12185 940.85669,-259.01294 C 942.80962,-258.22945 948.76294,-255.54419 948.76294,-255.54419 C 948.76292,-255.54419 942.17103,-258.79767 941.32544,-259.20044 C 941.12322,-259.29676 940.75318,-259.40747 940.29419,-259.51294 C 941.50833,-260.08721 945.33785,-260.63513 948.07544,-261.01294 C 951.08382,-261.42814 951.39851,-261.45557 953.45044,-261.38794 C 955.56842,-261.31813 956.76294,-261.13794 956.76294,-261.13794 C 956.76292,-261.13794 956.68569,-261.77535 957.79419,-262.04419 C 958.53781,-262.22454 962.94595,-262.70774 965.07544,-262.88794 C 967.13391,-263.06211 970.41868,-263.01226 972.32544,-262.23169 C 974.28003,-261.43153 980.20044,-258.70044 980.20044,-258.70044 C 980.20042,-258.70044 973.64051,-262.0092 972.79419,-262.41919 C 972.59182,-262.51724 972.22233,-262.62229 971.76294,-262.73169 C 972.97811,-263.29559 976.77302,-263.84599 979.51294,-264.20044 C 982.52385,-264.58996 982.83425,-264.59809 984.88794,-264.51294 C 986.83233,-264.43234 987.89457,-264.2597 988.07544,-264.23169 C 988.1946,-264.42255 988.45821,-264.977 989.01294,-265.10669 C 989.7572,-265.28069 994.16287,-265.75716 996.29419,-265.91919 C 998.06081,-266.05346 1000.7439,-266.0449 1002.6692,-265.54419 C 1002.9892,-265.46098 1003.2725,-265.34292 1003.5442,-265.23169 C 1005.4988,-264.43153 1011.4505,-261.66919 1011.4505,-261.66919 C 1011.4504,-261.66919 1004.8593,-265.0092 1004.013,-265.41919 C 1003.8106,-265.51724 1003.4411,-265.6223 1002.9817,-265.73169 C 1004.1968,-266.29559 1008.023,-266.81475 1010.763,-267.16919 C 1013.7739,-267.55872 1014.1155,-267.59809 1016.1692,-267.51294 C 1018.2889,-267.42506 1019.4817,-267.20044 1019.4817,-267.20044 C 1019.4817,-267.20044 1019.4033,-267.84946 1020.513,-268.10669 C 1021.2573,-268.27925 1025.6625,-268.73005 1027.7942,-268.88794 C 1029.8548,-269.04054 1033.1371,-268.98471 1035.0442,-268.20044 C 1036.9992,-267.39649 1042.9192,-264.70044 1042.9192,-264.70044 C 1042.9192,-264.70044 1036.3594,-267.97631 1035.513,-268.38794 C 1035.3105,-268.48638 1034.9412,-268.59016 1034.4817,-268.70044 C 1035.6971,-269.26198 1039.4936,-269.82822 1042.2317,-270.20044 C 1045.2407,-270.60949 1045.5544,-270.61602 1047.6067,-270.54419 C 1049.5498,-270.4762 1050.6139,-270.37934 1050.7942,-270.35669 C 1050.913,-270.55109 1051.1788,-271.0855 1051.7317,-271.23169 C 1052.4735,-271.42781 1056.8628,-272.06047 1058.9817,-272.32544 C 1060.7381,-272.54505 1063.387,-272.65775 1065.2942,-272.29419 C 1065.6111,-272.23378 1065.9,-272.10481 1066.1692,-272.01294 C 1068.1054,-271.35202 1074.013,-269.07544 1074.013,-269.07544 C 1074.0129,-269.07544 1067.4763,-271.88199 1066.638,-272.23169 C 1066.4375,-272.31532 1066.0618,-272.40502 1065.6067,-272.48169 C 1066.8104,-273.13215 1070.6258,-273.85364 1073.3255,-274.48169 C 1076.2922,-275.17189 1076.6144,-275.23676 1078.638,-275.35669 C 1080.7266,-275.48049 1081.9192,-275.38794 1081.9192,-275.38794 C 1081.9192,-275.38793 1081.8322,-276.01999 1082.9192,-276.41919 C 1083.6484,-276.68699 1087.9664,-277.75716 1090.0442,-278.23169 C 1092.0527,-278.69038 1095.2121,-279.26099 1097.0442,-278.85669 C 1098.9223,-278.44223 1110.6224,-275.84106 1110.6224,-275.84106 C 1110.6224,-275.84106 1098.2949,-278.86372 1097.4817,-279.10669 C 1097.2872,-279.16481 1096.9231,-279.21295 1096.4817,-279.23169 C 1097.6493,-280.03538 1099.9959,-280.91899 1102.5911,-281.93481 C 1104.2725,-282.59299 1103.5148,-282.3114 1105.367,-282.93841 C 1107.1206,-283.53207 1107.8524,-283.94912 1107.9974,-284.0514 C 1108.3435,-284.25791 1107.6414,-284.17328 1107.4532,-284.0938 z"
2631 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7333);enable-background:new"
2632 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc" />
2633 <path
2634 id="path8175"
2635 d="M 1082.625,-275.125 C 1084.498,-274.73152 1087.1211,-273.97945 1088.6563,-273.15625 C 1090.1915,-272.33306 1091.4785,-272.10025 1094.0313,-270.65625 C 1096.5579,-269.22699 1098.8271,-268.64929 1101,-268.125 C 1103.3476,-267.55858 1106.4354,-267.40977 1109.8438,-266.9375 C 1108.7549,-267.77725 1103.2364,-268.10995 1101.4375,-268.5 C 1099.6386,-268.89006 1097.5434,-269.51616 1094.8438,-270.8125 C 1092.1441,-272.10884 1091.3494,-272.61146 1089.0313,-273.5 C 1086.7131,-274.38854 1085.0269,-274.88314 1082.625,-275.125 z"
2636 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7285);enable-background:new" />
2637 <path
2638 id="path8177"
2639 d="M 1051.4688,-270 C 1053.3741,-269.42241 1055.9969,-268.38428 1057.5625,-267.40625 C 1059.1281,-266.42823 1060.4427,-266.04644 1063.0625,-264.28125 C 1065.6555,-262.53409 1068.0484,-261.57198 1070.3125,-260.6875 C 1072.7586,-259.73193 1075.9951,-259.03037 1079.7188,-257.625 C 1078.5292,-258.76284 1072.6557,-260.31175 1070.7813,-261 C 1068.9068,-261.68825 1066.6995,-262.5662 1063.9063,-264.28125 C 1061.113,-265.99629 1060.3327,-266.56515 1057.9688,-267.6875 C 1055.6047,-268.80984 1053.9121,-269.52205 1051.4688,-270 z"
2640 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7289);enable-background:new" />
2641 <path
2642 id="path8179"
2643 d="M 1020.2188,-266.84375 C 1022.1307,-266.20564 1024.8,-265.08839 1026.375,-264.03125 C 1027.9501,-262.9741 1029.2706,-262.52258 1031.9063,-260.625 C 1034.5149,-258.74679 1036.9347,-257.59497 1039.2188,-256.5625 C 1041.6865,-255.44705 1044.9833,-254.3892 1048.75,-252.71875 C 1047.5467,-253.94128 1041.5472,-256.03298 1039.6563,-256.84375 C 1037.7653,-257.65452 1035.5914,-258.73754 1032.7813,-260.59375 C 1029.9711,-262.44995 1029.1595,-263.07068 1026.7813,-264.3125 C 1024.403,-265.5543 1022.6706,-266.28819 1020.2188,-266.84375 z"
2644 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7293);enable-background:new" />
2645 <path
2646 id="path8181"
2647 d="M 1110.1719,-266.89063 C 1110.3227,-266.84207 1110.8599,-266.25963 1110.2813,-265.40625 C 1109.4712,-264.21166 1104.5764,-262.08196 1101.7188,-261.28125 C 1098.8739,-260.48413 1095.4287,-260.30351 1091.1563,-261.65625 C 1086.8547,-263.0182 1085.6866,-264.12497 1080.5,-265.96875 C 1085.164,-263.85358 1086.6953,-262.01642 1090.625,-260.625 C 1092.2457,-260.05113 1093.9921,-259.6854 1095.6875,-259.59375 C 1095.2424,-259.26812 1094.1572,-258.61045 1092.125,-258 C 1089.3295,-257.16031 1085.4759,-256.46622 1083.875,-256.375 C 1082.3604,-256.28868 1080.733,-256.88749 1080.4375,-257 C 1080.6042,-256.89692 1080.8107,-256.62266 1080.1875,-255.96875 C 1079.2882,-255.02512 1074.0401,-254.04575 1071.0625,-253.71875 C 1068.0982,-253.3932 1064.5409,-253.73471 1060.1563,-255.625 C 1056.1783,-257.33997 1054.8173,-258.54036 1050.75,-260.375 C 1050.75,-260.375 1050.75,-260.21875 1050.75,-260.21875 C 1054.3931,-258.12346 1056.034,-256.33548 1059.625,-254.65625 C 1061.3552,-253.84716 1063.2167,-253.24749 1065.0313,-252.9375 C 1064.4964,-252.65074 1063.4735,-252.22599 1061.5938,-251.90625 C 1058.7248,-251.41829 1054.7848,-251.09011 1053.1563,-251.15625 C 1052.3056,-251.19079 1051.4277,-251.34062 1050.75,-251.5625 C 1050.0652,-251.77738 1049.5603,-252.00717 1049.4375,-252.0625 C 1049.6069,-251.95529 1049.8686,-251.65962 1049.2188,-251.03125 C 1048.3091,-250.15163 1042.9727,-249.69487 1039.9688,-249.5625 C 1036.9783,-249.43071 1033.3799,-250.01313 1028.9688,-252.125 C 1024.5276,-254.25126 1023.3273,-255.5266 1018.0625,-257.90625 C 1022.7968,-255.30921 1024.349,-253.27715 1028.4063,-251.1875 C 1030.0796,-250.32565 1031.8915,-249.69325 1033.6563,-249.25 C 1033.193,-249.01668 1032.0669,-248.56186 1029.9688,-248.3125 C 1027.0825,-247.96952 1023.1342,-247.81962 1021.5,-247.9375 C 1019.9538,-248.049 1018.2688,-248.79446 1017.9688,-248.9375 C 1018.1379,-248.81721 1018.3826,-248.52702 1017.75,-247.9375 C 1016.8372,-247.08677 1011.5059,-246.67538 1008.5,-246.5625 C 1005.5075,-246.45013 1001.9103,-247.05293 997.5,-249.15625 C 993.49875,-251.06448 992.11197,-252.29408 988.03125,-254.25 C 988.03122,-254.25 988.03125,-254.09375 988.03125,-254.09375 C 991.68631,-251.88983 993.32546,-250.0412 996.9375,-248.1875 C 998.67779,-247.29435 1000.5745,-246.65923 1002.4063,-246.21875 C 1001.8663,-245.97045 1000.8282,-245.60342 998.9375,-245.375 C 996.05182,-245.02642 992.07145,-244.85405 990.4375,-244.96875 C 989.58405,-245.02865 988.71119,-245.22666 988.03125,-245.46875 C 987.34415,-245.70405 986.8419,-245.94101 986.71875,-246 C 986.88873,-245.88773 987.18323,-245.57775 986.53125,-244.96875 C 985.6186,-244.11625 980.25592,-243.67538 977.25,-243.5625 C 974.25754,-243.45013 970.65654,-244.09055 966.25,-246.15625 C 961.81347,-248.23603 960.60312,-249.48796 955.34375,-251.8125 C 960.07313,-249.26501 961.63449,-247.2347 965.6875,-245.1875 C 967.35905,-244.34317 969.17304,-243.72107 970.9375,-243.28125 C 970.47427,-243.04703 969.3478,-242.59718 967.25,-242.34375 C 964.36431,-241.99517 960.4138,-241.77423 958.78125,-241.875 C 957.23669,-241.97032 955.58094,-242.70385 955.28125,-242.84375 C 955.45024,-242.72522 955.66317,-242.4399 955.03125,-241.84375 C 954.11939,-240.98347 948.7846,-240.5135 945.78125,-240.375 C 942.7913,-240.2371 939.2138,-240.82568 934.8125,-242.84375 C 930.81942,-244.67464 929.44739,-245.87295 925.375,-247.75 C 925.37498,-247.75 925.375,-247.59375 925.375,-247.59375 C 929.02261,-245.46048 930.64533,-243.65888 934.25,-241.875 C 935.98675,-241.01549 937.85727,-240.42486 939.6875,-240 C 939.14803,-239.7471 938.13687,-239.35871 936.25,-239.09375 C 933.37022,-238.68939 929.41187,-238.44813 927.78125,-238.53125 C 926.92953,-238.57466 926.05355,-238.7398 925.375,-238.96875 C 924.68931,-239.19076 924.1854,-239.41214 924.0625,-239.46875 C 924.23209,-239.35976 924.4944,-239.0591 923.84375,-238.4375 C 922.93296,-237.56736 917.59354,-237.04598 914.59375,-236.875 C 911.60742,-236.70479 908.01994,-237.19077 903.625,-239.15625 C 899.20011,-241.13513 898.01904,-242.38444 892.78125,-244.53125 C 897.49122,-242.14358 899.05142,-240.14252 903.09375,-238.1875 C 904.7609,-237.38119 906.55418,-236.79092 908.3125,-236.40625 C 907.85087,-236.15755 906.7155,-235.694 904.625,-235.375 C 901.7494,-234.93624 897.8446,-234.6419 896.21875,-234.6875 C 894.68052,-234.73062 892.98595,-235.43272 892.6875,-235.5625 C 892.85583,-235.44968 893.09807,-235.14875 892.46875,-234.53125 C 891.56063,-233.64015 886.2658,-233.003 883.28125,-232.71875 C 880.31007,-232.43577 876.70783,-232.89455 872.34375,-234.65625 C 868.38441,-236.25456 867.0146,-237.45112 863,-238.96875 C 863.00003,-238.96875 863,-238.8125 863,-238.8125 C 866.5959,-237.00115 868.23831,-235.23017 871.8125,-233.65625 C 873.53457,-232.8979 875.39998,-232.3673 877.21875,-232.03125 C 876.68266,-231.75217 875.65217,-231.34362 873.78125,-230.96875 C 870.92586,-230.39665 866.99183,-229.94936 865.375,-229.9375 C 864.53049,-229.93129 863.66892,-230.01844 863,-230.1875 C 862.32409,-230.34901 861.83991,-230.51673 861.71875,-230.5625 C 861.88597,-230.46848 862.14142,-230.17902 861.5,-229.5 C 860.60213,-228.54948 855.31352,-227.58292 852.375,-227.0625 C 849.44966,-226.54441 845.94285,-226.68826 841.65625,-228.09375 C 837.34045,-229.50882 836.18348,-230.62369 831.09375,-232.0625 C 835.6706,-230.31149 837.1823,-228.50244 841.125,-227.0625 C 842.75108,-226.46861 844.49385,-226.10685 846.21875,-225.90625 C 845.7659,-225.60923 844.66397,-225.02286 842.625,-224.4375 C 839.82028,-223.63233 835.98614,-222.86167 834.40625,-222.6875 C 832.9115,-222.5227 831.29002,-223.00431 831,-223.09375 C 831.16356,-223.00368 831.39278,-222.73382 830.78125,-222.03125 C 829.89878,-221.0174 824.73673,-219.6596 821.84375,-218.96875 C 818.96373,-218.28097 815.50815,-218.20873 811.28125,-219.40625 C 807.4464,-220.4927 806.10867,-221.47862 802.21875,-222.53125 C 802.21874,-222.53125 802.21875,-222.375 802.21875,-222.375 C 805.70293,-220.98015 807.28816,-219.4556 810.75,-218.34375 C 812.41793,-217.80803 814.20578,-217.55701 815.96875,-217.46875 C 815.44911,-217.11663 814.46836,-216.55423 812.65625,-215.9375 C 809.89059,-214.99625 806.06601,-214.00213 804.5,-213.78125 C 803.68206,-213.66586 802.8669,-213.65842 802.21875,-213.75 C 801.56379,-213.83321 801.08615,-213.96827 800.96875,-214 C 801.13079,-213.92536 801.40274,-213.65956 800.78125,-212.90625 C 799.91125,-211.85172 794.77162,-210.247 791.90625,-209.46875 C 789.05372,-208.69399 785.64713,-208.51055 781.46875,-209.5625 C 777.26192,-210.62163 776.11206,-211.60416 771.125,-212.71875 C 775.60954,-211.25929 777.09435,-209.58352 780.9375,-208.46875 C 782.52254,-208.00898 784.22429,-207.8305 785.90625,-207.78125 C 785.46468,-207.44449 784.39374,-206.75352 782.40625,-206 C 779.67232,-204.96351 775.95427,-203.83731 774.40625,-203.5625 C 772.94163,-203.30248 771.34667,-203.67904 771.0625,-203.75 C 771.22275,-203.67035 771.44294,-203.42902 770.84375,-202.6875 C 769.97909,-201.61744 764.92723,-199.86935 762.09375,-199 C 759.27295,-198.13453 755.88625,-197.84369 751.75,-198.78125 C 747.99741,-199.63186 746.70215,-200.49772 742.875,-201.375 C 742.875,-201.375 742.875,-201.21875 742.875,-201.21875 C 746.30296,-199.98096 747.86241,-198.58645 751.25,-197.6875 C 752.88216,-197.25436 754.61704,-197.10449 756.34375,-197.125 C 755.83482,-196.74083 754.867,-196.10318 753.09375,-195.375 C 750.38741,-194.26366 746.65742,-193.06719 745.125,-192.75 C 744.3246,-192.58431 743.51269,-192.53138 742.875,-192.59375 C 742.875,-192.59375 742.875,-192.07823 742.875,-191.67146 C 742.875,-191.40639 742.875,-191.1875 742.875,-191.1875 C 743.10145,-191.33218 743.32391,-191.46011 743.59375,-191.5625 C 744.67427,-191.97248 745.76536,-191.77827 749.59375,-193.25 C 753.42218,-194.72174 754.81787,-195.25498 755.5,-195.65625 C 756.1796,-196.05603 757.11165,-196.53562 757.71875,-197.1875 C 759.5456,-197.32525 761.2895,-197.68073 762.65625,-198.1875 C 765.62437,-199.28802 767.53162,-199.99369 769.4375,-200.65625 C 771.34336,-201.31879 771.79159,-202.07112 772.84375,-202.4375 C 773.9353,-202.81761 775.03886,-202.60288 778.90625,-203.96875 C 782.7737,-205.33461 784.18941,-205.79583 784.875,-206.1875 C 785.57609,-206.58802 786.57581,-207.12048 787.1875,-207.78125 C 789.1583,-207.83591 791.00435,-208.16588 792.46875,-208.65625 C 795.47023,-209.66133 797.3949,-210.27796 799.3125,-210.90625 C 800.8511,-211.41035 801.48652,-211.95302 802.21875,-212.34375 C 802.44891,-212.47806 802.69449,-212.59748 802.96875,-212.6875 C 804.06698,-213.04798 805.1502,-212.76887 809.0625,-214 C 812.97483,-215.23113 814.42855,-215.67295 815.125,-216.03125 C 815.81888,-216.38822 816.75515,-216.82386 817.375,-217.4375 C 819.24021,-217.46016 821.01081,-217.70433 822.40625,-218.125 C 825.43668,-219.03854 827.39863,-219.5551 829.34375,-220.09375 C 831.28886,-220.63239 831.76993,-221.35827 832.84375,-221.65625 C 833.95776,-221.9654 835.06369,-221.64886 839.03125,-222.6875 C 842.99886,-223.72613 844.44883,-224.12023 845.15625,-224.4375 C 845.89112,-224.76709 846.97008,-225.19122 847.59375,-225.8125 C 849.59149,-225.6965 851.45118,-225.83259 852.9375,-226.1875 C 856.01561,-226.9225 858.02094,-227.28844 860,-227.6875 C 861.58792,-228.00768 862.24429,-228.47805 863,-228.78125 C 863.23757,-228.88805 863.46695,-228.97401 863.75,-229.03125 C 864.88347,-229.26044 866.05448,-228.82232 870.09375,-229.53125 C 874.13308,-230.24018 875.594,-230.45834 876.3125,-230.71875 C 877.02836,-230.97819 878.01678,-231.28599 878.65625,-231.8125 C 880.58052,-231.57301 882.40413,-231.58797 883.84375,-231.8125 C 886.97008,-232.30012 888.9983,-232.51317 891,-232.78125 C 893.00171,-233.04932 893.48869,-233.72639 894.59375,-233.875 C 895.74014,-234.02918 896.86967,-233.57343 900.9375,-234.09375 C 905.00534,-234.61407 906.49763,-234.78948 907.21875,-235.03125 C 907.95585,-235.27839 909.01684,-235.61748 909.65625,-236.15625 C 911.70632,-235.82072 913.63003,-235.75829 915.15625,-235.9375 C 918.29856,-236.30646 920.33619,-236.49686 922.34375,-236.71875 C 923.95451,-236.89677 924.60842,-237.32695 925.375,-237.5625 C 925.61594,-237.64802 925.86912,-237.7181 926.15625,-237.75 C 927.30603,-237.87772 928.45754,-237.40335 932.53125,-237.875 C 936.60499,-238.34665 938.09034,-238.4856 938.8125,-238.71875 C 939.53196,-238.95102 940.51274,-239.19221 941.15625,-239.6875 C 943.09262,-239.35404 944.92631,-239.28326 946.375,-239.4375 C 949.52102,-239.77245 951.55256,-239.95609 953.5625,-240.15625 C 955.57246,-240.35639 956.04664,-240.98264 957.15625,-241.09375 C 958.30739,-241.20903 959.45268,-240.72869 963.53125,-241.15625 C 967.60986,-241.58381 969.12011,-241.71834 969.84375,-241.9375 C 970.5829,-242.16136 971.63947,-242.45075 972.28125,-242.96875 C 974.33835,-242.57008 976.28312,-242.47535 977.8125,-242.625 C 980.96123,-242.9331 982.98834,-243.09825 985,-243.28125 C 986.61407,-243.42807 987.2631,-243.8418 988.03125,-244.0625 C 988.27267,-244.14336 988.52478,-244.19241 988.8125,-244.21875 C 989.96461,-244.3242 991.10546,-243.826 995.1875,-244.21875 C 999.26958,-244.6115 1000.7764,-244.74959 1001.5,-244.96875 C 1002.2209,-245.18708 1003.1997,-245.41645 1003.8438,-245.90625 C 1005.7818,-245.55626 1007.6126,-245.45187 1009.0625,-245.59375 C 1012.2112,-245.90185 1014.2383,-246.067 1016.25,-246.25 C 1018.2616,-246.43299 1018.7642,-247.08802 1019.875,-247.1875 C 1021.0273,-247.29073 1022.1672,-246.80267 1026.25,-247.1875 C 1030.3329,-247.57232 1031.8387,-247.6885 1032.5625,-247.90625 C 1033.3018,-248.12868 1034.3581,-248.42074 1035,-248.9375 C 1037.0574,-248.53573 1039.0029,-248.43417 1040.5313,-248.59375 C 1043.6779,-248.92227 1045.7084,-249.11645 1047.7188,-249.3125 C 1049.3318,-249.46979 1049.9844,-249.94398 1050.75,-250.1875 C 1050.9907,-250.27554 1051.2132,-250.30887 1051.5,-250.34375 C 1052.6483,-250.48345 1053.8167,-250.00384 1057.875,-250.59375 C 1061.9333,-251.18367 1063.4368,-251.37089 1064.1563,-251.625 C 1064.873,-251.87816 1065.8308,-252.18307 1066.4688,-252.71875 C 1068.3885,-252.50681 1070.1887,-252.56734 1071.625,-252.8125 C 1074.7441,-253.3449 1076.7366,-253.74111 1078.7188,-254.125 C 1080.7009,-254.50887 1081.1931,-255.16465 1082.2813,-255.40625 C 1083.4101,-255.65691 1084.5516,-255.28996 1088.5313,-256.28125 C 1092.5109,-257.27253 1093.9609,-257.70055 1094.6563,-258.0625 C 1095.3786,-258.43851 1096.4182,-258.93308 1097.0313,-259.59375 C 1098.9943,-259.6058 1100.825,-259.8848 1102.25,-260.4375 C 1105.2012,-261.58211 1107.1232,-262.30692 1108.9375,-263.1875 C 1110.3932,-263.89403 1111.2723,-264.87391 1111.4844,-265.17188 C 1111.6966,-265.46984 1111.5962,-265.91718 1111.6223,-265.93863 C 1111.6652,-265.97387 1111.9416,-266.0236 1112.1013,-266.36707 C 1112.9602,-268.21415 1114.4223,-272.01166 1114.5365,-272.69652 C 1114.6502,-273.37868 1114.7003,-274.04426 1114.751,-274.44149 C 1114.7804,-274.67101 1114.6043,-275.30693 1114.6264,-275.36553 C 1114.6573,-275.44759 1114.9309,-275.63081 1114.9863,-275.88024 C 1115.2526,-277.07857 1115.0752,-278.07153 1114.8612,-279.48917 C 1114.6472,-280.90681 1113.8775,-284.11131 1113.2243,-284.96543 C 1112.5654,-285.82715 1112.0014,-285.9766 1111.4764,-285.96609 C 1111.2678,-285.69633 1111.6132,-285.703 1111.639,-285.65348 C 1112.3196,-285.60269 1112.573,-285.28484 1113.0582,-284.75686 C 1113.5434,-284.22888 1114.28,-280.90569 1114.4166,-279.4553 C 1114.5532,-278.00491 1114.6066,-276.5951 1114.3286,-275.98666 C 1114.0505,-275.37821 1113.6054,-275.46963 1113.313,-275.40375 C 1113.844,-275.21786 1113.9828,-275.27892 1114.0444,-274.43446 C 1114.1037,-273.62108 1113.9112,-272.79477 1113.5246,-271.62884 C 1113.1334,-270.44883 1111.6794,-267.27886 1111.2389,-267.03007 C 1110.7866,-266.77456 1110.5075,-266.75969 1110.1719,-266.89063 z"
2648 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7337);enable-background:new"
2649 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc" />
2650 <path
2651 id="path8183"
2652 d="M 988.75,-263.84375 C 990.66161,-263.20935 993.30027,-262.08534 994.875,-261.03125 C 996.44977,-259.97716 997.7711,-259.54873 1000.4063,-257.65625 C 1003.0145,-255.78311 1005.4332,-254.64103 1007.7188,-253.59375 C 1010.1881,-252.46228 1013.4709,-251.43901 1017.25,-249.65625 C 1016.0428,-250.91465 1010.111,-253.0207 1008.2188,-253.84375 C 1006.3266,-254.66679 1004.0908,-255.77424 1001.2813,-257.625 C 998.47169,-259.47575 997.65906,-260.10654 995.28125,-261.34375 C 992.90343,-262.58094 991.20137,-263.29295 988.75,-263.84375 z"
2653 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7297);enable-background:new" />
2654 <path
2655 id="path8185"
2656 d="M 957.5,-260.78125 C 959.41,-260.16315 962.08288,-259.07191 963.65625,-258.03125 C 965.22964,-256.99059 966.55233,-256.54873 969.1875,-254.65625 C 971.79573,-252.7831 974.21442,-251.64104 976.5,-250.59375 C 978.96931,-249.46228 982.25213,-248.439 986.03125,-246.65625 C 984.82397,-247.91465 978.82971,-250.05195 976.9375,-250.875 C 975.04533,-251.69804 972.84084,-252.8055 970.03125,-254.65625 C 967.22167,-256.507 966.4383,-257.09557 964.0625,-258.3125 C 961.68672,-259.52941 959.94929,-260.25135 957.5,-260.78125 z"
2657 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7301);enable-background:new" />
2658 <path
2659 id="path8187"
2660 d="M 926.09375,-257.375 C 928.00147,-256.77755 930.64723,-255.71116 932.21875,-254.6875 C 933.79025,-253.66385 935.08897,-253.24779 937.71875,-251.40625 C 940.32166,-249.58352 942.74762,-248.43405 945.03125,-247.40625 C 947.49845,-246.29584 950.7866,-245.31302 954.5625,-243.5625 C 953.35627,-244.8106 947.3906,-246.88059 945.5,-247.6875 C 943.60942,-248.4944 941.39758,-249.57854 938.59375,-251.375 C 935.7899,-253.17144 934.96671,-253.77751 932.59375,-254.96875 C 930.22078,-256.15999 928.54013,-256.87158 926.09375,-257.375 z"
2661 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7305);enable-background:new" />
2662 <path
2663 id="path8189"
2664 d="M 894.90625,-253.5625 C 896.80838,-253.00895 899.49326,-251.97363 901.0625,-250.96875 C 902.63173,-249.96388 903.93651,-249.56011 906.5625,-247.75 C 909.16162,-245.95836 911.56284,-244.87811 913.84375,-243.875 C 916.30803,-242.79126 919.60359,-241.83471 923.375,-240.125 C 922.1702,-241.36007 916.20084,-243.36978 914.3125,-244.15625 C 912.42418,-244.94272 910.2373,-245.98705 907.4375,-247.75 C 904.63773,-249.51294 903.83831,-250.11836 901.46875,-251.28125 C 899.09918,-252.44413 897.3455,-253.11537 894.90625,-253.5625 z"
2665 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7309);enable-background:new" />
2666 <path
2667 id="path8191"
2668 d="M 863.71875,-248.65625 C 865.59937,-248.22716 868.22302,-247.27587 869.78125,-246.34375 C 871.33948,-245.41164 872.63358,-245.08599 875.25,-243.34375 C 877.83971,-241.61931 880.23067,-240.63573 882.5,-239.71875 C 884.95176,-238.72806 888.23959,-237.84168 892,-236.21875 C 890.79869,-237.42609 884.84751,-239.28484 882.96875,-240 C 881.09,-240.71517 878.88335,-241.68442 876.09375,-243.375 C 873.30412,-245.06557 872.50914,-245.60322 870.15625,-246.65625 C 867.80333,-247.70926 866.13041,-248.36873 863.71875,-248.65625 z"
2669 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7313);enable-background:new" />
2670 <path
2671 id="path8193"
2672 d="M 833.15625,-241.375 C 835.00461,-241.07856 837.6257,-240.39868 839.15625,-239.59375 C 840.68683,-238.78882 841.96999,-238.53802 844.53125,-237.0625 C 847.06629,-235.60204 849.42193,-234.73741 851.65625,-234 C 854.07024,-233.20332 857.31336,-232.53311 861.03125,-231.15625 C 859.84354,-232.28498 853.94353,-233.746 852.09375,-234.3125 C 850.24398,-234.879 848.09033,-235.68642 845.34375,-237.15625 C 842.59718,-238.62608 841.84239,-239.07653 839.53125,-239.9375 C 837.2201,-240.79845 835.52654,-241.25759 833.15625,-241.375 z"
2673 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7317);enable-background:new" />
2674 <path
2675 id="path8195"
2676 d="M 802.90625,-232.3125 C 804.72845,-232.10123 807.27201,-231.51193 808.78125,-230.78125 C 810.2905,-230.05059 811.53693,-229.85127 814.0625,-228.5 C 816.56226,-227.16254 818.89404,-226.45157 821.09375,-225.84375 C 823.47028,-225.18708 826.65839,-224.77087 830.3125,-223.65625 C 829.14515,-224.70121 823.38362,-225.75954 821.5625,-226.21875 C 819.74139,-226.67796 817.61025,-227.34571 814.90625,-228.65625 C 812.20222,-229.96677 811.43519,-230.37615 809.15625,-231.125 C 806.8773,-231.87383 805.243,-232.30431 802.90625,-232.3125 z"
2677 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7321);enable-background:new" />
2678 <path
2679 id="path8197"
2680 d="M 773.1875,-222.1875 C 774.99859,-222.0088 777.50809,-221.52244 779,-220.84375 C 780.49194,-220.16506 781.7534,-220.04553 784.25,-218.78125 C 786.72107,-217.52987 789.04005,-216.88511 791.21875,-216.34375 C 793.57262,-215.75887 796.71009,-215.44623 800.3125,-214.5 C 799.16166,-215.49116 793.45999,-216.2833 791.65625,-216.6875 C 789.85253,-217.0917 787.74072,-217.70866 785.0625,-218.9375 C 782.38432,-220.16634 781.65905,-220.54839 779.40625,-221.21875 C 777.15346,-221.88909 775.50998,-222.22107 773.1875,-222.1875 z"
2681 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7329);enable-background:new" />
2682 <path
2683 id="path8199"
2684 d="M 743.5625,-211.1875 C 745.35531,-211.05839 747.83563,-210.63785 749.3125,-210 C 750.7894,-209.36215 752.0286,-209.25844 754.5,-208.0625 C 756.94618,-206.87878 759.22054,-206.31584 761.375,-205.84375 C 763.70267,-205.33372 766.7946,-205.16311 770.375,-204.28125 C 769.23121,-205.25185 763.62741,-205.8719 761.84375,-206.21875 C 760.06008,-206.56559 757.9609,-207.10631 755.3125,-208.25 C 752.66409,-209.39368 751.91755,-209.76631 749.6875,-210.375 C 747.45742,-210.98368 745.86156,-211.28466 743.5625,-211.1875 z"
2685 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter7325);enable-background:new" />
2686 </g>
2687 </g>
2688 <path
2689 style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2690 d="M 863.87812,475.6679 C 865.52024,472.4499 867.39593,469.93261 868.73948,465.81892 C 869.5382,462.16103 872.05152,463.78819 875.99995,457.42202 C 877.40188,455.18252 881.47648,457.81338 884.96505,455.02291 C 886.23577,454.21972 887.84993,454.6186 889.44761,454.95978 C 893.213,456.27874 895.27337,458.66333 897.78137,460.76815 C 903.92043,466.73838 918.31551,468.71142 921.26741,467.08161 C 922.70146,464.17687 929.14869,461.67273 933.64178,455.96993 C 934.38989,454.84726 945.37114,447.22547 948.28899,449.40394"
2691 id="path8201"
2692 sodipodi:nodetypes="ccccccccc" />
2693 <path
2694 style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2695 d="M 888.50059,465.25071 C 895.864,462.01774 902.31149,456.34231 909.20872,451.86619 C 912.51929,449.89665 916.07855,455.0822 920.00472,455.46485 C 922.30245,455.24672 923.71762,456.66744 925.68683,457.10635 C 930.84319,458.42414 928.08476,460.97123 935.66209,463.54607 C 941.8177,465.26647 944.56949,456.7476 950.56184,456.22247 C 955.43923,455.71948 958.66076,455.90644 962.17859,455.96993 C 966.10555,456.10882 966.25714,452.47233 968.23951,450.66663 C 971.22007,447.86141 975.39512,448.81691 978.38436,445.92573 C 979.4019,444.54105 980.33894,442.91488 981.11895,440.81764 C 982.00096,438.8173 984.15901,441.12362 985.91718,442.08033"
2696 id="path8203"
2697 sodipodi:nodetypes="ccccccccccc" />
2698 </g>
2699 <g
2700 inkscape:groupmode="layer"
2701 id="layer15"
2702 inkscape:label="Feet"
2703 style="display:inline">
2704 <path
2705 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9048);enable-background:accumulate"
2706 d="M 403.27922,1056.3058 L 459.84776,1013.8794 L 531.97265,1028.0215 L 485.30361,1080.3474 L 431.56349,1087.4185 L 403.27922,1056.3058 z"
2707 id="path8994" />
2708 <path
2709 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2710 d="M 542.27183,1060.5719 C 540.86456,1079.3731 541.12693,1093.3229 544.35357,1109.8752 C 547.58023,1126.4275 560.75966,1155.7825 564.68798,1173.0589 C 568.61419,1190.326 567.38211,1211.3686 552.22854,1224.2072 C 536.91093,1237.1846 510.17726,1245.8061 484.39623,1239.9409 C 458.61518,1234.0757 414.84716,1190.7175 395.80604,1169.7126 C 376.6939,1148.6293 332.04518,1075.862 317.86751,1045.4368 C 303.68984,1015.0117 305.2079,1008.7182 309.74779,999.90708 C 300.38107,975.38658 297.33408,949.84027 276.03534,924.33044 C 306.36081,927.44488 319.91562,951.28677 336.16102,971.47019 C 330.63113,923.39416 318.10631,907.05369 307.78707,880.74589 C 337.78137,886.82754 358.36643,912.61828 371.76686,953.45839 C 381.32101,949.54048 390.00462,944.08545 401.95427,944.39719 C 390.65677,902.70139 384.00481,874.48135 365.26702,843.32725 C 418.70898,848.99758 448.92404,923.96657 444.23844,931.28805 C 454.21641,929.04406 463.24409,924.75767 474.67497,925.63638 C 463.426,887.28936 453.62716,848.76848 471.01526,806.98819 C 471.01526,806.98819 519.30204,872.42507 525.40492,892.79397 C 531.50779,913.16287 526.92373,931.49448 526.92373,931.49448 C 526.92373,931.49448 543.8833,962.57978 547.21765,982.58862 C 550.59075,1002.83 543.68496,1041.6919 542.27183,1060.5719 z"
2711 id="path4189"
2712 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
2713 <path
2714 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3587);enable-background:accumulate"
2715 d="M 719.5,738.69519 L 737.81177,754.12715 L 782.2228,738.73894 L 805.5,713.19519 L 816.96397,732.41584 L 847.63558,745.19938 L 872.73295,750.92775 L 892,723.19519 L 908.02309,747.02126 L 947,752.19519 L 957.24541,745.99667 L 964.00012,754.69487 L 989.5,765.69519 L 991.5,725.19519 L 955.94866,710.6576 L 923.45591,689.1305 L 883.0038,677.66492 L 861.69668,662.13148 L 840,685.19519 L 755.02878,638.61208 L 722,676.69519 L 719.5,738.69519 z"
2716 id="path4191"
2717 sodipodi:nodetypes="cccccccccccccccccccccc"
2718 clip-path="url(#clipPath3631)"
2719 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
2720 <path
2721 style="opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3898);enable-background:new"
2722 d="M 584,696.5 L 577.4375,713.65625 C 577.4375,713.65625 569.62598,734.02113 561.75,757.3125 C 557.81201,768.95818 553.86698,781.35395 550.8125,792.4375 C 547.75802,803.52105 545.47664,812.81736 545.3125,820.71875 C 544.91443,839.88071 551.05903,855.60705 554.25,862.46875 C 553.47847,866.02398 552.25863,871.92307 550.90625,880.5625 C 548.98583,892.83071 547.18798,907.71691 548.53125,920.4375 C 549.91334,933.52585 555.34347,948.62515 561.125,963.46875 C 566.90653,978.31235 573.17935,992.69586 576.34375,1001.5 C 582.97581,1019.9519 586.33671,1033.0763 587.65625,1050 C 588.2376,1057.4561 587.41398,1070.336 586.40625,1083.375 C 585.39852,1096.414 584.21964,1109.6764 584.71875,1120.3438 C 585.70786,1141.4836 594.04673,1167.1785 618.09375,1178.2812 C 640.86858,1188.7966 673.42057,1189.9834 701.53125,1174.8438 C 717.69117,1166.1404 731.60759,1147.7462 744.90625,1127.9375 C 758.20491,1108.1288 769.87542,1086.8841 776.84375,1073.0312 C 792.19667,1042.51 816.23728,957.56702 822.46875,920.3125 C 825.48734,902.26597 826.39041,891.24695 825.09375,882.28125 C 824.11522,875.51521 821.26556,870.13385 818.21875,866.0625 C 820.26149,838.55459 817.48668,814.69372 830.1875,786.65625 L 840.75,763.375 L 816.9375,772.6875 C 799.44775,779.52503 788.03586,791.73286 780.34375,804.75 C 780.02124,805.29577 779.78061,805.85776 779.46875,806.40625 C 779.69078,783.89104 783.87659,768.76866 786.0625,747.71875 L 788.03125,728.71875 L 771,737.375 C 740.40551,752.93071 725.30511,785.56821 721.28125,827.59375 C 717.03593,826.96828 712.44985,826.5741 707.46875,826.75 C 707.17726,787.56964 707.07246,759.71315 716.0625,727.375 L 721.65625,707.25 L 702.21875,714.90625 C 671.30938,727.11019 654.35921,756.83698 645.59375,783.28125 C 641.21102,796.50339 638.84793,809.08246 638,819.21875 C 637.76797,821.99248 637.68894,824.53007 637.6875,826.9375 C 634.44563,826.90109 631.26698,827.07339 627.625,827.4375 C 627.66662,788.43277 624.14076,747.68335 595.34375,710.9375 L 584,696.5 z M 589.8125,740.3125 C 606.61941,770.95633 607.28701,804.27978 606.75,840.0625 L 606.53125,855.125 L 618.56618,848.58579 C 627.22823,845.45277 638.12676,848.35827 650.5,847.75 L 665.17465,857.1066 L 658.84375,831.3125 C 658.7541,831.08253 658.62329,830.89581 658.59375,830.59375 C 658.39424,828.55389 658.37143,825.12068 658.71875,820.96875 C 659.41339,812.66489 661.50832,801.38351 665.34375,789.8125 C 670.49907,774.25956 678.83176,758.62002 690.46875,747.28125 C 685.78494,775.91923 687.25316,807.54059 687.45711,843.08639 L 684.69118,856.34803 L 700.1875,848.75 C 709.2169,845.99229 717.37647,848.40004 729.46875,849.84375 L 742.71507,859.28798 L 741.09375,840 C 742.54168,809.02823 749.31524,786.32192 761.8125,771.125 C 758.82562,790.90384 756.38207,812.9098 762.125,849.46875 L 763.19052,855.84193 L 760.25237,867.35878 L 770.86948,859.1906 L 780.05921,869.41258 L 778.51093,858.94898 L 781.9375,852 C 787.63852,838.78851 792.11032,825.78663 798.28125,815.34375 C 799.24111,813.71941 800.31278,812.27939 801.34375,810.78125 C 797.66309,831.9366 798.91659,850.9894 797.25,868.5625 L 792.56986,876.36948 L 799.96875,876.59375 C 803.1888,880.07736 803.83625,880.44443 804.53125,885.25 C 805.22625,890.05557 804.84987,899.65035 801.96875,916.875 C 796.40076,950.16292 770.12313,994.71481 758.22835,1018.3614 C 751.62344,1031.4918 739.70002,1075.8473 727.105,1094.6079 C 714.50998,1113.3684 698.57363,1134.3752 689.93296,1139.0288 C 668.44244,1150.603 645.37702,1164.5347 629.31407,1157.1183 C 614.93921,1150.4813 606.27438,1135.9256 605.5,1119.375 C 605.11689,1111.187 606.11279,1098.0658 607.125,1084.9688 C 608.13721,1071.8717 618.41391,1062.398 622.54839,1048.4062 C 627.92068,1030.2254 621.10152,1011.8118 610.04839,994.46875 C 603.56184,984.29097 586.07159,970.21085 580.5,955.90625 C 574.92841,941.60165 570.13249,926.9031 569.21875,918.25 C 568.29254,909.47887 569.64125,895.22498 571.4375,883.75 C 573.23375,872.27503 575.28125,863.46875 575.28125,863.46875 L 584.70403,859.85355 L 574.21875,855.96875 C 574.21875,855.96875 565.71986,840.65865 566.125,821.15625 C 566.19611,817.73309 567.96126,808.4282 570.84375,797.96875 C 573.72624,787.5093 577.60841,775.41604 581.46875,764 C 584.51314,754.99692 587.24938,747.39655 589.8125,740.3125 z"
2723 id="path4193"
2724 clip-path="url(#clipPath3677)"
2725 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc"
2726 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)" />
2727 <g
2728 id="g3617"
2729 clip-path="url(#clipPath3622)"
2730 transform="translate(276,136)">
2731 <path
2732 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-52.200498,74.09707)"
2733 id="path4195"
2734 d="M -15.66751,843.48852 L -65.16499,827.93217 L -92.03504,880.25807 L -51.02285,925.51291 L -1.52538,887.32914 L -15.66751,843.48852 z"
2735 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9024);enable-background:accumulate" />
2736 <path
2737 sodipodi:nodetypes="ccccccccccccc"
2738 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-46.92842,75.511284)"
2739 id="path4197"
2740 d="M 118.70648,859.93048 L 63.552152,813.26144 L 19.711532,850.03099 L 53.652662,903.7711 L 40.055848,989.23313 L 0.61048221,1017.5253 L -40.401718,1028.839 L -43.230138,1075.508 L 13.338402,1100.9639 L 32.282389,1031.3139 L 55.738939,972.45727 L 102.08648,899.84236 L 118.70648,859.93048 z"
2741 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9020);enable-background:accumulate" />
2742 </g>
2743 <path
2744 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9044);enable-background:accumulate"
2745 d="M -70.82184,932.58397 L -10.01066,905.71392 L 90.3985,936.82662 L 26.75889,967.93931 L -55.26549,950.96875 L -70.82184,932.58397 z"
2746 id="path4199"
2747 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,229.07158,211.51128)" />
2748 <path
2749 style="opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter4105);enable-background:new"
2750 d="M 583.0625,715.75 C 570.95641,750.19974 556.348,784.28333 551.3125,820.59375 C 550.48042,835.52242 555.90165,849.75318 560.15625,863.65625 C 554.24001,890.85751 550.01944,920.5562 561.3125,946.78125 C 574.82967,984.9421 596.31397,1022.4634 593.73529,1064.2495 C 592.78699,1093.5437 584.72085,1125.2436 599.125,1152.5312 C 609.32364,1171.866 632.26456,1179.8429 653.09285,1180.1988 C 680.95504,1181.3729 709.55546,1168.5772 725.09375,1144.9375 C 747.68924,1115.5658 766.89426,1083.4402 780.3324,1048.8777 C 797.22293,1003.3717 810.0042,956.31698 818.26642,908.4788 C 820.09082,895.53774 821.3675,881.00895 813.6875,869.65625 C 810.25635,862.31993 813.72957,854.09611 813.00293,846.34648 C 813.67693,821.35182 817.01525,795.68272 829.65625,773.75 C 811.92312,780.1946 794.58357,790.30971 785.65318,807.61425 C 781.7181,814.3238 778.04836,821.18838 774.28125,828 C 770.73126,797.98592 778.00088,768.35172 781.0625,738.71875 C 760.89646,747.77338 744.18578,764.37397 736.88755,785.40075 C 730.58292,800.98078 728.08533,817.71793 726.625,834.4375 C 718.37166,832.91825 709.94053,832.33595 701.5625,832.9375 C 700.59942,794.23963 701.09554,753.53035 712.53125,717.03125 C 693.85012,723.24901 677.36504,735.76676 666.90322,752.41848 C 653.05068,773.29827 645.64182,798.17243 643.84375,823.03125 C 644.42909,827.35579 643.78249,834.87134 637.5,832.90625 C 632.16882,832.9238 626.87092,833.58508 621.5625,834 C 622.71034,794.61852 618.22106,752.3718 594.5,719.78125 C 591.43929,716.14408 588.86315,712.09687 585.875,708.4375 C 584.9375,710.875 584,713.3125 583.0625,715.75 z M 590.8125,729.59375 C 609.37777,758.89004 613.295,794.41387 612.9375,828.46875 C 613.14159,833.64401 612.42094,840.29795 613.0625,844.53125 C 625.38106,838.4285 639.80162,842.09135 652.84375,842.34375 C 655.16087,843.567 656.03585,843.99618 654.75,840.9375 C 650.58545,826.98465 652.90172,812.3245 656.55504,798.52986 C 662.92191,772.23922 677.18332,747.44188 699.375,731.5 C 690.75791,768.73706 693.65842,808.06161 693.28125,845.46875 C 705.53469,838.55885 720.56004,842.02262 733.3125,845.21875 C 736.70472,848.75355 735.60185,844.48927 735.5,841.40625 C 735.01691,820.03567 739.63133,798.33662 749.1875,779.25 C 755.15016,768.56273 763.43088,759.44621 771.625,750.375 C 763.75344,784.2131 762.4221,819.71093 768.90625,853.875 C 770.6311,852.46382 773.51306,853.42086 774.5625,853.5 C 784.24619,832.26318 790.91362,808.11938 809.45266,792.75815 C 811.32595,792.38693 808.00448,801.2831 807.96875,804.65625 C 804.43387,826.50206 800.79359,848.79859 799.18454,870.87536 C 790.40075,873.21707 802.03289,873.1989 802.65329,874.93786 C 810.5764,885.50366 807.31628,899.34258 806.28494,911.2912 C 799.22089,956.32475 784.14263,998.65314 770.33139,1041.971 C 758.25663,1074.9203 742.95719,1100.8235 722.44331,1129.1725 C 711.49074,1142.7239 699.19859,1157.0238 681.59956,1161.6725 C 661.44355,1167.9138 637.3928,1172.5494 619,1161.7188 C 601.71034,1149.3774 597.97607,1126.0099 599.73774,1106.0324 C 599.78653,1090.2062 604.6766,1077.5203 604.14834,1062.5406 C 603.6101,1047.2777 601.85699,1031.9759 597.60573,1015.6743 C 593.35447,999.37268 588.56248,990.75636 581.48667,974.10092 C 574.24556,957.05636 566.41652,937.35229 563.28125,917.8125 C 561.53177,899.18536 566.17296,880.68988 569.0625,862.5625 C 572.35873,859.72554 567.46451,857.36591 566.75,854.375 C 559.14887,837.35992 558.34253,817.6001 564.00766,799.81502 C 571.13786,774.74272 579.76853,750.18261 588.6875,725.6875 C 589.39583,726.98958 590.10417,728.29167 590.8125,729.59375 z"
2751 id="path4201"
2752 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
2753 clip-path="url(#clipPath4177)"
2754 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)" />
2755 <path
2756 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4130);enable-background:accumulate"
2757 d="M 735.05635,733.03834 L 737.81177,754.12715 L 782.2228,738.73894 L 787.07343,716.34919 L 783.13726,694.29697 L 760.68563,657.70396 L 752.40559,688.0089 L 735.05635,733.03834 z"
2758 id="path4203"
2759 sodipodi:nodetypes="cccccccc"
2760 clip-path="url(#clipPath3631)"
2761 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
2762 <path
2763 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4141);enable-background:accumulate"
2764 d="M 831.81321,730.29452 L 847.63558,745.19938 L 868.49031,748.09932 L 866.90002,708.17334 L 875.22563,677.66492 L 868.06064,671.32386 L 846.36395,692.26626 L 831.81321,730.29452 z"
2765 id="path4205"
2766 sodipodi:nodetypes="cccccccc"
2767 clip-path="url(#clipPath3631)"
2768 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
2769 <g
2770 id="g8317"
2771 style="filter:url(#filter8333)"
2772 clip-path="url(#clipPath8338)"
2773 transform="translate(276,136)">
2774 <path
2775 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
2776 clip-path="none"
2777 sodipodi:nodetypes="ccccc"
2778 id="path4209"
2779 d="M 964.00012,754.69487 L 982.42893,762.15966 L 991.5,725.19519 L 976.62969,730.03405 L 964.00012,754.69487 z"
2780 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2781 <rect
2782 y="757.19519"
2783 x="-55"
2784 height="177"
2785 width="182"
2786 id="rect8315"
2787 style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2788 </g>
2789 <g
2790 id="g8346"
2791 style="filter:url(#filter8354)"
2792 clip-path="url(#clipPath8359)"
2793 transform="translate(276,136)">
2794 <path
2795 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
2796 clip-path="none"
2797 sodipodi:nodetypes="ccccccc"
2798 id="path4207"
2799 d="M 910.14441,746.31415 L 942.75736,751.48808 L 942.39617,727.61189 L 949.5847,697.92968 L 941.13358,692.66603 L 919.31164,719.1768 L 910.14441,746.31415 z"
2800 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2801 <rect
2802 y="696.19519"
2803 x="-22"
2804 height="176"
2805 width="165"
2806 id="rect8344"
2807 style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2808 </g>
2809 </g>
2810 <g
2811 inkscape:groupmode="layer"
2812 id="layer16"
2813 inkscape:label="Left Foot"
2814 style="display:inline">
2815 <path
2816 style="opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;enable-background:new"
2817 d="M 1036.164,1071.8338 C 1042.9581,1090.7366 1046.6577,1105.1335 1048.0543,1123.0457 C 1049.4509,1140.958 1044.2716,1174.8465 1045.1538,1193.7018 C 1046.0356,1212.547 1053.2875,1233.8008 1072.4984,1242.6707 C 1091.9173,1251.6365 1121.8177,1252.882 1146.6183,1239.5251 C 1171.4189,1226.1681 1204.0193,1169.1996 1217.5925,1142.2164 C 1231.2164,1115.1325 1256.3536,1027.719 1262.2533,992.44781 C 1268.1531,957.1766 1264.8039,951.14704 1257.6359,943.39232 C 1260.2762,915.55217 1256.1361,888.45689 1270.7455,856.20614 C 1240.4965,868.03184 1233.3632,896.36684 1222.4266,921.71122 C 1214.4257,870.77829 1222.6358,850.43803 1225.7455,820.49186 C 1196.6808,835.26977 1182.884,867.60588 1180.7455,913.349 C 1169.8216,912.0448 1159.3541,908.91477 1147.1741,912.63471 C 1146.9101,866.61137 1145.7106,835.7453 1156.0847,798.42822 C 1102.8293,819.45508 1093.1375,905.02232 1100.0312,911.20614 C 1089.1484,911.74114 1078.6602,909.90884 1067.1741,914.06329 C 1067.813,871.49194 1066.9136,829.15468 1037.1741,791.20614 C 1037.1741,791.20614 1006.2161,872.12848 1005.7455,894.77757 C 1005.275,917.42666 1015.1971,934.94345 1015.1971,934.94345 C 1015.1971,934.94345 1006.6291,971.68396 1008.8985,993.17568 C 1011.1944,1014.9171 1029.3414,1052.8519 1036.164,1071.8338 z"
2818 id="path8848"
2819 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
2820 <path
2821 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter3587);enable-background:accumulate"
2822 d="M 719.5,738.69519 L 737.81177,754.12715 L 782.2228,738.73894 L 805.5,713.19519 L 816.96397,732.41584 L 847.63558,745.19938 L 872.73295,750.92775 L 892,723.19519 L 908.02309,747.02126 L 947,752.19519 L 957.24541,745.99667 L 964.00012,754.69487 L 989.5,765.69519 L 991.5,725.19519 L 955.94866,710.6576 L 923.45591,689.1305 L 883.0038,677.66492 L 861.69668,662.13148 L 840,685.19519 L 755.02878,638.61208 L 722,676.69519 L 719.5,738.69519 z"
2823 id="path3635"
2824 sodipodi:nodetypes="cccccccccccccccccccccc"
2825 clip-path="url(#clipPath3631)"
2826 transform="translate(276,136)" />
2827 <path
2828 transform="translate(450.03125,73.843964)"
2829 style="opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3898);enable-background:new"
2830 d="M 584,696.5 L 577.4375,713.65625 C 577.4375,713.65625 569.62598,734.02113 561.75,757.3125 C 557.81201,768.95818 553.86698,781.35395 550.8125,792.4375 C 547.75802,803.52105 545.47664,812.81736 545.3125,820.71875 C 544.91443,839.88071 551.05903,855.60705 554.25,862.46875 C 553.47847,866.02398 552.25863,871.92307 550.90625,880.5625 C 548.98583,892.83071 547.18798,907.71691 548.53125,920.4375 C 549.91334,933.52585 555.34347,948.62515 561.125,963.46875 C 566.90653,978.31235 573.17935,992.69586 576.34375,1001.5 C 582.97581,1019.9519 586.33671,1033.0763 587.65625,1050 C 588.2376,1057.4561 587.41398,1070.336 586.40625,1083.375 C 585.39852,1096.414 584.21964,1109.6764 584.71875,1120.3438 C 585.70786,1141.4836 594.04673,1167.1785 618.09375,1178.2812 C 640.86858,1188.7966 673.42057,1189.9834 701.53125,1174.8438 C 717.69117,1166.1404 731.60759,1147.7462 744.90625,1127.9375 C 758.20491,1108.1288 769.87542,1086.8841 776.84375,1073.0312 C 792.19667,1042.51 816.23728,957.56702 822.46875,920.3125 C 825.48734,902.26597 826.39041,891.24695 825.09375,882.28125 C 824.11522,875.51521 821.26556,870.13385 818.21875,866.0625 C 820.26149,838.55459 817.48668,814.69372 830.1875,786.65625 L 840.75,763.375 L 816.9375,772.6875 C 799.44775,779.52503 788.03586,791.73286 780.34375,804.75 C 780.02124,805.29577 779.78061,805.85776 779.46875,806.40625 C 779.69078,783.89104 783.87659,768.76866 786.0625,747.71875 L 788.03125,728.71875 L 771,737.375 C 740.40551,752.93071 725.30511,785.56821 721.28125,827.59375 C 717.03593,826.96828 712.44985,826.5741 707.46875,826.75 C 707.17726,787.56964 707.07246,759.71315 716.0625,727.375 L 721.65625,707.25 L 702.21875,714.90625 C 671.30938,727.11019 654.35921,756.83698 645.59375,783.28125 C 641.21102,796.50339 638.84793,809.08246 638,819.21875 C 637.76797,821.99248 637.68894,824.53007 637.6875,826.9375 C 634.44563,826.90109 631.26698,827.07339 627.625,827.4375 C 627.66662,788.43277 624.14076,747.68335 595.34375,710.9375 L 584,696.5 z M 589.8125,740.3125 C 606.61941,770.95633 607.28701,804.27978 606.75,840.0625 L 606.53125,855.125 L 618.56618,848.58579 C 627.22823,845.45277 638.12676,848.35827 650.5,847.75 L 665.17465,857.1066 L 658.84375,831.3125 C 658.7541,831.08253 658.62329,830.89581 658.59375,830.59375 C 658.39424,828.55389 658.37143,825.12068 658.71875,820.96875 C 659.41339,812.66489 661.50832,801.38351 665.34375,789.8125 C 670.49907,774.25956 678.83176,758.62002 690.46875,747.28125 C 685.78494,775.91923 687.25316,807.54059 687.45711,843.08639 L 684.69118,856.34803 L 700.1875,848.75 C 709.2169,845.99229 717.37647,848.40004 729.46875,849.84375 L 742.71507,859.28798 L 741.09375,840 C 742.54168,809.02823 749.31524,786.32192 761.8125,771.125 C 758.82562,790.90384 756.38207,812.9098 762.125,849.46875 L 763.19052,855.84193 L 760.25237,867.35878 L 770.86948,859.1906 L 780.05921,869.41258 L 778.51093,858.94898 L 781.9375,852 C 787.63852,838.78851 792.11032,825.78663 798.28125,815.34375 C 799.24111,813.71941 800.31278,812.27939 801.34375,810.78125 C 797.66309,831.9366 798.91659,850.9894 797.25,868.5625 L 792.56986,876.36948 L 799.96875,876.59375 C 803.1888,880.07736 803.83625,880.44443 804.53125,885.25 C 805.22625,890.05557 804.84987,899.65035 801.96875,916.875 C 796.40076,950.16292 770.17603,1040.0409 758.28125,1063.6875 C 751.67634,1076.8179 740.25127,1097.5832 727.65625,1116.3438 C 715.06123,1135.1043 700.29692,1151.8776 691.65625,1156.5312 C 670.16573,1168.1054 642.87545,1166.7914 626.8125,1159.375 C 612.43764,1152.738 606.27438,1135.9256 605.5,1119.375 C 605.11689,1111.187 606.11279,1098.0658 607.125,1084.9688 C 608.13721,1071.8717 618.41391,1062.398 622.54839,1048.4062 C 627.92068,1030.2254 621.10152,1011.8118 610.04839,994.46875 C 603.56184,984.29097 586.07159,970.21085 580.5,955.90625 C 574.92841,941.60165 570.13249,926.9031 569.21875,918.25 C 568.29254,909.47887 569.64125,895.22498 571.4375,883.75 C 573.23375,872.27503 575.28125,863.46875 575.28125,863.46875 L 584.70403,859.85355 L 574.21875,855.96875 C 574.21875,855.96875 565.71986,840.65865 566.125,821.15625 C 566.19611,817.73309 567.96126,808.4282 570.84375,797.96875 C 573.72624,787.5093 577.60841,775.41604 581.46875,764 C 584.51314,754.99692 587.24938,747.39655 589.8125,740.3125 z"
2831 id="path3669"
2832 clip-path="url(#clipPath3677)"
2833 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc" />
2834 <g
2835 id="g3628"
2836 clip-path="url(#clipPath3636)"
2837 transform="translate(276,136)">
2838 <path
2839 id="path8988"
2840 d="M 824.48651,818.48242 L 774.98903,802.92607 L 748.11898,855.25197 L 789.13117,900.50681 L 838.62864,862.32304 L 824.48651,818.48242 z"
2841 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9024);enable-background:accumulate" />
2842 <path
2843 id="path8990"
2844 d="M 964.49365,855.25197 L 909.33932,808.58293 L 865.4987,845.35248 L 899.43983,899.09259 L 906.51089,965.56063 L 855.59921,1000.916 L 814.58701,1012.2297 L 811.75859,1058.8987 L 868.32713,1084.3546 L 931.96674,1007.987 L 956.00837,913.23473 L 964.49365,855.25197 z"
2845 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9020);enable-background:accumulate" />
2846 </g>
2847 <path
2848 style="opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter9044);enable-background:accumulate"
2849 d="M 1045.3322,1043.5779 L 1106.1434,1016.7078 L 1206.5525,1047.8205 L 1142.9129,1078.9332 L 1060.8885,1061.9626 L 1045.3322,1043.5779 z"
2850 id="path8992" />
2851 <path
2852 transform="translate(450.03125,73.843964)"
2853 style="opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter4185);enable-background:new"
2854 d="M 583.0625,715.75 C 570.95641,750.19974 556.348,784.28333 551.3125,820.59375 C 550.48042,835.52242 555.90165,849.75318 560.15625,863.65625 C 554.24001,890.85751 550.01944,920.5562 561.3125,946.78125 C 574.82967,984.9421 596.31397,1022.4634 593.73529,1064.2495 C 592.78699,1093.5437 584.72085,1125.2436 599.125,1152.5312 C 609.32364,1171.866 632.26456,1179.8429 653.09285,1180.1988 C 680.95504,1181.3729 709.55546,1168.5772 725.09375,1144.9375 C 747.68924,1115.5658 766.89426,1083.4402 780.3324,1048.8777 C 797.22293,1003.3717 810.0042,956.31698 818.26642,908.4788 C 820.09082,895.53774 821.3675,881.00895 813.6875,869.65625 C 810.25635,862.31993 813.72957,854.09611 813.00293,846.34648 C 813.67693,821.35182 817.01525,795.68272 829.65625,773.75 C 811.92312,780.1946 794.58357,790.30971 785.65318,807.61425 C 781.7181,814.3238 778.04836,821.18838 774.28125,828 C 770.73126,797.98592 778.00088,768.35172 781.0625,738.71875 C 760.89646,747.77338 744.18578,764.37397 736.88755,785.40075 C 730.58292,800.98078 728.08533,817.71793 726.625,834.4375 C 718.37166,832.91825 709.94053,832.33595 701.5625,832.9375 C 700.59942,794.23963 701.09554,753.53035 712.53125,717.03125 C 693.85012,723.24901 677.36504,735.76676 666.90322,752.41848 C 653.05068,773.29827 645.64182,798.17243 643.84375,823.03125 C 644.42909,827.35579 643.78249,834.87134 637.5,832.90625 C 632.16882,832.9238 626.87092,833.58508 621.5625,834 C 622.71034,794.61852 618.22106,752.3718 594.5,719.78125 C 591.43929,716.14408 588.86315,712.09687 585.875,708.4375 C 584.9375,710.875 584,713.3125 583.0625,715.75 z M 590.8125,729.59375 C 609.37777,758.89004 613.295,794.41387 612.9375,828.46875 C 613.14159,833.64401 612.42094,840.29795 613.0625,844.53125 C 625.38106,838.4285 639.80162,842.09135 652.84375,842.34375 C 655.16087,843.567 656.03585,843.99618 654.75,840.9375 C 650.58545,826.98465 652.90172,812.3245 656.55504,798.52986 C 662.92191,772.23922 677.18332,747.44188 699.375,731.5 C 690.75791,768.73706 693.65842,808.06161 693.28125,845.46875 C 705.53469,838.55885 720.56004,842.02262 733.3125,845.21875 C 736.70472,848.75355 735.60185,844.48927 735.5,841.40625 C 735.01691,820.03567 739.63133,798.33662 749.1875,779.25 C 755.15016,768.56273 763.43088,759.44621 771.625,750.375 C 763.75344,784.2131 762.4221,819.71093 768.90625,853.875 C 770.6311,852.46382 773.51306,853.42086 774.5625,853.5 C 784.24619,832.26318 790.91362,808.11938 809.45266,792.75815 C 811.32595,792.38693 808.00448,801.2831 807.96875,804.65625 C 804.43387,826.50206 804.67155,848.82948 803.0625,870.90625 C 801.75012,872.28304 805.91085,873.22979 806.53125,874.96875 C 814.45436,885.53455 809.65419,899.80024 808.62285,911.74886 C 801.5588,956.78241 786.85732,1000.1282 773.04608,1043.446 C 760.97132,1076.3953 742.32638,1106.526 721.8125,1134.875 C 710.85993,1148.4264 698.56778,1162.7263 680.96875,1167.375 C 660.81274,1173.6163 637.3928,1172.5494 619,1161.7188 C 601.71034,1149.3774 597.97607,1126.0099 599.73774,1106.0324 C 599.78653,1090.2062 602.10985,1078.2316 607.65521,1063.2271 C 613.20056,1048.2226 610.12626,1031.8954 605.875,1015.5938 C 601.62374,999.2922 593.69597,989.33378 584.05342,973.38963 C 574.41087,957.44548 566.41652,937.35229 563.28125,917.8125 C 561.53177,899.18536 566.17296,880.68988 569.0625,862.5625 C 572.35873,859.72554 567.46451,857.36591 566.75,854.375 C 559.14887,837.35992 558.34253,817.6001 564.00766,799.81502 C 571.13786,774.74272 579.76853,750.18261 588.6875,725.6875 C 589.39583,726.98958 590.10417,728.29167 590.8125,729.59375 z"
2855 id="path4149"
2856 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
2857 clip-path="url(#clipPath4177)" />
2858 <path
2859 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4130);enable-background:accumulate"
2860 d="M 735.05635,733.03834 L 737.81177,754.12715 L 782.2228,738.73894 L 787.07343,716.34919 L 783.13726,694.29697 L 760.68563,657.70396 L 752.40559,688.0089 L 735.05635,733.03834 z"
2861 id="path3902"
2862 sodipodi:nodetypes="cccccccc"
2863 clip-path="url(#clipPath3631)"
2864 transform="translate(276,136)" />
2865 <path
2866 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;filter:url(#filter4141);enable-background:accumulate"
2867 d="M 831.81321,730.29452 L 847.63558,745.19938 L 868.49031,748.09932 L 866.90002,708.17334 L 875.22563,677.66492 L 868.06064,671.32386 L 846.36395,692.26626 L 831.81321,730.29452 z"
2868 id="path4135"
2869 sodipodi:nodetypes="cccccccc"
2870 clip-path="url(#clipPath3631)"
2871 transform="translate(276,136)" />
2872 <g
2873 id="g8367"
2874 style="filter:url(#filter8379)"
2875 clip-path="url(#clipPath8392)"
2876 transform="translate(276,136)">
2877 <path
2878 clip-path="none"
2879 sodipodi:nodetypes="ccccccc"
2880 id="path4145"
2881 d="M 910.14441,746.31415 L 942.75736,751.48808 L 942.39617,727.61189 L 949.5847,697.92968 L 941.13358,692.66603 L 919.31164,719.1768 L 910.14441,746.31415 z"
2882 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2883 <rect
2884 y="650.19098"
2885 x="877.51953"
2886 height="172.53406"
2887 width="123.03658"
2888 id="rect8365"
2889 style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2890 </g>
2891 <g
2892 id="g8400"
2893 style="filter:url(#filter8404)"
2894 clip-path="url(#clipPath8417)"
2895 transform="translate(276,136)">
2896 <path
2897 clip-path="none"
2898 sodipodi:nodetypes="ccccc"
2899 id="path4147"
2900 d="M 964.00012,754.69487 L 982.42893,762.15966 L 991.5,725.19519 L 976.62969,730.03405 L 964.00012,754.69487 z"
2901 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2902 <rect
2903 y="677.06104"
2904 x="924.89569"
2905 height="125.1579"
2906 width="142.12846"
2907 id="rect8398"
2908 style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2909 </g>
2910 </g>
2911</svg>
diff --git a/Documentation/logo.txt b/Documentation/logo.txt
index a2e62445e28e..296f0f7f67eb 100644
--- a/Documentation/logo.txt
+++ b/Documentation/logo.txt
@@ -1,4 +1,13 @@
1Tux is taking a three month sabbatical to work as a barber, so Tuz is 1This is the full-colour version of the currently unofficial Linux logo
2standing in. He's taken pains to ensure you'll hardly notice. 2("currently unofficial" just means that there has been no paperwork and
3that I have not really announced it yet). It was created by Larry Ewing,
4and is freely usable as long as you acknowledge Larry as the original
5artist.
6
7Note that there are black-and-white versions of this available that
8scale down to smaller sizes and are better for letterheads or whatever
9you want to use it for: for the full range of logos take a look at
10Larry's web-page:
11
12 http://www.isc.tamu.edu/~lewing/linux/
3 13
4Image by Andrew McGown and Josh Bush. Image is licensed CC BY-SA.
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 7f98aa3962c6..3ffd233c369c 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -1275,13 +1275,22 @@ sctp_rmem - vector of 3 INTEGERs: min, default, max
1275sctp_wmem - vector of 3 INTEGERs: min, default, max 1275sctp_wmem - vector of 3 INTEGERs: min, default, max
1276 See tcp_wmem for a description. 1276 See tcp_wmem for a description.
1277 1277
1278UNDOCUMENTED:
1279 1278
1280/proc/sys/net/core/* 1279/proc/sys/net/core/*
1281 dev_weight FIXME 1280dev_weight - INTEGER
1281 The maximum number of packets that kernel can handle on a NAPI
1282 interrupt, it's a Per-CPU variable.
1283
1284 Default: 64
1282 1285
1283/proc/sys/net/unix/* 1286/proc/sys/net/unix/*
1284 max_dgram_qlen FIXME 1287max_dgram_qlen - INTEGER
1288 The maximum length of dgram socket receive queue
1289
1290 Default: 10
1291
1292
1293UNDOCUMENTED:
1285 1294
1286/proc/sys/net/irda/* 1295/proc/sys/net/irda/*
1287 fast_poll_increase FIXME 1296 fast_poll_increase FIXME
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index 0ab0230cbcb0..d16b7a1c3793 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -43,12 +43,11 @@ Table of Contents
43 2) Representing devices without a current OF specification 43 2) Representing devices without a current OF specification
44 a) PHY nodes 44 a) PHY nodes
45 b) Interrupt controllers 45 b) Interrupt controllers
46 c) CFI or JEDEC memory-mapped NOR flash 46 c) 4xx/Axon EMAC ethernet nodes
47 d) 4xx/Axon EMAC ethernet nodes 47 d) Xilinx IP cores
48 e) Xilinx IP cores 48 e) USB EHCI controllers
49 f) USB EHCI controllers 49 f) MDIO on GPIOs
50 g) MDIO on GPIOs 50 g) SPI busses
51 h) SPI busses
52 51
53 VII - Marvell Discovery mv64[345]6x System Controller chips 52 VII - Marvell Discovery mv64[345]6x System Controller chips
54 1) The /system-controller node 53 1) The /system-controller node
@@ -999,7 +998,7 @@ compatibility.
999 translation of SOC addresses for memory mapped SOC registers. 998 translation of SOC addresses for memory mapped SOC registers.
1000 - bus-frequency: Contains the bus frequency for the SOC node. 999 - bus-frequency: Contains the bus frequency for the SOC node.
1001 Typically, the value of this field is filled in by the boot 1000 Typically, the value of this field is filled in by the boot
1002 loader. 1001 loader.
1003 1002
1004 1003
1005 Recommended properties: 1004 Recommended properties:
@@ -1287,71 +1286,7 @@ platforms are moved over to use the flattened-device-tree model.
1287 device_type = "open-pic"; 1286 device_type = "open-pic";
1288 }; 1287 };
1289 1288
1290 c) CFI or JEDEC memory-mapped NOR flash 1289 c) 4xx/Axon EMAC ethernet nodes
1291
1292 Flash chips (Memory Technology Devices) are often used for solid state
1293 file systems on embedded devices.
1294
1295 - compatible : should contain the specific model of flash chip(s)
1296 used, if known, followed by either "cfi-flash" or "jedec-flash"
1297 - reg : Address range of the flash chip
1298 - bank-width : Width (in bytes) of the flash bank. Equal to the
1299 device width times the number of interleaved chips.
1300 - device-width : (optional) Width of a single flash chip. If
1301 omitted, assumed to be equal to 'bank-width'.
1302 - #address-cells, #size-cells : Must be present if the flash has
1303 sub-nodes representing partitions (see below). In this case
1304 both #address-cells and #size-cells must be equal to 1.
1305
1306 For JEDEC compatible devices, the following additional properties
1307 are defined:
1308
1309 - vendor-id : Contains the flash chip's vendor id (1 byte).
1310 - device-id : Contains the flash chip's device id (1 byte).
1311
1312 In addition to the information on the flash bank itself, the
1313 device tree may optionally contain additional information
1314 describing partitions of the flash address space. This can be
1315 used on platforms which have strong conventions about which
1316 portions of the flash are used for what purposes, but which don't
1317 use an on-flash partition table such as RedBoot.
1318
1319 Each partition is represented as a sub-node of the flash device.
1320 Each node's name represents the name of the corresponding
1321 partition of the flash device.
1322
1323 Flash partitions
1324 - reg : The partition's offset and size within the flash bank.
1325 - label : (optional) The label / name for this flash partition.
1326 If omitted, the label is taken from the node name (excluding
1327 the unit address).
1328 - read-only : (optional) This parameter, if present, is a hint to
1329 Linux that this flash partition should only be mounted
1330 read-only. This is usually used for flash partitions
1331 containing early-boot firmware images or data which should not
1332 be clobbered.
1333
1334 Example:
1335
1336 flash@ff000000 {
1337 compatible = "amd,am29lv128ml", "cfi-flash";
1338 reg = <ff000000 01000000>;
1339 bank-width = <4>;
1340 device-width = <1>;
1341 #address-cells = <1>;
1342 #size-cells = <1>;
1343 fs@0 {
1344 label = "fs";
1345 reg = <0 f80000>;
1346 };
1347 firmware@f80000 {
1348 label ="firmware";
1349 reg = <f80000 80000>;
1350 read-only;
1351 };
1352 };
1353
1354 d) 4xx/Axon EMAC ethernet nodes
1355 1290
1356 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also 1291 The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
1357 the Axon bridge. To operate this needs to interact with a ths 1292 the Axon bridge. To operate this needs to interact with a ths
@@ -1499,7 +1434,7 @@ platforms are moved over to use the flattened-device-tree model.
1499 available. 1434 available.
1500 For Axon: 0x0000012a 1435 For Axon: 0x0000012a
1501 1436
1502 e) Xilinx IP cores 1437 d) Xilinx IP cores
1503 1438
1504 The Xilinx EDK toolchain ships with a set of IP cores (devices) for use 1439 The Xilinx EDK toolchain ships with a set of IP cores (devices) for use
1505 in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range 1440 in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range
@@ -1761,7 +1696,7 @@ platforms are moved over to use the flattened-device-tree model.
1761 listed above, nodes for these devices should include a phy-handle 1696 listed above, nodes for these devices should include a phy-handle
1762 property, and may include other common network device properties 1697 property, and may include other common network device properties
1763 like local-mac-address. 1698 like local-mac-address.
1764 1699
1765 iv) Xilinx Uartlite 1700 iv) Xilinx Uartlite
1766 1701
1767 Xilinx uartlite devices are simple fixed speed serial ports. 1702 Xilinx uartlite devices are simple fixed speed serial ports.
@@ -1793,7 +1728,7 @@ platforms are moved over to use the flattened-device-tree model.
1793 - reg-offset : A value of 3 is required 1728 - reg-offset : A value of 3 is required
1794 - reg-shift : A value of 2 is required 1729 - reg-shift : A value of 2 is required
1795 1730
1796 f) USB EHCI controllers 1731 e) USB EHCI controllers
1797 1732
1798 Required properties: 1733 Required properties:
1799 - compatible : should be "usb-ehci". 1734 - compatible : should be "usb-ehci".
@@ -1819,7 +1754,7 @@ platforms are moved over to use the flattened-device-tree model.
1819 big-endian; 1754 big-endian;
1820 }; 1755 };
1821 1756
1822 g) MDIO on GPIOs 1757 f) MDIO on GPIOs
1823 1758
1824 Currently defined compatibles: 1759 Currently defined compatibles:
1825 - virtual,gpio-mdio 1760 - virtual,gpio-mdio
@@ -1839,7 +1774,7 @@ platforms are moved over to use the flattened-device-tree model.
1839 &qe_pio_c 6>; 1774 &qe_pio_c 6>;
1840 }; 1775 };
1841 1776
1842 h) SPI (Serial Peripheral Interface) busses 1777 g) SPI (Serial Peripheral Interface) busses
1843 1778
1844 SPI busses can be described with a node for the SPI master device 1779 SPI busses can be described with a node for the SPI master device
1845 and a set of child nodes for each SPI slave on the bus. For this 1780 and a set of child nodes for each SPI slave on the bus. For this
diff --git a/Documentation/powerpc/dts-bindings/fsl/i2c.txt b/Documentation/powerpc/dts-bindings/fsl/i2c.txt
index d0ab33e21fe6..b6d2e21474f9 100644
--- a/Documentation/powerpc/dts-bindings/fsl/i2c.txt
+++ b/Documentation/powerpc/dts-bindings/fsl/i2c.txt
@@ -7,8 +7,10 @@ Required properties :
7 7
8Recommended properties : 8Recommended properties :
9 9
10 - compatible : Should be "fsl-i2c" for parts compatible with 10 - compatible : compatibility list with 2 entries, the first should
11 Freescale I2C specifications. 11 be "fsl,CHIP-i2c" where CHIP is the name of a compatible processor,
12 e.g. mpc8313, mpc8543, mpc8544, mpc5200 or mpc5200b. The second one
13 should be "fsl-i2c".
12 - interrupts : <a b> where a is the interrupt number and b is a 14 - interrupts : <a b> where a is the interrupt number and b is a
13 field that represents an encoding of the sense and level 15 field that represents an encoding of the sense and level
14 information for the interrupt. This should be encoded based on 16 information for the interrupt. This should be encoded based on
@@ -16,17 +18,31 @@ Recommended properties :
16 controller you have. 18 controller you have.
17 - interrupt-parent : the phandle for the interrupt controller that 19 - interrupt-parent : the phandle for the interrupt controller that
18 services interrupts for this device. 20 services interrupts for this device.
19 - dfsrr : boolean; if defined, indicates that this I2C device has 21 - fsl,preserve-clocking : boolean; if defined, the clock settings
20 a digital filter sampling rate register 22 from the bootloader are preserved (not touched).
21 - fsl5200-clocking : boolean; if defined, indicated that this device 23 - clock-frequency : desired I2C bus clock frequency in Hz.
22 uses the FSL 5200 clocking mechanism. 24
23 25Examples :
24Example : 26
25 i2c@3000 { 27 i2c@3d00 {
26 interrupt-parent = <40000>; 28 #address-cells = <1>;
27 interrupts = <1b 3>; 29 #size-cells = <0>;
28 reg = <3000 18>; 30 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
29 device_type = "i2c"; 31 cell-index = <0>;
30 compatible = "fsl-i2c"; 32 reg = <0x3d00 0x40>;
31 dfsrr; 33 interrupts = <2 15 0>;
34 interrupt-parent = <&mpc5200_pic>;
35 fsl,preserve-clocking;
32 }; 36 };
37
38 i2c@3100 {
39 #address-cells = <1>;
40 #size-cells = <0>;
41 cell-index = <1>;
42 compatible = "fsl,mpc8544-i2c", "fsl-i2c";
43 reg = <0x3100 0x100>;
44 interrupts = <43 2>;
45 interrupt-parent = <&mpic>;
46 clock-frequency = <400000>;
47 };
48
diff --git a/Documentation/powerpc/dts-bindings/mtd-physmap.txt b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
new file mode 100644
index 000000000000..667c9bde8699
--- /dev/null
+++ b/Documentation/powerpc/dts-bindings/mtd-physmap.txt
@@ -0,0 +1,80 @@
1CFI or JEDEC memory-mapped NOR flash
2
3Flash chips (Memory Technology Devices) are often used for solid state
4file systems on embedded devices.
5
6 - compatible : should contain the specific model of flash chip(s)
7 used, if known, followed by either "cfi-flash" or "jedec-flash"
8 - reg : Address range(s) of the flash chip(s)
9 It's possible to (optionally) define multiple "reg" tuples so that
10 non-identical NOR chips can be described in one flash node.
11 - bank-width : Width (in bytes) of the flash bank. Equal to the
12 device width times the number of interleaved chips.
13 - device-width : (optional) Width of a single flash chip. If
14 omitted, assumed to be equal to 'bank-width'.
15 - #address-cells, #size-cells : Must be present if the flash has
16 sub-nodes representing partitions (see below). In this case
17 both #address-cells and #size-cells must be equal to 1.
18
19For JEDEC compatible devices, the following additional properties
20are defined:
21
22 - vendor-id : Contains the flash chip's vendor id (1 byte).
23 - device-id : Contains the flash chip's device id (1 byte).
24
25In addition to the information on the flash bank itself, the
26device tree may optionally contain additional information
27describing partitions of the flash address space. This can be
28used on platforms which have strong conventions about which
29portions of the flash are used for what purposes, but which don't
30use an on-flash partition table such as RedBoot.
31
32Each partition is represented as a sub-node of the flash device.
33Each node's name represents the name of the corresponding
34partition of the flash device.
35
36Flash partitions
37 - reg : The partition's offset and size within the flash bank.
38 - label : (optional) The label / name for this flash partition.
39 If omitted, the label is taken from the node name (excluding
40 the unit address).
41 - read-only : (optional) This parameter, if present, is a hint to
42 Linux that this flash partition should only be mounted
43 read-only. This is usually used for flash partitions
44 containing early-boot firmware images or data which should not
45 be clobbered.
46
47Example:
48
49 flash@ff000000 {
50 compatible = "amd,am29lv128ml", "cfi-flash";
51 reg = <ff000000 01000000>;
52 bank-width = <4>;
53 device-width = <1>;
54 #address-cells = <1>;
55 #size-cells = <1>;
56 fs@0 {
57 label = "fs";
58 reg = <0 f80000>;
59 };
60 firmware@f80000 {
61 label ="firmware";
62 reg = <f80000 80000>;
63 read-only;
64 };
65 };
66
67Here an example with multiple "reg" tuples:
68
69 flash@f0000000,0 {
70 #address-cells = <1>;
71 #size-cells = <1>;
72 compatible = "intel,PC48F4400P0VB", "cfi-flash";
73 reg = <0 0x00000000 0x02000000
74 0 0x02000000 0x02000000>;
75 bank-width = <2>;
76 partition@0 {
77 label = "test-part1";
78 reg = <0 0x04000000>;
79 };
80 };
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt
index c5948f2f9a25..88b7433d2f11 100644
--- a/Documentation/sound/alsa/HD-Audio.txt
+++ b/Documentation/sound/alsa/HD-Audio.txt
@@ -169,7 +169,7 @@ PCI SSID look-up.
169What `model` option values are available depends on the codec chip. 169What `model` option values are available depends on the codec chip.
170Check your codec chip from the codec proc file (see "Codec Proc-File" 170Check your codec chip from the codec proc file (see "Codec Proc-File"
171section below). It will show the vendor/product name of your codec 171section below). It will show the vendor/product name of your codec
172chip. Then, see Documentation/sound/alsa/HD-Audio-Modelstxt file, 172chip. Then, see Documentation/sound/alsa/HD-Audio-Models.txt file,
173the section of HD-audio driver. You can find a list of codecs 173the section of HD-audio driver. You can find a list of codecs
174and `model` options belonging to each codec. For example, for Realtek 174and `model` options belonging to each codec. For example, for Realtek
175ALC262 codec chip, pass `model=ultra` for devices that are compatible 175ALC262 codec chip, pass `model=ultra` for devices that are compatible
@@ -177,7 +177,7 @@ with Samsung Q1 Ultra.
177 177
178Thus, the first thing you can do for any brand-new, unsupported and 178Thus, the first thing you can do for any brand-new, unsupported and
179non-working HD-audio hardware is to check HD-audio codec and several 179non-working HD-audio hardware is to check HD-audio codec and several
180different `model` option values. If you have a luck, some of them 180different `model` option values. If you have any luck, some of them
181might suit with your device well. 181might suit with your device well.
182 182
183Some codecs such as ALC880 have a special model option `model=test`. 183Some codecs such as ALC880 have a special model option `model=test`.
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary
index 0f5122eb282b..4a02d2508bc8 100644
--- a/Documentation/spi/spi-summary
+++ b/Documentation/spi/spi-summary
@@ -511,10 +511,16 @@ SPI MASTER METHODS
511 This sets up the device clock rate, SPI mode, and word sizes. 511 This sets up the device clock rate, SPI mode, and word sizes.
512 Drivers may change the defaults provided by board_info, and then 512 Drivers may change the defaults provided by board_info, and then
513 call spi_setup(spi) to invoke this routine. It may sleep. 513 call spi_setup(spi) to invoke this routine. It may sleep.
514
514 Unless each SPI slave has its own configuration registers, don't 515 Unless each SPI slave has its own configuration registers, don't
515 change them right away ... otherwise drivers could corrupt I/O 516 change them right away ... otherwise drivers could corrupt I/O
516 that's in progress for other SPI devices. 517 that's in progress for other SPI devices.
517 518
519 ** BUG ALERT: for some reason the first version of
520 ** many spi_master drivers seems to get this wrong.
521 ** When you code setup(), ASSUME that the controller
522 ** is actively processing transfers for another device.
523
518 master->transfer(struct spi_device *spi, struct spi_message *message) 524 master->transfer(struct spi_device *spi, struct spi_message *message)
519 This must not sleep. Its responsibility is arrange that the 525 This must not sleep. Its responsibility is arrange that the
520 transfer happens and its complete() callback is issued. The two 526 transfer happens and its complete() callback is issued. The two
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt
index a34d55b65441..df38ef046f8d 100644
--- a/Documentation/sysctl/net.txt
+++ b/Documentation/sysctl/net.txt
@@ -95,7 +95,7 @@ of struct cmsghdr structures with appended data.
95 95
96There is only one file in this directory. 96There is only one file in this directory.
97unix_dgram_qlen limits the max number of datagrams queued in Unix domain 97unix_dgram_qlen limits the max number of datagrams queued in Unix domain
98socket's buffer. It will not take effect unless PF_UNIX flag is spicified. 98socket's buffer. It will not take effect unless PF_UNIX flag is specified.
99 99
100 100
1013. /proc/sys/net/ipv4 - IPV4 settings 1013. /proc/sys/net/ipv4 - IPV4 settings
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index 97c4b3284329..c302ddf629a0 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -39,8 +39,6 @@ Currently, these files are in /proc/sys/vm:
39- nr_hugepages 39- nr_hugepages
40- nr_overcommit_hugepages 40- nr_overcommit_hugepages
41- nr_pdflush_threads 41- nr_pdflush_threads
42- nr_pdflush_threads_min
43- nr_pdflush_threads_max
44- nr_trim_pages (only if CONFIG_MMU=n) 42- nr_trim_pages (only if CONFIG_MMU=n)
45- numa_zonelist_order 43- numa_zonelist_order
46- oom_dump_tasks 44- oom_dump_tasks
@@ -90,6 +88,10 @@ will itself start writeback.
90If dirty_bytes is written, dirty_ratio becomes a function of its value 88If dirty_bytes is written, dirty_ratio becomes a function of its value
91(dirty_bytes / the amount of dirtyable system memory). 89(dirty_bytes / the amount of dirtyable system memory).
92 90
91Note: the minimum value allowed for dirty_bytes is two pages (in bytes); any
92value lower than this limit will be ignored and the old configuration will be
93retained.
94
93============================================================== 95==============================================================
94 96
95dirty_expire_centisecs 97dirty_expire_centisecs
@@ -465,32 +467,6 @@ The default value is 0.
465 467
466============================================================== 468==============================================================
467 469
468nr_pdflush_threads_min
469
470This value controls the minimum number of pdflush threads.
471
472At boot time, the kernel will create and maintain 'nr_pdflush_threads_min'
473threads for the kernel's lifetime.
474
475The default value is 2. The minimum value you can specify is 1, and
476the maximum value is the current setting of 'nr_pdflush_threads_max'.
477
478See 'nr_pdflush_threads_max' below for more information.
479
480==============================================================
481
482nr_pdflush_threads_max
483
484This value controls the maximum number of pdflush threads that can be
485created. The pdflush algorithm will create a new pdflush thread (up to
486this maximum) if no pdflush threads have been available for >= 1 second.
487
488The default value is 8. The minimum value you can specify is the
489current value of 'nr_pdflush_threads_min' and the
490maximum is 1000.
491
492==============================================================
493
494overcommit_memory: 470overcommit_memory:
495 471
496This value contains a flag that enables memory overcommitment. 472This value contains a flag that enables memory overcommitment.
diff --git a/Documentation/sysfs-rules.txt b/Documentation/sysfs-rules.txt
index 6049a2a84dda..5d8bc2cd250c 100644
--- a/Documentation/sysfs-rules.txt
+++ b/Documentation/sysfs-rules.txt
@@ -113,7 +113,7 @@ versions of the sysfs interface.
113 "devices" directory at /sys/subsystem/<name>/devices. 113 "devices" directory at /sys/subsystem/<name>/devices.
114 114
115 If /sys/subsystem exists, /sys/bus, /sys/class and /sys/block can be 115 If /sys/subsystem exists, /sys/bus, /sys/class and /sys/block can be
116 ignored. If it does not exist, you have always to scan all three 116 ignored. If it does not exist, you always have to scan all three
117 places, as the kernel is free to move a subsystem from one place to 117 places, as the kernel is free to move a subsystem from one place to
118 the other, as long as the devices are still reachable by the same 118 the other, as long as the devices are still reachable by the same
119 subsystem name. 119 subsystem name.
diff --git a/Documentation/tomoyo.txt b/Documentation/tomoyo.txt
new file mode 100644
index 000000000000..b3a232cae7f8
--- /dev/null
+++ b/Documentation/tomoyo.txt
@@ -0,0 +1,55 @@
1--- What is TOMOYO? ---
2
3TOMOYO is a name-based MAC extension (LSM module) for the Linux kernel.
4
5LiveCD-based tutorials are available at
6http://tomoyo.sourceforge.jp/en/1.6.x/1st-step/ubuntu8.04-live/
7http://tomoyo.sourceforge.jp/en/1.6.x/1st-step/centos5-live/ .
8Though these tutorials use non-LSM version of TOMOYO, they are useful for you
9to know what TOMOYO is.
10
11--- How to enable TOMOYO? ---
12
13Build the kernel with CONFIG_SECURITY_TOMOYO=y and pass "security=tomoyo" on
14kernel's command line.
15
16Please see http://tomoyo.sourceforge.jp/en/2.2.x/ for details.
17
18--- Where is documentation? ---
19
20User <-> Kernel interface documentation is available at
21http://tomoyo.sourceforge.jp/en/2.2.x/policy-reference.html .
22
23Materials we prepared for seminars and symposiums are available at
24http://sourceforge.jp/projects/tomoyo/docs/?category_id=532&language_id=1 .
25Below lists are chosen from three aspects.
26
27What is TOMOYO?
28 TOMOYO Linux Overview
29 http://sourceforge.jp/projects/tomoyo/docs/lca2009-takeda.pdf
30 TOMOYO Linux: pragmatic and manageable security for Linux
31 http://sourceforge.jp/projects/tomoyo/docs/freedomhectaipei-tomoyo.pdf
32 TOMOYO Linux: A Practical Method to Understand and Protect Your Own Linux Box
33 http://sourceforge.jp/projects/tomoyo/docs/PacSec2007-en-no-demo.pdf
34
35What can TOMOYO do?
36 Deep inside TOMOYO Linux
37 http://sourceforge.jp/projects/tomoyo/docs/lca2009-kumaneko.pdf
38 The role of "pathname based access control" in security.
39 http://sourceforge.jp/projects/tomoyo/docs/lfj2008-bof.pdf
40
41History of TOMOYO?
42 Realities of Mainlining
43 http://sourceforge.jp/projects/tomoyo/docs/lfj2008.pdf
44
45--- What is future plan? ---
46
47We believe that inode based security and name based security are complementary
48and both should be used together. But unfortunately, so far, we cannot enable
49multiple LSM modules at the same time. We feel sorry that you have to give up
50SELinux/SMACK/AppArmor etc. when you want to use TOMOYO.
51
52We hope that LSM becomes stackable in future. Meanwhile, you can use non-LSM
53version of TOMOYO, available at http://tomoyo.sourceforge.jp/en/1.6.x/ .
54LSM version of TOMOYO is a subset of non-LSM version of TOMOYO. We are planning
55to port non-LSM version's functionalities to LSM versions.
diff --git a/Documentation/vm/00-INDEX b/Documentation/vm/00-INDEX
index 2131b00b63f6..2f77ced35df7 100644
--- a/Documentation/vm/00-INDEX
+++ b/Documentation/vm/00-INDEX
@@ -1,5 +1,7 @@
100-INDEX 100-INDEX
2 - this file. 2 - this file.
3active_mm.txt
4 - An explanation from Linus about tsk->active_mm vs tsk->mm.
3balance 5balance
4 - various information on memory balancing. 6 - various information on memory balancing.
5hugetlbpage.txt 7hugetlbpage.txt
diff --git a/Documentation/vm/active_mm.txt b/Documentation/vm/active_mm.txt
new file mode 100644
index 000000000000..4ee1f643d897
--- /dev/null
+++ b/Documentation/vm/active_mm.txt
@@ -0,0 +1,83 @@
1List: linux-kernel
2Subject: Re: active_mm
3From: Linus Torvalds <torvalds () transmeta ! com>
4Date: 1999-07-30 21:36:24
5
6Cc'd to linux-kernel, because I don't write explanations all that often,
7and when I do I feel better about more people reading them.
8
9On Fri, 30 Jul 1999, David Mosberger wrote:
10>
11> Is there a brief description someplace on how "mm" vs. "active_mm" in
12> the task_struct are supposed to be used? (My apologies if this was
13> discussed on the mailing lists---I just returned from vacation and
14> wasn't able to follow linux-kernel for a while).
15
16Basically, the new setup is:
17
18 - we have "real address spaces" and "anonymous address spaces". The
19 difference is that an anonymous address space doesn't care about the
20 user-level page tables at all, so when we do a context switch into an
21 anonymous address space we just leave the previous address space
22 active.
23
24 The obvious use for a "anonymous address space" is any thread that
25 doesn't need any user mappings - all kernel threads basically fall into
26 this category, but even "real" threads can temporarily say that for
27 some amount of time they are not going to be interested in user space,
28 and that the scheduler might as well try to avoid wasting time on
29 switching the VM state around. Currently only the old-style bdflush
30 sync does that.
31
32 - "tsk->mm" points to the "real address space". For an anonymous process,
33 tsk->mm will be NULL, for the logical reason that an anonymous process
34 really doesn't _have_ a real address space at all.
35
36 - however, we obviously need to keep track of which address space we
37 "stole" for such an anonymous user. For that, we have "tsk->active_mm",
38 which shows what the currently active address space is.
39
40 The rule is that for a process with a real address space (ie tsk->mm is
41 non-NULL) the active_mm obviously always has to be the same as the real
42 one.
43
44 For a anonymous process, tsk->mm == NULL, and tsk->active_mm is the
45 "borrowed" mm while the anonymous process is running. When the
46 anonymous process gets scheduled away, the borrowed address space is
47 returned and cleared.
48
49To support all that, the "struct mm_struct" now has two counters: a
50"mm_users" counter that is how many "real address space users" there are,
51and a "mm_count" counter that is the number of "lazy" users (ie anonymous
52users) plus one if there are any real users.
53
54Usually there is at least one real user, but it could be that the real
55user exited on another CPU while a lazy user was still active, so you do
56actually get cases where you have a address space that is _only_ used by
57lazy users. That is often a short-lived state, because once that thread
58gets scheduled away in favour of a real thread, the "zombie" mm gets
59released because "mm_users" becomes zero.
60
61Also, a new rule is that _nobody_ ever has "init_mm" as a real MM any
62more. "init_mm" should be considered just a "lazy context when no other
63context is available", and in fact it is mainly used just at bootup when
64no real VM has yet been created. So code that used to check
65
66 if (current->mm == &init_mm)
67
68should generally just do
69
70 if (!current->mm)
71
72instead (which makes more sense anyway - the test is basically one of "do
73we have a user context", and is generally done by the page fault handler
74and things like that).
75
76Anyway, I put a pre-patch-2.3.13-1 on ftp.kernel.org just a moment ago,
77because it slightly changes the interfaces to accomodate the alpha (who
78would have thought it, but the alpha actually ends up having one of the
79ugliest context switch codes - unlike the other architectures where the MM
80and register state is separate, the alpha PALcode joins the two, and you
81need to switch both together).
82
83(From http://marc.info/?l=linux-kernel&m=93337278602211&w=2)
diff --git a/Documentation/vm/unevictable-lru.txt b/Documentation/vm/unevictable-lru.txt
index 0706a7282a8c..2d70d0d95108 100644
--- a/Documentation/vm/unevictable-lru.txt
+++ b/Documentation/vm/unevictable-lru.txt
@@ -1,588 +1,691 @@
1 1 ==============================
2This document describes the Linux memory management "Unevictable LRU" 2 UNEVICTABLE LRU INFRASTRUCTURE
3infrastructure and the use of this infrastructure to manage several types 3 ==============================
4of "unevictable" pages. The document attempts to provide the overall 4
5rationale behind this mechanism and the rationale for some of the design 5========
6decisions that drove the implementation. The latter design rationale is 6CONTENTS
7discussed in the context of an implementation description. Admittedly, one 7========
8can obtain the implementation details--the "what does it do?"--by reading the 8
9code. One hopes that the descriptions below add value by provide the answer 9 (*) The Unevictable LRU
10to "why does it do that?". 10
11 11 - The unevictable page list.
12Unevictable LRU Infrastructure: 12 - Memory control group interaction.
13 13 - Marking address spaces unevictable.
14The Unevictable LRU adds an additional LRU list to track unevictable pages 14 - Detecting Unevictable Pages.
15and to hide these pages from vmscan. This mechanism is based on a patch by 15 - vmscan's handling of unevictable pages.
16Larry Woodman of Red Hat to address several scalability problems with page 16
17 (*) mlock()'d pages.
18
19 - History.
20 - Basic management.
21 - mlock()/mlockall() system call handling.
22 - Filtering special vmas.
23 - munlock()/munlockall() system call handling.
24 - Migrating mlocked pages.
25 - mmap(MAP_LOCKED) system call handling.
26 - munmap()/exit()/exec() system call handling.
27 - try_to_unmap().
28 - try_to_munlock() reverse map scan.
29 - Page reclaim in shrink_*_list().
30
31
32============
33INTRODUCTION
34============
35
36This document describes the Linux memory manager's "Unevictable LRU"
37infrastructure and the use of this to manage several types of "unevictable"
38pages.
39
40The document attempts to provide the overall rationale behind this mechanism
41and the rationale for some of the design decisions that drove the
42implementation. The latter design rationale is discussed in the context of an
43implementation description. Admittedly, one can obtain the implementation
44details - the "what does it do?" - by reading the code. One hopes that the
45descriptions below add value by provide the answer to "why does it do that?".
46
47
48===================
49THE UNEVICTABLE LRU
50===================
51
52The Unevictable LRU facility adds an additional LRU list to track unevictable
53pages and to hide these pages from vmscan. This mechanism is based on a patch
54by Larry Woodman of Red Hat to address several scalability problems with page
17reclaim in Linux. The problems have been observed at customer sites on large 55reclaim in Linux. The problems have been observed at customer sites on large
18memory x86_64 systems. For example, a non-numal x86_64 platform with 128GB 56memory x86_64 systems.
19of main memory will have over 32 million 4k pages in a single zone. When a 57
20large fraction of these pages are not evictable for any reason [see below], 58To illustrate this with an example, a non-NUMA x86_64 platform with 128GB of
21vmscan will spend a lot of time scanning the LRU lists looking for the small 59main memory will have over 32 million 4k pages in a single zone. When a large
22fraction of pages that are evictable. This can result in a situation where 60fraction of these pages are not evictable for any reason [see below], vmscan
23all cpus are spending 100% of their time in vmscan for hours or days on end, 61will spend a lot of time scanning the LRU lists looking for the small fraction
24with the system completely unresponsive. 62of pages that are evictable. This can result in a situation where all CPUs are
25 63spending 100% of their time in vmscan for hours or days on end, with the system
26The Unevictable LRU infrastructure addresses the following classes of 64completely unresponsive.
27unevictable pages: 65
28 66The unevictable list addresses the following classes of unevictable pages:
29+ page owned by ramfs 67
30+ page mapped into SHM_LOCKed shared memory regions 68 (*) Those owned by ramfs.
31+ page mapped into VM_LOCKED [mlock()ed] vmas 69
32 70 (*) Those mapped into SHM_LOCK'd shared memory regions.
33The infrastructure might be able to handle other conditions that make pages 71
72 (*) Those mapped into VM_LOCKED [mlock()ed] VMAs.
73
74The infrastructure may also be able to handle other conditions that make pages
34unevictable, either by definition or by circumstance, in the future. 75unevictable, either by definition or by circumstance, in the future.
35 76
36 77
37The Unevictable LRU List 78THE UNEVICTABLE PAGE LIST
79-------------------------
38 80
39The Unevictable LRU infrastructure consists of an additional, per-zone, LRU list 81The Unevictable LRU infrastructure consists of an additional, per-zone, LRU list
40called the "unevictable" list and an associated page flag, PG_unevictable, to 82called the "unevictable" list and an associated page flag, PG_unevictable, to
41indicate that the page is being managed on the unevictable list. The 83indicate that the page is being managed on the unevictable list.
42PG_unevictable flag is analogous to, and mutually exclusive with, the PG_active 84
43flag in that it indicates on which LRU list a page resides when PG_lru is set. 85The PG_unevictable flag is analogous to, and mutually exclusive with, the
44The unevictable LRU list is source configurable based on the UNEVICTABLE_LRU 86PG_active flag in that it indicates on which LRU list a page resides when
45Kconfig option. 87PG_lru is set. The unevictable list is compile-time configurable based on the
88UNEVICTABLE_LRU Kconfig option.
46 89
47The Unevictable LRU infrastructure maintains unevictable pages on an additional 90The Unevictable LRU infrastructure maintains unevictable pages on an additional
48LRU list for a few reasons: 91LRU list for a few reasons:
49 92
501) We get to "treat unevictable pages just like we treat other pages in the 93 (1) We get to "treat unevictable pages just like we treat other pages in the
51 system, which means we get to use the same code to manipulate them, the 94 system - which means we get to use the same code to manipulate them, the
52 same code to isolate them (for migrate, etc.), the same code to keep track 95 same code to isolate them (for migrate, etc.), the same code to keep track
53 of the statistics, etc..." [Rik van Riel] 96 of the statistics, etc..." [Rik van Riel]
97
98 (2) We want to be able to migrate unevictable pages between nodes for memory
99 defragmentation, workload management and memory hotplug. The linux kernel
100 can only migrate pages that it can successfully isolate from the LRU
101 lists. If we were to maintain pages elsewhere than on an LRU-like list,
102 where they can be found by isolate_lru_page(), we would prevent their
103 migration, unless we reworked migration code to find the unevictable pages
104 itself.
54 105
552) We want to be able to migrate unevictable pages between nodes--for memory
56 defragmentation, workload management and memory hotplug. The linux kernel
57 can only migrate pages that it can successfully isolate from the lru lists.
58 If we were to maintain pages elsewise than on an lru-like list, where they
59 can be found by isolate_lru_page(), we would prevent their migration, unless
60 we reworked migration code to find the unevictable pages.
61 106
107The unevictable list does not differentiate between file-backed and anonymous,
108swap-backed pages. This differentiation is only important while the pages are,
109in fact, evictable.
62 110
63The unevictable LRU list does not differentiate between file backed and swap 111The unevictable list benefits from the "arrayification" of the per-zone LRU
64backed [anon] pages. This differentiation is only important while the pages 112lists and statistics originally proposed and posted by Christoph Lameter.
65are, in fact, evictable.
66 113
67The unevictable LRU list benefits from the "arrayification" of the per-zone 114The unevictable list does not use the LRU pagevec mechanism. Rather,
68LRU lists and statistics originally proposed and posted by Christoph Lameter. 115unevictable pages are placed directly on the page's zone's unevictable list
116under the zone lru_lock. This allows us to prevent the stranding of pages on
117the unevictable list when one task has the page isolated from the LRU and other
118tasks are changing the "evictability" state of the page.
69 119
70The unevictable list does not use the lru pagevec mechanism. Rather,
71unevictable pages are placed directly on the page's zone's unevictable
72list under the zone lru_lock. The reason for this is to prevent stranding
73of pages on the unevictable list when one task has the page isolated from the
74lru and other tasks are changing the "evictability" state of the page.
75 120
121MEMORY CONTROL GROUP INTERACTION
122--------------------------------
76 123
77Unevictable LRU and Memory Controller Interaction 124The unevictable LRU facility interacts with the memory control group [aka
125memory controller; see Documentation/cgroups/memory.txt] by extending the
126lru_list enum.
127
128The memory controller data structure automatically gets a per-zone unevictable
129list as a result of the "arrayification" of the per-zone LRU lists (one per
130lru_list enum element). The memory controller tracks the movement of pages to
131and from the unevictable list.
78 132
79The memory controller data structure automatically gets a per zone unevictable
80lru list as a result of the "arrayification" of the per-zone LRU lists. The
81memory controller tracks the movement of pages to and from the unevictable list.
82When a memory control group comes under memory pressure, the controller will 133When a memory control group comes under memory pressure, the controller will
83not attempt to reclaim pages on the unevictable list. This has a couple of 134not attempt to reclaim pages on the unevictable list. This has a couple of
84effects. Because the pages are "hidden" from reclaim on the unevictable list, 135effects:
85the reclaim process can be more efficient, dealing only with pages that have 136
86a chance of being reclaimed. On the other hand, if too many of the pages 137 (1) Because the pages are "hidden" from reclaim on the unevictable list, the
87charged to the control group are unevictable, the evictable portion of the 138 reclaim process can be more efficient, dealing only with pages that have a
88working set of the tasks in the control group may not fit into the available 139 chance of being reclaimed.
89memory. This can cause the control group to thrash or to oom-kill tasks. 140
90 141 (2) On the other hand, if too many of the pages charged to the control group
91 142 are unevictable, the evictable portion of the working set of the tasks in
92Unevictable LRU: Detecting Unevictable Pages 143 the control group may not fit into the available memory. This can cause
93 144 the control group to thrash or to OOM-kill tasks.
94The function page_evictable(page, vma) in vmscan.c determines whether a 145
95page is evictable or not. For ramfs pages and pages in SHM_LOCKed regions, 146
96page_evictable() tests a new address space flag, AS_UNEVICTABLE, in the page's 147MARKING ADDRESS SPACES UNEVICTABLE
97address space using a wrapper function. Wrapper functions are used to set, 148----------------------------------
98clear and test the flag to reduce the requirement for #ifdef's throughout the 149
99source code. AS_UNEVICTABLE is set on ramfs inode/mapping when it is created. 150For facilities such as ramfs none of the pages attached to the address space
100This flag remains for the life of the inode. 151may be evicted. To prevent eviction of any such pages, the AS_UNEVICTABLE
101 152address space flag is provided, and this can be manipulated by a filesystem
102For shared memory regions, AS_UNEVICTABLE is set when an application 153using a number of wrapper functions:
103successfully SHM_LOCKs the region and is removed when the region is 154
104SHM_UNLOCKed. Note that shmctl(SHM_LOCK, ...) does not populate the page 155 (*) void mapping_set_unevictable(struct address_space *mapping);
105tables for the region as does, for example, mlock(). So, we make no special 156
106effort to push any pages in the SHM_LOCKed region to the unevictable list. 157 Mark the address space as being completely unevictable.
107Vmscan will do this when/if it encounters the pages during reclaim. On 158
108SHM_UNLOCK, shmctl() scans the pages in the region and "rescues" them from the 159 (*) void mapping_clear_unevictable(struct address_space *mapping);
109unevictable list if no other condition keeps them unevictable. If a SHM_LOCKed 160
110region is destroyed, the pages are also "rescued" from the unevictable list in 161 Mark the address space as being evictable.
111the process of freeing them. 162
112 163 (*) int mapping_unevictable(struct address_space *mapping);
113page_evictable() detects mlock()ed pages by testing an additional page flag, 164
114PG_mlocked via the PageMlocked() wrapper. If the page is NOT mlocked, and a 165 Query the address space, and return true if it is completely
115non-NULL vma is supplied, page_evictable() will check whether the vma is 166 unevictable.
167
168These are currently used in two places in the kernel:
169
170 (1) By ramfs to mark the address spaces of its inodes when they are created,
171 and this mark remains for the life of the inode.
172
173 (2) By SYSV SHM to mark SHM_LOCK'd address spaces until SHM_UNLOCK is called.
174
175 Note that SHM_LOCK is not required to page in the locked pages if they're
176 swapped out; the application must touch the pages manually if it wants to
177 ensure they're in memory.
178
179
180DETECTING UNEVICTABLE PAGES
181---------------------------
182
183The function page_evictable() in vmscan.c determines whether a page is
184evictable or not using the query function outlined above [see section "Marking
185address spaces unevictable"] to check the AS_UNEVICTABLE flag.
186
187For address spaces that are so marked after being populated (as SHM regions
188might be), the lock action (eg: SHM_LOCK) can be lazy, and need not populate
189the page tables for the region as does, for example, mlock(), nor need it make
190any special effort to push any pages in the SHM_LOCK'd area to the unevictable
191list. Instead, vmscan will do this if and when it encounters the pages during
192a reclamation scan.
193
194On an unlock action (such as SHM_UNLOCK), the unlocker (eg: shmctl()) must scan
195the pages in the region and "rescue" them from the unevictable list if no other
196condition is keeping them unevictable. If an unevictable region is destroyed,
197the pages are also "rescued" from the unevictable list in the process of
198freeing them.
199
200page_evictable() also checks for mlocked pages by testing an additional page
201flag, PG_mlocked (as wrapped by PageMlocked()). If the page is NOT mlocked,
202and a non-NULL VMA is supplied, page_evictable() will check whether the VMA is
116VM_LOCKED via is_mlocked_vma(). is_mlocked_vma() will SetPageMlocked() and 203VM_LOCKED via is_mlocked_vma(). is_mlocked_vma() will SetPageMlocked() and
117update the appropriate statistics if the vma is VM_LOCKED. This method allows 204update the appropriate statistics if the vma is VM_LOCKED. This method allows
118efficient "culling" of pages in the fault path that are being faulted in to 205efficient "culling" of pages in the fault path that are being faulted in to
119VM_LOCKED vmas. 206VM_LOCKED VMAs.
120 207
121 208
122Unevictable Pages and Vmscan [shrink_*_list()] 209VMSCAN'S HANDLING OF UNEVICTABLE PAGES
210--------------------------------------
123 211
124If unevictable pages are culled in the fault path, or moved to the unevictable 212If unevictable pages are culled in the fault path, or moved to the unevictable
125list at mlock() or mmap() time, vmscan will never encounter the pages until 213list at mlock() or mmap() time, vmscan will not encounter the pages until they
126they have become evictable again, for example, via munlock() and have been 214have become evictable again (via munlock() for example) and have been "rescued"
127"rescued" from the unevictable list. However, there may be situations where we 215from the unevictable list. However, there may be situations where we decide,
128decide, for the sake of expediency, to leave a unevictable page on one of the 216for the sake of expediency, to leave a unevictable page on one of the regular
129regular active/inactive LRU lists for vmscan to deal with. Vmscan checks for 217active/inactive LRU lists for vmscan to deal with. vmscan checks for such
130such pages in all of the shrink_{active|inactive|page}_list() functions and 218pages in all of the shrink_{active|inactive|page}_list() functions and will
131will "cull" such pages that it encounters--that is, it diverts those pages to 219"cull" such pages that it encounters: that is, it diverts those pages to the
132the unevictable list for the zone being scanned. 220unevictable list for the zone being scanned.
133 221
134There may be situations where a page is mapped into a VM_LOCKED vma, but the 222There may be situations where a page is mapped into a VM_LOCKED VMA, but the
135page is not marked as PageMlocked. Such pages will make it all the way to 223page is not marked as PG_mlocked. Such pages will make it all the way to
136shrink_page_list() where they will be detected when vmscan walks the reverse 224shrink_page_list() where they will be detected when vmscan walks the reverse
137map in try_to_unmap(). If try_to_unmap() returns SWAP_MLOCK, shrink_page_list() 225map in try_to_unmap(). If try_to_unmap() returns SWAP_MLOCK,
138will cull the page at that point. 226shrink_page_list() will cull the page at that point.
139 227
140To "cull" an unevictable page, vmscan simply puts the page back on the lru 228To "cull" an unevictable page, vmscan simply puts the page back on the LRU list
141list using putback_lru_page()--the inverse operation to isolate_lru_page()-- 229using putback_lru_page() - the inverse operation to isolate_lru_page() - after
142after dropping the page lock. Because the condition which makes the page 230dropping the page lock. Because the condition which makes the page unevictable
143unevictable may change once the page is unlocked, putback_lru_page() will 231may change once the page is unlocked, putback_lru_page() will recheck the
144recheck the unevictable state of a page that it places on the unevictable lru 232unevictable state of a page that it places on the unevictable list. If the
145list. If the page has become unevictable, putback_lru_page() removes it from 233page has become unevictable, putback_lru_page() removes it from the list and
146the list and retries, including the page_unevictable() test. Because such a 234retries, including the page_unevictable() test. Because such a race is a rare
147race is a rare event and movement of pages onto the unevictable list should be 235event and movement of pages onto the unevictable list should be rare, these
148rare, these extra evictabilty checks should not occur in the majority of calls 236extra evictabilty checks should not occur in the majority of calls to
149to putback_lru_page(). 237putback_lru_page().
150 238
151 239
152Mlocked Page: Prior Work 240=============
241MLOCKED PAGES
242=============
153 243
154The "Unevictable Mlocked Pages" infrastructure is based on work originally 244The unevictable page list is also useful for mlock(), in addition to ramfs and
245SYSV SHM. Note that mlock() is only available in CONFIG_MMU=y situations; in
246NOMMU situations, all mappings are effectively mlocked.
247
248
249HISTORY
250-------
251
252The "Unevictable mlocked Pages" infrastructure is based on work originally
155posted by Nick Piggin in an RFC patch entitled "mm: mlocked pages off LRU". 253posted by Nick Piggin in an RFC patch entitled "mm: mlocked pages off LRU".
156Nick posted his patch as an alternative to a patch posted by Christoph 254Nick posted his patch as an alternative to a patch posted by Christoph Lameter
157Lameter to achieve the same objective--hiding mlocked pages from vmscan. 255to achieve the same objective: hiding mlocked pages from vmscan.
158In Nick's patch, he used one of the struct page lru list link fields as a count 256
159of VM_LOCKED vmas that map the page. This use of the link field for a count 257In Nick's patch, he used one of the struct page LRU list link fields as a count
160prevented the management of the pages on an LRU list. Thus, mlocked pages were 258of VM_LOCKED VMAs that map the page. This use of the link field for a count
161not migratable as isolate_lru_page() could not find them and the lru list link 259prevented the management of the pages on an LRU list, and thus mlocked pages
162field was not available to the migration subsystem. Nick resolved this by 260were not migratable as isolate_lru_page() could not find them, and the LRU list
163putting mlocked pages back on the lru list before attempting to isolate them, 261link field was not available to the migration subsystem.
164thus abandoning the count of VM_LOCKED vmas. When Nick's patch was integrated 262
165with the Unevictable LRU work, the count was replaced by walking the reverse 263Nick resolved this by putting mlocked pages back on the lru list before
166map to determine whether any VM_LOCKED vmas mapped the page. More on this 264attempting to isolate them, thus abandoning the count of VM_LOCKED VMAs. When
167below. 265Nick's patch was integrated with the Unevictable LRU work, the count was
168 266replaced by walking the reverse map to determine whether any VM_LOCKED VMAs
169 267mapped the page. More on this below.
170Mlocked Pages: Basic Management 268
171 269
172Mlocked pages--pages mapped into a VM_LOCKED vma--represent one class of 270BASIC MANAGEMENT
173unevictable pages. When such a page has been "noticed" by the memory 271----------------
174management subsystem, the page is marked with the PG_mlocked [PageMlocked()] 272
175flag. A PageMlocked() page will be placed on the unevictable LRU list when 273mlocked pages - pages mapped into a VM_LOCKED VMA - are a class of unevictable
176it is added to the LRU. Pages can be "noticed" by memory management in 274pages. When such a page has been "noticed" by the memory management subsystem,
177several places: 275the page is marked with the PG_mlocked flag. This can be manipulated using the
178 276PageMlocked() functions.
1791) in the mlock()/mlockall() system call handlers. 277
1802) in the mmap() system call handler when mmap()ing a region with the 278A PG_mlocked page will be placed on the unevictable list when it is added to
181 MAP_LOCKED flag, or mmap()ing a region in a task that has called 279the LRU. Such pages can be "noticed" by memory management in several places:
182 mlockall() with the MCL_FUTURE flag. Both of these conditions result 280
183 in the VM_LOCKED flag being set for the vma. 281 (1) in the mlock()/mlockall() system call handlers;
1843) in the fault path, if mlocked pages are "culled" in the fault path, 282
185 and when a VM_LOCKED stack segment is expanded. 283 (2) in the mmap() system call handler when mmapping a region with the
1864) as mentioned above, in vmscan:shrink_page_list() when attempting to 284 MAP_LOCKED flag;
187 reclaim a page in a VM_LOCKED vma via try_to_unmap(). 285
188 286 (3) mmapping a region in a task that has called mlockall() with the MCL_FUTURE
189Mlocked pages become unlocked and rescued from the unevictable list when: 287 flag
190 288
1911) mapped in a range unlocked via the munlock()/munlockall() system calls. 289 (4) in the fault path, if mlocked pages are "culled" in the fault path,
1922) munmapped() out of the last VM_LOCKED vma that maps the page, including 290 and when a VM_LOCKED stack segment is expanded; or
193 unmapping at task exit. 291
1943) when the page is truncated from the last VM_LOCKED vma of an mmap()ed file. 292 (5) as mentioned above, in vmscan:shrink_page_list() when attempting to
1954) before a page is COWed in a VM_LOCKED vma. 293 reclaim a page in a VM_LOCKED VMA via try_to_unmap()
196 294
197 295all of which result in the VM_LOCKED flag being set for the VMA if it doesn't
198Mlocked Pages: mlock()/mlockall() System Call Handling 296already have it set.
297
298mlocked pages become unlocked and rescued from the unevictable list when:
299
300 (1) mapped in a range unlocked via the munlock()/munlockall() system calls;
301
302 (2) munmap()'d out of the last VM_LOCKED VMA that maps the page, including
303 unmapping at task exit;
304
305 (3) when the page is truncated from the last VM_LOCKED VMA of an mmapped file;
306 or
307
308 (4) before a page is COW'd in a VM_LOCKED VMA.
309
310
311mlock()/mlockall() SYSTEM CALL HANDLING
312---------------------------------------
199 313
200Both [do_]mlock() and [do_]mlockall() system call handlers call mlock_fixup() 314Both [do_]mlock() and [do_]mlockall() system call handlers call mlock_fixup()
201for each vma in the range specified by the call. In the case of mlockall(), 315for each VMA in the range specified by the call. In the case of mlockall(),
202this is the entire active address space of the task. Note that mlock_fixup() 316this is the entire active address space of the task. Note that mlock_fixup()
203is used for both mlock()ing and munlock()ing a range of memory. A call to 317is used for both mlocking and munlocking a range of memory. A call to mlock()
204mlock() an already VM_LOCKED vma, or to munlock() a vma that is not VM_LOCKED 318an already VM_LOCKED VMA, or to munlock() a VMA that is not VM_LOCKED is
205is treated as a no-op--mlock_fixup() simply returns. 319treated as a no-op, and mlock_fixup() simply returns.
206 320
207If the vma passes some filtering described in "Mlocked Pages: Filtering Vmas" 321If the VMA passes some filtering as described in "Filtering Special Vmas"
208below, mlock_fixup() will attempt to merge the vma with its neighbors or split 322below, mlock_fixup() will attempt to merge the VMA with its neighbors or split
209off a subset of the vma if the range does not cover the entire vma. Once the 323off a subset of the VMA if the range does not cover the entire VMA. Once the
210vma has been merged or split or neither, mlock_fixup() will call 324VMA has been merged or split or neither, mlock_fixup() will call
211__mlock_vma_pages_range() to fault in the pages via get_user_pages() and 325__mlock_vma_pages_range() to fault in the pages via get_user_pages() and to
212to mark the pages as mlocked via mlock_vma_page(). 326mark the pages as mlocked via mlock_vma_page().
213 327
214Note that the vma being mlocked might be mapped with PROT_NONE. In this case, 328Note that the VMA being mlocked might be mapped with PROT_NONE. In this case,
215get_user_pages() will be unable to fault in the pages. That's OK. If pages 329get_user_pages() will be unable to fault in the pages. That's okay. If pages
216do end up getting faulted into this VM_LOCKED vma, we'll handle them in the 330do end up getting faulted into this VM_LOCKED VMA, we'll handle them in the
217fault path or in vmscan. 331fault path or in vmscan.
218 332
219Also note that a page returned by get_user_pages() could be truncated or 333Also note that a page returned by get_user_pages() could be truncated or
220migrated out from under us, while we're trying to mlock it. To detect 334migrated out from under us, while we're trying to mlock it. To detect this,
221this, __mlock_vma_pages_range() tests the page_mapping after acquiring 335__mlock_vma_pages_range() checks page_mapping() after acquiring the page lock.
222the page lock. If the page is still associated with its mapping, we'll 336If the page is still associated with its mapping, we'll go ahead and call
223go ahead and call mlock_vma_page(). If the mapping is gone, we just 337mlock_vma_page(). If the mapping is gone, we just unlock the page and move on.
224unlock the page and move on. Worse case, this results in page mapped 338In the worst case, this will result in a page mapped in a VM_LOCKED VMA
225in a VM_LOCKED vma remaining on a normal LRU list without being 339remaining on a normal LRU list without being PageMlocked(). Again, vmscan will
226PageMlocked(). Again, vmscan will detect and cull such pages. 340detect and cull such pages.
227 341
228mlock_vma_page(), called with the page locked [N.B., not "mlocked"], will 342mlock_vma_page() will call TestSetPageMlocked() for each page returned by
229TestSetPageMlocked() for each page returned by get_user_pages(). We use 343get_user_pages(). We use TestSetPageMlocked() because the page might already
230TestSetPageMlocked() because the page might already be mlocked by another 344be mlocked by another task/VMA and we don't want to do extra work. We
231task/vma and we don't want to do extra work. We especially do not want to 345especially do not want to count an mlocked page more than once in the
232count an mlocked page more than once in the statistics. If the page was 346statistics. If the page was already mlocked, mlock_vma_page() need do nothing
233already mlocked, mlock_vma_page() is done. 347more.
234 348
235If the page was NOT already mlocked, mlock_vma_page() attempts to isolate the 349If the page was NOT already mlocked, mlock_vma_page() attempts to isolate the
236page from the LRU, as it is likely on the appropriate active or inactive list 350page from the LRU, as it is likely on the appropriate active or inactive list
237at that time. If the isolate_lru_page() succeeds, mlock_vma_page() will 351at that time. If the isolate_lru_page() succeeds, mlock_vma_page() will put
238putback the page--putback_lru_page()--which will notice that the page is now 352back the page - by calling putback_lru_page() - which will notice that the page
239mlocked and divert the page to the zone's unevictable LRU list. If 353is now mlocked and divert the page to the zone's unevictable list. If
240mlock_vma_page() is unable to isolate the page from the LRU, vmscan will handle 354mlock_vma_page() is unable to isolate the page from the LRU, vmscan will handle
241it later if/when it attempts to reclaim the page. 355it later if and when it attempts to reclaim the page.
242 356
243 357
244Mlocked Pages: Filtering Special Vmas 358FILTERING SPECIAL VMAS
359----------------------
245 360
246mlock_fixup() filters several classes of "special" vmas: 361mlock_fixup() filters several classes of "special" VMAs:
247 362
2481) vmas with VM_IO|VM_PFNMAP set are skipped entirely. The pages behind 3631) VMAs with VM_IO or VM_PFNMAP set are skipped entirely. The pages behind
249 these mappings are inherently pinned, so we don't need to mark them as 364 these mappings are inherently pinned, so we don't need to mark them as
250 mlocked. In any case, most of the pages have no struct page in which to 365 mlocked. In any case, most of the pages have no struct page in which to so
251 so mark the page. Because of this, get_user_pages() will fail for these 366 mark the page. Because of this, get_user_pages() will fail for these VMAs,
252 vmas, so there is no sense in attempting to visit them. 367 so there is no sense in attempting to visit them.
253 368
2542) vmas mapping hugetlbfs page are already effectively pinned into memory. 3692) VMAs mapping hugetlbfs page are already effectively pinned into memory. We
255 We don't need nor want to mlock() these pages. However, to preserve the 370 neither need nor want to mlock() these pages. However, to preserve the
256 prior behavior of mlock()--before the unevictable/mlock changes-- 371 prior behavior of mlock() - before the unevictable/mlock changes -
257 mlock_fixup() will call make_pages_present() in the hugetlbfs vma range 372 mlock_fixup() will call make_pages_present() in the hugetlbfs VMA range to
258 to allocate the huge pages and populate the ptes. 373 allocate the huge pages and populate the ptes.
259 374
2603) vmas with VM_DONTEXPAND|VM_RESERVED are generally user space mappings of 3753) VMAs with VM_DONTEXPAND or VM_RESERVED are generally userspace mappings of
261 kernel pages, such as the vdso page, relay channel pages, etc. These pages 376 kernel pages, such as the VDSO page, relay channel pages, etc. These pages
262 are inherently unevictable and are not managed on the LRU lists. 377 are inherently unevictable and are not managed on the LRU lists.
263 mlock_fixup() treats these vmas the same as hugetlbfs vmas. It calls 378 mlock_fixup() treats these VMAs the same as hugetlbfs VMAs. It calls
264 make_pages_present() to populate the ptes. 379 make_pages_present() to populate the ptes.
265 380
266Note that for all of these special vmas, mlock_fixup() does not set the 381Note that for all of these special VMAs, mlock_fixup() does not set the
267VM_LOCKED flag. Therefore, we won't have to deal with them later during 382VM_LOCKED flag. Therefore, we won't have to deal with them later during
268munlock() or munmap()--for example, at task exit. Neither does mlock_fixup() 383munlock(), munmap() or task exit. Neither does mlock_fixup() account these
269account these vmas against the task's "locked_vm". 384VMAs against the task's "locked_vm".
270 385
271Mlocked Pages: Downgrading the Mmap Semaphore. 386
272 387munlock()/munlockall() SYSTEM CALL HANDLING
273mlock_fixup() must be called with the mmap semaphore held for write, because 388-------------------------------------------
274it may have to merge or split vmas. However, mlocking a large region of 389
275memory can take a long time--especially if vmscan must reclaim pages to 390The munlock() and munlockall() system calls are handled by the same functions -
276satisfy the regions requirements. Faulting in a large region with the mmap 391do_mlock[all]() - as the mlock() and mlockall() system calls with the unlock vs
277semaphore held for write can hold off other faults on the address space, in 392lock operation indicated by an argument. So, these system calls are also
278the case of a multi-threaded task. It can also hold off scans of the task's 393handled by mlock_fixup(). Again, if called for an already munlocked VMA,
279address space via /proc. While testing under heavy load, it was observed that 394mlock_fixup() simply returns. Because of the VMA filtering discussed above,
280the ps(1) command could be held off for many minutes while a large segment was 395VM_LOCKED will not be set in any "special" VMAs. So, these VMAs will be
281mlock()ed down.
282
283To address this issue, and to make the system more responsive during mlock()ing
284of large segments, mlock_fixup() downgrades the mmap semaphore to read mode
285during the call to __mlock_vma_pages_range(). This works fine. However, the
286callers of mlock_fixup() expect the semaphore to be returned in write mode.
287So, mlock_fixup() "upgrades" the semphore to write mode. Linux does not
288support an atomic upgrade_sem() call, so mlock_fixup() must drop the semaphore
289and reacquire it in write mode. In a multi-threaded task, it is possible for
290the task memory map to change while the semaphore is dropped. Therefore,
291mlock_fixup() looks up the vma at the range start address after reacquiring
292the semaphore in write mode and verifies that it still covers the original
293range. If not, mlock_fixup() returns an error [-EAGAIN]. All callers of
294mlock_fixup() have been changed to deal with this new error condition.
295
296Note: when munlocking a region, all of the pages should already be resident--
297unless we have racing threads mlocking() and munlocking() regions. So,
298unlocking should not have to wait for page allocations nor faults of any kind.
299Therefore mlock_fixup() does not downgrade the semaphore for munlock().
300
301
302Mlocked Pages: munlock()/munlockall() System Call Handling
303
304The munlock() and munlockall() system calls are handled by the same functions--
305do_mlock[all]()--as the mlock() and mlockall() system calls with the unlock
306vs lock operation indicated by an argument. So, these system calls are also
307handled by mlock_fixup(). Again, if called for an already munlock()ed vma,
308mlock_fixup() simply returns. Because of the vma filtering discussed above,
309VM_LOCKED will not be set in any "special" vmas. So, these vmas will be
310ignored for munlock. 396ignored for munlock.
311 397
312If the vma is VM_LOCKED, mlock_fixup() again attempts to merge or split off 398If the VMA is VM_LOCKED, mlock_fixup() again attempts to merge or split off the
313the specified range. The range is then munlocked via the function 399specified range. The range is then munlocked via the function
314__mlock_vma_pages_range()--the same function used to mlock a vma range-- 400__mlock_vma_pages_range() - the same function used to mlock a VMA range -
315passing a flag to indicate that munlock() is being performed. 401passing a flag to indicate that munlock() is being performed.
316 402
317Because the vma access protections could have been changed to PROT_NONE after 403Because the VMA access protections could have been changed to PROT_NONE after
318faulting in and mlocking pages, get_user_pages() was unreliable for visiting 404faulting in and mlocking pages, get_user_pages() was unreliable for visiting
319these pages for munlocking. Because we don't want to leave pages mlocked(), 405these pages for munlocking. Because we don't want to leave pages mlocked,
320get_user_pages() was enhanced to accept a flag to ignore the permissions when 406get_user_pages() was enhanced to accept a flag to ignore the permissions when
321fetching the pages--all of which should be resident as a result of previous 407fetching the pages - all of which should be resident as a result of previous
322mlock()ing. 408mlocking.
323 409
324For munlock(), __mlock_vma_pages_range() unlocks individual pages by calling 410For munlock(), __mlock_vma_pages_range() unlocks individual pages by calling
325munlock_vma_page(). munlock_vma_page() unconditionally clears the PG_mlocked 411munlock_vma_page(). munlock_vma_page() unconditionally clears the PG_mlocked
326flag using TestClearPageMlocked(). As with mlock_vma_page(), munlock_vma_page() 412flag using TestClearPageMlocked(). As with mlock_vma_page(),
327use the Test*PageMlocked() function to handle the case where the page might 413munlock_vma_page() use the Test*PageMlocked() function to handle the case where
328have already been unlocked by another task. If the page was mlocked, 414the page might have already been unlocked by another task. If the page was
329munlock_vma_page() updates that zone statistics for the number of mlocked 415mlocked, munlock_vma_page() updates that zone statistics for the number of
330pages. Note, however, that at this point we haven't checked whether the page 416mlocked pages. Note, however, that at this point we haven't checked whether
331is mapped by other VM_LOCKED vmas. 417the page is mapped by other VM_LOCKED VMAs.
332 418
333We can't call try_to_munlock(), the function that walks the reverse map to check 419We can't call try_to_munlock(), the function that walks the reverse map to
334for other VM_LOCKED vmas, without first isolating the page from the LRU. 420check for other VM_LOCKED VMAs, without first isolating the page from the LRU.
335try_to_munlock() is a variant of try_to_unmap() and thus requires that the page 421try_to_munlock() is a variant of try_to_unmap() and thus requires that the page
336not be on an lru list. [More on these below.] However, the call to 422not be on an LRU list [more on these below]. However, the call to
337isolate_lru_page() could fail, in which case we couldn't try_to_munlock(). 423isolate_lru_page() could fail, in which case we couldn't try_to_munlock(). So,
338So, we go ahead and clear PG_mlocked up front, as this might be the only chance 424we go ahead and clear PG_mlocked up front, as this might be the only chance we
339we have. If we can successfully isolate the page, we go ahead and 425have. If we can successfully isolate the page, we go ahead and
340try_to_munlock(), which will restore the PG_mlocked flag and update the zone 426try_to_munlock(), which will restore the PG_mlocked flag and update the zone
341page statistics if it finds another vma holding the page mlocked. If we fail 427page statistics if it finds another VMA holding the page mlocked. If we fail
342to isolate the page, we'll have left a potentially mlocked page on the LRU. 428to isolate the page, we'll have left a potentially mlocked page on the LRU.
343This is fine, because we'll catch it later when/if vmscan tries to reclaim the 429This is fine, because we'll catch it later if and if vmscan tries to reclaim
344page. This should be relatively rare. 430the page. This should be relatively rare.
345 431
346Mlocked Pages: Migrating Them... 432
347 433MIGRATING MLOCKED PAGES
348A page that is being migrated has been isolated from the lru lists and is 434-----------------------
349held locked across unmapping of the page, updating the page's mapping 435
350[address_space] entry and copying the contents and state, until the 436A page that is being migrated has been isolated from the LRU lists and is held
351page table entry has been replaced with an entry that refers to the new 437locked across unmapping of the page, updating the page's address space entry
352page. Linux supports migration of mlocked pages and other unevictable 438and copying the contents and state, until the page table entry has been
353pages. This involves simply moving the PageMlocked and PageUnevictable states 439replaced with an entry that refers to the new page. Linux supports migration
354from the old page to the new page. 440of mlocked pages and other unevictable pages. This involves simply moving the
355 441PG_mlocked and PG_unevictable states from the old page to the new page.
356Note that page migration can race with mlocking or munlocking of the same 442
357page. This has been discussed from the mlock/munlock perspective in the 443Note that page migration can race with mlocking or munlocking of the same page.
358respective sections above. Both processes [migration, m[un]locking], hold 444This has been discussed from the mlock/munlock perspective in the respective
359the page locked. This provides the first level of synchronization. Page 445sections above. Both processes (migration and m[un]locking) hold the page
360migration zeros out the page_mapping of the old page before unlocking it, 446locked. This provides the first level of synchronization. Page migration
361so m[un]lock can skip these pages by testing the page mapping under page 447zeros out the page_mapping of the old page before unlocking it, so m[un]lock
362lock. 448can skip these pages by testing the page mapping under page lock.
363 449
364When completing page migration, we place the new and old pages back onto the 450To complete page migration, we place the new and old pages back onto the LRU
365lru after dropping the page lock. The "unneeded" page--old page on success, 451after dropping the page lock. The "unneeded" page - old page on success, new
366new page on failure--will be freed when the reference count held by the 452page on failure - will be freed when the reference count held by the migration
367migration process is released. To ensure that we don't strand pages on the 453process is released. To ensure that we don't strand pages on the unevictable
368unevictable list because of a race between munlock and migration, page 454list because of a race between munlock and migration, page migration uses the
369migration uses the putback_lru_page() function to add migrated pages back to 455putback_lru_page() function to add migrated pages back to the LRU.
370the lru. 456
371 457
372 458mmap(MAP_LOCKED) SYSTEM CALL HANDLING
373Mlocked Pages: mmap(MAP_LOCKED) System Call Handling 459-------------------------------------
374 460
375In addition the the mlock()/mlockall() system calls, an application can request 461In addition the the mlock()/mlockall() system calls, an application can request
376that a region of memory be mlocked using the MAP_LOCKED flag with the mmap() 462that a region of memory be mlocked supplying the MAP_LOCKED flag to the mmap()
377call. Furthermore, any mmap() call or brk() call that expands the heap by a 463call. Furthermore, any mmap() call or brk() call that expands the heap by a
378task that has previously called mlockall() with the MCL_FUTURE flag will result 464task that has previously called mlockall() with the MCL_FUTURE flag will result
379in the newly mapped memory being mlocked. Before the unevictable/mlock changes, 465in the newly mapped memory being mlocked. Before the unevictable/mlock
380the kernel simply called make_pages_present() to allocate pages and populate 466changes, the kernel simply called make_pages_present() to allocate pages and
381the page table. 467populate the page table.
382 468
383To mlock a range of memory under the unevictable/mlock infrastructure, the 469To mlock a range of memory under the unevictable/mlock infrastructure, the
384mmap() handler and task address space expansion functions call 470mmap() handler and task address space expansion functions call
385mlock_vma_pages_range() specifying the vma and the address range to mlock. 471mlock_vma_pages_range() specifying the vma and the address range to mlock.
386mlock_vma_pages_range() filters vmas like mlock_fixup(), as described above in 472mlock_vma_pages_range() filters VMAs like mlock_fixup(), as described above in
387"Mlocked Pages: Filtering Vmas". It will clear the VM_LOCKED flag, which will 473"Filtering Special VMAs". It will clear the VM_LOCKED flag, which will have
388have already been set by the caller, in filtered vmas. Thus these vma's need 474already been set by the caller, in filtered VMAs. Thus these VMA's need not be
389not be visited for munlock when the region is unmapped. 475visited for munlock when the region is unmapped.
390 476
391For "normal" vmas, mlock_vma_pages_range() calls __mlock_vma_pages_range() to 477For "normal" VMAs, mlock_vma_pages_range() calls __mlock_vma_pages_range() to
392fault/allocate the pages and mlock them. Again, like mlock_fixup(), 478fault/allocate the pages and mlock them. Again, like mlock_fixup(),
393mlock_vma_pages_range() downgrades the mmap semaphore to read mode before 479mlock_vma_pages_range() downgrades the mmap semaphore to read mode before
394attempting to fault/allocate and mlock the pages; and "upgrades" the semaphore 480attempting to fault/allocate and mlock the pages and "upgrades" the semaphore
395back to write mode before returning. 481back to write mode before returning.
396 482
397The callers of mlock_vma_pages_range() will have already added the memory 483The callers of mlock_vma_pages_range() will have already added the memory range
398range to be mlocked to the task's "locked_vm". To account for filtered vmas, 484to be mlocked to the task's "locked_vm". To account for filtered VMAs,
399mlock_vma_pages_range() returns the number of pages NOT mlocked. All of the 485mlock_vma_pages_range() returns the number of pages NOT mlocked. All of the
400callers then subtract a non-negative return value from the task's locked_vm. 486callers then subtract a non-negative return value from the task's locked_vm. A
401A negative return value represent an error--for example, from get_user_pages() 487negative return value represent an error - for example, from get_user_pages()
402attempting to fault in a vma with PROT_NONE access. In this case, we leave 488attempting to fault in a VMA with PROT_NONE access. In this case, we leave the
403the memory range accounted as locked_vm, as the protections could be changed 489memory range accounted as locked_vm, as the protections could be changed later
404later and pages allocated into that region. 490and pages allocated into that region.
405 491
406 492
407Mlocked Pages: munmap()/exit()/exec() System Call Handling 493munmap()/exit()/exec() SYSTEM CALL HANDLING
494-------------------------------------------
408 495
409When unmapping an mlocked region of memory, whether by an explicit call to 496When unmapping an mlocked region of memory, whether by an explicit call to
410munmap() or via an internal unmap from exit() or exec() processing, we must 497munmap() or via an internal unmap from exit() or exec() processing, we must
411munlock the pages if we're removing the last VM_LOCKED vma that maps the pages. 498munlock the pages if we're removing the last VM_LOCKED VMA that maps the pages.
412Before the unevictable/mlock changes, mlocking did not mark the pages in any 499Before the unevictable/mlock changes, mlocking did not mark the pages in any
413way, so unmapping them required no processing. 500way, so unmapping them required no processing.
414 501
415To munlock a range of memory under the unevictable/mlock infrastructure, the 502To munlock a range of memory under the unevictable/mlock infrastructure, the
416munmap() hander and task address space tear down function call 503munmap() handler and task address space call tear down function
417munlock_vma_pages_all(). The name reflects the observation that one always 504munlock_vma_pages_all(). The name reflects the observation that one always
418specifies the entire vma range when munlock()ing during unmap of a region. 505specifies the entire VMA range when munlock()ing during unmap of a region.
419Because of the vma filtering when mlocking() regions, only "normal" vmas that 506Because of the VMA filtering when mlocking() regions, only "normal" VMAs that
420actually contain mlocked pages will be passed to munlock_vma_pages_all(). 507actually contain mlocked pages will be passed to munlock_vma_pages_all().
421 508
422munlock_vma_pages_all() clears the VM_LOCKED vma flag and, like mlock_fixup() 509munlock_vma_pages_all() clears the VM_LOCKED VMA flag and, like mlock_fixup()
423for the munlock case, calls __munlock_vma_pages_range() to walk the page table 510for the munlock case, calls __munlock_vma_pages_range() to walk the page table
424for the vma's memory range and munlock_vma_page() each resident page mapped by 511for the VMA's memory range and munlock_vma_page() each resident page mapped by
425the vma. This effectively munlocks the page, only if this is the last 512the VMA. This effectively munlocks the page, only if this is the last
426VM_LOCKED vma that maps the page. 513VM_LOCKED VMA that maps the page.
427
428 514
429Mlocked Page: try_to_unmap()
430 515
431[Note: the code changes represented by this section are really quite small 516try_to_unmap()
432compared to the text to describe what happening and why, and to discuss the 517--------------
433implications.]
434 518
435Pages can, of course, be mapped into multiple vmas. Some of these vmas may 519Pages can, of course, be mapped into multiple VMAs. Some of these VMAs may
436have VM_LOCKED flag set. It is possible for a page mapped into one or more 520have VM_LOCKED flag set. It is possible for a page mapped into one or more
437VM_LOCKED vmas not to have the PG_mlocked flag set and therefore reside on one 521VM_LOCKED VMAs not to have the PG_mlocked flag set and therefore reside on one
438of the active or inactive LRU lists. This could happen if, for example, a 522of the active or inactive LRU lists. This could happen if, for example, a task
439task in the process of munlock()ing the page could not isolate the page from 523in the process of munlocking the page could not isolate the page from the LRU.
440the LRU. As a result, vmscan/shrink_page_list() might encounter such a page 524As a result, vmscan/shrink_page_list() might encounter such a page as described
441as described in "Unevictable Pages and Vmscan [shrink_*_list()]". To 525in section "vmscan's handling of unevictable pages". To handle this situation,
442handle this situation, try_to_unmap() has been enhanced to check for VM_LOCKED 526try_to_unmap() checks for VM_LOCKED VMAs while it is walking a page's reverse
443vmas while it is walking a page's reverse map. 527map.
444 528
445try_to_unmap() is always called, by either vmscan for reclaim or for page 529try_to_unmap() is always called, by either vmscan for reclaim or for page
446migration, with the argument page locked and isolated from the LRU. BUG_ON() 530migration, with the argument page locked and isolated from the LRU. Separate
447assertions enforce this requirement. Separate functions handle anonymous and 531functions handle anonymous and mapped file pages, as these types of pages have
448mapped file pages, as these types of pages have different reverse map 532different reverse map mechanisms.
449mechanisms. 533
450 534 (*) try_to_unmap_anon()
451 try_to_unmap_anon() 535
452 536 To unmap anonymous pages, each VMA in the list anchored in the anon_vma
453To unmap anonymous pages, each vma in the list anchored in the anon_vma must be 537 must be visited - at least until a VM_LOCKED VMA is encountered. If the
454visited--at least until a VM_LOCKED vma is encountered. If the page is being 538 page is being unmapped for migration, VM_LOCKED VMAs do not stop the
455unmapped for migration, VM_LOCKED vmas do not stop the process because mlocked 539 process because mlocked pages are migratable. However, for reclaim, if
456pages are migratable. However, for reclaim, if the page is mapped into a 540 the page is mapped into a VM_LOCKED VMA, the scan stops.
457VM_LOCKED vma, the scan stops. try_to_unmap() attempts to acquire the mmap 541
458semphore of the mm_struct to which the vma belongs in read mode. If this is 542 try_to_unmap_anon() attempts to acquire in read mode the mmap semphore of
459successful, try_to_unmap() will mlock the page via mlock_vma_page()--we 543 the mm_struct to which the VMA belongs. If this is successful, it will
460wouldn't have gotten to try_to_unmap() if the page were already mlocked--and 544 mlock the page via mlock_vma_page() - we wouldn't have gotten to
461will return SWAP_MLOCK, indicating that the page is unevictable. If the 545 try_to_unmap_anon() if the page were already mlocked - and will return
462mmap semaphore cannot be acquired, we are not sure whether the page is really 546 SWAP_MLOCK, indicating that the page is unevictable.
463unevictable or not. In this case, try_to_unmap() will return SWAP_AGAIN. 547
464 548 If the mmap semaphore cannot be acquired, we are not sure whether the page
465 try_to_unmap_file() -- linear mappings 549 is really unevictable or not. In this case, try_to_unmap_anon() will
466 550 return SWAP_AGAIN.
467Unmapping of a mapped file page works the same, except that the scan visits 551
468all vmas that maps the page's index/page offset in the page's mapping's 552 (*) try_to_unmap_file() - linear mappings
469reverse map priority search tree. It must also visit each vma in the page's 553
470mapping's non-linear list, if the list is non-empty. As for anonymous pages, 554 Unmapping of a mapped file page works the same as for anonymous mappings,
471on encountering a VM_LOCKED vma for a mapped file page, try_to_unmap() will 555 except that the scan visits all VMAs that map the page's index/page offset
472attempt to acquire the associated mm_struct's mmap semaphore to mlock the page, 556 in the page's mapping's reverse map priority search tree. It also visits
473returning SWAP_MLOCK if this is successful, and SWAP_AGAIN, if not. 557 each VMA in the page's mapping's non-linear list, if the list is
474 558 non-empty.
475 try_to_unmap_file() -- non-linear mappings 559
476 560 As for anonymous pages, on encountering a VM_LOCKED VMA for a mapped file
477If a page's mapping contains a non-empty non-linear mapping vma list, then 561 page, try_to_unmap_file() will attempt to acquire the associated
478try_to_un{map|lock}() must also visit each vma in that list to determine 562 mm_struct's mmap semaphore to mlock the page, returning SWAP_MLOCK if this
479whether the page is mapped in a VM_LOCKED vma. Again, the scan must visit 563 is successful, and SWAP_AGAIN, if not.
480all vmas in the non-linear list to ensure that the pages is not/should not be 564
481mlocked. If a VM_LOCKED vma is found in the list, the scan could terminate. 565 (*) try_to_unmap_file() - non-linear mappings
482However, there is no easy way to determine whether the page is actually mapped 566
483in a given vma--either for unmapping or testing whether the VM_LOCKED vma 567 If a page's mapping contains a non-empty non-linear mapping VMA list, then
484actually pins the page. 568 try_to_un{map|lock}() must also visit each VMA in that list to determine
485 569 whether the page is mapped in a VM_LOCKED VMA. Again, the scan must visit
486So, try_to_unmap_file() handles non-linear mappings by scanning a certain 570 all VMAs in the non-linear list to ensure that the pages is not/should not
487number of pages--a "cluster"--in each non-linear vma associated with the page's 571 be mlocked.
488mapping, for each file mapped page that vmscan tries to unmap. If this happens 572
489to unmap the page we're trying to unmap, try_to_unmap() will notice this on 573 If a VM_LOCKED VMA is found in the list, the scan could terminate.
490return--(page_mapcount(page) == 0)--and return SWAP_SUCCESS. Otherwise, it 574 However, there is no easy way to determine whether the page is actually
491will return SWAP_AGAIN, causing vmscan to recirculate this page. We take 575 mapped in a given VMA - either for unmapping or testing whether the
492advantage of the cluster scan in try_to_unmap_cluster() as follows: 576 VM_LOCKED VMA actually pins the page.
493 577
494For each non-linear vma, try_to_unmap_cluster() attempts to acquire the mmap 578 try_to_unmap_file() handles non-linear mappings by scanning a certain
495semaphore of the associated mm_struct for read without blocking. If this 579 number of pages - a "cluster" - in each non-linear VMA associated with the
496attempt is successful and the vma is VM_LOCKED, try_to_unmap_cluster() will 580 page's mapping, for each file mapped page that vmscan tries to unmap. If
497retain the mmap semaphore for the scan; otherwise it drops it here. Then, 581 this happens to unmap the page we're trying to unmap, try_to_unmap() will
498for each page in the cluster, if we're holding the mmap semaphore for a locked 582 notice this on return (page_mapcount(page) will be 0) and return
499vma, try_to_unmap_cluster() calls mlock_vma_page() to mlock the page. This 583 SWAP_SUCCESS. Otherwise, it will return SWAP_AGAIN, causing vmscan to
500call is a no-op if the page is already locked, but will mlock any pages in 584 recirculate this page. We take advantage of the cluster scan in
501the non-linear mapping that happen to be unlocked. If one of the pages so 585 try_to_unmap_cluster() as follows:
502mlocked is the page passed in to try_to_unmap(), try_to_unmap_cluster() will 586
503return SWAP_MLOCK, rather than the default SWAP_AGAIN. This will allow vmscan 587 For each non-linear VMA, try_to_unmap_cluster() attempts to acquire the
504to cull the page, rather than recirculating it on the inactive list. Again, 588 mmap semaphore of the associated mm_struct for read without blocking.
505if try_to_unmap_cluster() cannot acquire the vma's mmap sem, it returns 589
506SWAP_AGAIN, indicating that the page is mapped by a VM_LOCKED vma, but 590 If this attempt is successful and the VMA is VM_LOCKED,
507couldn't be mlocked. 591 try_to_unmap_cluster() will retain the mmap semaphore for the scan;
508 592 otherwise it drops it here.
509 593
510Mlocked pages: try_to_munlock() Reverse Map Scan 594 Then, for each page in the cluster, if we're holding the mmap semaphore
511 595 for a locked VMA, try_to_unmap_cluster() calls mlock_vma_page() to
512TODO/FIXME: a better name might be page_mlocked()--analogous to the 596 mlock the page. This call is a no-op if the page is already locked,
513page_referenced() reverse map walker. 597 but will mlock any pages in the non-linear mapping that happen to be
514 598 unlocked.
515When munlock_vma_page()--see "Mlocked Pages: munlock()/munlockall() 599
516System Call Handling" above--tries to munlock a page, it needs to 600 If one of the pages so mlocked is the page passed in to try_to_unmap(),
517determine whether or not the page is mapped by any VM_LOCKED vma, without 601 try_to_unmap_cluster() will return SWAP_MLOCK, rather than the default
518actually attempting to unmap all ptes from the page. For this purpose, the 602 SWAP_AGAIN. This will allow vmscan to cull the page, rather than
519unevictable/mlock infrastructure introduced a variant of try_to_unmap() called 603 recirculating it on the inactive list.
520try_to_munlock(). 604
605 Again, if try_to_unmap_cluster() cannot acquire the VMA's mmap sem, it
606 returns SWAP_AGAIN, indicating that the page is mapped by a VM_LOCKED
607 VMA, but couldn't be mlocked.
608
609
610try_to_munlock() REVERSE MAP SCAN
611---------------------------------
612
613 [!] TODO/FIXME: a better name might be page_mlocked() - analogous to the
614 page_referenced() reverse map walker.
615
616When munlock_vma_page() [see section "munlock()/munlockall() System Call
617Handling" above] tries to munlock a page, it needs to determine whether or not
618the page is mapped by any VM_LOCKED VMA without actually attempting to unmap
619all PTEs from the page. For this purpose, the unevictable/mlock infrastructure
620introduced a variant of try_to_unmap() called try_to_munlock().
521 621
522try_to_munlock() calls the same functions as try_to_unmap() for anonymous and 622try_to_munlock() calls the same functions as try_to_unmap() for anonymous and
523mapped file pages with an additional argument specifing unlock versus unmap 623mapped file pages with an additional argument specifing unlock versus unmap
524processing. Again, these functions walk the respective reverse maps looking 624processing. Again, these functions walk the respective reverse maps looking
525for VM_LOCKED vmas. When such a vma is found for anonymous pages and file 625for VM_LOCKED VMAs. When such a VMA is found for anonymous pages and file
526pages mapped in linear VMAs, as in the try_to_unmap() case, the functions 626pages mapped in linear VMAs, as in the try_to_unmap() case, the functions
527attempt to acquire the associated mmap semphore, mlock the page via 627attempt to acquire the associated mmap semphore, mlock the page via
528mlock_vma_page() and return SWAP_MLOCK. This effectively undoes the 628mlock_vma_page() and return SWAP_MLOCK. This effectively undoes the
529pre-clearing of the page's PG_mlocked done by munlock_vma_page. 629pre-clearing of the page's PG_mlocked done by munlock_vma_page.
530 630
531If try_to_unmap() is unable to acquire a VM_LOCKED vma's associated mmap 631If try_to_unmap() is unable to acquire a VM_LOCKED VMA's associated mmap
532semaphore, it will return SWAP_AGAIN. This will allow shrink_page_list() 632semaphore, it will return SWAP_AGAIN. This will allow shrink_page_list() to
533to recycle the page on the inactive list and hope that it has better luck 633recycle the page on the inactive list and hope that it has better luck with the
534with the page next time. 634page next time.
535 635
536For file pages mapped into non-linear vmas, the try_to_munlock() logic works 636For file pages mapped into non-linear VMAs, the try_to_munlock() logic works
537slightly differently. On encountering a VM_LOCKED non-linear vma that might 637slightly differently. On encountering a VM_LOCKED non-linear VMA that might
538map the page, try_to_munlock() returns SWAP_AGAIN without actually mlocking 638map the page, try_to_munlock() returns SWAP_AGAIN without actually mlocking the
539the page. munlock_vma_page() will just leave the page unlocked and let 639page. munlock_vma_page() will just leave the page unlocked and let vmscan deal
540vmscan deal with it--the usual fallback position. 640with it - the usual fallback position.
541 641
542Note that try_to_munlock()'s reverse map walk must visit every vma in a pages' 642Note that try_to_munlock()'s reverse map walk must visit every VMA in a page's
543reverse map to determine that a page is NOT mapped into any VM_LOCKED vma. 643reverse map to determine that a page is NOT mapped into any VM_LOCKED VMA.
544However, the scan can terminate when it encounters a VM_LOCKED vma and can 644However, the scan can terminate when it encounters a VM_LOCKED VMA and can
545successfully acquire the vma's mmap semphore for read and mlock the page. 645successfully acquire the VMA's mmap semphore for read and mlock the page.
546Although try_to_munlock() can be called many [very many!] times when 646Although try_to_munlock() might be called a great many times when munlocking a
547munlock()ing a large region or tearing down a large address space that has been 647large region or tearing down a large address space that has been mlocked via
548mlocked via mlockall(), overall this is a fairly rare event. 648mlockall(), overall this is a fairly rare event.
549 649
550Mlocked Page: Page Reclaim in shrink_*_list() 650
551 651PAGE RECLAIM IN shrink_*_list()
552shrink_active_list() culls any obviously unevictable pages--i.e., 652-------------------------------
553!page_evictable(page, NULL)--diverting these to the unevictable lru 653
554list. However, shrink_active_list() only sees unevictable pages that 654shrink_active_list() culls any obviously unevictable pages - i.e.
555made it onto the active/inactive lru lists. Note that these pages do not 655!page_evictable(page, NULL) - diverting these to the unevictable list.
556have PageUnevictable set--otherwise, they would be on the unevictable list and 656However, shrink_active_list() only sees unevictable pages that made it onto the
557shrink_active_list would never see them. 657active/inactive lru lists. Note that these pages do not have PageUnevictable
658set - otherwise they would be on the unevictable list and shrink_active_list
659would never see them.
558 660
559Some examples of these unevictable pages on the LRU lists are: 661Some examples of these unevictable pages on the LRU lists are:
560 662
5611) ramfs pages that have been placed on the lru lists when first allocated. 663 (1) ramfs pages that have been placed on the LRU lists when first allocated.
664
665 (2) SHM_LOCK'd shared memory pages. shmctl(SHM_LOCK) does not attempt to
666 allocate or fault in the pages in the shared memory region. This happens
667 when an application accesses the page the first time after SHM_LOCK'ing
668 the segment.
562 669
5632) SHM_LOCKed shared memory pages. shmctl(SHM_LOCK) does not attempt to 670 (3) mlocked pages that could not be isolated from the LRU and moved to the
564 allocate or fault in the pages in the shared memory region. This happens 671 unevictable list in mlock_vma_page().
565 when an application accesses the page the first time after SHM_LOCKing
566 the segment.
567 672
5683) Mlocked pages that could not be isolated from the lru and moved to the 673 (4) Pages mapped into multiple VM_LOCKED VMAs, but try_to_munlock() couldn't
569 unevictable list in mlock_vma_page(). 674 acquire the VMA's mmap semaphore to test the flags and set PageMlocked.
675 munlock_vma_page() was forced to let the page back on to the normal LRU
676 list for vmscan to handle.
570 677
5713) Pages mapped into multiple VM_LOCKED vmas, but try_to_munlock() couldn't 678shrink_inactive_list() also diverts any unevictable pages that it finds on the
572 acquire the vma's mmap semaphore to test the flags and set PageMlocked. 679inactive lists to the appropriate zone's unevictable list.
573 munlock_vma_page() was forced to let the page back on to the normal
574 LRU list for vmscan to handle.
575 680
576shrink_inactive_list() also culls any unevictable pages that it finds on 681shrink_inactive_list() should only see SHM_LOCK'd pages that became SHM_LOCK'd
577the inactive lists, again diverting them to the appropriate zone's unevictable 682after shrink_active_list() had moved them to the inactive list, or pages mapped
578lru list. shrink_inactive_list() should only see SHM_LOCKed pages that became 683into VM_LOCKED VMAs that munlock_vma_page() couldn't isolate from the LRU to
579SHM_LOCKed after shrink_active_list() had moved them to the inactive list, or 684recheck via try_to_munlock(). shrink_inactive_list() won't notice the latter,
580pages mapped into VM_LOCKED vmas that munlock_vma_page() couldn't isolate from 685but will pass on to shrink_page_list().
581the lru to recheck via try_to_munlock(). shrink_inactive_list() won't notice
582the latter, but will pass on to shrink_page_list().
583 686
584shrink_page_list() again culls obviously unevictable pages that it could 687shrink_page_list() again culls obviously unevictable pages that it could
585encounter for similar reason to shrink_inactive_list(). Pages mapped into 688encounter for similar reason to shrink_inactive_list(). Pages mapped into
586VM_LOCKED vmas but without PG_mlocked set will make it all the way to 689VM_LOCKED VMAs but without PG_mlocked set will make it all the way to
587try_to_unmap(). shrink_page_list() will divert them to the unevictable list 690try_to_unmap(). shrink_page_list() will divert them to the unevictable list
588when try_to_unmap() returns SWAP_MLOCK, as discussed above. 691when try_to_unmap() returns SWAP_MLOCK, as discussed above.
diff --git a/MAINTAINERS b/MAINTAINERS
index b5160a21c490..77f277e1b4b9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -461,7 +461,7 @@ F: arch/x86/include/asm/amd_iommu*.h
461 461
462AMD MICROCODE UPDATE SUPPORT 462AMD MICROCODE UPDATE SUPPORT
463P: Andreas Herrmann 463P: Andreas Herrmann
464M: andeas.herrmann3@amd.com 464M: andreas.herrmann3@amd.com
465L: amd64-microcode@amd64.org 465L: amd64-microcode@amd64.org
466S: Supported 466S: Supported
467F: arch/x86/kernel/microcode_amd.c 467F: arch/x86/kernel/microcode_amd.c
@@ -543,6 +543,14 @@ S: Maintained
543F: arch/arm/lib/floppydma.S 543F: arch/arm/lib/floppydma.S
544F: arch/arm/include/asm/floppy.h 544F: arch/arm/include/asm/floppy.h
545 545
546ARM PORT
547P: Russell King
548M: linux@arm.linux.org.uk
549L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
550W: http://www.arm.linux.org.uk/
551S: Maintained
552F: arch/arm/
553
546ARM PRIMECELL MMCI PL180/1 DRIVER 554ARM PRIMECELL MMCI PL180/1 DRIVER
547S: Orphan 555S: Orphan
548F: drivers/mmc/host/mmci.* 556F: drivers/mmc/host/mmci.*
@@ -592,6 +600,13 @@ M: kernel@wantstofly.org
592L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 600L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
593S: Maintained 601S: Maintained
594 602
603ARM/CLKDEV SUPPORT
604P: Russell King
605M: linux@arm.linux.org.uk
606L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
607F: arch/arm/common/clkdev.c
608F: arch/arm/include/asm/clkdev.h
609
595ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT 610ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
596P: Mike Rapoport 611P: Mike Rapoport
597M: mike@compulab.co.il 612M: mike@compulab.co.il
@@ -610,6 +625,15 @@ L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
610T: git git://gitorious.org/linux-gemini/mainline.git 625T: git git://gitorious.org/linux-gemini/mainline.git
611S: Maintained 626S: Maintained
612 627
628ARM/EBSA110 MACHINE SUPPORT
629P: Russell King
630M: linux@arm.linux.org.uk
631L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
632W: http://www.arm.linux.org.uk/
633S: Maintained
634F: arch/arm/mach-ebsa110/
635F: drivers/net/arm/am79c961a.*
636
613ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6) 637ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
614P: Daniel Ribeiro 638P: Daniel Ribeiro
615M: drwyrm@gmail.com 639M: drwyrm@gmail.com
@@ -627,6 +651,15 @@ M: paulius.zaleckas@teltonika.lt
627L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 651L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
628S: Maintained 652S: Maintained
629 653
654ARM/FOOTBRIDGE ARCHITECTURE
655P: Russell King
656M: linux@arm.linux.org.uk
657L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
658W: http://www.arm.linux.org.uk/
659S: Maintained
660F: arch/arm/include/asm/hardware/dec21285.h
661F: arch/arm/mach-footbridge/
662
630ARM/FREESCALE IMX / MXC ARM ARCHITECTURE 663ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
631P: Sascha Hauer 664P: Sascha Hauer
632M: kernel@pengutronix.de 665M: kernel@pengutronix.de
@@ -767,19 +800,27 @@ M: kernel@wantstofly.org
767L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 800L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
768S: Maintained 801S: Maintained
769 802
803ARM/RISCPC ARCHITECTURE
804P: Russell King
805M: linux@arm.linux.org.uk
806L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
807W: http://www.arm.linux.org.uk/
808S: Maintained
809F: arch/arm/common/time-acorn.c
810F: arch/arm/include/asm/hardware/entry-macro-iomd.S
811F: arch/arm/include/asm/hardware/ioc.h
812F: arch/arm/include/asm/hardware/iomd.h
813F: arch/arm/include/asm/hardware/memc.h
814F: arch/arm/mach-rpc/
815F: drivers/net/arm/ether*
816F: drivers/scsi/arm/
817
770ARM/SHARK MACHINE SUPPORT 818ARM/SHARK MACHINE SUPPORT
771P: Alexander Schulz 819P: Alexander Schulz
772M: alex@shark-linux.de 820M: alex@shark-linux.de
773W: http://www.shark-linux.de/shark.html 821W: http://www.shark-linux.de/shark.html
774S: Maintained 822S: Maintained
775 823
776ARM/STRONGARM110 PORT
777P: Russell King
778M: rmk@arm.linux.org.uk
779L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
780W: http://www.arm.linux.org.uk/
781S: Maintained
782
783ARM/S3C2410 ARM ARCHITECTURE 824ARM/S3C2410 ARM ARCHITECTURE
784P: Ben Dooks 825P: Ben Dooks
785M: ben-linux@fluff.org 826M: ben-linux@fluff.org
@@ -813,6 +854,14 @@ L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
813W: http://www.mcuos.com 854W: http://www.mcuos.com
814S: Maintained 855S: Maintained
815 856
857ARM/VFP SUPPORT
858P: Russell King
859M: linux@arm.linux.org.uk
860L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
861W: http://www.arm.linux.org.uk/
862S: Maintained
863F: arch/arm/vfp/
864
816ARPD SUPPORT 865ARPD SUPPORT
817P: Jonathan Layes 866P: Jonathan Layes
818L: netdev@vger.kernel.org 867L: netdev@vger.kernel.org
@@ -1244,6 +1293,14 @@ S: Maintained
1244F: Documentation/video4linux/bttv/ 1293F: Documentation/video4linux/bttv/
1245F: drivers/media/video/bt8xx/bttv* 1294F: drivers/media/video/bt8xx/bttv*
1246 1295
1296CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
1297P: David Howells
1298M: dhowells@redhat.com
1299L: linux-cachefs@redhat.com
1300S: Supported
1301F: Documentation/filesystems/caching/cachefiles.txt
1302F: fs/cachefiles/
1303
1247CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER 1304CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
1248P: Jonathan Corbet 1305P: Jonathan Corbet
1249M: corbet@lwn.net 1306M: corbet@lwn.net
@@ -1293,12 +1350,9 @@ L: cbe-oss-dev@ozlabs.org
1293W: http://www.ibm.com/developerworks/power/cell/ 1350W: http://www.ibm.com/developerworks/power/cell/
1294S: Supported 1351S: Supported
1295F: arch/powerpc/include/asm/cell*.h 1352F: arch/powerpc/include/asm/cell*.h
1296F: arch/powerpc/include/asm/lv1call.h
1297F: arch/powerpc/include/asm/ps3*.h
1298F: arch/powerpc/include/asm/spu*.h 1353F: arch/powerpc/include/asm/spu*.h
1299F: arch/powerpc/oprofile/*cell* 1354F: arch/powerpc/oprofile/*cell*
1300F: arch/powerpc/platforms/cell/ 1355F: arch/powerpc/platforms/cell/
1301F: arch/powerpc/platforms/ps3/
1302 1356
1303CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM: 1357CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
1304P: David Vrabel 1358P: David Vrabel
@@ -1385,6 +1439,11 @@ S: Maintained
1385F: Documentation/input/cs461x.txt 1439F: Documentation/input/cs461x.txt
1386F: sound/pci/cs46xx/ 1440F: sound/pci/cs46xx/
1387 1441
1442CLK API
1443P: Russell King
1444M: linux@arm.linux.org.uk
1445F: include/linux/clk.h
1446
1388CODA FILE SYSTEM 1447CODA FILE SYSTEM
1389P: Jan Harkes 1448P: Jan Harkes
1390M: jaharkes@cs.cmu.edu 1449M: jaharkes@cs.cmu.edu
@@ -1589,7 +1648,8 @@ F: drivers/infiniband/hw/cxgb3/
1589 1648
1590CYBERPRO FB DRIVER 1649CYBERPRO FB DRIVER
1591P: Russell King 1650P: Russell King
1592M: rmk@arm.linux.org.uk 1651M: linux@arm.linux.org.uk
1652L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
1593W: http://www.arm.linux.org.uk/ 1653W: http://www.arm.linux.org.uk/
1594S: Maintained 1654S: Maintained
1595F: drivers/video/cyber2000fb.* 1655F: drivers/video/cyber2000fb.*
@@ -1907,7 +1967,7 @@ F: fs/ecryptfs/
1907EDAC-CORE 1967EDAC-CORE
1908P: Doug Thompson 1968P: Doug Thompson
1909M: dougthompson@xmission.com 1969M: dougthompson@xmission.com
1910L: bluesmoke-devel@lists.sourceforge.net 1970L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1911W: bluesmoke.sourceforge.net 1971W: bluesmoke.sourceforge.net
1912S: Supported 1972S: Supported
1913F: Documentation/edac.txt 1973F: Documentation/edac.txt
@@ -1919,7 +1979,7 @@ P: Mark Gross
1919P: Doug Thompson 1979P: Doug Thompson
1920M: mark.gross@intel.com 1980M: mark.gross@intel.com
1921M: dougthompson@xmission.com 1981M: dougthompson@xmission.com
1922L: bluesmoke-devel@lists.sourceforge.net 1982L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1923W: bluesmoke.sourceforge.net 1983W: bluesmoke.sourceforge.net
1924S: Maintained 1984S: Maintained
1925F: drivers/edac/e752x_edac.c 1985F: drivers/edac/e752x_edac.c
@@ -1927,7 +1987,7 @@ F: drivers/edac/e752x_edac.c
1927EDAC-E7XXX 1987EDAC-E7XXX
1928P: Doug Thompson 1988P: Doug Thompson
1929M: dougthompson@xmission.com 1989M: dougthompson@xmission.com
1930L: bluesmoke-devel@lists.sourceforge.net 1990L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1931W: bluesmoke.sourceforge.net 1991W: bluesmoke.sourceforge.net
1932S: Maintained 1992S: Maintained
1933F: drivers/edac/e7xxx_edac.c 1993F: drivers/edac/e7xxx_edac.c
@@ -1935,7 +1995,7 @@ F: drivers/edac/e7xxx_edac.c
1935EDAC-I82443BXGX 1995EDAC-I82443BXGX
1936P: Tim Small 1996P: Tim Small
1937M: tim@buttersideup.com 1997M: tim@buttersideup.com
1938L: bluesmoke-devel@lists.sourceforge.net 1998L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1939W: bluesmoke.sourceforge.net 1999W: bluesmoke.sourceforge.net
1940S: Maintained 2000S: Maintained
1941F: drivers/edac/i82443bxgx_edac.c 2001F: drivers/edac/i82443bxgx_edac.c
@@ -1943,7 +2003,7 @@ F: drivers/edac/i82443bxgx_edac.c
1943EDAC-I3000 2003EDAC-I3000
1944P: Jason Uhlenkott 2004P: Jason Uhlenkott
1945M: juhlenko@akamai.com 2005M: juhlenko@akamai.com
1946L: bluesmoke-devel@lists.sourceforge.net 2006L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1947W: bluesmoke.sourceforge.net 2007W: bluesmoke.sourceforge.net
1948S: Maintained 2008S: Maintained
1949F: drivers/edac/i3000_edac.c 2009F: drivers/edac/i3000_edac.c
@@ -1951,7 +2011,7 @@ F: drivers/edac/i3000_edac.c
1951EDAC-I5000 2011EDAC-I5000
1952P: Doug Thompson 2012P: Doug Thompson
1953M: dougthompson@xmission.com 2013M: dougthompson@xmission.com
1954L: bluesmoke-devel@lists.sourceforge.net 2014L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1955W: bluesmoke.sourceforge.net 2015W: bluesmoke.sourceforge.net
1956S: Maintained 2016S: Maintained
1957F: drivers/edac/i5000_edac.c 2017F: drivers/edac/i5000_edac.c
@@ -1959,7 +2019,7 @@ F: drivers/edac/i5000_edac.c
1959EDAC-I5400 2019EDAC-I5400
1960P: Mauro Carvalho Chehab 2020P: Mauro Carvalho Chehab
1961M: mchehab@redhat.com 2021M: mchehab@redhat.com
1962L: bluesmoke-devel@lists.sourceforge.net 2022L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1963W: bluesmoke.sourceforge.net 2023W: bluesmoke.sourceforge.net
1964S: Maintained 2024S: Maintained
1965F: drivers/edac/i5400_edac.c 2025F: drivers/edac/i5400_edac.c
@@ -1969,7 +2029,7 @@ P: Ranganathan Desikan
1969P: Arvind R. 2029P: Arvind R.
1970M: rdesikan@jetzbroadband.com 2030M: rdesikan@jetzbroadband.com
1971M: arvind@acarlab.com 2031M: arvind@acarlab.com
1972L: bluesmoke-devel@lists.sourceforge.net 2032L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1973W: bluesmoke.sourceforge.net 2033W: bluesmoke.sourceforge.net
1974S: Maintained 2034S: Maintained
1975F: drivers/edac/i82975x_edac.c 2035F: drivers/edac/i82975x_edac.c
@@ -1977,7 +2037,7 @@ F: drivers/edac/i82975x_edac.c
1977EDAC-PASEMI 2037EDAC-PASEMI
1978P: Egor Martovetsky 2038P: Egor Martovetsky
1979M: egor@pasemi.com 2039M: egor@pasemi.com
1980L: bluesmoke-devel@lists.sourceforge.net 2040L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1981W: bluesmoke.sourceforge.net 2041W: bluesmoke.sourceforge.net
1982S: Maintained 2042S: Maintained
1983F: drivers/edac/pasemi_edac.c 2043F: drivers/edac/pasemi_edac.c
@@ -1985,7 +2045,7 @@ F: drivers/edac/pasemi_edac.c
1985EDAC-R82600 2045EDAC-R82600
1986P: Tim Small 2046P: Tim Small
1987M: tim@buttersideup.com 2047M: tim@buttersideup.com
1988L: bluesmoke-devel@lists.sourceforge.net 2048L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1989W: bluesmoke.sourceforge.net 2049W: bluesmoke.sourceforge.net
1990S: Maintained 2050S: Maintained
1991F: drivers/edac/r82600_edac.c 2051F: drivers/edac/r82600_edac.c
@@ -2015,6 +2075,8 @@ F: drivers/infiniband/hw/ehca/
2015EMBEDDED LINUX 2075EMBEDDED LINUX
2016P: Paul Gortmaker 2076P: Paul Gortmaker
2017M: paul.gortmaker@windriver.com 2077M: paul.gortmaker@windriver.com
2078P: Matt Mackall
2079M: mpm@selenic.com
2018P: David Woodhouse 2080P: David Woodhouse
2019M: dwmw2@infradead.org 2081M: dwmw2@infradead.org
2020L: linux-embedded@vger.kernel.org 2082L: linux-embedded@vger.kernel.org
@@ -2283,6 +2345,15 @@ F: Documentation/power/freezing-of-tasks.txt
2283F: include/linux/freezer.h 2345F: include/linux/freezer.h
2284F: kernel/freezer.c 2346F: kernel/freezer.c
2285 2347
2348FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
2349P: David Howells
2350M: dhowells@redhat.com
2351L: linux-cachefs@redhat.com
2352S: Supported
2353F: Documentation/filesystems/caching/
2354F: fs/fscache/
2355F: include/linux/fscache*.h
2356
2286FTRACE 2357FTRACE
2287P: Steven Rostedt 2358P: Steven Rostedt
2288M: rostedt@goodmis.org 2359M: rostedt@goodmis.org
@@ -2503,7 +2574,6 @@ F: kernel/power/
2503F: include/linux/suspend.h 2574F: include/linux/suspend.h
2504F: include/linux/freezer.h 2575F: include/linux/freezer.h
2505F: include/linux/pm.h 2576F: include/linux/pm.h
2506F: include/asm-*/suspend*.h
2507F: arch/*/include/asm/suspend*.h 2577F: arch/*/include/asm/suspend*.h
2508 2578
2509HID CORE LAYER 2579HID CORE LAYER
@@ -2605,8 +2675,8 @@ S: Maintained
2605F: fs/hpfs/ 2675F: fs/hpfs/
2606 2676
2607HSO 3G MODEM DRIVER 2677HSO 3G MODEM DRIVER
2608P: Denis Joseph Barrow 2678P: Jan Dumon
2609M: d.barow@option.com 2679M: j.dumon@option.com
2610W: http://www.pharscape.org 2680W: http://www.pharscape.org
2611S: Maintained 2681S: Maintained
2612F: drivers/net/usb/hso.c 2682F: drivers/net/usb/hso.c
@@ -2701,7 +2771,7 @@ IDE SUBSYSTEM
2701P: Bartlomiej Zolnierkiewicz 2771P: Bartlomiej Zolnierkiewicz
2702M: bzolnier@gmail.com 2772M: bzolnier@gmail.com
2703L: linux-ide@vger.kernel.org 2773L: linux-ide@vger.kernel.org
2704T: quilt kernel.org/pub/linux/kernel/people/bart/pata-2.6/ 2774T: git git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6.git
2705S: Maintained 2775S: Maintained
2706F: Documentation/ide/ 2776F: Documentation/ide/
2707F: drivers/ide/ 2777F: drivers/ide/
@@ -3281,7 +3351,7 @@ P: Eduard - Gabriel Munteanu
3281M: eduard.munteanu@linux360.ro 3351M: eduard.munteanu@linux360.ro
3282L: linux-kernel@vger.kernel.org 3352L: linux-kernel@vger.kernel.org
3283S: Maintained 3353S: Maintained
3284F: Documentation/vm/kmemtrace.txt 3354F: Documentation/trace/kmemtrace.txt
3285F: include/trace/kmemtrace.h 3355F: include/trace/kmemtrace.h
3286F: kernel/trace/kmemtrace.c 3356F: kernel/trace/kmemtrace.c
3287 3357
@@ -3377,11 +3447,10 @@ L: linuxppc-dev@ozlabs.org
3377S: Maintained 3447S: Maintained
3378 3448
3379LINUX FOR POWERPC EMBEDDED MPC5XXX 3449LINUX FOR POWERPC EMBEDDED MPC5XXX
3380P: Sylvain Munaut
3381M: tnt@246tNt.com
3382P: Grant Likely 3450P: Grant Likely
3383M: grant.likely@secretlab.ca 3451M: grant.likely@secretlab.ca
3384L: linuxppc-dev@ozlabs.org 3452L: linuxppc-dev@ozlabs.org
3453T: git git://git.secretlab.ca/git/linux-2.6.git
3385S: Maintained 3454S: Maintained
3386 3455
3387LINUX FOR POWERPC EMBEDDED PPC4XX 3456LINUX FOR POWERPC EMBEDDED PPC4XX
@@ -3391,7 +3460,7 @@ P: Matt Porter
3391M: mporter@kernel.crashing.org 3460M: mporter@kernel.crashing.org
3392W: http://www.penguinppc.org/ 3461W: http://www.penguinppc.org/
3393L: linuxppc-dev@ozlabs.org 3462L: linuxppc-dev@ozlabs.org
3394T: git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc.git 3463T: git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git
3395S: Maintained 3464S: Maintained
3396 3465
3397LINUX FOR POWERPC EMBEDDED XILINX VIRTEX 3466LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
@@ -3399,6 +3468,7 @@ P: Grant Likely
3399M: grant.likely@secretlab.ca 3468M: grant.likely@secretlab.ca
3400W: http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex 3469W: http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex
3401L: linuxppc-dev@ozlabs.org 3470L: linuxppc-dev@ozlabs.org
3471T: git git://git.secretlab.ca/git/linux-2.6.git
3402S: Maintained 3472S: Maintained
3403 3473
3404LINUX FOR POWERPC EMBEDDED PPC8XX 3474LINUX FOR POWERPC EMBEDDED PPC8XX
@@ -3693,6 +3763,7 @@ L: microblaze-uclinux@itee.uq.edu.au
3693W: http://www.monstr.eu/fdt/ 3763W: http://www.monstr.eu/fdt/
3694T: git git://git.monstr.eu/linux-2.6-microblaze.git 3764T: git git://git.monstr.eu/linux-2.6-microblaze.git
3695S: Supported 3765S: Supported
3766F: arch/microblaze/
3696 3767
3697MICROTEK X6 SCANNER 3768MICROTEK X6 SCANNER
3698P: Oliver Neukum 3769P: Oliver Neukum
@@ -4131,7 +4202,7 @@ P: Joel Becker
4131M: joel.becker@oracle.com 4202M: joel.becker@oracle.com
4132L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers) 4203L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
4133W: http://oss.oracle.com/projects/ocfs2/ 4204W: http://oss.oracle.com/projects/ocfs2/
4134T: git git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git 4205T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2.git
4135S: Supported 4206S: Supported
4136F: Documentation/filesystems/ocfs2.txt 4207F: Documentation/filesystems/ocfs2.txt
4137F: Documentation/filesystems/dlmfs.txt 4208F: Documentation/filesystems/dlmfs.txt
@@ -4453,7 +4524,9 @@ F: arch/powerpc/include/asm/ps3*.h
4453F: arch/powerpc/platforms/ps3/ 4524F: arch/powerpc/platforms/ps3/
4454F: drivers/*/ps3* 4525F: drivers/*/ps3*
4455F: drivers/ps3/ 4526F: drivers/ps3/
4527F: drivers/rtc/rtc-ps3.c
4456F: drivers/usb/host/*ps3.c 4528F: drivers/usb/host/*ps3.c
4529F: sound/ppc/snd_ps3*
4457 4530
4458PS3VRAM DRIVER 4531PS3VRAM DRIVER
4459P: Jim Paris 4532P: Jim Paris
@@ -4461,6 +4534,19 @@ M: jim@jtan.com
4461L: cbe-oss-dev@ozlabs.org 4534L: cbe-oss-dev@ozlabs.org
4462S: Maintained 4535S: Maintained
4463 4536
4537PTRACE SUPPORT
4538P: Roland McGrath
4539M: roland@redhat.com
4540P: Oleg Nesterov
4541M: oleg@redhat.com
4542L: linux-kernel@vger.kernel.org
4543S: Maintained
4544F: include/asm-generic/syscall.h
4545F: include/linux/ptrace.h
4546F: include/linux/regset.h
4547F: include/linux/tracehook.h
4548F: kernel/ptrace.c
4549
4464PVRUSB2 VIDEO4LINUX DRIVER 4550PVRUSB2 VIDEO4LINUX DRIVER
4465P: Mike Isely 4551P: Mike Isely
4466M: isely@pobox.com 4552M: isely@pobox.com
@@ -4606,13 +4692,13 @@ F: kernel/rcutorture.c
4606 4692
4607RDC R-321X SoC 4693RDC R-321X SoC
4608P: Florian Fainelli 4694P: Florian Fainelli
4609M: florian.fainelli@telecomint.eu 4695M: florian@openwrt.org
4610L: linux-kernel@vger.kernel.org 4696L: linux-kernel@vger.kernel.org
4611S: Maintained 4697S: Maintained
4612 4698
4613RDC R6040 FAST ETHERNET DRIVER 4699RDC R6040 FAST ETHERNET DRIVER
4614P: Florian Fainelli 4700P: Florian Fainelli
4615M: florian.fainelli@telecomint.eu 4701M: florian@openwrt.org
4616L: netdev@vger.kernel.org 4702L: netdev@vger.kernel.org
4617S: Maintained 4703S: Maintained
4618F: drivers/net/r6040.c 4704F: drivers/net/r6040.c
@@ -4991,8 +5077,8 @@ S: Maintained for 2.6.
4991F: Documentation/sgi-visws.txt 5077F: Documentation/sgi-visws.txt
4992 5078
4993SGI XP/XPC/XPNET DRIVER 5079SGI XP/XPC/XPNET DRIVER
4994P: Dean Nelson 5080P: Robin Holt
4995M: dcn@sgi.com 5081M: holt@sgi.com
4996S: Maintained 5082S: Maintained
4997F: drivers/misc/sgi-xp/ 5083F: drivers/misc/sgi-xp/
4998 5084
@@ -5199,7 +5285,12 @@ M: perex@perex.cz
5199P: Takashi Iwai 5285P: Takashi Iwai
5200M: tiwai@suse.de 5286M: tiwai@suse.de
5201L: alsa-devel@alsa-project.org (subscribers-only) 5287L: alsa-devel@alsa-project.org (subscribers-only)
5288W: http://www.alsa-project.org/
5289T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
5290T: git git://git.alsa-project.org/alsa-kernel.git
5202S: Maintained 5291S: Maintained
5292F: Documentation/sound/
5293F: include/sound/
5203F: sound/ 5294F: sound/
5204 5295
5205SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC) 5296SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
@@ -5326,7 +5417,9 @@ L: linux-sh@vger.kernel.org
5326W: http://www.linux-sh.org 5417W: http://www.linux-sh.org
5327T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git 5418T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git
5328S: Supported 5419S: Supported
5420F: Documentation/sh/
5329F: arch/sh/ 5421F: arch/sh/
5422F: drivers/sh/
5330 5423
5331SUSPEND TO RAM 5424SUSPEND TO RAM
5332P: Len Brown 5425P: Len Brown
@@ -5344,7 +5437,6 @@ F: kernel/power/
5344F: include/linux/suspend.h 5437F: include/linux/suspend.h
5345F: include/linux/freezer.h 5438F: include/linux/freezer.h
5346F: include/linux/pm.h 5439F: include/linux/pm.h
5347F: include/asm-*/suspend.h
5348 5440
5349SVGA HANDLING 5441SVGA HANDLING
5350P: Martin Mares 5442P: Martin Mares
@@ -5578,7 +5670,7 @@ L: uclinux-dev@uclinux.org (subscribers-only)
5578S: Maintained 5670S: Maintained
5579F: arch/m68knommu/ 5671F: arch/m68knommu/
5580 5672
5581UCLINUX FOR RENESAS H8/300 5673UCLINUX FOR RENESAS H8/300 (H8300)
5582P: Yoshinori Sato 5674P: Yoshinori Sato
5583M: ysato@users.sourceforge.jp 5675M: ysato@users.sourceforge.jp
5584W: http://uclinux-h8.sourceforge.jp/ 5676W: http://uclinux-h8.sourceforge.jp/
diff --git a/Makefile b/Makefile
index ad830bd45a4b..b57e1f539e83 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 30 3SUBLEVEL = 30
4EXTRAVERSION = -rc1 4EXTRAVERSION = -rc6
5NAME = Temporary Tasmanian Devil 5NAME = Vindictive Armadillo
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
8# To see a list of typical targets execute "make help" 8# To see a list of typical targets execute "make help"
@@ -169,7 +169,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
169 -e s/arm.*/arm/ -e s/sa110/arm/ \ 169 -e s/arm.*/arm/ -e s/sa110/arm/ \
170 -e s/s390x/s390/ -e s/parisc64/parisc/ \ 170 -e s/s390x/s390/ -e s/parisc64/parisc/ \
171 -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ 171 -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
172 -e s/sh.*/sh/ ) 172 -e s/sh[234].*/sh/ )
173 173
174# Cross compiling and selecting different set of gcc/bin-utils 174# Cross compiling and selecting different set of gcc/bin-utils
175# --------------------------------------------------------------------------- 175# ---------------------------------------------------------------------------
@@ -210,6 +210,11 @@ ifeq ($(ARCH),sparc64)
210 SRCARCH := sparc 210 SRCARCH := sparc
211endif 211endif
212 212
213# Additional ARCH settings for sh
214ifeq ($(ARCH),sh64)
215 SRCARCH := sh
216endif
217
213# Where to locate arch specific headers 218# Where to locate arch specific headers
214hdr-arch := $(SRCARCH) 219hdr-arch := $(SRCARCH)
215 220
@@ -1195,7 +1200,7 @@ CLEAN_FILES += vmlinux System.map \
1195 .tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map 1200 .tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map
1196 1201
1197# Directories & files removed with 'make mrproper' 1202# Directories & files removed with 'make mrproper'
1198MRPROPER_DIRS += include/config include2 usr/include 1203MRPROPER_DIRS += include/config include2 usr/include include/generated
1199MRPROPER_FILES += .config .config.old include/asm .version .old_version \ 1204MRPROPER_FILES += .config .config.old include/asm .version .old_version \
1200 include/linux/autoconf.h include/linux/version.h \ 1205 include/linux/autoconf.h include/linux/version.h \
1201 include/linux/utsrelease.h \ 1206 include/linux/utsrelease.h \
@@ -1288,7 +1293,7 @@ help:
1288 @echo ' dir/ - Build all files in dir and below' 1293 @echo ' dir/ - Build all files in dir and below'
1289 @echo ' dir/file.[ois] - Build specified target only' 1294 @echo ' dir/file.[ois] - Build specified target only'
1290 @echo ' dir/file.ko - Build module including final link' 1295 @echo ' dir/file.ko - Build module including final link'
1291 @echo ' prepare - Set up for building external modules' 1296 @echo ' modules_prepare - Set up for building external modules'
1292 @echo ' tags/TAGS - Generate tags file for editors' 1297 @echo ' tags/TAGS - Generate tags file for editors'
1293 @echo ' cscope - Generate cscope index' 1298 @echo ' cscope - Generate cscope index'
1294 @echo ' kernelrelease - Output the release version string' 1299 @echo ' kernelrelease - Output the release version string'
@@ -1416,7 +1421,9 @@ $(clean-dirs):
1416 $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) 1421 $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
1417 1422
1418clean: rm-dirs := $(MODVERDIR) 1423clean: rm-dirs := $(MODVERDIR)
1419clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers 1424clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers \
1425 $(KBUILD_EXTMOD)/Module.markers \
1426 $(KBUILD_EXTMOD)/modules.order
1420clean: $(clean-dirs) 1427clean: $(clean-dirs)
1421 $(call cmd,rmdirs) 1428 $(call cmd,rmdirs)
1422 $(call cmd,rmfiles) 1429 $(call cmd,rmfiles)
diff --git a/arch/alpha/include/asm/barrier.h b/arch/alpha/include/asm/barrier.h
index ac78eba909bc..ce8860a0b32d 100644
--- a/arch/alpha/include/asm/barrier.h
+++ b/arch/alpha/include/asm/barrier.h
@@ -16,11 +16,13 @@ __asm__ __volatile__("wmb": : :"memory")
16__asm__ __volatile__("mb": : :"memory") 16__asm__ __volatile__("mb": : :"memory")
17 17
18#ifdef CONFIG_SMP 18#ifdef CONFIG_SMP
19#define __ASM_SMP_MB "\tmb\n"
19#define smp_mb() mb() 20#define smp_mb() mb()
20#define smp_rmb() rmb() 21#define smp_rmb() rmb()
21#define smp_wmb() wmb() 22#define smp_wmb() wmb()
22#define smp_read_barrier_depends() read_barrier_depends() 23#define smp_read_barrier_depends() read_barrier_depends()
23#else 24#else
25#define __ASM_SMP_MB
24#define smp_mb() barrier() 26#define smp_mb() barrier()
25#define smp_rmb() barrier() 27#define smp_rmb() barrier()
26#define smp_wmb() barrier() 28#define smp_wmb() barrier()
diff --git a/arch/alpha/include/asm/futex.h b/arch/alpha/include/asm/futex.h
index 6a332a9f099c..945de222ab91 100644
--- a/arch/alpha/include/asm/futex.h
+++ b/arch/alpha/include/asm/futex.h
@@ -1,6 +1,116 @@
1#ifndef _ASM_FUTEX_H 1#ifndef _ASM_ALPHA_FUTEX_H
2#define _ASM_FUTEX_H 2#define _ASM_ALPHA_FUTEX_H
3 3
4#include <asm-generic/futex.h> 4#ifdef __KERNEL__
5 5
6#endif 6#include <linux/futex.h>
7#include <linux/uaccess.h>
8#include <asm/errno.h>
9#include <asm/barrier.h>
10
11#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
12 __asm__ __volatile__( \
13 __ASM_SMP_MB \
14 "1: ldl_l %0,0(%2)\n" \
15 insn \
16 "2: stl_c %1,0(%2)\n" \
17 " beq %1,4f\n" \
18 " mov $31,%1\n" \
19 "3: .subsection 2\n" \
20 "4: br 1b\n" \
21 " .previous\n" \
22 " .section __ex_table,\"a\"\n" \
23 " .long 1b-.\n" \
24 " lda $31,3b-1b(%1)\n" \
25 " .long 2b-.\n" \
26 " lda $31,3b-2b(%1)\n" \
27 " .previous\n" \
28 : "=&r" (oldval), "=&r"(ret) \
29 : "r" (uaddr), "r"(oparg) \
30 : "memory")
31
32static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
33{
34 int op = (encoded_op >> 28) & 7;
35 int cmp = (encoded_op >> 24) & 15;
36 int oparg = (encoded_op << 8) >> 20;
37 int cmparg = (encoded_op << 20) >> 20;
38 int oldval = 0, ret;
39 if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
40 oparg = 1 << oparg;
41
42 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
43 return -EFAULT;
44
45 pagefault_disable();
46
47 switch (op) {
48 case FUTEX_OP_SET:
49 __futex_atomic_op("mov %3,%1\n", ret, oldval, uaddr, oparg);
50 break;
51 case FUTEX_OP_ADD:
52 __futex_atomic_op("addl %0,%3,%1\n", ret, oldval, uaddr, oparg);
53 break;
54 case FUTEX_OP_OR:
55 __futex_atomic_op("or %0,%3,%1\n", ret, oldval, uaddr, oparg);
56 break;
57 case FUTEX_OP_ANDN:
58 __futex_atomic_op("andnot %0,%3,%1\n", ret, oldval, uaddr, oparg);
59 break;
60 case FUTEX_OP_XOR:
61 __futex_atomic_op("xor %0,%3,%1\n", ret, oldval, uaddr, oparg);
62 break;
63 default:
64 ret = -ENOSYS;
65 }
66
67 pagefault_enable();
68
69 if (!ret) {
70 switch (cmp) {
71 case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
72 case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
73 case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
74 case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
75 case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
76 case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
77 default: ret = -ENOSYS;
78 }
79 }
80 return ret;
81}
82
83static inline int
84futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
85{
86 int prev, cmp;
87
88 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
89 return -EFAULT;
90
91 __asm__ __volatile__ (
92 __ASM_SMP_MB
93 "1: ldl_l %0,0(%2)\n"
94 " cmpeq %0,%3,%1\n"
95 " beq %1,3f\n"
96 " mov %4,%1\n"
97 "2: stl_c %1,0(%2)\n"
98 " beq %1,4f\n"
99 "3: .subsection 2\n"
100 "4: br 1b\n"
101 " .previous\n"
102 " .section __ex_table,\"a\"\n"
103 " .long 1b-.\n"
104 " lda $31,3b-1b(%0)\n"
105 " .long 2b-.\n"
106 " lda $31,3b-2b(%0)\n"
107 " .previous\n"
108 : "=&r"(prev), "=&r"(cmp)
109 : "r"(uaddr), "r"((long)oldval), "r"(newval)
110 : "memory");
111
112 return prev;
113}
114
115#endif /* __KERNEL__ */
116#endif /* _ASM_ALPHA_FUTEX_H */
diff --git a/arch/alpha/include/asm/percpu.h b/arch/alpha/include/asm/percpu.h
index 3495e8e00d70..06c5c7a4afd3 100644
--- a/arch/alpha/include/asm/percpu.h
+++ b/arch/alpha/include/asm/percpu.h
@@ -1,7 +1,9 @@
1#ifndef __ALPHA_PERCPU_H 1#ifndef __ALPHA_PERCPU_H
2#define __ALPHA_PERCPU_H 2#define __ALPHA_PERCPU_H
3
3#include <linux/compiler.h> 4#include <linux/compiler.h>
4#include <linux/threads.h> 5#include <linux/threads.h>
6#include <linux/percpu-defs.h>
5 7
6/* 8/*
7 * Determine the real variable name from the name visible in the 9 * Determine the real variable name from the name visible in the
@@ -73,6 +75,28 @@ extern unsigned long __per_cpu_offset[NR_CPUS];
73 75
74#endif /* SMP */ 76#endif /* SMP */
75 77
76#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu_var(name) 78#ifdef CONFIG_SMP
79#define PER_CPU_BASE_SECTION ".data.percpu"
80#else
81#define PER_CPU_BASE_SECTION ".data"
82#endif
83
84#ifdef CONFIG_SMP
85
86#ifdef MODULE
87#define PER_CPU_SHARED_ALIGNED_SECTION ""
88#else
89#define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
90#endif
91#define PER_CPU_FIRST_SECTION ".first"
92
93#else
94
95#define PER_CPU_SHARED_ALIGNED_SECTION ""
96#define PER_CPU_FIRST_SECTION ""
97
98#endif
99
100#define PER_CPU_ATTRIBUTES
77 101
78#endif /* __ALPHA_PERCPU_H */ 102#endif /* __ALPHA_PERCPU_H */
diff --git a/arch/alpha/include/asm/uaccess.h b/arch/alpha/include/asm/uaccess.h
index 163f3053001c..b49ec2f8d6e3 100644
--- a/arch/alpha/include/asm/uaccess.h
+++ b/arch/alpha/include/asm/uaccess.h
@@ -507,5 +507,7 @@ struct exception_table_entry
507 (pc) + (_fixup)->fixup.bits.nextinsn; \ 507 (pc) + (_fixup)->fixup.bits.nextinsn; \
508}) 508})
509 509
510#define ARCH_HAS_SORT_EXTABLE
511#define ARCH_HAS_SEARCH_EXTABLE
510 512
511#endif /* __ALPHA_UACCESS_H */ 513#endif /* __ALPHA_UACCESS_H */
diff --git a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile
index a427538252f8..7739a62440a7 100644
--- a/arch/alpha/kernel/Makefile
+++ b/arch/alpha/kernel/Makefile
@@ -8,7 +8,7 @@ EXTRA_CFLAGS := -Werror -Wno-sign-compare
8 8
9obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \ 9obj-y := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
10 irq_alpha.o signal.o setup.o ptrace.o time.o \ 10 irq_alpha.o signal.o setup.o ptrace.o time.o \
11 alpha_ksyms.o systbls.o err_common.o io.o binfmt_loader.o 11 alpha_ksyms.o systbls.o err_common.o io.o
12 12
13obj-$(CONFIG_VGA_HOSE) += console.o 13obj-$(CONFIG_VGA_HOSE) += console.o
14obj-$(CONFIG_SMP) += smp.o 14obj-$(CONFIG_SMP) += smp.o
@@ -43,6 +43,10 @@ else
43# Misc support 43# Misc support
44obj-$(CONFIG_ALPHA_SRM) += srmcons.o 44obj-$(CONFIG_ALPHA_SRM) += srmcons.o
45 45
46ifdef CONFIG_BINFMT_AOUT
47obj-y += binfmt_loader.o
48endif
49
46# Core logic support 50# Core logic support
47obj-$(CONFIG_ALPHA_APECS) += core_apecs.o 51obj-$(CONFIG_ALPHA_APECS) += core_apecs.o
48obj-$(CONFIG_ALPHA_CIA) += core_cia.o 52obj-$(CONFIG_ALPHA_CIA) += core_cia.o
diff --git a/arch/alpha/kernel/binfmt_loader.c b/arch/alpha/kernel/binfmt_loader.c
index 4a0af906b00a..3fcfad410130 100644
--- a/arch/alpha/kernel/binfmt_loader.c
+++ b/arch/alpha/kernel/binfmt_loader.c
@@ -46,6 +46,6 @@ static struct linux_binfmt loader_format = {
46 46
47static int __init init_loader_binfmt(void) 47static int __init init_loader_binfmt(void)
48{ 48{
49 return register_binfmt(&loader_format); 49 return insert_binfmt(&loader_format);
50} 50}
51arch_initcall(init_loader_binfmt); 51arch_initcall(init_loader_binfmt);
diff --git a/arch/alpha/kernel/err_ev6.c b/arch/alpha/kernel/err_ev6.c
index 985e5c1681ac..8ca6345bf131 100644
--- a/arch/alpha/kernel/err_ev6.c
+++ b/arch/alpha/kernel/err_ev6.c
@@ -229,7 +229,7 @@ ev6_process_logout_frame(struct el_common *mchk_header, int print)
229} 229}
230 230
231void 231void
232ev6_machine_check(u64 vector, u64 la_ptr) 232ev6_machine_check(unsigned long vector, unsigned long la_ptr)
233{ 233{
234 struct el_common *mchk_header = (struct el_common *)la_ptr; 234 struct el_common *mchk_header = (struct el_common *)la_ptr;
235 235
diff --git a/arch/alpha/kernel/err_ev7.c b/arch/alpha/kernel/err_ev7.c
index 73770c6ca013..d738a67112d4 100644
--- a/arch/alpha/kernel/err_ev7.c
+++ b/arch/alpha/kernel/err_ev7.c
@@ -117,7 +117,7 @@ ev7_collect_logout_frame_subpackets(struct el_subpacket *el_ptr,
117} 117}
118 118
119void 119void
120ev7_machine_check(u64 vector, u64 la_ptr) 120ev7_machine_check(unsigned long vector, unsigned long la_ptr)
121{ 121{
122 struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr; 122 struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr;
123 char *saved_err_prefix = err_print_prefix; 123 char *saved_err_prefix = err_print_prefix;
@@ -246,7 +246,7 @@ ev7_process_pal_subpacket(struct el_subpacket *header)
246 246
247 switch(header->type) { 247 switch(header->type) {
248 case EL_TYPE__PAL__LOGOUT_FRAME: 248 case EL_TYPE__PAL__LOGOUT_FRAME:
249 printk("%s*** MCHK occurred on LPID %ld (RBOX %llx)\n", 249 printk("%s*** MCHK occurred on LPID %lld (RBOX %llx)\n",
250 err_print_prefix, 250 err_print_prefix,
251 packet->by_type.logout.whami, 251 packet->by_type.logout.whami,
252 packet->by_type.logout.rbox_whami); 252 packet->by_type.logout.rbox_whami);
diff --git a/arch/alpha/kernel/err_impl.h b/arch/alpha/kernel/err_impl.h
index 3c12258158e6..0c010ca4611e 100644
--- a/arch/alpha/kernel/err_impl.h
+++ b/arch/alpha/kernel/err_impl.h
@@ -60,26 +60,26 @@ extern struct ev7_lf_subpackets *
60ev7_collect_logout_frame_subpackets(struct el_subpacket *, 60ev7_collect_logout_frame_subpackets(struct el_subpacket *,
61 struct ev7_lf_subpackets *); 61 struct ev7_lf_subpackets *);
62extern void ev7_register_error_handlers(void); 62extern void ev7_register_error_handlers(void);
63extern void ev7_machine_check(u64, u64); 63extern void ev7_machine_check(unsigned long, unsigned long);
64 64
65/* 65/*
66 * err_ev6.c 66 * err_ev6.c
67 */ 67 */
68extern void ev6_register_error_handlers(void); 68extern void ev6_register_error_handlers(void);
69extern int ev6_process_logout_frame(struct el_common *, int); 69extern int ev6_process_logout_frame(struct el_common *, int);
70extern void ev6_machine_check(u64, u64); 70extern void ev6_machine_check(unsigned long, unsigned long);
71 71
72/* 72/*
73 * err_marvel.c 73 * err_marvel.c
74 */ 74 */
75extern void marvel_machine_check(u64, u64); 75extern void marvel_machine_check(unsigned long, unsigned long);
76extern void marvel_register_error_handlers(void); 76extern void marvel_register_error_handlers(void);
77 77
78/* 78/*
79 * err_titan.c 79 * err_titan.c
80 */ 80 */
81extern int titan_process_logout_frame(struct el_common *, int); 81extern int titan_process_logout_frame(struct el_common *, int);
82extern void titan_machine_check(u64, u64); 82extern void titan_machine_check(unsigned long, unsigned long);
83extern void titan_register_error_handlers(void); 83extern void titan_register_error_handlers(void);
84extern int privateer_process_logout_frame(struct el_common *, int); 84extern int privateer_process_logout_frame(struct el_common *, int);
85extern void privateer_machine_check(u64, u64); 85extern void privateer_machine_check(unsigned long, unsigned long);
diff --git a/arch/alpha/kernel/err_marvel.c b/arch/alpha/kernel/err_marvel.c
index 6bfd243efba3..52a79dfc13c6 100644
--- a/arch/alpha/kernel/err_marvel.c
+++ b/arch/alpha/kernel/err_marvel.c
@@ -1042,7 +1042,7 @@ marvel_process_logout_frame(struct ev7_lf_subpackets *lf_subpackets, int print)
1042} 1042}
1043 1043
1044void 1044void
1045marvel_machine_check(u64 vector, u64 la_ptr) 1045marvel_machine_check(unsigned long vector, unsigned long la_ptr)
1046{ 1046{
1047 struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr; 1047 struct el_subpacket *el_ptr = (struct el_subpacket *)la_ptr;
1048 int (*process_frame)(struct ev7_lf_subpackets *, int) = NULL; 1048 int (*process_frame)(struct ev7_lf_subpackets *, int) = NULL;
diff --git a/arch/alpha/kernel/err_titan.c b/arch/alpha/kernel/err_titan.c
index c7e28a88d6e3..f7ed97ce0dfd 100644
--- a/arch/alpha/kernel/err_titan.c
+++ b/arch/alpha/kernel/err_titan.c
@@ -380,7 +380,7 @@ titan_process_logout_frame(struct el_common *mchk_header, int print)
380} 380}
381 381
382void 382void
383titan_machine_check(u64 vector, u64 la_ptr) 383titan_machine_check(unsigned long vector, unsigned long la_ptr)
384{ 384{
385 struct el_common *mchk_header = (struct el_common *)la_ptr; 385 struct el_common *mchk_header = (struct el_common *)la_ptr;
386 struct el_TITAN_sysdata_mcheck *tmchk = 386 struct el_TITAN_sysdata_mcheck *tmchk =
@@ -702,7 +702,7 @@ privateer_process_logout_frame(struct el_common *mchk_header, int print)
702} 702}
703 703
704void 704void
705privateer_machine_check(u64 vector, u64 la_ptr) 705privateer_machine_check(unsigned long vector, unsigned long la_ptr)
706{ 706{
707 struct el_common *mchk_header = (struct el_common *)la_ptr; 707 struct el_common *mchk_header = (struct el_common *)la_ptr;
708 struct el_TITAN_sysdata_mcheck *tmchk = 708 struct el_TITAN_sysdata_mcheck *tmchk =
diff --git a/arch/alpha/kernel/head.S b/arch/alpha/kernel/head.S
index 7ac1f1372c36..4bdd1d2ff353 100644
--- a/arch/alpha/kernel/head.S
+++ b/arch/alpha/kernel/head.S
@@ -7,10 +7,11 @@
7 * the kernel global pointer and jump to the kernel entry-point. 7 * the kernel global pointer and jump to the kernel entry-point.
8 */ 8 */
9 9
10#include <linux/init.h>
10#include <asm/system.h> 11#include <asm/system.h>
11#include <asm/asm-offsets.h> 12#include <asm/asm-offsets.h>
12 13
13.section .text.head, "ax" 14__HEAD
14.globl swapper_pg_dir 15.globl swapper_pg_dir
15.globl _stext 16.globl _stext
16swapper_pg_dir=SWAPPER_PGD 17swapper_pg_dir=SWAPPER_PGD
diff --git a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h
index 567f2598d090..3d2627ec9860 100644
--- a/arch/alpha/kernel/proto.h
+++ b/arch/alpha/kernel/proto.h
@@ -36,7 +36,6 @@ extern void cia_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
36extern struct pci_ops irongate_pci_ops; 36extern struct pci_ops irongate_pci_ops;
37extern int irongate_pci_clr_err(void); 37extern int irongate_pci_clr_err(void);
38extern void irongate_init_arch(void); 38extern void irongate_init_arch(void);
39extern void irongate_machine_check(u64, u64);
40#define irongate_pci_tbi ((void *)0) 39#define irongate_pci_tbi ((void *)0)
41 40
42/* core_lca.c */ 41/* core_lca.c */
@@ -49,7 +48,7 @@ extern void lca_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
49extern struct pci_ops marvel_pci_ops; 48extern struct pci_ops marvel_pci_ops;
50extern void marvel_init_arch(void); 49extern void marvel_init_arch(void);
51extern void marvel_kill_arch(int); 50extern void marvel_kill_arch(int);
52extern void marvel_machine_check(u64, u64); 51extern void marvel_machine_check(unsigned long, unsigned long);
53extern void marvel_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); 52extern void marvel_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
54extern int marvel_pa_to_nid(unsigned long); 53extern int marvel_pa_to_nid(unsigned long);
55extern int marvel_cpuid_to_nid(int); 54extern int marvel_cpuid_to_nid(int);
@@ -86,7 +85,7 @@ extern void t2_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
86extern struct pci_ops titan_pci_ops; 85extern struct pci_ops titan_pci_ops;
87extern void titan_init_arch(void); 86extern void titan_init_arch(void);
88extern void titan_kill_arch(int); 87extern void titan_kill_arch(int);
89extern void titan_machine_check(u64, u64); 88extern void titan_machine_check(unsigned long, unsigned long);
90extern void titan_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t); 89extern void titan_pci_tbi(struct pci_controller *, dma_addr_t, dma_addr_t);
91extern struct _alpha_agp_info *titan_agp_info(void); 90extern struct _alpha_agp_info *titan_agp_info(void);
92 91
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S
index ef37fc1acaea..b9d6568e5f7f 100644
--- a/arch/alpha/kernel/vmlinux.lds.S
+++ b/arch/alpha/kernel/vmlinux.lds.S
@@ -16,7 +16,7 @@ SECTIONS
16 16
17 _text = .; /* Text and read-only data */ 17 _text = .; /* Text and read-only data */
18 .text : { 18 .text : {
19 *(.text.head) 19 HEAD_TEXT
20 TEXT_TEXT 20 TEXT_TEXT
21 SCHED_TEXT 21 SCHED_TEXT
22 LOCK_TEXT 22 LOCK_TEXT
diff --git a/arch/alpha/mm/extable.c b/arch/alpha/mm/extable.c
index dc7aeda15773..62dc379d301a 100644
--- a/arch/alpha/mm/extable.c
+++ b/arch/alpha/mm/extable.c
@@ -3,11 +3,49 @@
3 */ 3 */
4 4
5#include <linux/module.h> 5#include <linux/module.h>
6#include <linux/sort.h>
6#include <asm/uaccess.h> 7#include <asm/uaccess.h>
7 8
9static inline unsigned long ex_to_addr(const struct exception_table_entry *x)
10{
11 return (unsigned long)&x->insn + x->insn;
12}
13
14static void swap_ex(void *a, void *b, int size)
15{
16 struct exception_table_entry *ex_a = a, *ex_b = b;
17 unsigned long addr_a = ex_to_addr(ex_a), addr_b = ex_to_addr(ex_b);
18 unsigned int t = ex_a->fixup.unit;
19
20 ex_a->fixup.unit = ex_b->fixup.unit;
21 ex_b->fixup.unit = t;
22 ex_a->insn = (int)(addr_b - (unsigned long)&ex_a->insn);
23 ex_b->insn = (int)(addr_a - (unsigned long)&ex_b->insn);
24}
25
26/*
27 * The exception table needs to be sorted so that the binary
28 * search that we use to find entries in it works properly.
29 * This is used both for the kernel exception table and for
30 * the exception tables of modules that get loaded.
31 */
32static int cmp_ex(const void *a, const void *b)
33{
34 const struct exception_table_entry *x = a, *y = b;
35
36 /* avoid overflow */
37 if (ex_to_addr(x) > ex_to_addr(y))
38 return 1;
39 if (ex_to_addr(x) < ex_to_addr(y))
40 return -1;
41 return 0;
42}
43
8void sort_extable(struct exception_table_entry *start, 44void sort_extable(struct exception_table_entry *start,
9 struct exception_table_entry *finish) 45 struct exception_table_entry *finish)
10{ 46{
47 sort(start, finish - start, sizeof(struct exception_table_entry),
48 cmp_ex, swap_ex);
11} 49}
12 50
13const struct exception_table_entry * 51const struct exception_table_entry *
@@ -20,7 +58,7 @@ search_extable(const struct exception_table_entry *first,
20 unsigned long mid_value; 58 unsigned long mid_value;
21 59
22 mid = (last - first) / 2 + first; 60 mid = (last - first) / 2 + first;
23 mid_value = (unsigned long)&mid->insn + mid->insn; 61 mid_value = ex_to_addr(mid);
24 if (mid_value == value) 62 if (mid_value == value)
25 return mid; 63 return mid;
26 else if (mid_value < value) 64 else if (mid_value < value)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e02b893fb909..e60ec54df334 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -454,6 +454,7 @@ config ARCH_MXC
454 select ARCH_MTD_XIP 454 select ARCH_MTD_XIP
455 select GENERIC_GPIO 455 select GENERIC_GPIO
456 select ARCH_REQUIRE_GPIOLIB 456 select ARCH_REQUIRE_GPIOLIB
457 select HAVE_CLK
457 help 458 help
458 Support for Freescale MXC/iMX-based family of processors 459 Support for Freescale MXC/iMX-based family of processors
459 460
@@ -486,8 +487,6 @@ config ARCH_PXA
486 select HAVE_CLK 487 select HAVE_CLK
487 select COMMON_CLKDEV 488 select COMMON_CLKDEV
488 select ARCH_REQUIRE_GPIOLIB 489 select ARCH_REQUIRE_GPIOLIB
489 select HAVE_CLK
490 select COMMON_CLKDEV
491 select GENERIC_TIME 490 select GENERIC_TIME
492 select GENERIC_CLOCKEVENTS 491 select GENERIC_CLOCKEVENTS
493 select TICK_ONESHOT 492 select TICK_ONESHOT
@@ -585,6 +584,8 @@ config ARCH_DAVINCI
585 select ARCH_REQUIRE_GPIOLIB 584 select ARCH_REQUIRE_GPIOLIB
586 select HAVE_CLK 585 select HAVE_CLK
587 select ZONE_DMA 586 select ZONE_DMA
587 select HAVE_IDE
588 select COMMON_CLKDEV
588 help 589 help
589 Support for TI's DaVinci platform. 590 Support for TI's DaVinci platform.
590 591
@@ -740,6 +741,56 @@ if !MMU
740source "arch/arm/Kconfig-nommu" 741source "arch/arm/Kconfig-nommu"
741endif 742endif
742 743
744config ARM_ERRATA_411920
745 bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
746 depends on CPU_V6 && !SMP
747 help
748 Invalidation of the Instruction Cache operation can
749 fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
750 It does not affect the MPCore. This option enables the ARM Ltd.
751 recommended workaround.
752
753config ARM_ERRATA_430973
754 bool "ARM errata: Stale prediction on replaced interworking branch"
755 depends on CPU_V7
756 help
757 This option enables the workaround for the 430973 Cortex-A8
758 (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
759 interworking branch is replaced with another code sequence at the
760 same virtual address, whether due to self-modifying code or virtual
761 to physical address re-mapping, Cortex-A8 does not recover from the
762 stale interworking branch prediction. This results in Cortex-A8
763 executing the new code sequence in the incorrect ARM or Thumb state.
764 The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
765 and also flushes the branch target cache at every context switch.
766 Note that setting specific bits in the ACTLR register may not be
767 available in non-secure mode.
768
769config ARM_ERRATA_458693
770 bool "ARM errata: Processor deadlock when a false hazard is created"
771 depends on CPU_V7
772 help
773 This option enables the workaround for the 458693 Cortex-A8 (r2p0)
774 erratum. For very specific sequences of memory operations, it is
775 possible for a hazard condition intended for a cache line to instead
776 be incorrectly associated with a different cache line. This false
777 hazard might then cause a processor deadlock. The workaround enables
778 the L1 caching of the NEON accesses and disables the PLD instruction
779 in the ACTLR register. Note that setting specific bits in the ACTLR
780 register may not be available in non-secure mode.
781
782config ARM_ERRATA_460075
783 bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
784 depends on CPU_V7
785 help
786 This option enables the workaround for the 460075 Cortex-A8 (r2p0)
787 erratum. Any asynchronous access to the L2 cache may encounter a
788 situation in which recent store transactions to the L2 cache are lost
789 and overwritten with stale memory contents from external memory. The
790 workaround disables the write-allocate mode for the L2 cache via the
791 ACTLR register. Note that setting specific bits in the ACTLR register
792 may not be available in non-secure mode.
793
743endmenu 794endmenu
744 795
745source "arch/arm/common/Kconfig" 796source "arch/arm/common/Kconfig"
@@ -1171,12 +1222,6 @@ config CPU_FREQ_IMX
1171 1222
1172 If in doubt, say N. 1223 If in doubt, say N.
1173 1224
1174config CPU_FREQ_PXA
1175 bool
1176 depends on CPU_FREQ && ARCH_PXA && PXA25x
1177 default y
1178 select CPU_FREQ_DEFAULT_GOV_USERSPACE
1179
1180endif 1225endif
1181 1226
1182source "drivers/cpuidle/Kconfig" 1227source "drivers/cpuidle/Kconfig"
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index ecf0bfbab107..b2a781d9ce05 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -85,12 +85,11 @@ void __init vic_init(void __iomem *base, unsigned int irq_start,
85 writel(32, base + VIC_PL190_DEF_VECT_ADDR); 85 writel(32, base + VIC_PL190_DEF_VECT_ADDR);
86 86
87 for (i = 0; i < 32; i++) { 87 for (i = 0; i < 32; i++) {
88 unsigned int irq = irq_start + i;
89
90 set_irq_chip(irq, &vic_chip);
91 set_irq_chip_data(irq, base);
92
93 if (vic_sources & (1 << i)) { 88 if (vic_sources & (1 << i)) {
89 unsigned int irq = irq_start + i;
90
91 set_irq_chip(irq, &vic_chip);
92 set_irq_chip_data(irq, base);
94 set_irq_handler(irq, handle_level_irq); 93 set_irq_handler(irq, handle_level_irq);
95 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE); 94 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
96 } 95 }
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
new file mode 100644
index 000000000000..eb2738b5be5f
--- /dev/null
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -0,0 +1,1784 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc2
4# Wed Apr 15 08:16:53 2009
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ZONE_DMA=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29
30#
31# General setup
32#
33CONFIG_EXPERIMENTAL=y
34CONFIG_BROKEN_ON_SMP=y
35CONFIG_LOCK_KERNEL=y
36CONFIG_INIT_ENV_ARG_LIMIT=32
37CONFIG_LOCALVERSION=""
38CONFIG_LOCALVERSION_AUTO=y
39# CONFIG_SWAP is not set
40CONFIG_SYSVIPC=y
41CONFIG_SYSVIPC_SYSCTL=y
42CONFIG_POSIX_MQUEUE=y
43CONFIG_POSIX_MQUEUE_SYSCTL=y
44# CONFIG_BSD_PROCESS_ACCT is not set
45# CONFIG_TASKSTATS is not set
46# CONFIG_AUDIT is not set
47
48#
49# RCU Subsystem
50#
51CONFIG_CLASSIC_RCU=y
52# CONFIG_TREE_RCU is not set
53# CONFIG_PREEMPT_RCU is not set
54# CONFIG_TREE_RCU_TRACE is not set
55# CONFIG_PREEMPT_RCU_TRACE is not set
56CONFIG_IKCONFIG=y
57CONFIG_IKCONFIG_PROC=y
58CONFIG_LOG_BUF_SHIFT=14
59CONFIG_GROUP_SCHED=y
60CONFIG_FAIR_GROUP_SCHED=y
61# CONFIG_RT_GROUP_SCHED is not set
62CONFIG_USER_SCHED=y
63# CONFIG_CGROUP_SCHED is not set
64# CONFIG_CGROUPS is not set
65CONFIG_SYSFS_DEPRECATED=y
66CONFIG_SYSFS_DEPRECATED_V2=y
67# CONFIG_RELAY is not set
68# CONFIG_NAMESPACES is not set
69CONFIG_BLK_DEV_INITRD=y
70CONFIG_INITRAMFS_SOURCE=""
71CONFIG_RD_GZIP=y
72# CONFIG_RD_BZIP2 is not set
73# CONFIG_RD_LZMA is not set
74CONFIG_CC_OPTIMIZE_FOR_SIZE=y
75CONFIG_SYSCTL=y
76CONFIG_ANON_INODES=y
77CONFIG_EMBEDDED=y
78CONFIG_UID16=y
79CONFIG_SYSCTL_SYSCALL=y
80CONFIG_KALLSYMS=y
81# CONFIG_KALLSYMS_ALL is not set
82# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
84CONFIG_HOTPLUG=y
85CONFIG_PRINTK=y
86CONFIG_BUG=y
87CONFIG_ELF_CORE=y
88CONFIG_BASE_FULL=y
89CONFIG_FUTEX=y
90CONFIG_EPOLL=y
91CONFIG_SIGNALFD=y
92CONFIG_TIMERFD=y
93CONFIG_EVENTFD=y
94CONFIG_SHMEM=y
95CONFIG_AIO=y
96CONFIG_VM_EVENT_COUNTERS=y
97CONFIG_SLUB_DEBUG=y
98CONFIG_COMPAT_BRK=y
99# CONFIG_SLAB is not set
100CONFIG_SLUB=y
101# CONFIG_SLOB is not set
102# CONFIG_PROFILING is not set
103# CONFIG_MARKERS is not set
104CONFIG_HAVE_OPROFILE=y
105# CONFIG_KPROBES is not set
106CONFIG_HAVE_KPROBES=y
107CONFIG_HAVE_KRETPROBES=y
108CONFIG_HAVE_CLK=y
109# CONFIG_SLOW_WORK is not set
110CONFIG_HAVE_GENERIC_DMA_COHERENT=y
111CONFIG_SLABINFO=y
112CONFIG_RT_MUTEXES=y
113CONFIG_BASE_SMALL=0
114CONFIG_MODULES=y
115# CONFIG_MODULE_FORCE_LOAD is not set
116CONFIG_MODULE_UNLOAD=y
117CONFIG_MODULE_FORCE_UNLOAD=y
118CONFIG_MODVERSIONS=y
119# CONFIG_MODULE_SRCVERSION_ALL is not set
120CONFIG_BLOCK=y
121# CONFIG_LBD is not set
122# CONFIG_BLK_DEV_BSG is not set
123# CONFIG_BLK_DEV_INTEGRITY is not set
124
125#
126# IO Schedulers
127#
128CONFIG_IOSCHED_NOOP=y
129CONFIG_IOSCHED_AS=y
130# CONFIG_IOSCHED_DEADLINE is not set
131# CONFIG_IOSCHED_CFQ is not set
132CONFIG_DEFAULT_AS=y
133# CONFIG_DEFAULT_DEADLINE is not set
134# CONFIG_DEFAULT_CFQ is not set
135# CONFIG_DEFAULT_NOOP is not set
136CONFIG_DEFAULT_IOSCHED="anticipatory"
137# CONFIG_FREEZER is not set
138
139#
140# System Type
141#
142# CONFIG_ARCH_AAEC2000 is not set
143# CONFIG_ARCH_INTEGRATOR is not set
144# CONFIG_ARCH_REALVIEW is not set
145# CONFIG_ARCH_VERSATILE is not set
146# CONFIG_ARCH_AT91 is not set
147# CONFIG_ARCH_CLPS711X is not set
148# CONFIG_ARCH_EBSA110 is not set
149# CONFIG_ARCH_EP93XX is not set
150# CONFIG_ARCH_GEMINI is not set
151# CONFIG_ARCH_FOOTBRIDGE is not set
152# CONFIG_ARCH_NETX is not set
153# CONFIG_ARCH_H720X is not set
154# CONFIG_ARCH_IMX is not set
155# CONFIG_ARCH_IOP13XX is not set
156# CONFIG_ARCH_IOP32X is not set
157# CONFIG_ARCH_IOP33X is not set
158# CONFIG_ARCH_IXP23XX is not set
159# CONFIG_ARCH_IXP2000 is not set
160# CONFIG_ARCH_IXP4XX is not set
161# CONFIG_ARCH_L7200 is not set
162# CONFIG_ARCH_KIRKWOOD is not set
163# CONFIG_ARCH_KS8695 is not set
164# CONFIG_ARCH_NS9XXX is not set
165# CONFIG_ARCH_LOKI is not set
166# CONFIG_ARCH_MV78XX0 is not set
167# CONFIG_ARCH_MXC is not set
168# CONFIG_ARCH_ORION5X is not set
169# CONFIG_ARCH_PNX4008 is not set
170# CONFIG_ARCH_PXA is not set
171# CONFIG_ARCH_MMP is not set
172# CONFIG_ARCH_RPC is not set
173# CONFIG_ARCH_SA1100 is not set
174# CONFIG_ARCH_S3C2410 is not set
175# CONFIG_ARCH_S3C64XX is not set
176# CONFIG_ARCH_SHARK is not set
177# CONFIG_ARCH_LH7A40X is not set
178CONFIG_ARCH_DAVINCI=y
179# CONFIG_ARCH_OMAP is not set
180# CONFIG_ARCH_MSM is not set
181# CONFIG_ARCH_W90X900 is not set
182
183#
184# TI DaVinci Implementations
185#
186
187#
188# DaVinci Core Type
189#
190CONFIG_ARCH_DAVINCI_DM644x=y
191
192#
193# DaVinci Board Type
194#
195CONFIG_MACH_DAVINCI_EVM=y
196CONFIG_DAVINCI_MUX=y
197CONFIG_DAVINCI_MUX_DEBUG=y
198CONFIG_DAVINCI_MUX_WARNINGS=y
199CONFIG_DAVINCI_RESET_CLOCKS=y
200
201#
202# Processor Type
203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y
208CONFIG_CPU_PABRT_NOIFAR=y
209CONFIG_CPU_CACHE_VIVT=y
210CONFIG_CPU_COPY_V4WB=y
211CONFIG_CPU_TLB_V4WBI=y
212CONFIG_CPU_CP15=y
213CONFIG_CPU_CP15_MMU=y
214
215#
216# Processor Features
217#
218CONFIG_ARM_THUMB=y
219# CONFIG_CPU_ICACHE_DISABLE is not set
220# CONFIG_CPU_DCACHE_DISABLE is not set
221# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
222# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
223# CONFIG_OUTER_CACHE is not set
224CONFIG_COMMON_CLKDEV=y
225
226#
227# Bus support
228#
229# CONFIG_PCI_SYSCALL is not set
230# CONFIG_ARCH_SUPPORTS_MSI is not set
231# CONFIG_PCCARD is not set
232
233#
234# Kernel Features
235#
236CONFIG_TICK_ONESHOT=y
237CONFIG_NO_HZ=y
238CONFIG_HIGH_RES_TIMERS=y
239CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
240CONFIG_VMSPLIT_3G=y
241# CONFIG_VMSPLIT_2G is not set
242# CONFIG_VMSPLIT_1G is not set
243CONFIG_PAGE_OFFSET=0xC0000000
244CONFIG_PREEMPT=y
245CONFIG_HZ=100
246CONFIG_AEABI=y
247# CONFIG_OABI_COMPAT is not set
248CONFIG_ARCH_FLATMEM_HAS_HOLES=y
249# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
250# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
251# CONFIG_HIGHMEM is not set
252CONFIG_SELECT_MEMORY_MODEL=y
253CONFIG_FLATMEM_MANUAL=y
254# CONFIG_DISCONTIGMEM_MANUAL is not set
255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y
258CONFIG_PAGEFLAGS_EXTENDED=y
259CONFIG_SPLIT_PTLOCK_CPUS=4096
260# CONFIG_PHYS_ADDR_T_64BIT is not set
261CONFIG_ZONE_DMA_FLAG=1
262CONFIG_BOUNCE=y
263CONFIG_VIRT_TO_BUS=y
264CONFIG_UNEVICTABLE_LRU=y
265CONFIG_HAVE_MLOCK=y
266CONFIG_HAVE_MLOCKED_PAGE_BIT=y
267CONFIG_LEDS=y
268# CONFIG_LEDS_CPU is not set
269CONFIG_ALIGNMENT_TRAP=y
270
271#
272# Boot options
273#
274CONFIG_ZBOOT_ROM_TEXT=0x0
275CONFIG_ZBOOT_ROM_BSS=0x0
276CONFIG_CMDLINE=""
277# CONFIG_XIP_KERNEL is not set
278# CONFIG_KEXEC is not set
279
280#
281# CPU Power Management
282#
283# CONFIG_CPU_IDLE is not set
284
285#
286# Floating point emulation
287#
288
289#
290# At least one emulation must be selected
291#
292# CONFIG_VFP is not set
293
294#
295# Userspace binary formats
296#
297CONFIG_BINFMT_ELF=y
298# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
299CONFIG_HAVE_AOUT=y
300# CONFIG_BINFMT_AOUT is not set
301# CONFIG_BINFMT_MISC is not set
302
303#
304# Power management options
305#
306# CONFIG_PM is not set
307CONFIG_ARCH_SUSPEND_POSSIBLE=y
308CONFIG_NET=y
309
310#
311# Networking options
312#
313CONFIG_PACKET=y
314# CONFIG_PACKET_MMAP is not set
315CONFIG_UNIX=y
316CONFIG_XFRM=y
317# CONFIG_XFRM_USER is not set
318# CONFIG_XFRM_SUB_POLICY is not set
319# CONFIG_XFRM_MIGRATE is not set
320# CONFIG_XFRM_STATISTICS is not set
321# CONFIG_NET_KEY is not set
322CONFIG_INET=y
323# CONFIG_IP_MULTICAST is not set
324# CONFIG_IP_ADVANCED_ROUTER is not set
325CONFIG_IP_FIB_HASH=y
326CONFIG_IP_PNP=y
327CONFIG_IP_PNP_DHCP=y
328# CONFIG_IP_PNP_BOOTP is not set
329# CONFIG_IP_PNP_RARP is not set
330# CONFIG_NET_IPIP is not set
331# CONFIG_NET_IPGRE is not set
332# CONFIG_ARPD is not set
333# CONFIG_SYN_COOKIES is not set
334# CONFIG_INET_AH is not set
335# CONFIG_INET_ESP is not set
336# CONFIG_INET_IPCOMP is not set
337# CONFIG_INET_XFRM_TUNNEL is not set
338CONFIG_INET_TUNNEL=m
339CONFIG_INET_XFRM_MODE_TRANSPORT=y
340CONFIG_INET_XFRM_MODE_TUNNEL=y
341CONFIG_INET_XFRM_MODE_BEET=y
342# CONFIG_INET_LRO is not set
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349CONFIG_IPV6=m
350# CONFIG_IPV6_PRIVACY is not set
351# CONFIG_IPV6_ROUTER_PREF is not set
352# CONFIG_IPV6_OPTIMISTIC_DAD is not set
353# CONFIG_INET6_AH is not set
354# CONFIG_INET6_ESP is not set
355# CONFIG_INET6_IPCOMP is not set
356# CONFIG_IPV6_MIP6 is not set
357# CONFIG_INET6_XFRM_TUNNEL is not set
358# CONFIG_INET6_TUNNEL is not set
359CONFIG_INET6_XFRM_MODE_TRANSPORT=m
360CONFIG_INET6_XFRM_MODE_TUNNEL=m
361CONFIG_INET6_XFRM_MODE_BEET=m
362# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
363CONFIG_IPV6_SIT=m
364CONFIG_IPV6_NDISC_NODETYPE=y
365# CONFIG_IPV6_TUNNEL is not set
366# CONFIG_IPV6_MULTIPLE_TABLES is not set
367# CONFIG_IPV6_MROUTE is not set
368# CONFIG_NETWORK_SECMARK is not set
369CONFIG_NETFILTER=y
370# CONFIG_NETFILTER_DEBUG is not set
371CONFIG_NETFILTER_ADVANCED=y
372
373#
374# Core Netfilter Configuration
375#
376# CONFIG_NETFILTER_NETLINK_QUEUE is not set
377# CONFIG_NETFILTER_NETLINK_LOG is not set
378# CONFIG_NF_CONNTRACK is not set
379# CONFIG_NETFILTER_XTABLES is not set
380# CONFIG_IP_VS is not set
381
382#
383# IP: Netfilter Configuration
384#
385# CONFIG_NF_DEFRAG_IPV4 is not set
386# CONFIG_IP_NF_QUEUE is not set
387# CONFIG_IP_NF_IPTABLES is not set
388# CONFIG_IP_NF_ARPTABLES is not set
389
390#
391# IPv6: Netfilter Configuration
392#
393# CONFIG_IP6_NF_QUEUE is not set
394# CONFIG_IP6_NF_IPTABLES is not set
395# CONFIG_IP_DCCP is not set
396# CONFIG_IP_SCTP is not set
397# CONFIG_TIPC is not set
398# CONFIG_ATM is not set
399# CONFIG_BRIDGE is not set
400# CONFIG_NET_DSA is not set
401# CONFIG_VLAN_8021Q is not set
402# CONFIG_DECNET is not set
403# CONFIG_LLC2 is not set
404# CONFIG_IPX is not set
405# CONFIG_ATALK is not set
406# CONFIG_X25 is not set
407# CONFIG_LAPB is not set
408# CONFIG_ECONET is not set
409# CONFIG_WAN_ROUTER is not set
410# CONFIG_PHONET is not set
411# CONFIG_NET_SCHED is not set
412# CONFIG_DCB is not set
413
414#
415# Network testing
416#
417# CONFIG_NET_PKTGEN is not set
418# CONFIG_HAMRADIO is not set
419# CONFIG_CAN is not set
420# CONFIG_IRDA is not set
421# CONFIG_BT is not set
422# CONFIG_AF_RXRPC is not set
423# CONFIG_WIRELESS is not set
424# CONFIG_WIMAX is not set
425# CONFIG_RFKILL is not set
426# CONFIG_NET_9P is not set
427
428#
429# Device Drivers
430#
431
432#
433# Generic Driver Options
434#
435CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
436CONFIG_STANDALONE=y
437CONFIG_PREVENT_FIRMWARE_BUILD=y
438# CONFIG_FW_LOADER is not set
439# CONFIG_DEBUG_DRIVER is not set
440# CONFIG_DEBUG_DEVRES is not set
441# CONFIG_SYS_HYPERVISOR is not set
442# CONFIG_CONNECTOR is not set
443CONFIG_MTD=m
444# CONFIG_MTD_DEBUG is not set
445# CONFIG_MTD_CONCAT is not set
446CONFIG_MTD_PARTITIONS=y
447# CONFIG_MTD_TESTS is not set
448# CONFIG_MTD_REDBOOT_PARTS is not set
449# CONFIG_MTD_AFS_PARTS is not set
450# CONFIG_MTD_AR7_PARTS is not set
451
452#
453# User Modules And Translation Layers
454#
455CONFIG_MTD_CHAR=m
456CONFIG_MTD_BLKDEVS=m
457CONFIG_MTD_BLOCK=m
458# CONFIG_MTD_BLOCK_RO is not set
459# CONFIG_FTL is not set
460# CONFIG_NFTL is not set
461# CONFIG_INFTL is not set
462# CONFIG_RFD_FTL is not set
463# CONFIG_SSFDC is not set
464# CONFIG_MTD_OOPS is not set
465
466#
467# RAM/ROM/Flash chip drivers
468#
469CONFIG_MTD_CFI=m
470# CONFIG_MTD_JEDECPROBE is not set
471CONFIG_MTD_GEN_PROBE=m
472# CONFIG_MTD_CFI_ADV_OPTIONS is not set
473CONFIG_MTD_MAP_BANK_WIDTH_1=y
474CONFIG_MTD_MAP_BANK_WIDTH_2=y
475CONFIG_MTD_MAP_BANK_WIDTH_4=y
476# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
477# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
478# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
479CONFIG_MTD_CFI_I1=y
480CONFIG_MTD_CFI_I2=y
481# CONFIG_MTD_CFI_I4 is not set
482# CONFIG_MTD_CFI_I8 is not set
483# CONFIG_MTD_CFI_INTELEXT is not set
484CONFIG_MTD_CFI_AMDSTD=m
485# CONFIG_MTD_CFI_STAA is not set
486CONFIG_MTD_CFI_UTIL=m
487# CONFIG_MTD_RAM is not set
488# CONFIG_MTD_ROM is not set
489# CONFIG_MTD_ABSENT is not set
490
491#
492# Mapping drivers for chip access
493#
494# CONFIG_MTD_COMPLEX_MAPPINGS is not set
495CONFIG_MTD_PHYSMAP=m
496# CONFIG_MTD_PHYSMAP_COMPAT is not set
497# CONFIG_MTD_ARM_INTEGRATOR is not set
498# CONFIG_MTD_PLATRAM is not set
499
500#
501# Self-contained MTD device drivers
502#
503# CONFIG_MTD_SLRAM is not set
504# CONFIG_MTD_PHRAM is not set
505# CONFIG_MTD_MTDRAM is not set
506# CONFIG_MTD_BLOCK2MTD is not set
507
508#
509# Disk-On-Chip Device Drivers
510#
511# CONFIG_MTD_DOC2000 is not set
512# CONFIG_MTD_DOC2001 is not set
513# CONFIG_MTD_DOC2001PLUS is not set
514CONFIG_MTD_NAND=m
515# CONFIG_MTD_NAND_VERIFY_WRITE is not set
516# CONFIG_MTD_NAND_ECC_SMC is not set
517# CONFIG_MTD_NAND_MUSEUM_IDS is not set
518# CONFIG_MTD_NAND_GPIO is not set
519CONFIG_MTD_NAND_IDS=m
520# CONFIG_MTD_NAND_DISKONCHIP is not set
521# CONFIG_MTD_NAND_NANDSIM is not set
522# CONFIG_MTD_NAND_PLATFORM is not set
523# CONFIG_MTD_ALAUDA is not set
524CONFIG_MTD_NAND_DAVINCI=m
525# CONFIG_MTD_ONENAND is not set
526
527#
528# LPDDR flash memory drivers
529#
530# CONFIG_MTD_LPDDR is not set
531
532#
533# UBI - Unsorted block images
534#
535# CONFIG_MTD_UBI is not set
536# CONFIG_PARPORT is not set
537CONFIG_BLK_DEV=y
538# CONFIG_BLK_DEV_COW_COMMON is not set
539CONFIG_BLK_DEV_LOOP=m
540# CONFIG_BLK_DEV_CRYPTOLOOP is not set
541# CONFIG_BLK_DEV_NBD is not set
542# CONFIG_BLK_DEV_UB is not set
543CONFIG_BLK_DEV_RAM=y
544CONFIG_BLK_DEV_RAM_COUNT=1
545CONFIG_BLK_DEV_RAM_SIZE=32768
546# CONFIG_BLK_DEV_XIP is not set
547# CONFIG_CDROM_PKTCDVD is not set
548# CONFIG_ATA_OVER_ETH is not set
549CONFIG_MISC_DEVICES=y
550# CONFIG_ICS932S401 is not set
551# CONFIG_ENCLOSURE_SERVICES is not set
552# CONFIG_ISL29003 is not set
553# CONFIG_C2PORT is not set
554
555#
556# EEPROM support
557#
558CONFIG_EEPROM_AT24=y
559# CONFIG_EEPROM_LEGACY is not set
560# CONFIG_EEPROM_93CX6 is not set
561CONFIG_HAVE_IDE=y
562CONFIG_IDE=m
563
564#
565# Please see Documentation/ide/ide.txt for help/info on IDE drives
566#
567CONFIG_IDE_XFER_MODE=y
568CONFIG_IDE_TIMINGS=y
569# CONFIG_BLK_DEV_IDE_SATA is not set
570CONFIG_IDE_GD=m
571CONFIG_IDE_GD_ATA=y
572# CONFIG_IDE_GD_ATAPI is not set
573# CONFIG_BLK_DEV_IDECD is not set
574# CONFIG_BLK_DEV_IDETAPE is not set
575# CONFIG_IDE_TASK_IOCTL is not set
576CONFIG_IDE_PROC_FS=y
577
578#
579# IDE chipset support/bugfixes
580#
581# CONFIG_BLK_DEV_PLATFORM is not set
582CONFIG_BLK_DEV_IDEDMA_SFF=y
583CONFIG_BLK_DEV_PALMCHIP_BK3710=m
584CONFIG_BLK_DEV_IDEDMA=y
585
586#
587# SCSI device support
588#
589# CONFIG_RAID_ATTRS is not set
590CONFIG_SCSI=m
591CONFIG_SCSI_DMA=y
592# CONFIG_SCSI_TGT is not set
593# CONFIG_SCSI_NETLINK is not set
594CONFIG_SCSI_PROC_FS=y
595
596#
597# SCSI support type (disk, tape, CD-ROM)
598#
599CONFIG_BLK_DEV_SD=m
600# CONFIG_CHR_DEV_ST is not set
601# CONFIG_CHR_DEV_OSST is not set
602# CONFIG_BLK_DEV_SR is not set
603# CONFIG_CHR_DEV_SG is not set
604# CONFIG_CHR_DEV_SCH is not set
605
606#
607# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
608#
609# CONFIG_SCSI_MULTI_LUN is not set
610# CONFIG_SCSI_CONSTANTS is not set
611# CONFIG_SCSI_LOGGING is not set
612# CONFIG_SCSI_SCAN_ASYNC is not set
613CONFIG_SCSI_WAIT_SCAN=m
614
615#
616# SCSI Transports
617#
618# CONFIG_SCSI_SPI_ATTRS is not set
619# CONFIG_SCSI_FC_ATTRS is not set
620# CONFIG_SCSI_ISCSI_ATTRS is not set
621# CONFIG_SCSI_SAS_LIBSAS is not set
622# CONFIG_SCSI_SRP_ATTRS is not set
623CONFIG_SCSI_LOWLEVEL=y
624# CONFIG_ISCSI_TCP is not set
625# CONFIG_LIBFC is not set
626# CONFIG_LIBFCOE is not set
627# CONFIG_SCSI_DEBUG is not set
628# CONFIG_SCSI_DH is not set
629# CONFIG_SCSI_OSD_INITIATOR is not set
630# CONFIG_ATA is not set
631# CONFIG_MD is not set
632CONFIG_NETDEVICES=y
633CONFIG_COMPAT_NET_DEV_OPS=y
634# CONFIG_DUMMY is not set
635# CONFIG_BONDING is not set
636# CONFIG_MACVLAN is not set
637# CONFIG_EQUALIZER is not set
638CONFIG_TUN=m
639# CONFIG_VETH is not set
640CONFIG_PHYLIB=y
641
642#
643# MII PHY device drivers
644#
645# CONFIG_MARVELL_PHY is not set
646# CONFIG_DAVICOM_PHY is not set
647# CONFIG_QSEMI_PHY is not set
648CONFIG_LXT_PHY=y
649# CONFIG_CICADA_PHY is not set
650# CONFIG_VITESSE_PHY is not set
651# CONFIG_SMSC_PHY is not set
652# CONFIG_BROADCOM_PHY is not set
653# CONFIG_ICPLUS_PHY is not set
654# CONFIG_REALTEK_PHY is not set
655# CONFIG_NATIONAL_PHY is not set
656# CONFIG_STE10XP is not set
657CONFIG_LSI_ET1011C_PHY=y
658# CONFIG_FIXED_PHY is not set
659# CONFIG_MDIO_BITBANG is not set
660CONFIG_NET_ETHERNET=y
661CONFIG_MII=y
662# CONFIG_AX88796 is not set
663# CONFIG_SMC91X is not set
664# CONFIG_DM9000 is not set
665# CONFIG_ETHOC is not set
666# CONFIG_SMC911X is not set
667# CONFIG_SMSC911X is not set
668# CONFIG_DNET is not set
669# CONFIG_IBM_NEW_EMAC_ZMII is not set
670# CONFIG_IBM_NEW_EMAC_RGMII is not set
671# CONFIG_IBM_NEW_EMAC_TAH is not set
672# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
673# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
674# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
675# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
676# CONFIG_B44 is not set
677# CONFIG_NETDEV_1000 is not set
678# CONFIG_NETDEV_10000 is not set
679
680#
681# Wireless LAN
682#
683# CONFIG_WLAN_PRE80211 is not set
684# CONFIG_WLAN_80211 is not set
685
686#
687# Enable WiMAX (Networking options) to see the WiMAX drivers
688#
689
690#
691# USB Network Adapters
692#
693# CONFIG_USB_CATC is not set
694# CONFIG_USB_KAWETH is not set
695# CONFIG_USB_PEGASUS is not set
696# CONFIG_USB_RTL8150 is not set
697# CONFIG_USB_USBNET is not set
698# CONFIG_WAN is not set
699CONFIG_PPP=m
700# CONFIG_PPP_MULTILINK is not set
701# CONFIG_PPP_FILTER is not set
702CONFIG_PPP_ASYNC=m
703CONFIG_PPP_SYNC_TTY=m
704CONFIG_PPP_DEFLATE=m
705# CONFIG_PPP_BSDCOMP is not set
706# CONFIG_PPP_MPPE is not set
707# CONFIG_PPPOE is not set
708# CONFIG_PPPOL2TP is not set
709# CONFIG_SLIP is not set
710CONFIG_SLHC=m
711CONFIG_NETCONSOLE=y
712# CONFIG_NETCONSOLE_DYNAMIC is not set
713CONFIG_NETPOLL=y
714CONFIG_NETPOLL_TRAP=y
715CONFIG_NET_POLL_CONTROLLER=y
716# CONFIG_ISDN is not set
717
718#
719# Input device support
720#
721CONFIG_INPUT=y
722# CONFIG_INPUT_FF_MEMLESS is not set
723# CONFIG_INPUT_POLLDEV is not set
724
725#
726# Userland interfaces
727#
728CONFIG_INPUT_MOUSEDEV=m
729CONFIG_INPUT_MOUSEDEV_PSAUX=y
730CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
731CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
732# CONFIG_INPUT_JOYDEV is not set
733CONFIG_INPUT_EVDEV=m
734CONFIG_INPUT_EVBUG=m
735
736#
737# Input Device Drivers
738#
739CONFIG_INPUT_KEYBOARD=y
740CONFIG_KEYBOARD_ATKBD=m
741# CONFIG_KEYBOARD_SUNKBD is not set
742# CONFIG_KEYBOARD_LKKBD is not set
743CONFIG_KEYBOARD_XTKBD=m
744# CONFIG_KEYBOARD_NEWTON is not set
745# CONFIG_KEYBOARD_STOWAWAY is not set
746CONFIG_KEYBOARD_GPIO=y
747# CONFIG_INPUT_MOUSE is not set
748# CONFIG_INPUT_JOYSTICK is not set
749# CONFIG_INPUT_TABLET is not set
750CONFIG_INPUT_TOUCHSCREEN=y
751# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
752# CONFIG_TOUCHSCREEN_AD7879 is not set
753# CONFIG_TOUCHSCREEN_FUJITSU is not set
754# CONFIG_TOUCHSCREEN_GUNZE is not set
755# CONFIG_TOUCHSCREEN_ELO is not set
756# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
757# CONFIG_TOUCHSCREEN_MTOUCH is not set
758# CONFIG_TOUCHSCREEN_INEXIO is not set
759# CONFIG_TOUCHSCREEN_MK712 is not set
760# CONFIG_TOUCHSCREEN_PENMOUNT is not set
761# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
762# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
763# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
764# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
765# CONFIG_TOUCHSCREEN_TSC2007 is not set
766# CONFIG_INPUT_MISC is not set
767
768#
769# Hardware I/O ports
770#
771CONFIG_SERIO=y
772CONFIG_SERIO_SERPORT=y
773CONFIG_SERIO_LIBPS2=y
774# CONFIG_SERIO_RAW is not set
775# CONFIG_GAMEPORT is not set
776
777#
778# Character devices
779#
780CONFIG_VT=y
781CONFIG_CONSOLE_TRANSLATIONS=y
782# CONFIG_VT_CONSOLE is not set
783CONFIG_HW_CONSOLE=y
784# CONFIG_VT_HW_CONSOLE_BINDING is not set
785CONFIG_DEVKMEM=y
786# CONFIG_SERIAL_NONSTANDARD is not set
787
788#
789# Serial drivers
790#
791CONFIG_SERIAL_8250=y
792CONFIG_SERIAL_8250_CONSOLE=y
793CONFIG_SERIAL_8250_NR_UARTS=3
794CONFIG_SERIAL_8250_RUNTIME_UARTS=3
795# CONFIG_SERIAL_8250_EXTENDED is not set
796
797#
798# Non-8250 serial port support
799#
800CONFIG_SERIAL_CORE=y
801CONFIG_SERIAL_CORE_CONSOLE=y
802CONFIG_UNIX98_PTYS=y
803# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
804CONFIG_LEGACY_PTYS=y
805CONFIG_LEGACY_PTY_COUNT=256
806# CONFIG_IPMI_HANDLER is not set
807CONFIG_HW_RANDOM=m
808# CONFIG_HW_RANDOM_TIMERIOMEM is not set
809# CONFIG_R3964 is not set
810# CONFIG_RAW_DRIVER is not set
811# CONFIG_TCG_TPM is not set
812CONFIG_I2C=y
813CONFIG_I2C_BOARDINFO=y
814CONFIG_I2C_CHARDEV=y
815CONFIG_I2C_HELPER_AUTO=y
816
817#
818# I2C Hardware Bus support
819#
820
821#
822# I2C system bus drivers (mostly embedded / system-on-chip)
823#
824CONFIG_I2C_DAVINCI=y
825# CONFIG_I2C_GPIO is not set
826# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set
828
829#
830# External I2C/SMBus adapter drivers
831#
832# CONFIG_I2C_PARPORT_LIGHT is not set
833# CONFIG_I2C_TAOS_EVM is not set
834# CONFIG_I2C_TINY_USB is not set
835
836#
837# Other I2C/SMBus bus drivers
838#
839# CONFIG_I2C_PCA_PLATFORM is not set
840# CONFIG_I2C_STUB is not set
841
842#
843# Miscellaneous I2C Chip support
844#
845# CONFIG_DS1682 is not set
846# CONFIG_SENSORS_PCA9539 is not set
847# CONFIG_SENSORS_MAX6875 is not set
848# CONFIG_SENSORS_TSL2550 is not set
849# CONFIG_I2C_DEBUG_CORE is not set
850# CONFIG_I2C_DEBUG_ALGO is not set
851# CONFIG_I2C_DEBUG_BUS is not set
852# CONFIG_I2C_DEBUG_CHIP is not set
853# CONFIG_SPI is not set
854CONFIG_ARCH_REQUIRE_GPIOLIB=y
855CONFIG_GPIOLIB=y
856# CONFIG_DEBUG_GPIO is not set
857# CONFIG_GPIO_SYSFS is not set
858
859#
860# Memory mapped GPIO expanders:
861#
862
863#
864# I2C GPIO expanders:
865#
866# CONFIG_GPIO_MAX732X is not set
867# CONFIG_GPIO_PCA953X is not set
868CONFIG_GPIO_PCF857X=m
869
870#
871# PCI GPIO expanders:
872#
873
874#
875# SPI GPIO expanders:
876#
877# CONFIG_W1 is not set
878# CONFIG_POWER_SUPPLY is not set
879CONFIG_HWMON=y
880# CONFIG_HWMON_VID is not set
881# CONFIG_SENSORS_AD7414 is not set
882# CONFIG_SENSORS_AD7418 is not set
883# CONFIG_SENSORS_ADM1021 is not set
884# CONFIG_SENSORS_ADM1025 is not set
885# CONFIG_SENSORS_ADM1026 is not set
886# CONFIG_SENSORS_ADM1029 is not set
887# CONFIG_SENSORS_ADM1031 is not set
888# CONFIG_SENSORS_ADM9240 is not set
889# CONFIG_SENSORS_ADT7462 is not set
890# CONFIG_SENSORS_ADT7470 is not set
891# CONFIG_SENSORS_ADT7473 is not set
892# CONFIG_SENSORS_ADT7475 is not set
893# CONFIG_SENSORS_ATXP1 is not set
894# CONFIG_SENSORS_DS1621 is not set
895# CONFIG_SENSORS_F71805F is not set
896# CONFIG_SENSORS_F71882FG is not set
897# CONFIG_SENSORS_F75375S is not set
898# CONFIG_SENSORS_G760A is not set
899# CONFIG_SENSORS_GL518SM is not set
900# CONFIG_SENSORS_GL520SM is not set
901# CONFIG_SENSORS_IT87 is not set
902# CONFIG_SENSORS_LM63 is not set
903# CONFIG_SENSORS_LM75 is not set
904# CONFIG_SENSORS_LM77 is not set
905# CONFIG_SENSORS_LM78 is not set
906# CONFIG_SENSORS_LM80 is not set
907# CONFIG_SENSORS_LM83 is not set
908# CONFIG_SENSORS_LM85 is not set
909# CONFIG_SENSORS_LM87 is not set
910# CONFIG_SENSORS_LM90 is not set
911# CONFIG_SENSORS_LM92 is not set
912# CONFIG_SENSORS_LM93 is not set
913# CONFIG_SENSORS_LTC4215 is not set
914# CONFIG_SENSORS_LTC4245 is not set
915# CONFIG_SENSORS_LM95241 is not set
916# CONFIG_SENSORS_MAX1619 is not set
917# CONFIG_SENSORS_MAX6650 is not set
918# CONFIG_SENSORS_PC87360 is not set
919# CONFIG_SENSORS_PC87427 is not set
920# CONFIG_SENSORS_PCF8591 is not set
921# CONFIG_SENSORS_SHT15 is not set
922# CONFIG_SENSORS_DME1737 is not set
923# CONFIG_SENSORS_SMSC47M1 is not set
924# CONFIG_SENSORS_SMSC47M192 is not set
925# CONFIG_SENSORS_SMSC47B397 is not set
926# CONFIG_SENSORS_ADS7828 is not set
927# CONFIG_SENSORS_THMC50 is not set
928# CONFIG_SENSORS_VT1211 is not set
929# CONFIG_SENSORS_W83781D is not set
930# CONFIG_SENSORS_W83791D is not set
931# CONFIG_SENSORS_W83792D is not set
932# CONFIG_SENSORS_W83793 is not set
933# CONFIG_SENSORS_W83L785TS is not set
934# CONFIG_SENSORS_W83L786NG is not set
935# CONFIG_SENSORS_W83627HF is not set
936# CONFIG_SENSORS_W83627EHF is not set
937# CONFIG_HWMON_DEBUG_CHIP is not set
938# CONFIG_THERMAL is not set
939# CONFIG_THERMAL_HWMON is not set
940CONFIG_WATCHDOG=y
941# CONFIG_WATCHDOG_NOWAYOUT is not set
942
943#
944# Watchdog Device Drivers
945#
946# CONFIG_SOFT_WATCHDOG is not set
947CONFIG_DAVINCI_WATCHDOG=m
948
949#
950# USB-based Watchdog Cards
951#
952# CONFIG_USBPCWATCHDOG is not set
953CONFIG_SSB_POSSIBLE=y
954
955#
956# Sonics Silicon Backplane
957#
958# CONFIG_SSB is not set
959
960#
961# Multifunction device drivers
962#
963# CONFIG_MFD_CORE is not set
964# CONFIG_MFD_SM501 is not set
965# CONFIG_MFD_ASIC3 is not set
966# CONFIG_HTC_EGPIO is not set
967# CONFIG_HTC_PASIC3 is not set
968# CONFIG_TPS65010 is not set
969# CONFIG_TWL4030_CORE is not set
970# CONFIG_MFD_TMIO is not set
971# CONFIG_MFD_T7L66XB is not set
972# CONFIG_MFD_TC6387XB is not set
973# CONFIG_MFD_TC6393XB is not set
974# CONFIG_PMIC_DA903X is not set
975# CONFIG_MFD_WM8400 is not set
976# CONFIG_MFD_WM8350_I2C is not set
977# CONFIG_MFD_PCF50633 is not set
978
979#
980# Multimedia devices
981#
982
983#
984# Multimedia core support
985#
986CONFIG_VIDEO_DEV=y
987CONFIG_VIDEO_V4L2_COMMON=y
988CONFIG_VIDEO_ALLOW_V4L1=y
989CONFIG_VIDEO_V4L1_COMPAT=y
990# CONFIG_DVB_CORE is not set
991CONFIG_VIDEO_MEDIA=y
992
993#
994# Multimedia drivers
995#
996# CONFIG_MEDIA_ATTACH is not set
997CONFIG_MEDIA_TUNER=y
998# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
999CONFIG_MEDIA_TUNER_SIMPLE=y
1000CONFIG_MEDIA_TUNER_TDA8290=y
1001CONFIG_MEDIA_TUNER_TDA9887=y
1002CONFIG_MEDIA_TUNER_TEA5761=y
1003CONFIG_MEDIA_TUNER_TEA5767=y
1004CONFIG_MEDIA_TUNER_MT20XX=y
1005CONFIG_MEDIA_TUNER_XC2028=y
1006CONFIG_MEDIA_TUNER_XC5000=y
1007CONFIG_MEDIA_TUNER_MC44S803=y
1008CONFIG_VIDEO_V4L2=y
1009CONFIG_VIDEO_V4L1=y
1010CONFIG_VIDEO_CAPTURE_DRIVERS=y
1011# CONFIG_VIDEO_ADV_DEBUG is not set
1012# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1013CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1014# CONFIG_VIDEO_VIVI is not set
1015# CONFIG_VIDEO_CPIA is not set
1016# CONFIG_VIDEO_CPIA2 is not set
1017# CONFIG_VIDEO_SAA5246A is not set
1018# CONFIG_VIDEO_SAA5249 is not set
1019# CONFIG_SOC_CAMERA is not set
1020# CONFIG_V4L_USB_DRIVERS is not set
1021# CONFIG_RADIO_ADAPTERS is not set
1022CONFIG_DAB=y
1023# CONFIG_USB_DABUSB is not set
1024
1025#
1026# Graphics support
1027#
1028# CONFIG_VGASTATE is not set
1029CONFIG_VIDEO_OUTPUT_CONTROL=m
1030CONFIG_FB=y
1031CONFIG_FIRMWARE_EDID=y
1032# CONFIG_FB_DDC is not set
1033# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1034# CONFIG_FB_CFB_FILLRECT is not set
1035# CONFIG_FB_CFB_COPYAREA is not set
1036# CONFIG_FB_CFB_IMAGEBLIT is not set
1037# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1038# CONFIG_FB_SYS_FILLRECT is not set
1039# CONFIG_FB_SYS_COPYAREA is not set
1040# CONFIG_FB_SYS_IMAGEBLIT is not set
1041# CONFIG_FB_FOREIGN_ENDIAN is not set
1042# CONFIG_FB_SYS_FOPS is not set
1043# CONFIG_FB_SVGALIB is not set
1044# CONFIG_FB_MACMODES is not set
1045# CONFIG_FB_BACKLIGHT is not set
1046# CONFIG_FB_MODE_HELPERS is not set
1047# CONFIG_FB_TILEBLITTING is not set
1048
1049#
1050# Frame buffer hardware drivers
1051#
1052# CONFIG_FB_S1D13XXX is not set
1053# CONFIG_FB_VIRTUAL is not set
1054# CONFIG_FB_METRONOME is not set
1055# CONFIG_FB_MB862XX is not set
1056# CONFIG_FB_BROADSHEET is not set
1057# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1058
1059#
1060# Display device support
1061#
1062# CONFIG_DISPLAY_SUPPORT is not set
1063
1064#
1065# Console display driver support
1066#
1067# CONFIG_VGA_CONSOLE is not set
1068CONFIG_DUMMY_CONSOLE=y
1069CONFIG_FRAMEBUFFER_CONSOLE=y
1070# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1071# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1072# CONFIG_FONTS is not set
1073CONFIG_FONT_8x8=y
1074CONFIG_FONT_8x16=y
1075CONFIG_LOGO=y
1076CONFIG_LOGO_LINUX_MONO=y
1077CONFIG_LOGO_LINUX_VGA16=y
1078CONFIG_LOGO_LINUX_CLUT224=y
1079CONFIG_SOUND=m
1080# CONFIG_SOUND_OSS_CORE is not set
1081CONFIG_SND=m
1082CONFIG_SND_TIMER=m
1083CONFIG_SND_PCM=m
1084CONFIG_SND_JACK=y
1085# CONFIG_SND_SEQUENCER is not set
1086# CONFIG_SND_MIXER_OSS is not set
1087# CONFIG_SND_PCM_OSS is not set
1088# CONFIG_SND_HRTIMER is not set
1089# CONFIG_SND_DYNAMIC_MINORS is not set
1090CONFIG_SND_SUPPORT_OLD_API=y
1091CONFIG_SND_VERBOSE_PROCFS=y
1092# CONFIG_SND_VERBOSE_PRINTK is not set
1093# CONFIG_SND_DEBUG is not set
1094CONFIG_SND_DRIVERS=y
1095# CONFIG_SND_DUMMY is not set
1096# CONFIG_SND_MTPAV is not set
1097# CONFIG_SND_SERIAL_U16550 is not set
1098# CONFIG_SND_MPU401 is not set
1099CONFIG_SND_ARM=y
1100CONFIG_SND_USB=y
1101# CONFIG_SND_USB_AUDIO is not set
1102# CONFIG_SND_USB_CAIAQ is not set
1103CONFIG_SND_SOC=m
1104# CONFIG_SND_DAVINCI_SOC is not set
1105CONFIG_SND_SOC_I2C_AND_SPI=m
1106# CONFIG_SND_SOC_ALL_CODECS is not set
1107# CONFIG_SOUND_PRIME is not set
1108CONFIG_HID_SUPPORT=y
1109CONFIG_HID=m
1110# CONFIG_HID_DEBUG is not set
1111# CONFIG_HIDRAW is not set
1112
1113#
1114# USB Input Devices
1115#
1116CONFIG_USB_HID=m
1117# CONFIG_HID_PID is not set
1118# CONFIG_USB_HIDDEV is not set
1119
1120#
1121# USB HID Boot Protocol drivers
1122#
1123# CONFIG_USB_KBD is not set
1124# CONFIG_USB_MOUSE is not set
1125
1126#
1127# Special HID drivers
1128#
1129CONFIG_HID_A4TECH=m
1130CONFIG_HID_APPLE=m
1131CONFIG_HID_BELKIN=m
1132CONFIG_HID_CHERRY=m
1133CONFIG_HID_CHICONY=m
1134CONFIG_HID_CYPRESS=m
1135# CONFIG_DRAGONRISE_FF is not set
1136CONFIG_HID_EZKEY=m
1137# CONFIG_HID_KYE is not set
1138CONFIG_HID_GYRATION=m
1139# CONFIG_HID_KENSINGTON is not set
1140CONFIG_HID_LOGITECH=m
1141# CONFIG_LOGITECH_FF is not set
1142# CONFIG_LOGIRUMBLEPAD2_FF is not set
1143CONFIG_HID_MICROSOFT=m
1144CONFIG_HID_MONTEREY=m
1145# CONFIG_HID_NTRIG is not set
1146CONFIG_HID_PANTHERLORD=m
1147# CONFIG_PANTHERLORD_FF is not set
1148CONFIG_HID_PETALYNX=m
1149CONFIG_HID_SAMSUNG=m
1150CONFIG_HID_SONY=m
1151CONFIG_HID_SUNPLUS=m
1152# CONFIG_GREENASIA_FF is not set
1153# CONFIG_HID_TOPSEED is not set
1154# CONFIG_THRUSTMASTER_FF is not set
1155# CONFIG_ZEROPLUS_FF is not set
1156CONFIG_USB_SUPPORT=y
1157CONFIG_USB_ARCH_HAS_HCD=y
1158# CONFIG_USB_ARCH_HAS_OHCI is not set
1159# CONFIG_USB_ARCH_HAS_EHCI is not set
1160CONFIG_USB=m
1161# CONFIG_USB_DEBUG is not set
1162# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1163
1164#
1165# Miscellaneous USB options
1166#
1167CONFIG_USB_DEVICEFS=y
1168CONFIG_USB_DEVICE_CLASS=y
1169# CONFIG_USB_DYNAMIC_MINORS is not set
1170# CONFIG_USB_OTG is not set
1171# CONFIG_USB_OTG_WHITELIST is not set
1172# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1173CONFIG_USB_MON=m
1174# CONFIG_USB_WUSB is not set
1175# CONFIG_USB_WUSB_CBAF is not set
1176
1177#
1178# USB Host Controller Drivers
1179#
1180# CONFIG_USB_C67X00_HCD is not set
1181# CONFIG_USB_OXU210HP_HCD is not set
1182# CONFIG_USB_ISP116X_HCD is not set
1183# CONFIG_USB_ISP1760_HCD is not set
1184# CONFIG_USB_SL811_HCD is not set
1185# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_HWA_HCD is not set
1187CONFIG_USB_MUSB_HDRC=m
1188CONFIG_USB_MUSB_SOC=y
1189
1190#
1191# DaVinci 35x and 644x USB support
1192#
1193# CONFIG_USB_MUSB_HOST is not set
1194CONFIG_USB_MUSB_PERIPHERAL=y
1195# CONFIG_USB_MUSB_OTG is not set
1196CONFIG_USB_GADGET_MUSB_HDRC=y
1197CONFIG_MUSB_PIO_ONLY=y
1198# CONFIG_USB_MUSB_DEBUG is not set
1199
1200#
1201# USB Device Class drivers
1202#
1203# CONFIG_USB_ACM is not set
1204# CONFIG_USB_PRINTER is not set
1205# CONFIG_USB_WDM is not set
1206# CONFIG_USB_TMC is not set
1207
1208#
1209# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1210#
1211
1212#
1213# also be needed; see USB_STORAGE Help for more info
1214#
1215CONFIG_USB_STORAGE=m
1216# CONFIG_USB_STORAGE_DEBUG is not set
1217# CONFIG_USB_STORAGE_DATAFAB is not set
1218# CONFIG_USB_STORAGE_FREECOM is not set
1219# CONFIG_USB_STORAGE_ISD200 is not set
1220# CONFIG_USB_STORAGE_USBAT is not set
1221# CONFIG_USB_STORAGE_SDDR09 is not set
1222# CONFIG_USB_STORAGE_SDDR55 is not set
1223# CONFIG_USB_STORAGE_JUMPSHOT is not set
1224# CONFIG_USB_STORAGE_ALAUDA is not set
1225# CONFIG_USB_STORAGE_ONETOUCH is not set
1226# CONFIG_USB_STORAGE_KARMA is not set
1227# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1228# CONFIG_USB_LIBUSUAL is not set
1229
1230#
1231# USB Imaging devices
1232#
1233# CONFIG_USB_MDC800 is not set
1234# CONFIG_USB_MICROTEK is not set
1235
1236#
1237# USB port drivers
1238#
1239# CONFIG_USB_SERIAL is not set
1240
1241#
1242# USB Miscellaneous drivers
1243#
1244# CONFIG_USB_EMI62 is not set
1245# CONFIG_USB_EMI26 is not set
1246# CONFIG_USB_ADUTUX is not set
1247# CONFIG_USB_SEVSEG is not set
1248# CONFIG_USB_RIO500 is not set
1249# CONFIG_USB_LEGOTOWER is not set
1250# CONFIG_USB_LCD is not set
1251# CONFIG_USB_BERRY_CHARGE is not set
1252# CONFIG_USB_LED is not set
1253# CONFIG_USB_CYPRESS_CY7C63 is not set
1254# CONFIG_USB_CYTHERM is not set
1255# CONFIG_USB_IDMOUSE is not set
1256# CONFIG_USB_FTDI_ELAN is not set
1257# CONFIG_USB_APPLEDISPLAY is not set
1258# CONFIG_USB_LD is not set
1259# CONFIG_USB_TRANCEVIBRATOR is not set
1260# CONFIG_USB_IOWARRIOR is not set
1261CONFIG_USB_TEST=m
1262# CONFIG_USB_ISIGHTFW is not set
1263# CONFIG_USB_VST is not set
1264CONFIG_USB_GADGET=m
1265# CONFIG_USB_GADGET_DEBUG is not set
1266CONFIG_USB_GADGET_DEBUG_FILES=y
1267CONFIG_USB_GADGET_DEBUG_FS=y
1268CONFIG_USB_GADGET_VBUS_DRAW=2
1269CONFIG_USB_GADGET_SELECTED=y
1270# CONFIG_USB_GADGET_AT91 is not set
1271# CONFIG_USB_GADGET_ATMEL_USBA is not set
1272# CONFIG_USB_GADGET_FSL_USB2 is not set
1273# CONFIG_USB_GADGET_LH7A40X is not set
1274# CONFIG_USB_GADGET_OMAP is not set
1275# CONFIG_USB_GADGET_PXA25X is not set
1276# CONFIG_USB_GADGET_PXA27X is not set
1277# CONFIG_USB_GADGET_S3C2410 is not set
1278# CONFIG_USB_GADGET_IMX is not set
1279# CONFIG_USB_GADGET_M66592 is not set
1280# CONFIG_USB_GADGET_AMD5536UDC is not set
1281# CONFIG_USB_GADGET_FSL_QE is not set
1282# CONFIG_USB_GADGET_CI13XXX is not set
1283# CONFIG_USB_GADGET_NET2280 is not set
1284# CONFIG_USB_GADGET_GOKU is not set
1285# CONFIG_USB_GADGET_DUMMY_HCD is not set
1286CONFIG_USB_GADGET_DUALSPEED=y
1287CONFIG_USB_ZERO=m
1288CONFIG_USB_ETH=m
1289CONFIG_USB_ETH_RNDIS=y
1290CONFIG_USB_GADGETFS=m
1291CONFIG_USB_FILE_STORAGE=m
1292# CONFIG_USB_FILE_STORAGE_TEST is not set
1293CONFIG_USB_G_SERIAL=m
1294# CONFIG_USB_MIDI_GADGET is not set
1295CONFIG_USB_G_PRINTER=m
1296CONFIG_USB_CDC_COMPOSITE=m
1297
1298#
1299# OTG and related infrastructure
1300#
1301CONFIG_USB_OTG_UTILS=y
1302# CONFIG_USB_GPIO_VBUS is not set
1303# CONFIG_NOP_USB_XCEIV is not set
1304CONFIG_MMC=m
1305# CONFIG_MMC_DEBUG is not set
1306# CONFIG_MMC_UNSAFE_RESUME is not set
1307
1308#
1309# MMC/SD/SDIO Card Drivers
1310#
1311CONFIG_MMC_BLOCK=m
1312# CONFIG_MMC_BLOCK_BOUNCE is not set
1313# CONFIG_SDIO_UART is not set
1314# CONFIG_MMC_TEST is not set
1315
1316#
1317# MMC/SD/SDIO Host Controller Drivers
1318#
1319# CONFIG_MMC_SDHCI is not set
1320# CONFIG_MEMSTICK is not set
1321# CONFIG_ACCESSIBILITY is not set
1322CONFIG_NEW_LEDS=y
1323CONFIG_LEDS_CLASS=m
1324
1325#
1326# LED drivers
1327#
1328# CONFIG_LEDS_PCA9532 is not set
1329CONFIG_LEDS_GPIO=m
1330CONFIG_LEDS_GPIO_PLATFORM=y
1331# CONFIG_LEDS_LP5521 is not set
1332# CONFIG_LEDS_PCA955X is not set
1333# CONFIG_LEDS_BD2802 is not set
1334
1335#
1336# LED Triggers
1337#
1338CONFIG_LEDS_TRIGGERS=y
1339CONFIG_LEDS_TRIGGER_TIMER=m
1340# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1341CONFIG_LEDS_TRIGGER_HEARTBEAT=m
1342# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1343# CONFIG_LEDS_TRIGGER_GPIO is not set
1344# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1345
1346#
1347# iptables trigger is under Netfilter config (LED target)
1348#
1349CONFIG_RTC_LIB=y
1350CONFIG_RTC_CLASS=m
1351
1352#
1353# RTC interfaces
1354#
1355CONFIG_RTC_INTF_SYSFS=y
1356CONFIG_RTC_INTF_PROC=y
1357CONFIG_RTC_INTF_DEV=y
1358# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1359# CONFIG_RTC_DRV_TEST is not set
1360
1361#
1362# I2C RTC drivers
1363#
1364# CONFIG_RTC_DRV_DS1307 is not set
1365# CONFIG_RTC_DRV_DS1374 is not set
1366# CONFIG_RTC_DRV_DS1672 is not set
1367# CONFIG_RTC_DRV_MAX6900 is not set
1368# CONFIG_RTC_DRV_RS5C372 is not set
1369# CONFIG_RTC_DRV_ISL1208 is not set
1370# CONFIG_RTC_DRV_X1205 is not set
1371# CONFIG_RTC_DRV_PCF8563 is not set
1372# CONFIG_RTC_DRV_PCF8583 is not set
1373# CONFIG_RTC_DRV_M41T80 is not set
1374# CONFIG_RTC_DRV_S35390A is not set
1375# CONFIG_RTC_DRV_FM3130 is not set
1376# CONFIG_RTC_DRV_RX8581 is not set
1377
1378#
1379# SPI RTC drivers
1380#
1381
1382#
1383# Platform RTC drivers
1384#
1385# CONFIG_RTC_DRV_CMOS is not set
1386# CONFIG_RTC_DRV_DS1286 is not set
1387# CONFIG_RTC_DRV_DS1511 is not set
1388# CONFIG_RTC_DRV_DS1553 is not set
1389# CONFIG_RTC_DRV_DS1742 is not set
1390# CONFIG_RTC_DRV_STK17TA8 is not set
1391# CONFIG_RTC_DRV_M48T86 is not set
1392# CONFIG_RTC_DRV_M48T35 is not set
1393# CONFIG_RTC_DRV_M48T59 is not set
1394# CONFIG_RTC_DRV_BQ4802 is not set
1395# CONFIG_RTC_DRV_V3020 is not set
1396
1397#
1398# on-CPU RTC drivers
1399#
1400# CONFIG_DMADEVICES is not set
1401# CONFIG_AUXDISPLAY is not set
1402# CONFIG_REGULATOR is not set
1403# CONFIG_UIO is not set
1404# CONFIG_STAGING is not set
1405
1406#
1407# File systems
1408#
1409CONFIG_EXT2_FS=y
1410# CONFIG_EXT2_FS_XATTR is not set
1411# CONFIG_EXT2_FS_XIP is not set
1412CONFIG_EXT3_FS=y
1413# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1414CONFIG_EXT3_FS_XATTR=y
1415# CONFIG_EXT3_FS_POSIX_ACL is not set
1416# CONFIG_EXT3_FS_SECURITY is not set
1417# CONFIG_EXT4_FS is not set
1418CONFIG_JBD=y
1419# CONFIG_JBD_DEBUG is not set
1420CONFIG_FS_MBCACHE=y
1421# CONFIG_REISERFS_FS is not set
1422# CONFIG_JFS_FS is not set
1423# CONFIG_FS_POSIX_ACL is not set
1424CONFIG_FILE_LOCKING=y
1425CONFIG_XFS_FS=m
1426# CONFIG_XFS_QUOTA is not set
1427# CONFIG_XFS_POSIX_ACL is not set
1428# CONFIG_XFS_RT is not set
1429# CONFIG_XFS_DEBUG is not set
1430# CONFIG_OCFS2_FS is not set
1431# CONFIG_BTRFS_FS is not set
1432CONFIG_DNOTIFY=y
1433CONFIG_INOTIFY=y
1434CONFIG_INOTIFY_USER=y
1435# CONFIG_QUOTA is not set
1436# CONFIG_AUTOFS_FS is not set
1437CONFIG_AUTOFS4_FS=m
1438# CONFIG_FUSE_FS is not set
1439
1440#
1441# Caches
1442#
1443# CONFIG_FSCACHE is not set
1444
1445#
1446# CD-ROM/DVD Filesystems
1447#
1448# CONFIG_ISO9660_FS is not set
1449# CONFIG_UDF_FS is not set
1450
1451#
1452# DOS/FAT/NT Filesystems
1453#
1454CONFIG_FAT_FS=y
1455CONFIG_MSDOS_FS=y
1456CONFIG_VFAT_FS=y
1457CONFIG_FAT_DEFAULT_CODEPAGE=437
1458CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1459# CONFIG_NTFS_FS is not set
1460
1461#
1462# Pseudo filesystems
1463#
1464CONFIG_PROC_FS=y
1465CONFIG_PROC_SYSCTL=y
1466CONFIG_PROC_PAGE_MONITOR=y
1467CONFIG_SYSFS=y
1468CONFIG_TMPFS=y
1469# CONFIG_TMPFS_POSIX_ACL is not set
1470# CONFIG_HUGETLB_PAGE is not set
1471# CONFIG_CONFIGFS_FS is not set
1472CONFIG_MISC_FILESYSTEMS=y
1473# CONFIG_ADFS_FS is not set
1474# CONFIG_AFFS_FS is not set
1475# CONFIG_HFS_FS is not set
1476# CONFIG_HFSPLUS_FS is not set
1477# CONFIG_BEFS_FS is not set
1478# CONFIG_BFS_FS is not set
1479# CONFIG_EFS_FS is not set
1480CONFIG_JFFS2_FS=m
1481CONFIG_JFFS2_FS_DEBUG=0
1482CONFIG_JFFS2_FS_WRITEBUFFER=y
1483# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1484# CONFIG_JFFS2_SUMMARY is not set
1485# CONFIG_JFFS2_FS_XATTR is not set
1486# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1487CONFIG_JFFS2_ZLIB=y
1488# CONFIG_JFFS2_LZO is not set
1489CONFIG_JFFS2_RTIME=y
1490# CONFIG_JFFS2_RUBIN is not set
1491CONFIG_CRAMFS=y
1492# CONFIG_SQUASHFS is not set
1493# CONFIG_VXFS_FS is not set
1494CONFIG_MINIX_FS=m
1495# CONFIG_OMFS_FS is not set
1496# CONFIG_HPFS_FS is not set
1497# CONFIG_QNX4FS_FS is not set
1498# CONFIG_ROMFS_FS is not set
1499# CONFIG_SYSV_FS is not set
1500# CONFIG_UFS_FS is not set
1501# CONFIG_NILFS2_FS is not set
1502CONFIG_NETWORK_FILESYSTEMS=y
1503CONFIG_NFS_FS=y
1504CONFIG_NFS_V3=y
1505# CONFIG_NFS_V3_ACL is not set
1506# CONFIG_NFS_V4 is not set
1507CONFIG_ROOT_NFS=y
1508CONFIG_NFSD=m
1509CONFIG_NFSD_V3=y
1510# CONFIG_NFSD_V3_ACL is not set
1511# CONFIG_NFSD_V4 is not set
1512CONFIG_LOCKD=y
1513CONFIG_LOCKD_V4=y
1514CONFIG_EXPORTFS=m
1515CONFIG_NFS_COMMON=y
1516CONFIG_SUNRPC=y
1517# CONFIG_RPCSEC_GSS_KRB5 is not set
1518# CONFIG_RPCSEC_GSS_SPKM3 is not set
1519CONFIG_SMB_FS=m
1520# CONFIG_SMB_NLS_DEFAULT is not set
1521# CONFIG_CIFS is not set
1522# CONFIG_NCP_FS is not set
1523# CONFIG_CODA_FS is not set
1524# CONFIG_AFS_FS is not set
1525
1526#
1527# Partition Types
1528#
1529CONFIG_PARTITION_ADVANCED=y
1530# CONFIG_ACORN_PARTITION is not set
1531# CONFIG_OSF_PARTITION is not set
1532# CONFIG_AMIGA_PARTITION is not set
1533# CONFIG_ATARI_PARTITION is not set
1534# CONFIG_MAC_PARTITION is not set
1535CONFIG_MSDOS_PARTITION=y
1536# CONFIG_BSD_DISKLABEL is not set
1537# CONFIG_MINIX_SUBPARTITION is not set
1538# CONFIG_SOLARIS_X86_PARTITION is not set
1539# CONFIG_UNIXWARE_DISKLABEL is not set
1540# CONFIG_LDM_PARTITION is not set
1541# CONFIG_SGI_PARTITION is not set
1542# CONFIG_ULTRIX_PARTITION is not set
1543# CONFIG_SUN_PARTITION is not set
1544# CONFIG_KARMA_PARTITION is not set
1545# CONFIG_EFI_PARTITION is not set
1546# CONFIG_SYSV68_PARTITION is not set
1547CONFIG_NLS=y
1548CONFIG_NLS_DEFAULT="iso8859-1"
1549CONFIG_NLS_CODEPAGE_437=y
1550# CONFIG_NLS_CODEPAGE_737 is not set
1551# CONFIG_NLS_CODEPAGE_775 is not set
1552# CONFIG_NLS_CODEPAGE_850 is not set
1553# CONFIG_NLS_CODEPAGE_852 is not set
1554# CONFIG_NLS_CODEPAGE_855 is not set
1555# CONFIG_NLS_CODEPAGE_857 is not set
1556# CONFIG_NLS_CODEPAGE_860 is not set
1557# CONFIG_NLS_CODEPAGE_861 is not set
1558# CONFIG_NLS_CODEPAGE_862 is not set
1559# CONFIG_NLS_CODEPAGE_863 is not set
1560# CONFIG_NLS_CODEPAGE_864 is not set
1561# CONFIG_NLS_CODEPAGE_865 is not set
1562# CONFIG_NLS_CODEPAGE_866 is not set
1563# CONFIG_NLS_CODEPAGE_869 is not set
1564# CONFIG_NLS_CODEPAGE_936 is not set
1565# CONFIG_NLS_CODEPAGE_950 is not set
1566# CONFIG_NLS_CODEPAGE_932 is not set
1567# CONFIG_NLS_CODEPAGE_949 is not set
1568# CONFIG_NLS_CODEPAGE_874 is not set
1569# CONFIG_NLS_ISO8859_8 is not set
1570# CONFIG_NLS_CODEPAGE_1250 is not set
1571# CONFIG_NLS_CODEPAGE_1251 is not set
1572CONFIG_NLS_ASCII=m
1573CONFIG_NLS_ISO8859_1=y
1574# CONFIG_NLS_ISO8859_2 is not set
1575# CONFIG_NLS_ISO8859_3 is not set
1576# CONFIG_NLS_ISO8859_4 is not set
1577# CONFIG_NLS_ISO8859_5 is not set
1578# CONFIG_NLS_ISO8859_6 is not set
1579# CONFIG_NLS_ISO8859_7 is not set
1580# CONFIG_NLS_ISO8859_9 is not set
1581# CONFIG_NLS_ISO8859_13 is not set
1582# CONFIG_NLS_ISO8859_14 is not set
1583# CONFIG_NLS_ISO8859_15 is not set
1584# CONFIG_NLS_KOI8_R is not set
1585# CONFIG_NLS_KOI8_U is not set
1586CONFIG_NLS_UTF8=m
1587# CONFIG_DLM is not set
1588
1589#
1590# Kernel hacking
1591#
1592# CONFIG_PRINTK_TIME is not set
1593CONFIG_ENABLE_WARN_DEPRECATED=y
1594CONFIG_ENABLE_MUST_CHECK=y
1595CONFIG_FRAME_WARN=1024
1596# CONFIG_MAGIC_SYSRQ is not set
1597# CONFIG_UNUSED_SYMBOLS is not set
1598CONFIG_DEBUG_FS=y
1599# CONFIG_HEADERS_CHECK is not set
1600CONFIG_DEBUG_KERNEL=y
1601# CONFIG_DEBUG_SHIRQ is not set
1602CONFIG_DETECT_SOFTLOCKUP=y
1603# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1604CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1605CONFIG_DETECT_HUNG_TASK=y
1606# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1607CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1608CONFIG_SCHED_DEBUG=y
1609# CONFIG_SCHEDSTATS is not set
1610CONFIG_TIMER_STATS=y
1611# CONFIG_DEBUG_OBJECTS is not set
1612# CONFIG_SLUB_DEBUG_ON is not set
1613# CONFIG_SLUB_STATS is not set
1614CONFIG_DEBUG_PREEMPT=y
1615CONFIG_DEBUG_RT_MUTEXES=y
1616CONFIG_DEBUG_PI_LIST=y
1617# CONFIG_RT_MUTEX_TESTER is not set
1618# CONFIG_DEBUG_SPINLOCK is not set
1619CONFIG_DEBUG_MUTEXES=y
1620# CONFIG_DEBUG_LOCK_ALLOC is not set
1621# CONFIG_PROVE_LOCKING is not set
1622# CONFIG_LOCK_STAT is not set
1623# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1624# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1625# CONFIG_DEBUG_KOBJECT is not set
1626CONFIG_DEBUG_BUGVERBOSE=y
1627# CONFIG_DEBUG_INFO is not set
1628# CONFIG_DEBUG_VM is not set
1629# CONFIG_DEBUG_WRITECOUNT is not set
1630# CONFIG_DEBUG_MEMORY_INIT is not set
1631# CONFIG_DEBUG_LIST is not set
1632# CONFIG_DEBUG_SG is not set
1633# CONFIG_DEBUG_NOTIFIERS is not set
1634# CONFIG_BOOT_PRINTK_DELAY is not set
1635# CONFIG_RCU_TORTURE_TEST is not set
1636# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1637# CONFIG_BACKTRACE_SELF_TEST is not set
1638# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1639# CONFIG_FAULT_INJECTION is not set
1640# CONFIG_LATENCYTOP is not set
1641# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1642# CONFIG_PAGE_POISONING is not set
1643CONFIG_HAVE_FUNCTION_TRACER=y
1644CONFIG_TRACING_SUPPORT=y
1645
1646#
1647# Tracers
1648#
1649# CONFIG_FUNCTION_TRACER is not set
1650# CONFIG_IRQSOFF_TRACER is not set
1651# CONFIG_PREEMPT_TRACER is not set
1652# CONFIG_SCHED_TRACER is not set
1653# CONFIG_CONTEXT_SWITCH_TRACER is not set
1654# CONFIG_EVENT_TRACER is not set
1655# CONFIG_BOOT_TRACER is not set
1656# CONFIG_TRACE_BRANCH_PROFILING is not set
1657# CONFIG_STACK_TRACER is not set
1658# CONFIG_KMEMTRACE is not set
1659# CONFIG_WORKQUEUE_TRACER is not set
1660# CONFIG_BLK_DEV_IO_TRACE is not set
1661# CONFIG_DYNAMIC_DEBUG is not set
1662# CONFIG_SAMPLES is not set
1663CONFIG_HAVE_ARCH_KGDB=y
1664# CONFIG_KGDB is not set
1665CONFIG_ARM_UNWIND=y
1666CONFIG_DEBUG_USER=y
1667CONFIG_DEBUG_ERRORS=y
1668# CONFIG_DEBUG_STACK_USAGE is not set
1669# CONFIG_DEBUG_LL is not set
1670
1671#
1672# Security options
1673#
1674# CONFIG_KEYS is not set
1675# CONFIG_SECURITY is not set
1676# CONFIG_SECURITYFS is not set
1677# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1678CONFIG_CRYPTO=y
1679
1680#
1681# Crypto core or helper
1682#
1683# CONFIG_CRYPTO_FIPS is not set
1684# CONFIG_CRYPTO_MANAGER is not set
1685# CONFIG_CRYPTO_MANAGER2 is not set
1686# CONFIG_CRYPTO_GF128MUL is not set
1687# CONFIG_CRYPTO_NULL is not set
1688# CONFIG_CRYPTO_CRYPTD is not set
1689# CONFIG_CRYPTO_AUTHENC is not set
1690# CONFIG_CRYPTO_TEST is not set
1691
1692#
1693# Authenticated Encryption with Associated Data
1694#
1695# CONFIG_CRYPTO_CCM is not set
1696# CONFIG_CRYPTO_GCM is not set
1697# CONFIG_CRYPTO_SEQIV is not set
1698
1699#
1700# Block modes
1701#
1702# CONFIG_CRYPTO_CBC is not set
1703# CONFIG_CRYPTO_CTR is not set
1704# CONFIG_CRYPTO_CTS is not set
1705# CONFIG_CRYPTO_ECB is not set
1706# CONFIG_CRYPTO_LRW is not set
1707# CONFIG_CRYPTO_PCBC is not set
1708# CONFIG_CRYPTO_XTS is not set
1709
1710#
1711# Hash modes
1712#
1713# CONFIG_CRYPTO_HMAC is not set
1714# CONFIG_CRYPTO_XCBC is not set
1715
1716#
1717# Digest
1718#
1719# CONFIG_CRYPTO_CRC32C is not set
1720# CONFIG_CRYPTO_MD4 is not set
1721# CONFIG_CRYPTO_MD5 is not set
1722# CONFIG_CRYPTO_MICHAEL_MIC is not set
1723# CONFIG_CRYPTO_RMD128 is not set
1724# CONFIG_CRYPTO_RMD160 is not set
1725# CONFIG_CRYPTO_RMD256 is not set
1726# CONFIG_CRYPTO_RMD320 is not set
1727# CONFIG_CRYPTO_SHA1 is not set
1728# CONFIG_CRYPTO_SHA256 is not set
1729# CONFIG_CRYPTO_SHA512 is not set
1730# CONFIG_CRYPTO_TGR192 is not set
1731# CONFIG_CRYPTO_WP512 is not set
1732
1733#
1734# Ciphers
1735#
1736# CONFIG_CRYPTO_AES is not set
1737# CONFIG_CRYPTO_ANUBIS is not set
1738# CONFIG_CRYPTO_ARC4 is not set
1739# CONFIG_CRYPTO_BLOWFISH is not set
1740# CONFIG_CRYPTO_CAMELLIA is not set
1741# CONFIG_CRYPTO_CAST5 is not set
1742# CONFIG_CRYPTO_CAST6 is not set
1743# CONFIG_CRYPTO_DES is not set
1744# CONFIG_CRYPTO_FCRYPT is not set
1745# CONFIG_CRYPTO_KHAZAD is not set
1746# CONFIG_CRYPTO_SALSA20 is not set
1747# CONFIG_CRYPTO_SEED is not set
1748# CONFIG_CRYPTO_SERPENT is not set
1749# CONFIG_CRYPTO_TEA is not set
1750# CONFIG_CRYPTO_TWOFISH is not set
1751
1752#
1753# Compression
1754#
1755# CONFIG_CRYPTO_DEFLATE is not set
1756# CONFIG_CRYPTO_ZLIB is not set
1757# CONFIG_CRYPTO_LZO is not set
1758
1759#
1760# Random Number Generation
1761#
1762# CONFIG_CRYPTO_ANSI_CPRNG is not set
1763# CONFIG_CRYPTO_HW is not set
1764# CONFIG_BINARY_PRINTF is not set
1765
1766#
1767# Library routines
1768#
1769CONFIG_BITREVERSE=y
1770CONFIG_GENERIC_FIND_LAST_BIT=y
1771CONFIG_CRC_CCITT=m
1772# CONFIG_CRC16 is not set
1773CONFIG_CRC_T10DIF=m
1774# CONFIG_CRC_ITU_T is not set
1775CONFIG_CRC32=y
1776# CONFIG_CRC7 is not set
1777# CONFIG_LIBCRC32C is not set
1778CONFIG_ZLIB_INFLATE=y
1779CONFIG_ZLIB_DEFLATE=m
1780CONFIG_DECOMPRESS_GZIP=y
1781CONFIG_HAS_IOMEM=y
1782CONFIG_HAS_IOPORT=y
1783CONFIG_HAS_DMA=y
1784CONFIG_NLATTR=y
diff --git a/arch/arm/configs/imx27ads_defconfig b/arch/arm/configs/imx27ads_defconfig
deleted file mode 100644
index bcd95b8dd2df..000000000000
--- a/arch/arm/configs/imx27ads_defconfig
+++ /dev/null
@@ -1,826 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc6
4# Fri Jun 20 16:29:34 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y
27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29
30#
31# General setup
32#
33CONFIG_EXPERIMENTAL=y
34CONFIG_BROKEN_ON_SMP=y
35CONFIG_LOCK_KERNEL=y
36CONFIG_INIT_ENV_ARG_LIMIT=32
37CONFIG_LOCALVERSION=""
38CONFIG_LOCALVERSION_AUTO=y
39# CONFIG_SWAP is not set
40CONFIG_SYSVIPC=y
41CONFIG_SYSVIPC_SYSCTL=y
42CONFIG_POSIX_MQUEUE=y
43# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14
48# CONFIG_CGROUPS is not set
49# CONFIG_GROUP_SCHED is not set
50CONFIG_SYSFS_DEPRECATED=y
51CONFIG_SYSFS_DEPRECATED_V2=y
52# CONFIG_RELAY is not set
53# CONFIG_NAMESPACES is not set
54# CONFIG_BLK_DEV_INITRD is not set
55# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
56CONFIG_SYSCTL=y
57CONFIG_EMBEDDED=y
58CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y
60CONFIG_SYSCTL_SYSCALL_CHECK=y
61CONFIG_KALLSYMS=y
62CONFIG_KALLSYMS_EXTRA_PASS=y
63CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y
65CONFIG_BUG=y
66CONFIG_ELF_CORE=y
67CONFIG_COMPAT_BRK=y
68CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y
70CONFIG_ANON_INODES=y
71CONFIG_EPOLL=y
72CONFIG_SIGNALFD=y
73CONFIG_TIMERFD=y
74CONFIG_EVENTFD=y
75CONFIG_SHMEM=y
76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_SLAB=y
78# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set
80# CONFIG_PROFILING is not set
81# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y
83# CONFIG_KPROBES is not set
84CONFIG_HAVE_KPROBES=y
85CONFIG_HAVE_KRETPROBES=y
86# CONFIG_HAVE_DMA_ATTRS is not set
87CONFIG_PROC_PAGE_MONITOR=y
88CONFIG_SLABINFO=y
89CONFIG_RT_MUTEXES=y
90# CONFIG_TINY_SHMEM is not set
91CONFIG_BASE_SMALL=0
92CONFIG_MODULES=y
93# CONFIG_MODULE_FORCE_LOAD is not set
94CONFIG_MODULE_UNLOAD=y
95# CONFIG_MODULE_FORCE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set
98# CONFIG_KMOD is not set
99CONFIG_BLOCK=y
100# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set
104
105#
106# IO Schedulers
107#
108CONFIG_IOSCHED_NOOP=y
109# CONFIG_IOSCHED_AS is not set
110# CONFIG_IOSCHED_DEADLINE is not set
111# CONFIG_IOSCHED_CFQ is not set
112# CONFIG_DEFAULT_AS is not set
113# CONFIG_DEFAULT_DEADLINE is not set
114# CONFIG_DEFAULT_CFQ is not set
115CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y
118
119#
120# System Type
121#
122# CONFIG_ARCH_AAEC2000 is not set
123# CONFIG_ARCH_INTEGRATOR is not set
124# CONFIG_ARCH_REALVIEW is not set
125# CONFIG_ARCH_VERSATILE is not set
126# CONFIG_ARCH_AT91 is not set
127# CONFIG_ARCH_CLPS7500 is not set
128# CONFIG_ARCH_CLPS711X is not set
129# CONFIG_ARCH_CO285 is not set
130# CONFIG_ARCH_EBSA110 is not set
131# CONFIG_ARCH_EP93XX is not set
132# CONFIG_ARCH_FOOTBRIDGE is not set
133# CONFIG_ARCH_NETX is not set
134# CONFIG_ARCH_H720X is not set
135# CONFIG_ARCH_IMX is not set
136# CONFIG_ARCH_IOP13XX is not set
137# CONFIG_ARCH_IOP32X is not set
138# CONFIG_ARCH_IOP33X is not set
139# CONFIG_ARCH_IXP23XX is not set
140# CONFIG_ARCH_IXP2000 is not set
141# CONFIG_ARCH_IXP4XX is not set
142# CONFIG_ARCH_L7200 is not set
143# CONFIG_ARCH_KS8695 is not set
144# CONFIG_ARCH_NS9XXX is not set
145CONFIG_ARCH_MXC=y
146# CONFIG_ARCH_ORION5X is not set
147# CONFIG_ARCH_PNX4008 is not set
148# CONFIG_ARCH_PXA is not set
149# CONFIG_ARCH_RPC is not set
150# CONFIG_ARCH_SA1100 is not set
151# CONFIG_ARCH_S3C2410 is not set
152# CONFIG_ARCH_SHARK is not set
153# CONFIG_ARCH_LH7A40X is not set
154# CONFIG_ARCH_DAVINCI is not set
155# CONFIG_ARCH_OMAP is not set
156# CONFIG_ARCH_MSM7X00A is not set
157
158#
159# Boot options
160#
161
162#
163# Power management
164#
165
166#
167# Freescale MXC Implementations
168#
169CONFIG_ARCH_MX2=y
170# CONFIG_ARCH_MX3 is not set
171
172#
173# MX2 family CPU support
174#
175CONFIG_MACH_MX27=y
176
177#
178# MX2 Platforms
179#
180CONFIG_MACH_MX27ADS=y
181# CONFIG_MACH_PCM038 is not set
182
183#
184# Processor Type
185#
186CONFIG_CPU_32=y
187CONFIG_CPU_ARM926T=y
188CONFIG_CPU_32v5=y
189CONFIG_CPU_ABRT_EV5TJ=y
190CONFIG_CPU_PABRT_NOIFAR=y
191CONFIG_CPU_CACHE_VIVT=y
192CONFIG_CPU_COPY_V4WB=y
193CONFIG_CPU_TLB_V4WBI=y
194CONFIG_CPU_CP15=y
195CONFIG_CPU_CP15_MMU=y
196
197#
198# Processor Features
199#
200CONFIG_ARM_THUMB=y
201# CONFIG_CPU_ICACHE_DISABLE is not set
202# CONFIG_CPU_DCACHE_DISABLE is not set
203# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
204# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
205# CONFIG_OUTER_CACHE is not set
206
207#
208# Bus support
209#
210# CONFIG_PCI_SYSCALL is not set
211# CONFIG_ARCH_SUPPORTS_MSI is not set
212# CONFIG_PCCARD is not set
213
214#
215# Kernel Features
216#
217CONFIG_TICK_ONESHOT=y
218CONFIG_NO_HZ=y
219CONFIG_HIGH_RES_TIMERS=y
220CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
221CONFIG_PREEMPT=y
222CONFIG_HZ=100
223CONFIG_AEABI=y
224# CONFIG_OABI_COMPAT is not set
225# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
226CONFIG_SELECT_MEMORY_MODEL=y
227CONFIG_FLATMEM_MANUAL=y
228# CONFIG_DISCONTIGMEM_MANUAL is not set
229# CONFIG_SPARSEMEM_MANUAL is not set
230CONFIG_FLATMEM=y
231CONFIG_FLAT_NODE_MEM_MAP=y
232# CONFIG_SPARSEMEM_STATIC is not set
233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
234CONFIG_PAGEFLAGS_EXTENDED=y
235CONFIG_SPLIT_PTLOCK_CPUS=4096
236# CONFIG_RESOURCES_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y
240CONFIG_ALIGNMENT_TRAP=y
241
242#
243# Boot options
244#
245CONFIG_ZBOOT_ROM_TEXT=0x0
246CONFIG_ZBOOT_ROM_BSS=0x0
247CONFIG_CMDLINE=""
248# CONFIG_XIP_KERNEL is not set
249# CONFIG_KEXEC is not set
250
251#
252# Floating point emulation
253#
254
255#
256# At least one emulation must be selected
257#
258# CONFIG_VFP is not set
259
260#
261# Userspace binary formats
262#
263CONFIG_BINFMT_ELF=y
264# CONFIG_BINFMT_AOUT is not set
265# CONFIG_BINFMT_MISC is not set
266
267#
268# Power management options
269#
270# CONFIG_PM is not set
271CONFIG_ARCH_SUSPEND_POSSIBLE=y
272
273#
274# Networking
275#
276CONFIG_NET=y
277
278#
279# Networking options
280#
281CONFIG_PACKET=y
282CONFIG_PACKET_MMAP=y
283CONFIG_UNIX=y
284# CONFIG_NET_KEY is not set
285CONFIG_INET=y
286CONFIG_IP_MULTICAST=y
287# CONFIG_IP_ADVANCED_ROUTER is not set
288CONFIG_IP_FIB_HASH=y
289CONFIG_IP_PNP=y
290# CONFIG_IP_PNP_DHCP is not set
291# CONFIG_IP_PNP_BOOTP is not set
292# CONFIG_IP_PNP_RARP is not set
293# CONFIG_NET_IPIP is not set
294# CONFIG_NET_IPGRE is not set
295# CONFIG_IP_MROUTE is not set
296# CONFIG_ARPD is not set
297# CONFIG_SYN_COOKIES is not set
298# CONFIG_INET_AH is not set
299# CONFIG_INET_ESP is not set
300# CONFIG_INET_IPCOMP is not set
301# CONFIG_INET_XFRM_TUNNEL is not set
302# CONFIG_INET_TUNNEL is not set
303# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
304# CONFIG_INET_XFRM_MODE_TUNNEL is not set
305# CONFIG_INET_XFRM_MODE_BEET is not set
306# CONFIG_INET_LRO is not set
307# CONFIG_INET_DIAG is not set
308# CONFIG_TCP_CONG_ADVANCED is not set
309CONFIG_TCP_CONG_CUBIC=y
310CONFIG_DEFAULT_TCP_CONG="cubic"
311# CONFIG_TCP_MD5SIG is not set
312# CONFIG_IPV6 is not set
313# CONFIG_NETWORK_SECMARK is not set
314# CONFIG_NETFILTER is not set
315# CONFIG_IP_DCCP is not set
316# CONFIG_IP_SCTP is not set
317# CONFIG_TIPC is not set
318# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set
320# CONFIG_VLAN_8021Q is not set
321# CONFIG_DECNET is not set
322# CONFIG_LLC2 is not set
323# CONFIG_IPX is not set
324# CONFIG_ATALK is not set
325# CONFIG_X25 is not set
326# CONFIG_LAPB is not set
327# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set
329# CONFIG_NET_SCHED is not set
330
331#
332# Network testing
333#
334# CONFIG_NET_PKTGEN is not set
335# CONFIG_HAMRADIO is not set
336# CONFIG_CAN is not set
337# CONFIG_IRDA is not set
338# CONFIG_BT is not set
339# CONFIG_AF_RXRPC is not set
340
341#
342# Wireless
343#
344# CONFIG_CFG80211 is not set
345# CONFIG_WIRELESS_EXT is not set
346# CONFIG_MAC80211 is not set
347# CONFIG_IEEE80211 is not set
348# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set
350
351#
352# Device Drivers
353#
354
355#
356# Generic Driver Options
357#
358CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
359CONFIG_STANDALONE=y
360CONFIG_PREVENT_FIRMWARE_BUILD=y
361# CONFIG_FW_LOADER is not set
362# CONFIG_SYS_HYPERVISOR is not set
363# CONFIG_CONNECTOR is not set
364CONFIG_MTD=y
365# CONFIG_MTD_DEBUG is not set
366# CONFIG_MTD_CONCAT is not set
367CONFIG_MTD_PARTITIONS=y
368# CONFIG_MTD_REDBOOT_PARTS is not set
369CONFIG_MTD_CMDLINE_PARTS=y
370# CONFIG_MTD_AFS_PARTS is not set
371# CONFIG_MTD_AR7_PARTS is not set
372
373#
374# User Modules And Translation Layers
375#
376CONFIG_MTD_CHAR=y
377CONFIG_MTD_BLKDEVS=y
378CONFIG_MTD_BLOCK=y
379# CONFIG_FTL is not set
380# CONFIG_NFTL is not set
381# CONFIG_INFTL is not set
382# CONFIG_RFD_FTL is not set
383# CONFIG_SSFDC is not set
384# CONFIG_MTD_OOPS is not set
385
386#
387# RAM/ROM/Flash chip drivers
388#
389CONFIG_MTD_CFI=y
390# CONFIG_MTD_JEDECPROBE is not set
391CONFIG_MTD_GEN_PROBE=y
392CONFIG_MTD_CFI_ADV_OPTIONS=y
393CONFIG_MTD_CFI_NOSWAP=y
394# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
395# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
396CONFIG_MTD_CFI_GEOMETRY=y
397# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
398CONFIG_MTD_MAP_BANK_WIDTH_2=y
399# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
400# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
401# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
402# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
403CONFIG_MTD_CFI_I1=y
404# CONFIG_MTD_CFI_I2 is not set
405# CONFIG_MTD_CFI_I4 is not set
406# CONFIG_MTD_CFI_I8 is not set
407# CONFIG_MTD_OTP is not set
408CONFIG_MTD_CFI_INTELEXT=y
409# CONFIG_MTD_CFI_AMDSTD is not set
410# CONFIG_MTD_CFI_STAA is not set
411CONFIG_MTD_CFI_UTIL=y
412# CONFIG_MTD_RAM is not set
413# CONFIG_MTD_ROM is not set
414# CONFIG_MTD_ABSENT is not set
415# CONFIG_MTD_XIP is not set
416
417#
418# Mapping drivers for chip access
419#
420# CONFIG_MTD_COMPLEX_MAPPINGS is not set
421CONFIG_MTD_PHYSMAP=y
422CONFIG_MTD_PHYSMAP_START=0x00000000
423CONFIG_MTD_PHYSMAP_LEN=0x0
424CONFIG_MTD_PHYSMAP_BANKWIDTH=2
425# CONFIG_MTD_ARM_INTEGRATOR is not set
426# CONFIG_MTD_PLATRAM is not set
427
428#
429# Self-contained MTD device drivers
430#
431# CONFIG_MTD_SLRAM is not set
432# CONFIG_MTD_PHRAM is not set
433# CONFIG_MTD_MTDRAM is not set
434# CONFIG_MTD_BLOCK2MTD is not set
435
436#
437# Disk-On-Chip Device Drivers
438#
439# CONFIG_MTD_DOC2000 is not set
440# CONFIG_MTD_DOC2001 is not set
441# CONFIG_MTD_DOC2001PLUS is not set
442# CONFIG_MTD_NAND is not set
443# CONFIG_MTD_ONENAND is not set
444
445#
446# UBI - Unsorted block images
447#
448# CONFIG_MTD_UBI is not set
449# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_COW_COMMON is not set
452# CONFIG_BLK_DEV_LOOP is not set
453# CONFIG_BLK_DEV_NBD is not set
454# CONFIG_BLK_DEV_RAM is not set
455# CONFIG_CDROM_PKTCDVD is not set
456# CONFIG_ATA_OVER_ETH is not set
457# CONFIG_MISC_DEVICES is not set
458CONFIG_HAVE_IDE=y
459# CONFIG_IDE is not set
460
461#
462# SCSI device support
463#
464# CONFIG_RAID_ATTRS is not set
465# CONFIG_SCSI is not set
466# CONFIG_SCSI_DMA is not set
467# CONFIG_SCSI_NETLINK is not set
468# CONFIG_ATA is not set
469# CONFIG_MD is not set
470CONFIG_NETDEVICES=y
471# CONFIG_NETDEVICES_MULTIQUEUE is not set
472# CONFIG_DUMMY is not set
473# CONFIG_BONDING is not set
474# CONFIG_MACVLAN is not set
475# CONFIG_EQUALIZER is not set
476# CONFIG_TUN is not set
477# CONFIG_VETH is not set
478# CONFIG_PHYLIB is not set
479CONFIG_NET_ETHERNET=y
480# CONFIG_MII is not set
481# CONFIG_AX88796 is not set
482# CONFIG_SMC91X is not set
483# CONFIG_DM9000 is not set
484# CONFIG_IBM_NEW_EMAC_ZMII is not set
485# CONFIG_IBM_NEW_EMAC_RGMII is not set
486# CONFIG_IBM_NEW_EMAC_TAH is not set
487# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
488# CONFIG_B44 is not set
489# CONFIG_FEC_OLD is not set
490# CONFIG_NETDEV_1000 is not set
491# CONFIG_NETDEV_10000 is not set
492
493#
494# Wireless LAN
495#
496# CONFIG_WLAN_PRE80211 is not set
497# CONFIG_WLAN_80211 is not set
498# CONFIG_IWLWIFI_LEDS is not set
499# CONFIG_WAN is not set
500# CONFIG_PPP is not set
501# CONFIG_SLIP is not set
502# CONFIG_NETCONSOLE is not set
503# CONFIG_NETPOLL is not set
504# CONFIG_NET_POLL_CONTROLLER is not set
505# CONFIG_ISDN is not set
506
507#
508# Input device support
509#
510CONFIG_INPUT=y
511# CONFIG_INPUT_FF_MEMLESS is not set
512# CONFIG_INPUT_POLLDEV is not set
513
514#
515# Userland interfaces
516#
517# CONFIG_INPUT_MOUSEDEV is not set
518# CONFIG_INPUT_JOYDEV is not set
519CONFIG_INPUT_EVDEV=y
520# CONFIG_INPUT_EVBUG is not set
521
522#
523# Input Device Drivers
524#
525# CONFIG_INPUT_KEYBOARD is not set
526# CONFIG_INPUT_MOUSE is not set
527# CONFIG_INPUT_JOYSTICK is not set
528# CONFIG_INPUT_TABLET is not set
529CONFIG_INPUT_TOUCHSCREEN=y
530# CONFIG_TOUCHSCREEN_FUJITSU is not set
531# CONFIG_TOUCHSCREEN_GUNZE is not set
532# CONFIG_TOUCHSCREEN_ELO is not set
533# CONFIG_TOUCHSCREEN_MTOUCH is not set
534# CONFIG_TOUCHSCREEN_MK712 is not set
535# CONFIG_TOUCHSCREEN_PENMOUNT is not set
536# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
537# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
538# CONFIG_TOUCHSCREEN_UCB1400 is not set
539# CONFIG_INPUT_MISC is not set
540
541#
542# Hardware I/O ports
543#
544# CONFIG_SERIO is not set
545# CONFIG_GAMEPORT is not set
546
547#
548# Character devices
549#
550# CONFIG_VT is not set
551CONFIG_DEVKMEM=y
552# CONFIG_SERIAL_NONSTANDARD is not set
553
554#
555# Serial drivers
556#
557# CONFIG_SERIAL_8250 is not set
558
559#
560# Non-8250 serial port support
561#
562# CONFIG_SERIAL_IMX is not set
563CONFIG_UNIX98_PTYS=y
564# CONFIG_LEGACY_PTYS is not set
565# CONFIG_IPMI_HANDLER is not set
566# CONFIG_HW_RANDOM is not set
567# CONFIG_NVRAM is not set
568# CONFIG_R3964 is not set
569# CONFIG_RAW_DRIVER is not set
570# CONFIG_TCG_TPM is not set
571# CONFIG_I2C is not set
572# CONFIG_SPI is not set
573CONFIG_HAVE_GPIO_LIB=y
574
575#
576# GPIO Support
577#
578
579#
580# I2C GPIO expanders:
581#
582
583#
584# SPI GPIO expanders:
585#
586# CONFIG_W1 is not set
587# CONFIG_POWER_SUPPLY is not set
588# CONFIG_HWMON is not set
589# CONFIG_WATCHDOG is not set
590
591#
592# Sonics Silicon Backplane
593#
594CONFIG_SSB_POSSIBLE=y
595# CONFIG_SSB is not set
596
597#
598# Multifunction device drivers
599#
600# CONFIG_MFD_SM501 is not set
601# CONFIG_MFD_ASIC3 is not set
602# CONFIG_HTC_EGPIO is not set
603# CONFIG_HTC_PASIC3 is not set
604
605#
606# Multimedia devices
607#
608
609#
610# Multimedia core support
611#
612# CONFIG_VIDEO_DEV is not set
613# CONFIG_DVB_CORE is not set
614# CONFIG_VIDEO_MEDIA is not set
615
616#
617# Multimedia drivers
618#
619# CONFIG_DAB is not set
620
621#
622# Graphics support
623#
624# CONFIG_VGASTATE is not set
625# CONFIG_VIDEO_OUTPUT_CONTROL is not set
626# CONFIG_FB is not set
627# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
628
629#
630# Display device support
631#
632# CONFIG_DISPLAY_SUPPORT is not set
633
634#
635# Sound
636#
637# CONFIG_SOUND is not set
638# CONFIG_HID_SUPPORT is not set
639# CONFIG_USB_SUPPORT is not set
640# CONFIG_MMC is not set
641# CONFIG_NEW_LEDS is not set
642CONFIG_RTC_LIB=y
643# CONFIG_RTC_CLASS is not set
644# CONFIG_UIO is not set
645
646#
647# File systems
648#
649# CONFIG_EXT2_FS is not set
650# CONFIG_EXT3_FS is not set
651# CONFIG_EXT4DEV_FS is not set
652# CONFIG_REISERFS_FS is not set
653# CONFIG_JFS_FS is not set
654# CONFIG_FS_POSIX_ACL is not set
655# CONFIG_XFS_FS is not set
656# CONFIG_OCFS2_FS is not set
657# CONFIG_DNOTIFY is not set
658# CONFIG_INOTIFY is not set
659# CONFIG_QUOTA is not set
660# CONFIG_AUTOFS_FS is not set
661# CONFIG_AUTOFS4_FS is not set
662# CONFIG_FUSE_FS is not set
663
664#
665# CD-ROM/DVD Filesystems
666#
667# CONFIG_ISO9660_FS is not set
668# CONFIG_UDF_FS is not set
669
670#
671# DOS/FAT/NT Filesystems
672#
673# CONFIG_MSDOS_FS is not set
674# CONFIG_VFAT_FS is not set
675# CONFIG_NTFS_FS is not set
676
677#
678# Pseudo filesystems
679#
680CONFIG_PROC_FS=y
681CONFIG_PROC_SYSCTL=y
682CONFIG_SYSFS=y
683CONFIG_TMPFS=y
684# CONFIG_TMPFS_POSIX_ACL is not set
685# CONFIG_HUGETLB_PAGE is not set
686# CONFIG_CONFIGFS_FS is not set
687
688#
689# Miscellaneous filesystems
690#
691# CONFIG_ADFS_FS is not set
692# CONFIG_AFFS_FS is not set
693# CONFIG_HFS_FS is not set
694# CONFIG_HFSPLUS_FS is not set
695# CONFIG_BEFS_FS is not set
696# CONFIG_BFS_FS is not set
697# CONFIG_EFS_FS is not set
698CONFIG_JFFS2_FS=y
699CONFIG_JFFS2_FS_DEBUG=0
700CONFIG_JFFS2_FS_WRITEBUFFER=y
701# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
702# CONFIG_JFFS2_SUMMARY is not set
703# CONFIG_JFFS2_FS_XATTR is not set
704# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
705CONFIG_JFFS2_ZLIB=y
706# CONFIG_JFFS2_LZO is not set
707CONFIG_JFFS2_RTIME=y
708# CONFIG_JFFS2_RUBIN is not set
709# CONFIG_CRAMFS is not set
710# CONFIG_VXFS_FS is not set
711# CONFIG_MINIX_FS is not set
712# CONFIG_HPFS_FS is not set
713# CONFIG_QNX4FS_FS is not set
714# CONFIG_ROMFS_FS is not set
715# CONFIG_SYSV_FS is not set
716# CONFIG_UFS_FS is not set
717CONFIG_NETWORK_FILESYSTEMS=y
718CONFIG_NFS_FS=y
719CONFIG_NFS_V3=y
720# CONFIG_NFS_V3_ACL is not set
721# CONFIG_NFS_V4 is not set
722# CONFIG_NFSD is not set
723CONFIG_ROOT_NFS=y
724CONFIG_LOCKD=y
725CONFIG_LOCKD_V4=y
726CONFIG_NFS_COMMON=y
727CONFIG_SUNRPC=y
728# CONFIG_SUNRPC_BIND34 is not set
729# CONFIG_RPCSEC_GSS_KRB5 is not set
730# CONFIG_RPCSEC_GSS_SPKM3 is not set
731# CONFIG_SMB_FS is not set
732# CONFIG_CIFS is not set
733# CONFIG_NCP_FS is not set
734# CONFIG_CODA_FS is not set
735# CONFIG_AFS_FS is not set
736
737#
738# Partition Types
739#
740# CONFIG_PARTITION_ADVANCED is not set
741CONFIG_MSDOS_PARTITION=y
742CONFIG_NLS=y
743CONFIG_NLS_DEFAULT="iso8859-1"
744CONFIG_NLS_CODEPAGE_437=m
745# CONFIG_NLS_CODEPAGE_737 is not set
746# CONFIG_NLS_CODEPAGE_775 is not set
747CONFIG_NLS_CODEPAGE_850=m
748# CONFIG_NLS_CODEPAGE_852 is not set
749# CONFIG_NLS_CODEPAGE_855 is not set
750# CONFIG_NLS_CODEPAGE_857 is not set
751# CONFIG_NLS_CODEPAGE_860 is not set
752# CONFIG_NLS_CODEPAGE_861 is not set
753# CONFIG_NLS_CODEPAGE_862 is not set
754# CONFIG_NLS_CODEPAGE_863 is not set
755# CONFIG_NLS_CODEPAGE_864 is not set
756# CONFIG_NLS_CODEPAGE_865 is not set
757# CONFIG_NLS_CODEPAGE_866 is not set
758# CONFIG_NLS_CODEPAGE_869 is not set
759# CONFIG_NLS_CODEPAGE_936 is not set
760# CONFIG_NLS_CODEPAGE_950 is not set
761# CONFIG_NLS_CODEPAGE_932 is not set
762# CONFIG_NLS_CODEPAGE_949 is not set
763# CONFIG_NLS_CODEPAGE_874 is not set
764# CONFIG_NLS_ISO8859_8 is not set
765# CONFIG_NLS_CODEPAGE_1250 is not set
766# CONFIG_NLS_CODEPAGE_1251 is not set
767# CONFIG_NLS_ASCII is not set
768CONFIG_NLS_ISO8859_1=y
769# CONFIG_NLS_ISO8859_2 is not set
770# CONFIG_NLS_ISO8859_3 is not set
771# CONFIG_NLS_ISO8859_4 is not set
772# CONFIG_NLS_ISO8859_5 is not set
773# CONFIG_NLS_ISO8859_6 is not set
774# CONFIG_NLS_ISO8859_7 is not set
775# CONFIG_NLS_ISO8859_9 is not set
776# CONFIG_NLS_ISO8859_13 is not set
777# CONFIG_NLS_ISO8859_14 is not set
778CONFIG_NLS_ISO8859_15=m
779# CONFIG_NLS_KOI8_R is not set
780# CONFIG_NLS_KOI8_U is not set
781# CONFIG_NLS_UTF8 is not set
782# CONFIG_DLM is not set
783
784#
785# Kernel hacking
786#
787# CONFIG_PRINTK_TIME is not set
788CONFIG_ENABLE_WARN_DEPRECATED=y
789CONFIG_ENABLE_MUST_CHECK=y
790CONFIG_FRAME_WARN=1024
791# CONFIG_MAGIC_SYSRQ is not set
792# CONFIG_UNUSED_SYMBOLS is not set
793# CONFIG_DEBUG_FS is not set
794# CONFIG_HEADERS_CHECK is not set
795# CONFIG_DEBUG_KERNEL is not set
796# CONFIG_DEBUG_BUGVERBOSE is not set
797CONFIG_FRAME_POINTER=y
798# CONFIG_SAMPLES is not set
799# CONFIG_DEBUG_USER is not set
800
801#
802# Security options
803#
804# CONFIG_KEYS is not set
805# CONFIG_SECURITY is not set
806# CONFIG_SECURITY_FILE_CAPABILITIES is not set
807# CONFIG_CRYPTO is not set
808
809#
810# Library routines
811#
812CONFIG_BITREVERSE=y
813# CONFIG_GENERIC_FIND_FIRST_BIT is not set
814# CONFIG_GENERIC_FIND_NEXT_BIT is not set
815# CONFIG_CRC_CCITT is not set
816# CONFIG_CRC16 is not set
817# CONFIG_CRC_ITU_T is not set
818CONFIG_CRC32=y
819# CONFIG_CRC7 is not set
820# CONFIG_LIBCRC32C is not set
821CONFIG_ZLIB_INFLATE=y
822CONFIG_ZLIB_DEFLATE=y
823CONFIG_PLIST=y
824CONFIG_HAS_IOMEM=y
825CONFIG_HAS_IOPORT=y
826CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index c367ae44012e..dcf8153a947d 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_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.29-rc5 3# Linux kernel version: 2.6.30-rc4
4# Tue Mar 3 21:45:57 2009 4# Mon May 4 11:58:57 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -66,20 +66,20 @@ CONFIG_NAMESPACES=y
66# CONFIG_BLK_DEV_INITRD is not set 66# CONFIG_BLK_DEV_INITRD is not set
67CONFIG_CC_OPTIMIZE_FOR_SIZE=y 67CONFIG_CC_OPTIMIZE_FOR_SIZE=y
68CONFIG_SYSCTL=y 68CONFIG_SYSCTL=y
69CONFIG_ANON_INODES=y
69# CONFIG_EMBEDDED is not set 70# CONFIG_EMBEDDED is not set
70CONFIG_UID16=y 71CONFIG_UID16=y
71CONFIG_SYSCTL_SYSCALL=y 72CONFIG_SYSCTL_SYSCALL=y
72CONFIG_KALLSYMS=y 73CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_ALL is not set 74# CONFIG_KALLSYMS_ALL is not set
74# CONFIG_KALLSYMS_EXTRA_PASS is not set 75# CONFIG_KALLSYMS_EXTRA_PASS is not set
76# CONFIG_STRIP_ASM_SYMS is not set
75CONFIG_HOTPLUG=y 77CONFIG_HOTPLUG=y
76CONFIG_PRINTK=y 78CONFIG_PRINTK=y
77CONFIG_BUG=y 79CONFIG_BUG=y
78CONFIG_ELF_CORE=y 80CONFIG_ELF_CORE=y
79CONFIG_COMPAT_BRK=y
80CONFIG_BASE_FULL=y 81CONFIG_BASE_FULL=y
81CONFIG_FUTEX=y 82CONFIG_FUTEX=y
82CONFIG_ANON_INODES=y
83CONFIG_EPOLL=y 83CONFIG_EPOLL=y
84CONFIG_SIGNALFD=y 84CONFIG_SIGNALFD=y
85CONFIG_TIMERFD=y 85CONFIG_TIMERFD=y
@@ -89,6 +89,7 @@ CONFIG_AIO=y
89CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
90CONFIG_PCI_QUIRKS=y 90CONFIG_PCI_QUIRKS=y
91CONFIG_SLUB_DEBUG=y 91CONFIG_SLUB_DEBUG=y
92CONFIG_COMPAT_BRK=y
92# CONFIG_SLAB is not set 93# CONFIG_SLAB is not set
93CONFIG_SLUB=y 94CONFIG_SLUB=y
94# CONFIG_SLOB is not set 95# CONFIG_SLOB is not set
@@ -101,6 +102,7 @@ CONFIG_KPROBES=y
101CONFIG_KRETPROBES=y 102CONFIG_KRETPROBES=y
102CONFIG_HAVE_KPROBES=y 103CONFIG_HAVE_KPROBES=y
103CONFIG_HAVE_KRETPROBES=y 104CONFIG_HAVE_KRETPROBES=y
105# CONFIG_SLOW_WORK is not set
104CONFIG_HAVE_GENERIC_DMA_COHERENT=y 106CONFIG_HAVE_GENERIC_DMA_COHERENT=y
105CONFIG_SLABINFO=y 107CONFIG_SLABINFO=y
106CONFIG_RT_MUTEXES=y 108CONFIG_RT_MUTEXES=y
@@ -113,7 +115,6 @@ CONFIG_MODULE_UNLOAD=y
113# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
114CONFIG_BLOCK=y 116CONFIG_BLOCK=y
115# CONFIG_LBD is not set 117# CONFIG_LBD is not set
116# CONFIG_BLK_DEV_IO_TRACE is not set
117# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
118# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
119 120
@@ -142,6 +143,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
142# CONFIG_ARCH_CLPS711X is not set 143# CONFIG_ARCH_CLPS711X is not set
143# CONFIG_ARCH_EBSA110 is not set 144# CONFIG_ARCH_EBSA110 is not set
144# CONFIG_ARCH_EP93XX is not set 145# CONFIG_ARCH_EP93XX is not set
146# CONFIG_ARCH_GEMINI is not set
145# CONFIG_ARCH_FOOTBRIDGE is not set 147# CONFIG_ARCH_FOOTBRIDGE is not set
146# CONFIG_ARCH_NETX is not set 148# CONFIG_ARCH_NETX is not set
147# CONFIG_ARCH_H720X is not set 149# CONFIG_ARCH_H720X is not set
@@ -162,6 +164,7 @@ CONFIG_ARCH_KIRKWOOD=y
162# CONFIG_ARCH_ORION5X is not set 164# CONFIG_ARCH_ORION5X is not set
163# CONFIG_ARCH_PNX4008 is not set 165# CONFIG_ARCH_PNX4008 is not set
164# CONFIG_ARCH_PXA is not set 166# CONFIG_ARCH_PXA is not set
167# CONFIG_ARCH_MMP is not set
165# CONFIG_ARCH_RPC is not set 168# CONFIG_ARCH_RPC is not set
166# CONFIG_ARCH_SA1100 is not set 169# CONFIG_ARCH_SA1100 is not set
167# CONFIG_ARCH_S3C2410 is not set 170# CONFIG_ARCH_S3C2410 is not set
@@ -217,6 +220,7 @@ CONFIG_PCI_SYSCALL=y
217CONFIG_PCI_LEGACY=y 220CONFIG_PCI_LEGACY=y
218# CONFIG_PCI_DEBUG is not set 221# CONFIG_PCI_DEBUG is not set
219# CONFIG_PCI_STUB is not set 222# CONFIG_PCI_STUB is not set
223# CONFIG_PCI_IOV is not set
220# CONFIG_PCCARD is not set 224# CONFIG_PCCARD is not set
221 225
222# 226#
@@ -237,6 +241,7 @@ CONFIG_AEABI=y
237CONFIG_ARCH_FLATMEM_HAS_HOLES=y 241CONFIG_ARCH_FLATMEM_HAS_HOLES=y
238# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 242# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
239# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 243# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
244# CONFIG_HIGHMEM is not set
240CONFIG_SELECT_MEMORY_MODEL=y 245CONFIG_SELECT_MEMORY_MODEL=y
241CONFIG_FLATMEM_MANUAL=y 246CONFIG_FLATMEM_MANUAL=y
242# CONFIG_DISCONTIGMEM_MANUAL is not set 247# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -249,6 +254,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
249CONFIG_ZONE_DMA_FLAG=0 254CONFIG_ZONE_DMA_FLAG=0
250CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y 256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
252CONFIG_ALIGNMENT_TRAP=y 259CONFIG_ALIGNMENT_TRAP=y
253 260
254# 261#
@@ -293,7 +300,6 @@ CONFIG_NET=y
293# 300#
294# Networking options 301# Networking options
295# 302#
296CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 303CONFIG_PACKET=y
298CONFIG_PACKET_MMAP=y 304CONFIG_PACKET_MMAP=y
299CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -324,7 +330,7 @@ CONFIG_IP_PNP_BOOTP=y
324CONFIG_INET_XFRM_MODE_TRANSPORT=y 330CONFIG_INET_XFRM_MODE_TRANSPORT=y
325CONFIG_INET_XFRM_MODE_TUNNEL=y 331CONFIG_INET_XFRM_MODE_TUNNEL=y
326CONFIG_INET_XFRM_MODE_BEET=y 332CONFIG_INET_XFRM_MODE_BEET=y
327# CONFIG_INET_LRO is not set 333CONFIG_INET_LRO=y
328CONFIG_INET_DIAG=y 334CONFIG_INET_DIAG=y
329CONFIG_INET_TCP_DIAG=y 335CONFIG_INET_TCP_DIAG=y
330# CONFIG_TCP_CONG_ADVANCED is not set 336# CONFIG_TCP_CONG_ADVANCED is not set
@@ -357,6 +363,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=y
357# CONFIG_LAPB is not set 363# CONFIG_LAPB is not set
358# CONFIG_ECONET is not set 364# CONFIG_ECONET is not set
359# CONFIG_WAN_ROUTER is not set 365# CONFIG_WAN_ROUTER is not set
366# CONFIG_PHONET is not set
360# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set 368# CONFIG_DCB is not set
362 369
@@ -365,20 +372,20 @@ CONFIG_NET_DSA_MV88E6123_61_65=y
365# 372#
366CONFIG_NET_PKTGEN=m 373CONFIG_NET_PKTGEN=m
367# CONFIG_NET_TCPPROBE is not set 374# CONFIG_NET_TCPPROBE is not set
375# CONFIG_NET_DROP_MONITOR is not set
368# CONFIG_HAMRADIO is not set 376# CONFIG_HAMRADIO is not set
369# CONFIG_CAN is not set 377# CONFIG_CAN is not set
370# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
371# CONFIG_BT is not set 379# CONFIG_BT is not set
372# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
373# CONFIG_PHONET is not set
374CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
375CONFIG_CFG80211=y 382CONFIG_CFG80211=y
376# CONFIG_CFG80211_REG_DEBUG is not set 383# CONFIG_CFG80211_REG_DEBUG is not set
377# CONFIG_NL80211 is not set
378CONFIG_WIRELESS_OLD_REGULATORY=y 384CONFIG_WIRELESS_OLD_REGULATORY=y
379CONFIG_WIRELESS_EXT=y 385CONFIG_WIRELESS_EXT=y
380CONFIG_WIRELESS_EXT_SYSFS=y 386CONFIG_WIRELESS_EXT_SYSFS=y
381CONFIG_LIB80211=y 387CONFIG_LIB80211=y
388# CONFIG_LIB80211_DEBUG is not set
382CONFIG_MAC80211=y 389CONFIG_MAC80211=y
383 390
384# 391#
@@ -513,7 +520,6 @@ CONFIG_MTD_NAND_ORION=y
513# LPDDR flash memory drivers 520# LPDDR flash memory drivers
514# 521#
515# CONFIG_MTD_LPDDR is not set 522# CONFIG_MTD_LPDDR is not set
516# CONFIG_MTD_QINFO_PROBE is not set
517 523
518# 524#
519# UBI - Unsorted block images 525# UBI - Unsorted block images
@@ -592,8 +598,10 @@ CONFIG_SCSI_LOWLEVEL=y
592# CONFIG_MEGARAID_NEWGEN is not set 598# CONFIG_MEGARAID_NEWGEN is not set
593# CONFIG_MEGARAID_LEGACY is not set 599# CONFIG_MEGARAID_LEGACY is not set
594# CONFIG_MEGARAID_SAS is not set 600# CONFIG_MEGARAID_SAS is not set
601# CONFIG_SCSI_MPT2SAS is not set
595# CONFIG_SCSI_HPTIOP is not set 602# CONFIG_SCSI_HPTIOP is not set
596# CONFIG_LIBFC is not set 603# CONFIG_LIBFC is not set
604# CONFIG_LIBFCOE is not set
597# CONFIG_FCOE is not set 605# CONFIG_FCOE is not set
598# CONFIG_SCSI_DMX3191D is not set 606# CONFIG_SCSI_DMX3191D is not set
599# CONFIG_SCSI_FUTURE_DOMAIN is not set 607# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -614,6 +622,7 @@ CONFIG_SCSI_LOWLEVEL=y
614# CONFIG_SCSI_DEBUG is not set 622# CONFIG_SCSI_DEBUG is not set
615# CONFIG_SCSI_SRP is not set 623# CONFIG_SCSI_SRP is not set
616# CONFIG_SCSI_DH is not set 624# CONFIG_SCSI_DH is not set
625# CONFIG_SCSI_OSD_INITIATOR is not set
617CONFIG_ATA=y 626CONFIG_ATA=y
618# CONFIG_ATA_NONSTANDARD is not set 627# CONFIG_ATA_NONSTANDARD is not set
619CONFIG_SATA_PMP=y 628CONFIG_SATA_PMP=y
@@ -687,6 +696,7 @@ CONFIG_SATA_MV=y
687# CONFIG_IEEE1394 is not set 696# CONFIG_IEEE1394 is not set
688# CONFIG_I2O is not set 697# CONFIG_I2O is not set
689CONFIG_NETDEVICES=y 698CONFIG_NETDEVICES=y
699CONFIG_COMPAT_NET_DEV_OPS=y
690# CONFIG_DUMMY is not set 700# CONFIG_DUMMY is not set
691# CONFIG_BONDING is not set 701# CONFIG_BONDING is not set
692# CONFIG_MACVLAN is not set 702# CONFIG_MACVLAN is not set
@@ -724,8 +734,10 @@ CONFIG_MII=y
724# CONFIG_SMC91X is not set 734# CONFIG_SMC91X is not set
725# CONFIG_DM9000 is not set 735# CONFIG_DM9000 is not set
726# CONFIG_ENC28J60 is not set 736# CONFIG_ENC28J60 is not set
737# CONFIG_ETHOC is not set
727# CONFIG_SMC911X is not set 738# CONFIG_SMC911X is not set
728# CONFIG_SMSC911X is not set 739# CONFIG_SMSC911X is not set
740# CONFIG_DNET is not set
729# CONFIG_NET_TULIP is not set 741# CONFIG_NET_TULIP is not set
730# CONFIG_HP100 is not set 742# CONFIG_HP100 is not set
731# CONFIG_IBM_NEW_EMAC_ZMII is not set 743# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -763,6 +775,7 @@ CONFIG_NETDEV_1000=y
763# CONFIG_E1000E is not set 775# CONFIG_E1000E is not set
764# CONFIG_IP1000 is not set 776# CONFIG_IP1000 is not set
765# CONFIG_IGB is not set 777# CONFIG_IGB is not set
778# CONFIG_IGBVF is not set
766# CONFIG_NS83820 is not set 779# CONFIG_NS83820 is not set
767# CONFIG_HAMACHI is not set 780# CONFIG_HAMACHI is not set
768# CONFIG_YELLOWFIN is not set 781# CONFIG_YELLOWFIN is not set
@@ -777,6 +790,7 @@ CONFIG_MV643XX_ETH=y
777# CONFIG_QLA3XXX is not set 790# CONFIG_QLA3XXX is not set
778# CONFIG_ATL1 is not set 791# CONFIG_ATL1 is not set
779# CONFIG_ATL1E is not set 792# CONFIG_ATL1E is not set
793# CONFIG_ATL1C is not set
780# CONFIG_JME is not set 794# CONFIG_JME is not set
781# CONFIG_NETDEV_10000 is not set 795# CONFIG_NETDEV_10000 is not set
782# CONFIG_TR is not set 796# CONFIG_TR is not set
@@ -789,10 +803,11 @@ CONFIG_WLAN_80211=y
789CONFIG_LIBERTAS=y 803CONFIG_LIBERTAS=y
790# CONFIG_LIBERTAS_USB is not set 804# CONFIG_LIBERTAS_USB is not set
791CONFIG_LIBERTAS_SDIO=y 805CONFIG_LIBERTAS_SDIO=y
806# CONFIG_LIBERTAS_SPI is not set
792# CONFIG_LIBERTAS_DEBUG is not set 807# CONFIG_LIBERTAS_DEBUG is not set
793# CONFIG_LIBERTAS_THINFIRM is not set 808# CONFIG_LIBERTAS_THINFIRM is not set
794# CONFIG_HERMES is not set
795# CONFIG_ATMEL is not set 809# CONFIG_ATMEL is not set
810# CONFIG_AT76C50X_USB is not set
796# CONFIG_PRISM54 is not set 811# CONFIG_PRISM54 is not set
797# CONFIG_USB_ZD1201 is not set 812# CONFIG_USB_ZD1201 is not set
798# CONFIG_USB_NET_RNDIS_WLAN is not set 813# CONFIG_USB_NET_RNDIS_WLAN is not set
@@ -800,20 +815,20 @@ CONFIG_LIBERTAS_SDIO=y
800# CONFIG_RTL8187 is not set 815# CONFIG_RTL8187 is not set
801# CONFIG_ADM8211 is not set 816# CONFIG_ADM8211 is not set
802# CONFIG_MAC80211_HWSIM is not set 817# CONFIG_MAC80211_HWSIM is not set
818# CONFIG_MWL8K is not set
803# CONFIG_P54_COMMON is not set 819# CONFIG_P54_COMMON is not set
804# CONFIG_ATH5K is not set 820# CONFIG_ATH5K is not set
805# CONFIG_ATH9K is not set 821# CONFIG_ATH9K is not set
822# CONFIG_AR9170_USB is not set
806# CONFIG_IPW2100 is not set 823# CONFIG_IPW2100 is not set
807# CONFIG_IPW2200 is not set 824# CONFIG_IPW2200 is not set
808# CONFIG_IWLCORE is not set 825# CONFIG_IWLWIFI is not set
809# CONFIG_IWLWIFI_LEDS is not set
810# CONFIG_IWLAGN is not set
811# CONFIG_IWL3945 is not set
812# CONFIG_HOSTAP is not set 826# CONFIG_HOSTAP is not set
813# CONFIG_B43 is not set 827# CONFIG_B43 is not set
814# CONFIG_B43LEGACY is not set 828# CONFIG_B43LEGACY is not set
815# CONFIG_ZD1211RW is not set 829# CONFIG_ZD1211RW is not set
816# CONFIG_RT2X00 is not set 830# CONFIG_RT2X00 is not set
831# CONFIG_HERMES is not set
817 832
818# 833#
819# Enable WiMAX (Networking options) to see the WiMAX drivers 834# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -908,6 +923,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=2
908# 923#
909# Non-8250 serial port support 924# Non-8250 serial port support
910# 925#
926# CONFIG_SERIAL_MAX3100 is not set
911CONFIG_SERIAL_CORE=y 927CONFIG_SERIAL_CORE=y
912CONFIG_SERIAL_CORE_CONSOLE=y 928CONFIG_SERIAL_CORE_CONSOLE=y
913# CONFIG_SERIAL_JSM is not set 929# CONFIG_SERIAL_JSM is not set
@@ -982,7 +998,6 @@ CONFIG_I2C_MV64XXX=y
982# CONFIG_SENSORS_PCF8574 is not set 998# CONFIG_SENSORS_PCF8574 is not set
983# CONFIG_PCF8575 is not set 999# CONFIG_PCF8575 is not set
984# CONFIG_SENSORS_PCA9539 is not set 1000# CONFIG_SENSORS_PCA9539 is not set
985# CONFIG_SENSORS_PCF8591 is not set
986# CONFIG_SENSORS_MAX6875 is not set 1001# CONFIG_SENSORS_MAX6875 is not set
987# CONFIG_SENSORS_TSL2550 is not set 1002# CONFIG_SENSORS_TSL2550 is not set
988# CONFIG_I2C_DEBUG_CORE is not set 1003# CONFIG_I2C_DEBUG_CORE is not set
@@ -1082,15 +1097,17 @@ CONFIG_USB_HID=y
1082# 1097#
1083# Special HID drivers 1098# Special HID drivers
1084# 1099#
1085CONFIG_HID_COMPAT=y
1086CONFIG_HID_A4TECH=y 1100CONFIG_HID_A4TECH=y
1087CONFIG_HID_APPLE=y 1101CONFIG_HID_APPLE=y
1088CONFIG_HID_BELKIN=y 1102CONFIG_HID_BELKIN=y
1089CONFIG_HID_CHERRY=y 1103CONFIG_HID_CHERRY=y
1090CONFIG_HID_CHICONY=y 1104CONFIG_HID_CHICONY=y
1091CONFIG_HID_CYPRESS=y 1105CONFIG_HID_CYPRESS=y
1106# CONFIG_DRAGONRISE_FF is not set
1092CONFIG_HID_EZKEY=y 1107CONFIG_HID_EZKEY=y
1108CONFIG_HID_KYE=y
1093CONFIG_HID_GYRATION=y 1109CONFIG_HID_GYRATION=y
1110CONFIG_HID_KENSINGTON=y
1094CONFIG_HID_LOGITECH=y 1111CONFIG_HID_LOGITECH=y
1095# CONFIG_LOGITECH_FF is not set 1112# CONFIG_LOGITECH_FF is not set
1096# CONFIG_LOGIRUMBLEPAD2_FF is not set 1113# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1152,11 +1169,11 @@ CONFIG_USB_PRINTER=m
1152# CONFIG_USB_TMC is not set 1169# CONFIG_USB_TMC is not set
1153 1170
1154# 1171#
1155# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1172# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1156# 1173#
1157 1174
1158# 1175#
1159# see USB_STORAGE Help for more information 1176# also be needed; see USB_STORAGE Help for more info
1160# 1177#
1161CONFIG_USB_STORAGE=y 1178CONFIG_USB_STORAGE=y
1162# CONFIG_USB_STORAGE_DEBUG is not set 1179# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1198,7 +1215,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1198# CONFIG_USB_LED is not set 1215# CONFIG_USB_LED is not set
1199# CONFIG_USB_CYPRESS_CY7C63 is not set 1216# CONFIG_USB_CYPRESS_CY7C63 is not set
1200# CONFIG_USB_CYTHERM is not set 1217# CONFIG_USB_CYTHERM is not set
1201# CONFIG_USB_PHIDGET is not set
1202# CONFIG_USB_IDMOUSE is not set 1218# CONFIG_USB_IDMOUSE is not set
1203# CONFIG_USB_FTDI_ELAN is not set 1219# CONFIG_USB_FTDI_ELAN is not set
1204# CONFIG_USB_APPLEDISPLAY is not set 1220# CONFIG_USB_APPLEDISPLAY is not set
@@ -1215,6 +1231,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1215# OTG and related infrastructure 1231# OTG and related infrastructure
1216# 1232#
1217# CONFIG_USB_GPIO_VBUS is not set 1233# CONFIG_USB_GPIO_VBUS is not set
1234# CONFIG_NOP_USB_XCEIV is not set
1218# CONFIG_UWB is not set 1235# CONFIG_UWB is not set
1219CONFIG_MMC=y 1236CONFIG_MMC=y
1220# CONFIG_MMC_DEBUG is not set 1237# CONFIG_MMC_DEBUG is not set
@@ -1245,7 +1262,11 @@ CONFIG_LEDS_CLASS=y
1245# 1262#
1246# CONFIG_LEDS_PCA9532 is not set 1263# CONFIG_LEDS_PCA9532 is not set
1247CONFIG_LEDS_GPIO=y 1264CONFIG_LEDS_GPIO=y
1265CONFIG_LEDS_GPIO_PLATFORM=y
1266# CONFIG_LEDS_LP5521 is not set
1248# CONFIG_LEDS_PCA955X is not set 1267# CONFIG_LEDS_PCA955X is not set
1268# CONFIG_LEDS_DAC124S085 is not set
1269# CONFIG_LEDS_BD2802 is not set
1249 1270
1250# 1271#
1251# LED Triggers 1272# LED Triggers
@@ -1255,6 +1276,10 @@ CONFIG_LEDS_TRIGGER_TIMER=y
1255CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1276CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1256# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1277# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1257CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 1278CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1279
1280#
1281# iptables trigger is under Netfilter config (LED target)
1282#
1258CONFIG_RTC_LIB=y 1283CONFIG_RTC_LIB=y
1259CONFIG_RTC_CLASS=y 1284CONFIG_RTC_CLASS=y
1260CONFIG_RTC_HCTOSYS=y 1285CONFIG_RTC_HCTOSYS=y
@@ -1329,7 +1354,9 @@ CONFIG_DMA_ENGINE=y
1329# DMA Clients 1354# DMA Clients
1330# 1355#
1331# CONFIG_NET_DMA is not set 1356# CONFIG_NET_DMA is not set
1357# CONFIG_ASYNC_TX_DMA is not set
1332# CONFIG_DMATEST is not set 1358# CONFIG_DMATEST is not set
1359# CONFIG_AUXDISPLAY is not set
1333# CONFIG_REGULATOR is not set 1360# CONFIG_REGULATOR is not set
1334# CONFIG_UIO is not set 1361# CONFIG_UIO is not set
1335# CONFIG_STAGING is not set 1362# CONFIG_STAGING is not set
@@ -1341,6 +1368,7 @@ CONFIG_EXT2_FS=y
1341# CONFIG_EXT2_FS_XATTR is not set 1368# CONFIG_EXT2_FS_XATTR is not set
1342# CONFIG_EXT2_FS_XIP is not set 1369# CONFIG_EXT2_FS_XIP is not set
1343CONFIG_EXT3_FS=y 1370CONFIG_EXT3_FS=y
1371# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1344# CONFIG_EXT3_FS_XATTR is not set 1372# CONFIG_EXT3_FS_XATTR is not set
1345# CONFIG_EXT4_FS is not set 1373# CONFIG_EXT4_FS is not set
1346CONFIG_JBD=y 1374CONFIG_JBD=y
@@ -1361,6 +1389,11 @@ CONFIG_INOTIFY_USER=y
1361# CONFIG_FUSE_FS is not set 1389# CONFIG_FUSE_FS is not set
1362 1390
1363# 1391#
1392# Caches
1393#
1394# CONFIG_FSCACHE is not set
1395
1396#
1364# CD-ROM/DVD Filesystems 1397# CD-ROM/DVD Filesystems
1365# 1398#
1366CONFIG_ISO9660_FS=m 1399CONFIG_ISO9660_FS=m
@@ -1419,6 +1452,7 @@ CONFIG_CRAMFS=y
1419# CONFIG_ROMFS_FS is not set 1452# CONFIG_ROMFS_FS is not set
1420# CONFIG_SYSV_FS is not set 1453# CONFIG_SYSV_FS is not set
1421# CONFIG_UFS_FS is not set 1454# CONFIG_UFS_FS is not set
1455# CONFIG_NILFS2_FS is not set
1422CONFIG_NETWORK_FILESYSTEMS=y 1456CONFIG_NETWORK_FILESYSTEMS=y
1423CONFIG_NFS_FS=y 1457CONFIG_NFS_FS=y
1424CONFIG_NFS_V3=y 1458CONFIG_NFS_V3=y
@@ -1430,7 +1464,6 @@ CONFIG_LOCKD=y
1430CONFIG_LOCKD_V4=y 1464CONFIG_LOCKD_V4=y
1431CONFIG_NFS_COMMON=y 1465CONFIG_NFS_COMMON=y
1432CONFIG_SUNRPC=y 1466CONFIG_SUNRPC=y
1433# CONFIG_SUNRPC_REGISTER_V4 is not set
1434# CONFIG_RPCSEC_GSS_KRB5 is not set 1467# CONFIG_RPCSEC_GSS_KRB5 is not set
1435# CONFIG_RPCSEC_GSS_SPKM3 is not set 1468# CONFIG_RPCSEC_GSS_SPKM3 is not set
1436# CONFIG_SMB_FS is not set 1469# CONFIG_SMB_FS is not set
@@ -1502,6 +1535,9 @@ CONFIG_DEBUG_KERNEL=y
1502CONFIG_DETECT_SOFTLOCKUP=y 1535CONFIG_DETECT_SOFTLOCKUP=y
1503# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1536# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1504CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1537CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1538CONFIG_DETECT_HUNG_TASK=y
1539# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1540CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1505# CONFIG_SCHED_DEBUG is not set 1541# CONFIG_SCHED_DEBUG is not set
1506# CONFIG_SCHEDSTATS is not set 1542# CONFIG_SCHEDSTATS is not set
1507# CONFIG_TIMER_STATS is not set 1543# CONFIG_TIMER_STATS is not set
@@ -1538,10 +1574,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1538# CONFIG_FAULT_INJECTION is not set 1574# CONFIG_FAULT_INJECTION is not set
1539# CONFIG_LATENCYTOP is not set 1575# CONFIG_LATENCYTOP is not set
1540CONFIG_SYSCTL_SYSCALL_CHECK=y 1576CONFIG_SYSCTL_SYSCALL_CHECK=y
1577# CONFIG_PAGE_POISONING is not set
1541CONFIG_NOP_TRACER=y 1578CONFIG_NOP_TRACER=y
1542CONFIG_HAVE_FUNCTION_TRACER=y 1579CONFIG_HAVE_FUNCTION_TRACER=y
1543CONFIG_RING_BUFFER=y 1580CONFIG_RING_BUFFER=y
1544CONFIG_TRACING=y 1581CONFIG_TRACING=y
1582CONFIG_TRACING_SUPPORT=y
1545 1583
1546# 1584#
1547# Tracers 1585# Tracers
@@ -1551,11 +1589,15 @@ CONFIG_TRACING=y
1551# CONFIG_PREEMPT_TRACER is not set 1589# CONFIG_PREEMPT_TRACER is not set
1552# CONFIG_SCHED_TRACER is not set 1590# CONFIG_SCHED_TRACER is not set
1553# CONFIG_CONTEXT_SWITCH_TRACER is not set 1591# CONFIG_CONTEXT_SWITCH_TRACER is not set
1592# CONFIG_EVENT_TRACER is not set
1554# CONFIG_BOOT_TRACER is not set 1593# CONFIG_BOOT_TRACER is not set
1555# CONFIG_TRACE_BRANCH_PROFILING is not set 1594# CONFIG_TRACE_BRANCH_PROFILING is not set
1556# CONFIG_STACK_TRACER is not set 1595# CONFIG_STACK_TRACER is not set
1596# CONFIG_KMEMTRACE is not set
1597# CONFIG_WORKQUEUE_TRACER is not set
1598# CONFIG_BLK_DEV_IO_TRACE is not set
1557# CONFIG_FTRACE_STARTUP_TEST is not set 1599# CONFIG_FTRACE_STARTUP_TEST is not set
1558# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1600# CONFIG_DYNAMIC_DEBUG is not set
1559# CONFIG_SAMPLES is not set 1601# CONFIG_SAMPLES is not set
1560CONFIG_HAVE_ARCH_KGDB=y 1602CONFIG_HAVE_ARCH_KGDB=y
1561# CONFIG_KGDB is not set 1603# CONFIG_KGDB is not set
@@ -1587,10 +1629,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1587CONFIG_CRYPTO_HASH=y 1629CONFIG_CRYPTO_HASH=y
1588CONFIG_CRYPTO_HASH2=y 1630CONFIG_CRYPTO_HASH2=y
1589CONFIG_CRYPTO_RNG2=y 1631CONFIG_CRYPTO_RNG2=y
1632CONFIG_CRYPTO_PCOMP=y
1590CONFIG_CRYPTO_MANAGER=y 1633CONFIG_CRYPTO_MANAGER=y
1591CONFIG_CRYPTO_MANAGER2=y 1634CONFIG_CRYPTO_MANAGER2=y
1592# CONFIG_CRYPTO_GF128MUL is not set 1635# CONFIG_CRYPTO_GF128MUL is not set
1593# CONFIG_CRYPTO_NULL is not set 1636# CONFIG_CRYPTO_NULL is not set
1637CONFIG_CRYPTO_WORKQUEUE=y
1594# CONFIG_CRYPTO_CRYPTD is not set 1638# CONFIG_CRYPTO_CRYPTD is not set
1595# CONFIG_CRYPTO_AUTHENC is not set 1639# CONFIG_CRYPTO_AUTHENC is not set
1596# CONFIG_CRYPTO_TEST is not set 1640# CONFIG_CRYPTO_TEST is not set
@@ -1659,6 +1703,7 @@ CONFIG_CRYPTO_ARC4=y
1659# Compression 1703# Compression
1660# 1704#
1661# CONFIG_CRYPTO_DEFLATE is not set 1705# CONFIG_CRYPTO_DEFLATE is not set
1706# CONFIG_CRYPTO_ZLIB is not set
1662# CONFIG_CRYPTO_LZO is not set 1707# CONFIG_CRYPTO_LZO is not set
1663 1708
1664# 1709#
@@ -1667,6 +1712,7 @@ CONFIG_CRYPTO_ARC4=y
1667# CONFIG_CRYPTO_ANSI_CPRNG is not set 1712# CONFIG_CRYPTO_ANSI_CPRNG is not set
1668CONFIG_CRYPTO_HW=y 1713CONFIG_CRYPTO_HW=y
1669# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1714# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1715CONFIG_BINARY_PRINTF=y
1670 1716
1671# 1717#
1672# Library routines 1718# Library routines
@@ -1682,7 +1728,7 @@ CONFIG_CRC32=y
1682CONFIG_LIBCRC32C=y 1728CONFIG_LIBCRC32C=y
1683CONFIG_ZLIB_INFLATE=y 1729CONFIG_ZLIB_INFLATE=y
1684CONFIG_ZLIB_DEFLATE=y 1730CONFIG_ZLIB_DEFLATE=y
1685CONFIG_PLIST=y
1686CONFIG_HAS_IOMEM=y 1731CONFIG_HAS_IOMEM=y
1687CONFIG_HAS_IOPORT=y 1732CONFIG_HAS_IOPORT=y
1688CONFIG_HAS_DMA=y 1733CONFIG_HAS_DMA=y
1734CONFIG_NLATTR=y
diff --git a/arch/arm/configs/mv78xx0_defconfig b/arch/arm/configs/mv78xx0_defconfig
index b0698722e0cb..398274b0771a 100644
--- a/arch/arm/configs/mv78xx0_defconfig
+++ b/arch/arm/configs/mv78xx0_defconfig
@@ -1,11 +1,11 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.30-rc4
4# Fri Jun 13 02:57:32 2008 4# Mon May 4 14:22:12 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8# CONFIG_GENERIC_GPIO is not set 8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y 9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y 11CONFIG_MMU=y
@@ -22,8 +22,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y 25CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
26CONFIG_ZONE_DMA=y
27CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 28
@@ -43,10 +42,19 @@ CONFIG_SYSVIPC_SYSCTL=y
43# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
45
46#
47# RCU Subsystem
48#
49CONFIG_CLASSIC_RCU=y
50# CONFIG_TREE_RCU is not set
51# CONFIG_PREEMPT_RCU is not set
52# CONFIG_TREE_RCU_TRACE is not set
53# CONFIG_PREEMPT_RCU_TRACE is not set
46# CONFIG_IKCONFIG is not set 54# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14 55CONFIG_LOG_BUF_SHIFT=14
48# CONFIG_CGROUPS is not set
49# CONFIG_GROUP_SCHED is not set 56# CONFIG_GROUP_SCHED is not set
57# CONFIG_CGROUPS is not set
50CONFIG_SYSFS_DEPRECATED=y 58CONFIG_SYSFS_DEPRECATED=y
51CONFIG_SYSFS_DEPRECATED_V2=y 59CONFIG_SYSFS_DEPRECATED_V2=y
52# CONFIG_RELAY is not set 60# CONFIG_RELAY is not set
@@ -54,32 +62,35 @@ CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_BLK_DEV_INITRD is not set 62# CONFIG_BLK_DEV_INITRD is not set
55CONFIG_CC_OPTIMIZE_FOR_SIZE=y 63CONFIG_CC_OPTIMIZE_FOR_SIZE=y
56CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
57CONFIG_EMBEDDED=y 66CONFIG_EMBEDDED=y
58CONFIG_UID16=y 67CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
60CONFIG_SYSCTL_SYSCALL_CHECK=y
61CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
62CONFIG_KALLSYMS_ALL=y 70CONFIG_KALLSYMS_ALL=y
63# CONFIG_KALLSYMS_EXTRA_PASS is not set 71# CONFIG_KALLSYMS_EXTRA_PASS is not set
72# CONFIG_STRIP_ASM_SYMS is not set
64CONFIG_HOTPLUG=y 73CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y 74CONFIG_PRINTK=y
66CONFIG_BUG=y 75CONFIG_BUG=y
67CONFIG_ELF_CORE=y 76CONFIG_ELF_CORE=y
68CONFIG_COMPAT_BRK=y
69CONFIG_BASE_FULL=y 77CONFIG_BASE_FULL=y
70CONFIG_FUTEX=y 78CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
72CONFIG_EPOLL=y 79CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y 80CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y 81CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y 82CONFIG_EVENTFD=y
76CONFIG_SHMEM=y 83CONFIG_SHMEM=y
84CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 85CONFIG_VM_EVENT_COUNTERS=y
86CONFIG_PCI_QUIRKS=y
78# CONFIG_SLUB_DEBUG is not set 87# CONFIG_SLUB_DEBUG is not set
88CONFIG_COMPAT_BRK=y
79# CONFIG_SLAB is not set 89# CONFIG_SLAB is not set
80CONFIG_SLUB=y 90CONFIG_SLUB=y
81# CONFIG_SLOB is not set 91# CONFIG_SLOB is not set
82CONFIG_PROFILING=y 92CONFIG_PROFILING=y
93CONFIG_TRACEPOINTS=y
83# CONFIG_MARKERS is not set 94# CONFIG_MARKERS is not set
84CONFIG_OPROFILE=y 95CONFIG_OPROFILE=y
85CONFIG_HAVE_OPROFILE=y 96CONFIG_HAVE_OPROFILE=y
@@ -87,10 +98,9 @@ CONFIG_KPROBES=y
87CONFIG_KRETPROBES=y 98CONFIG_KRETPROBES=y
88CONFIG_HAVE_KPROBES=y 99CONFIG_HAVE_KPROBES=y
89CONFIG_HAVE_KRETPROBES=y 100CONFIG_HAVE_KRETPROBES=y
90# CONFIG_HAVE_DMA_ATTRS is not set 101# CONFIG_SLOW_WORK is not set
91CONFIG_PROC_PAGE_MONITOR=y 102CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
95CONFIG_MODULES=y 105CONFIG_MODULES=y
96# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -98,12 +108,10 @@ CONFIG_MODULE_UNLOAD=y
98# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
99# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
100# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
101# CONFIG_KMOD is not set
102CONFIG_BLOCK=y 111CONFIG_BLOCK=y
103# CONFIG_LBD is not set 112# CONFIG_LBD 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 113# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set
107 115
108# 116#
109# IO Schedulers 117# IO Schedulers
@@ -117,7 +125,7 @@ CONFIG_IOSCHED_CFQ=y
117CONFIG_DEFAULT_CFQ=y 125CONFIG_DEFAULT_CFQ=y
118# CONFIG_DEFAULT_NOOP is not set 126# CONFIG_DEFAULT_NOOP is not set
119CONFIG_DEFAULT_IOSCHED="cfq" 127CONFIG_DEFAULT_IOSCHED="cfq"
120CONFIG_CLASSIC_RCU=y 128# CONFIG_FREEZER is not set
121 129
122# 130#
123# System Type 131# System Type
@@ -127,11 +135,10 @@ CONFIG_CLASSIC_RCU=y
127# CONFIG_ARCH_REALVIEW is not set 135# CONFIG_ARCH_REALVIEW is not set
128# CONFIG_ARCH_VERSATILE is not set 136# CONFIG_ARCH_VERSATILE is not set
129# CONFIG_ARCH_AT91 is not set 137# CONFIG_ARCH_AT91 is not set
130# CONFIG_ARCH_CLPS7500 is not set
131# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
132# CONFIG_ARCH_CO285 is not set
133# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
134# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
141# CONFIG_ARCH_GEMINI is not set
135# CONFIG_ARCH_FOOTBRIDGE is not set 142# CONFIG_ARCH_FOOTBRIDGE is not set
136# CONFIG_ARCH_NETX is not set 143# CONFIG_ARCH_NETX is not set
137# CONFIG_ARCH_H720X is not set 144# CONFIG_ARCH_H720X is not set
@@ -152,28 +159,23 @@ CONFIG_ARCH_MV78XX0=y
152# CONFIG_ARCH_ORION5X is not set 159# CONFIG_ARCH_ORION5X is not set
153# CONFIG_ARCH_PNX4008 is not set 160# CONFIG_ARCH_PNX4008 is not set
154# CONFIG_ARCH_PXA is not set 161# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MMP is not set
155# CONFIG_ARCH_RPC is not set 163# CONFIG_ARCH_RPC is not set
156# CONFIG_ARCH_SA1100 is not set 164# CONFIG_ARCH_SA1100 is not set
157# CONFIG_ARCH_S3C2410 is not set 165# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set
158# CONFIG_ARCH_SHARK is not set 167# CONFIG_ARCH_SHARK is not set
159# CONFIG_ARCH_LH7A40X is not set 168# CONFIG_ARCH_LH7A40X is not set
160# CONFIG_ARCH_DAVINCI is not set 169# CONFIG_ARCH_DAVINCI is not set
161# CONFIG_ARCH_OMAP is not set 170# CONFIG_ARCH_OMAP is not set
162# CONFIG_ARCH_MSM7X00A is not set 171# CONFIG_ARCH_MSM is not set
172# CONFIG_ARCH_W90X900 is not set
163 173
164# 174#
165# Marvell MV78xx0 Implementations 175# Marvell MV78xx0 Implementations
166# 176#
167CONFIG_MACH_DB78X00_BP=y 177CONFIG_MACH_DB78X00_BP=y
168CONFIG_MACH_RD78X00_MASA=y 178CONFIG_MACH_RD78X00_MASA=y
169
170#
171# Boot options
172#
173
174#
175# Power management
176#
177CONFIG_PLAT_ORION=y 179CONFIG_PLAT_ORION=y
178 180
179# 181#
@@ -199,6 +201,7 @@ CONFIG_ARM_THUMB=y
199# CONFIG_CPU_DCACHE_DISABLE is not set 201# CONFIG_CPU_DCACHE_DISABLE is not set
200CONFIG_OUTER_CACHE=y 202CONFIG_OUTER_CACHE=y
201CONFIG_CACHE_FEROCEON_L2=y 203CONFIG_CACHE_FEROCEON_L2=y
204# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
202 205
203# 206#
204# Bus support 207# Bus support
@@ -208,6 +211,8 @@ CONFIG_PCI_SYSCALL=y
208# CONFIG_ARCH_SUPPORTS_MSI is not set 211# CONFIG_ARCH_SUPPORTS_MSI is not set
209CONFIG_PCI_LEGACY=y 212CONFIG_PCI_LEGACY=y
210# CONFIG_PCI_DEBUG is not set 213# CONFIG_PCI_DEBUG is not set
214# CONFIG_PCI_STUB is not set
215# CONFIG_PCI_IOV is not set
211# CONFIG_PCCARD is not set 216# CONFIG_PCCARD is not set
212 217
213# 218#
@@ -217,25 +222,33 @@ CONFIG_TICK_ONESHOT=y
217CONFIG_NO_HZ=y 222CONFIG_NO_HZ=y
218CONFIG_HIGH_RES_TIMERS=y 223CONFIG_HIGH_RES_TIMERS=y
219CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 224CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
225CONFIG_VMSPLIT_3G=y
226# CONFIG_VMSPLIT_2G is not set
227# CONFIG_VMSPLIT_1G is not set
228CONFIG_PAGE_OFFSET=0xC0000000
220CONFIG_PREEMPT=y 229CONFIG_PREEMPT=y
221CONFIG_HZ=100 230CONFIG_HZ=100
222CONFIG_AEABI=y 231CONFIG_AEABI=y
223CONFIG_OABI_COMPAT=y 232CONFIG_OABI_COMPAT=y
224# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 233CONFIG_ARCH_FLATMEM_HAS_HOLES=y
234# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
235# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
236CONFIG_HIGHMEM=y
225CONFIG_SELECT_MEMORY_MODEL=y 237CONFIG_SELECT_MEMORY_MODEL=y
226CONFIG_FLATMEM_MANUAL=y 238CONFIG_FLATMEM_MANUAL=y
227# CONFIG_DISCONTIGMEM_MANUAL is not set 239# CONFIG_DISCONTIGMEM_MANUAL is not set
228# CONFIG_SPARSEMEM_MANUAL is not set 240# CONFIG_SPARSEMEM_MANUAL is not set
229CONFIG_FLATMEM=y 241CONFIG_FLATMEM=y
230CONFIG_FLAT_NODE_MEM_MAP=y 242CONFIG_FLAT_NODE_MEM_MAP=y
231# CONFIG_SPARSEMEM_STATIC is not set
232# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
233CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4096 244CONFIG_SPLIT_PTLOCK_CPUS=4096
235# CONFIG_RESOURCES_64BIT is not set 245# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=0
237CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
239CONFIG_ALIGNMENT_TRAP=y 252CONFIG_ALIGNMENT_TRAP=y
240 253
241# 254#
@@ -248,6 +261,11 @@ CONFIG_CMDLINE=""
248# CONFIG_KEXEC is not set 261# CONFIG_KEXEC is not set
249 262
250# 263#
264# CPU Power Management
265#
266# CONFIG_CPU_IDLE is not set
267
268#
251# Floating point emulation 269# Floating point emulation
252# 270#
253 271
@@ -263,6 +281,8 @@ CONFIG_VFP=y
263# Userspace binary formats 281# Userspace binary formats
264# 282#
265CONFIG_BINFMT_ELF=y 283CONFIG_BINFMT_ELF=y
284# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
285CONFIG_HAVE_AOUT=y
266# CONFIG_BINFMT_AOUT is not set 286# CONFIG_BINFMT_AOUT is not set
267# CONFIG_BINFMT_MISC is not set 287# CONFIG_BINFMT_MISC is not set
268 288
@@ -271,10 +291,6 @@ CONFIG_BINFMT_ELF=y
271# 291#
272# CONFIG_PM is not set 292# CONFIG_PM is not set
273CONFIG_ARCH_SUSPEND_POSSIBLE=y 293CONFIG_ARCH_SUSPEND_POSSIBLE=y
274
275#
276# Networking
277#
278CONFIG_NET=y 294CONFIG_NET=y
279 295
280# 296#
@@ -310,7 +326,7 @@ CONFIG_IP_PNP_BOOTP=y
310CONFIG_INET_XFRM_MODE_TRANSPORT=y 326CONFIG_INET_XFRM_MODE_TRANSPORT=y
311CONFIG_INET_XFRM_MODE_TUNNEL=y 327CONFIG_INET_XFRM_MODE_TUNNEL=y
312CONFIG_INET_XFRM_MODE_BEET=y 328CONFIG_INET_XFRM_MODE_BEET=y
313# CONFIG_INET_LRO is not set 329CONFIG_INET_LRO=y
314CONFIG_INET_DIAG=y 330CONFIG_INET_DIAG=y
315CONFIG_INET_TCP_DIAG=y 331CONFIG_INET_TCP_DIAG=y
316# CONFIG_TCP_CONG_ADVANCED is not set 332# CONFIG_TCP_CONG_ADVANCED is not set
@@ -325,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
325# CONFIG_TIPC is not set 341# CONFIG_TIPC is not set
326# CONFIG_ATM is not set 342# CONFIG_ATM is not set
327# CONFIG_BRIDGE is not set 343# CONFIG_BRIDGE is not set
344# CONFIG_NET_DSA is not set
328# CONFIG_VLAN_8021Q is not set 345# CONFIG_VLAN_8021Q is not set
329# CONFIG_DECNET is not set 346# CONFIG_DECNET is not set
330# CONFIG_LLC2 is not set 347# CONFIG_LLC2 is not set
@@ -334,26 +351,23 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_LAPB is not set 351# CONFIG_LAPB is not set
335# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
336# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
354# CONFIG_PHONET is not set
337# CONFIG_NET_SCHED is not set 355# CONFIG_NET_SCHED is not set
356# CONFIG_DCB is not set
338 357
339# 358#
340# Network testing 359# Network testing
341# 360#
342CONFIG_NET_PKTGEN=m 361CONFIG_NET_PKTGEN=m
343# CONFIG_NET_TCPPROBE is not set 362# CONFIG_NET_TCPPROBE is not set
363# CONFIG_NET_DROP_MONITOR is not set
344# CONFIG_HAMRADIO is not set 364# CONFIG_HAMRADIO is not set
345# CONFIG_CAN is not set 365# CONFIG_CAN is not set
346# CONFIG_IRDA is not set 366# CONFIG_IRDA is not set
347# CONFIG_BT is not set 367# CONFIG_BT is not set
348# CONFIG_AF_RXRPC is not set 368# CONFIG_AF_RXRPC is not set
349 369# CONFIG_WIRELESS is not set
350# 370# CONFIG_WIMAX is not set
351# Wireless
352#
353# CONFIG_CFG80211 is not set
354CONFIG_WIRELESS_EXT=y
355# CONFIG_MAC80211 is not set
356# CONFIG_IEEE80211 is not set
357# CONFIG_RFKILL is not set 371# CONFIG_RFKILL is not set
358# CONFIG_NET_9P is not set 372# CONFIG_NET_9P is not set
359 373
@@ -368,6 +382,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
368CONFIG_STANDALONE=y 382CONFIG_STANDALONE=y
369CONFIG_PREVENT_FIRMWARE_BUILD=y 383CONFIG_PREVENT_FIRMWARE_BUILD=y
370CONFIG_FW_LOADER=y 384CONFIG_FW_LOADER=y
385# CONFIG_FIRMWARE_IN_KERNEL is not set
386CONFIG_EXTRA_FIRMWARE=""
371# CONFIG_DEBUG_DRIVER is not set 387# CONFIG_DEBUG_DRIVER is not set
372# CONFIG_DEBUG_DEVRES is not set 388# CONFIG_DEBUG_DEVRES is not set
373# CONFIG_SYS_HYPERVISOR is not set 389# CONFIG_SYS_HYPERVISOR is not set
@@ -376,6 +392,7 @@ CONFIG_MTD=y
376# CONFIG_MTD_DEBUG is not set 392# CONFIG_MTD_DEBUG is not set
377# CONFIG_MTD_CONCAT is not set 393# CONFIG_MTD_CONCAT is not set
378CONFIG_MTD_PARTITIONS=y 394CONFIG_MTD_PARTITIONS=y
395# CONFIG_MTD_TESTS is not set
379# CONFIG_MTD_REDBOOT_PARTS is not set 396# CONFIG_MTD_REDBOOT_PARTS is not set
380CONFIG_MTD_CMDLINE_PARTS=y 397CONFIG_MTD_CMDLINE_PARTS=y
381# CONFIG_MTD_AFS_PARTS is not set 398# CONFIG_MTD_AFS_PARTS is not set
@@ -429,9 +446,7 @@ CONFIG_MTD_CFI_UTIL=y
429# 446#
430# CONFIG_MTD_COMPLEX_MAPPINGS is not set 447# CONFIG_MTD_COMPLEX_MAPPINGS is not set
431CONFIG_MTD_PHYSMAP=y 448CONFIG_MTD_PHYSMAP=y
432CONFIG_MTD_PHYSMAP_START=0x0 449# CONFIG_MTD_PHYSMAP_COMPAT is not set
433CONFIG_MTD_PHYSMAP_LEN=0x0
434CONFIG_MTD_PHYSMAP_BANKWIDTH=0
435# CONFIG_MTD_ARM_INTEGRATOR is not set 450# CONFIG_MTD_ARM_INTEGRATOR is not set
436# CONFIG_MTD_IMPA7 is not set 451# CONFIG_MTD_IMPA7 is not set
437# CONFIG_MTD_INTEL_VR_NOR is not set 452# CONFIG_MTD_INTEL_VR_NOR is not set
@@ -456,6 +471,7 @@ CONFIG_MTD_NAND=y
456CONFIG_MTD_NAND_VERIFY_WRITE=y 471CONFIG_MTD_NAND_VERIFY_WRITE=y
457# CONFIG_MTD_NAND_ECC_SMC is not set 472# CONFIG_MTD_NAND_ECC_SMC is not set
458# CONFIG_MTD_NAND_MUSEUM_IDS is not set 473# CONFIG_MTD_NAND_MUSEUM_IDS is not set
474# CONFIG_MTD_NAND_GPIO is not set
459CONFIG_MTD_NAND_IDS=y 475CONFIG_MTD_NAND_IDS=y
460# CONFIG_MTD_NAND_DISKONCHIP is not set 476# CONFIG_MTD_NAND_DISKONCHIP is not set
461# CONFIG_MTD_NAND_CAFE is not set 477# CONFIG_MTD_NAND_CAFE is not set
@@ -466,6 +482,11 @@ CONFIG_MTD_NAND_ORION=y
466# CONFIG_MTD_ONENAND is not set 482# CONFIG_MTD_ONENAND is not set
467 483
468# 484#
485# LPDDR flash memory drivers
486#
487# CONFIG_MTD_LPDDR is not set
488
489#
469# UBI - Unsorted block images 490# UBI - Unsorted block images
470# 491#
471# CONFIG_MTD_UBI is not set 492# CONFIG_MTD_UBI is not set
@@ -486,10 +507,20 @@ CONFIG_BLK_DEV_LOOP=y
486# CONFIG_ATA_OVER_ETH is not set 507# CONFIG_ATA_OVER_ETH is not set
487CONFIG_MISC_DEVICES=y 508CONFIG_MISC_DEVICES=y
488# CONFIG_PHANTOM is not set 509# CONFIG_PHANTOM is not set
489# CONFIG_EEPROM_93CX6 is not set
490# CONFIG_SGI_IOC4 is not set 510# CONFIG_SGI_IOC4 is not set
491# CONFIG_TIFM_CORE is not set 511# CONFIG_TIFM_CORE is not set
512# CONFIG_ICS932S401 is not set
492# CONFIG_ENCLOSURE_SERVICES is not set 513# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set
515# CONFIG_ISL29003 is not set
516# CONFIG_C2PORT is not set
517
518#
519# EEPROM support
520#
521# CONFIG_EEPROM_AT24 is not set
522# CONFIG_EEPROM_LEGACY is not set
523# CONFIG_EEPROM_93CX6 is not set
493CONFIG_HAVE_IDE=y 524CONFIG_HAVE_IDE=y
494# CONFIG_IDE is not set 525# CONFIG_IDE is not set
495 526
@@ -547,7 +578,11 @@ CONFIG_SCSI_LOWLEVEL=y
547# CONFIG_MEGARAID_NEWGEN is not set 578# CONFIG_MEGARAID_NEWGEN is not set
548# CONFIG_MEGARAID_LEGACY is not set 579# CONFIG_MEGARAID_LEGACY is not set
549# CONFIG_MEGARAID_SAS is not set 580# CONFIG_MEGARAID_SAS is not set
581# CONFIG_SCSI_MPT2SAS is not set
550# CONFIG_SCSI_HPTIOP is not set 582# CONFIG_SCSI_HPTIOP is not set
583# CONFIG_LIBFC is not set
584# CONFIG_LIBFCOE is not set
585# CONFIG_FCOE is not set
551# CONFIG_SCSI_DMX3191D is not set 586# CONFIG_SCSI_DMX3191D is not set
552# CONFIG_SCSI_FUTURE_DOMAIN is not set 587# CONFIG_SCSI_FUTURE_DOMAIN is not set
553# CONFIG_SCSI_IPS is not set 588# CONFIG_SCSI_IPS is not set
@@ -566,6 +601,8 @@ CONFIG_SCSI_LOWLEVEL=y
566# CONFIG_SCSI_NSP32 is not set 601# CONFIG_SCSI_NSP32 is not set
567# CONFIG_SCSI_DEBUG is not set 602# CONFIG_SCSI_DEBUG is not set
568# CONFIG_SCSI_SRP is not set 603# CONFIG_SCSI_SRP is not set
604# CONFIG_SCSI_DH is not set
605# CONFIG_SCSI_OSD_INITIATOR is not set
569CONFIG_ATA=y 606CONFIG_ATA=y
570# CONFIG_ATA_NONSTANDARD is not set 607# CONFIG_ATA_NONSTANDARD is not set
571CONFIG_SATA_PMP=y 608CONFIG_SATA_PMP=y
@@ -632,11 +669,15 @@ CONFIG_SATA_MV=y
632# 669#
633# IEEE 1394 (FireWire) support 670# IEEE 1394 (FireWire) support
634# 671#
672
673#
674# Enable only one of the two stacks, unless you know what you are doing
675#
635# CONFIG_FIREWIRE is not set 676# CONFIG_FIREWIRE is not set
636# CONFIG_IEEE1394 is not set 677# CONFIG_IEEE1394 is not set
637# CONFIG_I2O is not set 678# CONFIG_I2O is not set
638CONFIG_NETDEVICES=y 679CONFIG_NETDEVICES=y
639# CONFIG_NETDEVICES_MULTIQUEUE is not set 680CONFIG_COMPAT_NET_DEV_OPS=y
640# CONFIG_DUMMY is not set 681# CONFIG_DUMMY is not set
641# CONFIG_BONDING is not set 682# CONFIG_BONDING is not set
642# CONFIG_MACVLAN is not set 683# CONFIG_MACVLAN is not set
@@ -644,7 +685,26 @@ CONFIG_NETDEVICES=y
644# CONFIG_TUN is not set 685# CONFIG_TUN is not set
645# CONFIG_VETH is not set 686# CONFIG_VETH is not set
646# CONFIG_ARCNET is not set 687# CONFIG_ARCNET is not set
647# CONFIG_PHYLIB is not set 688CONFIG_PHYLIB=y
689
690#
691# MII PHY device drivers
692#
693CONFIG_MARVELL_PHY=y
694# CONFIG_DAVICOM_PHY is not set
695# CONFIG_QSEMI_PHY is not set
696# CONFIG_LXT_PHY is not set
697# CONFIG_CICADA_PHY is not set
698# CONFIG_VITESSE_PHY is not set
699# CONFIG_SMSC_PHY is not set
700# CONFIG_BROADCOM_PHY is not set
701# CONFIG_ICPLUS_PHY is not set
702# CONFIG_REALTEK_PHY is not set
703# CONFIG_NATIONAL_PHY is not set
704# CONFIG_STE10XP is not set
705# CONFIG_LSI_ET1011C_PHY is not set
706# CONFIG_FIXED_PHY is not set
707# CONFIG_MDIO_BITBANG is not set
648CONFIG_NET_ETHERNET=y 708CONFIG_NET_ETHERNET=y
649CONFIG_MII=y 709CONFIG_MII=y
650# CONFIG_AX88796 is not set 710# CONFIG_AX88796 is not set
@@ -654,19 +714,25 @@ CONFIG_MII=y
654# CONFIG_NET_VENDOR_3COM is not set 714# CONFIG_NET_VENDOR_3COM is not set
655# CONFIG_SMC91X is not set 715# CONFIG_SMC91X is not set
656# CONFIG_DM9000 is not set 716# CONFIG_DM9000 is not set
717# CONFIG_ETHOC is not set
718# CONFIG_SMC911X is not set
719# CONFIG_SMSC911X is not set
720# CONFIG_DNET is not set
657# CONFIG_NET_TULIP is not set 721# CONFIG_NET_TULIP is not set
658# CONFIG_HP100 is not set 722# CONFIG_HP100 is not set
659# CONFIG_IBM_NEW_EMAC_ZMII is not set 723# CONFIG_IBM_NEW_EMAC_ZMII is not set
660# CONFIG_IBM_NEW_EMAC_RGMII is not set 724# CONFIG_IBM_NEW_EMAC_RGMII is not set
661# CONFIG_IBM_NEW_EMAC_TAH is not set 725# CONFIG_IBM_NEW_EMAC_TAH is not set
662# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 726# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
727# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
728# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
729# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
663CONFIG_NET_PCI=y 730CONFIG_NET_PCI=y
664# CONFIG_PCNET32 is not set 731# CONFIG_PCNET32 is not set
665# CONFIG_AMD8111_ETH is not set 732# CONFIG_AMD8111_ETH is not set
666# CONFIG_ADAPTEC_STARFIRE is not set 733# CONFIG_ADAPTEC_STARFIRE is not set
667# CONFIG_B44 is not set 734# CONFIG_B44 is not set
668# CONFIG_FORCEDETH is not set 735# CONFIG_FORCEDETH is not set
669# CONFIG_EEPRO100 is not set
670# CONFIG_E100 is not set 736# CONFIG_E100 is not set
671# CONFIG_FEALNX is not set 737# CONFIG_FEALNX is not set
672# CONFIG_NATSEMI is not set 738# CONFIG_NATSEMI is not set
@@ -676,18 +742,20 @@ CONFIG_NET_PCI=y
676# CONFIG_R6040 is not set 742# CONFIG_R6040 is not set
677# CONFIG_SIS900 is not set 743# CONFIG_SIS900 is not set
678# CONFIG_EPIC100 is not set 744# CONFIG_EPIC100 is not set
745# CONFIG_SMSC9420 is not set
679# CONFIG_SUNDANCE is not set 746# CONFIG_SUNDANCE is not set
680# CONFIG_TLAN is not set 747# CONFIG_TLAN is not set
681# CONFIG_VIA_RHINE is not set 748# CONFIG_VIA_RHINE is not set
682# CONFIG_SC92031 is not set 749# CONFIG_SC92031 is not set
750# CONFIG_ATL2 is not set
683CONFIG_NETDEV_1000=y 751CONFIG_NETDEV_1000=y
684# CONFIG_ACENIC is not set 752# CONFIG_ACENIC is not set
685# CONFIG_DL2K is not set 753# CONFIG_DL2K is not set
686# CONFIG_E1000 is not set 754# CONFIG_E1000 is not set
687# CONFIG_E1000E is not set 755# CONFIG_E1000E is not set
688# CONFIG_E1000E_ENABLED is not set
689# CONFIG_IP1000 is not set 756# CONFIG_IP1000 is not set
690# CONFIG_IGB is not set 757# CONFIG_IGB is not set
758# CONFIG_IGBVF is not set
691# CONFIG_NS83820 is not set 759# CONFIG_NS83820 is not set
692# CONFIG_HAMACHI is not set 760# CONFIG_HAMACHI is not set
693# CONFIG_YELLOWFIN is not set 761# CONFIG_YELLOWFIN is not set
@@ -701,6 +769,9 @@ CONFIG_NETDEV_1000=y
701CONFIG_MV643XX_ETH=y 769CONFIG_MV643XX_ETH=y
702# CONFIG_QLA3XXX is not set 770# CONFIG_QLA3XXX is not set
703# CONFIG_ATL1 is not set 771# CONFIG_ATL1 is not set
772# CONFIG_ATL1E is not set
773# CONFIG_ATL1C is not set
774# CONFIG_JME is not set
704# CONFIG_NETDEV_10000 is not set 775# CONFIG_NETDEV_10000 is not set
705# CONFIG_TR is not set 776# CONFIG_TR is not set
706 777
@@ -709,7 +780,10 @@ CONFIG_MV643XX_ETH=y
709# 780#
710# CONFIG_WLAN_PRE80211 is not set 781# CONFIG_WLAN_PRE80211 is not set
711# CONFIG_WLAN_80211 is not set 782# CONFIG_WLAN_80211 is not set
712# CONFIG_IWLWIFI_LEDS is not set 783
784#
785# Enable WiMAX (Networking options) to see the WiMAX drivers
786#
713 787
714# 788#
715# USB Network Adapters 789# USB Network Adapters
@@ -786,11 +860,11 @@ CONFIG_SERIAL_CORE=y
786CONFIG_SERIAL_CORE_CONSOLE=y 860CONFIG_SERIAL_CORE_CONSOLE=y
787# CONFIG_SERIAL_JSM is not set 861# CONFIG_SERIAL_JSM is not set
788CONFIG_UNIX98_PTYS=y 862CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
789CONFIG_LEGACY_PTYS=y 864CONFIG_LEGACY_PTYS=y
790CONFIG_LEGACY_PTY_COUNT=16 865CONFIG_LEGACY_PTY_COUNT=16
791# CONFIG_IPMI_HANDLER is not set 866# CONFIG_IPMI_HANDLER is not set
792# CONFIG_HW_RANDOM is not set 867# CONFIG_HW_RANDOM is not set
793# CONFIG_NVRAM is not set
794# CONFIG_R3964 is not set 868# CONFIG_R3964 is not set
795# CONFIG_APPLICOM is not set 869# CONFIG_APPLICOM is not set
796# CONFIG_RAW_DRIVER is not set 870# CONFIG_RAW_DRIVER is not set
@@ -799,44 +873,63 @@ CONFIG_DEVPORT=y
799CONFIG_I2C=y 873CONFIG_I2C=y
800CONFIG_I2C_BOARDINFO=y 874CONFIG_I2C_BOARDINFO=y
801CONFIG_I2C_CHARDEV=y 875CONFIG_I2C_CHARDEV=y
876CONFIG_I2C_HELPER_AUTO=y
802 877
803# 878#
804# I2C Hardware Bus support 879# I2C Hardware Bus support
805# 880#
881
882#
883# PC SMBus host controller drivers
884#
806# CONFIG_I2C_ALI1535 is not set 885# CONFIG_I2C_ALI1535 is not set
807# CONFIG_I2C_ALI1563 is not set 886# CONFIG_I2C_ALI1563 is not set
808# CONFIG_I2C_ALI15X3 is not set 887# CONFIG_I2C_ALI15X3 is not set
809# CONFIG_I2C_AMD756 is not set 888# CONFIG_I2C_AMD756 is not set
810# CONFIG_I2C_AMD8111 is not set 889# CONFIG_I2C_AMD8111 is not set
811# CONFIG_I2C_I801 is not set 890# CONFIG_I2C_I801 is not set
812# CONFIG_I2C_I810 is not set 891# CONFIG_I2C_ISCH is not set
813# CONFIG_I2C_PIIX4 is not set 892# CONFIG_I2C_PIIX4 is not set
814# CONFIG_I2C_NFORCE2 is not set 893# CONFIG_I2C_NFORCE2 is not set
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_PARPORT_LIGHT is not set
817# CONFIG_I2C_PROSAVAGE is not set
818# CONFIG_I2C_SAVAGE4 is not set
819# CONFIG_I2C_SIMTEC is not set
820# CONFIG_I2C_SIS5595 is not set 894# CONFIG_I2C_SIS5595 is not set
821# CONFIG_I2C_SIS630 is not set 895# CONFIG_I2C_SIS630 is not set
822# CONFIG_I2C_SIS96X is not set 896# CONFIG_I2C_SIS96X is not set
823# CONFIG_I2C_TAOS_EVM is not set
824# CONFIG_I2C_STUB is not set
825# CONFIG_I2C_TINY_USB is not set
826# CONFIG_I2C_VIA is not set 897# CONFIG_I2C_VIA is not set
827# CONFIG_I2C_VIAPRO is not set 898# CONFIG_I2C_VIAPRO is not set
899
900#
901# I2C system bus drivers (mostly embedded / system-on-chip)
902#
903# CONFIG_I2C_GPIO is not set
904CONFIG_I2C_MV64XXX=y
905# CONFIG_I2C_OCORES is not set
906# CONFIG_I2C_SIMTEC is not set
907
908#
909# External I2C/SMBus adapter drivers
910#
911# CONFIG_I2C_PARPORT_LIGHT is not set
912# CONFIG_I2C_TAOS_EVM is not set
913# CONFIG_I2C_TINY_USB is not set
914
915#
916# Graphics adapter I2C/DDC channel drivers
917#
828# CONFIG_I2C_VOODOO3 is not set 918# CONFIG_I2C_VOODOO3 is not set
919
920#
921# Other I2C/SMBus bus drivers
922#
829# CONFIG_I2C_PCA_PLATFORM is not set 923# CONFIG_I2C_PCA_PLATFORM is not set
830CONFIG_I2C_MV64XXX=y 924# CONFIG_I2C_STUB is not set
831 925
832# 926#
833# Miscellaneous I2C Chip support 927# Miscellaneous I2C Chip support
834# 928#
835# CONFIG_DS1682 is not set 929# CONFIG_DS1682 is not set
836# CONFIG_EEPROM_LEGACY is not set
837# CONFIG_SENSORS_PCF8574 is not set 930# CONFIG_SENSORS_PCF8574 is not set
838# CONFIG_PCF8575 is not set 931# CONFIG_PCF8575 is not set
839# CONFIG_SENSORS_PCF8591 is not set 932# CONFIG_SENSORS_PCA9539 is not set
840# CONFIG_SENSORS_MAX6875 is not set 933# CONFIG_SENSORS_MAX6875 is not set
841# CONFIG_SENSORS_TSL2550 is not set 934# CONFIG_SENSORS_TSL2550 is not set
842# CONFIG_I2C_DEBUG_CORE is not set 935# CONFIG_I2C_DEBUG_CORE is not set
@@ -848,6 +941,7 @@ CONFIG_I2C_MV64XXX=y
848# CONFIG_POWER_SUPPLY is not set 941# CONFIG_POWER_SUPPLY is not set
849CONFIG_HWMON=y 942CONFIG_HWMON=y
850# CONFIG_HWMON_VID is not set 943# CONFIG_HWMON_VID is not set
944# CONFIG_SENSORS_AD7414 is not set
851# CONFIG_SENSORS_AD7418 is not set 945# CONFIG_SENSORS_AD7418 is not set
852# CONFIG_SENSORS_ADM1021 is not set 946# CONFIG_SENSORS_ADM1021 is not set
853# CONFIG_SENSORS_ADM1025 is not set 947# CONFIG_SENSORS_ADM1025 is not set
@@ -855,14 +949,17 @@ CONFIG_HWMON=y
855# CONFIG_SENSORS_ADM1029 is not set 949# CONFIG_SENSORS_ADM1029 is not set
856# CONFIG_SENSORS_ADM1031 is not set 950# CONFIG_SENSORS_ADM1031 is not set
857# CONFIG_SENSORS_ADM9240 is not set 951# CONFIG_SENSORS_ADM9240 is not set
952# CONFIG_SENSORS_ADT7462 is not set
858# CONFIG_SENSORS_ADT7470 is not set 953# CONFIG_SENSORS_ADT7470 is not set
859# CONFIG_SENSORS_ADT7473 is not set 954# CONFIG_SENSORS_ADT7473 is not set
955# CONFIG_SENSORS_ADT7475 is not set
860# CONFIG_SENSORS_ATXP1 is not set 956# CONFIG_SENSORS_ATXP1 is not set
861# CONFIG_SENSORS_DS1621 is not set 957# CONFIG_SENSORS_DS1621 is not set
862# CONFIG_SENSORS_I5K_AMB is not set 958# CONFIG_SENSORS_I5K_AMB is not set
863# CONFIG_SENSORS_F71805F is not set 959# CONFIG_SENSORS_F71805F is not set
864# CONFIG_SENSORS_F71882FG is not set 960# CONFIG_SENSORS_F71882FG is not set
865# CONFIG_SENSORS_F75375S is not set 961# CONFIG_SENSORS_F75375S is not set
962# CONFIG_SENSORS_G760A is not set
866# CONFIG_SENSORS_GL518SM is not set 963# CONFIG_SENSORS_GL518SM is not set
867# CONFIG_SENSORS_GL520SM is not set 964# CONFIG_SENSORS_GL520SM is not set
868# CONFIG_SENSORS_IT87 is not set 965# CONFIG_SENSORS_IT87 is not set
@@ -877,10 +974,15 @@ CONFIG_HWMON=y
877# CONFIG_SENSORS_LM90 is not set 974# CONFIG_SENSORS_LM90 is not set
878# CONFIG_SENSORS_LM92 is not set 975# CONFIG_SENSORS_LM92 is not set
879# CONFIG_SENSORS_LM93 is not set 976# CONFIG_SENSORS_LM93 is not set
977# CONFIG_SENSORS_LTC4215 is not set
978# CONFIG_SENSORS_LTC4245 is not set
979# CONFIG_SENSORS_LM95241 is not set
880# CONFIG_SENSORS_MAX1619 is not set 980# CONFIG_SENSORS_MAX1619 is not set
881# CONFIG_SENSORS_MAX6650 is not set 981# CONFIG_SENSORS_MAX6650 is not set
882# CONFIG_SENSORS_PC87360 is not set 982# CONFIG_SENSORS_PC87360 is not set
883# CONFIG_SENSORS_PC87427 is not set 983# CONFIG_SENSORS_PC87427 is not set
984# CONFIG_SENSORS_PCF8591 is not set
985# CONFIG_SENSORS_SHT15 is not set
884# CONFIG_SENSORS_SIS5595 is not set 986# CONFIG_SENSORS_SIS5595 is not set
885# CONFIG_SENSORS_DME1737 is not set 987# CONFIG_SENSORS_DME1737 is not set
886# CONFIG_SENSORS_SMSC47M1 is not set 988# CONFIG_SENSORS_SMSC47M1 is not set
@@ -900,20 +1002,28 @@ CONFIG_HWMON=y
900# CONFIG_SENSORS_W83627HF is not set 1002# CONFIG_SENSORS_W83627HF is not set
901# CONFIG_SENSORS_W83627EHF is not set 1003# CONFIG_SENSORS_W83627EHF is not set
902# CONFIG_HWMON_DEBUG_CHIP is not set 1004# CONFIG_HWMON_DEBUG_CHIP is not set
1005# CONFIG_THERMAL is not set
1006# CONFIG_THERMAL_HWMON is not set
903# CONFIG_WATCHDOG is not set 1007# CONFIG_WATCHDOG is not set
1008CONFIG_SSB_POSSIBLE=y
904 1009
905# 1010#
906# Sonics Silicon Backplane 1011# Sonics Silicon Backplane
907# 1012#
908CONFIG_SSB_POSSIBLE=y
909# CONFIG_SSB is not set 1013# CONFIG_SSB is not set
910 1014
911# 1015#
912# Multifunction device drivers 1016# Multifunction device drivers
913# 1017#
1018# CONFIG_MFD_CORE is not set
914# CONFIG_MFD_SM501 is not set 1019# CONFIG_MFD_SM501 is not set
915# CONFIG_MFD_ASIC3 is not set
916# CONFIG_HTC_PASIC3 is not set 1020# CONFIG_HTC_PASIC3 is not set
1021# CONFIG_TWL4030_CORE is not set
1022# CONFIG_MFD_TMIO is not set
1023# CONFIG_PMIC_DA903X is not set
1024# CONFIG_MFD_WM8400 is not set
1025# CONFIG_MFD_WM8350_I2C is not set
1026# CONFIG_MFD_PCF50633 is not set
917 1027
918# 1028#
919# Multimedia devices 1029# Multimedia devices
@@ -944,10 +1054,6 @@ CONFIG_SSB_POSSIBLE=y
944# Display device support 1054# Display device support
945# 1055#
946# CONFIG_DISPLAY_SUPPORT is not set 1056# CONFIG_DISPLAY_SUPPORT is not set
947
948#
949# Sound
950#
951# CONFIG_SOUND is not set 1057# CONFIG_SOUND is not set
952CONFIG_HID_SUPPORT=y 1058CONFIG_HID_SUPPORT=y
953CONFIG_HID=y 1059CONFIG_HID=y
@@ -958,9 +1064,36 @@ CONFIG_HID=y
958# USB Input Devices 1064# USB Input Devices
959# 1065#
960CONFIG_USB_HID=y 1066CONFIG_USB_HID=y
961# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1067# CONFIG_HID_PID is not set
962# CONFIG_HID_FF is not set
963# CONFIG_USB_HIDDEV is not set 1068# CONFIG_USB_HIDDEV is not set
1069
1070#
1071# Special HID drivers
1072#
1073# CONFIG_HID_A4TECH is not set
1074# CONFIG_HID_APPLE is not set
1075# CONFIG_HID_BELKIN is not set
1076# CONFIG_HID_CHERRY is not set
1077# CONFIG_HID_CHICONY is not set
1078# CONFIG_HID_CYPRESS is not set
1079# CONFIG_DRAGONRISE_FF is not set
1080# CONFIG_HID_EZKEY is not set
1081# CONFIG_HID_KYE is not set
1082# CONFIG_HID_GYRATION is not set
1083# CONFIG_HID_KENSINGTON is not set
1084# CONFIG_HID_LOGITECH is not set
1085# CONFIG_HID_MICROSOFT is not set
1086# CONFIG_HID_MONTEREY is not set
1087# CONFIG_HID_NTRIG is not set
1088# CONFIG_HID_PANTHERLORD is not set
1089# CONFIG_HID_PETALYNX is not set
1090# CONFIG_HID_SAMSUNG is not set
1091# CONFIG_HID_SONY is not set
1092# CONFIG_HID_SUNPLUS is not set
1093# CONFIG_GREENASIA_FF is not set
1094# CONFIG_HID_TOPSEED is not set
1095# CONFIG_THRUSTMASTER_FF is not set
1096# CONFIG_ZEROPLUS_FF is not set
964CONFIG_USB_SUPPORT=y 1097CONFIG_USB_SUPPORT=y
965CONFIG_USB_ARCH_HAS_HCD=y 1098CONFIG_USB_ARCH_HAS_HCD=y
966CONFIG_USB_ARCH_HAS_OHCI=y 1099CONFIG_USB_ARCH_HAS_OHCI=y
@@ -978,6 +1111,9 @@ CONFIG_USB_DEVICE_CLASS=y
978# CONFIG_USB_OTG is not set 1111# CONFIG_USB_OTG is not set
979# CONFIG_USB_OTG_WHITELIST is not set 1112# CONFIG_USB_OTG_WHITELIST is not set
980# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1113# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1114# CONFIG_USB_MON is not set
1115# CONFIG_USB_WUSB is not set
1116# CONFIG_USB_WUSB_CBAF is not set
981 1117
982# 1118#
983# USB Host Controller Drivers 1119# USB Host Controller Drivers
@@ -986,12 +1122,15 @@ CONFIG_USB_DEVICE_CLASS=y
986CONFIG_USB_EHCI_HCD=y 1122CONFIG_USB_EHCI_HCD=y
987CONFIG_USB_EHCI_ROOT_HUB_TT=y 1123CONFIG_USB_EHCI_ROOT_HUB_TT=y
988CONFIG_USB_EHCI_TT_NEWSCHED=y 1124CONFIG_USB_EHCI_TT_NEWSCHED=y
1125# CONFIG_USB_OXU210HP_HCD is not set
989# CONFIG_USB_ISP116X_HCD is not set 1126# CONFIG_USB_ISP116X_HCD is not set
990# CONFIG_USB_ISP1760_HCD is not set 1127# CONFIG_USB_ISP1760_HCD is not set
991# CONFIG_USB_OHCI_HCD is not set 1128# CONFIG_USB_OHCI_HCD is not set
992# CONFIG_USB_UHCI_HCD is not set 1129# CONFIG_USB_UHCI_HCD is not set
993# CONFIG_USB_SL811_HCD is not set 1130# CONFIG_USB_SL811_HCD is not set
994# 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
995 1134
996# 1135#
997# USB Device Class drivers 1136# USB Device Class drivers
@@ -999,20 +1138,20 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y
999# CONFIG_USB_ACM is not set 1138# CONFIG_USB_ACM is not set
1000CONFIG_USB_PRINTER=y 1139CONFIG_USB_PRINTER=y
1001# CONFIG_USB_WDM is not set 1140# CONFIG_USB_WDM is not set
1141# CONFIG_USB_TMC is not set
1002 1142
1003# 1143#
1004# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1144# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1005# 1145#
1006 1146
1007# 1147#
1008# may also be needed; see USB_STORAGE Help for more information 1148# also be needed; see USB_STORAGE Help for more info
1009# 1149#
1010CONFIG_USB_STORAGE=y 1150CONFIG_USB_STORAGE=y
1011# CONFIG_USB_STORAGE_DEBUG is not set 1151# CONFIG_USB_STORAGE_DEBUG is not set
1012CONFIG_USB_STORAGE_DATAFAB=y 1152CONFIG_USB_STORAGE_DATAFAB=y
1013CONFIG_USB_STORAGE_FREECOM=y 1153CONFIG_USB_STORAGE_FREECOM=y
1014# CONFIG_USB_STORAGE_ISD200 is not set 1154# CONFIG_USB_STORAGE_ISD200 is not set
1015CONFIG_USB_STORAGE_DPCM=y
1016# CONFIG_USB_STORAGE_USBAT is not set 1155# CONFIG_USB_STORAGE_USBAT is not set
1017CONFIG_USB_STORAGE_SDDR09=y 1156CONFIG_USB_STORAGE_SDDR09=y
1018CONFIG_USB_STORAGE_SDDR55=y 1157CONFIG_USB_STORAGE_SDDR55=y
@@ -1028,7 +1167,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1028# 1167#
1029# CONFIG_USB_MDC800 is not set 1168# CONFIG_USB_MDC800 is not set
1030# CONFIG_USB_MICROTEK is not set 1169# CONFIG_USB_MICROTEK is not set
1031# CONFIG_USB_MON is not set
1032 1170
1033# 1171#
1034# USB port drivers 1172# USB port drivers
@@ -1041,7 +1179,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1041# CONFIG_USB_EMI62 is not set 1179# CONFIG_USB_EMI62 is not set
1042# CONFIG_USB_EMI26 is not set 1180# CONFIG_USB_EMI26 is not set
1043# CONFIG_USB_ADUTUX is not set 1181# CONFIG_USB_ADUTUX is not set
1044# CONFIG_USB_AUERSWALD is not set 1182# CONFIG_USB_SEVSEG is not set
1045# CONFIG_USB_RIO500 is not set 1183# CONFIG_USB_RIO500 is not set
1046# CONFIG_USB_LEGOTOWER is not set 1184# CONFIG_USB_LEGOTOWER is not set
1047# CONFIG_USB_LCD is not set 1185# CONFIG_USB_LCD is not set
@@ -1049,7 +1187,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1049# CONFIG_USB_LED is not set 1187# CONFIG_USB_LED is not set
1050# CONFIG_USB_CYPRESS_CY7C63 is not set 1188# CONFIG_USB_CYPRESS_CY7C63 is not set
1051# CONFIG_USB_CYTHERM is not set 1189# CONFIG_USB_CYTHERM is not set
1052# CONFIG_USB_PHIDGET is not set
1053# CONFIG_USB_IDMOUSE is not set 1190# CONFIG_USB_IDMOUSE is not set
1054# CONFIG_USB_FTDI_ELAN is not set 1191# CONFIG_USB_FTDI_ELAN is not set
1055# CONFIG_USB_APPLEDISPLAY is not set 1192# CONFIG_USB_APPLEDISPLAY is not set
@@ -1059,14 +1196,29 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1059# CONFIG_USB_IOWARRIOR is not set 1196# CONFIG_USB_IOWARRIOR is not set
1060# CONFIG_USB_TEST is not set 1197# CONFIG_USB_TEST is not set
1061# CONFIG_USB_ISIGHTFW is not set 1198# CONFIG_USB_ISIGHTFW is not set
1199# CONFIG_USB_VST is not set
1062# CONFIG_USB_GADGET is not set 1200# CONFIG_USB_GADGET is not set
1201
1202#
1203# OTG and related infrastructure
1204#
1205# CONFIG_USB_GPIO_VBUS is not set
1206# CONFIG_NOP_USB_XCEIV is not set
1207# CONFIG_UWB is not set
1063# CONFIG_MMC is not set 1208# CONFIG_MMC is not set
1209# CONFIG_MEMSTICK is not set
1210# CONFIG_ACCESSIBILITY is not set
1064CONFIG_NEW_LEDS=y 1211CONFIG_NEW_LEDS=y
1065CONFIG_LEDS_CLASS=y 1212CONFIG_LEDS_CLASS=y
1066 1213
1067# 1214#
1068# LED drivers 1215# LED drivers
1069# 1216#
1217# CONFIG_LEDS_PCA9532 is not set
1218# CONFIG_LEDS_GPIO is not set
1219# CONFIG_LEDS_LP5521 is not set
1220# CONFIG_LEDS_PCA955X is not set
1221# CONFIG_LEDS_BD2802 is not set
1070 1222
1071# 1223#
1072# LED Triggers 1224# LED Triggers
@@ -1074,7 +1226,12 @@ CONFIG_LEDS_CLASS=y
1074CONFIG_LEDS_TRIGGERS=y 1226CONFIG_LEDS_TRIGGERS=y
1075CONFIG_LEDS_TRIGGER_TIMER=y 1227CONFIG_LEDS_TRIGGER_TIMER=y
1076CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1228CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1229# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1077# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1230# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1231
1232#
1233# iptables trigger is under Netfilter config (LED target)
1234#
1078CONFIG_RTC_LIB=y 1235CONFIG_RTC_LIB=y
1079CONFIG_RTC_CLASS=y 1236CONFIG_RTC_CLASS=y
1080CONFIG_RTC_HCTOSYS=y 1237CONFIG_RTC_HCTOSYS=y
@@ -1105,6 +1262,8 @@ CONFIG_RTC_DRV_RS5C372=y
1105CONFIG_RTC_DRV_M41T80=y 1262CONFIG_RTC_DRV_M41T80=y
1106# CONFIG_RTC_DRV_M41T80_WDT is not set 1263# CONFIG_RTC_DRV_M41T80_WDT is not set
1107# CONFIG_RTC_DRV_S35390A is not set 1264# CONFIG_RTC_DRV_S35390A is not set
1265# CONFIG_RTC_DRV_FM3130 is not set
1266# CONFIG_RTC_DRV_RX8581 is not set
1108 1267
1109# 1268#
1110# SPI RTC drivers 1269# SPI RTC drivers
@@ -1114,18 +1273,25 @@ CONFIG_RTC_DRV_M41T80=y
1114# Platform RTC drivers 1273# Platform RTC drivers
1115# 1274#
1116# CONFIG_RTC_DRV_CMOS is not set 1275# CONFIG_RTC_DRV_CMOS is not set
1276# CONFIG_RTC_DRV_DS1286 is not set
1117# CONFIG_RTC_DRV_DS1511 is not set 1277# CONFIG_RTC_DRV_DS1511 is not set
1118# CONFIG_RTC_DRV_DS1553 is not set 1278# CONFIG_RTC_DRV_DS1553 is not set
1119# CONFIG_RTC_DRV_DS1742 is not set 1279# CONFIG_RTC_DRV_DS1742 is not set
1120# CONFIG_RTC_DRV_STK17TA8 is not set 1280# CONFIG_RTC_DRV_STK17TA8 is not set
1121# CONFIG_RTC_DRV_M48T86 is not set 1281# CONFIG_RTC_DRV_M48T86 is not set
1282# CONFIG_RTC_DRV_M48T35 is not set
1122# CONFIG_RTC_DRV_M48T59 is not set 1283# CONFIG_RTC_DRV_M48T59 is not set
1284# CONFIG_RTC_DRV_BQ4802 is not set
1123# CONFIG_RTC_DRV_V3020 is not set 1285# CONFIG_RTC_DRV_V3020 is not set
1124 1286
1125# 1287#
1126# on-CPU RTC drivers 1288# on-CPU RTC drivers
1127# 1289#
1290# CONFIG_DMADEVICES is not set
1291# CONFIG_AUXDISPLAY is not set
1292# CONFIG_REGULATOR is not set
1128# CONFIG_UIO is not set 1293# CONFIG_UIO is not set
1294# CONFIG_STAGING is not set
1129 1295
1130# 1296#
1131# File systems 1297# File systems
@@ -1134,14 +1300,25 @@ CONFIG_EXT2_FS=y
1134# CONFIG_EXT2_FS_XATTR is not set 1300# CONFIG_EXT2_FS_XATTR is not set
1135# CONFIG_EXT2_FS_XIP is not set 1301# CONFIG_EXT2_FS_XIP is not set
1136CONFIG_EXT3_FS=y 1302CONFIG_EXT3_FS=y
1303# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1137# CONFIG_EXT3_FS_XATTR is not set 1304# CONFIG_EXT3_FS_XATTR is not set
1138# CONFIG_EXT4DEV_FS is not set 1305CONFIG_EXT4_FS=m
1306# CONFIG_EXT4DEV_COMPAT is not set
1307CONFIG_EXT4_FS_XATTR=y
1308# CONFIG_EXT4_FS_POSIX_ACL is not set
1309# CONFIG_EXT4_FS_SECURITY is not set
1139CONFIG_JBD=y 1310CONFIG_JBD=y
1311# CONFIG_JBD_DEBUG is not set
1312CONFIG_JBD2=m
1313# CONFIG_JBD2_DEBUG is not set
1314CONFIG_FS_MBCACHE=m
1140# CONFIG_REISERFS_FS is not set 1315# CONFIG_REISERFS_FS is not set
1141# CONFIG_JFS_FS is not set 1316# CONFIG_JFS_FS is not set
1142# CONFIG_FS_POSIX_ACL is not set 1317# CONFIG_FS_POSIX_ACL is not set
1318CONFIG_FILE_LOCKING=y
1143# CONFIG_XFS_FS is not set 1319# CONFIG_XFS_FS is not set
1144# CONFIG_OCFS2_FS is not set 1320# CONFIG_OCFS2_FS is not set
1321# CONFIG_BTRFS_FS is not set
1145CONFIG_DNOTIFY=y 1322CONFIG_DNOTIFY=y
1146CONFIG_INOTIFY=y 1323CONFIG_INOTIFY=y
1147CONFIG_INOTIFY_USER=y 1324CONFIG_INOTIFY_USER=y
@@ -1151,6 +1328,11 @@ CONFIG_INOTIFY_USER=y
1151# CONFIG_FUSE_FS is not set 1328# CONFIG_FUSE_FS is not set
1152 1329
1153# 1330#
1331# Caches
1332#
1333# CONFIG_FSCACHE is not set
1334
1335#
1154# CD-ROM/DVD Filesystems 1336# CD-ROM/DVD Filesystems
1155# 1337#
1156CONFIG_ISO9660_FS=m 1338CONFIG_ISO9660_FS=m
@@ -1174,15 +1356,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1174# 1356#
1175CONFIG_PROC_FS=y 1357CONFIG_PROC_FS=y
1176CONFIG_PROC_SYSCTL=y 1358CONFIG_PROC_SYSCTL=y
1359CONFIG_PROC_PAGE_MONITOR=y
1177CONFIG_SYSFS=y 1360CONFIG_SYSFS=y
1178CONFIG_TMPFS=y 1361CONFIG_TMPFS=y
1179# CONFIG_TMPFS_POSIX_ACL is not set 1362# CONFIG_TMPFS_POSIX_ACL is not set
1180# CONFIG_HUGETLB_PAGE is not set 1363# CONFIG_HUGETLB_PAGE is not set
1181# CONFIG_CONFIGFS_FS is not set 1364# CONFIG_CONFIGFS_FS is not set
1182 1365CONFIG_MISC_FILESYSTEMS=y
1183#
1184# Miscellaneous filesystems
1185#
1186# CONFIG_ADFS_FS is not set 1366# CONFIG_ADFS_FS is not set
1187# CONFIG_AFFS_FS is not set 1367# CONFIG_AFFS_FS is not set
1188# CONFIG_HFS_FS is not set 1368# CONFIG_HFS_FS is not set
@@ -1202,25 +1382,27 @@ CONFIG_JFFS2_ZLIB=y
1202CONFIG_JFFS2_RTIME=y 1382CONFIG_JFFS2_RTIME=y
1203# CONFIG_JFFS2_RUBIN is not set 1383# CONFIG_JFFS2_RUBIN is not set
1204CONFIG_CRAMFS=y 1384CONFIG_CRAMFS=y
1385# CONFIG_SQUASHFS is not set
1205# CONFIG_VXFS_FS is not set 1386# CONFIG_VXFS_FS is not set
1206# CONFIG_MINIX_FS is not set 1387# CONFIG_MINIX_FS is not set
1388# CONFIG_OMFS_FS is not set
1207# CONFIG_HPFS_FS is not set 1389# CONFIG_HPFS_FS is not set
1208# CONFIG_QNX4FS_FS is not set 1390# CONFIG_QNX4FS_FS is not set
1209# CONFIG_ROMFS_FS is not set 1391# CONFIG_ROMFS_FS is not set
1210# CONFIG_SYSV_FS is not set 1392# CONFIG_SYSV_FS is not set
1211# CONFIG_UFS_FS is not set 1393# CONFIG_UFS_FS is not set
1394# CONFIG_NILFS2_FS is not set
1212CONFIG_NETWORK_FILESYSTEMS=y 1395CONFIG_NETWORK_FILESYSTEMS=y
1213CONFIG_NFS_FS=y 1396CONFIG_NFS_FS=y
1214CONFIG_NFS_V3=y 1397CONFIG_NFS_V3=y
1215# CONFIG_NFS_V3_ACL is not set 1398# CONFIG_NFS_V3_ACL is not set
1216# CONFIG_NFS_V4 is not set 1399# CONFIG_NFS_V4 is not set
1217# CONFIG_NFSD is not set
1218CONFIG_ROOT_NFS=y 1400CONFIG_ROOT_NFS=y
1401# CONFIG_NFSD is not set
1219CONFIG_LOCKD=y 1402CONFIG_LOCKD=y
1220CONFIG_LOCKD_V4=y 1403CONFIG_LOCKD_V4=y
1221CONFIG_NFS_COMMON=y 1404CONFIG_NFS_COMMON=y
1222CONFIG_SUNRPC=y 1405CONFIG_SUNRPC=y
1223# CONFIG_SUNRPC_BIND34 is not set
1224# CONFIG_RPCSEC_GSS_KRB5 is not set 1406# CONFIG_RPCSEC_GSS_KRB5 is not set
1225# CONFIG_RPCSEC_GSS_SPKM3 is not set 1407# CONFIG_RPCSEC_GSS_SPKM3 is not set
1226# CONFIG_SMB_FS is not set 1408# CONFIG_SMB_FS is not set
@@ -1301,11 +1483,16 @@ CONFIG_ENABLE_MUST_CHECK=y
1301CONFIG_FRAME_WARN=1024 1483CONFIG_FRAME_WARN=1024
1302CONFIG_MAGIC_SYSRQ=y 1484CONFIG_MAGIC_SYSRQ=y
1303# CONFIG_UNUSED_SYMBOLS is not set 1485# CONFIG_UNUSED_SYMBOLS is not set
1304# CONFIG_DEBUG_FS is not set 1486CONFIG_DEBUG_FS=y
1305# CONFIG_HEADERS_CHECK is not set 1487# CONFIG_HEADERS_CHECK is not set
1306CONFIG_DEBUG_KERNEL=y 1488CONFIG_DEBUG_KERNEL=y
1307# CONFIG_DEBUG_SHIRQ is not set 1489# CONFIG_DEBUG_SHIRQ is not set
1308CONFIG_DETECT_SOFTLOCKUP=y 1490CONFIG_DETECT_SOFTLOCKUP=y
1491# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1492CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1493CONFIG_DETECT_HUNG_TASK=y
1494# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1495CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1309CONFIG_SCHED_DEBUG=y 1496CONFIG_SCHED_DEBUG=y
1310CONFIG_SCHEDSTATS=y 1497CONFIG_SCHEDSTATS=y
1311# CONFIG_TIMER_STATS is not set 1498# CONFIG_TIMER_STATS is not set
@@ -1320,22 +1507,55 @@ CONFIG_DEBUG_PREEMPT=y
1320# CONFIG_LOCK_STAT is not set 1507# CONFIG_LOCK_STAT is not set
1321# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1508# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1322# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1509# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1510CONFIG_STACKTRACE=y
1323# CONFIG_DEBUG_KOBJECT is not set 1511# CONFIG_DEBUG_KOBJECT is not set
1512# CONFIG_DEBUG_HIGHMEM is not set
1324# CONFIG_DEBUG_BUGVERBOSE is not set 1513# CONFIG_DEBUG_BUGVERBOSE is not set
1325CONFIG_DEBUG_INFO=y 1514CONFIG_DEBUG_INFO=y
1326# CONFIG_DEBUG_VM is not set 1515# CONFIG_DEBUG_VM is not set
1327# CONFIG_DEBUG_WRITECOUNT is not set 1516# CONFIG_DEBUG_WRITECOUNT is not set
1517# CONFIG_DEBUG_MEMORY_INIT is not set
1328# CONFIG_DEBUG_LIST is not set 1518# CONFIG_DEBUG_LIST is not set
1329# CONFIG_DEBUG_SG is not set 1519# CONFIG_DEBUG_SG is not set
1330CONFIG_FRAME_POINTER=y 1520# CONFIG_DEBUG_NOTIFIERS is not set
1331# CONFIG_BOOT_PRINTK_DELAY is not set 1521# CONFIG_BOOT_PRINTK_DELAY is not set
1332# CONFIG_RCU_TORTURE_TEST is not set 1522# CONFIG_RCU_TORTURE_TEST is not set
1523# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1333# CONFIG_KPROBES_SANITY_TEST is not set 1524# CONFIG_KPROBES_SANITY_TEST is not set
1334# CONFIG_BACKTRACE_SELF_TEST is not set 1525# CONFIG_BACKTRACE_SELF_TEST is not set
1526# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1335# CONFIG_LKDTM is not set 1527# CONFIG_LKDTM is not set
1336# CONFIG_FAULT_INJECTION is not set 1528# CONFIG_FAULT_INJECTION is not set
1337# CONFIG_LATENCYTOP is not set 1529# CONFIG_LATENCYTOP is not set
1530CONFIG_SYSCTL_SYSCALL_CHECK=y
1531# CONFIG_PAGE_POISONING is not set
1532CONFIG_NOP_TRACER=y
1533CONFIG_HAVE_FUNCTION_TRACER=y
1534CONFIG_RING_BUFFER=y
1535CONFIG_TRACING=y
1536CONFIG_TRACING_SUPPORT=y
1537
1538#
1539# Tracers
1540#
1541# CONFIG_FUNCTION_TRACER is not set
1542# CONFIG_IRQSOFF_TRACER is not set
1543# CONFIG_PREEMPT_TRACER is not set
1544# CONFIG_SCHED_TRACER is not set
1545# CONFIG_CONTEXT_SWITCH_TRACER is not set
1546# CONFIG_EVENT_TRACER is not set
1547# CONFIG_BOOT_TRACER is not set
1548# CONFIG_TRACE_BRANCH_PROFILING is not set
1549# CONFIG_STACK_TRACER is not set
1550# CONFIG_KMEMTRACE is not set
1551# CONFIG_WORKQUEUE_TRACER is not set
1552# CONFIG_BLK_DEV_IO_TRACE is not set
1553# CONFIG_FTRACE_STARTUP_TEST is not set
1554# CONFIG_DYNAMIC_DEBUG is not set
1338# CONFIG_SAMPLES is not set 1555# CONFIG_SAMPLES is not set
1556CONFIG_HAVE_ARCH_KGDB=y
1557# CONFIG_KGDB is not set
1558CONFIG_ARM_UNWIND=y
1339CONFIG_DEBUG_USER=y 1559CONFIG_DEBUG_USER=y
1340CONFIG_DEBUG_ERRORS=y 1560CONFIG_DEBUG_ERRORS=y
1341# CONFIG_DEBUG_STACK_USAGE is not set 1561# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1347,17 +1567,27 @@ CONFIG_DEBUG_LL=y
1347# 1567#
1348# CONFIG_KEYS is not set 1568# CONFIG_KEYS is not set
1349# CONFIG_SECURITY is not set 1569# CONFIG_SECURITY is not set
1570# CONFIG_SECURITYFS is not set
1350# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1571# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1351CONFIG_CRYPTO=y 1572CONFIG_CRYPTO=y
1352 1573
1353# 1574#
1354# Crypto core or helper 1575# Crypto core or helper
1355# 1576#
1577# CONFIG_CRYPTO_FIPS is not set
1356CONFIG_CRYPTO_ALGAPI=m 1578CONFIG_CRYPTO_ALGAPI=m
1579CONFIG_CRYPTO_ALGAPI2=m
1580CONFIG_CRYPTO_AEAD2=m
1357CONFIG_CRYPTO_BLKCIPHER=m 1581CONFIG_CRYPTO_BLKCIPHER=m
1582CONFIG_CRYPTO_BLKCIPHER2=m
1583CONFIG_CRYPTO_HASH2=m
1584CONFIG_CRYPTO_RNG2=m
1585CONFIG_CRYPTO_PCOMP=m
1358CONFIG_CRYPTO_MANAGER=m 1586CONFIG_CRYPTO_MANAGER=m
1587CONFIG_CRYPTO_MANAGER2=m
1359# CONFIG_CRYPTO_GF128MUL is not set 1588# CONFIG_CRYPTO_GF128MUL is not set
1360# CONFIG_CRYPTO_NULL is not set 1589# CONFIG_CRYPTO_NULL is not set
1590CONFIG_CRYPTO_WORKQUEUE=m
1361# CONFIG_CRYPTO_CRYPTD is not set 1591# CONFIG_CRYPTO_CRYPTD is not set
1362# CONFIG_CRYPTO_AUTHENC is not set 1592# CONFIG_CRYPTO_AUTHENC is not set
1363# CONFIG_CRYPTO_TEST is not set 1593# CONFIG_CRYPTO_TEST is not set
@@ -1393,6 +1623,10 @@ CONFIG_CRYPTO_PCBC=m
1393# CONFIG_CRYPTO_MD4 is not set 1623# CONFIG_CRYPTO_MD4 is not set
1394# CONFIG_CRYPTO_MD5 is not set 1624# CONFIG_CRYPTO_MD5 is not set
1395# CONFIG_CRYPTO_MICHAEL_MIC is not set 1625# CONFIG_CRYPTO_MICHAEL_MIC is not set
1626# CONFIG_CRYPTO_RMD128 is not set
1627# CONFIG_CRYPTO_RMD160 is not set
1628# CONFIG_CRYPTO_RMD256 is not set
1629# CONFIG_CRYPTO_RMD320 is not set
1396# CONFIG_CRYPTO_SHA1 is not set 1630# CONFIG_CRYPTO_SHA1 is not set
1397# CONFIG_CRYPTO_SHA256 is not set 1631# CONFIG_CRYPTO_SHA256 is not set
1398# CONFIG_CRYPTO_SHA512 is not set 1632# CONFIG_CRYPTO_SHA512 is not set
@@ -1422,25 +1656,32 @@ CONFIG_CRYPTO_PCBC=m
1422# Compression 1656# Compression
1423# 1657#
1424# CONFIG_CRYPTO_DEFLATE is not set 1658# CONFIG_CRYPTO_DEFLATE is not set
1659# CONFIG_CRYPTO_ZLIB is not set
1425# CONFIG_CRYPTO_LZO is not set 1660# CONFIG_CRYPTO_LZO is not set
1661
1662#
1663# Random Number Generation
1664#
1665# CONFIG_CRYPTO_ANSI_CPRNG is not set
1426CONFIG_CRYPTO_HW=y 1666CONFIG_CRYPTO_HW=y
1427# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1667# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1668CONFIG_BINARY_PRINTF=y
1428 1669
1429# 1670#
1430# Library routines 1671# Library routines
1431# 1672#
1432CONFIG_BITREVERSE=y 1673CONFIG_BITREVERSE=y
1433# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1674CONFIG_GENERIC_FIND_LAST_BIT=y
1434# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1435# CONFIG_CRC_CCITT is not set 1675# CONFIG_CRC_CCITT is not set
1436# CONFIG_CRC16 is not set 1676CONFIG_CRC16=m
1677# CONFIG_CRC_T10DIF is not set
1437CONFIG_CRC_ITU_T=m 1678CONFIG_CRC_ITU_T=m
1438CONFIG_CRC32=y 1679CONFIG_CRC32=y
1439# CONFIG_CRC7 is not set 1680# CONFIG_CRC7 is not set
1440# CONFIG_LIBCRC32C is not set 1681# CONFIG_LIBCRC32C is not set
1441CONFIG_ZLIB_INFLATE=y 1682CONFIG_ZLIB_INFLATE=y
1442CONFIG_ZLIB_DEFLATE=y 1683CONFIG_ZLIB_DEFLATE=y
1443CONFIG_PLIST=y
1444CONFIG_HAS_IOMEM=y 1684CONFIG_HAS_IOMEM=y
1445CONFIG_HAS_IOPORT=y 1685CONFIG_HAS_IOPORT=y
1446CONFIG_HAS_DMA=y 1686CONFIG_HAS_DMA=y
1687CONFIG_NLATTR=y
diff --git a/arch/arm/configs/mx31ads_defconfig b/arch/arm/configs/mx1_defconfig
index e05271753e15..0200d67e30ba 100644
--- a/arch/arm/configs/mx31ads_defconfig
+++ b/arch/arm/configs/mx1_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.26-rc6 3# Linux kernel version: 2.6.30-rc1
4# Fri Jun 20 16:21:11 2008 4# Wed Apr 8 11:11:33 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -21,9 +22,8 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y 25CONFIG_ARCH_MTD_XIP=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000 27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 29
@@ -43,15 +43,24 @@ CONFIG_SYSVIPC_SYSCTL=y
43# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_CLASSIC_RCU=y
51# CONFIG_TREE_RCU is not set
52# CONFIG_PREEMPT_RCU is not set
53# CONFIG_TREE_RCU_TRACE is not set
54# CONFIG_PREEMPT_RCU_TRACE is not set
46CONFIG_IKCONFIG=y 55CONFIG_IKCONFIG=y
47CONFIG_IKCONFIG_PROC=y 56CONFIG_IKCONFIG_PROC=y
48CONFIG_LOG_BUF_SHIFT=14 57CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_CGROUPS is not set
50CONFIG_GROUP_SCHED=y 58CONFIG_GROUP_SCHED=y
51CONFIG_FAIR_GROUP_SCHED=y 59CONFIG_FAIR_GROUP_SCHED=y
52# CONFIG_RT_GROUP_SCHED is not set 60# CONFIG_RT_GROUP_SCHED is not set
53CONFIG_USER_SCHED=y 61CONFIG_USER_SCHED=y
54# CONFIG_CGROUP_SCHED is not set 62# CONFIG_CGROUP_SCHED is not set
63# CONFIG_CGROUPS is not set
55CONFIG_SYSFS_DEPRECATED=y 64CONFIG_SYSFS_DEPRECATED=y
56CONFIG_SYSFS_DEPRECATED_V2=y 65CONFIG_SYSFS_DEPRECATED_V2=y
57# CONFIG_RELAY is not set 66# CONFIG_RELAY is not set
@@ -59,26 +68,26 @@ CONFIG_SYSFS_DEPRECATED_V2=y
59# CONFIG_BLK_DEV_INITRD is not set 68# CONFIG_BLK_DEV_INITRD is not set
60CONFIG_CC_OPTIMIZE_FOR_SIZE=y 69CONFIG_CC_OPTIMIZE_FOR_SIZE=y
61CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
71CONFIG_ANON_INODES=y
62CONFIG_EMBEDDED=y 72CONFIG_EMBEDDED=y
63CONFIG_UID16=y 73CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y 74CONFIG_SYSCTL_SYSCALL=y
65CONFIG_SYSCTL_SYSCALL_CHECK=y
66CONFIG_KALLSYMS=y 75CONFIG_KALLSYMS=y
67# CONFIG_KALLSYMS_EXTRA_PASS is not set 76# CONFIG_KALLSYMS_EXTRA_PASS is not set
68CONFIG_HOTPLUG=y 77CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 78CONFIG_PRINTK=y
70CONFIG_BUG=y 79CONFIG_BUG=y
71CONFIG_ELF_CORE=y 80CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
73CONFIG_BASE_FULL=y 81CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 82CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y
76CONFIG_EPOLL=y 83CONFIG_EPOLL=y
77CONFIG_SIGNALFD=y 84CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y 85CONFIG_TIMERFD=y
79CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
80CONFIG_SHMEM=y 87CONFIG_SHMEM=y
88CONFIG_AIO=y
81CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
90CONFIG_COMPAT_BRK=y
82CONFIG_SLAB=y 91CONFIG_SLAB=y
83# CONFIG_SLUB is not set 92# CONFIG_SLUB is not set
84# CONFIG_SLOB is not set 93# CONFIG_SLOB is not set
@@ -88,11 +97,10 @@ CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set 97# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y 98CONFIG_HAVE_KPROBES=y
90CONFIG_HAVE_KRETPROBES=y 99CONFIG_HAVE_KRETPROBES=y
91# CONFIG_HAVE_DMA_ATTRS is not set 100# CONFIG_SLOW_WORK is not set
92CONFIG_PROC_PAGE_MONITOR=y 101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 105CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,12 +108,10 @@ CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y 108CONFIG_MODULE_FORCE_UNLOAD=y
101CONFIG_MODVERSIONS=y 109CONFIG_MODVERSIONS=y
102# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 111CONFIG_BLOCK=y
105# CONFIG_LBD is not set 112# CONFIG_LBD 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 113# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set
109 115
110# 116#
111# IO Schedulers 117# IO Schedulers
@@ -119,7 +125,7 @@ CONFIG_IOSCHED_CFQ=y
119CONFIG_DEFAULT_CFQ=y 125CONFIG_DEFAULT_CFQ=y
120# CONFIG_DEFAULT_NOOP is not set 126# CONFIG_DEFAULT_NOOP is not set
121CONFIG_DEFAULT_IOSCHED="cfq" 127CONFIG_DEFAULT_IOSCHED="cfq"
122CONFIG_CLASSIC_RCU=y 128CONFIG_FREEZER=y
123 129
124# 130#
125# System Type 131# System Type
@@ -129,11 +135,10 @@ CONFIG_CLASSIC_RCU=y
129# CONFIG_ARCH_REALVIEW is not set 135# CONFIG_ARCH_REALVIEW is not set
130# CONFIG_ARCH_VERSATILE is not set 136# CONFIG_ARCH_VERSATILE is not set
131# CONFIG_ARCH_AT91 is not set 137# CONFIG_ARCH_AT91 is not set
132# CONFIG_ARCH_CLPS7500 is not set
133# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
134# CONFIG_ARCH_CO285 is not set
135# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
136# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
141# CONFIG_ARCH_GEMINI is not set
137# CONFIG_ARCH_FOOTBRIDGE is not set 142# CONFIG_ARCH_FOOTBRIDGE is not set
138# CONFIG_ARCH_NETX is not set 143# CONFIG_ARCH_NETX is not set
139# CONFIG_ARCH_H720X is not set 144# CONFIG_ARCH_H720X is not set
@@ -145,55 +150,55 @@ CONFIG_CLASSIC_RCU=y
145# CONFIG_ARCH_IXP2000 is not set 150# CONFIG_ARCH_IXP2000 is not set
146# CONFIG_ARCH_IXP4XX is not set 151# CONFIG_ARCH_IXP4XX is not set
147# CONFIG_ARCH_L7200 is not set 152# CONFIG_ARCH_L7200 is not set
153# CONFIG_ARCH_KIRKWOOD is not set
148# CONFIG_ARCH_KS8695 is not set 154# CONFIG_ARCH_KS8695 is not set
149# CONFIG_ARCH_NS9XXX is not set 155# CONFIG_ARCH_NS9XXX is not set
156# CONFIG_ARCH_LOKI is not set
157# CONFIG_ARCH_MV78XX0 is not set
150CONFIG_ARCH_MXC=y 158CONFIG_ARCH_MXC=y
151# CONFIG_ARCH_ORION5X is not set 159# CONFIG_ARCH_ORION5X is not set
152# CONFIG_ARCH_PNX4008 is not set 160# CONFIG_ARCH_PNX4008 is not set
153# CONFIG_ARCH_PXA is not set 161# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MMP is not set
154# CONFIG_ARCH_RPC is not set 163# CONFIG_ARCH_RPC is not set
155# CONFIG_ARCH_SA1100 is not set 164# CONFIG_ARCH_SA1100 is not set
156# CONFIG_ARCH_S3C2410 is not set 165# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set
157# CONFIG_ARCH_SHARK is not set 167# CONFIG_ARCH_SHARK is not set
158# CONFIG_ARCH_LH7A40X is not set 168# CONFIG_ARCH_LH7A40X is not set
159# CONFIG_ARCH_DAVINCI is not set 169# CONFIG_ARCH_DAVINCI is not set
160# CONFIG_ARCH_OMAP is not set 170# CONFIG_ARCH_OMAP is not set
161# CONFIG_ARCH_MSM7X00A is not set 171# CONFIG_ARCH_MSM is not set
162 172# CONFIG_ARCH_W90X900 is not set
163# 173CONFIG_ARCH_MX1ADS=y
164# Boot options
165#
166
167#
168# Power management
169#
170 174
171# 175#
172# Freescale MXC Implementations 176# Freescale MXC Implementations
173# 177#
178CONFIG_ARCH_MX1=y
174# CONFIG_ARCH_MX2 is not set 179# CONFIG_ARCH_MX2 is not set
175CONFIG_ARCH_MX3=y 180# CONFIG_ARCH_MX3 is not set
176 181
177# 182#
178# MX3 Options 183# MX1 platforms:
179# 184#
180CONFIG_MACH_MX31ADS=y 185CONFIG_MACH_MXLADS=y
181# CONFIG_MACH_PCM037 is not set 186CONFIG_MACH_SCB9328=y
187CONFIG_MXC_IRQ_PRIOR=y
188# CONFIG_MXC_PWM is not set
182 189
183# 190#
184# Processor Type 191# Processor Type
185# 192#
186CONFIG_CPU_32=y 193CONFIG_CPU_32=y
187CONFIG_CPU_V6=y 194CONFIG_CPU_ARM920T=y
188# CONFIG_CPU_32v6K is not set 195CONFIG_CPU_32v4T=y
189CONFIG_CPU_32v6=y 196CONFIG_CPU_ABRT_EV4T=y
190CONFIG_CPU_ABRT_EV6=y
191CONFIG_CPU_PABRT_NOIFAR=y 197CONFIG_CPU_PABRT_NOIFAR=y
192CONFIG_CPU_CACHE_V6=y 198CONFIG_CPU_CACHE_V4WT=y
193CONFIG_CPU_CACHE_VIPT=y 199CONFIG_CPU_CACHE_VIVT=y
194CONFIG_CPU_COPY_V6=y 200CONFIG_CPU_COPY_V4WB=y
195CONFIG_CPU_TLB_V6=y 201CONFIG_CPU_TLB_V4WBI=y
196CONFIG_CPU_HAS_ASID=y
197CONFIG_CPU_CP15=y 202CONFIG_CPU_CP15=y
198CONFIG_CPU_CP15_MMU=y 203CONFIG_CPU_CP15_MMU=y
199 204
@@ -203,7 +208,7 @@ CONFIG_CPU_CP15_MMU=y
203CONFIG_ARM_THUMB=y 208CONFIG_ARM_THUMB=y
204# CONFIG_CPU_ICACHE_DISABLE is not set 209# CONFIG_CPU_ICACHE_DISABLE is not set
205# CONFIG_CPU_DCACHE_DISABLE is not set 210# CONFIG_CPU_DCACHE_DISABLE is not set
206# CONFIG_CPU_BPREDICT_DISABLE is not set 211# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
207# CONFIG_OUTER_CACHE is not set 212# CONFIG_OUTER_CACHE is not set
208 213
209# 214#
@@ -220,25 +225,32 @@ CONFIG_TICK_ONESHOT=y
220CONFIG_NO_HZ=y 225CONFIG_NO_HZ=y
221CONFIG_HIGH_RES_TIMERS=y 226CONFIG_HIGH_RES_TIMERS=y
222CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 227CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
228CONFIG_VMSPLIT_3G=y
229# CONFIG_VMSPLIT_2G is not set
230# CONFIG_VMSPLIT_1G is not set
231CONFIG_PAGE_OFFSET=0xC0000000
223CONFIG_PREEMPT=y 232CONFIG_PREEMPT=y
224CONFIG_HZ=100 233CONFIG_HZ=100
225CONFIG_AEABI=y 234CONFIG_AEABI=y
226# CONFIG_OABI_COMPAT is not set 235CONFIG_OABI_COMPAT=y
227# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 236CONFIG_ARCH_FLATMEM_HAS_HOLES=y
237# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
238# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
239# CONFIG_HIGHMEM is not set
228CONFIG_SELECT_MEMORY_MODEL=y 240CONFIG_SELECT_MEMORY_MODEL=y
229CONFIG_FLATMEM_MANUAL=y 241CONFIG_FLATMEM_MANUAL=y
230# CONFIG_DISCONTIGMEM_MANUAL is not set 242# CONFIG_DISCONTIGMEM_MANUAL is not set
231# CONFIG_SPARSEMEM_MANUAL is not set 243# CONFIG_SPARSEMEM_MANUAL is not set
232CONFIG_FLATMEM=y 244CONFIG_FLATMEM=y
233CONFIG_FLAT_NODE_MEM_MAP=y 245CONFIG_FLAT_NODE_MEM_MAP=y
234# CONFIG_SPARSEMEM_STATIC is not set
235# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
236CONFIG_PAGEFLAGS_EXTENDED=y 246CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 247CONFIG_SPLIT_PTLOCK_CPUS=4096
238# CONFIG_RESOURCES_64BIT is not set 248# CONFIG_PHYS_ADDR_T_64BIT is not set
239CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=0
240CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y
252CONFIG_HAVE_MLOCK=y
253CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242CONFIG_ALIGNMENT_TRAP=y 254CONFIG_ALIGNMENT_TRAP=y
243 255
244# 256#
@@ -251,30 +263,41 @@ CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off"
251# CONFIG_KEXEC is not set 263# CONFIG_KEXEC is not set
252 264
253# 265#
266# CPU Power Management
267#
268# CONFIG_CPU_IDLE is not set
269
270#
254# Floating point emulation 271# Floating point emulation
255# 272#
256 273
257# 274#
258# At least one emulation must be selected 275# At least one emulation must be selected
259# 276#
260CONFIG_VFP=y 277# CONFIG_FPE_NWFPE is not set
278# CONFIG_FPE_FASTFPE is not set
261 279
262# 280#
263# Userspace binary formats 281# Userspace binary formats
264# 282#
265CONFIG_BINFMT_ELF=y 283CONFIG_BINFMT_ELF=y
284# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
285CONFIG_HAVE_AOUT=y
266# CONFIG_BINFMT_AOUT is not set 286# CONFIG_BINFMT_AOUT is not set
267# CONFIG_BINFMT_MISC is not set 287# CONFIG_BINFMT_MISC is not set
268 288
269# 289#
270# Power management options 290# Power management options
271# 291#
272# CONFIG_PM is not set 292CONFIG_PM=y
293CONFIG_PM_DEBUG=y
294# CONFIG_PM_VERBOSE is not set
295CONFIG_CAN_PM_TRACE=y
296CONFIG_PM_SLEEP=y
297CONFIG_SUSPEND=y
298CONFIG_SUSPEND_FREEZER=y
299# CONFIG_APM_EMULATION is not set
273CONFIG_ARCH_SUSPEND_POSSIBLE=y 300CONFIG_ARCH_SUSPEND_POSSIBLE=y
274
275#
276# Networking
277#
278CONFIG_NET=y 301CONFIG_NET=y
279 302
280# 303#
@@ -283,11 +306,6 @@ CONFIG_NET=y
283CONFIG_PACKET=y 306CONFIG_PACKET=y
284# CONFIG_PACKET_MMAP is not set 307# CONFIG_PACKET_MMAP is not set
285CONFIG_UNIX=y 308CONFIG_UNIX=y
286CONFIG_XFRM=y
287# CONFIG_XFRM_USER is not set
288# CONFIG_XFRM_SUB_POLICY is not set
289# CONFIG_XFRM_MIGRATE is not set
290# CONFIG_XFRM_STATISTICS is not set
291# CONFIG_NET_KEY is not set 309# CONFIG_NET_KEY is not set
292CONFIG_INET=y 310CONFIG_INET=y
293# CONFIG_IP_MULTICAST is not set 311# CONFIG_IP_MULTICAST is not set
@@ -306,12 +324,11 @@ CONFIG_IP_PNP_DHCP=y
306# CONFIG_INET_IPCOMP is not set 324# CONFIG_INET_IPCOMP is not set
307# CONFIG_INET_XFRM_TUNNEL is not set 325# CONFIG_INET_XFRM_TUNNEL is not set
308# CONFIG_INET_TUNNEL is not set 326# CONFIG_INET_TUNNEL is not set
309CONFIG_INET_XFRM_MODE_TRANSPORT=y 327# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
310CONFIG_INET_XFRM_MODE_TUNNEL=y 328# CONFIG_INET_XFRM_MODE_TUNNEL is not set
311CONFIG_INET_XFRM_MODE_BEET=y 329# CONFIG_INET_XFRM_MODE_BEET is not set
312# CONFIG_INET_LRO is not set 330# CONFIG_INET_LRO is not set
313CONFIG_INET_DIAG=y 331# CONFIG_INET_DIAG is not set
314CONFIG_INET_TCP_DIAG=y
315# CONFIG_TCP_CONG_ADVANCED is not set 332# CONFIG_TCP_CONG_ADVANCED is not set
316CONFIG_TCP_CONG_CUBIC=y 333CONFIG_TCP_CONG_CUBIC=y
317CONFIG_DEFAULT_TCP_CONG="cubic" 334CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -324,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_TIPC is not set 341# CONFIG_TIPC is not set
325# CONFIG_ATM is not set 342# CONFIG_ATM is not set
326# CONFIG_BRIDGE is not set 343# CONFIG_BRIDGE is not set
344# CONFIG_NET_DSA is not set
327# CONFIG_VLAN_8021Q is not set 345# CONFIG_VLAN_8021Q is not set
328# CONFIG_DECNET is not set 346# CONFIG_DECNET is not set
329# CONFIG_LLC2 is not set 347# CONFIG_LLC2 is not set
@@ -333,7 +351,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_LAPB is not set 351# CONFIG_LAPB is not set
334# CONFIG_ECONET is not set 352# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set 353# CONFIG_WAN_ROUTER is not set
354# CONFIG_PHONET is not set
336# CONFIG_NET_SCHED is not set 355# CONFIG_NET_SCHED is not set
356# CONFIG_DCB is not set
337 357
338# 358#
339# Network testing 359# Network testing
@@ -344,14 +364,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_IRDA is not set 364# CONFIG_IRDA is not set
345# CONFIG_BT is not set 365# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 366# CONFIG_AF_RXRPC is not set
347 367# CONFIG_WIRELESS is not set
348# 368# CONFIG_WIMAX is not set
349# Wireless
350#
351# CONFIG_CFG80211 is not set
352# CONFIG_WIRELESS_EXT is not set
353# CONFIG_MAC80211 is not set
354# CONFIG_IEEE80211 is not set
355# CONFIG_RFKILL is not set 369# CONFIG_RFKILL is not set
356# CONFIG_NET_9P is not set 370# CONFIG_NET_9P is not set
357 371
@@ -366,16 +380,16 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
366CONFIG_STANDALONE=y 380CONFIG_STANDALONE=y
367CONFIG_PREVENT_FIRMWARE_BUILD=y 381CONFIG_PREVENT_FIRMWARE_BUILD=y
368CONFIG_FW_LOADER=m 382CONFIG_FW_LOADER=m
383CONFIG_FIRMWARE_IN_KERNEL=y
384CONFIG_EXTRA_FIRMWARE=""
369# CONFIG_SYS_HYPERVISOR is not set 385# CONFIG_SYS_HYPERVISOR is not set
370# CONFIG_CONNECTOR is not set 386# CONFIG_CONNECTOR is not set
371CONFIG_MTD=y 387CONFIG_MTD=y
372# CONFIG_MTD_DEBUG is not set 388# CONFIG_MTD_DEBUG is not set
373# CONFIG_MTD_CONCAT is not set 389# CONFIG_MTD_CONCAT is not set
374CONFIG_MTD_PARTITIONS=y 390CONFIG_MTD_PARTITIONS=y
375CONFIG_MTD_REDBOOT_PARTS=y 391# CONFIG_MTD_TESTS is not set
376CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 392# CONFIG_MTD_REDBOOT_PARTS is not set
377# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
378# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
379CONFIG_MTD_CMDLINE_PARTS=y 393CONFIG_MTD_CMDLINE_PARTS=y
380# CONFIG_MTD_AFS_PARTS is not set 394# CONFIG_MTD_AFS_PARTS is not set
381# CONFIG_MTD_AR7_PARTS is not set 395# CONFIG_MTD_AR7_PARTS is not set
@@ -399,36 +413,31 @@ CONFIG_MTD_BLOCK=y
399CONFIG_MTD_CFI=y 413CONFIG_MTD_CFI=y
400# CONFIG_MTD_JEDECPROBE is not set 414# CONFIG_MTD_JEDECPROBE is not set
401CONFIG_MTD_GEN_PROBE=y 415CONFIG_MTD_GEN_PROBE=y
402CONFIG_MTD_CFI_ADV_OPTIONS=y 416# CONFIG_MTD_CFI_ADV_OPTIONS is not set
403CONFIG_MTD_CFI_NOSWAP=y 417CONFIG_MTD_MAP_BANK_WIDTH_1=y
404# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
405# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
406CONFIG_MTD_CFI_GEOMETRY=y
407# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
408CONFIG_MTD_MAP_BANK_WIDTH_2=y 418CONFIG_MTD_MAP_BANK_WIDTH_2=y
409# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set 419CONFIG_MTD_MAP_BANK_WIDTH_4=y
410# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set 420# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
411# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set 421# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
412# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set 422# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
413CONFIG_MTD_CFI_I1=y 423CONFIG_MTD_CFI_I1=y
414# CONFIG_MTD_CFI_I2 is not set 424CONFIG_MTD_CFI_I2=y
415# CONFIG_MTD_CFI_I4 is not set 425# CONFIG_MTD_CFI_I4 is not set
416# CONFIG_MTD_CFI_I8 is not set 426# CONFIG_MTD_CFI_I8 is not set
417# CONFIG_MTD_OTP is not set
418# CONFIG_MTD_CFI_INTELEXT is not set 427# CONFIG_MTD_CFI_INTELEXT is not set
419CONFIG_MTD_CFI_AMDSTD=y 428# CONFIG_MTD_CFI_AMDSTD is not set
420# CONFIG_MTD_CFI_STAA is not set 429# CONFIG_MTD_CFI_STAA is not set
421CONFIG_MTD_CFI_UTIL=y 430CONFIG_MTD_CFI_UTIL=y
422CONFIG_MTD_RAM=y 431# CONFIG_MTD_RAM is not set
423# CONFIG_MTD_ROM is not set 432# CONFIG_MTD_ROM is not set
424# CONFIG_MTD_ABSENT is not set 433# CONFIG_MTD_ABSENT is not set
425# CONFIG_MTD_XIP is not set
426 434
427# 435#
428# Mapping drivers for chip access 436# Mapping drivers for chip access
429# 437#
430# CONFIG_MTD_COMPLEX_MAPPINGS is not set 438# CONFIG_MTD_COMPLEX_MAPPINGS is not set
431# CONFIG_MTD_PHYSMAP is not set 439CONFIG_MTD_PHYSMAP=y
440# CONFIG_MTD_PHYSMAP_COMPAT is not set
432# CONFIG_MTD_ARM_INTEGRATOR is not set 441# CONFIG_MTD_ARM_INTEGRATOR is not set
433# CONFIG_MTD_PLATRAM is not set 442# CONFIG_MTD_PLATRAM is not set
434 443
@@ -446,17 +455,15 @@ CONFIG_MTD_RAM=y
446# CONFIG_MTD_DOC2000 is not set 455# CONFIG_MTD_DOC2000 is not set
447# CONFIG_MTD_DOC2001 is not set 456# CONFIG_MTD_DOC2001 is not set
448# CONFIG_MTD_DOC2001PLUS is not set 457# CONFIG_MTD_DOC2001PLUS is not set
449CONFIG_MTD_NAND=y 458# CONFIG_MTD_NAND is not set
450# CONFIG_MTD_NAND_VERIFY_WRITE is not set
451# CONFIG_MTD_NAND_ECC_SMC is not set
452# CONFIG_MTD_NAND_MUSEUM_IDS is not set
453CONFIG_MTD_NAND_IDS=y
454# CONFIG_MTD_NAND_DISKONCHIP is not set
455# CONFIG_MTD_NAND_NANDSIM is not set
456# CONFIG_MTD_NAND_PLATFORM is not set
457# CONFIG_MTD_ONENAND is not set 459# CONFIG_MTD_ONENAND is not set
458 460
459# 461#
462# LPDDR flash memory drivers
463#
464# CONFIG_MTD_LPDDR is not set
465
466#
460# UBI - Unsorted block images 467# UBI - Unsorted block images
461# 468#
462# CONFIG_MTD_UBI is not set 469# CONFIG_MTD_UBI is not set
@@ -476,23 +483,51 @@ CONFIG_HAVE_IDE=y
476# CONFIG_ATA is not set 483# CONFIG_ATA is not set
477# CONFIG_MD is not set 484# CONFIG_MD is not set
478CONFIG_NETDEVICES=y 485CONFIG_NETDEVICES=y
479# CONFIG_NETDEVICES_MULTIQUEUE is not set 486CONFIG_COMPAT_NET_DEV_OPS=y
480# CONFIG_DUMMY is not set 487# CONFIG_DUMMY is not set
481# CONFIG_BONDING is not set 488# CONFIG_BONDING is not set
482# CONFIG_MACVLAN is not set 489# CONFIG_MACVLAN is not set
483# CONFIG_EQUALIZER is not set 490# CONFIG_EQUALIZER is not set
484# CONFIG_TUN is not set 491# CONFIG_TUN is not set
485# CONFIG_VETH is not set 492# CONFIG_VETH is not set
486# CONFIG_PHYLIB is not set 493CONFIG_PHYLIB=y
494
495#
496# MII PHY device drivers
497#
498# CONFIG_MARVELL_PHY is not set
499# CONFIG_DAVICOM_PHY is not set
500# CONFIG_QSEMI_PHY is not set
501# CONFIG_LXT_PHY is not set
502# CONFIG_CICADA_PHY is not set
503# CONFIG_VITESSE_PHY is not set
504CONFIG_SMSC_PHY=y
505# CONFIG_BROADCOM_PHY is not set
506# CONFIG_ICPLUS_PHY is not set
507# CONFIG_REALTEK_PHY is not set
508# CONFIG_NATIONAL_PHY is not set
509# CONFIG_STE10XP is not set
510# CONFIG_LSI_ET1011C_PHY is not set
511# CONFIG_FIXED_PHY is not set
512# CONFIG_MDIO_BITBANG is not set
487CONFIG_NET_ETHERNET=y 513CONFIG_NET_ETHERNET=y
488CONFIG_MII=y 514CONFIG_MII=y
489# CONFIG_AX88796 is not set 515# CONFIG_AX88796 is not set
490# CONFIG_SMC91X is not set 516# CONFIG_SMC91X is not set
491# CONFIG_DM9000 is not set 517CONFIG_DM9000=y
518CONFIG_DM9000_DEBUGLEVEL=4
519# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
520# CONFIG_ETHOC is not set
521# CONFIG_SMC911X is not set
522# CONFIG_SMSC911X is not set
523# CONFIG_DNET is not set
492# CONFIG_IBM_NEW_EMAC_ZMII is not set 524# CONFIG_IBM_NEW_EMAC_ZMII is not set
493# CONFIG_IBM_NEW_EMAC_RGMII is not set 525# CONFIG_IBM_NEW_EMAC_RGMII is not set
494# CONFIG_IBM_NEW_EMAC_TAH is not set 526# CONFIG_IBM_NEW_EMAC_TAH is not set
495# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 527# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
528# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
529# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
530# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
496# CONFIG_B44 is not set 531# CONFIG_B44 is not set
497# CONFIG_NETDEV_1000 is not set 532# CONFIG_NETDEV_1000 is not set
498# CONFIG_NETDEV_10000 is not set 533# CONFIG_NETDEV_10000 is not set
@@ -502,7 +537,10 @@ CONFIG_MII=y
502# 537#
503# CONFIG_WLAN_PRE80211 is not set 538# CONFIG_WLAN_PRE80211 is not set
504# CONFIG_WLAN_80211 is not set 539# CONFIG_WLAN_80211 is not set
505# CONFIG_IWLWIFI_LEDS is not set 540
541#
542# Enable WiMAX (Networking options) to see the WiMAX drivers
543#
506# CONFIG_WAN is not set 544# CONFIG_WAN is not set
507# CONFIG_PPP is not set 545# CONFIG_PPP is not set
508# CONFIG_SLIP is not set 546# CONFIG_SLIP is not set
@@ -542,46 +580,124 @@ CONFIG_SERIAL_IMX_CONSOLE=y
542CONFIG_SERIAL_CORE=y 580CONFIG_SERIAL_CORE=y
543CONFIG_SERIAL_CORE_CONSOLE=y 581CONFIG_SERIAL_CORE_CONSOLE=y
544CONFIG_UNIX98_PTYS=y 582CONFIG_UNIX98_PTYS=y
583# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
545# CONFIG_LEGACY_PTYS is not set 584# CONFIG_LEGACY_PTYS is not set
546# CONFIG_IPMI_HANDLER is not set 585# CONFIG_IPMI_HANDLER is not set
547# CONFIG_HW_RANDOM is not set 586# CONFIG_HW_RANDOM is not set
548# CONFIG_NVRAM is not set
549# CONFIG_R3964 is not set 587# CONFIG_R3964 is not set
550# CONFIG_RAW_DRIVER is not set 588# CONFIG_RAW_DRIVER is not set
551# CONFIG_TCG_TPM is not set 589# CONFIG_TCG_TPM is not set
552# CONFIG_I2C is not set 590CONFIG_I2C=y
591CONFIG_I2C_BOARDINFO=y
592CONFIG_I2C_CHARDEV=y
593CONFIG_I2C_HELPER_AUTO=y
594
595#
596# I2C Hardware Bus support
597#
598
599#
600# I2C system bus drivers (mostly embedded / system-on-chip)
601#
602# CONFIG_I2C_GPIO is not set
603CONFIG_I2C_IMX=y
604# CONFIG_I2C_OCORES is not set
605# CONFIG_I2C_SIMTEC is not set
606
607#
608# External I2C/SMBus adapter drivers
609#
610# CONFIG_I2C_PARPORT_LIGHT is not set
611# CONFIG_I2C_TAOS_EVM is not set
612
613#
614# Other I2C/SMBus bus drivers
615#
616# CONFIG_I2C_PCA_PLATFORM is not set
617# CONFIG_I2C_STUB is not set
618
619#
620# Miscellaneous I2C Chip support
621#
622# CONFIG_DS1682 is not set
623# CONFIG_SENSORS_PCF8574 is not set
624# CONFIG_PCF8575 is not set
625# CONFIG_SENSORS_PCA9539 is not set
626# CONFIG_SENSORS_MAX6875 is not set
627# CONFIG_SENSORS_TSL2550 is not set
628# CONFIG_I2C_DEBUG_CORE is not set
629# CONFIG_I2C_DEBUG_ALGO is not set
630# CONFIG_I2C_DEBUG_BUS is not set
631# CONFIG_I2C_DEBUG_CHIP is not set
553# CONFIG_SPI is not set 632# CONFIG_SPI is not set
554CONFIG_HAVE_GPIO_LIB=y 633CONFIG_ARCH_REQUIRE_GPIOLIB=y
634CONFIG_GPIOLIB=y
635# CONFIG_GPIO_SYSFS is not set
555 636
556# 637#
557# GPIO Support 638# Memory mapped GPIO expanders:
558# 639#
559 640
560# 641#
561# I2C GPIO expanders: 642# I2C GPIO expanders:
562# 643#
644# CONFIG_GPIO_MAX732X is not set
645# CONFIG_GPIO_PCA953X is not set
646# CONFIG_GPIO_PCF857X is not set
647
648#
649# PCI GPIO expanders:
650#
563 651
564# 652#
565# SPI GPIO expanders: 653# SPI GPIO expanders:
566# 654#
567# CONFIG_W1 is not set 655CONFIG_W1=y
656
657#
658# 1-wire Bus Masters
659#
660# CONFIG_W1_MASTER_DS2482 is not set
661CONFIG_W1_MASTER_MXC=y
662# CONFIG_W1_MASTER_GPIO is not set
663
664#
665# 1-wire Slaves
666#
667CONFIG_W1_SLAVE_THERM=y
668# CONFIG_W1_SLAVE_SMEM is not set
669# CONFIG_W1_SLAVE_DS2431 is not set
670# CONFIG_W1_SLAVE_DS2433 is not set
671# CONFIG_W1_SLAVE_DS2760 is not set
672# CONFIG_W1_SLAVE_BQ27000 is not set
568# CONFIG_POWER_SUPPLY is not set 673# CONFIG_POWER_SUPPLY is not set
569# CONFIG_HWMON is not set 674# CONFIG_HWMON is not set
675# CONFIG_THERMAL is not set
676# CONFIG_THERMAL_HWMON is not set
570# CONFIG_WATCHDOG is not set 677# CONFIG_WATCHDOG is not set
678CONFIG_SSB_POSSIBLE=y
571 679
572# 680#
573# Sonics Silicon Backplane 681# Sonics Silicon Backplane
574# 682#
575CONFIG_SSB_POSSIBLE=y
576# CONFIG_SSB is not set 683# CONFIG_SSB is not set
577 684
578# 685#
579# Multifunction device drivers 686# Multifunction device drivers
580# 687#
688# CONFIG_MFD_CORE is not set
581# CONFIG_MFD_SM501 is not set 689# CONFIG_MFD_SM501 is not set
582# CONFIG_MFD_ASIC3 is not set 690# CONFIG_MFD_ASIC3 is not set
583# CONFIG_HTC_EGPIO is not set 691# CONFIG_HTC_EGPIO is not set
584# CONFIG_HTC_PASIC3 is not set 692# CONFIG_HTC_PASIC3 is not set
693# CONFIG_TPS65010 is not set
694# CONFIG_TWL4030_CORE is not set
695# CONFIG_MFD_TMIO is not set
696# CONFIG_MFD_TC6393XB is not set
697# CONFIG_PMIC_DA903X is not set
698# CONFIG_MFD_WM8400 is not set
699# CONFIG_MFD_WM8350_I2C is not set
700# CONFIG_MFD_PCF50633 is not set
585 701
586# 702#
587# Multimedia devices 703# Multimedia devices
@@ -604,36 +720,131 @@ CONFIG_SSB_POSSIBLE=y
604# 720#
605# CONFIG_VGASTATE is not set 721# CONFIG_VGASTATE is not set
606# CONFIG_VIDEO_OUTPUT_CONTROL is not set 722# CONFIG_VIDEO_OUTPUT_CONTROL is not set
607# CONFIG_FB is not set 723CONFIG_FB=y
724# CONFIG_FIRMWARE_EDID is not set
725# CONFIG_FB_DDC is not set
726# CONFIG_FB_BOOT_VESA_SUPPORT is not set
727# CONFIG_FB_CFB_FILLRECT is not set
728# CONFIG_FB_CFB_COPYAREA is not set
729# CONFIG_FB_CFB_IMAGEBLIT is not set
730# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
731# CONFIG_FB_SYS_FILLRECT is not set
732# CONFIG_FB_SYS_COPYAREA is not set
733# CONFIG_FB_SYS_IMAGEBLIT is not set
734# CONFIG_FB_FOREIGN_ENDIAN is not set
735# CONFIG_FB_SYS_FOPS is not set
736# CONFIG_FB_SVGALIB is not set
737# CONFIG_FB_MACMODES is not set
738# CONFIG_FB_BACKLIGHT is not set
739# CONFIG_FB_MODE_HELPERS is not set
740# CONFIG_FB_TILEBLITTING is not set
741
742#
743# Frame buffer hardware drivers
744#
745# CONFIG_FB_S1D13XXX is not set
746# CONFIG_FB_VIRTUAL is not set
747# CONFIG_FB_METRONOME is not set
748# CONFIG_FB_MB862XX is not set
749# CONFIG_FB_BROADSHEET is not set
608# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 750# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
609 751
610# 752#
611# Display device support 753# Display device support
612# 754#
613# CONFIG_DISPLAY_SUPPORT is not set 755# CONFIG_DISPLAY_SUPPORT is not set
756# CONFIG_LOGO is not set
757# CONFIG_SOUND is not set
758CONFIG_USB_SUPPORT=y
759CONFIG_USB_ARCH_HAS_HCD=y
760# CONFIG_USB_ARCH_HAS_OHCI is not set
761# CONFIG_USB_ARCH_HAS_EHCI is not set
762# CONFIG_USB is not set
763# CONFIG_USB_OTG_WHITELIST is not set
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765# CONFIG_USB_GADGET_MUSB_HDRC is not set
614 766
615# 767#
616# Sound 768# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
769#
770CONFIG_USB_GADGET=y
771# CONFIG_USB_GADGET_DEBUG_FILES is not set
772CONFIG_USB_GADGET_VBUS_DRAW=2
773CONFIG_USB_GADGET_SELECTED=y
774# CONFIG_USB_GADGET_AT91 is not set
775# CONFIG_USB_GADGET_ATMEL_USBA is not set
776# CONFIG_USB_GADGET_FSL_USB2 is not set
777# CONFIG_USB_GADGET_LH7A40X is not set
778# CONFIG_USB_GADGET_OMAP is not set
779# CONFIG_USB_GADGET_PXA25X is not set
780# CONFIG_USB_GADGET_PXA27X is not set
781# CONFIG_USB_GADGET_S3C2410 is not set
782CONFIG_USB_GADGET_IMX=y
783CONFIG_USB_IMX=y
784# CONFIG_USB_GADGET_M66592 is not set
785# CONFIG_USB_GADGET_AMD5536UDC is not set
786# CONFIG_USB_GADGET_FSL_QE is not set
787# CONFIG_USB_GADGET_CI13XXX is not set
788# CONFIG_USB_GADGET_NET2280 is not set
789# CONFIG_USB_GADGET_GOKU is not set
790# CONFIG_USB_GADGET_DUMMY_HCD is not set
791# CONFIG_USB_GADGET_DUALSPEED is not set
792# CONFIG_USB_ZERO is not set
793CONFIG_USB_ETH=y
794CONFIG_USB_ETH_RNDIS=y
795# CONFIG_USB_GADGETFS is not set
796# CONFIG_USB_FILE_STORAGE is not set
797# CONFIG_USB_G_SERIAL is not set
798# CONFIG_USB_MIDI_GADGET is not set
799# CONFIG_USB_G_PRINTER is not set
800# CONFIG_USB_CDC_COMPOSITE is not set
801
617# 802#
618# CONFIG_SOUND is not set 803# OTG and related infrastructure
619# CONFIG_USB_SUPPORT is not set 804#
620# CONFIG_MMC is not set 805# CONFIG_USB_GPIO_VBUS is not set
806# CONFIG_NOP_USB_XCEIV is not set
807CONFIG_MMC=y
808# CONFIG_MMC_DEBUG is not set
809# CONFIG_MMC_UNSAFE_RESUME is not set
810
811#
812# MMC/SD/SDIO Card Drivers
813#
814CONFIG_MMC_BLOCK=y
815CONFIG_MMC_BLOCK_BOUNCE=y
816# CONFIG_SDIO_UART is not set
817# CONFIG_MMC_TEST is not set
818
819#
820# MMC/SD/SDIO Host Controller Drivers
821#
822# CONFIG_MMC_SDHCI is not set
823CONFIG_MMC_MXC=y
824# CONFIG_MEMSTICK is not set
825# CONFIG_ACCESSIBILITY is not set
621# CONFIG_NEW_LEDS is not set 826# CONFIG_NEW_LEDS is not set
622CONFIG_RTC_LIB=y 827CONFIG_RTC_LIB=y
623# CONFIG_RTC_CLASS is not set 828# CONFIG_RTC_CLASS is not set
829# CONFIG_DMADEVICES is not set
830# CONFIG_AUXDISPLAY is not set
831# CONFIG_REGULATOR is not set
624# CONFIG_UIO is not set 832# CONFIG_UIO is not set
833# CONFIG_STAGING is not set
625 834
626# 835#
627# File systems 836# File systems
628# 837#
629# CONFIG_EXT2_FS is not set 838# CONFIG_EXT2_FS is not set
630# CONFIG_EXT3_FS is not set 839# CONFIG_EXT3_FS is not set
631# CONFIG_EXT4DEV_FS is not set 840# CONFIG_EXT4_FS is not set
632# CONFIG_REISERFS_FS is not set 841# CONFIG_REISERFS_FS is not set
633# CONFIG_JFS_FS is not set 842# CONFIG_JFS_FS is not set
634# CONFIG_FS_POSIX_ACL is not set 843# CONFIG_FS_POSIX_ACL is not set
844CONFIG_FILE_LOCKING=y
635# CONFIG_XFS_FS is not set 845# CONFIG_XFS_FS is not set
636# CONFIG_OCFS2_FS is not set 846# CONFIG_OCFS2_FS is not set
847# CONFIG_BTRFS_FS is not set
637# CONFIG_DNOTIFY is not set 848# CONFIG_DNOTIFY is not set
638CONFIG_INOTIFY=y 849CONFIG_INOTIFY=y
639CONFIG_INOTIFY_USER=y 850CONFIG_INOTIFY_USER=y
@@ -643,6 +854,11 @@ CONFIG_INOTIFY_USER=y
643# CONFIG_FUSE_FS is not set 854# CONFIG_FUSE_FS is not set
644 855
645# 856#
857# Caches
858#
859# CONFIG_FSCACHE is not set
860
861#
646# CD-ROM/DVD Filesystems 862# CD-ROM/DVD Filesystems
647# 863#
648# CONFIG_ISO9660_FS is not set 864# CONFIG_ISO9660_FS is not set
@@ -660,15 +876,13 @@ CONFIG_INOTIFY_USER=y
660# 876#
661CONFIG_PROC_FS=y 877CONFIG_PROC_FS=y
662CONFIG_PROC_SYSCTL=y 878CONFIG_PROC_SYSCTL=y
879CONFIG_PROC_PAGE_MONITOR=y
663CONFIG_SYSFS=y 880CONFIG_SYSFS=y
664CONFIG_TMPFS=y 881CONFIG_TMPFS=y
665# CONFIG_TMPFS_POSIX_ACL is not set 882# CONFIG_TMPFS_POSIX_ACL is not set
666# CONFIG_HUGETLB_PAGE is not set 883# CONFIG_HUGETLB_PAGE is not set
667# CONFIG_CONFIGFS_FS is not set 884# CONFIG_CONFIGFS_FS is not set
668 885CONFIG_MISC_FILESYSTEMS=y
669#
670# Miscellaneous filesystems
671#
672# CONFIG_ADFS_FS is not set 886# CONFIG_ADFS_FS is not set
673# CONFIG_AFFS_FS is not set 887# CONFIG_AFFS_FS is not set
674# CONFIG_HFS_FS is not set 888# CONFIG_HFS_FS is not set
@@ -687,25 +901,30 @@ CONFIG_JFFS2_ZLIB=y
687# CONFIG_JFFS2_LZO is not set 901# CONFIG_JFFS2_LZO is not set
688CONFIG_JFFS2_RTIME=y 902CONFIG_JFFS2_RTIME=y
689# CONFIG_JFFS2_RUBIN is not set 903# CONFIG_JFFS2_RUBIN is not set
690CONFIG_CRAMFS=y 904# CONFIG_CRAMFS is not set
905# CONFIG_SQUASHFS is not set
691# CONFIG_VXFS_FS is not set 906# CONFIG_VXFS_FS is not set
692# CONFIG_MINIX_FS is not set 907# CONFIG_MINIX_FS is not set
908# CONFIG_OMFS_FS is not set
693# CONFIG_HPFS_FS is not set 909# CONFIG_HPFS_FS is not set
694# CONFIG_QNX4FS_FS is not set 910# CONFIG_QNX4FS_FS is not set
695# CONFIG_ROMFS_FS is not set 911# CONFIG_ROMFS_FS is not set
696# CONFIG_SYSV_FS is not set 912# CONFIG_SYSV_FS is not set
697# CONFIG_UFS_FS is not set 913# CONFIG_UFS_FS is not set
914# CONFIG_NILFS2_FS is not set
698CONFIG_NETWORK_FILESYSTEMS=y 915CONFIG_NETWORK_FILESYSTEMS=y
699CONFIG_NFS_FS=y 916CONFIG_NFS_FS=y
700# CONFIG_NFS_V3 is not set 917CONFIG_NFS_V3=y
701# CONFIG_NFS_V4 is not set 918# CONFIG_NFS_V3_ACL is not set
702# CONFIG_NFSD is not set 919CONFIG_NFS_V4=y
703CONFIG_ROOT_NFS=y 920CONFIG_ROOT_NFS=y
921# CONFIG_NFSD is not set
704CONFIG_LOCKD=y 922CONFIG_LOCKD=y
923CONFIG_LOCKD_V4=y
705CONFIG_NFS_COMMON=y 924CONFIG_NFS_COMMON=y
706CONFIG_SUNRPC=y 925CONFIG_SUNRPC=y
707# CONFIG_SUNRPC_BIND34 is not set 926CONFIG_SUNRPC_GSS=y
708# CONFIG_RPCSEC_GSS_KRB5 is not set 927CONFIG_RPCSEC_GSS_KRB5=y
709# CONFIG_RPCSEC_GSS_SPKM3 is not set 928# CONFIG_RPCSEC_GSS_SPKM3 is not set
710# CONFIG_SMB_FS is not set 929# CONFIG_SMB_FS is not set
711# CONFIG_CIFS is not set 930# CONFIG_CIFS is not set
@@ -724,9 +943,9 @@ CONFIG_MSDOS_PARTITION=y
724# 943#
725# Kernel hacking 944# Kernel hacking
726# 945#
727CONFIG_PRINTK_TIME=y 946# CONFIG_PRINTK_TIME is not set
728CONFIG_ENABLE_WARN_DEPRECATED=y 947# CONFIG_ENABLE_WARN_DEPRECATED is not set
729CONFIG_ENABLE_MUST_CHECK=y 948# CONFIG_ENABLE_MUST_CHECK is not set
730CONFIG_FRAME_WARN=1024 949CONFIG_FRAME_WARN=1024
731# CONFIG_MAGIC_SYSRQ is not set 950# CONFIG_MAGIC_SYSRQ is not set
732# CONFIG_UNUSED_SYMBOLS is not set 951# CONFIG_UNUSED_SYMBOLS is not set
@@ -734,8 +953,31 @@ CONFIG_FRAME_WARN=1024
734# CONFIG_HEADERS_CHECK is not set 953# CONFIG_HEADERS_CHECK is not set
735# CONFIG_DEBUG_KERNEL is not set 954# CONFIG_DEBUG_KERNEL is not set
736# CONFIG_DEBUG_BUGVERBOSE is not set 955# CONFIG_DEBUG_BUGVERBOSE is not set
737CONFIG_FRAME_POINTER=y 956# CONFIG_DEBUG_MEMORY_INIT is not set
957# CONFIG_RCU_CPU_STALL_DETECTOR is not set
958# CONFIG_LATENCYTOP is not set
959CONFIG_SYSCTL_SYSCALL_CHECK=y
960CONFIG_HAVE_FUNCTION_TRACER=y
961CONFIG_TRACING_SUPPORT=y
962
963#
964# Tracers
965#
966# CONFIG_FUNCTION_TRACER is not set
967# CONFIG_IRQSOFF_TRACER is not set
968# CONFIG_PREEMPT_TRACER is not set
969# CONFIG_SCHED_TRACER is not set
970# CONFIG_CONTEXT_SWITCH_TRACER is not set
971# CONFIG_EVENT_TRACER is not set
972# CONFIG_BOOT_TRACER is not set
973# CONFIG_TRACE_BRANCH_PROFILING is not set
974# CONFIG_STACK_TRACER is not set
975# CONFIG_KMEMTRACE is not set
976# CONFIG_WORKQUEUE_TRACER is not set
977# CONFIG_BLK_DEV_IO_TRACE is not set
738# CONFIG_SAMPLES is not set 978# CONFIG_SAMPLES is not set
979CONFIG_HAVE_ARCH_KGDB=y
980CONFIG_ARM_UNWIND=y
739# CONFIG_DEBUG_USER is not set 981# CONFIG_DEBUG_USER is not set
740 982
741# 983#
@@ -743,15 +985,28 @@ CONFIG_FRAME_POINTER=y
743# 985#
744# CONFIG_KEYS is not set 986# CONFIG_KEYS is not set
745# CONFIG_SECURITY is not set 987# CONFIG_SECURITY is not set
988# CONFIG_SECURITYFS is not set
746# CONFIG_SECURITY_FILE_CAPABILITIES is not set 989# CONFIG_SECURITY_FILE_CAPABILITIES is not set
747CONFIG_CRYPTO=y 990CONFIG_CRYPTO=y
748 991
749# 992#
750# Crypto core or helper 993# Crypto core or helper
751# 994#
752# CONFIG_CRYPTO_MANAGER is not set 995# CONFIG_CRYPTO_FIPS is not set
996CONFIG_CRYPTO_ALGAPI=y
997CONFIG_CRYPTO_ALGAPI2=y
998CONFIG_CRYPTO_AEAD2=y
999CONFIG_CRYPTO_BLKCIPHER=y
1000CONFIG_CRYPTO_BLKCIPHER2=y
1001CONFIG_CRYPTO_HASH=y
1002CONFIG_CRYPTO_HASH2=y
1003CONFIG_CRYPTO_RNG2=y
1004CONFIG_CRYPTO_PCOMP=y
1005CONFIG_CRYPTO_MANAGER=y
1006CONFIG_CRYPTO_MANAGER2=y
753# CONFIG_CRYPTO_GF128MUL is not set 1007# CONFIG_CRYPTO_GF128MUL is not set
754# CONFIG_CRYPTO_NULL is not set 1008# CONFIG_CRYPTO_NULL is not set
1009CONFIG_CRYPTO_WORKQUEUE=y
755# CONFIG_CRYPTO_CRYPTD is not set 1010# CONFIG_CRYPTO_CRYPTD is not set
756# CONFIG_CRYPTO_AUTHENC is not set 1011# CONFIG_CRYPTO_AUTHENC is not set
757# CONFIG_CRYPTO_TEST is not set 1012# CONFIG_CRYPTO_TEST is not set
@@ -766,7 +1021,7 @@ CONFIG_CRYPTO=y
766# 1021#
767# Block modes 1022# Block modes
768# 1023#
769# CONFIG_CRYPTO_CBC is not set 1024CONFIG_CRYPTO_CBC=y
770# CONFIG_CRYPTO_CTR is not set 1025# CONFIG_CRYPTO_CTR is not set
771# CONFIG_CRYPTO_CTS is not set 1026# CONFIG_CRYPTO_CTS is not set
772# CONFIG_CRYPTO_ECB is not set 1027# CONFIG_CRYPTO_ECB is not set
@@ -785,8 +1040,12 @@ CONFIG_CRYPTO=y
785# 1040#
786# CONFIG_CRYPTO_CRC32C is not set 1041# CONFIG_CRYPTO_CRC32C is not set
787# CONFIG_CRYPTO_MD4 is not set 1042# CONFIG_CRYPTO_MD4 is not set
788# CONFIG_CRYPTO_MD5 is not set 1043CONFIG_CRYPTO_MD5=y
789# CONFIG_CRYPTO_MICHAEL_MIC is not set 1044# CONFIG_CRYPTO_MICHAEL_MIC is not set
1045# CONFIG_CRYPTO_RMD128 is not set
1046# CONFIG_CRYPTO_RMD160 is not set
1047# CONFIG_CRYPTO_RMD256 is not set
1048# CONFIG_CRYPTO_RMD320 is not set
790# CONFIG_CRYPTO_SHA1 is not set 1049# CONFIG_CRYPTO_SHA1 is not set
791# CONFIG_CRYPTO_SHA256 is not set 1050# CONFIG_CRYPTO_SHA256 is not set
792# CONFIG_CRYPTO_SHA512 is not set 1051# CONFIG_CRYPTO_SHA512 is not set
@@ -803,7 +1062,7 @@ CONFIG_CRYPTO=y
803# CONFIG_CRYPTO_CAMELLIA is not set 1062# CONFIG_CRYPTO_CAMELLIA is not set
804# CONFIG_CRYPTO_CAST5 is not set 1063# CONFIG_CRYPTO_CAST5 is not set
805# CONFIG_CRYPTO_CAST6 is not set 1064# CONFIG_CRYPTO_CAST6 is not set
806# CONFIG_CRYPTO_DES is not set 1065CONFIG_CRYPTO_DES=y
807# CONFIG_CRYPTO_FCRYPT is not set 1066# CONFIG_CRYPTO_FCRYPT is not set
808# CONFIG_CRYPTO_KHAZAD is not set 1067# CONFIG_CRYPTO_KHAZAD is not set
809# CONFIG_CRYPTO_SALSA20 is not set 1068# CONFIG_CRYPTO_SALSA20 is not set
@@ -816,24 +1075,31 @@ CONFIG_CRYPTO=y
816# Compression 1075# Compression
817# 1076#
818# CONFIG_CRYPTO_DEFLATE is not set 1077# CONFIG_CRYPTO_DEFLATE is not set
1078# CONFIG_CRYPTO_ZLIB is not set
819# CONFIG_CRYPTO_LZO is not set 1079# CONFIG_CRYPTO_LZO is not set
820# CONFIG_CRYPTO_HW is not set 1080
1081#
1082# Random Number Generation
1083#
1084# CONFIG_CRYPTO_ANSI_CPRNG is not set
1085CONFIG_CRYPTO_HW=y
1086# CONFIG_BINARY_PRINTF is not set
821 1087
822# 1088#
823# Library routines 1089# Library routines
824# 1090#
825CONFIG_BITREVERSE=y 1091CONFIG_BITREVERSE=y
826# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1092CONFIG_GENERIC_FIND_LAST_BIT=y
827# CONFIG_GENERIC_FIND_NEXT_BIT is not set
828# CONFIG_CRC_CCITT is not set 1093# CONFIG_CRC_CCITT is not set
829# CONFIG_CRC16 is not set 1094# CONFIG_CRC16 is not set
1095# CONFIG_CRC_T10DIF is not set
830# CONFIG_CRC_ITU_T is not set 1096# CONFIG_CRC_ITU_T is not set
831CONFIG_CRC32=y 1097CONFIG_CRC32=y
832# CONFIG_CRC7 is not set 1098# CONFIG_CRC7 is not set
833# CONFIG_LIBCRC32C is not set 1099# CONFIG_LIBCRC32C is not set
834CONFIG_ZLIB_INFLATE=y 1100CONFIG_ZLIB_INFLATE=y
835CONFIG_ZLIB_DEFLATE=y 1101CONFIG_ZLIB_DEFLATE=y
836CONFIG_PLIST=y
837CONFIG_HAS_IOMEM=y 1102CONFIG_HAS_IOMEM=y
838CONFIG_HAS_IOPORT=y 1103CONFIG_HAS_IOPORT=y
839CONFIG_HAS_DMA=y 1104CONFIG_HAS_DMA=y
1105CONFIG_NLATTR=y
diff --git a/arch/arm/configs/pcm038_defconfig b/arch/arm/configs/mx27_defconfig
index 41429a00f58c..083516cd0d7f 100644
--- a/arch/arm/configs/pcm038_defconfig
+++ b/arch/arm/configs/mx27_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.26-rc6 3# Linux kernel version: 2.6.30-rc1
4# Fri Jun 20 16:38:36 2008 4# Wed Apr 8 10:18:06 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -21,9 +22,8 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y 25CONFIG_ARCH_MTD_XIP=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000 27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 29
@@ -40,47 +40,58 @@ CONFIG_LOCALVERSION_AUTO=y
40CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
41CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
42CONFIG_POSIX_MQUEUE=y 42CONFIG_POSIX_MQUEUE=y
43CONFIG_POSIX_MQUEUE_SYSCTL=y
43# CONFIG_BSD_PROCESS_ACCT is not set 44# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 45# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set 46# CONFIG_AUDIT is not set
47
48#
49# RCU Subsystem
50#
51CONFIG_CLASSIC_RCU=y
52# CONFIG_TREE_RCU is not set
53# CONFIG_PREEMPT_RCU is not set
54# CONFIG_TREE_RCU_TRACE is not set
55# CONFIG_PREEMPT_RCU_TRACE is not set
46# CONFIG_IKCONFIG is not set 56# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14 57CONFIG_LOG_BUF_SHIFT=14
48# CONFIG_CGROUPS is not set
49CONFIG_GROUP_SCHED=y 58CONFIG_GROUP_SCHED=y
50CONFIG_FAIR_GROUP_SCHED=y 59CONFIG_FAIR_GROUP_SCHED=y
51CONFIG_RT_GROUP_SCHED=y 60CONFIG_RT_GROUP_SCHED=y
52CONFIG_USER_SCHED=y 61CONFIG_USER_SCHED=y
53# CONFIG_CGROUP_SCHED is not set 62# CONFIG_CGROUP_SCHED is not set
63# CONFIG_CGROUPS is not set
54# CONFIG_SYSFS_DEPRECATED_V2 is not set 64# CONFIG_SYSFS_DEPRECATED_V2 is not set
55# CONFIG_RELAY is not set 65# CONFIG_RELAY is not set
56# CONFIG_NAMESPACES is not set 66# CONFIG_NAMESPACES is not set
57# CONFIG_BLK_DEV_INITRD is not set 67# CONFIG_BLK_DEV_INITRD is not set
58# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 68# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
59CONFIG_SYSCTL=y 69CONFIG_SYSCTL=y
70CONFIG_ANON_INODES=y
60CONFIG_EMBEDDED=y 71CONFIG_EMBEDDED=y
61CONFIG_UID16=y 72CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y 73CONFIG_SYSCTL_SYSCALL=y
63CONFIG_SYSCTL_SYSCALL_CHECK=y
64CONFIG_KALLSYMS=y 74CONFIG_KALLSYMS=y
65CONFIG_KALLSYMS_EXTRA_PASS=y 75CONFIG_KALLSYMS_EXTRA_PASS=y
66CONFIG_HOTPLUG=y 76CONFIG_HOTPLUG=y
67CONFIG_PRINTK=y 77CONFIG_PRINTK=y
68CONFIG_BUG=y 78CONFIG_BUG=y
69CONFIG_ELF_CORE=y 79CONFIG_ELF_CORE=y
70# CONFIG_COMPAT_BRK is not set
71CONFIG_BASE_FULL=y 80CONFIG_BASE_FULL=y
72CONFIG_FUTEX=y 81CONFIG_FUTEX=y
73CONFIG_ANON_INODES=y
74CONFIG_EPOLL=y 82CONFIG_EPOLL=y
75CONFIG_SIGNALFD=y 83CONFIG_SIGNALFD=y
76CONFIG_TIMERFD=y 84CONFIG_TIMERFD=y
77CONFIG_EVENTFD=y 85CONFIG_EVENTFD=y
78CONFIG_SHMEM=y 86CONFIG_SHMEM=y
87CONFIG_AIO=y
79CONFIG_VM_EVENT_COUNTERS=y 88CONFIG_VM_EVENT_COUNTERS=y
89# CONFIG_COMPAT_BRK is not set
80CONFIG_SLAB=y 90CONFIG_SLAB=y
81# CONFIG_SLUB is not set 91# CONFIG_SLUB is not set
82# CONFIG_SLOB is not set 92# CONFIG_SLOB is not set
83CONFIG_PROFILING=y 93CONFIG_PROFILING=y
94CONFIG_TRACEPOINTS=y
84CONFIG_MARKERS=y 95CONFIG_MARKERS=y
85CONFIG_OPROFILE=y 96CONFIG_OPROFILE=y
86CONFIG_HAVE_OPROFILE=y 97CONFIG_HAVE_OPROFILE=y
@@ -88,11 +99,10 @@ CONFIG_KPROBES=y
88CONFIG_KRETPROBES=y 99CONFIG_KRETPROBES=y
89CONFIG_HAVE_KPROBES=y 100CONFIG_HAVE_KPROBES=y
90CONFIG_HAVE_KRETPROBES=y 101CONFIG_HAVE_KRETPROBES=y
91# CONFIG_HAVE_DMA_ATTRS is not set 102# CONFIG_SLOW_WORK is not set
92# CONFIG_PROC_PAGE_MONITOR is not set 103CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 104CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 105CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 106CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 107CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 108# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,12 +110,10 @@ CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 110# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 111# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 112# CONFIG_MODULE_SRCVERSION_ALL is not set
103# CONFIG_KMOD is not set
104CONFIG_BLOCK=y 113CONFIG_BLOCK=y
105# CONFIG_LBD is not set 114# CONFIG_LBD 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 115# CONFIG_BLK_DEV_BSG is not set
116# CONFIG_BLK_DEV_INTEGRITY is not set
109 117
110# 118#
111# IO Schedulers 119# IO Schedulers
@@ -119,7 +127,7 @@ CONFIG_IOSCHED_NOOP=y
119# CONFIG_DEFAULT_CFQ is not set 127# CONFIG_DEFAULT_CFQ is not set
120CONFIG_DEFAULT_NOOP=y 128CONFIG_DEFAULT_NOOP=y
121CONFIG_DEFAULT_IOSCHED="noop" 129CONFIG_DEFAULT_IOSCHED="noop"
122CONFIG_CLASSIC_RCU=y 130CONFIG_FREEZER=y
123 131
124# 132#
125# System Type 133# System Type
@@ -129,11 +137,10 @@ CONFIG_CLASSIC_RCU=y
129# CONFIG_ARCH_REALVIEW is not set 137# CONFIG_ARCH_REALVIEW is not set
130# CONFIG_ARCH_VERSATILE is not set 138# CONFIG_ARCH_VERSATILE is not set
131# CONFIG_ARCH_AT91 is not set 139# CONFIG_ARCH_AT91 is not set
132# CONFIG_ARCH_CLPS7500 is not set
133# CONFIG_ARCH_CLPS711X is not set 140# CONFIG_ARCH_CLPS711X is not set
134# CONFIG_ARCH_CO285 is not set
135# CONFIG_ARCH_EBSA110 is not set 141# CONFIG_ARCH_EBSA110 is not set
136# CONFIG_ARCH_EP93XX is not set 142# CONFIG_ARCH_EP93XX is not set
143# CONFIG_ARCH_GEMINI is not set
137# CONFIG_ARCH_FOOTBRIDGE is not set 144# CONFIG_ARCH_FOOTBRIDGE is not set
138# CONFIG_ARCH_NETX is not set 145# CONFIG_ARCH_NETX is not set
139# CONFIG_ARCH_H720X is not set 146# CONFIG_ARCH_H720X is not set
@@ -145,46 +152,44 @@ CONFIG_CLASSIC_RCU=y
145# CONFIG_ARCH_IXP2000 is not set 152# CONFIG_ARCH_IXP2000 is not set
146# CONFIG_ARCH_IXP4XX is not set 153# CONFIG_ARCH_IXP4XX is not set
147# CONFIG_ARCH_L7200 is not set 154# CONFIG_ARCH_L7200 is not set
155# CONFIG_ARCH_KIRKWOOD is not set
148# CONFIG_ARCH_KS8695 is not set 156# CONFIG_ARCH_KS8695 is not set
149# CONFIG_ARCH_NS9XXX is not set 157# CONFIG_ARCH_NS9XXX is not set
158# CONFIG_ARCH_LOKI is not set
159# CONFIG_ARCH_MV78XX0 is not set
150CONFIG_ARCH_MXC=y 160CONFIG_ARCH_MXC=y
151# CONFIG_ARCH_ORION5X is not set 161# CONFIG_ARCH_ORION5X is not set
152# CONFIG_ARCH_PNX4008 is not set 162# CONFIG_ARCH_PNX4008 is not set
153# CONFIG_ARCH_PXA is not set 163# CONFIG_ARCH_PXA is not set
164# CONFIG_ARCH_MMP is not set
154# CONFIG_ARCH_RPC is not set 165# CONFIG_ARCH_RPC is not set
155# CONFIG_ARCH_SA1100 is not set 166# CONFIG_ARCH_SA1100 is not set
156# CONFIG_ARCH_S3C2410 is not set 167# CONFIG_ARCH_S3C2410 is not set
168# CONFIG_ARCH_S3C64XX is not set
157# CONFIG_ARCH_SHARK is not set 169# CONFIG_ARCH_SHARK is not set
158# CONFIG_ARCH_LH7A40X is not set 170# CONFIG_ARCH_LH7A40X is not set
159# CONFIG_ARCH_DAVINCI is not set 171# CONFIG_ARCH_DAVINCI is not set
160# CONFIG_ARCH_OMAP is not set 172# CONFIG_ARCH_OMAP is not set
161# CONFIG_ARCH_MSM7X00A is not set 173# CONFIG_ARCH_MSM is not set
162 174# CONFIG_ARCH_W90X900 is not set
163#
164# Boot options
165#
166
167#
168# Power management
169#
170 175
171# 176#
172# Freescale MXC Implementations 177# Freescale MXC Implementations
173# 178#
179# CONFIG_ARCH_MX1 is not set
174CONFIG_ARCH_MX2=y 180CONFIG_ARCH_MX2=y
175# CONFIG_ARCH_MX3 is not set 181# CONFIG_ARCH_MX3 is not set
176 182# CONFIG_MACH_MX21 is not set
177#
178# MX2 family CPU support
179#
180CONFIG_MACH_MX27=y 183CONFIG_MACH_MX27=y
181 184
182# 185#
183# MX2 Platforms 186# MX2 platforms:
184# 187#
185# CONFIG_MACH_MX27ADS is not set 188CONFIG_MACH_MX27ADS=y
186CONFIG_MACH_PCM038=y 189CONFIG_MACH_PCM038=y
187CONFIG_MACH_PCM970_BASEBOARD=y 190CONFIG_MACH_PCM970_BASEBOARD=y
191CONFIG_MXC_IRQ_PRIOR=y
192CONFIG_MXC_PWM=y
188 193
189# 194#
190# Processor Type 195# Processor Type
@@ -209,6 +214,7 @@ CONFIG_ARM_THUMB=y
209# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 214# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
210# CONFIG_CPU_CACHE_ROUND_ROBIN is not set 215# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
211# CONFIG_OUTER_CACHE is not set 216# CONFIG_OUTER_CACHE is not set
217CONFIG_COMMON_CLKDEV=y
212 218
213# 219#
214# Bus support 220# Bus support
@@ -224,25 +230,32 @@ CONFIG_TICK_ONESHOT=y
224CONFIG_NO_HZ=y 230CONFIG_NO_HZ=y
225CONFIG_HIGH_RES_TIMERS=y 231CONFIG_HIGH_RES_TIMERS=y
226CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 232CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
233CONFIG_VMSPLIT_3G=y
234# CONFIG_VMSPLIT_2G is not set
235# CONFIG_VMSPLIT_1G is not set
236CONFIG_PAGE_OFFSET=0xC0000000
227CONFIG_PREEMPT=y 237CONFIG_PREEMPT=y
228CONFIG_HZ=100 238CONFIG_HZ=100
229CONFIG_AEABI=y 239CONFIG_AEABI=y
230# CONFIG_OABI_COMPAT is not set 240CONFIG_OABI_COMPAT=y
231# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 241CONFIG_ARCH_FLATMEM_HAS_HOLES=y
242# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
243# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
244# CONFIG_HIGHMEM is not set
232CONFIG_SELECT_MEMORY_MODEL=y 245CONFIG_SELECT_MEMORY_MODEL=y
233CONFIG_FLATMEM_MANUAL=y 246CONFIG_FLATMEM_MANUAL=y
234# CONFIG_DISCONTIGMEM_MANUAL is not set 247# CONFIG_DISCONTIGMEM_MANUAL is not set
235# CONFIG_SPARSEMEM_MANUAL is not set 248# CONFIG_SPARSEMEM_MANUAL is not set
236CONFIG_FLATMEM=y 249CONFIG_FLATMEM=y
237CONFIG_FLAT_NODE_MEM_MAP=y 250CONFIG_FLAT_NODE_MEM_MAP=y
238# CONFIG_SPARSEMEM_STATIC is not set
239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
240CONFIG_PAGEFLAGS_EXTENDED=y 251CONFIG_PAGEFLAGS_EXTENDED=y
241CONFIG_SPLIT_PTLOCK_CPUS=4096 252CONFIG_SPLIT_PTLOCK_CPUS=4096
242# CONFIG_RESOURCES_64BIT is not set 253# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1 254CONFIG_ZONE_DMA_FLAG=0
244CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_ALIGNMENT_TRAP=y 259CONFIG_ALIGNMENT_TRAP=y
247 260
248# 261#
@@ -255,30 +268,44 @@ CONFIG_CMDLINE=""
255# CONFIG_KEXEC is not set 268# CONFIG_KEXEC is not set
256 269
257# 270#
271# CPU Power Management
272#
273# CONFIG_CPU_IDLE is not set
274
275#
258# Floating point emulation 276# Floating point emulation
259# 277#
260 278
261# 279#
262# At least one emulation must be selected 280# At least one emulation must be selected
263# 281#
282CONFIG_FPE_NWFPE=y
283CONFIG_FPE_NWFPE_XP=y
284# CONFIG_FPE_FASTFPE is not set
264# CONFIG_VFP is not set 285# CONFIG_VFP is not set
265 286
266# 287#
267# Userspace binary formats 288# Userspace binary formats
268# 289#
269CONFIG_BINFMT_ELF=y 290CONFIG_BINFMT_ELF=y
291# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
292CONFIG_HAVE_AOUT=y
270# CONFIG_BINFMT_AOUT is not set 293# CONFIG_BINFMT_AOUT is not set
271# CONFIG_BINFMT_MISC is not set 294# CONFIG_BINFMT_MISC is not set
272 295
273# 296#
274# Power management options 297# Power management options
275# 298#
276# CONFIG_PM is not set 299CONFIG_PM=y
300CONFIG_PM_DEBUG=y
301# CONFIG_PM_VERBOSE is not set
302CONFIG_CAN_PM_TRACE=y
303CONFIG_PM_SLEEP=y
304CONFIG_SUSPEND=y
305# CONFIG_PM_TEST_SUSPEND is not set
306CONFIG_SUSPEND_FREEZER=y
307# CONFIG_APM_EMULATION is not set
277CONFIG_ARCH_SUSPEND_POSSIBLE=y 308CONFIG_ARCH_SUSPEND_POSSIBLE=y
278
279#
280# Networking
281#
282CONFIG_NET=y 309CONFIG_NET=y
283 310
284# 311#
@@ -293,7 +320,7 @@ CONFIG_IP_MULTICAST=y
293# CONFIG_IP_ADVANCED_ROUTER is not set 320# CONFIG_IP_ADVANCED_ROUTER is not set
294CONFIG_IP_FIB_HASH=y 321CONFIG_IP_FIB_HASH=y
295CONFIG_IP_PNP=y 322CONFIG_IP_PNP=y
296# CONFIG_IP_PNP_DHCP is not set 323CONFIG_IP_PNP_DHCP=y
297# CONFIG_IP_PNP_BOOTP is not set 324# CONFIG_IP_PNP_BOOTP is not set
298# CONFIG_IP_PNP_RARP is not set 325# CONFIG_IP_PNP_RARP is not set
299# CONFIG_NET_IPIP is not set 326# CONFIG_NET_IPIP is not set
@@ -323,6 +350,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
323# CONFIG_TIPC is not set 350# CONFIG_TIPC is not set
324# CONFIG_ATM is not set 351# CONFIG_ATM is not set
325# CONFIG_BRIDGE is not set 352# CONFIG_BRIDGE is not set
353# CONFIG_NET_DSA is not set
326# CONFIG_VLAN_8021Q is not set 354# CONFIG_VLAN_8021Q is not set
327# CONFIG_DECNET is not set 355# CONFIG_DECNET is not set
328# CONFIG_LLC2 is not set 356# CONFIG_LLC2 is not set
@@ -332,26 +360,23 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_LAPB is not set 360# CONFIG_LAPB is not set
333# CONFIG_ECONET is not set 361# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 362# CONFIG_WAN_ROUTER is not set
363# CONFIG_PHONET is not set
335# CONFIG_NET_SCHED is not set 364# CONFIG_NET_SCHED is not set
365# CONFIG_DCB is not set
336 366
337# 367#
338# Network testing 368# Network testing
339# 369#
340# CONFIG_NET_PKTGEN is not set 370# CONFIG_NET_PKTGEN is not set
341# CONFIG_NET_TCPPROBE is not set 371# CONFIG_NET_TCPPROBE is not set
372# CONFIG_NET_DROP_MONITOR is not set
342# CONFIG_HAMRADIO is not set 373# CONFIG_HAMRADIO is not set
343# CONFIG_CAN is not set 374# CONFIG_CAN is not set
344# CONFIG_IRDA is not set 375# CONFIG_IRDA is not set
345# CONFIG_BT is not set 376# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 377# CONFIG_AF_RXRPC is not set
347 378# CONFIG_WIRELESS is not set
348# 379# CONFIG_WIMAX is not set
349# Wireless
350#
351# CONFIG_CFG80211 is not set
352# CONFIG_WIRELESS_EXT is not set
353# CONFIG_MAC80211 is not set
354# CONFIG_IEEE80211 is not set
355# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
356# CONFIG_NET_9P is not set 381# CONFIG_NET_9P is not set
357 382
@@ -366,12 +391,15 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
366CONFIG_STANDALONE=y 391CONFIG_STANDALONE=y
367CONFIG_PREVENT_FIRMWARE_BUILD=y 392CONFIG_PREVENT_FIRMWARE_BUILD=y
368CONFIG_FW_LOADER=y 393CONFIG_FW_LOADER=y
394CONFIG_FIRMWARE_IN_KERNEL=y
395CONFIG_EXTRA_FIRMWARE=""
369# CONFIG_SYS_HYPERVISOR is not set 396# CONFIG_SYS_HYPERVISOR is not set
370# CONFIG_CONNECTOR is not set 397# CONFIG_CONNECTOR is not set
371CONFIG_MTD=y 398CONFIG_MTD=y
372# CONFIG_MTD_DEBUG is not set 399# CONFIG_MTD_DEBUG is not set
373# CONFIG_MTD_CONCAT is not set 400# CONFIG_MTD_CONCAT is not set
374CONFIG_MTD_PARTITIONS=y 401CONFIG_MTD_PARTITIONS=y
402# CONFIG_MTD_TESTS is not set
375# CONFIG_MTD_REDBOOT_PARTS is not set 403# CONFIG_MTD_REDBOOT_PARTS is not set
376CONFIG_MTD_CMDLINE_PARTS=y 404CONFIG_MTD_CMDLINE_PARTS=y
377# CONFIG_MTD_AFS_PARTS is not set 405# CONFIG_MTD_AFS_PARTS is not set
@@ -426,9 +454,7 @@ CONFIG_MTD_CFI_UTIL=y
426# 454#
427# CONFIG_MTD_COMPLEX_MAPPINGS is not set 455# CONFIG_MTD_COMPLEX_MAPPINGS is not set
428CONFIG_MTD_PHYSMAP=y 456CONFIG_MTD_PHYSMAP=y
429CONFIG_MTD_PHYSMAP_START=0x00000000 457# CONFIG_MTD_PHYSMAP_COMPAT is not set
430CONFIG_MTD_PHYSMAP_LEN=0x0
431CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# CONFIG_MTD_ARM_INTEGRATOR is not set 458# CONFIG_MTD_ARM_INTEGRATOR is not set
433# CONFIG_MTD_PLATRAM is not set 459# CONFIG_MTD_PLATRAM is not set
434 460
@@ -452,6 +478,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
452# CONFIG_MTD_ONENAND is not set 478# CONFIG_MTD_ONENAND is not set
453 479
454# 480#
481# LPDDR flash memory drivers
482#
483# CONFIG_MTD_LPDDR is not set
484
485#
455# UBI - Unsorted block images 486# UBI - Unsorted block images
456# 487#
457# CONFIG_MTD_UBI is not set 488# CONFIG_MTD_UBI is not set
@@ -477,7 +508,7 @@ CONFIG_HAVE_IDE=y
477# CONFIG_ATA is not set 508# CONFIG_ATA is not set
478# CONFIG_MD is not set 509# CONFIG_MD is not set
479CONFIG_NETDEVICES=y 510CONFIG_NETDEVICES=y
480# CONFIG_NETDEVICES_MULTIQUEUE is not set 511CONFIG_COMPAT_NET_DEV_OPS=y
481# CONFIG_DUMMY is not set 512# CONFIG_DUMMY is not set
482# CONFIG_BONDING is not set 513# CONFIG_BONDING is not set
483# CONFIG_MACVLAN is not set 514# CONFIG_MACVLAN is not set
@@ -491,12 +522,20 @@ CONFIG_NET_ETHERNET=y
491# CONFIG_SMC91X is not set 522# CONFIG_SMC91X is not set
492# CONFIG_DM9000 is not set 523# CONFIG_DM9000 is not set
493# CONFIG_ENC28J60 is not set 524# CONFIG_ENC28J60 is not set
525# CONFIG_ETHOC is not set
526# CONFIG_SMC911X is not set
527# CONFIG_SMSC911X is not set
528# CONFIG_DNET is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 529# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 530# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 531# CONFIG_IBM_NEW_EMAC_TAH is not set
497# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 532# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
533# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
534# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
535# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
498# CONFIG_B44 is not set 536# CONFIG_B44 is not set
499CONFIG_FEC_OLD=y 537CONFIG_FEC=y
538# CONFIG_FEC2 is not set
500# CONFIG_NETDEV_1000 is not set 539# CONFIG_NETDEV_1000 is not set
501# CONFIG_NETDEV_10000 is not set 540# CONFIG_NETDEV_10000 is not set
502 541
@@ -505,7 +544,10 @@ CONFIG_FEC_OLD=y
505# 544#
506# CONFIG_WLAN_PRE80211 is not set 545# CONFIG_WLAN_PRE80211 is not set
507# CONFIG_WLAN_80211 is not set 546# CONFIG_WLAN_80211 is not set
508# CONFIG_IWLWIFI_LEDS is not set 547
548#
549# Enable WiMAX (Networking options) to see the WiMAX drivers
550#
509# CONFIG_WAN is not set 551# CONFIG_WAN is not set
510# CONFIG_PPP is not set 552# CONFIG_PPP is not set
511# CONFIG_SLIP is not set 553# CONFIG_SLIP is not set
@@ -541,12 +583,15 @@ CONFIG_INPUT_TOUCHSCREEN=y
541# CONFIG_TOUCHSCREEN_FUJITSU is not set 583# CONFIG_TOUCHSCREEN_FUJITSU is not set
542# CONFIG_TOUCHSCREEN_GUNZE is not set 584# CONFIG_TOUCHSCREEN_GUNZE is not set
543# CONFIG_TOUCHSCREEN_ELO is not set 585# CONFIG_TOUCHSCREEN_ELO is not set
586# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
544# CONFIG_TOUCHSCREEN_MTOUCH is not set 587# CONFIG_TOUCHSCREEN_MTOUCH is not set
588# CONFIG_TOUCHSCREEN_INEXIO is not set
545# CONFIG_TOUCHSCREEN_MK712 is not set 589# CONFIG_TOUCHSCREEN_MK712 is not set
546# CONFIG_TOUCHSCREEN_PENMOUNT is not set 590# CONFIG_TOUCHSCREEN_PENMOUNT is not set
547# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 591# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
548# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 592# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
549# CONFIG_TOUCHSCREEN_UCB1400 is not set 593# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
594# CONFIG_TOUCHSCREEN_TSC2007 is not set
550# CONFIG_INPUT_MISC is not set 595# CONFIG_INPUT_MISC is not set
551 596
552# 597#
@@ -559,6 +604,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
559# Character devices 604# Character devices
560# 605#
561CONFIG_VT=y 606CONFIG_VT=y
607CONFIG_CONSOLE_TRANSLATIONS=y
562CONFIG_VT_CONSOLE=y 608CONFIG_VT_CONSOLE=y
563CONFIG_HW_CONSOLE=y 609CONFIG_HW_CONSOLE=y
564# CONFIG_VT_HW_CONSOLE_BINDING is not set 610# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -573,42 +619,55 @@ CONFIG_DEVKMEM=y
573# 619#
574# Non-8250 serial port support 620# Non-8250 serial port support
575# 621#
622# CONFIG_SERIAL_MAX3100 is not set
576CONFIG_SERIAL_IMX=y 623CONFIG_SERIAL_IMX=y
577CONFIG_SERIAL_IMX_CONSOLE=y 624CONFIG_SERIAL_IMX_CONSOLE=y
578CONFIG_SERIAL_CORE=y 625CONFIG_SERIAL_CORE=y
579CONFIG_SERIAL_CORE_CONSOLE=y 626CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_UNIX98_PTYS=y 627CONFIG_UNIX98_PTYS=y
628# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
581# CONFIG_LEGACY_PTYS is not set 629# CONFIG_LEGACY_PTYS is not set
582# CONFIG_IPMI_HANDLER is not set 630# CONFIG_IPMI_HANDLER is not set
583# CONFIG_HW_RANDOM is not set 631# CONFIG_HW_RANDOM is not set
584# CONFIG_NVRAM is not set
585# CONFIG_R3964 is not set 632# CONFIG_R3964 is not set
586# CONFIG_RAW_DRIVER is not set 633# CONFIG_RAW_DRIVER is not set
587# CONFIG_TCG_TPM is not set 634# CONFIG_TCG_TPM is not set
588CONFIG_I2C=y 635CONFIG_I2C=y
589CONFIG_I2C_BOARDINFO=y 636CONFIG_I2C_BOARDINFO=y
590# CONFIG_I2C_CHARDEV is not set 637CONFIG_I2C_CHARDEV=y
638CONFIG_I2C_HELPER_AUTO=y
591 639
592# 640#
593# I2C Hardware Bus support 641# I2C Hardware Bus support
594# 642#
643
644#
645# I2C system bus drivers (mostly embedded / system-on-chip)
646#
595# CONFIG_I2C_GPIO is not set 647# CONFIG_I2C_GPIO is not set
648CONFIG_I2C_IMX=y
596# CONFIG_I2C_OCORES is not set 649# CONFIG_I2C_OCORES is not set
597# CONFIG_I2C_PARPORT_LIGHT is not set
598# CONFIG_I2C_SIMTEC is not set 650# CONFIG_I2C_SIMTEC is not set
651
652#
653# External I2C/SMBus adapter drivers
654#
655# CONFIG_I2C_PARPORT_LIGHT is not set
599# CONFIG_I2C_TAOS_EVM is not set 656# CONFIG_I2C_TAOS_EVM is not set
600# CONFIG_I2C_STUB is not set 657
658#
659# Other I2C/SMBus bus drivers
660#
601# CONFIG_I2C_PCA_PLATFORM is not set 661# CONFIG_I2C_PCA_PLATFORM is not set
662# CONFIG_I2C_STUB is not set
602 663
603# 664#
604# Miscellaneous I2C Chip support 665# Miscellaneous I2C Chip support
605# 666#
606# CONFIG_DS1682 is not set 667# CONFIG_DS1682 is not set
607# CONFIG_EEPROM_LEGACY is not set
608# CONFIG_SENSORS_PCF8574 is not set 668# CONFIG_SENSORS_PCF8574 is not set
609# CONFIG_PCF8575 is not set 669# CONFIG_PCF8575 is not set
610# CONFIG_SENSORS_PCF8591 is not set 670# CONFIG_SENSORS_PCA9539 is not set
611# CONFIG_TPS65010 is not set
612# CONFIG_SENSORS_MAX6875 is not set 671# CONFIG_SENSORS_MAX6875 is not set
613# CONFIG_SENSORS_TSL2550 is not set 672# CONFIG_SENSORS_TSL2550 is not set
614# CONFIG_I2C_DEBUG_CORE is not set 673# CONFIG_I2C_DEBUG_CORE is not set
@@ -622,47 +681,83 @@ CONFIG_SPI_MASTER=y
622# SPI Master Controller Drivers 681# SPI Master Controller Drivers
623# 682#
624CONFIG_SPI_BITBANG=y 683CONFIG_SPI_BITBANG=y
684# CONFIG_SPI_GPIO is not set
625 685
626# 686#
627# SPI Protocol Masters 687# SPI Protocol Masters
628# 688#
629# CONFIG_EEPROM_AT25 is not set
630# CONFIG_SPI_SPIDEV is not set 689# CONFIG_SPI_SPIDEV is not set
631# CONFIG_SPI_TLE62X0 is not set 690# CONFIG_SPI_TLE62X0 is not set
632CONFIG_HAVE_GPIO_LIB=y 691CONFIG_ARCH_REQUIRE_GPIOLIB=y
692CONFIG_GPIOLIB=y
693# CONFIG_GPIO_SYSFS is not set
633 694
634# 695#
635# GPIO Support 696# Memory mapped GPIO expanders:
636# 697#
637 698
638# 699#
639# I2C GPIO expanders: 700# I2C GPIO expanders:
640# 701#
702# CONFIG_GPIO_MAX732X is not set
641# CONFIG_GPIO_PCA953X is not set 703# CONFIG_GPIO_PCA953X is not set
642# CONFIG_GPIO_PCF857X is not set 704# CONFIG_GPIO_PCF857X is not set
643 705
644# 706#
707# PCI GPIO expanders:
708#
709
710#
645# SPI GPIO expanders: 711# SPI GPIO expanders:
646# 712#
713# CONFIG_GPIO_MAX7301 is not set
647# CONFIG_GPIO_MCP23S08 is not set 714# CONFIG_GPIO_MCP23S08 is not set
648# CONFIG_W1 is not set 715CONFIG_W1=y
716
717#
718# 1-wire Bus Masters
719#
720# CONFIG_W1_MASTER_DS2482 is not set
721CONFIG_W1_MASTER_MXC=y
722# CONFIG_W1_MASTER_GPIO is not set
723
724#
725# 1-wire Slaves
726#
727CONFIG_W1_SLAVE_THERM=y
728# CONFIG_W1_SLAVE_SMEM is not set
729# CONFIG_W1_SLAVE_DS2431 is not set
730# CONFIG_W1_SLAVE_DS2433 is not set
731# CONFIG_W1_SLAVE_DS2760 is not set
732# CONFIG_W1_SLAVE_BQ27000 is not set
649# CONFIG_POWER_SUPPLY is not set 733# CONFIG_POWER_SUPPLY is not set
650# CONFIG_HWMON is not set 734# CONFIG_HWMON is not set
735# CONFIG_THERMAL is not set
736# CONFIG_THERMAL_HWMON is not set
651# CONFIG_WATCHDOG is not set 737# CONFIG_WATCHDOG is not set
738CONFIG_SSB_POSSIBLE=y
652 739
653# 740#
654# Sonics Silicon Backplane 741# Sonics Silicon Backplane
655# 742#
656CONFIG_SSB_POSSIBLE=y
657# CONFIG_SSB is not set 743# CONFIG_SSB is not set
658 744
659# 745#
660# Multifunction device drivers 746# Multifunction device drivers
661# 747#
748# CONFIG_MFD_CORE is not set
662# CONFIG_MFD_SM501 is not set 749# CONFIG_MFD_SM501 is not set
663# CONFIG_MFD_ASIC3 is not set 750# CONFIG_MFD_ASIC3 is not set
664# CONFIG_HTC_EGPIO is not set 751# CONFIG_HTC_EGPIO is not set
665# CONFIG_HTC_PASIC3 is not set 752# CONFIG_HTC_PASIC3 is not set
753# CONFIG_TPS65010 is not set
754# CONFIG_TWL4030_CORE is not set
755# CONFIG_MFD_TMIO is not set
756# CONFIG_MFD_TC6393XB is not set
757# CONFIG_PMIC_DA903X is not set
758# CONFIG_MFD_WM8400 is not set
759# CONFIG_MFD_WM8350_I2C is not set
760# CONFIG_MFD_PCF50633 is not set
666 761
667# 762#
668# Multimedia devices 763# Multimedia devices
@@ -683,7 +778,7 @@ CONFIG_VIDEO_MEDIA=y
683# 778#
684# CONFIG_MEDIA_ATTACH is not set 779# CONFIG_MEDIA_ATTACH is not set
685CONFIG_MEDIA_TUNER=y 780CONFIG_MEDIA_TUNER=y
686# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 781# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
687CONFIG_MEDIA_TUNER_SIMPLE=y 782CONFIG_MEDIA_TUNER_SIMPLE=y
688CONFIG_MEDIA_TUNER_TDA8290=y 783CONFIG_MEDIA_TUNER_TDA8290=y
689CONFIG_MEDIA_TUNER_TDA9887=y 784CONFIG_MEDIA_TUNER_TDA9887=y
@@ -692,16 +787,17 @@ CONFIG_MEDIA_TUNER_TEA5767=y
692CONFIG_MEDIA_TUNER_MT20XX=y 787CONFIG_MEDIA_TUNER_MT20XX=y
693CONFIG_MEDIA_TUNER_XC2028=y 788CONFIG_MEDIA_TUNER_XC2028=y
694CONFIG_MEDIA_TUNER_XC5000=y 789CONFIG_MEDIA_TUNER_XC5000=y
790CONFIG_MEDIA_TUNER_MC44S803=y
695CONFIG_VIDEO_V4L2=y 791CONFIG_VIDEO_V4L2=y
696CONFIG_VIDEO_V4L1=y 792CONFIG_VIDEO_V4L1=y
697CONFIG_VIDEO_CAPTURE_DRIVERS=y 793CONFIG_VIDEO_CAPTURE_DRIVERS=y
698# CONFIG_VIDEO_ADV_DEBUG is not set 794# CONFIG_VIDEO_ADV_DEBUG is not set
795# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
699CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 796CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
700# CONFIG_VIDEO_VIVI is not set 797# CONFIG_VIDEO_VIVI is not set
701# CONFIG_VIDEO_CPIA is not set 798# CONFIG_VIDEO_CPIA is not set
702# CONFIG_VIDEO_SAA5246A is not set 799# CONFIG_VIDEO_SAA5246A is not set
703# CONFIG_VIDEO_SAA5249 is not set 800# CONFIG_VIDEO_SAA5249 is not set
704# CONFIG_TUNER_3036 is not set
705# CONFIG_SOC_CAMERA is not set 801# CONFIG_SOC_CAMERA is not set
706# CONFIG_RADIO_ADAPTERS is not set 802# CONFIG_RADIO_ADAPTERS is not set
707# CONFIG_DAB is not set 803# CONFIG_DAB is not set
@@ -714,9 +810,10 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
714CONFIG_FB=y 810CONFIG_FB=y
715# CONFIG_FIRMWARE_EDID is not set 811# CONFIG_FIRMWARE_EDID is not set
716# CONFIG_FB_DDC is not set 812# CONFIG_FB_DDC is not set
717# CONFIG_FB_CFB_FILLRECT is not set 813# CONFIG_FB_BOOT_VESA_SUPPORT is not set
718# CONFIG_FB_CFB_COPYAREA is not set 814CONFIG_FB_CFB_FILLRECT=y
719# CONFIG_FB_CFB_IMAGEBLIT is not set 815CONFIG_FB_CFB_COPYAREA=y
816CONFIG_FB_CFB_IMAGEBLIT=y
720# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 817# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
721# CONFIG_FB_SYS_FILLRECT is not set 818# CONFIG_FB_SYS_FILLRECT is not set
722# CONFIG_FB_SYS_COPYAREA is not set 819# CONFIG_FB_SYS_COPYAREA is not set
@@ -732,8 +829,12 @@ CONFIG_FB=y
732# 829#
733# Frame buffer hardware drivers 830# Frame buffer hardware drivers
734# 831#
832CONFIG_FB_IMX=y
735# CONFIG_FB_S1D13XXX is not set 833# CONFIG_FB_S1D13XXX is not set
736# CONFIG_FB_VIRTUAL is not set 834# CONFIG_FB_VIRTUAL is not set
835# CONFIG_FB_METRONOME is not set
836# CONFIG_FB_MB862XX is not set
837# CONFIG_FB_BROADSHEET is not set
737# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 838# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
738 839
739# 840#
@@ -761,14 +862,29 @@ CONFIG_FONT_8x8=y
761# CONFIG_FONT_SUN12x22 is not set 862# CONFIG_FONT_SUN12x22 is not set
762# CONFIG_FONT_10x18 is not set 863# CONFIG_FONT_10x18 is not set
763# CONFIG_LOGO is not set 864# CONFIG_LOGO is not set
764
765#
766# Sound
767#
768# CONFIG_SOUND is not set 865# CONFIG_SOUND is not set
769# CONFIG_HID_SUPPORT is not set 866# CONFIG_HID_SUPPORT is not set
770# CONFIG_USB_SUPPORT is not set 867# CONFIG_USB_SUPPORT is not set
771# CONFIG_MMC is not set 868CONFIG_MMC=y
869# CONFIG_MMC_DEBUG is not set
870# CONFIG_MMC_UNSAFE_RESUME is not set
871
872#
873# MMC/SD/SDIO Card Drivers
874#
875CONFIG_MMC_BLOCK=y
876CONFIG_MMC_BLOCK_BOUNCE=y
877# CONFIG_SDIO_UART is not set
878# CONFIG_MMC_TEST is not set
879
880#
881# MMC/SD/SDIO Host Controller Drivers
882#
883# CONFIG_MMC_SDHCI is not set
884CONFIG_MMC_MXC=y
885# CONFIG_MMC_SPI is not set
886# CONFIG_MEMSTICK is not set
887# CONFIG_ACCESSIBILITY is not set
772# CONFIG_NEW_LEDS is not set 888# CONFIG_NEW_LEDS is not set
773CONFIG_RTC_LIB=y 889CONFIG_RTC_LIB=y
774CONFIG_RTC_CLASS=y 890CONFIG_RTC_CLASS=y
@@ -800,42 +916,56 @@ CONFIG_RTC_DRV_PCF8563=y
800# CONFIG_RTC_DRV_M41T80 is not set 916# CONFIG_RTC_DRV_M41T80 is not set
801# CONFIG_RTC_DRV_S35390A is not set 917# CONFIG_RTC_DRV_S35390A is not set
802# CONFIG_RTC_DRV_FM3130 is not set 918# CONFIG_RTC_DRV_FM3130 is not set
919# CONFIG_RTC_DRV_RX8581 is not set
803 920
804# 921#
805# SPI RTC drivers 922# SPI RTC drivers
806# 923#
924# CONFIG_RTC_DRV_M41T94 is not set
925# CONFIG_RTC_DRV_DS1305 is not set
926# CONFIG_RTC_DRV_DS1390 is not set
807# CONFIG_RTC_DRV_MAX6902 is not set 927# CONFIG_RTC_DRV_MAX6902 is not set
808# CONFIG_RTC_DRV_R9701 is not set 928# CONFIG_RTC_DRV_R9701 is not set
809# CONFIG_RTC_DRV_RS5C348 is not set 929# CONFIG_RTC_DRV_RS5C348 is not set
930# CONFIG_RTC_DRV_DS3234 is not set
810 931
811# 932#
812# Platform RTC drivers 933# Platform RTC drivers
813# 934#
814# CONFIG_RTC_DRV_CMOS is not set 935# CONFIG_RTC_DRV_CMOS is not set
936# CONFIG_RTC_DRV_DS1286 is not set
815# CONFIG_RTC_DRV_DS1511 is not set 937# CONFIG_RTC_DRV_DS1511 is not set
816# CONFIG_RTC_DRV_DS1553 is not set 938# CONFIG_RTC_DRV_DS1553 is not set
817# CONFIG_RTC_DRV_DS1742 is not set 939# CONFIG_RTC_DRV_DS1742 is not set
818# CONFIG_RTC_DRV_STK17TA8 is not set 940# CONFIG_RTC_DRV_STK17TA8 is not set
819# CONFIG_RTC_DRV_M48T86 is not set 941# CONFIG_RTC_DRV_M48T86 is not set
942# CONFIG_RTC_DRV_M48T35 is not set
820# CONFIG_RTC_DRV_M48T59 is not set 943# CONFIG_RTC_DRV_M48T59 is not set
944# CONFIG_RTC_DRV_BQ4802 is not set
821# CONFIG_RTC_DRV_V3020 is not set 945# CONFIG_RTC_DRV_V3020 is not set
822 946
823# 947#
824# on-CPU RTC drivers 948# on-CPU RTC drivers
825# 949#
950# CONFIG_DMADEVICES is not set
951# CONFIG_AUXDISPLAY is not set
952# CONFIG_REGULATOR is not set
826# CONFIG_UIO is not set 953# CONFIG_UIO is not set
954# CONFIG_STAGING is not set
827 955
828# 956#
829# File systems 957# File systems
830# 958#
831# CONFIG_EXT2_FS is not set 959# CONFIG_EXT2_FS is not set
832# CONFIG_EXT3_FS is not set 960# CONFIG_EXT3_FS is not set
833# CONFIG_EXT4DEV_FS is not set 961# CONFIG_EXT4_FS is not set
834# CONFIG_REISERFS_FS is not set 962# CONFIG_REISERFS_FS is not set
835# CONFIG_JFS_FS is not set 963# CONFIG_JFS_FS is not set
836# CONFIG_FS_POSIX_ACL is not set 964# CONFIG_FS_POSIX_ACL is not set
965CONFIG_FILE_LOCKING=y
837# CONFIG_XFS_FS is not set 966# CONFIG_XFS_FS is not set
838# CONFIG_OCFS2_FS is not set 967# CONFIG_OCFS2_FS is not set
968# CONFIG_BTRFS_FS is not set
839# CONFIG_DNOTIFY is not set 969# CONFIG_DNOTIFY is not set
840# CONFIG_INOTIFY is not set 970# CONFIG_INOTIFY is not set
841# CONFIG_QUOTA is not set 971# CONFIG_QUOTA is not set
@@ -844,6 +974,11 @@ CONFIG_RTC_DRV_PCF8563=y
844# CONFIG_FUSE_FS is not set 974# CONFIG_FUSE_FS is not set
845 975
846# 976#
977# Caches
978#
979# CONFIG_FSCACHE is not set
980
981#
847# CD-ROM/DVD Filesystems 982# CD-ROM/DVD Filesystems
848# 983#
849# CONFIG_ISO9660_FS is not set 984# CONFIG_ISO9660_FS is not set
@@ -861,15 +996,13 @@ CONFIG_RTC_DRV_PCF8563=y
861# 996#
862CONFIG_PROC_FS=y 997CONFIG_PROC_FS=y
863CONFIG_PROC_SYSCTL=y 998CONFIG_PROC_SYSCTL=y
999# CONFIG_PROC_PAGE_MONITOR is not set
864CONFIG_SYSFS=y 1000CONFIG_SYSFS=y
865CONFIG_TMPFS=y 1001CONFIG_TMPFS=y
866# CONFIG_TMPFS_POSIX_ACL is not set 1002# CONFIG_TMPFS_POSIX_ACL is not set
867# CONFIG_HUGETLB_PAGE is not set 1003# CONFIG_HUGETLB_PAGE is not set
868# CONFIG_CONFIGFS_FS is not set 1004# CONFIG_CONFIGFS_FS is not set
869 1005CONFIG_MISC_FILESYSTEMS=y
870#
871# Miscellaneous filesystems
872#
873# CONFIG_ADFS_FS is not set 1006# CONFIG_ADFS_FS is not set
874# CONFIG_AFFS_FS is not set 1007# CONFIG_AFFS_FS is not set
875# CONFIG_HFS_FS is not set 1008# CONFIG_HFS_FS is not set
@@ -889,25 +1022,27 @@ CONFIG_JFFS2_ZLIB=y
889CONFIG_JFFS2_RTIME=y 1022CONFIG_JFFS2_RTIME=y
890# CONFIG_JFFS2_RUBIN is not set 1023# CONFIG_JFFS2_RUBIN is not set
891# CONFIG_CRAMFS is not set 1024# CONFIG_CRAMFS is not set
1025# CONFIG_SQUASHFS is not set
892# CONFIG_VXFS_FS is not set 1026# CONFIG_VXFS_FS is not set
893# CONFIG_MINIX_FS is not set 1027# CONFIG_MINIX_FS is not set
1028# CONFIG_OMFS_FS is not set
894# CONFIG_HPFS_FS is not set 1029# CONFIG_HPFS_FS is not set
895# CONFIG_QNX4FS_FS is not set 1030# CONFIG_QNX4FS_FS is not set
896# CONFIG_ROMFS_FS is not set 1031# CONFIG_ROMFS_FS is not set
897# CONFIG_SYSV_FS is not set 1032# CONFIG_SYSV_FS is not set
898# CONFIG_UFS_FS is not set 1033# CONFIG_UFS_FS is not set
1034# CONFIG_NILFS2_FS is not set
899CONFIG_NETWORK_FILESYSTEMS=y 1035CONFIG_NETWORK_FILESYSTEMS=y
900CONFIG_NFS_FS=y 1036CONFIG_NFS_FS=y
901CONFIG_NFS_V3=y 1037CONFIG_NFS_V3=y
902# CONFIG_NFS_V3_ACL is not set 1038# CONFIG_NFS_V3_ACL is not set
903# CONFIG_NFS_V4 is not set 1039# CONFIG_NFS_V4 is not set
904# CONFIG_NFSD is not set
905CONFIG_ROOT_NFS=y 1040CONFIG_ROOT_NFS=y
1041# CONFIG_NFSD is not set
906CONFIG_LOCKD=y 1042CONFIG_LOCKD=y
907CONFIG_LOCKD_V4=y 1043CONFIG_LOCKD_V4=y
908CONFIG_NFS_COMMON=y 1044CONFIG_NFS_COMMON=y
909CONFIG_SUNRPC=y 1045CONFIG_SUNRPC=y
910# CONFIG_SUNRPC_BIND34 is not set
911# CONFIG_RPCSEC_GSS_KRB5 is not set 1046# CONFIG_RPCSEC_GSS_KRB5 is not set
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 1047# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 1048# CONFIG_SMB_FS is not set
@@ -972,12 +1107,41 @@ CONFIG_ENABLE_MUST_CHECK=y
972CONFIG_FRAME_WARN=1024 1107CONFIG_FRAME_WARN=1024
973# CONFIG_MAGIC_SYSRQ is not set 1108# CONFIG_MAGIC_SYSRQ is not set
974# CONFIG_UNUSED_SYMBOLS is not set 1109# CONFIG_UNUSED_SYMBOLS is not set
975# CONFIG_DEBUG_FS is not set 1110CONFIG_DEBUG_FS=y
976# CONFIG_HEADERS_CHECK is not set 1111# CONFIG_HEADERS_CHECK is not set
977# CONFIG_DEBUG_KERNEL is not set 1112# CONFIG_DEBUG_KERNEL is not set
1113CONFIG_STACKTRACE=y
978# CONFIG_DEBUG_BUGVERBOSE is not set 1114# CONFIG_DEBUG_BUGVERBOSE is not set
979CONFIG_FRAME_POINTER=y 1115# CONFIG_DEBUG_MEMORY_INIT is not set
1116# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1117# CONFIG_LATENCYTOP is not set
1118CONFIG_SYSCTL_SYSCALL_CHECK=y
1119CONFIG_NOP_TRACER=y
1120CONFIG_HAVE_FUNCTION_TRACER=y
1121CONFIG_RING_BUFFER=y
1122CONFIG_TRACING=y
1123CONFIG_TRACING_SUPPORT=y
1124
1125#
1126# Tracers
1127#
1128# CONFIG_FUNCTION_TRACER is not set
1129# CONFIG_IRQSOFF_TRACER is not set
1130# CONFIG_PREEMPT_TRACER is not set
1131# CONFIG_SCHED_TRACER is not set
1132# CONFIG_CONTEXT_SWITCH_TRACER is not set
1133# CONFIG_EVENT_TRACER is not set
1134# CONFIG_BOOT_TRACER is not set
1135# CONFIG_TRACE_BRANCH_PROFILING is not set
1136# CONFIG_STACK_TRACER is not set
1137# CONFIG_KMEMTRACE is not set
1138# CONFIG_WORKQUEUE_TRACER is not set
1139# CONFIG_BLK_DEV_IO_TRACE is not set
1140# CONFIG_FTRACE_STARTUP_TEST is not set
1141# CONFIG_DYNAMIC_DEBUG is not set
980# CONFIG_SAMPLES is not set 1142# CONFIG_SAMPLES is not set
1143CONFIG_HAVE_ARCH_KGDB=y
1144CONFIG_ARM_UNWIND=y
981# CONFIG_DEBUG_USER is not set 1145# CONFIG_DEBUG_USER is not set
982 1146
983# 1147#
@@ -985,24 +1149,26 @@ CONFIG_FRAME_POINTER=y
985# 1149#
986# CONFIG_KEYS is not set 1150# CONFIG_KEYS is not set
987# CONFIG_SECURITY is not set 1151# CONFIG_SECURITY is not set
1152# CONFIG_SECURITYFS is not set
988# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1153# CONFIG_SECURITY_FILE_CAPABILITIES is not set
989# CONFIG_CRYPTO is not set 1154# CONFIG_CRYPTO is not set
1155CONFIG_BINARY_PRINTF=y
990 1156
991# 1157#
992# Library routines 1158# Library routines
993# 1159#
994CONFIG_BITREVERSE=y 1160CONFIG_BITREVERSE=y
995# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1161CONFIG_GENERIC_FIND_LAST_BIT=y
996# CONFIG_GENERIC_FIND_NEXT_BIT is not set
997# CONFIG_CRC_CCITT is not set 1162# CONFIG_CRC_CCITT is not set
998# CONFIG_CRC16 is not set 1163# CONFIG_CRC16 is not set
1164# CONFIG_CRC_T10DIF is not set
999# CONFIG_CRC_ITU_T is not set 1165# CONFIG_CRC_ITU_T is not set
1000CONFIG_CRC32=y 1166CONFIG_CRC32=y
1001# CONFIG_CRC7 is not set 1167# CONFIG_CRC7 is not set
1002# CONFIG_LIBCRC32C is not set 1168# CONFIG_LIBCRC32C is not set
1003CONFIG_ZLIB_INFLATE=y 1169CONFIG_ZLIB_INFLATE=y
1004CONFIG_ZLIB_DEFLATE=y 1170CONFIG_ZLIB_DEFLATE=y
1005CONFIG_PLIST=y
1006CONFIG_HAS_IOMEM=y 1171CONFIG_HAS_IOMEM=y
1007CONFIG_HAS_IOPORT=y 1172CONFIG_HAS_IOPORT=y
1008CONFIG_HAS_DMA=y 1173CONFIG_HAS_DMA=y
1174CONFIG_NLATTR=y
diff --git a/arch/arm/configs/mx31moboard_defconfig b/arch/arm/configs/mx31moboard_defconfig
deleted file mode 100644
index e90f86d6deef..000000000000
--- a/arch/arm/configs/mx31moboard_defconfig
+++ /dev/null
@@ -1,790 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc5
4# Fri Oct 24 11:41:22 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_ARCH_MTD_XIP=y
28CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
29CONFIG_VECTORS_BASE=0xffff0000
30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
31
32#
33# General setup
34#
35CONFIG_EXPERIMENTAL=y
36CONFIG_BROKEN_ON_SMP=y
37CONFIG_LOCK_KERNEL=y
38CONFIG_INIT_ENV_ARG_LIMIT=32
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41CONFIG_SWAP=y
42CONFIG_SYSVIPC=y
43CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_POSIX_MQUEUE is not set
45# CONFIG_BSD_PROCESS_ACCT is not set
46# CONFIG_TASKSTATS is not set
47# CONFIG_AUDIT is not set
48CONFIG_IKCONFIG=y
49CONFIG_IKCONFIG_PROC=y
50CONFIG_LOG_BUF_SHIFT=14
51# CONFIG_CGROUPS is not set
52CONFIG_GROUP_SCHED=y
53CONFIG_FAIR_GROUP_SCHED=y
54# CONFIG_RT_GROUP_SCHED is not set
55CONFIG_USER_SCHED=y
56# CONFIG_CGROUP_SCHED is not set
57CONFIG_SYSFS_DEPRECATED=y
58CONFIG_SYSFS_DEPRECATED_V2=y
59# CONFIG_RELAY is not set
60# CONFIG_NAMESPACES is not set
61# CONFIG_BLK_DEV_INITRD is not set
62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
63CONFIG_SYSCTL=y
64CONFIG_EMBEDDED=y
65CONFIG_UID16=y
66CONFIG_SYSCTL_SYSCALL=y
67CONFIG_KALLSYMS=y
68# CONFIG_KALLSYMS_EXTRA_PASS is not set
69CONFIG_HOTPLUG=y
70CONFIG_PRINTK=y
71CONFIG_BUG=y
72CONFIG_ELF_CORE=y
73CONFIG_COMPAT_BRK=y
74CONFIG_BASE_FULL=y
75CONFIG_FUTEX=y
76CONFIG_ANON_INODES=y
77CONFIG_EPOLL=y
78CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y
80CONFIG_EVENTFD=y
81CONFIG_SHMEM=y
82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_SLAB=y
84# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set
86# CONFIG_PROFILING is not set
87# CONFIG_MARKERS is not set
88CONFIG_HAVE_OPROFILE=y
89# CONFIG_KPROBES is not set
90# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
91# CONFIG_HAVE_IOREMAP_PROT is not set
92CONFIG_HAVE_KPROBES=y
93CONFIG_HAVE_KRETPROBES=y
94# CONFIG_HAVE_ARCH_TRACEHOOK is not set
95# CONFIG_HAVE_DMA_ATTRS is not set
96# CONFIG_USE_GENERIC_SMP_HELPERS is not set
97# CONFIG_HAVE_CLK is not set
98CONFIG_PROC_PAGE_MONITOR=y
99CONFIG_HAVE_GENERIC_DMA_COHERENT=y
100CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0
104CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set
106CONFIG_MODULE_UNLOAD=y
107CONFIG_MODULE_FORCE_UNLOAD=y
108CONFIG_MODVERSIONS=y
109# CONFIG_MODULE_SRCVERSION_ALL is not set
110CONFIG_KMOD=y
111CONFIG_BLOCK=y
112# CONFIG_LBD is not set
113# CONFIG_BLK_DEV_IO_TRACE is not set
114# CONFIG_LSF is not set
115# CONFIG_BLK_DEV_BSG is not set
116# CONFIG_BLK_DEV_INTEGRITY is not set
117
118#
119# IO Schedulers
120#
121CONFIG_IOSCHED_NOOP=y
122CONFIG_IOSCHED_AS=y
123CONFIG_IOSCHED_DEADLINE=y
124CONFIG_IOSCHED_CFQ=y
125# CONFIG_DEFAULT_AS is not set
126# CONFIG_DEFAULT_DEADLINE is not set
127CONFIG_DEFAULT_CFQ=y
128# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="cfq"
130CONFIG_CLASSIC_RCU=y
131
132#
133# System Type
134#
135# CONFIG_ARCH_AAEC2000 is not set
136# CONFIG_ARCH_INTEGRATOR is not set
137# CONFIG_ARCH_REALVIEW is not set
138# CONFIG_ARCH_VERSATILE is not set
139# CONFIG_ARCH_AT91 is not set
140# CONFIG_ARCH_CLPS7500 is not set
141# CONFIG_ARCH_CLPS711X is not set
142# CONFIG_ARCH_EBSA110 is not set
143# CONFIG_ARCH_EP93XX is not set
144# CONFIG_ARCH_FOOTBRIDGE is not set
145# CONFIG_ARCH_NETX is not set
146# CONFIG_ARCH_H720X is not set
147# CONFIG_ARCH_IMX is not set
148# CONFIG_ARCH_IOP13XX is not set
149# CONFIG_ARCH_IOP32X is not set
150# CONFIG_ARCH_IOP33X is not set
151# CONFIG_ARCH_IXP23XX is not set
152# CONFIG_ARCH_IXP2000 is not set
153# CONFIG_ARCH_IXP4XX is not set
154# CONFIG_ARCH_L7200 is not set
155# CONFIG_ARCH_KIRKWOOD is not set
156# CONFIG_ARCH_KS8695 is not set
157# CONFIG_ARCH_NS9XXX is not set
158# CONFIG_ARCH_LOKI is not set
159# CONFIG_ARCH_MV78XX0 is not set
160CONFIG_ARCH_MXC=y
161# CONFIG_ARCH_ORION5X is not set
162# CONFIG_ARCH_PNX4008 is not set
163# CONFIG_ARCH_PXA is not set
164# CONFIG_ARCH_RPC is not set
165# CONFIG_ARCH_SA1100 is not set
166# CONFIG_ARCH_S3C2410 is not set
167# CONFIG_ARCH_SHARK is not set
168# CONFIG_ARCH_LH7A40X is not set
169# CONFIG_ARCH_DAVINCI is not set
170# CONFIG_ARCH_OMAP is not set
171# CONFIG_ARCH_MSM7X00A is not set
172
173#
174# Boot options
175#
176
177#
178# Power management
179#
180
181#
182# Freescale MXC Implementations
183#
184# CONFIG_ARCH_MX2 is not set
185CONFIG_ARCH_MX3=y
186
187#
188# MX3 Options
189#
190# CONFIG_MACH_MX31ADS is not set
191# CONFIG_MACH_PCM037 is not set
192# CONFIG_MACH_MX31LITE is not set
193CONFIG_MACH_MX31MOBOARD=y
194# CONFIG_MXC_IRQ_PRIOR is not set
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_V6=y
201# CONFIG_CPU_32v6K is not set
202CONFIG_CPU_32v6=y
203CONFIG_CPU_ABRT_EV6=y
204CONFIG_CPU_PABRT_NOIFAR=y
205CONFIG_CPU_CACHE_V6=y
206CONFIG_CPU_CACHE_VIPT=y
207CONFIG_CPU_COPY_V6=y
208CONFIG_CPU_TLB_V6=y
209CONFIG_CPU_HAS_ASID=y
210CONFIG_CPU_CP15=y
211CONFIG_CPU_CP15_MMU=y
212
213#
214# Processor Features
215#
216CONFIG_ARM_THUMB=y
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_CPU_BPREDICT_DISABLE is not set
220# CONFIG_OUTER_CACHE is not set
221
222#
223# Bus support
224#
225# CONFIG_PCI_SYSCALL is not set
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227# CONFIG_PCCARD is not set
228
229#
230# Kernel Features
231#
232CONFIG_TICK_ONESHOT=y
233CONFIG_NO_HZ=y
234CONFIG_HIGH_RES_TIMERS=y
235CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
236CONFIG_PREEMPT=y
237CONFIG_HZ=100
238CONFIG_AEABI=y
239# CONFIG_OABI_COMPAT is not set
240CONFIG_ARCH_FLATMEM_HAS_HOLES=y
241# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
242CONFIG_SELECT_MEMORY_MODEL=y
243CONFIG_FLATMEM_MANUAL=y
244# CONFIG_DISCONTIGMEM_MANUAL is not set
245# CONFIG_SPARSEMEM_MANUAL is not set
246CONFIG_FLATMEM=y
247CONFIG_FLAT_NODE_MEM_MAP=y
248# CONFIG_SPARSEMEM_STATIC is not set
249# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
250CONFIG_PAGEFLAGS_EXTENDED=y
251CONFIG_SPLIT_PTLOCK_CPUS=4
252# CONFIG_RESOURCES_64BIT is not set
253CONFIG_ZONE_DMA_FLAG=1
254CONFIG_BOUNCE=y
255CONFIG_VIRT_TO_BUS=y
256CONFIG_ALIGNMENT_TRAP=y
257
258#
259# Boot options
260#
261CONFIG_ZBOOT_ROM_TEXT=0x0
262CONFIG_ZBOOT_ROM_BSS=0x0
263CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off"
264# CONFIG_XIP_KERNEL is not set
265# CONFIG_KEXEC is not set
266
267#
268# Floating point emulation
269#
270
271#
272# At least one emulation must be selected
273#
274CONFIG_VFP=y
275
276#
277# Userspace binary formats
278#
279CONFIG_BINFMT_ELF=y
280# CONFIG_BINFMT_AOUT is not set
281# CONFIG_BINFMT_MISC is not set
282
283#
284# Power management options
285#
286# CONFIG_PM is not set
287CONFIG_ARCH_SUSPEND_POSSIBLE=y
288CONFIG_NET=y
289
290#
291# Networking options
292#
293CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y
296# CONFIG_NET_KEY is not set
297CONFIG_INET=y
298# CONFIG_IP_MULTICAST is not set
299# CONFIG_IP_ADVANCED_ROUTER is not set
300CONFIG_IP_FIB_HASH=y
301CONFIG_IP_PNP=y
302CONFIG_IP_PNP_DHCP=y
303# CONFIG_IP_PNP_BOOTP is not set
304# CONFIG_IP_PNP_RARP is not set
305# CONFIG_NET_IPIP is not set
306# CONFIG_NET_IPGRE is not set
307# CONFIG_ARPD is not set
308# CONFIG_SYN_COOKIES is not set
309# CONFIG_INET_AH is not set
310# CONFIG_INET_ESP is not set
311# CONFIG_INET_IPCOMP is not set
312# CONFIG_INET_XFRM_TUNNEL is not set
313# CONFIG_INET_TUNNEL is not set
314# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
315# CONFIG_INET_XFRM_MODE_TUNNEL is not set
316# CONFIG_INET_XFRM_MODE_BEET is not set
317# CONFIG_INET_LRO is not set
318# CONFIG_INET_DIAG is not set
319# CONFIG_TCP_CONG_ADVANCED is not set
320CONFIG_TCP_CONG_CUBIC=y
321CONFIG_DEFAULT_TCP_CONG="cubic"
322# CONFIG_TCP_MD5SIG is not set
323# CONFIG_IPV6 is not set
324# CONFIG_NETWORK_SECMARK is not set
325# CONFIG_NETFILTER is not set
326# CONFIG_IP_DCCP is not set
327# CONFIG_IP_SCTP is not set
328# CONFIG_TIPC is not set
329# CONFIG_ATM is not set
330# CONFIG_BRIDGE is not set
331# CONFIG_VLAN_8021Q is not set
332# CONFIG_DECNET is not set
333# CONFIG_LLC2 is not set
334# CONFIG_IPX is not set
335# CONFIG_ATALK is not set
336# CONFIG_X25 is not set
337# CONFIG_LAPB is not set
338# CONFIG_ECONET is not set
339# CONFIG_WAN_ROUTER is not set
340# CONFIG_NET_SCHED is not set
341
342#
343# Network testing
344#
345# CONFIG_NET_PKTGEN is not set
346# CONFIG_HAMRADIO is not set
347# CONFIG_CAN is not set
348# CONFIG_IRDA is not set
349# CONFIG_BT is not set
350# CONFIG_AF_RXRPC is not set
351
352#
353# Wireless
354#
355# CONFIG_CFG80211 is not set
356# CONFIG_WIRELESS_EXT is not set
357# CONFIG_MAC80211 is not set
358# CONFIG_IEEE80211 is not set
359# CONFIG_RFKILL is not set
360# CONFIG_NET_9P is not set
361
362#
363# Device Drivers
364#
365
366#
367# Generic Driver Options
368#
369CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
370CONFIG_STANDALONE=y
371CONFIG_PREVENT_FIRMWARE_BUILD=y
372CONFIG_FW_LOADER=m
373CONFIG_FIRMWARE_IN_KERNEL=y
374CONFIG_EXTRA_FIRMWARE=""
375# CONFIG_SYS_HYPERVISOR is not set
376# CONFIG_CONNECTOR is not set
377CONFIG_MTD=y
378# CONFIG_MTD_DEBUG is not set
379# CONFIG_MTD_CONCAT is not set
380CONFIG_MTD_PARTITIONS=y
381CONFIG_MTD_REDBOOT_PARTS=y
382CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
383# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
384CONFIG_MTD_REDBOOT_PARTS_READONLY=y
385# CONFIG_MTD_CMDLINE_PARTS is not set
386# CONFIG_MTD_AFS_PARTS is not set
387# CONFIG_MTD_AR7_PARTS is not set
388
389#
390# User Modules And Translation Layers
391#
392CONFIG_MTD_CHAR=y
393CONFIG_MTD_BLKDEVS=y
394CONFIG_MTD_BLOCK=y
395# CONFIG_FTL is not set
396# CONFIG_NFTL is not set
397# CONFIG_INFTL is not set
398# CONFIG_RFD_FTL is not set
399# CONFIG_SSFDC is not set
400# CONFIG_MTD_OOPS is not set
401
402#
403# RAM/ROM/Flash chip drivers
404#
405CONFIG_MTD_CFI=y
406# CONFIG_MTD_JEDECPROBE is not set
407CONFIG_MTD_GEN_PROBE=y
408CONFIG_MTD_CFI_ADV_OPTIONS=y
409CONFIG_MTD_CFI_NOSWAP=y
410# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
411# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
412CONFIG_MTD_CFI_GEOMETRY=y
413# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
414CONFIG_MTD_MAP_BANK_WIDTH_2=y
415# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
416# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
417# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
418# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
419CONFIG_MTD_CFI_I1=y
420# CONFIG_MTD_CFI_I2 is not set
421# CONFIG_MTD_CFI_I4 is not set
422# CONFIG_MTD_CFI_I8 is not set
423# CONFIG_MTD_OTP is not set
424# CONFIG_MTD_CFI_INTELEXT is not set
425CONFIG_MTD_CFI_AMDSTD=y
426# CONFIG_MTD_CFI_STAA is not set
427CONFIG_MTD_CFI_UTIL=y
428# CONFIG_MTD_RAM is not set
429# CONFIG_MTD_ROM is not set
430# CONFIG_MTD_ABSENT is not set
431# CONFIG_MTD_XIP is not set
432
433#
434# Mapping drivers for chip access
435#
436# CONFIG_MTD_COMPLEX_MAPPINGS is not set
437CONFIG_MTD_PHYSMAP=y
438CONFIG_MTD_PHYSMAP_START=0x0
439CONFIG_MTD_PHYSMAP_LEN=0x0
440CONFIG_MTD_PHYSMAP_BANKWIDTH=2
441# CONFIG_MTD_ARM_INTEGRATOR is not set
442# CONFIG_MTD_PLATRAM is not set
443
444#
445# Self-contained MTD device drivers
446#
447# CONFIG_MTD_SLRAM is not set
448# CONFIG_MTD_PHRAM is not set
449# CONFIG_MTD_MTDRAM is not set
450# CONFIG_MTD_BLOCK2MTD is not set
451
452#
453# Disk-On-Chip Device Drivers
454#
455# CONFIG_MTD_DOC2000 is not set
456# CONFIG_MTD_DOC2001 is not set
457# CONFIG_MTD_DOC2001PLUS is not set
458# CONFIG_MTD_NAND is not set
459# CONFIG_MTD_ONENAND is not set
460
461#
462# UBI - Unsorted block images
463#
464# CONFIG_MTD_UBI is not set
465# CONFIG_PARPORT is not set
466# CONFIG_BLK_DEV is not set
467# CONFIG_MISC_DEVICES is not set
468CONFIG_HAVE_IDE=y
469# CONFIG_IDE is not set
470
471#
472# SCSI device support
473#
474# CONFIG_RAID_ATTRS is not set
475# CONFIG_SCSI is not set
476# CONFIG_SCSI_DMA is not set
477# CONFIG_SCSI_NETLINK is not set
478# CONFIG_ATA is not set
479# CONFIG_MD is not set
480CONFIG_NETDEVICES=y
481# CONFIG_DUMMY is not set
482# CONFIG_BONDING is not set
483# CONFIG_MACVLAN is not set
484# CONFIG_EQUALIZER is not set
485# CONFIG_TUN is not set
486# CONFIG_VETH is not set
487# CONFIG_PHYLIB is not set
488CONFIG_NET_ETHERNET=y
489CONFIG_MII=y
490# CONFIG_AX88796 is not set
491CONFIG_SMC91X=y
492# CONFIG_DM9000 is not set
493# CONFIG_IBM_NEW_EMAC_ZMII is not set
494# CONFIG_IBM_NEW_EMAC_RGMII is not set
495# CONFIG_IBM_NEW_EMAC_TAH is not set
496# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
497# CONFIG_B44 is not set
498# CONFIG_NETDEV_1000 is not set
499# CONFIG_NETDEV_10000 is not set
500
501#
502# Wireless LAN
503#
504# CONFIG_WLAN_PRE80211 is not set
505# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set
507# CONFIG_WAN is not set
508# CONFIG_PPP is not set
509# CONFIG_SLIP is not set
510# CONFIG_NETCONSOLE is not set
511# CONFIG_NETPOLL is not set
512# CONFIG_NET_POLL_CONTROLLER is not set
513# CONFIG_ISDN is not set
514
515#
516# Input device support
517#
518# CONFIG_INPUT is not set
519
520#
521# Hardware I/O ports
522#
523# CONFIG_SERIO is not set
524# CONFIG_GAMEPORT is not set
525
526#
527# Character devices
528#
529# CONFIG_VT is not set
530CONFIG_DEVKMEM=y
531# CONFIG_SERIAL_NONSTANDARD is not set
532
533#
534# Serial drivers
535#
536# CONFIG_SERIAL_8250 is not set
537
538#
539# Non-8250 serial port support
540#
541CONFIG_SERIAL_IMX=y
542CONFIG_SERIAL_IMX_CONSOLE=y
543CONFIG_SERIAL_CORE=y
544CONFIG_SERIAL_CORE_CONSOLE=y
545CONFIG_UNIX98_PTYS=y
546# CONFIG_LEGACY_PTYS is not set
547# CONFIG_IPMI_HANDLER is not set
548# CONFIG_HW_RANDOM is not set
549# CONFIG_NVRAM is not set
550# CONFIG_R3964 is not set
551# CONFIG_RAW_DRIVER is not set
552# CONFIG_TCG_TPM is not set
553# CONFIG_I2C is not set
554# CONFIG_SPI is not set
555CONFIG_ARCH_REQUIRE_GPIOLIB=y
556CONFIG_GPIOLIB=y
557# CONFIG_GPIO_SYSFS is not set
558
559#
560# I2C GPIO expanders:
561#
562
563#
564# PCI GPIO expanders:
565#
566
567#
568# SPI GPIO expanders:
569#
570# CONFIG_W1 is not set
571# CONFIG_POWER_SUPPLY is not set
572# CONFIG_HWMON is not set
573# CONFIG_WATCHDOG is not set
574
575#
576# Sonics Silicon Backplane
577#
578CONFIG_SSB_POSSIBLE=y
579# CONFIG_SSB is not set
580
581#
582# Multifunction device drivers
583#
584# CONFIG_MFD_CORE is not set
585# CONFIG_MFD_SM501 is not set
586# CONFIG_HTC_EGPIO is not set
587# CONFIG_HTC_PASIC3 is not set
588# CONFIG_MFD_TMIO is not set
589# CONFIG_MFD_T7L66XB is not set
590# CONFIG_MFD_TC6387XB is not set
591# CONFIG_MFD_TC6393XB is not set
592
593#
594# Multimedia devices
595#
596
597#
598# Multimedia core support
599#
600# CONFIG_VIDEO_DEV is not set
601# CONFIG_DVB_CORE is not set
602# CONFIG_VIDEO_MEDIA is not set
603
604#
605# Multimedia drivers
606#
607# CONFIG_DAB is not set
608
609#
610# Graphics support
611#
612# CONFIG_VGASTATE is not set
613# CONFIG_VIDEO_OUTPUT_CONTROL is not set
614# CONFIG_FB is not set
615# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
616
617#
618# Display device support
619#
620# CONFIG_DISPLAY_SUPPORT is not set
621# CONFIG_SOUND is not set
622# CONFIG_USB_SUPPORT is not set
623# CONFIG_MMC is not set
624# CONFIG_NEW_LEDS is not set
625CONFIG_RTC_LIB=y
626# CONFIG_RTC_CLASS is not set
627# CONFIG_DMADEVICES is not set
628
629#
630# Voltage and Current regulators
631#
632# CONFIG_REGULATOR is not set
633# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
634# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
635# CONFIG_REGULATOR_BQ24022 is not set
636# CONFIG_UIO is not set
637
638#
639# File systems
640#
641# CONFIG_EXT2_FS is not set
642# CONFIG_EXT3_FS is not set
643# CONFIG_EXT4DEV_FS is not set
644# CONFIG_REISERFS_FS is not set
645# CONFIG_JFS_FS is not set
646# CONFIG_FS_POSIX_ACL is not set
647# CONFIG_XFS_FS is not set
648# CONFIG_OCFS2_FS is not set
649# CONFIG_DNOTIFY is not set
650CONFIG_INOTIFY=y
651CONFIG_INOTIFY_USER=y
652# CONFIG_QUOTA is not set
653# CONFIG_AUTOFS_FS is not set
654# CONFIG_AUTOFS4_FS is not set
655# CONFIG_FUSE_FS is not set
656
657#
658# CD-ROM/DVD Filesystems
659#
660# CONFIG_ISO9660_FS is not set
661# CONFIG_UDF_FS is not set
662
663#
664# DOS/FAT/NT Filesystems
665#
666# CONFIG_MSDOS_FS is not set
667# CONFIG_VFAT_FS is not set
668# CONFIG_NTFS_FS is not set
669
670#
671# Pseudo filesystems
672#
673CONFIG_PROC_FS=y
674CONFIG_PROC_SYSCTL=y
675CONFIG_SYSFS=y
676CONFIG_TMPFS=y
677# CONFIG_TMPFS_POSIX_ACL is not set
678# CONFIG_HUGETLB_PAGE is not set
679# CONFIG_CONFIGFS_FS is not set
680
681#
682# Miscellaneous filesystems
683#
684# CONFIG_ADFS_FS is not set
685# CONFIG_AFFS_FS is not set
686# CONFIG_HFS_FS is not set
687# CONFIG_HFSPLUS_FS is not set
688# CONFIG_BEFS_FS is not set
689# CONFIG_BFS_FS is not set
690# CONFIG_EFS_FS is not set
691CONFIG_JFFS2_FS=y
692CONFIG_JFFS2_FS_DEBUG=0
693CONFIG_JFFS2_FS_WRITEBUFFER=y
694# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
695# CONFIG_JFFS2_SUMMARY is not set
696# CONFIG_JFFS2_FS_XATTR is not set
697# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
698CONFIG_JFFS2_ZLIB=y
699# CONFIG_JFFS2_LZO is not set
700CONFIG_JFFS2_RTIME=y
701# CONFIG_JFFS2_RUBIN is not set
702# CONFIG_CRAMFS is not set
703# CONFIG_VXFS_FS is not set
704# CONFIG_MINIX_FS is not set
705# CONFIG_OMFS_FS is not set
706# CONFIG_HPFS_FS is not set
707# CONFIG_QNX4FS_FS is not set
708# CONFIG_ROMFS_FS is not set
709# CONFIG_SYSV_FS is not set
710# CONFIG_UFS_FS is not set
711CONFIG_NETWORK_FILESYSTEMS=y
712CONFIG_NFS_FS=y
713# CONFIG_NFS_V3 is not set
714# CONFIG_NFS_V4 is not set
715CONFIG_ROOT_NFS=y
716# CONFIG_NFSD is not set
717CONFIG_LOCKD=y
718CONFIG_NFS_COMMON=y
719CONFIG_SUNRPC=y
720# CONFIG_RPCSEC_GSS_KRB5 is not set
721# CONFIG_RPCSEC_GSS_SPKM3 is not set
722# CONFIG_SMB_FS is not set
723# CONFIG_CIFS is not set
724# CONFIG_NCP_FS is not set
725# CONFIG_CODA_FS is not set
726# CONFIG_AFS_FS is not set
727
728#
729# Partition Types
730#
731# CONFIG_PARTITION_ADVANCED is not set
732CONFIG_MSDOS_PARTITION=y
733# CONFIG_NLS is not set
734# CONFIG_DLM is not set
735
736#
737# Kernel hacking
738#
739# CONFIG_PRINTK_TIME is not set
740# CONFIG_ENABLE_WARN_DEPRECATED is not set
741# CONFIG_ENABLE_MUST_CHECK is not set
742CONFIG_FRAME_WARN=1024
743# CONFIG_MAGIC_SYSRQ is not set
744# CONFIG_UNUSED_SYMBOLS is not set
745# CONFIG_DEBUG_FS is not set
746# CONFIG_HEADERS_CHECK is not set
747# CONFIG_DEBUG_KERNEL is not set
748# CONFIG_DEBUG_BUGVERBOSE is not set
749# CONFIG_DEBUG_MEMORY_INIT is not set
750CONFIG_FRAME_POINTER=y
751# CONFIG_LATENCYTOP is not set
752CONFIG_SYSCTL_SYSCALL_CHECK=y
753CONFIG_HAVE_FTRACE=y
754CONFIG_HAVE_DYNAMIC_FTRACE=y
755# CONFIG_FTRACE is not set
756# CONFIG_IRQSOFF_TRACER is not set
757# CONFIG_PREEMPT_TRACER is not set
758# CONFIG_SCHED_TRACER is not set
759# CONFIG_CONTEXT_SWITCH_TRACER is not set
760# CONFIG_SAMPLES is not set
761CONFIG_HAVE_ARCH_KGDB=y
762# CONFIG_DEBUG_USER is not set
763
764#
765# Security options
766#
767# CONFIG_KEYS is not set
768# CONFIG_SECURITY is not set
769# CONFIG_SECURITY_FILE_CAPABILITIES is not set
770# CONFIG_CRYPTO is not set
771
772#
773# Library routines
774#
775CONFIG_BITREVERSE=y
776# CONFIG_GENERIC_FIND_FIRST_BIT is not set
777# CONFIG_GENERIC_FIND_NEXT_BIT is not set
778# CONFIG_CRC_CCITT is not set
779# CONFIG_CRC16 is not set
780# CONFIG_CRC_T10DIF is not set
781# CONFIG_CRC_ITU_T is not set
782CONFIG_CRC32=y
783# CONFIG_CRC7 is not set
784# CONFIG_LIBCRC32C is not set
785CONFIG_ZLIB_INFLATE=y
786CONFIG_ZLIB_DEFLATE=y
787CONFIG_PLIST=y
788CONFIG_HAS_IOMEM=y
789CONFIG_HAS_IOPORT=y
790CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/mx31litekit_defconfig b/arch/arm/configs/mx3_defconfig
index 4f41c4135685..20ada526f6de 100644
--- a/arch/arm/configs/mx31litekit_defconfig
+++ b/arch/arm/configs/mx3_defconfig
@@ -1,17 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.30-rc1
4# Fri Jun 13 14:23:39 2008 4# Wed Apr 8 11:06:37 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8# CONFIG_GENERIC_GPIO is not set 8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set 9CONFIG_GENERIC_TIME=y
10# CONFIG_GENERIC_CLOCKEVENTS is not set 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y 11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -21,9 +22,8 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y 25CONFIG_ARCH_MTD_XIP=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000 27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 29
@@ -43,11 +43,24 @@ CONFIG_SYSVIPC_SYSCTL=y
43# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_CLASSIC_RCU=y
51# CONFIG_TREE_RCU is not set
52# CONFIG_PREEMPT_RCU is not set
53# CONFIG_TREE_RCU_TRACE is not set
54# CONFIG_PREEMPT_RCU_TRACE is not set
46CONFIG_IKCONFIG=y 55CONFIG_IKCONFIG=y
47CONFIG_IKCONFIG_PROC=y 56CONFIG_IKCONFIG_PROC=y
48CONFIG_LOG_BUF_SHIFT=14 57CONFIG_LOG_BUF_SHIFT=14
58CONFIG_GROUP_SCHED=y
59CONFIG_FAIR_GROUP_SCHED=y
60# CONFIG_RT_GROUP_SCHED is not set
61CONFIG_USER_SCHED=y
62# CONFIG_CGROUP_SCHED is not set
49# CONFIG_CGROUPS is not set 63# CONFIG_CGROUPS is not set
50# CONFIG_GROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y 64CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y 65CONFIG_SYSFS_DEPRECATED_V2=y
53# CONFIG_RELAY is not set 66# CONFIG_RELAY is not set
@@ -55,27 +68,26 @@ CONFIG_SYSFS_DEPRECATED_V2=y
55# CONFIG_BLK_DEV_INITRD is not set 68# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y 69CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
71CONFIG_ANON_INODES=y
58CONFIG_EMBEDDED=y 72CONFIG_EMBEDDED=y
59CONFIG_UID16=y 73CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y 74CONFIG_SYSCTL_SYSCALL=y
61CONFIG_SYSCTL_SYSCALL_CHECK=y
62CONFIG_KALLSYMS=y 75CONFIG_KALLSYMS=y
63# CONFIG_KALLSYMS_ALL is not set
64# CONFIG_KALLSYMS_EXTRA_PASS is not set 76# CONFIG_KALLSYMS_EXTRA_PASS is not set
65CONFIG_HOTPLUG=y 77CONFIG_HOTPLUG=y
66CONFIG_PRINTK=y 78CONFIG_PRINTK=y
67CONFIG_BUG=y 79CONFIG_BUG=y
68CONFIG_ELF_CORE=y 80CONFIG_ELF_CORE=y
69CONFIG_COMPAT_BRK=y
70CONFIG_BASE_FULL=y 81CONFIG_BASE_FULL=y
71CONFIG_FUTEX=y 82CONFIG_FUTEX=y
72CONFIG_ANON_INODES=y
73CONFIG_EPOLL=y 83CONFIG_EPOLL=y
74CONFIG_SIGNALFD=y 84CONFIG_SIGNALFD=y
75CONFIG_TIMERFD=y 85CONFIG_TIMERFD=y
76CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
77CONFIG_SHMEM=y 87CONFIG_SHMEM=y
88CONFIG_AIO=y
78CONFIG_VM_EVENT_COUNTERS=y 89CONFIG_VM_EVENT_COUNTERS=y
90CONFIG_COMPAT_BRK=y
79CONFIG_SLAB=y 91CONFIG_SLAB=y
80# CONFIG_SLUB is not set 92# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set 93# CONFIG_SLOB is not set
@@ -85,11 +97,10 @@ CONFIG_HAVE_OPROFILE=y
85# CONFIG_KPROBES is not set 97# CONFIG_KPROBES is not set
86CONFIG_HAVE_KPROBES=y 98CONFIG_HAVE_KPROBES=y
87CONFIG_HAVE_KRETPROBES=y 99CONFIG_HAVE_KRETPROBES=y
88# CONFIG_HAVE_DMA_ATTRS is not set 100# CONFIG_SLOW_WORK is not set
89CONFIG_PROC_PAGE_MONITOR=y 101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
94CONFIG_MODULES=y 105CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -97,12 +108,10 @@ CONFIG_MODULE_UNLOAD=y
97CONFIG_MODULE_FORCE_UNLOAD=y 108CONFIG_MODULE_FORCE_UNLOAD=y
98CONFIG_MODVERSIONS=y 109CONFIG_MODVERSIONS=y
99# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
100CONFIG_KMOD=y
101CONFIG_BLOCK=y 111CONFIG_BLOCK=y
102# CONFIG_LBD is not set 112# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 113# CONFIG_BLK_DEV_BSG is not set
114# CONFIG_BLK_DEV_INTEGRITY is not set
106 115
107# 116#
108# IO Schedulers 117# IO Schedulers
@@ -116,7 +125,7 @@ CONFIG_IOSCHED_CFQ=y
116CONFIG_DEFAULT_CFQ=y 125CONFIG_DEFAULT_CFQ=y
117# CONFIG_DEFAULT_NOOP is not set 126# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="cfq" 127CONFIG_DEFAULT_IOSCHED="cfq"
119CONFIG_CLASSIC_RCU=y 128CONFIG_FREEZER=y
120 129
121# 130#
122# System Type 131# System Type
@@ -126,11 +135,10 @@ CONFIG_CLASSIC_RCU=y
126# CONFIG_ARCH_REALVIEW is not set 135# CONFIG_ARCH_REALVIEW is not set
127# CONFIG_ARCH_VERSATILE is not set 136# CONFIG_ARCH_VERSATILE is not set
128# CONFIG_ARCH_AT91 is not set 137# CONFIG_ARCH_AT91 is not set
129# CONFIG_ARCH_CLPS7500 is not set
130# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
131# CONFIG_ARCH_CO285 is not set
132# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
133# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
141# CONFIG_ARCH_GEMINI is not set
134# CONFIG_ARCH_FOOTBRIDGE is not set 142# CONFIG_ARCH_FOOTBRIDGE is not set
135# CONFIG_ARCH_NETX is not set 143# CONFIG_ARCH_NETX is not set
136# CONFIG_ARCH_H720X is not set 144# CONFIG_ARCH_H720X is not set
@@ -142,39 +150,47 @@ CONFIG_CLASSIC_RCU=y
142# CONFIG_ARCH_IXP2000 is not set 150# CONFIG_ARCH_IXP2000 is not set
143# CONFIG_ARCH_IXP4XX is not set 151# CONFIG_ARCH_IXP4XX is not set
144# CONFIG_ARCH_L7200 is not set 152# CONFIG_ARCH_L7200 is not set
153# CONFIG_ARCH_KIRKWOOD is not set
145# CONFIG_ARCH_KS8695 is not set 154# CONFIG_ARCH_KS8695 is not set
146# CONFIG_ARCH_NS9XXX is not set 155# CONFIG_ARCH_NS9XXX is not set
156# CONFIG_ARCH_LOKI is not set
157# CONFIG_ARCH_MV78XX0 is not set
147CONFIG_ARCH_MXC=y 158CONFIG_ARCH_MXC=y
148# CONFIG_ARCH_ORION5X is not set 159# CONFIG_ARCH_ORION5X is not set
149# CONFIG_ARCH_PNX4008 is not set 160# CONFIG_ARCH_PNX4008 is not set
150# CONFIG_ARCH_PXA is not set 161# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MMP is not set
151# CONFIG_ARCH_RPC is not set 163# CONFIG_ARCH_RPC is not set
152# CONFIG_ARCH_SA1100 is not set 164# CONFIG_ARCH_SA1100 is not set
153# CONFIG_ARCH_S3C2410 is not set 165# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set
154# CONFIG_ARCH_SHARK is not set 167# CONFIG_ARCH_SHARK is not set
155# CONFIG_ARCH_LH7A40X is not set 168# CONFIG_ARCH_LH7A40X is not set
156# CONFIG_ARCH_DAVINCI is not set 169# CONFIG_ARCH_DAVINCI is not set
157# CONFIG_ARCH_OMAP is not set 170# CONFIG_ARCH_OMAP is not set
158# CONFIG_ARCH_MSM7X00A is not set 171# CONFIG_ARCH_MSM is not set
159 172# CONFIG_ARCH_W90X900 is not set
160#
161# Boot options
162#
163
164#
165# Power management
166#
167 173
168# 174#
169# Freescale MXC Implementations 175# Freescale MXC Implementations
170# 176#
177# CONFIG_ARCH_MX1 is not set
178# CONFIG_ARCH_MX2 is not set
171CONFIG_ARCH_MX3=y 179CONFIG_ARCH_MX3=y
180CONFIG_ARCH_MX31=y
172 181
173# 182#
174# MX3 Options 183# MX3 platforms:
175# 184#
176# CONFIG_MACH_MX31ADS is not set 185CONFIG_MACH_MX31ADS=y
186CONFIG_MACH_MX31ADS_WM1133_EV1=y
187CONFIG_MACH_PCM037=y
177CONFIG_MACH_MX31LITE=y 188CONFIG_MACH_MX31LITE=y
189CONFIG_MACH_MX31_3DS=y
190CONFIG_MACH_MX31MOBOARD=y
191CONFIG_MACH_QONG=y
192CONFIG_MXC_IRQ_PRIOR=y
193CONFIG_MXC_PWM=y
178 194
179# 195#
180# Processor Type 196# Processor Type
@@ -200,45 +216,50 @@ CONFIG_ARM_THUMB=y
200# CONFIG_CPU_ICACHE_DISABLE is not set 216# CONFIG_CPU_ICACHE_DISABLE is not set
201# CONFIG_CPU_DCACHE_DISABLE is not set 217# CONFIG_CPU_DCACHE_DISABLE is not set
202# CONFIG_CPU_BPREDICT_DISABLE is not set 218# CONFIG_CPU_BPREDICT_DISABLE is not set
203# CONFIG_OUTER_CACHE is not set 219CONFIG_OUTER_CACHE=y
220CONFIG_CACHE_L2X0=y
221CONFIG_COMMON_CLKDEV=y
204 222
205# 223#
206# Bus support 224# Bus support
207# 225#
208# CONFIG_PCI_SYSCALL is not set 226# CONFIG_PCI_SYSCALL is not set
209# CONFIG_ARCH_SUPPORTS_MSI is not set 227# CONFIG_ARCH_SUPPORTS_MSI is not set
210CONFIG_PCCARD=m 228# CONFIG_PCCARD is not set
211# CONFIG_PCMCIA_DEBUG is not set
212# CONFIG_PCMCIA is not set
213
214#
215# PC-card bridges
216#
217 229
218# 230#
219# Kernel Features 231# Kernel Features
220# 232#
221# CONFIG_TICK_ONESHOT is not set 233CONFIG_TICK_ONESHOT=y
234CONFIG_NO_HZ=y
235CONFIG_HIGH_RES_TIMERS=y
236CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
237CONFIG_VMSPLIT_3G=y
238# CONFIG_VMSPLIT_2G is not set
239# CONFIG_VMSPLIT_1G is not set
240CONFIG_PAGE_OFFSET=0xC0000000
222CONFIG_PREEMPT=y 241CONFIG_PREEMPT=y
223# CONFIG_NO_IDLE_HZ is not set
224CONFIG_HZ=100 242CONFIG_HZ=100
225CONFIG_AEABI=y 243CONFIG_AEABI=y
226# CONFIG_OABI_COMPAT is not set 244CONFIG_OABI_COMPAT=y
227# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 245CONFIG_ARCH_FLATMEM_HAS_HOLES=y
246# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
247# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
248# CONFIG_HIGHMEM is not set
228CONFIG_SELECT_MEMORY_MODEL=y 249CONFIG_SELECT_MEMORY_MODEL=y
229CONFIG_FLATMEM_MANUAL=y 250CONFIG_FLATMEM_MANUAL=y
230# CONFIG_DISCONTIGMEM_MANUAL is not set 251# CONFIG_DISCONTIGMEM_MANUAL is not set
231# CONFIG_SPARSEMEM_MANUAL is not set 252# CONFIG_SPARSEMEM_MANUAL is not set
232CONFIG_FLATMEM=y 253CONFIG_FLATMEM=y
233CONFIG_FLAT_NODE_MEM_MAP=y 254CONFIG_FLAT_NODE_MEM_MAP=y
234# CONFIG_SPARSEMEM_STATIC is not set
235# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
236CONFIG_PAGEFLAGS_EXTENDED=y 255CONFIG_PAGEFLAGS_EXTENDED=y
237CONFIG_SPLIT_PTLOCK_CPUS=4 256CONFIG_SPLIT_PTLOCK_CPUS=4
238# CONFIG_RESOURCES_64BIT is not set 257# CONFIG_PHYS_ADDR_T_64BIT is not set
239CONFIG_ZONE_DMA_FLAG=1 258CONFIG_ZONE_DMA_FLAG=0
240CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 259CONFIG_VIRT_TO_BUS=y
260CONFIG_UNEVICTABLE_LRU=y
261CONFIG_HAVE_MLOCK=y
262CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242CONFIG_ALIGNMENT_TRAP=y 263CONFIG_ALIGNMENT_TRAP=y
243 264
244# 265#
@@ -251,33 +272,42 @@ CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off"
251# CONFIG_KEXEC is not set 272# CONFIG_KEXEC is not set
252 273
253# 274#
275# CPU Power Management
276#
277# CONFIG_CPU_IDLE is not set
278
279#
254# Floating point emulation 280# Floating point emulation
255# 281#
256 282
257# 283#
258# At least one emulation must be selected 284# At least one emulation must be selected
259# 285#
286# CONFIG_FPE_NWFPE is not set
287# CONFIG_FPE_FASTFPE is not set
260CONFIG_VFP=y 288CONFIG_VFP=y
261 289
262# 290#
263# Userspace binary formats 291# Userspace binary formats
264# 292#
265CONFIG_BINFMT_ELF=y 293CONFIG_BINFMT_ELF=y
266CONFIG_BINFMT_AOUT=y 294# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
295CONFIG_HAVE_AOUT=y
296# CONFIG_BINFMT_AOUT is not set
267# CONFIG_BINFMT_MISC is not set 297# CONFIG_BINFMT_MISC is not set
268 298
269# 299#
270# Power management options 300# Power management options
271# 301#
272CONFIG_PM=y 302CONFIG_PM=y
273# CONFIG_PM_DEBUG is not set 303CONFIG_PM_DEBUG=y
274# CONFIG_SUSPEND is not set 304# CONFIG_PM_VERBOSE is not set
305CONFIG_CAN_PM_TRACE=y
306CONFIG_PM_SLEEP=y
307CONFIG_SUSPEND=y
308CONFIG_SUSPEND_FREEZER=y
275# CONFIG_APM_EMULATION is not set 309# CONFIG_APM_EMULATION is not set
276CONFIG_ARCH_SUSPEND_POSSIBLE=y 310CONFIG_ARCH_SUSPEND_POSSIBLE=y
277
278#
279# Networking
280#
281CONFIG_NET=y 311CONFIG_NET=y
282 312
283# 313#
@@ -286,11 +316,6 @@ CONFIG_NET=y
286CONFIG_PACKET=y 316CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 318CONFIG_UNIX=y
289CONFIG_XFRM=y
290# CONFIG_XFRM_USER is not set
291# CONFIG_XFRM_SUB_POLICY is not set
292# CONFIG_XFRM_MIGRATE is not set
293# CONFIG_XFRM_STATISTICS is not set
294# CONFIG_NET_KEY is not set 319# CONFIG_NET_KEY is not set
295CONFIG_INET=y 320CONFIG_INET=y
296# CONFIG_IP_MULTICAST is not set 321# CONFIG_IP_MULTICAST is not set
@@ -309,12 +334,11 @@ CONFIG_IP_PNP_DHCP=y
309# CONFIG_INET_IPCOMP is not set 334# CONFIG_INET_IPCOMP is not set
310# CONFIG_INET_XFRM_TUNNEL is not set 335# CONFIG_INET_XFRM_TUNNEL is not set
311# CONFIG_INET_TUNNEL is not set 336# CONFIG_INET_TUNNEL is not set
312CONFIG_INET_XFRM_MODE_TRANSPORT=y 337# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
313CONFIG_INET_XFRM_MODE_TUNNEL=y 338# CONFIG_INET_XFRM_MODE_TUNNEL is not set
314CONFIG_INET_XFRM_MODE_BEET=y 339# CONFIG_INET_XFRM_MODE_BEET is not set
315# CONFIG_INET_LRO is not set 340# CONFIG_INET_LRO is not set
316CONFIG_INET_DIAG=y 341# CONFIG_INET_DIAG is not set
317CONFIG_INET_TCP_DIAG=y
318# CONFIG_TCP_CONG_ADVANCED is not set 342# CONFIG_TCP_CONG_ADVANCED is not set
319CONFIG_TCP_CONG_CUBIC=y 343CONFIG_TCP_CONG_CUBIC=y
320CONFIG_DEFAULT_TCP_CONG="cubic" 344CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -327,6 +351,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_TIPC is not set 351# CONFIG_TIPC is not set
328# CONFIG_ATM is not set 352# CONFIG_ATM is not set
329# CONFIG_BRIDGE is not set 353# CONFIG_BRIDGE is not set
354# CONFIG_NET_DSA is not set
330# CONFIG_VLAN_8021Q is not set 355# CONFIG_VLAN_8021Q is not set
331# CONFIG_DECNET is not set 356# CONFIG_DECNET is not set
332# CONFIG_LLC2 is not set 357# CONFIG_LLC2 is not set
@@ -336,7 +361,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_LAPB is not set 361# CONFIG_LAPB is not set
337# CONFIG_ECONET is not set 362# CONFIG_ECONET is not set
338# CONFIG_WAN_ROUTER is not set 363# CONFIG_WAN_ROUTER is not set
364# CONFIG_PHONET is not set
339# CONFIG_NET_SCHED is not set 365# CONFIG_NET_SCHED is not set
366# CONFIG_DCB is not set
340 367
341# 368#
342# Network testing 369# Network testing
@@ -347,14 +374,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_IRDA is not set 374# CONFIG_IRDA is not set
348# CONFIG_BT is not set 375# CONFIG_BT is not set
349# CONFIG_AF_RXRPC is not set 376# CONFIG_AF_RXRPC is not set
350 377# CONFIG_WIRELESS is not set
351# 378# CONFIG_WIMAX is not set
352# Wireless
353#
354# CONFIG_CFG80211 is not set
355# CONFIG_WIRELESS_EXT is not set
356# CONFIG_MAC80211 is not set
357# CONFIG_IEEE80211 is not set
358# CONFIG_RFKILL is not set 379# CONFIG_RFKILL is not set
359# CONFIG_NET_9P is not set 380# CONFIG_NET_9P is not set
360 381
@@ -369,18 +390,16 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
369CONFIG_STANDALONE=y 390CONFIG_STANDALONE=y
370CONFIG_PREVENT_FIRMWARE_BUILD=y 391CONFIG_PREVENT_FIRMWARE_BUILD=y
371CONFIG_FW_LOADER=m 392CONFIG_FW_LOADER=m
372# CONFIG_DEBUG_DRIVER is not set 393CONFIG_FIRMWARE_IN_KERNEL=y
373# CONFIG_DEBUG_DEVRES is not set 394CONFIG_EXTRA_FIRMWARE=""
374# CONFIG_SYS_HYPERVISOR is not set 395# CONFIG_SYS_HYPERVISOR is not set
375# CONFIG_CONNECTOR is not set 396# CONFIG_CONNECTOR is not set
376CONFIG_MTD=y 397CONFIG_MTD=y
377# CONFIG_MTD_DEBUG is not set 398# CONFIG_MTD_DEBUG is not set
378# CONFIG_MTD_CONCAT is not set 399# CONFIG_MTD_CONCAT is not set
379CONFIG_MTD_PARTITIONS=y 400CONFIG_MTD_PARTITIONS=y
380CONFIG_MTD_REDBOOT_PARTS=y 401# CONFIG_MTD_TESTS is not set
381CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 402# CONFIG_MTD_REDBOOT_PARTS is not set
382# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
383# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
384CONFIG_MTD_CMDLINE_PARTS=y 403CONFIG_MTD_CMDLINE_PARTS=y
385# CONFIG_MTD_AFS_PARTS is not set 404# CONFIG_MTD_AFS_PARTS is not set
386# CONFIG_MTD_AR7_PARTS is not set 405# CONFIG_MTD_AR7_PARTS is not set
@@ -404,36 +423,31 @@ CONFIG_MTD_BLOCK=y
404CONFIG_MTD_CFI=y 423CONFIG_MTD_CFI=y
405# CONFIG_MTD_JEDECPROBE is not set 424# CONFIG_MTD_JEDECPROBE is not set
406CONFIG_MTD_GEN_PROBE=y 425CONFIG_MTD_GEN_PROBE=y
407CONFIG_MTD_CFI_ADV_OPTIONS=y 426# CONFIG_MTD_CFI_ADV_OPTIONS is not set
408CONFIG_MTD_CFI_NOSWAP=y 427CONFIG_MTD_MAP_BANK_WIDTH_1=y
409# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
410# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
411CONFIG_MTD_CFI_GEOMETRY=y
412# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
413CONFIG_MTD_MAP_BANK_WIDTH_2=y 428CONFIG_MTD_MAP_BANK_WIDTH_2=y
414# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set 429CONFIG_MTD_MAP_BANK_WIDTH_4=y
415# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set 430# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
416# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set 431# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
417# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set 432# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
418CONFIG_MTD_CFI_I1=y 433CONFIG_MTD_CFI_I1=y
419# CONFIG_MTD_CFI_I2 is not set 434CONFIG_MTD_CFI_I2=y
420# CONFIG_MTD_CFI_I4 is not set 435# CONFIG_MTD_CFI_I4 is not set
421# CONFIG_MTD_CFI_I8 is not set 436# CONFIG_MTD_CFI_I8 is not set
422# CONFIG_MTD_OTP is not set
423# CONFIG_MTD_CFI_INTELEXT is not set 437# CONFIG_MTD_CFI_INTELEXT is not set
424CONFIG_MTD_CFI_AMDSTD=y 438# CONFIG_MTD_CFI_AMDSTD is not set
425# CONFIG_MTD_CFI_STAA is not set 439# CONFIG_MTD_CFI_STAA is not set
426CONFIG_MTD_CFI_UTIL=y 440CONFIG_MTD_CFI_UTIL=y
427CONFIG_MTD_RAM=y 441# CONFIG_MTD_RAM is not set
428# CONFIG_MTD_ROM is not set 442# CONFIG_MTD_ROM is not set
429# CONFIG_MTD_ABSENT is not set 443# CONFIG_MTD_ABSENT is not set
430# CONFIG_MTD_XIP is not set
431 444
432# 445#
433# Mapping drivers for chip access 446# Mapping drivers for chip access
434# 447#
435# CONFIG_MTD_COMPLEX_MAPPINGS is not set 448# CONFIG_MTD_COMPLEX_MAPPINGS is not set
436# CONFIG_MTD_PHYSMAP is not set 449CONFIG_MTD_PHYSMAP=y
450# CONFIG_MTD_PHYSMAP_COMPAT is not set
437# CONFIG_MTD_ARM_INTEGRATOR is not set 451# CONFIG_MTD_ARM_INTEGRATOR is not set
438# CONFIG_MTD_PLATRAM is not set 452# CONFIG_MTD_PLATRAM is not set
439 453
@@ -451,18 +465,15 @@ CONFIG_MTD_RAM=y
451# CONFIG_MTD_DOC2000 is not set 465# CONFIG_MTD_DOC2000 is not set
452# CONFIG_MTD_DOC2001 is not set 466# CONFIG_MTD_DOC2001 is not set
453# CONFIG_MTD_DOC2001PLUS is not set 467# CONFIG_MTD_DOC2001PLUS is not set
454CONFIG_MTD_NAND=y 468# CONFIG_MTD_NAND is not set
455# CONFIG_MTD_NAND_VERIFY_WRITE is not set
456# CONFIG_MTD_NAND_ECC_SMC is not set
457# CONFIG_MTD_NAND_MUSEUM_IDS is not set
458CONFIG_MTD_NAND_IDS=y
459# CONFIG_MTD_NAND_DISKONCHIP is not set
460# CONFIG_MTD_NAND_NANDSIM is not set
461# CONFIG_MTD_NAND_PLATFORM is not set
462# CONFIG_MTD_ALAUDA is not set
463# CONFIG_MTD_ONENAND is not set 469# CONFIG_MTD_ONENAND is not set
464 470
465# 471#
472# LPDDR flash memory drivers
473#
474# CONFIG_MTD_LPDDR is not set
475
476#
466# UBI - Unsorted block images 477# UBI - Unsorted block images
467# 478#
468# CONFIG_MTD_UBI is not set 479# CONFIG_MTD_UBI is not set
@@ -476,63 +487,58 @@ CONFIG_HAVE_IDE=y
476# SCSI device support 487# SCSI device support
477# 488#
478# CONFIG_RAID_ATTRS is not set 489# CONFIG_RAID_ATTRS is not set
479CONFIG_SCSI=y 490# CONFIG_SCSI is not set
480CONFIG_SCSI_DMA=y 491# CONFIG_SCSI_DMA is not set
481# CONFIG_SCSI_TGT is not set
482# CONFIG_SCSI_NETLINK is not set 492# CONFIG_SCSI_NETLINK is not set
483CONFIG_SCSI_PROC_FS=y
484
485#
486# SCSI support type (disk, tape, CD-ROM)
487#
488CONFIG_BLK_DEV_SD=y
489# CONFIG_CHR_DEV_ST is not set
490# CONFIG_CHR_DEV_OSST is not set
491# CONFIG_BLK_DEV_SR is not set
492# CONFIG_CHR_DEV_SG is not set
493# CONFIG_CHR_DEV_SCH is not set
494
495#
496# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
497#
498CONFIG_SCSI_MULTI_LUN=y
499# CONFIG_SCSI_CONSTANTS is not set
500# CONFIG_SCSI_LOGGING is not set
501# CONFIG_SCSI_SCAN_ASYNC is not set
502CONFIG_SCSI_WAIT_SCAN=m
503
504#
505# SCSI Transports
506#
507# CONFIG_SCSI_SPI_ATTRS is not set
508# CONFIG_SCSI_FC_ATTRS is not set
509# CONFIG_SCSI_ISCSI_ATTRS is not set
510# CONFIG_SCSI_SAS_LIBSAS is not set
511# CONFIG_SCSI_SRP_ATTRS is not set
512CONFIG_SCSI_LOWLEVEL=y
513# CONFIG_ISCSI_TCP is not set
514# CONFIG_SCSI_DEBUG is not set
515# CONFIG_ATA is not set 493# CONFIG_ATA is not set
516# CONFIG_MD is not set 494# CONFIG_MD is not set
517CONFIG_NETDEVICES=y 495CONFIG_NETDEVICES=y
518# CONFIG_NETDEVICES_MULTIQUEUE is not set 496CONFIG_COMPAT_NET_DEV_OPS=y
519# CONFIG_DUMMY is not set 497# CONFIG_DUMMY is not set
520# CONFIG_BONDING is not set 498# CONFIG_BONDING is not set
521# CONFIG_MACVLAN is not set 499# CONFIG_MACVLAN is not set
522# CONFIG_EQUALIZER is not set 500# CONFIG_EQUALIZER is not set
523# CONFIG_TUN is not set 501# CONFIG_TUN is not set
524# CONFIG_VETH is not set 502# CONFIG_VETH is not set
525# CONFIG_PHYLIB is not set 503CONFIG_PHYLIB=y
504
505#
506# MII PHY device drivers
507#
508# CONFIG_MARVELL_PHY is not set
509# CONFIG_DAVICOM_PHY is not set
510# CONFIG_QSEMI_PHY is not set
511# CONFIG_LXT_PHY is not set
512# CONFIG_CICADA_PHY is not set
513# CONFIG_VITESSE_PHY is not set
514CONFIG_SMSC_PHY=y
515# CONFIG_BROADCOM_PHY is not set
516# CONFIG_ICPLUS_PHY is not set
517# CONFIG_REALTEK_PHY is not set
518# CONFIG_NATIONAL_PHY is not set
519# CONFIG_STE10XP is not set
520# CONFIG_LSI_ET1011C_PHY is not set
521# CONFIG_FIXED_PHY is not set
522# CONFIG_MDIO_BITBANG is not set
526CONFIG_NET_ETHERNET=y 523CONFIG_NET_ETHERNET=y
527CONFIG_MII=y 524CONFIG_MII=y
528# CONFIG_AX88796 is not set 525# CONFIG_AX88796 is not set
529# CONFIG_SMC91X is not set 526# CONFIG_SMC91X is not set
530# CONFIG_DM9000 is not set 527# CONFIG_DM9000 is not set
528# CONFIG_ETHOC is not set
529# CONFIG_SMC911X is not set
530CONFIG_SMSC911X=y
531# CONFIG_DNET is not set
531# CONFIG_IBM_NEW_EMAC_ZMII is not set 532# CONFIG_IBM_NEW_EMAC_ZMII is not set
532# CONFIG_IBM_NEW_EMAC_RGMII is not set 533# CONFIG_IBM_NEW_EMAC_RGMII is not set
533# CONFIG_IBM_NEW_EMAC_TAH is not set 534# CONFIG_IBM_NEW_EMAC_TAH is not set
534# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 535# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
536# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
537# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
538# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
535# CONFIG_B44 is not set 539# CONFIG_B44 is not set
540CONFIG_CS89x0=y
541CONFIG_CS89x0_NONISA_IRQ=y
536# CONFIG_NETDEV_1000 is not set 542# CONFIG_NETDEV_1000 is not set
537# CONFIG_NETDEV_10000 is not set 543# CONFIG_NETDEV_10000 is not set
538 544
@@ -541,16 +547,10 @@ CONFIG_MII=y
541# 547#
542# CONFIG_WLAN_PRE80211 is not set 548# CONFIG_WLAN_PRE80211 is not set
543# CONFIG_WLAN_80211 is not set 549# CONFIG_WLAN_80211 is not set
544# CONFIG_IWLWIFI_LEDS is not set
545 550
546# 551#
547# USB Network Adapters 552# Enable WiMAX (Networking options) to see the WiMAX drivers
548# 553#
549# CONFIG_USB_CATC is not set
550# CONFIG_USB_KAWETH is not set
551# CONFIG_USB_PEGASUS is not set
552# CONFIG_USB_RTL8150 is not set
553# CONFIG_USB_USBNET is not set
554# CONFIG_WAN is not set 554# CONFIG_WAN is not set
555# CONFIG_PPP is not set 555# CONFIG_PPP is not set
556# CONFIG_SLIP is not set 556# CONFIG_SLIP is not set
@@ -562,43 +562,7 @@ CONFIG_MII=y
562# 562#
563# Input device support 563# Input device support
564# 564#
565CONFIG_INPUT=y 565# CONFIG_INPUT is not set
566# CONFIG_INPUT_FF_MEMLESS is not set
567# CONFIG_INPUT_POLLDEV is not set
568
569#
570# Userland interfaces
571#
572# CONFIG_INPUT_MOUSEDEV is not set
573# CONFIG_INPUT_JOYDEV is not set
574CONFIG_INPUT_EVDEV=y
575# CONFIG_INPUT_EVBUG is not set
576
577#
578# Input Device Drivers
579#
580CONFIG_INPUT_KEYBOARD=y
581# CONFIG_KEYBOARD_ATKBD is not set
582# CONFIG_KEYBOARD_SUNKBD is not set
583# CONFIG_KEYBOARD_LKKBD is not set
584# CONFIG_KEYBOARD_XTKBD is not set
585# CONFIG_KEYBOARD_NEWTON is not set
586# CONFIG_KEYBOARD_STOWAWAY is not set
587# CONFIG_INPUT_MOUSE is not set
588# CONFIG_INPUT_JOYSTICK is not set
589# CONFIG_INPUT_TABLET is not set
590CONFIG_INPUT_TOUCHSCREEN=y
591# CONFIG_TOUCHSCREEN_FUJITSU is not set
592# CONFIG_TOUCHSCREEN_GUNZE is not set
593# CONFIG_TOUCHSCREEN_ELO is not set
594# CONFIG_TOUCHSCREEN_MTOUCH is not set
595# CONFIG_TOUCHSCREEN_MK712 is not set
596# CONFIG_TOUCHSCREEN_PENMOUNT is not set
597# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
598# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
599# CONFIG_TOUCHSCREEN_UCB1400 is not set
600# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
601# CONFIG_INPUT_MISC is not set
602 566
603# 567#
604# Hardware I/O ports 568# Hardware I/O ports
@@ -609,10 +573,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
609# 573#
610# Character devices 574# Character devices
611# 575#
612CONFIG_VT=y 576# CONFIG_VT is not set
613CONFIG_VT_CONSOLE=y
614CONFIG_HW_CONSOLE=y
615# CONFIG_VT_HW_CONSOLE_BINDING is not set
616CONFIG_DEVKMEM=y 577CONFIG_DEVKMEM=y
617# CONFIG_SERIAL_NONSTANDARD is not set 578# CONFIG_SERIAL_NONSTANDARD is not set
618 579
@@ -624,45 +585,132 @@ CONFIG_DEVKMEM=y
624# 585#
625# Non-8250 serial port support 586# Non-8250 serial port support
626# 587#
588CONFIG_SERIAL_IMX=y
589CONFIG_SERIAL_IMX_CONSOLE=y
590CONFIG_SERIAL_CORE=y
591CONFIG_SERIAL_CORE_CONSOLE=y
627CONFIG_UNIX98_PTYS=y 592CONFIG_UNIX98_PTYS=y
628CONFIG_LEGACY_PTYS=y 593# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
629CONFIG_LEGACY_PTY_COUNT=256 594# CONFIG_LEGACY_PTYS is not set
630# CONFIG_IPMI_HANDLER is not set 595# CONFIG_IPMI_HANDLER is not set
631CONFIG_HW_RANDOM=y 596# CONFIG_HW_RANDOM is not set
632# CONFIG_NVRAM is not set
633# CONFIG_R3964 is not set 597# CONFIG_R3964 is not set
634# CONFIG_RAW_DRIVER is not set 598# CONFIG_RAW_DRIVER is not set
635# CONFIG_TCG_TPM is not set 599# CONFIG_TCG_TPM is not set
636# CONFIG_I2C is not set 600CONFIG_I2C=y
601CONFIG_I2C_BOARDINFO=y
602CONFIG_I2C_CHARDEV=y
603CONFIG_I2C_HELPER_AUTO=y
604
605#
606# I2C Hardware Bus support
607#
608
609#
610# I2C system bus drivers (mostly embedded / system-on-chip)
611#
612# CONFIG_I2C_GPIO is not set
613CONFIG_I2C_IMX=y
614# CONFIG_I2C_OCORES is not set
615# CONFIG_I2C_SIMTEC is not set
616
617#
618# External I2C/SMBus adapter drivers
619#
620# CONFIG_I2C_PARPORT_LIGHT is not set
621# CONFIG_I2C_TAOS_EVM is not set
622
623#
624# Other I2C/SMBus bus drivers
625#
626# CONFIG_I2C_PCA_PLATFORM is not set
627# CONFIG_I2C_STUB is not set
628
629#
630# Miscellaneous I2C Chip support
631#
632# CONFIG_DS1682 is not set
633# CONFIG_SENSORS_PCF8574 is not set
634# CONFIG_PCF8575 is not set
635# CONFIG_SENSORS_PCA9539 is not set
636# CONFIG_SENSORS_MAX6875 is not set
637# CONFIG_SENSORS_TSL2550 is not set
638# CONFIG_I2C_DEBUG_CORE is not set
639# CONFIG_I2C_DEBUG_ALGO is not set
640# CONFIG_I2C_DEBUG_BUS is not set
641# CONFIG_I2C_DEBUG_CHIP is not set
637# CONFIG_SPI is not set 642# CONFIG_SPI is not set
638# CONFIG_W1 is not set 643CONFIG_ARCH_REQUIRE_GPIOLIB=y
639# CONFIG_POWER_SUPPLY is not set 644CONFIG_GPIOLIB=y
640# CONFIG_HWMON is not set 645# CONFIG_GPIO_SYSFS is not set
641CONFIG_WATCHDOG=y
642CONFIG_WATCHDOG_NOWAYOUT=y
643 646
644# 647#
645# Watchdog Device Drivers 648# Memory mapped GPIO expanders:
646# 649#
647# CONFIG_SOFT_WATCHDOG is not set
648 650
649# 651#
650# USB-based Watchdog Cards 652# I2C GPIO expanders:
651# 653#
652# CONFIG_USBPCWATCHDOG is not set 654# CONFIG_GPIO_MAX732X is not set
655# CONFIG_GPIO_PCA953X is not set
656# CONFIG_GPIO_PCF857X is not set
653 657
654# 658#
655# Sonics Silicon Backplane 659# PCI GPIO expanders:
656# 660#
661
662#
663# SPI GPIO expanders:
664#
665CONFIG_W1=y
666
667#
668# 1-wire Bus Masters
669#
670# CONFIG_W1_MASTER_DS2482 is not set
671CONFIG_W1_MASTER_MXC=y
672# CONFIG_W1_MASTER_GPIO is not set
673
674#
675# 1-wire Slaves
676#
677CONFIG_W1_SLAVE_THERM=y
678# CONFIG_W1_SLAVE_SMEM is not set
679# CONFIG_W1_SLAVE_DS2431 is not set
680# CONFIG_W1_SLAVE_DS2433 is not set
681# CONFIG_W1_SLAVE_DS2760 is not set
682# CONFIG_W1_SLAVE_BQ27000 is not set
683# CONFIG_POWER_SUPPLY is not set
684# CONFIG_HWMON is not set
685# CONFIG_THERMAL is not set
686# CONFIG_THERMAL_HWMON is not set
687# CONFIG_WATCHDOG is not set
657CONFIG_SSB_POSSIBLE=y 688CONFIG_SSB_POSSIBLE=y
689
690#
691# Sonics Silicon Backplane
692#
658# CONFIG_SSB is not set 693# CONFIG_SSB is not set
659 694
660# 695#
661# Multifunction device drivers 696# Multifunction device drivers
662# 697#
698# CONFIG_MFD_CORE is not set
663# CONFIG_MFD_SM501 is not set 699# CONFIG_MFD_SM501 is not set
664# CONFIG_MFD_ASIC3 is not set 700# CONFIG_MFD_ASIC3 is not set
701# CONFIG_HTC_EGPIO is not set
665# CONFIG_HTC_PASIC3 is not set 702# CONFIG_HTC_PASIC3 is not set
703# CONFIG_TPS65010 is not set
704# CONFIG_TWL4030_CORE is not set
705# CONFIG_MFD_TMIO is not set
706# CONFIG_MFD_TC6393XB is not set
707# CONFIG_PMIC_DA903X is not set
708# CONFIG_MFD_WM8400 is not set
709CONFIG_MFD_WM8350=y
710CONFIG_MFD_WM8350_CONFIG_MODE_0=y
711CONFIG_MFD_WM8352_CONFIG_MODE_0=y
712CONFIG_MFD_WM8350_I2C=y
713# CONFIG_MFD_PCF50633 is not set
666 714
667# 715#
668# Multimedia devices 716# Multimedia devices
@@ -673,7 +721,7 @@ CONFIG_SSB_POSSIBLE=y
673# 721#
674CONFIG_VIDEO_DEV=y 722CONFIG_VIDEO_DEV=y
675CONFIG_VIDEO_V4L2_COMMON=y 723CONFIG_VIDEO_V4L2_COMMON=y
676CONFIG_VIDEO_ALLOW_V4L1=y 724# CONFIG_VIDEO_ALLOW_V4L1 is not set
677CONFIG_VIDEO_V4L1_COMPAT=y 725CONFIG_VIDEO_V4L1_COMPAT=y
678# CONFIG_DVB_CORE is not set 726# CONFIG_DVB_CORE is not set
679CONFIG_VIDEO_MEDIA=y 727CONFIG_VIDEO_MEDIA=y
@@ -682,34 +730,38 @@ CONFIG_VIDEO_MEDIA=y
682# Multimedia drivers 730# Multimedia drivers
683# 731#
684# CONFIG_MEDIA_ATTACH is not set 732# CONFIG_MEDIA_ATTACH is not set
733CONFIG_MEDIA_TUNER=y
734# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
735CONFIG_MEDIA_TUNER_SIMPLE=y
736CONFIG_MEDIA_TUNER_TDA8290=y
737CONFIG_MEDIA_TUNER_TDA9887=y
738CONFIG_MEDIA_TUNER_TEA5761=y
739CONFIG_MEDIA_TUNER_TEA5767=y
740CONFIG_MEDIA_TUNER_MT20XX=y
741CONFIG_MEDIA_TUNER_XC2028=y
742CONFIG_MEDIA_TUNER_XC5000=y
743CONFIG_MEDIA_TUNER_MC44S803=y
685CONFIG_VIDEO_V4L2=y 744CONFIG_VIDEO_V4L2=y
686CONFIG_VIDEO_V4L1=y 745CONFIG_VIDEOBUF_GEN=y
746CONFIG_VIDEOBUF_DMA_CONTIG=y
687CONFIG_VIDEO_CAPTURE_DRIVERS=y 747CONFIG_VIDEO_CAPTURE_DRIVERS=y
688# CONFIG_VIDEO_ADV_DEBUG is not set 748# CONFIG_VIDEO_ADV_DEBUG is not set
749# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
689CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 750CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
690# CONFIG_VIDEO_VIVI is not set 751# CONFIG_VIDEO_VIVI is not set
691# CONFIG_VIDEO_CPIA is not set 752# CONFIG_VIDEO_SAA5246A is not set
692# CONFIG_VIDEO_CPIA2 is not set 753# CONFIG_VIDEO_SAA5249 is not set
693CONFIG_V4L_USB_DRIVERS=y 754CONFIG_SOC_CAMERA=y
694# CONFIG_USB_VICAM is not set 755CONFIG_SOC_CAMERA_MT9M001=y
695# CONFIG_USB_IBMCAM is not set 756CONFIG_SOC_CAMERA_MT9M111=y
696# CONFIG_USB_KONICAWC is not set 757CONFIG_SOC_CAMERA_MT9T031=y
697# CONFIG_USB_QUICKCAM_MESSENGER is not set 758CONFIG_SOC_CAMERA_MT9V022=y
698# CONFIG_USB_ET61X251 is not set 759CONFIG_SOC_CAMERA_TW9910=y
699# CONFIG_USB_OV511 is not set 760# CONFIG_SOC_CAMERA_PLATFORM is not set
700# CONFIG_USB_SE401 is not set 761# CONFIG_SOC_CAMERA_OV772X is not set
701# CONFIG_USB_SN9C102 is not set 762CONFIG_VIDEO_MX3=y
702# CONFIG_USB_STV680 is not set 763# CONFIG_RADIO_ADAPTERS is not set
703# CONFIG_USB_ZC0301 is not set 764# CONFIG_DAB is not set
704# CONFIG_USB_PWC is not set
705# CONFIG_USB_ZR364XX is not set
706# CONFIG_USB_STKWEBCAM is not set
707# CONFIG_SOC_CAMERA is not set
708CONFIG_RADIO_ADAPTERS=y
709# CONFIG_USB_DSBR is not set
710# CONFIG_USB_SI470X is not set
711CONFIG_DAB=y
712# CONFIG_USB_DABUSB is not set
713 765
714# 766#
715# Graphics support 767# Graphics support
@@ -719,9 +771,10 @@ CONFIG_DAB=y
719CONFIG_FB=y 771CONFIG_FB=y
720# CONFIG_FIRMWARE_EDID is not set 772# CONFIG_FIRMWARE_EDID is not set
721# CONFIG_FB_DDC is not set 773# CONFIG_FB_DDC is not set
722# CONFIG_FB_CFB_FILLRECT is not set 774# CONFIG_FB_BOOT_VESA_SUPPORT is not set
723# CONFIG_FB_CFB_COPYAREA is not set 775CONFIG_FB_CFB_FILLRECT=y
724# CONFIG_FB_CFB_IMAGEBLIT is not set 776CONFIG_FB_CFB_COPYAREA=y
777CONFIG_FB_CFB_IMAGEBLIT=y
725# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 778# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
726# CONFIG_FB_SYS_FILLRECT is not set 779# CONFIG_FB_SYS_FILLRECT is not set
727# CONFIG_FB_SYS_COPYAREA is not set 780# CONFIG_FB_SYS_COPYAREA is not set
@@ -739,131 +792,79 @@ CONFIG_FB=y
739# 792#
740# CONFIG_FB_S1D13XXX is not set 793# CONFIG_FB_S1D13XXX is not set
741# CONFIG_FB_VIRTUAL is not set 794# CONFIG_FB_VIRTUAL is not set
795# CONFIG_FB_METRONOME is not set
796# CONFIG_FB_MB862XX is not set
797CONFIG_FB_MX3=y
798# CONFIG_FB_BROADSHEET is not set
742# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 799# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
743 800
744# 801#
745# Display device support 802# Display device support
746# 803#
747# CONFIG_DISPLAY_SUPPORT is not set 804# CONFIG_DISPLAY_SUPPORT is not set
748 805# CONFIG_LOGO is not set
749#
750# Console display driver support
751#
752# CONFIG_VGA_CONSOLE is not set
753CONFIG_DUMMY_CONSOLE=y
754CONFIG_FRAMEBUFFER_CONSOLE=y
755# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
756# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
757# CONFIG_FONTS is not set
758CONFIG_FONT_8x8=y
759CONFIG_FONT_8x16=y
760CONFIG_LOGO=y
761# CONFIG_LOGO_LINUX_MONO is not set
762# CONFIG_LOGO_LINUX_VGA16 is not set
763CONFIG_LOGO_LINUX_CLUT224=y
764
765#
766# Sound
767#
768# CONFIG_SOUND is not set 806# CONFIG_SOUND is not set
769# CONFIG_HID_SUPPORT is not set 807# CONFIG_USB_SUPPORT is not set
770CONFIG_USB_SUPPORT=y 808CONFIG_MMC=y
771CONFIG_USB_ARCH_HAS_HCD=y 809# CONFIG_MMC_DEBUG is not set
772# CONFIG_USB_ARCH_HAS_OHCI is not set 810# CONFIG_MMC_UNSAFE_RESUME is not set
773# CONFIG_USB_ARCH_HAS_EHCI is not set
774CONFIG_USB=y
775# CONFIG_USB_DEBUG is not set
776# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
777 811
778# 812#
779# Miscellaneous USB options 813# MMC/SD/SDIO Card Drivers
780# 814#
781# CONFIG_USB_DEVICEFS is not set 815CONFIG_MMC_BLOCK=y
782CONFIG_USB_DEVICE_CLASS=y 816CONFIG_MMC_BLOCK_BOUNCE=y
783# CONFIG_USB_DYNAMIC_MINORS is not set 817# CONFIG_SDIO_UART is not set
784# CONFIG_USB_SUSPEND is not set 818# CONFIG_MMC_TEST is not set
785# CONFIG_USB_OTG is not set
786# CONFIG_USB_OTG_WHITELIST is not set
787# CONFIG_USB_OTG_BLACKLIST_HUB is not set
788 819
789# 820#
790# USB Host Controller Drivers 821# MMC/SD/SDIO Host Controller Drivers
791# 822#
792# CONFIG_USB_C67X00_HCD is not set 823# CONFIG_MMC_SDHCI is not set
793# CONFIG_USB_ISP116X_HCD is not set 824CONFIG_MMC_MXC=y
794# CONFIG_USB_ISP1760_HCD is not set 825# CONFIG_MEMSTICK is not set
795# CONFIG_USB_SL811_HCD is not set 826# CONFIG_ACCESSIBILITY is not set
796# CONFIG_USB_R8A66597_HCD is not set 827# CONFIG_NEW_LEDS is not set
797 828CONFIG_RTC_LIB=y
798# 829# CONFIG_RTC_CLASS is not set
799# USB Device Class drivers 830CONFIG_DMADEVICES=y
800#
801# CONFIG_USB_ACM is not set
802# CONFIG_USB_PRINTER is not set
803# CONFIG_USB_WDM is not set
804
805#
806# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
807#
808
809#
810# may also be needed; see USB_STORAGE Help for more information
811#
812# CONFIG_USB_STORAGE is not set
813# CONFIG_USB_LIBUSUAL is not set
814
815#
816# USB Imaging devices
817#
818# CONFIG_USB_MDC800 is not set
819# CONFIG_USB_MICROTEK is not set
820CONFIG_USB_MON=y
821 831
822# 832#
823# USB port drivers 833# DMA Devices
824# 834#
825# CONFIG_USB_SERIAL is not set 835CONFIG_MX3_IPU=y
836CONFIG_MX3_IPU_IRQS=4
837CONFIG_DMA_ENGINE=y
826 838
827# 839#
828# USB Miscellaneous drivers 840# DMA Clients
829# 841#
830# CONFIG_USB_EMI62 is not set 842# CONFIG_NET_DMA is not set
831# CONFIG_USB_EMI26 is not set 843# CONFIG_ASYNC_TX_DMA is not set
832# CONFIG_USB_ADUTUX is not set 844# CONFIG_DMATEST is not set
833# CONFIG_USB_AUERSWALD is not set 845# CONFIG_AUXDISPLAY is not set
834# CONFIG_USB_RIO500 is not set 846CONFIG_REGULATOR=y
835# CONFIG_USB_LEGOTOWER is not set 847# CONFIG_REGULATOR_DEBUG is not set
836# CONFIG_USB_LCD is not set 848# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
837# CONFIG_USB_BERRY_CHARGE is not set 849# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
838# CONFIG_USB_LED is not set 850# CONFIG_REGULATOR_BQ24022 is not set
839# CONFIG_USB_CYPRESS_CY7C63 is not set 851CONFIG_REGULATOR_WM8350=y
840# CONFIG_USB_CYTHERM is not set
841# CONFIG_USB_PHIDGET is not set
842# CONFIG_USB_IDMOUSE is not set
843# CONFIG_USB_FTDI_ELAN is not set
844# CONFIG_USB_APPLEDISPLAY is not set
845# CONFIG_USB_LD is not set
846# CONFIG_USB_TRANCEVIBRATOR is not set
847# CONFIG_USB_IOWARRIOR is not set
848# CONFIG_USB_ISIGHTFW is not set
849# CONFIG_USB_GADGET is not set
850# CONFIG_MMC is not set
851# CONFIG_NEW_LEDS is not set
852CONFIG_RTC_LIB=y
853# CONFIG_RTC_CLASS is not set
854# CONFIG_UIO is not set 852# CONFIG_UIO is not set
853# CONFIG_STAGING is not set
855 854
856# 855#
857# File systems 856# File systems
858# 857#
859# CONFIG_EXT2_FS is not set 858# CONFIG_EXT2_FS is not set
860# CONFIG_EXT3_FS is not set 859# CONFIG_EXT3_FS is not set
861# CONFIG_EXT4DEV_FS is not set 860# CONFIG_EXT4_FS is not set
862# CONFIG_REISERFS_FS is not set 861# CONFIG_REISERFS_FS is not set
863# CONFIG_JFS_FS is not set 862# CONFIG_JFS_FS is not set
864# CONFIG_FS_POSIX_ACL is not set 863# CONFIG_FS_POSIX_ACL is not set
864CONFIG_FILE_LOCKING=y
865# CONFIG_XFS_FS is not set 865# CONFIG_XFS_FS is not set
866# CONFIG_OCFS2_FS is not set 866# CONFIG_OCFS2_FS is not set
867# CONFIG_BTRFS_FS is not set
867# CONFIG_DNOTIFY is not set 868# CONFIG_DNOTIFY is not set
868CONFIG_INOTIFY=y 869CONFIG_INOTIFY=y
869CONFIG_INOTIFY_USER=y 870CONFIG_INOTIFY_USER=y
@@ -873,6 +874,11 @@ CONFIG_INOTIFY_USER=y
873# CONFIG_FUSE_FS is not set 874# CONFIG_FUSE_FS is not set
874 875
875# 876#
877# Caches
878#
879# CONFIG_FSCACHE is not set
880
881#
876# CD-ROM/DVD Filesystems 882# CD-ROM/DVD Filesystems
877# 883#
878# CONFIG_ISO9660_FS is not set 884# CONFIG_ISO9660_FS is not set
@@ -890,15 +896,13 @@ CONFIG_INOTIFY_USER=y
890# 896#
891CONFIG_PROC_FS=y 897CONFIG_PROC_FS=y
892CONFIG_PROC_SYSCTL=y 898CONFIG_PROC_SYSCTL=y
899CONFIG_PROC_PAGE_MONITOR=y
893CONFIG_SYSFS=y 900CONFIG_SYSFS=y
894CONFIG_TMPFS=y 901CONFIG_TMPFS=y
895# CONFIG_TMPFS_POSIX_ACL is not set 902# CONFIG_TMPFS_POSIX_ACL is not set
896# CONFIG_HUGETLB_PAGE is not set 903# CONFIG_HUGETLB_PAGE is not set
897# CONFIG_CONFIGFS_FS is not set 904# CONFIG_CONFIGFS_FS is not set
898 905CONFIG_MISC_FILESYSTEMS=y
899#
900# Miscellaneous filesystems
901#
902# CONFIG_ADFS_FS is not set 906# CONFIG_ADFS_FS is not set
903# CONFIG_AFFS_FS is not set 907# CONFIG_AFFS_FS is not set
904# CONFIG_HFS_FS is not set 908# CONFIG_HFS_FS is not set
@@ -917,25 +921,30 @@ CONFIG_JFFS2_ZLIB=y
917# CONFIG_JFFS2_LZO is not set 921# CONFIG_JFFS2_LZO is not set
918CONFIG_JFFS2_RTIME=y 922CONFIG_JFFS2_RTIME=y
919# CONFIG_JFFS2_RUBIN is not set 923# CONFIG_JFFS2_RUBIN is not set
920CONFIG_CRAMFS=y 924# CONFIG_CRAMFS is not set
925# CONFIG_SQUASHFS is not set
921# CONFIG_VXFS_FS is not set 926# CONFIG_VXFS_FS is not set
922# CONFIG_MINIX_FS is not set 927# CONFIG_MINIX_FS is not set
928# CONFIG_OMFS_FS is not set
923# CONFIG_HPFS_FS is not set 929# CONFIG_HPFS_FS is not set
924# CONFIG_QNX4FS_FS is not set 930# CONFIG_QNX4FS_FS is not set
925# CONFIG_ROMFS_FS is not set 931# CONFIG_ROMFS_FS is not set
926# CONFIG_SYSV_FS is not set 932# CONFIG_SYSV_FS is not set
927# CONFIG_UFS_FS is not set 933# CONFIG_UFS_FS is not set
934# CONFIG_NILFS2_FS is not set
928CONFIG_NETWORK_FILESYSTEMS=y 935CONFIG_NETWORK_FILESYSTEMS=y
929CONFIG_NFS_FS=y 936CONFIG_NFS_FS=y
930# CONFIG_NFS_V3 is not set 937CONFIG_NFS_V3=y
931# CONFIG_NFS_V4 is not set 938# CONFIG_NFS_V3_ACL is not set
932# CONFIG_NFSD is not set 939CONFIG_NFS_V4=y
933CONFIG_ROOT_NFS=y 940CONFIG_ROOT_NFS=y
941# CONFIG_NFSD is not set
934CONFIG_LOCKD=y 942CONFIG_LOCKD=y
943CONFIG_LOCKD_V4=y
935CONFIG_NFS_COMMON=y 944CONFIG_NFS_COMMON=y
936CONFIG_SUNRPC=y 945CONFIG_SUNRPC=y
937# CONFIG_SUNRPC_BIND34 is not set 946CONFIG_SUNRPC_GSS=y
938# CONFIG_RPCSEC_GSS_KRB5 is not set 947CONFIG_RPCSEC_GSS_KRB5=y
939# CONFIG_RPCSEC_GSS_SPKM3 is not set 948# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set 949# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set 950# CONFIG_CIFS is not set
@@ -954,65 +963,70 @@ CONFIG_MSDOS_PARTITION=y
954# 963#
955# Kernel hacking 964# Kernel hacking
956# 965#
957CONFIG_PRINTK_TIME=y 966# CONFIG_PRINTK_TIME is not set
958CONFIG_ENABLE_WARN_DEPRECATED=y 967# CONFIG_ENABLE_WARN_DEPRECATED is not set
959CONFIG_ENABLE_MUST_CHECK=y 968# CONFIG_ENABLE_MUST_CHECK is not set
960CONFIG_FRAME_WARN=1024 969CONFIG_FRAME_WARN=1024
961# CONFIG_MAGIC_SYSRQ is not set 970# CONFIG_MAGIC_SYSRQ is not set
962# CONFIG_UNUSED_SYMBOLS is not set 971# CONFIG_UNUSED_SYMBOLS is not set
963# CONFIG_DEBUG_FS is not set 972# CONFIG_DEBUG_FS is not set
964# CONFIG_HEADERS_CHECK is not set 973# CONFIG_HEADERS_CHECK is not set
965CONFIG_DEBUG_KERNEL=y 974# CONFIG_DEBUG_KERNEL is not set
966# CONFIG_DEBUG_SHIRQ is not set 975# CONFIG_DEBUG_BUGVERBOSE is not set
967CONFIG_DETECT_SOFTLOCKUP=y 976# CONFIG_DEBUG_MEMORY_INIT is not set
968CONFIG_SCHED_DEBUG=y 977# CONFIG_RCU_CPU_STALL_DETECTOR is not set
969# CONFIG_SCHEDSTATS is not set 978# CONFIG_LATENCYTOP is not set
970# CONFIG_TIMER_STATS is not set 979CONFIG_SYSCTL_SYSCALL_CHECK=y
971# CONFIG_DEBUG_OBJECTS is not set 980CONFIG_HAVE_FUNCTION_TRACER=y
972# CONFIG_DEBUG_SLAB is not set 981CONFIG_TRACING_SUPPORT=y
973CONFIG_DEBUG_PREEMPT=y 982
974# CONFIG_DEBUG_RT_MUTEXES is not set 983#
975# CONFIG_RT_MUTEX_TESTER is not set 984# Tracers
976# CONFIG_DEBUG_SPINLOCK is not set 985#
977# CONFIG_DEBUG_MUTEXES is not set 986# CONFIG_FUNCTION_TRACER is not set
978# CONFIG_DEBUG_LOCK_ALLOC is not set 987# CONFIG_IRQSOFF_TRACER is not set
979# CONFIG_PROVE_LOCKING is not set 988# CONFIG_PREEMPT_TRACER is not set
980# CONFIG_LOCK_STAT is not set 989# CONFIG_SCHED_TRACER is not set
981# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 990# CONFIG_CONTEXT_SWITCH_TRACER is not set
982# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 991# CONFIG_EVENT_TRACER is not set
983# CONFIG_DEBUG_KOBJECT is not set 992# CONFIG_BOOT_TRACER is not set
984CONFIG_DEBUG_BUGVERBOSE=y 993# CONFIG_TRACE_BRANCH_PROFILING is not set
985# CONFIG_DEBUG_INFO is not set 994# CONFIG_STACK_TRACER is not set
986# CONFIG_DEBUG_VM is not set 995# CONFIG_KMEMTRACE is not set
987# CONFIG_DEBUG_WRITECOUNT is not set 996# CONFIG_WORKQUEUE_TRACER is not set
988# CONFIG_DEBUG_LIST is not set 997# CONFIG_BLK_DEV_IO_TRACE is not set
989# CONFIG_DEBUG_SG is not set
990CONFIG_FRAME_POINTER=y
991# CONFIG_BOOT_PRINTK_DELAY is not set
992# CONFIG_RCU_TORTURE_TEST is not set
993# CONFIG_BACKTRACE_SELF_TEST is not set
994# CONFIG_FAULT_INJECTION is not set
995# CONFIG_SAMPLES is not set 998# CONFIG_SAMPLES is not set
999CONFIG_HAVE_ARCH_KGDB=y
1000CONFIG_ARM_UNWIND=y
996# CONFIG_DEBUG_USER is not set 1001# CONFIG_DEBUG_USER is not set
997CONFIG_DEBUG_ERRORS=y
998# CONFIG_DEBUG_STACK_USAGE is not set
999CONFIG_DEBUG_LL=y
1000# CONFIG_DEBUG_ICEDCC is not set
1001 1002
1002# 1003#
1003# Security options 1004# Security options
1004# 1005#
1005# CONFIG_KEYS is not set 1006# CONFIG_KEYS is not set
1006# CONFIG_SECURITY is not set 1007# CONFIG_SECURITY is not set
1008# CONFIG_SECURITYFS is not set
1007# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1009# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1008CONFIG_CRYPTO=y 1010CONFIG_CRYPTO=y
1009 1011
1010# 1012#
1011# Crypto core or helper 1013# Crypto core or helper
1012# 1014#
1013# CONFIG_CRYPTO_MANAGER is not set 1015# CONFIG_CRYPTO_FIPS is not set
1016CONFIG_CRYPTO_ALGAPI=y
1017CONFIG_CRYPTO_ALGAPI2=y
1018CONFIG_CRYPTO_AEAD2=y
1019CONFIG_CRYPTO_BLKCIPHER=y
1020CONFIG_CRYPTO_BLKCIPHER2=y
1021CONFIG_CRYPTO_HASH=y
1022CONFIG_CRYPTO_HASH2=y
1023CONFIG_CRYPTO_RNG2=y
1024CONFIG_CRYPTO_PCOMP=y
1025CONFIG_CRYPTO_MANAGER=y
1026CONFIG_CRYPTO_MANAGER2=y
1014# CONFIG_CRYPTO_GF128MUL is not set 1027# CONFIG_CRYPTO_GF128MUL is not set
1015# CONFIG_CRYPTO_NULL is not set 1028# CONFIG_CRYPTO_NULL is not set
1029CONFIG_CRYPTO_WORKQUEUE=y
1016# CONFIG_CRYPTO_CRYPTD is not set 1030# CONFIG_CRYPTO_CRYPTD is not set
1017# CONFIG_CRYPTO_AUTHENC is not set 1031# CONFIG_CRYPTO_AUTHENC is not set
1018# CONFIG_CRYPTO_TEST is not set 1032# CONFIG_CRYPTO_TEST is not set
@@ -1027,7 +1041,7 @@ CONFIG_CRYPTO=y
1027# 1041#
1028# Block modes 1042# Block modes
1029# 1043#
1030# CONFIG_CRYPTO_CBC is not set 1044CONFIG_CRYPTO_CBC=y
1031# CONFIG_CRYPTO_CTR is not set 1045# CONFIG_CRYPTO_CTR is not set
1032# CONFIG_CRYPTO_CTS is not set 1046# CONFIG_CRYPTO_CTS is not set
1033# CONFIG_CRYPTO_ECB is not set 1047# CONFIG_CRYPTO_ECB is not set
@@ -1046,8 +1060,12 @@ CONFIG_CRYPTO=y
1046# 1060#
1047# CONFIG_CRYPTO_CRC32C is not set 1061# CONFIG_CRYPTO_CRC32C is not set
1048# CONFIG_CRYPTO_MD4 is not set 1062# CONFIG_CRYPTO_MD4 is not set
1049# CONFIG_CRYPTO_MD5 is not set 1063CONFIG_CRYPTO_MD5=y
1050# CONFIG_CRYPTO_MICHAEL_MIC is not set 1064# CONFIG_CRYPTO_MICHAEL_MIC is not set
1065# CONFIG_CRYPTO_RMD128 is not set
1066# CONFIG_CRYPTO_RMD160 is not set
1067# CONFIG_CRYPTO_RMD256 is not set
1068# CONFIG_CRYPTO_RMD320 is not set
1051# CONFIG_CRYPTO_SHA1 is not set 1069# CONFIG_CRYPTO_SHA1 is not set
1052# CONFIG_CRYPTO_SHA256 is not set 1070# CONFIG_CRYPTO_SHA256 is not set
1053# CONFIG_CRYPTO_SHA512 is not set 1071# CONFIG_CRYPTO_SHA512 is not set
@@ -1064,7 +1082,7 @@ CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_CAMELLIA is not set 1082# CONFIG_CRYPTO_CAMELLIA is not set
1065# CONFIG_CRYPTO_CAST5 is not set 1083# CONFIG_CRYPTO_CAST5 is not set
1066# CONFIG_CRYPTO_CAST6 is not set 1084# CONFIG_CRYPTO_CAST6 is not set
1067# CONFIG_CRYPTO_DES is not set 1085CONFIG_CRYPTO_DES=y
1068# CONFIG_CRYPTO_FCRYPT is not set 1086# CONFIG_CRYPTO_FCRYPT is not set
1069# CONFIG_CRYPTO_KHAZAD is not set 1087# CONFIG_CRYPTO_KHAZAD is not set
1070# CONFIG_CRYPTO_SALSA20 is not set 1088# CONFIG_CRYPTO_SALSA20 is not set
@@ -1077,24 +1095,31 @@ CONFIG_CRYPTO=y
1077# Compression 1095# Compression
1078# 1096#
1079# CONFIG_CRYPTO_DEFLATE is not set 1097# CONFIG_CRYPTO_DEFLATE is not set
1098# CONFIG_CRYPTO_ZLIB is not set
1080# CONFIG_CRYPTO_LZO is not set 1099# CONFIG_CRYPTO_LZO is not set
1100
1101#
1102# Random Number Generation
1103#
1104# CONFIG_CRYPTO_ANSI_CPRNG is not set
1081CONFIG_CRYPTO_HW=y 1105CONFIG_CRYPTO_HW=y
1106# CONFIG_BINARY_PRINTF is not set
1082 1107
1083# 1108#
1084# Library routines 1109# Library routines
1085# 1110#
1086CONFIG_BITREVERSE=y 1111CONFIG_BITREVERSE=y
1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1112CONFIG_GENERIC_FIND_LAST_BIT=y
1088# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1113# CONFIG_CRC_CCITT is not set
1089CONFIG_CRC_CCITT=m
1090# CONFIG_CRC16 is not set 1114# CONFIG_CRC16 is not set
1115# CONFIG_CRC_T10DIF is not set
1091# CONFIG_CRC_ITU_T is not set 1116# CONFIG_CRC_ITU_T is not set
1092CONFIG_CRC32=y 1117CONFIG_CRC32=y
1093# CONFIG_CRC7 is not set 1118# CONFIG_CRC7 is not set
1094# CONFIG_LIBCRC32C is not set 1119# CONFIG_LIBCRC32C is not set
1095CONFIG_ZLIB_INFLATE=y 1120CONFIG_ZLIB_INFLATE=y
1096CONFIG_ZLIB_DEFLATE=y 1121CONFIG_ZLIB_DEFLATE=y
1097CONFIG_PLIST=y
1098CONFIG_HAS_IOMEM=y 1122CONFIG_HAS_IOMEM=y
1099CONFIG_HAS_IOPORT=y 1123CONFIG_HAS_IOPORT=y
1100CONFIG_HAS_DMA=y 1124CONFIG_HAS_DMA=y
1125CONFIG_NLATTR=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 020e6a8a9e5c..5b98f7645119 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_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-rc4 3# Linux kernel version: 2.6.30-rc4
4# Fri Aug 22 12:38:51 2008 4# Mon May 4 14:07:25 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -22,8 +22,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 25CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
28CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -44,10 +42,19 @@ CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
45# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
46# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
45
46#
47# RCU Subsystem
48#
49CONFIG_CLASSIC_RCU=y
50# CONFIG_TREE_RCU is not set
51# CONFIG_PREEMPT_RCU is not set
52# CONFIG_TREE_RCU_TRACE is not set
53# CONFIG_PREEMPT_RCU_TRACE is not set
47# CONFIG_IKCONFIG is not set 54# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14 55CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_CGROUPS is not set
50# CONFIG_GROUP_SCHED is not set 56# CONFIG_GROUP_SCHED is not set
57# CONFIG_CGROUPS is not set
51CONFIG_SYSFS_DEPRECATED=y 58CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y 59CONFIG_SYSFS_DEPRECATED_V2=y
53# CONFIG_RELAY is not set 60# CONFIG_RELAY is not set
@@ -55,48 +62,45 @@ CONFIG_SYSFS_DEPRECATED_V2=y
55# CONFIG_BLK_DEV_INITRD is not set 62# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y 63CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
58CONFIG_EMBEDDED=y 66CONFIG_EMBEDDED=y
59CONFIG_UID16=y 67CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
61CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
62CONFIG_KALLSYMS_ALL=y 70CONFIG_KALLSYMS_ALL=y
63# CONFIG_KALLSYMS_EXTRA_PASS is not set 71# CONFIG_KALLSYMS_EXTRA_PASS is not set
72# CONFIG_STRIP_ASM_SYMS is not set
64CONFIG_HOTPLUG=y 73CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y 74CONFIG_PRINTK=y
66CONFIG_BUG=y 75CONFIG_BUG=y
67CONFIG_ELF_CORE=y 76CONFIG_ELF_CORE=y
68CONFIG_COMPAT_BRK=y
69CONFIG_BASE_FULL=y 77CONFIG_BASE_FULL=y
70CONFIG_FUTEX=y 78CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
72CONFIG_EPOLL=y 79CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y 80CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y 81CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y 82CONFIG_EVENTFD=y
76CONFIG_SHMEM=y 83CONFIG_SHMEM=y
84CONFIG_AIO=y
77CONFIG_VM_EVENT_COUNTERS=y 85CONFIG_VM_EVENT_COUNTERS=y
86CONFIG_PCI_QUIRKS=y
78# CONFIG_SLUB_DEBUG is not set 87# CONFIG_SLUB_DEBUG is not set
88CONFIG_COMPAT_BRK=y
79# CONFIG_SLAB is not set 89# CONFIG_SLAB is not set
80CONFIG_SLUB=y 90CONFIG_SLUB=y
81# CONFIG_SLOB is not set 91# CONFIG_SLOB is not set
82CONFIG_PROFILING=y 92CONFIG_PROFILING=y
93CONFIG_TRACEPOINTS=y
83# CONFIG_MARKERS is not set 94# CONFIG_MARKERS is not set
84CONFIG_OPROFILE=y 95CONFIG_OPROFILE=y
85CONFIG_HAVE_OPROFILE=y 96CONFIG_HAVE_OPROFILE=y
86CONFIG_KPROBES=y 97CONFIG_KPROBES=y
87# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
88CONFIG_KRETPROBES=y 98CONFIG_KRETPROBES=y
89# CONFIG_HAVE_IOREMAP_PROT is not set
90CONFIG_HAVE_KPROBES=y 99CONFIG_HAVE_KPROBES=y
91CONFIG_HAVE_KRETPROBES=y 100CONFIG_HAVE_KRETPROBES=y
92# CONFIG_HAVE_ARCH_TRACEHOOK is not set 101# CONFIG_SLOW_WORK is not set
93# CONFIG_HAVE_DMA_ATTRS is not set
94# CONFIG_USE_GENERIC_SMP_HELPERS is not set
95# CONFIG_HAVE_CLK is not set
96CONFIG_PROC_PAGE_MONITOR=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y 102CONFIG_HAVE_GENERIC_DMA_COHERENT=y
98CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
99# CONFIG_TINY_SHMEM is not set
100CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
101CONFIG_MODULES=y 105CONFIG_MODULES=y
102# CONFIG_MODULE_FORCE_LOAD is not set 106# CONFIG_MODULE_FORCE_LOAD is not set
@@ -104,11 +108,8 @@ CONFIG_MODULE_UNLOAD=y
104# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
105# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
106# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
107CONFIG_KMOD=y
108CONFIG_BLOCK=y 111CONFIG_BLOCK=y
109# CONFIG_LBD is not set 112# CONFIG_LBD is not set
110# CONFIG_BLK_DEV_IO_TRACE is not set
111# CONFIG_LSF is not set
112# CONFIG_BLK_DEV_BSG is not set 113# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set 114# CONFIG_BLK_DEV_INTEGRITY is not set
114 115
@@ -124,7 +125,7 @@ CONFIG_IOSCHED_CFQ=y
124CONFIG_DEFAULT_CFQ=y 125CONFIG_DEFAULT_CFQ=y
125# CONFIG_DEFAULT_NOOP is not set 126# CONFIG_DEFAULT_NOOP is not set
126CONFIG_DEFAULT_IOSCHED="cfq" 127CONFIG_DEFAULT_IOSCHED="cfq"
127CONFIG_CLASSIC_RCU=y 128# CONFIG_FREEZER is not set
128 129
129# 130#
130# System Type 131# System Type
@@ -134,10 +135,10 @@ CONFIG_CLASSIC_RCU=y
134# CONFIG_ARCH_REALVIEW is not set 135# CONFIG_ARCH_REALVIEW is not set
135# CONFIG_ARCH_VERSATILE is not set 136# CONFIG_ARCH_VERSATILE is not set
136# CONFIG_ARCH_AT91 is not set 137# CONFIG_ARCH_AT91 is not set
137# CONFIG_ARCH_CLPS7500 is not set
138# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
139# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
140# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
141# CONFIG_ARCH_GEMINI is not set
141# CONFIG_ARCH_FOOTBRIDGE is not set 142# CONFIG_ARCH_FOOTBRIDGE is not set
142# CONFIG_ARCH_NETX is not set 143# CONFIG_ARCH_NETX is not set
143# CONFIG_ARCH_H720X is not set 144# CONFIG_ARCH_H720X is not set
@@ -158,14 +159,17 @@ CONFIG_CLASSIC_RCU=y
158CONFIG_ARCH_ORION5X=y 159CONFIG_ARCH_ORION5X=y
159# CONFIG_ARCH_PNX4008 is not set 160# CONFIG_ARCH_PNX4008 is not set
160# CONFIG_ARCH_PXA is not set 161# CONFIG_ARCH_PXA is not set
162# CONFIG_ARCH_MMP is not set
161# CONFIG_ARCH_RPC is not set 163# CONFIG_ARCH_RPC is not set
162# CONFIG_ARCH_SA1100 is not set 164# CONFIG_ARCH_SA1100 is not set
163# CONFIG_ARCH_S3C2410 is not set 165# CONFIG_ARCH_S3C2410 is not set
166# CONFIG_ARCH_S3C64XX is not set
164# CONFIG_ARCH_SHARK is not set 167# CONFIG_ARCH_SHARK is not set
165# CONFIG_ARCH_LH7A40X is not set 168# CONFIG_ARCH_LH7A40X is not set
166# CONFIG_ARCH_DAVINCI is not set 169# CONFIG_ARCH_DAVINCI is not set
167# CONFIG_ARCH_OMAP is not set 170# CONFIG_ARCH_OMAP is not set
168# CONFIG_ARCH_MSM7X00A is not set 171# CONFIG_ARCH_MSM is not set
172# CONFIG_ARCH_W90X900 is not set
169 173
170# 174#
171# Orion Implementations 175# Orion Implementations
@@ -175,6 +179,7 @@ CONFIG_MACH_RD88F5182=y
175CONFIG_MACH_KUROBOX_PRO=y 179CONFIG_MACH_KUROBOX_PRO=y
176CONFIG_MACH_DNS323=y 180CONFIG_MACH_DNS323=y
177CONFIG_MACH_TS209=y 181CONFIG_MACH_TS209=y
182CONFIG_MACH_TERASTATION_PRO2=y
178CONFIG_MACH_LINKSTATION_PRO=y 183CONFIG_MACH_LINKSTATION_PRO=y
179CONFIG_MACH_LINKSTATION_MINI=y 184CONFIG_MACH_LINKSTATION_MINI=y
180CONFIG_MACH_TS409=y 185CONFIG_MACH_TS409=y
@@ -187,14 +192,6 @@ CONFIG_MACH_WNR854T=y
187CONFIG_MACH_RD88F5181L_GE=y 192CONFIG_MACH_RD88F5181L_GE=y
188CONFIG_MACH_RD88F5181L_FXO=y 193CONFIG_MACH_RD88F5181L_FXO=y
189CONFIG_MACH_RD88F6183AP_GE=y 194CONFIG_MACH_RD88F6183AP_GE=y
190
191#
192# Boot options
193#
194
195#
196# Power management
197#
198CONFIG_PLAT_ORION=y 195CONFIG_PLAT_ORION=y
199 196
200# 197#
@@ -228,6 +225,8 @@ CONFIG_PCI_SYSCALL=y
228# CONFIG_ARCH_SUPPORTS_MSI is not set 225# CONFIG_ARCH_SUPPORTS_MSI is not set
229CONFIG_PCI_LEGACY=y 226CONFIG_PCI_LEGACY=y
230# CONFIG_PCI_DEBUG is not set 227# CONFIG_PCI_DEBUG is not set
228# CONFIG_PCI_STUB is not set
229# CONFIG_PCI_IOV is not set
231# CONFIG_PCCARD is not set 230# CONFIG_PCCARD is not set
232 231
233# 232#
@@ -237,25 +236,32 @@ CONFIG_TICK_ONESHOT=y
237CONFIG_NO_HZ=y 236CONFIG_NO_HZ=y
238CONFIG_HIGH_RES_TIMERS=y 237CONFIG_HIGH_RES_TIMERS=y
239CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 238CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
239CONFIG_VMSPLIT_3G=y
240# CONFIG_VMSPLIT_2G is not set
241# CONFIG_VMSPLIT_1G is not set
242CONFIG_PAGE_OFFSET=0xC0000000
240CONFIG_PREEMPT=y 243CONFIG_PREEMPT=y
241CONFIG_HZ=100 244CONFIG_HZ=100
242CONFIG_AEABI=y 245CONFIG_AEABI=y
243CONFIG_OABI_COMPAT=y 246CONFIG_OABI_COMPAT=y
244# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 247CONFIG_ARCH_FLATMEM_HAS_HOLES=y
248# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
249# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
250# CONFIG_HIGHMEM is not set
245CONFIG_SELECT_MEMORY_MODEL=y 251CONFIG_SELECT_MEMORY_MODEL=y
246CONFIG_FLATMEM_MANUAL=y 252CONFIG_FLATMEM_MANUAL=y
247# CONFIG_DISCONTIGMEM_MANUAL is not set 253# CONFIG_DISCONTIGMEM_MANUAL is not set
248# CONFIG_SPARSEMEM_MANUAL is not set 254# CONFIG_SPARSEMEM_MANUAL is not set
249CONFIG_FLATMEM=y 255CONFIG_FLATMEM=y
250CONFIG_FLAT_NODE_MEM_MAP=y 256CONFIG_FLAT_NODE_MEM_MAP=y
251# CONFIG_SPARSEMEM_STATIC is not set
252# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
253CONFIG_PAGEFLAGS_EXTENDED=y 257CONFIG_PAGEFLAGS_EXTENDED=y
254CONFIG_SPLIT_PTLOCK_CPUS=4096 258CONFIG_SPLIT_PTLOCK_CPUS=4096
255# CONFIG_RESOURCES_64BIT is not set 259# CONFIG_PHYS_ADDR_T_64BIT is not set
256CONFIG_ZONE_DMA_FLAG=1 260CONFIG_ZONE_DMA_FLAG=0
257CONFIG_BOUNCE=y
258CONFIG_VIRT_TO_BUS=y 261CONFIG_VIRT_TO_BUS=y
262CONFIG_UNEVICTABLE_LRU=y
263CONFIG_HAVE_MLOCK=y
264CONFIG_HAVE_MLOCKED_PAGE_BIT=y
259CONFIG_LEDS=y 265CONFIG_LEDS=y
260CONFIG_LEDS_CPU=y 266CONFIG_LEDS_CPU=y
261CONFIG_ALIGNMENT_TRAP=y 267CONFIG_ALIGNMENT_TRAP=y
@@ -270,6 +276,11 @@ CONFIG_CMDLINE=""
270# CONFIG_KEXEC is not set 276# CONFIG_KEXEC is not set
271 277
272# 278#
279# CPU Power Management
280#
281# CONFIG_CPU_IDLE is not set
282
283#
273# Floating point emulation 284# Floating point emulation
274# 285#
275 286
@@ -285,13 +296,18 @@ CONFIG_VFP=y
285# Userspace binary formats 296# Userspace binary formats
286# 297#
287CONFIG_BINFMT_ELF=y 298CONFIG_BINFMT_ELF=y
299# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
300CONFIG_HAVE_AOUT=y
288# CONFIG_BINFMT_AOUT is not set 301# CONFIG_BINFMT_AOUT is not set
289# CONFIG_BINFMT_MISC is not set 302# CONFIG_BINFMT_MISC is not set
290 303
291# 304#
292# Power management options 305# Power management options
293# 306#
294# CONFIG_PM is not set 307CONFIG_PM=y
308# CONFIG_PM_DEBUG is not set
309# CONFIG_SUSPEND is not set
310# CONFIG_APM_EMULATION is not set
295CONFIG_ARCH_SUSPEND_POSSIBLE=y 311CONFIG_ARCH_SUSPEND_POSSIBLE=y
296CONFIG_NET=y 312CONFIG_NET=y
297 313
@@ -328,7 +344,7 @@ CONFIG_IP_PNP_BOOTP=y
328CONFIG_INET_XFRM_MODE_TRANSPORT=y 344CONFIG_INET_XFRM_MODE_TRANSPORT=y
329CONFIG_INET_XFRM_MODE_TUNNEL=y 345CONFIG_INET_XFRM_MODE_TUNNEL=y
330CONFIG_INET_XFRM_MODE_BEET=y 346CONFIG_INET_XFRM_MODE_BEET=y
331# CONFIG_INET_LRO is not set 347CONFIG_INET_LRO=y
332CONFIG_INET_DIAG=y 348CONFIG_INET_DIAG=y
333CONFIG_INET_TCP_DIAG=y 349CONFIG_INET_TCP_DIAG=y
334# CONFIG_TCP_CONG_ADVANCED is not set 350# CONFIG_TCP_CONG_ADVANCED is not set
@@ -343,6 +359,15 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_TIPC is not set 359# CONFIG_TIPC is not set
344# CONFIG_ATM is not set 360# CONFIG_ATM is not set
345# CONFIG_BRIDGE is not set 361# CONFIG_BRIDGE is not set
362CONFIG_NET_DSA=y
363CONFIG_NET_DSA_TAG_DSA=y
364CONFIG_NET_DSA_TAG_EDSA=y
365# CONFIG_NET_DSA_TAG_TRAILER is not set
366CONFIG_NET_DSA_MV88E6XXX=y
367# CONFIG_NET_DSA_MV88E6060 is not set
368CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
369CONFIG_NET_DSA_MV88E6131=y
370CONFIG_NET_DSA_MV88E6123_61_65=y
346# CONFIG_VLAN_8021Q is not set 371# CONFIG_VLAN_8021Q is not set
347# CONFIG_DECNET is not set 372# CONFIG_DECNET is not set
348# CONFIG_LLC2 is not set 373# CONFIG_LLC2 is not set
@@ -352,27 +377,29 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
352# CONFIG_LAPB is not set 377# CONFIG_LAPB is not set
353# CONFIG_ECONET is not set 378# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set 379# CONFIG_WAN_ROUTER is not set
380# CONFIG_PHONET is not set
355# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
382# CONFIG_DCB is not set
356 383
357# 384#
358# Network testing 385# Network testing
359# 386#
360CONFIG_NET_PKTGEN=m 387CONFIG_NET_PKTGEN=m
361# CONFIG_NET_TCPPROBE is not set 388# CONFIG_NET_TCPPROBE is not set
389# CONFIG_NET_DROP_MONITOR is not set
362# CONFIG_HAMRADIO is not set 390# CONFIG_HAMRADIO is not set
363# CONFIG_CAN is not set 391# CONFIG_CAN is not set
364# CONFIG_IRDA is not set 392# CONFIG_IRDA is not set
365# CONFIG_BT is not set 393# CONFIG_BT is not set
366# CONFIG_AF_RXRPC is not set 394# CONFIG_AF_RXRPC is not set
367 395CONFIG_WIRELESS=y
368#
369# Wireless
370#
371# CONFIG_CFG80211 is not set 396# CONFIG_CFG80211 is not set
397# CONFIG_WIRELESS_OLD_REGULATORY is not set
372CONFIG_WIRELESS_EXT=y 398CONFIG_WIRELESS_EXT=y
373CONFIG_WIRELESS_EXT_SYSFS=y 399CONFIG_WIRELESS_EXT_SYSFS=y
400# CONFIG_LIB80211 is not set
374# CONFIG_MAC80211 is not set 401# CONFIG_MAC80211 is not set
375# CONFIG_IEEE80211 is not set 402# CONFIG_WIMAX is not set
376# CONFIG_RFKILL is not set 403# CONFIG_RFKILL is not set
377# CONFIG_NET_9P is not set 404# CONFIG_NET_9P is not set
378 405
@@ -397,6 +424,7 @@ CONFIG_MTD=y
397# CONFIG_MTD_DEBUG is not set 424# CONFIG_MTD_DEBUG is not set
398# CONFIG_MTD_CONCAT is not set 425# CONFIG_MTD_CONCAT is not set
399CONFIG_MTD_PARTITIONS=y 426CONFIG_MTD_PARTITIONS=y
427# CONFIG_MTD_TESTS is not set
400# CONFIG_MTD_REDBOOT_PARTS is not set 428# CONFIG_MTD_REDBOOT_PARTS is not set
401CONFIG_MTD_CMDLINE_PARTS=y 429CONFIG_MTD_CMDLINE_PARTS=y
402# CONFIG_MTD_AFS_PARTS is not set 430# CONFIG_MTD_AFS_PARTS is not set
@@ -450,9 +478,7 @@ CONFIG_MTD_CFI_UTIL=y
450# 478#
451# CONFIG_MTD_COMPLEX_MAPPINGS is not set 479# CONFIG_MTD_COMPLEX_MAPPINGS is not set
452CONFIG_MTD_PHYSMAP=y 480CONFIG_MTD_PHYSMAP=y
453CONFIG_MTD_PHYSMAP_START=0x0 481# CONFIG_MTD_PHYSMAP_COMPAT is not set
454CONFIG_MTD_PHYSMAP_LEN=0x0
455CONFIG_MTD_PHYSMAP_BANKWIDTH=0
456# CONFIG_MTD_ARM_INTEGRATOR is not set 482# CONFIG_MTD_ARM_INTEGRATOR is not set
457# CONFIG_MTD_IMPA7 is not set 483# CONFIG_MTD_IMPA7 is not set
458# CONFIG_MTD_INTEL_VR_NOR is not set 484# CONFIG_MTD_INTEL_VR_NOR is not set
@@ -477,6 +503,7 @@ CONFIG_MTD_NAND=y
477CONFIG_MTD_NAND_VERIFY_WRITE=y 503CONFIG_MTD_NAND_VERIFY_WRITE=y
478# CONFIG_MTD_NAND_ECC_SMC is not set 504# CONFIG_MTD_NAND_ECC_SMC is not set
479# CONFIG_MTD_NAND_MUSEUM_IDS is not set 505# CONFIG_MTD_NAND_MUSEUM_IDS is not set
506# CONFIG_MTD_NAND_GPIO is not set
480CONFIG_MTD_NAND_IDS=y 507CONFIG_MTD_NAND_IDS=y
481# CONFIG_MTD_NAND_DISKONCHIP is not set 508# CONFIG_MTD_NAND_DISKONCHIP is not set
482# CONFIG_MTD_NAND_CAFE is not set 509# CONFIG_MTD_NAND_CAFE is not set
@@ -487,6 +514,11 @@ CONFIG_MTD_NAND_ORION=y
487# CONFIG_MTD_ONENAND is not set 514# CONFIG_MTD_ONENAND is not set
488 515
489# 516#
517# LPDDR flash memory drivers
518#
519# CONFIG_MTD_LPDDR is not set
520
521#
490# UBI - Unsorted block images 522# UBI - Unsorted block images
491# 523#
492# CONFIG_MTD_UBI is not set 524# CONFIG_MTD_UBI is not set
@@ -507,11 +539,20 @@ CONFIG_BLK_DEV_LOOP=y
507# CONFIG_ATA_OVER_ETH is not set 539# CONFIG_ATA_OVER_ETH is not set
508CONFIG_MISC_DEVICES=y 540CONFIG_MISC_DEVICES=y
509# CONFIG_PHANTOM is not set 541# CONFIG_PHANTOM is not set
510# CONFIG_EEPROM_93CX6 is not set
511# CONFIG_SGI_IOC4 is not set 542# CONFIG_SGI_IOC4 is not set
512# CONFIG_TIFM_CORE is not set 543# CONFIG_TIFM_CORE is not set
544# CONFIG_ICS932S401 is not set
513# CONFIG_ENCLOSURE_SERVICES is not set 545# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set 546# CONFIG_HP_ILO is not set
547# CONFIG_ISL29003 is not set
548# CONFIG_C2PORT is not set
549
550#
551# EEPROM support
552#
553# CONFIG_EEPROM_AT24 is not set
554# CONFIG_EEPROM_LEGACY is not set
555# CONFIG_EEPROM_93CX6 is not set
515CONFIG_HAVE_IDE=y 556CONFIG_HAVE_IDE=y
516# CONFIG_IDE is not set 557# CONFIG_IDE is not set
517 558
@@ -569,7 +610,11 @@ CONFIG_SCSI_LOWLEVEL=y
569# CONFIG_MEGARAID_NEWGEN is not set 610# CONFIG_MEGARAID_NEWGEN is not set
570# CONFIG_MEGARAID_LEGACY is not set 611# CONFIG_MEGARAID_LEGACY is not set
571# CONFIG_MEGARAID_SAS is not set 612# CONFIG_MEGARAID_SAS is not set
613# CONFIG_SCSI_MPT2SAS is not set
572# CONFIG_SCSI_HPTIOP is not set 614# CONFIG_SCSI_HPTIOP is not set
615# CONFIG_LIBFC is not set
616# CONFIG_LIBFCOE is not set
617# CONFIG_FCOE is not set
573# CONFIG_SCSI_DMX3191D is not set 618# CONFIG_SCSI_DMX3191D is not set
574# CONFIG_SCSI_FUTURE_DOMAIN is not set 619# CONFIG_SCSI_FUTURE_DOMAIN is not set
575# CONFIG_SCSI_IPS is not set 620# CONFIG_SCSI_IPS is not set
@@ -589,6 +634,7 @@ CONFIG_SCSI_LOWLEVEL=y
589# CONFIG_SCSI_DEBUG is not set 634# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 635# CONFIG_SCSI_SRP is not set
591# CONFIG_SCSI_DH is not set 636# CONFIG_SCSI_DH is not set
637# CONFIG_SCSI_OSD_INITIATOR is not set
592CONFIG_ATA=y 638CONFIG_ATA=y
593# CONFIG_ATA_NONSTANDARD is not set 639# CONFIG_ATA_NONSTANDARD is not set
594CONFIG_SATA_PMP=y 640CONFIG_SATA_PMP=y
@@ -663,6 +709,7 @@ CONFIG_SATA_MV=y
663# CONFIG_IEEE1394 is not set 709# CONFIG_IEEE1394 is not set
664# CONFIG_I2O is not set 710# CONFIG_I2O is not set
665CONFIG_NETDEVICES=y 711CONFIG_NETDEVICES=y
712CONFIG_COMPAT_NET_DEV_OPS=y
666# CONFIG_DUMMY is not set 713# CONFIG_DUMMY is not set
667# CONFIG_BONDING is not set 714# CONFIG_BONDING is not set
668# CONFIG_MACVLAN is not set 715# CONFIG_MACVLAN is not set
@@ -670,7 +717,26 @@ CONFIG_NETDEVICES=y
670# CONFIG_TUN is not set 717# CONFIG_TUN is not set
671# CONFIG_VETH is not set 718# CONFIG_VETH is not set
672# CONFIG_ARCNET is not set 719# CONFIG_ARCNET is not set
673# CONFIG_PHYLIB is not set 720CONFIG_PHYLIB=y
721
722#
723# MII PHY device drivers
724#
725CONFIG_MARVELL_PHY=y
726# CONFIG_DAVICOM_PHY is not set
727# CONFIG_QSEMI_PHY is not set
728# CONFIG_LXT_PHY is not set
729# CONFIG_CICADA_PHY is not set
730# CONFIG_VITESSE_PHY is not set
731# CONFIG_SMSC_PHY is not set
732# CONFIG_BROADCOM_PHY is not set
733# CONFIG_ICPLUS_PHY is not set
734# CONFIG_REALTEK_PHY is not set
735# CONFIG_NATIONAL_PHY is not set
736# CONFIG_STE10XP is not set
737# CONFIG_LSI_ET1011C_PHY is not set
738# CONFIG_FIXED_PHY is not set
739# CONFIG_MDIO_BITBANG is not set
674CONFIG_NET_ETHERNET=y 740CONFIG_NET_ETHERNET=y
675CONFIG_MII=y 741CONFIG_MII=y
676# CONFIG_AX88796 is not set 742# CONFIG_AX88796 is not set
@@ -680,19 +746,25 @@ CONFIG_MII=y
680# CONFIG_NET_VENDOR_3COM is not set 746# CONFIG_NET_VENDOR_3COM is not set
681# CONFIG_SMC91X is not set 747# CONFIG_SMC91X is not set
682# CONFIG_DM9000 is not set 748# CONFIG_DM9000 is not set
749# CONFIG_ETHOC is not set
750# CONFIG_SMC911X is not set
751# CONFIG_SMSC911X is not set
752# CONFIG_DNET is not set
683# CONFIG_NET_TULIP is not set 753# CONFIG_NET_TULIP is not set
684# CONFIG_HP100 is not set 754# CONFIG_HP100 is not set
685# CONFIG_IBM_NEW_EMAC_ZMII is not set 755# CONFIG_IBM_NEW_EMAC_ZMII is not set
686# CONFIG_IBM_NEW_EMAC_RGMII is not set 756# CONFIG_IBM_NEW_EMAC_RGMII is not set
687# CONFIG_IBM_NEW_EMAC_TAH is not set 757# CONFIG_IBM_NEW_EMAC_TAH is not set
688# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 758# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
759# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
760# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
761# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
689CONFIG_NET_PCI=y 762CONFIG_NET_PCI=y
690# CONFIG_PCNET32 is not set 763# CONFIG_PCNET32 is not set
691# CONFIG_AMD8111_ETH is not set 764# CONFIG_AMD8111_ETH is not set
692# CONFIG_ADAPTEC_STARFIRE is not set 765# CONFIG_ADAPTEC_STARFIRE is not set
693# CONFIG_B44 is not set 766# CONFIG_B44 is not set
694# CONFIG_FORCEDETH is not set 767# CONFIG_FORCEDETH is not set
695# CONFIG_EEPRO100 is not set
696# CONFIG_E100 is not set 768# CONFIG_E100 is not set
697# CONFIG_FEALNX is not set 769# CONFIG_FEALNX is not set
698# CONFIG_NATSEMI is not set 770# CONFIG_NATSEMI is not set
@@ -702,10 +774,12 @@ CONFIG_NET_PCI=y
702# CONFIG_R6040 is not set 774# CONFIG_R6040 is not set
703# CONFIG_SIS900 is not set 775# CONFIG_SIS900 is not set
704# CONFIG_EPIC100 is not set 776# CONFIG_EPIC100 is not set
777# CONFIG_SMSC9420 is not set
705# CONFIG_SUNDANCE is not set 778# CONFIG_SUNDANCE is not set
706# CONFIG_TLAN is not set 779# CONFIG_TLAN is not set
707# CONFIG_VIA_RHINE is not set 780# CONFIG_VIA_RHINE is not set
708# CONFIG_SC92031 is not set 781# CONFIG_SC92031 is not set
782# CONFIG_ATL2 is not set
709CONFIG_NETDEV_1000=y 783CONFIG_NETDEV_1000=y
710# CONFIG_ACENIC is not set 784# CONFIG_ACENIC is not set
711# CONFIG_DL2K is not set 785# CONFIG_DL2K is not set
@@ -713,6 +787,7 @@ CONFIG_NETDEV_1000=y
713# CONFIG_E1000E is not set 787# CONFIG_E1000E is not set
714# CONFIG_IP1000 is not set 788# CONFIG_IP1000 is not set
715# CONFIG_IGB is not set 789# CONFIG_IGB is not set
790# CONFIG_IGBVF is not set
716# CONFIG_NS83820 is not set 791# CONFIG_NS83820 is not set
717# CONFIG_HAMACHI is not set 792# CONFIG_HAMACHI is not set
718# CONFIG_YELLOWFIN is not set 793# CONFIG_YELLOWFIN is not set
@@ -727,6 +802,8 @@ CONFIG_MV643XX_ETH=y
727# CONFIG_QLA3XXX is not set 802# CONFIG_QLA3XXX is not set
728# CONFIG_ATL1 is not set 803# CONFIG_ATL1 is not set
729# CONFIG_ATL1E is not set 804# CONFIG_ATL1E is not set
805# CONFIG_ATL1C is not set
806# CONFIG_JME is not set
730# CONFIG_NETDEV_10000 is not set 807# CONFIG_NETDEV_10000 is not set
731# CONFIG_TR is not set 808# CONFIG_TR is not set
732 809
@@ -735,7 +812,10 @@ CONFIG_MV643XX_ETH=y
735# 812#
736# CONFIG_WLAN_PRE80211 is not set 813# CONFIG_WLAN_PRE80211 is not set
737# CONFIG_WLAN_80211 is not set 814# CONFIG_WLAN_80211 is not set
738# CONFIG_IWLWIFI_LEDS is not set 815
816#
817# Enable WiMAX (Networking options) to see the WiMAX drivers
818#
739 819
740# 820#
741# USB Network Adapters 821# USB Network Adapters
@@ -819,11 +899,11 @@ CONFIG_SERIAL_CORE=y
819CONFIG_SERIAL_CORE_CONSOLE=y 899CONFIG_SERIAL_CORE_CONSOLE=y
820# CONFIG_SERIAL_JSM is not set 900# CONFIG_SERIAL_JSM is not set
821CONFIG_UNIX98_PTYS=y 901CONFIG_UNIX98_PTYS=y
902# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
822CONFIG_LEGACY_PTYS=y 903CONFIG_LEGACY_PTYS=y
823CONFIG_LEGACY_PTY_COUNT=16 904CONFIG_LEGACY_PTY_COUNT=16
824# CONFIG_IPMI_HANDLER is not set 905# CONFIG_IPMI_HANDLER is not set
825# CONFIG_HW_RANDOM is not set 906# CONFIG_HW_RANDOM is not set
826# CONFIG_NVRAM is not set
827# CONFIG_R3964 is not set 907# CONFIG_R3964 is not set
828# CONFIG_APPLICOM is not set 908# CONFIG_APPLICOM is not set
829# CONFIG_RAW_DRIVER is not set 909# CONFIG_RAW_DRIVER is not set
@@ -886,12 +966,9 @@ CONFIG_I2C_MV64XXX=y
886# Miscellaneous I2C Chip support 966# Miscellaneous I2C Chip support
887# 967#
888# CONFIG_DS1682 is not set 968# CONFIG_DS1682 is not set
889# CONFIG_EEPROM_AT24 is not set
890# CONFIG_EEPROM_LEGACY is not set
891# CONFIG_SENSORS_PCF8574 is not set 969# CONFIG_SENSORS_PCF8574 is not set
892# CONFIG_PCF8575 is not set 970# CONFIG_PCF8575 is not set
893# CONFIG_SENSORS_PCA9539 is not set 971# CONFIG_SENSORS_PCA9539 is not set
894# CONFIG_SENSORS_PCF8591 is not set
895# CONFIG_SENSORS_MAX6875 is not set 972# CONFIG_SENSORS_MAX6875 is not set
896# CONFIG_SENSORS_TSL2550 is not set 973# CONFIG_SENSORS_TSL2550 is not set
897# CONFIG_I2C_DEBUG_CORE is not set 974# CONFIG_I2C_DEBUG_CORE is not set
@@ -911,14 +988,17 @@ CONFIG_HWMON=y
911# CONFIG_SENSORS_ADM1029 is not set 988# CONFIG_SENSORS_ADM1029 is not set
912# CONFIG_SENSORS_ADM1031 is not set 989# CONFIG_SENSORS_ADM1031 is not set
913# CONFIG_SENSORS_ADM9240 is not set 990# CONFIG_SENSORS_ADM9240 is not set
991# CONFIG_SENSORS_ADT7462 is not set
914# CONFIG_SENSORS_ADT7470 is not set 992# CONFIG_SENSORS_ADT7470 is not set
915# CONFIG_SENSORS_ADT7473 is not set 993# CONFIG_SENSORS_ADT7473 is not set
994# CONFIG_SENSORS_ADT7475 is not set
916# CONFIG_SENSORS_ATXP1 is not set 995# CONFIG_SENSORS_ATXP1 is not set
917# CONFIG_SENSORS_DS1621 is not set 996# CONFIG_SENSORS_DS1621 is not set
918# CONFIG_SENSORS_I5K_AMB is not set 997# CONFIG_SENSORS_I5K_AMB is not set
919# CONFIG_SENSORS_F71805F is not set 998# CONFIG_SENSORS_F71805F is not set
920# CONFIG_SENSORS_F71882FG is not set 999# CONFIG_SENSORS_F71882FG is not set
921# CONFIG_SENSORS_F75375S is not set 1000# CONFIG_SENSORS_F75375S is not set
1001# CONFIG_SENSORS_G760A is not set
922# CONFIG_SENSORS_GL518SM is not set 1002# CONFIG_SENSORS_GL518SM is not set
923# CONFIG_SENSORS_GL520SM is not set 1003# CONFIG_SENSORS_GL520SM is not set
924# CONFIG_SENSORS_IT87 is not set 1004# CONFIG_SENSORS_IT87 is not set
@@ -933,10 +1013,15 @@ CONFIG_SENSORS_LM75=y
933# CONFIG_SENSORS_LM90 is not set 1013# CONFIG_SENSORS_LM90 is not set
934# CONFIG_SENSORS_LM92 is not set 1014# CONFIG_SENSORS_LM92 is not set
935# CONFIG_SENSORS_LM93 is not set 1015# CONFIG_SENSORS_LM93 is not set
1016# CONFIG_SENSORS_LTC4215 is not set
1017# CONFIG_SENSORS_LTC4245 is not set
1018# CONFIG_SENSORS_LM95241 is not set
936# CONFIG_SENSORS_MAX1619 is not set 1019# CONFIG_SENSORS_MAX1619 is not set
937# CONFIG_SENSORS_MAX6650 is not set 1020# CONFIG_SENSORS_MAX6650 is not set
938# CONFIG_SENSORS_PC87360 is not set 1021# CONFIG_SENSORS_PC87360 is not set
939# CONFIG_SENSORS_PC87427 is not set 1022# CONFIG_SENSORS_PC87427 is not set
1023# CONFIG_SENSORS_PCF8591 is not set
1024# CONFIG_SENSORS_SHT15 is not set
940# CONFIG_SENSORS_SIS5595 is not set 1025# CONFIG_SENSORS_SIS5595 is not set
941# CONFIG_SENSORS_DME1737 is not set 1026# CONFIG_SENSORS_DME1737 is not set
942# CONFIG_SENSORS_SMSC47M1 is not set 1027# CONFIG_SENSORS_SMSC47M1 is not set
@@ -956,12 +1041,14 @@ CONFIG_SENSORS_LM75=y
956# CONFIG_SENSORS_W83627HF is not set 1041# CONFIG_SENSORS_W83627HF is not set
957# CONFIG_SENSORS_W83627EHF is not set 1042# CONFIG_SENSORS_W83627EHF is not set
958# CONFIG_HWMON_DEBUG_CHIP is not set 1043# CONFIG_HWMON_DEBUG_CHIP is not set
1044# CONFIG_THERMAL is not set
1045# CONFIG_THERMAL_HWMON is not set
959# CONFIG_WATCHDOG is not set 1046# CONFIG_WATCHDOG is not set
1047CONFIG_SSB_POSSIBLE=y
960 1048
961# 1049#
962# Sonics Silicon Backplane 1050# Sonics Silicon Backplane
963# 1051#
964CONFIG_SSB_POSSIBLE=y
965# CONFIG_SSB is not set 1052# CONFIG_SSB is not set
966 1053
967# 1054#
@@ -970,9 +1057,12 @@ CONFIG_SSB_POSSIBLE=y
970# CONFIG_MFD_CORE is not set 1057# CONFIG_MFD_CORE is not set
971# CONFIG_MFD_SM501 is not set 1058# CONFIG_MFD_SM501 is not set
972# CONFIG_HTC_PASIC3 is not set 1059# CONFIG_HTC_PASIC3 is not set
1060# CONFIG_TWL4030_CORE is not set
973# CONFIG_MFD_TMIO is not set 1061# CONFIG_MFD_TMIO is not set
974# CONFIG_MFD_T7L66XB is not set 1062# CONFIG_PMIC_DA903X is not set
975# CONFIG_MFD_TC6387XB is not set 1063# CONFIG_MFD_WM8400 is not set
1064# CONFIG_MFD_WM8350_I2C is not set
1065# CONFIG_MFD_PCF50633 is not set
976 1066
977# 1067#
978# Multimedia devices 1068# Multimedia devices
@@ -1013,9 +1103,36 @@ CONFIG_HID=y
1013# USB Input Devices 1103# USB Input Devices
1014# 1104#
1015CONFIG_USB_HID=y 1105CONFIG_USB_HID=y
1016# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1106# CONFIG_HID_PID is not set
1017# CONFIG_HID_FF is not set
1018# CONFIG_USB_HIDDEV is not set 1107# CONFIG_USB_HIDDEV is not set
1108
1109#
1110# Special HID drivers
1111#
1112# CONFIG_HID_A4TECH is not set
1113# CONFIG_HID_APPLE is not set
1114# CONFIG_HID_BELKIN is not set
1115# CONFIG_HID_CHERRY is not set
1116# CONFIG_HID_CHICONY is not set
1117# CONFIG_HID_CYPRESS is not set
1118# CONFIG_DRAGONRISE_FF is not set
1119# CONFIG_HID_EZKEY is not set
1120# CONFIG_HID_KYE is not set
1121# CONFIG_HID_GYRATION is not set
1122# CONFIG_HID_KENSINGTON is not set
1123# CONFIG_HID_LOGITECH is not set
1124# CONFIG_HID_MICROSOFT is not set
1125# CONFIG_HID_MONTEREY is not set
1126# CONFIG_HID_NTRIG is not set
1127# CONFIG_HID_PANTHERLORD is not set
1128# CONFIG_HID_PETALYNX is not set
1129# CONFIG_HID_SAMSUNG is not set
1130# CONFIG_HID_SONY is not set
1131# CONFIG_HID_SUNPLUS is not set
1132# CONFIG_GREENASIA_FF is not set
1133# CONFIG_HID_TOPSEED is not set
1134# CONFIG_THRUSTMASTER_FF is not set
1135# CONFIG_ZEROPLUS_FF is not set
1019CONFIG_USB_SUPPORT=y 1136CONFIG_USB_SUPPORT=y
1020CONFIG_USB_ARCH_HAS_HCD=y 1137CONFIG_USB_ARCH_HAS_HCD=y
1021CONFIG_USB_ARCH_HAS_OHCI=y 1138CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1030,10 +1147,13 @@ CONFIG_USB=y
1030CONFIG_USB_DEVICEFS=y 1147CONFIG_USB_DEVICEFS=y
1031CONFIG_USB_DEVICE_CLASS=y 1148CONFIG_USB_DEVICE_CLASS=y
1032# CONFIG_USB_DYNAMIC_MINORS is not set 1149# CONFIG_USB_DYNAMIC_MINORS is not set
1150# CONFIG_USB_SUSPEND is not set
1033# CONFIG_USB_OTG is not set 1151# CONFIG_USB_OTG is not set
1034# CONFIG_USB_OTG_WHITELIST is not set 1152# CONFIG_USB_OTG_WHITELIST is not set
1035# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1153# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1036# CONFIG_USB_MON is not set 1154# CONFIG_USB_MON is not set
1155# CONFIG_USB_WUSB is not set
1156# CONFIG_USB_WUSB_CBAF is not set
1037 1157
1038# 1158#
1039# USB Host Controller Drivers 1159# USB Host Controller Drivers
@@ -1042,12 +1162,15 @@ CONFIG_USB_DEVICE_CLASS=y
1042CONFIG_USB_EHCI_HCD=y 1162CONFIG_USB_EHCI_HCD=y
1043CONFIG_USB_EHCI_ROOT_HUB_TT=y 1163CONFIG_USB_EHCI_ROOT_HUB_TT=y
1044CONFIG_USB_EHCI_TT_NEWSCHED=y 1164CONFIG_USB_EHCI_TT_NEWSCHED=y
1165# CONFIG_USB_OXU210HP_HCD is not set
1045# CONFIG_USB_ISP116X_HCD is not set 1166# CONFIG_USB_ISP116X_HCD is not set
1046# CONFIG_USB_ISP1760_HCD is not set 1167# CONFIG_USB_ISP1760_HCD is not set
1047# CONFIG_USB_OHCI_HCD is not set 1168# CONFIG_USB_OHCI_HCD is not set
1048# CONFIG_USB_UHCI_HCD is not set 1169# CONFIG_USB_UHCI_HCD is not set
1049# CONFIG_USB_SL811_HCD is not set 1170# CONFIG_USB_SL811_HCD is not set
1050# CONFIG_USB_R8A66597_HCD is not set 1171# CONFIG_USB_R8A66597_HCD is not set
1172# CONFIG_USB_WHCI_HCD is not set
1173# CONFIG_USB_HWA_HCD is not set
1051 1174
1052# 1175#
1053# USB Device Class drivers 1176# USB Device Class drivers
@@ -1055,20 +1178,20 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y
1055# CONFIG_USB_ACM is not set 1178# CONFIG_USB_ACM is not set
1056CONFIG_USB_PRINTER=y 1179CONFIG_USB_PRINTER=y
1057# CONFIG_USB_WDM is not set 1180# CONFIG_USB_WDM is not set
1181# CONFIG_USB_TMC is not set
1058 1182
1059# 1183#
1060# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1184# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1061# 1185#
1062 1186
1063# 1187#
1064# may also be needed; see USB_STORAGE Help for more information 1188# also be needed; see USB_STORAGE Help for more info
1065# 1189#
1066CONFIG_USB_STORAGE=y 1190CONFIG_USB_STORAGE=y
1067# CONFIG_USB_STORAGE_DEBUG is not set 1191# CONFIG_USB_STORAGE_DEBUG is not set
1068CONFIG_USB_STORAGE_DATAFAB=y 1192CONFIG_USB_STORAGE_DATAFAB=y
1069CONFIG_USB_STORAGE_FREECOM=y 1193CONFIG_USB_STORAGE_FREECOM=y
1070# CONFIG_USB_STORAGE_ISD200 is not set 1194# CONFIG_USB_STORAGE_ISD200 is not set
1071CONFIG_USB_STORAGE_DPCM=y
1072# CONFIG_USB_STORAGE_USBAT is not set 1195# CONFIG_USB_STORAGE_USBAT is not set
1073CONFIG_USB_STORAGE_SDDR09=y 1196CONFIG_USB_STORAGE_SDDR09=y
1074CONFIG_USB_STORAGE_SDDR55=y 1197CONFIG_USB_STORAGE_SDDR55=y
@@ -1076,7 +1199,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1076# CONFIG_USB_STORAGE_ALAUDA is not set 1199# CONFIG_USB_STORAGE_ALAUDA is not set
1077# CONFIG_USB_STORAGE_ONETOUCH is not set 1200# CONFIG_USB_STORAGE_ONETOUCH is not set
1078# CONFIG_USB_STORAGE_KARMA is not set 1201# CONFIG_USB_STORAGE_KARMA is not set
1079# CONFIG_USB_STORAGE_SIERRA is not set
1080# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1202# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1081# CONFIG_USB_LIBUSUAL is not set 1203# CONFIG_USB_LIBUSUAL is not set
1082 1204
@@ -1097,6 +1219,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1097# CONFIG_USB_EMI62 is not set 1219# CONFIG_USB_EMI62 is not set
1098# CONFIG_USB_EMI26 is not set 1220# CONFIG_USB_EMI26 is not set
1099# CONFIG_USB_ADUTUX is not set 1221# CONFIG_USB_ADUTUX is not set
1222# CONFIG_USB_SEVSEG is not set
1100# CONFIG_USB_RIO500 is not set 1223# CONFIG_USB_RIO500 is not set
1101# CONFIG_USB_LEGOTOWER is not set 1224# CONFIG_USB_LEGOTOWER is not set
1102# CONFIG_USB_LCD is not set 1225# CONFIG_USB_LCD is not set
@@ -1104,7 +1227,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1104# CONFIG_USB_LED is not set 1227# CONFIG_USB_LED is not set
1105# CONFIG_USB_CYPRESS_CY7C63 is not set 1228# CONFIG_USB_CYPRESS_CY7C63 is not set
1106# CONFIG_USB_CYTHERM is not set 1229# CONFIG_USB_CYTHERM is not set
1107# CONFIG_USB_PHIDGET is not set
1108# CONFIG_USB_IDMOUSE is not set 1230# CONFIG_USB_IDMOUSE is not set
1109# CONFIG_USB_FTDI_ELAN is not set 1231# CONFIG_USB_FTDI_ELAN is not set
1110# CONFIG_USB_APPLEDISPLAY is not set 1232# CONFIG_USB_APPLEDISPLAY is not set
@@ -1114,8 +1236,18 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1114# CONFIG_USB_IOWARRIOR is not set 1236# CONFIG_USB_IOWARRIOR is not set
1115# CONFIG_USB_TEST is not set 1237# CONFIG_USB_TEST is not set
1116# CONFIG_USB_ISIGHTFW is not set 1238# CONFIG_USB_ISIGHTFW is not set
1239# CONFIG_USB_VST is not set
1117# CONFIG_USB_GADGET is not set 1240# CONFIG_USB_GADGET is not set
1241
1242#
1243# OTG and related infrastructure
1244#
1245# CONFIG_USB_GPIO_VBUS is not set
1246# CONFIG_NOP_USB_XCEIV is not set
1247# CONFIG_UWB is not set
1118# CONFIG_MMC is not set 1248# CONFIG_MMC is not set
1249# CONFIG_MEMSTICK is not set
1250# CONFIG_ACCESSIBILITY is not set
1119CONFIG_NEW_LEDS=y 1251CONFIG_NEW_LEDS=y
1120CONFIG_LEDS_CLASS=y 1252CONFIG_LEDS_CLASS=y
1121 1253
@@ -1124,7 +1256,10 @@ CONFIG_LEDS_CLASS=y
1124# 1256#
1125# CONFIG_LEDS_PCA9532 is not set 1257# CONFIG_LEDS_PCA9532 is not set
1126CONFIG_LEDS_GPIO=y 1258CONFIG_LEDS_GPIO=y
1259CONFIG_LEDS_GPIO_PLATFORM=y
1260# CONFIG_LEDS_LP5521 is not set
1127# CONFIG_LEDS_PCA955X is not set 1261# CONFIG_LEDS_PCA955X is not set
1262# CONFIG_LEDS_BD2802 is not set
1128 1263
1129# 1264#
1130# LED Triggers 1265# LED Triggers
@@ -1132,7 +1267,12 @@ CONFIG_LEDS_GPIO=y
1132CONFIG_LEDS_TRIGGERS=y 1267CONFIG_LEDS_TRIGGERS=y
1133CONFIG_LEDS_TRIGGER_TIMER=y 1268CONFIG_LEDS_TRIGGER_TIMER=y
1134CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1269CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1270# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1135CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 1271CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1272
1273#
1274# iptables trigger is under Netfilter config (LED target)
1275#
1136CONFIG_RTC_LIB=y 1276CONFIG_RTC_LIB=y
1137CONFIG_RTC_CLASS=y 1277CONFIG_RTC_CLASS=y
1138CONFIG_RTC_HCTOSYS=y 1278CONFIG_RTC_HCTOSYS=y
@@ -1164,6 +1304,7 @@ CONFIG_RTC_DRV_M41T80=y
1164# CONFIG_RTC_DRV_M41T80_WDT is not set 1304# CONFIG_RTC_DRV_M41T80_WDT is not set
1165CONFIG_RTC_DRV_S35390A=y 1305CONFIG_RTC_DRV_S35390A=y
1166# CONFIG_RTC_DRV_FM3130 is not set 1306# CONFIG_RTC_DRV_FM3130 is not set
1307# CONFIG_RTC_DRV_RX8581 is not set
1167 1308
1168# 1309#
1169# SPI RTC drivers 1310# SPI RTC drivers
@@ -1173,12 +1314,15 @@ CONFIG_RTC_DRV_S35390A=y
1173# Platform RTC drivers 1314# Platform RTC drivers
1174# 1315#
1175# CONFIG_RTC_DRV_CMOS is not set 1316# CONFIG_RTC_DRV_CMOS is not set
1317# CONFIG_RTC_DRV_DS1286 is not set
1176# CONFIG_RTC_DRV_DS1511 is not set 1318# CONFIG_RTC_DRV_DS1511 is not set
1177# CONFIG_RTC_DRV_DS1553 is not set 1319# CONFIG_RTC_DRV_DS1553 is not set
1178# CONFIG_RTC_DRV_DS1742 is not set 1320# CONFIG_RTC_DRV_DS1742 is not set
1179# CONFIG_RTC_DRV_STK17TA8 is not set 1321# CONFIG_RTC_DRV_STK17TA8 is not set
1180CONFIG_RTC_DRV_M48T86=y 1322CONFIG_RTC_DRV_M48T86=y
1323# CONFIG_RTC_DRV_M48T35 is not set
1181# CONFIG_RTC_DRV_M48T59 is not set 1324# CONFIG_RTC_DRV_M48T59 is not set
1325# CONFIG_RTC_DRV_BQ4802 is not set
1182# CONFIG_RTC_DRV_V3020 is not set 1326# CONFIG_RTC_DRV_V3020 is not set
1183 1327
1184# 1328#
@@ -1196,16 +1340,12 @@ CONFIG_DMA_ENGINE=y
1196# DMA Clients 1340# DMA Clients
1197# 1341#
1198# CONFIG_NET_DMA is not set 1342# CONFIG_NET_DMA is not set
1343# CONFIG_ASYNC_TX_DMA is not set
1199# CONFIG_DMATEST is not set 1344# CONFIG_DMATEST is not set
1200 1345# CONFIG_AUXDISPLAY is not set
1201#
1202# Voltage and Current regulators
1203#
1204# CONFIG_REGULATOR is not set 1346# CONFIG_REGULATOR is not set
1205# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1206# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1207# CONFIG_REGULATOR_BQ24022 is not set
1208# CONFIG_UIO is not set 1347# CONFIG_UIO is not set
1348# CONFIG_STAGING is not set
1209 1349
1210# 1350#
1211# File systems 1351# File systems
@@ -1214,14 +1354,25 @@ CONFIG_EXT2_FS=y
1214# CONFIG_EXT2_FS_XATTR is not set 1354# CONFIG_EXT2_FS_XATTR is not set
1215# CONFIG_EXT2_FS_XIP is not set 1355# CONFIG_EXT2_FS_XIP is not set
1216CONFIG_EXT3_FS=y 1356CONFIG_EXT3_FS=y
1357# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1217# CONFIG_EXT3_FS_XATTR is not set 1358# CONFIG_EXT3_FS_XATTR is not set
1218# CONFIG_EXT4DEV_FS is not set 1359CONFIG_EXT4_FS=m
1360# CONFIG_EXT4DEV_COMPAT is not set
1361CONFIG_EXT4_FS_XATTR=y
1362# CONFIG_EXT4_FS_POSIX_ACL is not set
1363# CONFIG_EXT4_FS_SECURITY is not set
1219CONFIG_JBD=y 1364CONFIG_JBD=y
1365# CONFIG_JBD_DEBUG is not set
1366CONFIG_JBD2=m
1367# CONFIG_JBD2_DEBUG is not set
1368CONFIG_FS_MBCACHE=m
1220# CONFIG_REISERFS_FS is not set 1369# CONFIG_REISERFS_FS is not set
1221# CONFIG_JFS_FS is not set 1370# CONFIG_JFS_FS is not set
1222# CONFIG_FS_POSIX_ACL is not set 1371# CONFIG_FS_POSIX_ACL is not set
1372CONFIG_FILE_LOCKING=y
1223# CONFIG_XFS_FS is not set 1373# CONFIG_XFS_FS is not set
1224# CONFIG_OCFS2_FS is not set 1374# CONFIG_OCFS2_FS is not set
1375# CONFIG_BTRFS_FS is not set
1225CONFIG_DNOTIFY=y 1376CONFIG_DNOTIFY=y
1226CONFIG_INOTIFY=y 1377CONFIG_INOTIFY=y
1227CONFIG_INOTIFY_USER=y 1378CONFIG_INOTIFY_USER=y
@@ -1231,6 +1382,11 @@ CONFIG_INOTIFY_USER=y
1231# CONFIG_FUSE_FS is not set 1382# CONFIG_FUSE_FS is not set
1232 1383
1233# 1384#
1385# Caches
1386#
1387# CONFIG_FSCACHE is not set
1388
1389#
1234# CD-ROM/DVD Filesystems 1390# CD-ROM/DVD Filesystems
1235# 1391#
1236CONFIG_ISO9660_FS=m 1392CONFIG_ISO9660_FS=m
@@ -1254,15 +1410,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1254# 1410#
1255CONFIG_PROC_FS=y 1411CONFIG_PROC_FS=y
1256CONFIG_PROC_SYSCTL=y 1412CONFIG_PROC_SYSCTL=y
1413CONFIG_PROC_PAGE_MONITOR=y
1257CONFIG_SYSFS=y 1414CONFIG_SYSFS=y
1258CONFIG_TMPFS=y 1415CONFIG_TMPFS=y
1259# CONFIG_TMPFS_POSIX_ACL is not set 1416# CONFIG_TMPFS_POSIX_ACL is not set
1260# CONFIG_HUGETLB_PAGE is not set 1417# CONFIG_HUGETLB_PAGE is not set
1261# CONFIG_CONFIGFS_FS is not set 1418# CONFIG_CONFIGFS_FS is not set
1262 1419CONFIG_MISC_FILESYSTEMS=y
1263#
1264# Miscellaneous filesystems
1265#
1266# CONFIG_ADFS_FS is not set 1420# CONFIG_ADFS_FS is not set
1267# CONFIG_AFFS_FS is not set 1421# CONFIG_AFFS_FS is not set
1268# CONFIG_HFS_FS is not set 1422# CONFIG_HFS_FS is not set
@@ -1282,6 +1436,7 @@ CONFIG_JFFS2_ZLIB=y
1282CONFIG_JFFS2_RTIME=y 1436CONFIG_JFFS2_RTIME=y
1283# CONFIG_JFFS2_RUBIN is not set 1437# CONFIG_JFFS2_RUBIN is not set
1284CONFIG_CRAMFS=y 1438CONFIG_CRAMFS=y
1439# CONFIG_SQUASHFS is not set
1285# CONFIG_VXFS_FS is not set 1440# CONFIG_VXFS_FS is not set
1286# CONFIG_MINIX_FS is not set 1441# CONFIG_MINIX_FS is not set
1287# CONFIG_OMFS_FS is not set 1442# CONFIG_OMFS_FS is not set
@@ -1290,6 +1445,7 @@ CONFIG_CRAMFS=y
1290# CONFIG_ROMFS_FS is not set 1445# CONFIG_ROMFS_FS is not set
1291# CONFIG_SYSV_FS is not set 1446# CONFIG_SYSV_FS is not set
1292# CONFIG_UFS_FS is not set 1447# CONFIG_UFS_FS is not set
1448# CONFIG_NILFS2_FS is not set
1293CONFIG_NETWORK_FILESYSTEMS=y 1449CONFIG_NETWORK_FILESYSTEMS=y
1294CONFIG_NFS_FS=y 1450CONFIG_NFS_FS=y
1295CONFIG_NFS_V3=y 1451CONFIG_NFS_V3=y
@@ -1381,13 +1537,16 @@ CONFIG_ENABLE_MUST_CHECK=y
1381CONFIG_FRAME_WARN=1024 1537CONFIG_FRAME_WARN=1024
1382CONFIG_MAGIC_SYSRQ=y 1538CONFIG_MAGIC_SYSRQ=y
1383# CONFIG_UNUSED_SYMBOLS is not set 1539# CONFIG_UNUSED_SYMBOLS is not set
1384# CONFIG_DEBUG_FS is not set 1540CONFIG_DEBUG_FS=y
1385# CONFIG_HEADERS_CHECK is not set 1541# CONFIG_HEADERS_CHECK is not set
1386CONFIG_DEBUG_KERNEL=y 1542CONFIG_DEBUG_KERNEL=y
1387# CONFIG_DEBUG_SHIRQ is not set 1543# CONFIG_DEBUG_SHIRQ is not set
1388CONFIG_DETECT_SOFTLOCKUP=y 1544CONFIG_DETECT_SOFTLOCKUP=y
1389# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1545# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1390CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1546CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1547CONFIG_DETECT_HUNG_TASK=y
1548# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1549CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1391CONFIG_SCHED_DEBUG=y 1550CONFIG_SCHED_DEBUG=y
1392CONFIG_SCHEDSTATS=y 1551CONFIG_SCHEDSTATS=y
1393# CONFIG_TIMER_STATS is not set 1552# CONFIG_TIMER_STATS is not set
@@ -1411,25 +1570,46 @@ CONFIG_DEBUG_INFO=y
1411# CONFIG_DEBUG_MEMORY_INIT is not set 1570# CONFIG_DEBUG_MEMORY_INIT is not set
1412# CONFIG_DEBUG_LIST is not set 1571# CONFIG_DEBUG_LIST is not set
1413# CONFIG_DEBUG_SG is not set 1572# CONFIG_DEBUG_SG is not set
1573# CONFIG_DEBUG_NOTIFIERS is not set
1414CONFIG_FRAME_POINTER=y 1574CONFIG_FRAME_POINTER=y
1415# CONFIG_BOOT_PRINTK_DELAY is not set 1575# CONFIG_BOOT_PRINTK_DELAY is not set
1416# CONFIG_RCU_TORTURE_TEST is not set 1576# CONFIG_RCU_TORTURE_TEST is not set
1577# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1417# CONFIG_KPROBES_SANITY_TEST is not set 1578# CONFIG_KPROBES_SANITY_TEST is not set
1418# CONFIG_BACKTRACE_SELF_TEST is not set 1579# CONFIG_BACKTRACE_SELF_TEST is not set
1580# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1419# CONFIG_LKDTM is not set 1581# CONFIG_LKDTM is not set
1420# CONFIG_FAULT_INJECTION is not set 1582# CONFIG_FAULT_INJECTION is not set
1421CONFIG_LATENCYTOP=y 1583CONFIG_LATENCYTOP=y
1422CONFIG_SYSCTL_SYSCALL_CHECK=y 1584CONFIG_SYSCTL_SYSCALL_CHECK=y
1423CONFIG_HAVE_FTRACE=y 1585# CONFIG_PAGE_POISONING is not set
1424CONFIG_HAVE_DYNAMIC_FTRACE=y 1586CONFIG_NOP_TRACER=y
1425# CONFIG_FTRACE is not set 1587CONFIG_HAVE_FUNCTION_TRACER=y
1588CONFIG_RING_BUFFER=y
1589CONFIG_TRACING=y
1590CONFIG_TRACING_SUPPORT=y
1591
1592#
1593# Tracers
1594#
1595# CONFIG_FUNCTION_TRACER is not set
1426# CONFIG_IRQSOFF_TRACER is not set 1596# CONFIG_IRQSOFF_TRACER is not set
1427# CONFIG_PREEMPT_TRACER is not set 1597# CONFIG_PREEMPT_TRACER is not set
1428# CONFIG_SCHED_TRACER is not set 1598# CONFIG_SCHED_TRACER is not set
1429# CONFIG_CONTEXT_SWITCH_TRACER is not set 1599# CONFIG_CONTEXT_SWITCH_TRACER is not set
1600# CONFIG_EVENT_TRACER is not set
1601# CONFIG_BOOT_TRACER is not set
1602# CONFIG_TRACE_BRANCH_PROFILING is not set
1603# CONFIG_STACK_TRACER is not set
1604# CONFIG_KMEMTRACE is not set
1605# CONFIG_WORKQUEUE_TRACER is not set
1606# CONFIG_BLK_DEV_IO_TRACE is not set
1607# CONFIG_FTRACE_STARTUP_TEST is not set
1608# CONFIG_DYNAMIC_DEBUG is not set
1430# CONFIG_SAMPLES is not set 1609# CONFIG_SAMPLES is not set
1431CONFIG_HAVE_ARCH_KGDB=y 1610CONFIG_HAVE_ARCH_KGDB=y
1432# CONFIG_KGDB is not set 1611# CONFIG_KGDB is not set
1612CONFIG_ARM_UNWIND=y
1433CONFIG_DEBUG_USER=y 1613CONFIG_DEBUG_USER=y
1434CONFIG_DEBUG_ERRORS=y 1614CONFIG_DEBUG_ERRORS=y
1435# CONFIG_DEBUG_STACK_USAGE is not set 1615# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1441,18 +1621,27 @@ CONFIG_DEBUG_LL=y
1441# 1621#
1442# CONFIG_KEYS is not set 1622# CONFIG_KEYS is not set
1443# CONFIG_SECURITY is not set 1623# CONFIG_SECURITY is not set
1624# CONFIG_SECURITYFS is not set
1444# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1625# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1445CONFIG_ASYNC_CORE=y
1446CONFIG_CRYPTO=y 1626CONFIG_CRYPTO=y
1447 1627
1448# 1628#
1449# Crypto core or helper 1629# Crypto core or helper
1450# 1630#
1631# CONFIG_CRYPTO_FIPS is not set
1451CONFIG_CRYPTO_ALGAPI=m 1632CONFIG_CRYPTO_ALGAPI=m
1633CONFIG_CRYPTO_ALGAPI2=m
1634CONFIG_CRYPTO_AEAD2=m
1452CONFIG_CRYPTO_BLKCIPHER=m 1635CONFIG_CRYPTO_BLKCIPHER=m
1636CONFIG_CRYPTO_BLKCIPHER2=m
1637CONFIG_CRYPTO_HASH2=m
1638CONFIG_CRYPTO_RNG2=m
1639CONFIG_CRYPTO_PCOMP=m
1453CONFIG_CRYPTO_MANAGER=m 1640CONFIG_CRYPTO_MANAGER=m
1641CONFIG_CRYPTO_MANAGER2=m
1454# CONFIG_CRYPTO_GF128MUL is not set 1642# CONFIG_CRYPTO_GF128MUL is not set
1455# CONFIG_CRYPTO_NULL is not set 1643# CONFIG_CRYPTO_NULL is not set
1644CONFIG_CRYPTO_WORKQUEUE=m
1456# CONFIG_CRYPTO_CRYPTD is not set 1645# CONFIG_CRYPTO_CRYPTD is not set
1457# CONFIG_CRYPTO_AUTHENC is not set 1646# CONFIG_CRYPTO_AUTHENC is not set
1458# CONFIG_CRYPTO_TEST is not set 1647# CONFIG_CRYPTO_TEST is not set
@@ -1521,18 +1710,24 @@ CONFIG_CRYPTO_PCBC=m
1521# Compression 1710# Compression
1522# 1711#
1523# CONFIG_CRYPTO_DEFLATE is not set 1712# CONFIG_CRYPTO_DEFLATE is not set
1713# CONFIG_CRYPTO_ZLIB is not set
1524# CONFIG_CRYPTO_LZO is not set 1714# CONFIG_CRYPTO_LZO is not set
1715
1716#
1717# Random Number Generation
1718#
1719# CONFIG_CRYPTO_ANSI_CPRNG is not set
1525CONFIG_CRYPTO_HW=y 1720CONFIG_CRYPTO_HW=y
1526# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1721# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1722CONFIG_BINARY_PRINTF=y
1527 1723
1528# 1724#
1529# Library routines 1725# Library routines
1530# 1726#
1531CONFIG_BITREVERSE=y 1727CONFIG_BITREVERSE=y
1532# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1728CONFIG_GENERIC_FIND_LAST_BIT=y
1533# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1534# CONFIG_CRC_CCITT is not set 1729# CONFIG_CRC_CCITT is not set
1535# CONFIG_CRC16 is not set 1730CONFIG_CRC16=m
1536CONFIG_CRC_T10DIF=y 1731CONFIG_CRC_T10DIF=y
1537CONFIG_CRC_ITU_T=m 1732CONFIG_CRC_ITU_T=m
1538CONFIG_CRC32=y 1733CONFIG_CRC32=y
@@ -1540,7 +1735,7 @@ CONFIG_CRC32=y
1540# CONFIG_LIBCRC32C is not set 1735# CONFIG_LIBCRC32C is not set
1541CONFIG_ZLIB_INFLATE=y 1736CONFIG_ZLIB_INFLATE=y
1542CONFIG_ZLIB_DEFLATE=y 1737CONFIG_ZLIB_DEFLATE=y
1543CONFIG_PLIST=y
1544CONFIG_HAS_IOMEM=y 1738CONFIG_HAS_IOMEM=y
1545CONFIG_HAS_IOPORT=y 1739CONFIG_HAS_IOPORT=y
1546CONFIG_HAS_DMA=y 1740CONFIG_HAS_DMA=y
1741CONFIG_NLATTR=y
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 65a583ee5df8..2d58b8fe59be 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -1,9 +1,9 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc8 3# Linux kernel version: 2.6.30-rc2
4# Mon Jul 7 16:59:23 2008
5# 4#
6CONFIG_ARM=y 5CONFIG_ARM=y
6CONFIG_HAVE_PWM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set 9# CONFIG_GENERIC_TIME is not set
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12CONFIG_NO_IOPORT=y 12CONFIG_NO_IOPORT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -21,8 +22,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 23CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y 25CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
25CONFIG_ZONE_DMA=y
26CONFIG_VECTORS_BASE=0xffff0000 26CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28 28
@@ -41,11 +41,20 @@ CONFIG_SYSVIPC_SYSCTL=y
41# CONFIG_BSD_PROCESS_ACCT is not set 41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 42# CONFIG_TASKSTATS is not set
43# CONFIG_AUDIT is not set 43# CONFIG_AUDIT 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
44CONFIG_IKCONFIG=m 53CONFIG_IKCONFIG=m
45CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
46CONFIG_LOG_BUF_SHIFT=16 55CONFIG_LOG_BUF_SHIFT=16
47# CONFIG_CGROUPS is not set
48# CONFIG_GROUP_SCHED is not set 56# CONFIG_GROUP_SCHED is not set
57# CONFIG_CGROUPS is not set
49CONFIG_SYSFS_DEPRECATED=y 58CONFIG_SYSFS_DEPRECATED=y
50CONFIG_SYSFS_DEPRECATED_V2=y 59CONFIG_SYSFS_DEPRECATED_V2=y
51# CONFIG_RELAY is not set 60# CONFIG_RELAY is not set
@@ -54,31 +63,36 @@ CONFIG_NAMESPACES=y
54# CONFIG_IPC_NS is not set 63# CONFIG_IPC_NS is not set
55# CONFIG_USER_NS is not set 64# CONFIG_USER_NS is not set
56# CONFIG_PID_NS is not set 65# CONFIG_PID_NS is not set
66# CONFIG_NET_NS is not set
57CONFIG_BLK_DEV_INITRD=y 67CONFIG_BLK_DEV_INITRD=y
58CONFIG_INITRAMFS_SOURCE="" 68CONFIG_INITRAMFS_SOURCE=""
69CONFIG_RD_GZIP=y
70CONFIG_RD_BZIP2=y
71CONFIG_RD_LZMA=y
59CONFIG_CC_OPTIMIZE_FOR_SIZE=y 72CONFIG_CC_OPTIMIZE_FOR_SIZE=y
60CONFIG_SYSCTL=y 73CONFIG_SYSCTL=y
74CONFIG_ANON_INODES=y
61# CONFIG_EMBEDDED is not set 75# CONFIG_EMBEDDED is not set
62CONFIG_UID16=y 76CONFIG_UID16=y
63CONFIG_SYSCTL_SYSCALL=y 77CONFIG_SYSCTL_SYSCALL=y
64CONFIG_SYSCTL_SYSCALL_CHECK=y
65CONFIG_KALLSYMS=y 78CONFIG_KALLSYMS=y
66# CONFIG_KALLSYMS_ALL is not set 79# CONFIG_KALLSYMS_ALL is not set
67# CONFIG_KALLSYMS_EXTRA_PASS is not set 80# CONFIG_KALLSYMS_EXTRA_PASS is not set
81# CONFIG_STRIP_ASM_SYMS is not set
68CONFIG_HOTPLUG=y 82CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 83CONFIG_PRINTK=y
70CONFIG_BUG=y 84CONFIG_BUG=y
71CONFIG_ELF_CORE=y 85CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
73CONFIG_BASE_FULL=y 86CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 87CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y
76CONFIG_EPOLL=y 88CONFIG_EPOLL=y
77CONFIG_SIGNALFD=y 89CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y 90CONFIG_TIMERFD=y
79CONFIG_EVENTFD=y 91CONFIG_EVENTFD=y
80CONFIG_SHMEM=y 92CONFIG_SHMEM=y
93CONFIG_AIO=y
81CONFIG_VM_EVENT_COUNTERS=y 94CONFIG_VM_EVENT_COUNTERS=y
95CONFIG_COMPAT_BRK=y
82CONFIG_SLAB=y 96CONFIG_SLAB=y
83# CONFIG_SLUB is not set 97# CONFIG_SLUB is not set
84# CONFIG_SLOB is not set 98# CONFIG_SLOB is not set
@@ -88,11 +102,11 @@ CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set 102# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y 103CONFIG_HAVE_KPROBES=y
90CONFIG_HAVE_KRETPROBES=y 104CONFIG_HAVE_KRETPROBES=y
91# CONFIG_HAVE_DMA_ATTRS is not set 105CONFIG_HAVE_CLK=y
92CONFIG_PROC_PAGE_MONITOR=y 106# CONFIG_SLOW_WORK is not set
107CONFIG_HAVE_GENERIC_DMA_COHERENT=y
93CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y 109CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 110CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 111CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set 112# CONFIG_MODULE_FORCE_LOAD is not set
@@ -100,12 +114,10 @@ CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 114# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 115# CONFIG_MODVERSIONS is not set
102# CONFIG_MODULE_SRCVERSION_ALL is not set 116# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 117CONFIG_BLOCK=y
105# CONFIG_LBD is not set 118# CONFIG_LBD 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 119# CONFIG_BLK_DEV_BSG is not set
120# CONFIG_BLK_DEV_INTEGRITY is not set
109 121
110# 122#
111# IO Schedulers 123# IO Schedulers
@@ -119,7 +131,7 @@ CONFIG_DEFAULT_AS=y
119# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
120# CONFIG_DEFAULT_NOOP is not set 132# CONFIG_DEFAULT_NOOP is not set
121CONFIG_DEFAULT_IOSCHED="anticipatory" 133CONFIG_DEFAULT_IOSCHED="anticipatory"
122CONFIG_CLASSIC_RCU=y 134CONFIG_FREEZER=y
123 135
124# 136#
125# System Type 137# System Type
@@ -129,11 +141,10 @@ CONFIG_CLASSIC_RCU=y
129# CONFIG_ARCH_REALVIEW is not set 141# CONFIG_ARCH_REALVIEW is not set
130# CONFIG_ARCH_VERSATILE is not set 142# CONFIG_ARCH_VERSATILE is not set
131# CONFIG_ARCH_AT91 is not set 143# CONFIG_ARCH_AT91 is not set
132# CONFIG_ARCH_CLPS7500 is not set
133# CONFIG_ARCH_CLPS711X is not set 144# CONFIG_ARCH_CLPS711X is not set
134# CONFIG_ARCH_CO285 is not set
135# CONFIG_ARCH_EBSA110 is not set 145# CONFIG_ARCH_EBSA110 is not set
136# CONFIG_ARCH_EP93XX is not set 146# CONFIG_ARCH_EP93XX is not set
147# CONFIG_ARCH_GEMINI is not set
137# CONFIG_ARCH_FOOTBRIDGE is not set 148# CONFIG_ARCH_FOOTBRIDGE is not set
138# CONFIG_ARCH_NETX is not set 149# CONFIG_ARCH_NETX is not set
139# CONFIG_ARCH_H720X is not set 150# CONFIG_ARCH_H720X is not set
@@ -145,26 +156,38 @@ CONFIG_CLASSIC_RCU=y
145# CONFIG_ARCH_IXP2000 is not set 156# CONFIG_ARCH_IXP2000 is not set
146# CONFIG_ARCH_IXP4XX is not set 157# CONFIG_ARCH_IXP4XX is not set
147# CONFIG_ARCH_L7200 is not set 158# CONFIG_ARCH_L7200 is not set
159# CONFIG_ARCH_KIRKWOOD is not set
148# CONFIG_ARCH_KS8695 is not set 160# CONFIG_ARCH_KS8695 is not set
149# CONFIG_ARCH_NS9XXX is not set 161# CONFIG_ARCH_NS9XXX is not set
162# CONFIG_ARCH_LOKI is not set
163# CONFIG_ARCH_MV78XX0 is not set
150# CONFIG_ARCH_MXC is not set 164# CONFIG_ARCH_MXC is not set
151# CONFIG_ARCH_ORION5X is not set 165# CONFIG_ARCH_ORION5X is not set
152# CONFIG_ARCH_PNX4008 is not set 166# CONFIG_ARCH_PNX4008 is not set
153# CONFIG_ARCH_PXA is not set 167# CONFIG_ARCH_PXA is not set
168# CONFIG_ARCH_MMP is not set
154# CONFIG_ARCH_RPC is not set 169# CONFIG_ARCH_RPC is not set
155# CONFIG_ARCH_SA1100 is not set 170# CONFIG_ARCH_SA1100 is not set
156CONFIG_ARCH_S3C2410=y 171CONFIG_ARCH_S3C2410=y
172# CONFIG_ARCH_S3C64XX is not set
157# CONFIG_ARCH_SHARK is not set 173# CONFIG_ARCH_SHARK is not set
158# CONFIG_ARCH_LH7A40X is not set 174# CONFIG_ARCH_LH7A40X is not set
159# CONFIG_ARCH_DAVINCI is not set 175# CONFIG_ARCH_DAVINCI is not set
160# CONFIG_ARCH_OMAP is not set 176# CONFIG_ARCH_OMAP is not set
161# CONFIG_ARCH_MSM7X00A is not set 177# CONFIG_ARCH_MSM is not set
178# CONFIG_ARCH_W90X900 is not set
162CONFIG_PLAT_S3C24XX=y 179CONFIG_PLAT_S3C24XX=y
180CONFIG_S3C2410_CLOCK=y
181CONFIG_S3C24XX_DCLK=y
163CONFIG_CPU_S3C244X=y 182CONFIG_CPU_S3C244X=y
164# CONFIG_S3C24XX_PWM is not set 183CONFIG_S3C24XX_PWM=y
184CONFIG_S3C24XX_GPIO_EXTRA=128
185CONFIG_S3C24XX_GPIO_EXTRA64=y
186CONFIG_S3C24XX_GPIO_EXTRA128=y
165CONFIG_PM_SIMTEC=y 187CONFIG_PM_SIMTEC=y
166CONFIG_S3C2410_DMA=y 188CONFIG_S3C2410_DMA=y
167# CONFIG_S3C2410_DMA_DEBUG is not set 189# CONFIG_S3C2410_DMA_DEBUG is not set
190CONFIG_S3C24XX_ADC=y
168CONFIG_MACH_SMDK=y 191CONFIG_MACH_SMDK=y
169CONFIG_PLAT_S3C=y 192CONFIG_PLAT_S3C=y
170CONFIG_CPU_LLSERIAL_S3C2410=y 193CONFIG_CPU_LLSERIAL_S3C2410=y
@@ -174,7 +197,8 @@ CONFIG_CPU_LLSERIAL_S3C2440=y
174# Boot options 197# Boot options
175# 198#
176# CONFIG_S3C_BOOT_WATCHDOG is not set 199# CONFIG_S3C_BOOT_WATCHDOG is not set
177# CONFIG_S3C_BOOT_ERROR_RESET is not set 200CONFIG_S3C_BOOT_ERROR_RESET=y
201CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
178 202
179# 203#
180# Power management 204# Power management
@@ -182,6 +206,8 @@ CONFIG_CPU_LLSERIAL_S3C2440=y
182# CONFIG_S3C2410_PM_DEBUG is not set 206# CONFIG_S3C2410_PM_DEBUG is not set
183# CONFIG_S3C2410_PM_CHECK is not set 207# CONFIG_S3C2410_PM_CHECK is not set
184CONFIG_S3C_LOWLEVEL_UART_PORT=0 208CONFIG_S3C_LOWLEVEL_UART_PORT=0
209CONFIG_S3C_GPIO_SPACE=0
210CONFIG_S3C_DEV_HSMMC=y
185 211
186# 212#
187# S3C2400 Machines 213# S3C2400 Machines
@@ -190,7 +216,6 @@ CONFIG_CPU_S3C2410=y
190CONFIG_CPU_S3C2410_DMA=y 216CONFIG_CPU_S3C2410_DMA=y
191CONFIG_S3C2410_PM=y 217CONFIG_S3C2410_PM=y
192CONFIG_S3C2410_GPIO=y 218CONFIG_S3C2410_GPIO=y
193CONFIG_S3C2410_CLOCK=y
194CONFIG_SIMTEC_NOR=y 219CONFIG_SIMTEC_NOR=y
195CONFIG_MACH_BAST_IDE=y 220CONFIG_MACH_BAST_IDE=y
196 221
@@ -205,7 +230,7 @@ CONFIG_ARCH_BAST=y
205CONFIG_MACH_OTOM=y 230CONFIG_MACH_OTOM=y
206CONFIG_MACH_AML_M5900=y 231CONFIG_MACH_AML_M5900=y
207CONFIG_BAST_PC104_IRQ=y 232CONFIG_BAST_PC104_IRQ=y
208# CONFIG_MACH_TCT_HAMMER is not set 233CONFIG_MACH_TCT_HAMMER=y
209CONFIG_MACH_VR1000=y 234CONFIG_MACH_VR1000=y
210CONFIG_MACH_QT2410=y 235CONFIG_MACH_QT2410=y
211CONFIG_CPU_S3C2412=y 236CONFIG_CPU_S3C2412=y
@@ -215,10 +240,11 @@ CONFIG_S3C2412_PM=y
215# 240#
216# S3C2412 Machines 241# S3C2412 Machines
217# 242#
218# CONFIG_MACH_JIVE is not set 243CONFIG_MACH_JIVE=y
244# CONFIG_MACH_JIVE_SHOW_BOOTLOADER is not set
219CONFIG_MACH_SMDK2413=y 245CONFIG_MACH_SMDK2413=y
220CONFIG_MACH_S3C2413=y 246CONFIG_MACH_S3C2413=y
221# CONFIG_MACH_SMDK2412 is not set 247CONFIG_MACH_SMDK2412=y
222CONFIG_MACH_VSTMS=y 248CONFIG_MACH_VSTMS=y
223CONFIG_CPU_S3C2440=y 249CONFIG_CPU_S3C2440=y
224CONFIG_S3C2440_DMA=y 250CONFIG_S3C2440_DMA=y
@@ -232,7 +258,7 @@ CONFIG_MACH_RX3715=y
232CONFIG_ARCH_S3C2440=y 258CONFIG_ARCH_S3C2440=y
233CONFIG_MACH_NEXCODER_2440=y 259CONFIG_MACH_NEXCODER_2440=y
234CONFIG_SMDK2440_CPU2440=y 260CONFIG_SMDK2440_CPU2440=y
235# CONFIG_MACH_AT2440EVB is not set 261CONFIG_MACH_AT2440EVB=y
236CONFIG_CPU_S3C2442=y 262CONFIG_CPU_S3C2442=y
237 263
238# 264#
@@ -286,25 +312,31 @@ CONFIG_ISA=y
286# 312#
287# Kernel Features 313# Kernel Features
288# 314#
289# CONFIG_TICK_ONESHOT is not set 315CONFIG_VMSPLIT_3G=y
316# CONFIG_VMSPLIT_2G is not set
317# CONFIG_VMSPLIT_1G is not set
318CONFIG_PAGE_OFFSET=0xC0000000
290# CONFIG_PREEMPT is not set 319# CONFIG_PREEMPT is not set
291CONFIG_HZ=200 320CONFIG_HZ=200
292# CONFIG_AEABI is not set 321# CONFIG_AEABI is not set
293# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 322CONFIG_ARCH_FLATMEM_HAS_HOLES=y
323# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
324# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
325# CONFIG_HIGHMEM is not set
294CONFIG_SELECT_MEMORY_MODEL=y 326CONFIG_SELECT_MEMORY_MODEL=y
295CONFIG_FLATMEM_MANUAL=y 327CONFIG_FLATMEM_MANUAL=y
296# CONFIG_DISCONTIGMEM_MANUAL is not set 328# CONFIG_DISCONTIGMEM_MANUAL is not set
297# CONFIG_SPARSEMEM_MANUAL is not set 329# CONFIG_SPARSEMEM_MANUAL is not set
298CONFIG_FLATMEM=y 330CONFIG_FLATMEM=y
299CONFIG_FLAT_NODE_MEM_MAP=y 331CONFIG_FLAT_NODE_MEM_MAP=y
300# CONFIG_SPARSEMEM_STATIC is not set
301# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
302CONFIG_PAGEFLAGS_EXTENDED=y 332CONFIG_PAGEFLAGS_EXTENDED=y
303CONFIG_SPLIT_PTLOCK_CPUS=4096 333CONFIG_SPLIT_PTLOCK_CPUS=4096
304# CONFIG_RESOURCES_64BIT is not set 334# CONFIG_PHYS_ADDR_T_64BIT is not set
305CONFIG_ZONE_DMA_FLAG=1 335CONFIG_ZONE_DMA_FLAG=0
306CONFIG_BOUNCE=y
307CONFIG_VIRT_TO_BUS=y 336CONFIG_VIRT_TO_BUS=y
337CONFIG_UNEVICTABLE_LRU=y
338CONFIG_HAVE_MLOCK=y
339CONFIG_HAVE_MLOCKED_PAGE_BIT=y
308CONFIG_ALIGNMENT_TRAP=y 340CONFIG_ALIGNMENT_TRAP=y
309 341
310# 342#
@@ -317,6 +349,11 @@ CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0"
317# CONFIG_KEXEC is not set 349# CONFIG_KEXEC is not set
318 350
319# 351#
352# CPU Power Management
353#
354# CONFIG_CPU_IDLE is not set
355
356#
320# Floating point emulation 357# Floating point emulation
321# 358#
322 359
@@ -332,6 +369,8 @@ CONFIG_FPE_NWFPE_XP=y
332# Userspace binary formats 369# Userspace binary formats
333# 370#
334CONFIG_BINFMT_ELF=y 371CONFIG_BINFMT_ELF=y
372# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
373CONFIG_HAVE_AOUT=y
335CONFIG_BINFMT_AOUT=y 374CONFIG_BINFMT_AOUT=y
336# CONFIG_BINFMT_MISC is not set 375# CONFIG_BINFMT_MISC is not set
337# CONFIG_ARTHUR is not set 376# CONFIG_ARTHUR is not set
@@ -346,10 +385,6 @@ CONFIG_SUSPEND=y
346CONFIG_SUSPEND_FREEZER=y 385CONFIG_SUSPEND_FREEZER=y
347CONFIG_APM_EMULATION=m 386CONFIG_APM_EMULATION=m
348CONFIG_ARCH_SUSPEND_POSSIBLE=y 387CONFIG_ARCH_SUSPEND_POSSIBLE=y
349
350#
351# Networking
352#
353CONFIG_NET=y 388CONFIG_NET=y
354 389
355# 390#
@@ -359,11 +394,13 @@ CONFIG_PACKET=y
359# CONFIG_PACKET_MMAP is not set 394# CONFIG_PACKET_MMAP is not set
360CONFIG_UNIX=y 395CONFIG_UNIX=y
361CONFIG_XFRM=y 396CONFIG_XFRM=y
362# CONFIG_XFRM_USER is not set 397CONFIG_XFRM_USER=m
363# CONFIG_XFRM_SUB_POLICY is not set 398# CONFIG_XFRM_SUB_POLICY is not set
364# CONFIG_XFRM_MIGRATE is not set 399# CONFIG_XFRM_MIGRATE is not set
365# CONFIG_XFRM_STATISTICS is not set 400# CONFIG_XFRM_STATISTICS is not set
366# CONFIG_NET_KEY is not set 401CONFIG_XFRM_IPCOMP=m
402CONFIG_NET_KEY=m
403# CONFIG_NET_KEY_MIGRATE is not set
367CONFIG_INET=y 404CONFIG_INET=y
368CONFIG_IP_MULTICAST=y 405CONFIG_IP_MULTICAST=y
369# CONFIG_IP_ADVANCED_ROUTER is not set 406# CONFIG_IP_ADVANCED_ROUTER is not set
@@ -372,15 +409,16 @@ CONFIG_IP_PNP=y
372CONFIG_IP_PNP_DHCP=y 409CONFIG_IP_PNP_DHCP=y
373CONFIG_IP_PNP_BOOTP=y 410CONFIG_IP_PNP_BOOTP=y
374# CONFIG_IP_PNP_RARP is not set 411# CONFIG_IP_PNP_RARP is not set
375# CONFIG_NET_IPIP is not set 412CONFIG_NET_IPIP=m
376# CONFIG_NET_IPGRE is not set 413CONFIG_NET_IPGRE=m
414# CONFIG_NET_IPGRE_BROADCAST is not set
377# CONFIG_IP_MROUTE is not set 415# CONFIG_IP_MROUTE is not set
378# CONFIG_ARPD is not set 416# CONFIG_ARPD is not set
379# CONFIG_SYN_COOKIES is not set 417# CONFIG_SYN_COOKIES is not set
380# CONFIG_INET_AH is not set 418CONFIG_INET_AH=m
381# CONFIG_INET_ESP is not set 419CONFIG_INET_ESP=m
382# CONFIG_INET_IPCOMP is not set 420CONFIG_INET_IPCOMP=m
383# CONFIG_INET_XFRM_TUNNEL is not set 421CONFIG_INET_XFRM_TUNNEL=m
384CONFIG_INET_TUNNEL=m 422CONFIG_INET_TUNNEL=m
385CONFIG_INET_XFRM_MODE_TRANSPORT=y 423CONFIG_INET_XFRM_MODE_TRANSPORT=y
386CONFIG_INET_XFRM_MODE_TUNNEL=y 424CONFIG_INET_XFRM_MODE_TUNNEL=y
@@ -388,8 +426,25 @@ CONFIG_INET_XFRM_MODE_BEET=y
388# CONFIG_INET_LRO is not set 426# CONFIG_INET_LRO is not set
389CONFIG_INET_DIAG=y 427CONFIG_INET_DIAG=y
390CONFIG_INET_TCP_DIAG=y 428CONFIG_INET_TCP_DIAG=y
391# CONFIG_TCP_CONG_ADVANCED is not set 429CONFIG_TCP_CONG_ADVANCED=y
430CONFIG_TCP_CONG_BIC=m
392CONFIG_TCP_CONG_CUBIC=y 431CONFIG_TCP_CONG_CUBIC=y
432CONFIG_TCP_CONG_WESTWOOD=m
433CONFIG_TCP_CONG_HTCP=m
434CONFIG_TCP_CONG_HSTCP=m
435CONFIG_TCP_CONG_HYBLA=m
436CONFIG_TCP_CONG_VEGAS=m
437CONFIG_TCP_CONG_SCALABLE=m
438CONFIG_TCP_CONG_LP=m
439CONFIG_TCP_CONG_VENO=m
440CONFIG_TCP_CONG_YEAH=m
441CONFIG_TCP_CONG_ILLINOIS=m
442# CONFIG_DEFAULT_BIC is not set
443CONFIG_DEFAULT_CUBIC=y
444# CONFIG_DEFAULT_HTCP is not set
445# CONFIG_DEFAULT_VEGAS is not set
446# CONFIG_DEFAULT_WESTWOOD is not set
447# CONFIG_DEFAULT_RENO is not set
393CONFIG_DEFAULT_TCP_CONG="cubic" 448CONFIG_DEFAULT_TCP_CONG="cubic"
394# CONFIG_TCP_MD5SIG is not set 449# CONFIG_TCP_MD5SIG is not set
395CONFIG_IPV6=m 450CONFIG_IPV6=m
@@ -413,12 +468,181 @@ CONFIG_IPV6_TUNNEL=m
413# CONFIG_IPV6_MULTIPLE_TABLES is not set 468# CONFIG_IPV6_MULTIPLE_TABLES is not set
414# CONFIG_IPV6_MROUTE is not set 469# CONFIG_IPV6_MROUTE is not set
415# CONFIG_NETWORK_SECMARK is not set 470# CONFIG_NETWORK_SECMARK is not set
416# CONFIG_NETFILTER is not set 471CONFIG_NETFILTER=y
472# CONFIG_NETFILTER_DEBUG is not set
473CONFIG_NETFILTER_ADVANCED=y
474
475#
476# Core Netfilter Configuration
477#
478CONFIG_NETFILTER_NETLINK=m
479CONFIG_NETFILTER_NETLINK_QUEUE=m
480CONFIG_NETFILTER_NETLINK_LOG=m
481CONFIG_NF_CONNTRACK=m
482CONFIG_NF_CT_ACCT=y
483CONFIG_NF_CONNTRACK_MARK=y
484CONFIG_NF_CONNTRACK_EVENTS=y
485CONFIG_NF_CT_PROTO_DCCP=m
486CONFIG_NF_CT_PROTO_GRE=m
487CONFIG_NF_CT_PROTO_SCTP=m
488CONFIG_NF_CT_PROTO_UDPLITE=m
489CONFIG_NF_CONNTRACK_AMANDA=m
490CONFIG_NF_CONNTRACK_FTP=m
491CONFIG_NF_CONNTRACK_H323=m
492CONFIG_NF_CONNTRACK_IRC=m
493CONFIG_NF_CONNTRACK_NETBIOS_NS=m
494CONFIG_NF_CONNTRACK_PPTP=m
495CONFIG_NF_CONNTRACK_SANE=m
496CONFIG_NF_CONNTRACK_SIP=m
497CONFIG_NF_CONNTRACK_TFTP=m
498CONFIG_NF_CT_NETLINK=m
499# CONFIG_NETFILTER_TPROXY is not set
500CONFIG_NETFILTER_XTABLES=m
501CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
502CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
503# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
504CONFIG_NETFILTER_XT_TARGET_HL=m
505CONFIG_NETFILTER_XT_TARGET_LED=m
506CONFIG_NETFILTER_XT_TARGET_MARK=m
507CONFIG_NETFILTER_XT_TARGET_NFLOG=m
508CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
509# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
510CONFIG_NETFILTER_XT_TARGET_RATEEST=m
511# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
512CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
513# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
514CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
515CONFIG_NETFILTER_XT_MATCH_COMMENT=m
516CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
517CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
518CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
519CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
520CONFIG_NETFILTER_XT_MATCH_DCCP=m
521CONFIG_NETFILTER_XT_MATCH_DSCP=m
522CONFIG_NETFILTER_XT_MATCH_ESP=m
523CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
524CONFIG_NETFILTER_XT_MATCH_HELPER=m
525CONFIG_NETFILTER_XT_MATCH_HL=m
526CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
527CONFIG_NETFILTER_XT_MATCH_LENGTH=m
528CONFIG_NETFILTER_XT_MATCH_LIMIT=m
529CONFIG_NETFILTER_XT_MATCH_MAC=m
530CONFIG_NETFILTER_XT_MATCH_MARK=m
531CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
532CONFIG_NETFILTER_XT_MATCH_OWNER=m
533CONFIG_NETFILTER_XT_MATCH_POLICY=m
534CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
535CONFIG_NETFILTER_XT_MATCH_QUOTA=m
536CONFIG_NETFILTER_XT_MATCH_RATEEST=m
537CONFIG_NETFILTER_XT_MATCH_REALM=m
538CONFIG_NETFILTER_XT_MATCH_RECENT=m
539# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
540CONFIG_NETFILTER_XT_MATCH_SCTP=m
541CONFIG_NETFILTER_XT_MATCH_STATE=m
542CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
543CONFIG_NETFILTER_XT_MATCH_STRING=m
544CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
545CONFIG_NETFILTER_XT_MATCH_TIME=m
546CONFIG_NETFILTER_XT_MATCH_U32=m
547CONFIG_IP_VS=m
548# CONFIG_IP_VS_IPV6 is not set
549# CONFIG_IP_VS_DEBUG is not set
550CONFIG_IP_VS_TAB_BITS=12
551
552#
553# IPVS transport protocol load balancing support
554#
555# CONFIG_IP_VS_PROTO_TCP is not set
556# CONFIG_IP_VS_PROTO_UDP is not set
557# CONFIG_IP_VS_PROTO_ESP is not set
558# CONFIG_IP_VS_PROTO_AH is not set
559
560#
561# IPVS scheduler
562#
563# CONFIG_IP_VS_RR is not set
564# CONFIG_IP_VS_WRR is not set
565# CONFIG_IP_VS_LC is not set
566# CONFIG_IP_VS_WLC is not set
567# CONFIG_IP_VS_LBLC is not set
568# CONFIG_IP_VS_LBLCR is not set
569# CONFIG_IP_VS_DH is not set
570# CONFIG_IP_VS_SH is not set
571# CONFIG_IP_VS_SED is not set
572# CONFIG_IP_VS_NQ is not set
573
574#
575# IPVS application helper
576#
577
578#
579# IP: Netfilter Configuration
580#
581CONFIG_NF_DEFRAG_IPV4=m
582CONFIG_NF_CONNTRACK_IPV4=m
583CONFIG_NF_CONNTRACK_PROC_COMPAT=y
584CONFIG_IP_NF_QUEUE=m
585CONFIG_IP_NF_IPTABLES=m
586CONFIG_IP_NF_MATCH_ADDRTYPE=m
587CONFIG_IP_NF_MATCH_AH=m
588CONFIG_IP_NF_MATCH_ECN=m
589CONFIG_IP_NF_MATCH_TTL=m
590CONFIG_IP_NF_FILTER=m
591CONFIG_IP_NF_TARGET_REJECT=m
592CONFIG_IP_NF_TARGET_LOG=m
593CONFIG_IP_NF_TARGET_ULOG=m
594CONFIG_NF_NAT=m
595CONFIG_NF_NAT_NEEDED=y
596CONFIG_IP_NF_TARGET_MASQUERADE=m
597CONFIG_IP_NF_TARGET_NETMAP=m
598CONFIG_IP_NF_TARGET_REDIRECT=m
599CONFIG_NF_NAT_SNMP_BASIC=m
600CONFIG_NF_NAT_PROTO_DCCP=m
601CONFIG_NF_NAT_PROTO_GRE=m
602CONFIG_NF_NAT_PROTO_UDPLITE=m
603CONFIG_NF_NAT_PROTO_SCTP=m
604CONFIG_NF_NAT_FTP=m
605CONFIG_NF_NAT_IRC=m
606CONFIG_NF_NAT_TFTP=m
607CONFIG_NF_NAT_AMANDA=m
608CONFIG_NF_NAT_PPTP=m
609CONFIG_NF_NAT_H323=m
610CONFIG_NF_NAT_SIP=m
611CONFIG_IP_NF_MANGLE=m
612CONFIG_IP_NF_TARGET_CLUSTERIP=m
613CONFIG_IP_NF_TARGET_ECN=m
614CONFIG_IP_NF_TARGET_TTL=m
615CONFIG_IP_NF_RAW=m
616CONFIG_IP_NF_ARPTABLES=m
617CONFIG_IP_NF_ARPFILTER=m
618CONFIG_IP_NF_ARP_MANGLE=m
619
620#
621# IPv6: Netfilter Configuration
622#
623CONFIG_NF_CONNTRACK_IPV6=m
624CONFIG_IP6_NF_QUEUE=m
625CONFIG_IP6_NF_IPTABLES=m
626CONFIG_IP6_NF_MATCH_AH=m
627CONFIG_IP6_NF_MATCH_EUI64=m
628CONFIG_IP6_NF_MATCH_FRAG=m
629CONFIG_IP6_NF_MATCH_OPTS=m
630CONFIG_IP6_NF_MATCH_HL=m
631CONFIG_IP6_NF_MATCH_IPV6HEADER=m
632CONFIG_IP6_NF_MATCH_MH=m
633CONFIG_IP6_NF_MATCH_RT=m
634CONFIG_IP6_NF_TARGET_HL=m
635CONFIG_IP6_NF_TARGET_LOG=m
636CONFIG_IP6_NF_FILTER=m
637CONFIG_IP6_NF_TARGET_REJECT=m
638CONFIG_IP6_NF_MANGLE=m
639CONFIG_IP6_NF_RAW=m
417# CONFIG_IP_DCCP is not set 640# CONFIG_IP_DCCP is not set
418# CONFIG_IP_SCTP is not set 641# CONFIG_IP_SCTP is not set
419# CONFIG_TIPC is not set 642# CONFIG_TIPC is not set
420# CONFIG_ATM is not set 643# CONFIG_ATM is not set
421# CONFIG_BRIDGE is not set 644# CONFIG_BRIDGE is not set
645# CONFIG_NET_DSA is not set
422# CONFIG_VLAN_8021Q is not set 646# CONFIG_VLAN_8021Q is not set
423# CONFIG_DECNET is not set 647# CONFIG_DECNET is not set
424# CONFIG_LLC2 is not set 648# CONFIG_LLC2 is not set
@@ -428,8 +652,10 @@ CONFIG_IPV6_TUNNEL=m
428# CONFIG_LAPB is not set 652# CONFIG_LAPB is not set
429# CONFIG_ECONET is not set 653# CONFIG_ECONET is not set
430# CONFIG_WAN_ROUTER is not set 654# CONFIG_WAN_ROUTER is not set
655# CONFIG_PHONET is not set
431# CONFIG_NET_SCHED is not set 656# CONFIG_NET_SCHED is not set
432CONFIG_NET_SCH_FIFO=y 657CONFIG_NET_CLS_ROUTE=y
658# CONFIG_DCB is not set
433 659
434# 660#
435# Network testing 661# Network testing
@@ -451,8 +677,8 @@ CONFIG_BT_HIDP=m
451# 677#
452# Bluetooth device drivers 678# Bluetooth device drivers
453# 679#
454CONFIG_BT_HCIUSB=m 680# CONFIG_BT_HCIBTUSB is not set
455CONFIG_BT_HCIUSB_SCO=y 681# CONFIG_BT_HCIBTSDIO is not set
456CONFIG_BT_HCIUART=m 682CONFIG_BT_HCIUART=m
457CONFIG_BT_HCIUART_H4=y 683CONFIG_BT_HCIUART_H4=y
458CONFIG_BT_HCIUART_BCSP=y 684CONFIG_BT_HCIUART_BCSP=y
@@ -462,35 +688,26 @@ CONFIG_BT_HCIBPA10X=m
462CONFIG_BT_HCIBFUSB=m 688CONFIG_BT_HCIBFUSB=m
463CONFIG_BT_HCIVHCI=m 689CONFIG_BT_HCIVHCI=m
464# CONFIG_AF_RXRPC is not set 690# CONFIG_AF_RXRPC is not set
465 691CONFIG_WIRELESS=y
466#
467# Wireless
468#
469CONFIG_CFG80211=m 692CONFIG_CFG80211=m
470CONFIG_NL80211=y 693# CONFIG_CFG80211_REG_DEBUG is not set
694# CONFIG_WIRELESS_OLD_REGULATORY is not set
471CONFIG_WIRELESS_EXT=y 695CONFIG_WIRELESS_EXT=y
696CONFIG_WIRELESS_EXT_SYSFS=y
697# CONFIG_LIB80211 is not set
472CONFIG_MAC80211=m 698CONFIG_MAC80211=m
473 699
474# 700#
475# Rate control algorithm selection 701# Rate control algorithm selection
476# 702#
477CONFIG_MAC80211_RC_DEFAULT_PID=y 703CONFIG_MAC80211_RC_MINSTREL=y
478# CONFIG_MAC80211_RC_DEFAULT_NONE is not set 704# CONFIG_MAC80211_RC_DEFAULT_PID is not set
479 705CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
480# 706CONFIG_MAC80211_RC_DEFAULT="minstrel"
481# Selecting 'y' for an algorithm will
482#
483
484#
485# build the algorithm into mac80211.
486#
487CONFIG_MAC80211_RC_DEFAULT="pid"
488CONFIG_MAC80211_RC_PID=y
489CONFIG_MAC80211_MESH=y 707CONFIG_MAC80211_MESH=y
490CONFIG_MAC80211_LEDS=y 708CONFIG_MAC80211_LEDS=y
491# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 709# CONFIG_MAC80211_DEBUG_MENU is not set
492# CONFIG_MAC80211_DEBUG is not set 710# CONFIG_WIMAX is not set
493# CONFIG_IEEE80211 is not set
494# CONFIG_RFKILL is not set 711# CONFIG_RFKILL is not set
495# CONFIG_NET_9P is not set 712# CONFIG_NET_9P is not set
496 713
@@ -504,7 +721,9 @@ CONFIG_MAC80211_LEDS=y
504CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 721CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
505CONFIG_STANDALONE=y 722CONFIG_STANDALONE=y
506CONFIG_PREVENT_FIRMWARE_BUILD=y 723CONFIG_PREVENT_FIRMWARE_BUILD=y
507CONFIG_FW_LOADER=m 724CONFIG_FW_LOADER=y
725CONFIG_FIRMWARE_IN_KERNEL=y
726CONFIG_EXTRA_FIRMWARE=""
508# CONFIG_DEBUG_DRIVER is not set 727# CONFIG_DEBUG_DRIVER is not set
509# CONFIG_DEBUG_DEVRES is not set 728# CONFIG_DEBUG_DEVRES is not set
510# CONFIG_SYS_HYPERVISOR is not set 729# CONFIG_SYS_HYPERVISOR is not set
@@ -513,6 +732,7 @@ CONFIG_MTD=y
513# CONFIG_MTD_DEBUG is not set 732# CONFIG_MTD_DEBUG is not set
514# CONFIG_MTD_CONCAT is not set 733# CONFIG_MTD_CONCAT is not set
515CONFIG_MTD_PARTITIONS=y 734CONFIG_MTD_PARTITIONS=y
735# CONFIG_MTD_TESTS is not set
516CONFIG_MTD_REDBOOT_PARTS=y 736CONFIG_MTD_REDBOOT_PARTS=y
517CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 737CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
518CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 738CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
@@ -545,7 +765,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_1=y
545CONFIG_MTD_MAP_BANK_WIDTH_2=y 765CONFIG_MTD_MAP_BANK_WIDTH_2=y
546CONFIG_MTD_MAP_BANK_WIDTH_4=y 766CONFIG_MTD_MAP_BANK_WIDTH_4=y
547# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set 767# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
548CONFIG_MTD_MAP_BANK_WIDTH_16=y 768# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
549# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set 769# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
550CONFIG_MTD_CFI_I1=y 770CONFIG_MTD_CFI_I1=y
551CONFIG_MTD_CFI_I2=y 771CONFIG_MTD_CFI_I2=y
@@ -566,8 +786,6 @@ CONFIG_MTD_ROM=y
566# CONFIG_MTD_PHYSMAP is not set 786# CONFIG_MTD_PHYSMAP is not set
567# CONFIG_MTD_ARM_INTEGRATOR is not set 787# CONFIG_MTD_ARM_INTEGRATOR is not set
568# CONFIG_MTD_IMPA7 is not set 788# CONFIG_MTD_IMPA7 is not set
569CONFIG_MTD_BAST=y
570CONFIG_MTD_BAST_MAXSIZE=4
571# CONFIG_MTD_PLATRAM is not set 789# CONFIG_MTD_PLATRAM is not set
572 790
573# 791#
@@ -590,6 +808,7 @@ CONFIG_MTD_NAND=y
590# CONFIG_MTD_NAND_VERIFY_WRITE is not set 808# CONFIG_MTD_NAND_VERIFY_WRITE is not set
591# CONFIG_MTD_NAND_ECC_SMC is not set 809# CONFIG_MTD_NAND_ECC_SMC is not set
592# CONFIG_MTD_NAND_MUSEUM_IDS is not set 810# CONFIG_MTD_NAND_MUSEUM_IDS is not set
811# CONFIG_MTD_NAND_GPIO is not set
593CONFIG_MTD_NAND_IDS=y 812CONFIG_MTD_NAND_IDS=y
594CONFIG_MTD_NAND_S3C2410=y 813CONFIG_MTD_NAND_S3C2410=y
595# CONFIG_MTD_NAND_S3C2410_DEBUG is not set 814# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
@@ -602,6 +821,11 @@ CONFIG_MTD_NAND_S3C2410=y
602# CONFIG_MTD_ONENAND is not set 821# CONFIG_MTD_ONENAND is not set
603 822
604# 823#
824# LPDDR flash memory drivers
825#
826# CONFIG_MTD_LPDDR is not set
827
828#
605# UBI - Unsorted block images 829# UBI - Unsorted block images
606# 830#
607# CONFIG_MTD_UBI is not set 831# CONFIG_MTD_UBI is not set
@@ -620,7 +844,7 @@ CONFIG_BLK_DEV=y
620CONFIG_BLK_DEV_LOOP=y 844CONFIG_BLK_DEV_LOOP=y
621# CONFIG_BLK_DEV_CRYPTOLOOP is not set 845# CONFIG_BLK_DEV_CRYPTOLOOP is not set
622CONFIG_BLK_DEV_NBD=m 846CONFIG_BLK_DEV_NBD=m
623# CONFIG_BLK_DEV_UB is not set 847CONFIG_BLK_DEV_UB=m
624CONFIG_BLK_DEV_RAM=y 848CONFIG_BLK_DEV_RAM=y
625CONFIG_BLK_DEV_RAM_COUNT=16 849CONFIG_BLK_DEV_RAM_COUNT=16
626CONFIG_BLK_DEV_RAM_SIZE=4096 850CONFIG_BLK_DEV_RAM_SIZE=4096
@@ -628,32 +852,40 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
628# CONFIG_CDROM_PKTCDVD is not set 852# CONFIG_CDROM_PKTCDVD is not set
629CONFIG_ATA_OVER_ETH=m 853CONFIG_ATA_OVER_ETH=m
630CONFIG_MISC_DEVICES=y 854CONFIG_MISC_DEVICES=y
631# CONFIG_EEPROM_93CX6 is not set 855# CONFIG_ICS932S401 is not set
632# CONFIG_ENCLOSURE_SERVICES is not set 856# CONFIG_ENCLOSURE_SERVICES is not set
857# CONFIG_ISL29003 is not set
858# CONFIG_C2PORT is not set
859
860#
861# EEPROM support
862#
863CONFIG_EEPROM_AT24=m
864CONFIG_EEPROM_AT25=m
865CONFIG_EEPROM_LEGACY=m
866CONFIG_EEPROM_93CX6=m
633CONFIG_HAVE_IDE=y 867CONFIG_HAVE_IDE=y
634CONFIG_IDE=y 868CONFIG_IDE=y
635CONFIG_BLK_DEV_IDE=y
636 869
637# 870#
638# Please see Documentation/ide/ide.txt for help/info on IDE drives 871# Please see Documentation/ide/ide.txt for help/info on IDE drives
639# 872#
873CONFIG_IDE_ATAPI=y
640# CONFIG_BLK_DEV_IDE_SATA is not set 874# CONFIG_BLK_DEV_IDE_SATA is not set
641CONFIG_BLK_DEV_IDEDISK=y 875CONFIG_IDE_GD=y
642# CONFIG_IDEDISK_MULTI_MODE is not set 876CONFIG_IDE_GD_ATA=y
877# CONFIG_IDE_GD_ATAPI is not set
643CONFIG_BLK_DEV_IDECD=y 878CONFIG_BLK_DEV_IDECD=y
644CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 879CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
645CONFIG_BLK_DEV_IDETAPE=m 880CONFIG_BLK_DEV_IDETAPE=m
646CONFIG_BLK_DEV_IDEFLOPPY=m
647# CONFIG_BLK_DEV_IDESCSI is not set
648# CONFIG_IDE_TASK_IOCTL is not set 881# CONFIG_IDE_TASK_IOCTL is not set
649CONFIG_IDE_PROC_FS=y 882CONFIG_IDE_PROC_FS=y
650 883
651# 884#
652# IDE chipset support/bugfixes 885# IDE chipset support/bugfixes
653# 886#
654# CONFIG_BLK_DEV_PLATFORM is not set 887CONFIG_BLK_DEV_PLATFORM=y
655# CONFIG_BLK_DEV_IDEDMA is not set 888# CONFIG_BLK_DEV_IDEDMA is not set
656# CONFIG_BLK_DEV_HD is not set
657 889
658# 890#
659# SCSI device support 891# SCSI device support
@@ -699,6 +931,8 @@ CONFIG_SCSI_LOWLEVEL=y
699# CONFIG_SCSI_AIC7XXX_OLD is not set 931# CONFIG_SCSI_AIC7XXX_OLD is not set
700# CONFIG_SCSI_ADVANSYS is not set 932# CONFIG_SCSI_ADVANSYS is not set
701# CONFIG_SCSI_IN2000 is not set 933# CONFIG_SCSI_IN2000 is not set
934# CONFIG_LIBFC is not set
935# CONFIG_LIBFCOE is not set
702# CONFIG_SCSI_DTC3280 is not set 936# CONFIG_SCSI_DTC3280 is not set
703# CONFIG_SCSI_FUTURE_DOMAIN is not set 937# CONFIG_SCSI_FUTURE_DOMAIN is not set
704# CONFIG_SCSI_GENERIC_NCR5380 is not set 938# CONFIG_SCSI_GENERIC_NCR5380 is not set
@@ -711,11 +945,13 @@ CONFIG_SCSI_LOWLEVEL=y
711# CONFIG_SCSI_SYM53C416 is not set 945# CONFIG_SCSI_SYM53C416 is not set
712# CONFIG_SCSI_T128 is not set 946# CONFIG_SCSI_T128 is not set
713# CONFIG_SCSI_DEBUG is not set 947# CONFIG_SCSI_DEBUG is not set
948# CONFIG_SCSI_DH is not set
949# CONFIG_SCSI_OSD_INITIATOR is not set
714# CONFIG_ATA is not set 950# CONFIG_ATA is not set
715CONFIG_HAVE_PATA_PLATFORM=y 951CONFIG_HAVE_PATA_PLATFORM=y
716# CONFIG_MD is not set 952# CONFIG_MD is not set
717CONFIG_NETDEVICES=y 953CONFIG_NETDEVICES=y
718# CONFIG_NETDEVICES_MULTIQUEUE is not set 954CONFIG_COMPAT_NET_DEV_OPS=y
719# CONFIG_DUMMY is not set 955# CONFIG_DUMMY is not set
720# CONFIG_BONDING is not set 956# CONFIG_BONDING is not set
721# CONFIG_MACVLAN is not set 957# CONFIG_MACVLAN is not set
@@ -731,9 +967,14 @@ CONFIG_MII=y
731# CONFIG_NET_VENDOR_SMC is not set 967# CONFIG_NET_VENDOR_SMC is not set
732# CONFIG_SMC91X is not set 968# CONFIG_SMC91X is not set
733CONFIG_DM9000=y 969CONFIG_DM9000=y
734# CONFIG_ENC28J60 is not set
735CONFIG_DM9000_DEBUGLEVEL=4 970CONFIG_DM9000_DEBUGLEVEL=4
971# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
972# CONFIG_ENC28J60 is not set
973# CONFIG_ETHOC is not set
974# CONFIG_SMC911X is not set
975# CONFIG_SMSC911X is not set
736# CONFIG_NET_VENDOR_RACAL is not set 976# CONFIG_NET_VENDOR_RACAL is not set
977# CONFIG_DNET is not set
737# CONFIG_AT1700 is not set 978# CONFIG_AT1700 is not set
738# CONFIG_DEPCA is not set 979# CONFIG_DEPCA is not set
739# CONFIG_HP100 is not set 980# CONFIG_HP100 is not set
@@ -742,11 +983,14 @@ CONFIG_DM9000_DEBUGLEVEL=4
742# CONFIG_IBM_NEW_EMAC_RGMII is not set 983# CONFIG_IBM_NEW_EMAC_RGMII is not set
743# CONFIG_IBM_NEW_EMAC_TAH is not set 984# CONFIG_IBM_NEW_EMAC_TAH is not set
744# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 985# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
986# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
987# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
988# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
745# CONFIG_NET_PCI is not set 989# CONFIG_NET_PCI is not set
746# CONFIG_B44 is not set 990# CONFIG_B44 is not set
991# CONFIG_CS89x0 is not set
747# CONFIG_NET_POCKET is not set 992# CONFIG_NET_POCKET is not set
748CONFIG_NETDEV_1000=y 993CONFIG_NETDEV_1000=y
749# CONFIG_E1000E_ENABLED is not set
750CONFIG_NETDEV_10000=y 994CONFIG_NETDEV_10000=y
751# CONFIG_TR is not set 995# CONFIG_TR is not set
752 996
@@ -755,7 +999,10 @@ CONFIG_NETDEV_10000=y
755# 999#
756# CONFIG_WLAN_PRE80211 is not set 1000# CONFIG_WLAN_PRE80211 is not set
757# CONFIG_WLAN_80211 is not set 1001# CONFIG_WLAN_80211 is not set
758# CONFIG_IWLWIFI_LEDS is not set 1002
1003#
1004# Enable WiMAX (Networking options) to see the WiMAX drivers
1005#
759 1006
760# 1007#
761# USB Network Adapters 1008# USB Network Adapters
@@ -778,7 +1025,7 @@ CONFIG_NETDEV_10000=y
778# Input device support 1025# Input device support
779# 1026#
780CONFIG_INPUT=y 1027CONFIG_INPUT=y
781# CONFIG_INPUT_FF_MEMLESS is not set 1028CONFIG_INPUT_FF_MEMLESS=m
782# CONFIG_INPUT_POLLDEV is not set 1029# CONFIG_INPUT_POLLDEV is not set
783 1030
784# 1031#
@@ -789,7 +1036,7 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
789CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 1036CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
790CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 1037CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
791# CONFIG_INPUT_JOYDEV is not set 1038# CONFIG_INPUT_JOYDEV is not set
792# CONFIG_INPUT_EVDEV is not set 1039CONFIG_INPUT_EVDEV=y
793# CONFIG_INPUT_EVBUG is not set 1040# CONFIG_INPUT_EVBUG is not set
794 1041
795# 1042#
@@ -808,20 +1055,88 @@ CONFIG_MOUSE_PS2=y
808CONFIG_MOUSE_PS2_ALPS=y 1055CONFIG_MOUSE_PS2_ALPS=y
809CONFIG_MOUSE_PS2_LOGIPS2PP=y 1056CONFIG_MOUSE_PS2_LOGIPS2PP=y
810CONFIG_MOUSE_PS2_SYNAPTICS=y 1057CONFIG_MOUSE_PS2_SYNAPTICS=y
811CONFIG_MOUSE_PS2_LIFEBOOK=y
812CONFIG_MOUSE_PS2_TRACKPOINT=y 1058CONFIG_MOUSE_PS2_TRACKPOINT=y
1059# CONFIG_MOUSE_PS2_ELANTECH is not set
813# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1060# CONFIG_MOUSE_PS2_TOUCHKIT is not set
814# CONFIG_MOUSE_SERIAL is not set 1061# CONFIG_MOUSE_SERIAL is not set
815# CONFIG_MOUSE_APPLETOUCH is not set 1062CONFIG_MOUSE_APPLETOUCH=m
1063CONFIG_MOUSE_BCM5974=m
816# CONFIG_MOUSE_INPORT is not set 1064# CONFIG_MOUSE_INPORT is not set
817# CONFIG_MOUSE_LOGIBM is not set 1065# CONFIG_MOUSE_LOGIBM is not set
818# CONFIG_MOUSE_PC110PAD is not set 1066# CONFIG_MOUSE_PC110PAD is not set
819# CONFIG_MOUSE_VSXXXAA is not set 1067# CONFIG_MOUSE_VSXXXAA is not set
820# CONFIG_MOUSE_GPIO is not set 1068# CONFIG_MOUSE_GPIO is not set
821# CONFIG_INPUT_JOYSTICK is not set 1069CONFIG_INPUT_JOYSTICK=y
1070CONFIG_JOYSTICK_ANALOG=m
1071CONFIG_JOYSTICK_A3D=m
1072CONFIG_JOYSTICK_ADI=m
1073CONFIG_JOYSTICK_COBRA=m
1074CONFIG_JOYSTICK_GF2K=m
1075CONFIG_JOYSTICK_GRIP=m
1076CONFIG_JOYSTICK_GRIP_MP=m
1077CONFIG_JOYSTICK_GUILLEMOT=m
1078CONFIG_JOYSTICK_INTERACT=m
1079CONFIG_JOYSTICK_SIDEWINDER=m
1080CONFIG_JOYSTICK_TMDC=m
1081CONFIG_JOYSTICK_IFORCE=m
1082# CONFIG_JOYSTICK_IFORCE_USB is not set
1083# CONFIG_JOYSTICK_IFORCE_232 is not set
1084# CONFIG_JOYSTICK_WARRIOR is not set
1085CONFIG_JOYSTICK_MAGELLAN=m
1086CONFIG_JOYSTICK_SPACEORB=m
1087CONFIG_JOYSTICK_SPACEBALL=m
1088CONFIG_JOYSTICK_STINGER=m
1089CONFIG_JOYSTICK_TWIDJOY=m
1090CONFIG_JOYSTICK_ZHENHUA=m
1091CONFIG_JOYSTICK_DB9=m
1092CONFIG_JOYSTICK_GAMECON=m
1093CONFIG_JOYSTICK_TURBOGRAFX=m
1094CONFIG_JOYSTICK_JOYDUMP=m
1095CONFIG_JOYSTICK_XPAD=m
1096CONFIG_JOYSTICK_XPAD_FF=y
1097CONFIG_JOYSTICK_XPAD_LEDS=y
822# CONFIG_INPUT_TABLET is not set 1098# CONFIG_INPUT_TABLET is not set
823# CONFIG_INPUT_TOUCHSCREEN is not set 1099CONFIG_INPUT_TOUCHSCREEN=y
824# CONFIG_INPUT_MISC is not set 1100# CONFIG_TOUCHSCREEN_ADS7846 is not set
1101# CONFIG_TOUCHSCREEN_AD7877 is not set
1102# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
1103# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
1104# CONFIG_TOUCHSCREEN_AD7879 is not set
1105# CONFIG_TOUCHSCREEN_FUJITSU is not set
1106# CONFIG_TOUCHSCREEN_GUNZE is not set
1107# CONFIG_TOUCHSCREEN_ELO is not set
1108# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
1109# CONFIG_TOUCHSCREEN_MTOUCH is not set
1110# CONFIG_TOUCHSCREEN_INEXIO is not set
1111# CONFIG_TOUCHSCREEN_MK712 is not set
1112# CONFIG_TOUCHSCREEN_HTCPEN is not set
1113# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1114# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1115# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1116# CONFIG_TOUCHSCREEN_WM97XX is not set
1117CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
1118CONFIG_TOUCHSCREEN_USB_EGALAX=y
1119CONFIG_TOUCHSCREEN_USB_PANJIT=y
1120CONFIG_TOUCHSCREEN_USB_3M=y
1121CONFIG_TOUCHSCREEN_USB_ITM=y
1122CONFIG_TOUCHSCREEN_USB_ETURBO=y
1123CONFIG_TOUCHSCREEN_USB_GUNZE=y
1124CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
1125CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
1126CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
1127CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
1128CONFIG_TOUCHSCREEN_USB_GOTOP=y
1129# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1130# CONFIG_TOUCHSCREEN_TSC2007 is not set
1131CONFIG_INPUT_MISC=y
1132CONFIG_INPUT_ATI_REMOTE=m
1133CONFIG_INPUT_ATI_REMOTE2=m
1134CONFIG_INPUT_KEYSPAN_REMOTE=m
1135CONFIG_INPUT_POWERMATE=m
1136CONFIG_INPUT_YEALINK=m
1137CONFIG_INPUT_CM109=m
1138CONFIG_INPUT_UINPUT=m
1139CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
825 1140
826# 1141#
827# Hardware I/O ports 1142# Hardware I/O ports
@@ -831,12 +1146,15 @@ CONFIG_SERIO_SERPORT=y
831# CONFIG_SERIO_PARKBD is not set 1146# CONFIG_SERIO_PARKBD is not set
832CONFIG_SERIO_LIBPS2=y 1147CONFIG_SERIO_LIBPS2=y
833# CONFIG_SERIO_RAW is not set 1148# CONFIG_SERIO_RAW is not set
834# CONFIG_GAMEPORT is not set 1149CONFIG_GAMEPORT=m
1150# CONFIG_GAMEPORT_NS558 is not set
1151# CONFIG_GAMEPORT_L4 is not set
835 1152
836# 1153#
837# Character devices 1154# Character devices
838# 1155#
839CONFIG_VT=y 1156CONFIG_VT=y
1157CONFIG_CONSOLE_TRANSLATIONS=y
840CONFIG_VT_CONSOLE=y 1158CONFIG_VT_CONSOLE=y
841CONFIG_HW_CONSOLE=y 1159CONFIG_HW_CONSOLE=y
842# CONFIG_VT_HW_CONSOLE_BINDING is not set 1160# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -877,14 +1195,17 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
877# Non-8250 serial port support 1195# Non-8250 serial port support
878# 1196#
879CONFIG_SERIAL_SAMSUNG=y 1197CONFIG_SERIAL_SAMSUNG=y
1198CONFIG_SERIAL_SAMSUNG_UARTS=4
880# CONFIG_SERIAL_SAMSUNG_DEBUG is not set 1199# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
881CONFIG_SERIAL_SAMSUNG_CONSOLE=y 1200CONFIG_SERIAL_SAMSUNG_CONSOLE=y
882CONFIG_SERIAL_S3C2410=y 1201CONFIG_SERIAL_S3C2410=y
883CONFIG_SERIAL_S3C2412=y 1202CONFIG_SERIAL_S3C2412=y
884CONFIG_SERIAL_S3C2440=y 1203CONFIG_SERIAL_S3C2440=y
1204# CONFIG_SERIAL_MAX3100 is not set
885CONFIG_SERIAL_CORE=y 1205CONFIG_SERIAL_CORE=y
886CONFIG_SERIAL_CORE_CONSOLE=y 1206CONFIG_SERIAL_CORE_CONSOLE=y
887CONFIG_UNIX98_PTYS=y 1207CONFIG_UNIX98_PTYS=y
1208# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
888CONFIG_LEGACY_PTYS=y 1209CONFIG_LEGACY_PTYS=y
889CONFIG_LEGACY_PTY_COUNT=256 1210CONFIG_LEGACY_PTY_COUNT=256
890CONFIG_PRINTER=y 1211CONFIG_PRINTER=y
@@ -892,7 +1213,7 @@ CONFIG_PRINTER=y
892CONFIG_PPDEV=y 1213CONFIG_PPDEV=y
893# CONFIG_IPMI_HANDLER is not set 1214# CONFIG_IPMI_HANDLER is not set
894CONFIG_HW_RANDOM=y 1215CONFIG_HW_RANDOM=y
895# CONFIG_NVRAM is not set 1216# CONFIG_HW_RANDOM_TIMERIOMEM is not set
896# CONFIG_DTLK is not set 1217# CONFIG_DTLK is not set
897# CONFIG_R3964 is not set 1218# CONFIG_R3964 is not set
898# CONFIG_RAW_DRIVER is not set 1219# CONFIG_RAW_DRIVER is not set
@@ -901,33 +1222,44 @@ CONFIG_DEVPORT=y
901CONFIG_I2C=y 1222CONFIG_I2C=y
902CONFIG_I2C_BOARDINFO=y 1223CONFIG_I2C_BOARDINFO=y
903CONFIG_I2C_CHARDEV=m 1224CONFIG_I2C_CHARDEV=m
1225CONFIG_I2C_HELPER_AUTO=y
904CONFIG_I2C_ALGOBIT=y 1226CONFIG_I2C_ALGOBIT=y
905 1227
906# 1228#
907# I2C Hardware Bus support 1229# I2C Hardware Bus support
908# 1230#
909# CONFIG_I2C_ELEKTOR is not set 1231
1232#
1233# I2C system bus drivers (mostly embedded / system-on-chip)
1234#
910# CONFIG_I2C_GPIO is not set 1235# CONFIG_I2C_GPIO is not set
911# CONFIG_I2C_OCORES is not set 1236# CONFIG_I2C_OCORES is not set
912# CONFIG_I2C_PARPORT is not set
913# CONFIG_I2C_PARPORT_LIGHT is not set
914CONFIG_I2C_S3C2410=y 1237CONFIG_I2C_S3C2410=y
915CONFIG_I2C_SIMTEC=y 1238CONFIG_I2C_SIMTEC=y
1239
1240#
1241# External I2C/SMBus adapter drivers
1242#
1243# CONFIG_I2C_PARPORT is not set
1244# CONFIG_I2C_PARPORT_LIGHT is not set
916# CONFIG_I2C_TAOS_EVM is not set 1245# CONFIG_I2C_TAOS_EVM is not set
917# CONFIG_I2C_STUB is not set
918# CONFIG_I2C_TINY_USB is not set 1246# CONFIG_I2C_TINY_USB is not set
1247
1248#
1249# Other I2C/SMBus bus drivers
1250#
1251# CONFIG_I2C_ELEKTOR is not set
919# CONFIG_I2C_PCA_ISA is not set 1252# CONFIG_I2C_PCA_ISA is not set
920# CONFIG_I2C_PCA_PLATFORM is not set 1253# CONFIG_I2C_PCA_PLATFORM is not set
1254# CONFIG_I2C_STUB is not set
921 1255
922# 1256#
923# Miscellaneous I2C Chip support 1257# Miscellaneous I2C Chip support
924# 1258#
925# CONFIG_DS1682 is not set 1259# CONFIG_DS1682 is not set
926CONFIG_EEPROM_LEGACY=m
927# CONFIG_SENSORS_PCF8574 is not set 1260# CONFIG_SENSORS_PCF8574 is not set
928# CONFIG_PCF8575 is not set 1261# CONFIG_PCF8575 is not set
929# CONFIG_SENSORS_PCF8591 is not set 1262# CONFIG_SENSORS_PCA9539 is not set
930# CONFIG_TPS65010 is not set
931# CONFIG_SENSORS_MAX6875 is not set 1263# CONFIG_SENSORS_MAX6875 is not set
932# CONFIG_SENSORS_TSL2550 is not set 1264# CONFIG_SENSORS_TSL2550 is not set
933# CONFIG_I2C_DEBUG_CORE is not set 1265# CONFIG_I2C_DEBUG_CORE is not set
@@ -943,6 +1275,7 @@ CONFIG_SPI_MASTER=y
943# 1275#
944CONFIG_SPI_BITBANG=m 1276CONFIG_SPI_BITBANG=m
945# CONFIG_SPI_BUTTERFLY is not set 1277# CONFIG_SPI_BUTTERFLY is not set
1278CONFIG_SPI_GPIO=m
946# CONFIG_SPI_LM70_LLP is not set 1279# CONFIG_SPI_LM70_LLP is not set
947CONFIG_SPI_S3C24XX=m 1280CONFIG_SPI_S3C24XX=m
948CONFIG_SPI_S3C24XX_GPIO=m 1281CONFIG_SPI_S3C24XX_GPIO=m
@@ -950,44 +1283,56 @@ CONFIG_SPI_S3C24XX_GPIO=m
950# 1283#
951# SPI Protocol Masters 1284# SPI Protocol Masters
952# 1285#
953# CONFIG_EEPROM_AT25 is not set 1286CONFIG_SPI_SPIDEV=m
954# CONFIG_SPI_SPIDEV is not set 1287CONFIG_SPI_TLE62X0=m
955# CONFIG_SPI_TLE62X0 is not set 1288CONFIG_ARCH_REQUIRE_GPIOLIB=y
956CONFIG_HAVE_GPIO_LIB=y 1289CONFIG_GPIOLIB=y
1290# CONFIG_DEBUG_GPIO is not set
1291# CONFIG_GPIO_SYSFS is not set
957 1292
958# 1293#
959# GPIO Support 1294# Memory mapped GPIO expanders:
960# 1295#
961# CONFIG_DEBUG_GPIO is not set
962 1296
963# 1297#
964# I2C GPIO expanders: 1298# I2C GPIO expanders:
965# 1299#
1300# CONFIG_GPIO_MAX732X is not set
966# CONFIG_GPIO_PCA953X is not set 1301# CONFIG_GPIO_PCA953X is not set
967# CONFIG_GPIO_PCF857X is not set 1302# CONFIG_GPIO_PCF857X is not set
968 1303
969# 1304#
1305# PCI GPIO expanders:
1306#
1307
1308#
970# SPI GPIO expanders: 1309# SPI GPIO expanders:
971# 1310#
1311# CONFIG_GPIO_MAX7301 is not set
972# CONFIG_GPIO_MCP23S08 is not set 1312# CONFIG_GPIO_MCP23S08 is not set
973# CONFIG_W1 is not set 1313# CONFIG_W1 is not set
974# CONFIG_POWER_SUPPLY is not set 1314# CONFIG_POWER_SUPPLY is not set
975CONFIG_HWMON=y 1315CONFIG_HWMON=y
976CONFIG_HWMON_VID=m 1316CONFIG_HWMON_VID=m
1317# CONFIG_SENSORS_AD7414 is not set
977# CONFIG_SENSORS_AD7418 is not set 1318# CONFIG_SENSORS_AD7418 is not set
1319# CONFIG_SENSORS_ADCXX is not set
978# CONFIG_SENSORS_ADM1021 is not set 1320# CONFIG_SENSORS_ADM1021 is not set
979# CONFIG_SENSORS_ADM1025 is not set 1321# CONFIG_SENSORS_ADM1025 is not set
980# CONFIG_SENSORS_ADM1026 is not set 1322# CONFIG_SENSORS_ADM1026 is not set
981# CONFIG_SENSORS_ADM1029 is not set 1323# CONFIG_SENSORS_ADM1029 is not set
982# CONFIG_SENSORS_ADM1031 is not set 1324# CONFIG_SENSORS_ADM1031 is not set
983# CONFIG_SENSORS_ADM9240 is not set 1325# CONFIG_SENSORS_ADM9240 is not set
1326# CONFIG_SENSORS_ADT7462 is not set
984# CONFIG_SENSORS_ADT7470 is not set 1327# CONFIG_SENSORS_ADT7470 is not set
985# CONFIG_SENSORS_ADT7473 is not set 1328# CONFIG_SENSORS_ADT7473 is not set
1329# CONFIG_SENSORS_ADT7475 is not set
986# CONFIG_SENSORS_ATXP1 is not set 1330# CONFIG_SENSORS_ATXP1 is not set
987# CONFIG_SENSORS_DS1621 is not set 1331# CONFIG_SENSORS_DS1621 is not set
988# CONFIG_SENSORS_F71805F is not set 1332# CONFIG_SENSORS_F71805F is not set
989# CONFIG_SENSORS_F71882FG is not set 1333# CONFIG_SENSORS_F71882FG is not set
990# CONFIG_SENSORS_F75375S is not set 1334# CONFIG_SENSORS_F75375S is not set
1335# CONFIG_SENSORS_G760A is not set
991# CONFIG_SENSORS_GL518SM is not set 1336# CONFIG_SENSORS_GL518SM is not set
992# CONFIG_SENSORS_GL520SM is not set 1337# CONFIG_SENSORS_GL520SM is not set
993# CONFIG_SENSORS_IT87 is not set 1338# CONFIG_SENSORS_IT87 is not set
@@ -1003,10 +1348,16 @@ CONFIG_SENSORS_LM85=m
1003# CONFIG_SENSORS_LM90 is not set 1348# CONFIG_SENSORS_LM90 is not set
1004# CONFIG_SENSORS_LM92 is not set 1349# CONFIG_SENSORS_LM92 is not set
1005# CONFIG_SENSORS_LM93 is not set 1350# CONFIG_SENSORS_LM93 is not set
1351# CONFIG_SENSORS_LTC4215 is not set
1352# CONFIG_SENSORS_LTC4245 is not set
1353# CONFIG_SENSORS_LM95241 is not set
1354# CONFIG_SENSORS_MAX1111 is not set
1006# CONFIG_SENSORS_MAX1619 is not set 1355# CONFIG_SENSORS_MAX1619 is not set
1007# CONFIG_SENSORS_MAX6650 is not set 1356# CONFIG_SENSORS_MAX6650 is not set
1008# CONFIG_SENSORS_PC87360 is not set 1357# CONFIG_SENSORS_PC87360 is not set
1009# CONFIG_SENSORS_PC87427 is not set 1358# CONFIG_SENSORS_PC87427 is not set
1359# CONFIG_SENSORS_PCF8591 is not set
1360# CONFIG_SENSORS_SHT15 is not set
1010# CONFIG_SENSORS_DME1737 is not set 1361# CONFIG_SENSORS_DME1737 is not set
1011# CONFIG_SENSORS_SMSC47M1 is not set 1362# CONFIG_SENSORS_SMSC47M1 is not set
1012# CONFIG_SENSORS_SMSC47M192 is not set 1363# CONFIG_SENSORS_SMSC47M192 is not set
@@ -1022,7 +1373,10 @@ CONFIG_SENSORS_LM85=m
1022# CONFIG_SENSORS_W83L786NG is not set 1373# CONFIG_SENSORS_W83L786NG is not set
1023# CONFIG_SENSORS_W83627HF is not set 1374# CONFIG_SENSORS_W83627HF is not set
1024# CONFIG_SENSORS_W83627EHF is not set 1375# CONFIG_SENSORS_W83627EHF is not set
1376# CONFIG_SENSORS_LIS3_SPI is not set
1025# CONFIG_HWMON_DEBUG_CHIP is not set 1377# CONFIG_HWMON_DEBUG_CHIP is not set
1378# CONFIG_THERMAL is not set
1379# CONFIG_THERMAL_HWMON is not set
1026CONFIG_WATCHDOG=y 1380CONFIG_WATCHDOG=y
1027# CONFIG_WATCHDOG_NOWAYOUT is not set 1381# CONFIG_WATCHDOG_NOWAYOUT is not set
1028 1382
@@ -1043,20 +1397,33 @@ CONFIG_S3C2410_WATCHDOG=y
1043# USB-based Watchdog Cards 1397# USB-based Watchdog Cards
1044# 1398#
1045# CONFIG_USBPCWATCHDOG is not set 1399# CONFIG_USBPCWATCHDOG is not set
1400CONFIG_SSB_POSSIBLE=y
1046 1401
1047# 1402#
1048# Sonics Silicon Backplane 1403# Sonics Silicon Backplane
1049# 1404#
1050CONFIG_SSB_POSSIBLE=y
1051# CONFIG_SSB is not set 1405# CONFIG_SSB is not set
1052 1406
1053# 1407#
1054# Multifunction device drivers 1408# Multifunction device drivers
1055# 1409#
1410# CONFIG_MFD_CORE is not set
1056CONFIG_MFD_SM501=y 1411CONFIG_MFD_SM501=y
1412# CONFIG_MFD_SM501_GPIO is not set
1057# CONFIG_MFD_ASIC3 is not set 1413# CONFIG_MFD_ASIC3 is not set
1058# CONFIG_HTC_EGPIO is not set 1414# CONFIG_HTC_EGPIO is not set
1059# CONFIG_HTC_PASIC3 is not set 1415# CONFIG_HTC_PASIC3 is not set
1416# CONFIG_UCB1400_CORE is not set
1417# CONFIG_TPS65010 is not set
1418# CONFIG_TWL4030_CORE is not set
1419# CONFIG_MFD_TMIO is not set
1420# CONFIG_MFD_T7L66XB is not set
1421# CONFIG_MFD_TC6387XB is not set
1422# CONFIG_MFD_TC6393XB is not set
1423# CONFIG_PMIC_DA903X is not set
1424# CONFIG_MFD_WM8400 is not set
1425# CONFIG_MFD_WM8350_I2C is not set
1426# CONFIG_MFD_PCF50633 is not set
1060 1427
1061# 1428#
1062# Multimedia devices 1429# Multimedia devices
@@ -1065,14 +1432,189 @@ CONFIG_MFD_SM501=y
1065# 1432#
1066# Multimedia core support 1433# Multimedia core support
1067# 1434#
1068# CONFIG_VIDEO_DEV is not set 1435CONFIG_VIDEO_DEV=m
1069# CONFIG_DVB_CORE is not set 1436CONFIG_VIDEO_V4L2_COMMON=m
1070# CONFIG_VIDEO_MEDIA is not set 1437CONFIG_VIDEO_ALLOW_V4L1=y
1438CONFIG_VIDEO_V4L1_COMPAT=y
1439CONFIG_DVB_CORE=m
1440CONFIG_VIDEO_MEDIA=m
1071 1441
1072# 1442#
1073# Multimedia drivers 1443# Multimedia drivers
1074# 1444#
1075# CONFIG_DAB is not set 1445CONFIG_MEDIA_ATTACH=y
1446CONFIG_MEDIA_TUNER=m
1447# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
1448CONFIG_MEDIA_TUNER_SIMPLE=m
1449CONFIG_MEDIA_TUNER_TDA8290=m
1450CONFIG_MEDIA_TUNER_TDA827X=m
1451CONFIG_MEDIA_TUNER_TDA18271=m
1452CONFIG_MEDIA_TUNER_TDA9887=m
1453CONFIG_MEDIA_TUNER_TEA5761=m
1454CONFIG_MEDIA_TUNER_TEA5767=m
1455CONFIG_MEDIA_TUNER_MT20XX=m
1456CONFIG_MEDIA_TUNER_MT2060=m
1457CONFIG_MEDIA_TUNER_MT2266=m
1458CONFIG_MEDIA_TUNER_QT1010=m
1459CONFIG_MEDIA_TUNER_XC2028=m
1460CONFIG_MEDIA_TUNER_XC5000=m
1461CONFIG_MEDIA_TUNER_MXL5005S=m
1462CONFIG_MEDIA_TUNER_MXL5007T=m
1463CONFIG_MEDIA_TUNER_MC44S803=m
1464CONFIG_VIDEO_V4L2=m
1465CONFIG_VIDEO_V4L1=m
1466CONFIG_VIDEOBUF_GEN=m
1467CONFIG_VIDEOBUF_VMALLOC=m
1468CONFIG_VIDEO_TVEEPROM=m
1469CONFIG_VIDEO_CAPTURE_DRIVERS=y
1470# CONFIG_VIDEO_ADV_DEBUG is not set
1471# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1472CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1473CONFIG_VIDEO_VIVI=m
1474CONFIG_VIDEO_PMS=m
1475CONFIG_VIDEO_BWQCAM=m
1476CONFIG_VIDEO_CQCAM=m
1477CONFIG_VIDEO_W9966=m
1478CONFIG_VIDEO_CPIA=m
1479CONFIG_VIDEO_CPIA_PP=m
1480CONFIG_VIDEO_CPIA_USB=m
1481CONFIG_VIDEO_CPIA2=m
1482CONFIG_VIDEO_SAA5246A=m
1483CONFIG_VIDEO_SAA5249=m
1484CONFIG_VIDEO_AU0828=m
1485# CONFIG_SOC_CAMERA is not set
1486CONFIG_V4L_USB_DRIVERS=y
1487# CONFIG_USB_VIDEO_CLASS is not set
1488CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1489CONFIG_USB_GSPCA=m
1490# CONFIG_USB_M5602 is not set
1491# CONFIG_USB_STV06XX is not set
1492# CONFIG_USB_GSPCA_CONEX is not set
1493# CONFIG_USB_GSPCA_ETOMS is not set
1494# CONFIG_USB_GSPCA_FINEPIX is not set
1495# CONFIG_USB_GSPCA_MARS is not set
1496# CONFIG_USB_GSPCA_MR97310A is not set
1497# CONFIG_USB_GSPCA_OV519 is not set
1498# CONFIG_USB_GSPCA_OV534 is not set
1499# CONFIG_USB_GSPCA_PAC207 is not set
1500# CONFIG_USB_GSPCA_PAC7311 is not set
1501# CONFIG_USB_GSPCA_SONIXB is not set
1502# CONFIG_USB_GSPCA_SONIXJ is not set
1503# CONFIG_USB_GSPCA_SPCA500 is not set
1504# CONFIG_USB_GSPCA_SPCA501 is not set
1505# CONFIG_USB_GSPCA_SPCA505 is not set
1506# CONFIG_USB_GSPCA_SPCA506 is not set
1507# CONFIG_USB_GSPCA_SPCA508 is not set
1508# CONFIG_USB_GSPCA_SPCA561 is not set
1509# CONFIG_USB_GSPCA_SQ905 is not set
1510# CONFIG_USB_GSPCA_SQ905C is not set
1511# CONFIG_USB_GSPCA_STK014 is not set
1512# CONFIG_USB_GSPCA_SUNPLUS is not set
1513# CONFIG_USB_GSPCA_T613 is not set
1514# CONFIG_USB_GSPCA_TV8532 is not set
1515# CONFIG_USB_GSPCA_VC032X is not set
1516# CONFIG_USB_GSPCA_ZC3XX is not set
1517# CONFIG_VIDEO_PVRUSB2 is not set
1518# CONFIG_VIDEO_HDPVR is not set
1519# CONFIG_VIDEO_EM28XX is not set
1520# CONFIG_VIDEO_CX231XX is not set
1521# CONFIG_VIDEO_USBVISION is not set
1522# CONFIG_USB_VICAM is not set
1523# CONFIG_USB_IBMCAM is not set
1524# CONFIG_USB_KONICAWC is not set
1525# CONFIG_USB_QUICKCAM_MESSENGER is not set
1526# CONFIG_USB_ET61X251 is not set
1527# CONFIG_VIDEO_OVCAMCHIP is not set
1528# CONFIG_USB_OV511 is not set
1529# CONFIG_USB_SE401 is not set
1530# CONFIG_USB_SN9C102 is not set
1531# CONFIG_USB_STV680 is not set
1532# CONFIG_USB_ZC0301 is not set
1533# CONFIG_USB_PWC is not set
1534CONFIG_USB_PWC_INPUT_EVDEV=y
1535# CONFIG_USB_ZR364XX is not set
1536# CONFIG_USB_STKWEBCAM is not set
1537# CONFIG_USB_S2255 is not set
1538CONFIG_RADIO_ADAPTERS=y
1539CONFIG_RADIO_CADET=m
1540CONFIG_RADIO_RTRACK=m
1541CONFIG_RADIO_RTRACK2=m
1542CONFIG_RADIO_AZTECH=m
1543CONFIG_RADIO_GEMTEK=m
1544CONFIG_RADIO_SF16FMI=m
1545CONFIG_RADIO_SF16FMR2=m
1546CONFIG_RADIO_TERRATEC=m
1547CONFIG_RADIO_TRUST=m
1548CONFIG_RADIO_TYPHOON=m
1549CONFIG_RADIO_TYPHOON_PROC_FS=y
1550CONFIG_RADIO_ZOLTRIX=m
1551CONFIG_USB_DSBR=m
1552CONFIG_USB_SI470X=m
1553CONFIG_USB_MR800=m
1554CONFIG_RADIO_TEA5764=m
1555CONFIG_DVB_DYNAMIC_MINORS=y
1556CONFIG_DVB_CAPTURE_DRIVERS=y
1557# CONFIG_TTPCI_EEPROM is not set
1558
1559#
1560# Supported USB Adapters
1561#
1562CONFIG_DVB_USB=m
1563# CONFIG_DVB_USB_DEBUG is not set
1564# CONFIG_DVB_USB_A800 is not set
1565CONFIG_DVB_USB_DIBUSB_MB=m
1566# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
1567CONFIG_DVB_USB_DIBUSB_MC=m
1568CONFIG_DVB_USB_DIB0700=m
1569CONFIG_DVB_USB_UMT_010=m
1570CONFIG_DVB_USB_CXUSB=m
1571CONFIG_DVB_USB_M920X=m
1572# CONFIG_DVB_USB_GL861 is not set
1573# CONFIG_DVB_USB_AU6610 is not set
1574# CONFIG_DVB_USB_DIGITV is not set
1575# CONFIG_DVB_USB_VP7045 is not set
1576# CONFIG_DVB_USB_VP702X is not set
1577# CONFIG_DVB_USB_GP8PSK is not set
1578# CONFIG_DVB_USB_NOVA_T_USB2 is not set
1579# CONFIG_DVB_USB_TTUSB2 is not set
1580# CONFIG_DVB_USB_DTT200U is not set
1581# CONFIG_DVB_USB_OPERA1 is not set
1582CONFIG_DVB_USB_AF9005=m
1583# CONFIG_DVB_USB_AF9005_REMOTE is not set
1584# CONFIG_DVB_USB_DW2102 is not set
1585# CONFIG_DVB_USB_CINERGY_T2 is not set
1586# CONFIG_DVB_USB_ANYSEE is not set
1587# CONFIG_DVB_USB_DTV5100 is not set
1588# CONFIG_DVB_USB_AF9015 is not set
1589# CONFIG_DVB_USB_CE6230 is not set
1590# CONFIG_DVB_SIANO_SMS1XXX is not set
1591
1592#
1593# Supported FlexCopII (B2C2) Adapters
1594#
1595# CONFIG_DVB_B2C2_FLEXCOP is not set
1596
1597#
1598# Supported DVB Frontends
1599#
1600# CONFIG_DVB_FE_CUSTOMISE is not set
1601CONFIG_DVB_CX22702=m
1602CONFIG_DVB_TDA1004X=m
1603CONFIG_DVB_MT352=m
1604CONFIG_DVB_ZL10353=m
1605CONFIG_DVB_DIB3000MB=m
1606CONFIG_DVB_DIB3000MC=m
1607CONFIG_DVB_DIB7000M=m
1608CONFIG_DVB_DIB7000P=m
1609CONFIG_DVB_LGDT330X=m
1610CONFIG_DVB_LGDT3305=m
1611CONFIG_DVB_AU8522=m
1612CONFIG_DVB_S5H1411=m
1613CONFIG_DVB_PLL=m
1614CONFIG_DVB_TUNER_DIB0070=m
1615CONFIG_DVB_LGS8GL5=m
1616CONFIG_DAB=y
1617CONFIG_USB_DABUSB=m
1076 1618
1077# 1619#
1078# Graphics support 1620# Graphics support
@@ -1082,6 +1624,7 @@ CONFIG_MFD_SM501=y
1082CONFIG_FB=y 1624CONFIG_FB=y
1083CONFIG_FIRMWARE_EDID=y 1625CONFIG_FIRMWARE_EDID=y
1084# CONFIG_FB_DDC is not set 1626# CONFIG_FB_DDC is not set
1627# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1085CONFIG_FB_CFB_FILLRECT=y 1628CONFIG_FB_CFB_FILLRECT=y
1086CONFIG_FB_CFB_COPYAREA=y 1629CONFIG_FB_CFB_COPYAREA=y
1087CONFIG_FB_CFB_IMAGEBLIT=y 1630CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1105,7 +1648,19 @@ CONFIG_FB_S3C2410=y
1105# CONFIG_FB_S3C2410_DEBUG is not set 1648# CONFIG_FB_S3C2410_DEBUG is not set
1106CONFIG_FB_SM501=y 1649CONFIG_FB_SM501=y
1107# CONFIG_FB_VIRTUAL is not set 1650# CONFIG_FB_VIRTUAL is not set
1108# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1651# CONFIG_FB_METRONOME is not set
1652# CONFIG_FB_MB862XX is not set
1653# CONFIG_FB_BROADSHEET is not set
1654CONFIG_BACKLIGHT_LCD_SUPPORT=y
1655CONFIG_LCD_CLASS_DEVICE=m
1656# CONFIG_LCD_LTV350QV is not set
1657# CONFIG_LCD_ILI9320 is not set
1658# CONFIG_LCD_TDO24M is not set
1659# CONFIG_LCD_VGG2432A4 is not set
1660# CONFIG_LCD_PLATFORM is not set
1661CONFIG_BACKLIGHT_CLASS_DEVICE=m
1662CONFIG_BACKLIGHT_GENERIC=m
1663CONFIG_BACKLIGHT_PWM=m
1109 1664
1110# 1665#
1111# Display device support 1666# Display device support
@@ -1125,11 +1680,54 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
1125CONFIG_FONT_8x8=y 1680CONFIG_FONT_8x8=y
1126CONFIG_FONT_8x16=y 1681CONFIG_FONT_8x16=y
1127# CONFIG_LOGO is not set 1682# CONFIG_LOGO is not set
1128 1683CONFIG_SOUND=y
1129# 1684CONFIG_SOUND_OSS_CORE=y
1130# Sound 1685CONFIG_SND=y
1131# 1686CONFIG_SND_TIMER=y
1132# CONFIG_SOUND is not set 1687CONFIG_SND_PCM=y
1688CONFIG_SND_HWDEP=m
1689CONFIG_SND_RAWMIDI=m
1690CONFIG_SND_JACK=y
1691CONFIG_SND_SEQUENCER=m
1692# CONFIG_SND_SEQ_DUMMY is not set
1693CONFIG_SND_OSSEMUL=y
1694CONFIG_SND_MIXER_OSS=m
1695CONFIG_SND_PCM_OSS=m
1696CONFIG_SND_PCM_OSS_PLUGINS=y
1697CONFIG_SND_SEQUENCER_OSS=y
1698# CONFIG_SND_DYNAMIC_MINORS is not set
1699CONFIG_SND_SUPPORT_OLD_API=y
1700CONFIG_SND_VERBOSE_PROCFS=y
1701CONFIG_SND_VERBOSE_PRINTK=y
1702# CONFIG_SND_DEBUG is not set
1703CONFIG_SND_VMASTER=y
1704CONFIG_SND_AC97_CODEC=m
1705# CONFIG_SND_DRIVERS is not set
1706# CONFIG_SND_ARM is not set
1707# CONFIG_SND_SPI is not set
1708CONFIG_SND_USB=y
1709CONFIG_SND_USB_AUDIO=m
1710CONFIG_SND_USB_CAIAQ=m
1711# CONFIG_SND_USB_CAIAQ_INPUT is not set
1712CONFIG_SND_SOC=y
1713CONFIG_SND_SOC_AC97_BUS=y
1714CONFIG_SND_S3C24XX_SOC=y
1715CONFIG_SND_S3C24XX_SOC_I2S=m
1716CONFIG_SND_S3C_I2SV2_SOC=m
1717CONFIG_SND_S3C2412_SOC_I2S=m
1718CONFIG_SND_S3C2443_SOC_AC97=m
1719CONFIG_SND_S3C24XX_SOC_JIVE_WM8750=m
1720CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710=m
1721CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650=m
1722CONFIG_SND_S3C24XX_SOC_S3C24XX_UDA134X=m
1723CONFIG_SND_SOC_I2C_AND_SPI=y
1724# CONFIG_SND_SOC_ALL_CODECS is not set
1725CONFIG_SND_SOC_AC97_CODEC=m
1726CONFIG_SND_SOC_L3=m
1727CONFIG_SND_SOC_UDA134X=m
1728CONFIG_SND_SOC_WM8750=m
1729# CONFIG_SOUND_PRIME is not set
1730CONFIG_AC97_BUS=y
1133CONFIG_HID_SUPPORT=y 1731CONFIG_HID_SUPPORT=y
1134CONFIG_HID=y 1732CONFIG_HID=y
1135# CONFIG_HID_DEBUG is not set 1733# CONFIG_HID_DEBUG is not set
@@ -1139,12 +1737,12 @@ CONFIG_HID=y
1139# USB Input Devices 1737# USB Input Devices
1140# 1738#
1141# CONFIG_USB_HID is not set 1739# CONFIG_USB_HID is not set
1740# CONFIG_HID_PID is not set
1142 1741
1143# 1742#
1144# USB HID Boot Protocol drivers 1743# Special HID drivers
1145# 1744#
1146# CONFIG_USB_KBD is not set 1745CONFIG_HID_APPLE=m
1147# CONFIG_USB_MOUSE is not set
1148CONFIG_USB_SUPPORT=y 1746CONFIG_USB_SUPPORT=y
1149CONFIG_USB_ARCH_HAS_HCD=y 1747CONFIG_USB_ARCH_HAS_HCD=y
1150CONFIG_USB_ARCH_HAS_OHCI=y 1748CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1161,19 +1759,26 @@ CONFIG_USB_DEVICE_CLASS=y
1161# CONFIG_USB_DYNAMIC_MINORS is not set 1759# CONFIG_USB_DYNAMIC_MINORS is not set
1162# CONFIG_USB_SUSPEND is not set 1760# CONFIG_USB_SUSPEND is not set
1163# CONFIG_USB_OTG is not set 1761# CONFIG_USB_OTG is not set
1762CONFIG_USB_MON=y
1763# CONFIG_USB_WUSB is not set
1764# CONFIG_USB_WUSB_CBAF is not set
1164 1765
1165# 1766#
1166# USB Host Controller Drivers 1767# USB Host Controller Drivers
1167# 1768#
1168# CONFIG_USB_C67X00_HCD is not set 1769# CONFIG_USB_C67X00_HCD is not set
1770# CONFIG_USB_OXU210HP_HCD is not set
1169# CONFIG_USB_ISP116X_HCD is not set 1771# CONFIG_USB_ISP116X_HCD is not set
1170# CONFIG_USB_ISP1760_HCD is not set 1772# CONFIG_USB_ISP1760_HCD is not set
1171CONFIG_USB_OHCI_HCD=y 1773CONFIG_USB_OHCI_HCD=y
1172# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1774# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1173# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1775# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1174CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1776CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1777# CONFIG_USB_U132_HCD is not set
1175# CONFIG_USB_SL811_HCD is not set 1778# CONFIG_USB_SL811_HCD is not set
1176# CONFIG_USB_R8A66597_HCD is not set 1779# CONFIG_USB_R8A66597_HCD is not set
1780# CONFIG_USB_HWA_HCD is not set
1781# CONFIG_USB_MUSB_HDRC is not set
1177 1782
1178# 1783#
1179# USB Device Class drivers 1784# USB Device Class drivers
@@ -1181,53 +1786,51 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1181CONFIG_USB_ACM=m 1786CONFIG_USB_ACM=m
1182CONFIG_USB_PRINTER=m 1787CONFIG_USB_PRINTER=m
1183CONFIG_USB_WDM=m 1788CONFIG_USB_WDM=m
1789# CONFIG_USB_TMC is not set
1184 1790
1185# 1791#
1186# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1792# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1187# 1793#
1188 1794
1189# 1795#
1190# may also be needed; see USB_STORAGE Help for more information 1796# also be needed; see USB_STORAGE Help for more info
1191# 1797#
1192CONFIG_USB_STORAGE=m 1798CONFIG_USB_STORAGE=m
1193# CONFIG_USB_STORAGE_DEBUG is not set 1799# CONFIG_USB_STORAGE_DEBUG is not set
1194# CONFIG_USB_STORAGE_DATAFAB is not set 1800CONFIG_USB_STORAGE_DATAFAB=m
1195# CONFIG_USB_STORAGE_FREECOM is not set 1801CONFIG_USB_STORAGE_FREECOM=m
1196# CONFIG_USB_STORAGE_ISD200 is not set 1802CONFIG_USB_STORAGE_ISD200=m
1197# CONFIG_USB_STORAGE_DPCM is not set 1803CONFIG_USB_STORAGE_USBAT=m
1198# CONFIG_USB_STORAGE_USBAT is not set 1804CONFIG_USB_STORAGE_SDDR09=m
1199# CONFIG_USB_STORAGE_SDDR09 is not set 1805CONFIG_USB_STORAGE_SDDR55=m
1200# CONFIG_USB_STORAGE_SDDR55 is not set 1806CONFIG_USB_STORAGE_JUMPSHOT=m
1201# CONFIG_USB_STORAGE_JUMPSHOT is not set 1807CONFIG_USB_STORAGE_ALAUDA=m
1202# CONFIG_USB_STORAGE_ALAUDA is not set 1808CONFIG_USB_STORAGE_ONETOUCH=m
1203# CONFIG_USB_STORAGE_ONETOUCH is not set 1809CONFIG_USB_STORAGE_KARMA=m
1204# CONFIG_USB_STORAGE_KARMA is not set 1810CONFIG_USB_STORAGE_CYPRESS_ATACB=m
1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1206CONFIG_USB_LIBUSUAL=y 1811CONFIG_USB_LIBUSUAL=y
1207 1812
1208# 1813#
1209# USB Imaging devices 1814# USB Imaging devices
1210# 1815#
1211# CONFIG_USB_MDC800 is not set 1816CONFIG_USB_MDC800=m
1212# CONFIG_USB_MICROTEK is not set 1817CONFIG_USB_MICROTEK=m
1213CONFIG_USB_MON=y
1214 1818
1215# 1819#
1216# USB port drivers 1820# USB port drivers
1217# 1821#
1218# CONFIG_USB_USS720 is not set 1822CONFIG_USB_USS720=m
1219CONFIG_USB_SERIAL=y 1823CONFIG_USB_SERIAL=y
1220# CONFIG_USB_SERIAL_CONSOLE is not set 1824# CONFIG_USB_SERIAL_CONSOLE is not set
1221# CONFIG_USB_EZUSB is not set 1825# CONFIG_USB_EZUSB is not set
1222CONFIG_USB_SERIAL_GENERIC=y 1826CONFIG_USB_SERIAL_GENERIC=y
1223# CONFIG_USB_SERIAL_AIRCABLE is not set 1827# CONFIG_USB_SERIAL_AIRCABLE is not set
1224# CONFIG_USB_SERIAL_AIRPRIME is not set
1225# CONFIG_USB_SERIAL_ARK3116 is not set 1828# CONFIG_USB_SERIAL_ARK3116 is not set
1226# CONFIG_USB_SERIAL_BELKIN is not set 1829# CONFIG_USB_SERIAL_BELKIN is not set
1227# CONFIG_USB_SERIAL_CH341 is not set 1830# CONFIG_USB_SERIAL_CH341 is not set
1228# CONFIG_USB_SERIAL_WHITEHEAT is not set 1831# CONFIG_USB_SERIAL_WHITEHEAT is not set
1229# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 1832# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1230# CONFIG_USB_SERIAL_CP2101 is not set 1833# CONFIG_USB_SERIAL_CP210X is not set
1231# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1834# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1232# CONFIG_USB_SERIAL_EMPEG is not set 1835# CONFIG_USB_SERIAL_EMPEG is not set
1233CONFIG_USB_SERIAL_FTDI_SIO=y 1836CONFIG_USB_SERIAL_FTDI_SIO=y
@@ -1251,42 +1854,71 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1251CONFIG_USB_SERIAL_NAVMAN=m 1854CONFIG_USB_SERIAL_NAVMAN=m
1252CONFIG_USB_SERIAL_PL2303=y 1855CONFIG_USB_SERIAL_PL2303=y
1253# CONFIG_USB_SERIAL_OTI6858 is not set 1856# CONFIG_USB_SERIAL_OTI6858 is not set
1857# CONFIG_USB_SERIAL_QUALCOMM is not set
1254# CONFIG_USB_SERIAL_SPCP8X5 is not set 1858# CONFIG_USB_SERIAL_SPCP8X5 is not set
1255# CONFIG_USB_SERIAL_HP4X is not set 1859# CONFIG_USB_SERIAL_HP4X is not set
1256# CONFIG_USB_SERIAL_SAFE is not set 1860# CONFIG_USB_SERIAL_SAFE is not set
1861# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1257# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1862# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1863# CONFIG_USB_SERIAL_SYMBOL is not set
1258# CONFIG_USB_SERIAL_TI is not set 1864# CONFIG_USB_SERIAL_TI is not set
1259# CONFIG_USB_SERIAL_CYBERJACK is not set 1865# CONFIG_USB_SERIAL_CYBERJACK is not set
1260# CONFIG_USB_SERIAL_XIRCOM is not set 1866# CONFIG_USB_SERIAL_XIRCOM is not set
1261CONFIG_USB_SERIAL_OPTION=m 1867CONFIG_USB_SERIAL_OPTION=m
1262# CONFIG_USB_SERIAL_OMNINET is not set 1868# CONFIG_USB_SERIAL_OMNINET is not set
1869# CONFIG_USB_SERIAL_OPTICON is not set
1263# CONFIG_USB_SERIAL_DEBUG is not set 1870# CONFIG_USB_SERIAL_DEBUG is not set
1264 1871
1265# 1872#
1266# USB Miscellaneous drivers 1873# USB Miscellaneous drivers
1267# 1874#
1268# CONFIG_USB_EMI62 is not set 1875CONFIG_USB_EMI62=m
1269# CONFIG_USB_EMI26 is not set 1876CONFIG_USB_EMI26=m
1270# CONFIG_USB_ADUTUX is not set 1877CONFIG_USB_ADUTUX=m
1271# CONFIG_USB_AUERSWALD is not set 1878CONFIG_USB_SEVSEG=m
1272# CONFIG_USB_RIO500 is not set 1879CONFIG_USB_RIO500=m
1273# CONFIG_USB_LEGOTOWER is not set 1880CONFIG_USB_LEGOTOWER=m
1274# CONFIG_USB_LCD is not set 1881CONFIG_USB_LCD=m
1275# CONFIG_USB_BERRY_CHARGE is not set 1882CONFIG_USB_BERRY_CHARGE=m
1276CONFIG_USB_LED=m 1883CONFIG_USB_LED=m
1277# CONFIG_USB_CYPRESS_CY7C63 is not set 1884CONFIG_USB_CYPRESS_CY7C63=m
1278# CONFIG_USB_CYTHERM is not set 1885CONFIG_USB_CYTHERM=m
1279# CONFIG_USB_PHIDGET is not set 1886CONFIG_USB_IDMOUSE=m
1280# CONFIG_USB_IDMOUSE is not set 1887CONFIG_USB_FTDI_ELAN=m
1281# CONFIG_USB_FTDI_ELAN is not set 1888CONFIG_USB_APPLEDISPLAY=m
1282# CONFIG_USB_APPLEDISPLAY is not set
1283CONFIG_USB_LD=m 1889CONFIG_USB_LD=m
1284# CONFIG_USB_TRANCEVIBRATOR is not set 1890CONFIG_USB_TRANCEVIBRATOR=m
1285# CONFIG_USB_IOWARRIOR is not set 1891CONFIG_USB_IOWARRIOR=m
1286# CONFIG_USB_TEST is not set 1892CONFIG_USB_TEST=m
1287# CONFIG_USB_ISIGHTFW is not set 1893# CONFIG_USB_ISIGHTFW is not set
1894# CONFIG_USB_VST is not set
1288# CONFIG_USB_GADGET is not set 1895# CONFIG_USB_GADGET is not set
1289# CONFIG_MMC is not set 1896
1897#
1898# OTG and related infrastructure
1899#
1900# CONFIG_USB_GPIO_VBUS is not set
1901# CONFIG_NOP_USB_XCEIV is not set
1902CONFIG_MMC=y
1903# CONFIG_MMC_DEBUG is not set
1904# CONFIG_MMC_UNSAFE_RESUME is not set
1905
1906#
1907# MMC/SD/SDIO Card Drivers
1908#
1909CONFIG_MMC_BLOCK=y
1910CONFIG_MMC_BLOCK_BOUNCE=y
1911CONFIG_SDIO_UART=m
1912CONFIG_MMC_TEST=m
1913
1914#
1915# MMC/SD/SDIO Host Controller Drivers
1916#
1917CONFIG_MMC_SDHCI=m
1918CONFIG_MMC_SPI=m
1919CONFIG_MMC_S3C=y
1920# CONFIG_MEMSTICK is not set
1921# CONFIG_ACCESSIBILITY is not set
1290CONFIG_NEW_LEDS=y 1922CONFIG_NEW_LEDS=y
1291CONFIG_LEDS_CLASS=m 1923CONFIG_LEDS_CLASS=m
1292 1924
@@ -1295,7 +1927,14 @@ CONFIG_LEDS_CLASS=m
1295# 1927#
1296CONFIG_LEDS_S3C24XX=m 1928CONFIG_LEDS_S3C24XX=m
1297CONFIG_LEDS_H1940=m 1929CONFIG_LEDS_H1940=m
1298# CONFIG_LEDS_GPIO is not set 1930CONFIG_LEDS_PCA9532=m
1931CONFIG_LEDS_GPIO=m
1932CONFIG_LEDS_GPIO_PLATFORM=y
1933CONFIG_LEDS_LP5521=m
1934CONFIG_LEDS_PCA955X=m
1935CONFIG_LEDS_DAC124S085=m
1936CONFIG_LEDS_PWM=m
1937CONFIG_LEDS_BD2802=m
1299 1938
1300# 1939#
1301# LED Triggers 1940# LED Triggers
@@ -1304,7 +1943,13 @@ CONFIG_LEDS_TRIGGERS=y
1304CONFIG_LEDS_TRIGGER_TIMER=m 1943CONFIG_LEDS_TRIGGER_TIMER=m
1305# CONFIG_LEDS_TRIGGER_IDE_DISK is not set 1944# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1306CONFIG_LEDS_TRIGGER_HEARTBEAT=m 1945CONFIG_LEDS_TRIGGER_HEARTBEAT=m
1307# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1946CONFIG_LEDS_TRIGGER_BACKLIGHT=m
1947CONFIG_LEDS_TRIGGER_GPIO=m
1948CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
1949
1950#
1951# iptables trigger is under Netfilter config (LED target)
1952#
1308CONFIG_RTC_LIB=y 1953CONFIG_RTC_LIB=y
1309CONFIG_RTC_CLASS=y 1954CONFIG_RTC_CLASS=y
1310CONFIG_RTC_HCTOSYS=y 1955CONFIG_RTC_HCTOSYS=y
@@ -1335,31 +1980,43 @@ CONFIG_RTC_INTF_DEV=y
1335# CONFIG_RTC_DRV_M41T80 is not set 1980# CONFIG_RTC_DRV_M41T80 is not set
1336# CONFIG_RTC_DRV_S35390A is not set 1981# CONFIG_RTC_DRV_S35390A is not set
1337# CONFIG_RTC_DRV_FM3130 is not set 1982# CONFIG_RTC_DRV_FM3130 is not set
1983# CONFIG_RTC_DRV_RX8581 is not set
1338 1984
1339# 1985#
1340# SPI RTC drivers 1986# SPI RTC drivers
1341# 1987#
1988# CONFIG_RTC_DRV_M41T94 is not set
1989# CONFIG_RTC_DRV_DS1305 is not set
1990# CONFIG_RTC_DRV_DS1390 is not set
1342# CONFIG_RTC_DRV_MAX6902 is not set 1991# CONFIG_RTC_DRV_MAX6902 is not set
1343# CONFIG_RTC_DRV_R9701 is not set 1992# CONFIG_RTC_DRV_R9701 is not set
1344# CONFIG_RTC_DRV_RS5C348 is not set 1993# CONFIG_RTC_DRV_RS5C348 is not set
1994# CONFIG_RTC_DRV_DS3234 is not set
1345 1995
1346# 1996#
1347# Platform RTC drivers 1997# Platform RTC drivers
1348# 1998#
1349# CONFIG_RTC_DRV_CMOS is not set 1999# CONFIG_RTC_DRV_CMOS is not set
2000# CONFIG_RTC_DRV_DS1286 is not set
1350# CONFIG_RTC_DRV_DS1511 is not set 2001# CONFIG_RTC_DRV_DS1511 is not set
1351# CONFIG_RTC_DRV_DS1553 is not set 2002# CONFIG_RTC_DRV_DS1553 is not set
1352# CONFIG_RTC_DRV_DS1742 is not set 2003# CONFIG_RTC_DRV_DS1742 is not set
1353# CONFIG_RTC_DRV_STK17TA8 is not set 2004# CONFIG_RTC_DRV_STK17TA8 is not set
1354# CONFIG_RTC_DRV_M48T86 is not set 2005# CONFIG_RTC_DRV_M48T86 is not set
2006# CONFIG_RTC_DRV_M48T35 is not set
1355# CONFIG_RTC_DRV_M48T59 is not set 2007# CONFIG_RTC_DRV_M48T59 is not set
2008# CONFIG_RTC_DRV_BQ4802 is not set
1356# CONFIG_RTC_DRV_V3020 is not set 2009# CONFIG_RTC_DRV_V3020 is not set
1357 2010
1358# 2011#
1359# on-CPU RTC drivers 2012# on-CPU RTC drivers
1360# 2013#
1361CONFIG_RTC_DRV_S3C=y 2014CONFIG_RTC_DRV_S3C=y
2015# CONFIG_DMADEVICES is not set
2016# CONFIG_AUXDISPLAY is not set
2017# CONFIG_REGULATOR is not set
1362# CONFIG_UIO is not set 2018# CONFIG_UIO is not set
2019# CONFIG_STAGING is not set
1363 2020
1364# 2021#
1365# File systems 2022# File systems
@@ -1370,27 +2027,40 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1370CONFIG_EXT2_FS_SECURITY=y 2027CONFIG_EXT2_FS_SECURITY=y
1371# CONFIG_EXT2_FS_XIP is not set 2028# CONFIG_EXT2_FS_XIP is not set
1372CONFIG_EXT3_FS=y 2029CONFIG_EXT3_FS=y
2030# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1373CONFIG_EXT3_FS_XATTR=y 2031CONFIG_EXT3_FS_XATTR=y
1374CONFIG_EXT3_FS_POSIX_ACL=y 2032CONFIG_EXT3_FS_POSIX_ACL=y
1375# CONFIG_EXT3_FS_SECURITY is not set 2033# CONFIG_EXT3_FS_SECURITY is not set
1376# CONFIG_EXT4DEV_FS is not set 2034CONFIG_EXT4_FS=m
2035# CONFIG_EXT4DEV_COMPAT is not set
2036CONFIG_EXT4_FS_XATTR=y
2037CONFIG_EXT4_FS_POSIX_ACL=y
2038# CONFIG_EXT4_FS_SECURITY is not set
1377CONFIG_JBD=y 2039CONFIG_JBD=y
2040CONFIG_JBD2=m
1378CONFIG_FS_MBCACHE=y 2041CONFIG_FS_MBCACHE=y
1379# CONFIG_REISERFS_FS is not set 2042# CONFIG_REISERFS_FS is not set
1380# CONFIG_JFS_FS is not set 2043# CONFIG_JFS_FS is not set
1381CONFIG_FS_POSIX_ACL=y 2044CONFIG_FS_POSIX_ACL=y
2045CONFIG_FILE_LOCKING=y
1382# CONFIG_XFS_FS is not set 2046# CONFIG_XFS_FS is not set
1383# CONFIG_OCFS2_FS is not set 2047# CONFIG_OCFS2_FS is not set
2048# CONFIG_BTRFS_FS is not set
1384CONFIG_DNOTIFY=y 2049CONFIG_DNOTIFY=y
1385CONFIG_INOTIFY=y 2050CONFIG_INOTIFY=y
1386CONFIG_INOTIFY_USER=y 2051CONFIG_INOTIFY_USER=y
1387# CONFIG_QUOTA is not set 2052# CONFIG_QUOTA is not set
1388# CONFIG_AUTOFS_FS is not set 2053CONFIG_AUTOFS_FS=m
1389# CONFIG_AUTOFS4_FS is not set 2054CONFIG_AUTOFS4_FS=m
1390# CONFIG_FUSE_FS is not set 2055CONFIG_FUSE_FS=m
1391CONFIG_GENERIC_ACL=y 2056CONFIG_GENERIC_ACL=y
1392 2057
1393# 2058#
2059# Caches
2060#
2061# CONFIG_FSCACHE is not set
2062
2063#
1394# CD-ROM/DVD Filesystems 2064# CD-ROM/DVD Filesystems
1395# 2065#
1396CONFIG_ISO9660_FS=y 2066CONFIG_ISO9660_FS=y
@@ -1416,15 +2086,13 @@ CONFIG_NTFS_FS=m
1416# 2086#
1417CONFIG_PROC_FS=y 2087CONFIG_PROC_FS=y
1418CONFIG_PROC_SYSCTL=y 2088CONFIG_PROC_SYSCTL=y
2089CONFIG_PROC_PAGE_MONITOR=y
1419CONFIG_SYSFS=y 2090CONFIG_SYSFS=y
1420CONFIG_TMPFS=y 2091CONFIG_TMPFS=y
1421CONFIG_TMPFS_POSIX_ACL=y 2092CONFIG_TMPFS_POSIX_ACL=y
1422# CONFIG_HUGETLB_PAGE is not set 2093# CONFIG_HUGETLB_PAGE is not set
1423CONFIG_CONFIGFS_FS=m 2094CONFIG_CONFIGFS_FS=m
1424 2095CONFIG_MISC_FILESYSTEMS=y
1425#
1426# Miscellaneous filesystems
1427#
1428# CONFIG_ADFS_FS is not set 2096# CONFIG_ADFS_FS is not set
1429# CONFIG_AFFS_FS is not set 2097# CONFIG_AFFS_FS is not set
1430# CONFIG_HFS_FS is not set 2098# CONFIG_HFS_FS is not set
@@ -1444,27 +2112,49 @@ CONFIG_JFFS2_ZLIB=y
1444CONFIG_JFFS2_RTIME=y 2112CONFIG_JFFS2_RTIME=y
1445# CONFIG_JFFS2_RUBIN is not set 2113# CONFIG_JFFS2_RUBIN is not set
1446CONFIG_CRAMFS=y 2114CONFIG_CRAMFS=y
2115CONFIG_SQUASHFS=m
2116# CONFIG_SQUASHFS_EMBEDDED is not set
2117CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1447# CONFIG_VXFS_FS is not set 2118# CONFIG_VXFS_FS is not set
1448# CONFIG_MINIX_FS is not set 2119# CONFIG_MINIX_FS is not set
2120# CONFIG_OMFS_FS is not set
1449# CONFIG_HPFS_FS is not set 2121# CONFIG_HPFS_FS is not set
1450# CONFIG_QNX4FS_FS is not set 2122# CONFIG_QNX4FS_FS is not set
1451CONFIG_ROMFS_FS=y 2123CONFIG_ROMFS_FS=y
2124CONFIG_ROMFS_BACKED_BY_BLOCK=y
2125# CONFIG_ROMFS_BACKED_BY_MTD is not set
2126# CONFIG_ROMFS_BACKED_BY_BOTH is not set
2127CONFIG_ROMFS_ON_BLOCK=y
1452# CONFIG_SYSV_FS is not set 2128# CONFIG_SYSV_FS is not set
1453# CONFIG_UFS_FS is not set 2129# CONFIG_UFS_FS is not set
2130# CONFIG_NILFS2_FS is not set
1454CONFIG_NETWORK_FILESYSTEMS=y 2131CONFIG_NETWORK_FILESYSTEMS=y
1455CONFIG_NFS_FS=y 2132CONFIG_NFS_FS=y
1456# CONFIG_NFS_V3 is not set 2133CONFIG_NFS_V3=y
2134CONFIG_NFS_V3_ACL=y
1457# CONFIG_NFS_V4 is not set 2135# CONFIG_NFS_V4 is not set
1458# CONFIG_NFSD is not set
1459CONFIG_ROOT_NFS=y 2136CONFIG_ROOT_NFS=y
2137CONFIG_NFSD=m
2138CONFIG_NFSD_V2_ACL=y
2139CONFIG_NFSD_V3=y
2140CONFIG_NFSD_V3_ACL=y
2141CONFIG_NFSD_V4=y
1460CONFIG_LOCKD=y 2142CONFIG_LOCKD=y
2143CONFIG_LOCKD_V4=y
2144CONFIG_EXPORTFS=m
2145CONFIG_NFS_ACL_SUPPORT=y
1461CONFIG_NFS_COMMON=y 2146CONFIG_NFS_COMMON=y
1462CONFIG_SUNRPC=y 2147CONFIG_SUNRPC=y
1463# CONFIG_SUNRPC_BIND34 is not set 2148CONFIG_SUNRPC_GSS=m
1464# CONFIG_RPCSEC_GSS_KRB5 is not set 2149CONFIG_RPCSEC_GSS_KRB5=m
1465# CONFIG_RPCSEC_GSS_SPKM3 is not set 2150# CONFIG_RPCSEC_GSS_SPKM3 is not set
1466# CONFIG_SMB_FS is not set 2151# CONFIG_SMB_FS is not set
1467# CONFIG_CIFS is not set 2152CONFIG_CIFS=m
2153# CONFIG_CIFS_STATS is not set
2154# CONFIG_CIFS_WEAK_PW_HASH is not set
2155# CONFIG_CIFS_XATTR is not set
2156# CONFIG_CIFS_DEBUG2 is not set
2157# CONFIG_CIFS_EXPERIMENTAL is not set
1468# CONFIG_NCP_FS is not set 2158# CONFIG_NCP_FS is not set
1469# CONFIG_CODA_FS is not set 2159# CONFIG_CODA_FS is not set
1470# CONFIG_AFS_FS is not set 2160# CONFIG_AFS_FS is not set
@@ -1546,6 +2236,11 @@ CONFIG_MAGIC_SYSRQ=y
1546CONFIG_DEBUG_KERNEL=y 2236CONFIG_DEBUG_KERNEL=y
1547# CONFIG_DEBUG_SHIRQ is not set 2237# CONFIG_DEBUG_SHIRQ is not set
1548CONFIG_DETECT_SOFTLOCKUP=y 2238CONFIG_DETECT_SOFTLOCKUP=y
2239# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
2240CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
2241CONFIG_DETECT_HUNG_TASK=y
2242# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
2243CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1549CONFIG_SCHED_DEBUG=y 2244CONFIG_SCHED_DEBUG=y
1550# CONFIG_SCHEDSTATS is not set 2245# CONFIG_SCHEDSTATS is not set
1551# CONFIG_TIMER_STATS is not set 2246# CONFIG_TIMER_STATS is not set
@@ -1565,14 +2260,39 @@ CONFIG_DEBUG_BUGVERBOSE=y
1565CONFIG_DEBUG_INFO=y 2260CONFIG_DEBUG_INFO=y
1566# CONFIG_DEBUG_VM is not set 2261# CONFIG_DEBUG_VM is not set
1567# CONFIG_DEBUG_WRITECOUNT is not set 2262# CONFIG_DEBUG_WRITECOUNT is not set
2263CONFIG_DEBUG_MEMORY_INIT=y
1568# CONFIG_DEBUG_LIST is not set 2264# CONFIG_DEBUG_LIST is not set
1569# CONFIG_DEBUG_SG is not set 2265# CONFIG_DEBUG_SG is not set
2266# CONFIG_DEBUG_NOTIFIERS is not set
1570CONFIG_FRAME_POINTER=y 2267CONFIG_FRAME_POINTER=y
1571# CONFIG_BOOT_PRINTK_DELAY is not set 2268# CONFIG_BOOT_PRINTK_DELAY is not set
1572# CONFIG_RCU_TORTURE_TEST is not set 2269# CONFIG_RCU_TORTURE_TEST is not set
2270# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1573# CONFIG_BACKTRACE_SELF_TEST is not set 2271# CONFIG_BACKTRACE_SELF_TEST is not set
2272# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1574# CONFIG_FAULT_INJECTION is not set 2273# CONFIG_FAULT_INJECTION is not set
2274# CONFIG_LATENCYTOP is not set
2275CONFIG_SYSCTL_SYSCALL_CHECK=y
2276# CONFIG_PAGE_POISONING is not set
2277CONFIG_HAVE_FUNCTION_TRACER=y
2278CONFIG_TRACING_SUPPORT=y
2279
2280#
2281# Tracers
2282#
2283# CONFIG_FUNCTION_TRACER is not set
2284# CONFIG_SCHED_TRACER is not set
2285# CONFIG_CONTEXT_SWITCH_TRACER is not set
2286# CONFIG_EVENT_TRACER is not set
2287# CONFIG_BOOT_TRACER is not set
2288# CONFIG_TRACE_BRANCH_PROFILING is not set
2289# CONFIG_STACK_TRACER is not set
2290# CONFIG_KMEMTRACE is not set
2291# CONFIG_WORKQUEUE_TRACER is not set
2292# CONFIG_BLK_DEV_IO_TRACE is not set
1575# CONFIG_SAMPLES is not set 2293# CONFIG_SAMPLES is not set
2294CONFIG_HAVE_ARCH_KGDB=y
2295# CONFIG_KGDB is not set
1576CONFIG_DEBUG_USER=y 2296CONFIG_DEBUG_USER=y
1577CONFIG_DEBUG_ERRORS=y 2297CONFIG_DEBUG_ERRORS=y
1578# CONFIG_DEBUG_STACK_USAGE is not set 2298# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1586,19 +2306,29 @@ CONFIG_DEBUG_S3C_UART=0
1586# 2306#
1587# CONFIG_KEYS is not set 2307# CONFIG_KEYS is not set
1588# CONFIG_SECURITY is not set 2308# CONFIG_SECURITY is not set
2309# CONFIG_SECURITYFS is not set
1589# CONFIG_SECURITY_FILE_CAPABILITIES is not set 2310# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1590CONFIG_CRYPTO=y 2311CONFIG_CRYPTO=y
1591 2312
1592# 2313#
1593# Crypto core or helper 2314# Crypto core or helper
1594# 2315#
2316# CONFIG_CRYPTO_FIPS is not set
1595CONFIG_CRYPTO_ALGAPI=m 2317CONFIG_CRYPTO_ALGAPI=m
2318CONFIG_CRYPTO_ALGAPI2=m
1596CONFIG_CRYPTO_AEAD=m 2319CONFIG_CRYPTO_AEAD=m
2320CONFIG_CRYPTO_AEAD2=m
1597CONFIG_CRYPTO_BLKCIPHER=m 2321CONFIG_CRYPTO_BLKCIPHER=m
2322CONFIG_CRYPTO_BLKCIPHER2=m
1598CONFIG_CRYPTO_HASH=m 2323CONFIG_CRYPTO_HASH=m
2324CONFIG_CRYPTO_HASH2=m
2325CONFIG_CRYPTO_RNG2=m
2326CONFIG_CRYPTO_PCOMP=m
1599CONFIG_CRYPTO_MANAGER=m 2327CONFIG_CRYPTO_MANAGER=m
2328CONFIG_CRYPTO_MANAGER2=m
1600# CONFIG_CRYPTO_GF128MUL is not set 2329# CONFIG_CRYPTO_GF128MUL is not set
1601# CONFIG_CRYPTO_NULL is not set 2330# CONFIG_CRYPTO_NULL is not set
2331CONFIG_CRYPTO_WORKQUEUE=m
1602# CONFIG_CRYPTO_CRYPTD is not set 2332# CONFIG_CRYPTO_CRYPTD is not set
1603CONFIG_CRYPTO_AUTHENC=m 2333CONFIG_CRYPTO_AUTHENC=m
1604# CONFIG_CRYPTO_TEST is not set 2334# CONFIG_CRYPTO_TEST is not set
@@ -1630,10 +2360,14 @@ CONFIG_CRYPTO_HMAC=m
1630# 2360#
1631# Digest 2361# Digest
1632# 2362#
1633# CONFIG_CRYPTO_CRC32C is not set 2363CONFIG_CRYPTO_CRC32C=m
1634# CONFIG_CRYPTO_MD4 is not set 2364# CONFIG_CRYPTO_MD4 is not set
1635CONFIG_CRYPTO_MD5=m 2365CONFIG_CRYPTO_MD5=m
1636# CONFIG_CRYPTO_MICHAEL_MIC is not set 2366# CONFIG_CRYPTO_MICHAEL_MIC is not set
2367# CONFIG_CRYPTO_RMD128 is not set
2368# CONFIG_CRYPTO_RMD160 is not set
2369# CONFIG_CRYPTO_RMD256 is not set
2370# CONFIG_CRYPTO_RMD320 is not set
1637CONFIG_CRYPTO_SHA1=m 2371CONFIG_CRYPTO_SHA1=m
1638# CONFIG_CRYPTO_SHA256 is not set 2372# CONFIG_CRYPTO_SHA256 is not set
1639# CONFIG_CRYPTO_SHA512 is not set 2373# CONFIG_CRYPTO_SHA512 is not set
@@ -1663,23 +2397,37 @@ CONFIG_CRYPTO_DES=m
1663# Compression 2397# Compression
1664# 2398#
1665CONFIG_CRYPTO_DEFLATE=m 2399CONFIG_CRYPTO_DEFLATE=m
2400# CONFIG_CRYPTO_ZLIB is not set
1666# CONFIG_CRYPTO_LZO is not set 2401# CONFIG_CRYPTO_LZO is not set
2402
2403#
2404# Random Number Generation
2405#
2406# CONFIG_CRYPTO_ANSI_CPRNG is not set
1667CONFIG_CRYPTO_HW=y 2407CONFIG_CRYPTO_HW=y
2408# CONFIG_BINARY_PRINTF is not set
1668 2409
1669# 2410#
1670# Library routines 2411# Library routines
1671# 2412#
1672CONFIG_BITREVERSE=y 2413CONFIG_BITREVERSE=y
1673# CONFIG_GENERIC_FIND_FIRST_BIT is not set 2414CONFIG_GENERIC_FIND_LAST_BIT=y
1674# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1675# CONFIG_CRC_CCITT is not set 2415# CONFIG_CRC_CCITT is not set
1676# CONFIG_CRC16 is not set 2416CONFIG_CRC16=m
2417# CONFIG_CRC_T10DIF is not set
1677CONFIG_CRC_ITU_T=m 2418CONFIG_CRC_ITU_T=m
1678CONFIG_CRC32=y 2419CONFIG_CRC32=y
1679# CONFIG_CRC7 is not set 2420CONFIG_CRC7=m
1680# CONFIG_LIBCRC32C is not set 2421CONFIG_LIBCRC32C=m
1681CONFIG_ZLIB_INFLATE=y 2422CONFIG_ZLIB_INFLATE=y
1682CONFIG_ZLIB_DEFLATE=y 2423CONFIG_ZLIB_DEFLATE=y
1683CONFIG_PLIST=y 2424CONFIG_DECOMPRESS_GZIP=y
2425CONFIG_DECOMPRESS_BZIP2=y
2426CONFIG_DECOMPRESS_LZMA=y
2427CONFIG_TEXTSEARCH=y
2428CONFIG_TEXTSEARCH_KMP=m
2429CONFIG_TEXTSEARCH_BM=m
2430CONFIG_TEXTSEARCH_FSM=m
1684CONFIG_HAS_IOMEM=y 2431CONFIG_HAS_IOMEM=y
1685CONFIG_HAS_DMA=y 2432CONFIG_HAS_DMA=y
2433CONFIG_NLATTR=y
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
index 30f463d2fa8a..6ab5dd5868de 100644
--- a/arch/arm/configs/viper_defconfig
+++ b/arch/arm/configs/viper_defconfig
@@ -298,7 +298,6 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=m
298CONFIG_CPU_FREQ_GOV_USERSPACE=m 298CONFIG_CPU_FREQ_GOV_USERSPACE=m
299CONFIG_CPU_FREQ_GOV_ONDEMAND=m 299CONFIG_CPU_FREQ_GOV_ONDEMAND=m
300CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m 300CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
301CONFIG_CPU_FREQ_PXA=y
302 301
303# 302#
304# Floating point emulation 303# Floating point emulation
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index d7da19bcf928..c207504de84d 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -45,13 +45,15 @@ typedef struct user_fp elf_fpregset_t;
45#define EF_ARM_HASENTRY 0x00000002 /* All */ 45#define EF_ARM_HASENTRY 0x00000002 /* All */
46#define EF_ARM_RELEXEC 0x00000001 /* All */ 46#define EF_ARM_RELEXEC 0x00000001 /* All */
47 47
48#define R_ARM_NONE 0 48#define R_ARM_NONE 0
49#define R_ARM_PC24 1 49#define R_ARM_PC24 1
50#define R_ARM_ABS32 2 50#define R_ARM_ABS32 2
51#define R_ARM_CALL 28 51#define R_ARM_CALL 28
52#define R_ARM_JUMP24 29 52#define R_ARM_JUMP24 29
53#define R_ARM_V4BX 40 53#define R_ARM_V4BX 40
54#define R_ARM_PREL31 42 54#define R_ARM_PREL31 42
55#define R_ARM_MOVW_ABS_NC 43
56#define R_ARM_MOVT_ABS 44
55 57
56/* 58/*
57 * These are used to set parameters in the core dumps. 59 * These are used to set parameters in the core dumps.
diff --git a/arch/arm/include/asm/tlb.h b/arch/arm/include/asm/tlb.h
index 857f1dfac794..321c83e43a1e 100644
--- a/arch/arm/include/asm/tlb.h
+++ b/arch/arm/include/asm/tlb.h
@@ -36,6 +36,8 @@
36struct mmu_gather { 36struct mmu_gather {
37 struct mm_struct *mm; 37 struct mm_struct *mm;
38 unsigned int fullmm; 38 unsigned int fullmm;
39 unsigned long range_start;
40 unsigned long range_end;
39}; 41};
40 42
41DECLARE_PER_CPU(struct mmu_gather, mmu_gathers); 43DECLARE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -63,7 +65,19 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
63 put_cpu_var(mmu_gathers); 65 put_cpu_var(mmu_gathers);
64} 66}
65 67
66#define tlb_remove_tlb_entry(tlb,ptep,address) do { } while (0) 68/*
69 * Memorize the range for the TLB flush.
70 */
71static inline void
72tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, unsigned long addr)
73{
74 if (!tlb->fullmm) {
75 if (addr < tlb->range_start)
76 tlb->range_start = addr;
77 if (addr + PAGE_SIZE > tlb->range_end)
78 tlb->range_end = addr + PAGE_SIZE;
79 }
80}
67 81
68/* 82/*
69 * In the case of tlb vma handling, we can optimise these away in the 83 * In the case of tlb vma handling, we can optimise these away in the
@@ -73,15 +87,18 @@ tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
73static inline void 87static inline void
74tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) 88tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
75{ 89{
76 if (!tlb->fullmm) 90 if (!tlb->fullmm) {
77 flush_cache_range(vma, vma->vm_start, vma->vm_end); 91 flush_cache_range(vma, vma->vm_start, vma->vm_end);
92 tlb->range_start = TASK_SIZE;
93 tlb->range_end = 0;
94 }
78} 95}
79 96
80static inline void 97static inline void
81tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) 98tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
82{ 99{
83 if (!tlb->fullmm) 100 if (!tlb->fullmm && tlb->range_end > 0)
84 flush_tlb_range(vma, vma->vm_start, vma->vm_end); 101 flush_tlb_range(vma, tlb->range_start, tlb->range_end);
85} 102}
86 103
87#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page) 104#define tlb_remove_page(tlb,page) free_page_and_swap_cache(page)
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 010618487cf1..94cc58ef61ae 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -387,6 +387,8 @@
387#define __NR_dup3 (__NR_SYSCALL_BASE+358) 387#define __NR_dup3 (__NR_SYSCALL_BASE+358)
388#define __NR_pipe2 (__NR_SYSCALL_BASE+359) 388#define __NR_pipe2 (__NR_SYSCALL_BASE+359)
389#define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) 389#define __NR_inotify_init1 (__NR_SYSCALL_BASE+360)
390#define __NR_preadv (__NR_SYSCALL_BASE+361)
391#define __NR_pwritev (__NR_SYSCALL_BASE+362)
390 392
391/* 393/*
392 * The following SWIs are ARM private. 394 * The following SWIs are ARM private.
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 9ca8d13f05f7..1680e9e9c831 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -370,6 +370,8 @@
370 CALL(sys_dup3) 370 CALL(sys_dup3)
371 CALL(sys_pipe2) 371 CALL(sys_pipe2)
372/* 360 */ CALL(sys_inotify_init1) 372/* 360 */ CALL(sys_inotify_init1)
373 CALL(sys_preadv)
374 CALL(sys_pwritev)
373#ifndef syscalls_counted 375#ifndef syscalls_counted
374.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 376.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
375#define syscalls_counted 377#define syscalls_counted
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
index d1731e39b496..bac03c81489d 100644
--- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c
@@ -169,6 +169,21 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
169 *(u32 *)loc = offset & 0x7fffffff; 169 *(u32 *)loc = offset & 0x7fffffff;
170 break; 170 break;
171 171
172 case R_ARM_MOVW_ABS_NC:
173 case R_ARM_MOVT_ABS:
174 offset = *(u32 *)loc;
175 offset = ((offset & 0xf0000) >> 4) | (offset & 0xfff);
176 offset = (offset ^ 0x8000) - 0x8000;
177
178 offset += sym->st_value;
179 if (ELF32_R_TYPE(rel->r_info) == R_ARM_MOVT_ABS)
180 offset >>= 16;
181
182 *(u32 *)loc &= 0xfff0f000;
183 *(u32 *)loc |= ((offset & 0xf000) << 4) |
184 (offset & 0x0fff);
185 break;
186
172 default: 187 default:
173 printk(KERN_ERR "%s: unknown relocation: %u\n", 188 printk(KERN_ERR "%s: unknown relocation: %u\n",
174 module->name, ELF32_R_TYPE(rel->r_info)); 189 module->name, ELF32_R_TYPE(rel->r_info));
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
index 42623db7f870..d59a0cd537f0 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -83,6 +83,7 @@
83#include <linux/net.h> 83#include <linux/net.h>
84#include <linux/ipc.h> 84#include <linux/ipc.h>
85#include <linux/uaccess.h> 85#include <linux/uaccess.h>
86#include <linux/slab.h>
86 87
87struct oldabi_stat64 { 88struct oldabi_stat64 {
88 unsigned long long st_dev; 89 unsigned long long st_dev;
@@ -176,21 +177,12 @@ asmlinkage long sys_oabi_fstatat64(int dfd,
176 int flag) 177 int flag)
177{ 178{
178 struct kstat stat; 179 struct kstat stat;
179 int error = -EINVAL; 180 int error;
180 181
181 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) 182 error = vfs_fstatat(dfd, filename, &stat, flag);
182 goto out; 183 if (error)
183 184 return error;
184 if (flag & AT_SYMLINK_NOFOLLOW) 185 return cp_oldabi_stat64(&stat, statbuf);
185 error = vfs_lstat_fd(dfd, filename, &stat);
186 else
187 error = vfs_stat_fd(dfd, filename, &stat);
188
189 if (!error)
190 error = cp_oldabi_stat64(&stat, statbuf);
191
192out:
193 return error;
194} 186}
195 187
196struct oabi_flock64 { 188struct oabi_flock64 {
diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c
index 1ff1bda0a894..309f3511aa20 100644
--- a/arch/arm/mach-at91/at91rm9200_time.c
+++ b/arch/arm/mach-at91/at91rm9200_time.c
@@ -85,7 +85,7 @@ static struct irqaction at91rm9200_timer_irq = {
85 .handler = at91rm9200_timer_interrupt 85 .handler = at91rm9200_timer_interrupt
86}; 86};
87 87
88static cycle_t read_clk32k(void) 88static cycle_t read_clk32k(struct clocksource *cs)
89{ 89{
90 return read_CRTR(); 90 return read_CRTR();
91} 91}
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
index b63e1d5f1bad..4bd56aee4370 100644
--- a/arch/arm/mach-at91/at91sam926x_time.c
+++ b/arch/arm/mach-at91/at91sam926x_time.c
@@ -31,7 +31,7 @@ static u32 pit_cnt; /* access only w/system irq blocked */
31 * Clocksource: just a monotonic counter of MCK/16 cycles. 31 * Clocksource: just a monotonic counter of MCK/16 cycles.
32 * We don't care whether or not PIT irqs are enabled. 32 * We don't care whether or not PIT irqs are enabled.
33 */ 33 */
34static cycle_t read_pit_clk(void) 34static cycle_t read_pit_clk(struct clocksource *cs)
35{ 35{
36 unsigned long flags; 36 unsigned long flags;
37 u32 elapsed; 37 u32 elapsed;
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index bac988e7a4c3..a9c78bc72b84 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -4,19 +4,56 @@ menu "TI DaVinci Implementations"
4 4
5comment "DaVinci Core Type" 5comment "DaVinci Core Type"
6 6
7config ARCH_DAVINCI644x 7config ARCH_DAVINCI_DM644x
8 default y
9 bool "DaVinci 644x based system" 8 bool "DaVinci 644x based system"
10 9
11comment "DaVinci Board Type" 10comment "DaVinci Board Type"
12 11
13config MACH_DAVINCI_EVM 12config MACH_DAVINCI_EVM
14 bool "TI DaVinci EVM" 13 bool "TI DM644x EVM"
15 default y 14 default y
16 depends on ARCH_DAVINCI644x 15 depends on ARCH_DAVINCI_DM644x
17 help 16 help
18 Configure this option to specify the whether the board used 17 Configure this option to specify the whether the board used
19 for development is a DaVinci EVM 18 for development is a DM644x EVM
19
20
21config DAVINCI_MUX
22 bool "DAVINCI multiplexing support"
23 depends on ARCH_DAVINCI
24 default y
25 help
26 Pin multiplexing support for DAVINCI boards. If your bootloader
27 sets the multiplexing correctly, say N. Otherwise, or if unsure,
28 say Y.
29
30config DAVINCI_MUX_DEBUG
31 bool "Multiplexing debug output"
32 depends on DAVINCI_MUX
33 help
34 Makes the multiplexing functions print out a lot of debug info.
35 This is useful if you want to find out the correct values of the
36 multiplexing registers.
37
38config DAVINCI_MUX_WARNINGS
39 bool "Warn about pins the bootloader didn't set up"
40 depends on DAVINCI_MUX
41 help
42 Choose Y here to warn whenever driver initialization logic needs
43 to change the pin multiplexing setup. When there are no warnings
44 printed, it's safe to deselect DAVINCI_MUX for your product.
45
46config DAVINCI_RESET_CLOCKS
47 bool "Reset unused clocks during boot"
48 depends on ARCH_DAVINCI
49 help
50 Say Y if you want to reset unused clocks during boot.
51 This option saves power, but assumes all drivers are
52 using the clock framework. Broken drivers that do not
53 yet use clock framework may not work with this option.
54 If you are booting from another operating system, you
55 probably do not want this option enabled until your
56 device drivers work properly.
20 57
21endmenu 58endmenu
22 59
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile
index 4dc458597f40..1674661942f3 100644
--- a/arch/arm/mach-davinci/Makefile
+++ b/arch/arm/mach-davinci/Makefile
@@ -5,7 +5,12 @@
5 5
6# Common objects 6# Common objects
7obj-y := time.o irq.o clock.o serial.o io.o id.o psc.o \ 7obj-y := time.o irq.o clock.o serial.o io.o id.o psc.o \
8 gpio.o mux.o devices.o usb.o 8 gpio.o devices.o dma.o usb.o
9
10obj-$(CONFIG_DAVINCI_MUX) += mux.o
11
12# Chip specific
13obj-$(CONFIG_ARCH_DAVINCI_DM644x) += dm644x.o
9 14
10# Board specific 15# Board specific
11obj-$(CONFIG_MACH_DAVINCI_EVM) += board-evm.o 16obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index 0b97a528902b..b2e7f9c63bc5 100644
--- a/arch/arm/mach-davinci/board-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -15,15 +15,20 @@
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/gpio.h> 16#include <linux/gpio.h>
17#include <linux/leds.h> 17#include <linux/leds.h>
18#include <linux/memory.h>
19#include <linux/etherdevice.h>
18 20
19#include <linux/i2c.h> 21#include <linux/i2c.h>
20#include <linux/i2c/pcf857x.h> 22#include <linux/i2c/pcf857x.h>
21#include <linux/i2c/at24.h> 23#include <linux/i2c/at24.h>
22 24
23#include <linux/mtd/mtd.h> 25#include <linux/mtd/mtd.h>
26#include <linux/mtd/nand.h>
24#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
25#include <linux/mtd/physmap.h> 28#include <linux/mtd/physmap.h>
26#include <linux/io.h> 29#include <linux/io.h>
30#include <linux/phy.h>
31#include <linux/clk.h>
27 32
28#include <asm/setup.h> 33#include <asm/setup.h>
29#include <asm/mach-types.h> 34#include <asm/mach-types.h>
@@ -32,25 +37,34 @@
32#include <asm/mach/map.h> 37#include <asm/mach/map.h>
33#include <asm/mach/flash.h> 38#include <asm/mach/flash.h>
34 39
35#include <mach/hardware.h> 40#include <mach/dm644x.h>
36#include <mach/common.h> 41#include <mach/common.h>
37#include <mach/i2c.h> 42#include <mach/i2c.h>
43#include <mach/serial.h>
44#include <mach/mux.h>
45#include <mach/psc.h>
46#include <mach/nand.h>
38 47
39/* other misc. init functions */ 48#define DM644X_EVM_PHY_MASK (0x2)
40void __init davinci_psc_init(void); 49#define DM644X_EVM_MDIO_FREQUENCY (2200000) /* PHY bus frequency */
41void __init davinci_irq_init(void);
42void __init davinci_map_common_io(void);
43void __init davinci_init_common_hw(void);
44 50
45#if defined(CONFIG_MTD_PHYSMAP) || \ 51#define DAVINCI_CFC_ATA_BASE 0x01C66000
46 defined(CONFIG_MTD_PHYSMAP_MODULE) 52
53#define DAVINCI_ASYNC_EMIF_CONTROL_BASE 0x01e00000
54#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE 0x02000000
55#define DAVINCI_ASYNC_EMIF_DATA_CE1_BASE 0x04000000
56#define DAVINCI_ASYNC_EMIF_DATA_CE2_BASE 0x06000000
57#define DAVINCI_ASYNC_EMIF_DATA_CE3_BASE 0x08000000
58
59#define LXT971_PHY_ID (0x001378e2)
60#define LXT971_PHY_MASK (0xfffffff0)
47 61
48static struct mtd_partition davinci_evm_norflash_partitions[] = { 62static struct mtd_partition davinci_evm_norflash_partitions[] = {
49 /* bootloader (U-Boot, etc) in first 4 sectors */ 63 /* bootloader (UBL, U-Boot, etc) in first 5 sectors */
50 { 64 {
51 .name = "bootloader", 65 .name = "bootloader",
52 .offset = 0, 66 .offset = 0,
53 .size = 4 * SZ_64K, 67 .size = 5 * SZ_64K,
54 .mask_flags = MTD_WRITEABLE, /* force read-only */ 68 .mask_flags = MTD_WRITEABLE, /* force read-only */
55 }, 69 },
56 /* bootloader params in the next 1 sectors */ 70 /* bootloader params in the next 1 sectors */
@@ -100,10 +114,89 @@ static struct platform_device davinci_evm_norflash_device = {
100 .resource = &davinci_evm_norflash_resource, 114 .resource = &davinci_evm_norflash_resource,
101}; 115};
102 116
103#endif 117/* DM644x EVM includes a 64 MByte small-page NAND flash (16K blocks).
118 * It may used instead of the (default) NOR chip to boot, using TI's
119 * tools to install the secondary boot loader (UBL) and U-Boot.
120 */
121struct mtd_partition davinci_evm_nandflash_partition[] = {
122 /* Bootloader layout depends on whose u-boot is installed, but we
123 * can hide all the details.
124 * - block 0 for u-boot environment ... in mainline u-boot
125 * - block 1 for UBL (plus up to four backup copies in blocks 2..5)
126 * - blocks 6...? for u-boot
127 * - blocks 16..23 for u-boot environment ... in TI's u-boot
128 */
129 {
130 .name = "bootloader",
131 .offset = 0,
132 .size = SZ_256K + SZ_128K,
133 .mask_flags = MTD_WRITEABLE, /* force read-only */
134 },
135 /* Kernel */
136 {
137 .name = "kernel",
138 .offset = MTDPART_OFS_APPEND,
139 .size = SZ_4M,
140 .mask_flags = 0,
141 },
142 /* File system (older GIT kernels started this on the 5MB mark) */
143 {
144 .name = "filesystem",
145 .offset = MTDPART_OFS_APPEND,
146 .size = MTDPART_SIZ_FULL,
147 .mask_flags = 0,
148 }
149 /* A few blocks at end hold a flash BBT ... created by TI's CCS
150 * using flashwriter_nand.out, but ignored by TI's versions of
151 * Linux and u-boot. We boot faster by using them.
152 */
153};
104 154
105#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 155static struct davinci_nand_pdata davinci_evm_nandflash_data = {
106 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE) 156 .parts = davinci_evm_nandflash_partition,
157 .nr_parts = ARRAY_SIZE(davinci_evm_nandflash_partition),
158 .ecc_mode = NAND_ECC_HW,
159 .options = NAND_USE_FLASH_BBT,
160};
161
162static struct resource davinci_evm_nandflash_resource[] = {
163 {
164 .start = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE,
165 .end = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE + SZ_16M - 1,
166 .flags = IORESOURCE_MEM,
167 }, {
168 .start = DAVINCI_ASYNC_EMIF_CONTROL_BASE,
169 .end = DAVINCI_ASYNC_EMIF_CONTROL_BASE + SZ_4K - 1,
170 .flags = IORESOURCE_MEM,
171 },
172};
173
174static struct platform_device davinci_evm_nandflash_device = {
175 .name = "davinci_nand",
176 .id = 0,
177 .dev = {
178 .platform_data = &davinci_evm_nandflash_data,
179 },
180 .num_resources = ARRAY_SIZE(davinci_evm_nandflash_resource),
181 .resource = davinci_evm_nandflash_resource,
182};
183
184static u64 davinci_fb_dma_mask = DMA_BIT_MASK(32);
185
186static struct platform_device davinci_fb_device = {
187 .name = "davincifb",
188 .id = -1,
189 .dev = {
190 .dma_mask = &davinci_fb_dma_mask,
191 .coherent_dma_mask = DMA_BIT_MASK(32),
192 },
193 .num_resources = 0,
194};
195
196static struct platform_device rtc_dev = {
197 .name = "rtc_davinci_evm",
198 .id = -1,
199};
107 200
108static struct resource ide_resources[] = { 201static struct resource ide_resources[] = {
109 { 202 {
@@ -131,8 +224,6 @@ static struct platform_device ide_dev = {
131 }, 224 },
132}; 225};
133 226
134#endif
135
136/*----------------------------------------------------------------------*/ 227/*----------------------------------------------------------------------*/
137 228
138/* 229/*
@@ -311,7 +402,9 @@ evm_u35_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
311 gpio_request(gpio + 7, "nCF_SEL"); 402 gpio_request(gpio + 7, "nCF_SEL");
312 gpio_direction_output(gpio + 7, 1); 403 gpio_direction_output(gpio + 7, 1);
313 404
314 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */ 405 /* irlml6401 switches over 1A, in under 8 msec;
406 * now it can be managed by nDRV_VBUS ...
407 */
315 setup_usb(500, 8); 408 setup_usb(500, 8);
316 409
317 return 0; 410 return 0;
@@ -343,14 +436,120 @@ static struct pcf857x_platform_data pcf_data_u35 = {
343 * - 0x0039, 1 byte NTSC vs PAL (bit 0x80 == PAL) 436 * - 0x0039, 1 byte NTSC vs PAL (bit 0x80 == PAL)
344 * - ... newer boards may have more 437 * - ... newer boards may have more
345 */ 438 */
439static struct memory_accessor *at24_mem_acc;
440
441static void at24_setup(struct memory_accessor *mem_acc, void *context)
442{
443 DECLARE_MAC_BUF(mac_str);
444 char mac_addr[6];
445
446 at24_mem_acc = mem_acc;
447
448 /* Read MAC addr from EEPROM */
449 if (at24_mem_acc->read(at24_mem_acc, mac_addr, 0x7f00, 6) == 6) {
450 printk(KERN_INFO "Read MAC addr from EEPROM: %s\n",
451 print_mac(mac_str, mac_addr));
452 }
453}
454
346static struct at24_platform_data eeprom_info = { 455static struct at24_platform_data eeprom_info = {
347 .byte_len = (256*1024) / 8, 456 .byte_len = (256*1024) / 8,
348 .page_size = 64, 457 .page_size = 64,
349 .flags = AT24_FLAG_ADDR16, 458 .flags = AT24_FLAG_ADDR16,
459 .setup = at24_setup,
350}; 460};
351 461
462int dm6446evm_eeprom_read(void *buf, off_t off, size_t count)
463{
464 if (at24_mem_acc)
465 return at24_mem_acc->read(at24_mem_acc, buf, off, count);
466 return -ENODEV;
467}
468EXPORT_SYMBOL(dm6446evm_eeprom_read);
469
470int dm6446evm_eeprom_write(void *buf, off_t off, size_t count)
471{
472 if (at24_mem_acc)
473 return at24_mem_acc->write(at24_mem_acc, buf, off, count);
474 return -ENODEV;
475}
476EXPORT_SYMBOL(dm6446evm_eeprom_write);
477
478/*
479 * MSP430 supports RTC, card detection, input from IR remote, and
480 * a bit more. It triggers interrupts on GPIO(7) from pressing
481 * buttons on the IR remote, and for card detect switches.
482 */
483static struct i2c_client *dm6446evm_msp;
484
485static int dm6446evm_msp_probe(struct i2c_client *client,
486 const struct i2c_device_id *id)
487{
488 dm6446evm_msp = client;
489 return 0;
490}
491
492static int dm6446evm_msp_remove(struct i2c_client *client)
493{
494 dm6446evm_msp = NULL;
495 return 0;
496}
497
498static const struct i2c_device_id dm6446evm_msp_ids[] = {
499 { "dm6446evm_msp", 0, },
500 { /* end of list */ },
501};
502
503static struct i2c_driver dm6446evm_msp_driver = {
504 .driver.name = "dm6446evm_msp",
505 .id_table = dm6446evm_msp_ids,
506 .probe = dm6446evm_msp_probe,
507 .remove = dm6446evm_msp_remove,
508};
509
510static int dm6444evm_msp430_get_pins(void)
511{
512 static const char txbuf[2] = { 2, 4, };
513 char buf[4];
514 struct i2c_msg msg[2] = {
515 {
516 .addr = dm6446evm_msp->addr,
517 .flags = 0,
518 .len = 2,
519 .buf = (void __force *)txbuf,
520 },
521 {
522 .addr = dm6446evm_msp->addr,
523 .flags = I2C_M_RD,
524 .len = 4,
525 .buf = buf,
526 },
527 };
528 int status;
529
530 if (!dm6446evm_msp)
531 return -ENXIO;
532
533 /* Command 4 == get input state, returns port 2 and port3 data
534 * S Addr W [A] len=2 [A] cmd=4 [A]
535 * RS Addr R [A] [len=4] A [cmd=4] A [port2] A [port3] N P
536 */
537 status = i2c_transfer(dm6446evm_msp->adapter, msg, 2);
538 if (status < 0)
539 return status;
540
541 dev_dbg(&dm6446evm_msp->dev,
542 "PINS: %02x %02x %02x %02x\n",
543 buf[0], buf[1], buf[2], buf[3]);
544
545 return (buf[3] << 8) | buf[2];
546}
547
352static struct i2c_board_info __initdata i2c_info[] = { 548static struct i2c_board_info __initdata i2c_info[] = {
353 { 549 {
550 I2C_BOARD_INFO("dm6446evm_msp", 0x23),
551 },
552 {
354 I2C_BOARD_INFO("pcf8574", 0x38), 553 I2C_BOARD_INFO("pcf8574", 0x38),
355 .platform_data = &pcf_data_u2, 554 .platform_data = &pcf_data_u2,
356 }, 555 },
@@ -368,7 +567,6 @@ static struct i2c_board_info __initdata i2c_info[] = {
368 }, 567 },
369 /* ALSO: 568 /* ALSO:
370 * - tvl320aic33 audio codec (0x1b) 569 * - tvl320aic33 audio codec (0x1b)
371 * - msp430 microcontroller (0x23)
372 * - tvp5146 video decoder (0x5d) 570 * - tvp5146 video decoder (0x5d)
373 */ 571 */
374}; 572};
@@ -384,51 +582,109 @@ static struct davinci_i2c_platform_data i2c_pdata = {
384static void __init evm_init_i2c(void) 582static void __init evm_init_i2c(void)
385{ 583{
386 davinci_init_i2c(&i2c_pdata); 584 davinci_init_i2c(&i2c_pdata);
585 i2c_add_driver(&dm6446evm_msp_driver);
387 i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info)); 586 i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
388} 587}
389 588
390static struct platform_device *davinci_evm_devices[] __initdata = { 589static struct platform_device *davinci_evm_devices[] __initdata = {
391#if defined(CONFIG_MTD_PHYSMAP) || \ 590 &davinci_fb_device,
392 defined(CONFIG_MTD_PHYSMAP_MODULE) 591 &rtc_dev,
393 &davinci_evm_norflash_device, 592};
394#endif 593
395#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 594static struct davinci_uart_config uart_config __initdata = {
396 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE) 595 .enabled_uarts = (1 << 0),
397 &ide_dev,
398#endif
399}; 596};
400 597
401static void __init 598static void __init
402davinci_evm_map_io(void) 599davinci_evm_map_io(void)
403{ 600{
404 davinci_map_common_io(); 601 davinci_map_common_io();
602 dm644x_init();
405} 603}
406 604
407static __init void davinci_evm_init(void) 605static int davinci_phy_fixup(struct phy_device *phydev)
408{ 606{
409 davinci_psc_init(); 607 unsigned int control;
608 /* CRITICAL: Fix for increasing PHY signal drive strength for
609 * TX lockup issue. On DaVinci EVM, the Intel LXT971 PHY
610 * signal strength was low causing TX to fail randomly. The
611 * fix is to Set bit 11 (Increased MII drive strength) of PHY
612 * register 26 (Digital Config register) on this phy. */
613 control = phy_read(phydev, 26);
614 phy_write(phydev, 26, (control | 0x800));
615 return 0;
616}
410 617
411#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \ 618#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
412 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE) 619 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
620#define HAS_ATA 1
621#else
622#define HAS_ATA 0
623#endif
624
413#if defined(CONFIG_MTD_PHYSMAP) || \ 625#if defined(CONFIG_MTD_PHYSMAP) || \
414 defined(CONFIG_MTD_PHYSMAP_MODULE) 626 defined(CONFIG_MTD_PHYSMAP_MODULE)
415 printk(KERN_WARNING "WARNING: both IDE and NOR flash are enabled, " 627#define HAS_NOR 1
416 "but share pins.\n\t Disable IDE for NOR support.\n"); 628#else
629#define HAS_NOR 0
417#endif 630#endif
631
632#if defined(CONFIG_MTD_NAND_DAVINCI) || \
633 defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
634#define HAS_NAND 1
635#else
636#define HAS_NAND 0
418#endif 637#endif
419 638
639static __init void davinci_evm_init(void)
640{
641 struct clk *aemif_clk;
642
643 aemif_clk = clk_get(NULL, "aemif");
644 clk_enable(aemif_clk);
645
646 if (HAS_ATA) {
647 if (HAS_NAND || HAS_NOR)
648 pr_warning("WARNING: both IDE and Flash are "
649 "enabled, but they share AEMIF pins.\n"
650 "\tDisable IDE for NAND/NOR support.\n");
651 davinci_cfg_reg(DM644X_HPIEN_DISABLE);
652 davinci_cfg_reg(DM644X_ATAEN);
653 davinci_cfg_reg(DM644X_HDIREN);
654 platform_device_register(&ide_dev);
655 } else if (HAS_NAND || HAS_NOR) {
656 davinci_cfg_reg(DM644X_HPIEN_DISABLE);
657 davinci_cfg_reg(DM644X_ATAEN_DISABLE);
658
659 /* only one device will be jumpered and detected */
660 if (HAS_NAND) {
661 platform_device_register(&davinci_evm_nandflash_device);
662 evm_leds[7].default_trigger = "nand-disk";
663 if (HAS_NOR)
664 pr_warning("WARNING: both NAND and NOR flash "
665 "are enabled; disable one of them.\n");
666 } else if (HAS_NOR)
667 platform_device_register(&davinci_evm_norflash_device);
668 }
669
420 platform_add_devices(davinci_evm_devices, 670 platform_add_devices(davinci_evm_devices,
421 ARRAY_SIZE(davinci_evm_devices)); 671 ARRAY_SIZE(davinci_evm_devices));
422 evm_init_i2c(); 672 evm_init_i2c();
673
674 davinci_serial_init(&uart_config);
675
676 /* Register the fixup for PHY on DaVinci */
677 phy_register_fixup_for_uid(LXT971_PHY_ID, LXT971_PHY_MASK,
678 davinci_phy_fixup);
679
423} 680}
424 681
425static __init void davinci_evm_irq_init(void) 682static __init void davinci_evm_irq_init(void)
426{ 683{
427 davinci_init_common_hw();
428 davinci_irq_init(); 684 davinci_irq_init();
429} 685}
430 686
431MACHINE_START(DAVINCI_EVM, "DaVinci EVM") 687MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
432 /* Maintainer: MontaVista Software <source@mvista.com> */ 688 /* Maintainer: MontaVista Software <source@mvista.com> */
433 .phys_io = IO_PHYS, 689 .phys_io = IO_PHYS,
434 .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc, 690 .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc,
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index abb92b7eca0c..f0baaa15a57e 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -1,7 +1,8 @@
1/* 1/*
2 * TI DaVinci clock config file 2 * Clock and PLL control for DaVinci devices
3 * 3 *
4 * Copyright (C) 2006 Texas Instruments. 4 * Copyright (C) 2006-2007 Texas Instruments.
5 * Copyright (C) 2008-2009 Deep Root Systems, LLC
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
@@ -13,6 +14,7 @@
13#include <linux/kernel.h> 14#include <linux/kernel.h>
14#include <linux/init.h> 15#include <linux/init.h>
15#include <linux/errno.h> 16#include <linux/errno.h>
17#include <linux/clk.h>
16#include <linux/err.h> 18#include <linux/err.h>
17#include <linux/mutex.h> 19#include <linux/mutex.h>
18#include <linux/platform_device.h> 20#include <linux/platform_device.h>
@@ -21,98 +23,50 @@
21#include <mach/hardware.h> 23#include <mach/hardware.h>
22 24
23#include <mach/psc.h> 25#include <mach/psc.h>
26#include <mach/cputype.h>
24#include "clock.h" 27#include "clock.h"
25 28
26/* PLL/Reset register offsets */
27#define PLLM 0x110
28
29static LIST_HEAD(clocks); 29static LIST_HEAD(clocks);
30static DEFINE_MUTEX(clocks_mutex); 30static DEFINE_MUTEX(clocks_mutex);
31static DEFINE_SPINLOCK(clockfw_lock); 31static DEFINE_SPINLOCK(clockfw_lock);
32 32
33static unsigned int commonrate; 33static unsigned psc_domain(struct clk *clk)
34static unsigned int armrate;
35static unsigned int fixedrate = 27000000; /* 27 MHZ */
36
37extern void davinci_psc_config(unsigned int domain, unsigned int id, char enable);
38
39/*
40 * Returns a clock. Note that we first try to use device id on the bus
41 * and clock name. If this fails, we try to use clock name only.
42 */
43struct clk *clk_get(struct device *dev, const char *id)
44{ 34{
45 struct clk *p, *clk = ERR_PTR(-ENOENT); 35 return (clk->flags & PSC_DSP)
46 int idno; 36 ? DAVINCI_GPSC_DSPDOMAIN
47 37 : DAVINCI_GPSC_ARMDOMAIN;
48 if (dev == NULL || dev->bus != &platform_bus_type)
49 idno = -1;
50 else
51 idno = to_platform_device(dev)->id;
52
53 mutex_lock(&clocks_mutex);
54
55 list_for_each_entry(p, &clocks, node) {
56 if (p->id == idno &&
57 strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
58 clk = p;
59 goto found;
60 }
61 }
62
63 list_for_each_entry(p, &clocks, node) {
64 if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
65 clk = p;
66 break;
67 }
68 }
69
70found:
71 mutex_unlock(&clocks_mutex);
72
73 return clk;
74} 38}
75EXPORT_SYMBOL(clk_get);
76 39
77void clk_put(struct clk *clk) 40static void __clk_enable(struct clk *clk)
78{ 41{
79 if (clk && !IS_ERR(clk)) 42 if (clk->parent)
80 module_put(clk->owner); 43 __clk_enable(clk->parent);
81} 44 if (clk->usecount++ == 0 && (clk->flags & CLK_PSC))
82EXPORT_SYMBOL(clk_put); 45 davinci_psc_config(psc_domain(clk), clk->lpsc, 1);
83
84static int __clk_enable(struct clk *clk)
85{
86 if (clk->flags & ALWAYS_ENABLED)
87 return 0;
88
89 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, clk->lpsc, 1);
90 return 0;
91} 46}
92 47
93static void __clk_disable(struct clk *clk) 48static void __clk_disable(struct clk *clk)
94{ 49{
95 if (clk->usecount) 50 if (WARN_ON(clk->usecount == 0))
96 return; 51 return;
97 52 if (--clk->usecount == 0 && !(clk->flags & CLK_PLL))
98 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, clk->lpsc, 0); 53 davinci_psc_config(psc_domain(clk), clk->lpsc, 0);
54 if (clk->parent)
55 __clk_disable(clk->parent);
99} 56}
100 57
101int clk_enable(struct clk *clk) 58int clk_enable(struct clk *clk)
102{ 59{
103 unsigned long flags; 60 unsigned long flags;
104 int ret = 0;
105 61
106 if (clk == NULL || IS_ERR(clk)) 62 if (clk == NULL || IS_ERR(clk))
107 return -EINVAL; 63 return -EINVAL;
108 64
109 if (clk->usecount++ == 0) { 65 spin_lock_irqsave(&clockfw_lock, flags);
110 spin_lock_irqsave(&clockfw_lock, flags); 66 __clk_enable(clk);
111 ret = __clk_enable(clk); 67 spin_unlock_irqrestore(&clockfw_lock, flags);
112 spin_unlock_irqrestore(&clockfw_lock, flags);
113 }
114 68
115 return ret; 69 return 0;
116} 70}
117EXPORT_SYMBOL(clk_enable); 71EXPORT_SYMBOL(clk_enable);
118 72
@@ -123,11 +77,9 @@ void clk_disable(struct clk *clk)
123 if (clk == NULL || IS_ERR(clk)) 77 if (clk == NULL || IS_ERR(clk))
124 return; 78 return;
125 79
126 if (clk->usecount > 0 && !(--clk->usecount)) { 80 spin_lock_irqsave(&clockfw_lock, flags);
127 spin_lock_irqsave(&clockfw_lock, flags); 81 __clk_disable(clk);
128 __clk_disable(clk); 82 spin_unlock_irqrestore(&clockfw_lock, flags);
129 spin_unlock_irqrestore(&clockfw_lock, flags);
130 }
131} 83}
132EXPORT_SYMBOL(clk_disable); 84EXPORT_SYMBOL(clk_disable);
133 85
@@ -136,7 +88,7 @@ unsigned long clk_get_rate(struct clk *clk)
136 if (clk == NULL || IS_ERR(clk)) 88 if (clk == NULL || IS_ERR(clk))
137 return -EINVAL; 89 return -EINVAL;
138 90
139 return *(clk->rate); 91 return clk->rate;
140} 92}
141EXPORT_SYMBOL(clk_get_rate); 93EXPORT_SYMBOL(clk_get_rate);
142 94
@@ -145,7 +97,7 @@ long clk_round_rate(struct clk *clk, unsigned long rate)
145 if (clk == NULL || IS_ERR(clk)) 97 if (clk == NULL || IS_ERR(clk))
146 return -EINVAL; 98 return -EINVAL;
147 99
148 return *(clk->rate); 100 return clk->rate;
149} 101}
150EXPORT_SYMBOL(clk_round_rate); 102EXPORT_SYMBOL(clk_round_rate);
151 103
@@ -164,10 +116,23 @@ int clk_register(struct clk *clk)
164 if (clk == NULL || IS_ERR(clk)) 116 if (clk == NULL || IS_ERR(clk))
165 return -EINVAL; 117 return -EINVAL;
166 118
119 if (WARN(clk->parent && !clk->parent->rate,
120 "CLK: %s parent %s has no rate!\n",
121 clk->name, clk->parent->name))
122 return -EINVAL;
123
167 mutex_lock(&clocks_mutex); 124 mutex_lock(&clocks_mutex);
168 list_add(&clk->node, &clocks); 125 list_add_tail(&clk->node, &clocks);
169 mutex_unlock(&clocks_mutex); 126 mutex_unlock(&clocks_mutex);
170 127
128 /* If rate is already set, use it */
129 if (clk->rate)
130 return 0;
131
132 /* Otherwise, default to parent rate */
133 if (clk->parent)
134 clk->rate = clk->parent->rate;
135
171 return 0; 136 return 0;
172} 137}
173EXPORT_SYMBOL(clk_register); 138EXPORT_SYMBOL(clk_register);
@@ -183,84 +148,150 @@ void clk_unregister(struct clk *clk)
183} 148}
184EXPORT_SYMBOL(clk_unregister); 149EXPORT_SYMBOL(clk_unregister);
185 150
186static struct clk davinci_clks[] = { 151#ifdef CONFIG_DAVINCI_RESET_CLOCKS
187 { 152/*
188 .name = "ARMCLK", 153 * Disable any unused clocks left on by the bootloader
189 .rate = &armrate, 154 */
190 .lpsc = -1, 155static int __init clk_disable_unused(void)
191 .flags = ALWAYS_ENABLED, 156{
192 }, 157 struct clk *ck;
193 { 158
194 .name = "UART", 159 spin_lock_irq(&clockfw_lock);
195 .rate = &fixedrate, 160 list_for_each_entry(ck, &clocks, node) {
196 .lpsc = DAVINCI_LPSC_UART0, 161 if (ck->usecount > 0)
197 }, 162 continue;
198 { 163 if (!(ck->flags & CLK_PSC))
199 .name = "EMACCLK", 164 continue;
200 .rate = &commonrate, 165
201 .lpsc = DAVINCI_LPSC_EMAC_WRAPPER, 166 /* ignore if in Disabled or SwRstDisable states */
202 }, 167 if (!davinci_psc_is_clk_active(ck->lpsc))
203 { 168 continue;
204 .name = "I2CCLK", 169
205 .rate = &fixedrate, 170 pr_info("Clocks: disable unused %s\n", ck->name);
206 .lpsc = DAVINCI_LPSC_I2C, 171 davinci_psc_config(psc_domain(ck), ck->lpsc, 0);
207 },
208 {
209 .name = "IDECLK",
210 .rate = &commonrate,
211 .lpsc = DAVINCI_LPSC_ATA,
212 },
213 {
214 .name = "McBSPCLK",
215 .rate = &commonrate,
216 .lpsc = DAVINCI_LPSC_McBSP,
217 },
218 {
219 .name = "MMCSDCLK",
220 .rate = &commonrate,
221 .lpsc = DAVINCI_LPSC_MMC_SD,
222 },
223 {
224 .name = "SPICLK",
225 .rate = &commonrate,
226 .lpsc = DAVINCI_LPSC_SPI,
227 },
228 {
229 .name = "gpio",
230 .rate = &commonrate,
231 .lpsc = DAVINCI_LPSC_GPIO,
232 },
233 {
234 .name = "usb",
235 .rate = &commonrate,
236 .lpsc = DAVINCI_LPSC_USB,
237 },
238 {
239 .name = "AEMIFCLK",
240 .rate = &commonrate,
241 .lpsc = DAVINCI_LPSC_AEMIF,
242 .usecount = 1,
243 } 172 }
244}; 173 spin_unlock_irq(&clockfw_lock);
174
175 return 0;
176}
177late_initcall(clk_disable_unused);
178#endif
245 179
246int __init davinci_clk_init(void) 180static void clk_sysclk_recalc(struct clk *clk)
247{ 181{
248 struct clk *clkp; 182 u32 v, plldiv;
249 int count = 0; 183 struct pll_data *pll;
250 u32 pll_mult; 184
251 185 /* If this is the PLL base clock, no more calculations needed */
252 pll_mult = davinci_readl(DAVINCI_PLL_CNTRL0_BASE + PLLM); 186 if (clk->pll_data)
253 commonrate = ((pll_mult + 1) * 27000000) / 6; 187 return;
254 armrate = ((pll_mult + 1) * 27000000) / 2; 188
255 189 if (WARN_ON(!clk->parent))
256 for (clkp = davinci_clks; count < ARRAY_SIZE(davinci_clks); 190 return;
257 count++, clkp++) { 191
258 clk_register(clkp); 192 clk->rate = clk->parent->rate;
259 193
260 /* Turn on clocks that have been enabled in the 194 /* Otherwise, the parent must be a PLL */
261 * table above */ 195 if (WARN_ON(!clk->parent->pll_data))
262 if (clkp->usecount) 196 return;
263 clk_enable(clkp); 197
198 pll = clk->parent->pll_data;
199
200 /* If pre-PLL, source clock is before the multiplier and divider(s) */
201 if (clk->flags & PRE_PLL)
202 clk->rate = pll->input_rate;
203
204 if (!clk->div_reg)
205 return;
206
207 v = __raw_readl(pll->base + clk->div_reg);
208 if (v & PLLDIV_EN) {
209 plldiv = (v & PLLDIV_RATIO_MASK) + 1;
210 if (plldiv)
211 clk->rate /= plldiv;
212 }
213}
214
215static void __init clk_pll_init(struct clk *clk)
216{
217 u32 ctrl, mult = 1, prediv = 1, postdiv = 1;
218 u8 bypass;
219 struct pll_data *pll = clk->pll_data;
220
221 pll->base = IO_ADDRESS(pll->phys_base);
222 ctrl = __raw_readl(pll->base + PLLCTL);
223 clk->rate = pll->input_rate = clk->parent->rate;
224
225 if (ctrl & PLLCTL_PLLEN) {
226 bypass = 0;
227 mult = __raw_readl(pll->base + PLLM);
228 mult = (mult & PLLM_PLLM_MASK) + 1;
229 } else
230 bypass = 1;
231
232 if (pll->flags & PLL_HAS_PREDIV) {
233 prediv = __raw_readl(pll->base + PREDIV);
234 if (prediv & PLLDIV_EN)
235 prediv = (prediv & PLLDIV_RATIO_MASK) + 1;
236 else
237 prediv = 1;
238 }
239
240 /* pre-divider is fixed, but (some?) chips won't report that */
241 if (cpu_is_davinci_dm355() && pll->num == 1)
242 prediv = 8;
243
244 if (pll->flags & PLL_HAS_POSTDIV) {
245 postdiv = __raw_readl(pll->base + POSTDIV);
246 if (postdiv & PLLDIV_EN)
247 postdiv = (postdiv & PLLDIV_RATIO_MASK) + 1;
248 else
249 postdiv = 1;
250 }
251
252 if (!bypass) {
253 clk->rate /= prediv;
254 clk->rate *= mult;
255 clk->rate /= postdiv;
256 }
257
258 pr_debug("PLL%d: input = %lu MHz [ ",
259 pll->num, clk->parent->rate / 1000000);
260 if (bypass)
261 pr_debug("bypass ");
262 if (prediv > 1)
263 pr_debug("/ %d ", prediv);
264 if (mult > 1)
265 pr_debug("* %d ", mult);
266 if (postdiv > 1)
267 pr_debug("/ %d ", postdiv);
268 pr_debug("] --> %lu MHz output.\n", clk->rate / 1000000);
269}
270
271int __init davinci_clk_init(struct davinci_clk *clocks)
272 {
273 struct davinci_clk *c;
274 struct clk *clk;
275
276 for (c = clocks; c->lk.clk; c++) {
277 clk = c->lk.clk;
278
279 if (clk->pll_data)
280 clk_pll_init(clk);
281
282 /* Calculate rates for PLL-derived clocks */
283 else if (clk->flags & CLK_PLL)
284 clk_sysclk_recalc(clk);
285
286 if (clk->lpsc)
287 clk->flags |= CLK_PSC;
288
289 clkdev_add(&c->lk);
290 clk_register(clk);
291
292 /* Turn on clocks that Linux doesn't otherwise manage */
293 if (clk->flags & ALWAYS_ENABLED)
294 clk_enable(clk);
264 } 295 }
265 296
266 return 0; 297 return 0;
@@ -285,12 +316,52 @@ static void davinci_ck_stop(struct seq_file *m, void *v)
285{ 316{
286} 317}
287 318
288static int davinci_ck_show(struct seq_file *m, void *v) 319#define CLKNAME_MAX 10 /* longest clock name */
320#define NEST_DELTA 2
321#define NEST_MAX 4
322
323static void
324dump_clock(struct seq_file *s, unsigned nest, struct clk *parent)
289{ 325{
290 struct clk *cp; 326 char *state;
327 char buf[CLKNAME_MAX + NEST_DELTA * NEST_MAX];
328 struct clk *clk;
329 unsigned i;
330
331 if (parent->flags & CLK_PLL)
332 state = "pll";
333 else if (parent->flags & CLK_PSC)
334 state = "psc";
335 else
336 state = "";
337
338 /* <nest spaces> name <pad to end> */
339 memset(buf, ' ', sizeof(buf) - 1);
340 buf[sizeof(buf) - 1] = 0;
341 i = strlen(parent->name);
342 memcpy(buf + nest, parent->name,
343 min(i, (unsigned)(sizeof(buf) - 1 - nest)));
344
345 seq_printf(s, "%s users=%2d %-3s %9ld Hz\n",
346 buf, parent->usecount, state, clk_get_rate(parent));
347 /* REVISIT show device associations too */
348
349 /* cost is now small, but not linear... */
350 list_for_each_entry(clk, &clocks, node) {
351 if (clk->parent == parent)
352 dump_clock(s, nest + NEST_DELTA, clk);
353 }
354}
291 355
292 list_for_each_entry(cp, &clocks, node) 356static int davinci_ck_show(struct seq_file *m, void *v)
293 seq_printf(m,"%s %d %d\n", cp->name, *(cp->rate), cp->usecount); 357{
358 /* Show clock tree; we know the main oscillator is first.
359 * We trust nonzero usecounts equate to PSC enables...
360 */
361 mutex_lock(&clocks_mutex);
362 if (!list_empty(&clocks))
363 dump_clock(m, 0, list_first_entry(&clocks, struct clk, node));
364 mutex_unlock(&clocks_mutex);
294 365
295 return 0; 366 return 0;
296} 367}
@@ -321,4 +392,4 @@ static int __init davinci_ck_proc_init(void)
321 392
322} 393}
323__initcall(davinci_ck_proc_init); 394__initcall(davinci_ck_proc_init);
324#endif /* CONFIG_DEBUG_PROC_FS */ 395#endif /* CONFIG_DEBUG_PROC_FS */
diff --git a/arch/arm/mach-davinci/clock.h b/arch/arm/mach-davinci/clock.h
index ed47079a52e4..35736ec202f8 100644
--- a/arch/arm/mach-davinci/clock.h
+++ b/arch/arm/mach-davinci/clock.h
@@ -1,7 +1,8 @@
1/* 1/*
2 * TI DaVinci clock definitions 2 * TI DaVinci clock definitions
3 * 3 *
4 * Copyright (C) 2006 Texas Instruments. 4 * Copyright (C) 2006-2007 Texas Instruments.
5 * Copyright (C) 2008-2009 Deep Root Systems, LLC
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as 8 * it under the terms of the GNU General Public License version 2 as
@@ -11,23 +12,85 @@
11#ifndef __ARCH_ARM_DAVINCI_CLOCK_H 12#ifndef __ARCH_ARM_DAVINCI_CLOCK_H
12#define __ARCH_ARM_DAVINCI_CLOCK_H 13#define __ARCH_ARM_DAVINCI_CLOCK_H
13 14
15#include <linux/list.h>
16#include <asm/clkdev.h>
17
18#define DAVINCI_PLL1_BASE 0x01c40800
19#define DAVINCI_PLL2_BASE 0x01c40c00
20#define MAX_PLL 2
21
22/* PLL/Reset register offsets */
23#define PLLCTL 0x100
24#define PLLCTL_PLLEN BIT(0)
25#define PLLCTL_CLKMODE BIT(8)
26
27#define PLLM 0x110
28#define PLLM_PLLM_MASK 0xff
29
30#define PREDIV 0x114
31#define PLLDIV1 0x118
32#define PLLDIV2 0x11c
33#define PLLDIV3 0x120
34#define POSTDIV 0x128
35#define BPDIV 0x12c
36#define PLLCMD 0x138
37#define PLLSTAT 0x13c
38#define PLLALNCTL 0x140
39#define PLLDCHANGE 0x144
40#define PLLCKEN 0x148
41#define PLLCKSTAT 0x14c
42#define PLLSYSTAT 0x150
43#define PLLDIV4 0x160
44#define PLLDIV5 0x164
45#define PLLDIV6 0x168
46#define PLLDIV7 0x16c
47#define PLLDIV8 0x170
48#define PLLDIV9 0x174
49#define PLLDIV_EN BIT(15)
50#define PLLDIV_RATIO_MASK 0x1f
51
52struct pll_data {
53 u32 phys_base;
54 void __iomem *base;
55 u32 num;
56 u32 flags;
57 u32 input_rate;
58};
59#define PLL_HAS_PREDIV 0x01
60#define PLL_HAS_POSTDIV 0x02
61
14struct clk { 62struct clk {
15 struct list_head node; 63 struct list_head node;
16 struct module *owner; 64 struct module *owner;
17 const char *name; 65 const char *name;
18 unsigned int *rate; 66 unsigned long rate;
19 int id; 67 u8 usecount;
20 __s8 usecount; 68 u8 flags;
21 __u8 flags; 69 u8 lpsc;
22 __u8 lpsc; 70 struct clk *parent;
71 struct pll_data *pll_data;
72 u32 div_reg;
23}; 73};
24 74
25/* Clock flags */ 75/* Clock flags */
26#define RATE_CKCTL 1 76#define ALWAYS_ENABLED BIT(1)
27#define RATE_FIXED 2 77#define CLK_PSC BIT(2)
28#define RATE_PROPAGATES 4 78#define PSC_DSP BIT(3) /* PSC uses DSP domain, not ARM */
29#define VIRTUAL_CLOCK 8 79#define CLK_PLL BIT(4) /* PLL-derived clock */
30#define ALWAYS_ENABLED 16 80#define PRE_PLL BIT(5) /* source is before PLL mult/div */
31#define ENABLE_REG_32BIT 32 81
82struct davinci_clk {
83 struct clk_lookup lk;
84};
85
86#define CLK(dev, con, ck) \
87 { \
88 .lk = { \
89 .dev_id = dev, \
90 .con_id = con, \
91 .clk = ck, \
92 }, \
93 }
32 94
95int davinci_clk_init(struct davinci_clk *clocks);
33#endif 96#endif
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
index 808633f9f03c..a31370b93dd2 100644
--- a/arch/arm/mach-davinci/devices.c
+++ b/arch/arm/mach-davinci/devices.c
@@ -21,6 +21,10 @@
21#include <mach/hardware.h> 21#include <mach/hardware.h>
22#include <mach/i2c.h> 22#include <mach/i2c.h>
23#include <mach/irqs.h> 23#include <mach/irqs.h>
24#include <mach/cputype.h>
25#include <mach/mux.h>
26
27#define DAVINCI_I2C_BASE 0x01C21000
24 28
25static struct resource i2c_resources[] = { 29static struct resource i2c_resources[] = {
26 { 30 {
@@ -43,6 +47,9 @@ static struct platform_device davinci_i2c_device = {
43 47
44void __init davinci_init_i2c(struct davinci_i2c_platform_data *pdata) 48void __init davinci_init_i2c(struct davinci_i2c_platform_data *pdata)
45{ 49{
50 if (cpu_is_davinci_dm644x())
51 davinci_cfg_reg(DM644X_I2C);
52
46 davinci_i2c_device.dev.platform_data = pdata; 53 davinci_i2c_device.dev.platform_data = pdata;
47 (void) platform_device_register(&davinci_i2c_device); 54 (void) platform_device_register(&davinci_i2c_device);
48} 55}
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
new file mode 100644
index 000000000000..d428ef192eac
--- /dev/null
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -0,0 +1,461 @@
1/*
2 * TI DaVinci DM644x chip specific setup
3 *
4 * Author: Kevin Hilman, Deep Root Systems, LLC
5 *
6 * 2007 (c) Deep Root Systems, LLC. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/clk.h>
14#include <linux/platform_device.h>
15
16#include <mach/dm644x.h>
17#include <mach/clock.h>
18#include <mach/cputype.h>
19#include <mach/edma.h>
20#include <mach/irqs.h>
21#include <mach/psc.h>
22#include <mach/mux.h>
23
24#include "clock.h"
25#include "mux.h"
26
27/*
28 * Device specific clocks
29 */
30#define DM644X_REF_FREQ 27000000
31
32static struct pll_data pll1_data = {
33 .num = 1,
34 .phys_base = DAVINCI_PLL1_BASE,
35};
36
37static struct pll_data pll2_data = {
38 .num = 2,
39 .phys_base = DAVINCI_PLL2_BASE,
40};
41
42static struct clk ref_clk = {
43 .name = "ref_clk",
44 .rate = DM644X_REF_FREQ,
45};
46
47static struct clk pll1_clk = {
48 .name = "pll1",
49 .parent = &ref_clk,
50 .pll_data = &pll1_data,
51 .flags = CLK_PLL,
52};
53
54static struct clk pll1_sysclk1 = {
55 .name = "pll1_sysclk1",
56 .parent = &pll1_clk,
57 .flags = CLK_PLL,
58 .div_reg = PLLDIV1,
59};
60
61static struct clk pll1_sysclk2 = {
62 .name = "pll1_sysclk2",
63 .parent = &pll1_clk,
64 .flags = CLK_PLL,
65 .div_reg = PLLDIV2,
66};
67
68static struct clk pll1_sysclk3 = {
69 .name = "pll1_sysclk3",
70 .parent = &pll1_clk,
71 .flags = CLK_PLL,
72 .div_reg = PLLDIV3,
73};
74
75static struct clk pll1_sysclk5 = {
76 .name = "pll1_sysclk5",
77 .parent = &pll1_clk,
78 .flags = CLK_PLL,
79 .div_reg = PLLDIV5,
80};
81
82static struct clk pll1_aux_clk = {
83 .name = "pll1_aux_clk",
84 .parent = &pll1_clk,
85 .flags = CLK_PLL | PRE_PLL,
86};
87
88static struct clk pll1_sysclkbp = {
89 .name = "pll1_sysclkbp",
90 .parent = &pll1_clk,
91 .flags = CLK_PLL | PRE_PLL,
92 .div_reg = BPDIV
93};
94
95static struct clk pll2_clk = {
96 .name = "pll2",
97 .parent = &ref_clk,
98 .pll_data = &pll2_data,
99 .flags = CLK_PLL,
100};
101
102static struct clk pll2_sysclk1 = {
103 .name = "pll2_sysclk1",
104 .parent = &pll2_clk,
105 .flags = CLK_PLL,
106 .div_reg = PLLDIV1,
107};
108
109static struct clk pll2_sysclk2 = {
110 .name = "pll2_sysclk2",
111 .parent = &pll2_clk,
112 .flags = CLK_PLL,
113 .div_reg = PLLDIV2,
114};
115
116static struct clk pll2_sysclkbp = {
117 .name = "pll2_sysclkbp",
118 .parent = &pll2_clk,
119 .flags = CLK_PLL | PRE_PLL,
120 .div_reg = BPDIV
121};
122
123static struct clk dsp_clk = {
124 .name = "dsp",
125 .parent = &pll1_sysclk1,
126 .lpsc = DAVINCI_LPSC_GEM,
127 .flags = PSC_DSP,
128 .usecount = 1, /* REVISIT how to disable? */
129};
130
131static struct clk arm_clk = {
132 .name = "arm",
133 .parent = &pll1_sysclk2,
134 .lpsc = DAVINCI_LPSC_ARM,
135 .flags = ALWAYS_ENABLED,
136};
137
138static struct clk vicp_clk = {
139 .name = "vicp",
140 .parent = &pll1_sysclk2,
141 .lpsc = DAVINCI_LPSC_IMCOP,
142 .flags = PSC_DSP,
143 .usecount = 1, /* REVISIT how to disable? */
144};
145
146static struct clk vpss_master_clk = {
147 .name = "vpss_master",
148 .parent = &pll1_sysclk3,
149 .lpsc = DAVINCI_LPSC_VPSSMSTR,
150 .flags = CLK_PSC,
151};
152
153static struct clk vpss_slave_clk = {
154 .name = "vpss_slave",
155 .parent = &pll1_sysclk3,
156 .lpsc = DAVINCI_LPSC_VPSSSLV,
157};
158
159static struct clk uart0_clk = {
160 .name = "uart0",
161 .parent = &pll1_aux_clk,
162 .lpsc = DAVINCI_LPSC_UART0,
163};
164
165static struct clk uart1_clk = {
166 .name = "uart1",
167 .parent = &pll1_aux_clk,
168 .lpsc = DAVINCI_LPSC_UART1,
169};
170
171static struct clk uart2_clk = {
172 .name = "uart2",
173 .parent = &pll1_aux_clk,
174 .lpsc = DAVINCI_LPSC_UART2,
175};
176
177static struct clk emac_clk = {
178 .name = "emac",
179 .parent = &pll1_sysclk5,
180 .lpsc = DAVINCI_LPSC_EMAC_WRAPPER,
181};
182
183static struct clk i2c_clk = {
184 .name = "i2c",
185 .parent = &pll1_aux_clk,
186 .lpsc = DAVINCI_LPSC_I2C,
187};
188
189static struct clk ide_clk = {
190 .name = "ide",
191 .parent = &pll1_sysclk5,
192 .lpsc = DAVINCI_LPSC_ATA,
193};
194
195static struct clk asp_clk = {
196 .name = "asp0",
197 .parent = &pll1_sysclk5,
198 .lpsc = DAVINCI_LPSC_McBSP,
199};
200
201static struct clk mmcsd_clk = {
202 .name = "mmcsd",
203 .parent = &pll1_sysclk5,
204 .lpsc = DAVINCI_LPSC_MMC_SD,
205};
206
207static struct clk spi_clk = {
208 .name = "spi",
209 .parent = &pll1_sysclk5,
210 .lpsc = DAVINCI_LPSC_SPI,
211};
212
213static struct clk gpio_clk = {
214 .name = "gpio",
215 .parent = &pll1_sysclk5,
216 .lpsc = DAVINCI_LPSC_GPIO,
217};
218
219static struct clk usb_clk = {
220 .name = "usb",
221 .parent = &pll1_sysclk5,
222 .lpsc = DAVINCI_LPSC_USB,
223};
224
225static struct clk vlynq_clk = {
226 .name = "vlynq",
227 .parent = &pll1_sysclk5,
228 .lpsc = DAVINCI_LPSC_VLYNQ,
229};
230
231static struct clk aemif_clk = {
232 .name = "aemif",
233 .parent = &pll1_sysclk5,
234 .lpsc = DAVINCI_LPSC_AEMIF,
235};
236
237static struct clk pwm0_clk = {
238 .name = "pwm0",
239 .parent = &pll1_aux_clk,
240 .lpsc = DAVINCI_LPSC_PWM0,
241};
242
243static struct clk pwm1_clk = {
244 .name = "pwm1",
245 .parent = &pll1_aux_clk,
246 .lpsc = DAVINCI_LPSC_PWM1,
247};
248
249static struct clk pwm2_clk = {
250 .name = "pwm2",
251 .parent = &pll1_aux_clk,
252 .lpsc = DAVINCI_LPSC_PWM2,
253};
254
255static struct clk timer0_clk = {
256 .name = "timer0",
257 .parent = &pll1_aux_clk,
258 .lpsc = DAVINCI_LPSC_TIMER0,
259};
260
261static struct clk timer1_clk = {
262 .name = "timer1",
263 .parent = &pll1_aux_clk,
264 .lpsc = DAVINCI_LPSC_TIMER1,
265};
266
267static struct clk timer2_clk = {
268 .name = "timer2",
269 .parent = &pll1_aux_clk,
270 .lpsc = DAVINCI_LPSC_TIMER2,
271 .usecount = 1, /* REVISIT: why cant' this be disabled? */
272};
273
274struct davinci_clk dm644x_clks[] = {
275 CLK(NULL, "ref", &ref_clk),
276 CLK(NULL, "pll1", &pll1_clk),
277 CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
278 CLK(NULL, "pll1_sysclk2", &pll1_sysclk2),
279 CLK(NULL, "pll1_sysclk3", &pll1_sysclk3),
280 CLK(NULL, "pll1_sysclk5", &pll1_sysclk5),
281 CLK(NULL, "pll1_aux", &pll1_aux_clk),
282 CLK(NULL, "pll1_sysclkbp", &pll1_sysclkbp),
283 CLK(NULL, "pll2", &pll2_clk),
284 CLK(NULL, "pll2_sysclk1", &pll2_sysclk1),
285 CLK(NULL, "pll2_sysclk2", &pll2_sysclk2),
286 CLK(NULL, "pll2_sysclkbp", &pll2_sysclkbp),
287 CLK(NULL, "dsp", &dsp_clk),
288 CLK(NULL, "arm", &arm_clk),
289 CLK(NULL, "vicp", &vicp_clk),
290 CLK(NULL, "vpss_master", &vpss_master_clk),
291 CLK(NULL, "vpss_slave", &vpss_slave_clk),
292 CLK(NULL, "arm", &arm_clk),
293 CLK(NULL, "uart0", &uart0_clk),
294 CLK(NULL, "uart1", &uart1_clk),
295 CLK(NULL, "uart2", &uart2_clk),
296 CLK("davinci_emac.1", NULL, &emac_clk),
297 CLK("i2c_davinci.1", NULL, &i2c_clk),
298 CLK("palm_bk3710", NULL, &ide_clk),
299 CLK("soc-audio.0", NULL, &asp_clk),
300 CLK("davinci_mmc.0", NULL, &mmcsd_clk),
301 CLK(NULL, "spi", &spi_clk),
302 CLK(NULL, "gpio", &gpio_clk),
303 CLK(NULL, "usb", &usb_clk),
304 CLK(NULL, "vlynq", &vlynq_clk),
305 CLK(NULL, "aemif", &aemif_clk),
306 CLK(NULL, "pwm0", &pwm0_clk),
307 CLK(NULL, "pwm1", &pwm1_clk),
308 CLK(NULL, "pwm2", &pwm2_clk),
309 CLK(NULL, "timer0", &timer0_clk),
310 CLK(NULL, "timer1", &timer1_clk),
311 CLK("watchdog", NULL, &timer2_clk),
312 CLK(NULL, NULL, NULL),
313};
314
315#if defined(CONFIG_TI_DAVINCI_EMAC) || defined(CONFIG_TI_DAVINCI_EMAC_MODULE)
316
317static struct resource dm644x_emac_resources[] = {
318 {
319 .start = DM644X_EMAC_BASE,
320 .end = DM644X_EMAC_BASE + 0x47ff,
321 .flags = IORESOURCE_MEM,
322 },
323 {
324 .start = IRQ_EMACINT,
325 .end = IRQ_EMACINT,
326 .flags = IORESOURCE_IRQ,
327 },
328};
329
330static struct platform_device dm644x_emac_device = {
331 .name = "davinci_emac",
332 .id = 1,
333 .num_resources = ARRAY_SIZE(dm644x_emac_resources),
334 .resource = dm644x_emac_resources,
335};
336
337#endif
338
339/*
340 * Device specific mux setup
341 *
342 * soc description mux mode mode mux dbg
343 * reg offset mask mode
344 */
345static const struct mux_config dm644x_pins[] = {
346MUX_CFG(DM644X, HDIREN, 0, 16, 1, 1, true)
347MUX_CFG(DM644X, ATAEN, 0, 17, 1, 1, true)
348MUX_CFG(DM644X, ATAEN_DISABLE, 0, 17, 1, 0, true)
349
350MUX_CFG(DM644X, HPIEN_DISABLE, 0, 29, 1, 0, true)
351
352MUX_CFG(DM644X, AEAW, 0, 0, 31, 31, true)
353
354MUX_CFG(DM644X, MSTK, 1, 9, 1, 0, false)
355
356MUX_CFG(DM644X, I2C, 1, 7, 1, 1, false)
357
358MUX_CFG(DM644X, MCBSP, 1, 10, 1, 1, false)
359
360MUX_CFG(DM644X, UART1, 1, 1, 1, 1, true)
361MUX_CFG(DM644X, UART2, 1, 2, 1, 1, true)
362
363MUX_CFG(DM644X, PWM0, 1, 4, 1, 1, false)
364
365MUX_CFG(DM644X, PWM1, 1, 5, 1, 1, false)
366
367MUX_CFG(DM644X, PWM2, 1, 6, 1, 1, false)
368
369MUX_CFG(DM644X, VLYNQEN, 0, 15, 1, 1, false)
370MUX_CFG(DM644X, VLSCREN, 0, 14, 1, 1, false)
371MUX_CFG(DM644X, VLYNQWD, 0, 12, 3, 3, false)
372
373MUX_CFG(DM644X, EMACEN, 0, 31, 1, 1, true)
374
375MUX_CFG(DM644X, GPIO3V, 0, 31, 1, 0, true)
376
377MUX_CFG(DM644X, GPIO0, 0, 24, 1, 0, true)
378MUX_CFG(DM644X, GPIO3, 0, 25, 1, 0, false)
379MUX_CFG(DM644X, GPIO43_44, 1, 7, 1, 0, false)
380MUX_CFG(DM644X, GPIO46_47, 0, 22, 1, 0, true)
381
382MUX_CFG(DM644X, RGB666, 0, 22, 1, 1, true)
383
384MUX_CFG(DM644X, LOEEN, 0, 24, 1, 1, true)
385MUX_CFG(DM644X, LFLDEN, 0, 25, 1, 1, false)
386};
387
388
389/*----------------------------------------------------------------------*/
390
391static const s8 dma_chan_dm644x_no_event[] = {
392 0, 1, 12, 13, 14,
393 15, 25, 30, 31, 45,
394 46, 47, 55, 56, 57,
395 58, 59, 60, 61, 62,
396 63,
397 -1
398};
399
400static struct edma_soc_info dm644x_edma_info = {
401 .n_channel = 64,
402 .n_region = 4,
403 .n_slot = 128,
404 .n_tc = 2,
405 .noevent = dma_chan_dm644x_no_event,
406};
407
408static struct resource edma_resources[] = {
409 {
410 .name = "edma_cc",
411 .start = 0x01c00000,
412 .end = 0x01c00000 + SZ_64K - 1,
413 .flags = IORESOURCE_MEM,
414 },
415 {
416 .name = "edma_tc0",
417 .start = 0x01c10000,
418 .end = 0x01c10000 + SZ_1K - 1,
419 .flags = IORESOURCE_MEM,
420 },
421 {
422 .name = "edma_tc1",
423 .start = 0x01c10400,
424 .end = 0x01c10400 + SZ_1K - 1,
425 .flags = IORESOURCE_MEM,
426 },
427 {
428 .start = IRQ_CCINT0,
429 .flags = IORESOURCE_IRQ,
430 },
431 {
432 .start = IRQ_CCERRINT,
433 .flags = IORESOURCE_IRQ,
434 },
435 /* not using TC*_ERR */
436};
437
438static struct platform_device dm644x_edma_device = {
439 .name = "edma",
440 .id = -1,
441 .dev.platform_data = &dm644x_edma_info,
442 .num_resources = ARRAY_SIZE(edma_resources),
443 .resource = edma_resources,
444};
445
446/*----------------------------------------------------------------------*/
447void __init dm644x_init(void)
448{
449 davinci_clk_init(dm644x_clks);
450 davinci_mux_register(dm644x_pins, ARRAY_SIZE(dm644x_pins));
451}
452
453static int __init dm644x_init_devices(void)
454{
455 if (!cpu_is_davinci_dm644x())
456 return 0;
457
458 platform_device_register(&dm644x_edma_device);
459 return 0;
460}
461postcore_initcall(dm644x_init_devices);
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
new file mode 100644
index 000000000000..15e9eb158bb7
--- /dev/null
+++ b/arch/arm/mach-davinci/dma.c
@@ -0,0 +1,1135 @@
1/*
2 * EDMA3 support for DaVinci
3 *
4 * Copyright (C) 2006-2009 Texas Instruments.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (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 Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20#include <linux/kernel.h>
21#include <linux/sched.h>
22#include <linux/init.h>
23#include <linux/module.h>
24#include <linux/interrupt.h>
25#include <linux/platform_device.h>
26#include <linux/spinlock.h>
27#include <linux/compiler.h>
28#include <linux/io.h>
29
30#include <mach/cputype.h>
31#include <mach/memory.h>
32#include <mach/hardware.h>
33#include <mach/irqs.h>
34#include <mach/edma.h>
35#include <mach/mux.h>
36
37
38/* Offsets matching "struct edmacc_param" */
39#define PARM_OPT 0x00
40#define PARM_SRC 0x04
41#define PARM_A_B_CNT 0x08
42#define PARM_DST 0x0c
43#define PARM_SRC_DST_BIDX 0x10
44#define PARM_LINK_BCNTRLD 0x14
45#define PARM_SRC_DST_CIDX 0x18
46#define PARM_CCNT 0x1c
47
48#define PARM_SIZE 0x20
49
50/* Offsets for EDMA CC global channel registers and their shadows */
51#define SH_ER 0x00 /* 64 bits */
52#define SH_ECR 0x08 /* 64 bits */
53#define SH_ESR 0x10 /* 64 bits */
54#define SH_CER 0x18 /* 64 bits */
55#define SH_EER 0x20 /* 64 bits */
56#define SH_EECR 0x28 /* 64 bits */
57#define SH_EESR 0x30 /* 64 bits */
58#define SH_SER 0x38 /* 64 bits */
59#define SH_SECR 0x40 /* 64 bits */
60#define SH_IER 0x50 /* 64 bits */
61#define SH_IECR 0x58 /* 64 bits */
62#define SH_IESR 0x60 /* 64 bits */
63#define SH_IPR 0x68 /* 64 bits */
64#define SH_ICR 0x70 /* 64 bits */
65#define SH_IEVAL 0x78
66#define SH_QER 0x80
67#define SH_QEER 0x84
68#define SH_QEECR 0x88
69#define SH_QEESR 0x8c
70#define SH_QSER 0x90
71#define SH_QSECR 0x94
72#define SH_SIZE 0x200
73
74/* Offsets for EDMA CC global registers */
75#define EDMA_REV 0x0000
76#define EDMA_CCCFG 0x0004
77#define EDMA_QCHMAP 0x0200 /* 8 registers */
78#define EDMA_DMAQNUM 0x0240 /* 8 registers (4 on OMAP-L1xx) */
79#define EDMA_QDMAQNUM 0x0260
80#define EDMA_QUETCMAP 0x0280
81#define EDMA_QUEPRI 0x0284
82#define EDMA_EMR 0x0300 /* 64 bits */
83#define EDMA_EMCR 0x0308 /* 64 bits */
84#define EDMA_QEMR 0x0310
85#define EDMA_QEMCR 0x0314
86#define EDMA_CCERR 0x0318
87#define EDMA_CCERRCLR 0x031c
88#define EDMA_EEVAL 0x0320
89#define EDMA_DRAE 0x0340 /* 4 x 64 bits*/
90#define EDMA_QRAE 0x0380 /* 4 registers */
91#define EDMA_QUEEVTENTRY 0x0400 /* 2 x 16 registers */
92#define EDMA_QSTAT 0x0600 /* 2 registers */
93#define EDMA_QWMTHRA 0x0620
94#define EDMA_QWMTHRB 0x0624
95#define EDMA_CCSTAT 0x0640
96
97#define EDMA_M 0x1000 /* global channel registers */
98#define EDMA_ECR 0x1008
99#define EDMA_ECRH 0x100C
100#define EDMA_SHADOW0 0x2000 /* 4 regions shadowing global channels */
101#define EDMA_PARM 0x4000 /* 128 param entries */
102
103#define DAVINCI_DMA_3PCC_BASE 0x01C00000
104
105#define PARM_OFFSET(param_no) (EDMA_PARM + ((param_no) << 5))
106
107#define EDMA_MAX_DMACH 64
108#define EDMA_MAX_PARAMENTRY 512
109#define EDMA_MAX_EVQUE 2 /* FIXME too small */
110
111
112/*****************************************************************************/
113
114static void __iomem *edmacc_regs_base;
115
116static inline unsigned int edma_read(int offset)
117{
118 return (unsigned int)__raw_readl(edmacc_regs_base + offset);
119}
120
121static inline void edma_write(int offset, int val)
122{
123 __raw_writel(val, edmacc_regs_base + offset);
124}
125static inline void edma_modify(int offset, unsigned and, unsigned or)
126{
127 unsigned val = edma_read(offset);
128 val &= and;
129 val |= or;
130 edma_write(offset, val);
131}
132static inline void edma_and(int offset, unsigned and)
133{
134 unsigned val = edma_read(offset);
135 val &= and;
136 edma_write(offset, val);
137}
138static inline void edma_or(int offset, unsigned or)
139{
140 unsigned val = edma_read(offset);
141 val |= or;
142 edma_write(offset, val);
143}
144static inline unsigned int edma_read_array(int offset, int i)
145{
146 return edma_read(offset + (i << 2));
147}
148static inline void edma_write_array(int offset, int i, unsigned val)
149{
150 edma_write(offset + (i << 2), val);
151}
152static inline void edma_modify_array(int offset, int i,
153 unsigned and, unsigned or)
154{
155 edma_modify(offset + (i << 2), and, or);
156}
157static inline void edma_or_array(int offset, int i, unsigned or)
158{
159 edma_or(offset + (i << 2), or);
160}
161static inline void edma_or_array2(int offset, int i, int j, unsigned or)
162{
163 edma_or(offset + ((i*2 + j) << 2), or);
164}
165static inline void edma_write_array2(int offset, int i, int j, unsigned val)
166{
167 edma_write(offset + ((i*2 + j) << 2), val);
168}
169static inline unsigned int edma_shadow0_read(int offset)
170{
171 return edma_read(EDMA_SHADOW0 + offset);
172}
173static inline unsigned int edma_shadow0_read_array(int offset, int i)
174{
175 return edma_read(EDMA_SHADOW0 + offset + (i << 2));
176}
177static inline void edma_shadow0_write(int offset, unsigned val)
178{
179 edma_write(EDMA_SHADOW0 + offset, val);
180}
181static inline void edma_shadow0_write_array(int offset, int i, unsigned val)
182{
183 edma_write(EDMA_SHADOW0 + offset + (i << 2), val);
184}
185static inline unsigned int edma_parm_read(int offset, int param_no)
186{
187 return edma_read(EDMA_PARM + offset + (param_no << 5));
188}
189static inline void edma_parm_write(int offset, int param_no, unsigned val)
190{
191 edma_write(EDMA_PARM + offset + (param_no << 5), val);
192}
193static inline void edma_parm_modify(int offset, int param_no,
194 unsigned and, unsigned or)
195{
196 edma_modify(EDMA_PARM + offset + (param_no << 5), and, or);
197}
198static inline void edma_parm_and(int offset, int param_no, unsigned and)
199{
200 edma_and(EDMA_PARM + offset + (param_no << 5), and);
201}
202static inline void edma_parm_or(int offset, int param_no, unsigned or)
203{
204 edma_or(EDMA_PARM + offset + (param_no << 5), or);
205}
206
207/*****************************************************************************/
208
209/* actual number of DMA channels and slots on this silicon */
210static unsigned num_channels;
211static unsigned num_slots;
212
213static struct dma_interrupt_data {
214 void (*callback)(unsigned channel, unsigned short ch_status,
215 void *data);
216 void *data;
217} intr_data[EDMA_MAX_DMACH];
218
219/* The edma_inuse bit for each PaRAM slot is clear unless the
220 * channel is in use ... by ARM or DSP, for QDMA, or whatever.
221 */
222static DECLARE_BITMAP(edma_inuse, EDMA_MAX_PARAMENTRY);
223
224/* The edma_noevent bit for each channel is clear unless
225 * it doesn't trigger DMA events on this platform. It uses a
226 * bit of SOC-specific initialization code.
227 */
228static DECLARE_BITMAP(edma_noevent, EDMA_MAX_DMACH);
229
230/* dummy param set used to (re)initialize parameter RAM slots */
231static const struct edmacc_param dummy_paramset = {
232 .link_bcntrld = 0xffff,
233 .ccnt = 1,
234};
235
236static const int __initconst
237queue_tc_mapping[EDMA_MAX_EVQUE + 1][2] = {
238/* {event queue no, TC no} */
239 {0, 0},
240 {1, 1},
241 {-1, -1}
242};
243
244static const int __initconst
245queue_priority_mapping[EDMA_MAX_EVQUE + 1][2] = {
246 /* {event queue no, Priority} */
247 {0, 3},
248 {1, 7},
249 {-1, -1}
250};
251
252/*****************************************************************************/
253
254static void map_dmach_queue(unsigned ch_no, enum dma_event_q queue_no)
255{
256 int bit = (ch_no & 0x7) * 4;
257
258 /* default to low priority queue */
259 if (queue_no == EVENTQ_DEFAULT)
260 queue_no = EVENTQ_1;
261
262 queue_no &= 7;
263 edma_modify_array(EDMA_DMAQNUM, (ch_no >> 3),
264 ~(0x7 << bit), queue_no << bit);
265}
266
267static void __init map_queue_tc(int queue_no, int tc_no)
268{
269 int bit = queue_no * 4;
270 edma_modify(EDMA_QUETCMAP, ~(0x7 << bit), ((tc_no & 0x7) << bit));
271}
272
273static void __init assign_priority_to_queue(int queue_no, int priority)
274{
275 int bit = queue_no * 4;
276 edma_modify(EDMA_QUEPRI, ~(0x7 << bit), ((priority & 0x7) << bit));
277}
278
279static inline void
280setup_dma_interrupt(unsigned lch,
281 void (*callback)(unsigned channel, u16 ch_status, void *data),
282 void *data)
283{
284 if (!callback) {
285 edma_shadow0_write_array(SH_IECR, lch >> 5,
286 (1 << (lch & 0x1f)));
287 }
288
289 intr_data[lch].callback = callback;
290 intr_data[lch].data = data;
291
292 if (callback) {
293 edma_shadow0_write_array(SH_ICR, lch >> 5,
294 (1 << (lch & 0x1f)));
295 edma_shadow0_write_array(SH_IESR, lch >> 5,
296 (1 << (lch & 0x1f)));
297 }
298}
299
300/******************************************************************************
301 *
302 * DMA interrupt handler
303 *
304 *****************************************************************************/
305static irqreturn_t dma_irq_handler(int irq, void *data)
306{
307 int i;
308 unsigned int cnt = 0;
309
310 dev_dbg(data, "dma_irq_handler\n");
311
312 if ((edma_shadow0_read_array(SH_IPR, 0) == 0)
313 && (edma_shadow0_read_array(SH_IPR, 1) == 0))
314 return IRQ_NONE;
315
316 while (1) {
317 int j;
318 if (edma_shadow0_read_array(SH_IPR, 0))
319 j = 0;
320 else if (edma_shadow0_read_array(SH_IPR, 1))
321 j = 1;
322 else
323 break;
324 dev_dbg(data, "IPR%d %08x\n", j,
325 edma_shadow0_read_array(SH_IPR, j));
326 for (i = 0; i < 32; i++) {
327 int k = (j << 5) + i;
328 if (edma_shadow0_read_array(SH_IPR, j) & (1 << i)) {
329 /* Clear the corresponding IPR bits */
330 edma_shadow0_write_array(SH_ICR, j, (1 << i));
331 if (intr_data[k].callback) {
332 intr_data[k].callback(k, DMA_COMPLETE,
333 intr_data[k].data);
334 }
335 }
336 }
337 cnt++;
338 if (cnt > 10)
339 break;
340 }
341 edma_shadow0_write(SH_IEVAL, 1);
342 return IRQ_HANDLED;
343}
344
345/******************************************************************************
346 *
347 * DMA error interrupt handler
348 *
349 *****************************************************************************/
350static irqreturn_t dma_ccerr_handler(int irq, void *data)
351{
352 int i;
353 unsigned int cnt = 0;
354
355 dev_dbg(data, "dma_ccerr_handler\n");
356
357 if ((edma_read_array(EDMA_EMR, 0) == 0) &&
358 (edma_read_array(EDMA_EMR, 1) == 0) &&
359 (edma_read(EDMA_QEMR) == 0) && (edma_read(EDMA_CCERR) == 0))
360 return IRQ_NONE;
361
362 while (1) {
363 int j = -1;
364 if (edma_read_array(EDMA_EMR, 0))
365 j = 0;
366 else if (edma_read_array(EDMA_EMR, 1))
367 j = 1;
368 if (j >= 0) {
369 dev_dbg(data, "EMR%d %08x\n", j,
370 edma_read_array(EDMA_EMR, j));
371 for (i = 0; i < 32; i++) {
372 int k = (j << 5) + i;
373 if (edma_read_array(EDMA_EMR, j) & (1 << i)) {
374 /* Clear the corresponding EMR bits */
375 edma_write_array(EDMA_EMCR, j, 1 << i);
376 /* Clear any SER */
377 edma_shadow0_write_array(SH_SECR, j,
378 (1 << i));
379 if (intr_data[k].callback) {
380 intr_data[k].callback(k,
381 DMA_CC_ERROR,
382 intr_data
383 [k].data);
384 }
385 }
386 }
387 } else if (edma_read(EDMA_QEMR)) {
388 dev_dbg(data, "QEMR %02x\n",
389 edma_read(EDMA_QEMR));
390 for (i = 0; i < 8; i++) {
391 if (edma_read(EDMA_QEMR) & (1 << i)) {
392 /* Clear the corresponding IPR bits */
393 edma_write(EDMA_QEMCR, 1 << i);
394 edma_shadow0_write(SH_QSECR, (1 << i));
395
396 /* NOTE: not reported!! */
397 }
398 }
399 } else if (edma_read(EDMA_CCERR)) {
400 dev_dbg(data, "CCERR %08x\n",
401 edma_read(EDMA_CCERR));
402 /* FIXME: CCERR.BIT(16) ignored! much better
403 * to just write CCERRCLR with CCERR value...
404 */
405 for (i = 0; i < 8; i++) {
406 if (edma_read(EDMA_CCERR) & (1 << i)) {
407 /* Clear the corresponding IPR bits */
408 edma_write(EDMA_CCERRCLR, 1 << i);
409
410 /* NOTE: not reported!! */
411 }
412 }
413 }
414 if ((edma_read_array(EDMA_EMR, 0) == 0)
415 && (edma_read_array(EDMA_EMR, 1) == 0)
416 && (edma_read(EDMA_QEMR) == 0)
417 && (edma_read(EDMA_CCERR) == 0)) {
418 break;
419 }
420 cnt++;
421 if (cnt > 10)
422 break;
423 }
424 edma_write(EDMA_EEVAL, 1);
425 return IRQ_HANDLED;
426}
427
428/******************************************************************************
429 *
430 * Transfer controller error interrupt handlers
431 *
432 *****************************************************************************/
433
434#define tc_errs_handled false /* disabled as long as they're NOPs */
435
436static irqreturn_t dma_tc0err_handler(int irq, void *data)
437{
438 dev_dbg(data, "dma_tc0err_handler\n");
439 return IRQ_HANDLED;
440}
441
442static irqreturn_t dma_tc1err_handler(int irq, void *data)
443{
444 dev_dbg(data, "dma_tc1err_handler\n");
445 return IRQ_HANDLED;
446}
447
448/*-----------------------------------------------------------------------*/
449
450/* Resource alloc/free: dma channels, parameter RAM slots */
451
452/**
453 * edma_alloc_channel - allocate DMA channel and paired parameter RAM
454 * @channel: specific channel to allocate; negative for "any unmapped channel"
455 * @callback: optional; to be issued on DMA completion or errors
456 * @data: passed to callback
457 * @eventq_no: an EVENTQ_* constant, used to choose which Transfer
458 * Controller (TC) executes requests using this channel. Use
459 * EVENTQ_DEFAULT unless you really need a high priority queue.
460 *
461 * This allocates a DMA channel and its associated parameter RAM slot.
462 * The parameter RAM is initialized to hold a dummy transfer.
463 *
464 * Normal use is to pass a specific channel number as @channel, to make
465 * use of hardware events mapped to that channel. When the channel will
466 * be used only for software triggering or event chaining, channels not
467 * mapped to hardware events (or mapped to unused events) are preferable.
468 *
469 * DMA transfers start from a channel using edma_start(), or by
470 * chaining. When the transfer described in that channel's parameter RAM
471 * slot completes, that slot's data may be reloaded through a link.
472 *
473 * DMA errors are only reported to the @callback associated with the
474 * channel driving that transfer, but transfer completion callbacks can
475 * be sent to another channel under control of the TCC field in
476 * the option word of the transfer's parameter RAM set. Drivers must not
477 * use DMA transfer completion callbacks for channels they did not allocate.
478 * (The same applies to TCC codes used in transfer chaining.)
479 *
480 * Returns the number of the channel, else negative errno.
481 */
482int edma_alloc_channel(int channel,
483 void (*callback)(unsigned channel, u16 ch_status, void *data),
484 void *data,
485 enum dma_event_q eventq_no)
486{
487 if (channel < 0) {
488 channel = 0;
489 for (;;) {
490 channel = find_next_bit(edma_noevent,
491 num_channels, channel);
492 if (channel == num_channels)
493 return -ENOMEM;
494 if (!test_and_set_bit(channel, edma_inuse))
495 break;
496 channel++;
497 }
498 } else if (channel >= num_channels) {
499 return -EINVAL;
500 } else if (test_and_set_bit(channel, edma_inuse)) {
501 return -EBUSY;
502 }
503
504 /* ensure access through shadow region 0 */
505 edma_or_array2(EDMA_DRAE, 0, channel >> 5, 1 << (channel & 0x1f));
506
507 /* ensure no events are pending */
508 edma_stop(channel);
509 memcpy_toio(edmacc_regs_base + PARM_OFFSET(channel),
510 &dummy_paramset, PARM_SIZE);
511
512 if (callback)
513 setup_dma_interrupt(channel, callback, data);
514
515 map_dmach_queue(channel, eventq_no);
516
517 return channel;
518}
519EXPORT_SYMBOL(edma_alloc_channel);
520
521
522/**
523 * edma_free_channel - deallocate DMA channel
524 * @channel: dma channel returned from edma_alloc_channel()
525 *
526 * This deallocates the DMA channel and associated parameter RAM slot
527 * allocated by edma_alloc_channel().
528 *
529 * Callers are responsible for ensuring the channel is inactive, and
530 * will not be reactivated by linking, chaining, or software calls to
531 * edma_start().
532 */
533void edma_free_channel(unsigned channel)
534{
535 if (channel >= num_channels)
536 return;
537
538 setup_dma_interrupt(channel, NULL, NULL);
539 /* REVISIT should probably take out of shadow region 0 */
540
541 memcpy_toio(edmacc_regs_base + PARM_OFFSET(channel),
542 &dummy_paramset, PARM_SIZE);
543 clear_bit(channel, edma_inuse);
544}
545EXPORT_SYMBOL(edma_free_channel);
546
547/**
548 * edma_alloc_slot - allocate DMA parameter RAM
549 * @slot: specific slot to allocate; negative for "any unused slot"
550 *
551 * This allocates a parameter RAM slot, initializing it to hold a
552 * dummy transfer. Slots allocated using this routine have not been
553 * mapped to a hardware DMA channel, and will normally be used by
554 * linking to them from a slot associated with a DMA channel.
555 *
556 * Normal use is to pass EDMA_SLOT_ANY as the @slot, but specific
557 * slots may be allocated on behalf of DSP firmware.
558 *
559 * Returns the number of the slot, else negative errno.
560 */
561int edma_alloc_slot(int slot)
562{
563 if (slot < 0) {
564 slot = num_channels;
565 for (;;) {
566 slot = find_next_zero_bit(edma_inuse,
567 num_slots, slot);
568 if (slot == num_slots)
569 return -ENOMEM;
570 if (!test_and_set_bit(slot, edma_inuse))
571 break;
572 }
573 } else if (slot < num_channels || slot >= num_slots) {
574 return -EINVAL;
575 } else if (test_and_set_bit(slot, edma_inuse)) {
576 return -EBUSY;
577 }
578
579 memcpy_toio(edmacc_regs_base + PARM_OFFSET(slot),
580 &dummy_paramset, PARM_SIZE);
581
582 return slot;
583}
584EXPORT_SYMBOL(edma_alloc_slot);
585
586/**
587 * edma_free_slot - deallocate DMA parameter RAM
588 * @slot: parameter RAM slot returned from edma_alloc_slot()
589 *
590 * This deallocates the parameter RAM slot allocated by edma_alloc_slot().
591 * Callers are responsible for ensuring the slot is inactive, and will
592 * not be activated.
593 */
594void edma_free_slot(unsigned slot)
595{
596 if (slot < num_channels || slot >= num_slots)
597 return;
598
599 memcpy_toio(edmacc_regs_base + PARM_OFFSET(slot),
600 &dummy_paramset, PARM_SIZE);
601 clear_bit(slot, edma_inuse);
602}
603EXPORT_SYMBOL(edma_free_slot);
604
605/*-----------------------------------------------------------------------*/
606
607/* Parameter RAM operations (i) -- read/write partial slots */
608
609/**
610 * edma_set_src - set initial DMA source address in parameter RAM slot
611 * @slot: parameter RAM slot being configured
612 * @src_port: physical address of source (memory, controller FIFO, etc)
613 * @addressMode: INCR, except in very rare cases
614 * @fifoWidth: ignored unless @addressMode is FIFO, else specifies the
615 * width to use when addressing the fifo (e.g. W8BIT, W32BIT)
616 *
617 * Note that the source address is modified during the DMA transfer
618 * according to edma_set_src_index().
619 */
620void edma_set_src(unsigned slot, dma_addr_t src_port,
621 enum address_mode mode, enum fifo_width width)
622{
623 if (slot < num_slots) {
624 unsigned int i = edma_parm_read(PARM_OPT, slot);
625
626 if (mode) {
627 /* set SAM and program FWID */
628 i = (i & ~(EDMA_FWID)) | (SAM | ((width & 0x7) << 8));
629 } else {
630 /* clear SAM */
631 i &= ~SAM;
632 }
633 edma_parm_write(PARM_OPT, slot, i);
634
635 /* set the source port address
636 in source register of param structure */
637 edma_parm_write(PARM_SRC, slot, src_port);
638 }
639}
640EXPORT_SYMBOL(edma_set_src);
641
642/**
643 * edma_set_dest - set initial DMA destination address in parameter RAM slot
644 * @slot: parameter RAM slot being configured
645 * @dest_port: physical address of destination (memory, controller FIFO, etc)
646 * @addressMode: INCR, except in very rare cases
647 * @fifoWidth: ignored unless @addressMode is FIFO, else specifies the
648 * width to use when addressing the fifo (e.g. W8BIT, W32BIT)
649 *
650 * Note that the destination address is modified during the DMA transfer
651 * according to edma_set_dest_index().
652 */
653void edma_set_dest(unsigned slot, dma_addr_t dest_port,
654 enum address_mode mode, enum fifo_width width)
655{
656 if (slot < num_slots) {
657 unsigned int i = edma_parm_read(PARM_OPT, slot);
658
659 if (mode) {
660 /* set DAM and program FWID */
661 i = (i & ~(EDMA_FWID)) | (DAM | ((width & 0x7) << 8));
662 } else {
663 /* clear DAM */
664 i &= ~DAM;
665 }
666 edma_parm_write(PARM_OPT, slot, i);
667 /* set the destination port address
668 in dest register of param structure */
669 edma_parm_write(PARM_DST, slot, dest_port);
670 }
671}
672EXPORT_SYMBOL(edma_set_dest);
673
674/**
675 * edma_get_position - returns the current transfer points
676 * @slot: parameter RAM slot being examined
677 * @src: pointer to source port position
678 * @dst: pointer to destination port position
679 *
680 * Returns current source and destination addresses for a particular
681 * parameter RAM slot. Its channel should not be active when this is called.
682 */
683void edma_get_position(unsigned slot, dma_addr_t *src, dma_addr_t *dst)
684{
685 struct edmacc_param temp;
686
687 edma_read_slot(slot, &temp);
688 if (src != NULL)
689 *src = temp.src;
690 if (dst != NULL)
691 *dst = temp.dst;
692}
693EXPORT_SYMBOL(edma_get_position);
694
695/**
696 * edma_set_src_index - configure DMA source address indexing
697 * @slot: parameter RAM slot being configured
698 * @src_bidx: byte offset between source arrays in a frame
699 * @src_cidx: byte offset between source frames in a block
700 *
701 * Offsets are specified to support either contiguous or discontiguous
702 * memory transfers, or repeated access to a hardware register, as needed.
703 * When accessing hardware registers, both offsets are normally zero.
704 */
705void edma_set_src_index(unsigned slot, s16 src_bidx, s16 src_cidx)
706{
707 if (slot < num_slots) {
708 edma_parm_modify(PARM_SRC_DST_BIDX, slot,
709 0xffff0000, src_bidx);
710 edma_parm_modify(PARM_SRC_DST_CIDX, slot,
711 0xffff0000, src_cidx);
712 }
713}
714EXPORT_SYMBOL(edma_set_src_index);
715
716/**
717 * edma_set_dest_index - configure DMA destination address indexing
718 * @slot: parameter RAM slot being configured
719 * @dest_bidx: byte offset between destination arrays in a frame
720 * @dest_cidx: byte offset between destination frames in a block
721 *
722 * Offsets are specified to support either contiguous or discontiguous
723 * memory transfers, or repeated access to a hardware register, as needed.
724 * When accessing hardware registers, both offsets are normally zero.
725 */
726void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx)
727{
728 if (slot < num_slots) {
729 edma_parm_modify(PARM_SRC_DST_BIDX, slot,
730 0x0000ffff, dest_bidx << 16);
731 edma_parm_modify(PARM_SRC_DST_CIDX, slot,
732 0x0000ffff, dest_cidx << 16);
733 }
734}
735EXPORT_SYMBOL(edma_set_dest_index);
736
737/**
738 * edma_set_transfer_params - configure DMA transfer parameters
739 * @slot: parameter RAM slot being configured
740 * @acnt: how many bytes per array (at least one)
741 * @bcnt: how many arrays per frame (at least one)
742 * @ccnt: how many frames per block (at least one)
743 * @bcnt_rld: used only for A-Synchronized transfers; this specifies
744 * the value to reload into bcnt when it decrements to zero
745 * @sync_mode: ASYNC or ABSYNC
746 *
747 * See the EDMA3 documentation to understand how to configure and link
748 * transfers using the fields in PaRAM slots. If you are not doing it
749 * all at once with edma_write_slot(), you will use this routine
750 * plus two calls each for source and destination, setting the initial
751 * address and saying how to index that address.
752 *
753 * An example of an A-Synchronized transfer is a serial link using a
754 * single word shift register. In that case, @acnt would be equal to
755 * that word size; the serial controller issues a DMA synchronization
756 * event to transfer each word, and memory access by the DMA transfer
757 * controller will be word-at-a-time.
758 *
759 * An example of an AB-Synchronized transfer is a device using a FIFO.
760 * In that case, @acnt equals the FIFO width and @bcnt equals its depth.
761 * The controller with the FIFO issues DMA synchronization events when
762 * the FIFO threshold is reached, and the DMA transfer controller will
763 * transfer one frame to (or from) the FIFO. It will probably use
764 * efficient burst modes to access memory.
765 */
766void edma_set_transfer_params(unsigned slot,
767 u16 acnt, u16 bcnt, u16 ccnt,
768 u16 bcnt_rld, enum sync_dimension sync_mode)
769{
770 if (slot < num_slots) {
771 edma_parm_modify(PARM_LINK_BCNTRLD, slot,
772 0x0000ffff, bcnt_rld << 16);
773 if (sync_mode == ASYNC)
774 edma_parm_and(PARM_OPT, slot, ~SYNCDIM);
775 else
776 edma_parm_or(PARM_OPT, slot, SYNCDIM);
777 /* Set the acount, bcount, ccount registers */
778 edma_parm_write(PARM_A_B_CNT, slot, (bcnt << 16) | acnt);
779 edma_parm_write(PARM_CCNT, slot, ccnt);
780 }
781}
782EXPORT_SYMBOL(edma_set_transfer_params);
783
784/**
785 * edma_link - link one parameter RAM slot to another
786 * @from: parameter RAM slot originating the link
787 * @to: parameter RAM slot which is the link target
788 *
789 * The originating slot should not be part of any active DMA transfer.
790 */
791void edma_link(unsigned from, unsigned to)
792{
793 if (from >= num_slots)
794 return;
795 if (to >= num_slots)
796 return;
797 edma_parm_modify(PARM_LINK_BCNTRLD, from, 0xffff0000, PARM_OFFSET(to));
798}
799EXPORT_SYMBOL(edma_link);
800
801/**
802 * edma_unlink - cut link from one parameter RAM slot
803 * @from: parameter RAM slot originating the link
804 *
805 * The originating slot should not be part of any active DMA transfer.
806 * Its link is set to 0xffff.
807 */
808void edma_unlink(unsigned from)
809{
810 if (from >= num_slots)
811 return;
812 edma_parm_or(PARM_LINK_BCNTRLD, from, 0xffff);
813}
814EXPORT_SYMBOL(edma_unlink);
815
816/*-----------------------------------------------------------------------*/
817
818/* Parameter RAM operations (ii) -- read/write whole parameter sets */
819
820/**
821 * edma_write_slot - write parameter RAM data for slot
822 * @slot: number of parameter RAM slot being modified
823 * @param: data to be written into parameter RAM slot
824 *
825 * Use this to assign all parameters of a transfer at once. This
826 * allows more efficient setup of transfers than issuing multiple
827 * calls to set up those parameters in small pieces, and provides
828 * complete control over all transfer options.
829 */
830void edma_write_slot(unsigned slot, const struct edmacc_param *param)
831{
832 if (slot >= num_slots)
833 return;
834 memcpy_toio(edmacc_regs_base + PARM_OFFSET(slot), param, PARM_SIZE);
835}
836EXPORT_SYMBOL(edma_write_slot);
837
838/**
839 * edma_read_slot - read parameter RAM data from slot
840 * @slot: number of parameter RAM slot being copied
841 * @param: where to store copy of parameter RAM data
842 *
843 * Use this to read data from a parameter RAM slot, perhaps to
844 * save them as a template for later reuse.
845 */
846void edma_read_slot(unsigned slot, struct edmacc_param *param)
847{
848 if (slot >= num_slots)
849 return;
850 memcpy_fromio(param, edmacc_regs_base + PARM_OFFSET(slot), PARM_SIZE);
851}
852EXPORT_SYMBOL(edma_read_slot);
853
854/*-----------------------------------------------------------------------*/
855
856/* Various EDMA channel control operations */
857
858/**
859 * edma_pause - pause dma on a channel
860 * @channel: on which edma_start() has been called
861 *
862 * This temporarily disables EDMA hardware events on the specified channel,
863 * preventing them from triggering new transfers on its behalf
864 */
865void edma_pause(unsigned channel)
866{
867 if (channel < num_channels) {
868 unsigned int mask = (1 << (channel & 0x1f));
869
870 edma_shadow0_write_array(SH_EECR, channel >> 5, mask);
871 }
872}
873EXPORT_SYMBOL(edma_pause);
874
875/**
876 * edma_resume - resumes dma on a paused channel
877 * @channel: on which edma_pause() has been called
878 *
879 * This re-enables EDMA hardware events on the specified channel.
880 */
881void edma_resume(unsigned channel)
882{
883 if (channel < num_channels) {
884 unsigned int mask = (1 << (channel & 0x1f));
885
886 edma_shadow0_write_array(SH_EESR, channel >> 5, mask);
887 }
888}
889EXPORT_SYMBOL(edma_resume);
890
891/**
892 * edma_start - start dma on a channel
893 * @channel: channel being activated
894 *
895 * Channels with event associations will be triggered by their hardware
896 * events, and channels without such associations will be triggered by
897 * software. (At this writing there is no interface for using software
898 * triggers except with channels that don't support hardware triggers.)
899 *
900 * Returns zero on success, else negative errno.
901 */
902int edma_start(unsigned channel)
903{
904 if (channel < num_channels) {
905 int j = channel >> 5;
906 unsigned int mask = (1 << (channel & 0x1f));
907
908 /* EDMA channels without event association */
909 if (test_bit(channel, edma_noevent)) {
910 pr_debug("EDMA: ESR%d %08x\n", j,
911 edma_shadow0_read_array(SH_ESR, j));
912 edma_shadow0_write_array(SH_ESR, j, mask);
913 return 0;
914 }
915
916 /* EDMA channel with event association */
917 pr_debug("EDMA: ER%d %08x\n", j,
918 edma_shadow0_read_array(SH_ER, j));
919 /* Clear any pending error */
920 edma_write_array(EDMA_EMCR, j, mask);
921 /* Clear any SER */
922 edma_shadow0_write_array(SH_SECR, j, mask);
923 edma_shadow0_write_array(SH_EESR, j, mask);
924 pr_debug("EDMA: EER%d %08x\n", j,
925 edma_shadow0_read_array(SH_EER, j));
926 return 0;
927 }
928
929 return -EINVAL;
930}
931EXPORT_SYMBOL(edma_start);
932
933/**
934 * edma_stop - stops dma on the channel passed
935 * @channel: channel being deactivated
936 *
937 * When @lch is a channel, any active transfer is paused and
938 * all pending hardware events are cleared. The current transfer
939 * may not be resumed, and the channel's Parameter RAM should be
940 * reinitialized before being reused.
941 */
942void edma_stop(unsigned channel)
943{
944 if (channel < num_channels) {
945 int j = channel >> 5;
946 unsigned int mask = (1 << (channel & 0x1f));
947
948 edma_shadow0_write_array(SH_EECR, j, mask);
949 edma_shadow0_write_array(SH_ECR, j, mask);
950 edma_shadow0_write_array(SH_SECR, j, mask);
951 edma_write_array(EDMA_EMCR, j, mask);
952
953 pr_debug("EDMA: EER%d %08x\n", j,
954 edma_shadow0_read_array(SH_EER, j));
955
956 /* REVISIT: consider guarding against inappropriate event
957 * chaining by overwriting with dummy_paramset.
958 */
959 }
960}
961EXPORT_SYMBOL(edma_stop);
962
963/******************************************************************************
964 *
965 * It cleans ParamEntry qand bring back EDMA to initial state if media has
966 * been removed before EDMA has finished.It is usedful for removable media.
967 * Arguments:
968 * ch_no - channel no
969 *
970 * Return: zero on success, or corresponding error no on failure
971 *
972 * FIXME this should not be needed ... edma_stop() should suffice.
973 *
974 *****************************************************************************/
975
976void edma_clean_channel(unsigned channel)
977{
978 if (channel < num_channels) {
979 int j = (channel >> 5);
980 unsigned int mask = 1 << (channel & 0x1f);
981
982 pr_debug("EDMA: EMR%d %08x\n", j,
983 edma_read_array(EDMA_EMR, j));
984 edma_shadow0_write_array(SH_ECR, j, mask);
985 /* Clear the corresponding EMR bits */
986 edma_write_array(EDMA_EMCR, j, mask);
987 /* Clear any SER */
988 edma_shadow0_write_array(SH_SECR, j, mask);
989 edma_write(EDMA_CCERRCLR, (1 << 16) | 0x3);
990 }
991}
992EXPORT_SYMBOL(edma_clean_channel);
993
994/*
995 * edma_clear_event - clear an outstanding event on the DMA channel
996 * Arguments:
997 * channel - channel number
998 */
999void edma_clear_event(unsigned channel)
1000{
1001 if (channel >= num_channels)
1002 return;
1003 if (channel < 32)
1004 edma_write(EDMA_ECR, 1 << channel);
1005 else
1006 edma_write(EDMA_ECRH, 1 << (channel - 32));
1007}
1008EXPORT_SYMBOL(edma_clear_event);
1009
1010/*-----------------------------------------------------------------------*/
1011
1012static int __init edma_probe(struct platform_device *pdev)
1013{
1014 struct edma_soc_info *info = pdev->dev.platform_data;
1015 int i;
1016 int status;
1017 const s8 *noevent;
1018 int irq = 0, err_irq = 0;
1019 struct resource *r;
1020 resource_size_t len;
1021
1022 if (!info)
1023 return -ENODEV;
1024
1025 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "edma_cc");
1026 if (!r)
1027 return -ENODEV;
1028
1029 len = r->end - r->start + 1;
1030
1031 r = request_mem_region(r->start, len, r->name);
1032 if (!r)
1033 return -EBUSY;
1034
1035 edmacc_regs_base = ioremap(r->start, len);
1036 if (!edmacc_regs_base) {
1037 status = -EBUSY;
1038 goto fail1;
1039 }
1040
1041 num_channels = min_t(unsigned, info->n_channel, EDMA_MAX_DMACH);
1042 num_slots = min_t(unsigned, info->n_slot, EDMA_MAX_PARAMENTRY);
1043
1044 dev_dbg(&pdev->dev, "DMA REG BASE ADDR=%p\n", edmacc_regs_base);
1045
1046 for (i = 0; i < num_slots; i++)
1047 memcpy_toio(edmacc_regs_base + PARM_OFFSET(i),
1048 &dummy_paramset, PARM_SIZE);
1049
1050 noevent = info->noevent;
1051 if (noevent) {
1052 while (*noevent != -1)
1053 set_bit(*noevent++, edma_noevent);
1054 }
1055
1056 irq = platform_get_irq(pdev, 0);
1057 status = request_irq(irq, dma_irq_handler, 0, "edma", &pdev->dev);
1058 if (status < 0) {
1059 dev_dbg(&pdev->dev, "request_irq %d failed --> %d\n",
1060 irq, status);
1061 goto fail;
1062 }
1063
1064 err_irq = platform_get_irq(pdev, 1);
1065 status = request_irq(err_irq, dma_ccerr_handler, 0,
1066 "edma_error", &pdev->dev);
1067 if (status < 0) {
1068 dev_dbg(&pdev->dev, "request_irq %d failed --> %d\n",
1069 err_irq, status);
1070 goto fail;
1071 }
1072
1073 if (tc_errs_handled) {
1074 status = request_irq(IRQ_TCERRINT0, dma_tc0err_handler, 0,
1075 "edma_tc0", &pdev->dev);
1076 if (status < 0) {
1077 dev_dbg(&pdev->dev, "request_irq %d failed --> %d\n",
1078 IRQ_TCERRINT0, status);
1079 return status;
1080 }
1081 status = request_irq(IRQ_TCERRINT, dma_tc1err_handler, 0,
1082 "edma_tc1", &pdev->dev);
1083 if (status < 0) {
1084 dev_dbg(&pdev->dev, "request_irq %d --> %d\n",
1085 IRQ_TCERRINT, status);
1086 return status;
1087 }
1088 }
1089
1090 /* Everything lives on transfer controller 1 until otherwise specified.
1091 * This way, long transfers on the low priority queue
1092 * started by the codec engine will not cause audio defects.
1093 */
1094 for (i = 0; i < num_channels; i++)
1095 map_dmach_queue(i, EVENTQ_1);
1096
1097 /* Event queue to TC mapping */
1098 for (i = 0; queue_tc_mapping[i][0] != -1; i++)
1099 map_queue_tc(queue_tc_mapping[i][0], queue_tc_mapping[i][1]);
1100
1101 /* Event queue priority mapping */
1102 for (i = 0; queue_priority_mapping[i][0] != -1; i++)
1103 assign_priority_to_queue(queue_priority_mapping[i][0],
1104 queue_priority_mapping[i][1]);
1105
1106 for (i = 0; i < info->n_region; i++) {
1107 edma_write_array2(EDMA_DRAE, i, 0, 0x0);
1108 edma_write_array2(EDMA_DRAE, i, 1, 0x0);
1109 edma_write_array(EDMA_QRAE, i, 0x0);
1110 }
1111
1112 return 0;
1113
1114fail:
1115 if (err_irq)
1116 free_irq(err_irq, NULL);
1117 if (irq)
1118 free_irq(irq, NULL);
1119 iounmap(edmacc_regs_base);
1120fail1:
1121 release_mem_region(r->start, len);
1122 return status;
1123}
1124
1125
1126static struct platform_driver edma_driver = {
1127 .driver.name = "edma",
1128};
1129
1130static int __init edma_init(void)
1131{
1132 return platform_driver_probe(&edma_driver, edma_probe);
1133}
1134arch_initcall(edma_init);
1135
diff --git a/arch/arm/mach-davinci/gpio.c b/arch/arm/mach-davinci/gpio.c
index b49e9d092aab..1aba41c6351e 100644
--- a/arch/arm/mach-davinci/gpio.c
+++ b/arch/arm/mach-davinci/gpio.c
@@ -20,6 +20,7 @@
20#include <linux/irq.h> 20#include <linux/irq.h>
21#include <linux/bitops.h> 21#include <linux/bitops.h>
22 22
23#include <mach/cputype.h>
23#include <mach/irqs.h> 24#include <mach/irqs.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <mach/gpio.h> 26#include <mach/gpio.h>
@@ -36,9 +37,10 @@ struct davinci_gpio {
36 37
37static struct davinci_gpio chips[DIV_ROUND_UP(DAVINCI_N_GPIO, 32)]; 38static struct davinci_gpio chips[DIV_ROUND_UP(DAVINCI_N_GPIO, 32)];
38 39
40static unsigned __initdata ngpio;
39 41
40/* create a non-inlined version */ 42/* create a non-inlined version */
41static struct gpio_controller *__iomem __init gpio2controller(unsigned gpio) 43static struct gpio_controller __iomem * __init gpio2controller(unsigned gpio)
42{ 44{
43 return __gpio_to_controller(gpio); 45 return __gpio_to_controller(gpio);
44} 46}
@@ -114,9 +116,30 @@ static int __init davinci_gpio_setup(void)
114{ 116{
115 int i, base; 117 int i, base;
116 118
117 for (i = 0, base = 0; 119 /* The gpio banks conceptually expose a segmented bitmap,
118 i < ARRAY_SIZE(chips); 120 * and "ngpio" is one more than the largest zero-based
119 i++, base += 32) { 121 * bit index that's valid.
122 */
123 if (cpu_is_davinci_dm355()) { /* or dm335() */
124 ngpio = 104;
125 } else if (cpu_is_davinci_dm644x()) { /* or dm337() */
126 ngpio = 71;
127 } else if (cpu_is_davinci_dm646x()) {
128 /* NOTE: each bank has several "reserved" bits,
129 * unusable as GPIOs. Only 33 of the GPIO numbers
130 * are usable, and we're not rejecting the others.
131 */
132 ngpio = 43;
133 } else {
134 /* if cpu_is_davinci_dm643x() ngpio = 111 */
135 pr_err("GPIO setup: how many GPIOs?\n");
136 return -EINVAL;
137 }
138
139 if (WARN_ON(DAVINCI_N_GPIO < ngpio))
140 ngpio = DAVINCI_N_GPIO;
141
142 for (i = 0, base = 0; base < ngpio; i++, base += 32) {
120 chips[i].chip.label = "DaVinci"; 143 chips[i].chip.label = "DaVinci";
121 144
122 chips[i].chip.direction_input = davinci_direction_in; 145 chips[i].chip.direction_input = davinci_direction_in;
@@ -125,7 +148,7 @@ static int __init davinci_gpio_setup(void)
125 chips[i].chip.set = davinci_gpio_set; 148 chips[i].chip.set = davinci_gpio_set;
126 149
127 chips[i].chip.base = base; 150 chips[i].chip.base = base;
128 chips[i].chip.ngpio = DAVINCI_N_GPIO - base; 151 chips[i].chip.ngpio = ngpio - base;
129 if (chips[i].chip.ngpio > 32) 152 if (chips[i].chip.ngpio > 32)
130 chips[i].chip.ngpio = 32; 153 chips[i].chip.ngpio = 32;
131 154
@@ -143,11 +166,11 @@ pure_initcall(davinci_gpio_setup);
143 * We expect irqs will normally be set up as input pins, but they can also be 166 * We expect irqs will normally be set up as input pins, but they can also be
144 * used as output pins ... which is convenient for testing. 167 * used as output pins ... which is convenient for testing.
145 * 168 *
146 * NOTE: GPIO0..GPIO7 also have direct INTC hookups, which work in addition 169 * NOTE: The first few GPIOs also have direct INTC hookups in addition
147 * to their GPIOBNK0 irq (but with a bit less overhead). But we don't have 170 * to their GPIOBNK0 irq, with a bit less overhead but less flexibility
148 * a good way to hook those up ... 171 * on triggering (e.g. no edge options). We don't try to use those.
149 * 172 *
150 * All those INTC hookups (GPIO0..GPIO7 plus five IRQ banks) can also 173 * All those INTC hookups (direct, plus several IRQ banks) can also
151 * serve as EDMA event triggers. 174 * serve as EDMA event triggers.
152 */ 175 */
153 176
@@ -235,29 +258,42 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
235} 258}
236 259
237/* 260/*
238 * NOTE: for suspend/resume, probably best to make a sysdev (and class) 261 * NOTE: for suspend/resume, probably best to make a platform_device with
239 * with its suspend/resume calls hooking into the results of the set_wake() 262 * suspend_late/resume_resume calls hooking into results of the set_wake()
240 * calls ... so if no gpios are wakeup events the clock can be disabled, 263 * calls ... so if no gpios are wakeup events the clock can be disabled,
241 * with outputs left at previously set levels, and so that VDD3P3V.IOPWDN0 264 * with outputs left at previously set levels, and so that VDD3P3V.IOPWDN0
242 * can be set appropriately for GPIOV33 pins. 265 * (dm6446) can be set appropriately for GPIOV33 pins.
243 */ 266 */
244 267
245static int __init davinci_gpio_irq_setup(void) 268static int __init davinci_gpio_irq_setup(void)
246{ 269{
247 unsigned gpio, irq, bank; 270 unsigned gpio, irq, bank;
271 unsigned bank_irq;
248 struct clk *clk; 272 struct clk *clk;
273 u32 binten = 0;
274
275 if (cpu_is_davinci_dm355()) { /* or dm335() */
276 bank_irq = IRQ_DM355_GPIOBNK0;
277 } else if (cpu_is_davinci_dm644x()) {
278 bank_irq = IRQ_GPIOBNK0;
279 } else if (cpu_is_davinci_dm646x()) {
280 bank_irq = IRQ_DM646X_GPIOBNK0;
281 } else {
282 printk(KERN_ERR "Don't know first GPIO bank IRQ.\n");
283 return -EINVAL;
284 }
249 285
250 clk = clk_get(NULL, "gpio"); 286 clk = clk_get(NULL, "gpio");
251 if (IS_ERR(clk)) { 287 if (IS_ERR(clk)) {
252 printk(KERN_ERR "Error %ld getting gpio clock?\n", 288 printk(KERN_ERR "Error %ld getting gpio clock?\n",
253 PTR_ERR(clk)); 289 PTR_ERR(clk));
254 return 0; 290 return PTR_ERR(clk);
255 } 291 }
256
257 clk_enable(clk); 292 clk_enable(clk);
258 293
259 for (gpio = 0, irq = gpio_to_irq(0), bank = IRQ_GPIOBNK0; 294 for (gpio = 0, irq = gpio_to_irq(0), bank = 0;
260 gpio < DAVINCI_N_GPIO; bank++) { 295 gpio < ngpio;
296 bank++, bank_irq++) {
261 struct gpio_controller *__iomem g = gpio2controller(gpio); 297 struct gpio_controller *__iomem g = gpio2controller(gpio);
262 unsigned i; 298 unsigned i;
263 299
@@ -265,28 +301,28 @@ static int __init davinci_gpio_irq_setup(void)
265 __raw_writel(~0, &g->clr_rising); 301 __raw_writel(~0, &g->clr_rising);
266 302
267 /* set up all irqs in this bank */ 303 /* set up all irqs in this bank */
268 set_irq_chained_handler(bank, gpio_irq_handler); 304 set_irq_chained_handler(bank_irq, gpio_irq_handler);
269 set_irq_chip_data(bank, g); 305 set_irq_chip_data(bank_irq, g);
270 set_irq_data(bank, (void *)irq); 306 set_irq_data(bank_irq, (void *)irq);
271 307
272 for (i = 0; i < 16 && gpio < DAVINCI_N_GPIO; 308 for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) {
273 i++, irq++, gpio++) {
274 set_irq_chip(irq, &gpio_irqchip); 309 set_irq_chip(irq, &gpio_irqchip);
275 set_irq_chip_data(irq, g); 310 set_irq_chip_data(irq, g);
276 set_irq_handler(irq, handle_simple_irq); 311 set_irq_handler(irq, handle_simple_irq);
277 set_irq_flags(irq, IRQF_VALID); 312 set_irq_flags(irq, IRQF_VALID);
278 } 313 }
314
315 binten |= BIT(bank);
279 } 316 }
280 317
281 /* BINTEN -- per-bank interrupt enable. genirq would also let these 318 /* BINTEN -- per-bank interrupt enable. genirq would also let these
282 * bits be set/cleared dynamically. 319 * bits be set/cleared dynamically.
283 */ 320 */
284 __raw_writel(0x1f, (void *__iomem) 321 __raw_writel(binten, (void *__iomem)
285 IO_ADDRESS(DAVINCI_GPIO_BASE + 0x08)); 322 IO_ADDRESS(DAVINCI_GPIO_BASE + 0x08));
286 323
287 printk(KERN_INFO "DaVinci: %d gpio irqs\n", irq - gpio_to_irq(0)); 324 printk(KERN_INFO "DaVinci: %d gpio irqs\n", irq - gpio_to_irq(0));
288 325
289 return 0; 326 return 0;
290} 327}
291
292arch_initcall(davinci_gpio_irq_setup); 328arch_initcall(davinci_gpio_irq_setup);
diff --git a/arch/arm/mach-davinci/id.c b/arch/arm/mach-davinci/id.c
index bf067d604918..018b994cd794 100644
--- a/arch/arm/mach-davinci/id.c
+++ b/arch/arm/mach-davinci/id.c
@@ -15,7 +15,9 @@
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h> 16#include <linux/io.h>
17 17
18#define JTAG_ID_BASE 0x01c40028 18#define JTAG_ID_BASE IO_ADDRESS(0x01c40028)
19
20static unsigned int davinci_revision;
19 21
20struct davinci_id { 22struct davinci_id {
21 u8 variant; /* JTAG ID bits 31:28 */ 23 u8 variant; /* JTAG ID bits 31:28 */
@@ -33,6 +35,20 @@ static struct davinci_id davinci_ids[] __initdata = {
33 .manufacturer = 0x017, 35 .manufacturer = 0x017,
34 .type = 0x64460000, 36 .type = 0x64460000,
35 }, 37 },
38 {
39 /* DM646X */
40 .part_no = 0xb770,
41 .variant = 0x0,
42 .manufacturer = 0x017,
43 .type = 0x64670000,
44 },
45 {
46 /* DM355 */
47 .part_no = 0xb73b,
48 .variant = 0x0,
49 .manufacturer = 0x00f,
50 .type = 0x03550000,
51 },
36}; 52};
37 53
38/* 54/*
@@ -42,7 +58,7 @@ static u16 __init davinci_get_part_no(void)
42{ 58{
43 u32 dev_id, part_no; 59 u32 dev_id, part_no;
44 60
45 dev_id = davinci_readl(JTAG_ID_BASE); 61 dev_id = __raw_readl(JTAG_ID_BASE);
46 62
47 part_no = ((dev_id >> 12) & 0xffff); 63 part_no = ((dev_id >> 12) & 0xffff);
48 64
@@ -56,13 +72,19 @@ static u8 __init davinci_get_variant(void)
56{ 72{
57 u32 variant; 73 u32 variant;
58 74
59 variant = davinci_readl(JTAG_ID_BASE); 75 variant = __raw_readl(JTAG_ID_BASE);
60 76
61 variant = (variant >> 28) & 0xf; 77 variant = (variant >> 28) & 0xf;
62 78
63 return variant; 79 return variant;
64} 80}
65 81
82unsigned int davinci_rev(void)
83{
84 return davinci_revision >> 16;
85}
86EXPORT_SYMBOL(davinci_rev);
87
66void __init davinci_check_revision(void) 88void __init davinci_check_revision(void)
67{ 89{
68 int i; 90 int i;
@@ -75,7 +97,7 @@ void __init davinci_check_revision(void)
75 /* First check only the major version in a safe way */ 97 /* First check only the major version in a safe way */
76 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) { 98 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {
77 if (part_no == (davinci_ids[i].part_no)) { 99 if (part_no == (davinci_ids[i].part_no)) {
78 system_rev = davinci_ids[i].type; 100 davinci_revision = davinci_ids[i].type;
79 break; 101 break;
80 } 102 }
81 } 103 }
@@ -84,10 +106,11 @@ void __init davinci_check_revision(void)
84 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) { 106 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {
85 if (part_no == davinci_ids[i].part_no && 107 if (part_no == davinci_ids[i].part_no &&
86 variant == davinci_ids[i].variant) { 108 variant == davinci_ids[i].variant) {
87 system_rev = davinci_ids[i].type; 109 davinci_revision = davinci_ids[i].type;
88 break; 110 break;
89 } 111 }
90 } 112 }
91 113
92 printk("DaVinci DM%04x variant 0x%x\n", system_rev >> 16, variant); 114 printk(KERN_INFO "DaVinci DM%04x variant 0x%x\n",
115 davinci_rev(), variant);
93} 116}
diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h
new file mode 100644
index 000000000000..e0abc437d796
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/asp.h
@@ -0,0 +1,25 @@
1/*
2 * <mach/asp.h> - DaVinci Audio Serial Port support
3 */
4#ifndef __ASM_ARCH_DAVINCI_ASP_H
5#define __ASM_ARCH_DAVINCI_ASP_H
6
7#include <mach/irqs.h>
8
9/* Bases of register banks */
10#define DAVINCI_ASP0_BASE 0x01E02000
11#define DAVINCI_ASP1_BASE 0x01E04000
12
13/* EDMA channels */
14#define DAVINCI_DMA_ASP0_TX 2
15#define DAVINCI_DMA_ASP0_RX 3
16#define DAVINCI_DMA_ASP1_TX 8
17#define DAVINCI_DMA_ASP1_RX 9
18
19/* Interrupts */
20#define DAVINCI_ASP0_RX_INT IRQ_MBRINT
21#define DAVINCI_ASP0_TX_INT IRQ_MBXINT
22#define DAVINCI_ASP1_RX_INT IRQ_MBRINT
23#define DAVINCI_ASP1_TX_INT IRQ_MBXINT
24
25#endif /* __ASM_ARCH_DAVINCI_ASP_H */
diff --git a/arch/arm/mach-davinci/include/mach/board-dm6446evm.h b/arch/arm/mach-davinci/include/mach/board-dm6446evm.h
new file mode 100644
index 000000000000..3216f21c1238
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/board-dm6446evm.h
@@ -0,0 +1,20 @@
1/*
2 * DaVinci DM6446 EVM board specific headers
3 *
4 * Author: Kevin Hilman, Deep Root Systems, LLC
5 *
6 * 2007 (c) Deep Root Systems, LLC. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or ifndef.
10 */
11
12#ifndef _MACH_DAVINCI_DM6446EVM_H
13#define _MACH_DAVINCI_DM6446EVM_H
14
15#include <linux/types.h>
16
17int dm6446evm_eeprom_read(char *buf, off_t off, size_t count);
18int dm6446evm_eeprom_write(char *buf, off_t off, size_t count);
19
20#endif
diff --git a/arch/arm/mach-davinci/include/mach/clkdev.h b/arch/arm/mach-davinci/include/mach/clkdev.h
new file mode 100644
index 000000000000..730c49d1ebd8
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/clkdev.h
@@ -0,0 +1,13 @@
1#ifndef __MACH_CLKDEV_H
2#define __MACH_CLKDEV_H
3
4static inline int __clk_get(struct clk *clk)
5{
6 return 1;
7}
8
9static inline void __clk_put(struct clk *clk)
10{
11}
12
13#endif
diff --git a/arch/arm/mach-davinci/include/mach/clock.h b/arch/arm/mach-davinci/include/mach/clock.h
index 38bdd49bc181..a3b040219876 100644
--- a/arch/arm/mach-davinci/include/mach/clock.h
+++ b/arch/arm/mach-davinci/include/mach/clock.h
@@ -17,6 +17,5 @@ struct clk;
17 17
18extern int clk_register(struct clk *clk); 18extern int clk_register(struct clk *clk);
19extern void clk_unregister(struct clk *clk); 19extern void clk_unregister(struct clk *clk);
20extern int davinci_clk_init(void);
21 20
22#endif 21#endif
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h
index 4b522e5c70ec..191770976250 100644
--- a/arch/arm/mach-davinci/include/mach/common.h
+++ b/arch/arm/mach-davinci/include/mach/common.h
@@ -16,6 +16,12 @@ struct sys_timer;
16 16
17extern struct sys_timer davinci_timer; 17extern struct sys_timer davinci_timer;
18 18
19extern void davinci_irq_init(void);
20extern void davinci_map_common_io(void);
21
22/* parameters describe VBUS sourcing for host mode */
23extern void setup_usb(unsigned mA, unsigned potpgt_msec);
24
19/* parameters describe VBUS sourcing for host mode */ 25/* parameters describe VBUS sourcing for host mode */
20extern void setup_usb(unsigned mA, unsigned potpgt_msec); 26extern void setup_usb(unsigned mA, unsigned potpgt_msec);
21 27
diff --git a/arch/arm/mach-davinci/include/mach/cputype.h b/arch/arm/mach-davinci/include/mach/cputype.h
new file mode 100644
index 000000000000..27cfb1b3a662
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/cputype.h
@@ -0,0 +1,49 @@
1/*
2 * DaVinci CPU type detection
3 *
4 * Author: Kevin Hilman, Deep Root Systems, LLC
5 *
6 * Defines the cpu_is_*() macros for runtime detection of DaVinci
7 * device type. In addtion, if support for a given device is not
8 * compiled in to the kernel, the macros return 0 so that
9 * resulting code can be optimized out.
10 *
11 * 2009 (c) Deep Root Systems, LLC. This file is licensed under
12 * the terms of the GNU General Public License version 2. This program
13 * is licensed "as is" without any warranty of any kind, whether express
14 * or implied.
15 */
16#ifndef _ASM_ARCH_CPU_H
17#define _ASM_ARCH_CPU_H
18
19extern unsigned int davinci_rev(void);
20
21#define IS_DAVINCI_CPU(type, id) \
22static inline int is_davinci_dm ##type(void) \
23{ \
24 return (davinci_rev() == (id)) ? 1 : 0; \
25}
26
27IS_DAVINCI_CPU(644x, 0x6446)
28IS_DAVINCI_CPU(646x, 0x6467)
29IS_DAVINCI_CPU(355, 0x355)
30
31#ifdef CONFIG_ARCH_DAVINCI_DM644x
32#define cpu_is_davinci_dm644x() is_davinci_dm644x()
33#else
34#define cpu_is_davinci_dm644x() 0
35#endif
36
37#ifdef CONFIG_ARCH_DAVINCI_DM646x
38#define cpu_is_davinci_dm646x() is_davinci_dm646x()
39#else
40#define cpu_is_davinci_dm646x() 0
41#endif
42
43#ifdef CONFIG_ARCH_DAVINCI_DM355
44#define cpu_is_davinci_dm355() is_davinci_dm355()
45#else
46#define cpu_is_davinci_dm355() 0
47#endif
48
49#endif
diff --git a/arch/arm/mach-davinci/include/mach/dm644x.h b/arch/arm/mach-davinci/include/mach/dm644x.h
new file mode 100644
index 000000000000..3dcb9f4e58b4
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/dm644x.h
@@ -0,0 +1,37 @@
1/*
2 * This file contains the processor specific definitions
3 * of the TI DM644x.
4 *
5 * Copyright (C) 2008 Texas Instruments.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 *
21 */
22#ifndef __ASM_ARCH_DM644X_H
23#define __ASM_ARCH_DM644X_H
24
25#include <linux/platform_device.h>
26#include <mach/hardware.h>
27
28#define DM644X_EMAC_BASE (0x01C80000)
29#define DM644X_EMAC_CNTRL_OFFSET (0x0000)
30#define DM644X_EMAC_CNTRL_MOD_OFFSET (0x1000)
31#define DM644X_EMAC_CNTRL_RAM_OFFSET (0x2000)
32#define DM644X_EMAC_MDIO_OFFSET (0x4000)
33#define DM644X_EMAC_CNTRL_RAM_SIZE (0x2000)
34
35void __init dm644x_init(void);
36
37#endif /* __ASM_ARCH_DM644X_H */
diff --git a/arch/arm/mach-davinci/include/mach/edma.h b/arch/arm/mach-davinci/include/mach/edma.h
new file mode 100644
index 000000000000..f6fc5396dafc
--- /dev/null
+++ b/arch/arm/mach-davinci/include/mach/edma.h
@@ -0,0 +1,228 @@
1/*
2 * TI DAVINCI dma definitions
3 *
4 * Copyright (C) 2006-2009 Texas Instruments.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 *
11 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
12 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
14 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
18 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 *
22 * You should have received a copy of the GNU General Public License along
23 * with this program; if not, write to the Free Software Foundation, Inc.,
24 * 675 Mass Ave, Cambridge, MA 02139, USA.
25 *
26 */
27
28/*
29 * This EDMA3 programming framework exposes two basic kinds of resource:
30 *
31 * Channel Triggers transfers, usually from a hardware event but
32 * also manually or by "chaining" from DMA completions.
33 * Each channel is coupled to a Parameter RAM (PaRAM) slot.
34 *
35 * Slot Each PaRAM slot holds a DMA transfer descriptor (PaRAM
36 * "set"), source and destination addresses, a link to a
37 * next PaRAM slot (if any), options for the transfer, and
38 * instructions for updating those addresses. There are
39 * more than twice as many slots as event channels.
40 *
41 * Each PaRAM set describes a sequence of transfers, either for one large
42 * buffer or for several discontiguous smaller buffers. An EDMA transfer
43 * is driven only from a channel, which performs the transfers specified
44 * in its PaRAM slot until there are no more transfers. When that last
45 * transfer completes, the "link" field may be used to reload the channel's
46 * PaRAM slot with a new transfer descriptor.
47 *
48 * The EDMA Channel Controller (CC) maps requests from channels into physical
49 * Transfer Controller (TC) requests when the channel triggers (by hardware
50 * or software events, or by chaining). The two physical DMA channels provided
51 * by the TCs are thus shared by many logical channels.
52 *
53 * DaVinci hardware also has a "QDMA" mechanism which is not currently
54 * supported through this interface. (DSP firmware uses it though.)
55 */
56
57#ifndef EDMA_H_
58#define EDMA_H_
59
60/* PaRAM slots are laid out like this */
61struct edmacc_param {
62 unsigned int opt;
63 unsigned int src;
64 unsigned int a_b_cnt;
65 unsigned int dst;
66 unsigned int src_dst_bidx;
67 unsigned int link_bcntrld;
68 unsigned int src_dst_cidx;
69 unsigned int ccnt;
70};
71
72#define CCINT0_INTERRUPT 16
73#define CCERRINT_INTERRUPT 17
74#define TCERRINT0_INTERRUPT 18
75#define TCERRINT1_INTERRUPT 19
76
77/* fields in edmacc_param.opt */
78#define SAM BIT(0)
79#define DAM BIT(1)
80#define SYNCDIM BIT(2)
81#define STATIC BIT(3)
82#define EDMA_FWID (0x07 << 8)
83#define TCCMODE BIT(11)
84#define EDMA_TCC(t) ((t) << 12)
85#define TCINTEN BIT(20)
86#define ITCINTEN BIT(21)
87#define TCCHEN BIT(22)
88#define ITCCHEN BIT(23)
89
90#define TRWORD (0x7<<2)
91#define PAENTRY (0x1ff<<5)
92
93/* Drivers should avoid using these symbolic names for dm644x
94 * channels, and use platform_device IORESOURCE_DMA resources
95 * instead. (Other DaVinci chips have different peripherals
96 * and thus have different DMA channel mappings.)
97 */
98#define DAVINCI_DMA_MCBSP_TX 2
99#define DAVINCI_DMA_MCBSP_RX 3
100#define DAVINCI_DMA_VPSS_HIST 4
101#define DAVINCI_DMA_VPSS_H3A 5
102#define DAVINCI_DMA_VPSS_PRVU 6
103#define DAVINCI_DMA_VPSS_RSZ 7
104#define DAVINCI_DMA_IMCOP_IMXINT 8
105#define DAVINCI_DMA_IMCOP_VLCDINT 9
106#define DAVINCI_DMA_IMCO_PASQINT 10
107#define DAVINCI_DMA_IMCOP_DSQINT 11
108#define DAVINCI_DMA_SPI_SPIX 16
109#define DAVINCI_DMA_SPI_SPIR 17
110#define DAVINCI_DMA_UART0_URXEVT0 18
111#define DAVINCI_DMA_UART0_UTXEVT0 19
112#define DAVINCI_DMA_UART1_URXEVT1 20
113#define DAVINCI_DMA_UART1_UTXEVT1 21
114#define DAVINCI_DMA_UART2_URXEVT2 22
115#define DAVINCI_DMA_UART2_UTXEVT2 23
116#define DAVINCI_DMA_MEMSTK_MSEVT 24
117#define DAVINCI_DMA_MMCRXEVT 26
118#define DAVINCI_DMA_MMCTXEVT 27
119#define DAVINCI_DMA_I2C_ICREVT 28
120#define DAVINCI_DMA_I2C_ICXEVT 29
121#define DAVINCI_DMA_GPIO_GPINT0 32
122#define DAVINCI_DMA_GPIO_GPINT1 33
123#define DAVINCI_DMA_GPIO_GPINT2 34
124#define DAVINCI_DMA_GPIO_GPINT3 35
125#define DAVINCI_DMA_GPIO_GPINT4 36
126#define DAVINCI_DMA_GPIO_GPINT5 37
127#define DAVINCI_DMA_GPIO_GPINT6 38
128#define DAVINCI_DMA_GPIO_GPINT7 39
129#define DAVINCI_DMA_GPIO_GPBNKINT0 40
130#define DAVINCI_DMA_GPIO_GPBNKINT1 41
131#define DAVINCI_DMA_GPIO_GPBNKINT2 42
132#define DAVINCI_DMA_GPIO_GPBNKINT3 43
133#define DAVINCI_DMA_GPIO_GPBNKINT4 44
134#define DAVINCI_DMA_TIMER0_TINT0 48
135#define DAVINCI_DMA_TIMER1_TINT1 49
136#define DAVINCI_DMA_TIMER2_TINT2 50
137#define DAVINCI_DMA_TIMER3_TINT3 51
138#define DAVINCI_DMA_PWM0 52
139#define DAVINCI_DMA_PWM1 53
140#define DAVINCI_DMA_PWM2 54
141
142/*ch_status paramater of callback function possible values*/
143#define DMA_COMPLETE 1
144#define DMA_CC_ERROR 2
145#define DMA_TC1_ERROR 3
146#define DMA_TC2_ERROR 4
147
148enum address_mode {
149 INCR = 0,
150 FIFO = 1
151};
152
153enum fifo_width {
154 W8BIT = 0,
155 W16BIT = 1,
156 W32BIT = 2,
157 W64BIT = 3,
158 W128BIT = 4,
159 W256BIT = 5
160};
161
162enum dma_event_q {
163 EVENTQ_0 = 0,
164 EVENTQ_1 = 1,
165 EVENTQ_DEFAULT = -1
166};
167
168enum sync_dimension {
169 ASYNC = 0,
170 ABSYNC = 1
171};
172
173#define EDMA_CHANNEL_ANY -1 /* for edma_alloc_channel() */
174#define EDMA_SLOT_ANY -1 /* for edma_alloc_slot() */
175
176/* alloc/free DMA channels and their dedicated parameter RAM slots */
177int edma_alloc_channel(int channel,
178 void (*callback)(unsigned channel, u16 ch_status, void *data),
179 void *data, enum dma_event_q);
180void edma_free_channel(unsigned channel);
181
182/* alloc/free parameter RAM slots */
183int edma_alloc_slot(int slot);
184void edma_free_slot(unsigned slot);
185
186/* calls that operate on part of a parameter RAM slot */
187void edma_set_src(unsigned slot, dma_addr_t src_port,
188 enum address_mode mode, enum fifo_width);
189void edma_set_dest(unsigned slot, dma_addr_t dest_port,
190 enum address_mode mode, enum fifo_width);
191void edma_get_position(unsigned slot, dma_addr_t *src, dma_addr_t *dst);
192void edma_set_src_index(unsigned slot, s16 src_bidx, s16 src_cidx);
193void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx);
194void edma_set_transfer_params(unsigned slot, u16 acnt, u16 bcnt, u16 ccnt,
195 u16 bcnt_rld, enum sync_dimension sync_mode);
196void edma_link(unsigned from, unsigned to);
197void edma_unlink(unsigned from);
198
199/* calls that operate on an entire parameter RAM slot */
200void edma_write_slot(unsigned slot, const struct edmacc_param *params);
201void edma_read_slot(unsigned slot, struct edmacc_param *params);
202
203/* channel control operations */
204int edma_start(unsigned channel);
205void edma_stop(unsigned channel);
206void edma_clean_channel(unsigned channel);
207void edma_clear_event(unsigned channel);
208void edma_pause(unsigned channel);
209void edma_resume(unsigned channel);
210
211/* UNRELATED TO DMA */
212int davinci_alloc_iram(unsigned size);
213void davinci_free_iram(unsigned addr, unsigned size);
214
215/* platform_data for EDMA driver */
216struct edma_soc_info {
217
218 /* how many dma resources of each type */
219 unsigned n_channel;
220 unsigned n_region;
221 unsigned n_slot;
222 unsigned n_tc;
223
224 /* list of channels with no even trigger; terminated by "-1" */
225 const s8 *noevent;
226};
227
228#endif
diff --git a/arch/arm/mach-davinci/include/mach/gpio.h b/arch/arm/mach-davinci/include/mach/gpio.h
index b456f079f43f..efe3281364e6 100644
--- a/arch/arm/mach-davinci/include/mach/gpio.h
+++ b/arch/arm/mach-davinci/include/mach/gpio.h
@@ -15,9 +15,11 @@
15 15
16#include <linux/io.h> 16#include <linux/io.h>
17#include <asm-generic/gpio.h> 17#include <asm-generic/gpio.h>
18#include <mach/hardware.h> 18
19#include <mach/irqs.h> 19#include <mach/irqs.h>
20 20
21#define DAVINCI_GPIO_BASE 0x01C67000
22
21/* 23/*
22 * basic gpio routines 24 * basic gpio routines
23 * 25 *
@@ -26,23 +28,18 @@
26 * go through boot loaders. 28 * go through boot loaders.
27 * 29 *
28 * the gpio clock will be turned on when gpios are used, and you may also 30 * the gpio clock will be turned on when gpios are used, and you may also
29 * need to pay attention to PINMUX0 and PINMUX1 to be sure those pins are 31 * need to pay attention to PINMUX registers to be sure those pins are
30 * used as gpios, not with other peripherals. 32 * used as gpios, not with other peripherals.
31 * 33 *
32 * On-chip GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation, 34 * On-chip GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation,
33 * and maybe for later updates, code should write GPIO(N) or: 35 * and maybe for later updates, code may write GPIO(N). These may be
34 * - GPIOV18(N) for 1.8V pins, N in 0..53; same as GPIO(0)..GPIO(53) 36 * all 1.8V signals, all 3.3V ones, or a mix of the two. A given chip
35 * - GPIOV33(N) for 3.3V pins, N in 0..17; same as GPIO(54)..GPIO(70) 37 * may not support all the GPIOs in that range.
36 *
37 * For GPIO IRQs use gpio_to_irq(GPIO(N)) or gpio_to_irq(GPIOV33(N)) etc
38 * for now, that's != GPIO(N)
39 * 38 *
40 * GPIOs can also be on external chips, numbered after the ones built-in 39 * GPIOs can also be on external chips, numbered after the ones built-in
41 * to the DaVinci chip. For now, they won't be usable as IRQ sources. 40 * to the DaVinci chip. For now, they won't be usable as IRQ sources.
42 */ 41 */
43#define GPIO(X) (X) /* 0 <= X <= 70 */ 42#define GPIO(X) (X) /* 0 <= X <= (DAVINCI_N_GPIO - 1) */
44#define GPIOV18(X) (X) /* 1.8V i/o; 0 <= X <= 53 */
45#define GPIOV33(X) ((X)+54) /* 3.3V i/o; 0 <= X <= 17 */
46 43
47struct gpio_controller { 44struct gpio_controller {
48 u32 dir; 45 u32 dir;
@@ -71,12 +68,14 @@ __gpio_to_controller(unsigned gpio)
71{ 68{
72 void *__iomem ptr; 69 void *__iomem ptr;
73 70
74 if (gpio < 32) 71 if (gpio < 32 * 1)
75 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10); 72 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10);
76 else if (gpio < 64) 73 else if (gpio < 32 * 2)
77 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38); 74 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38);
78 else if (gpio < DAVINCI_N_GPIO) 75 else if (gpio < 32 * 3)
79 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60); 76 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60);
77 else if (gpio < 32 * 4)
78 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x88);
80 else 79 else
81 ptr = NULL; 80 ptr = NULL;
82 return ptr; 81 return ptr;
diff --git a/arch/arm/mach-davinci/include/mach/hardware.h b/arch/arm/mach-davinci/include/mach/hardware.h
index a2e8969afaca..48c77934d519 100644
--- a/arch/arm/mach-davinci/include/mach/hardware.h
+++ b/arch/arm/mach-davinci/include/mach/hardware.h
@@ -1,9 +1,9 @@
1/* 1/*
2 * Common hardware definitions 2 * Hardware definitions common to all DaVinci family processors
3 * 3 *
4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> 4 * Author: Kevin Hilman, Deep Root Systems, LLC
5 * 5 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under 6 * 2007 (c) Deep Root Systems, LLC. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program 7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express 8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied. 9 * or implied.
@@ -12,41 +12,16 @@
12#define __ASM_ARCH_HARDWARE_H 12#define __ASM_ARCH_HARDWARE_H
13 13
14/* 14/*
15 * Base register addresses 15 * Before you add anything to ths file:
16 *
17 * This header is for defines common to ALL DaVinci family chips.
18 * Anything that is chip specific should go in <chipname>.h,
19 * and the chip/board init code should then explicitly include
20 * <chipname>.h
16 */ 21 */
17#define DAVINCI_DMA_3PCC_BASE (0x01C00000) 22#define DAVINCI_SYSTEM_MODULE_BASE 0x01C40000
18#define DAVINCI_DMA_3PTC0_BASE (0x01C10000) 23
19#define DAVINCI_DMA_3PTC1_BASE (0x01C10400) 24/* System control register offsets */
20#define DAVINCI_I2C_BASE (0x01C21000) 25#define DM64XX_VDD3P3V_PWDN 0x48
21#define DAVINCI_PWM0_BASE (0x01C22000)
22#define DAVINCI_PWM1_BASE (0x01C22400)
23#define DAVINCI_PWM2_BASE (0x01C22800)
24#define DAVINCI_SYSTEM_MODULE_BASE (0x01C40000)
25#define DAVINCI_PLL_CNTRL0_BASE (0x01C40800)
26#define DAVINCI_PLL_CNTRL1_BASE (0x01C40C00)
27#define DAVINCI_PWR_SLEEP_CNTRL_BASE (0x01C41000)
28#define DAVINCI_SYSTEM_DFT_BASE (0x01C42000)
29#define DAVINCI_IEEE1394_BASE (0x01C60000)
30#define DAVINCI_USB_OTG_BASE (0x01C64000)
31#define DAVINCI_CFC_ATA_BASE (0x01C66000)
32#define DAVINCI_SPI_BASE (0x01C66800)
33#define DAVINCI_GPIO_BASE (0x01C67000)
34#define DAVINCI_UHPI_BASE (0x01C67800)
35#define DAVINCI_VPSS_REGS_BASE (0x01C70000)
36#define DAVINCI_EMAC_CNTRL_REGS_BASE (0x01C80000)
37#define DAVINCI_EMAC_WRAPPER_CNTRL_REGS_BASE (0x01C81000)
38#define DAVINCI_EMAC_WRAPPER_RAM_BASE (0x01C82000)
39#define DAVINCI_MDIO_CNTRL_REGS_BASE (0x01C84000)
40#define DAVINCI_IMCOP_BASE (0x01CC0000)
41#define DAVINCI_ASYNC_EMIF_CNTRL_BASE (0x01E00000)
42#define DAVINCI_VLYNQ_BASE (0x01E01000)
43#define DAVINCI_MCBSP_BASE (0x01E02000)
44#define DAVINCI_MMC_SD_BASE (0x01E10000)
45#define DAVINCI_MS_BASE (0x01E20000)
46#define DAVINCI_ASYNC_EMIF_DATA_CE0_BASE (0x02000000)
47#define DAVINCI_ASYNC_EMIF_DATA_CE1_BASE (0x04000000)
48#define DAVINCI_ASYNC_EMIF_DATA_CE2_BASE (0x06000000)
49#define DAVINCI_ASYNC_EMIF_DATA_CE3_BASE (0x08000000)
50#define DAVINCI_VLYNQ_REMOTE_BASE (0x0C000000)
51 26
52#endif /* __ASM_ARCH_HARDWARE_H */ 27#endif /* __ASM_ARCH_HARDWARE_H */
diff --git a/arch/arm/mach-davinci/include/mach/io.h b/arch/arm/mach-davinci/include/mach/io.h
index a48795fd2417..2479785405af 100644
--- a/arch/arm/mach-davinci/include/mach/io.h
+++ b/arch/arm/mach-davinci/include/mach/io.h
@@ -40,22 +40,12 @@
40#else 40#else
41#define IOMEM(x) ((void __force __iomem *)(x)) 41#define IOMEM(x) ((void __force __iomem *)(x))
42 42
43/* 43#define __arch_ioremap(p, s, t) davinci_ioremap(p, s, t)
44 * Functions to access the DaVinci IO region 44#define __arch_iounmap(v) davinci_iounmap(v)
45 *
46 * NOTE: - Use davinci_read/write[bwl] for physical register addresses
47 * - Use __raw_read/write[bwl]() for virtual register addresses
48 * - Use IO_ADDRESS(phys_addr) to convert registers to virtual addresses
49 * - DO NOT use hardcoded virtual addresses to allow changing the
50 * IO address space again if needed
51 */
52#define davinci_readb(a) __raw_readb(IO_ADDRESS(a))
53#define davinci_readw(a) __raw_readw(IO_ADDRESS(a))
54#define davinci_readl(a) __raw_readl(IO_ADDRESS(a))
55 45
56#define davinci_writeb(v, a) __raw_writeb(v, IO_ADDRESS(a)) 46void __iomem *davinci_ioremap(unsigned long phys, size_t size,
57#define davinci_writew(v, a) __raw_writew(v, IO_ADDRESS(a)) 47 unsigned int type);
58#define davinci_writel(v, a) __raw_writel(v, IO_ADDRESS(a)) 48void davinci_iounmap(volatile void __iomem *addr);
59 49
60#endif /* __ASSEMBLER__ */ 50#endif /* __ASSEMBLER__ */
61#endif /* __ASM_ARCH_IO_H */ 51#endif /* __ASM_ARCH_IO_H */
diff --git a/arch/arm/mach-davinci/include/mach/irqs.h b/arch/arm/mach-davinci/include/mach/irqs.h
index f4c5ca6da9f4..18066074c995 100644
--- a/arch/arm/mach-davinci/include/mach/irqs.h
+++ b/arch/arm/mach-davinci/include/mach/irqs.h
@@ -96,10 +96,111 @@
96#define IRQ_EMUINT 63 96#define IRQ_EMUINT 63
97 97
98#define DAVINCI_N_AINTC_IRQ 64 98#define DAVINCI_N_AINTC_IRQ 64
99#define DAVINCI_N_GPIO 71 99#define DAVINCI_N_GPIO 104
100 100
101#define NR_IRQS (DAVINCI_N_AINTC_IRQ + DAVINCI_N_GPIO) 101#define NR_IRQS (DAVINCI_N_AINTC_IRQ + DAVINCI_N_GPIO)
102 102
103#define ARCH_TIMER_IRQ IRQ_TINT1_TINT34 103#define ARCH_TIMER_IRQ IRQ_TINT1_TINT34
104 104
105/* DaVinci DM6467-specific Interrupts */
106#define IRQ_DM646X_VP_VERTINT0 0
107#define IRQ_DM646X_VP_VERTINT1 1
108#define IRQ_DM646X_VP_VERTINT2 2
109#define IRQ_DM646X_VP_VERTINT3 3
110#define IRQ_DM646X_VP_ERRINT 4
111#define IRQ_DM646X_RESERVED_1 5
112#define IRQ_DM646X_RESERVED_2 6
113#define IRQ_DM646X_WDINT 7
114#define IRQ_DM646X_CRGENINT0 8
115#define IRQ_DM646X_CRGENINT1 9
116#define IRQ_DM646X_TSIFINT0 10
117#define IRQ_DM646X_TSIFINT1 11
118#define IRQ_DM646X_VDCEINT 12
119#define IRQ_DM646X_USBINT 13
120#define IRQ_DM646X_USBDMAINT 14
121#define IRQ_DM646X_PCIINT 15
122#define IRQ_DM646X_TCERRINT2 20
123#define IRQ_DM646X_TCERRINT3 21
124#define IRQ_DM646X_IDE 22
125#define IRQ_DM646X_HPIINT 23
126#define IRQ_DM646X_EMACRXTHINT 24
127#define IRQ_DM646X_EMACRXINT 25
128#define IRQ_DM646X_EMACTXINT 26
129#define IRQ_DM646X_EMACMISCINT 27
130#define IRQ_DM646X_MCASP0TXINT 28
131#define IRQ_DM646X_MCASP0RXINT 29
132#define IRQ_DM646X_RESERVED_3 31
133#define IRQ_DM646X_MCASP1TXINT 32
134#define IRQ_DM646X_VLQINT 38
135#define IRQ_DM646X_UARTINT2 42
136#define IRQ_DM646X_SPINT0 43
137#define IRQ_DM646X_SPINT1 44
138#define IRQ_DM646X_DSP2ARMINT 45
139#define IRQ_DM646X_RESERVED_4 46
140#define IRQ_DM646X_PSCINT 47
141#define IRQ_DM646X_GPIO0 48
142#define IRQ_DM646X_GPIO1 49
143#define IRQ_DM646X_GPIO2 50
144#define IRQ_DM646X_GPIO3 51
145#define IRQ_DM646X_GPIO4 52
146#define IRQ_DM646X_GPIO5 53
147#define IRQ_DM646X_GPIO6 54
148#define IRQ_DM646X_GPIO7 55
149#define IRQ_DM646X_GPIOBNK0 56
150#define IRQ_DM646X_GPIOBNK1 57
151#define IRQ_DM646X_GPIOBNK2 58
152#define IRQ_DM646X_DDRINT 59
153#define IRQ_DM646X_AEMIFINT 60
154
155/* DaVinci DM355-specific Interrupts */
156#define IRQ_DM355_CCDC_VDINT0 0
157#define IRQ_DM355_CCDC_VDINT1 1
158#define IRQ_DM355_CCDC_VDINT2 2
159#define IRQ_DM355_IPIPE_HST 3
160#define IRQ_DM355_H3AINT 4
161#define IRQ_DM355_IPIPE_SDR 5
162#define IRQ_DM355_IPIPEIFINT 6
163#define IRQ_DM355_OSDINT 7
164#define IRQ_DM355_VENCINT 8
165#define IRQ_DM355_IMCOPINT 11
166#define IRQ_DM355_RTOINT 13
167#define IRQ_DM355_TINT4 13
168#define IRQ_DM355_TINT2_TINT12 13
169#define IRQ_DM355_UARTINT2 14
170#define IRQ_DM355_TINT5 14
171#define IRQ_DM355_TINT2_TINT34 14
172#define IRQ_DM355_TINT6 15
173#define IRQ_DM355_TINT3_TINT12 15
174#define IRQ_DM355_SPINT1_0 17
175#define IRQ_DM355_SPINT1_1 18
176#define IRQ_DM355_SPINT2_0 19
177#define IRQ_DM355_SPINT2_1 21
178#define IRQ_DM355_TINT7 22
179#define IRQ_DM355_TINT3_TINT34 22
180#define IRQ_DM355_SDIOINT0 23
181#define IRQ_DM355_MMCINT0 26
182#define IRQ_DM355_MSINT 26
183#define IRQ_DM355_MMCINT1 27
184#define IRQ_DM355_PWMINT3 28
185#define IRQ_DM355_SDIOINT1 31
186#define IRQ_DM355_SPINT0_0 42
187#define IRQ_DM355_SPINT0_1 43
188#define IRQ_DM355_GPIO0 44
189#define IRQ_DM355_GPIO1 45
190#define IRQ_DM355_GPIO2 46
191#define IRQ_DM355_GPIO3 47
192#define IRQ_DM355_GPIO4 48
193#define IRQ_DM355_GPIO5 49
194#define IRQ_DM355_GPIO6 50
195#define IRQ_DM355_GPIO7 51
196#define IRQ_DM355_GPIO8 52
197#define IRQ_DM355_GPIO9 53
198#define IRQ_DM355_GPIOBNK0 54
199#define IRQ_DM355_GPIOBNK1 55
200#define IRQ_DM355_GPIOBNK2 56
201#define IRQ_DM355_GPIOBNK3 57
202#define IRQ_DM355_GPIOBNK4 58
203#define IRQ_DM355_GPIOBNK5 59
204#define IRQ_DM355_GPIOBNK6 60
205
105#endif /* __ASM_ARCH_IRQS_H */ 206#endif /* __ASM_ARCH_IRQS_H */
diff --git a/arch/arm/mach-davinci/include/mach/mux.h b/arch/arm/mach-davinci/include/mach/mux.h
index c24b6782804d..bae22cb3e27b 100644
--- a/arch/arm/mach-davinci/include/mach/mux.h
+++ b/arch/arm/mach-davinci/include/mach/mux.h
@@ -1,55 +1,183 @@
1/* 1/*
2 * DaVinci pin multiplexing defines 2 * Table of the DAVINCI register configurations for the PINMUX combinations
3 * 3 *
4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com> 4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
5 * 5 *
6 * Based on linux/include/asm-arm/arch-omap/mux.h:
7 * Copyright (C) 2003 - 2005 Nokia Corporation
8 *
9 * Written by Tony Lindgren
10 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under 11 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program 12 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express 13 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied. 14 * or implied.
15 *
16 * Copyright (C) 2008 Texas Instruments.
10 */ 17 */
11#ifndef __ASM_ARCH_MUX_H 18
12#define __ASM_ARCH_MUX_H 19#ifndef __INC_MACH_MUX_H
13 20#define __INC_MACH_MUX_H
14#define DAVINCI_MUX_AEAW0 0 21
15#define DAVINCI_MUX_AEAW1 1 22/* System module registers */
16#define DAVINCI_MUX_AEAW2 2 23#define PINMUX0 0x00
17#define DAVINCI_MUX_AEAW3 3 24#define PINMUX1 0x04
18#define DAVINCI_MUX_AEAW4 4 25/* dm355 only */
19#define DAVINCI_MUX_AECS4 10 26#define PINMUX2 0x08
20#define DAVINCI_MUX_AECS5 11 27#define PINMUX3 0x0c
21#define DAVINCI_MUX_VLYNQWD0 12 28#define PINMUX4 0x10
22#define DAVINCI_MUX_VLYNQWD1 13 29#define INTMUX 0x18
23#define DAVINCI_MUX_VLSCREN 14 30#define EVTMUX 0x1c
24#define DAVINCI_MUX_VLYNQEN 15 31
25#define DAVINCI_MUX_HDIREN 16 32struct mux_config {
26#define DAVINCI_MUX_ATAEN 17 33 const char *name;
27#define DAVINCI_MUX_RGB666 22 34 const char *mux_reg_name;
28#define DAVINCI_MUX_RGB888 23 35 const unsigned char mux_reg;
29#define DAVINCI_MUX_LOEEN 24 36 const unsigned char mask_offset;
30#define DAVINCI_MUX_LFLDEN 25 37 const unsigned char mask;
31#define DAVINCI_MUX_CWEN 26 38 const unsigned char mode;
32#define DAVINCI_MUX_CFLDEN 27 39 bool debug;
33#define DAVINCI_MUX_HPIEN 29 40};
34#define DAVINCI_MUX_1394EN 30 41
35#define DAVINCI_MUX_EMACEN 31 42enum davinci_dm644x_index {
36 43 /* ATA and HDDIR functions */
37#define DAVINCI_MUX_LEVEL2 32 44 DM644X_HDIREN,
38#define DAVINCI_MUX_UART0 (DAVINCI_MUX_LEVEL2 + 0) 45 DM644X_ATAEN,
39#define DAVINCI_MUX_UART1 (DAVINCI_MUX_LEVEL2 + 1) 46 DM644X_ATAEN_DISABLE,
40#define DAVINCI_MUX_UART2 (DAVINCI_MUX_LEVEL2 + 2) 47
41#define DAVINCI_MUX_U2FLO (DAVINCI_MUX_LEVEL2 + 3) 48 /* HPI functions */
42#define DAVINCI_MUX_PWM0 (DAVINCI_MUX_LEVEL2 + 4) 49 DM644X_HPIEN_DISABLE,
43#define DAVINCI_MUX_PWM1 (DAVINCI_MUX_LEVEL2 + 5) 50
44#define DAVINCI_MUX_PWM2 (DAVINCI_MUX_LEVEL2 + 6) 51 /* AEAW functions */
45#define DAVINCI_MUX_I2C (DAVINCI_MUX_LEVEL2 + 7) 52 DM644X_AEAW,
46#define DAVINCI_MUX_SPI (DAVINCI_MUX_LEVEL2 + 8) 53
47#define DAVINCI_MUX_MSTK (DAVINCI_MUX_LEVEL2 + 9) 54 /* Memory Stick */
48#define DAVINCI_MUX_ASP (DAVINCI_MUX_LEVEL2 + 10) 55 DM644X_MSTK,
49#define DAVINCI_MUX_CLK0 (DAVINCI_MUX_LEVEL2 + 16) 56
50#define DAVINCI_MUX_CLK1 (DAVINCI_MUX_LEVEL2 + 17) 57 /* I2C */
51#define DAVINCI_MUX_TIMIN (DAVINCI_MUX_LEVEL2 + 18) 58 DM644X_I2C,
52 59
53extern void davinci_mux_peripheral(unsigned int mux, unsigned int enable); 60 /* ASP function */
54 61 DM644X_MCBSP,
55#endif /* __ASM_ARCH_MUX_H */ 62
63 /* UART1 */
64 DM644X_UART1,
65
66 /* UART2 */
67 DM644X_UART2,
68
69 /* PWM0 */
70 DM644X_PWM0,
71
72 /* PWM1 */
73 DM644X_PWM1,
74
75 /* PWM2 */
76 DM644X_PWM2,
77
78 /* VLYNQ function */
79 DM644X_VLYNQEN,
80 DM644X_VLSCREN,
81 DM644X_VLYNQWD,
82
83 /* EMAC and MDIO function */
84 DM644X_EMACEN,
85
86 /* GPIO3V[0:16] pins */
87 DM644X_GPIO3V,
88
89 /* GPIO pins */
90 DM644X_GPIO0,
91 DM644X_GPIO3,
92 DM644X_GPIO43_44,
93 DM644X_GPIO46_47,
94
95 /* VPBE */
96 DM644X_RGB666,
97
98 /* LCD */
99 DM644X_LOEEN,
100 DM644X_LFLDEN,
101};
102
103enum davinci_dm646x_index {
104 /* ATA function */
105 DM646X_ATAEN,
106
107 /* AUDIO Clock */
108 DM646X_AUDCK1,
109 DM646X_AUDCK0,
110
111 /* CRGEN Control */
112 DM646X_CRGMUX,
113
114 /* VPIF Control */
115 DM646X_STSOMUX_DISABLE,
116 DM646X_STSIMUX_DISABLE,
117 DM646X_PTSOMUX_DISABLE,
118 DM646X_PTSIMUX_DISABLE,
119
120 /* TSIF Control */
121 DM646X_STSOMUX,
122 DM646X_STSIMUX,
123 DM646X_PTSOMUX_PARALLEL,
124 DM646X_PTSIMUX_PARALLEL,
125 DM646X_PTSOMUX_SERIAL,
126 DM646X_PTSIMUX_SERIAL,
127};
128
129enum davinci_dm355_index {
130 /* MMC/SD 0 */
131 DM355_MMCSD0,
132
133 /* MMC/SD 1 */
134 DM355_SD1_CLK,
135 DM355_SD1_CMD,
136 DM355_SD1_DATA3,
137 DM355_SD1_DATA2,
138 DM355_SD1_DATA1,
139 DM355_SD1_DATA0,
140
141 /* I2C */
142 DM355_I2C_SDA,
143 DM355_I2C_SCL,
144
145 /* ASP0 function */
146 DM355_MCBSP0_BDX,
147 DM355_MCBSP0_X,
148 DM355_MCBSP0_BFSX,
149 DM355_MCBSP0_BDR,
150 DM355_MCBSP0_R,
151 DM355_MCBSP0_BFSR,
152
153 /* SPI0 */
154 DM355_SPI0_SDI,
155 DM355_SPI0_SDENA0,
156 DM355_SPI0_SDENA1,
157
158 /* IRQ muxing */
159 DM355_INT_EDMA_CC,
160 DM355_INT_EDMA_TC0_ERR,
161 DM355_INT_EDMA_TC1_ERR,
162
163 /* EDMA event muxing */
164 DM355_EVT8_ASP1_TX,
165 DM355_EVT9_ASP1_RX,
166 DM355_EVT26_MMC0_RX,
167};
168
169#ifdef CONFIG_DAVINCI_MUX
170/* setup pin muxing */
171extern void davinci_mux_init(void);
172extern int davinci_mux_register(const struct mux_config *pins,
173 unsigned long size);
174extern int davinci_cfg_reg(unsigned long reg_cfg);
175#else
176/* boot loader does it all (no warnings from CONFIG_DAVINCI_MUX_WARNINGS) */
177static inline void davinci_mux_init(void) {}
178static inline int davinci_mux_register(const struct mux_config *pins,
179 unsigned long size) { return 0; }
180static inline int davinci_cfg_reg(unsigned long reg_cfg) { return 0; }
181#endif
182
183#endif /* __INC_MACH_MUX_H */
diff --git a/arch/arm/mach-davinci/include/mach/psc.h b/arch/arm/mach-davinci/include/mach/psc.h
index 4977aa071e1e..55a90d419fac 100644
--- a/arch/arm/mach-davinci/include/mach/psc.h
+++ b/arch/arm/mach-davinci/include/mach/psc.h
@@ -38,8 +38,6 @@
38#define DAVINCI_LPSC_TPTC1 4 38#define DAVINCI_LPSC_TPTC1 4
39#define DAVINCI_LPSC_EMAC 5 39#define DAVINCI_LPSC_EMAC 5
40#define DAVINCI_LPSC_EMAC_WRAPPER 6 40#define DAVINCI_LPSC_EMAC_WRAPPER 6
41#define DAVINCI_LPSC_MDIO 7
42#define DAVINCI_LPSC_IEEE1394 8
43#define DAVINCI_LPSC_USB 9 41#define DAVINCI_LPSC_USB 9
44#define DAVINCI_LPSC_ATA 10 42#define DAVINCI_LPSC_ATA 10
45#define DAVINCI_LPSC_VLYNQ 11 43#define DAVINCI_LPSC_VLYNQ 11
@@ -47,7 +45,6 @@
47#define DAVINCI_LPSC_DDR_EMIF 13 45#define DAVINCI_LPSC_DDR_EMIF 13
48#define DAVINCI_LPSC_AEMIF 14 46#define DAVINCI_LPSC_AEMIF 14
49#define DAVINCI_LPSC_MMC_SD 15 47#define DAVINCI_LPSC_MMC_SD 15
50#define DAVINCI_LPSC_MEMSTICK 16
51#define DAVINCI_LPSC_McBSP 17 48#define DAVINCI_LPSC_McBSP 17
52#define DAVINCI_LPSC_I2C 18 49#define DAVINCI_LPSC_I2C 18
53#define DAVINCI_LPSC_UART0 19 50#define DAVINCI_LPSC_UART0 19
@@ -73,4 +70,54 @@
73#define DAVINCI_LPSC_GEM 39 70#define DAVINCI_LPSC_GEM 39
74#define DAVINCI_LPSC_IMCOP 40 71#define DAVINCI_LPSC_IMCOP 40
75 72
73#define DM355_LPSC_TIMER3 5
74#define DM355_LPSC_SPI1 6
75#define DM355_LPSC_MMC_SD1 7
76#define DM355_LPSC_McBSP1 8
77#define DM355_LPSC_PWM3 10
78#define DM355_LPSC_SPI2 11
79#define DM355_LPSC_RTO 12
80#define DM355_LPSC_VPSS_DAC 41
81
82/*
83 * LPSC Assignments
84 */
85#define DM646X_LPSC_ARM 0
86#define DM646X_LPSC_C64X_CPU 1
87#define DM646X_LPSC_HDVICP0 2
88#define DM646X_LPSC_HDVICP1 3
89#define DM646X_LPSC_TPCC 4
90#define DM646X_LPSC_TPTC0 5
91#define DM646X_LPSC_TPTC1 6
92#define DM646X_LPSC_TPTC2 7
93#define DM646X_LPSC_TPTC3 8
94#define DM646X_LPSC_PCI 13
95#define DM646X_LPSC_EMAC 14
96#define DM646X_LPSC_VDCE 15
97#define DM646X_LPSC_VPSSMSTR 16
98#define DM646X_LPSC_VPSSSLV 17
99#define DM646X_LPSC_TSIF0 18
100#define DM646X_LPSC_TSIF1 19
101#define DM646X_LPSC_DDR_EMIF 20
102#define DM646X_LPSC_AEMIF 21
103#define DM646X_LPSC_McASP0 22
104#define DM646X_LPSC_McASP1 23
105#define DM646X_LPSC_CRGEN0 24
106#define DM646X_LPSC_CRGEN1 25
107#define DM646X_LPSC_UART0 26
108#define DM646X_LPSC_UART1 27
109#define DM646X_LPSC_UART2 28
110#define DM646X_LPSC_PWM0 29
111#define DM646X_LPSC_PWM1 30
112#define DM646X_LPSC_I2C 31
113#define DM646X_LPSC_SPI 32
114#define DM646X_LPSC_GPIO 33
115#define DM646X_LPSC_TIMER0 34
116#define DM646X_LPSC_TIMER1 35
117#define DM646X_LPSC_ARM_INTC 45
118
119extern int davinci_psc_is_clk_active(unsigned int id);
120extern void davinci_psc_config(unsigned int domain, unsigned int id,
121 char enable);
122
76#endif /* __ASM_ARCH_PSC_H */ 123#endif /* __ASM_ARCH_PSC_H */
diff --git a/arch/arm/mach-davinci/include/mach/serial.h b/arch/arm/mach-davinci/include/mach/serial.h
index fb8cb229bfd2..632847d74a1c 100644
--- a/arch/arm/mach-davinci/include/mach/serial.h
+++ b/arch/arm/mach-davinci/include/mach/serial.h
@@ -13,8 +13,23 @@
13 13
14#include <mach/io.h> 14#include <mach/io.h>
15 15
16#define DAVINCI_UART0_BASE (IO_PHYS + 0x20000) 16#define DAVINCI_MAX_NR_UARTS 3
17#define DAVINCI_UART1_BASE (IO_PHYS + 0x20400) 17#define DAVINCI_UART0_BASE (IO_PHYS + 0x20000)
18#define DAVINCI_UART2_BASE (IO_PHYS + 0x20800) 18#define DAVINCI_UART1_BASE (IO_PHYS + 0x20400)
19#define DAVINCI_UART2_BASE (IO_PHYS + 0x20800)
20
21#define DM355_UART2_BASE (IO_PHYS + 0x206000)
22
23/* DaVinci UART register offsets */
24#define UART_DAVINCI_PWREMU 0x0c
25#define UART_DM646X_SCR 0x10
26#define UART_DM646X_SCR_TX_WATERMARK 0x08
27
28struct davinci_uart_config {
29 /* Bit field of UARTs present; bit 0 --> UART1 */
30 unsigned int enabled_uarts;
31};
32
33extern void davinci_serial_init(struct davinci_uart_config *);
19 34
20#endif /* __ASM_ARCH_SERIAL_H */ 35#endif /* __ASM_ARCH_SERIAL_H */
diff --git a/arch/arm/mach-davinci/io.c b/arch/arm/mach-davinci/io.c
index 299515f70b8b..a548abb513e2 100644
--- a/arch/arm/mach-davinci/io.c
+++ b/arch/arm/mach-davinci/io.c
@@ -51,7 +51,26 @@ void __init davinci_map_common_io(void)
51 davinci_check_revision(); 51 davinci_check_revision();
52} 52}
53 53
54void __init davinci_init_common_hw(void) 54#define BETWEEN(p, st, sz) ((p) >= (st) && (p) < ((st) + (sz)))
55#define XLATE(p, pst, vst) ((void __iomem *)((p) - (pst) + (vst)))
56
57/*
58 * Intercept ioremap() requests for addresses in our fixed mapping regions.
59 */
60void __iomem *davinci_ioremap(unsigned long p, size_t size, unsigned int type)
61{
62 if (BETWEEN(p, IO_PHYS, IO_SIZE))
63 return XLATE(p, IO_PHYS, IO_VIRT);
64
65 return __arm_ioremap(p, size, type);
66}
67EXPORT_SYMBOL(davinci_ioremap);
68
69void davinci_iounmap(volatile void __iomem *addr)
55{ 70{
56 davinci_clk_init(); 71 unsigned long virt = (unsigned long)addr;
72
73 if (virt >= VMALLOC_START && virt < VMALLOC_END)
74 __iounmap(addr);
57} 75}
76EXPORT_SYMBOL(davinci_iounmap);
diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c
index 38021af8359a..5a324c90e291 100644
--- a/arch/arm/mach-davinci/irq.c
+++ b/arch/arm/mach-davinci/irq.c
@@ -25,6 +25,7 @@
25#include <linux/io.h> 25#include <linux/io.h>
26 26
27#include <mach/hardware.h> 27#include <mach/hardware.h>
28#include <mach/cputype.h>
28#include <asm/mach/irq.h> 29#include <asm/mach/irq.h>
29 30
30#define IRQ_BIT(irq) ((irq) & 0x1f) 31#define IRQ_BIT(irq) ((irq) & 0x1f)
@@ -40,14 +41,18 @@
40#define IRQ_INTPRI0_REG_OFFSET 0x0030 41#define IRQ_INTPRI0_REG_OFFSET 0x0030
41#define IRQ_INTPRI7_REG_OFFSET 0x004C 42#define IRQ_INTPRI7_REG_OFFSET 0x004C
42 43
44const u8 *davinci_def_priorities;
45
46#define INTC_BASE IO_ADDRESS(DAVINCI_ARM_INTC_BASE)
47
43static inline unsigned int davinci_irq_readl(int offset) 48static inline unsigned int davinci_irq_readl(int offset)
44{ 49{
45 return davinci_readl(DAVINCI_ARM_INTC_BASE + offset); 50 return __raw_readl(INTC_BASE + offset);
46} 51}
47 52
48static inline void davinci_irq_writel(unsigned long value, int offset) 53static inline void davinci_irq_writel(unsigned long value, int offset)
49{ 54{
50 davinci_writel(value, DAVINCI_ARM_INTC_BASE + offset); 55 __raw_writel(value, INTC_BASE + offset);
51} 56}
52 57
53/* Disable interrupt */ 58/* Disable interrupt */
@@ -108,9 +113,8 @@ static struct irq_chip davinci_irq_chip_0 = {
108 .unmask = davinci_unmask_irq, 113 .unmask = davinci_unmask_irq,
109}; 114};
110 115
111
112/* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */ 116/* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */
113static const u8 default_priorities[DAVINCI_N_AINTC_IRQ] __initdata = { 117static const u8 dm644x_default_priorities[DAVINCI_N_AINTC_IRQ] __initdata = {
114 [IRQ_VDINT0] = 2, 118 [IRQ_VDINT0] = 2,
115 [IRQ_VDINT1] = 6, 119 [IRQ_VDINT1] = 6,
116 [IRQ_VDINT2] = 6, 120 [IRQ_VDINT2] = 6,
@@ -177,11 +181,149 @@ static const u8 default_priorities[DAVINCI_N_AINTC_IRQ] __initdata = {
177 [IRQ_EMUINT] = 7, 181 [IRQ_EMUINT] = 7,
178}; 182};
179 183
184static const u8 dm646x_default_priorities[DAVINCI_N_AINTC_IRQ] = {
185 [IRQ_DM646X_VP_VERTINT0] = 7,
186 [IRQ_DM646X_VP_VERTINT1] = 7,
187 [IRQ_DM646X_VP_VERTINT2] = 7,
188 [IRQ_DM646X_VP_VERTINT3] = 7,
189 [IRQ_DM646X_VP_ERRINT] = 7,
190 [IRQ_DM646X_RESERVED_1] = 7,
191 [IRQ_DM646X_RESERVED_2] = 7,
192 [IRQ_DM646X_WDINT] = 7,
193 [IRQ_DM646X_CRGENINT0] = 7,
194 [IRQ_DM646X_CRGENINT1] = 7,
195 [IRQ_DM646X_TSIFINT0] = 7,
196 [IRQ_DM646X_TSIFINT1] = 7,
197 [IRQ_DM646X_VDCEINT] = 7,
198 [IRQ_DM646X_USBINT] = 7,
199 [IRQ_DM646X_USBDMAINT] = 7,
200 [IRQ_DM646X_PCIINT] = 7,
201 [IRQ_CCINT0] = 7, /* dma */
202 [IRQ_CCERRINT] = 7, /* dma */
203 [IRQ_TCERRINT0] = 7, /* dma */
204 [IRQ_TCERRINT] = 7, /* dma */
205 [IRQ_DM646X_TCERRINT2] = 7,
206 [IRQ_DM646X_TCERRINT3] = 7,
207 [IRQ_DM646X_IDE] = 7,
208 [IRQ_DM646X_HPIINT] = 7,
209 [IRQ_DM646X_EMACRXTHINT] = 7,
210 [IRQ_DM646X_EMACRXINT] = 7,
211 [IRQ_DM646X_EMACTXINT] = 7,
212 [IRQ_DM646X_EMACMISCINT] = 7,
213 [IRQ_DM646X_MCASP0TXINT] = 7,
214 [IRQ_DM646X_MCASP0RXINT] = 7,
215 [IRQ_AEMIFINT] = 7,
216 [IRQ_DM646X_RESERVED_3] = 7,
217 [IRQ_DM646X_MCASP1TXINT] = 7, /* clockevent */
218 [IRQ_TINT0_TINT34] = 7, /* clocksource */
219 [IRQ_TINT1_TINT12] = 7, /* DSP timer */
220 [IRQ_TINT1_TINT34] = 7, /* system tick */
221 [IRQ_PWMINT0] = 7,
222 [IRQ_PWMINT1] = 7,
223 [IRQ_DM646X_VLQINT] = 7,
224 [IRQ_I2C] = 7,
225 [IRQ_UARTINT0] = 7,
226 [IRQ_UARTINT1] = 7,
227 [IRQ_DM646X_UARTINT2] = 7,
228 [IRQ_DM646X_SPINT0] = 7,
229 [IRQ_DM646X_SPINT1] = 7,
230 [IRQ_DM646X_DSP2ARMINT] = 7,
231 [IRQ_DM646X_RESERVED_4] = 7,
232 [IRQ_DM646X_PSCINT] = 7,
233 [IRQ_DM646X_GPIO0] = 7,
234 [IRQ_DM646X_GPIO1] = 7,
235 [IRQ_DM646X_GPIO2] = 7,
236 [IRQ_DM646X_GPIO3] = 7,
237 [IRQ_DM646X_GPIO4] = 7,
238 [IRQ_DM646X_GPIO5] = 7,
239 [IRQ_DM646X_GPIO6] = 7,
240 [IRQ_DM646X_GPIO7] = 7,
241 [IRQ_DM646X_GPIOBNK0] = 7,
242 [IRQ_DM646X_GPIOBNK1] = 7,
243 [IRQ_DM646X_GPIOBNK2] = 7,
244 [IRQ_DM646X_DDRINT] = 7,
245 [IRQ_DM646X_AEMIFINT] = 7,
246 [IRQ_COMMTX] = 7,
247 [IRQ_COMMRX] = 7,
248 [IRQ_EMUINT] = 7,
249};
250
251static const u8 dm355_default_priorities[DAVINCI_N_AINTC_IRQ] = {
252 [IRQ_DM355_CCDC_VDINT0] = 2,
253 [IRQ_DM355_CCDC_VDINT1] = 6,
254 [IRQ_DM355_CCDC_VDINT2] = 6,
255 [IRQ_DM355_IPIPE_HST] = 6,
256 [IRQ_DM355_H3AINT] = 6,
257 [IRQ_DM355_IPIPE_SDR] = 6,
258 [IRQ_DM355_IPIPEIFINT] = 6,
259 [IRQ_DM355_OSDINT] = 7,
260 [IRQ_DM355_VENCINT] = 6,
261 [IRQ_ASQINT] = 6,
262 [IRQ_IMXINT] = 6,
263 [IRQ_USBINT] = 4,
264 [IRQ_DM355_RTOINT] = 4,
265 [IRQ_DM355_UARTINT2] = 7,
266 [IRQ_DM355_TINT6] = 7,
267 [IRQ_CCINT0] = 5, /* dma */
268 [IRQ_CCERRINT] = 5, /* dma */
269 [IRQ_TCERRINT0] = 5, /* dma */
270 [IRQ_TCERRINT] = 5, /* dma */
271 [IRQ_DM355_SPINT2_1] = 7,
272 [IRQ_DM355_TINT7] = 4,
273 [IRQ_DM355_SDIOINT0] = 7,
274 [IRQ_MBXINT] = 7,
275 [IRQ_MBRINT] = 7,
276 [IRQ_MMCINT] = 7,
277 [IRQ_DM355_MMCINT1] = 7,
278 [IRQ_DM355_PWMINT3] = 7,
279 [IRQ_DDRINT] = 7,
280 [IRQ_AEMIFINT] = 7,
281 [IRQ_DM355_SDIOINT1] = 4,
282 [IRQ_TINT0_TINT12] = 2, /* clockevent */
283 [IRQ_TINT0_TINT34] = 2, /* clocksource */
284 [IRQ_TINT1_TINT12] = 7, /* DSP timer */
285 [IRQ_TINT1_TINT34] = 7, /* system tick */
286 [IRQ_PWMINT0] = 7,
287 [IRQ_PWMINT1] = 7,
288 [IRQ_PWMINT2] = 7,
289 [IRQ_I2C] = 3,
290 [IRQ_UARTINT0] = 3,
291 [IRQ_UARTINT1] = 3,
292 [IRQ_DM355_SPINT0_0] = 3,
293 [IRQ_DM355_SPINT0_1] = 3,
294 [IRQ_DM355_GPIO0] = 3,
295 [IRQ_DM355_GPIO1] = 7,
296 [IRQ_DM355_GPIO2] = 4,
297 [IRQ_DM355_GPIO3] = 4,
298 [IRQ_DM355_GPIO4] = 7,
299 [IRQ_DM355_GPIO5] = 7,
300 [IRQ_DM355_GPIO6] = 7,
301 [IRQ_DM355_GPIO7] = 7,
302 [IRQ_DM355_GPIO8] = 7,
303 [IRQ_DM355_GPIO9] = 7,
304 [IRQ_DM355_GPIOBNK0] = 7,
305 [IRQ_DM355_GPIOBNK1] = 7,
306 [IRQ_DM355_GPIOBNK2] = 7,
307 [IRQ_DM355_GPIOBNK3] = 7,
308 [IRQ_DM355_GPIOBNK4] = 7,
309 [IRQ_DM355_GPIOBNK5] = 7,
310 [IRQ_DM355_GPIOBNK6] = 7,
311 [IRQ_COMMTX] = 7,
312 [IRQ_COMMRX] = 7,
313 [IRQ_EMUINT] = 7,
314};
315
180/* ARM Interrupt Controller Initialization */ 316/* ARM Interrupt Controller Initialization */
181void __init davinci_irq_init(void) 317void __init davinci_irq_init(void)
182{ 318{
183 unsigned i; 319 unsigned i;
184 const u8 *priority = default_priorities; 320
321 if (cpu_is_davinci_dm644x())
322 davinci_def_priorities = dm644x_default_priorities;
323 else if (cpu_is_davinci_dm646x())
324 davinci_def_priorities = dm646x_default_priorities;
325 else if (cpu_is_davinci_dm355())
326 davinci_def_priorities = dm355_default_priorities;
185 327
186 /* Clear all interrupt requests */ 328 /* Clear all interrupt requests */
187 davinci_irq_writel(~0x0, FIQ_REG0_OFFSET); 329 davinci_irq_writel(~0x0, FIQ_REG0_OFFSET);
@@ -209,8 +351,8 @@ void __init davinci_irq_init(void)
209 unsigned j; 351 unsigned j;
210 u32 pri; 352 u32 pri;
211 353
212 for (j = 0, pri = 0; j < 32; j += 4, priority++) 354 for (j = 0, pri = 0; j < 32; j += 4, davinci_def_priorities++)
213 pri |= (*priority & 0x07) << j; 355 pri |= (*davinci_def_priorities & 0x07) << j;
214 davinci_irq_writel(pri, i); 356 davinci_irq_writel(pri, i);
215 } 357 }
216 358
diff --git a/arch/arm/mach-davinci/mux.c b/arch/arm/mach-davinci/mux.c
index 8ff9d8aca60b..bbba0b247a44 100644
--- a/arch/arm/mach-davinci/mux.c
+++ b/arch/arm/mach-davinci/mux.c
@@ -1,41 +1,103 @@
1/* 1/*
2 * DaVinci pin multiplexing configurations 2 * Utility to set the DAVINCI MUX register from a table in mux.h
3 * 3 *
4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com> 4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
5 * 5 *
6 * Based on linux/arch/arm/plat-omap/mux.c:
7 * Copyright (C) 2003 - 2005 Nokia Corporation
8 *
9 * Written by Tony Lindgren
10 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under 11 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program 12 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express 13 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied. 14 * or implied.
15 *
16 * Copyright (C) 2008 Texas Instruments.
10 */ 17 */
11#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/module.h>
12#include <linux/spinlock.h> 20#include <linux/spinlock.h>
13 21
14#include <mach/hardware.h> 22#include <mach/hardware.h>
15
16#include <mach/mux.h> 23#include <mach/mux.h>
17 24
18/* System control register offsets */ 25static const struct mux_config *mux_table;
19#define PINMUX0 0x00 26static unsigned long pin_table_sz;
20#define PINMUX1 0x04 27
28int __init davinci_mux_register(const struct mux_config *pins,
29 unsigned long size)
30{
31 mux_table = pins;
32 pin_table_sz = size;
21 33
22static DEFINE_SPINLOCK(mux_lock); 34 return 0;
35}
23 36
24void davinci_mux_peripheral(unsigned int mux, unsigned int enable) 37/*
38 * Sets the DAVINCI MUX register based on the table
39 */
40int __init_or_module davinci_cfg_reg(const unsigned long index)
25{ 41{
26 u32 pinmux, muxreg = PINMUX0; 42 static DEFINE_SPINLOCK(mux_spin_lock);
43 void __iomem *base = IO_ADDRESS(DAVINCI_SYSTEM_MODULE_BASE);
44 unsigned long flags;
45 const struct mux_config *cfg;
46 unsigned int reg_orig = 0, reg = 0;
47 unsigned int mask, warn = 0;
48
49 if (!mux_table)
50 BUG();
51
52 if (index >= pin_table_sz) {
53 printk(KERN_ERR "Invalid pin mux index: %lu (%lu)\n",
54 index, pin_table_sz);
55 dump_stack();
56 return -ENODEV;
57 }
58
59 cfg = &mux_table[index];
60
61 if (cfg->name == NULL) {
62 printk(KERN_ERR "No entry for the specified index\n");
63 return -ENODEV;
64 }
65
66 /* Update the mux register in question */
67 if (cfg->mask) {
68 unsigned tmp1, tmp2;
69
70 spin_lock_irqsave(&mux_spin_lock, flags);
71 reg_orig = __raw_readl(base + cfg->mux_reg);
72
73 mask = (cfg->mask << cfg->mask_offset);
74 tmp1 = reg_orig & mask;
75 reg = reg_orig & ~mask;
76
77 tmp2 = (cfg->mode << cfg->mask_offset);
78 reg |= tmp2;
79
80 if (tmp1 != tmp2)
81 warn = 1;
82
83 __raw_writel(reg, base + cfg->mux_reg);
84 spin_unlock_irqrestore(&mux_spin_lock, flags);
85 }
86
87 if (warn) {
88#ifdef CONFIG_DAVINCI_MUX_WARNINGS
89 printk(KERN_WARNING "MUX: initialized %s\n", cfg->name);
90#endif
91 }
27 92
28 if (mux >= DAVINCI_MUX_LEVEL2) { 93#ifdef CONFIG_DAVINCI_MUX_DEBUG
29 muxreg = PINMUX1; 94 if (cfg->debug || warn) {
30 mux -= DAVINCI_MUX_LEVEL2; 95 printk(KERN_WARNING "MUX: Setting register %s\n", cfg->name);
96 printk(KERN_WARNING " %s (0x%08x) = 0x%08x -> 0x%08x\n",
97 cfg->mux_reg_name, cfg->mux_reg, reg_orig, reg);
31 } 98 }
99#endif
32 100
33 spin_lock(&mux_lock); 101 return 0;
34 pinmux = davinci_readl(DAVINCI_SYSTEM_MODULE_BASE + muxreg);
35 if (enable)
36 pinmux |= (1 << mux);
37 else
38 pinmux &= ~(1 << mux);
39 davinci_writel(pinmux, DAVINCI_SYSTEM_MODULE_BASE + muxreg);
40 spin_unlock(&mux_lock);
41} 102}
103EXPORT_SYMBOL(davinci_cfg_reg);
diff --git a/arch/arm/mach-davinci/mux.h b/arch/arm/mach-davinci/mux.h
new file mode 100644
index 000000000000..adc869413371
--- /dev/null
+++ b/arch/arm/mach-davinci/mux.h
@@ -0,0 +1,51 @@
1/*
2 * Pin-multiplex helper macros for TI DaVinci family devices
3 *
4 * Author: Vladimir Barinov, MontaVista Software, Inc. <source@mvista.com>
5 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 * Copyright (C) 2008 Texas Instruments.
12 */
13#ifndef _MACH_DAVINCI_MUX_H_
14#define _MACH_DAVINCI_MUX_H_
15
16#include <mach/mux.h>
17
18#define MUX_CFG(soc, desc, muxreg, mode_offset, mode_mask, mux_mode, dbg)\
19[soc##_##desc] = { \
20 .name = #desc, \
21 .debug = dbg, \
22 .mux_reg_name = "PINMUX"#muxreg, \
23 .mux_reg = PINMUX##muxreg, \
24 .mask_offset = mode_offset, \
25 .mask = mode_mask, \
26 .mode = mux_mode, \
27 },
28
29#define INT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg) \
30[soc##_##desc] = { \
31 .name = #desc, \
32 .debug = dbg, \
33 .mux_reg_name = "INTMUX", \
34 .mux_reg = INTMUX, \
35 .mask_offset = mode_offset, \
36 .mask = mode_mask, \
37 .mode = mux_mode, \
38 },
39
40#define EVT_CFG(soc, desc, mode_offset, mode_mask, mux_mode, dbg) \
41[soc##_##desc] = { \
42 .name = #desc, \
43 .debug = dbg, \
44 .mux_reg_name = "EVTMUX", \
45 .mux_reg = EVTMUX, \
46 .mask_offset = mode_offset, \
47 .mask = mode_mask, \
48 .mode = mux_mode, \
49 },
50
51#endif /* _MACH_DAVINCI_MUX_H */
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c
index 58754f066d5b..84171abf5f7b 100644
--- a/arch/arm/mach-davinci/psc.c
+++ b/arch/arm/mach-davinci/psc.c
@@ -23,10 +23,13 @@
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/io.h> 24#include <linux/io.h>
25 25
26#include <mach/cputype.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <mach/psc.h> 28#include <mach/psc.h>
28#include <mach/mux.h> 29#include <mach/mux.h>
29 30
31#define DAVINCI_PWR_SLEEP_CNTRL_BASE 0x01C41000
32
30/* PSC register offsets */ 33/* PSC register offsets */
31#define EPCPR 0x070 34#define EPCPR 0x070
32#define PTCMD 0x120 35#define PTCMD 0x120
@@ -36,102 +39,61 @@
36#define MDSTAT 0x800 39#define MDSTAT 0x800
37#define MDCTL 0xA00 40#define MDCTL 0xA00
38 41
39/* System control register offsets */ 42#define MDSTAT_STATE_MASK 0x1f
40#define VDD3P3V_PWDN 0x48
41 43
42static void davinci_psc_mux(unsigned int id) 44/* Return nonzero iff the domain's clock is active */
45int __init davinci_psc_is_clk_active(unsigned int id)
43{ 46{
44 switch (id) { 47 void __iomem *psc_base = IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE);
45 case DAVINCI_LPSC_ATA: 48 u32 mdstat = __raw_readl(psc_base + MDSTAT + 4 * id);
46 davinci_mux_peripheral(DAVINCI_MUX_HDIREN, 1); 49
47 davinci_mux_peripheral(DAVINCI_MUX_ATAEN, 1); 50 /* if clocked, state can be "Enable" or "SyncReset" */
48 break; 51 return mdstat & BIT(12);
49 case DAVINCI_LPSC_MMC_SD:
50 /* VDD power manupulations are done in U-Boot for CPMAC
51 * so applies to MMC as well
52 */
53 /*Set up the pull regiter for MMC */
54 davinci_writel(0, DAVINCI_SYSTEM_MODULE_BASE + VDD3P3V_PWDN);
55 davinci_mux_peripheral(DAVINCI_MUX_MSTK, 0);
56 break;
57 case DAVINCI_LPSC_I2C:
58 davinci_mux_peripheral(DAVINCI_MUX_I2C, 1);
59 break;
60 case DAVINCI_LPSC_McBSP:
61 davinci_mux_peripheral(DAVINCI_MUX_ASP, 1);
62 break;
63 default:
64 break;
65 }
66} 52}
67 53
68/* Enable or disable a PSC domain */ 54/* Enable or disable a PSC domain */
69void davinci_psc_config(unsigned int domain, unsigned int id, char enable) 55void davinci_psc_config(unsigned int domain, unsigned int id, char enable)
70{ 56{
71 u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl, mdstat_mask; 57 u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl;
58 void __iomem *psc_base = IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE);
59 u32 next_state = enable ? 0x3 : 0x2; /* 0x3 enables, 0x2 disables */
72 60
73 mdctl = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + MDCTL + 4 * id); 61 mdctl = __raw_readl(psc_base + MDCTL + 4 * id);
74 if (enable) 62 mdctl &= ~MDSTAT_STATE_MASK;
75 mdctl |= 0x00000003; /* Enable Module */ 63 mdctl |= next_state;
76 else 64 __raw_writel(mdctl, psc_base + MDCTL + 4 * id);
77 mdctl &= 0xFFFFFFF2; /* Disable Module */
78 davinci_writel(mdctl, DAVINCI_PWR_SLEEP_CNTRL_BASE + MDCTL + 4 * id);
79 65
80 pdstat = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + PDSTAT); 66 pdstat = __raw_readl(psc_base + PDSTAT);
81 if ((pdstat & 0x00000001) == 0) { 67 if ((pdstat & 0x00000001) == 0) {
82 pdctl1 = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + PDCTL1); 68 pdctl1 = __raw_readl(psc_base + PDCTL1);
83 pdctl1 |= 0x1; 69 pdctl1 |= 0x1;
84 davinci_writel(pdctl1, DAVINCI_PWR_SLEEP_CNTRL_BASE + PDCTL1); 70 __raw_writel(pdctl1, psc_base + PDCTL1);
85 71
86 ptcmd = 1 << domain; 72 ptcmd = 1 << domain;
87 davinci_writel(ptcmd, DAVINCI_PWR_SLEEP_CNTRL_BASE + PTCMD); 73 __raw_writel(ptcmd, psc_base + PTCMD);
88 74
89 do { 75 do {
90 epcpr = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + 76 epcpr = __raw_readl(psc_base + EPCPR);
91 EPCPR);
92 } while ((((epcpr >> domain) & 1) == 0)); 77 } while ((((epcpr >> domain) & 1) == 0));
93 78
94 pdctl1 = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + PDCTL1); 79 pdctl1 = __raw_readl(psc_base + PDCTL1);
95 pdctl1 |= 0x100; 80 pdctl1 |= 0x100;
96 davinci_writel(pdctl1, DAVINCI_PWR_SLEEP_CNTRL_BASE + PDCTL1); 81 __raw_writel(pdctl1, psc_base + PDCTL1);
97 82
98 do { 83 do {
99 ptstat = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + 84 ptstat = __raw_readl(psc_base +
100 PTSTAT); 85 PTSTAT);
101 } while (!(((ptstat >> domain) & 1) == 0)); 86 } while (!(((ptstat >> domain) & 1) == 0));
102 } else { 87 } else {
103 ptcmd = 1 << domain; 88 ptcmd = 1 << domain;
104 davinci_writel(ptcmd, DAVINCI_PWR_SLEEP_CNTRL_BASE + PTCMD); 89 __raw_writel(ptcmd, psc_base + PTCMD);
105 90
106 do { 91 do {
107 ptstat = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + 92 ptstat = __raw_readl(psc_base + PTSTAT);
108 PTSTAT);
109 } while (!(((ptstat >> domain) & 1) == 0)); 93 } while (!(((ptstat >> domain) & 1) == 0));
110 } 94 }
111 95
112 if (enable)
113 mdstat_mask = 0x3;
114 else
115 mdstat_mask = 0x2;
116
117 do { 96 do {
118 mdstat = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + 97 mdstat = __raw_readl(psc_base + MDSTAT + 4 * id);
119 MDSTAT + 4 * id); 98 } while (!((mdstat & MDSTAT_STATE_MASK) == next_state));
120 } while (!((mdstat & 0x0000001F) == mdstat_mask));
121
122 if (enable)
123 davinci_psc_mux(id);
124}
125
126void __init davinci_psc_init(void)
127{
128 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSMSTR, 1);
129 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSSLV, 1);
130 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPCC, 1);
131 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC0, 1);
132 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC1, 1);
133 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_GPIO, 1);
134
135 /* Turn on WatchDog timer LPSC. Needed for RESET to work */
136 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TIMER2, 1);
137} 99}
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c
index 3010f9971255..695075796522 100644
--- a/arch/arm/mach-davinci/serial.c
+++ b/arch/arm/mach-davinci/serial.c
@@ -32,32 +32,47 @@
32#include <mach/hardware.h> 32#include <mach/hardware.h>
33#include <mach/serial.h> 33#include <mach/serial.h>
34#include <mach/irqs.h> 34#include <mach/irqs.h>
35#include <mach/cputype.h>
36#include "clock.h"
35 37
36#define UART_DAVINCI_PWREMU 0x0c 38static inline unsigned int serial_read_reg(struct plat_serial8250_port *up,
37 39 int offset)
38static inline unsigned int davinci_serial_in(struct plat_serial8250_port *up,
39 int offset)
40{ 40{
41 offset <<= up->regshift; 41 offset <<= up->regshift;
42 return (unsigned int)__raw_readb(up->membase + offset); 42 return (unsigned int)__raw_readl(IO_ADDRESS(up->mapbase) + offset);
43} 43}
44 44
45static inline void davinci_serial_outp(struct plat_serial8250_port *p, 45static inline void serial_write_reg(struct plat_serial8250_port *p, int offset,
46 int offset, int value) 46 int value)
47{ 47{
48 offset <<= p->regshift; 48 offset <<= p->regshift;
49 __raw_writeb(value, p->membase + offset); 49 __raw_writel(value, IO_ADDRESS(p->mapbase) + offset);
50} 50}
51 51
52static struct plat_serial8250_port serial_platform_data[] = { 52static struct plat_serial8250_port serial_platform_data[] = {
53 { 53 {
54 .membase = (char *)IO_ADDRESS(DAVINCI_UART0_BASE), 54 .mapbase = DAVINCI_UART0_BASE,
55 .mapbase = (unsigned long)DAVINCI_UART0_BASE,
56 .irq = IRQ_UARTINT0, 55 .irq = IRQ_UARTINT0,
57 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 56 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
57 UPF_IOREMAP,
58 .iotype = UPIO_MEM,
59 .regshift = 2,
60 },
61 {
62 .mapbase = DAVINCI_UART1_BASE,
63 .irq = IRQ_UARTINT1,
64 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
65 UPF_IOREMAP,
66 .iotype = UPIO_MEM,
67 .regshift = 2,
68 },
69 {
70 .mapbase = DAVINCI_UART2_BASE,
71 .irq = IRQ_UARTINT2,
72 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST |
73 UPF_IOREMAP,
58 .iotype = UPIO_MEM, 74 .iotype = UPIO_MEM,
59 .regshift = 2, 75 .regshift = 2,
60 .uartclk = 27000000,
61 }, 76 },
62 { 77 {
63 .flags = 0 78 .flags = 0
@@ -74,22 +89,68 @@ static struct platform_device serial_device = {
74 89
75static void __init davinci_serial_reset(struct plat_serial8250_port *p) 90static void __init davinci_serial_reset(struct plat_serial8250_port *p)
76{ 91{
77 /* reset both transmitter and receiver: bits 14,13 = UTRST, URRST */
78 unsigned int pwremu = 0; 92 unsigned int pwremu = 0;
79 93
80 davinci_serial_outp(p, UART_IER, 0); /* disable all interrupts */ 94 serial_write_reg(p, UART_IER, 0); /* disable all interrupts */
81 95
82 davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu); 96 /* reset both transmitter and receiver: bits 14,13 = UTRST, URRST */
97 serial_write_reg(p, UART_DAVINCI_PWREMU, pwremu);
83 mdelay(10); 98 mdelay(10);
84 99
85 pwremu |= (0x3 << 13); 100 pwremu |= (0x3 << 13);
86 pwremu |= 0x1; 101 pwremu |= 0x1;
87 davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu); 102 serial_write_reg(p, UART_DAVINCI_PWREMU, pwremu);
103
104 if (cpu_is_davinci_dm646x())
105 serial_write_reg(p, UART_DM646X_SCR,
106 UART_DM646X_SCR_TX_WATERMARK);
107}
108
109void __init davinci_serial_init(struct davinci_uart_config *info)
110{
111 int i;
112 char name[16];
113 struct clk *uart_clk;
114 struct device *dev = &serial_device.dev;
115
116 /*
117 * Make sure the serial ports are muxed on at this point.
118 * You have to mux them off in device drivers later on
119 * if not needed.
120 */
121 for (i = 0; i < DAVINCI_MAX_NR_UARTS; i++) {
122 struct plat_serial8250_port *p = serial_platform_data + i;
123
124 if (!(info->enabled_uarts & (1 << i))) {
125 p->flags = 0;
126 continue;
127 }
128
129 if (cpu_is_davinci_dm646x())
130 p->iotype = UPIO_MEM32;
131
132 if (cpu_is_davinci_dm355()) {
133 if (i == 2) {
134 p->mapbase = (unsigned long)DM355_UART2_BASE;
135 p->irq = IRQ_DM355_UARTINT2;
136 }
137 }
138
139 sprintf(name, "uart%d", i);
140 uart_clk = clk_get(dev, name);
141 if (IS_ERR(uart_clk))
142 printk(KERN_ERR "%s:%d: failed to get UART%d clock\n",
143 __func__, __LINE__, i);
144 else {
145 clk_enable(uart_clk);
146 p->uartclk = clk_get_rate(uart_clk);
147 davinci_serial_reset(p);
148 }
149 }
88} 150}
89 151
90static int __init davinci_init(void) 152static int __init davinci_init(void)
91{ 153{
92 davinci_serial_reset(&serial_platform_data[0]);
93 return platform_device_register(&serial_device); 154 return platform_device_register(&serial_device);
94} 155}
95 156
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c
index f8bcd29d17a6..494e01bff5c3 100644
--- a/arch/arm/mach-davinci/time.c
+++ b/arch/arm/mach-davinci/time.c
@@ -16,6 +16,9 @@
16#include <linux/clockchips.h> 16#include <linux/clockchips.h>
17#include <linux/spinlock.h> 17#include <linux/spinlock.h>
18#include <linux/io.h> 18#include <linux/io.h>
19#include <linux/clk.h>
20#include <linux/err.h>
21#include <linux/device.h>
19 22
20#include <mach/hardware.h> 23#include <mach/hardware.h>
21#include <asm/system.h> 24#include <asm/system.h>
@@ -24,8 +27,11 @@
24#include <asm/mach/time.h> 27#include <asm/mach/time.h>
25#include <asm/errno.h> 28#include <asm/errno.h>
26#include <mach/io.h> 29#include <mach/io.h>
30#include <mach/cputype.h>
31#include "clock.h"
27 32
28static struct clock_event_device clockevent_davinci; 33static struct clock_event_device clockevent_davinci;
34static unsigned int davinci_clock_tick_rate;
29 35
30#define DAVINCI_TIMER0_BASE (IO_PHYS + 0x21400) 36#define DAVINCI_TIMER0_BASE (IO_PHYS + 0x21400)
31#define DAVINCI_TIMER1_BASE (IO_PHYS + 0x21800) 37#define DAVINCI_TIMER1_BASE (IO_PHYS + 0x21800)
@@ -99,9 +105,9 @@ struct timer_s {
99 unsigned int id; 105 unsigned int id;
100 unsigned long period; 106 unsigned long period;
101 unsigned long opts; 107 unsigned long opts;
102 unsigned long reg_base; 108 void __iomem *base;
103 unsigned long tim_reg; 109 unsigned long tim_off;
104 unsigned long prd_reg; 110 unsigned long prd_off;
105 unsigned long enamode_shift; 111 unsigned long enamode_shift;
106 struct irqaction irqaction; 112 struct irqaction irqaction;
107}; 113};
@@ -114,15 +120,15 @@ static struct timer_s timers[];
114 120
115static int timer32_config(struct timer_s *t) 121static int timer32_config(struct timer_s *t)
116{ 122{
117 u32 tcr = davinci_readl(t->reg_base + TCR); 123 u32 tcr = __raw_readl(t->base + TCR);
118 124
119 /* disable timer */ 125 /* disable timer */
120 tcr &= ~(TCR_ENAMODE_MASK << t->enamode_shift); 126 tcr &= ~(TCR_ENAMODE_MASK << t->enamode_shift);
121 davinci_writel(tcr, t->reg_base + TCR); 127 __raw_writel(tcr, t->base + TCR);
122 128
123 /* reset counter to zero, set new period */ 129 /* reset counter to zero, set new period */
124 davinci_writel(0, t->tim_reg); 130 __raw_writel(0, t->base + t->tim_off);
125 davinci_writel(t->period, t->prd_reg); 131 __raw_writel(t->period, t->base + t->prd_off);
126 132
127 /* Set enable mode */ 133 /* Set enable mode */
128 if (t->opts & TIMER_OPTS_ONESHOT) { 134 if (t->opts & TIMER_OPTS_ONESHOT) {
@@ -131,13 +137,13 @@ static int timer32_config(struct timer_s *t)
131 tcr |= TCR_ENAMODE_PERIODIC << t->enamode_shift; 137 tcr |= TCR_ENAMODE_PERIODIC << t->enamode_shift;
132 } 138 }
133 139
134 davinci_writel(tcr, t->reg_base + TCR); 140 __raw_writel(tcr, t->base + TCR);
135 return 0; 141 return 0;
136} 142}
137 143
138static inline u32 timer32_read(struct timer_s *t) 144static inline u32 timer32_read(struct timer_s *t)
139{ 145{
140 return davinci_readl(t->tim_reg); 146 return __raw_readl(t->base + t->tim_off);
141} 147}
142 148
143static irqreturn_t timer_interrupt(int irq, void *dev_id) 149static irqreturn_t timer_interrupt(int irq, void *dev_id)
@@ -176,51 +182,54 @@ static struct timer_s timers[] = {
176 182
177static void __init timer_init(void) 183static void __init timer_init(void)
178{ 184{
179 u32 bases[] = {DAVINCI_TIMER0_BASE, DAVINCI_TIMER1_BASE}; 185 u32 phys_bases[] = {DAVINCI_TIMER0_BASE, DAVINCI_TIMER1_BASE};
180 int i; 186 int i;
181 187
182 /* Global init of each 64-bit timer as a whole */ 188 /* Global init of each 64-bit timer as a whole */
183 for(i=0; i<2; i++) { 189 for(i=0; i<2; i++) {
184 u32 tgcr, base = bases[i]; 190 u32 tgcr;
191 void __iomem *base = IO_ADDRESS(phys_bases[i]);
185 192
186 /* Disabled, Internal clock source */ 193 /* Disabled, Internal clock source */
187 davinci_writel(0, base + TCR); 194 __raw_writel(0, base + TCR);
188 195
189 /* reset both timers, no pre-scaler for timer34 */ 196 /* reset both timers, no pre-scaler for timer34 */
190 tgcr = 0; 197 tgcr = 0;
191 davinci_writel(tgcr, base + TGCR); 198 __raw_writel(tgcr, base + TGCR);
192 199
193 /* Set both timers to unchained 32-bit */ 200 /* Set both timers to unchained 32-bit */
194 tgcr = TGCR_TIMMODE_32BIT_UNCHAINED << TGCR_TIMMODE_SHIFT; 201 tgcr = TGCR_TIMMODE_32BIT_UNCHAINED << TGCR_TIMMODE_SHIFT;
195 davinci_writel(tgcr, base + TGCR); 202 __raw_writel(tgcr, base + TGCR);
196 203
197 /* Unreset timers */ 204 /* Unreset timers */
198 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) | 205 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) |
199 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT); 206 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT);
200 davinci_writel(tgcr, base + TGCR); 207 __raw_writel(tgcr, base + TGCR);
201 208
202 /* Init both counters to zero */ 209 /* Init both counters to zero */
203 davinci_writel(0, base + TIM12); 210 __raw_writel(0, base + TIM12);
204 davinci_writel(0, base + TIM34); 211 __raw_writel(0, base + TIM34);
205 } 212 }
206 213
207 /* Init of each timer as a 32-bit timer */ 214 /* Init of each timer as a 32-bit timer */
208 for (i=0; i< ARRAY_SIZE(timers); i++) { 215 for (i=0; i< ARRAY_SIZE(timers); i++) {
209 struct timer_s *t = &timers[i]; 216 struct timer_s *t = &timers[i];
217 u32 phys_base;
210 218
211 if (t->name) { 219 if (t->name) {
212 t->id = i; 220 t->id = i;
213 t->reg_base = (IS_TIMER1(t->id) ? 221 phys_base = (IS_TIMER1(t->id) ?
214 DAVINCI_TIMER1_BASE : DAVINCI_TIMER0_BASE); 222 DAVINCI_TIMER1_BASE : DAVINCI_TIMER0_BASE);
223 t->base = IO_ADDRESS(phys_base);
215 224
216 if (IS_TIMER_BOT(t->id)) { 225 if (IS_TIMER_BOT(t->id)) {
217 t->enamode_shift = 6; 226 t->enamode_shift = 6;
218 t->tim_reg = t->reg_base + TIM12; 227 t->tim_off = TIM12;
219 t->prd_reg = t->reg_base + PRD12; 228 t->prd_off = PRD12;
220 } else { 229 } else {
221 t->enamode_shift = 22; 230 t->enamode_shift = 22;
222 t->tim_reg = t->reg_base + TIM34; 231 t->tim_off = TIM34;
223 t->prd_reg = t->reg_base + PRD34; 232 t->prd_off = PRD34;
224 } 233 }
225 234
226 /* Register interrupt */ 235 /* Register interrupt */
@@ -238,7 +247,7 @@ static void __init timer_init(void)
238/* 247/*
239 * clocksource 248 * clocksource
240 */ 249 */
241static cycle_t read_cycles(void) 250static cycle_t read_cycles(struct clocksource *cs)
242{ 251{
243 struct timer_s *t = &timers[TID_CLOCKSOURCE]; 252 struct timer_s *t = &timers[TID_CLOCKSOURCE];
244 253
@@ -274,7 +283,7 @@ static void davinci_set_mode(enum clock_event_mode mode,
274 283
275 switch (mode) { 284 switch (mode) {
276 case CLOCK_EVT_MODE_PERIODIC: 285 case CLOCK_EVT_MODE_PERIODIC:
277 t->period = CLOCK_TICK_RATE / (HZ); 286 t->period = davinci_clock_tick_rate / (HZ);
278 t->opts = TIMER_OPTS_PERIODIC; 287 t->opts = TIMER_OPTS_PERIODIC;
279 timer32_config(t); 288 timer32_config(t);
280 break; 289 break;
@@ -301,21 +310,29 @@ static struct clock_event_device clockevent_davinci = {
301 310
302static void __init davinci_timer_init(void) 311static void __init davinci_timer_init(void)
303{ 312{
313 struct clk *timer_clk;
314
304 static char err[] __initdata = KERN_ERR 315 static char err[] __initdata = KERN_ERR
305 "%s: can't register clocksource!\n"; 316 "%s: can't register clocksource!\n";
306 317
307 /* init timer hw */ 318 /* init timer hw */
308 timer_init(); 319 timer_init();
309 320
321 timer_clk = clk_get(NULL, "timer0");
322 BUG_ON(IS_ERR(timer_clk));
323 clk_enable(timer_clk);
324
325 davinci_clock_tick_rate = clk_get_rate(timer_clk);
326
310 /* setup clocksource */ 327 /* setup clocksource */
311 clocksource_davinci.mult = 328 clocksource_davinci.mult =
312 clocksource_khz2mult(CLOCK_TICK_RATE/1000, 329 clocksource_khz2mult(davinci_clock_tick_rate/1000,
313 clocksource_davinci.shift); 330 clocksource_davinci.shift);
314 if (clocksource_register(&clocksource_davinci)) 331 if (clocksource_register(&clocksource_davinci))
315 printk(err, clocksource_davinci.name); 332 printk(err, clocksource_davinci.name);
316 333
317 /* setup clockevent */ 334 /* setup clockevent */
318 clockevent_davinci.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, 335 clockevent_davinci.mult = div_sc(davinci_clock_tick_rate, NSEC_PER_SEC,
319 clockevent_davinci.shift); 336 clockevent_davinci.shift);
320 clockevent_davinci.max_delta_ns = 337 clockevent_davinci.max_delta_ns =
321 clockevent_delta2ns(0xfffffffe, &clockevent_davinci); 338 clockevent_delta2ns(0xfffffffe, &clockevent_davinci);
@@ -333,42 +350,52 @@ struct sys_timer davinci_timer = {
333 350
334/* reset board using watchdog timer */ 351/* reset board using watchdog timer */
335void davinci_watchdog_reset(void) { 352void davinci_watchdog_reset(void) {
336 u32 tgcr, wdtcr, base = DAVINCI_WDOG_BASE; 353 u32 tgcr, wdtcr;
354 void __iomem *base = IO_ADDRESS(DAVINCI_WDOG_BASE);
355 struct device dev;
356 struct clk *wd_clk;
357 char *name = "watchdog";
358
359 dev_set_name(&dev, name);
360 wd_clk = clk_get(&dev, NULL);
361 if (WARN_ON(IS_ERR(wd_clk)))
362 return;
363 clk_enable(wd_clk);
337 364
338 /* disable, internal clock source */ 365 /* disable, internal clock source */
339 davinci_writel(0, base + TCR); 366 __raw_writel(0, base + TCR);
340 367
341 /* reset timer, set mode to 64-bit watchdog, and unreset */ 368 /* reset timer, set mode to 64-bit watchdog, and unreset */
342 tgcr = 0; 369 tgcr = 0;
343 davinci_writel(tgcr, base + TCR); 370 __raw_writel(tgcr, base + TCR);
344 tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT; 371 tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT;
345 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) | 372 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) |
346 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT); 373 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT);
347 davinci_writel(tgcr, base + TCR); 374 __raw_writel(tgcr, base + TCR);
348 375
349 /* clear counter and period regs */ 376 /* clear counter and period regs */
350 davinci_writel(0, base + TIM12); 377 __raw_writel(0, base + TIM12);
351 davinci_writel(0, base + TIM34); 378 __raw_writel(0, base + TIM34);
352 davinci_writel(0, base + PRD12); 379 __raw_writel(0, base + PRD12);
353 davinci_writel(0, base + PRD34); 380 __raw_writel(0, base + PRD34);
354 381
355 /* enable */ 382 /* enable */
356 wdtcr = davinci_readl(base + WDTCR); 383 wdtcr = __raw_readl(base + WDTCR);
357 wdtcr |= WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT; 384 wdtcr |= WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT;
358 davinci_writel(wdtcr, base + WDTCR); 385 __raw_writel(wdtcr, base + WDTCR);
359 386
360 /* put watchdog in pre-active state */ 387 /* put watchdog in pre-active state */
361 wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) | 388 wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) |
362 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); 389 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
363 davinci_writel(wdtcr, base + WDTCR); 390 __raw_writel(wdtcr, base + WDTCR);
364 391
365 /* put watchdog in active state */ 392 /* put watchdog in active state */
366 wdtcr = (WDTCR_WDKEY_SEQ1 << WDTCR_WDKEY_SHIFT) | 393 wdtcr = (WDTCR_WDKEY_SEQ1 << WDTCR_WDKEY_SHIFT) |
367 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); 394 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
368 davinci_writel(wdtcr, base + WDTCR); 395 __raw_writel(wdtcr, base + WDTCR);
369 396
370 /* write an invalid value to the WDKEY field to trigger 397 /* write an invalid value to the WDKEY field to trigger
371 * a watchdog reset */ 398 * a watchdog reset */
372 wdtcr = 0x00004000; 399 wdtcr = 0x00004000;
373 davinci_writel(wdtcr, base + WDTCR); 400 __raw_writel(wdtcr, base + WDTCR);
374} 401}
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
index 2429b79f6da2..abedb6337182 100644
--- a/arch/arm/mach-davinci/usb.c
+++ b/arch/arm/mach-davinci/usb.c
@@ -14,6 +14,8 @@
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/irqs.h> 15#include <mach/irqs.h>
16 16
17#define DAVINCI_USB_OTG_BASE 0x01C64000
18
17#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE) 19#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
18static struct musb_hdrc_eps_bits musb_eps[] = { 20static struct musb_hdrc_eps_bits musb_eps[] = {
19 { "ep1_tx", 8, }, 21 { "ep1_tx", 8, },
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index 6d9152de6074..ae24486f858a 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -100,7 +100,7 @@ static unsigned int last_jiffy_time;
100 100
101#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ) 101#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
102 102
103static int ep93xx_timer_interrupt(int irq, void *dev_id) 103static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id)
104{ 104{
105 __raw_writel(1, EP93XX_TIMER1_CLEAR); 105 __raw_writel(1, EP93XX_TIMER1_CLEAR);
106 while ((signed long) 106 while ((signed long)
diff --git a/arch/arm/mach-imx/include/mach/gpio.h b/arch/arm/mach-imx/include/mach/gpio.h
index 502d5aa2c093..6c2942f82922 100644
--- a/arch/arm/mach-imx/include/mach/gpio.h
+++ b/arch/arm/mach-imx/include/mach/gpio.h
@@ -1,6 +1,7 @@
1#ifndef _IMX_GPIO_H 1#ifndef _IMX_GPIO_H
2 2
3#include <linux/kernel.h> 3#include <linux/kernel.h>
4#include <mach/hardware.h>
4#include <mach/imx-regs.h> 5#include <mach/imx-regs.h>
5 6
6#define IMX_GPIO_ALLOC_MODE_NORMAL 0 7#define IMX_GPIO_ALLOC_MODE_NORMAL 0
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c
index aff0ebcfa847..5aef18b599e5 100644
--- a/arch/arm/mach-imx/time.c
+++ b/arch/arm/mach-imx/time.c
@@ -73,7 +73,7 @@ static void __init imx_timer_hardware_init(void)
73 IMX_TCTL(TIMER_BASE) = TCTL_FRR | TCTL_CLK_PCLK1 | TCTL_TEN; 73 IMX_TCTL(TIMER_BASE) = TCTL_FRR | TCTL_CLK_PCLK1 | TCTL_TEN;
74} 74}
75 75
76cycle_t imx_get_cycles(void) 76cycle_t imx_get_cycles(struct clocksource *cs)
77{ 77{
78 return IMX_TCN(TIMER_BASE); 78 return IMX_TCN(TIMER_BASE);
79} 79}
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index f4656d2ac8a8..1e93dfee7543 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -401,7 +401,7 @@ void __init ixp4xx_sys_init(void)
401/* 401/*
402 * clocksource 402 * clocksource
403 */ 403 */
404cycle_t ixp4xx_get_cycles(void) 404cycle_t ixp4xx_get_cycles(struct clocksource *cs)
405{ 405{
406 return *IXP4XX_OSTS; 406 return *IXP4XX_OSTS;
407} 407}
diff --git a/arch/arm/mach-ixp4xx/ixp4xx_npe.c b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
index 252310234903..7bb8e778e4b6 100644
--- a/arch/arm/mach-ixp4xx/ixp4xx_npe.c
+++ b/arch/arm/mach-ixp4xx/ixp4xx_npe.c
@@ -714,7 +714,7 @@ static int __init npe_init_module(void)
714 } 714 }
715 715
716 if (!found) 716 if (!found)
717 return -ENOSYS; 717 return -ENODEV;
718 return 0; 718 return 0;
719} 719}
720 720
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 16dc9ea08393..eeb00240d784 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -23,6 +23,7 @@
23#include <asm/mach/map.h> 23#include <asm/mach/map.h>
24#include <asm/mach/time.h> 24#include <asm/mach/time.h>
25#include <mach/kirkwood.h> 25#include <mach/kirkwood.h>
26#include <mach/bridge-regs.h>
26#include <plat/cache-feroceon-l2.h> 27#include <plat/cache-feroceon-l2.h>
27#include <plat/ehci-orion.h> 28#include <plat/ehci-orion.h>
28#include <plat/mvsdio.h> 29#include <plat/mvsdio.h>
diff --git a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h
new file mode 100644
index 000000000000..4f7029f521cc
--- /dev/null
+++ b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h
@@ -0,0 +1,42 @@
1/*
2 * arch/arm/mach-kirkwood/include/mach/bridge-regs.h
3 *
4 * Mbus-L to Mbus Bridge Registers
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#ifndef __ASM_ARCH_BRIDGE_REGS_H
12#define __ASM_ARCH_BRIDGE_REGS_H
13
14#include <mach/kirkwood.h>
15
16#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
17#define CPU_RESET 0x00000002
18
19#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
20#define SOFT_RESET_OUT_EN 0x00000004
21
22#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
23#define SOFT_RESET 0x00000001
24
25#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
26#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
27#define BRIDGE_INT_TIMER0 0x0002
28#define BRIDGE_INT_TIMER1 0x0004
29#define BRIDGE_INT_TIMER1_CLR (~0x0004)
30
31#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
32#define IRQ_CAUSE_LOW_OFF 0x0000
33#define IRQ_MASK_LOW_OFF 0x0004
34#define IRQ_CAUSE_HIGH_OFF 0x0010
35#define IRQ_MASK_HIGH_OFF 0x0014
36
37#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
38
39#define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128)
40#define L2_WRITETHROUGH 0x00000010
41
42#endif
diff --git a/arch/arm/mach-kirkwood/include/mach/debug-macro.S b/arch/arm/mach-kirkwood/include/mach/debug-macro.S
index c0cc5b5c82ac..a4a55c199d77 100644
--- a/arch/arm/mach-kirkwood/include/mach/debug-macro.S
+++ b/arch/arm/mach-kirkwood/include/mach/debug-macro.S
@@ -6,7 +6,7 @@
6 * published by the Free Software Foundation. 6 * published by the Free Software Foundation.
7*/ 7*/
8 8
9#include <mach/kirkwood.h> 9#include <mach/bridge-regs.h>
10 10
11 .macro addruart,rx 11 .macro addruart,rx
12 mrc p15, 0, \rx, c1, c0 12 mrc p15, 0, \rx, c1, c0
diff --git a/arch/arm/mach-kirkwood/include/mach/entry-macro.S b/arch/arm/mach-kirkwood/include/mach/entry-macro.S
index 83e0cba77b36..8939d36f893c 100644
--- a/arch/arm/mach-kirkwood/include/mach/entry-macro.S
+++ b/arch/arm/mach-kirkwood/include/mach/entry-macro.S
@@ -8,7 +8,7 @@
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 */ 9 */
10 10
11#include <mach/kirkwood.h> 11#include <mach/bridge-regs.h>
12 12
13 .macro disable_fiq 13 .macro disable_fiq
14 .endm 14 .endm
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
index 38c986853590..b3e13958821d 100644
--- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
@@ -44,44 +44,6 @@
44#define KIRKWOOD_PCIE_MEM_SIZE SZ_128M 44#define KIRKWOOD_PCIE_MEM_SIZE SZ_128M
45 45
46/* 46/*
47 * MBUS bridge registers.
48 */
49#define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x20000)
50#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
51#define CPU_RESET 0x00000002
52#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
53#define SOFT_RESET_OUT_EN 0x00000004
54#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
55#define SOFT_RESET 0x00000001
56#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
57#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
58#define BRIDGE_INT_TIMER0 0x0002
59#define BRIDGE_INT_TIMER1 0x0004
60#define BRIDGE_INT_TIMER1_CLR (~0x0004)
61#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
62#define IRQ_CAUSE_LOW_OFF 0x0000
63#define IRQ_MASK_LOW_OFF 0x0004
64#define IRQ_CAUSE_HIGH_OFF 0x0010
65#define IRQ_MASK_HIGH_OFF 0x0014
66#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
67#define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128)
68#define L2_WRITETHROUGH 0x00000010
69
70/*
71 * Supported devices and revisions.
72 */
73#define MV88F6281_DEV_ID 0x6281
74#define MV88F6281_REV_Z0 0
75#define MV88F6281_REV_A0 2
76
77#define MV88F6192_DEV_ID 0x6192
78#define MV88F6192_REV_Z0 0
79#define MV88F6192_REV_A0 2
80
81#define MV88F6180_DEV_ID 0x6180
82#define MV88F6180_REV_A0 2
83
84/*
85 * Register Map 47 * Register Map
86 */ 48 */
87#define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x00000) 49#define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x00000)
@@ -99,6 +61,8 @@
99#define UART1_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x2100) 61#define UART1_PHYS_BASE (DEV_BUS_PHYS_BASE | 0x2100)
100#define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2100) 62#define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2100)
101 63
64#define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x20000)
65
102#define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x40000) 66#define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x40000)
103 67
104#define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) 68#define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000)
@@ -119,5 +83,18 @@
119 83
120#define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) 84#define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000)
121 85
86/*
87 * Supported devices and revisions.
88 */
89#define MV88F6281_DEV_ID 0x6281
90#define MV88F6281_REV_Z0 0
91#define MV88F6281_REV_A0 2
92
93#define MV88F6192_DEV_ID 0x6192
94#define MV88F6192_REV_Z0 0
95#define MV88F6192_REV_A0 2
96
97#define MV88F6180_DEV_ID 0x6180
98#define MV88F6180_REV_A0 2
122 99
123#endif 100#endif
diff --git a/arch/arm/mach-kirkwood/include/mach/system.h b/arch/arm/mach-kirkwood/include/mach/system.h
index 23a1914c1da8..7568e95d279b 100644
--- a/arch/arm/mach-kirkwood/include/mach/system.h
+++ b/arch/arm/mach-kirkwood/include/mach/system.h
@@ -9,8 +9,7 @@
9#ifndef __ASM_ARCH_SYSTEM_H 9#ifndef __ASM_ARCH_SYSTEM_H
10#define __ASM_ARCH_SYSTEM_H 10#define __ASM_ARCH_SYSTEM_H
11 11
12#include <mach/hardware.h> 12#include <mach/bridge-regs.h>
13#include <mach/kirkwood.h>
14 13
15static inline void arch_idle(void) 14static inline void arch_idle(void)
16{ 15{
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c
index 06083b23bb44..28020abf49e1 100644
--- a/arch/arm/mach-kirkwood/irq.c
+++ b/arch/arm/mach-kirkwood/irq.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <mach/bridge-regs.h>
15#include <plat/irq.h> 16#include <plat/irq.h>
16#include <asm/gpio.h> 17#include <asm/gpio.h>
17#include "common.h" 18#include "common.h"
diff --git a/arch/arm/mach-loki/addr-map.c b/arch/arm/mach-loki/addr-map.c
index 0332d8f5c18c..b9537c97beba 100644
--- a/arch/arm/mach-loki/addr-map.c
+++ b/arch/arm/mach-loki/addr-map.c
@@ -38,6 +38,7 @@
38/* 38/*
39 * CPU Address Decode Windows registers 39 * CPU Address Decode Windows registers
40 */ 40 */
41#define BRIDGE_REG(x) (BRIDGE_VIRT_BASE | (x))
41#define CPU_WIN_CTRL(n) BRIDGE_REG(0x000 | ((n) << 4)) 42#define CPU_WIN_CTRL(n) BRIDGE_REG(0x000 | ((n) << 4))
42#define CPU_WIN_BASE(n) BRIDGE_REG(0x004 | ((n) << 4)) 43#define CPU_WIN_BASE(n) BRIDGE_REG(0x004 | ((n) << 4))
43#define CPU_WIN_REMAP_LO(n) BRIDGE_REG(0x008 | ((n) << 4)) 44#define CPU_WIN_REMAP_LO(n) BRIDGE_REG(0x008 | ((n) << 4))
diff --git a/arch/arm/mach-loki/include/mach/bridge-regs.h b/arch/arm/mach-loki/include/mach/bridge-regs.h
new file mode 100644
index 000000000000..a3fabf70044f
--- /dev/null
+++ b/arch/arm/mach-loki/include/mach/bridge-regs.h
@@ -0,0 +1,33 @@
1/*
2 * arch/arm/mach-loki/include/mach/bridge-regs.h
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2. This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
9#ifndef __ASM_ARCH_BRIDGE_REGS_H
10#define __ASM_ARCH_BRIDGE_REGS_H
11
12#include <mach/loki.h>
13
14#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
15#define SOFT_RESET_OUT_EN 0x00000004
16
17#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
18#define SOFT_RESET 0x00000001
19
20#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
21
22#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
23#define BRIDGE_INT_TIMER0 0x0002
24#define BRIDGE_INT_TIMER1 0x0004
25#define BRIDGE_INT_TIMER1_CLR 0x0004
26
27#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
28#define IRQ_CAUSE_OFF 0x0000
29#define IRQ_MASK_OFF 0x0004
30
31#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
32
33#endif
diff --git a/arch/arm/mach-loki/include/mach/entry-macro.S b/arch/arm/mach-loki/include/mach/entry-macro.S
index 332af38ec13c..bc917ed3a62d 100644
--- a/arch/arm/mach-loki/include/mach/entry-macro.S
+++ b/arch/arm/mach-loki/include/mach/entry-macro.S
@@ -8,7 +8,7 @@
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 */ 9 */
10 10
11#include <mach/loki.h> 11#include <mach/bridge-regs.h>
12 12
13 .macro disable_fiq 13 .macro disable_fiq
14 .endm 14 .endm
diff --git a/arch/arm/mach-loki/include/mach/loki.h b/arch/arm/mach-loki/include/mach/loki.h
index c00af6ba5578..bfca7c265f43 100644
--- a/arch/arm/mach-loki/include/mach/loki.h
+++ b/arch/arm/mach-loki/include/mach/loki.h
@@ -58,20 +58,6 @@
58#define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2100) 58#define UART1_VIRT_BASE (DEV_BUS_VIRT_BASE | 0x2100)
59 59
60#define BRIDGE_VIRT_BASE (LOKI_REGS_VIRT_BASE | 0x20000) 60#define BRIDGE_VIRT_BASE (LOKI_REGS_VIRT_BASE | 0x20000)
61#define BRIDGE_REG(x) (BRIDGE_VIRT_BASE | (x))
62#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
63#define SOFT_RESET_OUT_EN 0x00000004
64#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
65#define SOFT_RESET 0x00000001
66#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
67#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
68#define BRIDGE_INT_TIMER0 0x0002
69#define BRIDGE_INT_TIMER1 0x0004
70#define BRIDGE_INT_TIMER1_CLR 0x0004
71#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
72#define IRQ_CAUSE_OFF 0x0000
73#define IRQ_MASK_OFF 0x0004
74#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
75 61
76#define PCIE0_VIRT_BASE (LOKI_REGS_VIRT_BASE | 0x30000) 62#define PCIE0_VIRT_BASE (LOKI_REGS_VIRT_BASE | 0x30000)
77 63
diff --git a/arch/arm/mach-loki/include/mach/system.h b/arch/arm/mach-loki/include/mach/system.h
index c1de36fe9b37..71895199a534 100644
--- a/arch/arm/mach-loki/include/mach/system.h
+++ b/arch/arm/mach-loki/include/mach/system.h
@@ -9,8 +9,7 @@
9#ifndef __ASM_ARCH_SYSTEM_H 9#ifndef __ASM_ARCH_SYSTEM_H
10#define __ASM_ARCH_SYSTEM_H 10#define __ASM_ARCH_SYSTEM_H
11 11
12#include <mach/hardware.h> 12#include <mach/bridge-regs.h>
13#include <mach/loki.h>
14 13
15static inline void arch_idle(void) 14static inline void arch_idle(void)
16{ 15{
diff --git a/arch/arm/mach-loki/irq.c b/arch/arm/mach-loki/irq.c
index e1f97338d5b7..76b211bfcca2 100644
--- a/arch/arm/mach-loki/irq.c
+++ b/arch/arm/mach-loki/irq.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <linux/io.h> 14#include <linux/io.h>
15#include <mach/bridge-regs.h>
15#include <plat/irq.h> 16#include <plat/irq.h>
16#include "common.h" 17#include "common.h"
17 18
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
index 444d9c0f5ca6..4855b8ca5101 100644
--- a/arch/arm/mach-msm/timer.c
+++ b/arch/arm/mach-msm/timer.c
@@ -57,12 +57,12 @@ static irqreturn_t msm_timer_interrupt(int irq, void *dev_id)
57 return IRQ_HANDLED; 57 return IRQ_HANDLED;
58} 58}
59 59
60static cycle_t msm_gpt_read(void) 60static cycle_t msm_gpt_read(struct clocksource *cs)
61{ 61{
62 return readl(MSM_GPT_BASE + TIMER_COUNT_VAL); 62 return readl(MSM_GPT_BASE + TIMER_COUNT_VAL);
63} 63}
64 64
65static cycle_t msm_dgt_read(void) 65static cycle_t msm_dgt_read(struct clocksource *cs)
66{ 66{
67 return readl(MSM_DGT_BASE + TIMER_COUNT_VAL) >> MSM_DGT_SHIFT; 67 return readl(MSM_DGT_BASE + TIMER_COUNT_VAL) >> MSM_DGT_SHIFT;
68} 68}
diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c
index a575daaa62d1..9ba595083dab 100644
--- a/arch/arm/mach-mv78xx0/common.c
+++ b/arch/arm/mach-mv78xx0/common.c
@@ -20,6 +20,7 @@
20#include <asm/mach/map.h> 20#include <asm/mach/map.h>
21#include <asm/mach/time.h> 21#include <asm/mach/time.h>
22#include <mach/mv78xx0.h> 22#include <mach/mv78xx0.h>
23#include <mach/bridge-regs.h>
23#include <plat/cache-feroceon-l2.h> 24#include <plat/cache-feroceon-l2.h>
24#include <plat/ehci-orion.h> 25#include <plat/ehci-orion.h>
25#include <plat/orion_nand.h> 26#include <plat/orion_nand.h>
diff --git a/arch/arm/mach-mv78xx0/include/mach/bridge-regs.h b/arch/arm/mach-mv78xx0/include/mach/bridge-regs.h
new file mode 100644
index 000000000000..2d14c4fe294d
--- /dev/null
+++ b/arch/arm/mach-mv78xx0/include/mach/bridge-regs.h
@@ -0,0 +1,39 @@
1/*
2 * arch/arm/mach-mv78xx0/include/mach/bridge-regs.h
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2. This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
9#ifndef __ASM_ARCH_BRIDGE_REGS_H
10#define __ASM_ARCH_BRIDGE_REGS_H
11
12#include <mach/mv78xx0.h>
13
14#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
15#define L2_WRITETHROUGH 0x00020000
16
17#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
18#define SOFT_RESET_OUT_EN 0x00000004
19
20#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
21#define SOFT_RESET 0x00000001
22
23#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
24#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
25#define BRIDGE_INT_TIMER0 0x0002
26#define BRIDGE_INT_TIMER1 0x0004
27#define BRIDGE_INT_TIMER1_CLR (~0x0004)
28
29#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
30#define IRQ_CAUSE_ERR_OFF 0x0000
31#define IRQ_CAUSE_LOW_OFF 0x0004
32#define IRQ_CAUSE_HIGH_OFF 0x0008
33#define IRQ_MASK_ERR_OFF 0x000c
34#define IRQ_MASK_LOW_OFF 0x0010
35#define IRQ_MASK_HIGH_OFF 0x0014
36
37#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
38
39#endif
diff --git a/arch/arm/mach-mv78xx0/include/mach/entry-macro.S b/arch/arm/mach-mv78xx0/include/mach/entry-macro.S
index fbfb2693ce6c..66ae2d29e773 100644
--- a/arch/arm/mach-mv78xx0/include/mach/entry-macro.S
+++ b/arch/arm/mach-mv78xx0/include/mach/entry-macro.S
@@ -8,7 +8,7 @@
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 */ 9 */
10 10
11#include <mach/mv78xx0.h> 11#include <mach/bridge-regs.h>
12 12
13 .macro disable_fiq 13 .macro disable_fiq
14 .endm 14 .endm
diff --git a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h
index 582cffc733ad..d715b92b0908 100644
--- a/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h
+++ b/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h
@@ -59,37 +59,6 @@
59 * Core-specific peripheral registers. 59 * Core-specific peripheral registers.
60 */ 60 */
61#define BRIDGE_VIRT_BASE (MV78XX0_CORE_REGS_VIRT_BASE) 61#define BRIDGE_VIRT_BASE (MV78XX0_CORE_REGS_VIRT_BASE)
62#define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104)
63#define L2_WRITETHROUGH 0x00020000
64#define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108)
65#define SOFT_RESET_OUT_EN 0x00000004
66#define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c)
67#define SOFT_RESET 0x00000001
68#define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110)
69#define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114)
70#define BRIDGE_INT_TIMER0 0x0002
71#define BRIDGE_INT_TIMER1 0x0004
72#define BRIDGE_INT_TIMER1_CLR (~0x0004)
73#define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200)
74#define IRQ_CAUSE_ERR_OFF 0x0000
75#define IRQ_CAUSE_LOW_OFF 0x0004
76#define IRQ_CAUSE_HIGH_OFF 0x0008
77#define IRQ_MASK_ERR_OFF 0x000c
78#define IRQ_MASK_LOW_OFF 0x0010
79#define IRQ_MASK_HIGH_OFF 0x0014
80#define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300)
81
82/*
83 * Supported devices and revisions.
84 */
85#define MV78X00_Z0_DEV_ID 0x6381
86#define MV78X00_REV_Z0 1
87
88#define MV78100_DEV_ID 0x7810
89#define MV78100_REV_A0 1
90
91#define MV78200_DEV_ID 0x7820
92#define MV78200_REV_A0 1
93 62
94/* 63/*
95 * Register Map 64 * Register Map
@@ -135,5 +104,16 @@
135 104
136#define SATA_PHYS_BASE (MV78XX0_REGS_PHYS_BASE | 0xa0000) 105#define SATA_PHYS_BASE (MV78XX0_REGS_PHYS_BASE | 0xa0000)
137 106
107/*
108 * Supported devices and revisions.
109 */
110#define MV78X00_Z0_DEV_ID 0x6381
111#define MV78X00_REV_Z0 1
112
113#define MV78100_DEV_ID 0x7810
114#define MV78100_REV_A0 1
115
116#define MV78200_DEV_ID 0x7820
117#define MV78200_REV_A0 1
138 118
139#endif 119#endif
diff --git a/arch/arm/mach-mv78xx0/include/mach/system.h b/arch/arm/mach-mv78xx0/include/mach/system.h
index 1d6350b22d0b..66e7ce4e90bd 100644
--- a/arch/arm/mach-mv78xx0/include/mach/system.h
+++ b/arch/arm/mach-mv78xx0/include/mach/system.h
@@ -9,8 +9,7 @@
9#ifndef __ASM_ARCH_SYSTEM_H 9#ifndef __ASM_ARCH_SYSTEM_H
10#define __ASM_ARCH_SYSTEM_H 10#define __ASM_ARCH_SYSTEM_H
11 11
12#include <mach/hardware.h> 12#include <mach/bridge-regs.h>
13#include <mach/mv78xx0.h>
14 13
15static inline void arch_idle(void) 14static inline void arch_idle(void)
16{ 15{
diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c
index 30b7e4bcdbc7..f289b0ea7dcf 100644
--- a/arch/arm/mach-mv78xx0/irq.c
+++ b/arch/arm/mach-mv78xx0/irq.c
@@ -13,7 +13,7 @@
13#include <linux/pci.h> 13#include <linux/pci.h>
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <asm/gpio.h> 15#include <asm/gpio.h>
16#include <mach/mv78xx0.h> 16#include <mach/bridge-regs.h>
17#include <plat/irq.h> 17#include <plat/irq.h>
18#include "common.h" 18#include "common.h"
19 19
diff --git a/arch/arm/mach-mx1/mx1ads.c b/arch/arm/mach-mx1/mx1ads.c
index 7ae229bc1b79..e54057fb855b 100644
--- a/arch/arm/mach-mx1/mx1ads.c
+++ b/arch/arm/mach-mx1/mx1ads.c
@@ -28,9 +28,7 @@
28#include <mach/common.h> 28#include <mach/common.h>
29#include <mach/imx-uart.h> 29#include <mach/imx-uart.h>
30#include <mach/irqs.h> 30#include <mach/irqs.h>
31#ifdef CONFIG_I2C_IMX
32#include <mach/i2c.h> 31#include <mach/i2c.h>
33#endif
34#include <mach/iomux.h> 32#include <mach/iomux.h>
35#include "devices.h" 33#include "devices.h"
36 34
@@ -114,7 +112,6 @@ static struct platform_device flash_device = {
114 * I2C 112 * I2C
115 */ 113 */
116 114
117#ifdef CONFIG_I2C_IMX
118static int i2c_pins[] = { 115static int i2c_pins[] = {
119 PA15_PF_I2C_SDA, 116 PA15_PF_I2C_SDA,
120 PA16_PF_I2C_SCL, 117 PA16_PF_I2C_SCL,
@@ -157,7 +154,6 @@ static struct i2c_board_info mx1ads_i2c_devices[] = {
157 .platform_data = &pcf857x_data[1], 154 .platform_data = &pcf857x_data[1],
158 }, 155 },
159}; 156};
160#endif
161 157
162/* 158/*
163 * Board init 159 * Board init
@@ -172,12 +168,10 @@ static void __init mx1ads_init(void)
172 mxc_register_device(&flash_device, &mx1ads_flash_data); 168 mxc_register_device(&flash_device, &mx1ads_flash_data);
173 169
174 /* I2C */ 170 /* I2C */
175#ifdef CONFIG_I2C_IMX
176 i2c_register_board_info(0, mx1ads_i2c_devices, 171 i2c_register_board_info(0, mx1ads_i2c_devices,
177 ARRAY_SIZE(mx1ads_i2c_devices)); 172 ARRAY_SIZE(mx1ads_i2c_devices));
178 173
179 mxc_register_device(&imx_i2c_device, &mx1ads_i2c_data); 174 mxc_register_device(&imx_i2c_device, &mx1ads_i2c_data);
180#endif
181} 175}
182 176
183static void __init mx1ads_timer_init(void) 177static void __init mx1ads_timer_init(void)
diff --git a/arch/arm/mach-mx2/clock_imx21.c b/arch/arm/mach-mx2/clock_imx21.c
index 2dee5c87614c..999d013e06e3 100644
--- a/arch/arm/mach-mx2/clock_imx21.c
+++ b/arch/arm/mach-mx2/clock_imx21.c
@@ -919,19 +919,19 @@ static struct clk_lookup lookups[] __initdata = {
919 _REGISTER_CLOCK(NULL, "cspi1", cspi_clk[0]) 919 _REGISTER_CLOCK(NULL, "cspi1", cspi_clk[0])
920 _REGISTER_CLOCK(NULL, "cspi2", cspi_clk[1]) 920 _REGISTER_CLOCK(NULL, "cspi2", cspi_clk[1])
921 _REGISTER_CLOCK(NULL, "cspi3", cspi_clk[2]) 921 _REGISTER_CLOCK(NULL, "cspi3", cspi_clk[2])
922 _REGISTER_CLOCK(NULL, "lcdc", lcdc_clk[0]) 922 _REGISTER_CLOCK("imx-fb.0", NULL, lcdc_clk[0])
923 _REGISTER_CLOCK(NULL, "csi", csi_clk[0]) 923 _REGISTER_CLOCK(NULL, "csi", csi_clk[0])
924 _REGISTER_CLOCK(NULL, "usb", usb_clk[0]) 924 _REGISTER_CLOCK(NULL, "usb", usb_clk[0])
925 _REGISTER_CLOCK(NULL, "ssi1", ssi_clk[0]) 925 _REGISTER_CLOCK(NULL, "ssi1", ssi_clk[0])
926 _REGISTER_CLOCK(NULL, "ssi2", ssi_clk[1]) 926 _REGISTER_CLOCK(NULL, "ssi2", ssi_clk[1])
927 _REGISTER_CLOCK(NULL, "nfc", nfc_clk) 927 _REGISTER_CLOCK("mxc_nand.0", NULL, nfc_clk)
928 _REGISTER_CLOCK(NULL, "dma", dma_clk[0]) 928 _REGISTER_CLOCK(NULL, "dma", dma_clk[0])
929 _REGISTER_CLOCK(NULL, "brom", brom_clk) 929 _REGISTER_CLOCK(NULL, "brom", brom_clk)
930 _REGISTER_CLOCK(NULL, "emma", emma_clk[0]) 930 _REGISTER_CLOCK(NULL, "emma", emma_clk[0])
931 _REGISTER_CLOCK(NULL, "slcdc", slcdc_clk[0]) 931 _REGISTER_CLOCK(NULL, "slcdc", slcdc_clk[0])
932 _REGISTER_CLOCK(NULL, "wdog", wdog_clk) 932 _REGISTER_CLOCK("imx-wdt.0", NULL, wdog_clk)
933 _REGISTER_CLOCK(NULL, "gpio", gpio_clk) 933 _REGISTER_CLOCK(NULL, "gpio", gpio_clk)
934 _REGISTER_CLOCK(NULL, "i2c", i2c_clk) 934 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk)
935 _REGISTER_CLOCK("mxc-keypad", NULL, kpp_clk) 935 _REGISTER_CLOCK("mxc-keypad", NULL, kpp_clk)
936 _REGISTER_CLOCK(NULL, "owire", owire_clk) 936 _REGISTER_CLOCK(NULL, "owire", owire_clk)
937 _REGISTER_CLOCK(NULL, "rtc", rtc_clk) 937 _REGISTER_CLOCK(NULL, "rtc", rtc_clk)
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index d6235583e979..194b8428bba4 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -19,6 +19,8 @@ config MACH_MX31ADS
19config MACH_MX31ADS_WM1133_EV1 19config MACH_MX31ADS_WM1133_EV1
20 bool "Support Wolfson Microelectronics 1133-EV1 module" 20 bool "Support Wolfson Microelectronics 1133-EV1 module"
21 depends on MACH_MX31ADS 21 depends on MACH_MX31ADS
22 depends on MFD_WM8350_I2C
23 depends on REGULATOR_WM8350
22 select MFD_WM8350_CONFIG_MODE_0 24 select MFD_WM8350_CONFIG_MODE_0
23 select MFD_WM8352_CONFIG_MODE_0 25 select MFD_WM8352_CONFIG_MODE_0
24 help 26 help
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c
index 83e5e8e1276f..a6d6efefa6aa 100644
--- a/arch/arm/mach-mx3/mx31ads.c
+++ b/arch/arm/mach-mx3/mx31ads.c
@@ -102,7 +102,7 @@ static struct imxuart_platform_data uart_pdata = {
102 .flags = IMXUART_HAVE_RTSCTS, 102 .flags = IMXUART_HAVE_RTSCTS,
103}; 103};
104 104
105static int uart_pins[] = { 105static unsigned int uart_pins[] = {
106 MX31_PIN_CTS1__CTS1, 106 MX31_PIN_CTS1__CTS1,
107 MX31_PIN_RTS1__RTS1, 107 MX31_PIN_RTS1__RTS1,
108 MX31_PIN_TXD1__TXD1, 108 MX31_PIN_TXD1__TXD1,
@@ -452,6 +452,8 @@ static int mx31_wm8350_init(struct wm8350 *wm8350)
452 452
453 wm8350->codec.platform_data = &imx32ads_wm8350_setup; 453 wm8350->codec.platform_data = &imx32ads_wm8350_setup;
454 454
455 regulator_has_full_constraints();
456
455 return 0; 457 return 0;
456} 458}
457 459
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c
index c3648eff5137..b5227d837b2f 100644
--- a/arch/arm/mach-mx3/pcm037.c
+++ b/arch/arm/mach-mx3/pcm037.c
@@ -226,10 +226,10 @@ static void __init mxc_board_init(void)
226 mxc_iomux_setup_pin(MX31_PIN_BATT_LINE__OWIRE, "batt-0wire"); 226 mxc_iomux_setup_pin(MX31_PIN_BATT_LINE__OWIRE, "batt-0wire");
227 mxc_register_device(&mxc_w1_master_device, NULL); 227 mxc_register_device(&mxc_w1_master_device, NULL);
228 228
229 /* SMSC9215 IRQ pin */ 229 /* LAN9217 IRQ pin */
230 if (!mxc_iomux_setup_pin(IOMUX_MODE(MX31_PIN_GPIO3_1, IOMUX_CONFIG_GPIO), 230 if (!mxc_iomux_setup_pin(IOMUX_MODE(MX31_PIN_GPIO3_1, IOMUX_CONFIG_GPIO),
231 "pcm037-eth")) 231 "pcm037-eth"))
232 gpio_direction_input(MX31_PIN_GPIO3_1); 232 gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO3_1));
233 233
234#ifdef CONFIG_I2C_IMX 234#ifdef CONFIG_I2C_IMX
235 i2c_register_board_info(1, pcm037_i2c_devices, 235 i2c_register_board_info(1, pcm037_i2c_devices,
diff --git a/arch/arm/mach-mx3/qong.c b/arch/arm/mach-mx3/qong.c
index 6c4283cec6f4..5a01e48fd8f1 100644
--- a/arch/arm/mach-mx3/qong.c
+++ b/arch/arm/mach-mx3/qong.c
@@ -251,32 +251,6 @@ static void __init qong_init_fpga(void)
251} 251}
252 252
253/* 253/*
254 * This structure defines the MX31 memory map.
255 */
256static struct map_desc qong_io_desc[] __initdata = {
257 {
258 .virtual = AIPS1_BASE_ADDR_VIRT,
259 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR),
260 .length = AIPS1_SIZE,
261 .type = MT_DEVICE_NONSHARED
262 }, {
263 .virtual = AIPS2_BASE_ADDR_VIRT,
264 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
265 .length = AIPS2_SIZE,
266 .type = MT_DEVICE_NONSHARED
267 }
268};
269
270/*
271 * Set up static virtual mappings.
272 */
273static void __init qong_map_io(void)
274{
275 mxc_map_io();
276 iotable_init(qong_io_desc, ARRAY_SIZE(qong_io_desc));
277}
278
279/*
280 * Board specific initialization. 254 * Board specific initialization.
281 */ 255 */
282static void __init mxc_board_init(void) 256static void __init mxc_board_init(void)
@@ -305,7 +279,7 @@ MACHINE_START(QONG, "Dave/DENX QongEVB-LITE")
305 .phys_io = AIPS1_BASE_ADDR, 279 .phys_io = AIPS1_BASE_ADDR,
306 .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc, 280 .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
307 .boot_params = PHYS_OFFSET + 0x100, 281 .boot_params = PHYS_OFFSET + 0x100,
308 .map_io = qong_map_io, 282 .map_io = mxc_map_io,
309 .init_irq = mxc_init_irq, 283 .init_irq = mxc_init_irq,
310 .init_machine = mxc_board_init, 284 .init_machine = mxc_board_init,
311 .timer = &qong_timer, 285 .timer = &qong_timer,
diff --git a/arch/arm/mach-netx/time.c b/arch/arm/mach-netx/time.c
index f201fddb594f..82801dbf0579 100644
--- a/arch/arm/mach-netx/time.c
+++ b/arch/arm/mach-netx/time.c
@@ -104,7 +104,7 @@ static struct irqaction netx_timer_irq = {
104 .handler = netx_timer_interrupt, 104 .handler = netx_timer_interrupt,
105}; 105};
106 106
107cycle_t netx_get_cycles(void) 107cycle_t netx_get_cycles(struct clocksource *cs)
108{ 108{
109 return readl(NETX_GPIO_COUNTER_CURRENT(TIMER_CLOCKSOURCE)); 109 return readl(NETX_GPIO_COUNTER_CURRENT(TIMER_CLOCKSOURCE));
110} 110}
diff --git a/arch/arm/mach-ns9xxx/time-ns9360.c b/arch/arm/mach-ns9xxx/time-ns9360.c
index 41df69721769..77281260358a 100644
--- a/arch/arm/mach-ns9xxx/time-ns9360.c
+++ b/arch/arm/mach-ns9xxx/time-ns9360.c
@@ -25,7 +25,7 @@
25#define TIMER_CLOCKEVENT 1 25#define TIMER_CLOCKEVENT 1
26static u32 latch; 26static u32 latch;
27 27
28static cycle_t ns9360_clocksource_read(void) 28static cycle_t ns9360_clocksource_read(struct clocksource *cs)
29{ 29{
30 return __raw_readl(SYS_TR(TIMER_CLOCKSOURCE)); 30 return __raw_readl(SYS_TR(TIMER_CLOCKSOURCE));
31} 31}
diff --git a/arch/arm/mach-omap1/board-h2-mmc.c b/arch/arm/mach-omap1/board-h2-mmc.c
index 44d4a966bed9..46098f546824 100644
--- a/arch/arm/mach-omap1/board-h2-mmc.c
+++ b/arch/arm/mach-omap1/board-h2-mmc.c
@@ -26,19 +26,13 @@
26static int mmc_set_power(struct device *dev, int slot, int power_on, 26static int mmc_set_power(struct device *dev, int slot, int power_on,
27 int vdd) 27 int vdd)
28{ 28{
29 if (power_on) 29 gpio_set_value(H2_TPS_GPIO_MMC_PWR_EN, power_on);
30 gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 1);
31 else
32 gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0);
33
34 return 0; 30 return 0;
35} 31}
36 32
37static int mmc_late_init(struct device *dev) 33static int mmc_late_init(struct device *dev)
38{ 34{
39 int ret; 35 int ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power");
40
41 ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power");
42 if (ret < 0) 36 if (ret < 0)
43 return ret; 37 return ret;
44 38
@@ -47,7 +41,7 @@ static int mmc_late_init(struct device *dev)
47 return ret; 41 return ret;
48} 42}
49 43
50static void mmc_shutdown(struct device *dev) 44static void mmc_cleanup(struct device *dev)
51{ 45{
52 gpio_free(H2_TPS_GPIO_MMC_PWR_EN); 46 gpio_free(H2_TPS_GPIO_MMC_PWR_EN);
53} 47}
@@ -60,7 +54,7 @@ static void mmc_shutdown(struct device *dev)
60static struct omap_mmc_platform_data mmc1_data = { 54static struct omap_mmc_platform_data mmc1_data = {
61 .nr_slots = 1, 55 .nr_slots = 1,
62 .init = mmc_late_init, 56 .init = mmc_late_init,
63 .shutdown = mmc_shutdown, 57 .cleanup = mmc_cleanup,
64 .dma_mask = 0xffffffff, 58 .dma_mask = 0xffffffff,
65 .slots[0] = { 59 .slots[0] = {
66 .set_power = mmc_set_power, 60 .set_power = mmc_set_power,
diff --git a/arch/arm/mach-omap1/board-h3-mmc.c b/arch/arm/mach-omap1/board-h3-mmc.c
index 0d8a3c195e2e..5e8877ce35e0 100644
--- a/arch/arm/mach-omap1/board-h3-mmc.c
+++ b/arch/arm/mach-omap1/board-h3-mmc.c
@@ -26,11 +26,7 @@
26static int mmc_set_power(struct device *dev, int slot, int power_on, 26static int mmc_set_power(struct device *dev, int slot, int power_on,
27 int vdd) 27 int vdd)
28{ 28{
29 if (power_on) 29 gpio_set_value(H3_TPS_GPIO_MMC_PWR_EN, power_on);
30 gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 1);
31 else
32 gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0);
33
34 return 0; 30 return 0;
35} 31}
36 32
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 4695965114c4..f597968733b4 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -39,12 +39,10 @@
39#include <asm/mach/flash.h> 39#include <asm/mach/flash.h>
40#include <asm/mach/map.h> 40#include <asm/mach/map.h>
41 41
42#include <mach/gpioexpander.h>
43#include <mach/irqs.h> 42#include <mach/irqs.h>
44#include <mach/mux.h> 43#include <mach/mux.h>
45#include <mach/tc.h> 44#include <mach/tc.h>
46#include <mach/nand.h> 45#include <mach/nand.h>
47#include <mach/irda.h>
48#include <mach/usb.h> 46#include <mach/usb.h>
49#include <mach/keypad.h> 47#include <mach/keypad.h>
50#include <mach/dma.h> 48#include <mach/dma.h>
@@ -276,104 +274,6 @@ static struct platform_device h3_kp_device = {
276 .resource = h3_kp_resources, 274 .resource = h3_kp_resources,
277}; 275};
278 276
279
280/* Select between the IrDA and aGPS module
281 */
282static int h3_select_irda(struct device *dev, int state)
283{
284 unsigned char expa;
285 int err = 0;
286
287 if ((err = read_gpio_expa(&expa, 0x26))) {
288 printk(KERN_ERR "Error reading from I/O EXPANDER \n");
289 return err;
290 }
291
292 /* 'P6' enable/disable IRDA_TX and IRDA_RX */
293 if (state & IR_SEL) { /* IrDA */
294 if ((err = write_gpio_expa(expa | 0x40, 0x26))) {
295 printk(KERN_ERR "Error writing to I/O EXPANDER \n");
296 return err;
297 }
298 } else {
299 if ((err = write_gpio_expa(expa & ~0x40, 0x26))) {
300 printk(KERN_ERR "Error writing to I/O EXPANDER \n");
301 return err;
302 }
303 }
304 return err;
305}
306
307static void set_trans_mode(struct work_struct *work)
308{
309 struct omap_irda_config *irda_config =
310 container_of(work, struct omap_irda_config, gpio_expa.work);
311 int mode = irda_config->mode;
312 unsigned char expa;
313 int err = 0;
314
315 if ((err = read_gpio_expa(&expa, 0x27)) != 0) {
316 printk(KERN_ERR "Error reading from I/O expander\n");
317 }
318
319 expa &= ~0x03;
320
321 if (mode & IR_SIRMODE) {
322 expa |= 0x01;
323 } else { /* MIR/FIR */
324 expa |= 0x03;
325 }
326
327 if ((err = write_gpio_expa(expa, 0x27)) != 0) {
328 printk(KERN_ERR "Error writing to I/O expander\n");
329 }
330}
331
332static int h3_transceiver_mode(struct device *dev, int mode)
333{
334 struct omap_irda_config *irda_config = dev->platform_data;
335
336 irda_config->mode = mode;
337 cancel_delayed_work(&irda_config->gpio_expa);
338 PREPARE_DELAYED_WORK(&irda_config->gpio_expa, set_trans_mode);
339 schedule_delayed_work(&irda_config->gpio_expa, 0);
340
341 return 0;
342}
343
344static struct omap_irda_config h3_irda_data = {
345 .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
346 .transceiver_mode = h3_transceiver_mode,
347 .select_irda = h3_select_irda,
348 .rx_channel = OMAP_DMA_UART3_RX,
349 .tx_channel = OMAP_DMA_UART3_TX,
350 .dest_start = UART3_THR,
351 .src_start = UART3_RHR,
352 .tx_trigger = 0,
353 .rx_trigger = 0,
354};
355
356static struct resource h3_irda_resources[] = {
357 [0] = {
358 .start = INT_UART3,
359 .end = INT_UART3,
360 .flags = IORESOURCE_IRQ,
361 },
362};
363
364static u64 irda_dmamask = 0xffffffff;
365
366static struct platform_device h3_irda_device = {
367 .name = "omapirda",
368 .id = 0,
369 .dev = {
370 .platform_data = &h3_irda_data,
371 .dma_mask = &irda_dmamask,
372 },
373 .num_resources = ARRAY_SIZE(h3_irda_resources),
374 .resource = h3_irda_resources,
375};
376
377static struct platform_device h3_lcd_device = { 277static struct platform_device h3_lcd_device = {
378 .name = "lcd_h3", 278 .name = "lcd_h3",
379 .id = -1, 279 .id = -1,
@@ -395,7 +295,6 @@ static struct platform_device *devices[] __initdata = {
395 &nand_device, 295 &nand_device,
396 &smc91x_device, 296 &smc91x_device,
397 &intlat_device, 297 &intlat_device,
398 &h3_irda_device,
399 &h3_kp_device, 298 &h3_kp_device,
400 &h3_lcd_device, 299 &h3_lcd_device,
401}; 300};
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 7bc7a3cb9c51..d1ed1365319e 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -181,11 +181,7 @@ static struct omap_usb_config nokia770_usb_config __initdata = {
181static int nokia770_mmc_set_power(struct device *dev, int slot, int power_on, 181static int nokia770_mmc_set_power(struct device *dev, int slot, int power_on,
182 int vdd) 182 int vdd)
183{ 183{
184 if (power_on) 184 gpio_set_value(NOKIA770_GPIO_MMC_POWER, power_on);
185 gpio_set_value(NOKIA770_GPIO_MMC_POWER, 1);
186 else
187 gpio_set_value(NOKIA770_GPIO_MMC_POWER, 0);
188
189 return 0; 185 return 0;
190} 186}
191 187
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index d040c3f1027f..a2d7814896be 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -40,8 +40,8 @@ static void omap1_mcbsp_request(unsigned int id)
40 */ 40 */
41 if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) { 41 if (id == OMAP_MCBSP1 || id == OMAP_MCBSP3) {
42 if (dsp_use++ == 0) { 42 if (dsp_use++ == 0) {
43 api_clk = clk_get(NULL, "api_clk"); 43 api_clk = clk_get(NULL, "api_ck");
44 dsp_clk = clk_get(NULL, "dsp_clk"); 44 dsp_clk = clk_get(NULL, "dsp_ck");
45 if (!IS_ERR(api_clk) && !IS_ERR(dsp_clk)) { 45 if (!IS_ERR(api_clk) && !IS_ERR(dsp_clk)) {
46 clk_enable(api_clk); 46 clk_enable(api_clk);
47 clk_enable(dsp_clk); 47 clk_enable(dsp_clk);
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
index 495a32c287b4..4d56408d3cff 100644
--- a/arch/arm/mach-omap1/time.c
+++ b/arch/arm/mach-omap1/time.c
@@ -198,7 +198,7 @@ static struct irqaction omap_mpu_timer2_irq = {
198 .handler = omap_mpu_timer2_interrupt, 198 .handler = omap_mpu_timer2_interrupt,
199}; 199};
200 200
201static cycle_t mpu_read(void) 201static cycle_t mpu_read(struct clocksource *cs)
202{ 202{
203 return ~omap_mpu_timer_read(1); 203 return ~omap_mpu_timer_read(1);
204} 204}
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
index a0267a9ab466..e7d017cdc438 100644
--- a/arch/arm/mach-omap2/board-h4.c
+++ b/arch/arm/mach-omap2/board-h4.c
@@ -33,10 +33,8 @@
33 33
34#include <mach/control.h> 34#include <mach/control.h>
35#include <mach/gpio.h> 35#include <mach/gpio.h>
36#include <mach/gpioexpander.h>
37#include <mach/mux.h> 36#include <mach/mux.h>
38#include <mach/usb.h> 37#include <mach/usb.h>
39#include <mach/irda.h>
40#include <mach/board.h> 38#include <mach/board.h>
41#include <mach/common.h> 39#include <mach/common.h>
42#include <mach/keypad.h> 40#include <mach/keypad.h>
@@ -138,98 +136,6 @@ static struct platform_device h4_flash_device = {
138 .resource = &h4_flash_resource, 136 .resource = &h4_flash_resource,
139}; 137};
140 138
141/* Select between the IrDA and aGPS module
142 */
143static int h4_select_irda(struct device *dev, int state)
144{
145 unsigned char expa;
146 int err = 0;
147
148 if ((err = read_gpio_expa(&expa, 0x21))) {
149 printk(KERN_ERR "Error reading from I/O expander\n");
150 return err;
151 }
152
153 /* 'P6' enable/disable IRDA_TX and IRDA_RX */
154 if (state & IR_SEL) { /* IrDa */
155 if ((err = write_gpio_expa(expa | 0x01, 0x21))) {
156 printk(KERN_ERR "Error writing to I/O expander\n");
157 return err;
158 }
159 } else {
160 if ((err = write_gpio_expa(expa & ~0x01, 0x21))) {
161 printk(KERN_ERR "Error writing to I/O expander\n");
162 return err;
163 }
164 }
165 return err;
166}
167
168static void set_trans_mode(struct work_struct *work)
169{
170 struct omap_irda_config *irda_config =
171 container_of(work, struct omap_irda_config, gpio_expa.work);
172 int mode = irda_config->mode;
173 unsigned char expa;
174 int err = 0;
175
176 if ((err = read_gpio_expa(&expa, 0x20)) != 0) {
177 printk(KERN_ERR "Error reading from I/O expander\n");
178 }
179
180 expa &= ~0x01;
181
182 if (!(mode & IR_SIRMODE)) { /* MIR/FIR */
183 expa |= 0x01;
184 }
185
186 if ((err = write_gpio_expa(expa, 0x20)) != 0) {
187 printk(KERN_ERR "Error writing to I/O expander\n");
188 }
189}
190
191static int h4_transceiver_mode(struct device *dev, int mode)
192{
193 struct omap_irda_config *irda_config = dev->platform_data;
194
195 irda_config->mode = mode;
196 cancel_delayed_work(&irda_config->gpio_expa);
197 PREPARE_DELAYED_WORK(&irda_config->gpio_expa, set_trans_mode);
198 schedule_delayed_work(&irda_config->gpio_expa, 0);
199
200 return 0;
201}
202
203static struct omap_irda_config h4_irda_data = {
204 .transceiver_cap = IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
205 .transceiver_mode = h4_transceiver_mode,
206 .select_irda = h4_select_irda,
207 .rx_channel = OMAP24XX_DMA_UART3_RX,
208 .tx_channel = OMAP24XX_DMA_UART3_TX,
209 .dest_start = OMAP_UART3_BASE,
210 .src_start = OMAP_UART3_BASE,
211 .tx_trigger = OMAP24XX_DMA_UART3_TX,
212 .rx_trigger = OMAP24XX_DMA_UART3_RX,
213};
214
215static struct resource h4_irda_resources[] = {
216 [0] = {
217 .start = INT_24XX_UART3_IRQ,
218 .end = INT_24XX_UART3_IRQ,
219 .flags = IORESOURCE_IRQ,
220 },
221};
222
223static struct platform_device h4_irda_device = {
224 .name = "omapirda",
225 .id = -1,
226 .dev = {
227 .platform_data = &h4_irda_data,
228 },
229 .num_resources = 1,
230 .resource = h4_irda_resources,
231};
232
233static struct omap_kp_platform_data h4_kp_data = { 139static struct omap_kp_platform_data h4_kp_data = {
234 .rows = 6, 140 .rows = 6,
235 .cols = 7, 141 .cols = 7,
@@ -255,7 +161,6 @@ static struct platform_device h4_lcd_device = {
255 161
256static struct platform_device *h4_devices[] __initdata = { 162static struct platform_device *h4_devices[] __initdata = {
257 &h4_flash_device, 163 &h4_flash_device,
258 &h4_irda_device,
259 &h4_kp_device, 164 &h4_kp_device,
260 &h4_lcd_device, 165 &h4_lcd_device,
261}; 166};
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 744740ae1b9c..3a7a29d1f9a7 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -42,6 +42,7 @@
42#include <mach/nand.h> 42#include <mach/nand.h>
43#include <mach/mux.h> 43#include <mach/mux.h>
44#include <mach/usb.h> 44#include <mach/usb.h>
45#include <mach/timer-gp.h>
45 46
46#include "mmc-twl4030.h" 47#include "mmc-twl4030.h"
47 48
@@ -186,6 +187,9 @@ static void __init omap3_beagle_init_irq(void)
186{ 187{
187 omap2_init_common_hw(NULL); 188 omap2_init_common_hw(NULL);
188 omap_init_irq(); 189 omap_init_irq();
190#ifdef CONFIG_OMAP_32K_TIMER
191 omap2_gp_clockevent_set_gptimer(12);
192#endif
189 omap_gpio_init(); 193 omap_gpio_init();
190} 194}
191 195
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 3a0daac6c839..374ff63c3eb2 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -15,7 +15,6 @@
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/clk.h> 16#include <linux/clk.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/delay.h>
19#include <linux/gpio.h> 18#include <linux/gpio.h>
20 19
21#include <mach/hardware.h> 20#include <mach/hardware.h>
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
index 1e839c5a28c5..efc59c49341b 100644
--- a/arch/arm/mach-omap2/clock24xx.c
+++ b/arch/arm/mach-omap2/clock24xx.c
@@ -60,12 +60,13 @@ struct omap_clk {
60 }, \ 60 }, \
61 } 61 }
62 62
63#define CK_243X (1 << 0) 63#define CK_243X RATE_IN_243X
64#define CK_242X (1 << 1) 64#define CK_242X RATE_IN_242X
65 65
66static struct omap_clk omap24xx_clks[] = { 66static struct omap_clk omap24xx_clks[] = {
67 /* external root sources */ 67 /* external root sources */
68 CLK(NULL, "func_32k_ck", &func_32k_ck, CK_243X | CK_242X), 68 CLK(NULL, "func_32k_ck", &func_32k_ck, CK_243X | CK_242X),
69 CLK(NULL, "secure_32k_ck", &secure_32k_ck, CK_243X | CK_242X),
69 CLK(NULL, "osc_ck", &osc_ck, CK_243X | CK_242X), 70 CLK(NULL, "osc_ck", &osc_ck, CK_243X | CK_242X),
70 CLK(NULL, "sys_ck", &sys_ck, CK_243X | CK_242X), 71 CLK(NULL, "sys_ck", &sys_ck, CK_243X | CK_242X),
71 CLK(NULL, "alt_ck", &alt_ck, CK_243X | CK_242X), 72 CLK(NULL, "alt_ck", &alt_ck, CK_243X | CK_242X),
@@ -711,7 +712,7 @@ int __init omap2_clk_init(void)
711{ 712{
712 struct prcm_config *prcm; 713 struct prcm_config *prcm;
713 struct omap_clk *c; 714 struct omap_clk *c;
714 u32 clkrate, cpu_mask; 715 u32 clkrate;
715 716
716 if (cpu_is_omap242x()) 717 if (cpu_is_omap242x())
717 cpu_mask = RATE_IN_242X; 718 cpu_mask = RATE_IN_242X;
@@ -720,21 +721,15 @@ int __init omap2_clk_init(void)
720 721
721 clk_init(&omap2_clk_functions); 722 clk_init(&omap2_clk_functions);
722 723
724 for (c = omap24xx_clks; c < omap24xx_clks + ARRAY_SIZE(omap24xx_clks); c++)
725 clk_init_one(c->lk.clk);
726
723 osc_ck.rate = omap2_osc_clk_recalc(&osc_ck); 727 osc_ck.rate = omap2_osc_clk_recalc(&osc_ck);
724 propagate_rate(&osc_ck); 728 propagate_rate(&osc_ck);
725 sys_ck.rate = omap2_sys_clk_recalc(&sys_ck); 729 sys_ck.rate = omap2_sys_clk_recalc(&sys_ck);
726 propagate_rate(&sys_ck); 730 propagate_rate(&sys_ck);
727 731
728 for (c = omap24xx_clks; c < omap24xx_clks + ARRAY_SIZE(omap24xx_clks); c++) 732 for (c = omap24xx_clks; c < omap24xx_clks + ARRAY_SIZE(omap24xx_clks); c++)
729 clk_init_one(c->lk.clk);
730
731 cpu_mask = 0;
732 if (cpu_is_omap2420())
733 cpu_mask |= CK_242X;
734 if (cpu_is_omap2430())
735 cpu_mask |= CK_243X;
736
737 for (c = omap24xx_clks; c < omap24xx_clks + ARRAY_SIZE(omap24xx_clks); c++)
738 if (c->cpu & cpu_mask) { 733 if (c->cpu & cpu_mask) {
739 clkdev_add(&c->lk); 734 clkdev_add(&c->lk);
740 clk_register(c->lk.clk); 735 clk_register(c->lk.clk);
diff --git a/arch/arm/mach-omap2/clock24xx.h b/arch/arm/mach-omap2/clock24xx.h
index 33c3e5b14323..88c5acb40fcf 100644
--- a/arch/arm/mach-omap2/clock24xx.h
+++ b/arch/arm/mach-omap2/clock24xx.h
@@ -625,6 +625,14 @@ static struct clk func_32k_ck = {
625 .clkdm_name = "wkup_clkdm", 625 .clkdm_name = "wkup_clkdm",
626}; 626};
627 627
628static struct clk secure_32k_ck = {
629 .name = "secure_32k_ck",
630 .ops = &clkops_null,
631 .rate = 32768,
632 .flags = RATE_FIXED,
633 .clkdm_name = "wkup_clkdm",
634};
635
628/* Typical 12/13MHz in standalone mode, will be 26Mhz in chassis mode */ 636/* Typical 12/13MHz in standalone mode, will be 26Mhz in chassis mode */
629static struct clk osc_ck = { /* (*12, *13, 19.2, *26, 38.4)MHz */ 637static struct clk osc_ck = { /* (*12, *13, 19.2, *26, 38.4)MHz */
630 .name = "osc_ck", 638 .name = "osc_ck",
@@ -1790,7 +1798,7 @@ static struct clk gpt12_ick = {
1790static struct clk gpt12_fck = { 1798static struct clk gpt12_fck = {
1791 .name = "gpt12_fck", 1799 .name = "gpt12_fck",
1792 .ops = &clkops_omap2_dflt_wait, 1800 .ops = &clkops_omap2_dflt_wait,
1793 .parent = &func_32k_ck, 1801 .parent = &secure_32k_ck,
1794 .clkdm_name = "core_l4_clkdm", 1802 .clkdm_name = "core_l4_clkdm",
1795 .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), 1803 .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1),
1796 .enable_bit = OMAP24XX_EN_GPT12_SHIFT, 1804 .enable_bit = OMAP24XX_EN_GPT12_SHIFT,
diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
index 70ec10deb654..6763b8f73028 100644
--- a/arch/arm/mach-omap2/clock34xx.h
+++ b/arch/arm/mach-omap2/clock34xx.h
@@ -2052,7 +2052,7 @@ static struct clk dss_ick = {
2052 2052
2053static struct clk cam_mclk = { 2053static struct clk cam_mclk = {
2054 .name = "cam_mclk", 2054 .name = "cam_mclk",
2055 .ops = &clkops_omap2_dflt_wait, 2055 .ops = &clkops_omap2_dflt,
2056 .parent = &dpll4_m5x2_ck, 2056 .parent = &dpll4_m5x2_ck,
2057 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN), 2057 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN),
2058 .enable_bit = OMAP3430_EN_CAM_SHIFT, 2058 .enable_bit = OMAP3430_EN_CAM_SHIFT,
@@ -2063,7 +2063,7 @@ static struct clk cam_mclk = {
2063static struct clk cam_ick = { 2063static struct clk cam_ick = {
2064 /* Handles both L3 and L4 clocks */ 2064 /* Handles both L3 and L4 clocks */
2065 .name = "cam_ick", 2065 .name = "cam_ick",
2066 .ops = &clkops_omap2_dflt_wait, 2066 .ops = &clkops_omap2_dflt,
2067 .parent = &l4_ick, 2067 .parent = &l4_ick,
2068 .init = &omap2_init_clk_clkdm, 2068 .init = &omap2_init_clk_clkdm,
2069 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_ICLKEN), 2069 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_ICLKEN),
@@ -2074,7 +2074,7 @@ static struct clk cam_ick = {
2074 2074
2075static struct clk csi2_96m_fck = { 2075static struct clk csi2_96m_fck = {
2076 .name = "csi2_96m_fck", 2076 .name = "csi2_96m_fck",
2077 .ops = &clkops_omap2_dflt_wait, 2077 .ops = &clkops_omap2_dflt,
2078 .parent = &core_96m_fck, 2078 .parent = &core_96m_fck,
2079 .init = &omap2_init_clk_clkdm, 2079 .init = &omap2_init_clk_clkdm,
2080 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN), 2080 .enable_reg = OMAP_CM_REGADDR(OMAP3430_CAM_MOD, CM_FCLKEN),
@@ -2901,7 +2901,6 @@ static struct clk sr_l4_ick = {
2901 2901
2902/* SECURE_32K_FCK clocks */ 2902/* SECURE_32K_FCK clocks */
2903 2903
2904/* XXX This clock no longer exists in 3430 TRM rev F */
2905static struct clk gpt12_fck = { 2904static struct clk gpt12_fck = {
2906 .name = "gpt12_fck", 2905 .name = "gpt12_fck",
2907 .ops = &clkops_null, 2906 .ops = &clkops_null,
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index d6b4b2f8722f..496983ade97e 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -25,7 +25,6 @@
25#include <mach/board.h> 25#include <mach/board.h>
26#include <mach/mux.h> 26#include <mach/mux.h>
27#include <mach/gpio.h> 27#include <mach/gpio.h>
28#include <mach/eac.h>
29#include <mach/mmc.h> 28#include <mach/mmc.h>
30 29
31#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE) 30#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
@@ -366,38 +365,6 @@ static void omap_init_mcspi(void)
366static inline void omap_init_mcspi(void) {} 365static inline void omap_init_mcspi(void) {}
367#endif 366#endif
368 367
369#ifdef CONFIG_SND_OMAP24XX_EAC
370
371#define OMAP2_EAC_BASE 0x48090000
372
373static struct resource omap2_eac_resources[] = {
374 {
375 .start = OMAP2_EAC_BASE,
376 .end = OMAP2_EAC_BASE + 0x109,
377 .flags = IORESOURCE_MEM,
378 },
379};
380
381static struct platform_device omap2_eac_device = {
382 .name = "omap24xx-eac",
383 .id = -1,
384 .num_resources = ARRAY_SIZE(omap2_eac_resources),
385 .resource = omap2_eac_resources,
386 .dev = {
387 .platform_data = NULL,
388 },
389};
390
391void omap_init_eac(struct eac_platform_data *pdata)
392{
393 omap2_eac_device.dev.platform_data = pdata;
394 platform_device_register(&omap2_eac_device);
395}
396
397#else
398void omap_init_eac(struct eac_platform_data *pdata) {}
399#endif
400
401#ifdef CONFIG_OMAP_SHA1_MD5 368#ifdef CONFIG_OMAP_SHA1_MD5
402static struct resource sha1_md5_resources[] = { 369static struct resource sha1_md5_resources[] = {
403 { 370 {
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 9ba20d985dda..998c5c45587e 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -73,9 +73,9 @@ static int omap_check_spurious(unsigned int irq)
73 u32 sir, spurious; 73 u32 sir, spurious;
74 74
75 sir = intc_bank_read_reg(&irq_banks[0], INTC_SIR); 75 sir = intc_bank_read_reg(&irq_banks[0], INTC_SIR);
76 spurious = sir >> 6; 76 spurious = sir >> 7;
77 77
78 if (spurious > 1) { 78 if (spurious) {
79 printk(KERN_WARNING "Spurious irq %i: 0x%08x, please flush " 79 printk(KERN_WARNING "Spurious irq %i: 0x%08x, please flush "
80 "posted write for irq %i\n", 80 "posted write for irq %i\n",
81 irq, sir, previous_irq); 81 irq, sir, previous_irq);
diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
index 9fc13a2cc3f4..f36aba12090e 100644
--- a/arch/arm/mach-omap2/timer-gp.c
+++ b/arch/arm/mach-omap2/timer-gp.c
@@ -3,6 +3,8 @@
3 * 3 *
4 * OMAP2 GP timer support. 4 * OMAP2 GP timer support.
5 * 5 *
6 * Copyright (C) 2009 Nokia Corporation
7 *
6 * Update to use new clocksource/clockevent layers 8 * Update to use new clocksource/clockevent layers
7 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> 9 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
8 * Copyright (C) 2007 MontaVista Software, Inc. 10 * Copyright (C) 2007 MontaVista Software, Inc.
@@ -36,8 +38,13 @@
36#include <asm/mach/time.h> 38#include <asm/mach/time.h>
37#include <mach/dmtimer.h> 39#include <mach/dmtimer.h>
38 40
41/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
42#define MAX_GPTIMER_ID 12
43
39static struct omap_dm_timer *gptimer; 44static struct omap_dm_timer *gptimer;
40static struct clock_event_device clockevent_gpt; 45static struct clock_event_device clockevent_gpt;
46static u8 __initdata gptimer_id = 1;
47static u8 __initdata inited;
41 48
42static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id) 49static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
43{ 50{
@@ -95,20 +102,53 @@ static struct clock_event_device clockevent_gpt = {
95 .set_mode = omap2_gp_timer_set_mode, 102 .set_mode = omap2_gp_timer_set_mode,
96}; 103};
97 104
105/**
106 * omap2_gp_clockevent_set_gptimer - set which GPTIMER is used for clockevents
107 * @id: GPTIMER to use (1..MAX_GPTIMER_ID)
108 *
109 * Define the GPTIMER that the system should use for the tick timer.
110 * Meant to be called from board-*.c files in the event that GPTIMER1, the
111 * default, is unsuitable. Returns -EINVAL on error or 0 on success.
112 */
113int __init omap2_gp_clockevent_set_gptimer(u8 id)
114{
115 if (id < 1 || id > MAX_GPTIMER_ID)
116 return -EINVAL;
117
118 BUG_ON(inited);
119
120 gptimer_id = id;
121
122 return 0;
123}
124
98static void __init omap2_gp_clockevent_init(void) 125static void __init omap2_gp_clockevent_init(void)
99{ 126{
100 u32 tick_rate; 127 u32 tick_rate;
128 int src;
129
130 inited = 1;
101 131
102 gptimer = omap_dm_timer_request_specific(1); 132 gptimer = omap_dm_timer_request_specific(gptimer_id);
103 BUG_ON(gptimer == NULL); 133 BUG_ON(gptimer == NULL);
104 134
105#if defined(CONFIG_OMAP_32K_TIMER) 135#if defined(CONFIG_OMAP_32K_TIMER)
106 omap_dm_timer_set_source(gptimer, OMAP_TIMER_SRC_32_KHZ); 136 src = OMAP_TIMER_SRC_32_KHZ;
107#else 137#else
108 omap_dm_timer_set_source(gptimer, OMAP_TIMER_SRC_SYS_CLK); 138 src = OMAP_TIMER_SRC_SYS_CLK;
139 WARN(gptimer_id == 12, "WARNING: GPTIMER12 can only use the "
140 "secure 32KiHz clock source\n");
109#endif 141#endif
142
143 if (gptimer_id != 12)
144 WARN(IS_ERR_VALUE(omap_dm_timer_set_source(gptimer, src)),
145 "timer-gp: omap_dm_timer_set_source() failed\n");
146
110 tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gptimer)); 147 tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gptimer));
111 148
149 pr_info("OMAP clockevent source: GPTIMER%d at %u Hz\n",
150 gptimer_id, tick_rate);
151
112 omap2_gp_timer_irq.dev_id = (void *)gptimer; 152 omap2_gp_timer_irq.dev_id = (void *)gptimer;
113 setup_irq(omap_dm_timer_get_irq(gptimer), &omap2_gp_timer_irq); 153 setup_irq(omap_dm_timer_get_irq(gptimer), &omap2_gp_timer_irq);
114 omap_dm_timer_set_int_enable(gptimer, OMAP_TIMER_INT_OVERFLOW); 154 omap_dm_timer_set_int_enable(gptimer, OMAP_TIMER_INT_OVERFLOW);
@@ -125,6 +165,8 @@ static void __init omap2_gp_clockevent_init(void)
125 clockevents_register_device(&clockevent_gpt); 165 clockevents_register_device(&clockevent_gpt);
126} 166}
127 167
168/* Clocksource code */
169
128#ifdef CONFIG_OMAP_32K_TIMER 170#ifdef CONFIG_OMAP_32K_TIMER
129/* 171/*
130 * When 32k-timer is enabled, don't use GPTimer for clocksource 172 * When 32k-timer is enabled, don't use GPTimer for clocksource
@@ -138,7 +180,7 @@ static inline void __init omap2_gp_clocksource_init(void) {}
138 * clocksource 180 * clocksource
139 */ 181 */
140static struct omap_dm_timer *gpt_clocksource; 182static struct omap_dm_timer *gpt_clocksource;
141static cycle_t clocksource_read_cycles(void) 183static cycle_t clocksource_read_cycles(struct clocksource *cs)
142{ 184{
143 return (cycle_t)omap_dm_timer_read_counter(gpt_clocksource); 185 return (cycle_t)omap_dm_timer_read_counter(gpt_clocksource);
144} 186}
diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c
index fc74e913c415..34a56a136efd 100644
--- a/arch/arm/mach-omap2/usb-musb.c
+++ b/arch/arm/mach-omap2/usb-musb.c
@@ -131,14 +131,14 @@ static struct musb_hdrc_platform_data musb_plat = {
131 .power = 50, /* up to 100 mA */ 131 .power = 50, /* up to 100 mA */
132}; 132};
133 133
134static u64 musb_dmamask = DMA_32BIT_MASK; 134static u64 musb_dmamask = DMA_BIT_MASK(32);
135 135
136static struct platform_device musb_device = { 136static struct platform_device musb_device = {
137 .name = "musb_hdrc", 137 .name = "musb_hdrc",
138 .id = -1, 138 .id = -1,
139 .dev = { 139 .dev = {
140 .dma_mask = &musb_dmamask, 140 .dma_mask = &musb_dmamask,
141 .coherent_dma_mask = DMA_32BIT_MASK, 141 .coherent_dma_mask = DMA_BIT_MASK(32),
142 .platform_data = &musb_plat, 142 .platform_data = &musb_plat,
143 }, 143 },
144 .num_resources = ARRAY_SIZE(musb_resources), 144 .num_resources = ARRAY_SIZE(musb_resources),
@@ -146,14 +146,14 @@ static struct platform_device musb_device = {
146}; 146};
147 147
148#ifdef CONFIG_NOP_USB_XCEIV 148#ifdef CONFIG_NOP_USB_XCEIV
149static u64 nop_xceiv_dmamask = DMA_32BIT_MASK; 149static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);
150 150
151static struct platform_device nop_xceiv_device = { 151static struct platform_device nop_xceiv_device = {
152 .name = "nop_usb_xceiv", 152 .name = "nop_usb_xceiv",
153 .id = -1, 153 .id = -1,
154 .dev = { 154 .dev = {
155 .dma_mask = &nop_xceiv_dmamask, 155 .dma_mask = &nop_xceiv_dmamask,
156 .coherent_dma_mask = DMA_32BIT_MASK, 156 .coherent_dma_mask = DMA_BIT_MASK(32),
157 .platform_data = NULL, 157 .platform_data = NULL,
158 }, 158 },
159}; 159};
diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c
index 15e509013def..8df55f40f4c0 100644
--- a/arch/arm/mach-omap2/usb-tusb6010.c
+++ b/arch/arm/mach-omap2/usb-tusb6010.c
@@ -187,7 +187,7 @@ int tusb6010_platform_retime(unsigned is_refclk)
187 unsigned sysclk_ps; 187 unsigned sysclk_ps;
188 int status; 188 int status;
189 189
190 if (!refclk_psec) 190 if (!refclk_psec || sysclk_ps == 0)
191 return -ENODEV; 191 return -ENODEV;
192 192
193 sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60; 193 sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60;
diff --git a/arch/arm/mach-orion5x/addr-map.c b/arch/arm/mach-orion5x/addr-map.c
index 719957e05d9e..c14d12137276 100644
--- a/arch/arm/mach-orion5x/addr-map.c
+++ b/arch/arm/mach-orion5x/addr-map.c
@@ -57,12 +57,14 @@
57/* 57/*
58 * Helpers to get DDR bank info 58 * Helpers to get DDR bank info
59 */ 59 */
60#define ORION5X_DDR_REG(x) (ORION5X_DDR_VIRT_BASE | (x))
60#define DDR_BASE_CS(n) ORION5X_DDR_REG(0x1500 + ((n) << 3)) 61#define DDR_BASE_CS(n) ORION5X_DDR_REG(0x1500 + ((n) << 3))
61#define DDR_SIZE_CS(n) ORION5X_DDR_REG(0x1504 + ((n) << 3)) 62#define DDR_SIZE_CS(n) ORION5X_DDR_REG(0x1504 + ((n) << 3))
62 63
63/* 64/*
64 * CPU Address Decode Windows registers 65 * CPU Address Decode Windows registers
65 */ 66 */
67#define ORION5X_BRIDGE_REG(x) (ORION5X_BRIDGE_VIRT_BASE | (x))
66#define CPU_WIN_CTRL(n) ORION5X_BRIDGE_REG(0x000 | ((n) << 4)) 68#define CPU_WIN_CTRL(n) ORION5X_BRIDGE_REG(0x000 | ((n) << 4))
67#define CPU_WIN_BASE(n) ORION5X_BRIDGE_REG(0x004 | ((n) << 4)) 69#define CPU_WIN_BASE(n) ORION5X_BRIDGE_REG(0x004 | ((n) << 4))
68#define CPU_WIN_REMAP_LO(n) ORION5X_BRIDGE_REG(0x008 | ((n) << 4)) 70#define CPU_WIN_REMAP_LO(n) ORION5X_BRIDGE_REG(0x008 | ((n) << 4))
diff --git a/arch/arm/mach-orion5x/include/mach/bridge-regs.h b/arch/arm/mach-orion5x/include/mach/bridge-regs.h
new file mode 100644
index 000000000000..be896e59d3e7
--- /dev/null
+++ b/arch/arm/mach-orion5x/include/mach/bridge-regs.h
@@ -0,0 +1,41 @@
1/*
2 * arch/arm/mach-orion5x/include/mach/bridge-regs.h
3 *
4 * Orion CPU Bridge Registers
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#ifndef __ASM_ARCH_BRIDGE_REGS_H
12#define __ASM_ARCH_BRIDGE_REGS_H
13
14#include <mach/orion5x.h>
15
16#define CPU_CONF (ORION5X_BRIDGE_VIRT_BASE | 0x100)
17
18#define CPU_CTRL (ORION5X_BRIDGE_VIRT_BASE | 0x104)
19
20#define CPU_RESET_MASK (ORION5X_BRIDGE_VIRT_BASE | 0x108)
21#define WDT_RESET 0x0002
22
23#define CPU_SOFT_RESET (ORION5X_BRIDGE_VIRT_BASE | 0x10c)
24
25#define POWER_MNG_CTRL_REG (ORION5X_BRIDGE_VIRT_BASE | 0x11C)
26
27#define BRIDGE_CAUSE (ORION5X_BRIDGE_VIRT_BASE | 0x110)
28#define WDT_INT_REQ 0x0008
29
30#define BRIDGE_MASK (ORION5X_BRIDGE_VIRT_BASE | 0x114)
31#define BRIDGE_INT_TIMER0 0x0002
32#define BRIDGE_INT_TIMER1 0x0004
33#define BRIDGE_INT_TIMER1_CLR (~0x0004)
34
35#define MAIN_IRQ_CAUSE (ORION5X_BRIDGE_VIRT_BASE | 0x200)
36
37#define MAIN_IRQ_MASK (ORION5X_BRIDGE_VIRT_BASE | 0x204)
38
39#define TIMER_VIRT_BASE (ORION5X_BRIDGE_VIRT_BASE | 0x300)
40
41#endif
diff --git a/arch/arm/mach-orion5x/include/mach/entry-macro.S b/arch/arm/mach-orion5x/include/mach/entry-macro.S
index 4351937035cd..d658992e5401 100644
--- a/arch/arm/mach-orion5x/include/mach/entry-macro.S
+++ b/arch/arm/mach-orion5x/include/mach/entry-macro.S
@@ -8,7 +8,7 @@
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 */ 9 */
10 10
11#include <mach/orion5x.h> 11#include <mach/bridge-regs.h>
12 12
13 .macro disable_fiq 13 .macro disable_fiq
14 .endm 14 .endm
diff --git a/arch/arm/mach-orion5x/include/mach/orion5x.h b/arch/arm/mach-orion5x/include/mach/orion5x.h
index 67bda31406dd..377a773ae53f 100644
--- a/arch/arm/mach-orion5x/include/mach/orion5x.h
+++ b/arch/arm/mach-orion5x/include/mach/orion5x.h
@@ -61,30 +61,10 @@
61#define ORION5X_PCI_MEM_SIZE SZ_128M 61#define ORION5X_PCI_MEM_SIZE SZ_128M
62 62
63/******************************************************************************* 63/*******************************************************************************
64 * Supported Devices & Revisions
65 ******************************************************************************/
66/* Orion-1 (88F5181) and Orion-VoIP (88F5181L) */
67#define MV88F5181_DEV_ID 0x5181
68#define MV88F5181_REV_B1 3
69#define MV88F5181L_REV_A0 8
70#define MV88F5181L_REV_A1 9
71/* Orion-NAS (88F5182) */
72#define MV88F5182_DEV_ID 0x5182
73#define MV88F5182_REV_A2 2
74/* Orion-2 (88F5281) */
75#define MV88F5281_DEV_ID 0x5281
76#define MV88F5281_REV_D0 4
77#define MV88F5281_REV_D1 5
78#define MV88F5281_REV_D2 6
79/* Orion-1-90 (88F6183) */
80#define MV88F6183_DEV_ID 0x6183
81#define MV88F6183_REV_B0 3
82
83/*******************************************************************************
84 * Orion Registers Map 64 * Orion Registers Map
85 ******************************************************************************/ 65 ******************************************************************************/
66
86#define ORION5X_DDR_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x00000) 67#define ORION5X_DDR_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x00000)
87#define ORION5X_DDR_REG(x) (ORION5X_DDR_VIRT_BASE | (x))
88 68
89#define ORION5X_DEV_BUS_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x10000) 69#define ORION5X_DEV_BUS_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x10000)
90#define ORION5X_DEV_BUS_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x10000) 70#define ORION5X_DEV_BUS_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x10000)
@@ -97,34 +77,25 @@
97#define UART1_VIRT_BASE (ORION5X_DEV_BUS_VIRT_BASE | 0x2100) 77#define UART1_VIRT_BASE (ORION5X_DEV_BUS_VIRT_BASE | 0x2100)
98 78
99#define ORION5X_BRIDGE_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x20000) 79#define ORION5X_BRIDGE_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x20000)
100#define ORION5X_BRIDGE_REG(x) (ORION5X_BRIDGE_VIRT_BASE | (x))
101#define TIMER_VIRT_BASE (ORION5X_BRIDGE_VIRT_BASE | 0x300)
102 80
103#define ORION5X_PCI_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x30000) 81#define ORION5X_PCI_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x30000)
104#define ORION5X_PCI_REG(x) (ORION5X_PCI_VIRT_BASE | (x))
105 82
106#define ORION5X_PCIE_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x40000) 83#define ORION5X_PCIE_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x40000)
107#define ORION5X_PCIE_REG(x) (ORION5X_PCIE_VIRT_BASE | (x))
108 84
109#define ORION5X_USB0_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x50000) 85#define ORION5X_USB0_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x50000)
110#define ORION5X_USB0_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x50000) 86#define ORION5X_USB0_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x50000)
111#define ORION5X_USB0_REG(x) (ORION5X_USB0_VIRT_BASE | (x))
112 87
113#define ORION5X_XOR_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x60900) 88#define ORION5X_XOR_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x60900)
114#define ORION5X_XOR_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x60900) 89#define ORION5X_XOR_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x60900)
115#define ORION5X_XOR_REG(x) (ORION5X_XOR_VIRT_BASE | (x))
116 90
117#define ORION5X_ETH_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x70000) 91#define ORION5X_ETH_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x70000)
118#define ORION5X_ETH_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x70000) 92#define ORION5X_ETH_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x70000)
119#define ORION5X_ETH_REG(x) (ORION5X_ETH_VIRT_BASE | (x))
120 93
121#define ORION5X_SATA_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x80000) 94#define ORION5X_SATA_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x80000)
122#define ORION5X_SATA_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x80000) 95#define ORION5X_SATA_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x80000)
123#define ORION5X_SATA_REG(x) (ORION5X_SATA_VIRT_BASE | (x))
124 96
125#define ORION5X_USB1_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0xa0000) 97#define ORION5X_USB1_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0xa0000)
126#define ORION5X_USB1_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0xa0000) 98#define ORION5X_USB1_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0xa0000)
127#define ORION5X_USB1_REG(x) (ORION5X_USB1_VIRT_BASE | (x))
128 99
129/******************************************************************************* 100/*******************************************************************************
130 * Device Bus Registers 101 * Device Bus Registers
@@ -142,23 +113,24 @@
142#define DEV_BUS_INT_CAUSE ORION5X_DEV_BUS_REG(0x4d0) 113#define DEV_BUS_INT_CAUSE ORION5X_DEV_BUS_REG(0x4d0)
143#define DEV_BUS_INT_MASK ORION5X_DEV_BUS_REG(0x4d4) 114#define DEV_BUS_INT_MASK ORION5X_DEV_BUS_REG(0x4d4)
144 115
145/*************************************************************************** 116/*******************************************************************************
146 * Orion CPU Bridge Registers 117 * Supported Devices & Revisions
147 **************************************************************************/ 118 ******************************************************************************/
148#define CPU_CONF ORION5X_BRIDGE_REG(0x100) 119/* Orion-1 (88F5181) and Orion-VoIP (88F5181L) */
149#define CPU_CTRL ORION5X_BRIDGE_REG(0x104) 120#define MV88F5181_DEV_ID 0x5181
150#define CPU_RESET_MASK ORION5X_BRIDGE_REG(0x108) 121#define MV88F5181_REV_B1 3
151#define WDT_RESET 0x0002 122#define MV88F5181L_REV_A0 8
152#define CPU_SOFT_RESET ORION5X_BRIDGE_REG(0x10c) 123#define MV88F5181L_REV_A1 9
153#define POWER_MNG_CTRL_REG ORION5X_BRIDGE_REG(0x11C) 124/* Orion-NAS (88F5182) */
154#define BRIDGE_CAUSE ORION5X_BRIDGE_REG(0x110) 125#define MV88F5182_DEV_ID 0x5182
155#define WDT_INT_REQ 0x0008 126#define MV88F5182_REV_A2 2
156#define BRIDGE_MASK ORION5X_BRIDGE_REG(0x114) 127/* Orion-2 (88F5281) */
157#define BRIDGE_INT_TIMER0 0x0002 128#define MV88F5281_DEV_ID 0x5281
158#define BRIDGE_INT_TIMER1 0x0004 129#define MV88F5281_REV_D0 4
159#define BRIDGE_INT_TIMER1_CLR (~0x0004) 130#define MV88F5281_REV_D1 5
160#define MAIN_IRQ_CAUSE ORION5X_BRIDGE_REG(0x200) 131#define MV88F5281_REV_D2 6
161#define MAIN_IRQ_MASK ORION5X_BRIDGE_REG(0x204) 132/* Orion-1-90 (88F6183) */
162 133#define MV88F6183_DEV_ID 0x6183
134#define MV88F6183_REV_B0 3
163 135
164#endif 136#endif
diff --git a/arch/arm/mach-orion5x/include/mach/system.h b/arch/arm/mach-orion5x/include/mach/system.h
index 9b8db1dcfa83..e912490fff23 100644
--- a/arch/arm/mach-orion5x/include/mach/system.h
+++ b/arch/arm/mach-orion5x/include/mach/system.h
@@ -11,8 +11,7 @@
11#ifndef __ASM_ARCH_SYSTEM_H 11#ifndef __ASM_ARCH_SYSTEM_H
12#define __ASM_ARCH_SYSTEM_H 12#define __ASM_ARCH_SYSTEM_H
13 13
14#include <mach/hardware.h> 14#include <mach/bridge-regs.h>
15#include <mach/orion5x.h>
16 15
17static inline void arch_idle(void) 16static inline void arch_idle(void)
18{ 17{
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index e03f7b45cb0d..d7512b925a85 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -15,7 +15,7 @@
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <asm/gpio.h> 17#include <asm/gpio.h>
18#include <mach/orion5x.h> 18#include <mach/bridge-regs.h>
19#include <plat/irq.h> 19#include <plat/irq.h>
20#include "common.h" 20#include "common.h"
21 21
diff --git a/arch/arm/mach-orion5x/mss2-setup.c b/arch/arm/mach-orion5x/mss2-setup.c
index 68acca98e638..41e6d5033d54 100644
--- a/arch/arm/mach-orion5x/mss2-setup.c
+++ b/arch/arm/mach-orion5x/mss2-setup.c
@@ -26,6 +26,7 @@
26#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
27#include <asm/mach/pci.h> 27#include <asm/mach/pci.h>
28#include <mach/orion5x.h> 28#include <mach/orion5x.h>
29#include <mach/bridge-regs.h>
29#include "common.h" 30#include "common.h"
30#include "mpp.h" 31#include "mpp.h"
31 32
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c
index d0a785a3b880..36dc5413cc97 100644
--- a/arch/arm/mach-orion5x/pci.c
+++ b/arch/arm/mach-orion5x/pci.c
@@ -196,6 +196,7 @@ static int __init pcie_setup(struct pci_sys_data *sys)
196/***************************************************************************** 196/*****************************************************************************
197 * PCI controller 197 * PCI controller
198 ****************************************************************************/ 198 ****************************************************************************/
199#define ORION5X_PCI_REG(x) (ORION5X_PCI_VIRT_BASE | (x))
199#define PCI_MODE ORION5X_PCI_REG(0xd00) 200#define PCI_MODE ORION5X_PCI_REG(0xd00)
200#define PCI_CMD ORION5X_PCI_REG(0xc00) 201#define PCI_CMD ORION5X_PCI_REG(0xc00)
201#define PCI_P2P_CONF ORION5X_PCI_REG(0x1d14) 202#define PCI_P2P_CONF ORION5X_PCI_REG(0x1d14)
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 3e66d9099eab..17d3fbd368a3 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -289,12 +289,12 @@ config MACH_LITTLETON
289config MACH_TAVOREVB 289config MACH_TAVOREVB
290 bool "PXA930 Evaluation Board (aka TavorEVB)" 290 bool "PXA930 Evaluation Board (aka TavorEVB)"
291 select PXA3xx 291 select PXA3xx
292 select PXA930 292 select CPU_PXA930
293 293
294config MACH_SAAR 294config MACH_SAAR
295 bool "PXA930 Handheld Platform (aka SAAR)" 295 bool "PXA930 Handheld Platform (aka SAAR)"
296 select PXA3xx 296 select PXA3xx
297 select PXA930 297 select CPU_PXA930
298 298
299config MACH_ARMCORE 299config MACH_ARMCORE
300 bool "CompuLab CM-X255/CM-X270 modules" 300 bool "CompuLab CM-X255/CM-X270 modules"
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index cdf21dd135b4..930e364ccde9 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -427,12 +427,22 @@ static struct pxa2xx_spi_master corgi_spi_info = {
427 .num_chipselect = 3, 427 .num_chipselect = 3,
428}; 428};
429 429
430static void corgi_wait_for_hsync(void)
431{
432 while (gpio_get_value(CORGI_GPIO_HSYNC))
433 cpu_relax();
434
435 while (!gpio_get_value(CORGI_GPIO_HSYNC))
436 cpu_relax();
437}
438
430static struct ads7846_platform_data corgi_ads7846_info = { 439static struct ads7846_platform_data corgi_ads7846_info = {
431 .model = 7846, 440 .model = 7846,
432 .vref_delay_usecs = 100, 441 .vref_delay_usecs = 100,
433 .x_plate_ohms = 419, 442 .x_plate_ohms = 419,
434 .y_plate_ohms = 486, 443 .y_plate_ohms = 486,
435 .gpio_pendown = CORGI_GPIO_TP_INT, 444 .gpio_pendown = CORGI_GPIO_TP_INT,
445 .wait_for_sync = corgi_wait_for_hsync,
436}; 446};
437 447
438static void corgi_ads7846_cs(u32 command) 448static void corgi_ads7846_cs(u32 command)
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 67611dadb44e..bc0f73fbd4ca 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -28,7 +28,6 @@
28#include <linux/spi/libertas_spi.h> 28#include <linux/spi/libertas_spi.h>
29#include <linux/power_supply.h> 29#include <linux/power_supply.h>
30#include <linux/apm-emulation.h> 30#include <linux/apm-emulation.h>
31#include <linux/delay.h>
32 31
33#include <media/soc_camera.h> 32#include <media/soc_camera.h>
34 33
@@ -644,8 +643,9 @@ static struct pxa2xx_spi_master em_x270_spi_info = {
644}; 643};
645 644
646static struct pxa2xx_spi_chip em_x270_tdo24m_chip = { 645static struct pxa2xx_spi_chip em_x270_tdo24m_chip = {
647 .rx_threshold = 1, 646 .rx_threshold = 1,
648 .tx_threshold = 1, 647 .tx_threshold = 1,
648 .gpio_cs = -1,
649}; 649};
650 650
651static struct tdo24m_platform_data em_x270_tdo24m_pdata = { 651static struct tdo24m_platform_data em_x270_tdo24m_pdata = {
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index 3465268ca716..485fede83d97 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -15,6 +15,9 @@ extern struct sys_timer pxa_timer;
15extern void __init pxa_init_irq(int irq_nr, 15extern void __init pxa_init_irq(int irq_nr,
16 int (*set_wake)(unsigned int, unsigned int)); 16 int (*set_wake)(unsigned int, unsigned int));
17extern void __init pxa25x_init_irq(void); 17extern void __init pxa25x_init_irq(void);
18#ifdef CONFIG_CPU_PXA26x
19extern void __init pxa26x_init_irq(void);
20#endif
18extern void __init pxa27x_init_irq(void); 21extern void __init pxa27x_init_irq(void);
19extern void __init pxa3xx_init_irq(void); 22extern void __init pxa3xx_init_irq(void);
20extern void __init pxa_map_io(void); 23extern void __init pxa_map_io(void);
diff --git a/arch/arm/mach-pxa/include/mach/audio.h b/arch/arm/mach-pxa/include/mach/audio.h
index f82f96dd1053..16eb02552d5d 100644
--- a/arch/arm/mach-pxa/include/mach/audio.h
+++ b/arch/arm/mach-pxa/include/mach/audio.h
@@ -4,12 +4,22 @@
4#include <sound/core.h> 4#include <sound/core.h>
5#include <sound/pcm.h> 5#include <sound/pcm.h>
6 6
7/*
8 * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
9 * a -1 value means no gpio will be used for reset
10
11 * reset_gpio should only be specified for pxa27x CPUs where a silicon
12 * bug prevents correct operation of the reset line. If not specified,
13 * the default behaviour on these CPUs is to consider gpio 113 as the
14 * AC97 reset line, which is the default on most boards.
15 */
7typedef struct { 16typedef struct {
8 int (*startup)(struct snd_pcm_substream *, void *); 17 int (*startup)(struct snd_pcm_substream *, void *);
9 void (*shutdown)(struct snd_pcm_substream *, void *); 18 void (*shutdown)(struct snd_pcm_substream *, void *);
10 void (*suspend)(void *); 19 void (*suspend)(void *);
11 void (*resume)(void *); 20 void (*resume)(void *);
12 void *priv; 21 void *priv;
22 int reset_gpio;
13} pxa2xx_audio_ops_t; 23} pxa2xx_audio_ops_t;
14 24
15extern void pxa_set_ac97_info(pxa2xx_audio_ops_t *ops); 25extern void pxa_set_ac97_info(pxa2xx_audio_ops_t *ops);
diff --git a/arch/arm/mach-pxa/include/mach/colibri.h b/arch/arm/mach-pxa/include/mach/colibri.h
index 90230c6f9925..a88d7caff0d1 100644
--- a/arch/arm/mach-pxa/include/mach/colibri.h
+++ b/arch/arm/mach-pxa/include/mach/colibri.h
@@ -10,13 +10,13 @@
10#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE) 10#if defined(CONFIG_MMC_PXA) || defined(CONFIG_MMC_PXA_MODULE)
11extern void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin); 11extern void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin);
12#else 12#else
13static inline void colibri_pxa3xx_init_mmc(mfp_cfg_t *, int, int) {} 13static inline void colibri_pxa3xx_init_mmc(mfp_cfg_t *pins, int len, int detect_pin) {}
14#endif 14#endif
15 15
16#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) 16#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
17extern void colibri_pxa3xx_init_lcd(int bl_pin); 17extern void colibri_pxa3xx_init_lcd(int bl_pin);
18#else 18#else
19static inline void colibri_pxa3xx_init_lcd(int) {} 19static inline void colibri_pxa3xx_init_lcd(int bl_pin) {}
20#endif 20#endif
21 21
22#if defined(CONFIG_AX88796) 22#if defined(CONFIG_AX88796)
diff --git a/arch/arm/mach-pxa/include/mach/palmasoc.h b/arch/arm/mach-pxa/include/mach/palmasoc.h
index 6c4b1f7de20a..58afb30d5298 100644
--- a/arch/arm/mach-pxa/include/mach/palmasoc.h
+++ b/arch/arm/mach-pxa/include/mach/palmasoc.h
@@ -1,13 +1,8 @@
1#ifndef _INCLUDE_PALMASOC_H_ 1#ifndef _INCLUDE_PALMASOC_H_
2#define _INCLUDE_PALMASOC_H_ 2#define _INCLUDE_PALMASOC_H_
3
3struct palm27x_asoc_info { 4struct palm27x_asoc_info {
4 int jack_gpio; 5 int jack_gpio;
5}; 6};
6 7
7#ifdef CONFIG_SND_PXA2XX_SOC_PALM27X
8void __init palm27x_asoc_set_pdata(struct palm27x_asoc_info *data);
9#else
10static inline void palm27x_asoc_set_pdata(struct palm27x_asoc_info *data) {}
11#endif
12
13#endif 8#endif
diff --git a/arch/arm/mach-pxa/include/mach/palmt5.h b/arch/arm/mach-pxa/include/mach/palmt5.h
index 052bfe788ada..d15662aba008 100644
--- a/arch/arm/mach-pxa/include/mach/palmt5.h
+++ b/arch/arm/mach-pxa/include/mach/palmt5.h
@@ -37,7 +37,6 @@
37 37
38/* USB */ 38/* USB */
39#define GPIO_NR_PALMT5_USB_DETECT_N 15 39#define GPIO_NR_PALMT5_USB_DETECT_N 15
40#define GPIO_NR_PALMT5_USB_POWER 95
41#define GPIO_NR_PALMT5_USB_PULLUP 93 40#define GPIO_NR_PALMT5_USB_PULLUP 93
42 41
43/* LCD/BACKLIGHT */ 42/* LCD/BACKLIGHT */
diff --git a/arch/arm/mach-pxa/include/mach/palmtx.h b/arch/arm/mach-pxa/include/mach/palmtx.h
index 9f7d62fb4cbb..e74082c872e1 100644
--- a/arch/arm/mach-pxa/include/mach/palmtx.h
+++ b/arch/arm/mach-pxa/include/mach/palmtx.h
@@ -38,7 +38,6 @@
38 38
39/* USB */ 39/* USB */
40#define GPIO_NR_PALMTX_USB_DETECT_N 13 40#define GPIO_NR_PALMTX_USB_DETECT_N 13
41#define GPIO_NR_PALMTX_USB_POWER 95
42#define GPIO_NR_PALMTX_USB_PULLUP 93 41#define GPIO_NR_PALMTX_USB_PULLUP 93
43 42
44/* LCD/BACKLIGHT */ 43/* LCD/BACKLIGHT */
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index e13f6a81c223..c872b9feb4d4 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -334,6 +334,11 @@ static struct led_info littleton_da9034_leds[] = {
334 }, 334 },
335}; 335};
336 336
337static struct da9034_touch_pdata littleton_da9034_touch = {
338 .x_inverted = 1,
339 .interval_ms = 20,
340};
341
337static struct da903x_subdev_info littleton_da9034_subdevs[] = { 342static struct da903x_subdev_info littleton_da9034_subdevs[] = {
338 { 343 {
339 .name = "da903x-led", 344 .name = "da903x-led",
@@ -350,6 +355,10 @@ static struct da903x_subdev_info littleton_da9034_subdevs[] = {
350 }, { 355 }, {
351 .name = "da903x-backlight", 356 .name = "da903x-backlight",
352 .id = DA9034_ID_WLED, 357 .id = DA9034_ID_WLED,
358 }, {
359 .name = "da9034-touch",
360 .id = DA9034_ID_TOUCH,
361 .platform_data = &littleton_da9034_touch,
353 }, 362 },
354}; 363};
355 364
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index 9203b069b35c..ff8052ce0a05 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -742,6 +742,10 @@ struct i2c_pxa_platform_data i2c_pdata = {
742 .fast_mode = 1, 742 .fast_mode = 1,
743}; 743};
744 744
745static pxa2xx_audio_ops_t mioa701_ac97_info = {
746 .reset_gpio = 95,
747};
748
745/* 749/*
746 * Mio global 750 * Mio global
747 */ 751 */
@@ -815,7 +819,7 @@ static void __init mioa701_machine_init(void)
815 pxa_set_keypad_info(&mioa701_keypad_info); 819 pxa_set_keypad_info(&mioa701_keypad_info);
816 wm97xx_bat_set_pdata(&mioa701_battery_data); 820 wm97xx_bat_set_pdata(&mioa701_battery_data);
817 pxa_set_udc_info(&mioa701_udc_info); 821 pxa_set_udc_info(&mioa701_udc_info);
818 pxa_set_ac97_info(NULL); 822 pxa_set_ac97_info(&mioa701_ac97_info);
819 pm_power_off = mioa701_poweroff; 823 pm_power_off = mioa701_poweroff;
820 arm_pm_restart = mioa701_restart; 824 arm_pm_restart = mioa701_restart;
821 platform_add_devices(devices, ARRAY_SIZE(devices)); 825 platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index ecf5910e39d7..1cec1806f002 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -477,10 +477,22 @@ static struct wm97xx_batt_info wm97xx_batt_pdata = {
477/****************************************************************************** 477/******************************************************************************
478 * aSoC audio 478 * aSoC audio
479 ******************************************************************************/ 479 ******************************************************************************/
480static struct palm27x_asoc_info palm27x_asoc_pdata = { 480static struct palm27x_asoc_info palmld_asoc_pdata = {
481 .jack_gpio = GPIO_NR_PALMLD_EARPHONE_DETECT, 481 .jack_gpio = GPIO_NR_PALMLD_EARPHONE_DETECT,
482}; 482};
483 483
484static pxa2xx_audio_ops_t palmld_ac97_pdata = {
485 .reset_gpio = 95,
486};
487
488static struct platform_device palmld_asoc = {
489 .name = "palm27x-asoc",
490 .id = -1,
491 .dev = {
492 .platform_data = &palmld_asoc_pdata,
493 },
494};
495
484/****************************************************************************** 496/******************************************************************************
485 * Framebuffer 497 * Framebuffer
486 ******************************************************************************/ 498 ******************************************************************************/
@@ -544,6 +556,7 @@ static struct platform_device *devices[] __initdata = {
544 &palmld_backlight, 556 &palmld_backlight,
545 &palmld_leds, 557 &palmld_leds,
546 &power_supply, 558 &power_supply,
559 &palmld_asoc,
547}; 560};
548 561
549static struct map_desc palmld_io_desc[] __initdata = { 562static struct map_desc palmld_io_desc[] __initdata = {
@@ -573,11 +586,10 @@ static void __init palmld_init(void)
573 586
574 set_pxa_fb_info(&palmld_lcd_screen); 587 set_pxa_fb_info(&palmld_lcd_screen);
575 pxa_set_mci_info(&palmld_mci_platform_data); 588 pxa_set_mci_info(&palmld_mci_platform_data);
576 pxa_set_ac97_info(NULL); 589 pxa_set_ac97_info(&palmld_ac97_pdata);
577 pxa_set_ficp_info(&palmld_ficp_platform_data); 590 pxa_set_ficp_info(&palmld_ficp_platform_data);
578 pxa_set_keypad_info(&palmld_keypad_platform_data); 591 pxa_set_keypad_info(&palmld_keypad_platform_data);
579 wm97xx_bat_set_pdata(&wm97xx_batt_pdata); 592 wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
580 palm27x_asoc_set_pdata(&palm27x_asoc_pdata);
581 593
582 platform_add_devices(devices, ARRAY_SIZE(devices)); 594 platform_add_devices(devices, ARRAY_SIZE(devices));
583} 595}
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c
index 0680f1a575a3..30662363907b 100644
--- a/arch/arm/mach-pxa/palmt5.c
+++ b/arch/arm/mach-pxa/palmt5.c
@@ -64,6 +64,7 @@ static unsigned long palmt5_pin_config[] __initdata = {
64 GPIO29_AC97_SDATA_IN_0, 64 GPIO29_AC97_SDATA_IN_0,
65 GPIO30_AC97_SDATA_OUT, 65 GPIO30_AC97_SDATA_OUT,
66 GPIO31_AC97_SYNC, 66 GPIO31_AC97_SYNC,
67 GPIO95_AC97_nRESET,
67 68
68 /* IrDA */ 69 /* IrDA */
69 GPIO40_GPIO, /* ir disable */ 70 GPIO40_GPIO, /* ir disable */
@@ -72,7 +73,7 @@ static unsigned long palmt5_pin_config[] __initdata = {
72 73
73 /* USB */ 74 /* USB */
74 GPIO15_GPIO, /* usb detect */ 75 GPIO15_GPIO, /* usb detect */
75 GPIO95_GPIO, /* usb power */ 76 GPIO93_GPIO, /* usb power */
76 77
77 /* MATRIX KEYPAD */ 78 /* MATRIX KEYPAD */
78 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, 79 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
@@ -344,7 +345,7 @@ static struct pxaficp_platform_data palmt5_ficp_platform_data = {
344static struct pxa2xx_udc_mach_info palmt5_udc_info __initdata = { 345static struct pxa2xx_udc_mach_info palmt5_udc_info __initdata = {
345 .gpio_vbus = GPIO_NR_PALMT5_USB_DETECT_N, 346 .gpio_vbus = GPIO_NR_PALMT5_USB_DETECT_N,
346 .gpio_vbus_inverted = 1, 347 .gpio_vbus_inverted = 1,
347 .gpio_pullup = GPIO_NR_PALMT5_USB_POWER, 348 .gpio_pullup = GPIO_NR_PALMT5_USB_PULLUP,
348 .gpio_pullup_inverted = 0, 349 .gpio_pullup_inverted = 0,
349}; 350};
350 351
@@ -419,10 +420,22 @@ static struct wm97xx_batt_info wm97xx_batt_pdata = {
419/****************************************************************************** 420/******************************************************************************
420 * aSoC audio 421 * aSoC audio
421 ******************************************************************************/ 422 ******************************************************************************/
422static struct palm27x_asoc_info palm27x_asoc_pdata = { 423static struct palm27x_asoc_info palmt5_asoc_pdata = {
423 .jack_gpio = GPIO_NR_PALMT5_EARPHONE_DETECT, 424 .jack_gpio = GPIO_NR_PALMT5_EARPHONE_DETECT,
424}; 425};
425 426
427static pxa2xx_audio_ops_t palmt5_ac97_pdata = {
428 .reset_gpio = 95,
429};
430
431static struct platform_device palmt5_asoc = {
432 .name = "palm27x-asoc",
433 .id = -1,
434 .dev = {
435 .platform_data = &palmt5_asoc_pdata,
436 },
437};
438
426/****************************************************************************** 439/******************************************************************************
427 * Framebuffer 440 * Framebuffer
428 ******************************************************************************/ 441 ******************************************************************************/
@@ -485,14 +498,15 @@ static struct platform_device *devices[] __initdata = {
485#endif 498#endif
486 &palmt5_backlight, 499 &palmt5_backlight,
487 &power_supply, 500 &power_supply,
501 &palmt5_asoc,
488}; 502};
489 503
490/* setup udc GPIOs initial state */ 504/* setup udc GPIOs initial state */
491static void __init palmt5_udc_init(void) 505static void __init palmt5_udc_init(void)
492{ 506{
493 if (!gpio_request(GPIO_NR_PALMT5_USB_POWER, "UDC Vbus")) { 507 if (!gpio_request(GPIO_NR_PALMT5_USB_PULLUP, "UDC Vbus")) {
494 gpio_direction_output(GPIO_NR_PALMT5_USB_POWER, 1); 508 gpio_direction_output(GPIO_NR_PALMT5_USB_PULLUP, 1);
495 gpio_free(GPIO_NR_PALMT5_USB_POWER); 509 gpio_free(GPIO_NR_PALMT5_USB_PULLUP);
496 } 510 }
497} 511}
498 512
@@ -503,12 +517,11 @@ static void __init palmt5_init(void)
503 set_pxa_fb_info(&palmt5_lcd_screen); 517 set_pxa_fb_info(&palmt5_lcd_screen);
504 pxa_set_mci_info(&palmt5_mci_platform_data); 518 pxa_set_mci_info(&palmt5_mci_platform_data);
505 palmt5_udc_init(); 519 palmt5_udc_init();
520 pxa_set_ac97_info(&palmt5_ac97_pdata);
506 pxa_set_udc_info(&palmt5_udc_info); 521 pxa_set_udc_info(&palmt5_udc_info);
507 pxa_set_ac97_info(NULL);
508 pxa_set_ficp_info(&palmt5_ficp_platform_data); 522 pxa_set_ficp_info(&palmt5_ficp_platform_data);
509 pxa_set_keypad_info(&palmt5_keypad_platform_data); 523 pxa_set_keypad_info(&palmt5_keypad_platform_data);
510 wm97xx_bat_set_pdata(&wm97xx_batt_pdata); 524 wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
511 palm27x_asoc_set_pdata(&palm27x_asoc_pdata);
512 platform_add_devices(devices, ARRAY_SIZE(devices)); 525 platform_add_devices(devices, ARRAY_SIZE(devices));
513} 526}
514 527
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index 59d0c1cba556..e2d44b1a8a9b 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -40,6 +40,7 @@
40#include <mach/irda.h> 40#include <mach/irda.h>
41#include <mach/pxa27x_keypad.h> 41#include <mach/pxa27x_keypad.h>
42#include <mach/udc.h> 42#include <mach/udc.h>
43#include <mach/palmasoc.h>
43 44
44#include "generic.h" 45#include "generic.h"
45#include "devices.h" 46#include "devices.h"
@@ -64,6 +65,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
64 GPIO29_AC97_SDATA_IN_0, 65 GPIO29_AC97_SDATA_IN_0,
65 GPIO30_AC97_SDATA_OUT, 66 GPIO30_AC97_SDATA_OUT,
66 GPIO31_AC97_SYNC, 67 GPIO31_AC97_SYNC,
68 GPIO95_AC97_nRESET,
67 69
68 /* IrDA */ 70 /* IrDA */
69 GPIO40_GPIO, /* ir disable */ 71 GPIO40_GPIO, /* ir disable */
@@ -75,7 +77,7 @@ static unsigned long palmtx_pin_config[] __initdata = {
75 77
76 /* USB */ 78 /* USB */
77 GPIO13_GPIO, /* usb detect */ 79 GPIO13_GPIO, /* usb detect */
78 GPIO95_GPIO, /* usb power */ 80 GPIO93_GPIO, /* usb power */
79 81
80 /* PCMCIA */ 82 /* PCMCIA */
81 GPIO48_nPOE, 83 GPIO48_nPOE,
@@ -359,7 +361,7 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = {
359static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { 361static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = {
360 .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, 362 .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N,
361 .gpio_vbus_inverted = 1, 363 .gpio_vbus_inverted = 1,
362 .gpio_pullup = GPIO_NR_PALMTX_USB_POWER, 364 .gpio_pullup = GPIO_NR_PALMTX_USB_PULLUP,
363 .gpio_pullup_inverted = 0, 365 .gpio_pullup_inverted = 0,
364}; 366};
365 367
@@ -433,6 +435,25 @@ static struct wm97xx_batt_info wm97xx_batt_pdata = {
433}; 435};
434 436
435/****************************************************************************** 437/******************************************************************************
438 * aSoC audio
439 ******************************************************************************/
440static struct palm27x_asoc_info palmtx_asoc_pdata = {
441 .jack_gpio = GPIO_NR_PALMTX_EARPHONE_DETECT,
442};
443
444static pxa2xx_audio_ops_t palmtx_ac97_pdata = {
445 .reset_gpio = 95,
446};
447
448static struct platform_device palmtx_asoc = {
449 .name = "palm27x-asoc",
450 .id = -1,
451 .dev = {
452 .platform_data = &palmtx_asoc_pdata,
453 },
454};
455
456/******************************************************************************
436 * Framebuffer 457 * Framebuffer
437 ******************************************************************************/ 458 ******************************************************************************/
438static struct pxafb_mode_info palmtx_lcd_modes[] = { 459static struct pxafb_mode_info palmtx_lcd_modes[] = {
@@ -494,6 +515,7 @@ static struct platform_device *devices[] __initdata = {
494#endif 515#endif
495 &palmtx_backlight, 516 &palmtx_backlight,
496 &power_supply, 517 &power_supply,
518 &palmtx_asoc,
497}; 519};
498 520
499static struct map_desc palmtx_io_desc[] __initdata = { 521static struct map_desc palmtx_io_desc[] __initdata = {
@@ -514,9 +536,9 @@ static void __init palmtx_map_io(void)
514/* setup udc GPIOs initial state */ 536/* setup udc GPIOs initial state */
515static void __init palmtx_udc_init(void) 537static void __init palmtx_udc_init(void)
516{ 538{
517 if (!gpio_request(GPIO_NR_PALMTX_USB_POWER, "UDC Vbus")) { 539 if (!gpio_request(GPIO_NR_PALMTX_USB_PULLUP, "UDC Vbus")) {
518 gpio_direction_output(GPIO_NR_PALMTX_USB_POWER, 1); 540 gpio_direction_output(GPIO_NR_PALMTX_USB_PULLUP, 1);
519 gpio_free(GPIO_NR_PALMTX_USB_POWER); 541 gpio_free(GPIO_NR_PALMTX_USB_PULLUP);
520 } 542 }
521} 543}
522 544
@@ -528,8 +550,8 @@ static void __init palmtx_init(void)
528 set_pxa_fb_info(&palmtx_lcd_screen); 550 set_pxa_fb_info(&palmtx_lcd_screen);
529 pxa_set_mci_info(&palmtx_mci_platform_data); 551 pxa_set_mci_info(&palmtx_mci_platform_data);
530 palmtx_udc_init(); 552 palmtx_udc_init();
553 pxa_set_ac97_info(&palmtx_ac97_pdata);
531 pxa_set_udc_info(&palmtx_udc_info); 554 pxa_set_udc_info(&palmtx_udc_info);
532 pxa_set_ac97_info(NULL);
533 pxa_set_ficp_info(&palmtx_ficp_platform_data); 555 pxa_set_ficp_info(&palmtx_ficp_platform_data);
534 pxa_set_keypad_info(&palmtx_keypad_platform_data); 556 pxa_set_keypad_info(&palmtx_keypad_platform_data);
535 wm97xx_bat_set_pdata(&wm97xx_batt_pdata); 557 wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index 6112740b4ae9..6c12b5a3132f 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -377,7 +377,7 @@ struct pxacamera_platform_data pcm990_pxacamera_platform_data = {
377#include <linux/i2c/pca953x.h> 377#include <linux/i2c/pca953x.h>
378 378
379static struct pca953x_platform_data pca9536_data = { 379static struct pca953x_platform_data pca9536_data = {
380 .gpio_base = NR_BUILTIN_GPIO + 1, 380 .gpio_base = NR_BUILTIN_GPIO,
381}; 381};
382 382
383static int gpio_bus_switch; 383static int gpio_bus_switch;
@@ -405,9 +405,9 @@ static unsigned long pcm990_camera_query_bus_param(struct soc_camera_link *link)
405 int ret; 405 int ret;
406 406
407 if (!gpio_bus_switch) { 407 if (!gpio_bus_switch) {
408 ret = gpio_request(NR_BUILTIN_GPIO + 1, "camera"); 408 ret = gpio_request(NR_BUILTIN_GPIO, "camera");
409 if (!ret) { 409 if (!ret) {
410 gpio_bus_switch = NR_BUILTIN_GPIO + 1; 410 gpio_bus_switch = NR_BUILTIN_GPIO;
411 gpio_direction_output(gpio_bus_switch, 0); 411 gpio_direction_output(gpio_bus_switch, 0);
412 } else 412 } else
413 gpio_bus_switch = -EINVAL; 413 gpio_bus_switch = -EINVAL;
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 8c61ddac119e..c18e34acafcb 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -299,12 +299,22 @@ static struct pxa2xx_spi_master spitz_spi_info = {
299 .num_chipselect = 3, 299 .num_chipselect = 3,
300}; 300};
301 301
302static void spitz_wait_for_hsync(void)
303{
304 while (gpio_get_value(SPITZ_GPIO_HSYNC))
305 cpu_relax();
306
307 while (!gpio_get_value(SPITZ_GPIO_HSYNC))
308 cpu_relax();
309}
310
302static struct ads7846_platform_data spitz_ads7846_info = { 311static struct ads7846_platform_data spitz_ads7846_info = {
303 .model = 7846, 312 .model = 7846,
304 .vref_delay_usecs = 100, 313 .vref_delay_usecs = 100,
305 .x_plate_ohms = 419, 314 .x_plate_ohms = 419,
306 .y_plate_ohms = 486, 315 .y_plate_ohms = 486,
307 .gpio_pendown = SPITZ_GPIO_TP_INT, 316 .gpio_pendown = SPITZ_GPIO_TP_INT,
317 .wait_for_sync = spitz_wait_for_hsync,
308}; 318};
309 319
310static void spitz_ads7846_cs(u32 command) 320static void spitz_ads7846_cs(u32 command)
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c
index 8eb3830fbb0b..750c448db672 100644
--- a/arch/arm/mach-pxa/time.c
+++ b/arch/arm/mach-pxa/time.c
@@ -125,7 +125,7 @@ static struct clock_event_device ckevt_pxa_osmr0 = {
125 .set_mode = pxa_osmr0_set_mode, 125 .set_mode = pxa_osmr0_set_mode,
126}; 126};
127 127
128static cycle_t pxa_read_oscr(void) 128static cycle_t pxa_read_oscr(struct clocksource *cs)
129{ 129{
130 return OSCR; 130 return OSCR;
131} 131}
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
index c1f73205d078..c256c57642c0 100644
--- a/arch/arm/mach-pxa/zylonite_pxa300.c
+++ b/arch/arm/mach-pxa/zylonite_pxa300.c
@@ -72,6 +72,7 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
72 GPIO25_AC97_SDATA_IN_0, 72 GPIO25_AC97_SDATA_IN_0,
73 GPIO27_AC97_SDATA_OUT, 73 GPIO27_AC97_SDATA_OUT,
74 GPIO28_AC97_SYNC, 74 GPIO28_AC97_SYNC,
75 GPIO17_GPIO, /* SDATA_IN_1 but unused - configure to GPIO */
75 76
76 /* SSP3 */ 77 /* SSP3 */
77 GPIO91_SSP3_SCLK, 78 GPIO91_SSP3_SCLK,
@@ -126,6 +127,10 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
126 /* Standard I2C */ 127 /* Standard I2C */
127 GPIO21_I2C_SCL, 128 GPIO21_I2C_SCL,
128 GPIO22_I2C_SDA, 129 GPIO22_I2C_SDA,
130
131 /* GPIO */
132 GPIO18_GPIO, /* GPIO Expander #0 INT_N */
133 GPIO19_GPIO, /* GPIO Expander #1 INT_N */
129}; 134};
130 135
131static mfp_cfg_t pxa300_mfp_cfg[] __initdata = { 136static mfp_cfg_t pxa300_mfp_cfg[] __initdata = {
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
index 4e1c488c6906..cc5a22833605 100644
--- a/arch/arm/mach-pxa/zylonite_pxa320.c
+++ b/arch/arm/mach-pxa/zylonite_pxa320.c
@@ -68,6 +68,7 @@ static mfp_cfg_t mfp_cfg[] __initdata = {
68 GPIO38_AC97_SYNC, 68 GPIO38_AC97_SYNC,
69 GPIO39_AC97_BITCLK, 69 GPIO39_AC97_BITCLK,
70 GPIO40_AC97_nACRESET, 70 GPIO40_AC97_nACRESET,
71 GPIO36_GPIO, /* SDATA_IN_1 but unused - configure to GPIO */
71 72
72 /* SSP3 */ 73 /* SSP3 */
73 GPIO89_SSP3_SCLK, 74 GPIO89_SSP3_SCLK,
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 9ab947c14f26..942e1a7eb9b2 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -715,7 +715,7 @@ static struct irqaction realview_timer_irq = {
715 .handler = realview_timer_interrupt, 715 .handler = realview_timer_interrupt,
716}; 716};
717 717
718static cycle_t realview_get_cycles(void) 718static cycle_t realview_get_cycles(struct clocksource *cs)
719{ 719{
720 return ~readl(timer3_va_base + TIMER_VALUE); 720 return ~readl(timer3_va_base + TIMER_VALUE);
721} 721}
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c
index 332bd3263eaf..8f0d37d43b43 100644
--- a/arch/arm/mach-s3c2412/mach-jive.c
+++ b/arch/arm/mach-s3c2412/mach-jive.c
@@ -52,7 +52,6 @@
52#include <plat/cpu.h> 52#include <plat/cpu.h>
53#include <plat/pm.h> 53#include <plat/pm.h>
54#include <plat/udc.h> 54#include <plat/udc.h>
55#include <plat/iic.h>
56 55
57static struct map_desc jive_iodesc[] __initdata = { 56static struct map_desc jive_iodesc[] __initdata = {
58}; 57};
@@ -278,7 +277,7 @@ __setup("mtdset=", jive_mtdset);
278#define LCD_HTOT (LCD_HSYNC + LCD_LEFT_MARGIN + LCD_XRES + LCD_RIGHT_MARGIN) 277#define LCD_HTOT (LCD_HSYNC + LCD_LEFT_MARGIN + LCD_XRES + LCD_RIGHT_MARGIN)
279#define LCD_VTOT (LCD_VSYNC + LCD_LOWER_MARGIN + LCD_YRES + LCD_UPPER_MARGIN) 278#define LCD_VTOT (LCD_VSYNC + LCD_LOWER_MARGIN + LCD_YRES + LCD_UPPER_MARGIN)
280 279
281struct s3c2410fb_display jive_vgg2432a4_display[] = { 280static struct s3c2410fb_display jive_vgg2432a4_display[] = {
282 [0] = { 281 [0] = {
283 .width = LCD_XRES, 282 .width = LCD_XRES,
284 .height = LCD_YRES, 283 .height = LCD_YRES,
@@ -311,7 +310,7 @@ struct s3c2410fb_display jive_vgg2432a4_display[] = {
311#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2)) 310#define S3C2410_GPCCON_MASK(x) (3 << ((x) * 2))
312#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2)) 311#define S3C2410_GPDCON_MASK(x) (3 << ((x) * 2))
313 312
314struct s3c2410fb_mach_info jive_lcd_config = { 313static struct s3c2410fb_mach_info jive_lcd_config = {
315 .displays = jive_vgg2432a4_display, 314 .displays = jive_vgg2432a4_display,
316 .num_displays = ARRAY_SIZE(jive_vgg2432a4_display), 315 .num_displays = ARRAY_SIZE(jive_vgg2432a4_display),
317 .default_display = 0, 316 .default_display = 0,
diff --git a/arch/arm/mach-s3c2412/pm.c b/arch/arm/mach-s3c2412/pm.c
index c9cfe40e21f6..a7417c479ffe 100644
--- a/arch/arm/mach-s3c2412/pm.c
+++ b/arch/arm/mach-s3c2412/pm.c
@@ -21,6 +21,7 @@
21#include <linux/io.h> 21#include <linux/io.h>
22 22
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/cacheflush.h>
24#include <asm/irq.h> 25#include <asm/irq.h>
25 26
26#include <mach/regs-power.h> 27#include <mach/regs-power.h>
@@ -39,6 +40,8 @@ static void s3c2412_cpu_suspend(void)
39{ 40{
40 unsigned long tmp; 41 unsigned long tmp;
41 42
43 flush_cache_all();
44
42 /* set our standby method to sleep */ 45 /* set our standby method to sleep */
43 46
44 tmp = __raw_readl(S3C2412_PWRCFG); 47 tmp = __raw_readl(S3C2412_PWRCFG);
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c
index b05d56e230a1..9c6abf9fb540 100644
--- a/arch/arm/mach-s3c2440/mach-anubis.c
+++ b/arch/arm/mach-s3c2440/mach-anubis.c
@@ -243,7 +243,7 @@ static struct s3c2410_platform_nand anubis_nand_info = {
243 243
244/* IDE channels */ 244/* IDE channels */
245 245
246struct pata_platform_info anubis_ide_platdata = { 246static struct pata_platform_info anubis_ide_platdata = {
247 .ioport_shift = 5, 247 .ioport_shift = 5,
248}; 248};
249 249
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c
index 41a00f57e5da..c8a46685ce38 100644
--- a/arch/arm/mach-s3c2440/mach-osiris.c
+++ b/arch/arm/mach-s3c2440/mach-osiris.c
@@ -413,7 +413,6 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS")
413 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc, 413 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
414 .boot_params = S3C2410_SDRAM_PA + 0x100, 414 .boot_params = S3C2410_SDRAM_PA + 0x100,
415 .map_io = osiris_map_io, 415 .map_io = osiris_map_io,
416 .init_machine = osiris_init,
417 .init_irq = s3c24xx_init_irq, 416 .init_irq = s3c24xx_init_irq,
418 .init_machine = osiris_init, 417 .init_machine = osiris_init,
419 .timer = &s3c24xx_timer, 418 .timer = &s3c24xx_timer,
diff --git a/arch/arm/mach-s3c6400/include/mach/map.h b/arch/arm/mach-s3c6400/include/mach/map.h
index baf1c0f1ea5a..8199972ed5bd 100644
--- a/arch/arm/mach-s3c6400/include/mach/map.h
+++ b/arch/arm/mach-s3c6400/include/mach/map.h
@@ -40,6 +40,8 @@
40 40
41#define S3C64XX_PA_FB (0x77100000) 41#define S3C64XX_PA_FB (0x77100000)
42#define S3C64XX_PA_SYSCON (0x7E00F000) 42#define S3C64XX_PA_SYSCON (0x7E00F000)
43#define S3C64XX_PA_IIS0 (0x7F002000)
44#define S3C64XX_PA_IIS1 (0x7F003000)
43#define S3C64XX_PA_TIMER (0x7F006000) 45#define S3C64XX_PA_TIMER (0x7F006000)
44#define S3C64XX_PA_IIC0 (0x7F004000) 46#define S3C64XX_PA_IIC0 (0x7F004000)
45#define S3C64XX_PA_IIC1 (0x7F00F000) 47#define S3C64XX_PA_IIC1 (0x7F00F000)
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
index 25f7935576f8..7f473e47e4f1 100644
--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
+++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
@@ -166,6 +166,10 @@ static void __init smdk6410_machine_init(void)
166 s3c_i2c1_set_platdata(NULL); 166 s3c_i2c1_set_platdata(NULL);
167 s3c_fb_set_platdata(&smdk6410_lcd_pdata); 167 s3c_fb_set_platdata(&smdk6410_lcd_pdata);
168 168
169 gpio_request(S3C64XX_GPN(5), "LCD power");
170 gpio_request(S3C64XX_GPF(13), "LCD power");
171 gpio_request(S3C64XX_GPF(15), "LCD power");
172
169 i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0)); 173 i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
170 i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); 174 i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
171 175
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c
index 0cd52692d2f7..1f940df0e5af 100644
--- a/arch/arm/mach-sa1100/lart.c
+++ b/arch/arm/mach-sa1100/lart.c
@@ -9,6 +9,7 @@
9#include <mach/hardware.h> 9#include <mach/hardware.h>
10#include <asm/setup.h> 10#include <asm/setup.h>
11#include <asm/mach-types.h> 11#include <asm/mach-types.h>
12#include <asm/page.h>
12 13
13#include <asm/mach/arch.h> 14#include <asm/mach/arch.h>
14#include <asm/mach/map.h> 15#include <asm/mach/map.h>
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 565776680d8c..1f929c391af7 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -948,7 +948,7 @@ static struct irqaction versatile_timer_irq = {
948 .handler = versatile_timer_interrupt, 948 .handler = versatile_timer_interrupt,
949}; 949};
950 950
951static cycle_t versatile_get_cycles(void) 951static cycle_t versatile_get_cycles(struct clocksource *cs)
952{ 952{
953 return ~readl(TIMER3_VA_BASE + TIMER_VALUE); 953 return ~readl(TIMER3_VA_BASE + TIMER_VALUE);
954} 954}
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S
index 2c6c2a7c05a0..8f5c13f4c936 100644
--- a/arch/arm/mm/cache-v6.S
+++ b/arch/arm/mm/cache-v6.S
@@ -20,6 +20,31 @@
20#define D_CACHE_LINE_SIZE 32 20#define D_CACHE_LINE_SIZE 32
21#define BTB_FLUSH_SIZE 8 21#define BTB_FLUSH_SIZE 8
22 22
23#ifdef CONFIG_ARM_ERRATA_411920
24/*
25 * Invalidate the entire I cache (this code is a workaround for the ARM1136
26 * erratum 411920 - Invalidate Instruction Cache operation can fail. This
27 * erratum is present in 1136, 1156 and 1176. It does not affect the MPCore.
28 *
29 * Registers:
30 * r0 - set to 0
31 * r1 - corrupted
32 */
33ENTRY(v6_icache_inval_all)
34 mov r0, #0
35 mrs r1, cpsr
36 cpsid ifa @ disable interrupts
37 mcr p15, 0, r0, c7, c5, 0 @ invalidate entire I-cache
38 mcr p15, 0, r0, c7, c5, 0 @ invalidate entire I-cache
39 mcr p15, 0, r0, c7, c5, 0 @ invalidate entire I-cache
40 mcr p15, 0, r0, c7, c5, 0 @ invalidate entire I-cache
41 msr cpsr_cx, r1 @ restore interrupts
42 .rept 11 @ ARM Ltd recommends at least
43 nop @ 11 NOPs
44 .endr
45 mov pc, lr
46#endif
47
23/* 48/*
24 * v6_flush_cache_all() 49 * v6_flush_cache_all()
25 * 50 *
@@ -31,8 +56,12 @@ ENTRY(v6_flush_kern_cache_all)
31 mov r0, #0 56 mov r0, #0
32#ifdef HARVARD_CACHE 57#ifdef HARVARD_CACHE
33 mcr p15, 0, r0, c7, c14, 0 @ D cache clean+invalidate 58 mcr p15, 0, r0, c7, c14, 0 @ D cache clean+invalidate
59#ifndef CONFIG_ARM_ERRATA_411920
34 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate 60 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate
35#else 61#else
62 b v6_icache_inval_all
63#endif
64#else
36 mcr p15, 0, r0, c7, c15, 0 @ Cache clean+invalidate 65 mcr p15, 0, r0, c7, c15, 0 @ Cache clean+invalidate
37#endif 66#endif
38 mov pc, lr 67 mov pc, lr
@@ -103,8 +132,12 @@ ENTRY(v6_coherent_user_range)
103 mov r0, #0 132 mov r0, #0
104#ifdef HARVARD_CACHE 133#ifdef HARVARD_CACHE
105 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer 134 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
135#ifndef CONFIG_ARM_ERRATA_411920
106 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate 136 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate
107#else 137#else
138 b v6_icache_inval_all
139#endif
140#else
108 mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB 141 mcr p15, 0, r0, c7, c5, 6 @ invalidate BTB
109#endif 142#endif
110 mov pc, lr 143 mov pc, lr
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index 4e283481cee1..c07222eb5ce0 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -18,6 +18,10 @@
18 18
19#include "mm.h" 19#include "mm.h"
20 20
21#ifdef CONFIG_ARM_ERRATA_411920
22extern void v6_icache_inval_all(void);
23#endif
24
21#ifdef CONFIG_CPU_CACHE_VIPT 25#ifdef CONFIG_CPU_CACHE_VIPT
22 26
23#define ALIAS_FLUSH_START 0xffff4000 27#define ALIAS_FLUSH_START 0xffff4000
@@ -32,10 +36,15 @@ static void flush_pfn_alias(unsigned long pfn, unsigned long vaddr)
32 36
33 asm( "mcrr p15, 0, %1, %0, c14\n" 37 asm( "mcrr p15, 0, %1, %0, c14\n"
34 " mcr p15, 0, %2, c7, c10, 4\n" 38 " mcr p15, 0, %2, c7, c10, 4\n"
39#ifndef CONFIG_ARM_ERRATA_411920
35 " mcr p15, 0, %2, c7, c5, 0\n" 40 " mcr p15, 0, %2, c7, c5, 0\n"
41#endif
36 : 42 :
37 : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero) 43 : "r" (to), "r" (to + PAGE_SIZE - L1_CACHE_BYTES), "r" (zero)
38 : "cc"); 44 : "cc");
45#ifdef CONFIG_ARM_ERRATA_411920
46 v6_icache_inval_all();
47#endif
39} 48}
40 49
41void flush_cache_mm(struct mm_struct *mm) 50void flush_cache_mm(struct mm_struct *mm)
@@ -48,11 +57,16 @@ void flush_cache_mm(struct mm_struct *mm)
48 57
49 if (cache_is_vipt_aliasing()) { 58 if (cache_is_vipt_aliasing()) {
50 asm( "mcr p15, 0, %0, c7, c14, 0\n" 59 asm( "mcr p15, 0, %0, c7, c14, 0\n"
60 " mcr p15, 0, %0, c7, c10, 4\n"
61#ifndef CONFIG_ARM_ERRATA_411920
51 " mcr p15, 0, %0, c7, c5, 0\n" 62 " mcr p15, 0, %0, c7, c5, 0\n"
52 " mcr p15, 0, %0, c7, c10, 4" 63#endif
53 : 64 :
54 : "r" (0) 65 : "r" (0)
55 : "cc"); 66 : "cc");
67#ifdef CONFIG_ARM_ERRATA_411920
68 v6_icache_inval_all();
69#endif
56 } 70 }
57} 71}
58 72
@@ -67,11 +81,16 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned
67 81
68 if (cache_is_vipt_aliasing()) { 82 if (cache_is_vipt_aliasing()) {
69 asm( "mcr p15, 0, %0, c7, c14, 0\n" 83 asm( "mcr p15, 0, %0, c7, c14, 0\n"
84 " mcr p15, 0, %0, c7, c10, 4\n"
85#ifndef CONFIG_ARM_ERRATA_411920
70 " mcr p15, 0, %0, c7, c5, 0\n" 86 " mcr p15, 0, %0, c7, c5, 0\n"
71 " mcr p15, 0, %0, c7, c10, 4" 87#endif
72 : 88 :
73 : "r" (0) 89 : "r" (0)
74 : "cc"); 90 : "cc");
91#ifdef CONFIG_ARM_ERRATA_411920
92 v6_icache_inval_all();
93#endif
75 } 94 }
76} 95}
77 96
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index f0cc599facb7..087e239704df 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -10,6 +10,7 @@
10 * 10 *
11 * This is the "shell" of the ARMv6 processor support. 11 * This is the "shell" of the ARMv6 processor support.
12 */ 12 */
13#include <linux/init.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/assembler.h> 15#include <asm/assembler.h>
15#include <asm/asm-offsets.h> 16#include <asm/asm-offsets.h>
@@ -132,7 +133,7 @@ cpu_v6_name:
132 .asciz "ARMv6-compatible processor" 133 .asciz "ARMv6-compatible processor"
133 .align 134 .align
134 135
135 .section ".text.init", #alloc, #execinstr 136 __INIT
136 137
137/* 138/*
138 * __v6_setup 139 * __v6_setup
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index d1ebec42521d..3397f1e64d76 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -9,6 +9,7 @@
9 * 9 *
10 * This is the "shell" of the ARMv7 processor support. 10 * This is the "shell" of the ARMv7 processor support.
11 */ 11 */
12#include <linux/init.h>
12#include <linux/linkage.h> 13#include <linux/linkage.h>
13#include <asm/assembler.h> 14#include <asm/assembler.h>
14#include <asm/asm-offsets.h> 15#include <asm/asm-offsets.h>
@@ -95,6 +96,9 @@ ENTRY(cpu_v7_switch_mm)
95 mov r2, #0 96 mov r2, #0
96 ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id 97 ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id
97 orr r0, r0, #TTB_FLAGS 98 orr r0, r0, #TTB_FLAGS
99#ifdef CONFIG_ARM_ERRATA_430973
100 mcr p15, 0, r2, c7, c5, 6 @ flush BTAC/BTB
101#endif
98 mcr p15, 0, r2, c13, c0, 1 @ set reserved context ID 102 mcr p15, 0, r2, c13, c0, 1 @ set reserved context ID
99 isb 103 isb
1001: mcr p15, 0, r0, c2, c0, 0 @ set TTB 0 1041: mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
@@ -153,7 +157,7 @@ cpu_v7_name:
153 .ascii "ARMv7 Processor" 157 .ascii "ARMv7 Processor"
154 .align 158 .align
155 159
156 .section ".text.init", #alloc, #execinstr 160 __INIT
157 161
158/* 162/*
159 * __v7_setup 163 * __v7_setup
@@ -180,6 +184,22 @@ __v7_setup:
180 stmia r12, {r0-r5, r7, r9, r11, lr} 184 stmia r12, {r0-r5, r7, r9, r11, lr}
181 bl v7_flush_dcache_all 185 bl v7_flush_dcache_all
182 ldmia r12, {r0-r5, r7, r9, r11, lr} 186 ldmia r12, {r0-r5, r7, r9, r11, lr}
187#ifdef CONFIG_ARM_ERRATA_430973
188 mrc p15, 0, r10, c1, c0, 1 @ read aux control register
189 orr r10, r10, #(1 << 6) @ set IBE to 1
190 mcr p15, 0, r10, c1, c0, 1 @ write aux control register
191#endif
192#ifdef CONFIG_ARM_ERRATA_458693
193 mrc p15, 0, r10, c1, c0, 1 @ read aux control register
194 orr r10, r10, #(1 << 5) @ set L1NEON to 1
195 orr r10, r10, #(1 << 9) @ set PLDNOP to 1
196 mcr p15, 0, r10, c1, c0, 1 @ write aux control register
197#endif
198#ifdef CONFIG_ARM_ERRATA_460075
199 mrc p15, 1, r10, c9, c0, 2 @ read L2 cache aux ctrl register
200 orr r10, r10, #(1 << 22) @ set the Write Allocate disable bit
201 mcr p15, 1, r10, c9, c0, 2 @ write the L2 cache aux ctrl register
202#endif
183 mov r10, #0 203 mov r10, #0
184#ifdef HARVARD_CACHE 204#ifdef HARVARD_CACHE
185 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate 205 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate
diff --git a/arch/arm/mm/tlb-v6.S b/arch/arm/mm/tlb-v6.S
index 20f84bbaa9bb..73d7d89b04c4 100644
--- a/arch/arm/mm/tlb-v6.S
+++ b/arch/arm/mm/tlb-v6.S
@@ -10,6 +10,7 @@
10 * ARM architecture version 6 TLB handling functions. 10 * ARM architecture version 6 TLB handling functions.
11 * These assume a split I/D TLB. 11 * These assume a split I/D TLB.
12 */ 12 */
13#include <linux/init.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/asm-offsets.h> 15#include <asm/asm-offsets.h>
15#include <asm/page.h> 16#include <asm/page.h>
@@ -87,7 +88,7 @@ ENTRY(v6wbi_flush_kern_tlb_range)
87 mcr p15, 0, r2, c7, c5, 4 @ prefetch flush 88 mcr p15, 0, r2, c7, c5, 4 @ prefetch flush
88 mov pc, lr 89 mov pc, lr
89 90
90 .section ".text.init", #alloc, #execinstr 91 __INIT
91 92
92 .type v6wbi_tlb_fns, #object 93 .type v6wbi_tlb_fns, #object
93ENTRY(v6wbi_tlb_fns) 94ENTRY(v6wbi_tlb_fns)
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S
index 24ba5109f2e7..b637e7380ab7 100644
--- a/arch/arm/mm/tlb-v7.S
+++ b/arch/arm/mm/tlb-v7.S
@@ -11,6 +11,7 @@
11 * ARM architecture version 6 TLB handling functions. 11 * ARM architecture version 6 TLB handling functions.
12 * These assume a split I/D TLB. 12 * These assume a split I/D TLB.
13 */ 13 */
14#include <linux/init.h>
14#include <linux/linkage.h> 15#include <linux/linkage.h>
15#include <asm/asm-offsets.h> 16#include <asm/asm-offsets.h>
16#include <asm/page.h> 17#include <asm/page.h>
@@ -80,7 +81,7 @@ ENTRY(v7wbi_flush_kern_tlb_range)
80 mov pc, lr 81 mov pc, lr
81ENDPROC(v7wbi_flush_kern_tlb_range) 82ENDPROC(v7wbi_flush_kern_tlb_range)
82 83
83 .section ".text.init", #alloc, #execinstr 84 __INIT
84 85
85 .type v7wbi_tlb_fns, #object 86 .type v7wbi_tlb_fns, #object
86ENTRY(v7wbi_tlb_fns) 87ENTRY(v7wbi_tlb_fns)
diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c
index e364a5ed10f1..77646436c00e 100644
--- a/arch/arm/plat-mxc/dma-mx1-mx2.c
+++ b/arch/arm/plat-mxc/dma-mx1-mx2.c
@@ -693,12 +693,15 @@ int imx_dma_request(int channel, const char *name)
693 local_irq_restore(flags); 693 local_irq_restore(flags);
694 return -EBUSY; 694 return -EBUSY;
695 } 695 }
696 memset(imxdma, 0, sizeof(imxdma));
697 imxdma->name = name;
698 local_irq_restore(flags); /* request_irq() can block */
696 699
697#ifdef CONFIG_ARCH_MX2 700#ifdef CONFIG_ARCH_MX2
698 ret = request_irq(MXC_INT_DMACH0 + channel, dma_irq_handler, 0, "DMA", 701 ret = request_irq(MXC_INT_DMACH0 + channel, dma_irq_handler, 0, "DMA",
699 NULL); 702 NULL);
700 if (ret) { 703 if (ret) {
701 local_irq_restore(flags); 704 imxdma->name = NULL;
702 printk(KERN_CRIT "Can't register IRQ %d for DMA channel %d\n", 705 printk(KERN_CRIT "Can't register IRQ %d for DMA channel %d\n",
703 MXC_INT_DMACH0 + channel, channel); 706 MXC_INT_DMACH0 + channel, channel);
704 return ret; 707 return ret;
@@ -708,13 +711,6 @@ int imx_dma_request(int channel, const char *name)
708 imxdma->watchdog.data = channel; 711 imxdma->watchdog.data = channel;
709#endif 712#endif
710 713
711 imxdma->name = name;
712 imxdma->irq_handler = NULL;
713 imxdma->err_handler = NULL;
714 imxdma->data = NULL;
715 imxdma->sg = NULL;
716
717 local_irq_restore(flags);
718 return ret; 714 return ret;
719} 715}
720EXPORT_SYMBOL(imx_dma_request); 716EXPORT_SYMBOL(imx_dma_request);
@@ -737,10 +733,7 @@ void imx_dma_free(int channel)
737 733
738 local_irq_save(flags); 734 local_irq_save(flags);
739 /* Disable interrupts */ 735 /* Disable interrupts */
740 __raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) | (1 << channel), 736 imx_dma_disable(channel);
741 DMA_BASE + DMA_DIMR);
742 __raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) & ~CCR_CEN,
743 DMA_BASE + DMA_CCR(channel));
744 imxdma->name = NULL; 737 imxdma->name = NULL;
745 738
746#ifdef CONFIG_ARCH_MX2 739#ifdef CONFIG_ARCH_MX2
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c
index c6483bad8a26..89e95798cc3b 100644
--- a/arch/arm/plat-mxc/gpio.c
+++ b/arch/arm/plat-mxc/gpio.c
@@ -124,7 +124,7 @@ static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
124 124
125 irq_stat = __raw_readl(port->base + GPIO_ISR) & 125 irq_stat = __raw_readl(port->base + GPIO_ISR) &
126 __raw_readl(port->base + GPIO_IMR); 126 __raw_readl(port->base + GPIO_IMR);
127 BUG_ON(!irq_stat); 127
128 mxc_gpio_irq_handler(port, irq_stat); 128 mxc_gpio_irq_handler(port, irq_stat);
129} 129}
130#endif 130#endif
diff --git a/arch/arm/plat-mxc/include/mach/board-mx27ads.h b/arch/arm/plat-mxc/include/mach/board-mx27ads.h
index 1cac9d1135cd..d42f4e6116f8 100644
--- a/arch/arm/plat-mxc/include/mach/board-mx27ads.h
+++ b/arch/arm/plat-mxc/include/mach/board-mx27ads.h
@@ -47,7 +47,7 @@
47/* 47/*
48 * Base address of PBC controller, CS4 48 * Base address of PBC controller, CS4
49 */ 49 */
50#define PBC_BASE_ADDRESS 0xEB000000 50#define PBC_BASE_ADDRESS 0xf4300000
51#define PBC_REG_ADDR(offset) (void __force __iomem *) \ 51#define PBC_REG_ADDR(offset) (void __force __iomem *) \
52 (PBC_BASE_ADDRESS + (offset)) 52 (PBC_BASE_ADDRESS + (offset))
53 53
diff --git a/arch/arm/plat-mxc/include/mach/imx-uart.h b/arch/arm/plat-mxc/include/mach/imx-uart.h
index 83fb72c4048a..599217b2e13f 100644
--- a/arch/arm/plat-mxc/include/mach/imx-uart.h
+++ b/arch/arm/plat-mxc/include/mach/imx-uart.h
@@ -27,6 +27,4 @@ struct imxuart_platform_data {
27 unsigned int flags; 27 unsigned int flags;
28}; 28};
29 29
30int __init imx_init_uart(int uart_no, struct imxuart_platform_data *pdata);
31
32#endif 30#endif
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx3.h b/arch/arm/plat-mxc/include/mach/iomux-mx3.h
index ab838cfe94f9..57e927a1fd3a 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx3.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx3.h
@@ -518,6 +518,8 @@ enum iomux_pins {
518 */ 518 */
519#define MX31_PIN_CSPI3_MOSI__RXD3 IOMUX_MODE(MX31_PIN_CSPI3_MOSI, IOMUX_CONFIG_ALT1) 519#define MX31_PIN_CSPI3_MOSI__RXD3 IOMUX_MODE(MX31_PIN_CSPI3_MOSI, IOMUX_CONFIG_ALT1)
520#define MX31_PIN_CSPI3_MISO__TXD3 IOMUX_MODE(MX31_PIN_CSPI3_MISO, IOMUX_CONFIG_ALT1) 520#define MX31_PIN_CSPI3_MISO__TXD3 IOMUX_MODE(MX31_PIN_CSPI3_MISO, IOMUX_CONFIG_ALT1)
521#define MX31_PIN_CSPI3_SCLK__RTS3 IOMUX_MODE(MX31_PIN_CSPI3_SCLK, IOMUX_CONFIG_ALT1)
522#define MX31_PIN_CSPI3_SPI_RDY__CTS3 IOMUX_MODE(MX31_PIN_CSPI3_SPI_RDY, IOMUX_CONFIG_ALT1)
521#define MX31_PIN_CTS1__CTS1 IOMUX_MODE(MX31_PIN_CTS1, IOMUX_CONFIG_FUNC) 523#define MX31_PIN_CTS1__CTS1 IOMUX_MODE(MX31_PIN_CTS1, IOMUX_CONFIG_FUNC)
522#define MX31_PIN_RTS1__RTS1 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_FUNC) 524#define MX31_PIN_RTS1__RTS1 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_FUNC)
523#define MX31_PIN_TXD1__TXD1 IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_FUNC) 525#define MX31_PIN_TXD1__TXD1 IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_FUNC)
@@ -558,6 +560,16 @@ enum iomux_pins {
558#define MX31_PIN_SD1_DATA0__SD1_DATA0 IOMUX_MODE(MX31_PIN_SD1_DATA0, IOMUX_CONFIG_FUNC) 560#define MX31_PIN_SD1_DATA0__SD1_DATA0 IOMUX_MODE(MX31_PIN_SD1_DATA0, IOMUX_CONFIG_FUNC)
559#define MX31_PIN_SD1_CLK__SD1_CLK IOMUX_MODE(MX31_PIN_SD1_CLK, IOMUX_CONFIG_FUNC) 561#define MX31_PIN_SD1_CLK__SD1_CLK IOMUX_MODE(MX31_PIN_SD1_CLK, IOMUX_CONFIG_FUNC)
560#define MX31_PIN_SD1_CMD__SD1_CMD IOMUX_MODE(MX31_PIN_SD1_CMD, IOMUX_CONFIG_FUNC) 562#define MX31_PIN_SD1_CMD__SD1_CMD IOMUX_MODE(MX31_PIN_SD1_CMD, IOMUX_CONFIG_FUNC)
563#define MX31_PIN_ATA_CS0__GPIO3_26 IOMUX_MODE(MX31_PIN_ATA_CS0, IOMUX_CONFIG_GPIO)
564#define MX31_PIN_ATA_CS1__GPIO3_27 IOMUX_MODE(MX31_PIN_ATA_CS1, IOMUX_CONFIG_GPIO)
565#define MX31_PIN_PC_PWRON__SD2_DATA3 IOMUX_MODE(MX31_PIN_PC_PWRON, IOMUX_CONFIG_ALT1)
566#define MX31_PIN_PC_VS1__SD2_DATA2 IOMUX_MODE(MX31_PIN_PC_VS1, IOMUX_CONFIG_ALT1)
567#define MX31_PIN_PC_READY__SD2_DATA1 IOMUX_MODE(MX31_PIN_PC_READY, IOMUX_CONFIG_ALT1)
568#define MX31_PIN_PC_WAIT_B__SD2_DATA0 IOMUX_MODE(MX31_PIN_PC_WAIT_B, IOMUX_CONFIG_ALT1)
569#define MX31_PIN_PC_CD2_B__SD2_CLK IOMUX_MODE(MX31_PIN_PC_CD2_B, IOMUX_CONFIG_ALT1)
570#define MX31_PIN_PC_CD1_B__SD2_CMD IOMUX_MODE(MX31_PIN_PC_CD1_B, IOMUX_CONFIG_ALT1)
571#define MX31_PIN_ATA_DIOR__GPIO3_28 IOMUX_MODE(MX31_PIN_ATA_DIOR, IOMUX_CONFIG_GPIO)
572#define MX31_PIN_ATA_DIOW__GPIO3_29 IOMUX_MODE(MX31_PIN_ATA_DIOW, IOMUX_CONFIG_GPIO)
561#define MX31_PIN_LD0__LD0 IOMUX_MODE(MX31_PIN_LD0, IOMUX_CONFIG_FUNC) 573#define MX31_PIN_LD0__LD0 IOMUX_MODE(MX31_PIN_LD0, IOMUX_CONFIG_FUNC)
562#define MX31_PIN_LD1__LD1 IOMUX_MODE(MX31_PIN_LD1, IOMUX_CONFIG_FUNC) 574#define MX31_PIN_LD1__LD1 IOMUX_MODE(MX31_PIN_LD1, IOMUX_CONFIG_FUNC)
563#define MX31_PIN_LD2__LD2 IOMUX_MODE(MX31_PIN_LD2, IOMUX_CONFIG_FUNC) 575#define MX31_PIN_LD2__LD2 IOMUX_MODE(MX31_PIN_LD2, IOMUX_CONFIG_FUNC)
@@ -585,6 +597,42 @@ enum iomux_pins {
585#define MX31_PIN_D3_SPL__D3_SPL IOMUX_MODE(MX31_PIN_D3_SPL, IOMUX_CONFIG_FUNC) 597#define MX31_PIN_D3_SPL__D3_SPL IOMUX_MODE(MX31_PIN_D3_SPL, IOMUX_CONFIG_FUNC)
586#define MX31_PIN_D3_CLS__D3_CLS IOMUX_MODE(MX31_PIN_D3_CLS, IOMUX_CONFIG_FUNC) 598#define MX31_PIN_D3_CLS__D3_CLS IOMUX_MODE(MX31_PIN_D3_CLS, IOMUX_CONFIG_FUNC)
587#define MX31_PIN_LCS0__GPI03_23 IOMUX_MODE(MX31_PIN_LCS0, IOMUX_CONFIG_GPIO) 599#define MX31_PIN_LCS0__GPI03_23 IOMUX_MODE(MX31_PIN_LCS0, IOMUX_CONFIG_GPIO)
600#define MX31_PIN_GPIO1_1__GPIO IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO)
601#define MX31_PIN_I2C_CLK__SCL IOMUX_MODE(MX31_PIN_I2C_CLK, IOMUX_CONFIG_FUNC)
602#define MX31_PIN_I2C_DAT__SDA IOMUX_MODE(MX31_PIN_I2C_DAT, IOMUX_CONFIG_FUNC)
603#define MX31_PIN_DCD_DTE1__I2C2_SDA IOMUX_MODE(MX31_PIN_DCD_DTE1, IOMUX_CONFIG_ALT2)
604#define MX31_PIN_RI_DTE1__I2C2_SCL IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_ALT2)
605#define MX31_PIN_CSI_D4__CSI_D4 IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_FUNC)
606#define MX31_PIN_CSI_D5__CSI_D5 IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_FUNC)
607#define MX31_PIN_CSI_D6__CSI_D6 IOMUX_MODE(MX31_PIN_CSI_D6, IOMUX_CONFIG_FUNC)
608#define MX31_PIN_CSI_D7__CSI_D7 IOMUX_MODE(MX31_PIN_CSI_D7, IOMUX_CONFIG_FUNC)
609#define MX31_PIN_CSI_D8__CSI_D8 IOMUX_MODE(MX31_PIN_CSI_D8, IOMUX_CONFIG_FUNC)
610#define MX31_PIN_CSI_D9__CSI_D9 IOMUX_MODE(MX31_PIN_CSI_D9, IOMUX_CONFIG_FUNC)
611#define MX31_PIN_CSI_D10__CSI_D10 IOMUX_MODE(MX31_PIN_CSI_D10, IOMUX_CONFIG_FUNC)
612#define MX31_PIN_CSI_D11__CSI_D11 IOMUX_MODE(MX31_PIN_CSI_D11, IOMUX_CONFIG_FUNC)
613#define MX31_PIN_CSI_D12__CSI_D12 IOMUX_MODE(MX31_PIN_CSI_D12, IOMUX_CONFIG_FUNC)
614#define MX31_PIN_CSI_D13__CSI_D13 IOMUX_MODE(MX31_PIN_CSI_D13, IOMUX_CONFIG_FUNC)
615#define MX31_PIN_CSI_D14__CSI_D14 IOMUX_MODE(MX31_PIN_CSI_D14, IOMUX_CONFIG_FUNC)
616#define MX31_PIN_CSI_D15__CSI_D15 IOMUX_MODE(MX31_PIN_CSI_D15, IOMUX_CONFIG_FUNC)
617#define MX31_PIN_CSI_HSYNC__CSI_HSYNC IOMUX_MODE(MX31_PIN_CSI_HSYNC, IOMUX_CONFIG_FUNC)
618#define MX31_PIN_CSI_MCLK__CSI_MCLK IOMUX_MODE(MX31_PIN_CSI_MCLK, IOMUX_CONFIG_FUNC)
619#define MX31_PIN_CSI_PIXCLK__CSI_PIXCLK IOMUX_MODE(MX31_PIN_CSI_PIXCLK, IOMUX_CONFIG_FUNC)
620#define MX31_PIN_CSI_VSYNC__CSI_VSYNC IOMUX_MODE(MX31_PIN_CSI_VSYNC, IOMUX_CONFIG_FUNC)
621#define MX31_PIN_GPIO3_0__GPIO3_0 IOMUX_MODE(MX31_PIN_GPIO3_0, IOMUX_CONFIG_GPIO)
622#define MX31_PIN_GPIO3_1__GPIO3_1 IOMUX_MODE(MX31_PIN_GPIO3_1, IOMUX_CONFIG_GPIO)
623#define MX31_PIN_TXD2__GPIO1_28 IOMUX_MODE(MX31_PIN_TXD2, IOMUX_CONFIG_GPIO)
624#define MX31_PIN_USBOTG_DATA0__USBOTG_DATA0 IOMUX_MODE(MX31_PIN_USBOTG_DATA0, IOMUX_CONFIG_FUNC)
625#define MX31_PIN_USBOTG_DATA1__USBOTG_DATA1 IOMUX_MODE(MX31_PIN_USBOTG_DATA1, IOMUX_CONFIG_FUNC)
626#define MX31_PIN_USBOTG_DATA2__USBOTG_DATA2 IOMUX_MODE(MX31_PIN_USBOTG_DATA2, IOMUX_CONFIG_FUNC)
627#define MX31_PIN_USBOTG_DATA3__USBOTG_DATA3 IOMUX_MODE(MX31_PIN_USBOTG_DATA3, IOMUX_CONFIG_FUNC)
628#define MX31_PIN_USBOTG_DATA4__USBOTG_DATA4 IOMUX_MODE(MX31_PIN_USBOTG_DATA4, IOMUX_CONFIG_FUNC)
629#define MX31_PIN_USBOTG_DATA5__USBOTG_DATA5 IOMUX_MODE(MX31_PIN_USBOTG_DATA5, IOMUX_CONFIG_FUNC)
630#define MX31_PIN_USBOTG_DATA6__USBOTG_DATA6 IOMUX_MODE(MX31_PIN_USBOTG_DATA6, IOMUX_CONFIG_FUNC)
631#define MX31_PIN_USBOTG_DATA7__USBOTG_DATA7 IOMUX_MODE(MX31_PIN_USBOTG_DATA7, IOMUX_CONFIG_FUNC)
632#define MX31_PIN_USBOTG_CLK__USBOTG_CLK IOMUX_MODE(MX31_PIN_USBOTG_CLK, IOMUX_CONFIG_FUNC)
633#define MX31_PIN_USBOTG_DIR__USBOTG_DIR IOMUX_MODE(MX31_PIN_USBOTG_DIR, IOMUX_CONFIG_FUNC)
634#define MX31_PIN_USBOTG_NXT__USBOTG_NXT IOMUX_MODE(MX31_PIN_USBOTG_NXT, IOMUX_CONFIG_FUNC)
635#define MX31_PIN_USBOTG_STP__USBOTG_STP IOMUX_MODE(MX31_PIN_USBOTG_STP, IOMUX_CONFIG_FUNC)
588 636
589/*XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed by cspi2_ss0, cspi2_ss1, cspi1_ss0 637/*XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed by cspi2_ss0, cspi2_ss1, cspi1_ss0
590 * cspi1_ss1*/ 638 * cspi1_ss1*/
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
index c02b8fc2d821..518a36504b88 100644
--- a/arch/arm/plat-mxc/include/mach/irqs.h
+++ b/arch/arm/plat-mxc/include/mach/irqs.h
@@ -45,7 +45,7 @@
45 45
46#define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS) 46#define NR_IRQS (MXC_IPU_IRQ_START + MX3_IPU_IRQS)
47 47
48extern void imx_irq_set_priority(unsigned char irq, unsigned char prio); 48extern int imx_irq_set_priority(unsigned char irq, unsigned char prio);
49 49
50/* all normal IRQs can be FIQs */ 50/* all normal IRQs can be FIQs */
51#define FIQ_START 0 51#define FIQ_START 0
diff --git a/arch/arm/plat-mxc/include/mach/mx21.h b/arch/arm/plat-mxc/include/mach/mx21.h
index e8c4cf56c24e..8b070a041a99 100644
--- a/arch/arm/plat-mxc/include/mach/mx21.h
+++ b/arch/arm/plat-mxc/include/mach/mx21.h
@@ -54,9 +54,6 @@
54 54
55#define IRAM_BASE_ADDR 0xFFFFE800 /* internal ram */ 55#define IRAM_BASE_ADDR 0xFFFFE800 /* internal ram */
56 56
57/* this CPU supports up to 192 GPIOs (don't forget the baseboard!) */
58#define ARCH_NR_GPIOS (6*32 + 16)
59
60/* fixed interrupt numbers */ 57/* fixed interrupt numbers */
61#define MXC_INT_USBCTRL 58 58#define MXC_INT_USBCTRL 58
62#define MXC_INT_USBCTRL 58 59#define MXC_INT_USBCTRL 58
diff --git a/arch/arm/plat-mxc/irq.c b/arch/arm/plat-mxc/irq.c
index 6e7578a3514b..0fb68a531f55 100644
--- a/arch/arm/plat-mxc/irq.c
+++ b/arch/arm/plat-mxc/irq.c
@@ -50,23 +50,27 @@
50#define IIM_PROD_REV_SH 3 50#define IIM_PROD_REV_SH 3
51#define IIM_PROD_REV_LEN 5 51#define IIM_PROD_REV_LEN 5
52 52
53#ifdef CONFIG_MXC_IRQ_PRIOR 53int imx_irq_set_priority(unsigned char irq, unsigned char prio)
54void imx_irq_set_priority(unsigned char irq, unsigned char prio)
55{ 54{
55#ifdef CONFIG_MXC_IRQ_PRIOR
56 unsigned int temp; 56 unsigned int temp;
57 unsigned int mask = 0x0F << irq % 8 * 4; 57 unsigned int mask = 0x0F << irq % 8 * 4;
58 58
59 if (irq > 63) 59 if (irq >= MXC_INTERNAL_IRQS)
60 return; 60 return -EINVAL;;
61 61
62 temp = __raw_readl(AVIC_NIPRIORITY(irq / 8)); 62 temp = __raw_readl(AVIC_NIPRIORITY(irq / 8));
63 temp &= ~mask; 63 temp &= ~mask;
64 temp |= prio & mask; 64 temp |= prio & mask;
65 65
66 __raw_writel(temp, AVIC_NIPRIORITY(irq / 8)); 66 __raw_writel(temp, AVIC_NIPRIORITY(irq / 8));
67
68 return 0;
69#else
70 return -ENOSYS;
71#endif
67} 72}
68EXPORT_SYMBOL(imx_irq_set_priority); 73EXPORT_SYMBOL(imx_irq_set_priority);
69#endif
70 74
71#ifdef CONFIG_FIQ 75#ifdef CONFIG_FIQ
72int mxc_set_irq_fiq(unsigned int irq, unsigned int type) 76int mxc_set_irq_fiq(unsigned int irq, unsigned int type)
diff --git a/arch/arm/plat-mxc/time.c b/arch/arm/plat-mxc/time.c
index ef1b3cd85bd3..dab3357196fb 100644
--- a/arch/arm/plat-mxc/time.c
+++ b/arch/arm/plat-mxc/time.c
@@ -36,7 +36,7 @@ static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED;
36 36
37/* clock source */ 37/* clock source */
38 38
39static cycle_t mxc_get_cycles(void) 39static cycle_t mxc_get_cycles(struct clocksource *cs)
40{ 40{
41 return __raw_readl(TIMER_BASE + MXC_TCN); 41 return __raw_readl(TIMER_BASE + MXC_TCN);
42} 42}
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index 2e0614552ac8..29efc279287a 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -239,6 +239,13 @@ void recalculate_root_clocks(void)
239 } 239 }
240} 240}
241 241
242/**
243 * clk_init_one - initialize any fields in the struct clk before clk init
244 * @clk: struct clk * to initialize
245 *
246 * Initialize any struct clk fields needed before normal clk initialization
247 * can run. No return value.
248 */
242void clk_init_one(struct clk *clk) 249void clk_init_one(struct clk *clk)
243{ 250{
244 INIT_LIST_HEAD(&clk->children); 251 INIT_LIST_HEAD(&clk->children);
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index d1797147732f..433021f3d7cc 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -185,7 +185,7 @@ console_initcall(omap_add_serial_console);
185 185
186#include <linux/clocksource.h> 186#include <linux/clocksource.h>
187 187
188static cycle_t omap_32k_read(void) 188static cycle_t omap_32k_read(struct clocksource *cs)
189{ 189{
190 return omap_readl(TIMER_32K_SYNCHRONIZED); 190 return omap_readl(TIMER_32K_SYNCHRONIZED);
191} 191}
@@ -207,7 +207,7 @@ unsigned long long sched_clock(void)
207{ 207{
208 unsigned long long ret; 208 unsigned long long ret;
209 209
210 ret = (unsigned long long)omap_32k_read(); 210 ret = (unsigned long long)omap_32k_read(&clocksource_32k);
211 ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift; 211 ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift;
212 return ret; 212 return ret;
213} 213}
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 21cc0142b97a..7fc8c045ad5d 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -760,19 +760,12 @@ void omap_free_dma(int lch)
760{ 760{
761 unsigned long flags; 761 unsigned long flags;
762 762
763 spin_lock_irqsave(&dma_chan_lock, flags);
764 if (dma_chan[lch].dev_id == -1) { 763 if (dma_chan[lch].dev_id == -1) {
765 pr_err("omap_dma: trying to free unallocated DMA channel %d\n", 764 pr_err("omap_dma: trying to free unallocated DMA channel %d\n",
766 lch); 765 lch);
767 spin_unlock_irqrestore(&dma_chan_lock, flags);
768 return; 766 return;
769 } 767 }
770 768
771 dma_chan[lch].dev_id = -1;
772 dma_chan[lch].next_lch = -1;
773 dma_chan[lch].callback = NULL;
774 spin_unlock_irqrestore(&dma_chan_lock, flags);
775
776 if (cpu_class_is_omap1()) { 769 if (cpu_class_is_omap1()) {
777 /* Disable all DMA interrupts for the channel. */ 770 /* Disable all DMA interrupts for the channel. */
778 dma_write(0, CICR(lch)); 771 dma_write(0, CICR(lch));
@@ -798,6 +791,12 @@ void omap_free_dma(int lch)
798 dma_write(0, CCR(lch)); 791 dma_write(0, CCR(lch));
799 omap_clear_dma(lch); 792 omap_clear_dma(lch);
800 } 793 }
794
795 spin_lock_irqsave(&dma_chan_lock, flags);
796 dma_chan[lch].dev_id = -1;
797 dma_chan[lch].next_lch = -1;
798 dma_chan[lch].callback = NULL;
799 spin_unlock_irqrestore(&dma_chan_lock, flags);
801} 800}
802EXPORT_SYMBOL(omap_free_dma); 801EXPORT_SYMBOL(omap_free_dma);
803 802
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index bfd47570cc91..55bb99631292 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -238,7 +238,7 @@ static struct omap_dm_timer omap3_dm_timers[] = {
238 { .phys_base = 0x49040000, .irq = INT_24XX_GPTIMER9 }, 238 { .phys_base = 0x49040000, .irq = INT_24XX_GPTIMER9 },
239 { .phys_base = 0x48086000, .irq = INT_24XX_GPTIMER10 }, 239 { .phys_base = 0x48086000, .irq = INT_24XX_GPTIMER10 },
240 { .phys_base = 0x48088000, .irq = INT_24XX_GPTIMER11 }, 240 { .phys_base = 0x48088000, .irq = INT_24XX_GPTIMER11 },
241 { .phys_base = 0x48304000, .irq = INT_24XX_GPTIMER12 }, 241 { .phys_base = 0x48304000, .irq = INT_34XX_GPT12_IRQ },
242}; 242};
243 243
244static const char *omap3_dm_source_names[] __initdata = { 244static const char *omap3_dm_source_names[] __initdata = {
@@ -321,11 +321,9 @@ static void omap_dm_timer_reset(struct omap_dm_timer *timer)
321 l |= 0x2 << 8; /* Set clock activity to perserve f-clock on idle */ 321 l |= 0x2 << 8; /* Set clock activity to perserve f-clock on idle */
322 322
323 /* 323 /*
324 * Enable wake-up only for GPT1 on OMAP2 CPUs. 324 * Enable wake-up on OMAP2 CPUs.
325 * FIXME: All timers should have wake-up enabled and clear
326 * PRCM status.
327 */ 325 */
328 if (cpu_class_is_omap2() && (timer == &dm_timers[0])) 326 if (cpu_class_is_omap2())
329 l |= 1 << 2; 327 l |= 1 << 2;
330 omap_dm_timer_write_reg(timer, OMAP_TIMER_OCP_CFG_REG, l); 328 omap_dm_timer_write_reg(timer, OMAP_TIMER_OCP_CFG_REG, l);
331 329
@@ -511,7 +509,7 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_stop);
511 509
512#ifdef CONFIG_ARCH_OMAP1 510#ifdef CONFIG_ARCH_OMAP1
513 511
514void omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) 512int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
515{ 513{
516 int n = (timer - dm_timers) << 1; 514 int n = (timer - dm_timers) << 1;
517 u32 l; 515 u32 l;
@@ -519,23 +517,31 @@ void omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
519 l = omap_readl(MOD_CONF_CTRL_1) & ~(0x03 << n); 517 l = omap_readl(MOD_CONF_CTRL_1) & ~(0x03 << n);
520 l |= source << n; 518 l |= source << n;
521 omap_writel(l, MOD_CONF_CTRL_1); 519 omap_writel(l, MOD_CONF_CTRL_1);
520
521 return 0;
522} 522}
523EXPORT_SYMBOL_GPL(omap_dm_timer_set_source); 523EXPORT_SYMBOL_GPL(omap_dm_timer_set_source);
524 524
525#else 525#else
526 526
527void omap_dm_timer_set_source(struct omap_dm_timer *timer, int source) 527int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source)
528{ 528{
529 int ret = -EINVAL;
530
529 if (source < 0 || source >= 3) 531 if (source < 0 || source >= 3)
530 return; 532 return -EINVAL;
531 533
532 clk_disable(timer->fclk); 534 clk_disable(timer->fclk);
533 clk_set_parent(timer->fclk, dm_source_clocks[source]); 535 ret = clk_set_parent(timer->fclk, dm_source_clocks[source]);
534 clk_enable(timer->fclk); 536 clk_enable(timer->fclk);
535 537
536 /* When the functional clock disappears, too quick writes seem to 538 /*
537 * cause an abort. */ 539 * When the functional clock disappears, too quick writes seem
540 * to cause an abort. XXX Is this still necessary?
541 */
538 __delay(150000); 542 __delay(150000);
543
544 return ret;
539} 545}
540EXPORT_SYMBOL_GPL(omap_dm_timer_set_source); 546EXPORT_SYMBOL_GPL(omap_dm_timer_set_source);
541 547
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index d3fa41e3d8c5..17d7afe42b83 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -758,8 +758,12 @@ static void _clear_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
758 758
759 /* Workaround for clearing DSP GPIO interrupts to allow retention */ 759 /* Workaround for clearing DSP GPIO interrupts to allow retention */
760#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) 760#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
761 reg = bank->base + OMAP24XX_GPIO_IRQSTATUS2;
761 if (cpu_is_omap24xx() || cpu_is_omap34xx()) 762 if (cpu_is_omap24xx() || cpu_is_omap34xx())
762 __raw_writel(gpio_mask, bank->base + OMAP24XX_GPIO_IRQSTATUS2); 763 __raw_writel(gpio_mask, reg);
764
765 /* Flush posted write for the irq status to avoid spurious interrupts */
766 __raw_readl(reg);
763#endif 767#endif
764} 768}
765 769
@@ -921,13 +925,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
921 case METHOD_MPUIO: 925 case METHOD_MPUIO:
922 case METHOD_GPIO_1610: 926 case METHOD_GPIO_1610:
923 spin_lock_irqsave(&bank->lock, flags); 927 spin_lock_irqsave(&bank->lock, flags);
924 if (enable) { 928 if (enable)
925 bank->suspend_wakeup |= (1 << gpio); 929 bank->suspend_wakeup |= (1 << gpio);
926 enable_irq_wake(bank->irq); 930 else
927 } else {
928 disable_irq_wake(bank->irq);
929 bank->suspend_wakeup &= ~(1 << gpio); 931 bank->suspend_wakeup &= ~(1 << gpio);
930 }
931 spin_unlock_irqrestore(&bank->lock, flags); 932 spin_unlock_irqrestore(&bank->lock, flags);
932 return 0; 933 return 0;
933#endif 934#endif
@@ -940,13 +941,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
940 return -EINVAL; 941 return -EINVAL;
941 } 942 }
942 spin_lock_irqsave(&bank->lock, flags); 943 spin_lock_irqsave(&bank->lock, flags);
943 if (enable) { 944 if (enable)
944 bank->suspend_wakeup |= (1 << gpio); 945 bank->suspend_wakeup |= (1 << gpio);
945 enable_irq_wake(bank->irq); 946 else
946 } else {
947 disable_irq_wake(bank->irq);
948 bank->suspend_wakeup &= ~(1 << gpio); 947 bank->suspend_wakeup &= ~(1 << gpio);
949 }
950 spin_unlock_irqrestore(&bank->lock, flags); 948 spin_unlock_irqrestore(&bank->lock, flags);
951 return 0; 949 return 0;
952#endif 950#endif
diff --git a/arch/arm/plat-omap/include/mach/dmtimer.h b/arch/arm/plat-omap/include/mach/dmtimer.h
index 6dc703138210..20f1054c0a80 100644
--- a/arch/arm/plat-omap/include/mach/dmtimer.h
+++ b/arch/arm/plat-omap/include/mach/dmtimer.h
@@ -64,7 +64,7 @@ void omap_dm_timer_trigger(struct omap_dm_timer *timer);
64void omap_dm_timer_start(struct omap_dm_timer *timer); 64void omap_dm_timer_start(struct omap_dm_timer *timer);
65void omap_dm_timer_stop(struct omap_dm_timer *timer); 65void omap_dm_timer_stop(struct omap_dm_timer *timer);
66 66
67void omap_dm_timer_set_source(struct omap_dm_timer *timer, int source); 67int omap_dm_timer_set_source(struct omap_dm_timer *timer, int source);
68void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload, unsigned int value); 68void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload, unsigned int value);
69void omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, unsigned int value); 69void omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, unsigned int value);
70void omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable, unsigned int match); 70void omap_dm_timer_set_match(struct omap_dm_timer *timer, int enable, unsigned int match);
diff --git a/arch/arm/plat-omap/include/mach/eac.h b/arch/arm/plat-omap/include/mach/eac.h
deleted file mode 100644
index 9e62cf030270..000000000000
--- a/arch/arm/plat-omap/include/mach/eac.h
+++ /dev/null
@@ -1,100 +0,0 @@
1/*
2 * arch/arm/plat-omap/include/mach2/eac.h
3 *
4 * Defines for Enhanced Audio Controller
5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com>
7 *
8 * Copyright (C) 2006 Nokia Corporation
9 * Copyright (C) 2004 Texas Instruments, Inc.
10 *
11 * This program is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation.
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. See the GNU
18 * General Public License for more 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., 51 Franklin St, Fifth Floor, Boston, MA
23 * 02110-1301 USA
24 *
25 */
26
27#ifndef __ASM_ARM_ARCH_OMAP2_EAC_H
28#define __ASM_ARM_ARCH_OMAP2_EAC_H
29
30#include <mach/io.h>
31#include <mach/hardware.h>
32#include <asm/irq.h>
33
34#include <sound/core.h>
35
36/* master codec clock source */
37#define EAC_MCLK_EXT_MASK 0x100
38enum eac_mclk_src {
39 EAC_MCLK_INT_11290000, /* internal 96 MHz / 8.5 = 11.29 Mhz */
40 EAC_MCLK_EXT_11289600 = EAC_MCLK_EXT_MASK,
41 EAC_MCLK_EXT_12288000,
42 EAC_MCLK_EXT_2x11289600,
43 EAC_MCLK_EXT_2x12288000,
44};
45
46/* codec port interface mode */
47enum eac_codec_mode {
48 EAC_CODEC_PCM,
49 EAC_CODEC_AC97,
50 EAC_CODEC_I2S_MASTER, /* codec port, I.e. EAC is the master */
51 EAC_CODEC_I2S_SLAVE,
52};
53
54/* configuration structure for I2S mode */
55struct eac_i2s_conf {
56 /* if enabled, then first data slot (left channel) is signaled as
57 * positive level of frame sync EAC.AC_FS */
58 unsigned polarity_changed_mode:1;
59 /* if enabled, then serial data starts one clock cycle after the
60 * of EAC.AC_FS for first audio slot */
61 unsigned sync_delay_enable:1;
62};
63
64/* configuration structure for EAC codec port */
65struct eac_codec {
66 enum eac_mclk_src mclk_src;
67
68 enum eac_codec_mode codec_mode;
69 union {
70 struct eac_i2s_conf i2s;
71 } codec_conf;
72
73 int default_rate; /* audio sampling rate */
74
75 int (* set_power)(void *private_data, int dac, int adc);
76 int (* register_controls)(void *private_data,
77 struct snd_card *card);
78 const char *short_name;
79
80 void *private_data;
81};
82
83/* structure for passing platform dependent data to the EAC driver */
84struct eac_platform_data {
85 int (* init)(struct device *eac_dev);
86 void (* cleanup)(struct device *eac_dev);
87 /* these callbacks are used to configure & control external MCLK
88 * source. NULL if not used */
89 int (* enable_ext_clocks)(struct device *eac_dev);
90 void (* disable_ext_clocks)(struct device *eac_dev);
91};
92
93extern void omap_init_eac(struct eac_platform_data *pdata);
94
95extern int eac_register_codec(struct device *eac_dev, struct eac_codec *codec);
96extern void eac_unregister_codec(struct device *eac_dev);
97
98extern int eac_set_mode(struct device *eac_dev, int play, int rec);
99
100#endif /* __ASM_ARM_ARCH_OMAP2_EAC_H */
diff --git a/arch/arm/plat-omap/include/mach/gpioexpander.h b/arch/arm/plat-omap/include/mach/gpioexpander.h
deleted file mode 100644
index 90444a0d6b1a..000000000000
--- a/arch/arm/plat-omap/include/mach/gpioexpander.h
+++ /dev/null
@@ -1,35 +0,0 @@
1/*
2 * arch/arm/plat-omap/include/mach/gpioexpander.h
3 *
4 *
5 * Copyright (C) 2004 Texas Instruments, Inc.
6 *
7 * This package 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 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
12 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
13 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14 */
15
16#ifndef __ASM_ARCH_OMAP_GPIOEXPANDER_H
17#define __ASM_ARCH_OMAP_GPIOEXPANDER_H
18
19/* Function Prototypes for GPIO Expander functions */
20
21#ifdef CONFIG_GPIOEXPANDER_OMAP
22int read_gpio_expa(u8 *, int);
23int write_gpio_expa(u8 , int);
24#else
25static inline int read_gpio_expa(u8 *val, int addr)
26{
27 return 0;
28}
29static inline int write_gpio_expa(u8 val, int addr)
30{
31 return 0;
32}
33#endif
34
35#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */
diff --git a/arch/arm/plat-omap/include/mach/irda.h b/arch/arm/plat-omap/include/mach/irda.h
index 8372a00d8e0b..40f60339d1c6 100644
--- a/arch/arm/plat-omap/include/mach/irda.h
+++ b/arch/arm/plat-omap/include/mach/irda.h
@@ -21,10 +21,6 @@ struct omap_irda_config {
21 int transceiver_cap; 21 int transceiver_cap;
22 int (*transceiver_mode)(struct device *dev, int mode); 22 int (*transceiver_mode)(struct device *dev, int mode);
23 int (*select_irda)(struct device *dev, int state); 23 int (*select_irda)(struct device *dev, int state);
24 /* Very specific to the needs of some platforms (h3,h4)
25 * having calls which can sleep in irda_set_speed.
26 */
27 struct delayed_work gpio_expa;
28 int rx_channel; 24 int rx_channel;
29 int tx_channel; 25 int tx_channel;
30 unsigned long dest_start; 26 unsigned long dest_start;
diff --git a/arch/arm/plat-omap/include/mach/mmc.h b/arch/arm/plat-omap/include/mach/mmc.h
index 4435bd434e17..81d5b36534b3 100644
--- a/arch/arm/plat-omap/include/mach/mmc.h
+++ b/arch/arm/plat-omap/include/mach/mmc.h
@@ -79,7 +79,6 @@ struct omap_mmc_platform_data {
79 79
80 /* use the internal clock */ 80 /* use the internal clock */
81 unsigned internal_clock:1; 81 unsigned internal_clock:1;
82 s16 power_pin;
83 82
84 int switch_pin; /* gpio (card detect) */ 83 int switch_pin; /* gpio (card detect) */
85 int gpio_wp; /* gpio (write protect) */ 84 int gpio_wp; /* gpio (write protect) */
diff --git a/arch/arm/plat-omap/include/mach/timer-gp.h b/arch/arm/plat-omap/include/mach/timer-gp.h
new file mode 100644
index 000000000000..c88d346b59d9
--- /dev/null
+++ b/arch/arm/plat-omap/include/mach/timer-gp.h
@@ -0,0 +1,17 @@
1/*
2 * OMAP2/3 GPTIMER support.headers
3 *
4 * Copyright (C) 2009 Nokia Corporation
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 __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_TIMER_GP_H
12#define __ARCH_ARM_PLAT_OMAP_INCLUDE_MACH_TIMER_GP_H
13
14int __init omap2_gp_clockevent_set_gptimer(u8 id);
15
16#endif
17
diff --git a/arch/arm/plat-orion/time.c b/arch/arm/plat-orion/time.c
index 6fa2923e6dca..de8a001fc3a9 100644
--- a/arch/arm/plat-orion/time.c
+++ b/arch/arm/plat-orion/time.c
@@ -16,7 +16,7 @@
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <asm/mach/time.h> 18#include <asm/mach/time.h>
19#include <mach/hardware.h> 19#include <mach/bridge-regs.h>
20 20
21/* 21/*
22 * Number of timer ticks per jiffy. 22 * Number of timer ticks per jiffy.
@@ -41,7 +41,7 @@ static u32 ticks_per_jiffy;
41/* 41/*
42 * Clocksource handling. 42 * Clocksource handling.
43 */ 43 */
44static cycle_t orion_clksrc_read(void) 44static cycle_t orion_clksrc_read(struct clocksource *cs)
45{ 45{
46 return 0xffffffff - readl(TIMER0_VAL); 46 return 0xffffffff - readl(TIMER0_VAL);
47} 47}
diff --git a/arch/arm/plat-pxa/gpio.c b/arch/arm/plat-pxa/gpio.c
index af819bf21b63..abc79d44acaa 100644
--- a/arch/arm/plat-pxa/gpio.c
+++ b/arch/arm/plat-pxa/gpio.c
@@ -121,6 +121,8 @@ static int __init pxa_init_gpio_chip(int gpio_end)
121 return -ENOMEM; 121 return -ENOMEM;
122 } 122 }
123 123
124 memset(chips, 0, nbanks * sizeof(struct pxa_gpio_chip));
125
124 for (i = 0, gpio = 0; i < nbanks; i++, gpio += 32) { 126 for (i = 0, gpio = 0; i < nbanks; i++, gpio += 32) {
125 struct gpio_chip *c = &chips[i].chip; 127 struct gpio_chip *c = &chips[i].chip;
126 128
@@ -143,6 +145,21 @@ static int __init pxa_init_gpio_chip(int gpio_end)
143 return 0; 145 return 0;
144} 146}
145 147
148/* Update only those GRERx and GFERx edge detection register bits if those
149 * bits are set in c->irq_mask
150 */
151static inline void update_edge_detect(struct pxa_gpio_chip *c)
152{
153 uint32_t grer, gfer;
154
155 grer = __raw_readl(c->regbase + GRER_OFFSET) & ~c->irq_mask;
156 gfer = __raw_readl(c->regbase + GFER_OFFSET) & ~c->irq_mask;
157 grer |= c->irq_edge_rise & c->irq_mask;
158 gfer |= c->irq_edge_fall & c->irq_mask;
159 __raw_writel(grer, c->regbase + GRER_OFFSET);
160 __raw_writel(gfer, c->regbase + GFER_OFFSET);
161}
162
146static int pxa_gpio_irq_type(unsigned int irq, unsigned int type) 163static int pxa_gpio_irq_type(unsigned int irq, unsigned int type)
147{ 164{
148 struct pxa_gpio_chip *c; 165 struct pxa_gpio_chip *c;
@@ -181,8 +198,7 @@ static int pxa_gpio_irq_type(unsigned int irq, unsigned int type)
181 else 198 else
182 c->irq_edge_fall &= ~mask; 199 c->irq_edge_fall &= ~mask;
183 200
184 __raw_writel(c->irq_edge_rise & c->irq_mask, c->regbase + GRER_OFFSET); 201 update_edge_detect(c);
185 __raw_writel(c->irq_edge_fall & c->irq_mask, c->regbase + GFER_OFFSET);
186 202
187 pr_debug("%s: IRQ%d (GPIO%d) - edge%s%s\n", __func__, irq, gpio, 203 pr_debug("%s: IRQ%d (GPIO%d) - edge%s%s\n", __func__, irq, gpio,
188 ((type & IRQ_TYPE_EDGE_RISING) ? " rising" : ""), 204 ((type & IRQ_TYPE_EDGE_RISING) ? " rising" : ""),
@@ -244,8 +260,7 @@ static void pxa_unmask_muxed_gpio(unsigned int irq)
244 struct pxa_gpio_chip *c = gpio_to_chip(gpio); 260 struct pxa_gpio_chip *c = gpio_to_chip(gpio);
245 261
246 c->irq_mask |= GPIO_bit(gpio); 262 c->irq_mask |= GPIO_bit(gpio);
247 __raw_writel(c->irq_edge_rise & c->irq_mask, c->regbase + GRER_OFFSET); 263 update_edge_detect(c);
248 __raw_writel(c->irq_edge_fall & c->irq_mask, c->regbase + GFER_OFFSET);
249} 264}
250 265
251static struct irq_chip pxa_muxed_gpio_chip = { 266static struct irq_chip pxa_muxed_gpio_chip = {
diff --git a/arch/arm/plat-s3c/gpio-config.c b/arch/arm/plat-s3c/gpio-config.c
index 7642b975a998..08044dec9731 100644
--- a/arch/arm/plat-s3c/gpio-config.c
+++ b/arch/arm/plat-s3c/gpio-config.c
@@ -13,6 +13,7 @@
13*/ 13*/
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/module.h>
16#include <linux/gpio.h> 17#include <linux/gpio.h>
17#include <linux/io.h> 18#include <linux/io.h>
18 19
@@ -38,6 +39,7 @@ int s3c_gpio_cfgpin(unsigned int pin, unsigned int config)
38 39
39 return ret; 40 return ret;
40} 41}
42EXPORT_SYMBOL(s3c_gpio_cfgpin);
41 43
42int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull) 44int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull)
43{ 45{
@@ -56,6 +58,7 @@ int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull)
56 58
57 return ret; 59 return ret;
58} 60}
61EXPORT_SYMBOL(s3c_gpio_setpull);
59 62
60#ifdef CONFIG_S3C_GPIO_CFG_S3C24XX 63#ifdef CONFIG_S3C_GPIO_CFG_S3C24XX
61int s3c_gpio_setcfg_s3c24xx_banka(struct s3c_gpio_chip *chip, 64int s3c_gpio_setcfg_s3c24xx_banka(struct s3c_gpio_chip *chip,
diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h
index 6b1b5231511c..26f0cec3ac04 100644
--- a/arch/arm/plat-s3c/include/plat/devs.h
+++ b/arch/arm/plat-s3c/include/plat/devs.h
@@ -34,6 +34,7 @@ extern struct platform_device s3c_device_iis;
34extern struct platform_device s3c_device_rtc; 34extern struct platform_device s3c_device_rtc;
35extern struct platform_device s3c_device_adc; 35extern struct platform_device s3c_device_adc;
36extern struct platform_device s3c_device_sdi; 36extern struct platform_device s3c_device_sdi;
37extern struct platform_device s3c_device_hwmon;
37extern struct platform_device s3c_device_hsmmc0; 38extern struct platform_device s3c_device_hsmmc0;
38extern struct platform_device s3c_device_hsmmc1; 39extern struct platform_device s3c_device_hsmmc1;
39extern struct platform_device s3c_device_hsmmc2; 40extern struct platform_device s3c_device_hsmmc2;
diff --git a/arch/arm/plat-s3c24xx/adc.c b/arch/arm/plat-s3c24xx/adc.c
index 9a5c767e0a42..91adfa71c172 100644
--- a/arch/arm/plat-s3c24xx/adc.c
+++ b/arch/arm/plat-s3c24xx/adc.c
@@ -100,7 +100,7 @@ static void s3c_adc_dbgshow(struct adc_device *adc)
100 readl(adc->regs + S3C2410_ADCDLY)); 100 readl(adc->regs + S3C2410_ADCDLY));
101} 101}
102 102
103void s3c_adc_try(struct adc_device *adc) 103static void s3c_adc_try(struct adc_device *adc)
104{ 104{
105 struct s3c_adc_client *next = adc->ts_pend; 105 struct s3c_adc_client *next = adc->ts_pend;
106 106
@@ -190,6 +190,23 @@ EXPORT_SYMBOL_GPL(s3c_adc_register);
190void s3c_adc_release(struct s3c_adc_client *client) 190void s3c_adc_release(struct s3c_adc_client *client)
191{ 191{
192 /* We should really check that nothing is in progress. */ 192 /* We should really check that nothing is in progress. */
193 if (adc_dev->cur == client)
194 adc_dev->cur = NULL;
195 if (adc_dev->ts_pend == client)
196 adc_dev->ts_pend = NULL;
197 else {
198 struct list_head *p, *n;
199 struct s3c_adc_client *tmp;
200
201 list_for_each_safe(p, n, &adc_pending) {
202 tmp = list_entry(p, struct s3c_adc_client, pend);
203 if (tmp == client)
204 list_del(&tmp->pend);
205 }
206 }
207
208 if (adc_dev->cur == NULL)
209 s3c_adc_try(adc_dev);
193 kfree(client); 210 kfree(client);
194} 211}
195EXPORT_SYMBOL_GPL(s3c_adc_release); 212EXPORT_SYMBOL_GPL(s3c_adc_release);
diff --git a/arch/arm/plat-s3c24xx/gpiolib.c b/arch/arm/plat-s3c24xx/gpiolib.c
index 94a341aaa4e4..5c0491bf738b 100644
--- a/arch/arm/plat-s3c24xx/gpiolib.c
+++ b/arch/arm/plat-s3c24xx/gpiolib.c
@@ -19,7 +19,7 @@
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21 21
22#include <plat/gpio-core.h> 22#include <mach/gpio-core.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/irq.h> 24#include <asm/irq.h>
25 25
diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile
index 0b97e14f73f6..c21a3290d542 100644
--- a/arch/avr32/Makefile
+++ b/arch/avr32/Makefile
@@ -43,8 +43,6 @@ core-y += arch/avr32/mm/
43drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/ 43drivers-$(CONFIG_OPROFILE) += arch/avr32/oprofile/
44libs-y += arch/avr32/lib/ 44libs-y += arch/avr32/lib/
45 45
46CLEAN_FILES += include/asm-avr32/.arch include/asm-avr32/arch
47
48BOOT_TARGETS := vmlinux.elf vmlinux.bin uImage uImage.srec 46BOOT_TARGETS := vmlinux.elf vmlinux.bin uImage uImage.srec
49 47
50.PHONY: $(BOOT_TARGETS) install 48.PHONY: $(BOOT_TARGETS) install
diff --git a/arch/avr32/kernel/time.c b/arch/avr32/kernel/time.c
index 0ff46bf873b0..f27aa3b259fa 100644
--- a/arch/avr32/kernel/time.c
+++ b/arch/avr32/kernel/time.c
@@ -18,7 +18,7 @@
18#include <mach/pm.h> 18#include <mach/pm.h>
19 19
20 20
21static cycle_t read_cycle_count(void) 21static cycle_t read_cycle_count(struct clocksource *cs)
22{ 22{
23 return (cycle_t)sysreg_read(COUNT); 23 return (cycle_t)sysreg_read(COUNT);
24} 24}
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c
index 0ed2badfd746..27646121280a 100644
--- a/arch/blackfin/kernel/time-ts.c
+++ b/arch/blackfin/kernel/time-ts.c
@@ -58,16 +58,11 @@ static inline unsigned long long cycles_2_ns(cycle_t cyc)
58 return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR; 58 return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR;
59} 59}
60 60
61static cycle_t read_cycles(void) 61static cycle_t read_cycles(struct clocksource *cs)
62{ 62{
63 return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod); 63 return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod);
64} 64}
65 65
66unsigned long long sched_clock(void)
67{
68 return cycles_2_ns(read_cycles());
69}
70
71static struct clocksource clocksource_bfin = { 66static struct clocksource clocksource_bfin = {
72 .name = "bfin_cycles", 67 .name = "bfin_cycles",
73 .rating = 350, 68 .rating = 350,
@@ -77,6 +72,11 @@ static struct clocksource clocksource_bfin = {
77 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 72 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
78}; 73};
79 74
75unsigned long long sched_clock(void)
76{
77 return cycles_2_ns(read_cycles(&clocksource_bfin));
78}
79
80static int __init bfin_clocksource_init(void) 80static int __init bfin_clocksource_init(void)
81{ 81{
82 set_cyc2ns_scale(get_cclk() / 1000); 82 set_cyc2ns_scale(get_cclk() / 1000);
diff --git a/arch/cris/Makefile b/arch/cris/Makefile
index 3662cfb7b61d..71e17d3eeddb 100644
--- a/arch/cris/Makefile
+++ b/arch/cris/Makefile
@@ -70,7 +70,7 @@ SRC_ARCH = $(srctree)/arch/cris
70# cris object files path 70# cris object files path
71OBJ_ARCH = $(objtree)/arch/cris 71OBJ_ARCH = $(objtree)/arch/cris
72 72
73boot := arch/cris/$(SARCH)/boot 73boot := arch/cris/boot
74MACHINE := arch/cris/$(SARCH) 74MACHINE := arch/cris/$(SARCH)
75 75
76all: zImage 76all: zImage
@@ -81,15 +81,15 @@ zImage Image: vmlinux
81archprepare: 81archprepare:
82 82
83archclean: 83archclean:
84 $(Q)if [ -e arch/cris/$(SARCH)/boot ]; then \ 84 $(Q)if [ -e arch/cris/boot ]; then \
85 $(MAKE) $(clean)=arch/cris/$(SARCH)/boot; \ 85 $(MAKE) $(clean)=arch/cris/boot; \
86 fi 86 fi
87 87
88CLEAN_FILES += \ 88CLEAN_FILES += \
89 $(MACHINE)/boot/zImage \ 89 $(boot)/zImage \
90 $(MACHINE)/boot/compressed/decompress.bin \ 90 $(boot)/compressed/decompress.bin \
91 $(MACHINE)/boot/compressed/piggy.gz \ 91 $(boot)/compressed/piggy.gz \
92 $(MACHINE)/boot/rescue/rescue.bin 92 $(boot)/rescue/rescue.bin
93 93
94 94
95# MRPROPER_FILES += 95# MRPROPER_FILES +=
diff --git a/arch/cris/arch-v10/boot/compressed/README b/arch/cris/arch-v10/boot/compressed/README
deleted file mode 100644
index 48b3db9924b9..000000000000
--- a/arch/cris/arch-v10/boot/compressed/README
+++ /dev/null
@@ -1,25 +0,0 @@
1Creation of the self-extracting compressed kernel image (vmlinuz)
2-----------------------------------------------------------------
3$Id: README,v 1.1 2001/12/17 13:59:27 bjornw Exp $
4
5This can be slightly confusing because it's a process with many steps.
6
7The kernel object built by the arch/etrax100/Makefile, vmlinux, is split
8by that makefile into text and data binary files, vmlinux.text and
9vmlinux.data.
10
11Those files together with a ROM filesystem can be catted together and
12burned into a flash or executed directly at the DRAM origin.
13
14They can also be catted together and compressed with gzip, which is what
15happens in this makefile. Together they make up piggy.img.
16
17The decompressor is built into the file decompress.o. It is turned into
18the binary file decompress.bin, which is catted together with piggy.img
19into the file vmlinuz. It can be executed in an arbitrary place in flash.
20
21Be careful - it assumes some things about free locations in DRAM. It
22assumes the DRAM starts at 0x40000000 and that it is at least 8 MB,
23so it puts its code at 0x40700000, and initial stack at 0x40800000.
24
25-Bjorn
diff --git a/arch/cris/arch-v10/boot/compressed/misc.c b/arch/cris/arch-v10/boot/compressed/misc.c
deleted file mode 100644
index a4db1507d3b1..000000000000
--- a/arch/cris/arch-v10/boot/compressed/misc.c
+++ /dev/null
@@ -1,246 +0,0 @@
1/*
2 * misc.c
3 *
4 * This is a collection of several routines from gzip-1.0.3
5 * adapted for Linux.
6 *
7 * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
8 * puts by Nick Holloway 1993, better puts by Martin Mares 1995
9 * adaptation for Linux/CRIS Axis Communications AB, 1999
10 *
11 */
12
13/* where the piggybacked kernel image expects itself to live.
14 * it is the same address we use when we network load an uncompressed
15 * image into DRAM, and it is the address the kernel is linked to live
16 * at by vmlinux.lds.S
17 */
18
19#define KERNEL_LOAD_ADR 0x40004000
20
21
22#include <linux/types.h>
23#include <arch/svinto.h>
24
25/*
26 * gzip declarations
27 */
28
29#define OF(args) args
30#define STATIC static
31
32void *memset(void *s, int c, size_t n);
33void *memcpy(void *__dest, __const void *__src, size_t __n);
34
35#define memzero(s, n) memset((s), 0, (n))
36
37typedef unsigned char uch;
38typedef unsigned short ush;
39typedef unsigned long ulg;
40
41#define WSIZE 0x8000 /* Window size must be at least 32k, */
42 /* and a power of two */
43
44static uch *inbuf; /* input buffer */
45static uch window[WSIZE]; /* Sliding window buffer */
46
47unsigned inptr = 0; /* index of next byte to be processed in inbuf
48 * After decompression it will contain the
49 * compressed size, and head.S will read it.
50 */
51
52static unsigned outcnt = 0; /* bytes in output buffer */
53
54/* gzip flag byte */
55#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */
56#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */
57#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
58#define ORIG_NAME 0x08 /* bit 3 set: original file name present */
59#define COMMENT 0x10 /* bit 4 set: file comment present */
60#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
61#define RESERVED 0xC0 /* bit 6,7: reserved */
62
63#define get_byte() (inbuf[inptr++])
64
65/* Diagnostic functions */
66#ifdef DEBUG
67# define Assert(cond, msg) do { \
68 if (!(cond)) \
69 error(msg); \
70 } while (0)
71# define Trace(x) fprintf x
72# define Tracev(x) do { \
73 if (verbose) \
74 fprintf x; \
75 } while (0)
76# define Tracevv(x) do { \
77 if (verbose > 1) \
78 fprintf x; \
79 } while (0)
80# define Tracec(c, x) do { \
81 if (verbose && (c)) \
82 fprintf x; \
83 } while (0)
84# define Tracecv(c, x) do { \
85 if (verbose > 1 && (c)) \
86 fprintf x; \
87 } while (0)
88#else
89# define Assert(cond, msg)
90# define Trace(x)
91# define Tracev(x)
92# define Tracevv(x)
93# define Tracec(c, x)
94# define Tracecv(c, x)
95#endif
96
97static void flush_window(void);
98static void error(char *m);
99
100extern char *input_data; /* lives in head.S */
101
102static long bytes_out = 0;
103static uch *output_data;
104static unsigned long output_ptr = 0;
105static void puts(const char *);
106
107/* the "heap" is put directly after the BSS ends, at end */
108
109extern int _end;
110static long free_mem_ptr = (long)&_end;
111static long free_mem_end_ptr;
112
113#include "../../../../../lib/inflate.c"
114
115/* decompressor info and error messages to serial console */
116
117static void
118puts(const char *s)
119{
120#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
121 while (*s) {
122#ifdef CONFIG_ETRAX_DEBUG_PORT0
123 while (!(*R_SERIAL0_STATUS & (1 << 5))) ;
124 *R_SERIAL0_TR_DATA = *s++;
125#endif
126#ifdef CONFIG_ETRAX_DEBUG_PORT1
127 while (!(*R_SERIAL1_STATUS & (1 << 5))) ;
128 *R_SERIAL1_TR_DATA = *s++;
129#endif
130#ifdef CONFIG_ETRAX_DEBUG_PORT2
131 while (!(*R_SERIAL2_STATUS & (1 << 5))) ;
132 *R_SERIAL2_TR_DATA = *s++;
133#endif
134#ifdef CONFIG_ETRAX_DEBUG_PORT3
135 while (!(*R_SERIAL3_STATUS & (1 << 5))) ;
136 *R_SERIAL3_TR_DATA = *s++;
137#endif
138 }
139#endif
140}
141
142void *memset(void *s, int c, size_t n)
143{
144 int i;
145 char *ss = (char *)s;
146
147 for (i = 0; i < n; i++)
148 ss[i] = c;
149
150 return s;
151}
152
153void *memcpy(void *__dest, __const void *__src, size_t __n)
154{
155 int i;
156 char *d = (char *)__dest, *s = (char *)__src;
157
158 for (i = 0; i < __n; i++)
159 d[i] = s[i];
160
161 return __dest;
162}
163
164/* ===========================================================================
165 * Write the output window window[0..outcnt-1] and update crc and bytes_out.
166 * (Used for the decompressed data only.)
167 */
168
169static void flush_window(void)
170{
171 ulg c = crc; /* temporary variable */
172 unsigned n;
173 uch *in, *out, ch;
174
175 in = window;
176 out = &output_data[output_ptr];
177 for (n = 0; n < outcnt; n++) {
178 ch = *out = *in;
179 out++;
180 in++;
181 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
182 }
183 crc = c;
184 bytes_out += (ulg)outcnt;
185 output_ptr += (ulg)outcnt;
186 outcnt = 0;
187}
188
189static void error(char *x)
190{
191 puts("\n\n");
192 puts(x);
193 puts("\n\n -- System halted\n");
194
195 while (1); /* Halt */
196}
197
198void setup_normal_output_buffer(void)
199{
200 output_data = (char *)KERNEL_LOAD_ADR;
201}
202
203void decompress_kernel(void)
204{
205 char revision;
206
207 /* input_data is set in head.S */
208 inbuf = input_data;
209
210#ifdef CONFIG_ETRAX_DEBUG_PORT0
211 *R_SERIAL0_XOFF = 0;
212 *R_SERIAL0_BAUD = 0x99;
213 *R_SERIAL0_TR_CTRL = 0x40;
214#endif
215#ifdef CONFIG_ETRAX_DEBUG_PORT1
216 *R_SERIAL1_XOFF = 0;
217 *R_SERIAL1_BAUD = 0x99;
218 *R_SERIAL1_TR_CTRL = 0x40;
219#endif
220#ifdef CONFIG_ETRAX_DEBUG_PORT2
221 *R_GEN_CONFIG = 0x08;
222 *R_SERIAL2_XOFF = 0;
223 *R_SERIAL2_BAUD = 0x99;
224 *R_SERIAL2_TR_CTRL = 0x40;
225#endif
226#ifdef CONFIG_ETRAX_DEBUG_PORT3
227 *R_GEN_CONFIG = 0x100;
228 *R_SERIAL3_XOFF = 0;
229 *R_SERIAL3_BAUD = 0x99;
230 *R_SERIAL3_TR_CTRL = 0x40;
231#endif
232
233 setup_normal_output_buffer();
234
235 makecrc();
236
237 __asm__ volatile ("move $vr,%0" : "=rm" (revision));
238 if (revision < 10) {
239 puts("You need an ETRAX 100LX to run linux 2.6\n");
240 while (1);
241 }
242
243 puts("Uncompressing Linux...\n");
244 gunzip();
245 puts("Done. Now booting the kernel.\n");
246}
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S
index 72f5cd319b97..2c18d08cd913 100644
--- a/arch/cris/arch-v10/kernel/entry.S
+++ b/arch/cris/arch-v10/kernel/entry.S
@@ -536,10 +536,10 @@ multiple_interrupt:
536 movem $r13, [$sp] 536 movem $r13, [$sp]
537 push $r10 ; push orig_r10 537 push $r10 ; push orig_r10
538 clear.d [$sp=$sp-4] ; frametype == 0, normal frame 538 clear.d [$sp=$sp-4] ; frametype == 0, normal frame
539 539
540 move.d $sp, $r10 540 move.d $sp, $r10
541 jsr do_multiple_IRQ 541 jsr do_multiple_IRQ
542 542
543 jump ret_from_intr 543 jump ret_from_intr
544 544
545do_sigtrap: 545do_sigtrap:
@@ -585,7 +585,7 @@ _ugdb_handle_breakpoint:
585 pop $r0 ; Restore r0. 585 pop $r0 ; Restore r0.
586 ba do_sigtrap ; SIGTRAP the offending process. 586 ba do_sigtrap ; SIGTRAP the offending process.
587 pop $dccr ; Restore dccr in delay slot. 587 pop $dccr ; Restore dccr in delay slot.
588 588
589 .global kernel_execve 589 .global kernel_execve
590kernel_execve: 590kernel_execve:
591 move.d __NR_execve, $r9 591 move.d __NR_execve, $r9
@@ -929,6 +929,14 @@ sys_call_table:
929 .long sys_fallocate 929 .long sys_fallocate
930 .long sys_timerfd_settime /* 325 */ 930 .long sys_timerfd_settime /* 325 */
931 .long sys_timerfd_gettime 931 .long sys_timerfd_gettime
932 .long sys_signalfd4
933 .long sys_eventfd2
934 .long sys_epoll_create1
935 .long sys_dup3 /* 330 */
936 .long sys_pipe2
937 .long sys_inotify_init1
938 .long sys_preadv
939 .long sys_pwritev
932 940
933 /* 941 /*
934 * NOTE!! This doesn't have to be exact - we just have 942 * NOTE!! This doesn't have to be exact - we just have
diff --git a/arch/cris/arch-v32/boot/Makefile b/arch/cris/arch-v32/boot/Makefile
deleted file mode 100644
index 99896ad60b30..000000000000
--- a/arch/cris/arch-v32/boot/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
1#
2# arch/cris/arch-v32/boot/Makefile
3#
4
5OBJCOPYFLAGS = -O binary -R .note -R .comment
6
7subdir- := compressed rescue
8targets := Image
9
10$(obj)/Image: vmlinux FORCE
11 $(call if_changed,objcopy)
12 @echo ' Kernel: $@ is ready'
13
14$(obj)/compressed/vmlinux: $(obj)/Image FORCE
15 $(Q)$(MAKE) $(build)=$(obj)/compressed $@
16 $(Q)$(MAKE) $(build)=$(obj)/rescue $(obj)/rescue/rescue.bin
17
18$(obj)/zImage: $(obj)/compressed/vmlinux
19 @cp $< $@
20 @echo ' Kernel: $@ is ready'
diff --git a/arch/cris/arch-v32/boot/compressed/Makefile b/arch/cris/arch-v32/boot/compressed/Makefile
deleted file mode 100644
index e176b8b69d92..000000000000
--- a/arch/cris/arch-v32/boot/compressed/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
1#
2# arch/cris/arch-v32/boot/compressed/Makefile
3#
4
5asflags-y += -I$(srctree)/include/asm/mach/ -I$(srctree)/include/asm/arch
6ccflags-y += -O2 -I$(srctree)/include/asm/mach/ -I$(srctree)/include/asm/arch
7ldflags-y += -T$(srctree)/$(src)/decompress.lds
8OBJECTS = $(obj)/head.o $(obj)/misc.o
9OBJCOPYFLAGS = -O binary --remove-section=.bss
10
11quiet_cmd_image = BUILD $@
12cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
13
14targets := vmlinux piggy.gz decompress.o decompress.bin
15
16$(obj)/decompress.o: $(OBJECTS) FORCE
17 $(call if_changed,ld)
18
19$(obj)/decompress.bin: $(obj)/decompress.o FORCE
20 $(call if_changed,objcopy)
21
22$(obj)/vmlinux: $(obj)/piggy.gz $(obj)/decompress.bin FORCE
23 $(call if_changed,image)
24
25$(obj)/piggy.gz: $(obj)/../Image FORCE
26 $(call if_changed,gzip)
diff --git a/arch/cris/arch-v32/boot/rescue/Makefile b/arch/cris/arch-v32/boot/rescue/Makefile
deleted file mode 100644
index 566aac663a38..000000000000
--- a/arch/cris/arch-v32/boot/rescue/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
1#
2# Makefile for rescue (bootstrap) code
3#
4
5CC = gcc-cris -mlinux -march=v32 $(LINUXINCLUDE)
6ccflags-y += -O2 -I $(srctree)/include/asm/arch/mach/ \
7 -I $(srctree)/include/asm/arch
8asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch
9LD = gcc-cris -mlinux -march=v32 -nostdlib
10ldflags-y += -T $(srctree)/$(src)/rescue.lds
11LDPOSTFLAGS = -lgcc
12OBJCOPYFLAGS = -O binary --remove-section=.bss
13obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o
14OBJECT := $(obj)/head.o
15
16targets := rescue.o rescue.bin
17
18quiet_cmd_ldlibgcc = LD $@
19cmd_ldlibgcc = $(LD) $(LDFLAGS) $(filter-out FORCE,$^) $(LDPOSTFLAGS) -o $@
20
21$(obj)/rescue.o: $(OBJECTS) FORCE
22 $(call if_changed,ldlibgcc)
23
24$(obj)/rescue.bin: $(obj)/rescue.o FORCE
25 $(call if_changed,objcopy)
26 cp -p $(obj)/rescue.bin $(objtree)
diff --git a/arch/cris/arch-v32/drivers/mach-a3/gpio.c b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
index 7a87bc0ae2e8..97357cfd17bb 100644
--- a/arch/cris/arch-v32/drivers/mach-a3/gpio.c
+++ b/arch/cris/arch-v32/drivers/mach-a3/gpio.c
@@ -681,7 +681,7 @@ static int virtual_gpio_ioctl(struct file *file, unsigned int cmd,
681 shadow |= ~readl(dir_oe[priv->minor]) | 681 shadow |= ~readl(dir_oe[priv->minor]) |
682 (arg & changeable_bits[priv->minor]); 682 (arg & changeable_bits[priv->minor]);
683 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow)); 683 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow));
684 spin_lock_irqrestore(&gpio_lock, flags); 684 spin_unlock_irqrestore(&gpio_lock, flags);
685 break; 685 break;
686 case IO_CLRBITS: 686 case IO_CLRBITS:
687 spin_lock_irqsave(&gpio_lock, flags); 687 spin_lock_irqsave(&gpio_lock, flags);
@@ -690,7 +690,7 @@ static int virtual_gpio_ioctl(struct file *file, unsigned int cmd,
690 shadow |= ~readl(dir_oe[priv->minor]) & 690 shadow |= ~readl(dir_oe[priv->minor]) &
691 ~(arg & changeable_bits[priv->minor]); 691 ~(arg & changeable_bits[priv->minor]);
692 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow)); 692 i2c_write(VIRT_I2C_ADDR, (void *)&shadow, sizeof(shadow));
693 spin_lock_irqrestore(&gpio_lock, flags); 693 spin_unlock_irqrestore(&gpio_lock, flags);
694 break; 694 break;
695 case IO_HIGHALARM: 695 case IO_HIGHALARM:
696 /* Set alarm when bits with 1 in arg go high. */ 696 /* Set alarm when bits with 1 in arg go high. */
diff --git a/arch/cris/arch-v32/kernel/Makefile b/arch/cris/arch-v32/kernel/Makefile
index 993d987b0078..40358355d0cb 100644
--- a/arch/cris/arch-v32/kernel/Makefile
+++ b/arch/cris/arch-v32/kernel/Makefile
@@ -9,8 +9,6 @@ obj-y := entry.o traps.o irq.o debugport.o \
9 process.o ptrace.o setup.o signal.o traps.o time.o \ 9 process.o ptrace.o setup.o signal.o traps.o time.o \
10 cache.o cacheflush.o 10 cache.o cacheflush.o
11 11
12obj-$(CONFIG_ETRAXFS_SIM) += vcs_hook.o
13
14obj-$(CONFIG_SMP) += smp.o 12obj-$(CONFIG_SMP) += smp.o
15obj-$(CONFIG_ETRAX_KGDB) += kgdb.o kgdb_asm.o 13obj-$(CONFIG_ETRAX_KGDB) += kgdb.o kgdb_asm.o
16obj-$(CONFIG_ETRAX_FAST_TIMER) += fasttimer.o 14obj-$(CONFIG_ETRAX_FAST_TIMER) += fasttimer.o
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index 5e674c8f7c51..435b9671bd4b 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -852,6 +852,14 @@ sys_call_table:
852 .long sys_fallocate 852 .long sys_fallocate
853 .long sys_timerfd_settime /* 325 */ 853 .long sys_timerfd_settime /* 325 */
854 .long sys_timerfd_gettime 854 .long sys_timerfd_gettime
855 .long sys_signalfd4
856 .long sys_eventfd2
857 .long sys_epoll_create1
858 .long sys_dup3 /* 330 */
859 .long sys_pipe2
860 .long sys_inotify_init1
861 .long sys_preadv
862 .long sys_pwritev
855 863
856 /* 864 /*
857 * NOTE!! This doesn't have to be exact - we just have 865 * NOTE!! This doesn't have to be exact - we just have
diff --git a/arch/cris/arch-v10/boot/.gitignore b/arch/cris/boot/.gitignore
index 171a0853caf8..171a0853caf8 100644
--- a/arch/cris/arch-v10/boot/.gitignore
+++ b/arch/cris/boot/.gitignore
diff --git a/arch/cris/arch-v10/boot/Makefile b/arch/cris/boot/Makefile
index 217203014433..144f3afa0119 100644
--- a/arch/cris/arch-v10/boot/Makefile
+++ b/arch/cris/boot/Makefile
@@ -1,8 +1,12 @@
1# 1#
2# arch/cris/arch-v10/boot/Makefile 2# arch/cris/boot/Makefile
3# 3#
4 4
5OBJCOPYFLAGS = -O binary --remove-section=.bss 5objcopyflags-$(CONFIG_ETRAX_ARCH_V10) += -R .note -R .comment
6objcopyflags-$(CONFIG_ETRAX_ARCH_V32) += --remove-section=.bss
7
8OBJCOPYFLAGS = -O binary $(objcopyflags-y)
9
6 10
7subdir- := compressed rescue 11subdir- := compressed rescue
8targets := Image 12targets := Image
diff --git a/arch/cris/arch-v10/boot/compressed/Makefile b/arch/cris/boot/compressed/Makefile
index 6fe0ffaf3be6..8fe9338c1775 100644
--- a/arch/cris/arch-v10/boot/compressed/Makefile
+++ b/arch/cris/boot/compressed/Makefile
@@ -1,11 +1,23 @@
1# 1#
2# arch/cris/arch-v10/boot/compressed/Makefile 2# arch/cris/boot/compressed/Makefile
3# 3#
4 4
5asflags-y += $(LINUXINCLUDE) 5asflags-y += $(LINUXINCLUDE)
6ccflags-y += -O2 $(LINUXINCLUDE) 6ccflags-y += -O2 $(LINUXINCLUDE)
7ldflags-y += -T $(srctree)/$(src)/decompress.lds 7
8OBJECTS = $(obj)/head.o $(obj)/misc.o 8# asflags-$(CONFIG_ETRAX_ARCH_V32) += -I$(srctree)/include/asm/mach \
9# -I$(srctree)/include/asm/arch
10# ccflags-$(CONFIG_ETRAX_ARCH_V32) += -O2 -I$(srctree)/include/asm/mach
11# -I$(srctree)/include/asm/arch
12
13arch-$(CONFIG_ETRAX_ARCH_V10) = v10
14arch-$(CONFIG_ETRAX_ARCH_V32) = v32
15
16ldflags-y += -T $(srctree)/$(src)/decompress_$(arch-y).lds
17
18OBJECTS-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
19OBJECTS-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
20OBJECTS= $(OBJECTS-y) $(obj)/misc.o
9OBJCOPYFLAGS = -O binary --remove-section=.bss 21OBJCOPYFLAGS = -O binary --remove-section=.bss
10 22
11quiet_cmd_image = BUILD $@ 23quiet_cmd_image = BUILD $@
@@ -24,4 +36,3 @@ $(obj)/vmlinux: $(obj)/piggy.gz $(obj)/decompress.bin FORCE
24 36
25$(obj)/piggy.gz: $(obj)/../Image FORCE 37$(obj)/piggy.gz: $(obj)/../Image FORCE
26 $(call if_changed,gzip) 38 $(call if_changed,gzip)
27
diff --git a/arch/cris/arch-v32/boot/compressed/README b/arch/cris/boot/compressed/README
index 182c5d75784b..182c5d75784b 100644
--- a/arch/cris/arch-v32/boot/compressed/README
+++ b/arch/cris/boot/compressed/README
diff --git a/arch/cris/arch-v10/boot/compressed/decompress.lds b/arch/cris/boot/compressed/decompress_v10.lds
index e80f4594d543..e80f4594d543 100644
--- a/arch/cris/arch-v10/boot/compressed/decompress.lds
+++ b/arch/cris/boot/compressed/decompress_v10.lds
diff --git a/arch/cris/arch-v32/boot/compressed/decompress.lds b/arch/cris/boot/compressed/decompress_v32.lds
index 3c837feca3ac..3c837feca3ac 100644
--- a/arch/cris/arch-v32/boot/compressed/decompress.lds
+++ b/arch/cris/boot/compressed/decompress_v32.lds
diff --git a/arch/cris/arch-v10/boot/compressed/head.S b/arch/cris/boot/compressed/head_v10.S
index 0bb4dcc29254..9edb8ade7e1f 100644
--- a/arch/cris/arch-v10/boot/compressed/head.S
+++ b/arch/cris/boot/compressed/head_v10.S
@@ -30,7 +30,7 @@
30 beq dram_init_finished 30 beq dram_init_finished
31 nop 31 nop
32 32
33#include "../../lib/dram_init.S" 33#include "../../arch-v10/lib/dram_init.S"
34 34
35dram_init_finished: 35dram_init_finished:
36 36
@@ -123,4 +123,4 @@ _cmd_line_magic:
123 .dword 0 123 .dword 0
124_cmd_line_addr: 124_cmd_line_addr:
125 .dword 0 125 .dword 0
126#include "../../lib/hw_settings.S" 126#include "../../arch-v10/lib/hw_settings.S"
diff --git a/arch/cris/arch-v32/boot/compressed/head.S b/arch/cris/boot/compressed/head_v32.S
index a4a65c5c669e..f483005f3d48 100644
--- a/arch/cris/arch-v32/boot/compressed/head.S
+++ b/arch/cris/boot/compressed/head_v32.S
@@ -17,7 +17,7 @@
17 .globl input_data 17 .globl input_data
18 18
19 .text 19 .text
20_start: 20start:
21 di 21 di
22 22
23 ;; Start clocks for used blocks. 23 ;; Start clocks for used blocks.
@@ -29,9 +29,9 @@ _start:
29 nop 29 nop
30 30
31#if defined CONFIG_ETRAXFS 31#if defined CONFIG_ETRAXFS
32#include "../../mach-fs/dram_init.S" 32#include "../../arch-v32/mach-fs/dram_init.S"
33#elif defined CONFIG_CRIS_MACH_ARTPEC3 33#elif defined CONFIG_CRIS_MACH_ARTPEC3
34#include "../../mach-a3/dram_init.S" 34#include "../../arch-v32/mach-a3/dram_init.S"
35#else 35#else
36#error Only ETRAXFS and ARTPEC-3 supported! 36#error Only ETRAXFS and ARTPEC-3 supported!
37#endif 37#endif
@@ -137,9 +137,9 @@ _boot_source:
137 .dword 0 137 .dword 0
138 138
139#if defined CONFIG_ETRAXFS 139#if defined CONFIG_ETRAXFS
140#include "../../mach-fs/hw_settings.S" 140#include "../../arch-v32/mach-fs/hw_settings.S"
141#elif defined CONFIG_CRIS_MACH_ARTPEC3 141#elif defined CONFIG_CRIS_MACH_ARTPEC3
142#include "../../mach-a3/hw_settings.S" 142#include "../../arch-v32/mach-a3/hw_settings.S"
143#else 143#else
144#error Only ETRAXFS and ARTPEC-3 supported! 144#error Only ETRAXFS and ARTPEC-3 supported!
145#endif 145#endif
diff --git a/arch/cris/arch-v32/boot/compressed/misc.c b/arch/cris/boot/compressed/misc.c
index 3595e16e82bc..47bc190ba6d4 100644
--- a/arch/cris/arch-v32/boot/compressed/misc.c
+++ b/arch/cris/boot/compressed/misc.c
@@ -18,8 +18,9 @@
18 18
19#define KERNEL_LOAD_ADR 0x40004000 19#define KERNEL_LOAD_ADR 0x40004000
20 20
21
22#include <linux/types.h> 21#include <linux/types.h>
22
23#ifdef CONFIG_ETRAX_ARCH_V32
23#include <hwregs/reg_rdwr.h> 24#include <hwregs/reg_rdwr.h>
24#include <hwregs/reg_map.h> 25#include <hwregs/reg_map.h>
25#include <hwregs/ser_defs.h> 26#include <hwregs/ser_defs.h>
@@ -27,6 +28,9 @@
27#ifdef CONFIG_CRIS_MACH_ARTPEC3 28#ifdef CONFIG_CRIS_MACH_ARTPEC3
28#include <hwregs/clkgen_defs.h> 29#include <hwregs/clkgen_defs.h>
29#endif 30#endif
31#else
32#include <arch/svinto.h>
33#endif
30 34
31/* 35/*
32 * gzip declarations 36 * gzip declarations
@@ -35,12 +39,10 @@
35#define OF(args) args 39#define OF(args) args
36#define STATIC static 40#define STATIC static
37 41
38void* memset(void* s, int c, size_t n); 42void *memset(void *s, int c, size_t n);
39void* memcpy(void* __dest, __const void* __src, 43void *memcpy(void *__dest, __const void *__src, size_t __n);
40 size_t __n);
41
42#define memzero(s, n) memset ((s), 0, (n))
43 44
45#define memzero(s, n) memset((s), 0, (n))
44 46
45typedef unsigned char uch; 47typedef unsigned char uch;
46typedef unsigned short ush; 48typedef unsigned short ush;
@@ -68,27 +70,43 @@ static unsigned outcnt = 0; /* bytes in output buffer */
68#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ 70#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
69#define RESERVED 0xC0 /* bit 6,7: reserved */ 71#define RESERVED 0xC0 /* bit 6,7: reserved */
70 72
71#define get_byte() inbuf[inptr++] 73#define get_byte() (inbuf[inptr++])
72 74
73/* Diagnostic functions */ 75/* Diagnostic functions */
74#ifdef DEBUG 76#ifdef DEBUG
75# define Assert(cond,msg) {if(!(cond)) error(msg);} 77# define Assert(cond, msg) do { \
78 if (!(cond)) \
79 error(msg); \
80 } while (0)
76# define Trace(x) fprintf x 81# define Trace(x) fprintf x
77# define Tracev(x) {if (verbose) fprintf x ;} 82# define Tracev(x) do { \
78# define Tracevv(x) {if (verbose>1) fprintf x ;} 83 if (verbose) \
79# define Tracec(c,x) {if (verbose && (c)) fprintf x ;} 84 fprintf x; \
80# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;} 85 } while (0)
86# define Tracevv(x) do { \
87 if (verbose > 1) \
88 fprintf x; \
89 } while (0)
90# define Tracec(c, x) do { \
91 if (verbose && (c)) \
92 fprintf x; \
93 } while (0)
94# define Tracecv(c, x) do { \
95 if (verbose > 1 && (c)) \
96 fprintf x; \
97 } while (0)
81#else 98#else
82# define Assert(cond,msg) 99# define Assert(cond, msg)
83# define Trace(x) 100# define Trace(x)
84# define Tracev(x) 101# define Tracev(x)
85# define Tracevv(x) 102# define Tracevv(x)
86# define Tracec(c,x) 103# define Tracec(c, x)
87# define Tracecv(c,x) 104# define Tracecv(c, x)
88#endif 105#endif
89 106
90static void flush_window(void); 107static void flush_window(void);
91static void error(char *m); 108static void error(char *m);
109static void puts(const char *);
92 110
93extern char *input_data; /* lives in head.S */ 111extern char *input_data; /* lives in head.S */
94 112
@@ -96,10 +114,6 @@ static long bytes_out;
96static uch *output_data; 114static uch *output_data;
97static unsigned long output_ptr; 115static unsigned long output_ptr;
98 116
99static void error(char *m);
100
101static void puts(const char *);
102
103/* the "heap" is put directly after the BSS ends, at end */ 117/* the "heap" is put directly after the BSS ends, at end */
104 118
105extern int _end; 119extern int _end;
@@ -110,8 +124,8 @@ static long free_mem_end_ptr;
110 124
111/* decompressor info and error messages to serial console */ 125/* decompressor info and error messages to serial console */
112 126
113static inline void 127#ifdef CONFIG_ETRAX_ARCH_V32
114serout(const char *s, reg_scope_instances regi_ser) 128static inline void serout(const char *s, reg_scope_instances regi_ser)
115{ 129{
116 reg_ser_rs_stat_din rs; 130 reg_ser_rs_stat_din rs;
117 reg_ser_rw_dout dout = {.data = *s}; 131 reg_ser_rw_dout dout = {.data = *s};
@@ -123,23 +137,47 @@ serout(const char *s, reg_scope_instances regi_ser)
123 137
124 REG_WR(ser, regi_ser, rw_dout, dout); 138 REG_WR(ser, regi_ser, rw_dout, dout);
125} 139}
140#endif
126 141
127static void 142static void puts(const char *s)
128puts(const char *s)
129{ 143{
130#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL 144#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
131 while (*s) { 145 while (*s) {
132#ifdef CONFIG_ETRAX_DEBUG_PORT0 146#ifdef CONFIG_ETRAX_DEBUG_PORT0
147#ifdef CONFIG_ETRAX_ARCH_V32
133 serout(s, regi_ser0); 148 serout(s, regi_ser0);
149#else
150 while (!(*R_SERIAL0_STATUS & (1 << 5)))
151 ;
152 *R_SERIAL0_TR_DATA = *s++;
153#endif
134#endif 154#endif
135#ifdef CONFIG_ETRAX_DEBUG_PORT1 155#ifdef CONFIG_ETRAX_DEBUG_PORT1
156#ifdef CONFIG_ETRAX_ARCH_V32
136 serout(s, regi_ser1); 157 serout(s, regi_ser1);
158#else
159 while (!(*R_SERIAL1_STATUS & (1 << 5)))
160 ;
161 *R_SERIAL1_TR_DATA = *s++;
162#endif
137#endif 163#endif
138#ifdef CONFIG_ETRAX_DEBUG_PORT2 164#ifdef CONFIG_ETRAX_DEBUG_PORT2
165#ifdef CONFIG_ETRAX_ARCH_V32
139 serout(s, regi_ser2); 166 serout(s, regi_ser2);
167#else
168 while (!(*R_SERIAL2_STATUS & (1 << 5)))
169 ;
170 *R_SERIAL2_TR_DATA = *s++;
171#endif
140#endif 172#endif
141#ifdef CONFIG_ETRAX_DEBUG_PORT3 173#ifdef CONFIG_ETRAX_DEBUG_PORT3
174#ifdef CONFIG_ETRAX_ARCH_V32
142 serout(s, regi_ser3); 175 serout(s, regi_ser3);
176#else
177 while (!(*R_SERIAL3_STATUS & (1 << 5)))
178 ;
179 *R_SERIAL3_TR_DATA = *s++;
180#endif
143#endif 181#endif
144 *s++; 182 *s++;
145 } 183 }
@@ -147,8 +185,7 @@ puts(const char *s)
147#endif 185#endif
148} 186}
149 187
150void* 188void *memset(void *s, int c, size_t n)
151memset(void* s, int c, size_t n)
152{ 189{
153 int i; 190 int i;
154 char *ss = (char*)s; 191 char *ss = (char*)s;
@@ -158,14 +195,13 @@ memset(void* s, int c, size_t n)
158 return s; 195 return s;
159} 196}
160 197
161void* 198void *memcpy(void *__dest, __const void *__src, size_t __n)
162memcpy(void* __dest, __const void* __src,
163 size_t __n)
164{ 199{
165 int i; 200 int i;
166 char *d = (char *)__dest, *s = (char *)__src; 201 char *d = (char *)__dest, *s = (char *)__src;
167 202
168 for (i=0;i<__n;i++) d[i] = s[i]; 203 for (i = 0; i < __n; i++)
204 d[i] = s[i];
169 205
170 return __dest; 206 return __dest;
171} 207}
@@ -175,43 +211,42 @@ memcpy(void* __dest, __const void* __src,
175 * (Used for the decompressed data only.) 211 * (Used for the decompressed data only.)
176 */ 212 */
177 213
178static void 214static void flush_window(void)
179flush_window()
180{ 215{
181 ulg c = crc; /* temporary variable */ 216 ulg c = crc; /* temporary variable */
182 unsigned n; 217 unsigned n;
183 uch *in, *out, ch; 218 uch *in, *out, ch;
184 219
185 in = window; 220 in = window;
186 out = &output_data[output_ptr]; 221 out = &output_data[output_ptr];
187 for (n = 0; n < outcnt; n++) { 222 for (n = 0; n < outcnt; n++) {
188 ch = *out++ = *in++; 223 ch = *out = *in;
189 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8); 224 out++;
190 } 225 in++;
191 crc = c; 226 c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
192 bytes_out += (ulg)outcnt; 227 }
193 output_ptr += (ulg)outcnt; 228 crc = c;
194 outcnt = 0; 229 bytes_out += (ulg)outcnt;
230 output_ptr += (ulg)outcnt;
231 outcnt = 0;
195} 232}
196 233
197static void 234static void error(char *x)
198error(char *x)
199{ 235{
200 puts("\r\n\n"); 236 puts("\n\n");
201 puts(x); 237 puts(x);
202 puts("\r\n\n -- System halted\n"); 238 puts("\n\n -- System halted\n");
203 239
204 while(1); /* Halt */ 240 while(1); /* Halt */
205} 241}
206 242
207void 243void setup_normal_output_buffer(void)
208setup_normal_output_buffer(void)
209{ 244{
210 output_data = (char *)KERNEL_LOAD_ADR; 245 output_data = (char *)KERNEL_LOAD_ADR;
211} 246}
212 247
213static inline void 248#ifdef CONFIG_ETRAX_ARCH_V32
214serial_setup(reg_scope_instances regi_ser) 249static inline void serial_setup(reg_scope_instances regi_ser)
215{ 250{
216 reg_ser_rw_xoff xoff; 251 reg_ser_rw_xoff xoff;
217 reg_ser_rw_tr_ctrl tr_ctrl; 252 reg_ser_rw_tr_ctrl tr_ctrl;
@@ -252,12 +287,16 @@ serial_setup(reg_scope_instances regi_ser)
252 REG_WR(ser, regi_ser, rw_rec_ctrl, rec_ctrl); 287 REG_WR(ser, regi_ser, rw_rec_ctrl, rec_ctrl);
253 REG_WR(ser, regi_ser, rw_rec_baud_div, rec_baud); 288 REG_WR(ser, regi_ser, rw_rec_baud_div, rec_baud);
254} 289}
290#endif
255 291
256void 292void decompress_kernel(void)
257decompress_kernel(void)
258{ 293{
259 char revision; 294 char revision;
295 char compile_rev;
260 296
297#ifdef CONFIG_ETRAX_ARCH_V32
298 /* Need at least a CRISv32 to run. */
299 compile_rev = 32;
261#if defined(CONFIG_ETRAX_DEBUG_PORT1) || \ 300#if defined(CONFIG_ETRAX_DEBUG_PORT1) || \
262 defined(CONFIG_ETRAX_DEBUG_PORT2) || \ 301 defined(CONFIG_ETRAX_DEBUG_PORT2) || \
263 defined(CONFIG_ETRAX_DEBUG_PORT3) 302 defined(CONFIG_ETRAX_DEBUG_PORT3)
@@ -277,6 +316,7 @@ decompress_kernel(void)
277 hwprot = REG_RD(pinmux, regi_pinmux, rw_hwprot); 316 hwprot = REG_RD(pinmux, regi_pinmux, rw_hwprot);
278#endif 317#endif
279 318
319
280#ifdef CONFIG_ETRAX_DEBUG_PORT0 320#ifdef CONFIG_ETRAX_DEBUG_PORT0
281 serial_setup(regi_ser0); 321 serial_setup(regi_ser0);
282#endif 322#endif
@@ -300,19 +340,52 @@ decompress_kernel(void)
300 340
301 /* input_data is set in head.S */ 341 /* input_data is set in head.S */
302 inbuf = input_data; 342 inbuf = input_data;
343#else /* CRISv10 */
344 /* Need at least a crisv10 to run. */
345 compile_rev = 10;
346
347 /* input_data is set in head.S */
348 inbuf = input_data;
349
350#ifdef CONFIG_ETRAX_DEBUG_PORT0
351 *R_SERIAL0_XOFF = 0;
352 *R_SERIAL0_BAUD = 0x99;
353 *R_SERIAL0_TR_CTRL = 0x40;
354#endif
355#ifdef CONFIG_ETRAX_DEBUG_PORT1
356 *R_SERIAL1_XOFF = 0;
357 *R_SERIAL1_BAUD = 0x99;
358 *R_SERIAL1_TR_CTRL = 0x40;
359#endif
360#ifdef CONFIG_ETRAX_DEBUG_PORT2
361 *R_GEN_CONFIG = 0x08;
362 *R_SERIAL2_XOFF = 0;
363 *R_SERIAL2_BAUD = 0x99;
364 *R_SERIAL2_TR_CTRL = 0x40;
365#endif
366#ifdef CONFIG_ETRAX_DEBUG_PORT3
367 *R_GEN_CONFIG = 0x100;
368 *R_SERIAL3_XOFF = 0;
369 *R_SERIAL3_BAUD = 0x99;
370 *R_SERIAL3_TR_CTRL = 0x40;
371#endif
372#endif
303 373
304 setup_normal_output_buffer(); 374 setup_normal_output_buffer();
305 375
306 makecrc(); 376 makecrc();
307 377
308 __asm__ volatile ("move $vr,%0" : "=rm" (revision)); 378 __asm__ volatile ("move $vr,%0" : "=rm" (revision));
309 if (revision < 32) 379 if (revision < compile_rev) {
310 { 380#ifdef CONFIG_ETRAX_ARCH_V32
311 puts("You need an ETRAX FS to run Linux 2.6/crisv32.\r\n"); 381 puts("You need an ETRAX FS to run Linux 2.6/crisv32\n");
382#else
383 puts("You need an ETRAX 100LX to run linux 2.6\n");
384#endif
312 while(1); 385 while(1);
313 } 386 }
314 387
315 puts("Uncompressing Linux...\r\n"); 388 puts("Uncompressing Linux...\n");
316 gunzip(); 389 gunzip();
317 puts("Done. Now booting the kernel.\r\n"); 390 puts("Done. Now booting the kernel\n");
318} 391}
diff --git a/arch/cris/arch-v10/boot/rescue/Makefile b/arch/cris/boot/rescue/Makefile
index 82ab59b968e5..52bd0bd1dd22 100644
--- a/arch/cris/arch-v10/boot/rescue/Makefile
+++ b/arch/cris/boot/rescue/Makefile
@@ -2,16 +2,26 @@
2# Makefile for rescue (bootstrap) code 2# Makefile for rescue (bootstrap) code
3# 3#
4 4
5ccflags-y += -O2 $(LINUXINCLUDE) 5# CC = gcc-cris -mlinux -march=v32 $(LINUXINCLUDE)
6# ccflags-$(CONFIG_ETRAX_ARCH_V32) += -I$(srctree)/include/asm/arch/mach/ \
7# -I$(srctree)/include/asm/arch
8# asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch
9# LD = gcc-cris -mlinux -march=v32 -nostdlib
10
6asflags-y += $(LINUXINCLUDE) 11asflags-y += $(LINUXINCLUDE)
7ldflags-y += -T $(srctree)/$(src)/rescue.lds 12ccflags-y += -O2 $(LINUXINCLUDE)
13arch-$(CONFIG_ETRAX_ARCH_V10) = v10
14arch-$(CONFIG_ETRAX_ARCH_V32) = v32
15
16ldflags-y += -T $(srctree)/$(src)/rescue_$(arch-y).lds
8OBJCOPYFLAGS = -O binary --remove-section=.bss 17OBJCOPYFLAGS = -O binary --remove-section=.bss
9obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o 18obj-$(CONFIG_ETRAX_ARCH_V32) = $(obj)/head_v32.o
10OBJECT := $(obj)/head.o 19obj-$(CONFIG_ETRAX_ARCH_V10) = $(obj)/head_v10.o
20OBJECTS := $(obj-y)
11 21
12targets := rescue.o rescue.bin 22targets := rescue.o rescue.bin
13 23
14$(obj)/rescue.o: $(OBJECT) FORCE 24$(obj)/rescue.o: $(OBJECTS) FORCE
15 $(call if_changed,ld) 25 $(call if_changed,ld)
16 26
17$(obj)/rescue.bin: $(obj)/rescue.o FORCE 27$(obj)/rescue.bin: $(obj)/rescue.o FORCE
@@ -26,6 +36,7 @@ $(obj)/testrescue.bin: $(obj)/testrescue.o
26 dd if=testrescue_tmp.bin of=$(obj)/testrescue.bin bs=1 count=784 36 dd if=testrescue_tmp.bin of=$(obj)/testrescue.bin bs=1 count=784
27 rm tr.bin tmp2423 testrescue_tmp.bin 37 rm tr.bin tmp2423 testrescue_tmp.bin
28 38
39
29$(obj)/kimagerescue.bin: $(obj)/kimagerescue.o 40$(obj)/kimagerescue.bin: $(obj)/kimagerescue.o
30 $(OBJCOPY) $(OBJCOPYFLAGS) $(obj)/kimagerescue.o ktr.bin 41 $(OBJCOPY) $(OBJCOPYFLAGS) $(obj)/kimagerescue.o ktr.bin
31# Pad it to 784 bytes, that's what the rescue loader expects 42# Pad it to 784 bytes, that's what the rescue loader expects
@@ -33,3 +44,4 @@ $(obj)/kimagerescue.bin: $(obj)/kimagerescue.o
33 cat ktr.bin tmp2423 >kimagerescue_tmp.bin 44 cat ktr.bin tmp2423 >kimagerescue_tmp.bin
34 dd if=kimagerescue_tmp.bin of=$(obj)/kimagerescue.bin bs=1 count=784 45 dd if=kimagerescue_tmp.bin of=$(obj)/kimagerescue.bin bs=1 count=784
35 rm ktr.bin tmp2423 kimagerescue_tmp.bin 46 rm ktr.bin tmp2423 kimagerescue_tmp.bin
47
diff --git a/arch/cris/arch-v10/boot/rescue/head.S b/arch/cris/boot/rescue/head_v10.S
index fb503d1eeea4..2fafe247a25b 100644
--- a/arch/cris/arch-v10/boot/rescue/head.S
+++ b/arch/cris/boot/rescue/head_v10.S
@@ -155,7 +155,7 @@ no_newjump:
155#endif 155#endif
156 156
157 ;; We need to setup the bus registers before we start using the DRAM 157 ;; We need to setup the bus registers before we start using the DRAM
158#include "../../lib/dram_init.S" 158#include "../../../arch-v10/lib/dram_init.S"
159 159
160 ;; we now should go through the checksum-table and check the listed 160 ;; we now should go through the checksum-table and check the listed
161 ;; partitions for errors. 161 ;; partitions for errors.
diff --git a/arch/cris/arch-v32/boot/rescue/head.S b/arch/cris/boot/rescue/head_v32.S
index 5f846b7700a3..5f846b7700a3 100644
--- a/arch/cris/arch-v32/boot/rescue/head.S
+++ b/arch/cris/boot/rescue/head_v32.S
diff --git a/arch/cris/arch-v10/boot/rescue/kimagerescue.S b/arch/cris/boot/rescue/kimagerescue.S
index 6f7b3e61260b..6f7b3e61260b 100644
--- a/arch/cris/arch-v10/boot/rescue/kimagerescue.S
+++ b/arch/cris/boot/rescue/kimagerescue.S
diff --git a/arch/cris/arch-v10/boot/rescue/rescue.lds b/arch/cris/boot/rescue/rescue_v10.lds
index 0b52a9490db6..0b52a9490db6 100644
--- a/arch/cris/arch-v10/boot/rescue/rescue.lds
+++ b/arch/cris/boot/rescue/rescue_v10.lds
diff --git a/arch/cris/arch-v32/boot/rescue/rescue.lds b/arch/cris/boot/rescue/rescue_v32.lds
index 8ac646bc1a2b..8ac646bc1a2b 100644
--- a/arch/cris/arch-v32/boot/rescue/rescue.lds
+++ b/arch/cris/boot/rescue/rescue_v32.lds
diff --git a/arch/cris/arch-v10/boot/rescue/testrescue.S b/arch/cris/boot/rescue/testrescue.S
index fc7ec674eca5..fc7ec674eca5 100644
--- a/arch/cris/arch-v10/boot/rescue/testrescue.S
+++ b/arch/cris/boot/rescue/testrescue.S
diff --git a/arch/cris/arch-v10/boot/tools/build.c b/arch/cris/boot/tools/build.c
index c8adef364160..c8adef364160 100644
--- a/arch/cris/arch-v10/boot/tools/build.c
+++ b/arch/cris/boot/tools/build.c
diff --git a/arch/cris/include/asm/unistd.h b/arch/cris/include/asm/unistd.h
index 235d076379d5..c17079388bb9 100644
--- a/arch/cris/include/asm/unistd.h
+++ b/arch/cris/include/asm/unistd.h
@@ -281,7 +281,7 @@
281#define __NR_mbind 274 281#define __NR_mbind 274
282#define __NR_get_mempolicy 275 282#define __NR_get_mempolicy 275
283#define __NR_set_mempolicy 276 283#define __NR_set_mempolicy 276
284#define __NR_mq_open 277 284#define __NR_mq_open 277
285#define __NR_mq_unlink (__NR_mq_open+1) 285#define __NR_mq_unlink (__NR_mq_open+1)
286#define __NR_mq_timedsend (__NR_mq_open+2) 286#define __NR_mq_timedsend (__NR_mq_open+2)
287#define __NR_mq_timedreceive (__NR_mq_open+3) 287#define __NR_mq_timedreceive (__NR_mq_open+3)
@@ -331,10 +331,18 @@
331#define __NR_fallocate 324 331#define __NR_fallocate 324
332#define __NR_timerfd_settime 325 332#define __NR_timerfd_settime 325
333#define __NR_timerfd_gettime 326 333#define __NR_timerfd_gettime 326
334#define __NR_signalfd4 327
335#define __NR_eventfd2 328
336#define __NR_epoll_create1 329
337#define __NR_dup3 330
338#define __NR_pipe2 331
339#define __NR_inotify_init1 332
340#define __NR_preadv 333
341#define __NR_pwritev 334
334 342
335#ifdef __KERNEL__ 343#ifdef __KERNEL__
336 344
337#define NR_syscalls 327 345#define NR_syscalls 335
338 346
339#include <arch/unistd.h> 347#include <arch/unistd.h>
340 348
diff --git a/arch/frv/include/asm/bug.h b/arch/frv/include/asm/bug.h
index 6b1b44d71028..2e054508a2f6 100644
--- a/arch/frv/include/asm/bug.h
+++ b/arch/frv/include/asm/bug.h
@@ -30,7 +30,7 @@ extern void __debug_bug_printk(const char *file, unsigned line);
30do { \ 30do { \
31 __debug_bug_trap(signr); \ 31 __debug_bug_trap(signr); \
32 asm volatile("nop"); \ 32 asm volatile("nop"); \
33} while(0) 33} while(1)
34 34
35#define HAVE_ARCH_BUG 35#define HAVE_ARCH_BUG
36#define BUG() \ 36#define BUG() \
@@ -46,7 +46,8 @@ do { \
46#define HAVE_ARCH_KGDB_BAD_PAGE 46#define HAVE_ARCH_KGDB_BAD_PAGE
47#define kgdb_bad_page(page) do { kgdb_raise(SIGABRT); } while(0) 47#define kgdb_bad_page(page) do { kgdb_raise(SIGABRT); } while(0)
48#endif 48#endif
49#endif 49
50#endif /* CONFIG_BUG */
50 51
51#include <asm-generic/bug.h> 52#include <asm-generic/bug.h>
52 53
diff --git a/arch/frv/include/asm/init.h b/arch/frv/include/asm/init.h
deleted file mode 100644
index 8b15838de216..000000000000
--- a/arch/frv/include/asm/init.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef _ASM_INIT_H
2#define _ASM_INIT_H
3
4#define __init __attribute__ ((__section__ (".text.init")))
5#define __initdata __attribute__ ((__section__ (".data.init")))
6/* For assembly routines */
7#define __INIT .section ".text.init",#alloc,#execinstr
8#define __FINIT .previous
9#define __INITDATA .section ".data.init",#alloc,#write
10
11#endif
12
diff --git a/arch/frv/include/asm/unistd.h b/arch/frv/include/asm/unistd.h
index edcfaf5f0414..96d78d5d2c41 100644
--- a/arch/frv/include/asm/unistd.h
+++ b/arch/frv/include/asm/unistd.h
@@ -339,10 +339,12 @@
339#define __NR_dup3 330 339#define __NR_dup3 330
340#define __NR_pipe2 331 340#define __NR_pipe2 331
341#define __NR_inotify_init1 332 341#define __NR_inotify_init1 332
342#define __NR_preadv 333
343#define __NR_pwritev 334
342 344
343#ifdef __KERNEL__ 345#ifdef __KERNEL__
344 346
345#define NR_syscalls 333 347#define NR_syscalls 335
346 348
347#define __ARCH_WANT_IPC_PARSE_VERSION 349#define __ARCH_WANT_IPC_PARSE_VERSION
348/* #define __ARCH_WANT_OLD_READDIR */ 350/* #define __ARCH_WANT_OLD_READDIR */
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S
index 99060ab507ee..1da523b3298e 100644
--- a/arch/frv/kernel/entry.S
+++ b/arch/frv/kernel/entry.S
@@ -1525,5 +1525,7 @@ sys_call_table:
1525 .long sys_dup3 /* 330 */ 1525 .long sys_dup3 /* 330 */
1526 .long sys_pipe2 1526 .long sys_pipe2
1527 .long sys_inotify_init1 1527 .long sys_inotify_init1
1528 .long sys_preadv
1529 .long sys_pwritev
1528 1530
1529syscall_table_size = (. - sys_call_table) 1531syscall_table_size = (. - sys_call_table)
diff --git a/arch/frv/kernel/head-mmu-fr451.S b/arch/frv/kernel/head-mmu-fr451.S
index c8f210d84ff5..98f87d586e59 100644
--- a/arch/frv/kernel/head-mmu-fr451.S
+++ b/arch/frv/kernel/head-mmu-fr451.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/ptrace.h> 15#include <asm/ptrace.h>
@@ -31,7 +32,7 @@
31#define __400_LCR 0xfe000100 32#define __400_LCR 0xfe000100
32#define __400_LSBR 0xfe000c00 33#define __400_LSBR 0xfe000c00
33 34
34 .section .text.init,"ax" 35 __INIT
35 .balign 4 36 .balign 4
36 37
37############################################################################### 38###############################################################################
diff --git a/arch/frv/kernel/head-uc-fr401.S b/arch/frv/kernel/head-uc-fr401.S
index ee282be20fff..438643cfa38e 100644
--- a/arch/frv/kernel/head-uc-fr401.S
+++ b/arch/frv/kernel/head-uc-fr401.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/ptrace.h> 15#include <asm/ptrace.h>
@@ -30,7 +31,7 @@
30#define __400_LCR 0xfe000100 31#define __400_LCR 0xfe000100
31#define __400_LSBR 0xfe000c00 32#define __400_LSBR 0xfe000c00
32 33
33 .section .text.init,"ax" 34 __INIT
34 .balign 4 35 .balign 4
35 36
36############################################################################### 37###############################################################################
diff --git a/arch/frv/kernel/head-uc-fr451.S b/arch/frv/kernel/head-uc-fr451.S
index b10d9c8295d2..b2a76c4a1786 100644
--- a/arch/frv/kernel/head-uc-fr451.S
+++ b/arch/frv/kernel/head-uc-fr451.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/ptrace.h> 15#include <asm/ptrace.h>
@@ -30,7 +31,7 @@
30#define __400_LCR 0xfe000100 31#define __400_LCR 0xfe000100
31#define __400_LSBR 0xfe000c00 32#define __400_LSBR 0xfe000c00
32 33
33 .section .text.init,"ax" 34 __INIT
34 .balign 4 35 .balign 4
35 36
36############################################################################### 37###############################################################################
diff --git a/arch/frv/kernel/head-uc-fr555.S b/arch/frv/kernel/head-uc-fr555.S
index 39937c19b460..5497aaf34f77 100644
--- a/arch/frv/kernel/head-uc-fr555.S
+++ b/arch/frv/kernel/head-uc-fr555.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/ptrace.h> 15#include <asm/ptrace.h>
@@ -29,7 +30,7 @@
29#define __551_LCR 0xfeff1100 30#define __551_LCR 0xfeff1100
30#define __551_LSBR 0xfeff1c00 31#define __551_LSBR 0xfeff1c00
31 32
32 .section .text.init,"ax" 33 __INIT
33 .balign 4 34 .balign 4
34 35
35############################################################################### 36###############################################################################
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S
index fecf751c5cae..b825ef3f2d54 100644
--- a/arch/frv/kernel/head.S
+++ b/arch/frv/kernel/head.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/thread_info.h> 15#include <asm/thread_info.h>
@@ -27,7 +28,7 @@
27# command line string 28# command line string
28# 29#
29############################################################################### 30###############################################################################
30 .section .text.head,"ax" 31 __HEAD
31 .balign 4 32 .balign 4
32 33
33 .globl _boot, __head_reference 34 .globl _boot, __head_reference
diff --git a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c
index 0669e1382383..55e4fab7c0bc 100644
--- a/arch/frv/kernel/setup.c
+++ b/arch/frv/kernel/setup.c
@@ -46,7 +46,6 @@
46#include <asm/io.h> 46#include <asm/io.h>
47 47
48#ifdef CONFIG_BLK_DEV_INITRD 48#ifdef CONFIG_BLK_DEV_INITRD
49#include <linux/blk.h>
50#include <asm/pgtable.h> 49#include <asm/pgtable.h>
51#endif 50#endif
52 51
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index b95c4eace62f..22d9787406ed 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -26,7 +26,7 @@ SECTIONS
26 26
27 _sinittext = .; 27 _sinittext = .;
28 .init.text : { 28 .init.text : {
29 *(.text.head) 29 HEAD_TEXT
30#ifndef CONFIG_DEBUG_INFO 30#ifndef CONFIG_DEBUG_INFO
31 INIT_TEXT 31 INIT_TEXT
32 EXIT_TEXT 32 EXIT_TEXT
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index 0f41c3a72da5..c0dcec65c6b7 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -31,6 +31,29 @@ struct pci_bus *__nongpreldata pci_root_bus;
31struct pci_ops *__nongpreldata pci_root_ops; 31struct pci_ops *__nongpreldata pci_root_ops;
32 32
33/* 33/*
34 * The accessible PCI window does not cover the entire CPU address space, but
35 * there are devices we want to access outside of that window, so we need to
36 * insert specific PCI bus resources instead of using the platform-level bus
37 * resources directly for the PCI root bus.
38 *
39 * These are configured and inserted by pcibios_init() and are attached to the
40 * root bus by pcibios_fixup_bus().
41 */
42static struct resource pci_ioport_resource = {
43 .name = "PCI IO",
44 .start = 0,
45 .end = IO_SPACE_LIMIT,
46 .flags = IORESOURCE_IO,
47};
48
49static struct resource pci_iomem_resource = {
50 .name = "PCI mem",
51 .start = 0,
52 .end = -1,
53 .flags = IORESOURCE_MEM,
54};
55
56/*
34 * Functions for accessing PCI configuration space 57 * Functions for accessing PCI configuration space
35 */ 58 */
36 59
@@ -304,6 +327,12 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
304#if 0 327#if 0
305 printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number); 328 printk("### PCIBIOS_FIXUP_BUS(%d)\n",bus->number);
306#endif 329#endif
330
331 if (bus->number == 0) {
332 bus->resource[0] = &pci_ioport_resource;
333 bus->resource[1] = &pci_iomem_resource;
334 }
335
307 pci_read_bridge_bases(bus); 336 pci_read_bridge_bases(bus);
308 337
309 if (bus->number == 0) { 338 if (bus->number == 0) {
@@ -350,28 +379,36 @@ int __init pcibios_init(void)
350 /* enable PCI arbitration */ 379 /* enable PCI arbitration */
351 __reg_MB86943_pci_arbiter = MB86943_PCIARB_EN; 380 __reg_MB86943_pci_arbiter = MB86943_PCIARB_EN;
352 381
353 ioport_resource.start = (__reg_MB86943_sl_pci_io_base << 9) & 0xfffffc00; 382 pci_ioport_resource.start = (__reg_MB86943_sl_pci_io_base << 9) & 0xfffffc00;
354 ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff; 383 pci_ioport_resource.end = (__reg_MB86943_sl_pci_io_range << 9) | 0x3ff;
355 ioport_resource.end += ioport_resource.start; 384 pci_ioport_resource.end += pci_ioport_resource.start;
356 385
357 printk("PCI IO window: %08llx-%08llx\n", 386 printk("PCI IO window: %08llx-%08llx\n",
358 (unsigned long long) ioport_resource.start, 387 (unsigned long long) pci_ioport_resource.start,
359 (unsigned long long) ioport_resource.end); 388 (unsigned long long) pci_ioport_resource.end);
360 389
361 iomem_resource.start = (__reg_MB86943_sl_pci_mem_base << 9) & 0xfffffc00; 390 pci_iomem_resource.start = (__reg_MB86943_sl_pci_mem_base << 9) & 0xfffffc00;
391 pci_iomem_resource.end = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff;
392 pci_iomem_resource.end += pci_iomem_resource.start;
362 393
363 /* Reserve somewhere to write to flush posted writes. */ 394 /* Reserve somewhere to write to flush posted writes. This is used by
364 iomem_resource.start += 0x400; 395 * __flush_PCI_writes() from asm/io.h to force the write FIFO in the
365 396 * CPU-PCI bridge to flush as this doesn't happen automatically when a
366 iomem_resource.end = (__reg_MB86943_sl_pci_mem_range << 9) | 0x3ff; 397 * read is performed on the MB93090 development kit motherboard.
367 iomem_resource.end += iomem_resource.start; 398 */
399 pci_iomem_resource.start += 0x400;
368 400
369 printk("PCI MEM window: %08llx-%08llx\n", 401 printk("PCI MEM window: %08llx-%08llx\n",
370 (unsigned long long) iomem_resource.start, 402 (unsigned long long) pci_iomem_resource.start,
371 (unsigned long long) iomem_resource.end); 403 (unsigned long long) pci_iomem_resource.end);
372 printk("PCI DMA memory: %08lx-%08lx\n", 404 printk("PCI DMA memory: %08lx-%08lx\n",
373 dma_coherent_mem_start, dma_coherent_mem_end); 405 dma_coherent_mem_start, dma_coherent_mem_end);
374 406
407 if (insert_resource(&iomem_resource, &pci_iomem_resource) < 0)
408 panic("Unable to insert PCI IOMEM resource\n");
409 if (insert_resource(&ioport_resource, &pci_ioport_resource) < 0)
410 panic("Unable to insert PCI IOPORT resource\n");
411
375 if (!pci_probe) 412 if (!pci_probe)
376 return -ENXIO; 413 return -ENXIO;
377 414
diff --git a/include/asm-h8300/timer.h b/arch/h8300/include/asm/timer.h
index def80464d38f..def80464d38f 100644
--- a/include/asm-h8300/timer.h
+++ b/arch/h8300/include/asm/timer.h
diff --git a/arch/ia64/include/asm/idle.h b/arch/ia64/include/asm/idle.h
new file mode 100644
index 000000000000..b7685015a8ba
--- /dev/null
+++ b/arch/ia64/include/asm/idle.h
@@ -0,0 +1,7 @@
1#ifndef _ASM_IA64_IDLE_H
2#define _ASM_IA64_IDLE_H
3
4static inline void enter_idle(void) { }
5static inline void exit_idle(void) { }
6
7#endif /* _ASM_IA64_IDLE_H */
diff --git a/arch/ia64/include/asm/paravirt_privop.h b/arch/ia64/include/asm/paravirt_privop.h
index 3d2951130b5f..8f6cb11c9fae 100644
--- a/arch/ia64/include/asm/paravirt_privop.h
+++ b/arch/ia64/include/asm/paravirt_privop.h
@@ -445,7 +445,6 @@ paravirt_set_rr0_to_rr4(unsigned long val0, unsigned long val1,
445 register unsigned long ia64_intri_res asm ("r8"); \ 445 register unsigned long ia64_intri_res asm ("r8"); \
446 register unsigned long __reg asm ("r8") = (reg); \ 446 register unsigned long __reg asm ("r8") = (reg); \
447 \ 447 \
448 BUILD_BUG_ON(!__builtin_constant_p(reg)); \
449 asm volatile (paravirt_alt_bundle(__PARAVIRT_BR, \ 448 asm volatile (paravirt_alt_bundle(__PARAVIRT_BR, \
450 PARAVIRT_TYPE(GETREG) \ 449 PARAVIRT_TYPE(GETREG) \
451 + (reg)) \ 450 + (reg)) \
@@ -464,7 +463,6 @@ paravirt_set_rr0_to_rr4(unsigned long val0, unsigned long val1,
464 register unsigned long ia64_clobber1 asm ("r8"); \ 463 register unsigned long ia64_clobber1 asm ("r8"); \
465 register unsigned long ia64_clobber2 asm ("r9"); \ 464 register unsigned long ia64_clobber2 asm ("r9"); \
466 \ 465 \
467 BUILD_BUG_ON(!__builtin_constant_p(reg)); \
468 asm volatile (paravirt_alt_bundle(__PARAVIRT_BR, \ 466 asm volatile (paravirt_alt_bundle(__PARAVIRT_BR, \
469 PARAVIRT_TYPE(SETREG) \ 467 PARAVIRT_TYPE(SETREG) \
470 + (reg)) \ 468 + (reg)) \
diff --git a/arch/ia64/include/asm/smp.h b/arch/ia64/include/asm/smp.h
index 598408336251..d217d1d4e051 100644
--- a/arch/ia64/include/asm/smp.h
+++ b/arch/ia64/include/asm/smp.h
@@ -58,7 +58,7 @@ extern struct smp_boot_data {
58extern char no_int_routing __devinitdata; 58extern char no_int_routing __devinitdata;
59 59
60extern cpumask_t cpu_core_map[NR_CPUS]; 60extern cpumask_t cpu_core_map[NR_CPUS];
61DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 61DECLARE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map);
62extern int smp_num_siblings; 62extern int smp_num_siblings;
63extern void __iomem *ipi_base_addr; 63extern void __iomem *ipi_base_addr;
64extern unsigned char smp_int_redirect; 64extern unsigned char smp_int_redirect;
diff --git a/arch/ia64/include/asm/xen/events.h b/arch/ia64/include/asm/xen/events.h
index 73248781fba8..b8370c8b6198 100644
--- a/arch/ia64/include/asm/xen/events.h
+++ b/arch/ia64/include/asm/xen/events.h
@@ -36,14 +36,9 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
36 return !(ia64_psr(regs)->i); 36 return !(ia64_psr(regs)->i);
37} 37}
38 38
39static inline void xen_do_IRQ(int irq, struct pt_regs *regs) 39static inline void handle_irq(int irq, struct pt_regs *regs)
40{ 40{
41 struct pt_regs *old_regs;
42 old_regs = set_irq_regs(regs);
43 irq_enter();
44 __do_IRQ(irq); 41 __do_IRQ(irq);
45 irq_exit();
46 set_irq_regs(old_regs);
47} 42}
48#define irq_ctx_init(cpu) do { } while (0) 43#define irq_ctx_init(cpu) do { } while (0)
49 44
diff --git a/arch/ia64/kernel/cyclone.c b/arch/ia64/kernel/cyclone.c
index 790ef0d87e12..71e35864d2e2 100644
--- a/arch/ia64/kernel/cyclone.c
+++ b/arch/ia64/kernel/cyclone.c
@@ -21,7 +21,7 @@ void __init cyclone_setup(void)
21 21
22static void __iomem *cyclone_mc; 22static void __iomem *cyclone_mc;
23 23
24static cycle_t read_cyclone(void) 24static cycle_t read_cyclone(struct clocksource *cs)
25{ 25{
26 return (cycle_t)readq((void __iomem *)cyclone_mc); 26 return (cycle_t)readq((void __iomem *)cyclone_mc);
27} 27}
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c
index 573f02c39a00..285aae8431c6 100644
--- a/arch/ia64/kernel/pci-swiotlb.c
+++ b/arch/ia64/kernel/pci-swiotlb.c
@@ -16,7 +16,7 @@ EXPORT_SYMBOL(swiotlb);
16static void *ia64_swiotlb_alloc_coherent(struct device *dev, size_t size, 16static void *ia64_swiotlb_alloc_coherent(struct device *dev, size_t size,
17 dma_addr_t *dma_handle, gfp_t gfp) 17 dma_addr_t *dma_handle, gfp_t gfp)
18{ 18{
19 if (dev->coherent_dma_mask != DMA_64BIT_MASK) 19 if (dev->coherent_dma_mask != DMA_BIT_MASK(64))
20 gfp |= GFP_DMA; 20 gfp |= GFP_DMA;
21 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp); 21 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp);
22} 22}
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c
index 2ea4199d9c57..5230eaafd83f 100644
--- a/arch/ia64/kernel/smp.c
+++ b/arch/ia64/kernel/smp.c
@@ -225,6 +225,7 @@ smp_send_reschedule (int cpu)
225{ 225{
226 platform_send_ipi(cpu, IA64_IPI_RESCHEDULE, IA64_IPI_DM_INT, 0); 226 platform_send_ipi(cpu, IA64_IPI_RESCHEDULE, IA64_IPI_DM_INT, 0);
227} 227}
228EXPORT_SYMBOL_GPL(smp_send_reschedule);
228 229
229/* 230/*
230 * Called with preemption disabled. 231 * Called with preemption disabled.
@@ -300,15 +301,12 @@ smp_flush_tlb_mm (struct mm_struct *mm)
300 return; 301 return;
301 } 302 }
302 303
304 smp_call_function_mask(mm->cpu_vm_mask,
305 (void (*)(void *))local_finish_flush_tlb_mm, mm, 1);
306 local_irq_disable();
307 local_finish_flush_tlb_mm(mm);
308 local_irq_enable();
303 preempt_enable(); 309 preempt_enable();
304 /*
305 * We could optimize this further by using mm->cpu_vm_mask to track which CPUs
306 * have been running in the address space. It's not clear that this is worth the
307 * trouble though: to avoid races, we have to raise the IPI on the target CPU
308 * anyhow, and once a CPU is interrupted, the cost of local_flush_tlb_all() is
309 * rather trivial.
310 */
311 on_each_cpu((void (*)(void *))local_finish_flush_tlb_mm, mm, 1);
312} 310}
313 311
314void arch_send_call_function_single_ipi(int cpu) 312void arch_send_call_function_single_ipi(int cpu)
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 641c8b61c4f1..604c1a35db33 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -33,7 +33,7 @@
33 33
34#include "fsyscall_gtod_data.h" 34#include "fsyscall_gtod_data.h"
35 35
36static cycle_t itc_get_cycles(void); 36static cycle_t itc_get_cycles(struct clocksource *cs);
37 37
38struct fsyscall_gtod_data_t fsyscall_gtod_data = { 38struct fsyscall_gtod_data_t fsyscall_gtod_data = {
39 .lock = SEQLOCK_UNLOCKED, 39 .lock = SEQLOCK_UNLOCKED,
@@ -383,7 +383,7 @@ ia64_init_itm (void)
383 } 383 }
384} 384}
385 385
386static cycle_t itc_get_cycles(void) 386static cycle_t itc_get_cycles(struct clocksource *cs)
387{ 387{
388 u64 lcycle, now, ret; 388 u64 lcycle, now, ret;
389 389
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 28af6a731bb8..d20a5db4c4dd 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -610,20 +610,22 @@ static int __vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
610 int r; 610 int r;
611 611
612again: 612again:
613 preempt_disable();
614 local_irq_disable();
615
616 if (signal_pending(current)) { 613 if (signal_pending(current)) {
617 local_irq_enable();
618 preempt_enable();
619 r = -EINTR; 614 r = -EINTR;
620 kvm_run->exit_reason = KVM_EXIT_INTR; 615 kvm_run->exit_reason = KVM_EXIT_INTR;
621 goto out; 616 goto out;
622 } 617 }
623 618
619 /*
620 * down_read() may sleep and return with interrupts enabled
621 */
622 down_read(&vcpu->kvm->slots_lock);
623
624 preempt_disable();
625 local_irq_disable();
626
624 vcpu->guest_mode = 1; 627 vcpu->guest_mode = 1;
625 kvm_guest_enter(); 628 kvm_guest_enter();
626 down_read(&vcpu->kvm->slots_lock);
627 r = vti_vcpu_run(vcpu, kvm_run); 629 r = vti_vcpu_run(vcpu, kvm_run);
628 if (r < 0) { 630 if (r < 0) {
629 local_irq_enable(); 631 local_irq_enable();
diff --git a/arch/ia64/sn/kernel/sn2/timer.c b/arch/ia64/sn/kernel/sn2/timer.c
index cf67fc562054..21d6f09e3447 100644
--- a/arch/ia64/sn/kernel/sn2/timer.c
+++ b/arch/ia64/sn/kernel/sn2/timer.c
@@ -23,7 +23,7 @@
23 23
24extern unsigned long sn_rtc_cycles_per_second; 24extern unsigned long sn_rtc_cycles_per_second;
25 25
26static cycle_t read_sn2(void) 26static cycle_t read_sn2(struct clocksource *cs)
27{ 27{
28 return (cycle_t)readq(RTC_COUNTER_ADDR); 28 return (cycle_t)readq(RTC_COUNTER_ADDR);
29} 29}
diff --git a/arch/ia64/xen/xensetup.S b/arch/ia64/xen/xensetup.S
index 28fed1fcc079..aff8346ea193 100644
--- a/arch/ia64/xen/xensetup.S
+++ b/arch/ia64/xen/xensetup.S
@@ -54,8 +54,6 @@ END(startup_xen)
54 54
55#define isBP p3 // are we the Bootstrap Processor? 55#define isBP p3 // are we the Bootstrap Processor?
56 56
57 .text
58
59GLOBAL_ENTRY(xen_setup_hook) 57GLOBAL_ENTRY(xen_setup_hook)
60 mov r8=XEN_PV_DOMAIN_ASM 58 mov r8=XEN_PV_DOMAIN_ASM
61(isBP) movl r9=xen_domain_type;; 59(isBP) movl r9=xen_domain_type;;
diff --git a/arch/m32r/boot/compressed/Makefile b/arch/m32r/boot/compressed/Makefile
index d908e1d3c07f..560484ae35ec 100644
--- a/arch/m32r/boot/compressed/Makefile
+++ b/arch/m32r/boot/compressed/Makefile
@@ -6,7 +6,6 @@
6 6
7targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o \ 7targets := vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o \
8 piggy.o vmlinux.lds 8 piggy.o vmlinux.lds
9EXTRA_AFLAGS := -traditional
10 9
11OBJECTS = $(obj)/head.o $(obj)/misc.o 10OBJECTS = $(obj)/head.o $(obj)/misc.o
12 11
diff --git a/include/asm-m32r/Kbuild b/arch/m32r/include/asm/Kbuild
index c68e1680da01..c68e1680da01 100644
--- a/include/asm-m32r/Kbuild
+++ b/arch/m32r/include/asm/Kbuild
diff --git a/include/asm-m32r/addrspace.h b/arch/m32r/include/asm/addrspace.h
index 81782c122da4..81782c122da4 100644
--- a/include/asm-m32r/addrspace.h
+++ b/arch/m32r/include/asm/addrspace.h
diff --git a/include/asm-m32r/assembler.h b/arch/m32r/include/asm/assembler.h
index 26351539b5ff..728799fc70aa 100644
--- a/include/asm-m32r/assembler.h
+++ b/arch/m32r/include/asm/assembler.h
@@ -9,14 +9,15 @@
9 * This file contains M32R architecture specific macro definitions. 9 * This file contains M32R architecture specific macro definitions.
10 */ 10 */
11 11
12#include <linux/stringify.h>
13
14#undef __STR
12 15
13#ifndef __STR
14#ifdef __ASSEMBLY__ 16#ifdef __ASSEMBLY__
15#define __STR(x) x 17#define __STR(x) x
16#else 18#else
17#define __STR(x) #x 19#define __STR(x) __stringify(x)
18#endif 20#endif
19#endif /* __STR */
20 21
21#ifdef CONFIG_SMP 22#ifdef CONFIG_SMP
22#define M32R_LOCK __STR(lock) 23#define M32R_LOCK __STR(lock)
diff --git a/include/asm-m32r/atomic.h b/arch/m32r/include/asm/atomic.h
index 2eed30f84080..2eed30f84080 100644
--- a/include/asm-m32r/atomic.h
+++ b/arch/m32r/include/asm/atomic.h
diff --git a/include/asm-m32r/auxvec.h b/arch/m32r/include/asm/auxvec.h
index f76dcc860fae..f76dcc860fae 100644
--- a/include/asm-m32r/auxvec.h
+++ b/arch/m32r/include/asm/auxvec.h
diff --git a/include/asm-m32r/bitops.h b/arch/m32r/include/asm/bitops.h
index aaddf0d57603..aaddf0d57603 100644
--- a/include/asm-m32r/bitops.h
+++ b/arch/m32r/include/asm/bitops.h
diff --git a/include/asm-m32r/bug.h b/arch/m32r/include/asm/bug.h
index 4cc0462c15b8..4cc0462c15b8 100644
--- a/include/asm-m32r/bug.h
+++ b/arch/m32r/include/asm/bug.h
diff --git a/include/asm-m32r/bugs.h b/arch/m32r/include/asm/bugs.h
index f77214eff136..f77214eff136 100644
--- a/include/asm-m32r/bugs.h
+++ b/arch/m32r/include/asm/bugs.h
diff --git a/include/asm-m32r/byteorder.h b/arch/m32r/include/asm/byteorder.h
index 21855d8b028b..21855d8b028b 100644
--- a/include/asm-m32r/byteorder.h
+++ b/arch/m32r/include/asm/byteorder.h
diff --git a/include/asm-m32r/cache.h b/arch/m32r/include/asm/cache.h
index 40b3ee98193d..40b3ee98193d 100644
--- a/include/asm-m32r/cache.h
+++ b/arch/m32r/include/asm/cache.h
diff --git a/include/asm-m32r/cachectl.h b/arch/m32r/include/asm/cachectl.h
index 2aab8f6fff41..2aab8f6fff41 100644
--- a/include/asm-m32r/cachectl.h
+++ b/arch/m32r/include/asm/cachectl.h
diff --git a/include/asm-m32r/cacheflush.h b/arch/m32r/include/asm/cacheflush.h
index 78587c958146..78587c958146 100644
--- a/include/asm-m32r/cacheflush.h
+++ b/arch/m32r/include/asm/cacheflush.h
diff --git a/include/asm-m32r/checksum.h b/arch/m32r/include/asm/checksum.h
index a7a7c4f44abe..a7a7c4f44abe 100644
--- a/include/asm-m32r/checksum.h
+++ b/arch/m32r/include/asm/checksum.h
diff --git a/include/asm-m32r/cputime.h b/arch/m32r/include/asm/cputime.h
index 0a47550df2b7..0a47550df2b7 100644
--- a/include/asm-m32r/cputime.h
+++ b/arch/m32r/include/asm/cputime.h
diff --git a/include/asm-m32r/current.h b/arch/m32r/include/asm/current.h
index 7859d864f2c2..7859d864f2c2 100644
--- a/include/asm-m32r/current.h
+++ b/arch/m32r/include/asm/current.h
diff --git a/include/asm-m32r/delay.h b/arch/m32r/include/asm/delay.h
index 9dd9e999ea69..9dd9e999ea69 100644
--- a/include/asm-m32r/delay.h
+++ b/arch/m32r/include/asm/delay.h
diff --git a/include/asm-m32r/device.h b/arch/m32r/include/asm/device.h
index d8f9872b0e2d..d8f9872b0e2d 100644
--- a/include/asm-m32r/device.h
+++ b/arch/m32r/include/asm/device.h
diff --git a/include/asm-m32r/div64.h b/arch/m32r/include/asm/div64.h
index 6cd978cefb28..6cd978cefb28 100644
--- a/include/asm-m32r/div64.h
+++ b/arch/m32r/include/asm/div64.h
diff --git a/include/asm-m32r/dma.h b/arch/m32r/include/asm/dma.h
index 52f6a22dd232..52f6a22dd232 100644
--- a/include/asm-m32r/dma.h
+++ b/arch/m32r/include/asm/dma.h
diff --git a/include/asm-m32r/elf.h b/arch/m32r/include/asm/elf.h
index 0cc34c94bf2b..0cc34c94bf2b 100644
--- a/include/asm-m32r/elf.h
+++ b/arch/m32r/include/asm/elf.h
diff --git a/include/asm-m32r/emergency-restart.h b/arch/m32r/include/asm/emergency-restart.h
index 108d8c48e42e..108d8c48e42e 100644
--- a/include/asm-m32r/emergency-restart.h
+++ b/arch/m32r/include/asm/emergency-restart.h
diff --git a/include/asm-m32r/errno.h b/arch/m32r/include/asm/errno.h
index 777149262aad..777149262aad 100644
--- a/include/asm-m32r/errno.h
+++ b/arch/m32r/include/asm/errno.h
diff --git a/include/asm-m32r/fb.h b/arch/m32r/include/asm/fb.h
index d92e99cd8c8a..d92e99cd8c8a 100644
--- a/include/asm-m32r/fb.h
+++ b/arch/m32r/include/asm/fb.h
diff --git a/include/asm-m32r/fcntl.h b/arch/m32r/include/asm/fcntl.h
index 46ab12db5739..46ab12db5739 100644
--- a/include/asm-m32r/fcntl.h
+++ b/arch/m32r/include/asm/fcntl.h
diff --git a/include/asm-m32r/flat.h b/arch/m32r/include/asm/flat.h
index d851cf0c4aa5..d851cf0c4aa5 100644
--- a/include/asm-m32r/flat.h
+++ b/arch/m32r/include/asm/flat.h
diff --git a/include/asm-m32r/ftrace.h b/arch/m32r/include/asm/ftrace.h
index 40a8c178f10d..40a8c178f10d 100644
--- a/include/asm-m32r/ftrace.h
+++ b/arch/m32r/include/asm/ftrace.h
diff --git a/include/asm-m32r/futex.h b/arch/m32r/include/asm/futex.h
index 6a332a9f099c..6a332a9f099c 100644
--- a/include/asm-m32r/futex.h
+++ b/arch/m32r/include/asm/futex.h
diff --git a/include/asm-m32r/hardirq.h b/arch/m32r/include/asm/hardirq.h
index cb8aa762f235..cb8aa762f235 100644
--- a/include/asm-m32r/hardirq.h
+++ b/arch/m32r/include/asm/hardirq.h
diff --git a/include/asm-m32r/hw_irq.h b/arch/m32r/include/asm/hw_irq.h
index 7138537cda03..7138537cda03 100644
--- a/include/asm-m32r/hw_irq.h
+++ b/arch/m32r/include/asm/hw_irq.h
diff --git a/include/asm-m32r/io.h b/arch/m32r/include/asm/io.h
index d06933bd6318..d06933bd6318 100644
--- a/include/asm-m32r/io.h
+++ b/arch/m32r/include/asm/io.h
diff --git a/include/asm-m32r/ioctl.h b/arch/m32r/include/asm/ioctl.h
index b279fe06dfe5..b279fe06dfe5 100644
--- a/include/asm-m32r/ioctl.h
+++ b/arch/m32r/include/asm/ioctl.h
diff --git a/include/asm-m32r/ioctls.h b/arch/m32r/include/asm/ioctls.h
index b9f54bb5d7cf..b9f54bb5d7cf 100644
--- a/include/asm-m32r/ioctls.h
+++ b/arch/m32r/include/asm/ioctls.h
diff --git a/include/asm-m32r/ipcbuf.h b/arch/m32r/include/asm/ipcbuf.h
index 8d2d7c8ffdb0..8d2d7c8ffdb0 100644
--- a/include/asm-m32r/ipcbuf.h
+++ b/arch/m32r/include/asm/ipcbuf.h
diff --git a/include/asm-m32r/irq.h b/arch/m32r/include/asm/irq.h
index 242028b4d86a..242028b4d86a 100644
--- a/include/asm-m32r/irq.h
+++ b/arch/m32r/include/asm/irq.h
diff --git a/include/asm-m32r/irq_regs.h b/arch/m32r/include/asm/irq_regs.h
index 3dd9c0b70270..3dd9c0b70270 100644
--- a/include/asm-m32r/irq_regs.h
+++ b/arch/m32r/include/asm/irq_regs.h
diff --git a/include/asm-m32r/kdebug.h b/arch/m32r/include/asm/kdebug.h
index 6ece1b037665..6ece1b037665 100644
--- a/include/asm-m32r/kdebug.h
+++ b/arch/m32r/include/asm/kdebug.h
diff --git a/include/asm-m32r/kmap_types.h b/arch/m32r/include/asm/kmap_types.h
index fa94dc6410ea..fa94dc6410ea 100644
--- a/include/asm-m32r/kmap_types.h
+++ b/arch/m32r/include/asm/kmap_types.h
diff --git a/include/asm-m32r/linkage.h b/arch/m32r/include/asm/linkage.h
index a9fb151cf648..a9fb151cf648 100644
--- a/include/asm-m32r/linkage.h
+++ b/arch/m32r/include/asm/linkage.h
diff --git a/include/asm-m32r/local.h b/arch/m32r/include/asm/local.h
index 22256d138630..22256d138630 100644
--- a/include/asm-m32r/local.h
+++ b/arch/m32r/include/asm/local.h
diff --git a/include/asm-m32r/m32102.h b/arch/m32r/include/asm/m32102.h
index 52807f8db166..52807f8db166 100644
--- a/include/asm-m32r/m32102.h
+++ b/arch/m32r/include/asm/m32102.h
diff --git a/include/asm-m32r/m32104ut/m32104ut_pld.h b/arch/m32r/include/asm/m32104ut/m32104ut_pld.h
index 2dc89d68b6d9..2dc89d68b6d9 100644
--- a/include/asm-m32r/m32104ut/m32104ut_pld.h
+++ b/arch/m32r/include/asm/m32104ut/m32104ut_pld.h
diff --git a/include/asm-m32r/m32700ut/m32700ut_lan.h b/arch/m32r/include/asm/m32700ut/m32700ut_lan.h
index aae810a4fb2c..aae810a4fb2c 100644
--- a/include/asm-m32r/m32700ut/m32700ut_lan.h
+++ b/arch/m32r/include/asm/m32700ut/m32700ut_lan.h
diff --git a/include/asm-m32r/m32700ut/m32700ut_lcd.h b/arch/m32r/include/asm/m32700ut/m32700ut_lcd.h
index 4c2489079788..4c2489079788 100644
--- a/include/asm-m32r/m32700ut/m32700ut_lcd.h
+++ b/arch/m32r/include/asm/m32700ut/m32700ut_lcd.h
diff --git a/include/asm-m32r/m32700ut/m32700ut_pld.h b/arch/m32r/include/asm/m32700ut/m32700ut_pld.h
index 57623beb44cb..57623beb44cb 100644
--- a/include/asm-m32r/m32700ut/m32700ut_pld.h
+++ b/arch/m32r/include/asm/m32700ut/m32700ut_pld.h
diff --git a/include/asm-m32r/m32r.h b/arch/m32r/include/asm/m32r.h
index 214b44b40757..214b44b40757 100644
--- a/include/asm-m32r/m32r.h
+++ b/arch/m32r/include/asm/m32r.h
diff --git a/include/asm-m32r/m32r_mp_fpga.h b/arch/m32r/include/asm/m32r_mp_fpga.h
index 976d2b995919..976d2b995919 100644
--- a/include/asm-m32r/m32r_mp_fpga.h
+++ b/arch/m32r/include/asm/m32r_mp_fpga.h
diff --git a/include/asm-m32r/mappi2/mappi2_pld.h b/arch/m32r/include/asm/mappi2/mappi2_pld.h
index 2624c9db7255..2624c9db7255 100644
--- a/include/asm-m32r/mappi2/mappi2_pld.h
+++ b/arch/m32r/include/asm/mappi2/mappi2_pld.h
diff --git a/include/asm-m32r/mappi3/mappi3_pld.h b/arch/m32r/include/asm/mappi3/mappi3_pld.h
index 451c40ee70af..451c40ee70af 100644
--- a/include/asm-m32r/mappi3/mappi3_pld.h
+++ b/arch/m32r/include/asm/mappi3/mappi3_pld.h
diff --git a/include/asm-m32r/mc146818rtc.h b/arch/m32r/include/asm/mc146818rtc.h
index aa1b7bf84f51..aa1b7bf84f51 100644
--- a/include/asm-m32r/mc146818rtc.h
+++ b/arch/m32r/include/asm/mc146818rtc.h
diff --git a/include/asm-m32r/mman.h b/arch/m32r/include/asm/mman.h
index 516a8973b130..516a8973b130 100644
--- a/include/asm-m32r/mman.h
+++ b/arch/m32r/include/asm/mman.h
diff --git a/include/asm-m32r/mmu.h b/arch/m32r/include/asm/mmu.h
index 150cb92bb666..150cb92bb666 100644
--- a/include/asm-m32r/mmu.h
+++ b/arch/m32r/include/asm/mmu.h
diff --git a/include/asm-m32r/mmu_context.h b/arch/m32r/include/asm/mmu_context.h
index 91909e5dd9d0..91909e5dd9d0 100644
--- a/include/asm-m32r/mmu_context.h
+++ b/arch/m32r/include/asm/mmu_context.h
diff --git a/include/asm-m32r/mmzone.h b/arch/m32r/include/asm/mmzone.h
index 9f3b5accda88..9f3b5accda88 100644
--- a/include/asm-m32r/mmzone.h
+++ b/arch/m32r/include/asm/mmzone.h
diff --git a/include/asm-m32r/module.h b/arch/m32r/include/asm/module.h
index eb73ee011215..eb73ee011215 100644
--- a/include/asm-m32r/module.h
+++ b/arch/m32r/include/asm/module.h
diff --git a/include/asm-m32r/msgbuf.h b/arch/m32r/include/asm/msgbuf.h
index 0d5a877b813e..0d5a877b813e 100644
--- a/include/asm-m32r/msgbuf.h
+++ b/arch/m32r/include/asm/msgbuf.h
diff --git a/include/asm-m32r/mutex.h b/arch/m32r/include/asm/mutex.h
index 458c1f7fbc18..458c1f7fbc18 100644
--- a/include/asm-m32r/mutex.h
+++ b/arch/m32r/include/asm/mutex.h
diff --git a/include/asm-m32r/opsput/opsput_lan.h b/arch/m32r/include/asm/opsput/opsput_lan.h
index a5f18dd1ab20..a5f18dd1ab20 100644
--- a/include/asm-m32r/opsput/opsput_lan.h
+++ b/arch/m32r/include/asm/opsput/opsput_lan.h
diff --git a/include/asm-m32r/opsput/opsput_lcd.h b/arch/m32r/include/asm/opsput/opsput_lcd.h
index 369c9f0832a6..369c9f0832a6 100644
--- a/include/asm-m32r/opsput/opsput_lcd.h
+++ b/arch/m32r/include/asm/opsput/opsput_lcd.h
diff --git a/include/asm-m32r/opsput/opsput_pld.h b/arch/m32r/include/asm/opsput/opsput_pld.h
index 3f11ea1aac2d..3f11ea1aac2d 100644
--- a/include/asm-m32r/opsput/opsput_pld.h
+++ b/arch/m32r/include/asm/opsput/opsput_pld.h
diff --git a/include/asm-m32r/page.h b/arch/m32r/include/asm/page.h
index c9333089fe11..c9333089fe11 100644
--- a/include/asm-m32r/page.h
+++ b/arch/m32r/include/asm/page.h
diff --git a/include/asm-m32r/param.h b/arch/m32r/include/asm/param.h
index 94c770196048..94c770196048 100644
--- a/include/asm-m32r/param.h
+++ b/arch/m32r/include/asm/param.h
diff --git a/include/asm-m32r/pci.h b/arch/m32r/include/asm/pci.h
index fe785d167db6..fe785d167db6 100644
--- a/include/asm-m32r/pci.h
+++ b/arch/m32r/include/asm/pci.h
diff --git a/include/asm-m32r/percpu.h b/arch/m32r/include/asm/percpu.h
index e3169301fe66..e3169301fe66 100644
--- a/include/asm-m32r/percpu.h
+++ b/arch/m32r/include/asm/percpu.h
diff --git a/include/asm-m32r/pgalloc.h b/arch/m32r/include/asm/pgalloc.h
index f11a2b909cdb..f11a2b909cdb 100644
--- a/include/asm-m32r/pgalloc.h
+++ b/arch/m32r/include/asm/pgalloc.h
diff --git a/include/asm-m32r/pgtable-2level.h b/arch/m32r/include/asm/pgtable-2level.h
index bca3475f9595..bca3475f9595 100644
--- a/include/asm-m32r/pgtable-2level.h
+++ b/arch/m32r/include/asm/pgtable-2level.h
diff --git a/include/asm-m32r/pgtable.h b/arch/m32r/include/asm/pgtable.h
index e6359c566b50..e6359c566b50 100644
--- a/include/asm-m32r/pgtable.h
+++ b/arch/m32r/include/asm/pgtable.h
diff --git a/include/asm-m32r/poll.h b/arch/m32r/include/asm/poll.h
index c98509d3149e..c98509d3149e 100644
--- a/include/asm-m32r/poll.h
+++ b/arch/m32r/include/asm/poll.h
diff --git a/include/asm-m32r/posix_types.h b/arch/m32r/include/asm/posix_types.h
index b309c5858637..b309c5858637 100644
--- a/include/asm-m32r/posix_types.h
+++ b/arch/m32r/include/asm/posix_types.h
diff --git a/include/asm-m32r/processor.h b/arch/m32r/include/asm/processor.h
index 1a997fc148a2..1a997fc148a2 100644
--- a/include/asm-m32r/processor.h
+++ b/arch/m32r/include/asm/processor.h
diff --git a/include/asm-m32r/ptrace.h b/arch/m32r/include/asm/ptrace.h
index a0755b982028..a0755b982028 100644
--- a/include/asm-m32r/ptrace.h
+++ b/arch/m32r/include/asm/ptrace.h
diff --git a/include/asm-m32r/resource.h b/arch/m32r/include/asm/resource.h
index b1ce766e37a0..b1ce766e37a0 100644
--- a/include/asm-m32r/resource.h
+++ b/arch/m32r/include/asm/resource.h
diff --git a/include/asm-m32r/rtc.h b/arch/m32r/include/asm/rtc.h
index 0340633f3f4d..0340633f3f4d 100644
--- a/include/asm-m32r/rtc.h
+++ b/arch/m32r/include/asm/rtc.h
diff --git a/include/asm-m32r/s1d13806.h b/arch/m32r/include/asm/s1d13806.h
index 248d36a82d79..248d36a82d79 100644
--- a/include/asm-m32r/s1d13806.h
+++ b/arch/m32r/include/asm/s1d13806.h
diff --git a/include/asm-m32r/scatterlist.h b/arch/m32r/include/asm/scatterlist.h
index 1ed372c73d0b..1ed372c73d0b 100644
--- a/include/asm-m32r/scatterlist.h
+++ b/arch/m32r/include/asm/scatterlist.h
diff --git a/include/asm-m32r/sections.h b/arch/m32r/include/asm/sections.h
index 5e5d21c4908a..5e5d21c4908a 100644
--- a/include/asm-m32r/sections.h
+++ b/arch/m32r/include/asm/sections.h
diff --git a/include/asm-m32r/segment.h b/arch/m32r/include/asm/segment.h
index 42b11aeb3249..42b11aeb3249 100644
--- a/include/asm-m32r/segment.h
+++ b/arch/m32r/include/asm/segment.h
diff --git a/include/asm-m32r/sembuf.h b/arch/m32r/include/asm/sembuf.h
index c9873d6890e2..c9873d6890e2 100644
--- a/include/asm-m32r/sembuf.h
+++ b/arch/m32r/include/asm/sembuf.h
diff --git a/include/asm-m32r/serial.h b/arch/m32r/include/asm/serial.h
index 5ac244c72f15..5ac244c72f15 100644
--- a/include/asm-m32r/serial.h
+++ b/arch/m32r/include/asm/serial.h
diff --git a/include/asm-m32r/setup.h b/arch/m32r/include/asm/setup.h
index c637ab992394..c637ab992394 100644
--- a/include/asm-m32r/setup.h
+++ b/arch/m32r/include/asm/setup.h
diff --git a/include/asm-m32r/shmbuf.h b/arch/m32r/include/asm/shmbuf.h
index b0cdf0aa7d65..b0cdf0aa7d65 100644
--- a/include/asm-m32r/shmbuf.h
+++ b/arch/m32r/include/asm/shmbuf.h
diff --git a/include/asm-m32r/shmparam.h b/arch/m32r/include/asm/shmparam.h
index 35986d81a528..35986d81a528 100644
--- a/include/asm-m32r/shmparam.h
+++ b/arch/m32r/include/asm/shmparam.h
diff --git a/include/asm-m32r/sigcontext.h b/arch/m32r/include/asm/sigcontext.h
index da4a9c36d09b..da4a9c36d09b 100644
--- a/include/asm-m32r/sigcontext.h
+++ b/arch/m32r/include/asm/sigcontext.h
diff --git a/include/asm-m32r/siginfo.h b/arch/m32r/include/asm/siginfo.h
index 7d9cd9ebfd0e..7d9cd9ebfd0e 100644
--- a/include/asm-m32r/siginfo.h
+++ b/arch/m32r/include/asm/siginfo.h
diff --git a/include/asm-m32r/signal.h b/arch/m32r/include/asm/signal.h
index 1a607066bc64..1a607066bc64 100644
--- a/include/asm-m32r/signal.h
+++ b/arch/m32r/include/asm/signal.h
diff --git a/include/asm-m32r/smp.h b/arch/m32r/include/asm/smp.h
index b96a6d2ffbc3..b96a6d2ffbc3 100644
--- a/include/asm-m32r/smp.h
+++ b/arch/m32r/include/asm/smp.h
diff --git a/include/asm-m32r/socket.h b/arch/m32r/include/asm/socket.h
index be7ed589af5c..be7ed589af5c 100644
--- a/include/asm-m32r/socket.h
+++ b/arch/m32r/include/asm/socket.h
diff --git a/include/asm-m32r/sockios.h b/arch/m32r/include/asm/sockios.h
index 6c1fb9b43bdb..6c1fb9b43bdb 100644
--- a/include/asm-m32r/sockios.h
+++ b/arch/m32r/include/asm/sockios.h
diff --git a/include/asm-m32r/spinlock.h b/arch/m32r/include/asm/spinlock.h
index dded923883b2..dded923883b2 100644
--- a/include/asm-m32r/spinlock.h
+++ b/arch/m32r/include/asm/spinlock.h
diff --git a/include/asm-m32r/spinlock_types.h b/arch/m32r/include/asm/spinlock_types.h
index 83f52105c0e4..83f52105c0e4 100644
--- a/include/asm-m32r/spinlock_types.h
+++ b/arch/m32r/include/asm/spinlock_types.h
diff --git a/include/asm-m32r/stat.h b/arch/m32r/include/asm/stat.h
index da4518f82d6d..da4518f82d6d 100644
--- a/include/asm-m32r/stat.h
+++ b/arch/m32r/include/asm/stat.h
diff --git a/include/asm-m32r/statfs.h b/arch/m32r/include/asm/statfs.h
index 6eb4c6007e6b..6eb4c6007e6b 100644
--- a/include/asm-m32r/statfs.h
+++ b/arch/m32r/include/asm/statfs.h
diff --git a/include/asm-m32r/string.h b/arch/m32r/include/asm/string.h
index e61e2b0bfc1f..e61e2b0bfc1f 100644
--- a/include/asm-m32r/string.h
+++ b/arch/m32r/include/asm/string.h
diff --git a/include/asm-m32r/swab.h b/arch/m32r/include/asm/swab.h
index 54dab001d6d1..54dab001d6d1 100644
--- a/include/asm-m32r/swab.h
+++ b/arch/m32r/include/asm/swab.h
diff --git a/include/asm-m32r/syscall.h b/arch/m32r/include/asm/syscall.h
index 25f316f2b78d..25f316f2b78d 100644
--- a/include/asm-m32r/syscall.h
+++ b/arch/m32r/include/asm/syscall.h
diff --git a/include/asm-m32r/system.h b/arch/m32r/include/asm/system.h
index c980f5ba8de7..c980f5ba8de7 100644
--- a/include/asm-m32r/system.h
+++ b/arch/m32r/include/asm/system.h
diff --git a/include/asm-m32r/termbits.h b/arch/m32r/include/asm/termbits.h
index bc104008b55b..bc104008b55b 100644
--- a/include/asm-m32r/termbits.h
+++ b/arch/m32r/include/asm/termbits.h
diff --git a/include/asm-m32r/termios.h b/arch/m32r/include/asm/termios.h
index 93ce79fd342a..93ce79fd342a 100644
--- a/include/asm-m32r/termios.h
+++ b/arch/m32r/include/asm/termios.h
diff --git a/include/asm-m32r/thread_info.h b/arch/m32r/include/asm/thread_info.h
index 8589d462df27..8589d462df27 100644
--- a/include/asm-m32r/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
diff --git a/include/asm-m32r/timex.h b/arch/m32r/include/asm/timex.h
index bb9fe4feb12d..bb9fe4feb12d 100644
--- a/include/asm-m32r/timex.h
+++ b/arch/m32r/include/asm/timex.h
diff --git a/include/asm-m32r/tlb.h b/arch/m32r/include/asm/tlb.h
index c7ebd8d48f3b..c7ebd8d48f3b 100644
--- a/include/asm-m32r/tlb.h
+++ b/arch/m32r/include/asm/tlb.h
diff --git a/include/asm-m32r/tlbflush.h b/arch/m32r/include/asm/tlbflush.h
index 0ef95307784e..0ef95307784e 100644
--- a/include/asm-m32r/tlbflush.h
+++ b/arch/m32r/include/asm/tlbflush.h
diff --git a/include/asm-m32r/topology.h b/arch/m32r/include/asm/topology.h
index d607eb32bd7e..d607eb32bd7e 100644
--- a/include/asm-m32r/topology.h
+++ b/arch/m32r/include/asm/topology.h
diff --git a/include/asm-m32r/types.h b/arch/m32r/include/asm/types.h
index bc9f7fff0ac3..bc9f7fff0ac3 100644
--- a/include/asm-m32r/types.h
+++ b/arch/m32r/include/asm/types.h
diff --git a/include/asm-m32r/uaccess.h b/arch/m32r/include/asm/uaccess.h
index 1c7047bea200..1c7047bea200 100644
--- a/include/asm-m32r/uaccess.h
+++ b/arch/m32r/include/asm/uaccess.h
diff --git a/include/asm-m32r/ucontext.h b/arch/m32r/include/asm/ucontext.h
index 09324741eec3..09324741eec3 100644
--- a/include/asm-m32r/ucontext.h
+++ b/arch/m32r/include/asm/ucontext.h
diff --git a/include/asm-m32r/unaligned.h b/arch/m32r/include/asm/unaligned.h
index 377eb20d1ec6..377eb20d1ec6 100644
--- a/include/asm-m32r/unaligned.h
+++ b/arch/m32r/include/asm/unaligned.h
diff --git a/include/asm-m32r/unistd.h b/arch/m32r/include/asm/unistd.h
index cf701c933249..cf701c933249 100644
--- a/include/asm-m32r/unistd.h
+++ b/arch/m32r/include/asm/unistd.h
diff --git a/include/asm-m32r/user.h b/arch/m32r/include/asm/user.h
index 03b3c11c2aff..03b3c11c2aff 100644
--- a/include/asm-m32r/user.h
+++ b/arch/m32r/include/asm/user.h
diff --git a/include/asm-m32r/vga.h b/arch/m32r/include/asm/vga.h
index a1b63061c06f..a1b63061c06f 100644
--- a/include/asm-m32r/vga.h
+++ b/arch/m32r/include/asm/vga.h
diff --git a/include/asm-m32r/xor.h b/arch/m32r/include/asm/xor.h
index 6d525259df3e..6d525259df3e 100644
--- a/include/asm-m32r/xor.h
+++ b/arch/m32r/include/asm/xor.h
diff --git a/arch/m32r/kernel/Makefile b/arch/m32r/kernel/Makefile
index 09200d4886e3..b1a4b6036591 100644
--- a/arch/m32r/kernel/Makefile
+++ b/arch/m32r/kernel/Makefile
@@ -9,5 +9,3 @@ obj-y := process.o entry.o traps.o align.o irq.o setup.o time.o \
9 9
10obj-$(CONFIG_SMP) += smp.o smpboot.o 10obj-$(CONFIG_SMP) += smp.o smpboot.o
11obj-$(CONFIG_MODULES) += module.o 11obj-$(CONFIG_MODULES) += module.o
12
13EXTRA_AFLAGS := -traditional
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index 90916067b9c1..0a7194439eb1 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -23,7 +23,7 @@ __INITDATA
23/* 23/*
24 * References to members of the boot_cpu_data structure. 24 * References to members of the boot_cpu_data structure.
25 */ 25 */
26.section .text.head, "ax" 26__HEAD
27 .global start_kernel 27 .global start_kernel
28 .global __bss_start 28 .global __bss_start
29 .global _end 29 .global _end
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 9db05df20c0e..4179adf6c624 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -27,7 +27,7 @@ SECTIONS
27 _text = .; /* Text and read-only data */ 27 _text = .; /* Text and read-only data */
28 .boot : { *(.boot) } = 0 28 .boot : { *(.boot) } = 0
29 .text : { 29 .text : {
30 *(.text.head) 30 HEAD_TEXT
31 TEXT_TEXT 31 TEXT_TEXT
32 SCHED_TEXT 32 SCHED_TEXT
33 LOCK_TEXT 33 LOCK_TEXT
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 23597beb66c1..0f69fa5ddf26 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:42 2008 4# Wed Apr 22 20:47:52 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -140,12 +151,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
140CONFIG_NEED_MULTIPLE_NODES=y 151CONFIG_NEED_MULTIPLE_NODES=y
141CONFIG_PAGEFLAGS_EXTENDED=y 152CONFIG_PAGEFLAGS_EXTENDED=y
142CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y 158CONFIG_UNEVICTABLE_LRU=y
159CONFIG_HAVE_MLOCK=y
160CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149 161
150# 162#
151# General setup 163# General setup
@@ -157,7 +169,7 @@ CONFIG_BINFMT_AOUT=m
157CONFIG_BINFMT_MISC=m 169CONFIG_BINFMT_MISC=m
158CONFIG_ZORRO=y 170CONFIG_ZORRO=y
159CONFIG_AMIGA_PCMCIA=y 171CONFIG_AMIGA_PCMCIA=y
160# CONFIG_HEARTBEAT is not set 172CONFIG_HEARTBEAT=y
161CONFIG_PROC_HARDWARE=y 173CONFIG_PROC_HARDWARE=y
162CONFIG_ISA=y 174CONFIG_ISA=y
163CONFIG_GENERIC_ISA_DMA=y 175CONFIG_GENERIC_ISA_DMA=y
@@ -184,7 +196,10 @@ CONFIG_INET=y
184# CONFIG_IP_MULTICAST is not set 196# CONFIG_IP_MULTICAST is not set
185# CONFIG_IP_ADVANCED_ROUTER is not set 197# CONFIG_IP_ADVANCED_ROUTER is not set
186CONFIG_IP_FIB_HASH=y 198CONFIG_IP_FIB_HASH=y
187# CONFIG_IP_PNP is not set 199CONFIG_IP_PNP=y
200# CONFIG_IP_PNP_DHCP is not set
201# CONFIG_IP_PNP_BOOTP is not set
202# CONFIG_IP_PNP_RARP is not set
188CONFIG_NET_IPIP=m 203CONFIG_NET_IPIP=m
189CONFIG_NET_IPGRE=m 204CONFIG_NET_IPGRE=m
190# CONFIG_ARPD is not set 205# CONFIG_ARPD is not set
@@ -258,6 +273,7 @@ CONFIG_NETFILTER_XTABLES=m
258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 273CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 274CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
260CONFIG_NETFILTER_XT_TARGET_DSCP=m 275CONFIG_NETFILTER_XT_TARGET_DSCP=m
276CONFIG_NETFILTER_XT_TARGET_HL=m
261CONFIG_NETFILTER_XT_TARGET_MARK=m 277CONFIG_NETFILTER_XT_TARGET_MARK=m
262CONFIG_NETFILTER_XT_TARGET_NFLOG=m 278CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 279CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -266,6 +282,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
266CONFIG_NETFILTER_XT_TARGET_TRACE=m 282CONFIG_NETFILTER_XT_TARGET_TRACE=m
267CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 283CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
268CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 284CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
285CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
269CONFIG_NETFILTER_XT_MATCH_COMMENT=m 286CONFIG_NETFILTER_XT_MATCH_COMMENT=m
270CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 287CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
271CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 288CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -276,6 +293,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
276CONFIG_NETFILTER_XT_MATCH_ESP=m 293CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 294CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
278CONFIG_NETFILTER_XT_MATCH_HELPER=m 295CONFIG_NETFILTER_XT_MATCH_HELPER=m
296CONFIG_NETFILTER_XT_MATCH_HL=m
279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 297CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
280CONFIG_NETFILTER_XT_MATCH_LENGTH=m 298CONFIG_NETFILTER_XT_MATCH_LENGTH=m
281CONFIG_NETFILTER_XT_MATCH_LIMIT=m 299CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -354,25 +372,20 @@ CONFIG_IP6_NF_MATCH_HL=m
354CONFIG_IP6_NF_MATCH_IPV6HEADER=m 372CONFIG_IP6_NF_MATCH_IPV6HEADER=m
355CONFIG_IP6_NF_MATCH_MH=m 373CONFIG_IP6_NF_MATCH_MH=m
356CONFIG_IP6_NF_MATCH_RT=m 374CONFIG_IP6_NF_MATCH_RT=m
375CONFIG_IP6_NF_TARGET_HL=m
357CONFIG_IP6_NF_TARGET_LOG=m 376CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m 377CONFIG_IP6_NF_FILTER=m
359CONFIG_IP6_NF_TARGET_REJECT=m 378CONFIG_IP6_NF_TARGET_REJECT=m
360CONFIG_IP6_NF_MANGLE=m 379CONFIG_IP6_NF_MANGLE=m
361CONFIG_IP6_NF_TARGET_HL=m
362CONFIG_IP6_NF_RAW=m 380CONFIG_IP6_NF_RAW=m
363CONFIG_IP_DCCP=m 381CONFIG_IP_DCCP=m
364CONFIG_INET_DCCP_DIAG=m 382CONFIG_INET_DCCP_DIAG=m
365CONFIG_IP_DCCP_ACKVEC=y
366 383
367# 384#
368# DCCP CCIDs Configuration (EXPERIMENTAL) 385# DCCP CCIDs Configuration (EXPERIMENTAL)
369# 386#
370CONFIG_IP_DCCP_CCID2=m
371# CONFIG_IP_DCCP_CCID2_DEBUG is not set 387# CONFIG_IP_DCCP_CCID2_DEBUG is not set
372CONFIG_IP_DCCP_CCID3=m 388# CONFIG_IP_DCCP_CCID3 is not set
373# CONFIG_IP_DCCP_CCID3_DEBUG is not set
374CONFIG_IP_DCCP_CCID3_RTO=100
375CONFIG_IP_DCCP_TFRC_LIB=m
376CONFIG_IP_SCTP=m 389CONFIG_IP_SCTP=m
377# CONFIG_SCTP_DBG_MSG is not set 390# CONFIG_SCTP_DBG_MSG is not set
378# CONFIG_SCTP_DBG_OBJCNT is not set 391# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -394,8 +407,10 @@ CONFIG_ATALK=m
394# CONFIG_LAPB is not set 407# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 408# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 409# CONFIG_WAN_ROUTER is not set
410# CONFIG_PHONET is not set
397# CONFIG_NET_SCHED is not set 411# CONFIG_NET_SCHED is not set
398CONFIG_NET_CLS_ROUTE=y 412CONFIG_NET_CLS_ROUTE=y
413# CONFIG_DCB is not set
399 414
400# 415#
401# Network testing 416# Network testing
@@ -406,8 +421,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 421# CONFIG_IRDA is not set
407# CONFIG_BT is not set 422# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 423# CONFIG_AF_RXRPC is not set
409# CONFIG_PHONET is not set
410# CONFIG_WIRELESS is not set 424# CONFIG_WIRELESS is not set
425# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 426# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 427# CONFIG_NET_9P is not set
413 428
@@ -453,15 +468,20 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
453CONFIG_ATA_OVER_ETH=m 468CONFIG_ATA_OVER_ETH=m
454# CONFIG_BLK_DEV_HD is not set 469# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 470CONFIG_MISC_DEVICES=y
456# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 471# CONFIG_ENCLOSURE_SERVICES is not set
458# CONFIG_C2PORT is not set 472# CONFIG_C2PORT is not set
473
474#
475# EEPROM support
476#
477# CONFIG_EEPROM_93CX6 is not set
459CONFIG_HAVE_IDE=y 478CONFIG_HAVE_IDE=y
460CONFIG_IDE=y 479CONFIG_IDE=y
461 480
462# 481#
463# Please see Documentation/ide/ide.txt for help/info on IDE drives 482# Please see Documentation/ide/ide.txt for help/info on IDE drives
464# 483#
484CONFIG_IDE_ATAPI=y
465# CONFIG_BLK_DEV_IDE_SATA is not set 485# CONFIG_BLK_DEV_IDE_SATA is not set
466CONFIG_IDE_GD=y 486CONFIG_IDE_GD=y
467CONFIG_IDE_GD_ATA=y 487CONFIG_IDE_GD_ATA=y
@@ -469,7 +489,6 @@ CONFIG_IDE_GD_ATA=y
469CONFIG_BLK_DEV_IDECD=y 489CONFIG_BLK_DEV_IDECD=y
470CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 490CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
471# CONFIG_BLK_DEV_IDETAPE is not set 491# CONFIG_BLK_DEV_IDETAPE is not set
472# CONFIG_BLK_DEV_IDESCSI is not set
473# CONFIG_IDE_TASK_IOCTL is not set 492# CONFIG_IDE_TASK_IOCTL is not set
474CONFIG_IDE_PROC_FS=y 493CONFIG_IDE_PROC_FS=y
475 494
@@ -478,7 +497,6 @@ CONFIG_IDE_PROC_FS=y
478# 497#
479# CONFIG_BLK_DEV_PLATFORM is not set 498# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_GAYLE=y 499CONFIG_BLK_DEV_GAYLE=y
481CONFIG_BLK_DEV_IDEDOUBLER=y
482CONFIG_BLK_DEV_BUDDHA=y 500CONFIG_BLK_DEV_BUDDHA=y
483# CONFIG_BLK_DEV_IDEDMA is not set 501# CONFIG_BLK_DEV_IDEDMA is not set
484 502
@@ -530,6 +548,8 @@ CONFIG_ISCSI_TCP=m
530# CONFIG_SCSI_AIC7XXX_OLD is not set 548# CONFIG_SCSI_AIC7XXX_OLD is not set
531# CONFIG_SCSI_ADVANSYS is not set 549# CONFIG_SCSI_ADVANSYS is not set
532# CONFIG_SCSI_IN2000 is not set 550# CONFIG_SCSI_IN2000 is not set
551# CONFIG_LIBFC is not set
552# CONFIG_LIBFCOE is not set
533# CONFIG_SCSI_DTC3280 is not set 553# CONFIG_SCSI_DTC3280 is not set
534# CONFIG_SCSI_FUTURE_DOMAIN is not set 554# CONFIG_SCSI_FUTURE_DOMAIN is not set
535# CONFIG_SCSI_GENERIC_NCR5380 is not set 555# CONFIG_SCSI_GENERIC_NCR5380 is not set
@@ -547,6 +567,7 @@ CONFIG_GVP11_SCSI=y
547CONFIG_SCSI_A4000T=y 567CONFIG_SCSI_A4000T=y
548CONFIG_SCSI_ZORRO7XX=y 568CONFIG_SCSI_ZORRO7XX=y
549# CONFIG_SCSI_DH is not set 569# CONFIG_SCSI_DH is not set
570# CONFIG_SCSI_OSD_INITIATOR is not set
550CONFIG_MD=y 571CONFIG_MD=y
551CONFIG_BLK_DEV_MD=m 572CONFIG_BLK_DEV_MD=m
552CONFIG_MD_LINEAR=m 573CONFIG_MD_LINEAR=m
@@ -554,7 +575,7 @@ CONFIG_MD_RAID0=m
554CONFIG_MD_RAID1=m 575CONFIG_MD_RAID1=m
555# CONFIG_MD_RAID10 is not set 576# CONFIG_MD_RAID10 is not set
556CONFIG_MD_RAID456=m 577CONFIG_MD_RAID456=m
557CONFIG_MD_RAID5_RESHAPE=y 578CONFIG_MD_RAID6_PQ=m
558# CONFIG_MD_MULTIPATH is not set 579# CONFIG_MD_MULTIPATH is not set
559# CONFIG_MD_FAULTY is not set 580# CONFIG_MD_FAULTY is not set
560CONFIG_BLK_DEV_DM=m 581CONFIG_BLK_DEV_DM=m
@@ -567,6 +588,7 @@ CONFIG_DM_MULTIPATH=m
567# CONFIG_DM_DELAY is not set 588# CONFIG_DM_DELAY is not set
568CONFIG_DM_UEVENT=y 589CONFIG_DM_UEVENT=y
569CONFIG_NETDEVICES=y 590CONFIG_NETDEVICES=y
591CONFIG_COMPAT_NET_DEV_OPS=y
570CONFIG_DUMMY=m 592CONFIG_DUMMY=m
571# CONFIG_BONDING is not set 593# CONFIG_BONDING is not set
572CONFIG_MACVLAN=m 594CONFIG_MACVLAN=m
@@ -577,14 +599,16 @@ CONFIG_VETH=m
577# CONFIG_PHYLIB is not set 599# CONFIG_PHYLIB is not set
578CONFIG_NET_ETHERNET=y 600CONFIG_NET_ETHERNET=y
579# CONFIG_MII is not set 601# CONFIG_MII is not set
580CONFIG_ARIADNE=m 602CONFIG_ARIADNE=y
581CONFIG_A2065=m 603CONFIG_A2065=y
582CONFIG_HYDRA=m 604CONFIG_HYDRA=y
583CONFIG_ZORRO8390=m 605CONFIG_ZORRO8390=y
584CONFIG_APNE=m 606CONFIG_APNE=y
585# CONFIG_NET_VENDOR_3COM is not set 607# CONFIG_NET_VENDOR_3COM is not set
586# CONFIG_NET_VENDOR_SMC is not set 608# CONFIG_NET_VENDOR_SMC is not set
609# CONFIG_ETHOC is not set
587# CONFIG_NET_VENDOR_RACAL is not set 610# CONFIG_NET_VENDOR_RACAL is not set
611# CONFIG_DNET is not set
588# CONFIG_AT1700 is not set 612# CONFIG_AT1700 is not set
589# CONFIG_DEPCA is not set 613# CONFIG_DEPCA is not set
590# CONFIG_HP100 is not set 614# CONFIG_HP100 is not set
@@ -609,7 +633,10 @@ CONFIG_APNE=m
609# 633#
610# CONFIG_WLAN_PRE80211 is not set 634# CONFIG_WLAN_PRE80211 is not set
611# CONFIG_WLAN_80211 is not set 635# CONFIG_WLAN_80211 is not set
612# CONFIG_IWLWIFI_LEDS is not set 636
637#
638# Enable WiMAX (Networking options) to see the WiMAX drivers
639#
613# CONFIG_WAN is not set 640# CONFIG_WAN is not set
614# CONFIG_PLIP is not set 641# CONFIG_PLIP is not set
615CONFIG_PPP=m 642CONFIG_PPP=m
@@ -719,7 +746,7 @@ CONFIG_HW_CONSOLE=y
719CONFIG_VT_HW_CONSOLE_BINDING=y 746CONFIG_VT_HW_CONSOLE_BINDING=y
720# CONFIG_DEVKMEM is not set 747# CONFIG_DEVKMEM is not set
721# CONFIG_SERIAL_NONSTANDARD is not set 748# CONFIG_SERIAL_NONSTANDARD is not set
722CONFIG_A2232=m 749CONFIG_A2232=y
723 750
724# 751#
725# Serial drivers 752# Serial drivers
@@ -730,6 +757,7 @@ CONFIG_A2232=m
730# Non-8250 serial port support 757# Non-8250 serial port support
731# 758#
732CONFIG_UNIX98_PTYS=y 759CONFIG_UNIX98_PTYS=y
760# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
733CONFIG_LEGACY_PTYS=y 761CONFIG_LEGACY_PTYS=y
734CONFIG_LEGACY_PTY_COUNT=256 762CONFIG_LEGACY_PTY_COUNT=256
735CONFIG_PRINTER=m 763CONFIG_PRINTER=m
@@ -821,6 +849,7 @@ CONFIG_FB_FM2=y
821# CONFIG_FB_VIRTUAL is not set 849# CONFIG_FB_VIRTUAL is not set
822# CONFIG_FB_METRONOME is not set 850# CONFIG_FB_METRONOME is not set
823# CONFIG_FB_MB862XX is not set 851# CONFIG_FB_MB862XX is not set
852# CONFIG_FB_BROADSHEET is not set
824# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 853# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
825 854
826# 855#
@@ -856,7 +885,6 @@ CONFIG_HIDRAW=y
856# 885#
857# Special HID drivers 886# Special HID drivers
858# 887#
859CONFIG_HID_COMPAT=y
860# CONFIG_USB_SUPPORT is not set 888# CONFIG_USB_SUPPORT is not set
861# CONFIG_MMC is not set 889# CONFIG_MMC is not set
862# CONFIG_MEMSTICK is not set 890# CONFIG_MEMSTICK is not set
@@ -867,14 +895,13 @@ CONFIG_HID_COMPAT=y
867# CONFIG_AUXDISPLAY is not set 895# CONFIG_AUXDISPLAY is not set
868# CONFIG_UIO is not set 896# CONFIG_UIO is not set
869# CONFIG_STAGING is not set 897# CONFIG_STAGING is not set
870CONFIG_STAGING_EXCLUDE_BUILD=y
871 898
872# 899#
873# Character devices 900# Character devices
874# 901#
875CONFIG_AMIGA_BUILTIN_SERIAL=y 902CONFIG_AMIGA_BUILTIN_SERIAL=y
876CONFIG_MULTIFACE_III_TTY=m 903CONFIG_MULTIFACE_III_TTY=m
877# CONFIG_SERIAL_CONSOLE is not set 904CONFIG_SERIAL_CONSOLE=y
878 905
879# 906#
880# File systems 907# File systems
@@ -883,6 +910,7 @@ CONFIG_EXT2_FS=y
883# CONFIG_EXT2_FS_XATTR is not set 910# CONFIG_EXT2_FS_XATTR is not set
884# CONFIG_EXT2_FS_XIP is not set 911# CONFIG_EXT2_FS_XIP is not set
885CONFIG_EXT3_FS=y 912CONFIG_EXT3_FS=y
913# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
886# CONFIG_EXT3_FS_XATTR is not set 914# CONFIG_EXT3_FS_XATTR is not set
887# CONFIG_EXT4_FS is not set 915# CONFIG_EXT4_FS is not set
888CONFIG_JBD=y 916CONFIG_JBD=y
@@ -909,13 +937,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
909# CONFIG_OCFS2_FS_STATS is not set 937# CONFIG_OCFS2_FS_STATS is not set
910# CONFIG_OCFS2_DEBUG_MASKLOG is not set 938# CONFIG_OCFS2_DEBUG_MASKLOG is not set
911# CONFIG_OCFS2_DEBUG_FS is not set 939# CONFIG_OCFS2_DEBUG_FS is not set
912# CONFIG_OCFS2_COMPAT_JBD is not set 940# CONFIG_OCFS2_FS_POSIX_ACL is not set
941# CONFIG_BTRFS_FS is not set
913CONFIG_DNOTIFY=y 942CONFIG_DNOTIFY=y
914CONFIG_INOTIFY=y 943CONFIG_INOTIFY=y
915CONFIG_INOTIFY_USER=y 944CONFIG_INOTIFY_USER=y
916CONFIG_QUOTA=y 945CONFIG_QUOTA=y
917CONFIG_QUOTA_NETLINK_INTERFACE=y 946CONFIG_QUOTA_NETLINK_INTERFACE=y
918# CONFIG_PRINT_QUOTA_WARNING is not set 947# CONFIG_PRINT_QUOTA_WARNING is not set
948CONFIG_QUOTA_TREE=m
919# CONFIG_QFMT_V1 is not set 949# CONFIG_QFMT_V1 is not set
920# CONFIG_QFMT_V2 is not set 950# CONFIG_QFMT_V2 is not set
921CONFIG_QUOTACTL=y 951CONFIG_QUOTACTL=y
@@ -924,6 +954,11 @@ CONFIG_AUTOFS4_FS=m
924CONFIG_FUSE_FS=m 954CONFIG_FUSE_FS=m
925 955
926# 956#
957# Caches
958#
959# CONFIG_FSCACHE is not set
960
961#
927# CD-ROM/DVD Filesystems 962# CD-ROM/DVD Filesystems
928# 963#
929CONFIG_ISO9660_FS=y 964CONFIG_ISO9660_FS=y
@@ -935,8 +970,8 @@ CONFIG_UDF_NLS=y
935# 970#
936# DOS/FAT/NT Filesystems 971# DOS/FAT/NT Filesystems
937# 972#
938CONFIG_FAT_FS=m 973CONFIG_FAT_FS=y
939CONFIG_MSDOS_FS=m 974CONFIG_MSDOS_FS=y
940CONFIG_VFAT_FS=m 975CONFIG_VFAT_FS=m
941CONFIG_FAT_DEFAULT_CODEPAGE=437 976CONFIG_FAT_DEFAULT_CODEPAGE=437
942CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 977CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
@@ -954,10 +989,7 @@ CONFIG_TMPFS=y
954# CONFIG_TMPFS_POSIX_ACL is not set 989# CONFIG_TMPFS_POSIX_ACL is not set
955# CONFIG_HUGETLB_PAGE is not set 990# CONFIG_HUGETLB_PAGE is not set
956CONFIG_CONFIGFS_FS=m 991CONFIG_CONFIGFS_FS=m
957 992CONFIG_MISC_FILESYSTEMS=y
958#
959# Miscellaneous filesystems
960#
961# CONFIG_ADFS_FS is not set 993# CONFIG_ADFS_FS is not set
962CONFIG_AFFS_FS=m 994CONFIG_AFFS_FS=m
963CONFIG_HFS_FS=m 995CONFIG_HFS_FS=m
@@ -966,6 +998,9 @@ CONFIG_HFSPLUS_FS=m
966# CONFIG_BFS_FS is not set 998# CONFIG_BFS_FS is not set
967# CONFIG_EFS_FS is not set 999# CONFIG_EFS_FS is not set
968CONFIG_CRAMFS=m 1000CONFIG_CRAMFS=m
1001CONFIG_SQUASHFS=m
1002# CONFIG_SQUASHFS_EMBEDDED is not set
1003CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
969# CONFIG_VXFS_FS is not set 1004# CONFIG_VXFS_FS is not set
970CONFIG_MINIX_FS=y 1005CONFIG_MINIX_FS=y
971# CONFIG_OMFS_FS is not set 1006# CONFIG_OMFS_FS is not set
@@ -976,23 +1011,24 @@ CONFIG_SYSV_FS=m
976CONFIG_UFS_FS=m 1011CONFIG_UFS_FS=m
977# CONFIG_UFS_FS_WRITE is not set 1012# CONFIG_UFS_FS_WRITE is not set
978# CONFIG_UFS_DEBUG is not set 1013# CONFIG_UFS_DEBUG is not set
1014# CONFIG_NILFS2_FS is not set
979CONFIG_NETWORK_FILESYSTEMS=y 1015CONFIG_NETWORK_FILESYSTEMS=y
980CONFIG_NFS_FS=m 1016CONFIG_NFS_FS=y
981CONFIG_NFS_V3=y 1017CONFIG_NFS_V3=y
982# CONFIG_NFS_V3_ACL is not set 1018# CONFIG_NFS_V3_ACL is not set
983CONFIG_NFS_V4=y 1019CONFIG_NFS_V4=y
1020# CONFIG_ROOT_NFS is not set
984CONFIG_NFSD=m 1021CONFIG_NFSD=m
985CONFIG_NFSD_V3=y 1022CONFIG_NFSD_V3=y
986# CONFIG_NFSD_V3_ACL is not set 1023# CONFIG_NFSD_V3_ACL is not set
987# CONFIG_NFSD_V4 is not set 1024# CONFIG_NFSD_V4 is not set
988CONFIG_LOCKD=m 1025CONFIG_LOCKD=y
989CONFIG_LOCKD_V4=y 1026CONFIG_LOCKD_V4=y
990CONFIG_EXPORTFS=m 1027CONFIG_EXPORTFS=m
991CONFIG_NFS_COMMON=y 1028CONFIG_NFS_COMMON=y
992CONFIG_SUNRPC=m 1029CONFIG_SUNRPC=y
993CONFIG_SUNRPC_GSS=m 1030CONFIG_SUNRPC_GSS=y
994# CONFIG_SUNRPC_REGISTER_V4 is not set 1031CONFIG_RPCSEC_GSS_KRB5=y
995CONFIG_RPCSEC_GSS_KRB5=m
996# CONFIG_RPCSEC_GSS_SPKM3 is not set 1032# CONFIG_RPCSEC_GSS_SPKM3 is not set
997CONFIG_SMB_FS=m 1033CONFIG_SMB_FS=m
998CONFIG_SMB_NLS_DEFAULT=y 1034CONFIG_SMB_NLS_DEFAULT=y
@@ -1067,11 +1103,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1067CONFIG_DEBUG_MEMORY_INIT=y 1103CONFIG_DEBUG_MEMORY_INIT=y
1068# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1104# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1069CONFIG_SYSCTL_SYSCALL_CHECK=y 1105CONFIG_SYSCTL_SYSCALL_CHECK=y
1070
1071#
1072# Tracers
1073#
1074# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1075# CONFIG_SAMPLES is not set 1106# CONFIG_SAMPLES is not set
1076 1107
1077# 1108#
@@ -1092,13 +1123,21 @@ CONFIG_CRYPTO=y
1092# 1123#
1093# CONFIG_CRYPTO_FIPS is not set 1124# CONFIG_CRYPTO_FIPS is not set
1094CONFIG_CRYPTO_ALGAPI=y 1125CONFIG_CRYPTO_ALGAPI=y
1095CONFIG_CRYPTO_AEAD=y 1126CONFIG_CRYPTO_ALGAPI2=y
1127CONFIG_CRYPTO_AEAD=m
1128CONFIG_CRYPTO_AEAD2=y
1096CONFIG_CRYPTO_BLKCIPHER=y 1129CONFIG_CRYPTO_BLKCIPHER=y
1130CONFIG_CRYPTO_BLKCIPHER2=y
1097CONFIG_CRYPTO_HASH=y 1131CONFIG_CRYPTO_HASH=y
1098CONFIG_CRYPTO_RNG=y 1132CONFIG_CRYPTO_HASH2=y
1133CONFIG_CRYPTO_RNG=m
1134CONFIG_CRYPTO_RNG2=y
1135CONFIG_CRYPTO_PCOMP=y
1099CONFIG_CRYPTO_MANAGER=y 1136CONFIG_CRYPTO_MANAGER=y
1137CONFIG_CRYPTO_MANAGER2=y
1100CONFIG_CRYPTO_GF128MUL=m 1138CONFIG_CRYPTO_GF128MUL=m
1101CONFIG_CRYPTO_NULL=m 1139CONFIG_CRYPTO_NULL=m
1140CONFIG_CRYPTO_WORKQUEUE=y
1102CONFIG_CRYPTO_CRYPTD=m 1141CONFIG_CRYPTO_CRYPTD=m
1103CONFIG_CRYPTO_AUTHENC=m 1142CONFIG_CRYPTO_AUTHENC=m
1104CONFIG_CRYPTO_TEST=m 1143CONFIG_CRYPTO_TEST=m
@@ -1113,7 +1152,7 @@ CONFIG_CRYPTO_SEQIV=m
1113# 1152#
1114# Block modes 1153# Block modes
1115# 1154#
1116CONFIG_CRYPTO_CBC=m 1155CONFIG_CRYPTO_CBC=y
1117CONFIG_CRYPTO_CTR=m 1156CONFIG_CRYPTO_CTR=m
1118CONFIG_CRYPTO_CTS=m 1157CONFIG_CRYPTO_CTS=m
1119CONFIG_CRYPTO_ECB=m 1158CONFIG_CRYPTO_ECB=m
@@ -1132,7 +1171,7 @@ CONFIG_CRYPTO_XCBC=m
1132# 1171#
1133CONFIG_CRYPTO_CRC32C=m 1172CONFIG_CRYPTO_CRC32C=m
1134CONFIG_CRYPTO_MD4=m 1173CONFIG_CRYPTO_MD4=m
1135CONFIG_CRYPTO_MD5=m 1174CONFIG_CRYPTO_MD5=y
1136CONFIG_CRYPTO_MICHAEL_MIC=m 1175CONFIG_CRYPTO_MICHAEL_MIC=m
1137CONFIG_CRYPTO_RMD128=m 1176CONFIG_CRYPTO_RMD128=m
1138CONFIG_CRYPTO_RMD160=m 1177CONFIG_CRYPTO_RMD160=m
@@ -1154,7 +1193,7 @@ CONFIG_CRYPTO_BLOWFISH=m
1154CONFIG_CRYPTO_CAMELLIA=m 1193CONFIG_CRYPTO_CAMELLIA=m
1155CONFIG_CRYPTO_CAST5=m 1194CONFIG_CRYPTO_CAST5=m
1156CONFIG_CRYPTO_CAST6=m 1195CONFIG_CRYPTO_CAST6=m
1157CONFIG_CRYPTO_DES=m 1196CONFIG_CRYPTO_DES=y
1158CONFIG_CRYPTO_FCRYPT=m 1197CONFIG_CRYPTO_FCRYPT=m
1159CONFIG_CRYPTO_KHAZAD=m 1198CONFIG_CRYPTO_KHAZAD=m
1160CONFIG_CRYPTO_SALSA20=m 1199CONFIG_CRYPTO_SALSA20=m
@@ -1168,6 +1207,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1168# Compression 1207# Compression
1169# 1208#
1170CONFIG_CRYPTO_DEFLATE=m 1209CONFIG_CRYPTO_DEFLATE=m
1210CONFIG_CRYPTO_ZLIB=m
1171CONFIG_CRYPTO_LZO=m 1211CONFIG_CRYPTO_LZO=m
1172 1212
1173# 1213#
@@ -1175,11 +1215,13 @@ CONFIG_CRYPTO_LZO=m
1175# 1215#
1176# CONFIG_CRYPTO_ANSI_CPRNG is not set 1216# CONFIG_CRYPTO_ANSI_CPRNG is not set
1177# CONFIG_CRYPTO_HW is not set 1217# CONFIG_CRYPTO_HW is not set
1218# CONFIG_BINARY_PRINTF is not set
1178 1219
1179# 1220#
1180# Library routines 1221# Library routines
1181# 1222#
1182CONFIG_BITREVERSE=y 1223CONFIG_BITREVERSE=y
1224CONFIG_GENERIC_FIND_LAST_BIT=y
1183CONFIG_CRC_CCITT=m 1225CONFIG_CRC_CCITT=m
1184CONFIG_CRC16=m 1226CONFIG_CRC16=m
1185CONFIG_CRC_T10DIF=y 1227CONFIG_CRC_T10DIF=y
@@ -1191,10 +1233,13 @@ CONFIG_ZLIB_INFLATE=y
1191CONFIG_ZLIB_DEFLATE=m 1233CONFIG_ZLIB_DEFLATE=m
1192CONFIG_LZO_COMPRESS=m 1234CONFIG_LZO_COMPRESS=m
1193CONFIG_LZO_DECOMPRESS=m 1235CONFIG_LZO_DECOMPRESS=m
1236CONFIG_DECOMPRESS_GZIP=y
1237CONFIG_DECOMPRESS_BZIP2=y
1238CONFIG_DECOMPRESS_LZMA=y
1194CONFIG_TEXTSEARCH=y 1239CONFIG_TEXTSEARCH=y
1195CONFIG_TEXTSEARCH_KMP=m 1240CONFIG_TEXTSEARCH_KMP=m
1196CONFIG_TEXTSEARCH_BM=m 1241CONFIG_TEXTSEARCH_BM=m
1197CONFIG_TEXTSEARCH_FSM=m 1242CONFIG_TEXTSEARCH_FSM=m
1198CONFIG_PLIST=y
1199CONFIG_HAS_IOMEM=y 1243CONFIG_HAS_IOMEM=y
1200CONFIG_HAS_DMA=y 1244CONFIG_HAS_DMA=y
1245CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index 935108d115a0..5fff58196b3e 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:43 2008 4# Wed Apr 22 20:47:54 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -140,12 +151,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
140CONFIG_NEED_MULTIPLE_NODES=y 151CONFIG_NEED_MULTIPLE_NODES=y
141CONFIG_PAGEFLAGS_EXTENDED=y 152CONFIG_PAGEFLAGS_EXTENDED=y
142CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y 158CONFIG_UNEVICTABLE_LRU=y
159CONFIG_HAVE_MLOCK=y
160CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149 161
150# 162#
151# General setup 163# General setup
@@ -256,6 +268,7 @@ CONFIG_NETFILTER_XTABLES=m
256CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 268CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
257CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 269CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
258CONFIG_NETFILTER_XT_TARGET_DSCP=m 270CONFIG_NETFILTER_XT_TARGET_DSCP=m
271CONFIG_NETFILTER_XT_TARGET_HL=m
259CONFIG_NETFILTER_XT_TARGET_MARK=m 272CONFIG_NETFILTER_XT_TARGET_MARK=m
260CONFIG_NETFILTER_XT_TARGET_NFLOG=m 273CONFIG_NETFILTER_XT_TARGET_NFLOG=m
261CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 274CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -264,6 +277,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
264CONFIG_NETFILTER_XT_TARGET_TRACE=m 277CONFIG_NETFILTER_XT_TARGET_TRACE=m
265CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 278CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
266CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 279CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
280CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
267CONFIG_NETFILTER_XT_MATCH_COMMENT=m 281CONFIG_NETFILTER_XT_MATCH_COMMENT=m
268CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 282CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
269CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 283CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -274,6 +288,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
274CONFIG_NETFILTER_XT_MATCH_ESP=m 288CONFIG_NETFILTER_XT_MATCH_ESP=m
275CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 289CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
276CONFIG_NETFILTER_XT_MATCH_HELPER=m 290CONFIG_NETFILTER_XT_MATCH_HELPER=m
291CONFIG_NETFILTER_XT_MATCH_HL=m
277CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 292CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
278CONFIG_NETFILTER_XT_MATCH_LENGTH=m 293CONFIG_NETFILTER_XT_MATCH_LENGTH=m
279CONFIG_NETFILTER_XT_MATCH_LIMIT=m 294CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -352,25 +367,20 @@ CONFIG_IP6_NF_MATCH_HL=m
352CONFIG_IP6_NF_MATCH_IPV6HEADER=m 367CONFIG_IP6_NF_MATCH_IPV6HEADER=m
353CONFIG_IP6_NF_MATCH_MH=m 368CONFIG_IP6_NF_MATCH_MH=m
354CONFIG_IP6_NF_MATCH_RT=m 369CONFIG_IP6_NF_MATCH_RT=m
370CONFIG_IP6_NF_TARGET_HL=m
355CONFIG_IP6_NF_TARGET_LOG=m 371CONFIG_IP6_NF_TARGET_LOG=m
356CONFIG_IP6_NF_FILTER=m 372CONFIG_IP6_NF_FILTER=m
357CONFIG_IP6_NF_TARGET_REJECT=m 373CONFIG_IP6_NF_TARGET_REJECT=m
358CONFIG_IP6_NF_MANGLE=m 374CONFIG_IP6_NF_MANGLE=m
359CONFIG_IP6_NF_TARGET_HL=m
360CONFIG_IP6_NF_RAW=m 375CONFIG_IP6_NF_RAW=m
361CONFIG_IP_DCCP=m 376CONFIG_IP_DCCP=m
362CONFIG_INET_DCCP_DIAG=m 377CONFIG_INET_DCCP_DIAG=m
363CONFIG_IP_DCCP_ACKVEC=y
364 378
365# 379#
366# DCCP CCIDs Configuration (EXPERIMENTAL) 380# DCCP CCIDs Configuration (EXPERIMENTAL)
367# 381#
368CONFIG_IP_DCCP_CCID2=m
369# CONFIG_IP_DCCP_CCID2_DEBUG is not set 382# CONFIG_IP_DCCP_CCID2_DEBUG is not set
370CONFIG_IP_DCCP_CCID3=m 383# CONFIG_IP_DCCP_CCID3 is not set
371# CONFIG_IP_DCCP_CCID3_DEBUG is not set
372CONFIG_IP_DCCP_CCID3_RTO=100
373CONFIG_IP_DCCP_TFRC_LIB=m
374CONFIG_IP_SCTP=m 384CONFIG_IP_SCTP=m
375# CONFIG_SCTP_DBG_MSG is not set 385# CONFIG_SCTP_DBG_MSG is not set
376# CONFIG_SCTP_DBG_OBJCNT is not set 386# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -392,8 +402,10 @@ CONFIG_ATALK=m
392# CONFIG_LAPB is not set 402# CONFIG_LAPB is not set
393# CONFIG_ECONET is not set 403# CONFIG_ECONET is not set
394# CONFIG_WAN_ROUTER is not set 404# CONFIG_WAN_ROUTER is not set
405# CONFIG_PHONET is not set
395# CONFIG_NET_SCHED is not set 406# CONFIG_NET_SCHED is not set
396CONFIG_NET_CLS_ROUTE=y 407CONFIG_NET_CLS_ROUTE=y
408# CONFIG_DCB is not set
397 409
398# 410#
399# Network testing 411# Network testing
@@ -404,8 +416,8 @@ CONFIG_NET_CLS_ROUTE=y
404# CONFIG_IRDA is not set 416# CONFIG_IRDA is not set
405# CONFIG_BT is not set 417# CONFIG_BT is not set
406# CONFIG_AF_RXRPC is not set 418# CONFIG_AF_RXRPC is not set
407# CONFIG_PHONET is not set
408# CONFIG_WIRELESS is not set 419# CONFIG_WIRELESS is not set
420# CONFIG_WIMAX is not set
409# CONFIG_RFKILL is not set 421# CONFIG_RFKILL is not set
410# CONFIG_NET_9P is not set 422# CONFIG_NET_9P is not set
411 423
@@ -441,9 +453,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
441CONFIG_ATA_OVER_ETH=m 453CONFIG_ATA_OVER_ETH=m
442# CONFIG_BLK_DEV_HD is not set 454# CONFIG_BLK_DEV_HD is not set
443CONFIG_MISC_DEVICES=y 455CONFIG_MISC_DEVICES=y
444# CONFIG_EEPROM_93CX6 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 456# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_C2PORT is not set 457# CONFIG_C2PORT is not set
458
459#
460# EEPROM support
461#
462# CONFIG_EEPROM_93CX6 is not set
447CONFIG_HAVE_IDE=y 463CONFIG_HAVE_IDE=y
448# CONFIG_IDE is not set 464# CONFIG_IDE is not set
449 465
@@ -491,8 +507,11 @@ CONFIG_SCSI_SRP_ATTRS=m
491CONFIG_SCSI_SRP_TGT_ATTRS=y 507CONFIG_SCSI_SRP_TGT_ATTRS=y
492CONFIG_SCSI_LOWLEVEL=y 508CONFIG_SCSI_LOWLEVEL=y
493CONFIG_ISCSI_TCP=m 509CONFIG_ISCSI_TCP=m
510# CONFIG_LIBFC is not set
511# CONFIG_LIBFCOE is not set
494# CONFIG_SCSI_DEBUG is not set 512# CONFIG_SCSI_DEBUG is not set
495# CONFIG_SCSI_DH is not set 513# CONFIG_SCSI_DH is not set
514# CONFIG_SCSI_OSD_INITIATOR is not set
496CONFIG_MD=y 515CONFIG_MD=y
497CONFIG_BLK_DEV_MD=m 516CONFIG_BLK_DEV_MD=m
498CONFIG_MD_LINEAR=m 517CONFIG_MD_LINEAR=m
@@ -500,7 +519,7 @@ CONFIG_MD_RAID0=m
500CONFIG_MD_RAID1=m 519CONFIG_MD_RAID1=m
501# CONFIG_MD_RAID10 is not set 520# CONFIG_MD_RAID10 is not set
502CONFIG_MD_RAID456=m 521CONFIG_MD_RAID456=m
503CONFIG_MD_RAID5_RESHAPE=y 522CONFIG_MD_RAID6_PQ=m
504# CONFIG_MD_MULTIPATH is not set 523# CONFIG_MD_MULTIPATH is not set
505# CONFIG_MD_FAULTY is not set 524# CONFIG_MD_FAULTY is not set
506CONFIG_BLK_DEV_DM=m 525CONFIG_BLK_DEV_DM=m
@@ -513,6 +532,7 @@ CONFIG_DM_MULTIPATH=m
513# CONFIG_DM_DELAY is not set 532# CONFIG_DM_DELAY is not set
514CONFIG_DM_UEVENT=y 533CONFIG_DM_UEVENT=y
515CONFIG_NETDEVICES=y 534CONFIG_NETDEVICES=y
535CONFIG_COMPAT_NET_DEV_OPS=y
516CONFIG_DUMMY=m 536CONFIG_DUMMY=m
517# CONFIG_BONDING is not set 537# CONFIG_BONDING is not set
518CONFIG_MACVLAN=m 538CONFIG_MACVLAN=m
@@ -522,6 +542,8 @@ CONFIG_VETH=m
522# CONFIG_PHYLIB is not set 542# CONFIG_PHYLIB is not set
523CONFIG_NET_ETHERNET=y 543CONFIG_NET_ETHERNET=y
524# CONFIG_MII is not set 544# CONFIG_MII is not set
545# CONFIG_ETHOC is not set
546# CONFIG_DNET is not set
525# CONFIG_IBM_NEW_EMAC_ZMII is not set 547# CONFIG_IBM_NEW_EMAC_ZMII is not set
526# CONFIG_IBM_NEW_EMAC_RGMII is not set 548# CONFIG_IBM_NEW_EMAC_RGMII is not set
527# CONFIG_IBM_NEW_EMAC_TAH is not set 549# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -538,7 +560,10 @@ CONFIG_NET_ETHERNET=y
538# 560#
539# CONFIG_WLAN_PRE80211 is not set 561# CONFIG_WLAN_PRE80211 is not set
540# CONFIG_WLAN_80211 is not set 562# CONFIG_WLAN_80211 is not set
541# CONFIG_IWLWIFI_LEDS is not set 563
564#
565# Enable WiMAX (Networking options) to see the WiMAX drivers
566#
542# CONFIG_WAN is not set 567# CONFIG_WAN is not set
543CONFIG_PPP=m 568CONFIG_PPP=m
544# CONFIG_PPP_MULTILINK is not set 569# CONFIG_PPP_MULTILINK is not set
@@ -596,7 +621,6 @@ CONFIG_MOUSE_PS2=m
596CONFIG_MOUSE_PS2_ALPS=y 621CONFIG_MOUSE_PS2_ALPS=y
597CONFIG_MOUSE_PS2_LOGIPS2PP=y 622CONFIG_MOUSE_PS2_LOGIPS2PP=y
598CONFIG_MOUSE_PS2_SYNAPTICS=y 623CONFIG_MOUSE_PS2_SYNAPTICS=y
599CONFIG_MOUSE_PS2_LIFEBOOK=y
600CONFIG_MOUSE_PS2_TRACKPOINT=y 624CONFIG_MOUSE_PS2_TRACKPOINT=y
601# CONFIG_MOUSE_PS2_ELANTECH is not set 625# CONFIG_MOUSE_PS2_ELANTECH is not set
602# CONFIG_MOUSE_PS2_TOUCHKIT is not set 626# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -636,6 +660,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
636# Non-8250 serial port support 660# Non-8250 serial port support
637# 661#
638CONFIG_UNIX98_PTYS=y 662CONFIG_UNIX98_PTYS=y
663# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
639CONFIG_LEGACY_PTYS=y 664CONFIG_LEGACY_PTYS=y
640CONFIG_LEGACY_PTY_COUNT=256 665CONFIG_LEGACY_PTY_COUNT=256
641# CONFIG_IPMI_HANDLER is not set 666# CONFIG_IPMI_HANDLER is not set
@@ -718,6 +743,7 @@ CONFIG_FB_APOLLO=y
718# CONFIG_FB_VIRTUAL is not set 743# CONFIG_FB_VIRTUAL is not set
719# CONFIG_FB_METRONOME is not set 744# CONFIG_FB_METRONOME is not set
720# CONFIG_FB_MB862XX is not set 745# CONFIG_FB_MB862XX is not set
746# CONFIG_FB_BROADSHEET is not set
721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 747# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
722 748
723# 749#
@@ -749,7 +775,6 @@ CONFIG_HIDRAW=y
749# 775#
750# Special HID drivers 776# Special HID drivers
751# 777#
752CONFIG_HID_COMPAT=y
753# CONFIG_USB_SUPPORT is not set 778# CONFIG_USB_SUPPORT is not set
754# CONFIG_MMC is not set 779# CONFIG_MMC is not set
755# CONFIG_MEMSTICK is not set 780# CONFIG_MEMSTICK is not set
@@ -757,9 +782,9 @@ CONFIG_HID_COMPAT=y
757# CONFIG_ACCESSIBILITY is not set 782# CONFIG_ACCESSIBILITY is not set
758# CONFIG_RTC_CLASS is not set 783# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set 784# CONFIG_DMADEVICES is not set
785# CONFIG_AUXDISPLAY is not set
760# CONFIG_UIO is not set 786# CONFIG_UIO is not set
761# CONFIG_STAGING is not set 787# CONFIG_STAGING is not set
762CONFIG_STAGING_EXCLUDE_BUILD=y
763 788
764# 789#
765# Character devices 790# Character devices
@@ -774,6 +799,7 @@ CONFIG_EXT2_FS=y
774# CONFIG_EXT2_FS_XATTR is not set 799# CONFIG_EXT2_FS_XATTR is not set
775# CONFIG_EXT2_FS_XIP is not set 800# CONFIG_EXT2_FS_XIP is not set
776CONFIG_EXT3_FS=y 801CONFIG_EXT3_FS=y
802# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
777# CONFIG_EXT3_FS_XATTR is not set 803# CONFIG_EXT3_FS_XATTR is not set
778# CONFIG_EXT4_FS is not set 804# CONFIG_EXT4_FS is not set
779CONFIG_JBD=y 805CONFIG_JBD=y
@@ -800,13 +826,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
800# CONFIG_OCFS2_FS_STATS is not set 826# CONFIG_OCFS2_FS_STATS is not set
801# CONFIG_OCFS2_DEBUG_MASKLOG is not set 827# CONFIG_OCFS2_DEBUG_MASKLOG is not set
802# CONFIG_OCFS2_DEBUG_FS is not set 828# CONFIG_OCFS2_DEBUG_FS is not set
803# CONFIG_OCFS2_COMPAT_JBD is not set 829# CONFIG_OCFS2_FS_POSIX_ACL is not set
830# CONFIG_BTRFS_FS is not set
804CONFIG_DNOTIFY=y 831CONFIG_DNOTIFY=y
805CONFIG_INOTIFY=y 832CONFIG_INOTIFY=y
806CONFIG_INOTIFY_USER=y 833CONFIG_INOTIFY_USER=y
807CONFIG_QUOTA=y 834CONFIG_QUOTA=y
808CONFIG_QUOTA_NETLINK_INTERFACE=y 835CONFIG_QUOTA_NETLINK_INTERFACE=y
809# CONFIG_PRINT_QUOTA_WARNING is not set 836# CONFIG_PRINT_QUOTA_WARNING is not set
837CONFIG_QUOTA_TREE=m
810# CONFIG_QFMT_V1 is not set 838# CONFIG_QFMT_V1 is not set
811# CONFIG_QFMT_V2 is not set 839# CONFIG_QFMT_V2 is not set
812CONFIG_QUOTACTL=y 840CONFIG_QUOTACTL=y
@@ -815,6 +843,11 @@ CONFIG_AUTOFS4_FS=m
815CONFIG_FUSE_FS=m 843CONFIG_FUSE_FS=m
816 844
817# 845#
846# Caches
847#
848# CONFIG_FSCACHE is not set
849
850#
818# CD-ROM/DVD Filesystems 851# CD-ROM/DVD Filesystems
819# 852#
820CONFIG_ISO9660_FS=y 853CONFIG_ISO9660_FS=y
@@ -845,10 +878,7 @@ CONFIG_TMPFS=y
845# CONFIG_TMPFS_POSIX_ACL is not set 878# CONFIG_TMPFS_POSIX_ACL is not set
846# CONFIG_HUGETLB_PAGE is not set 879# CONFIG_HUGETLB_PAGE is not set
847CONFIG_CONFIGFS_FS=m 880CONFIG_CONFIGFS_FS=m
848 881CONFIG_MISC_FILESYSTEMS=y
849#
850# Miscellaneous filesystems
851#
852# CONFIG_ADFS_FS is not set 882# CONFIG_ADFS_FS is not set
853CONFIG_AFFS_FS=m 883CONFIG_AFFS_FS=m
854CONFIG_HFS_FS=m 884CONFIG_HFS_FS=m
@@ -857,6 +887,9 @@ CONFIG_HFSPLUS_FS=m
857# CONFIG_BFS_FS is not set 887# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set 888# CONFIG_EFS_FS is not set
859CONFIG_CRAMFS=m 889CONFIG_CRAMFS=m
890CONFIG_SQUASHFS=m
891# CONFIG_SQUASHFS_EMBEDDED is not set
892CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
860# CONFIG_VXFS_FS is not set 893# CONFIG_VXFS_FS is not set
861CONFIG_MINIX_FS=y 894CONFIG_MINIX_FS=y
862# CONFIG_OMFS_FS is not set 895# CONFIG_OMFS_FS is not set
@@ -867,6 +900,7 @@ CONFIG_SYSV_FS=m
867CONFIG_UFS_FS=m 900CONFIG_UFS_FS=m
868# CONFIG_UFS_FS_WRITE is not set 901# CONFIG_UFS_FS_WRITE is not set
869# CONFIG_UFS_DEBUG is not set 902# CONFIG_UFS_DEBUG is not set
903# CONFIG_NILFS2_FS is not set
870CONFIG_NETWORK_FILESYSTEMS=y 904CONFIG_NETWORK_FILESYSTEMS=y
871CONFIG_NFS_FS=y 905CONFIG_NFS_FS=y
872CONFIG_NFS_V3=y 906CONFIG_NFS_V3=y
@@ -883,7 +917,6 @@ CONFIG_EXPORTFS=m
883CONFIG_NFS_COMMON=y 917CONFIG_NFS_COMMON=y
884CONFIG_SUNRPC=y 918CONFIG_SUNRPC=y
885CONFIG_SUNRPC_GSS=y 919CONFIG_SUNRPC_GSS=y
886# CONFIG_SUNRPC_REGISTER_V4 is not set
887CONFIG_RPCSEC_GSS_KRB5=y 920CONFIG_RPCSEC_GSS_KRB5=y
888# CONFIG_RPCSEC_GSS_SPKM3 is not set 921# CONFIG_RPCSEC_GSS_SPKM3 is not set
889CONFIG_SMB_FS=m 922CONFIG_SMB_FS=m
@@ -958,11 +991,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
958CONFIG_DEBUG_MEMORY_INIT=y 991CONFIG_DEBUG_MEMORY_INIT=y
959# CONFIG_RCU_CPU_STALL_DETECTOR is not set 992# CONFIG_RCU_CPU_STALL_DETECTOR is not set
960CONFIG_SYSCTL_SYSCALL_CHECK=y 993CONFIG_SYSCTL_SYSCALL_CHECK=y
961
962#
963# Tracers
964#
965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
966# CONFIG_SAMPLES is not set 994# CONFIG_SAMPLES is not set
967 995
968# 996#
@@ -983,13 +1011,21 @@ CONFIG_CRYPTO=y
983# 1011#
984# CONFIG_CRYPTO_FIPS is not set 1012# CONFIG_CRYPTO_FIPS is not set
985CONFIG_CRYPTO_ALGAPI=y 1013CONFIG_CRYPTO_ALGAPI=y
986CONFIG_CRYPTO_AEAD=y 1014CONFIG_CRYPTO_ALGAPI2=y
1015CONFIG_CRYPTO_AEAD=m
1016CONFIG_CRYPTO_AEAD2=y
987CONFIG_CRYPTO_BLKCIPHER=y 1017CONFIG_CRYPTO_BLKCIPHER=y
1018CONFIG_CRYPTO_BLKCIPHER2=y
988CONFIG_CRYPTO_HASH=y 1019CONFIG_CRYPTO_HASH=y
989CONFIG_CRYPTO_RNG=y 1020CONFIG_CRYPTO_HASH2=y
1021CONFIG_CRYPTO_RNG=m
1022CONFIG_CRYPTO_RNG2=y
1023CONFIG_CRYPTO_PCOMP=y
990CONFIG_CRYPTO_MANAGER=y 1024CONFIG_CRYPTO_MANAGER=y
1025CONFIG_CRYPTO_MANAGER2=y
991CONFIG_CRYPTO_GF128MUL=m 1026CONFIG_CRYPTO_GF128MUL=m
992CONFIG_CRYPTO_NULL=m 1027CONFIG_CRYPTO_NULL=m
1028CONFIG_CRYPTO_WORKQUEUE=y
993CONFIG_CRYPTO_CRYPTD=m 1029CONFIG_CRYPTO_CRYPTD=m
994CONFIG_CRYPTO_AUTHENC=m 1030CONFIG_CRYPTO_AUTHENC=m
995CONFIG_CRYPTO_TEST=m 1031CONFIG_CRYPTO_TEST=m
@@ -1059,6 +1095,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1059# Compression 1095# Compression
1060# 1096#
1061CONFIG_CRYPTO_DEFLATE=m 1097CONFIG_CRYPTO_DEFLATE=m
1098CONFIG_CRYPTO_ZLIB=m
1062CONFIG_CRYPTO_LZO=m 1099CONFIG_CRYPTO_LZO=m
1063 1100
1064# 1101#
@@ -1066,11 +1103,13 @@ CONFIG_CRYPTO_LZO=m
1066# 1103#
1067# CONFIG_CRYPTO_ANSI_CPRNG is not set 1104# CONFIG_CRYPTO_ANSI_CPRNG is not set
1068# CONFIG_CRYPTO_HW is not set 1105# CONFIG_CRYPTO_HW is not set
1106# CONFIG_BINARY_PRINTF is not set
1069 1107
1070# 1108#
1071# Library routines 1109# Library routines
1072# 1110#
1073CONFIG_BITREVERSE=y 1111CONFIG_BITREVERSE=y
1112CONFIG_GENERIC_FIND_LAST_BIT=y
1074CONFIG_CRC_CCITT=m 1113CONFIG_CRC_CCITT=m
1075CONFIG_CRC16=m 1114CONFIG_CRC16=m
1076CONFIG_CRC_T10DIF=y 1115CONFIG_CRC_T10DIF=y
@@ -1082,10 +1121,13 @@ CONFIG_ZLIB_INFLATE=y
1082CONFIG_ZLIB_DEFLATE=m 1121CONFIG_ZLIB_DEFLATE=m
1083CONFIG_LZO_COMPRESS=m 1122CONFIG_LZO_COMPRESS=m
1084CONFIG_LZO_DECOMPRESS=m 1123CONFIG_LZO_DECOMPRESS=m
1124CONFIG_DECOMPRESS_GZIP=y
1125CONFIG_DECOMPRESS_BZIP2=y
1126CONFIG_DECOMPRESS_LZMA=y
1085CONFIG_TEXTSEARCH=y 1127CONFIG_TEXTSEARCH=y
1086CONFIG_TEXTSEARCH_KMP=m 1128CONFIG_TEXTSEARCH_KMP=m
1087CONFIG_TEXTSEARCH_BM=m 1129CONFIG_TEXTSEARCH_BM=m
1088CONFIG_TEXTSEARCH_FSM=m 1130CONFIG_TEXTSEARCH_FSM=m
1089CONFIG_PLIST=y
1090CONFIG_HAS_IOMEM=y 1131CONFIG_HAS_IOMEM=y
1091CONFIG_HAS_DMA=y 1132CONFIG_HAS_DMA=y
1133CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index a594a1d47b62..d92a90e03ecb 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:44 2008 4# Wed Apr 22 20:47:56 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -140,12 +151,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
140CONFIG_NEED_MULTIPLE_NODES=y 151CONFIG_NEED_MULTIPLE_NODES=y
141CONFIG_PAGEFLAGS_EXTENDED=y 152CONFIG_PAGEFLAGS_EXTENDED=y
142CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y 158CONFIG_UNEVICTABLE_LRU=y
159CONFIG_HAVE_MLOCK=y
160CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149 161
150# 162#
151# General setup 163# General setup
@@ -180,7 +192,10 @@ CONFIG_INET=y
180# CONFIG_IP_MULTICAST is not set 192# CONFIG_IP_MULTICAST is not set
181# CONFIG_IP_ADVANCED_ROUTER is not set 193# CONFIG_IP_ADVANCED_ROUTER is not set
182CONFIG_IP_FIB_HASH=y 194CONFIG_IP_FIB_HASH=y
183# CONFIG_IP_PNP is not set 195CONFIG_IP_PNP=y
196# CONFIG_IP_PNP_DHCP is not set
197# CONFIG_IP_PNP_BOOTP is not set
198# CONFIG_IP_PNP_RARP is not set
184CONFIG_NET_IPIP=m 199CONFIG_NET_IPIP=m
185CONFIG_NET_IPGRE=m 200CONFIG_NET_IPGRE=m
186# CONFIG_ARPD is not set 201# CONFIG_ARPD is not set
@@ -254,6 +269,7 @@ CONFIG_NETFILTER_XTABLES=m
254CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 269CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
255CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 270CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
256CONFIG_NETFILTER_XT_TARGET_DSCP=m 271CONFIG_NETFILTER_XT_TARGET_DSCP=m
272CONFIG_NETFILTER_XT_TARGET_HL=m
257CONFIG_NETFILTER_XT_TARGET_MARK=m 273CONFIG_NETFILTER_XT_TARGET_MARK=m
258CONFIG_NETFILTER_XT_TARGET_NFLOG=m 274CONFIG_NETFILTER_XT_TARGET_NFLOG=m
259CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 275CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -262,6 +278,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
262CONFIG_NETFILTER_XT_TARGET_TRACE=m 278CONFIG_NETFILTER_XT_TARGET_TRACE=m
263CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 279CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
264CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 280CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
281CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
265CONFIG_NETFILTER_XT_MATCH_COMMENT=m 282CONFIG_NETFILTER_XT_MATCH_COMMENT=m
266CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 283CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
267CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 284CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -272,6 +289,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
272CONFIG_NETFILTER_XT_MATCH_ESP=m 289CONFIG_NETFILTER_XT_MATCH_ESP=m
273CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 290CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
274CONFIG_NETFILTER_XT_MATCH_HELPER=m 291CONFIG_NETFILTER_XT_MATCH_HELPER=m
292CONFIG_NETFILTER_XT_MATCH_HL=m
275CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 293CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
276CONFIG_NETFILTER_XT_MATCH_LENGTH=m 294CONFIG_NETFILTER_XT_MATCH_LENGTH=m
277CONFIG_NETFILTER_XT_MATCH_LIMIT=m 295CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -350,25 +368,20 @@ CONFIG_IP6_NF_MATCH_HL=m
350CONFIG_IP6_NF_MATCH_IPV6HEADER=m 368CONFIG_IP6_NF_MATCH_IPV6HEADER=m
351CONFIG_IP6_NF_MATCH_MH=m 369CONFIG_IP6_NF_MATCH_MH=m
352CONFIG_IP6_NF_MATCH_RT=m 370CONFIG_IP6_NF_MATCH_RT=m
371CONFIG_IP6_NF_TARGET_HL=m
353CONFIG_IP6_NF_TARGET_LOG=m 372CONFIG_IP6_NF_TARGET_LOG=m
354CONFIG_IP6_NF_FILTER=m 373CONFIG_IP6_NF_FILTER=m
355CONFIG_IP6_NF_TARGET_REJECT=m 374CONFIG_IP6_NF_TARGET_REJECT=m
356CONFIG_IP6_NF_MANGLE=m 375CONFIG_IP6_NF_MANGLE=m
357CONFIG_IP6_NF_TARGET_HL=m
358CONFIG_IP6_NF_RAW=m 376CONFIG_IP6_NF_RAW=m
359CONFIG_IP_DCCP=m 377CONFIG_IP_DCCP=m
360CONFIG_INET_DCCP_DIAG=m 378CONFIG_INET_DCCP_DIAG=m
361CONFIG_IP_DCCP_ACKVEC=y
362 379
363# 380#
364# DCCP CCIDs Configuration (EXPERIMENTAL) 381# DCCP CCIDs Configuration (EXPERIMENTAL)
365# 382#
366CONFIG_IP_DCCP_CCID2=m
367# CONFIG_IP_DCCP_CCID2_DEBUG is not set 383# CONFIG_IP_DCCP_CCID2_DEBUG is not set
368CONFIG_IP_DCCP_CCID3=m 384# CONFIG_IP_DCCP_CCID3 is not set
369# CONFIG_IP_DCCP_CCID3_DEBUG is not set
370CONFIG_IP_DCCP_CCID3_RTO=100
371CONFIG_IP_DCCP_TFRC_LIB=m
372CONFIG_IP_SCTP=m 385CONFIG_IP_SCTP=m
373# CONFIG_SCTP_DBG_MSG is not set 386# CONFIG_SCTP_DBG_MSG is not set
374# CONFIG_SCTP_DBG_OBJCNT is not set 387# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -390,8 +403,10 @@ CONFIG_ATALK=m
390# CONFIG_LAPB is not set 403# CONFIG_LAPB is not set
391# CONFIG_ECONET is not set 404# CONFIG_ECONET is not set
392# CONFIG_WAN_ROUTER is not set 405# CONFIG_WAN_ROUTER is not set
406# CONFIG_PHONET is not set
393# CONFIG_NET_SCHED is not set 407# CONFIG_NET_SCHED is not set
394CONFIG_NET_CLS_ROUTE=y 408CONFIG_NET_CLS_ROUTE=y
409# CONFIG_DCB is not set
395 410
396# 411#
397# Network testing 412# Network testing
@@ -402,8 +417,8 @@ CONFIG_NET_CLS_ROUTE=y
402# CONFIG_IRDA is not set 417# CONFIG_IRDA is not set
403# CONFIG_BT is not set 418# CONFIG_BT is not set
404# CONFIG_AF_RXRPC is not set 419# CONFIG_AF_RXRPC is not set
405# CONFIG_PHONET is not set
406# CONFIG_WIRELESS is not set 420# CONFIG_WIRELESS is not set
421# CONFIG_WIMAX is not set
407# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
408# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
409 424
@@ -445,15 +460,20 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
445CONFIG_ATA_OVER_ETH=m 460CONFIG_ATA_OVER_ETH=m
446# CONFIG_BLK_DEV_HD is not set 461# CONFIG_BLK_DEV_HD is not set
447CONFIG_MISC_DEVICES=y 462CONFIG_MISC_DEVICES=y
448# CONFIG_EEPROM_93CX6 is not set
449# CONFIG_ENCLOSURE_SERVICES is not set 463# CONFIG_ENCLOSURE_SERVICES is not set
450# CONFIG_C2PORT is not set 464# CONFIG_C2PORT is not set
465
466#
467# EEPROM support
468#
469# CONFIG_EEPROM_93CX6 is not set
451CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
452CONFIG_IDE=y 471CONFIG_IDE=y
453 472
454# 473#
455# Please see Documentation/ide/ide.txt for help/info on IDE drives 474# Please see Documentation/ide/ide.txt for help/info on IDE drives
456# 475#
476CONFIG_IDE_ATAPI=y
457# CONFIG_BLK_DEV_IDE_SATA is not set 477# CONFIG_BLK_DEV_IDE_SATA is not set
458CONFIG_IDE_GD=y 478CONFIG_IDE_GD=y
459CONFIG_IDE_GD_ATA=y 479CONFIG_IDE_GD_ATA=y
@@ -461,7 +481,6 @@ CONFIG_IDE_GD_ATA=y
461CONFIG_BLK_DEV_IDECD=y 481CONFIG_BLK_DEV_IDECD=y
462CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 482CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
463# CONFIG_BLK_DEV_IDETAPE is not set 483# CONFIG_BLK_DEV_IDETAPE is not set
464# CONFIG_BLK_DEV_IDESCSI is not set
465# CONFIG_IDE_TASK_IOCTL is not set 484# CONFIG_IDE_TASK_IOCTL is not set
466CONFIG_IDE_PROC_FS=y 485CONFIG_IDE_PROC_FS=y
467 486
@@ -516,11 +535,14 @@ CONFIG_SCSI_SRP_ATTRS=m
516CONFIG_SCSI_SRP_TGT_ATTRS=y 535CONFIG_SCSI_SRP_TGT_ATTRS=y
517CONFIG_SCSI_LOWLEVEL=y 536CONFIG_SCSI_LOWLEVEL=y
518CONFIG_ISCSI_TCP=m 537CONFIG_ISCSI_TCP=m
538# CONFIG_LIBFC is not set
539# CONFIG_LIBFCOE is not set
519# CONFIG_SCSI_DEBUG is not set 540# CONFIG_SCSI_DEBUG is not set
520CONFIG_ATARI_SCSI=y 541CONFIG_ATARI_SCSI=y
521# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set 542# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set
522# CONFIG_ATARI_SCSI_RESET_BOOT is not set 543# CONFIG_ATARI_SCSI_RESET_BOOT is not set
523# CONFIG_SCSI_DH is not set 544# CONFIG_SCSI_DH is not set
545# CONFIG_SCSI_OSD_INITIATOR is not set
524CONFIG_MD=y 546CONFIG_MD=y
525CONFIG_BLK_DEV_MD=m 547CONFIG_BLK_DEV_MD=m
526CONFIG_MD_LINEAR=m 548CONFIG_MD_LINEAR=m
@@ -528,7 +550,7 @@ CONFIG_MD_RAID0=m
528CONFIG_MD_RAID1=m 550CONFIG_MD_RAID1=m
529# CONFIG_MD_RAID10 is not set 551# CONFIG_MD_RAID10 is not set
530CONFIG_MD_RAID456=m 552CONFIG_MD_RAID456=m
531CONFIG_MD_RAID5_RESHAPE=y 553CONFIG_MD_RAID6_PQ=m
532# CONFIG_MD_MULTIPATH is not set 554# CONFIG_MD_MULTIPATH is not set
533# CONFIG_MD_FAULTY is not set 555# CONFIG_MD_FAULTY is not set
534CONFIG_BLK_DEV_DM=m 556CONFIG_BLK_DEV_DM=m
@@ -541,6 +563,7 @@ CONFIG_DM_MULTIPATH=m
541# CONFIG_DM_DELAY is not set 563# CONFIG_DM_DELAY is not set
542CONFIG_DM_UEVENT=y 564CONFIG_DM_UEVENT=y
543CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
566CONFIG_COMPAT_NET_DEV_OPS=y
544CONFIG_DUMMY=m 567CONFIG_DUMMY=m
545# CONFIG_BONDING is not set 568# CONFIG_BONDING is not set
546CONFIG_MACVLAN=m 569CONFIG_MACVLAN=m
@@ -550,7 +573,9 @@ CONFIG_VETH=m
550# CONFIG_PHYLIB is not set 573# CONFIG_PHYLIB is not set
551CONFIG_NET_ETHERNET=y 574CONFIG_NET_ETHERNET=y
552CONFIG_MII=y 575CONFIG_MII=y
553CONFIG_ATARILANCE=m 576CONFIG_ATARILANCE=y
577# CONFIG_ETHOC is not set
578# CONFIG_DNET is not set
554# CONFIG_IBM_NEW_EMAC_ZMII is not set 579# CONFIG_IBM_NEW_EMAC_ZMII is not set
555# CONFIG_IBM_NEW_EMAC_RGMII is not set 580# CONFIG_IBM_NEW_EMAC_RGMII is not set
556# CONFIG_IBM_NEW_EMAC_TAH is not set 581# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -568,7 +593,10 @@ CONFIG_ATARILANCE=m
568# 593#
569# CONFIG_WLAN_PRE80211 is not set 594# CONFIG_WLAN_PRE80211 is not set
570# CONFIG_WLAN_80211 is not set 595# CONFIG_WLAN_80211 is not set
571# CONFIG_IWLWIFI_LEDS is not set 596
597#
598# Enable WiMAX (Networking options) to see the WiMAX drivers
599#
572# CONFIG_WAN is not set 600# CONFIG_WAN is not set
573# CONFIG_PLIP is not set 601# CONFIG_PLIP is not set
574CONFIG_PPP=m 602CONFIG_PPP=m
@@ -625,11 +653,10 @@ CONFIG_INPUT_KEYBOARD=y
625CONFIG_ATARI_KBD_CORE=y 653CONFIG_ATARI_KBD_CORE=y
626CONFIG_KEYBOARD_ATARI=y 654CONFIG_KEYBOARD_ATARI=y
627CONFIG_INPUT_MOUSE=y 655CONFIG_INPUT_MOUSE=y
628CONFIG_MOUSE_PS2=y 656CONFIG_MOUSE_PS2=m
629CONFIG_MOUSE_PS2_ALPS=y 657CONFIG_MOUSE_PS2_ALPS=y
630CONFIG_MOUSE_PS2_LOGIPS2PP=y 658CONFIG_MOUSE_PS2_LOGIPS2PP=y
631CONFIG_MOUSE_PS2_SYNAPTICS=y 659CONFIG_MOUSE_PS2_SYNAPTICS=y
632CONFIG_MOUSE_PS2_LIFEBOOK=y
633CONFIG_MOUSE_PS2_TRACKPOINT=y 660CONFIG_MOUSE_PS2_TRACKPOINT=y
634# CONFIG_MOUSE_PS2_ELANTECH is not set 661# CONFIG_MOUSE_PS2_ELANTECH is not set
635# CONFIG_MOUSE_PS2_TOUCHKIT is not set 662# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -649,7 +676,7 @@ CONFIG_INPUT_M68K_BEEP=m
649CONFIG_SERIO=y 676CONFIG_SERIO=y
650# CONFIG_SERIO_SERPORT is not set 677# CONFIG_SERIO_SERPORT is not set
651# CONFIG_SERIO_PARKBD is not set 678# CONFIG_SERIO_PARKBD is not set
652CONFIG_SERIO_LIBPS2=y 679CONFIG_SERIO_LIBPS2=m
653# CONFIG_SERIO_RAW is not set 680# CONFIG_SERIO_RAW is not set
654# CONFIG_GAMEPORT is not set 681# CONFIG_GAMEPORT is not set
655 682
@@ -673,6 +700,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
673# Non-8250 serial port support 700# Non-8250 serial port support
674# 701#
675CONFIG_UNIX98_PTYS=y 702CONFIG_UNIX98_PTYS=y
703# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
676CONFIG_LEGACY_PTYS=y 704CONFIG_LEGACY_PTYS=y
677CONFIG_LEGACY_PTY_COUNT=256 705CONFIG_LEGACY_PTY_COUNT=256
678CONFIG_PRINTER=m 706CONFIG_PRINTER=m
@@ -760,6 +788,7 @@ CONFIG_FB_ATARI=y
760# CONFIG_FB_VIRTUAL is not set 788# CONFIG_FB_VIRTUAL is not set
761# CONFIG_FB_METRONOME is not set 789# CONFIG_FB_METRONOME is not set
762# CONFIG_FB_MB862XX is not set 790# CONFIG_FB_MB862XX is not set
791# CONFIG_FB_BROADSHEET is not set
763# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 792# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
764 793
765# 794#
@@ -794,7 +823,6 @@ CONFIG_HIDRAW=y
794# 823#
795# Special HID drivers 824# Special HID drivers
796# 825#
797CONFIG_HID_COMPAT=y
798# CONFIG_USB_SUPPORT is not set 826# CONFIG_USB_SUPPORT is not set
799# CONFIG_MMC is not set 827# CONFIG_MMC is not set
800# CONFIG_MEMSTICK is not set 828# CONFIG_MEMSTICK is not set
@@ -805,14 +833,14 @@ CONFIG_HID_COMPAT=y
805# CONFIG_AUXDISPLAY is not set 833# CONFIG_AUXDISPLAY is not set
806# CONFIG_UIO is not set 834# CONFIG_UIO is not set
807# CONFIG_STAGING is not set 835# CONFIG_STAGING is not set
808CONFIG_STAGING_EXCLUDE_BUILD=y
809 836
810# 837#
811# Character devices 838# Character devices
812# 839#
813CONFIG_ATARI_MFPSER=m 840CONFIG_ATARI_MFPSER=y
814CONFIG_ATARI_MIDI=m 841CONFIG_ATARI_MIDI=y
815CONFIG_ATARI_DSP56K=m 842CONFIG_ATARI_DSP56K=m
843CONFIG_SERIAL_CONSOLE=y
816 844
817# 845#
818# File systems 846# File systems
@@ -821,6 +849,7 @@ CONFIG_EXT2_FS=y
821# CONFIG_EXT2_FS_XATTR is not set 849# CONFIG_EXT2_FS_XATTR is not set
822# CONFIG_EXT2_FS_XIP is not set 850# CONFIG_EXT2_FS_XIP is not set
823CONFIG_EXT3_FS=y 851CONFIG_EXT3_FS=y
852# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
824# CONFIG_EXT3_FS_XATTR is not set 853# CONFIG_EXT3_FS_XATTR is not set
825# CONFIG_EXT4_FS is not set 854# CONFIG_EXT4_FS is not set
826CONFIG_JBD=y 855CONFIG_JBD=y
@@ -847,13 +876,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
847# CONFIG_OCFS2_FS_STATS is not set 876# CONFIG_OCFS2_FS_STATS is not set
848# CONFIG_OCFS2_DEBUG_MASKLOG is not set 877# CONFIG_OCFS2_DEBUG_MASKLOG is not set
849# CONFIG_OCFS2_DEBUG_FS is not set 878# CONFIG_OCFS2_DEBUG_FS is not set
850# CONFIG_OCFS2_COMPAT_JBD is not set 879# CONFIG_OCFS2_FS_POSIX_ACL is not set
880# CONFIG_BTRFS_FS is not set
851CONFIG_DNOTIFY=y 881CONFIG_DNOTIFY=y
852CONFIG_INOTIFY=y 882CONFIG_INOTIFY=y
853CONFIG_INOTIFY_USER=y 883CONFIG_INOTIFY_USER=y
854CONFIG_QUOTA=y 884CONFIG_QUOTA=y
855CONFIG_QUOTA_NETLINK_INTERFACE=y 885CONFIG_QUOTA_NETLINK_INTERFACE=y
856# CONFIG_PRINT_QUOTA_WARNING is not set 886# CONFIG_PRINT_QUOTA_WARNING is not set
887CONFIG_QUOTA_TREE=m
857# CONFIG_QFMT_V1 is not set 888# CONFIG_QFMT_V1 is not set
858# CONFIG_QFMT_V2 is not set 889# CONFIG_QFMT_V2 is not set
859CONFIG_QUOTACTL=y 890CONFIG_QUOTACTL=y
@@ -862,6 +893,11 @@ CONFIG_AUTOFS4_FS=m
862CONFIG_FUSE_FS=m 893CONFIG_FUSE_FS=m
863 894
864# 895#
896# Caches
897#
898# CONFIG_FSCACHE is not set
899
900#
865# CD-ROM/DVD Filesystems 901# CD-ROM/DVD Filesystems
866# 902#
867CONFIG_ISO9660_FS=y 903CONFIG_ISO9660_FS=y
@@ -892,10 +928,7 @@ CONFIG_TMPFS=y
892# CONFIG_TMPFS_POSIX_ACL is not set 928# CONFIG_TMPFS_POSIX_ACL is not set
893# CONFIG_HUGETLB_PAGE is not set 929# CONFIG_HUGETLB_PAGE is not set
894CONFIG_CONFIGFS_FS=m 930CONFIG_CONFIGFS_FS=m
895 931CONFIG_MISC_FILESYSTEMS=y
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set 932# CONFIG_ADFS_FS is not set
900CONFIG_AFFS_FS=m 933CONFIG_AFFS_FS=m
901CONFIG_HFS_FS=m 934CONFIG_HFS_FS=m
@@ -904,6 +937,9 @@ CONFIG_HFSPLUS_FS=m
904# CONFIG_BFS_FS is not set 937# CONFIG_BFS_FS is not set
905# CONFIG_EFS_FS is not set 938# CONFIG_EFS_FS is not set
906CONFIG_CRAMFS=m 939CONFIG_CRAMFS=m
940CONFIG_SQUASHFS=m
941# CONFIG_SQUASHFS_EMBEDDED is not set
942CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
907# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
908CONFIG_MINIX_FS=y 944CONFIG_MINIX_FS=y
909# CONFIG_OMFS_FS is not set 945# CONFIG_OMFS_FS is not set
@@ -914,22 +950,24 @@ CONFIG_SYSV_FS=m
914CONFIG_UFS_FS=m 950CONFIG_UFS_FS=m
915# CONFIG_UFS_FS_WRITE is not set 951# CONFIG_UFS_FS_WRITE is not set
916# CONFIG_UFS_DEBUG is not set 952# CONFIG_UFS_DEBUG is not set
953# CONFIG_NILFS2_FS is not set
917CONFIG_NETWORK_FILESYSTEMS=y 954CONFIG_NETWORK_FILESYSTEMS=y
918CONFIG_NFS_FS=m 955CONFIG_NFS_FS=y
919CONFIG_NFS_V3=y 956CONFIG_NFS_V3=y
920# CONFIG_NFS_V3_ACL is not set 957# CONFIG_NFS_V3_ACL is not set
921# CONFIG_NFS_V4 is not set 958CONFIG_NFS_V4=y
959# CONFIG_ROOT_NFS is not set
922CONFIG_NFSD=m 960CONFIG_NFSD=m
923CONFIG_NFSD_V3=y 961CONFIG_NFSD_V3=y
924# CONFIG_NFSD_V3_ACL is not set 962# CONFIG_NFSD_V3_ACL is not set
925# CONFIG_NFSD_V4 is not set 963# CONFIG_NFSD_V4 is not set
926CONFIG_LOCKD=m 964CONFIG_LOCKD=y
927CONFIG_LOCKD_V4=y 965CONFIG_LOCKD_V4=y
928CONFIG_EXPORTFS=m 966CONFIG_EXPORTFS=m
929CONFIG_NFS_COMMON=y 967CONFIG_NFS_COMMON=y
930CONFIG_SUNRPC=m 968CONFIG_SUNRPC=y
931# CONFIG_SUNRPC_REGISTER_V4 is not set 969CONFIG_SUNRPC_GSS=y
932# CONFIG_RPCSEC_GSS_KRB5 is not set 970CONFIG_RPCSEC_GSS_KRB5=y
933# CONFIG_RPCSEC_GSS_SPKM3 is not set 971# CONFIG_RPCSEC_GSS_SPKM3 is not set
934CONFIG_SMB_FS=m 972CONFIG_SMB_FS=m
935CONFIG_SMB_NLS_DEFAULT=y 973CONFIG_SMB_NLS_DEFAULT=y
@@ -1004,11 +1042,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1004CONFIG_DEBUG_MEMORY_INIT=y 1042CONFIG_DEBUG_MEMORY_INIT=y
1005# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1043# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1006CONFIG_SYSCTL_SYSCALL_CHECK=y 1044CONFIG_SYSCTL_SYSCALL_CHECK=y
1007
1008#
1009# Tracers
1010#
1011# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1012# CONFIG_SAMPLES is not set 1045# CONFIG_SAMPLES is not set
1013 1046
1014# 1047#
@@ -1029,13 +1062,21 @@ CONFIG_CRYPTO=y
1029# 1062#
1030# CONFIG_CRYPTO_FIPS is not set 1063# CONFIG_CRYPTO_FIPS is not set
1031CONFIG_CRYPTO_ALGAPI=y 1064CONFIG_CRYPTO_ALGAPI=y
1032CONFIG_CRYPTO_AEAD=y 1065CONFIG_CRYPTO_ALGAPI2=y
1066CONFIG_CRYPTO_AEAD=m
1067CONFIG_CRYPTO_AEAD2=y
1033CONFIG_CRYPTO_BLKCIPHER=y 1068CONFIG_CRYPTO_BLKCIPHER=y
1069CONFIG_CRYPTO_BLKCIPHER2=y
1034CONFIG_CRYPTO_HASH=y 1070CONFIG_CRYPTO_HASH=y
1035CONFIG_CRYPTO_RNG=y 1071CONFIG_CRYPTO_HASH2=y
1072CONFIG_CRYPTO_RNG=m
1073CONFIG_CRYPTO_RNG2=y
1074CONFIG_CRYPTO_PCOMP=y
1036CONFIG_CRYPTO_MANAGER=y 1075CONFIG_CRYPTO_MANAGER=y
1076CONFIG_CRYPTO_MANAGER2=y
1037CONFIG_CRYPTO_GF128MUL=m 1077CONFIG_CRYPTO_GF128MUL=m
1038CONFIG_CRYPTO_NULL=m 1078CONFIG_CRYPTO_NULL=m
1079CONFIG_CRYPTO_WORKQUEUE=y
1039CONFIG_CRYPTO_CRYPTD=m 1080CONFIG_CRYPTO_CRYPTD=m
1040CONFIG_CRYPTO_AUTHENC=m 1081CONFIG_CRYPTO_AUTHENC=m
1041CONFIG_CRYPTO_TEST=m 1082CONFIG_CRYPTO_TEST=m
@@ -1050,7 +1091,7 @@ CONFIG_CRYPTO_SEQIV=m
1050# 1091#
1051# Block modes 1092# Block modes
1052# 1093#
1053CONFIG_CRYPTO_CBC=m 1094CONFIG_CRYPTO_CBC=y
1054CONFIG_CRYPTO_CTR=m 1095CONFIG_CRYPTO_CTR=m
1055CONFIG_CRYPTO_CTS=m 1096CONFIG_CRYPTO_CTS=m
1056CONFIG_CRYPTO_ECB=m 1097CONFIG_CRYPTO_ECB=m
@@ -1069,7 +1110,7 @@ CONFIG_CRYPTO_XCBC=m
1069# 1110#
1070CONFIG_CRYPTO_CRC32C=m 1111CONFIG_CRYPTO_CRC32C=m
1071CONFIG_CRYPTO_MD4=m 1112CONFIG_CRYPTO_MD4=m
1072CONFIG_CRYPTO_MD5=m 1113CONFIG_CRYPTO_MD5=y
1073CONFIG_CRYPTO_MICHAEL_MIC=m 1114CONFIG_CRYPTO_MICHAEL_MIC=m
1074CONFIG_CRYPTO_RMD128=m 1115CONFIG_CRYPTO_RMD128=m
1075CONFIG_CRYPTO_RMD160=m 1116CONFIG_CRYPTO_RMD160=m
@@ -1091,7 +1132,7 @@ CONFIG_CRYPTO_BLOWFISH=m
1091CONFIG_CRYPTO_CAMELLIA=m 1132CONFIG_CRYPTO_CAMELLIA=m
1092CONFIG_CRYPTO_CAST5=m 1133CONFIG_CRYPTO_CAST5=m
1093CONFIG_CRYPTO_CAST6=m 1134CONFIG_CRYPTO_CAST6=m
1094CONFIG_CRYPTO_DES=m 1135CONFIG_CRYPTO_DES=y
1095CONFIG_CRYPTO_FCRYPT=m 1136CONFIG_CRYPTO_FCRYPT=m
1096CONFIG_CRYPTO_KHAZAD=m 1137CONFIG_CRYPTO_KHAZAD=m
1097CONFIG_CRYPTO_SALSA20=m 1138CONFIG_CRYPTO_SALSA20=m
@@ -1105,6 +1146,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1105# Compression 1146# Compression
1106# 1147#
1107CONFIG_CRYPTO_DEFLATE=m 1148CONFIG_CRYPTO_DEFLATE=m
1149CONFIG_CRYPTO_ZLIB=m
1108CONFIG_CRYPTO_LZO=m 1150CONFIG_CRYPTO_LZO=m
1109 1151
1110# 1152#
@@ -1112,11 +1154,13 @@ CONFIG_CRYPTO_LZO=m
1112# 1154#
1113# CONFIG_CRYPTO_ANSI_CPRNG is not set 1155# CONFIG_CRYPTO_ANSI_CPRNG is not set
1114# CONFIG_CRYPTO_HW is not set 1156# CONFIG_CRYPTO_HW is not set
1157# CONFIG_BINARY_PRINTF is not set
1115 1158
1116# 1159#
1117# Library routines 1160# Library routines
1118# 1161#
1119CONFIG_BITREVERSE=y 1162CONFIG_BITREVERSE=y
1163CONFIG_GENERIC_FIND_LAST_BIT=y
1120CONFIG_CRC_CCITT=m 1164CONFIG_CRC_CCITT=m
1121CONFIG_CRC16=y 1165CONFIG_CRC16=y
1122CONFIG_CRC_T10DIF=y 1166CONFIG_CRC_T10DIF=y
@@ -1128,10 +1172,13 @@ CONFIG_ZLIB_INFLATE=y
1128CONFIG_ZLIB_DEFLATE=m 1172CONFIG_ZLIB_DEFLATE=m
1129CONFIG_LZO_COMPRESS=m 1173CONFIG_LZO_COMPRESS=m
1130CONFIG_LZO_DECOMPRESS=m 1174CONFIG_LZO_DECOMPRESS=m
1175CONFIG_DECOMPRESS_GZIP=y
1176CONFIG_DECOMPRESS_BZIP2=y
1177CONFIG_DECOMPRESS_LZMA=y
1131CONFIG_TEXTSEARCH=y 1178CONFIG_TEXTSEARCH=y
1132CONFIG_TEXTSEARCH_KMP=m 1179CONFIG_TEXTSEARCH_KMP=m
1133CONFIG_TEXTSEARCH_BM=m 1180CONFIG_TEXTSEARCH_BM=m
1134CONFIG_TEXTSEARCH_FSM=m 1181CONFIG_TEXTSEARCH_FSM=m
1135CONFIG_PLIST=y
1136CONFIG_HAS_IOMEM=y 1182CONFIG_HAS_IOMEM=y
1137CONFIG_HAS_DMA=y 1183CONFIG_HAS_DMA=y
1184CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index d3d9814a91de..6e6b1aa66682 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:45 2008 4# Wed Apr 22 20:47:59 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -143,12 +154,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
143CONFIG_NEED_MULTIPLE_NODES=y 154CONFIG_NEED_MULTIPLE_NODES=y
144CONFIG_PAGEFLAGS_EXTENDED=y 155CONFIG_PAGEFLAGS_EXTENDED=y
145CONFIG_SPLIT_PTLOCK_CPUS=4 156CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set 157# CONFIG_PHYS_ADDR_T_64BIT is not set
148CONFIG_ZONE_DMA_FLAG=1 158CONFIG_ZONE_DMA_FLAG=1
149CONFIG_BOUNCE=y 159CONFIG_BOUNCE=y
150CONFIG_VIRT_TO_BUS=y 160CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y 161CONFIG_UNEVICTABLE_LRU=y
162CONFIG_HAVE_MLOCK=y
163CONFIG_HAVE_MLOCKED_PAGE_BIT=y
152 164
153# 165#
154# General setup 166# General setup
@@ -258,6 +270,7 @@ CONFIG_NETFILTER_XTABLES=m
258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 270CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 271CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
260CONFIG_NETFILTER_XT_TARGET_DSCP=m 272CONFIG_NETFILTER_XT_TARGET_DSCP=m
273CONFIG_NETFILTER_XT_TARGET_HL=m
261CONFIG_NETFILTER_XT_TARGET_MARK=m 274CONFIG_NETFILTER_XT_TARGET_MARK=m
262CONFIG_NETFILTER_XT_TARGET_NFLOG=m 275CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 276CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -266,6 +279,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
266CONFIG_NETFILTER_XT_TARGET_TRACE=m 279CONFIG_NETFILTER_XT_TARGET_TRACE=m
267CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 280CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
268CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 281CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
282CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
269CONFIG_NETFILTER_XT_MATCH_COMMENT=m 283CONFIG_NETFILTER_XT_MATCH_COMMENT=m
270CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 284CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
271CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 285CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -276,6 +290,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
276CONFIG_NETFILTER_XT_MATCH_ESP=m 290CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 291CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
278CONFIG_NETFILTER_XT_MATCH_HELPER=m 292CONFIG_NETFILTER_XT_MATCH_HELPER=m
293CONFIG_NETFILTER_XT_MATCH_HL=m
279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 294CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
280CONFIG_NETFILTER_XT_MATCH_LENGTH=m 295CONFIG_NETFILTER_XT_MATCH_LENGTH=m
281CONFIG_NETFILTER_XT_MATCH_LIMIT=m 296CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -354,25 +369,20 @@ CONFIG_IP6_NF_MATCH_HL=m
354CONFIG_IP6_NF_MATCH_IPV6HEADER=m 369CONFIG_IP6_NF_MATCH_IPV6HEADER=m
355CONFIG_IP6_NF_MATCH_MH=m 370CONFIG_IP6_NF_MATCH_MH=m
356CONFIG_IP6_NF_MATCH_RT=m 371CONFIG_IP6_NF_MATCH_RT=m
372CONFIG_IP6_NF_TARGET_HL=m
357CONFIG_IP6_NF_TARGET_LOG=m 373CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m 374CONFIG_IP6_NF_FILTER=m
359CONFIG_IP6_NF_TARGET_REJECT=m 375CONFIG_IP6_NF_TARGET_REJECT=m
360CONFIG_IP6_NF_MANGLE=m 376CONFIG_IP6_NF_MANGLE=m
361CONFIG_IP6_NF_TARGET_HL=m
362CONFIG_IP6_NF_RAW=m 377CONFIG_IP6_NF_RAW=m
363CONFIG_IP_DCCP=m 378CONFIG_IP_DCCP=m
364CONFIG_INET_DCCP_DIAG=m 379CONFIG_INET_DCCP_DIAG=m
365CONFIG_IP_DCCP_ACKVEC=y
366 380
367# 381#
368# DCCP CCIDs Configuration (EXPERIMENTAL) 382# DCCP CCIDs Configuration (EXPERIMENTAL)
369# 383#
370CONFIG_IP_DCCP_CCID2=m
371# CONFIG_IP_DCCP_CCID2_DEBUG is not set 384# CONFIG_IP_DCCP_CCID2_DEBUG is not set
372CONFIG_IP_DCCP_CCID3=m 385# CONFIG_IP_DCCP_CCID3 is not set
373# CONFIG_IP_DCCP_CCID3_DEBUG is not set
374CONFIG_IP_DCCP_CCID3_RTO=100
375CONFIG_IP_DCCP_TFRC_LIB=m
376CONFIG_IP_SCTP=m 386CONFIG_IP_SCTP=m
377# CONFIG_SCTP_DBG_MSG is not set 387# CONFIG_SCTP_DBG_MSG is not set
378# CONFIG_SCTP_DBG_OBJCNT is not set 388# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -394,8 +404,10 @@ CONFIG_ATALK=m
394# CONFIG_LAPB is not set 404# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 405# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 406# CONFIG_WAN_ROUTER is not set
407# CONFIG_PHONET is not set
397# CONFIG_NET_SCHED is not set 408# CONFIG_NET_SCHED is not set
398CONFIG_NET_CLS_ROUTE=y 409CONFIG_NET_CLS_ROUTE=y
410# CONFIG_DCB is not set
399 411
400# 412#
401# Network testing 413# Network testing
@@ -406,8 +418,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 418# CONFIG_IRDA is not set
407# CONFIG_BT is not set 419# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 420# CONFIG_AF_RXRPC is not set
409# CONFIG_PHONET is not set
410# CONFIG_WIRELESS is not set 421# CONFIG_WIRELESS is not set
422# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 423# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 424# CONFIG_NET_9P is not set
413 425
@@ -443,9 +455,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
443CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
444# CONFIG_BLK_DEV_HD is not set 456# CONFIG_BLK_DEV_HD is not set
445CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set 459# CONFIG_C2PORT is not set
460
461#
462# EEPROM support
463#
464# CONFIG_EEPROM_93CX6 is not set
449CONFIG_HAVE_IDE=y 465CONFIG_HAVE_IDE=y
450# CONFIG_IDE is not set 466# CONFIG_IDE is not set
451 467
@@ -493,10 +509,13 @@ CONFIG_SCSI_SRP_ATTRS=m
493CONFIG_SCSI_SRP_TGT_ATTRS=y 509CONFIG_SCSI_SRP_TGT_ATTRS=y
494CONFIG_SCSI_LOWLEVEL=y 510CONFIG_SCSI_LOWLEVEL=y
495CONFIG_ISCSI_TCP=m 511CONFIG_ISCSI_TCP=m
512# CONFIG_LIBFC is not set
513# CONFIG_LIBFCOE is not set
496CONFIG_53C700_BE_BUS=y 514CONFIG_53C700_BE_BUS=y
497# CONFIG_SCSI_DEBUG is not set 515# CONFIG_SCSI_DEBUG is not set
498CONFIG_BVME6000_SCSI=y 516CONFIG_BVME6000_SCSI=y
499# CONFIG_SCSI_DH is not set 517# CONFIG_SCSI_DH is not set
518# CONFIG_SCSI_OSD_INITIATOR is not set
500CONFIG_MD=y 519CONFIG_MD=y
501CONFIG_BLK_DEV_MD=m 520CONFIG_BLK_DEV_MD=m
502CONFIG_MD_LINEAR=m 521CONFIG_MD_LINEAR=m
@@ -504,7 +523,7 @@ CONFIG_MD_RAID0=m
504CONFIG_MD_RAID1=m 523CONFIG_MD_RAID1=m
505# CONFIG_MD_RAID10 is not set 524# CONFIG_MD_RAID10 is not set
506CONFIG_MD_RAID456=m 525CONFIG_MD_RAID456=m
507CONFIG_MD_RAID5_RESHAPE=y 526CONFIG_MD_RAID6_PQ=m
508# CONFIG_MD_MULTIPATH is not set 527# CONFIG_MD_MULTIPATH is not set
509# CONFIG_MD_FAULTY is not set 528# CONFIG_MD_FAULTY is not set
510CONFIG_BLK_DEV_DM=m 529CONFIG_BLK_DEV_DM=m
@@ -517,6 +536,7 @@ CONFIG_DM_MULTIPATH=m
517# CONFIG_DM_DELAY is not set 536# CONFIG_DM_DELAY is not set
518CONFIG_DM_UEVENT=y 537CONFIG_DM_UEVENT=y
519CONFIG_NETDEVICES=y 538CONFIG_NETDEVICES=y
539CONFIG_COMPAT_NET_DEV_OPS=y
520CONFIG_DUMMY=m 540CONFIG_DUMMY=m
521# CONFIG_BONDING is not set 541# CONFIG_BONDING is not set
522CONFIG_MACVLAN=m 542CONFIG_MACVLAN=m
@@ -527,6 +547,8 @@ CONFIG_VETH=m
527CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
528# CONFIG_MII is not set 548# CONFIG_MII is not set
529CONFIG_BVME6000_NET=y 549CONFIG_BVME6000_NET=y
550# CONFIG_ETHOC is not set
551# CONFIG_DNET is not set
530# CONFIG_IBM_NEW_EMAC_ZMII is not set 552# CONFIG_IBM_NEW_EMAC_ZMII is not set
531# CONFIG_IBM_NEW_EMAC_RGMII is not set 553# CONFIG_IBM_NEW_EMAC_RGMII is not set
532# CONFIG_IBM_NEW_EMAC_TAH is not set 554# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -543,7 +565,10 @@ CONFIG_BVME6000_NET=y
543# 565#
544# CONFIG_WLAN_PRE80211 is not set 566# CONFIG_WLAN_PRE80211 is not set
545# CONFIG_WLAN_80211 is not set 567# CONFIG_WLAN_80211 is not set
546# CONFIG_IWLWIFI_LEDS is not set 568
569#
570# Enable WiMAX (Networking options) to see the WiMAX drivers
571#
547# CONFIG_WAN is not set 572# CONFIG_WAN is not set
548CONFIG_PPP=m 573CONFIG_PPP=m
549# CONFIG_PPP_MULTILINK is not set 574# CONFIG_PPP_MULTILINK is not set
@@ -601,7 +626,6 @@ CONFIG_MOUSE_PS2=m
601CONFIG_MOUSE_PS2_ALPS=y 626CONFIG_MOUSE_PS2_ALPS=y
602CONFIG_MOUSE_PS2_LOGIPS2PP=y 627CONFIG_MOUSE_PS2_LOGIPS2PP=y
603CONFIG_MOUSE_PS2_SYNAPTICS=y 628CONFIG_MOUSE_PS2_SYNAPTICS=y
604CONFIG_MOUSE_PS2_LIFEBOOK=y
605CONFIG_MOUSE_PS2_TRACKPOINT=y 629CONFIG_MOUSE_PS2_TRACKPOINT=y
606# CONFIG_MOUSE_PS2_ELANTECH is not set 630# CONFIG_MOUSE_PS2_ELANTECH is not set
607# CONFIG_MOUSE_PS2_TOUCHKIT is not set 631# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -641,6 +665,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
641# Non-8250 serial port support 665# Non-8250 serial port support
642# 666#
643CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
668# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
644CONFIG_LEGACY_PTYS=y 669CONFIG_LEGACY_PTYS=y
645CONFIG_LEGACY_PTY_COUNT=256 670CONFIG_LEGACY_PTY_COUNT=256
646# CONFIG_IPMI_HANDLER is not set 671# CONFIG_IPMI_HANDLER is not set
@@ -717,7 +742,6 @@ CONFIG_HIDRAW=y
717# 742#
718# Special HID drivers 743# Special HID drivers
719# 744#
720CONFIG_HID_COMPAT=y
721# CONFIG_USB_SUPPORT is not set 745# CONFIG_USB_SUPPORT is not set
722# CONFIG_MMC is not set 746# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set 747# CONFIG_MEMSTICK is not set
@@ -725,9 +749,9 @@ CONFIG_HID_COMPAT=y
725# CONFIG_ACCESSIBILITY is not set 749# CONFIG_ACCESSIBILITY is not set
726# CONFIG_RTC_CLASS is not set 750# CONFIG_RTC_CLASS is not set
727# CONFIG_DMADEVICES is not set 751# CONFIG_DMADEVICES is not set
752# CONFIG_AUXDISPLAY is not set
728# CONFIG_UIO is not set 753# CONFIG_UIO is not set
729# CONFIG_STAGING is not set 754# CONFIG_STAGING is not set
730CONFIG_STAGING_EXCLUDE_BUILD=y
731 755
732# 756#
733# Character devices 757# Character devices
@@ -742,6 +766,7 @@ CONFIG_EXT2_FS=y
742# CONFIG_EXT2_FS_XATTR is not set 766# CONFIG_EXT2_FS_XATTR is not set
743# CONFIG_EXT2_FS_XIP is not set 767# CONFIG_EXT2_FS_XIP is not set
744CONFIG_EXT3_FS=y 768CONFIG_EXT3_FS=y
769# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
745# CONFIG_EXT3_FS_XATTR is not set 770# CONFIG_EXT3_FS_XATTR is not set
746# CONFIG_EXT4_FS is not set 771# CONFIG_EXT4_FS is not set
747CONFIG_JBD=y 772CONFIG_JBD=y
@@ -768,13 +793,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
768# CONFIG_OCFS2_FS_STATS is not set 793# CONFIG_OCFS2_FS_STATS is not set
769# CONFIG_OCFS2_DEBUG_MASKLOG is not set 794# CONFIG_OCFS2_DEBUG_MASKLOG is not set
770# CONFIG_OCFS2_DEBUG_FS is not set 795# CONFIG_OCFS2_DEBUG_FS is not set
771# CONFIG_OCFS2_COMPAT_JBD is not set 796# CONFIG_OCFS2_FS_POSIX_ACL is not set
797# CONFIG_BTRFS_FS is not set
772CONFIG_DNOTIFY=y 798CONFIG_DNOTIFY=y
773CONFIG_INOTIFY=y 799CONFIG_INOTIFY=y
774CONFIG_INOTIFY_USER=y 800CONFIG_INOTIFY_USER=y
775CONFIG_QUOTA=y 801CONFIG_QUOTA=y
776CONFIG_QUOTA_NETLINK_INTERFACE=y 802CONFIG_QUOTA_NETLINK_INTERFACE=y
777# CONFIG_PRINT_QUOTA_WARNING is not set 803# CONFIG_PRINT_QUOTA_WARNING is not set
804CONFIG_QUOTA_TREE=m
778# CONFIG_QFMT_V1 is not set 805# CONFIG_QFMT_V1 is not set
779# CONFIG_QFMT_V2 is not set 806# CONFIG_QFMT_V2 is not set
780CONFIG_QUOTACTL=y 807CONFIG_QUOTACTL=y
@@ -783,6 +810,11 @@ CONFIG_AUTOFS4_FS=m
783CONFIG_FUSE_FS=m 810CONFIG_FUSE_FS=m
784 811
785# 812#
813# Caches
814#
815# CONFIG_FSCACHE is not set
816
817#
786# CD-ROM/DVD Filesystems 818# CD-ROM/DVD Filesystems
787# 819#
788CONFIG_ISO9660_FS=y 820CONFIG_ISO9660_FS=y
@@ -813,10 +845,7 @@ CONFIG_TMPFS=y
813# CONFIG_TMPFS_POSIX_ACL is not set 845# CONFIG_TMPFS_POSIX_ACL is not set
814# CONFIG_HUGETLB_PAGE is not set 846# CONFIG_HUGETLB_PAGE is not set
815CONFIG_CONFIGFS_FS=m 847CONFIG_CONFIGFS_FS=m
816 848CONFIG_MISC_FILESYSTEMS=y
817#
818# Miscellaneous filesystems
819#
820# CONFIG_ADFS_FS is not set 849# CONFIG_ADFS_FS is not set
821CONFIG_AFFS_FS=m 850CONFIG_AFFS_FS=m
822CONFIG_HFS_FS=m 851CONFIG_HFS_FS=m
@@ -825,6 +854,9 @@ CONFIG_HFSPLUS_FS=m
825# CONFIG_BFS_FS is not set 854# CONFIG_BFS_FS is not set
826# CONFIG_EFS_FS is not set 855# CONFIG_EFS_FS is not set
827CONFIG_CRAMFS=m 856CONFIG_CRAMFS=m
857CONFIG_SQUASHFS=m
858# CONFIG_SQUASHFS_EMBEDDED is not set
859CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
828# CONFIG_VXFS_FS is not set 860# CONFIG_VXFS_FS is not set
829CONFIG_MINIX_FS=y 861CONFIG_MINIX_FS=y
830# CONFIG_OMFS_FS is not set 862# CONFIG_OMFS_FS is not set
@@ -835,6 +867,7 @@ CONFIG_SYSV_FS=m
835CONFIG_UFS_FS=m 867CONFIG_UFS_FS=m
836# CONFIG_UFS_FS_WRITE is not set 868# CONFIG_UFS_FS_WRITE is not set
837# CONFIG_UFS_DEBUG is not set 869# CONFIG_UFS_DEBUG is not set
870# CONFIG_NILFS2_FS is not set
838CONFIG_NETWORK_FILESYSTEMS=y 871CONFIG_NETWORK_FILESYSTEMS=y
839CONFIG_NFS_FS=y 872CONFIG_NFS_FS=y
840CONFIG_NFS_V3=y 873CONFIG_NFS_V3=y
@@ -851,7 +884,6 @@ CONFIG_EXPORTFS=m
851CONFIG_NFS_COMMON=y 884CONFIG_NFS_COMMON=y
852CONFIG_SUNRPC=y 885CONFIG_SUNRPC=y
853CONFIG_SUNRPC_GSS=y 886CONFIG_SUNRPC_GSS=y
854# CONFIG_SUNRPC_REGISTER_V4 is not set
855CONFIG_RPCSEC_GSS_KRB5=y 887CONFIG_RPCSEC_GSS_KRB5=y
856# CONFIG_RPCSEC_GSS_SPKM3 is not set 888# CONFIG_RPCSEC_GSS_SPKM3 is not set
857CONFIG_SMB_FS=m 889CONFIG_SMB_FS=m
@@ -927,11 +959,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
927CONFIG_DEBUG_MEMORY_INIT=y 959CONFIG_DEBUG_MEMORY_INIT=y
928# CONFIG_RCU_CPU_STALL_DETECTOR is not set 960# CONFIG_RCU_CPU_STALL_DETECTOR is not set
929CONFIG_SYSCTL_SYSCALL_CHECK=y 961CONFIG_SYSCTL_SYSCALL_CHECK=y
930
931#
932# Tracers
933#
934# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
935# CONFIG_SAMPLES is not set 962# CONFIG_SAMPLES is not set
936 963
937# 964#
@@ -952,13 +979,21 @@ CONFIG_CRYPTO=y
952# 979#
953# CONFIG_CRYPTO_FIPS is not set 980# CONFIG_CRYPTO_FIPS is not set
954CONFIG_CRYPTO_ALGAPI=y 981CONFIG_CRYPTO_ALGAPI=y
955CONFIG_CRYPTO_AEAD=y 982CONFIG_CRYPTO_ALGAPI2=y
983CONFIG_CRYPTO_AEAD=m
984CONFIG_CRYPTO_AEAD2=y
956CONFIG_CRYPTO_BLKCIPHER=y 985CONFIG_CRYPTO_BLKCIPHER=y
986CONFIG_CRYPTO_BLKCIPHER2=y
957CONFIG_CRYPTO_HASH=y 987CONFIG_CRYPTO_HASH=y
958CONFIG_CRYPTO_RNG=y 988CONFIG_CRYPTO_HASH2=y
989CONFIG_CRYPTO_RNG=m
990CONFIG_CRYPTO_RNG2=y
991CONFIG_CRYPTO_PCOMP=y
959CONFIG_CRYPTO_MANAGER=y 992CONFIG_CRYPTO_MANAGER=y
993CONFIG_CRYPTO_MANAGER2=y
960CONFIG_CRYPTO_GF128MUL=m 994CONFIG_CRYPTO_GF128MUL=m
961CONFIG_CRYPTO_NULL=m 995CONFIG_CRYPTO_NULL=m
996CONFIG_CRYPTO_WORKQUEUE=y
962CONFIG_CRYPTO_CRYPTD=m 997CONFIG_CRYPTO_CRYPTD=m
963CONFIG_CRYPTO_AUTHENC=m 998CONFIG_CRYPTO_AUTHENC=m
964CONFIG_CRYPTO_TEST=m 999CONFIG_CRYPTO_TEST=m
@@ -1028,6 +1063,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1028# Compression 1063# Compression
1029# 1064#
1030CONFIG_CRYPTO_DEFLATE=m 1065CONFIG_CRYPTO_DEFLATE=m
1066CONFIG_CRYPTO_ZLIB=m
1031CONFIG_CRYPTO_LZO=m 1067CONFIG_CRYPTO_LZO=m
1032 1068
1033# 1069#
@@ -1035,11 +1071,13 @@ CONFIG_CRYPTO_LZO=m
1035# 1071#
1036# CONFIG_CRYPTO_ANSI_CPRNG is not set 1072# CONFIG_CRYPTO_ANSI_CPRNG is not set
1037# CONFIG_CRYPTO_HW is not set 1073# CONFIG_CRYPTO_HW is not set
1074# CONFIG_BINARY_PRINTF is not set
1038 1075
1039# 1076#
1040# Library routines 1077# Library routines
1041# 1078#
1042CONFIG_BITREVERSE=m 1079CONFIG_BITREVERSE=m
1080CONFIG_GENERIC_FIND_LAST_BIT=y
1043CONFIG_CRC_CCITT=m 1081CONFIG_CRC_CCITT=m
1044CONFIG_CRC16=m 1082CONFIG_CRC16=m
1045CONFIG_CRC_T10DIF=y 1083CONFIG_CRC_T10DIF=y
@@ -1051,10 +1089,13 @@ CONFIG_ZLIB_INFLATE=y
1051CONFIG_ZLIB_DEFLATE=m 1089CONFIG_ZLIB_DEFLATE=m
1052CONFIG_LZO_COMPRESS=m 1090CONFIG_LZO_COMPRESS=m
1053CONFIG_LZO_DECOMPRESS=m 1091CONFIG_LZO_DECOMPRESS=m
1092CONFIG_DECOMPRESS_GZIP=y
1093CONFIG_DECOMPRESS_BZIP2=y
1094CONFIG_DECOMPRESS_LZMA=y
1054CONFIG_TEXTSEARCH=y 1095CONFIG_TEXTSEARCH=y
1055CONFIG_TEXTSEARCH_KMP=m 1096CONFIG_TEXTSEARCH_KMP=m
1056CONFIG_TEXTSEARCH_BM=m 1097CONFIG_TEXTSEARCH_BM=m
1057CONFIG_TEXTSEARCH_FSM=m 1098CONFIG_TEXTSEARCH_FSM=m
1058CONFIG_PLIST=y
1059CONFIG_HAS_IOMEM=y 1099CONFIG_HAS_IOMEM=y
1060CONFIG_HAS_DMA=y 1100CONFIG_HAS_DMA=y
1101CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 5556ef088d04..bc0565f63a15 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:46 2008 4# Wed Apr 22 20:48:01 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -141,12 +152,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
141CONFIG_NEED_MULTIPLE_NODES=y 152CONFIG_NEED_MULTIPLE_NODES=y
142CONFIG_PAGEFLAGS_EXTENDED=y 153CONFIG_PAGEFLAGS_EXTENDED=y
143CONFIG_SPLIT_PTLOCK_CPUS=4 154CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
145# CONFIG_PHYS_ADDR_T_64BIT is not set 155# CONFIG_PHYS_ADDR_T_64BIT is not set
146CONFIG_ZONE_DMA_FLAG=1 156CONFIG_ZONE_DMA_FLAG=1
147CONFIG_BOUNCE=y 157CONFIG_BOUNCE=y
148CONFIG_VIRT_TO_BUS=y 158CONFIG_VIRT_TO_BUS=y
149CONFIG_UNEVICTABLE_LRU=y 159CONFIG_UNEVICTABLE_LRU=y
160CONFIG_HAVE_MLOCK=y
161CONFIG_HAVE_MLOCKED_PAGE_BIT=y
150 162
151# 163#
152# General setup 164# General setup
@@ -257,6 +269,7 @@ CONFIG_NETFILTER_XTABLES=m
257CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 269CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
258CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 270CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
259CONFIG_NETFILTER_XT_TARGET_DSCP=m 271CONFIG_NETFILTER_XT_TARGET_DSCP=m
272CONFIG_NETFILTER_XT_TARGET_HL=m
260CONFIG_NETFILTER_XT_TARGET_MARK=m 273CONFIG_NETFILTER_XT_TARGET_MARK=m
261CONFIG_NETFILTER_XT_TARGET_NFLOG=m 274CONFIG_NETFILTER_XT_TARGET_NFLOG=m
262CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 275CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -265,6 +278,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
265CONFIG_NETFILTER_XT_TARGET_TRACE=m 278CONFIG_NETFILTER_XT_TARGET_TRACE=m
266CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 279CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
267CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 280CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
281CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
268CONFIG_NETFILTER_XT_MATCH_COMMENT=m 282CONFIG_NETFILTER_XT_MATCH_COMMENT=m
269CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 283CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
270CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 284CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -275,6 +289,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
275CONFIG_NETFILTER_XT_MATCH_ESP=m 289CONFIG_NETFILTER_XT_MATCH_ESP=m
276CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 290CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
277CONFIG_NETFILTER_XT_MATCH_HELPER=m 291CONFIG_NETFILTER_XT_MATCH_HELPER=m
292CONFIG_NETFILTER_XT_MATCH_HL=m
278CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 293CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
279CONFIG_NETFILTER_XT_MATCH_LENGTH=m 294CONFIG_NETFILTER_XT_MATCH_LENGTH=m
280CONFIG_NETFILTER_XT_MATCH_LIMIT=m 295CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -353,25 +368,20 @@ CONFIG_IP6_NF_MATCH_HL=m
353CONFIG_IP6_NF_MATCH_IPV6HEADER=m 368CONFIG_IP6_NF_MATCH_IPV6HEADER=m
354CONFIG_IP6_NF_MATCH_MH=m 369CONFIG_IP6_NF_MATCH_MH=m
355CONFIG_IP6_NF_MATCH_RT=m 370CONFIG_IP6_NF_MATCH_RT=m
371CONFIG_IP6_NF_TARGET_HL=m
356CONFIG_IP6_NF_TARGET_LOG=m 372CONFIG_IP6_NF_TARGET_LOG=m
357CONFIG_IP6_NF_FILTER=m 373CONFIG_IP6_NF_FILTER=m
358CONFIG_IP6_NF_TARGET_REJECT=m 374CONFIG_IP6_NF_TARGET_REJECT=m
359CONFIG_IP6_NF_MANGLE=m 375CONFIG_IP6_NF_MANGLE=m
360CONFIG_IP6_NF_TARGET_HL=m
361CONFIG_IP6_NF_RAW=m 376CONFIG_IP6_NF_RAW=m
362CONFIG_IP_DCCP=m 377CONFIG_IP_DCCP=m
363CONFIG_INET_DCCP_DIAG=m 378CONFIG_INET_DCCP_DIAG=m
364CONFIG_IP_DCCP_ACKVEC=y
365 379
366# 380#
367# DCCP CCIDs Configuration (EXPERIMENTAL) 381# DCCP CCIDs Configuration (EXPERIMENTAL)
368# 382#
369CONFIG_IP_DCCP_CCID2=m
370# CONFIG_IP_DCCP_CCID2_DEBUG is not set 383# CONFIG_IP_DCCP_CCID2_DEBUG is not set
371CONFIG_IP_DCCP_CCID3=m 384# CONFIG_IP_DCCP_CCID3 is not set
372# CONFIG_IP_DCCP_CCID3_DEBUG is not set
373CONFIG_IP_DCCP_CCID3_RTO=100
374CONFIG_IP_DCCP_TFRC_LIB=m
375CONFIG_IP_SCTP=m 385CONFIG_IP_SCTP=m
376# CONFIG_SCTP_DBG_MSG is not set 386# CONFIG_SCTP_DBG_MSG is not set
377# CONFIG_SCTP_DBG_OBJCNT is not set 387# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -393,8 +403,10 @@ CONFIG_ATALK=m
393# CONFIG_LAPB is not set 403# CONFIG_LAPB is not set
394# CONFIG_ECONET is not set 404# CONFIG_ECONET is not set
395# CONFIG_WAN_ROUTER is not set 405# CONFIG_WAN_ROUTER is not set
406# CONFIG_PHONET is not set
396# CONFIG_NET_SCHED is not set 407# CONFIG_NET_SCHED is not set
397CONFIG_NET_CLS_ROUTE=y 408CONFIG_NET_CLS_ROUTE=y
409# CONFIG_DCB is not set
398 410
399# 411#
400# Network testing 412# Network testing
@@ -405,8 +417,8 @@ CONFIG_NET_CLS_ROUTE=y
405# CONFIG_IRDA is not set 417# CONFIG_IRDA is not set
406# CONFIG_BT is not set 418# CONFIG_BT is not set
407# CONFIG_AF_RXRPC is not set 419# CONFIG_AF_RXRPC is not set
408# CONFIG_PHONET is not set
409# CONFIG_WIRELESS is not set 420# CONFIG_WIRELESS is not set
421# CONFIG_WIMAX is not set
410# CONFIG_RFKILL is not set 422# CONFIG_RFKILL is not set
411# CONFIG_NET_9P is not set 423# CONFIG_NET_9P is not set
412 424
@@ -442,9 +454,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
442CONFIG_ATA_OVER_ETH=m 454CONFIG_ATA_OVER_ETH=m
443# CONFIG_BLK_DEV_HD is not set 455# CONFIG_BLK_DEV_HD is not set
444CONFIG_MISC_DEVICES=y 456CONFIG_MISC_DEVICES=y
445# CONFIG_EEPROM_93CX6 is not set
446# CONFIG_ENCLOSURE_SERVICES is not set 457# CONFIG_ENCLOSURE_SERVICES is not set
447# CONFIG_C2PORT is not set 458# CONFIG_C2PORT is not set
459
460#
461# EEPROM support
462#
463# CONFIG_EEPROM_93CX6 is not set
448CONFIG_HAVE_IDE=y 464CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 465# CONFIG_IDE is not set
450 466
@@ -492,8 +508,11 @@ CONFIG_SCSI_SRP_ATTRS=m
492CONFIG_SCSI_SRP_TGT_ATTRS=y 508CONFIG_SCSI_SRP_TGT_ATTRS=y
493CONFIG_SCSI_LOWLEVEL=y 509CONFIG_SCSI_LOWLEVEL=y
494CONFIG_ISCSI_TCP=m 510CONFIG_ISCSI_TCP=m
511# CONFIG_LIBFC is not set
512# CONFIG_LIBFCOE is not set
495# CONFIG_SCSI_DEBUG is not set 513# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_DH is not set 514# CONFIG_SCSI_DH is not set
515# CONFIG_SCSI_OSD_INITIATOR is not set
497CONFIG_MD=y 516CONFIG_MD=y
498CONFIG_BLK_DEV_MD=m 517CONFIG_BLK_DEV_MD=m
499CONFIG_MD_LINEAR=m 518CONFIG_MD_LINEAR=m
@@ -501,7 +520,7 @@ CONFIG_MD_RAID0=m
501CONFIG_MD_RAID1=m 520CONFIG_MD_RAID1=m
502# CONFIG_MD_RAID10 is not set 521# CONFIG_MD_RAID10 is not set
503CONFIG_MD_RAID456=m 522CONFIG_MD_RAID456=m
504CONFIG_MD_RAID5_RESHAPE=y 523CONFIG_MD_RAID6_PQ=m
505# CONFIG_MD_MULTIPATH is not set 524# CONFIG_MD_MULTIPATH is not set
506# CONFIG_MD_FAULTY is not set 525# CONFIG_MD_FAULTY is not set
507CONFIG_BLK_DEV_DM=m 526CONFIG_BLK_DEV_DM=m
@@ -514,6 +533,7 @@ CONFIG_DM_MULTIPATH=m
514# CONFIG_DM_DELAY is not set 533# CONFIG_DM_DELAY is not set
515CONFIG_DM_UEVENT=y 534CONFIG_DM_UEVENT=y
516CONFIG_NETDEVICES=y 535CONFIG_NETDEVICES=y
536CONFIG_COMPAT_NET_DEV_OPS=y
517CONFIG_DUMMY=m 537CONFIG_DUMMY=m
518# CONFIG_BONDING is not set 538# CONFIG_BONDING is not set
519CONFIG_MACVLAN=m 539CONFIG_MACVLAN=m
@@ -524,6 +544,8 @@ CONFIG_VETH=m
524CONFIG_NET_ETHERNET=y 544CONFIG_NET_ETHERNET=y
525# CONFIG_MII is not set 545# CONFIG_MII is not set
526CONFIG_HPLANCE=y 546CONFIG_HPLANCE=y
547# CONFIG_ETHOC is not set
548# CONFIG_DNET is not set
527# CONFIG_IBM_NEW_EMAC_ZMII is not set 549# CONFIG_IBM_NEW_EMAC_ZMII is not set
528# CONFIG_IBM_NEW_EMAC_RGMII is not set 550# CONFIG_IBM_NEW_EMAC_RGMII is not set
529# CONFIG_IBM_NEW_EMAC_TAH is not set 551# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -540,7 +562,10 @@ CONFIG_HPLANCE=y
540# 562#
541# CONFIG_WLAN_PRE80211 is not set 563# CONFIG_WLAN_PRE80211 is not set
542# CONFIG_WLAN_80211 is not set 564# CONFIG_WLAN_80211 is not set
543# CONFIG_IWLWIFI_LEDS is not set 565
566#
567# Enable WiMAX (Networking options) to see the WiMAX drivers
568#
544# CONFIG_WAN is not set 569# CONFIG_WAN is not set
545CONFIG_PPP=m 570CONFIG_PPP=m
546# CONFIG_PPP_MULTILINK is not set 571# CONFIG_PPP_MULTILINK is not set
@@ -600,7 +625,6 @@ CONFIG_MOUSE_PS2=m
600CONFIG_MOUSE_PS2_ALPS=y 625CONFIG_MOUSE_PS2_ALPS=y
601CONFIG_MOUSE_PS2_LOGIPS2PP=y 626CONFIG_MOUSE_PS2_LOGIPS2PP=y
602CONFIG_MOUSE_PS2_SYNAPTICS=y 627CONFIG_MOUSE_PS2_SYNAPTICS=y
603CONFIG_MOUSE_PS2_LIFEBOOK=y
604CONFIG_MOUSE_PS2_TRACKPOINT=y 628CONFIG_MOUSE_PS2_TRACKPOINT=y
605# CONFIG_MOUSE_PS2_ELANTECH is not set 629# CONFIG_MOUSE_PS2_ELANTECH is not set
606# CONFIG_MOUSE_PS2_TOUCHKIT is not set 630# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -646,6 +670,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
646# Non-8250 serial port support 670# Non-8250 serial port support
647# 671#
648CONFIG_UNIX98_PTYS=y 672CONFIG_UNIX98_PTYS=y
673# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
649CONFIG_LEGACY_PTYS=y 674CONFIG_LEGACY_PTYS=y
650CONFIG_LEGACY_PTY_COUNT=256 675CONFIG_LEGACY_PTY_COUNT=256
651# CONFIG_IPMI_HANDLER is not set 676# CONFIG_IPMI_HANDLER is not set
@@ -728,6 +753,7 @@ CONFIG_FB_HP300=y
728# CONFIG_FB_VIRTUAL is not set 753# CONFIG_FB_VIRTUAL is not set
729# CONFIG_FB_METRONOME is not set 754# CONFIG_FB_METRONOME is not set
730# CONFIG_FB_MB862XX is not set 755# CONFIG_FB_MB862XX is not set
756# CONFIG_FB_BROADSHEET is not set
731# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 757# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
732 758
733# 759#
@@ -759,7 +785,6 @@ CONFIG_HIDRAW=y
759# 785#
760# Special HID drivers 786# Special HID drivers
761# 787#
762CONFIG_HID_COMPAT=y
763# CONFIG_USB_SUPPORT is not set 788# CONFIG_USB_SUPPORT is not set
764# CONFIG_MMC is not set 789# CONFIG_MMC is not set
765# CONFIG_MEMSTICK is not set 790# CONFIG_MEMSTICK is not set
@@ -767,9 +792,9 @@ CONFIG_HID_COMPAT=y
767# CONFIG_ACCESSIBILITY is not set 792# CONFIG_ACCESSIBILITY is not set
768# CONFIG_RTC_CLASS is not set 793# CONFIG_RTC_CLASS is not set
769# CONFIG_DMADEVICES is not set 794# CONFIG_DMADEVICES is not set
795# CONFIG_AUXDISPLAY is not set
770# CONFIG_UIO is not set 796# CONFIG_UIO is not set
771# CONFIG_STAGING is not set 797# CONFIG_STAGING is not set
772CONFIG_STAGING_EXCLUDE_BUILD=y
773 798
774# 799#
775# Character devices 800# Character devices
@@ -782,6 +807,7 @@ CONFIG_EXT2_FS=y
782# CONFIG_EXT2_FS_XATTR is not set 807# CONFIG_EXT2_FS_XATTR is not set
783# CONFIG_EXT2_FS_XIP is not set 808# CONFIG_EXT2_FS_XIP is not set
784CONFIG_EXT3_FS=y 809CONFIG_EXT3_FS=y
810# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
785# CONFIG_EXT3_FS_XATTR is not set 811# CONFIG_EXT3_FS_XATTR is not set
786# CONFIG_EXT4_FS is not set 812# CONFIG_EXT4_FS is not set
787CONFIG_JBD=y 813CONFIG_JBD=y
@@ -808,13 +834,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
808# CONFIG_OCFS2_FS_STATS is not set 834# CONFIG_OCFS2_FS_STATS is not set
809# CONFIG_OCFS2_DEBUG_MASKLOG is not set 835# CONFIG_OCFS2_DEBUG_MASKLOG is not set
810# CONFIG_OCFS2_DEBUG_FS is not set 836# CONFIG_OCFS2_DEBUG_FS is not set
811# CONFIG_OCFS2_COMPAT_JBD is not set 837# CONFIG_OCFS2_FS_POSIX_ACL is not set
838# CONFIG_BTRFS_FS is not set
812CONFIG_DNOTIFY=y 839CONFIG_DNOTIFY=y
813CONFIG_INOTIFY=y 840CONFIG_INOTIFY=y
814CONFIG_INOTIFY_USER=y 841CONFIG_INOTIFY_USER=y
815CONFIG_QUOTA=y 842CONFIG_QUOTA=y
816CONFIG_QUOTA_NETLINK_INTERFACE=y 843CONFIG_QUOTA_NETLINK_INTERFACE=y
817# CONFIG_PRINT_QUOTA_WARNING is not set 844# CONFIG_PRINT_QUOTA_WARNING is not set
845CONFIG_QUOTA_TREE=m
818# CONFIG_QFMT_V1 is not set 846# CONFIG_QFMT_V1 is not set
819# CONFIG_QFMT_V2 is not set 847# CONFIG_QFMT_V2 is not set
820CONFIG_QUOTACTL=y 848CONFIG_QUOTACTL=y
@@ -823,6 +851,11 @@ CONFIG_AUTOFS4_FS=m
823CONFIG_FUSE_FS=m 851CONFIG_FUSE_FS=m
824 852
825# 853#
854# Caches
855#
856# CONFIG_FSCACHE is not set
857
858#
826# CD-ROM/DVD Filesystems 859# CD-ROM/DVD Filesystems
827# 860#
828CONFIG_ISO9660_FS=y 861CONFIG_ISO9660_FS=y
@@ -853,10 +886,7 @@ CONFIG_TMPFS=y
853# CONFIG_TMPFS_POSIX_ACL is not set 886# CONFIG_TMPFS_POSIX_ACL is not set
854# CONFIG_HUGETLB_PAGE is not set 887# CONFIG_HUGETLB_PAGE is not set
855CONFIG_CONFIGFS_FS=m 888CONFIG_CONFIGFS_FS=m
856 889CONFIG_MISC_FILESYSTEMS=y
857#
858# Miscellaneous filesystems
859#
860# CONFIG_ADFS_FS is not set 890# CONFIG_ADFS_FS is not set
861CONFIG_AFFS_FS=m 891CONFIG_AFFS_FS=m
862CONFIG_HFS_FS=m 892CONFIG_HFS_FS=m
@@ -865,6 +895,9 @@ CONFIG_HFSPLUS_FS=m
865# CONFIG_BFS_FS is not set 895# CONFIG_BFS_FS is not set
866# CONFIG_EFS_FS is not set 896# CONFIG_EFS_FS is not set
867CONFIG_CRAMFS=m 897CONFIG_CRAMFS=m
898CONFIG_SQUASHFS=m
899# CONFIG_SQUASHFS_EMBEDDED is not set
900CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
868# CONFIG_VXFS_FS is not set 901# CONFIG_VXFS_FS is not set
869CONFIG_MINIX_FS=y 902CONFIG_MINIX_FS=y
870# CONFIG_OMFS_FS is not set 903# CONFIG_OMFS_FS is not set
@@ -875,6 +908,7 @@ CONFIG_SYSV_FS=m
875CONFIG_UFS_FS=m 908CONFIG_UFS_FS=m
876# CONFIG_UFS_FS_WRITE is not set 909# CONFIG_UFS_FS_WRITE is not set
877# CONFIG_UFS_DEBUG is not set 910# CONFIG_UFS_DEBUG is not set
911# CONFIG_NILFS2_FS is not set
878CONFIG_NETWORK_FILESYSTEMS=y 912CONFIG_NETWORK_FILESYSTEMS=y
879CONFIG_NFS_FS=y 913CONFIG_NFS_FS=y
880CONFIG_NFS_V3=y 914CONFIG_NFS_V3=y
@@ -891,7 +925,6 @@ CONFIG_EXPORTFS=m
891CONFIG_NFS_COMMON=y 925CONFIG_NFS_COMMON=y
892CONFIG_SUNRPC=y 926CONFIG_SUNRPC=y
893CONFIG_SUNRPC_GSS=y 927CONFIG_SUNRPC_GSS=y
894# CONFIG_SUNRPC_REGISTER_V4 is not set
895CONFIG_RPCSEC_GSS_KRB5=y 928CONFIG_RPCSEC_GSS_KRB5=y
896# CONFIG_RPCSEC_GSS_SPKM3 is not set 929# CONFIG_RPCSEC_GSS_SPKM3 is not set
897CONFIG_SMB_FS=m 930CONFIG_SMB_FS=m
@@ -966,11 +999,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
966CONFIG_DEBUG_MEMORY_INIT=y 999CONFIG_DEBUG_MEMORY_INIT=y
967# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1000# CONFIG_RCU_CPU_STALL_DETECTOR is not set
968CONFIG_SYSCTL_SYSCALL_CHECK=y 1001CONFIG_SYSCTL_SYSCALL_CHECK=y
969
970#
971# Tracers
972#
973# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
974# CONFIG_SAMPLES is not set 1002# CONFIG_SAMPLES is not set
975 1003
976# 1004#
@@ -991,13 +1019,21 @@ CONFIG_CRYPTO=y
991# 1019#
992# CONFIG_CRYPTO_FIPS is not set 1020# CONFIG_CRYPTO_FIPS is not set
993CONFIG_CRYPTO_ALGAPI=y 1021CONFIG_CRYPTO_ALGAPI=y
994CONFIG_CRYPTO_AEAD=y 1022CONFIG_CRYPTO_ALGAPI2=y
1023CONFIG_CRYPTO_AEAD=m
1024CONFIG_CRYPTO_AEAD2=y
995CONFIG_CRYPTO_BLKCIPHER=y 1025CONFIG_CRYPTO_BLKCIPHER=y
1026CONFIG_CRYPTO_BLKCIPHER2=y
996CONFIG_CRYPTO_HASH=y 1027CONFIG_CRYPTO_HASH=y
997CONFIG_CRYPTO_RNG=y 1028CONFIG_CRYPTO_HASH2=y
1029CONFIG_CRYPTO_RNG=m
1030CONFIG_CRYPTO_RNG2=y
1031CONFIG_CRYPTO_PCOMP=y
998CONFIG_CRYPTO_MANAGER=y 1032CONFIG_CRYPTO_MANAGER=y
1033CONFIG_CRYPTO_MANAGER2=y
999CONFIG_CRYPTO_GF128MUL=m 1034CONFIG_CRYPTO_GF128MUL=m
1000CONFIG_CRYPTO_NULL=m 1035CONFIG_CRYPTO_NULL=m
1036CONFIG_CRYPTO_WORKQUEUE=y
1001CONFIG_CRYPTO_CRYPTD=m 1037CONFIG_CRYPTO_CRYPTD=m
1002CONFIG_CRYPTO_AUTHENC=m 1038CONFIG_CRYPTO_AUTHENC=m
1003CONFIG_CRYPTO_TEST=m 1039CONFIG_CRYPTO_TEST=m
@@ -1067,6 +1103,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1067# Compression 1103# Compression
1068# 1104#
1069CONFIG_CRYPTO_DEFLATE=m 1105CONFIG_CRYPTO_DEFLATE=m
1106CONFIG_CRYPTO_ZLIB=m
1070CONFIG_CRYPTO_LZO=m 1107CONFIG_CRYPTO_LZO=m
1071 1108
1072# 1109#
@@ -1074,11 +1111,13 @@ CONFIG_CRYPTO_LZO=m
1074# 1111#
1075# CONFIG_CRYPTO_ANSI_CPRNG is not set 1112# CONFIG_CRYPTO_ANSI_CPRNG is not set
1076# CONFIG_CRYPTO_HW is not set 1113# CONFIG_CRYPTO_HW is not set
1114# CONFIG_BINARY_PRINTF is not set
1077 1115
1078# 1116#
1079# Library routines 1117# Library routines
1080# 1118#
1081CONFIG_BITREVERSE=y 1119CONFIG_BITREVERSE=y
1120CONFIG_GENERIC_FIND_LAST_BIT=y
1082CONFIG_CRC_CCITT=m 1121CONFIG_CRC_CCITT=m
1083CONFIG_CRC16=m 1122CONFIG_CRC16=m
1084CONFIG_CRC_T10DIF=y 1123CONFIG_CRC_T10DIF=y
@@ -1090,10 +1129,13 @@ CONFIG_ZLIB_INFLATE=y
1090CONFIG_ZLIB_DEFLATE=m 1129CONFIG_ZLIB_DEFLATE=m
1091CONFIG_LZO_COMPRESS=m 1130CONFIG_LZO_COMPRESS=m
1092CONFIG_LZO_DECOMPRESS=m 1131CONFIG_LZO_DECOMPRESS=m
1132CONFIG_DECOMPRESS_GZIP=y
1133CONFIG_DECOMPRESS_BZIP2=y
1134CONFIG_DECOMPRESS_LZMA=y
1093CONFIG_TEXTSEARCH=y 1135CONFIG_TEXTSEARCH=y
1094CONFIG_TEXTSEARCH_KMP=m 1136CONFIG_TEXTSEARCH_KMP=m
1095CONFIG_TEXTSEARCH_BM=m 1137CONFIG_TEXTSEARCH_BM=m
1096CONFIG_TEXTSEARCH_FSM=m 1138CONFIG_TEXTSEARCH_FSM=m
1097CONFIG_PLIST=y
1098CONFIG_HAS_IOMEM=y 1139CONFIG_HAS_IOMEM=y
1099CONFIG_HAS_DMA=y 1140CONFIG_HAS_DMA=y
1141CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index c6de25724a25..9991b64fea57 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:47 2008 4# Wed Apr 22 20:48:03 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -142,12 +153,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
142CONFIG_NEED_MULTIPLE_NODES=y 153CONFIG_NEED_MULTIPLE_NODES=y
143CONFIG_PAGEFLAGS_EXTENDED=y 154CONFIG_PAGEFLAGS_EXTENDED=y
144CONFIG_SPLIT_PTLOCK_CPUS=4 155CONFIG_SPLIT_PTLOCK_CPUS=4
145# CONFIG_RESOURCES_64BIT is not set
146# CONFIG_PHYS_ADDR_T_64BIT is not set 156# CONFIG_PHYS_ADDR_T_64BIT is not set
147CONFIG_ZONE_DMA_FLAG=1 157CONFIG_ZONE_DMA_FLAG=1
148CONFIG_BOUNCE=y 158CONFIG_BOUNCE=y
149CONFIG_VIRT_TO_BUS=y 159CONFIG_VIRT_TO_BUS=y
150CONFIG_UNEVICTABLE_LRU=y 160CONFIG_UNEVICTABLE_LRU=y
161CONFIG_HAVE_MLOCK=y
162CONFIG_HAVE_MLOCKED_PAGE_BIT=y
151 163
152# 164#
153# General setup 165# General setup
@@ -255,6 +267,7 @@ CONFIG_NETFILTER_XTABLES=m
255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 267CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 268CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
257CONFIG_NETFILTER_XT_TARGET_DSCP=m 269CONFIG_NETFILTER_XT_TARGET_DSCP=m
270CONFIG_NETFILTER_XT_TARGET_HL=m
258CONFIG_NETFILTER_XT_TARGET_MARK=m 271CONFIG_NETFILTER_XT_TARGET_MARK=m
259CONFIG_NETFILTER_XT_TARGET_NFLOG=m 272CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 273CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -263,6 +276,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
263CONFIG_NETFILTER_XT_TARGET_TRACE=m 276CONFIG_NETFILTER_XT_TARGET_TRACE=m
264CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 277CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
265CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 278CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
279CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
266CONFIG_NETFILTER_XT_MATCH_COMMENT=m 280CONFIG_NETFILTER_XT_MATCH_COMMENT=m
267CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 281CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
268CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 282CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -273,6 +287,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
273CONFIG_NETFILTER_XT_MATCH_ESP=m 287CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 288CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
275CONFIG_NETFILTER_XT_MATCH_HELPER=m 289CONFIG_NETFILTER_XT_MATCH_HELPER=m
290CONFIG_NETFILTER_XT_MATCH_HL=m
276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 291CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
277CONFIG_NETFILTER_XT_MATCH_LENGTH=m 292CONFIG_NETFILTER_XT_MATCH_LENGTH=m
278CONFIG_NETFILTER_XT_MATCH_LIMIT=m 293CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -351,25 +366,20 @@ CONFIG_IP6_NF_MATCH_HL=m
351CONFIG_IP6_NF_MATCH_IPV6HEADER=m 366CONFIG_IP6_NF_MATCH_IPV6HEADER=m
352CONFIG_IP6_NF_MATCH_MH=m 367CONFIG_IP6_NF_MATCH_MH=m
353CONFIG_IP6_NF_MATCH_RT=m 368CONFIG_IP6_NF_MATCH_RT=m
369CONFIG_IP6_NF_TARGET_HL=m
354CONFIG_IP6_NF_TARGET_LOG=m 370CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m 371CONFIG_IP6_NF_FILTER=m
356CONFIG_IP6_NF_TARGET_REJECT=m 372CONFIG_IP6_NF_TARGET_REJECT=m
357CONFIG_IP6_NF_MANGLE=m 373CONFIG_IP6_NF_MANGLE=m
358CONFIG_IP6_NF_TARGET_HL=m
359CONFIG_IP6_NF_RAW=m 374CONFIG_IP6_NF_RAW=m
360CONFIG_IP_DCCP=m 375CONFIG_IP_DCCP=m
361CONFIG_INET_DCCP_DIAG=m 376CONFIG_INET_DCCP_DIAG=m
362CONFIG_IP_DCCP_ACKVEC=y
363 377
364# 378#
365# DCCP CCIDs Configuration (EXPERIMENTAL) 379# DCCP CCIDs Configuration (EXPERIMENTAL)
366# 380#
367CONFIG_IP_DCCP_CCID2=m
368# CONFIG_IP_DCCP_CCID2_DEBUG is not set 381# CONFIG_IP_DCCP_CCID2_DEBUG is not set
369CONFIG_IP_DCCP_CCID3=m 382# CONFIG_IP_DCCP_CCID3 is not set
370# CONFIG_IP_DCCP_CCID3_DEBUG is not set
371CONFIG_IP_DCCP_CCID3_RTO=100
372CONFIG_IP_DCCP_TFRC_LIB=m
373CONFIG_IP_SCTP=m 383CONFIG_IP_SCTP=m
374# CONFIG_SCTP_DBG_MSG is not set 384# CONFIG_SCTP_DBG_MSG is not set
375# CONFIG_SCTP_DBG_OBJCNT is not set 385# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -394,8 +404,10 @@ CONFIG_IPDDP_DECAP=y
394# CONFIG_LAPB is not set 404# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 405# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 406# CONFIG_WAN_ROUTER is not set
407# CONFIG_PHONET is not set
397# CONFIG_NET_SCHED is not set 408# CONFIG_NET_SCHED is not set
398CONFIG_NET_CLS_ROUTE=y 409CONFIG_NET_CLS_ROUTE=y
410# CONFIG_DCB is not set
399 411
400# 412#
401# Network testing 413# Network testing
@@ -406,8 +418,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 418# CONFIG_IRDA is not set
407# CONFIG_BT is not set 419# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 420# CONFIG_AF_RXRPC is not set
409# CONFIG_PHONET is not set
410# CONFIG_WIRELESS is not set 421# CONFIG_WIRELESS is not set
422# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 423# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 424# CONFIG_NET_9P is not set
413 425
@@ -429,6 +441,7 @@ CONFIG_CONNECTOR=m
429# CONFIG_MTD is not set 441# CONFIG_MTD is not set
430# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
431CONFIG_BLK_DEV=y 443CONFIG_BLK_DEV=y
444CONFIG_BLK_DEV_SWIM=y
432# CONFIG_BLK_DEV_COW_COMMON is not set 445# CONFIG_BLK_DEV_COW_COMMON is not set
433CONFIG_BLK_DEV_LOOP=y 446CONFIG_BLK_DEV_LOOP=y
434CONFIG_BLK_DEV_CRYPTOLOOP=m 447CONFIG_BLK_DEV_CRYPTOLOOP=m
@@ -443,15 +456,20 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
443CONFIG_ATA_OVER_ETH=m 456CONFIG_ATA_OVER_ETH=m
444# CONFIG_BLK_DEV_HD is not set 457# CONFIG_BLK_DEV_HD is not set
445CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_ENCLOSURE_SERVICES is not set 459# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set 460# CONFIG_C2PORT is not set
461
462#
463# EEPROM support
464#
465# CONFIG_EEPROM_93CX6 is not set
449CONFIG_HAVE_IDE=y 466CONFIG_HAVE_IDE=y
450CONFIG_IDE=y 467CONFIG_IDE=y
451 468
452# 469#
453# Please see Documentation/ide/ide.txt for help/info on IDE drives 470# Please see Documentation/ide/ide.txt for help/info on IDE drives
454# 471#
472CONFIG_IDE_ATAPI=y
455# CONFIG_BLK_DEV_IDE_SATA is not set 473# CONFIG_BLK_DEV_IDE_SATA is not set
456CONFIG_IDE_GD=y 474CONFIG_IDE_GD=y
457CONFIG_IDE_GD_ATA=y 475CONFIG_IDE_GD_ATA=y
@@ -459,7 +477,6 @@ CONFIG_IDE_GD_ATA=y
459CONFIG_BLK_DEV_IDECD=y 477CONFIG_BLK_DEV_IDECD=y
460CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 478CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
461# CONFIG_BLK_DEV_IDETAPE is not set 479# CONFIG_BLK_DEV_IDETAPE is not set
462# CONFIG_BLK_DEV_IDESCSI is not set
463# CONFIG_IDE_TASK_IOCTL is not set 480# CONFIG_IDE_TASK_IOCTL is not set
464CONFIG_IDE_PROC_FS=y 481CONFIG_IDE_PROC_FS=y
465 482
@@ -514,10 +531,13 @@ CONFIG_SCSI_SRP_ATTRS=m
514CONFIG_SCSI_SRP_TGT_ATTRS=y 531CONFIG_SCSI_SRP_TGT_ATTRS=y
515CONFIG_SCSI_LOWLEVEL=y 532CONFIG_SCSI_LOWLEVEL=y
516CONFIG_ISCSI_TCP=m 533CONFIG_ISCSI_TCP=m
534# CONFIG_LIBFC is not set
535# CONFIG_LIBFCOE is not set
517# CONFIG_SCSI_DEBUG is not set 536# CONFIG_SCSI_DEBUG is not set
518CONFIG_MAC_SCSI=y 537CONFIG_MAC_SCSI=y
519CONFIG_SCSI_MAC_ESP=y 538CONFIG_SCSI_MAC_ESP=y
520# CONFIG_SCSI_DH is not set 539# CONFIG_SCSI_DH is not set
540# CONFIG_SCSI_OSD_INITIATOR is not set
521CONFIG_MD=y 541CONFIG_MD=y
522CONFIG_BLK_DEV_MD=m 542CONFIG_BLK_DEV_MD=m
523CONFIG_MD_LINEAR=m 543CONFIG_MD_LINEAR=m
@@ -525,7 +545,7 @@ CONFIG_MD_RAID0=m
525CONFIG_MD_RAID1=m 545CONFIG_MD_RAID1=m
526# CONFIG_MD_RAID10 is not set 546# CONFIG_MD_RAID10 is not set
527CONFIG_MD_RAID456=m 547CONFIG_MD_RAID456=m
528CONFIG_MD_RAID5_RESHAPE=y 548CONFIG_MD_RAID6_PQ=m
529# CONFIG_MD_MULTIPATH is not set 549# CONFIG_MD_MULTIPATH is not set
530# CONFIG_MD_FAULTY is not set 550# CONFIG_MD_FAULTY is not set
531CONFIG_BLK_DEV_DM=m 551CONFIG_BLK_DEV_DM=m
@@ -547,6 +567,7 @@ CONFIG_ADB_CUDA=y
547CONFIG_INPUT_ADBHID=y 567CONFIG_INPUT_ADBHID=y
548CONFIG_MAC_EMUMOUSEBTN=y 568CONFIG_MAC_EMUMOUSEBTN=y
549CONFIG_NETDEVICES=y 569CONFIG_NETDEVICES=y
570CONFIG_COMPAT_NET_DEV_OPS=y
550CONFIG_DUMMY=m 571CONFIG_DUMMY=m
551# CONFIG_BONDING is not set 572# CONFIG_BONDING is not set
552CONFIG_MACVLAN=m 573CONFIG_MACVLAN=m
@@ -561,6 +582,8 @@ CONFIG_MAC89x0=m
561CONFIG_MACSONIC=m 582CONFIG_MACSONIC=m
562CONFIG_MACMACE=y 583CONFIG_MACMACE=y
563# CONFIG_NET_VENDOR_SMC is not set 584# CONFIG_NET_VENDOR_SMC is not set
585# CONFIG_ETHOC is not set
586# CONFIG_DNET is not set
564# CONFIG_IBM_NEW_EMAC_ZMII is not set 587# CONFIG_IBM_NEW_EMAC_ZMII is not set
565# CONFIG_IBM_NEW_EMAC_RGMII is not set 588# CONFIG_IBM_NEW_EMAC_RGMII is not set
566# CONFIG_IBM_NEW_EMAC_TAH is not set 589# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -577,7 +600,10 @@ CONFIG_MACMACE=y
577# 600#
578# CONFIG_WLAN_PRE80211 is not set 601# CONFIG_WLAN_PRE80211 is not set
579# CONFIG_WLAN_80211 is not set 602# CONFIG_WLAN_80211 is not set
580# CONFIG_IWLWIFI_LEDS is not set 603
604#
605# Enable WiMAX (Networking options) to see the WiMAX drivers
606#
581# CONFIG_WAN is not set 607# CONFIG_WAN is not set
582CONFIG_PPP=m 608CONFIG_PPP=m
583# CONFIG_PPP_MULTILINK is not set 609# CONFIG_PPP_MULTILINK is not set
@@ -635,7 +661,6 @@ CONFIG_MOUSE_PS2=m
635CONFIG_MOUSE_PS2_ALPS=y 661CONFIG_MOUSE_PS2_ALPS=y
636CONFIG_MOUSE_PS2_LOGIPS2PP=y 662CONFIG_MOUSE_PS2_LOGIPS2PP=y
637CONFIG_MOUSE_PS2_SYNAPTICS=y 663CONFIG_MOUSE_PS2_SYNAPTICS=y
638CONFIG_MOUSE_PS2_LIFEBOOK=y
639CONFIG_MOUSE_PS2_TRACKPOINT=y 664CONFIG_MOUSE_PS2_TRACKPOINT=y
640# CONFIG_MOUSE_PS2_ELANTECH is not set 665# CONFIG_MOUSE_PS2_ELANTECH is not set
641# CONFIG_MOUSE_PS2_TOUCHKIT is not set 666# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -677,6 +702,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
677# Non-8250 serial port support 702# Non-8250 serial port support
678# 703#
679CONFIG_UNIX98_PTYS=y 704CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
680CONFIG_LEGACY_PTYS=y 706CONFIG_LEGACY_PTYS=y
681CONFIG_LEGACY_PTY_COUNT=256 707CONFIG_LEGACY_PTY_COUNT=256
682# CONFIG_IPMI_HANDLER is not set 708# CONFIG_IPMI_HANDLER is not set
@@ -760,6 +786,7 @@ CONFIG_FB_MAC=y
760# CONFIG_FB_VIRTUAL is not set 786# CONFIG_FB_VIRTUAL is not set
761# CONFIG_FB_METRONOME is not set 787# CONFIG_FB_METRONOME is not set
762# CONFIG_FB_MB862XX is not set 788# CONFIG_FB_MB862XX is not set
789# CONFIG_FB_BROADSHEET is not set
763# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 790# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
764 791
765# 792#
@@ -793,7 +820,6 @@ CONFIG_HIDRAW=y
793# 820#
794# Special HID drivers 821# Special HID drivers
795# 822#
796CONFIG_HID_COMPAT=y
797# CONFIG_USB_SUPPORT is not set 823# CONFIG_USB_SUPPORT is not set
798# CONFIG_MMC is not set 824# CONFIG_MMC is not set
799# CONFIG_MEMSTICK is not set 825# CONFIG_MEMSTICK is not set
@@ -801,9 +827,9 @@ CONFIG_HID_COMPAT=y
801# CONFIG_ACCESSIBILITY is not set 827# CONFIG_ACCESSIBILITY is not set
802# CONFIG_RTC_CLASS is not set 828# CONFIG_RTC_CLASS is not set
803# CONFIG_DMADEVICES is not set 829# CONFIG_DMADEVICES is not set
830# CONFIG_AUXDISPLAY is not set
804# CONFIG_UIO is not set 831# CONFIG_UIO is not set
805# CONFIG_STAGING is not set 832# CONFIG_STAGING is not set
806CONFIG_STAGING_EXCLUDE_BUILD=y
807 833
808# 834#
809# Character devices 835# Character devices
@@ -819,6 +845,7 @@ CONFIG_EXT2_FS=y
819# CONFIG_EXT2_FS_XATTR is not set 845# CONFIG_EXT2_FS_XATTR is not set
820# CONFIG_EXT2_FS_XIP is not set 846# CONFIG_EXT2_FS_XIP is not set
821CONFIG_EXT3_FS=y 847CONFIG_EXT3_FS=y
848# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
822# CONFIG_EXT3_FS_XATTR is not set 849# CONFIG_EXT3_FS_XATTR is not set
823# CONFIG_EXT4_FS is not set 850# CONFIG_EXT4_FS is not set
824CONFIG_JBD=y 851CONFIG_JBD=y
@@ -845,13 +872,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
845# CONFIG_OCFS2_FS_STATS is not set 872# CONFIG_OCFS2_FS_STATS is not set
846# CONFIG_OCFS2_DEBUG_MASKLOG is not set 873# CONFIG_OCFS2_DEBUG_MASKLOG is not set
847# CONFIG_OCFS2_DEBUG_FS is not set 874# CONFIG_OCFS2_DEBUG_FS is not set
848# CONFIG_OCFS2_COMPAT_JBD is not set 875# CONFIG_OCFS2_FS_POSIX_ACL is not set
876# CONFIG_BTRFS_FS is not set
849CONFIG_DNOTIFY=y 877CONFIG_DNOTIFY=y
850CONFIG_INOTIFY=y 878CONFIG_INOTIFY=y
851CONFIG_INOTIFY_USER=y 879CONFIG_INOTIFY_USER=y
852CONFIG_QUOTA=y 880CONFIG_QUOTA=y
853CONFIG_QUOTA_NETLINK_INTERFACE=y 881CONFIG_QUOTA_NETLINK_INTERFACE=y
854# CONFIG_PRINT_QUOTA_WARNING is not set 882# CONFIG_PRINT_QUOTA_WARNING is not set
883CONFIG_QUOTA_TREE=m
855# CONFIG_QFMT_V1 is not set 884# CONFIG_QFMT_V1 is not set
856# CONFIG_QFMT_V2 is not set 885# CONFIG_QFMT_V2 is not set
857CONFIG_QUOTACTL=y 886CONFIG_QUOTACTL=y
@@ -860,6 +889,11 @@ CONFIG_AUTOFS4_FS=m
860CONFIG_FUSE_FS=m 889CONFIG_FUSE_FS=m
861 890
862# 891#
892# Caches
893#
894# CONFIG_FSCACHE is not set
895
896#
863# CD-ROM/DVD Filesystems 897# CD-ROM/DVD Filesystems
864# 898#
865CONFIG_ISO9660_FS=y 899CONFIG_ISO9660_FS=y
@@ -890,10 +924,7 @@ CONFIG_TMPFS=y
890# CONFIG_TMPFS_POSIX_ACL is not set 924# CONFIG_TMPFS_POSIX_ACL is not set
891# CONFIG_HUGETLB_PAGE is not set 925# CONFIG_HUGETLB_PAGE is not set
892CONFIG_CONFIGFS_FS=m 926CONFIG_CONFIGFS_FS=m
893 927CONFIG_MISC_FILESYSTEMS=y
894#
895# Miscellaneous filesystems
896#
897# CONFIG_ADFS_FS is not set 928# CONFIG_ADFS_FS is not set
898CONFIG_AFFS_FS=m 929CONFIG_AFFS_FS=m
899CONFIG_HFS_FS=y 930CONFIG_HFS_FS=y
@@ -902,6 +933,9 @@ CONFIG_HFSPLUS_FS=y
902# CONFIG_BFS_FS is not set 933# CONFIG_BFS_FS is not set
903# CONFIG_EFS_FS is not set 934# CONFIG_EFS_FS is not set
904CONFIG_CRAMFS=m 935CONFIG_CRAMFS=m
936CONFIG_SQUASHFS=m
937# CONFIG_SQUASHFS_EMBEDDED is not set
938CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
905# CONFIG_VXFS_FS is not set 939# CONFIG_VXFS_FS is not set
906CONFIG_MINIX_FS=y 940CONFIG_MINIX_FS=y
907# CONFIG_OMFS_FS is not set 941# CONFIG_OMFS_FS is not set
@@ -912,6 +946,7 @@ CONFIG_SYSV_FS=m
912CONFIG_UFS_FS=m 946CONFIG_UFS_FS=m
913# CONFIG_UFS_FS_WRITE is not set 947# CONFIG_UFS_FS_WRITE is not set
914# CONFIG_UFS_DEBUG is not set 948# CONFIG_UFS_DEBUG is not set
949# CONFIG_NILFS2_FS is not set
915CONFIG_NETWORK_FILESYSTEMS=y 950CONFIG_NETWORK_FILESYSTEMS=y
916CONFIG_NFS_FS=m 951CONFIG_NFS_FS=m
917CONFIG_NFS_V3=y 952CONFIG_NFS_V3=y
@@ -927,7 +962,6 @@ CONFIG_EXPORTFS=m
927CONFIG_NFS_COMMON=y 962CONFIG_NFS_COMMON=y
928CONFIG_SUNRPC=m 963CONFIG_SUNRPC=m
929CONFIG_SUNRPC_GSS=m 964CONFIG_SUNRPC_GSS=m
930# CONFIG_SUNRPC_REGISTER_V4 is not set
931CONFIG_RPCSEC_GSS_KRB5=m 965CONFIG_RPCSEC_GSS_KRB5=m
932# CONFIG_RPCSEC_GSS_SPKM3 is not set 966# CONFIG_RPCSEC_GSS_SPKM3 is not set
933CONFIG_SMB_FS=m 967CONFIG_SMB_FS=m
@@ -1003,11 +1037,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1003CONFIG_DEBUG_MEMORY_INIT=y 1037CONFIG_DEBUG_MEMORY_INIT=y
1004# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1038# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1005CONFIG_SYSCTL_SYSCALL_CHECK=y 1039CONFIG_SYSCTL_SYSCALL_CHECK=y
1006
1007#
1008# Tracers
1009#
1010# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1011# CONFIG_SAMPLES is not set 1040# CONFIG_SAMPLES is not set
1012 1041
1013# 1042#
@@ -1028,13 +1057,21 @@ CONFIG_CRYPTO=y
1028# 1057#
1029# CONFIG_CRYPTO_FIPS is not set 1058# CONFIG_CRYPTO_FIPS is not set
1030CONFIG_CRYPTO_ALGAPI=y 1059CONFIG_CRYPTO_ALGAPI=y
1031CONFIG_CRYPTO_AEAD=y 1060CONFIG_CRYPTO_ALGAPI2=y
1032CONFIG_CRYPTO_BLKCIPHER=y 1061CONFIG_CRYPTO_AEAD=m
1062CONFIG_CRYPTO_AEAD2=y
1063CONFIG_CRYPTO_BLKCIPHER=m
1064CONFIG_CRYPTO_BLKCIPHER2=y
1033CONFIG_CRYPTO_HASH=y 1065CONFIG_CRYPTO_HASH=y
1034CONFIG_CRYPTO_RNG=y 1066CONFIG_CRYPTO_HASH2=y
1067CONFIG_CRYPTO_RNG=m
1068CONFIG_CRYPTO_RNG2=y
1069CONFIG_CRYPTO_PCOMP=y
1035CONFIG_CRYPTO_MANAGER=y 1070CONFIG_CRYPTO_MANAGER=y
1071CONFIG_CRYPTO_MANAGER2=y
1036CONFIG_CRYPTO_GF128MUL=m 1072CONFIG_CRYPTO_GF128MUL=m
1037CONFIG_CRYPTO_NULL=m 1073CONFIG_CRYPTO_NULL=m
1074CONFIG_CRYPTO_WORKQUEUE=y
1038CONFIG_CRYPTO_CRYPTD=m 1075CONFIG_CRYPTO_CRYPTD=m
1039CONFIG_CRYPTO_AUTHENC=m 1076CONFIG_CRYPTO_AUTHENC=m
1040CONFIG_CRYPTO_TEST=m 1077CONFIG_CRYPTO_TEST=m
@@ -1104,6 +1141,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1104# Compression 1141# Compression
1105# 1142#
1106CONFIG_CRYPTO_DEFLATE=m 1143CONFIG_CRYPTO_DEFLATE=m
1144CONFIG_CRYPTO_ZLIB=m
1107CONFIG_CRYPTO_LZO=m 1145CONFIG_CRYPTO_LZO=m
1108 1146
1109# 1147#
@@ -1111,11 +1149,13 @@ CONFIG_CRYPTO_LZO=m
1111# 1149#
1112# CONFIG_CRYPTO_ANSI_CPRNG is not set 1150# CONFIG_CRYPTO_ANSI_CPRNG is not set
1113# CONFIG_CRYPTO_HW is not set 1151# CONFIG_CRYPTO_HW is not set
1152# CONFIG_BINARY_PRINTF is not set
1114 1153
1115# 1154#
1116# Library routines 1155# Library routines
1117# 1156#
1118CONFIG_BITREVERSE=y 1157CONFIG_BITREVERSE=y
1158CONFIG_GENERIC_FIND_LAST_BIT=y
1119CONFIG_CRC_CCITT=m 1159CONFIG_CRC_CCITT=m
1120CONFIG_CRC16=m 1160CONFIG_CRC16=m
1121CONFIG_CRC_T10DIF=y 1161CONFIG_CRC_T10DIF=y
@@ -1127,10 +1167,13 @@ CONFIG_ZLIB_INFLATE=y
1127CONFIG_ZLIB_DEFLATE=m 1167CONFIG_ZLIB_DEFLATE=m
1128CONFIG_LZO_COMPRESS=m 1168CONFIG_LZO_COMPRESS=m
1129CONFIG_LZO_DECOMPRESS=m 1169CONFIG_LZO_DECOMPRESS=m
1170CONFIG_DECOMPRESS_GZIP=y
1171CONFIG_DECOMPRESS_BZIP2=y
1172CONFIG_DECOMPRESS_LZMA=y
1130CONFIG_TEXTSEARCH=y 1173CONFIG_TEXTSEARCH=y
1131CONFIG_TEXTSEARCH_KMP=m 1174CONFIG_TEXTSEARCH_KMP=m
1132CONFIG_TEXTSEARCH_BM=m 1175CONFIG_TEXTSEARCH_BM=m
1133CONFIG_TEXTSEARCH_FSM=m 1176CONFIG_TEXTSEARCH_FSM=m
1134CONFIG_PLIST=y
1135CONFIG_HAS_IOMEM=y 1177CONFIG_HAS_IOMEM=y
1136CONFIG_HAS_DMA=y 1178CONFIG_HAS_DMA=y
1179CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 70693588031e..69c43e2d8b45 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:48 2008 4# Wed Apr 22 20:48:06 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -146,12 +157,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
146CONFIG_NEED_MULTIPLE_NODES=y 157CONFIG_NEED_MULTIPLE_NODES=y
147CONFIG_PAGEFLAGS_EXTENDED=y 158CONFIG_PAGEFLAGS_EXTENDED=y
148CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
149# CONFIG_RESOURCES_64BIT is not set
150# CONFIG_PHYS_ADDR_T_64BIT is not set 160# CONFIG_PHYS_ADDR_T_64BIT is not set
151CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=1
152CONFIG_BOUNCE=y 162CONFIG_BOUNCE=y
153CONFIG_VIRT_TO_BUS=y 163CONFIG_VIRT_TO_BUS=y
154CONFIG_UNEVICTABLE_LRU=y 164CONFIG_UNEVICTABLE_LRU=y
165CONFIG_HAVE_MLOCK=y
166CONFIG_HAVE_MLOCKED_PAGE_BIT=y
155 167
156# 168#
157# General setup 169# General setup
@@ -268,6 +280,7 @@ CONFIG_NETFILTER_XTABLES=m
268CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 280CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
269CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 281CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
270CONFIG_NETFILTER_XT_TARGET_DSCP=m 282CONFIG_NETFILTER_XT_TARGET_DSCP=m
283CONFIG_NETFILTER_XT_TARGET_HL=m
271CONFIG_NETFILTER_XT_TARGET_MARK=m 284CONFIG_NETFILTER_XT_TARGET_MARK=m
272CONFIG_NETFILTER_XT_TARGET_NFLOG=m 285CONFIG_NETFILTER_XT_TARGET_NFLOG=m
273CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 286CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -276,6 +289,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
276CONFIG_NETFILTER_XT_TARGET_TRACE=m 289CONFIG_NETFILTER_XT_TARGET_TRACE=m
277CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 290CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
278CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 291CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
292CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
279CONFIG_NETFILTER_XT_MATCH_COMMENT=m 293CONFIG_NETFILTER_XT_MATCH_COMMENT=m
280CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 294CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
281CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 295CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -286,6 +300,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
286CONFIG_NETFILTER_XT_MATCH_ESP=m 300CONFIG_NETFILTER_XT_MATCH_ESP=m
287CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 301CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
288CONFIG_NETFILTER_XT_MATCH_HELPER=m 302CONFIG_NETFILTER_XT_MATCH_HELPER=m
303CONFIG_NETFILTER_XT_MATCH_HL=m
289CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 304CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
290CONFIG_NETFILTER_XT_MATCH_LENGTH=m 305CONFIG_NETFILTER_XT_MATCH_LENGTH=m
291CONFIG_NETFILTER_XT_MATCH_LIMIT=m 306CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -364,25 +379,20 @@ CONFIG_IP6_NF_MATCH_HL=m
364CONFIG_IP6_NF_MATCH_IPV6HEADER=m 379CONFIG_IP6_NF_MATCH_IPV6HEADER=m
365CONFIG_IP6_NF_MATCH_MH=m 380CONFIG_IP6_NF_MATCH_MH=m
366CONFIG_IP6_NF_MATCH_RT=m 381CONFIG_IP6_NF_MATCH_RT=m
382CONFIG_IP6_NF_TARGET_HL=m
367CONFIG_IP6_NF_TARGET_LOG=m 383CONFIG_IP6_NF_TARGET_LOG=m
368CONFIG_IP6_NF_FILTER=m 384CONFIG_IP6_NF_FILTER=m
369CONFIG_IP6_NF_TARGET_REJECT=m 385CONFIG_IP6_NF_TARGET_REJECT=m
370CONFIG_IP6_NF_MANGLE=m 386CONFIG_IP6_NF_MANGLE=m
371CONFIG_IP6_NF_TARGET_HL=m
372CONFIG_IP6_NF_RAW=m 387CONFIG_IP6_NF_RAW=m
373CONFIG_IP_DCCP=m 388CONFIG_IP_DCCP=m
374CONFIG_INET_DCCP_DIAG=m 389CONFIG_INET_DCCP_DIAG=m
375CONFIG_IP_DCCP_ACKVEC=y
376 390
377# 391#
378# DCCP CCIDs Configuration (EXPERIMENTAL) 392# DCCP CCIDs Configuration (EXPERIMENTAL)
379# 393#
380CONFIG_IP_DCCP_CCID2=m
381# CONFIG_IP_DCCP_CCID2_DEBUG is not set 394# CONFIG_IP_DCCP_CCID2_DEBUG is not set
382CONFIG_IP_DCCP_CCID3=m 395# CONFIG_IP_DCCP_CCID3 is not set
383# CONFIG_IP_DCCP_CCID3_DEBUG is not set
384CONFIG_IP_DCCP_CCID3_RTO=100
385CONFIG_IP_DCCP_TFRC_LIB=m
386CONFIG_IP_SCTP=m 396CONFIG_IP_SCTP=m
387# CONFIG_SCTP_DBG_MSG is not set 397# CONFIG_SCTP_DBG_MSG is not set
388# CONFIG_SCTP_DBG_OBJCNT is not set 398# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -408,8 +418,10 @@ CONFIG_IPDDP_DECAP=y
408# CONFIG_LAPB is not set 418# CONFIG_LAPB is not set
409# CONFIG_ECONET is not set 419# CONFIG_ECONET is not set
410# CONFIG_WAN_ROUTER is not set 420# CONFIG_WAN_ROUTER is not set
421# CONFIG_PHONET is not set
411# CONFIG_NET_SCHED is not set 422# CONFIG_NET_SCHED is not set
412CONFIG_NET_CLS_ROUTE=y 423CONFIG_NET_CLS_ROUTE=y
424# CONFIG_DCB is not set
413 425
414# 426#
415# Network testing 427# Network testing
@@ -420,8 +432,8 @@ CONFIG_NET_CLS_ROUTE=y
420# CONFIG_IRDA is not set 432# CONFIG_IRDA is not set
421# CONFIG_BT is not set 433# CONFIG_BT is not set
422# CONFIG_AF_RXRPC is not set 434# CONFIG_AF_RXRPC is not set
423# CONFIG_PHONET is not set
424# CONFIG_WIRELESS is not set 435# CONFIG_WIRELESS is not set
436# CONFIG_WIMAX is not set
425# CONFIG_RFKILL is not set 437# CONFIG_RFKILL is not set
426# CONFIG_NET_9P is not set 438# CONFIG_NET_9P is not set
427 439
@@ -454,6 +466,7 @@ CONFIG_PARPORT_NOT_PC=y
454CONFIG_BLK_DEV=y 466CONFIG_BLK_DEV=y
455CONFIG_AMIGA_FLOPPY=y 467CONFIG_AMIGA_FLOPPY=y
456CONFIG_ATARI_FLOPPY=y 468CONFIG_ATARI_FLOPPY=y
469CONFIG_BLK_DEV_SWIM=y
457CONFIG_AMIGA_Z2RAM=y 470CONFIG_AMIGA_Z2RAM=y
458# CONFIG_BLK_DEV_COW_COMMON is not set 471# CONFIG_BLK_DEV_COW_COMMON is not set
459CONFIG_BLK_DEV_LOOP=y 472CONFIG_BLK_DEV_LOOP=y
@@ -469,15 +482,20 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
469CONFIG_ATA_OVER_ETH=m 482CONFIG_ATA_OVER_ETH=m
470# CONFIG_BLK_DEV_HD is not set 483# CONFIG_BLK_DEV_HD is not set
471CONFIG_MISC_DEVICES=y 484CONFIG_MISC_DEVICES=y
472# CONFIG_EEPROM_93CX6 is not set
473# CONFIG_ENCLOSURE_SERVICES is not set 485# CONFIG_ENCLOSURE_SERVICES is not set
474# CONFIG_C2PORT is not set 486# CONFIG_C2PORT is not set
487
488#
489# EEPROM support
490#
491# CONFIG_EEPROM_93CX6 is not set
475CONFIG_HAVE_IDE=y 492CONFIG_HAVE_IDE=y
476CONFIG_IDE=y 493CONFIG_IDE=y
477 494
478# 495#
479# Please see Documentation/ide/ide.txt for help/info on IDE drives 496# Please see Documentation/ide/ide.txt for help/info on IDE drives
480# 497#
498CONFIG_IDE_ATAPI=y
481# CONFIG_BLK_DEV_IDE_SATA is not set 499# CONFIG_BLK_DEV_IDE_SATA is not set
482CONFIG_IDE_GD=y 500CONFIG_IDE_GD=y
483CONFIG_IDE_GD_ATA=y 501CONFIG_IDE_GD_ATA=y
@@ -485,7 +503,6 @@ CONFIG_IDE_GD_ATA=y
485CONFIG_BLK_DEV_IDECD=y 503CONFIG_BLK_DEV_IDECD=y
486CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 504CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
487# CONFIG_BLK_DEV_IDETAPE is not set 505# CONFIG_BLK_DEV_IDETAPE is not set
488# CONFIG_BLK_DEV_IDESCSI is not set
489# CONFIG_IDE_TASK_IOCTL is not set 506# CONFIG_IDE_TASK_IOCTL is not set
490CONFIG_IDE_PROC_FS=y 507CONFIG_IDE_PROC_FS=y
491 508
@@ -494,7 +511,6 @@ CONFIG_IDE_PROC_FS=y
494# 511#
495# CONFIG_BLK_DEV_PLATFORM is not set 512# CONFIG_BLK_DEV_PLATFORM is not set
496CONFIG_BLK_DEV_GAYLE=y 513CONFIG_BLK_DEV_GAYLE=y
497CONFIG_BLK_DEV_IDEDOUBLER=y
498CONFIG_BLK_DEV_BUDDHA=y 514CONFIG_BLK_DEV_BUDDHA=y
499CONFIG_BLK_DEV_FALCON_IDE=y 515CONFIG_BLK_DEV_FALCON_IDE=y
500CONFIG_BLK_DEV_MAC_IDE=y 516CONFIG_BLK_DEV_MAC_IDE=y
@@ -549,6 +565,8 @@ CONFIG_ISCSI_TCP=m
549# CONFIG_SCSI_AIC7XXX_OLD is not set 565# CONFIG_SCSI_AIC7XXX_OLD is not set
550# CONFIG_SCSI_ADVANSYS is not set 566# CONFIG_SCSI_ADVANSYS is not set
551# CONFIG_SCSI_IN2000 is not set 567# CONFIG_SCSI_IN2000 is not set
568# CONFIG_LIBFC is not set
569# CONFIG_LIBFCOE is not set
552# CONFIG_SCSI_DTC3280 is not set 570# CONFIG_SCSI_DTC3280 is not set
553# CONFIG_SCSI_FUTURE_DOMAIN is not set 571# CONFIG_SCSI_FUTURE_DOMAIN is not set
554# CONFIG_SCSI_GENERIC_NCR5380 is not set 572# CONFIG_SCSI_GENERIC_NCR5380 is not set
@@ -575,6 +593,7 @@ CONFIG_MVME16x_SCSI=y
575CONFIG_BVME6000_SCSI=y 593CONFIG_BVME6000_SCSI=y
576CONFIG_SUN3X_ESP=y 594CONFIG_SUN3X_ESP=y
577# CONFIG_SCSI_DH is not set 595# CONFIG_SCSI_DH is not set
596# CONFIG_SCSI_OSD_INITIATOR is not set
578CONFIG_MD=y 597CONFIG_MD=y
579CONFIG_BLK_DEV_MD=m 598CONFIG_BLK_DEV_MD=m
580CONFIG_MD_LINEAR=m 599CONFIG_MD_LINEAR=m
@@ -582,7 +601,7 @@ CONFIG_MD_RAID0=m
582CONFIG_MD_RAID1=m 601CONFIG_MD_RAID1=m
583# CONFIG_MD_RAID10 is not set 602# CONFIG_MD_RAID10 is not set
584CONFIG_MD_RAID456=m 603CONFIG_MD_RAID456=m
585CONFIG_MD_RAID5_RESHAPE=y 604CONFIG_MD_RAID6_PQ=m
586# CONFIG_MD_MULTIPATH is not set 605# CONFIG_MD_MULTIPATH is not set
587# CONFIG_MD_FAULTY is not set 606# CONFIG_MD_FAULTY is not set
588CONFIG_BLK_DEV_DM=m 607CONFIG_BLK_DEV_DM=m
@@ -604,6 +623,7 @@ CONFIG_ADB_CUDA=y
604CONFIG_INPUT_ADBHID=y 623CONFIG_INPUT_ADBHID=y
605CONFIG_MAC_EMUMOUSEBTN=y 624CONFIG_MAC_EMUMOUSEBTN=y
606CONFIG_NETDEVICES=y 625CONFIG_NETDEVICES=y
626CONFIG_COMPAT_NET_DEV_OPS=y
607CONFIG_DUMMY=m 627CONFIG_DUMMY=m
608# CONFIG_BONDING is not set 628# CONFIG_BONDING is not set
609CONFIG_MACVLAN=m 629CONFIG_MACVLAN=m
@@ -614,24 +634,26 @@ CONFIG_VETH=m
614# CONFIG_PHYLIB is not set 634# CONFIG_PHYLIB is not set
615CONFIG_NET_ETHERNET=y 635CONFIG_NET_ETHERNET=y
616CONFIG_MII=y 636CONFIG_MII=y
617CONFIG_ARIADNE=m 637CONFIG_ARIADNE=y
618CONFIG_A2065=m 638CONFIG_A2065=y
619CONFIG_HYDRA=m 639CONFIG_HYDRA=y
620CONFIG_ZORRO8390=m 640CONFIG_ZORRO8390=y
621CONFIG_APNE=m 641CONFIG_APNE=y
622CONFIG_MAC8390=y 642CONFIG_MAC8390=y
623CONFIG_MAC89x0=m 643CONFIG_MAC89x0=y
624CONFIG_MACSONIC=m 644CONFIG_MACSONIC=y
625CONFIG_MACMACE=y 645CONFIG_MACMACE=y
626CONFIG_MVME147_NET=y 646CONFIG_MVME147_NET=y
627CONFIG_MVME16x_NET=y 647CONFIG_MVME16x_NET=y
628CONFIG_BVME6000_NET=y 648CONFIG_BVME6000_NET=y
629CONFIG_ATARILANCE=m 649CONFIG_ATARILANCE=y
630CONFIG_SUN3LANCE=y 650CONFIG_SUN3LANCE=y
631CONFIG_HPLANCE=y 651CONFIG_HPLANCE=y
632# CONFIG_NET_VENDOR_3COM is not set 652# CONFIG_NET_VENDOR_3COM is not set
633# CONFIG_NET_VENDOR_SMC is not set 653# CONFIG_NET_VENDOR_SMC is not set
654# CONFIG_ETHOC is not set
634# CONFIG_NET_VENDOR_RACAL is not set 655# CONFIG_NET_VENDOR_RACAL is not set
656# CONFIG_DNET is not set
635# CONFIG_AT1700 is not set 657# CONFIG_AT1700 is not set
636# CONFIG_DEPCA is not set 658# CONFIG_DEPCA is not set
637# CONFIG_HP100 is not set 659# CONFIG_HP100 is not set
@@ -657,7 +679,10 @@ CONFIG_NE2000=m
657# 679#
658# CONFIG_WLAN_PRE80211 is not set 680# CONFIG_WLAN_PRE80211 is not set
659# CONFIG_WLAN_80211 is not set 681# CONFIG_WLAN_80211 is not set
660# CONFIG_IWLWIFI_LEDS is not set 682
683#
684# Enable WiMAX (Networking options) to see the WiMAX drivers
685#
661# CONFIG_WAN is not set 686# CONFIG_WAN is not set
662# CONFIG_PLIP is not set 687# CONFIG_PLIP is not set
663CONFIG_PPP=m 688CONFIG_PPP=m
@@ -717,11 +742,10 @@ CONFIG_KEYBOARD_ATARI=y
717CONFIG_KEYBOARD_HIL_OLD=y 742CONFIG_KEYBOARD_HIL_OLD=y
718CONFIG_KEYBOARD_HIL=y 743CONFIG_KEYBOARD_HIL=y
719CONFIG_INPUT_MOUSE=y 744CONFIG_INPUT_MOUSE=y
720CONFIG_MOUSE_PS2=y 745CONFIG_MOUSE_PS2=m
721CONFIG_MOUSE_PS2_ALPS=y 746CONFIG_MOUSE_PS2_ALPS=y
722CONFIG_MOUSE_PS2_LOGIPS2PP=y 747CONFIG_MOUSE_PS2_LOGIPS2PP=y
723CONFIG_MOUSE_PS2_SYNAPTICS=y 748CONFIG_MOUSE_PS2_SYNAPTICS=y
724CONFIG_MOUSE_PS2_LIFEBOOK=y
725CONFIG_MOUSE_PS2_TRACKPOINT=y 749CONFIG_MOUSE_PS2_TRACKPOINT=y
726# CONFIG_MOUSE_PS2_ELANTECH is not set 750# CONFIG_MOUSE_PS2_ELANTECH is not set
727# CONFIG_MOUSE_PS2_TOUCHKIT is not set 751# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -732,7 +756,7 @@ CONFIG_MOUSE_SERIAL=m
732CONFIG_MOUSE_AMIGA=m 756CONFIG_MOUSE_AMIGA=m
733CONFIG_MOUSE_ATARI=m 757CONFIG_MOUSE_ATARI=m
734# CONFIG_MOUSE_VSXXXAA is not set 758# CONFIG_MOUSE_VSXXXAA is not set
735CONFIG_MOUSE_HIL=m 759CONFIG_MOUSE_HIL=y
736CONFIG_INPUT_JOYSTICK=y 760CONFIG_INPUT_JOYSTICK=y
737# CONFIG_JOYSTICK_ANALOG is not set 761# CONFIG_JOYSTICK_ANALOG is not set
738# CONFIG_JOYSTICK_A3D is not set 762# CONFIG_JOYSTICK_A3D is not set
@@ -763,18 +787,18 @@ CONFIG_JOYSTICK_AMIGA=m
763CONFIG_INPUT_MISC=y 787CONFIG_INPUT_MISC=y
764CONFIG_INPUT_M68K_BEEP=m 788CONFIG_INPUT_M68K_BEEP=m
765# CONFIG_INPUT_UINPUT is not set 789# CONFIG_INPUT_UINPUT is not set
766CONFIG_HP_SDC_RTC=m 790CONFIG_HP_SDC_RTC=y
767 791
768# 792#
769# Hardware I/O ports 793# Hardware I/O ports
770# 794#
771CONFIG_SERIO=y 795CONFIG_SERIO=y
772# CONFIG_SERIO_SERPORT is not set 796# CONFIG_SERIO_SERPORT is not set
773CONFIG_SERIO_Q40KBD=m 797CONFIG_SERIO_Q40KBD=y
774# CONFIG_SERIO_PARKBD is not set 798# CONFIG_SERIO_PARKBD is not set
775CONFIG_HP_SDC=y 799CONFIG_HP_SDC=y
776CONFIG_HIL_MLC=y 800CONFIG_HIL_MLC=y
777CONFIG_SERIO_LIBPS2=y 801CONFIG_SERIO_LIBPS2=m
778# CONFIG_SERIO_RAW is not set 802# CONFIG_SERIO_RAW is not set
779# CONFIG_GAMEPORT is not set 803# CONFIG_GAMEPORT is not set
780 804
@@ -788,7 +812,7 @@ CONFIG_HW_CONSOLE=y
788CONFIG_VT_HW_CONSOLE_BINDING=y 812CONFIG_VT_HW_CONSOLE_BINDING=y
789# CONFIG_DEVKMEM is not set 813# CONFIG_DEVKMEM is not set
790# CONFIG_SERIAL_NONSTANDARD is not set 814# CONFIG_SERIAL_NONSTANDARD is not set
791CONFIG_A2232=m 815CONFIG_A2232=y
792 816
793# 817#
794# Serial drivers 818# Serial drivers
@@ -799,6 +823,7 @@ CONFIG_A2232=m
799# Non-8250 serial port support 823# Non-8250 serial port support
800# 824#
801CONFIG_UNIX98_PTYS=y 825CONFIG_UNIX98_PTYS=y
826# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
802CONFIG_LEGACY_PTYS=y 827CONFIG_LEGACY_PTYS=y
803CONFIG_LEGACY_PTY_COUNT=256 828CONFIG_LEGACY_PTY_COUNT=256
804CONFIG_PRINTER=m 829CONFIG_PRINTER=m
@@ -807,7 +832,7 @@ CONFIG_PRINTER=m
807# CONFIG_IPMI_HANDLER is not set 832# CONFIG_IPMI_HANDLER is not set
808# CONFIG_HW_RANDOM is not set 833# CONFIG_HW_RANDOM is not set
809CONFIG_NVRAM=y 834CONFIG_NVRAM=y
810CONFIG_GEN_RTC=m 835CONFIG_GEN_RTC=y
811CONFIG_GEN_RTC_X=y 836CONFIG_GEN_RTC_X=y
812# CONFIG_DTLK is not set 837# CONFIG_DTLK is not set
813# CONFIG_R3964 is not set 838# CONFIG_R3964 is not set
@@ -898,6 +923,7 @@ CONFIG_FB_HP300=y
898# CONFIG_FB_VIRTUAL is not set 923# CONFIG_FB_VIRTUAL is not set
899# CONFIG_FB_METRONOME is not set 924# CONFIG_FB_METRONOME is not set
900# CONFIG_FB_MB862XX is not set 925# CONFIG_FB_MB862XX is not set
926# CONFIG_FB_BROADSHEET is not set
901# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 927# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
902 928
903# 929#
@@ -937,7 +963,6 @@ CONFIG_HIDRAW=y
937# 963#
938# Special HID drivers 964# Special HID drivers
939# 965#
940CONFIG_HID_COMPAT=y
941# CONFIG_USB_SUPPORT is not set 966# CONFIG_USB_SUPPORT is not set
942# CONFIG_MMC is not set 967# CONFIG_MMC is not set
943# CONFIG_MEMSTICK is not set 968# CONFIG_MEMSTICK is not set
@@ -948,13 +973,12 @@ CONFIG_HID_COMPAT=y
948# CONFIG_AUXDISPLAY is not set 973# CONFIG_AUXDISPLAY is not set
949# CONFIG_UIO is not set 974# CONFIG_UIO is not set
950# CONFIG_STAGING is not set 975# CONFIG_STAGING is not set
951CONFIG_STAGING_EXCLUDE_BUILD=y
952 976
953# 977#
954# Character devices 978# Character devices
955# 979#
956CONFIG_ATARI_MFPSER=m 980CONFIG_ATARI_MFPSER=y
957CONFIG_ATARI_MIDI=m 981CONFIG_ATARI_MIDI=y
958CONFIG_ATARI_DSP56K=m 982CONFIG_ATARI_DSP56K=m
959CONFIG_AMIGA_BUILTIN_SERIAL=y 983CONFIG_AMIGA_BUILTIN_SERIAL=y
960CONFIG_MULTIFACE_III_TTY=m 984CONFIG_MULTIFACE_III_TTY=m
@@ -974,6 +998,7 @@ CONFIG_EXT2_FS=y
974# CONFIG_EXT2_FS_XATTR is not set 998# CONFIG_EXT2_FS_XATTR is not set
975# CONFIG_EXT2_FS_XIP is not set 999# CONFIG_EXT2_FS_XIP is not set
976CONFIG_EXT3_FS=y 1000CONFIG_EXT3_FS=y
1001# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
977# CONFIG_EXT3_FS_XATTR is not set 1002# CONFIG_EXT3_FS_XATTR is not set
978# CONFIG_EXT4_FS is not set 1003# CONFIG_EXT4_FS is not set
979CONFIG_JBD=y 1004CONFIG_JBD=y
@@ -1000,13 +1025,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
1000# CONFIG_OCFS2_FS_STATS is not set 1025# CONFIG_OCFS2_FS_STATS is not set
1001# CONFIG_OCFS2_DEBUG_MASKLOG is not set 1026# CONFIG_OCFS2_DEBUG_MASKLOG is not set
1002# CONFIG_OCFS2_DEBUG_FS is not set 1027# CONFIG_OCFS2_DEBUG_FS is not set
1003# CONFIG_OCFS2_COMPAT_JBD is not set 1028# CONFIG_OCFS2_FS_POSIX_ACL is not set
1029# CONFIG_BTRFS_FS is not set
1004CONFIG_DNOTIFY=y 1030CONFIG_DNOTIFY=y
1005CONFIG_INOTIFY=y 1031CONFIG_INOTIFY=y
1006CONFIG_INOTIFY_USER=y 1032CONFIG_INOTIFY_USER=y
1007CONFIG_QUOTA=y 1033CONFIG_QUOTA=y
1008CONFIG_QUOTA_NETLINK_INTERFACE=y 1034CONFIG_QUOTA_NETLINK_INTERFACE=y
1009# CONFIG_PRINT_QUOTA_WARNING is not set 1035# CONFIG_PRINT_QUOTA_WARNING is not set
1036CONFIG_QUOTA_TREE=m
1010# CONFIG_QFMT_V1 is not set 1037# CONFIG_QFMT_V1 is not set
1011# CONFIG_QFMT_V2 is not set 1038# CONFIG_QFMT_V2 is not set
1012CONFIG_QUOTACTL=y 1039CONFIG_QUOTACTL=y
@@ -1015,6 +1042,11 @@ CONFIG_AUTOFS4_FS=m
1015CONFIG_FUSE_FS=m 1042CONFIG_FUSE_FS=m
1016 1043
1017# 1044#
1045# Caches
1046#
1047# CONFIG_FSCACHE is not set
1048
1049#
1018# CD-ROM/DVD Filesystems 1050# CD-ROM/DVD Filesystems
1019# 1051#
1020CONFIG_ISO9660_FS=y 1052CONFIG_ISO9660_FS=y
@@ -1045,10 +1077,7 @@ CONFIG_TMPFS=y
1045# CONFIG_TMPFS_POSIX_ACL is not set 1077# CONFIG_TMPFS_POSIX_ACL is not set
1046# CONFIG_HUGETLB_PAGE is not set 1078# CONFIG_HUGETLB_PAGE is not set
1047CONFIG_CONFIGFS_FS=m 1079CONFIG_CONFIGFS_FS=m
1048 1080CONFIG_MISC_FILESYSTEMS=y
1049#
1050# Miscellaneous filesystems
1051#
1052# CONFIG_ADFS_FS is not set 1081# CONFIG_ADFS_FS is not set
1053CONFIG_AFFS_FS=m 1082CONFIG_AFFS_FS=m
1054CONFIG_HFS_FS=y 1083CONFIG_HFS_FS=y
@@ -1057,6 +1086,9 @@ CONFIG_HFSPLUS_FS=y
1057# CONFIG_BFS_FS is not set 1086# CONFIG_BFS_FS is not set
1058# CONFIG_EFS_FS is not set 1087# CONFIG_EFS_FS is not set
1059CONFIG_CRAMFS=m 1088CONFIG_CRAMFS=m
1089CONFIG_SQUASHFS=m
1090# CONFIG_SQUASHFS_EMBEDDED is not set
1091CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1060# CONFIG_VXFS_FS is not set 1092# CONFIG_VXFS_FS is not set
1061CONFIG_MINIX_FS=y 1093CONFIG_MINIX_FS=y
1062# CONFIG_OMFS_FS is not set 1094# CONFIG_OMFS_FS is not set
@@ -1067,6 +1099,7 @@ CONFIG_SYSV_FS=m
1067CONFIG_UFS_FS=m 1099CONFIG_UFS_FS=m
1068# CONFIG_UFS_FS_WRITE is not set 1100# CONFIG_UFS_FS_WRITE is not set
1069# CONFIG_UFS_DEBUG is not set 1101# CONFIG_UFS_DEBUG is not set
1102# CONFIG_NILFS2_FS is not set
1070CONFIG_NETWORK_FILESYSTEMS=y 1103CONFIG_NETWORK_FILESYSTEMS=y
1071CONFIG_NFS_FS=y 1104CONFIG_NFS_FS=y
1072CONFIG_NFS_V3=y 1105CONFIG_NFS_V3=y
@@ -1083,7 +1116,6 @@ CONFIG_EXPORTFS=m
1083CONFIG_NFS_COMMON=y 1116CONFIG_NFS_COMMON=y
1084CONFIG_SUNRPC=y 1117CONFIG_SUNRPC=y
1085CONFIG_SUNRPC_GSS=y 1118CONFIG_SUNRPC_GSS=y
1086# CONFIG_SUNRPC_REGISTER_V4 is not set
1087CONFIG_RPCSEC_GSS_KRB5=y 1119CONFIG_RPCSEC_GSS_KRB5=y
1088# CONFIG_RPCSEC_GSS_SPKM3 is not set 1120# CONFIG_RPCSEC_GSS_SPKM3 is not set
1089CONFIG_SMB_FS=m 1121CONFIG_SMB_FS=m
@@ -1163,11 +1195,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1163CONFIG_DEBUG_MEMORY_INIT=y 1195CONFIG_DEBUG_MEMORY_INIT=y
1164# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1196# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1165CONFIG_SYSCTL_SYSCALL_CHECK=y 1197CONFIG_SYSCTL_SYSCALL_CHECK=y
1166
1167#
1168# Tracers
1169#
1170# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1171# CONFIG_SAMPLES is not set 1198# CONFIG_SAMPLES is not set
1172 1199
1173# 1200#
@@ -1188,13 +1215,21 @@ CONFIG_CRYPTO=y
1188# 1215#
1189# CONFIG_CRYPTO_FIPS is not set 1216# CONFIG_CRYPTO_FIPS is not set
1190CONFIG_CRYPTO_ALGAPI=y 1217CONFIG_CRYPTO_ALGAPI=y
1191CONFIG_CRYPTO_AEAD=y 1218CONFIG_CRYPTO_ALGAPI2=y
1219CONFIG_CRYPTO_AEAD=m
1220CONFIG_CRYPTO_AEAD2=y
1192CONFIG_CRYPTO_BLKCIPHER=y 1221CONFIG_CRYPTO_BLKCIPHER=y
1222CONFIG_CRYPTO_BLKCIPHER2=y
1193CONFIG_CRYPTO_HASH=y 1223CONFIG_CRYPTO_HASH=y
1194CONFIG_CRYPTO_RNG=y 1224CONFIG_CRYPTO_HASH2=y
1225CONFIG_CRYPTO_RNG=m
1226CONFIG_CRYPTO_RNG2=y
1227CONFIG_CRYPTO_PCOMP=y
1195CONFIG_CRYPTO_MANAGER=y 1228CONFIG_CRYPTO_MANAGER=y
1229CONFIG_CRYPTO_MANAGER2=y
1196CONFIG_CRYPTO_GF128MUL=m 1230CONFIG_CRYPTO_GF128MUL=m
1197CONFIG_CRYPTO_NULL=m 1231CONFIG_CRYPTO_NULL=m
1232CONFIG_CRYPTO_WORKQUEUE=y
1198CONFIG_CRYPTO_CRYPTD=m 1233CONFIG_CRYPTO_CRYPTD=m
1199CONFIG_CRYPTO_AUTHENC=m 1234CONFIG_CRYPTO_AUTHENC=m
1200CONFIG_CRYPTO_TEST=m 1235CONFIG_CRYPTO_TEST=m
@@ -1264,6 +1299,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1264# Compression 1299# Compression
1265# 1300#
1266CONFIG_CRYPTO_DEFLATE=m 1301CONFIG_CRYPTO_DEFLATE=m
1302CONFIG_CRYPTO_ZLIB=m
1267CONFIG_CRYPTO_LZO=m 1303CONFIG_CRYPTO_LZO=m
1268 1304
1269# 1305#
@@ -1271,11 +1307,13 @@ CONFIG_CRYPTO_LZO=m
1271# 1307#
1272# CONFIG_CRYPTO_ANSI_CPRNG is not set 1308# CONFIG_CRYPTO_ANSI_CPRNG is not set
1273# CONFIG_CRYPTO_HW is not set 1309# CONFIG_CRYPTO_HW is not set
1310# CONFIG_BINARY_PRINTF is not set
1274 1311
1275# 1312#
1276# Library routines 1313# Library routines
1277# 1314#
1278CONFIG_BITREVERSE=y 1315CONFIG_BITREVERSE=y
1316CONFIG_GENERIC_FIND_LAST_BIT=y
1279CONFIG_CRC_CCITT=m 1317CONFIG_CRC_CCITT=m
1280CONFIG_CRC16=y 1318CONFIG_CRC16=y
1281CONFIG_CRC_T10DIF=y 1319CONFIG_CRC_T10DIF=y
@@ -1287,10 +1325,13 @@ CONFIG_ZLIB_INFLATE=y
1287CONFIG_ZLIB_DEFLATE=m 1325CONFIG_ZLIB_DEFLATE=m
1288CONFIG_LZO_COMPRESS=m 1326CONFIG_LZO_COMPRESS=m
1289CONFIG_LZO_DECOMPRESS=m 1327CONFIG_LZO_DECOMPRESS=m
1328CONFIG_DECOMPRESS_GZIP=y
1329CONFIG_DECOMPRESS_BZIP2=y
1330CONFIG_DECOMPRESS_LZMA=y
1290CONFIG_TEXTSEARCH=y 1331CONFIG_TEXTSEARCH=y
1291CONFIG_TEXTSEARCH_KMP=m 1332CONFIG_TEXTSEARCH_KMP=m
1292CONFIG_TEXTSEARCH_BM=m 1333CONFIG_TEXTSEARCH_BM=m
1293CONFIG_TEXTSEARCH_FSM=m 1334CONFIG_TEXTSEARCH_FSM=m
1294CONFIG_PLIST=y
1295CONFIG_HAS_IOMEM=y 1335CONFIG_HAS_IOMEM=y
1296CONFIG_HAS_DMA=y 1336CONFIG_HAS_DMA=y
1337CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index 52d42715bd0b..7dceb5d71223 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:50 2008 4# Wed Apr 22 20:48:08 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -143,12 +154,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
143CONFIG_NEED_MULTIPLE_NODES=y 154CONFIG_NEED_MULTIPLE_NODES=y
144CONFIG_PAGEFLAGS_EXTENDED=y 155CONFIG_PAGEFLAGS_EXTENDED=y
145CONFIG_SPLIT_PTLOCK_CPUS=4 156CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set 157# CONFIG_PHYS_ADDR_T_64BIT is not set
148CONFIG_ZONE_DMA_FLAG=1 158CONFIG_ZONE_DMA_FLAG=1
149CONFIG_BOUNCE=y 159CONFIG_BOUNCE=y
150CONFIG_VIRT_TO_BUS=y 160CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y 161CONFIG_UNEVICTABLE_LRU=y
162CONFIG_HAVE_MLOCK=y
163CONFIG_HAVE_MLOCKED_PAGE_BIT=y
152 164
153# 165#
154# General setup 166# General setup
@@ -258,6 +270,7 @@ CONFIG_NETFILTER_XTABLES=m
258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 270CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 271CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
260CONFIG_NETFILTER_XT_TARGET_DSCP=m 272CONFIG_NETFILTER_XT_TARGET_DSCP=m
273CONFIG_NETFILTER_XT_TARGET_HL=m
261CONFIG_NETFILTER_XT_TARGET_MARK=m 274CONFIG_NETFILTER_XT_TARGET_MARK=m
262CONFIG_NETFILTER_XT_TARGET_NFLOG=m 275CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 276CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -266,6 +279,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
266CONFIG_NETFILTER_XT_TARGET_TRACE=m 279CONFIG_NETFILTER_XT_TARGET_TRACE=m
267CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 280CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
268CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 281CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
282CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
269CONFIG_NETFILTER_XT_MATCH_COMMENT=m 283CONFIG_NETFILTER_XT_MATCH_COMMENT=m
270CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 284CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
271CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 285CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -276,6 +290,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
276CONFIG_NETFILTER_XT_MATCH_ESP=m 290CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 291CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
278CONFIG_NETFILTER_XT_MATCH_HELPER=m 292CONFIG_NETFILTER_XT_MATCH_HELPER=m
293CONFIG_NETFILTER_XT_MATCH_HL=m
279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 294CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
280CONFIG_NETFILTER_XT_MATCH_LENGTH=m 295CONFIG_NETFILTER_XT_MATCH_LENGTH=m
281CONFIG_NETFILTER_XT_MATCH_LIMIT=m 296CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -354,25 +369,20 @@ CONFIG_IP6_NF_MATCH_HL=m
354CONFIG_IP6_NF_MATCH_IPV6HEADER=m 369CONFIG_IP6_NF_MATCH_IPV6HEADER=m
355CONFIG_IP6_NF_MATCH_MH=m 370CONFIG_IP6_NF_MATCH_MH=m
356CONFIG_IP6_NF_MATCH_RT=m 371CONFIG_IP6_NF_MATCH_RT=m
372CONFIG_IP6_NF_TARGET_HL=m
357CONFIG_IP6_NF_TARGET_LOG=m 373CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m 374CONFIG_IP6_NF_FILTER=m
359CONFIG_IP6_NF_TARGET_REJECT=m 375CONFIG_IP6_NF_TARGET_REJECT=m
360CONFIG_IP6_NF_MANGLE=m 376CONFIG_IP6_NF_MANGLE=m
361CONFIG_IP6_NF_TARGET_HL=m
362CONFIG_IP6_NF_RAW=m 377CONFIG_IP6_NF_RAW=m
363CONFIG_IP_DCCP=m 378CONFIG_IP_DCCP=m
364CONFIG_INET_DCCP_DIAG=m 379CONFIG_INET_DCCP_DIAG=m
365CONFIG_IP_DCCP_ACKVEC=y
366 380
367# 381#
368# DCCP CCIDs Configuration (EXPERIMENTAL) 382# DCCP CCIDs Configuration (EXPERIMENTAL)
369# 383#
370CONFIG_IP_DCCP_CCID2=m
371# CONFIG_IP_DCCP_CCID2_DEBUG is not set 384# CONFIG_IP_DCCP_CCID2_DEBUG is not set
372CONFIG_IP_DCCP_CCID3=m 385# CONFIG_IP_DCCP_CCID3 is not set
373# CONFIG_IP_DCCP_CCID3_DEBUG is not set
374CONFIG_IP_DCCP_CCID3_RTO=100
375CONFIG_IP_DCCP_TFRC_LIB=m
376CONFIG_IP_SCTP=m 386CONFIG_IP_SCTP=m
377# CONFIG_SCTP_DBG_MSG is not set 387# CONFIG_SCTP_DBG_MSG is not set
378# CONFIG_SCTP_DBG_OBJCNT is not set 388# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -394,8 +404,10 @@ CONFIG_ATALK=m
394# CONFIG_LAPB is not set 404# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 405# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 406# CONFIG_WAN_ROUTER is not set
407# CONFIG_PHONET is not set
397# CONFIG_NET_SCHED is not set 408# CONFIG_NET_SCHED is not set
398CONFIG_NET_CLS_ROUTE=y 409CONFIG_NET_CLS_ROUTE=y
410# CONFIG_DCB is not set
399 411
400# 412#
401# Network testing 413# Network testing
@@ -406,8 +418,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 418# CONFIG_IRDA is not set
407# CONFIG_BT is not set 419# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 420# CONFIG_AF_RXRPC is not set
409# CONFIG_PHONET is not set
410# CONFIG_WIRELESS is not set 421# CONFIG_WIRELESS is not set
422# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 423# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 424# CONFIG_NET_9P is not set
413 425
@@ -443,9 +455,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
443CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
444# CONFIG_BLK_DEV_HD is not set 456# CONFIG_BLK_DEV_HD is not set
445CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set 459# CONFIG_C2PORT is not set
460
461#
462# EEPROM support
463#
464# CONFIG_EEPROM_93CX6 is not set
449CONFIG_HAVE_IDE=y 465CONFIG_HAVE_IDE=y
450# CONFIG_IDE is not set 466# CONFIG_IDE is not set
451 467
@@ -493,9 +509,12 @@ CONFIG_SCSI_SRP_ATTRS=m
493CONFIG_SCSI_SRP_TGT_ATTRS=y 509CONFIG_SCSI_SRP_TGT_ATTRS=y
494CONFIG_SCSI_LOWLEVEL=y 510CONFIG_SCSI_LOWLEVEL=y
495CONFIG_ISCSI_TCP=m 511CONFIG_ISCSI_TCP=m
512# CONFIG_LIBFC is not set
513# CONFIG_LIBFCOE is not set
496# CONFIG_SCSI_DEBUG is not set 514# CONFIG_SCSI_DEBUG is not set
497CONFIG_MVME147_SCSI=y 515CONFIG_MVME147_SCSI=y
498# CONFIG_SCSI_DH is not set 516# CONFIG_SCSI_DH is not set
517# CONFIG_SCSI_OSD_INITIATOR is not set
499CONFIG_MD=y 518CONFIG_MD=y
500CONFIG_BLK_DEV_MD=m 519CONFIG_BLK_DEV_MD=m
501CONFIG_MD_LINEAR=m 520CONFIG_MD_LINEAR=m
@@ -503,7 +522,7 @@ CONFIG_MD_RAID0=m
503CONFIG_MD_RAID1=m 522CONFIG_MD_RAID1=m
504# CONFIG_MD_RAID10 is not set 523# CONFIG_MD_RAID10 is not set
505CONFIG_MD_RAID456=m 524CONFIG_MD_RAID456=m
506CONFIG_MD_RAID5_RESHAPE=y 525CONFIG_MD_RAID6_PQ=m
507# CONFIG_MD_MULTIPATH is not set 526# CONFIG_MD_MULTIPATH is not set
508# CONFIG_MD_FAULTY is not set 527# CONFIG_MD_FAULTY is not set
509CONFIG_BLK_DEV_DM=m 528CONFIG_BLK_DEV_DM=m
@@ -516,6 +535,7 @@ CONFIG_DM_MULTIPATH=m
516# CONFIG_DM_DELAY is not set 535# CONFIG_DM_DELAY is not set
517CONFIG_DM_UEVENT=y 536CONFIG_DM_UEVENT=y
518CONFIG_NETDEVICES=y 537CONFIG_NETDEVICES=y
538CONFIG_COMPAT_NET_DEV_OPS=y
519CONFIG_DUMMY=m 539CONFIG_DUMMY=m
520# CONFIG_BONDING is not set 540# CONFIG_BONDING is not set
521CONFIG_MACVLAN=m 541CONFIG_MACVLAN=m
@@ -526,6 +546,8 @@ CONFIG_VETH=m
526CONFIG_NET_ETHERNET=y 546CONFIG_NET_ETHERNET=y
527# CONFIG_MII is not set 547# CONFIG_MII is not set
528CONFIG_MVME147_NET=y 548CONFIG_MVME147_NET=y
549# CONFIG_ETHOC is not set
550# CONFIG_DNET is not set
529# CONFIG_IBM_NEW_EMAC_ZMII is not set 551# CONFIG_IBM_NEW_EMAC_ZMII is not set
530# CONFIG_IBM_NEW_EMAC_RGMII is not set 552# CONFIG_IBM_NEW_EMAC_RGMII is not set
531# CONFIG_IBM_NEW_EMAC_TAH is not set 553# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -542,7 +564,10 @@ CONFIG_MVME147_NET=y
542# 564#
543# CONFIG_WLAN_PRE80211 is not set 565# CONFIG_WLAN_PRE80211 is not set
544# CONFIG_WLAN_80211 is not set 566# CONFIG_WLAN_80211 is not set
545# CONFIG_IWLWIFI_LEDS is not set 567
568#
569# Enable WiMAX (Networking options) to see the WiMAX drivers
570#
546# CONFIG_WAN is not set 571# CONFIG_WAN is not set
547CONFIG_PPP=m 572CONFIG_PPP=m
548# CONFIG_PPP_MULTILINK is not set 573# CONFIG_PPP_MULTILINK is not set
@@ -600,7 +625,6 @@ CONFIG_MOUSE_PS2=m
600CONFIG_MOUSE_PS2_ALPS=y 625CONFIG_MOUSE_PS2_ALPS=y
601CONFIG_MOUSE_PS2_LOGIPS2PP=y 626CONFIG_MOUSE_PS2_LOGIPS2PP=y
602CONFIG_MOUSE_PS2_SYNAPTICS=y 627CONFIG_MOUSE_PS2_SYNAPTICS=y
603CONFIG_MOUSE_PS2_LIFEBOOK=y
604CONFIG_MOUSE_PS2_TRACKPOINT=y 628CONFIG_MOUSE_PS2_TRACKPOINT=y
605# CONFIG_MOUSE_PS2_ELANTECH is not set 629# CONFIG_MOUSE_PS2_ELANTECH is not set
606# CONFIG_MOUSE_PS2_TOUCHKIT is not set 630# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -640,6 +664,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
640# Non-8250 serial port support 664# Non-8250 serial port support
641# 665#
642CONFIG_UNIX98_PTYS=y 666CONFIG_UNIX98_PTYS=y
667# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
643CONFIG_LEGACY_PTYS=y 668CONFIG_LEGACY_PTYS=y
644CONFIG_LEGACY_PTY_COUNT=256 669CONFIG_LEGACY_PTY_COUNT=256
645# CONFIG_IPMI_HANDLER is not set 670# CONFIG_IPMI_HANDLER is not set
@@ -716,7 +741,6 @@ CONFIG_HIDRAW=y
716# 741#
717# Special HID drivers 742# Special HID drivers
718# 743#
719CONFIG_HID_COMPAT=y
720# CONFIG_USB_SUPPORT is not set 744# CONFIG_USB_SUPPORT is not set
721# CONFIG_MMC is not set 745# CONFIG_MMC is not set
722# CONFIG_MEMSTICK is not set 746# CONFIG_MEMSTICK is not set
@@ -724,9 +748,9 @@ CONFIG_HID_COMPAT=y
724# CONFIG_ACCESSIBILITY is not set 748# CONFIG_ACCESSIBILITY is not set
725# CONFIG_RTC_CLASS is not set 749# CONFIG_RTC_CLASS is not set
726# CONFIG_DMADEVICES is not set 750# CONFIG_DMADEVICES is not set
751# CONFIG_AUXDISPLAY is not set
727# CONFIG_UIO is not set 752# CONFIG_UIO is not set
728# CONFIG_STAGING is not set 753# CONFIG_STAGING is not set
729CONFIG_STAGING_EXCLUDE_BUILD=y
730 754
731# 755#
732# Character devices 756# Character devices
@@ -741,6 +765,7 @@ CONFIG_EXT2_FS=y
741# CONFIG_EXT2_FS_XATTR is not set 765# CONFIG_EXT2_FS_XATTR is not set
742# CONFIG_EXT2_FS_XIP is not set 766# CONFIG_EXT2_FS_XIP is not set
743CONFIG_EXT3_FS=y 767CONFIG_EXT3_FS=y
768# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
744# CONFIG_EXT3_FS_XATTR is not set 769# CONFIG_EXT3_FS_XATTR is not set
745# CONFIG_EXT4_FS is not set 770# CONFIG_EXT4_FS is not set
746CONFIG_JBD=y 771CONFIG_JBD=y
@@ -767,13 +792,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
767# CONFIG_OCFS2_FS_STATS is not set 792# CONFIG_OCFS2_FS_STATS is not set
768# CONFIG_OCFS2_DEBUG_MASKLOG is not set 793# CONFIG_OCFS2_DEBUG_MASKLOG is not set
769# CONFIG_OCFS2_DEBUG_FS is not set 794# CONFIG_OCFS2_DEBUG_FS is not set
770# CONFIG_OCFS2_COMPAT_JBD is not set 795# CONFIG_OCFS2_FS_POSIX_ACL is not set
796# CONFIG_BTRFS_FS is not set
771CONFIG_DNOTIFY=y 797CONFIG_DNOTIFY=y
772CONFIG_INOTIFY=y 798CONFIG_INOTIFY=y
773CONFIG_INOTIFY_USER=y 799CONFIG_INOTIFY_USER=y
774CONFIG_QUOTA=y 800CONFIG_QUOTA=y
775CONFIG_QUOTA_NETLINK_INTERFACE=y 801CONFIG_QUOTA_NETLINK_INTERFACE=y
776# CONFIG_PRINT_QUOTA_WARNING is not set 802# CONFIG_PRINT_QUOTA_WARNING is not set
803CONFIG_QUOTA_TREE=m
777# CONFIG_QFMT_V1 is not set 804# CONFIG_QFMT_V1 is not set
778# CONFIG_QFMT_V2 is not set 805# CONFIG_QFMT_V2 is not set
779CONFIG_QUOTACTL=y 806CONFIG_QUOTACTL=y
@@ -782,6 +809,11 @@ CONFIG_AUTOFS4_FS=m
782CONFIG_FUSE_FS=m 809CONFIG_FUSE_FS=m
783 810
784# 811#
812# Caches
813#
814# CONFIG_FSCACHE is not set
815
816#
785# CD-ROM/DVD Filesystems 817# CD-ROM/DVD Filesystems
786# 818#
787CONFIG_ISO9660_FS=y 819CONFIG_ISO9660_FS=y
@@ -812,10 +844,7 @@ CONFIG_TMPFS=y
812# CONFIG_TMPFS_POSIX_ACL is not set 844# CONFIG_TMPFS_POSIX_ACL is not set
813# CONFIG_HUGETLB_PAGE is not set 845# CONFIG_HUGETLB_PAGE is not set
814CONFIG_CONFIGFS_FS=m 846CONFIG_CONFIGFS_FS=m
815 847CONFIG_MISC_FILESYSTEMS=y
816#
817# Miscellaneous filesystems
818#
819# CONFIG_ADFS_FS is not set 848# CONFIG_ADFS_FS is not set
820CONFIG_AFFS_FS=m 849CONFIG_AFFS_FS=m
821CONFIG_HFS_FS=m 850CONFIG_HFS_FS=m
@@ -824,6 +853,9 @@ CONFIG_HFSPLUS_FS=m
824# CONFIG_BFS_FS is not set 853# CONFIG_BFS_FS is not set
825# CONFIG_EFS_FS is not set 854# CONFIG_EFS_FS is not set
826CONFIG_CRAMFS=m 855CONFIG_CRAMFS=m
856CONFIG_SQUASHFS=m
857# CONFIG_SQUASHFS_EMBEDDED is not set
858CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
827# CONFIG_VXFS_FS is not set 859# CONFIG_VXFS_FS is not set
828CONFIG_MINIX_FS=y 860CONFIG_MINIX_FS=y
829# CONFIG_OMFS_FS is not set 861# CONFIG_OMFS_FS is not set
@@ -834,6 +866,7 @@ CONFIG_SYSV_FS=m
834CONFIG_UFS_FS=m 866CONFIG_UFS_FS=m
835# CONFIG_UFS_FS_WRITE is not set 867# CONFIG_UFS_FS_WRITE is not set
836# CONFIG_UFS_DEBUG is not set 868# CONFIG_UFS_DEBUG is not set
869# CONFIG_NILFS2_FS is not set
837CONFIG_NETWORK_FILESYSTEMS=y 870CONFIG_NETWORK_FILESYSTEMS=y
838CONFIG_NFS_FS=y 871CONFIG_NFS_FS=y
839CONFIG_NFS_V3=y 872CONFIG_NFS_V3=y
@@ -850,7 +883,6 @@ CONFIG_EXPORTFS=m
850CONFIG_NFS_COMMON=y 883CONFIG_NFS_COMMON=y
851CONFIG_SUNRPC=y 884CONFIG_SUNRPC=y
852CONFIG_SUNRPC_GSS=y 885CONFIG_SUNRPC_GSS=y
853# CONFIG_SUNRPC_REGISTER_V4 is not set
854CONFIG_RPCSEC_GSS_KRB5=y 886CONFIG_RPCSEC_GSS_KRB5=y
855# CONFIG_RPCSEC_GSS_SPKM3 is not set 887# CONFIG_RPCSEC_GSS_SPKM3 is not set
856CONFIG_SMB_FS=m 888CONFIG_SMB_FS=m
@@ -926,11 +958,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
926CONFIG_DEBUG_MEMORY_INIT=y 958CONFIG_DEBUG_MEMORY_INIT=y
927# CONFIG_RCU_CPU_STALL_DETECTOR is not set 959# CONFIG_RCU_CPU_STALL_DETECTOR is not set
928CONFIG_SYSCTL_SYSCALL_CHECK=y 960CONFIG_SYSCTL_SYSCALL_CHECK=y
929
930#
931# Tracers
932#
933# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
934# CONFIG_SAMPLES is not set 961# CONFIG_SAMPLES is not set
935 962
936# 963#
@@ -951,13 +978,21 @@ CONFIG_CRYPTO=y
951# 978#
952# CONFIG_CRYPTO_FIPS is not set 979# CONFIG_CRYPTO_FIPS is not set
953CONFIG_CRYPTO_ALGAPI=y 980CONFIG_CRYPTO_ALGAPI=y
954CONFIG_CRYPTO_AEAD=y 981CONFIG_CRYPTO_ALGAPI2=y
982CONFIG_CRYPTO_AEAD=m
983CONFIG_CRYPTO_AEAD2=y
955CONFIG_CRYPTO_BLKCIPHER=y 984CONFIG_CRYPTO_BLKCIPHER=y
985CONFIG_CRYPTO_BLKCIPHER2=y
956CONFIG_CRYPTO_HASH=y 986CONFIG_CRYPTO_HASH=y
957CONFIG_CRYPTO_RNG=y 987CONFIG_CRYPTO_HASH2=y
988CONFIG_CRYPTO_RNG=m
989CONFIG_CRYPTO_RNG2=y
990CONFIG_CRYPTO_PCOMP=y
958CONFIG_CRYPTO_MANAGER=y 991CONFIG_CRYPTO_MANAGER=y
992CONFIG_CRYPTO_MANAGER2=y
959CONFIG_CRYPTO_GF128MUL=m 993CONFIG_CRYPTO_GF128MUL=m
960CONFIG_CRYPTO_NULL=m 994CONFIG_CRYPTO_NULL=m
995CONFIG_CRYPTO_WORKQUEUE=y
961CONFIG_CRYPTO_CRYPTD=m 996CONFIG_CRYPTO_CRYPTD=m
962CONFIG_CRYPTO_AUTHENC=m 997CONFIG_CRYPTO_AUTHENC=m
963CONFIG_CRYPTO_TEST=m 998CONFIG_CRYPTO_TEST=m
@@ -1027,6 +1062,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1027# Compression 1062# Compression
1028# 1063#
1029CONFIG_CRYPTO_DEFLATE=m 1064CONFIG_CRYPTO_DEFLATE=m
1065CONFIG_CRYPTO_ZLIB=m
1030CONFIG_CRYPTO_LZO=m 1066CONFIG_CRYPTO_LZO=m
1031 1067
1032# 1068#
@@ -1034,11 +1070,13 @@ CONFIG_CRYPTO_LZO=m
1034# 1070#
1035# CONFIG_CRYPTO_ANSI_CPRNG is not set 1071# CONFIG_CRYPTO_ANSI_CPRNG is not set
1036# CONFIG_CRYPTO_HW is not set 1072# CONFIG_CRYPTO_HW is not set
1073# CONFIG_BINARY_PRINTF is not set
1037 1074
1038# 1075#
1039# Library routines 1076# Library routines
1040# 1077#
1041CONFIG_BITREVERSE=y 1078CONFIG_BITREVERSE=y
1079CONFIG_GENERIC_FIND_LAST_BIT=y
1042CONFIG_CRC_CCITT=m 1080CONFIG_CRC_CCITT=m
1043CONFIG_CRC16=m 1081CONFIG_CRC16=m
1044CONFIG_CRC_T10DIF=y 1082CONFIG_CRC_T10DIF=y
@@ -1050,10 +1088,13 @@ CONFIG_ZLIB_INFLATE=y
1050CONFIG_ZLIB_DEFLATE=m 1088CONFIG_ZLIB_DEFLATE=m
1051CONFIG_LZO_COMPRESS=m 1089CONFIG_LZO_COMPRESS=m
1052CONFIG_LZO_DECOMPRESS=m 1090CONFIG_LZO_DECOMPRESS=m
1091CONFIG_DECOMPRESS_GZIP=y
1092CONFIG_DECOMPRESS_BZIP2=y
1093CONFIG_DECOMPRESS_LZMA=y
1053CONFIG_TEXTSEARCH=y 1094CONFIG_TEXTSEARCH=y
1054CONFIG_TEXTSEARCH_KMP=m 1095CONFIG_TEXTSEARCH_KMP=m
1055CONFIG_TEXTSEARCH_BM=m 1096CONFIG_TEXTSEARCH_BM=m
1056CONFIG_TEXTSEARCH_FSM=m 1097CONFIG_TEXTSEARCH_FSM=m
1057CONFIG_PLIST=y
1058CONFIG_HAS_IOMEM=y 1098CONFIG_HAS_IOMEM=y
1059CONFIG_HAS_DMA=y 1099CONFIG_HAS_DMA=y
1100CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index 3403ed2eda79..890594fcacb3 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:51 2008 4# Wed Apr 22 20:48:10 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -143,12 +154,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
143CONFIG_NEED_MULTIPLE_NODES=y 154CONFIG_NEED_MULTIPLE_NODES=y
144CONFIG_PAGEFLAGS_EXTENDED=y 155CONFIG_PAGEFLAGS_EXTENDED=y
145CONFIG_SPLIT_PTLOCK_CPUS=4 156CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_RESOURCES_64BIT is not set
147# CONFIG_PHYS_ADDR_T_64BIT is not set 157# CONFIG_PHYS_ADDR_T_64BIT is not set
148CONFIG_ZONE_DMA_FLAG=1 158CONFIG_ZONE_DMA_FLAG=1
149CONFIG_BOUNCE=y 159CONFIG_BOUNCE=y
150CONFIG_VIRT_TO_BUS=y 160CONFIG_VIRT_TO_BUS=y
151CONFIG_UNEVICTABLE_LRU=y 161CONFIG_UNEVICTABLE_LRU=y
162CONFIG_HAVE_MLOCK=y
163CONFIG_HAVE_MLOCKED_PAGE_BIT=y
152 164
153# 165#
154# General setup 166# General setup
@@ -258,6 +270,7 @@ CONFIG_NETFILTER_XTABLES=m
258CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 270CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
259CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 271CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
260CONFIG_NETFILTER_XT_TARGET_DSCP=m 272CONFIG_NETFILTER_XT_TARGET_DSCP=m
273CONFIG_NETFILTER_XT_TARGET_HL=m
261CONFIG_NETFILTER_XT_TARGET_MARK=m 274CONFIG_NETFILTER_XT_TARGET_MARK=m
262CONFIG_NETFILTER_XT_TARGET_NFLOG=m 275CONFIG_NETFILTER_XT_TARGET_NFLOG=m
263CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 276CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -266,6 +279,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
266CONFIG_NETFILTER_XT_TARGET_TRACE=m 279CONFIG_NETFILTER_XT_TARGET_TRACE=m
267CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 280CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
268CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 281CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
282CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
269CONFIG_NETFILTER_XT_MATCH_COMMENT=m 283CONFIG_NETFILTER_XT_MATCH_COMMENT=m
270CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 284CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
271CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 285CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -276,6 +290,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
276CONFIG_NETFILTER_XT_MATCH_ESP=m 290CONFIG_NETFILTER_XT_MATCH_ESP=m
277CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 291CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
278CONFIG_NETFILTER_XT_MATCH_HELPER=m 292CONFIG_NETFILTER_XT_MATCH_HELPER=m
293CONFIG_NETFILTER_XT_MATCH_HL=m
279CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 294CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
280CONFIG_NETFILTER_XT_MATCH_LENGTH=m 295CONFIG_NETFILTER_XT_MATCH_LENGTH=m
281CONFIG_NETFILTER_XT_MATCH_LIMIT=m 296CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -354,25 +369,20 @@ CONFIG_IP6_NF_MATCH_HL=m
354CONFIG_IP6_NF_MATCH_IPV6HEADER=m 369CONFIG_IP6_NF_MATCH_IPV6HEADER=m
355CONFIG_IP6_NF_MATCH_MH=m 370CONFIG_IP6_NF_MATCH_MH=m
356CONFIG_IP6_NF_MATCH_RT=m 371CONFIG_IP6_NF_MATCH_RT=m
372CONFIG_IP6_NF_TARGET_HL=m
357CONFIG_IP6_NF_TARGET_LOG=m 373CONFIG_IP6_NF_TARGET_LOG=m
358CONFIG_IP6_NF_FILTER=m 374CONFIG_IP6_NF_FILTER=m
359CONFIG_IP6_NF_TARGET_REJECT=m 375CONFIG_IP6_NF_TARGET_REJECT=m
360CONFIG_IP6_NF_MANGLE=m 376CONFIG_IP6_NF_MANGLE=m
361CONFIG_IP6_NF_TARGET_HL=m
362CONFIG_IP6_NF_RAW=m 377CONFIG_IP6_NF_RAW=m
363CONFIG_IP_DCCP=m 378CONFIG_IP_DCCP=m
364CONFIG_INET_DCCP_DIAG=m 379CONFIG_INET_DCCP_DIAG=m
365CONFIG_IP_DCCP_ACKVEC=y
366 380
367# 381#
368# DCCP CCIDs Configuration (EXPERIMENTAL) 382# DCCP CCIDs Configuration (EXPERIMENTAL)
369# 383#
370CONFIG_IP_DCCP_CCID2=m
371# CONFIG_IP_DCCP_CCID2_DEBUG is not set 384# CONFIG_IP_DCCP_CCID2_DEBUG is not set
372CONFIG_IP_DCCP_CCID3=m 385# CONFIG_IP_DCCP_CCID3 is not set
373# CONFIG_IP_DCCP_CCID3_DEBUG is not set
374CONFIG_IP_DCCP_CCID3_RTO=100
375CONFIG_IP_DCCP_TFRC_LIB=m
376CONFIG_IP_SCTP=m 386CONFIG_IP_SCTP=m
377# CONFIG_SCTP_DBG_MSG is not set 387# CONFIG_SCTP_DBG_MSG is not set
378# CONFIG_SCTP_DBG_OBJCNT is not set 388# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -394,8 +404,10 @@ CONFIG_ATALK=m
394# CONFIG_LAPB is not set 404# CONFIG_LAPB is not set
395# CONFIG_ECONET is not set 405# CONFIG_ECONET is not set
396# CONFIG_WAN_ROUTER is not set 406# CONFIG_WAN_ROUTER is not set
407# CONFIG_PHONET is not set
397# CONFIG_NET_SCHED is not set 408# CONFIG_NET_SCHED is not set
398CONFIG_NET_CLS_ROUTE=y 409CONFIG_NET_CLS_ROUTE=y
410# CONFIG_DCB is not set
399 411
400# 412#
401# Network testing 413# Network testing
@@ -406,8 +418,8 @@ CONFIG_NET_CLS_ROUTE=y
406# CONFIG_IRDA is not set 418# CONFIG_IRDA is not set
407# CONFIG_BT is not set 419# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 420# CONFIG_AF_RXRPC is not set
409# CONFIG_PHONET is not set
410# CONFIG_WIRELESS is not set 421# CONFIG_WIRELESS is not set
422# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 423# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 424# CONFIG_NET_9P is not set
413 425
@@ -443,9 +455,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
443CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
444# CONFIG_BLK_DEV_HD is not set 456# CONFIG_BLK_DEV_HD is not set
445CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
446# CONFIG_EEPROM_93CX6 is not set
447# CONFIG_ENCLOSURE_SERVICES is not set 458# CONFIG_ENCLOSURE_SERVICES is not set
448# CONFIG_C2PORT is not set 459# CONFIG_C2PORT is not set
460
461#
462# EEPROM support
463#
464# CONFIG_EEPROM_93CX6 is not set
449CONFIG_HAVE_IDE=y 465CONFIG_HAVE_IDE=y
450# CONFIG_IDE is not set 466# CONFIG_IDE is not set
451 467
@@ -493,10 +509,13 @@ CONFIG_SCSI_SRP_ATTRS=m
493CONFIG_SCSI_SRP_TGT_ATTRS=y 509CONFIG_SCSI_SRP_TGT_ATTRS=y
494CONFIG_SCSI_LOWLEVEL=y 510CONFIG_SCSI_LOWLEVEL=y
495CONFIG_ISCSI_TCP=m 511CONFIG_ISCSI_TCP=m
512# CONFIG_LIBFC is not set
513# CONFIG_LIBFCOE is not set
496CONFIG_53C700_BE_BUS=y 514CONFIG_53C700_BE_BUS=y
497# CONFIG_SCSI_DEBUG is not set 515# CONFIG_SCSI_DEBUG is not set
498CONFIG_MVME16x_SCSI=y 516CONFIG_MVME16x_SCSI=y
499# CONFIG_SCSI_DH is not set 517# CONFIG_SCSI_DH is not set
518# CONFIG_SCSI_OSD_INITIATOR is not set
500CONFIG_MD=y 519CONFIG_MD=y
501CONFIG_BLK_DEV_MD=m 520CONFIG_BLK_DEV_MD=m
502CONFIG_MD_LINEAR=m 521CONFIG_MD_LINEAR=m
@@ -504,7 +523,7 @@ CONFIG_MD_RAID0=m
504CONFIG_MD_RAID1=m 523CONFIG_MD_RAID1=m
505# CONFIG_MD_RAID10 is not set 524# CONFIG_MD_RAID10 is not set
506CONFIG_MD_RAID456=m 525CONFIG_MD_RAID456=m
507CONFIG_MD_RAID5_RESHAPE=y 526CONFIG_MD_RAID6_PQ=m
508# CONFIG_MD_MULTIPATH is not set 527# CONFIG_MD_MULTIPATH is not set
509# CONFIG_MD_FAULTY is not set 528# CONFIG_MD_FAULTY is not set
510CONFIG_BLK_DEV_DM=m 529CONFIG_BLK_DEV_DM=m
@@ -517,6 +536,7 @@ CONFIG_DM_MULTIPATH=m
517# CONFIG_DM_DELAY is not set 536# CONFIG_DM_DELAY is not set
518CONFIG_DM_UEVENT=y 537CONFIG_DM_UEVENT=y
519CONFIG_NETDEVICES=y 538CONFIG_NETDEVICES=y
539CONFIG_COMPAT_NET_DEV_OPS=y
520CONFIG_DUMMY=m 540CONFIG_DUMMY=m
521# CONFIG_BONDING is not set 541# CONFIG_BONDING is not set
522CONFIG_MACVLAN=m 542CONFIG_MACVLAN=m
@@ -527,6 +547,8 @@ CONFIG_VETH=m
527CONFIG_NET_ETHERNET=y 547CONFIG_NET_ETHERNET=y
528# CONFIG_MII is not set 548# CONFIG_MII is not set
529CONFIG_MVME16x_NET=y 549CONFIG_MVME16x_NET=y
550# CONFIG_ETHOC is not set
551# CONFIG_DNET is not set
530# CONFIG_IBM_NEW_EMAC_ZMII is not set 552# CONFIG_IBM_NEW_EMAC_ZMII is not set
531# CONFIG_IBM_NEW_EMAC_RGMII is not set 553# CONFIG_IBM_NEW_EMAC_RGMII is not set
532# CONFIG_IBM_NEW_EMAC_TAH is not set 554# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -543,7 +565,10 @@ CONFIG_MVME16x_NET=y
543# 565#
544# CONFIG_WLAN_PRE80211 is not set 566# CONFIG_WLAN_PRE80211 is not set
545# CONFIG_WLAN_80211 is not set 567# CONFIG_WLAN_80211 is not set
546# CONFIG_IWLWIFI_LEDS is not set 568
569#
570# Enable WiMAX (Networking options) to see the WiMAX drivers
571#
547# CONFIG_WAN is not set 572# CONFIG_WAN is not set
548CONFIG_PPP=m 573CONFIG_PPP=m
549# CONFIG_PPP_MULTILINK is not set 574# CONFIG_PPP_MULTILINK is not set
@@ -601,7 +626,6 @@ CONFIG_MOUSE_PS2=m
601CONFIG_MOUSE_PS2_ALPS=y 626CONFIG_MOUSE_PS2_ALPS=y
602CONFIG_MOUSE_PS2_LOGIPS2PP=y 627CONFIG_MOUSE_PS2_LOGIPS2PP=y
603CONFIG_MOUSE_PS2_SYNAPTICS=y 628CONFIG_MOUSE_PS2_SYNAPTICS=y
604CONFIG_MOUSE_PS2_LIFEBOOK=y
605CONFIG_MOUSE_PS2_TRACKPOINT=y 629CONFIG_MOUSE_PS2_TRACKPOINT=y
606# CONFIG_MOUSE_PS2_ELANTECH is not set 630# CONFIG_MOUSE_PS2_ELANTECH is not set
607# CONFIG_MOUSE_PS2_TOUCHKIT is not set 631# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -641,6 +665,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
641# Non-8250 serial port support 665# Non-8250 serial port support
642# 666#
643CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
668# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
644CONFIG_LEGACY_PTYS=y 669CONFIG_LEGACY_PTYS=y
645CONFIG_LEGACY_PTY_COUNT=256 670CONFIG_LEGACY_PTY_COUNT=256
646# CONFIG_IPMI_HANDLER is not set 671# CONFIG_IPMI_HANDLER is not set
@@ -717,7 +742,6 @@ CONFIG_HIDRAW=y
717# 742#
718# Special HID drivers 743# Special HID drivers
719# 744#
720CONFIG_HID_COMPAT=y
721# CONFIG_USB_SUPPORT is not set 745# CONFIG_USB_SUPPORT is not set
722# CONFIG_MMC is not set 746# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set 747# CONFIG_MEMSTICK is not set
@@ -725,9 +749,9 @@ CONFIG_HID_COMPAT=y
725# CONFIG_ACCESSIBILITY is not set 749# CONFIG_ACCESSIBILITY is not set
726# CONFIG_RTC_CLASS is not set 750# CONFIG_RTC_CLASS is not set
727# CONFIG_DMADEVICES is not set 751# CONFIG_DMADEVICES is not set
752# CONFIG_AUXDISPLAY is not set
728# CONFIG_UIO is not set 753# CONFIG_UIO is not set
729# CONFIG_STAGING is not set 754# CONFIG_STAGING is not set
730CONFIG_STAGING_EXCLUDE_BUILD=y
731 755
732# 756#
733# Character devices 757# Character devices
@@ -743,6 +767,7 @@ CONFIG_EXT2_FS=y
743# CONFIG_EXT2_FS_XATTR is not set 767# CONFIG_EXT2_FS_XATTR is not set
744# CONFIG_EXT2_FS_XIP is not set 768# CONFIG_EXT2_FS_XIP is not set
745CONFIG_EXT3_FS=y 769CONFIG_EXT3_FS=y
770# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
746# CONFIG_EXT3_FS_XATTR is not set 771# CONFIG_EXT3_FS_XATTR is not set
747# CONFIG_EXT4_FS is not set 772# CONFIG_EXT4_FS is not set
748CONFIG_JBD=y 773CONFIG_JBD=y
@@ -769,13 +794,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
769# CONFIG_OCFS2_FS_STATS is not set 794# CONFIG_OCFS2_FS_STATS is not set
770# CONFIG_OCFS2_DEBUG_MASKLOG is not set 795# CONFIG_OCFS2_DEBUG_MASKLOG is not set
771# CONFIG_OCFS2_DEBUG_FS is not set 796# CONFIG_OCFS2_DEBUG_FS is not set
772# CONFIG_OCFS2_COMPAT_JBD is not set 797# CONFIG_OCFS2_FS_POSIX_ACL is not set
798# CONFIG_BTRFS_FS is not set
773CONFIG_DNOTIFY=y 799CONFIG_DNOTIFY=y
774CONFIG_INOTIFY=y 800CONFIG_INOTIFY=y
775CONFIG_INOTIFY_USER=y 801CONFIG_INOTIFY_USER=y
776CONFIG_QUOTA=y 802CONFIG_QUOTA=y
777CONFIG_QUOTA_NETLINK_INTERFACE=y 803CONFIG_QUOTA_NETLINK_INTERFACE=y
778# CONFIG_PRINT_QUOTA_WARNING is not set 804# CONFIG_PRINT_QUOTA_WARNING is not set
805CONFIG_QUOTA_TREE=m
779# CONFIG_QFMT_V1 is not set 806# CONFIG_QFMT_V1 is not set
780# CONFIG_QFMT_V2 is not set 807# CONFIG_QFMT_V2 is not set
781CONFIG_QUOTACTL=y 808CONFIG_QUOTACTL=y
@@ -784,6 +811,11 @@ CONFIG_AUTOFS4_FS=m
784CONFIG_FUSE_FS=m 811CONFIG_FUSE_FS=m
785 812
786# 813#
814# Caches
815#
816# CONFIG_FSCACHE is not set
817
818#
787# CD-ROM/DVD Filesystems 819# CD-ROM/DVD Filesystems
788# 820#
789CONFIG_ISO9660_FS=y 821CONFIG_ISO9660_FS=y
@@ -814,10 +846,7 @@ CONFIG_TMPFS=y
814# CONFIG_TMPFS_POSIX_ACL is not set 846# CONFIG_TMPFS_POSIX_ACL is not set
815# CONFIG_HUGETLB_PAGE is not set 847# CONFIG_HUGETLB_PAGE is not set
816CONFIG_CONFIGFS_FS=m 848CONFIG_CONFIGFS_FS=m
817 849CONFIG_MISC_FILESYSTEMS=y
818#
819# Miscellaneous filesystems
820#
821# CONFIG_ADFS_FS is not set 850# CONFIG_ADFS_FS is not set
822CONFIG_AFFS_FS=m 851CONFIG_AFFS_FS=m
823CONFIG_HFS_FS=m 852CONFIG_HFS_FS=m
@@ -826,6 +855,9 @@ CONFIG_HFSPLUS_FS=m
826# CONFIG_BFS_FS is not set 855# CONFIG_BFS_FS is not set
827# CONFIG_EFS_FS is not set 856# CONFIG_EFS_FS is not set
828CONFIG_CRAMFS=m 857CONFIG_CRAMFS=m
858CONFIG_SQUASHFS=m
859# CONFIG_SQUASHFS_EMBEDDED is not set
860CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
829# CONFIG_VXFS_FS is not set 861# CONFIG_VXFS_FS is not set
830CONFIG_MINIX_FS=y 862CONFIG_MINIX_FS=y
831# CONFIG_OMFS_FS is not set 863# CONFIG_OMFS_FS is not set
@@ -836,6 +868,7 @@ CONFIG_SYSV_FS=m
836CONFIG_UFS_FS=m 868CONFIG_UFS_FS=m
837# CONFIG_UFS_FS_WRITE is not set 869# CONFIG_UFS_FS_WRITE is not set
838# CONFIG_UFS_DEBUG is not set 870# CONFIG_UFS_DEBUG is not set
871# CONFIG_NILFS2_FS is not set
839CONFIG_NETWORK_FILESYSTEMS=y 872CONFIG_NETWORK_FILESYSTEMS=y
840CONFIG_NFS_FS=y 873CONFIG_NFS_FS=y
841CONFIG_NFS_V3=y 874CONFIG_NFS_V3=y
@@ -852,7 +885,6 @@ CONFIG_EXPORTFS=m
852CONFIG_NFS_COMMON=y 885CONFIG_NFS_COMMON=y
853CONFIG_SUNRPC=y 886CONFIG_SUNRPC=y
854CONFIG_SUNRPC_GSS=y 887CONFIG_SUNRPC_GSS=y
855# CONFIG_SUNRPC_REGISTER_V4 is not set
856CONFIG_RPCSEC_GSS_KRB5=y 888CONFIG_RPCSEC_GSS_KRB5=y
857# CONFIG_RPCSEC_GSS_SPKM3 is not set 889# CONFIG_RPCSEC_GSS_SPKM3 is not set
858CONFIG_SMB_FS=m 890CONFIG_SMB_FS=m
@@ -928,11 +960,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
928CONFIG_DEBUG_MEMORY_INIT=y 960CONFIG_DEBUG_MEMORY_INIT=y
929# CONFIG_RCU_CPU_STALL_DETECTOR is not set 961# CONFIG_RCU_CPU_STALL_DETECTOR is not set
930CONFIG_SYSCTL_SYSCALL_CHECK=y 962CONFIG_SYSCTL_SYSCALL_CHECK=y
931
932#
933# Tracers
934#
935# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
936# CONFIG_SAMPLES is not set 963# CONFIG_SAMPLES is not set
937 964
938# 965#
@@ -953,13 +980,21 @@ CONFIG_CRYPTO=y
953# 980#
954# CONFIG_CRYPTO_FIPS is not set 981# CONFIG_CRYPTO_FIPS is not set
955CONFIG_CRYPTO_ALGAPI=y 982CONFIG_CRYPTO_ALGAPI=y
956CONFIG_CRYPTO_AEAD=y 983CONFIG_CRYPTO_ALGAPI2=y
984CONFIG_CRYPTO_AEAD=m
985CONFIG_CRYPTO_AEAD2=y
957CONFIG_CRYPTO_BLKCIPHER=y 986CONFIG_CRYPTO_BLKCIPHER=y
987CONFIG_CRYPTO_BLKCIPHER2=y
958CONFIG_CRYPTO_HASH=y 988CONFIG_CRYPTO_HASH=y
959CONFIG_CRYPTO_RNG=y 989CONFIG_CRYPTO_HASH2=y
990CONFIG_CRYPTO_RNG=m
991CONFIG_CRYPTO_RNG2=y
992CONFIG_CRYPTO_PCOMP=y
960CONFIG_CRYPTO_MANAGER=y 993CONFIG_CRYPTO_MANAGER=y
994CONFIG_CRYPTO_MANAGER2=y
961CONFIG_CRYPTO_GF128MUL=m 995CONFIG_CRYPTO_GF128MUL=m
962CONFIG_CRYPTO_NULL=m 996CONFIG_CRYPTO_NULL=m
997CONFIG_CRYPTO_WORKQUEUE=y
963CONFIG_CRYPTO_CRYPTD=m 998CONFIG_CRYPTO_CRYPTD=m
964CONFIG_CRYPTO_AUTHENC=m 999CONFIG_CRYPTO_AUTHENC=m
965CONFIG_CRYPTO_TEST=m 1000CONFIG_CRYPTO_TEST=m
@@ -1029,6 +1064,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1029# Compression 1064# Compression
1030# 1065#
1031CONFIG_CRYPTO_DEFLATE=m 1066CONFIG_CRYPTO_DEFLATE=m
1067CONFIG_CRYPTO_ZLIB=m
1032CONFIG_CRYPTO_LZO=m 1068CONFIG_CRYPTO_LZO=m
1033 1069
1034# 1070#
@@ -1036,11 +1072,13 @@ CONFIG_CRYPTO_LZO=m
1036# 1072#
1037# CONFIG_CRYPTO_ANSI_CPRNG is not set 1073# CONFIG_CRYPTO_ANSI_CPRNG is not set
1038# CONFIG_CRYPTO_HW is not set 1074# CONFIG_CRYPTO_HW is not set
1075# CONFIG_BINARY_PRINTF is not set
1039 1076
1040# 1077#
1041# Library routines 1078# Library routines
1042# 1079#
1043CONFIG_BITREVERSE=y 1080CONFIG_BITREVERSE=y
1081CONFIG_GENERIC_FIND_LAST_BIT=y
1044CONFIG_CRC_CCITT=m 1082CONFIG_CRC_CCITT=m
1045CONFIG_CRC16=m 1083CONFIG_CRC16=m
1046CONFIG_CRC_T10DIF=y 1084CONFIG_CRC_T10DIF=y
@@ -1052,10 +1090,13 @@ CONFIG_ZLIB_INFLATE=y
1052CONFIG_ZLIB_DEFLATE=m 1090CONFIG_ZLIB_DEFLATE=m
1053CONFIG_LZO_COMPRESS=m 1091CONFIG_LZO_COMPRESS=m
1054CONFIG_LZO_DECOMPRESS=m 1092CONFIG_LZO_DECOMPRESS=m
1093CONFIG_DECOMPRESS_GZIP=y
1094CONFIG_DECOMPRESS_BZIP2=y
1095CONFIG_DECOMPRESS_LZMA=y
1055CONFIG_TEXTSEARCH=y 1096CONFIG_TEXTSEARCH=y
1056CONFIG_TEXTSEARCH_KMP=m 1097CONFIG_TEXTSEARCH_KMP=m
1057CONFIG_TEXTSEARCH_BM=m 1098CONFIG_TEXTSEARCH_BM=m
1058CONFIG_TEXTSEARCH_FSM=m 1099CONFIG_TEXTSEARCH_FSM=m
1059CONFIG_PLIST=y
1060CONFIG_HAS_IOMEM=y 1100CONFIG_HAS_IOMEM=y
1061CONFIG_HAS_DMA=y 1101CONFIG_HAS_DMA=y
1102CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index 3459c594194b..7cf58c27ff84 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:52 2008 4# Wed Apr 22 20:48:13 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -140,12 +151,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
140CONFIG_NEED_MULTIPLE_NODES=y 151CONFIG_NEED_MULTIPLE_NODES=y
141CONFIG_PAGEFLAGS_EXTENDED=y 152CONFIG_PAGEFLAGS_EXTENDED=y
142CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y 158CONFIG_UNEVICTABLE_LRU=y
159CONFIG_HAVE_MLOCK=y
160CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149 161
150# 162#
151# General setup 163# General setup
@@ -255,6 +267,7 @@ CONFIG_NETFILTER_XTABLES=m
255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 267CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 268CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
257CONFIG_NETFILTER_XT_TARGET_DSCP=m 269CONFIG_NETFILTER_XT_TARGET_DSCP=m
270CONFIG_NETFILTER_XT_TARGET_HL=m
258CONFIG_NETFILTER_XT_TARGET_MARK=m 271CONFIG_NETFILTER_XT_TARGET_MARK=m
259CONFIG_NETFILTER_XT_TARGET_NFLOG=m 272CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 273CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -263,6 +276,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
263CONFIG_NETFILTER_XT_TARGET_TRACE=m 276CONFIG_NETFILTER_XT_TARGET_TRACE=m
264CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 277CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
265CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 278CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
279CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
266CONFIG_NETFILTER_XT_MATCH_COMMENT=m 280CONFIG_NETFILTER_XT_MATCH_COMMENT=m
267CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 281CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
268CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 282CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -273,6 +287,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
273CONFIG_NETFILTER_XT_MATCH_ESP=m 287CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 288CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
275CONFIG_NETFILTER_XT_MATCH_HELPER=m 289CONFIG_NETFILTER_XT_MATCH_HELPER=m
290CONFIG_NETFILTER_XT_MATCH_HL=m
276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 291CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
277CONFIG_NETFILTER_XT_MATCH_LENGTH=m 292CONFIG_NETFILTER_XT_MATCH_LENGTH=m
278CONFIG_NETFILTER_XT_MATCH_LIMIT=m 293CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -351,25 +366,20 @@ CONFIG_IP6_NF_MATCH_HL=m
351CONFIG_IP6_NF_MATCH_IPV6HEADER=m 366CONFIG_IP6_NF_MATCH_IPV6HEADER=m
352CONFIG_IP6_NF_MATCH_MH=m 367CONFIG_IP6_NF_MATCH_MH=m
353CONFIG_IP6_NF_MATCH_RT=m 368CONFIG_IP6_NF_MATCH_RT=m
369CONFIG_IP6_NF_TARGET_HL=m
354CONFIG_IP6_NF_TARGET_LOG=m 370CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m 371CONFIG_IP6_NF_FILTER=m
356CONFIG_IP6_NF_TARGET_REJECT=m 372CONFIG_IP6_NF_TARGET_REJECT=m
357CONFIG_IP6_NF_MANGLE=m 373CONFIG_IP6_NF_MANGLE=m
358CONFIG_IP6_NF_TARGET_HL=m
359CONFIG_IP6_NF_RAW=m 374CONFIG_IP6_NF_RAW=m
360CONFIG_IP_DCCP=m 375CONFIG_IP_DCCP=m
361CONFIG_INET_DCCP_DIAG=m 376CONFIG_INET_DCCP_DIAG=m
362CONFIG_IP_DCCP_ACKVEC=y
363 377
364# 378#
365# DCCP CCIDs Configuration (EXPERIMENTAL) 379# DCCP CCIDs Configuration (EXPERIMENTAL)
366# 380#
367CONFIG_IP_DCCP_CCID2=m
368# CONFIG_IP_DCCP_CCID2_DEBUG is not set 381# CONFIG_IP_DCCP_CCID2_DEBUG is not set
369CONFIG_IP_DCCP_CCID3=m 382# CONFIG_IP_DCCP_CCID3 is not set
370# CONFIG_IP_DCCP_CCID3_DEBUG is not set
371CONFIG_IP_DCCP_CCID3_RTO=100
372CONFIG_IP_DCCP_TFRC_LIB=m
373CONFIG_IP_SCTP=m 383CONFIG_IP_SCTP=m
374# CONFIG_SCTP_DBG_MSG is not set 384# CONFIG_SCTP_DBG_MSG is not set
375# CONFIG_SCTP_DBG_OBJCNT is not set 385# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -391,8 +401,10 @@ CONFIG_ATALK=m
391# CONFIG_LAPB is not set 401# CONFIG_LAPB is not set
392# CONFIG_ECONET is not set 402# CONFIG_ECONET is not set
393# CONFIG_WAN_ROUTER is not set 403# CONFIG_WAN_ROUTER is not set
404# CONFIG_PHONET is not set
394# CONFIG_NET_SCHED is not set 405# CONFIG_NET_SCHED is not set
395CONFIG_NET_CLS_ROUTE=y 406CONFIG_NET_CLS_ROUTE=y
407# CONFIG_DCB is not set
396 408
397# 409#
398# Network testing 410# Network testing
@@ -403,8 +415,8 @@ CONFIG_NET_CLS_ROUTE=y
403# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
404# CONFIG_BT is not set 416# CONFIG_BT is not set
405# CONFIG_AF_RXRPC is not set 417# CONFIG_AF_RXRPC is not set
406# CONFIG_PHONET is not set
407# CONFIG_WIRELESS is not set 418# CONFIG_WIRELESS is not set
419# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set 420# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set 421# CONFIG_NET_9P is not set
410 422
@@ -441,15 +453,20 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
441CONFIG_ATA_OVER_ETH=m 453CONFIG_ATA_OVER_ETH=m
442# CONFIG_BLK_DEV_HD is not set 454# CONFIG_BLK_DEV_HD is not set
443CONFIG_MISC_DEVICES=y 455CONFIG_MISC_DEVICES=y
444# CONFIG_EEPROM_93CX6 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 456# CONFIG_ENCLOSURE_SERVICES is not set
446# CONFIG_C2PORT is not set 457# CONFIG_C2PORT is not set
458
459#
460# EEPROM support
461#
462# CONFIG_EEPROM_93CX6 is not set
447CONFIG_HAVE_IDE=y 463CONFIG_HAVE_IDE=y
448CONFIG_IDE=y 464CONFIG_IDE=y
449 465
450# 466#
451# Please see Documentation/ide/ide.txt for help/info on IDE drives 467# Please see Documentation/ide/ide.txt for help/info on IDE drives
452# 468#
469CONFIG_IDE_ATAPI=y
453# CONFIG_BLK_DEV_IDE_SATA is not set 470# CONFIG_BLK_DEV_IDE_SATA is not set
454CONFIG_IDE_GD=y 471CONFIG_IDE_GD=y
455CONFIG_IDE_GD_ATA=y 472CONFIG_IDE_GD_ATA=y
@@ -457,7 +474,6 @@ CONFIG_IDE_GD_ATA=y
457CONFIG_BLK_DEV_IDECD=y 474CONFIG_BLK_DEV_IDECD=y
458CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 475CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
459# CONFIG_BLK_DEV_IDETAPE is not set 476# CONFIG_BLK_DEV_IDETAPE is not set
460# CONFIG_BLK_DEV_IDESCSI is not set
461# CONFIG_IDE_TASK_IOCTL is not set 477# CONFIG_IDE_TASK_IOCTL is not set
462CONFIG_IDE_PROC_FS=y 478CONFIG_IDE_PROC_FS=y
463 479
@@ -516,6 +532,8 @@ CONFIG_ISCSI_TCP=m
516# CONFIG_SCSI_AIC7XXX_OLD is not set 532# CONFIG_SCSI_AIC7XXX_OLD is not set
517# CONFIG_SCSI_ADVANSYS is not set 533# CONFIG_SCSI_ADVANSYS is not set
518# CONFIG_SCSI_IN2000 is not set 534# CONFIG_SCSI_IN2000 is not set
535# CONFIG_LIBFC is not set
536# CONFIG_LIBFCOE is not set
519# CONFIG_SCSI_DTC3280 is not set 537# CONFIG_SCSI_DTC3280 is not set
520# CONFIG_SCSI_FUTURE_DOMAIN is not set 538# CONFIG_SCSI_FUTURE_DOMAIN is not set
521# CONFIG_SCSI_GENERIC_NCR5380 is not set 539# CONFIG_SCSI_GENERIC_NCR5380 is not set
@@ -527,6 +545,7 @@ CONFIG_ISCSI_TCP=m
527# CONFIG_SCSI_T128 is not set 545# CONFIG_SCSI_T128 is not set
528# CONFIG_SCSI_DEBUG is not set 546# CONFIG_SCSI_DEBUG is not set
529# CONFIG_SCSI_DH is not set 547# CONFIG_SCSI_DH is not set
548# CONFIG_SCSI_OSD_INITIATOR is not set
530CONFIG_MD=y 549CONFIG_MD=y
531CONFIG_BLK_DEV_MD=m 550CONFIG_BLK_DEV_MD=m
532CONFIG_MD_LINEAR=m 551CONFIG_MD_LINEAR=m
@@ -534,7 +553,7 @@ CONFIG_MD_RAID0=m
534CONFIG_MD_RAID1=m 553CONFIG_MD_RAID1=m
535# CONFIG_MD_RAID10 is not set 554# CONFIG_MD_RAID10 is not set
536CONFIG_MD_RAID456=m 555CONFIG_MD_RAID456=m
537CONFIG_MD_RAID5_RESHAPE=y 556CONFIG_MD_RAID6_PQ=m
538# CONFIG_MD_MULTIPATH is not set 557# CONFIG_MD_MULTIPATH is not set
539# CONFIG_MD_FAULTY is not set 558# CONFIG_MD_FAULTY is not set
540CONFIG_BLK_DEV_DM=m 559CONFIG_BLK_DEV_DM=m
@@ -547,6 +566,7 @@ CONFIG_DM_MULTIPATH=m
547# CONFIG_DM_DELAY is not set 566# CONFIG_DM_DELAY is not set
548CONFIG_DM_UEVENT=y 567CONFIG_DM_UEVENT=y
549CONFIG_NETDEVICES=y 568CONFIG_NETDEVICES=y
569CONFIG_COMPAT_NET_DEV_OPS=y
550CONFIG_DUMMY=m 570CONFIG_DUMMY=m
551# CONFIG_BONDING is not set 571# CONFIG_BONDING is not set
552CONFIG_MACVLAN=m 572CONFIG_MACVLAN=m
@@ -559,7 +579,9 @@ CONFIG_NET_ETHERNET=y
559# CONFIG_MII is not set 579# CONFIG_MII is not set
560# CONFIG_NET_VENDOR_3COM is not set 580# CONFIG_NET_VENDOR_3COM is not set
561# CONFIG_NET_VENDOR_SMC is not set 581# CONFIG_NET_VENDOR_SMC is not set
582# CONFIG_ETHOC is not set
562# CONFIG_NET_VENDOR_RACAL is not set 583# CONFIG_NET_VENDOR_RACAL is not set
584# CONFIG_DNET is not set
563# CONFIG_AT1700 is not set 585# CONFIG_AT1700 is not set
564# CONFIG_DEPCA is not set 586# CONFIG_DEPCA is not set
565# CONFIG_HP100 is not set 587# CONFIG_HP100 is not set
@@ -584,7 +606,10 @@ CONFIG_NE2000=m
584# 606#
585# CONFIG_WLAN_PRE80211 is not set 607# CONFIG_WLAN_PRE80211 is not set
586# CONFIG_WLAN_80211 is not set 608# CONFIG_WLAN_80211 is not set
587# CONFIG_IWLWIFI_LEDS is not set 609
610#
611# Enable WiMAX (Networking options) to see the WiMAX drivers
612#
588# CONFIG_WAN is not set 613# CONFIG_WAN is not set
589CONFIG_PPP=m 614CONFIG_PPP=m
590# CONFIG_PPP_MULTILINK is not set 615# CONFIG_PPP_MULTILINK is not set
@@ -642,7 +667,6 @@ CONFIG_MOUSE_PS2=m
642CONFIG_MOUSE_PS2_ALPS=y 667CONFIG_MOUSE_PS2_ALPS=y
643CONFIG_MOUSE_PS2_LOGIPS2PP=y 668CONFIG_MOUSE_PS2_LOGIPS2PP=y
644CONFIG_MOUSE_PS2_SYNAPTICS=y 669CONFIG_MOUSE_PS2_SYNAPTICS=y
645CONFIG_MOUSE_PS2_LIFEBOOK=y
646CONFIG_MOUSE_PS2_TRACKPOINT=y 670CONFIG_MOUSE_PS2_TRACKPOINT=y
647# CONFIG_MOUSE_PS2_ELANTECH is not set 671# CONFIG_MOUSE_PS2_ELANTECH is not set
648# CONFIG_MOUSE_PS2_TOUCHKIT is not set 672# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -688,6 +712,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
688# Non-8250 serial port support 712# Non-8250 serial port support
689# 713#
690CONFIG_UNIX98_PTYS=y 714CONFIG_UNIX98_PTYS=y
715# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
691CONFIG_LEGACY_PTYS=y 716CONFIG_LEGACY_PTYS=y
692CONFIG_LEGACY_PTY_COUNT=256 717CONFIG_LEGACY_PTY_COUNT=256
693# CONFIG_IPMI_HANDLER is not set 718# CONFIG_IPMI_HANDLER is not set
@@ -771,6 +796,7 @@ CONFIG_FB_Q40=y
771# CONFIG_FB_VIRTUAL is not set 796# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_METRONOME is not set 797# CONFIG_FB_METRONOME is not set
773# CONFIG_FB_MB862XX is not set 798# CONFIG_FB_MB862XX is not set
799# CONFIG_FB_BROADSHEET is not set
774# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 800# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
775 801
776# 802#
@@ -805,7 +831,6 @@ CONFIG_HIDRAW=y
805# 831#
806# Special HID drivers 832# Special HID drivers
807# 833#
808CONFIG_HID_COMPAT=y
809# CONFIG_USB_SUPPORT is not set 834# CONFIG_USB_SUPPORT is not set
810# CONFIG_MMC is not set 835# CONFIG_MMC is not set
811# CONFIG_MEMSTICK is not set 836# CONFIG_MEMSTICK is not set
@@ -813,9 +838,9 @@ CONFIG_HID_COMPAT=y
813# CONFIG_ACCESSIBILITY is not set 838# CONFIG_ACCESSIBILITY is not set
814# CONFIG_RTC_CLASS is not set 839# CONFIG_RTC_CLASS is not set
815# CONFIG_DMADEVICES is not set 840# CONFIG_DMADEVICES is not set
841# CONFIG_AUXDISPLAY is not set
816# CONFIG_UIO is not set 842# CONFIG_UIO is not set
817# CONFIG_STAGING is not set 843# CONFIG_STAGING is not set
818CONFIG_STAGING_EXCLUDE_BUILD=y
819 844
820# 845#
821# Character devices 846# Character devices
@@ -828,6 +853,7 @@ CONFIG_EXT2_FS=y
828# CONFIG_EXT2_FS_XATTR is not set 853# CONFIG_EXT2_FS_XATTR is not set
829# CONFIG_EXT2_FS_XIP is not set 854# CONFIG_EXT2_FS_XIP is not set
830CONFIG_EXT3_FS=y 855CONFIG_EXT3_FS=y
856# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
831# CONFIG_EXT3_FS_XATTR is not set 857# CONFIG_EXT3_FS_XATTR is not set
832# CONFIG_EXT4_FS is not set 858# CONFIG_EXT4_FS is not set
833CONFIG_JBD=y 859CONFIG_JBD=y
@@ -854,13 +880,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
854# CONFIG_OCFS2_FS_STATS is not set 880# CONFIG_OCFS2_FS_STATS is not set
855# CONFIG_OCFS2_DEBUG_MASKLOG is not set 881# CONFIG_OCFS2_DEBUG_MASKLOG is not set
856# CONFIG_OCFS2_DEBUG_FS is not set 882# CONFIG_OCFS2_DEBUG_FS is not set
857# CONFIG_OCFS2_COMPAT_JBD is not set 883# CONFIG_OCFS2_FS_POSIX_ACL is not set
884# CONFIG_BTRFS_FS is not set
858CONFIG_DNOTIFY=y 885CONFIG_DNOTIFY=y
859CONFIG_INOTIFY=y 886CONFIG_INOTIFY=y
860CONFIG_INOTIFY_USER=y 887CONFIG_INOTIFY_USER=y
861CONFIG_QUOTA=y 888CONFIG_QUOTA=y
862CONFIG_QUOTA_NETLINK_INTERFACE=y 889CONFIG_QUOTA_NETLINK_INTERFACE=y
863# CONFIG_PRINT_QUOTA_WARNING is not set 890# CONFIG_PRINT_QUOTA_WARNING is not set
891CONFIG_QUOTA_TREE=m
864# CONFIG_QFMT_V1 is not set 892# CONFIG_QFMT_V1 is not set
865# CONFIG_QFMT_V2 is not set 893# CONFIG_QFMT_V2 is not set
866CONFIG_QUOTACTL=y 894CONFIG_QUOTACTL=y
@@ -869,6 +897,11 @@ CONFIG_AUTOFS4_FS=m
869CONFIG_FUSE_FS=m 897CONFIG_FUSE_FS=m
870 898
871# 899#
900# Caches
901#
902# CONFIG_FSCACHE is not set
903
904#
872# CD-ROM/DVD Filesystems 905# CD-ROM/DVD Filesystems
873# 906#
874CONFIG_ISO9660_FS=y 907CONFIG_ISO9660_FS=y
@@ -899,10 +932,7 @@ CONFIG_TMPFS=y
899# CONFIG_TMPFS_POSIX_ACL is not set 932# CONFIG_TMPFS_POSIX_ACL is not set
900# CONFIG_HUGETLB_PAGE is not set 933# CONFIG_HUGETLB_PAGE is not set
901CONFIG_CONFIGFS_FS=m 934CONFIG_CONFIGFS_FS=m
902 935CONFIG_MISC_FILESYSTEMS=y
903#
904# Miscellaneous filesystems
905#
906# CONFIG_ADFS_FS is not set 936# CONFIG_ADFS_FS is not set
907CONFIG_AFFS_FS=m 937CONFIG_AFFS_FS=m
908CONFIG_HFS_FS=m 938CONFIG_HFS_FS=m
@@ -911,6 +941,9 @@ CONFIG_HFSPLUS_FS=m
911# CONFIG_BFS_FS is not set 941# CONFIG_BFS_FS is not set
912# CONFIG_EFS_FS is not set 942# CONFIG_EFS_FS is not set
913CONFIG_CRAMFS=m 943CONFIG_CRAMFS=m
944CONFIG_SQUASHFS=m
945# CONFIG_SQUASHFS_EMBEDDED is not set
946CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
914# CONFIG_VXFS_FS is not set 947# CONFIG_VXFS_FS is not set
915CONFIG_MINIX_FS=y 948CONFIG_MINIX_FS=y
916# CONFIG_OMFS_FS is not set 949# CONFIG_OMFS_FS is not set
@@ -921,6 +954,7 @@ CONFIG_SYSV_FS=m
921CONFIG_UFS_FS=m 954CONFIG_UFS_FS=m
922# CONFIG_UFS_FS_WRITE is not set 955# CONFIG_UFS_FS_WRITE is not set
923# CONFIG_UFS_DEBUG is not set 956# CONFIG_UFS_DEBUG is not set
957# CONFIG_NILFS2_FS is not set
924CONFIG_NETWORK_FILESYSTEMS=y 958CONFIG_NETWORK_FILESYSTEMS=y
925CONFIG_NFS_FS=y 959CONFIG_NFS_FS=y
926CONFIG_NFS_V3=y 960CONFIG_NFS_V3=y
@@ -936,7 +970,6 @@ CONFIG_EXPORTFS=m
936CONFIG_NFS_COMMON=y 970CONFIG_NFS_COMMON=y
937CONFIG_SUNRPC=y 971CONFIG_SUNRPC=y
938CONFIG_SUNRPC_GSS=y 972CONFIG_SUNRPC_GSS=y
939# CONFIG_SUNRPC_REGISTER_V4 is not set
940CONFIG_RPCSEC_GSS_KRB5=y 973CONFIG_RPCSEC_GSS_KRB5=y
941# CONFIG_RPCSEC_GSS_SPKM3 is not set 974# CONFIG_RPCSEC_GSS_SPKM3 is not set
942CONFIG_SMB_FS=m 975CONFIG_SMB_FS=m
@@ -1011,11 +1044,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
1011CONFIG_DEBUG_MEMORY_INIT=y 1044CONFIG_DEBUG_MEMORY_INIT=y
1012# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1045# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1013CONFIG_SYSCTL_SYSCALL_CHECK=y 1046CONFIG_SYSCTL_SYSCALL_CHECK=y
1014
1015#
1016# Tracers
1017#
1018# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1019# CONFIG_SAMPLES is not set 1047# CONFIG_SAMPLES is not set
1020 1048
1021# 1049#
@@ -1036,13 +1064,21 @@ CONFIG_CRYPTO=y
1036# 1064#
1037# CONFIG_CRYPTO_FIPS is not set 1065# CONFIG_CRYPTO_FIPS is not set
1038CONFIG_CRYPTO_ALGAPI=y 1066CONFIG_CRYPTO_ALGAPI=y
1039CONFIG_CRYPTO_AEAD=y 1067CONFIG_CRYPTO_ALGAPI2=y
1068CONFIG_CRYPTO_AEAD=m
1069CONFIG_CRYPTO_AEAD2=y
1040CONFIG_CRYPTO_BLKCIPHER=y 1070CONFIG_CRYPTO_BLKCIPHER=y
1071CONFIG_CRYPTO_BLKCIPHER2=y
1041CONFIG_CRYPTO_HASH=y 1072CONFIG_CRYPTO_HASH=y
1042CONFIG_CRYPTO_RNG=y 1073CONFIG_CRYPTO_HASH2=y
1074CONFIG_CRYPTO_RNG=m
1075CONFIG_CRYPTO_RNG2=y
1076CONFIG_CRYPTO_PCOMP=y
1043CONFIG_CRYPTO_MANAGER=y 1077CONFIG_CRYPTO_MANAGER=y
1078CONFIG_CRYPTO_MANAGER2=y
1044CONFIG_CRYPTO_GF128MUL=m 1079CONFIG_CRYPTO_GF128MUL=m
1045CONFIG_CRYPTO_NULL=m 1080CONFIG_CRYPTO_NULL=m
1081CONFIG_CRYPTO_WORKQUEUE=y
1046CONFIG_CRYPTO_CRYPTD=m 1082CONFIG_CRYPTO_CRYPTD=m
1047CONFIG_CRYPTO_AUTHENC=m 1083CONFIG_CRYPTO_AUTHENC=m
1048CONFIG_CRYPTO_TEST=m 1084CONFIG_CRYPTO_TEST=m
@@ -1112,6 +1148,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1112# Compression 1148# Compression
1113# 1149#
1114CONFIG_CRYPTO_DEFLATE=m 1150CONFIG_CRYPTO_DEFLATE=m
1151CONFIG_CRYPTO_ZLIB=m
1115CONFIG_CRYPTO_LZO=m 1152CONFIG_CRYPTO_LZO=m
1116 1153
1117# 1154#
@@ -1119,11 +1156,13 @@ CONFIG_CRYPTO_LZO=m
1119# 1156#
1120# CONFIG_CRYPTO_ANSI_CPRNG is not set 1157# CONFIG_CRYPTO_ANSI_CPRNG is not set
1121# CONFIG_CRYPTO_HW is not set 1158# CONFIG_CRYPTO_HW is not set
1159# CONFIG_BINARY_PRINTF is not set
1122 1160
1123# 1161#
1124# Library routines 1162# Library routines
1125# 1163#
1126CONFIG_BITREVERSE=y 1164CONFIG_BITREVERSE=y
1165CONFIG_GENERIC_FIND_LAST_BIT=y
1127CONFIG_CRC_CCITT=m 1166CONFIG_CRC_CCITT=m
1128CONFIG_CRC16=m 1167CONFIG_CRC16=m
1129CONFIG_CRC_T10DIF=y 1168CONFIG_CRC_T10DIF=y
@@ -1135,10 +1174,13 @@ CONFIG_ZLIB_INFLATE=y
1135CONFIG_ZLIB_DEFLATE=m 1174CONFIG_ZLIB_DEFLATE=m
1136CONFIG_LZO_COMPRESS=m 1175CONFIG_LZO_COMPRESS=m
1137CONFIG_LZO_DECOMPRESS=m 1176CONFIG_LZO_DECOMPRESS=m
1177CONFIG_DECOMPRESS_GZIP=y
1178CONFIG_DECOMPRESS_BZIP2=y
1179CONFIG_DECOMPRESS_LZMA=y
1138CONFIG_TEXTSEARCH=y 1180CONFIG_TEXTSEARCH=y
1139CONFIG_TEXTSEARCH_KMP=m 1181CONFIG_TEXTSEARCH_KMP=m
1140CONFIG_TEXTSEARCH_BM=m 1182CONFIG_TEXTSEARCH_BM=m
1141CONFIG_TEXTSEARCH_FSM=m 1183CONFIG_TEXTSEARCH_FSM=m
1142CONFIG_PLIST=y
1143CONFIG_HAS_IOMEM=y 1184CONFIG_HAS_IOMEM=y
1144CONFIG_HAS_DMA=y 1185CONFIG_HAS_DMA=y
1186CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index f404917429fa..f27c1a47bacf 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:53 2008 4# Wed Apr 22 20:48:16 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -138,12 +149,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
138CONFIG_NEED_MULTIPLE_NODES=y 149CONFIG_NEED_MULTIPLE_NODES=y
139CONFIG_PAGEFLAGS_EXTENDED=y 150CONFIG_PAGEFLAGS_EXTENDED=y
140CONFIG_SPLIT_PTLOCK_CPUS=4 151CONFIG_SPLIT_PTLOCK_CPUS=4
141# CONFIG_RESOURCES_64BIT is not set
142# CONFIG_PHYS_ADDR_T_64BIT is not set 152# CONFIG_PHYS_ADDR_T_64BIT is not set
143CONFIG_ZONE_DMA_FLAG=1 153CONFIG_ZONE_DMA_FLAG=1
144CONFIG_BOUNCE=y 154CONFIG_BOUNCE=y
145CONFIG_VIRT_TO_BUS=y 155CONFIG_VIRT_TO_BUS=y
146CONFIG_UNEVICTABLE_LRU=y 156CONFIG_UNEVICTABLE_LRU=y
157CONFIG_HAVE_MLOCK=y
158CONFIG_HAVE_MLOCKED_PAGE_BIT=y
147 159
148# 160#
149# General setup 161# General setup
@@ -253,6 +265,7 @@ CONFIG_NETFILTER_XTABLES=m
253CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 265CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
254CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 266CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
255CONFIG_NETFILTER_XT_TARGET_DSCP=m 267CONFIG_NETFILTER_XT_TARGET_DSCP=m
268CONFIG_NETFILTER_XT_TARGET_HL=m
256CONFIG_NETFILTER_XT_TARGET_MARK=m 269CONFIG_NETFILTER_XT_TARGET_MARK=m
257CONFIG_NETFILTER_XT_TARGET_NFLOG=m 270CONFIG_NETFILTER_XT_TARGET_NFLOG=m
258CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 271CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -261,6 +274,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
261CONFIG_NETFILTER_XT_TARGET_TRACE=m 274CONFIG_NETFILTER_XT_TARGET_TRACE=m
262CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 275CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
263CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 276CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
277CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
264CONFIG_NETFILTER_XT_MATCH_COMMENT=m 278CONFIG_NETFILTER_XT_MATCH_COMMENT=m
265CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 279CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
266CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 280CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -271,6 +285,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
271CONFIG_NETFILTER_XT_MATCH_ESP=m 285CONFIG_NETFILTER_XT_MATCH_ESP=m
272CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 286CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
273CONFIG_NETFILTER_XT_MATCH_HELPER=m 287CONFIG_NETFILTER_XT_MATCH_HELPER=m
288CONFIG_NETFILTER_XT_MATCH_HL=m
274CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 289CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
275CONFIG_NETFILTER_XT_MATCH_LENGTH=m 290CONFIG_NETFILTER_XT_MATCH_LENGTH=m
276CONFIG_NETFILTER_XT_MATCH_LIMIT=m 291CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -349,25 +364,20 @@ CONFIG_IP6_NF_MATCH_HL=m
349CONFIG_IP6_NF_MATCH_IPV6HEADER=m 364CONFIG_IP6_NF_MATCH_IPV6HEADER=m
350CONFIG_IP6_NF_MATCH_MH=m 365CONFIG_IP6_NF_MATCH_MH=m
351CONFIG_IP6_NF_MATCH_RT=m 366CONFIG_IP6_NF_MATCH_RT=m
367CONFIG_IP6_NF_TARGET_HL=m
352CONFIG_IP6_NF_TARGET_LOG=m 368CONFIG_IP6_NF_TARGET_LOG=m
353CONFIG_IP6_NF_FILTER=m 369CONFIG_IP6_NF_FILTER=m
354CONFIG_IP6_NF_TARGET_REJECT=m 370CONFIG_IP6_NF_TARGET_REJECT=m
355CONFIG_IP6_NF_MANGLE=m 371CONFIG_IP6_NF_MANGLE=m
356CONFIG_IP6_NF_TARGET_HL=m
357CONFIG_IP6_NF_RAW=m 372CONFIG_IP6_NF_RAW=m
358CONFIG_IP_DCCP=m 373CONFIG_IP_DCCP=m
359CONFIG_INET_DCCP_DIAG=m 374CONFIG_INET_DCCP_DIAG=m
360CONFIG_IP_DCCP_ACKVEC=y
361 375
362# 376#
363# DCCP CCIDs Configuration (EXPERIMENTAL) 377# DCCP CCIDs Configuration (EXPERIMENTAL)
364# 378#
365CONFIG_IP_DCCP_CCID2=m
366# CONFIG_IP_DCCP_CCID2_DEBUG is not set 379# CONFIG_IP_DCCP_CCID2_DEBUG is not set
367CONFIG_IP_DCCP_CCID3=m 380# CONFIG_IP_DCCP_CCID3 is not set
368# CONFIG_IP_DCCP_CCID3_DEBUG is not set
369CONFIG_IP_DCCP_CCID3_RTO=100
370CONFIG_IP_DCCP_TFRC_LIB=m
371CONFIG_IP_SCTP=m 381CONFIG_IP_SCTP=m
372# CONFIG_SCTP_DBG_MSG is not set 382# CONFIG_SCTP_DBG_MSG is not set
373# CONFIG_SCTP_DBG_OBJCNT is not set 383# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -389,8 +399,10 @@ CONFIG_ATALK=m
389# CONFIG_LAPB is not set 399# CONFIG_LAPB is not set
390# CONFIG_ECONET is not set 400# CONFIG_ECONET is not set
391# CONFIG_WAN_ROUTER is not set 401# CONFIG_WAN_ROUTER is not set
402# CONFIG_PHONET is not set
392# CONFIG_NET_SCHED is not set 403# CONFIG_NET_SCHED is not set
393CONFIG_NET_CLS_ROUTE=y 404CONFIG_NET_CLS_ROUTE=y
405# CONFIG_DCB is not set
394 406
395# 407#
396# Network testing 408# Network testing
@@ -401,8 +413,8 @@ CONFIG_NET_CLS_ROUTE=y
401# CONFIG_IRDA is not set 413# CONFIG_IRDA is not set
402# CONFIG_BT is not set 414# CONFIG_BT is not set
403# CONFIG_AF_RXRPC is not set 415# CONFIG_AF_RXRPC is not set
404# CONFIG_PHONET is not set
405# CONFIG_WIRELESS is not set 416# CONFIG_WIRELESS is not set
417# CONFIG_WIMAX is not set
406# CONFIG_RFKILL is not set 418# CONFIG_RFKILL is not set
407# CONFIG_NET_9P is not set 419# CONFIG_NET_9P is not set
408 420
@@ -438,9 +450,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
438CONFIG_ATA_OVER_ETH=m 450CONFIG_ATA_OVER_ETH=m
439# CONFIG_BLK_DEV_HD is not set 451# CONFIG_BLK_DEV_HD is not set
440CONFIG_MISC_DEVICES=y 452CONFIG_MISC_DEVICES=y
441# CONFIG_EEPROM_93CX6 is not set
442# CONFIG_ENCLOSURE_SERVICES is not set 453# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_C2PORT is not set 454# CONFIG_C2PORT is not set
455
456#
457# EEPROM support
458#
459# CONFIG_EEPROM_93CX6 is not set
444CONFIG_HAVE_IDE=y 460CONFIG_HAVE_IDE=y
445# CONFIG_IDE is not set 461# CONFIG_IDE is not set
446 462
@@ -488,9 +504,12 @@ CONFIG_SCSI_SRP_ATTRS=m
488CONFIG_SCSI_SRP_TGT_ATTRS=y 504CONFIG_SCSI_SRP_TGT_ATTRS=y
489CONFIG_SCSI_LOWLEVEL=y 505CONFIG_SCSI_LOWLEVEL=y
490CONFIG_ISCSI_TCP=m 506CONFIG_ISCSI_TCP=m
507# CONFIG_LIBFC is not set
508# CONFIG_LIBFCOE is not set
491# CONFIG_SCSI_DEBUG is not set 509# CONFIG_SCSI_DEBUG is not set
492CONFIG_SUN3_SCSI=y 510CONFIG_SUN3_SCSI=y
493# CONFIG_SCSI_DH is not set 511# CONFIG_SCSI_DH is not set
512# CONFIG_SCSI_OSD_INITIATOR is not set
494CONFIG_MD=y 513CONFIG_MD=y
495CONFIG_BLK_DEV_MD=m 514CONFIG_BLK_DEV_MD=m
496CONFIG_MD_LINEAR=m 515CONFIG_MD_LINEAR=m
@@ -498,7 +517,7 @@ CONFIG_MD_RAID0=m
498CONFIG_MD_RAID1=m 517CONFIG_MD_RAID1=m
499# CONFIG_MD_RAID10 is not set 518# CONFIG_MD_RAID10 is not set
500CONFIG_MD_RAID456=m 519CONFIG_MD_RAID456=m
501CONFIG_MD_RAID5_RESHAPE=y 520CONFIG_MD_RAID6_PQ=m
502# CONFIG_MD_MULTIPATH is not set 521# CONFIG_MD_MULTIPATH is not set
503# CONFIG_MD_FAULTY is not set 522# CONFIG_MD_FAULTY is not set
504CONFIG_BLK_DEV_DM=m 523CONFIG_BLK_DEV_DM=m
@@ -511,6 +530,7 @@ CONFIG_DM_MULTIPATH=m
511# CONFIG_DM_DELAY is not set 530# CONFIG_DM_DELAY is not set
512CONFIG_DM_UEVENT=y 531CONFIG_DM_UEVENT=y
513CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
533CONFIG_COMPAT_NET_DEV_OPS=y
514CONFIG_DUMMY=m 534CONFIG_DUMMY=m
515# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
516CONFIG_MACVLAN=m 536CONFIG_MACVLAN=m
@@ -522,6 +542,8 @@ CONFIG_NET_ETHERNET=y
522# CONFIG_MII is not set 542# CONFIG_MII is not set
523CONFIG_SUN3LANCE=y 543CONFIG_SUN3LANCE=y
524CONFIG_SUN3_82586=y 544CONFIG_SUN3_82586=y
545# CONFIG_ETHOC is not set
546# CONFIG_DNET is not set
525# CONFIG_IBM_NEW_EMAC_ZMII is not set 547# CONFIG_IBM_NEW_EMAC_ZMII is not set
526# CONFIG_IBM_NEW_EMAC_RGMII is not set 548# CONFIG_IBM_NEW_EMAC_RGMII is not set
527# CONFIG_IBM_NEW_EMAC_TAH is not set 549# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -537,7 +559,10 @@ CONFIG_SUN3_82586=y
537# 559#
538# CONFIG_WLAN_PRE80211 is not set 560# CONFIG_WLAN_PRE80211 is not set
539# CONFIG_WLAN_80211 is not set 561# CONFIG_WLAN_80211 is not set
540# CONFIG_IWLWIFI_LEDS is not set 562
563#
564# Enable WiMAX (Networking options) to see the WiMAX drivers
565#
541# CONFIG_WAN is not set 566# CONFIG_WAN is not set
542CONFIG_PPP=m 567CONFIG_PPP=m
543# CONFIG_PPP_MULTILINK is not set 568# CONFIG_PPP_MULTILINK is not set
@@ -595,7 +620,6 @@ CONFIG_MOUSE_PS2=m
595CONFIG_MOUSE_PS2_ALPS=y 620CONFIG_MOUSE_PS2_ALPS=y
596CONFIG_MOUSE_PS2_LOGIPS2PP=y 621CONFIG_MOUSE_PS2_LOGIPS2PP=y
597CONFIG_MOUSE_PS2_SYNAPTICS=y 622CONFIG_MOUSE_PS2_SYNAPTICS=y
598CONFIG_MOUSE_PS2_LIFEBOOK=y
599CONFIG_MOUSE_PS2_TRACKPOINT=y 623CONFIG_MOUSE_PS2_TRACKPOINT=y
600# CONFIG_MOUSE_PS2_ELANTECH is not set 624# CONFIG_MOUSE_PS2_ELANTECH is not set
601# CONFIG_MOUSE_PS2_TOUCHKIT is not set 625# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -635,6 +659,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
635# Non-8250 serial port support 659# Non-8250 serial port support
636# 660#
637CONFIG_UNIX98_PTYS=y 661CONFIG_UNIX98_PTYS=y
662# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
638CONFIG_LEGACY_PTYS=y 663CONFIG_LEGACY_PTYS=y
639CONFIG_LEGACY_PTY_COUNT=256 664CONFIG_LEGACY_PTY_COUNT=256
640# CONFIG_IPMI_HANDLER is not set 665# CONFIG_IPMI_HANDLER is not set
@@ -710,6 +735,7 @@ CONFIG_FB=y
710# CONFIG_FB_VIRTUAL is not set 735# CONFIG_FB_VIRTUAL is not set
711# CONFIG_FB_METRONOME is not set 736# CONFIG_FB_METRONOME is not set
712# CONFIG_FB_MB862XX is not set 737# CONFIG_FB_MB862XX is not set
738# CONFIG_FB_BROADSHEET is not set
713# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 739# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
714 740
715# 741#
@@ -741,16 +767,15 @@ CONFIG_HIDRAW=y
741# 767#
742# Special HID drivers 768# Special HID drivers
743# 769#
744CONFIG_HID_COMPAT=y
745# CONFIG_USB_SUPPORT is not set 770# CONFIG_USB_SUPPORT is not set
746# CONFIG_MMC is not set 771# CONFIG_MMC is not set
747# CONFIG_MEMSTICK is not set 772# CONFIG_MEMSTICK is not set
748# CONFIG_NEW_LEDS is not set 773# CONFIG_NEW_LEDS is not set
749# CONFIG_ACCESSIBILITY is not set 774# CONFIG_ACCESSIBILITY is not set
750# CONFIG_RTC_CLASS is not set 775# CONFIG_RTC_CLASS is not set
776# CONFIG_AUXDISPLAY is not set
751# CONFIG_UIO is not set 777# CONFIG_UIO is not set
752# CONFIG_STAGING is not set 778# CONFIG_STAGING is not set
753CONFIG_STAGING_EXCLUDE_BUILD=y
754 779
755# 780#
756# Character devices 781# Character devices
@@ -763,6 +788,7 @@ CONFIG_EXT2_FS=y
763# CONFIG_EXT2_FS_XATTR is not set 788# CONFIG_EXT2_FS_XATTR is not set
764# CONFIG_EXT2_FS_XIP is not set 789# CONFIG_EXT2_FS_XIP is not set
765CONFIG_EXT3_FS=y 790CONFIG_EXT3_FS=y
791# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
766# CONFIG_EXT3_FS_XATTR is not set 792# CONFIG_EXT3_FS_XATTR is not set
767# CONFIG_EXT4_FS is not set 793# CONFIG_EXT4_FS is not set
768CONFIG_JBD=y 794CONFIG_JBD=y
@@ -789,13 +815,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
789# CONFIG_OCFS2_FS_STATS is not set 815# CONFIG_OCFS2_FS_STATS is not set
790# CONFIG_OCFS2_DEBUG_MASKLOG is not set 816# CONFIG_OCFS2_DEBUG_MASKLOG is not set
791# CONFIG_OCFS2_DEBUG_FS is not set 817# CONFIG_OCFS2_DEBUG_FS is not set
792# CONFIG_OCFS2_COMPAT_JBD is not set 818# CONFIG_OCFS2_FS_POSIX_ACL is not set
819# CONFIG_BTRFS_FS is not set
793CONFIG_DNOTIFY=y 820CONFIG_DNOTIFY=y
794CONFIG_INOTIFY=y 821CONFIG_INOTIFY=y
795CONFIG_INOTIFY_USER=y 822CONFIG_INOTIFY_USER=y
796CONFIG_QUOTA=y 823CONFIG_QUOTA=y
797CONFIG_QUOTA_NETLINK_INTERFACE=y 824CONFIG_QUOTA_NETLINK_INTERFACE=y
798# CONFIG_PRINT_QUOTA_WARNING is not set 825# CONFIG_PRINT_QUOTA_WARNING is not set
826CONFIG_QUOTA_TREE=m
799# CONFIG_QFMT_V1 is not set 827# CONFIG_QFMT_V1 is not set
800# CONFIG_QFMT_V2 is not set 828# CONFIG_QFMT_V2 is not set
801CONFIG_QUOTACTL=y 829CONFIG_QUOTACTL=y
@@ -804,6 +832,11 @@ CONFIG_AUTOFS4_FS=m
804CONFIG_FUSE_FS=m 832CONFIG_FUSE_FS=m
805 833
806# 834#
835# Caches
836#
837# CONFIG_FSCACHE is not set
838
839#
807# CD-ROM/DVD Filesystems 840# CD-ROM/DVD Filesystems
808# 841#
809CONFIG_ISO9660_FS=y 842CONFIG_ISO9660_FS=y
@@ -834,10 +867,7 @@ CONFIG_TMPFS=y
834# CONFIG_TMPFS_POSIX_ACL is not set 867# CONFIG_TMPFS_POSIX_ACL is not set
835# CONFIG_HUGETLB_PAGE is not set 868# CONFIG_HUGETLB_PAGE is not set
836CONFIG_CONFIGFS_FS=m 869CONFIG_CONFIGFS_FS=m
837 870CONFIG_MISC_FILESYSTEMS=y
838#
839# Miscellaneous filesystems
840#
841# CONFIG_ADFS_FS is not set 871# CONFIG_ADFS_FS is not set
842CONFIG_AFFS_FS=m 872CONFIG_AFFS_FS=m
843CONFIG_HFS_FS=m 873CONFIG_HFS_FS=m
@@ -846,6 +876,9 @@ CONFIG_HFSPLUS_FS=m
846# CONFIG_BFS_FS is not set 876# CONFIG_BFS_FS is not set
847# CONFIG_EFS_FS is not set 877# CONFIG_EFS_FS is not set
848CONFIG_CRAMFS=m 878CONFIG_CRAMFS=m
879CONFIG_SQUASHFS=m
880# CONFIG_SQUASHFS_EMBEDDED is not set
881CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
849# CONFIG_VXFS_FS is not set 882# CONFIG_VXFS_FS is not set
850CONFIG_MINIX_FS=y 883CONFIG_MINIX_FS=y
851# CONFIG_OMFS_FS is not set 884# CONFIG_OMFS_FS is not set
@@ -856,6 +889,7 @@ CONFIG_SYSV_FS=m
856CONFIG_UFS_FS=m 889CONFIG_UFS_FS=m
857# CONFIG_UFS_FS_WRITE is not set 890# CONFIG_UFS_FS_WRITE is not set
858# CONFIG_UFS_DEBUG is not set 891# CONFIG_UFS_DEBUG is not set
892# CONFIG_NILFS2_FS is not set
859CONFIG_NETWORK_FILESYSTEMS=y 893CONFIG_NETWORK_FILESYSTEMS=y
860CONFIG_NFS_FS=y 894CONFIG_NFS_FS=y
861CONFIG_NFS_V3=y 895CONFIG_NFS_V3=y
@@ -872,7 +906,6 @@ CONFIG_EXPORTFS=m
872CONFIG_NFS_COMMON=y 906CONFIG_NFS_COMMON=y
873CONFIG_SUNRPC=y 907CONFIG_SUNRPC=y
874CONFIG_SUNRPC_GSS=y 908CONFIG_SUNRPC_GSS=y
875# CONFIG_SUNRPC_REGISTER_V4 is not set
876CONFIG_RPCSEC_GSS_KRB5=y 909CONFIG_RPCSEC_GSS_KRB5=y
877# CONFIG_RPCSEC_GSS_SPKM3 is not set 910# CONFIG_RPCSEC_GSS_SPKM3 is not set
878CONFIG_SMB_FS=m 911CONFIG_SMB_FS=m
@@ -948,11 +981,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
948CONFIG_DEBUG_MEMORY_INIT=y 981CONFIG_DEBUG_MEMORY_INIT=y
949# CONFIG_RCU_CPU_STALL_DETECTOR is not set 982# CONFIG_RCU_CPU_STALL_DETECTOR is not set
950CONFIG_SYSCTL_SYSCALL_CHECK=y 983CONFIG_SYSCTL_SYSCALL_CHECK=y
951
952#
953# Tracers
954#
955# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
956# CONFIG_SAMPLES is not set 984# CONFIG_SAMPLES is not set
957 985
958# 986#
@@ -973,13 +1001,21 @@ CONFIG_CRYPTO=y
973# 1001#
974# CONFIG_CRYPTO_FIPS is not set 1002# CONFIG_CRYPTO_FIPS is not set
975CONFIG_CRYPTO_ALGAPI=y 1003CONFIG_CRYPTO_ALGAPI=y
976CONFIG_CRYPTO_AEAD=y 1004CONFIG_CRYPTO_ALGAPI2=y
1005CONFIG_CRYPTO_AEAD=m
1006CONFIG_CRYPTO_AEAD2=y
977CONFIG_CRYPTO_BLKCIPHER=y 1007CONFIG_CRYPTO_BLKCIPHER=y
1008CONFIG_CRYPTO_BLKCIPHER2=y
978CONFIG_CRYPTO_HASH=y 1009CONFIG_CRYPTO_HASH=y
979CONFIG_CRYPTO_RNG=y 1010CONFIG_CRYPTO_HASH2=y
1011CONFIG_CRYPTO_RNG=m
1012CONFIG_CRYPTO_RNG2=y
1013CONFIG_CRYPTO_PCOMP=y
980CONFIG_CRYPTO_MANAGER=y 1014CONFIG_CRYPTO_MANAGER=y
1015CONFIG_CRYPTO_MANAGER2=y
981CONFIG_CRYPTO_GF128MUL=m 1016CONFIG_CRYPTO_GF128MUL=m
982CONFIG_CRYPTO_NULL=m 1017CONFIG_CRYPTO_NULL=m
1018CONFIG_CRYPTO_WORKQUEUE=y
983CONFIG_CRYPTO_CRYPTD=m 1019CONFIG_CRYPTO_CRYPTD=m
984CONFIG_CRYPTO_AUTHENC=m 1020CONFIG_CRYPTO_AUTHENC=m
985CONFIG_CRYPTO_TEST=m 1021CONFIG_CRYPTO_TEST=m
@@ -1049,6 +1085,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1049# Compression 1085# Compression
1050# 1086#
1051CONFIG_CRYPTO_DEFLATE=m 1087CONFIG_CRYPTO_DEFLATE=m
1088CONFIG_CRYPTO_ZLIB=m
1052CONFIG_CRYPTO_LZO=m 1089CONFIG_CRYPTO_LZO=m
1053 1090
1054# 1091#
@@ -1056,11 +1093,13 @@ CONFIG_CRYPTO_LZO=m
1056# 1093#
1057# CONFIG_CRYPTO_ANSI_CPRNG is not set 1094# CONFIG_CRYPTO_ANSI_CPRNG is not set
1058# CONFIG_CRYPTO_HW is not set 1095# CONFIG_CRYPTO_HW is not set
1096# CONFIG_BINARY_PRINTF is not set
1059 1097
1060# 1098#
1061# Library routines 1099# Library routines
1062# 1100#
1063CONFIG_BITREVERSE=y 1101CONFIG_BITREVERSE=y
1102CONFIG_GENERIC_FIND_LAST_BIT=y
1064CONFIG_CRC_CCITT=m 1103CONFIG_CRC_CCITT=m
1065CONFIG_CRC16=m 1104CONFIG_CRC16=m
1066CONFIG_CRC_T10DIF=y 1105CONFIG_CRC_T10DIF=y
@@ -1072,9 +1111,12 @@ CONFIG_ZLIB_INFLATE=y
1072CONFIG_ZLIB_DEFLATE=m 1111CONFIG_ZLIB_DEFLATE=m
1073CONFIG_LZO_COMPRESS=m 1112CONFIG_LZO_COMPRESS=m
1074CONFIG_LZO_DECOMPRESS=m 1113CONFIG_LZO_DECOMPRESS=m
1114CONFIG_DECOMPRESS_GZIP=y
1115CONFIG_DECOMPRESS_BZIP2=y
1116CONFIG_DECOMPRESS_LZMA=y
1075CONFIG_TEXTSEARCH=y 1117CONFIG_TEXTSEARCH=y
1076CONFIG_TEXTSEARCH_KMP=m 1118CONFIG_TEXTSEARCH_KMP=m
1077CONFIG_TEXTSEARCH_BM=m 1119CONFIG_TEXTSEARCH_BM=m
1078CONFIG_TEXTSEARCH_FSM=m 1120CONFIG_TEXTSEARCH_FSM=m
1079CONFIG_PLIST=y
1080CONFIG_HAS_IOMEM=y 1121CONFIG_HAS_IOMEM=y
1122CONFIG_NLATTR=y
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 4d8a1e84e39f..c40edb919fda 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_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-rc7 3# Linux kernel version: 2.6.30-rc3
4# Tue Dec 2 20:27:54 2008 4# Wed Apr 22 20:48:20 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -29,14 +29,24 @@ CONFIG_SWAP=y
29CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
31CONFIG_POSIX_MQUEUE=y 31CONFIG_POSIX_MQUEUE=y
32CONFIG_POSIX_MQUEUE_SYSCTL=y
32CONFIG_BSD_PROCESS_ACCT=y 33CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 34# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 50# CONFIG_SYSFS_DEPRECATED_V2 is not set
41CONFIG_RELAY=y 51CONFIG_RELAY=y
42CONFIG_NAMESPACES=y 52CONFIG_NAMESPACES=y
@@ -44,23 +54,27 @@ CONFIG_NAMESPACES=y
44# CONFIG_IPC_NS is not set 54# CONFIG_IPC_NS is not set
45# CONFIG_USER_NS is not set 55# CONFIG_USER_NS is not set
46# CONFIG_PID_NS is not set 56# CONFIG_PID_NS is not set
57# CONFIG_NET_NS is not set
47CONFIG_BLK_DEV_INITRD=y 58CONFIG_BLK_DEV_INITRD=y
48CONFIG_INITRAMFS_SOURCE="" 59CONFIG_INITRAMFS_SOURCE=""
60CONFIG_RD_GZIP=y
61CONFIG_RD_BZIP2=y
62CONFIG_RD_LZMA=y
49# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 63# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
50CONFIG_SYSCTL=y 64CONFIG_SYSCTL=y
65CONFIG_ANON_INODES=y
51# CONFIG_EMBEDDED is not set 66# CONFIG_EMBEDDED is not set
52CONFIG_UID16=y 67CONFIG_UID16=y
53CONFIG_SYSCTL_SYSCALL=y 68CONFIG_SYSCTL_SYSCALL=y
54CONFIG_KALLSYMS=y 69CONFIG_KALLSYMS=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 70# CONFIG_KALLSYMS_EXTRA_PASS is not set
71# CONFIG_STRIP_ASM_SYMS is not set
56CONFIG_HOTPLUG=y 72CONFIG_HOTPLUG=y
57CONFIG_PRINTK=y 73CONFIG_PRINTK=y
58CONFIG_BUG=y 74CONFIG_BUG=y
59CONFIG_ELF_CORE=y 75CONFIG_ELF_CORE=y
60CONFIG_COMPAT_BRK=y
61CONFIG_BASE_FULL=y 76CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y 77CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y 78CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y 79CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
@@ -68,15 +82,16 @@ CONFIG_EVENTFD=y
68CONFIG_SHMEM=y 82CONFIG_SHMEM=y
69CONFIG_AIO=y 83CONFIG_AIO=y
70CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_COMPAT_BRK=y
71CONFIG_SLAB=y 86CONFIG_SLAB=y
72# CONFIG_SLUB is not set 87# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
74# CONFIG_PROFILING is not set 89# CONFIG_PROFILING is not set
75# CONFIG_MARKERS is not set 90# CONFIG_MARKERS is not set
91# CONFIG_SLOW_WORK is not set
76# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
77CONFIG_SLABINFO=y 93CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y 96CONFIG_MODULES=y
82# CONFIG_MODULE_FORCE_LOAD is not set 97# CONFIG_MODULE_FORCE_LOAD is not set
@@ -84,11 +99,8 @@ CONFIG_MODULE_UNLOAD=y
84# CONFIG_MODULE_FORCE_UNLOAD is not set 99# CONFIG_MODULE_FORCE_UNLOAD is not set
85# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y 102CONFIG_BLOCK=y
89# CONFIG_LBD is not set 103# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92CONFIG_BLK_DEV_BSG=y 104CONFIG_BLK_DEV_BSG=y
93# CONFIG_BLK_DEV_INTEGRITY is not set 105# CONFIG_BLK_DEV_INTEGRITY is not set
94 106
@@ -104,7 +116,6 @@ CONFIG_DEFAULT_AS=y
104# CONFIG_DEFAULT_CFQ is not set 116# CONFIG_DEFAULT_CFQ is not set
105# CONFIG_DEFAULT_NOOP is not set 117# CONFIG_DEFAULT_NOOP is not set
106CONFIG_DEFAULT_IOSCHED="anticipatory" 118CONFIG_DEFAULT_IOSCHED="anticipatory"
107CONFIG_CLASSIC_RCU=y
108# CONFIG_FREEZER is not set 119# CONFIG_FREEZER is not set
109 120
110# 121#
@@ -140,12 +151,13 @@ CONFIG_FLAT_NODE_MEM_MAP=y
140CONFIG_NEED_MULTIPLE_NODES=y 151CONFIG_NEED_MULTIPLE_NODES=y
141CONFIG_PAGEFLAGS_EXTENDED=y 152CONFIG_PAGEFLAGS_EXTENDED=y
142CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_PHYS_ADDR_T_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
146CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
147CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y 158CONFIG_UNEVICTABLE_LRU=y
159CONFIG_HAVE_MLOCK=y
160CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149 161
150# 162#
151# General setup 163# General setup
@@ -255,6 +267,7 @@ CONFIG_NETFILTER_XTABLES=m
255CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 267CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
256CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 268CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
257CONFIG_NETFILTER_XT_TARGET_DSCP=m 269CONFIG_NETFILTER_XT_TARGET_DSCP=m
270CONFIG_NETFILTER_XT_TARGET_HL=m
258CONFIG_NETFILTER_XT_TARGET_MARK=m 271CONFIG_NETFILTER_XT_TARGET_MARK=m
259CONFIG_NETFILTER_XT_TARGET_NFLOG=m 272CONFIG_NETFILTER_XT_TARGET_NFLOG=m
260CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 273CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
@@ -263,6 +276,7 @@ CONFIG_NETFILTER_XT_TARGET_RATEEST=m
263CONFIG_NETFILTER_XT_TARGET_TRACE=m 276CONFIG_NETFILTER_XT_TARGET_TRACE=m
264CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 277CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
265CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m 278CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
279CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
266CONFIG_NETFILTER_XT_MATCH_COMMENT=m 280CONFIG_NETFILTER_XT_MATCH_COMMENT=m
267CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 281CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
268CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 282CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -273,6 +287,7 @@ CONFIG_NETFILTER_XT_MATCH_DSCP=m
273CONFIG_NETFILTER_XT_MATCH_ESP=m 287CONFIG_NETFILTER_XT_MATCH_ESP=m
274CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 288CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
275CONFIG_NETFILTER_XT_MATCH_HELPER=m 289CONFIG_NETFILTER_XT_MATCH_HELPER=m
290CONFIG_NETFILTER_XT_MATCH_HL=m
276CONFIG_NETFILTER_XT_MATCH_IPRANGE=m 291CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
277CONFIG_NETFILTER_XT_MATCH_LENGTH=m 292CONFIG_NETFILTER_XT_MATCH_LENGTH=m
278CONFIG_NETFILTER_XT_MATCH_LIMIT=m 293CONFIG_NETFILTER_XT_MATCH_LIMIT=m
@@ -351,25 +366,20 @@ CONFIG_IP6_NF_MATCH_HL=m
351CONFIG_IP6_NF_MATCH_IPV6HEADER=m 366CONFIG_IP6_NF_MATCH_IPV6HEADER=m
352CONFIG_IP6_NF_MATCH_MH=m 367CONFIG_IP6_NF_MATCH_MH=m
353CONFIG_IP6_NF_MATCH_RT=m 368CONFIG_IP6_NF_MATCH_RT=m
369CONFIG_IP6_NF_TARGET_HL=m
354CONFIG_IP6_NF_TARGET_LOG=m 370CONFIG_IP6_NF_TARGET_LOG=m
355CONFIG_IP6_NF_FILTER=m 371CONFIG_IP6_NF_FILTER=m
356CONFIG_IP6_NF_TARGET_REJECT=m 372CONFIG_IP6_NF_TARGET_REJECT=m
357CONFIG_IP6_NF_MANGLE=m 373CONFIG_IP6_NF_MANGLE=m
358CONFIG_IP6_NF_TARGET_HL=m
359CONFIG_IP6_NF_RAW=m 374CONFIG_IP6_NF_RAW=m
360CONFIG_IP_DCCP=m 375CONFIG_IP_DCCP=m
361CONFIG_INET_DCCP_DIAG=m 376CONFIG_INET_DCCP_DIAG=m
362CONFIG_IP_DCCP_ACKVEC=y
363 377
364# 378#
365# DCCP CCIDs Configuration (EXPERIMENTAL) 379# DCCP CCIDs Configuration (EXPERIMENTAL)
366# 380#
367CONFIG_IP_DCCP_CCID2=m
368# CONFIG_IP_DCCP_CCID2_DEBUG is not set 381# CONFIG_IP_DCCP_CCID2_DEBUG is not set
369CONFIG_IP_DCCP_CCID3=m 382# CONFIG_IP_DCCP_CCID3 is not set
370# CONFIG_IP_DCCP_CCID3_DEBUG is not set
371CONFIG_IP_DCCP_CCID3_RTO=100
372CONFIG_IP_DCCP_TFRC_LIB=m
373CONFIG_IP_SCTP=m 383CONFIG_IP_SCTP=m
374# CONFIG_SCTP_DBG_MSG is not set 384# CONFIG_SCTP_DBG_MSG is not set
375# CONFIG_SCTP_DBG_OBJCNT is not set 385# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -391,8 +401,10 @@ CONFIG_ATALK=m
391# CONFIG_LAPB is not set 401# CONFIG_LAPB is not set
392# CONFIG_ECONET is not set 402# CONFIG_ECONET is not set
393# CONFIG_WAN_ROUTER is not set 403# CONFIG_WAN_ROUTER is not set
404# CONFIG_PHONET is not set
394# CONFIG_NET_SCHED is not set 405# CONFIG_NET_SCHED is not set
395CONFIG_NET_CLS_ROUTE=y 406CONFIG_NET_CLS_ROUTE=y
407# CONFIG_DCB is not set
396 408
397# 409#
398# Network testing 410# Network testing
@@ -403,8 +415,8 @@ CONFIG_NET_CLS_ROUTE=y
403# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
404# CONFIG_BT is not set 416# CONFIG_BT is not set
405# CONFIG_AF_RXRPC is not set 417# CONFIG_AF_RXRPC is not set
406# CONFIG_PHONET is not set
407# CONFIG_WIRELESS is not set 418# CONFIG_WIRELESS is not set
419# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set 420# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set 421# CONFIG_NET_9P is not set
410 422
@@ -440,9 +452,13 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
440CONFIG_ATA_OVER_ETH=m 452CONFIG_ATA_OVER_ETH=m
441# CONFIG_BLK_DEV_HD is not set 453# CONFIG_BLK_DEV_HD is not set
442CONFIG_MISC_DEVICES=y 454CONFIG_MISC_DEVICES=y
443# CONFIG_EEPROM_93CX6 is not set
444# CONFIG_ENCLOSURE_SERVICES is not set 455# CONFIG_ENCLOSURE_SERVICES is not set
445# CONFIG_C2PORT is not set 456# CONFIG_C2PORT is not set
457
458#
459# EEPROM support
460#
461# CONFIG_EEPROM_93CX6 is not set
446CONFIG_HAVE_IDE=y 462CONFIG_HAVE_IDE=y
447# CONFIG_IDE is not set 463# CONFIG_IDE is not set
448 464
@@ -490,9 +506,12 @@ CONFIG_SCSI_SRP_ATTRS=m
490CONFIG_SCSI_SRP_TGT_ATTRS=y 506CONFIG_SCSI_SRP_TGT_ATTRS=y
491CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
492CONFIG_ISCSI_TCP=m 508CONFIG_ISCSI_TCP=m
509# CONFIG_LIBFC is not set
510# CONFIG_LIBFCOE is not set
493# CONFIG_SCSI_DEBUG is not set 511# CONFIG_SCSI_DEBUG is not set
494CONFIG_SUN3X_ESP=y 512CONFIG_SUN3X_ESP=y
495# CONFIG_SCSI_DH is not set 513# CONFIG_SCSI_DH is not set
514# CONFIG_SCSI_OSD_INITIATOR is not set
496CONFIG_MD=y 515CONFIG_MD=y
497CONFIG_BLK_DEV_MD=m 516CONFIG_BLK_DEV_MD=m
498CONFIG_MD_LINEAR=m 517CONFIG_MD_LINEAR=m
@@ -500,7 +519,7 @@ CONFIG_MD_RAID0=m
500CONFIG_MD_RAID1=m 519CONFIG_MD_RAID1=m
501# CONFIG_MD_RAID10 is not set 520# CONFIG_MD_RAID10 is not set
502CONFIG_MD_RAID456=m 521CONFIG_MD_RAID456=m
503CONFIG_MD_RAID5_RESHAPE=y 522CONFIG_MD_RAID6_PQ=m
504# CONFIG_MD_MULTIPATH is not set 523# CONFIG_MD_MULTIPATH is not set
505# CONFIG_MD_FAULTY is not set 524# CONFIG_MD_FAULTY is not set
506CONFIG_BLK_DEV_DM=m 525CONFIG_BLK_DEV_DM=m
@@ -513,6 +532,7 @@ CONFIG_DM_MULTIPATH=m
513# CONFIG_DM_DELAY is not set 532# CONFIG_DM_DELAY is not set
514CONFIG_DM_UEVENT=y 533CONFIG_DM_UEVENT=y
515CONFIG_NETDEVICES=y 534CONFIG_NETDEVICES=y
535CONFIG_COMPAT_NET_DEV_OPS=y
516CONFIG_DUMMY=m 536CONFIG_DUMMY=m
517# CONFIG_BONDING is not set 537# CONFIG_BONDING is not set
518CONFIG_MACVLAN=m 538CONFIG_MACVLAN=m
@@ -523,6 +543,8 @@ CONFIG_VETH=m
523CONFIG_NET_ETHERNET=y 543CONFIG_NET_ETHERNET=y
524# CONFIG_MII is not set 544# CONFIG_MII is not set
525CONFIG_SUN3LANCE=y 545CONFIG_SUN3LANCE=y
546# CONFIG_ETHOC is not set
547# CONFIG_DNET is not set
526# CONFIG_IBM_NEW_EMAC_ZMII is not set 548# CONFIG_IBM_NEW_EMAC_ZMII is not set
527# CONFIG_IBM_NEW_EMAC_RGMII is not set 549# CONFIG_IBM_NEW_EMAC_RGMII is not set
528# CONFIG_IBM_NEW_EMAC_TAH is not set 550# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -539,7 +561,10 @@ CONFIG_SUN3LANCE=y
539# 561#
540# CONFIG_WLAN_PRE80211 is not set 562# CONFIG_WLAN_PRE80211 is not set
541# CONFIG_WLAN_80211 is not set 563# CONFIG_WLAN_80211 is not set
542# CONFIG_IWLWIFI_LEDS is not set 564
565#
566# Enable WiMAX (Networking options) to see the WiMAX drivers
567#
543# CONFIG_WAN is not set 568# CONFIG_WAN is not set
544CONFIG_PPP=m 569CONFIG_PPP=m
545# CONFIG_PPP_MULTILINK is not set 570# CONFIG_PPP_MULTILINK is not set
@@ -597,7 +622,6 @@ CONFIG_MOUSE_PS2=m
597CONFIG_MOUSE_PS2_ALPS=y 622CONFIG_MOUSE_PS2_ALPS=y
598CONFIG_MOUSE_PS2_LOGIPS2PP=y 623CONFIG_MOUSE_PS2_LOGIPS2PP=y
599CONFIG_MOUSE_PS2_SYNAPTICS=y 624CONFIG_MOUSE_PS2_SYNAPTICS=y
600CONFIG_MOUSE_PS2_LIFEBOOK=y
601CONFIG_MOUSE_PS2_TRACKPOINT=y 625CONFIG_MOUSE_PS2_TRACKPOINT=y
602# CONFIG_MOUSE_PS2_ELANTECH is not set 626# CONFIG_MOUSE_PS2_ELANTECH is not set
603# CONFIG_MOUSE_PS2_TOUCHKIT is not set 627# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -637,6 +661,7 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
637# Non-8250 serial port support 661# Non-8250 serial port support
638# 662#
639CONFIG_UNIX98_PTYS=y 663CONFIG_UNIX98_PTYS=y
664# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
640CONFIG_LEGACY_PTYS=y 665CONFIG_LEGACY_PTYS=y
641CONFIG_LEGACY_PTY_COUNT=256 666CONFIG_LEGACY_PTY_COUNT=256
642# CONFIG_IPMI_HANDLER is not set 667# CONFIG_IPMI_HANDLER is not set
@@ -718,6 +743,7 @@ CONFIG_FB=y
718# CONFIG_FB_VIRTUAL is not set 743# CONFIG_FB_VIRTUAL is not set
719# CONFIG_FB_METRONOME is not set 744# CONFIG_FB_METRONOME is not set
720# CONFIG_FB_MB862XX is not set 745# CONFIG_FB_MB862XX is not set
746# CONFIG_FB_BROADSHEET is not set
721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 747# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
722 748
723# 749#
@@ -749,7 +775,6 @@ CONFIG_HIDRAW=y
749# 775#
750# Special HID drivers 776# Special HID drivers
751# 777#
752CONFIG_HID_COMPAT=y
753# CONFIG_USB_SUPPORT is not set 778# CONFIG_USB_SUPPORT is not set
754# CONFIG_MMC is not set 779# CONFIG_MMC is not set
755# CONFIG_MEMSTICK is not set 780# CONFIG_MEMSTICK is not set
@@ -757,9 +782,9 @@ CONFIG_HID_COMPAT=y
757# CONFIG_ACCESSIBILITY is not set 782# CONFIG_ACCESSIBILITY is not set
758# CONFIG_RTC_CLASS is not set 783# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set 784# CONFIG_DMADEVICES is not set
785# CONFIG_AUXDISPLAY is not set
760# CONFIG_UIO is not set 786# CONFIG_UIO is not set
761# CONFIG_STAGING is not set 787# CONFIG_STAGING is not set
762CONFIG_STAGING_EXCLUDE_BUILD=y
763 788
764# 789#
765# Character devices 790# Character devices
@@ -772,6 +797,7 @@ CONFIG_EXT2_FS=y
772# CONFIG_EXT2_FS_XATTR is not set 797# CONFIG_EXT2_FS_XATTR is not set
773# CONFIG_EXT2_FS_XIP is not set 798# CONFIG_EXT2_FS_XIP is not set
774CONFIG_EXT3_FS=y 799CONFIG_EXT3_FS=y
800# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
775# CONFIG_EXT3_FS_XATTR is not set 801# CONFIG_EXT3_FS_XATTR is not set
776# CONFIG_EXT4_FS is not set 802# CONFIG_EXT4_FS is not set
777CONFIG_JBD=y 803CONFIG_JBD=y
@@ -798,13 +824,15 @@ CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
798# CONFIG_OCFS2_FS_STATS is not set 824# CONFIG_OCFS2_FS_STATS is not set
799# CONFIG_OCFS2_DEBUG_MASKLOG is not set 825# CONFIG_OCFS2_DEBUG_MASKLOG is not set
800# CONFIG_OCFS2_DEBUG_FS is not set 826# CONFIG_OCFS2_DEBUG_FS is not set
801# CONFIG_OCFS2_COMPAT_JBD is not set 827# CONFIG_OCFS2_FS_POSIX_ACL is not set
828# CONFIG_BTRFS_FS is not set
802CONFIG_DNOTIFY=y 829CONFIG_DNOTIFY=y
803CONFIG_INOTIFY=y 830CONFIG_INOTIFY=y
804CONFIG_INOTIFY_USER=y 831CONFIG_INOTIFY_USER=y
805CONFIG_QUOTA=y 832CONFIG_QUOTA=y
806CONFIG_QUOTA_NETLINK_INTERFACE=y 833CONFIG_QUOTA_NETLINK_INTERFACE=y
807# CONFIG_PRINT_QUOTA_WARNING is not set 834# CONFIG_PRINT_QUOTA_WARNING is not set
835CONFIG_QUOTA_TREE=m
808# CONFIG_QFMT_V1 is not set 836# CONFIG_QFMT_V1 is not set
809# CONFIG_QFMT_V2 is not set 837# CONFIG_QFMT_V2 is not set
810CONFIG_QUOTACTL=y 838CONFIG_QUOTACTL=y
@@ -813,6 +841,11 @@ CONFIG_AUTOFS4_FS=m
813CONFIG_FUSE_FS=m 841CONFIG_FUSE_FS=m
814 842
815# 843#
844# Caches
845#
846# CONFIG_FSCACHE is not set
847
848#
816# CD-ROM/DVD Filesystems 849# CD-ROM/DVD Filesystems
817# 850#
818CONFIG_ISO9660_FS=y 851CONFIG_ISO9660_FS=y
@@ -843,10 +876,7 @@ CONFIG_TMPFS=y
843# CONFIG_TMPFS_POSIX_ACL is not set 876# CONFIG_TMPFS_POSIX_ACL is not set
844# CONFIG_HUGETLB_PAGE is not set 877# CONFIG_HUGETLB_PAGE is not set
845CONFIG_CONFIGFS_FS=m 878CONFIG_CONFIGFS_FS=m
846 879CONFIG_MISC_FILESYSTEMS=y
847#
848# Miscellaneous filesystems
849#
850# CONFIG_ADFS_FS is not set 880# CONFIG_ADFS_FS is not set
851CONFIG_AFFS_FS=m 881CONFIG_AFFS_FS=m
852CONFIG_HFS_FS=m 882CONFIG_HFS_FS=m
@@ -855,6 +885,9 @@ CONFIG_HFSPLUS_FS=m
855# CONFIG_BFS_FS is not set 885# CONFIG_BFS_FS is not set
856# CONFIG_EFS_FS is not set 886# CONFIG_EFS_FS is not set
857CONFIG_CRAMFS=m 887CONFIG_CRAMFS=m
888CONFIG_SQUASHFS=m
889# CONFIG_SQUASHFS_EMBEDDED is not set
890CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
858# CONFIG_VXFS_FS is not set 891# CONFIG_VXFS_FS is not set
859CONFIG_MINIX_FS=y 892CONFIG_MINIX_FS=y
860# CONFIG_OMFS_FS is not set 893# CONFIG_OMFS_FS is not set
@@ -865,6 +898,7 @@ CONFIG_SYSV_FS=m
865CONFIG_UFS_FS=m 898CONFIG_UFS_FS=m
866# CONFIG_UFS_FS_WRITE is not set 899# CONFIG_UFS_FS_WRITE is not set
867# CONFIG_UFS_DEBUG is not set 900# CONFIG_UFS_DEBUG is not set
901# CONFIG_NILFS2_FS is not set
868CONFIG_NETWORK_FILESYSTEMS=y 902CONFIG_NETWORK_FILESYSTEMS=y
869CONFIG_NFS_FS=y 903CONFIG_NFS_FS=y
870CONFIG_NFS_V3=y 904CONFIG_NFS_V3=y
@@ -881,7 +915,6 @@ CONFIG_EXPORTFS=m
881CONFIG_NFS_COMMON=y 915CONFIG_NFS_COMMON=y
882CONFIG_SUNRPC=y 916CONFIG_SUNRPC=y
883CONFIG_SUNRPC_GSS=y 917CONFIG_SUNRPC_GSS=y
884# CONFIG_SUNRPC_REGISTER_V4 is not set
885CONFIG_RPCSEC_GSS_KRB5=y 918CONFIG_RPCSEC_GSS_KRB5=y
886# CONFIG_RPCSEC_GSS_SPKM3 is not set 919# CONFIG_RPCSEC_GSS_SPKM3 is not set
887CONFIG_SMB_FS=m 920CONFIG_SMB_FS=m
@@ -957,11 +990,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
957CONFIG_DEBUG_MEMORY_INIT=y 990CONFIG_DEBUG_MEMORY_INIT=y
958# CONFIG_RCU_CPU_STALL_DETECTOR is not set 991# CONFIG_RCU_CPU_STALL_DETECTOR is not set
959CONFIG_SYSCTL_SYSCALL_CHECK=y 992CONFIG_SYSCTL_SYSCALL_CHECK=y
960
961#
962# Tracers
963#
964# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
965# CONFIG_SAMPLES is not set 993# CONFIG_SAMPLES is not set
966 994
967# 995#
@@ -982,13 +1010,21 @@ CONFIG_CRYPTO=y
982# 1010#
983# CONFIG_CRYPTO_FIPS is not set 1011# CONFIG_CRYPTO_FIPS is not set
984CONFIG_CRYPTO_ALGAPI=y 1012CONFIG_CRYPTO_ALGAPI=y
985CONFIG_CRYPTO_AEAD=y 1013CONFIG_CRYPTO_ALGAPI2=y
1014CONFIG_CRYPTO_AEAD=m
1015CONFIG_CRYPTO_AEAD2=y
986CONFIG_CRYPTO_BLKCIPHER=y 1016CONFIG_CRYPTO_BLKCIPHER=y
1017CONFIG_CRYPTO_BLKCIPHER2=y
987CONFIG_CRYPTO_HASH=y 1018CONFIG_CRYPTO_HASH=y
988CONFIG_CRYPTO_RNG=y 1019CONFIG_CRYPTO_HASH2=y
1020CONFIG_CRYPTO_RNG=m
1021CONFIG_CRYPTO_RNG2=y
1022CONFIG_CRYPTO_PCOMP=y
989CONFIG_CRYPTO_MANAGER=y 1023CONFIG_CRYPTO_MANAGER=y
1024CONFIG_CRYPTO_MANAGER2=y
990CONFIG_CRYPTO_GF128MUL=m 1025CONFIG_CRYPTO_GF128MUL=m
991CONFIG_CRYPTO_NULL=m 1026CONFIG_CRYPTO_NULL=m
1027CONFIG_CRYPTO_WORKQUEUE=y
992CONFIG_CRYPTO_CRYPTD=m 1028CONFIG_CRYPTO_CRYPTD=m
993CONFIG_CRYPTO_AUTHENC=m 1029CONFIG_CRYPTO_AUTHENC=m
994CONFIG_CRYPTO_TEST=m 1030CONFIG_CRYPTO_TEST=m
@@ -1058,6 +1094,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1058# Compression 1094# Compression
1059# 1095#
1060CONFIG_CRYPTO_DEFLATE=m 1096CONFIG_CRYPTO_DEFLATE=m
1097CONFIG_CRYPTO_ZLIB=m
1061CONFIG_CRYPTO_LZO=m 1098CONFIG_CRYPTO_LZO=m
1062 1099
1063# 1100#
@@ -1065,11 +1102,13 @@ CONFIG_CRYPTO_LZO=m
1065# 1102#
1066# CONFIG_CRYPTO_ANSI_CPRNG is not set 1103# CONFIG_CRYPTO_ANSI_CPRNG is not set
1067# CONFIG_CRYPTO_HW is not set 1104# CONFIG_CRYPTO_HW is not set
1105# CONFIG_BINARY_PRINTF is not set
1068 1106
1069# 1107#
1070# Library routines 1108# Library routines
1071# 1109#
1072CONFIG_BITREVERSE=y 1110CONFIG_BITREVERSE=y
1111CONFIG_GENERIC_FIND_LAST_BIT=y
1073CONFIG_CRC_CCITT=m 1112CONFIG_CRC_CCITT=m
1074CONFIG_CRC16=m 1113CONFIG_CRC16=m
1075CONFIG_CRC_T10DIF=y 1114CONFIG_CRC_T10DIF=y
@@ -1081,10 +1120,13 @@ CONFIG_ZLIB_INFLATE=y
1081CONFIG_ZLIB_DEFLATE=m 1120CONFIG_ZLIB_DEFLATE=m
1082CONFIG_LZO_COMPRESS=m 1121CONFIG_LZO_COMPRESS=m
1083CONFIG_LZO_DECOMPRESS=m 1122CONFIG_LZO_DECOMPRESS=m
1123CONFIG_DECOMPRESS_GZIP=y
1124CONFIG_DECOMPRESS_BZIP2=y
1125CONFIG_DECOMPRESS_LZMA=y
1084CONFIG_TEXTSEARCH=y 1126CONFIG_TEXTSEARCH=y
1085CONFIG_TEXTSEARCH_KMP=m 1127CONFIG_TEXTSEARCH_KMP=m
1086CONFIG_TEXTSEARCH_BM=m 1128CONFIG_TEXTSEARCH_BM=m
1087CONFIG_TEXTSEARCH_FSM=m 1129CONFIG_TEXTSEARCH_FSM=m
1088CONFIG_PLIST=y
1089CONFIG_HAS_IOMEM=y 1130CONFIG_HAS_IOMEM=y
1090CONFIG_HAS_DMA=y 1131CONFIG_HAS_DMA=y
1132CONFIG_NLATTR=y
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
index 3c19027331fa..aa29a8640f74 100644
--- a/arch/m68k/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd.h
@@ -332,10 +332,12 @@
332#define __NR_dup3 326 332#define __NR_dup3 326
333#define __NR_pipe2 327 333#define __NR_pipe2 327
334#define __NR_inotify_init1 328 334#define __NR_inotify_init1 328
335#define __NR_preadv 329
336#define __NR_pwritev 330
335 337
336#ifdef __KERNEL__ 338#ifdef __KERNEL__
337 339
338#define NR_syscalls 329 340#define NR_syscalls 331
339 341
340#define __ARCH_WANT_IPC_PARSE_VERSION 342#define __ARCH_WANT_IPC_PARSE_VERSION
341#define __ARCH_WANT_OLD_READDIR 343#define __ARCH_WANT_OLD_READDIR
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S
index 5c332f2b9b83..8744f60c07a9 100644
--- a/arch/m68k/kernel/entry.S
+++ b/arch/m68k/kernel/entry.S
@@ -753,4 +753,6 @@ sys_call_table:
753 .long sys_dup3 753 .long sys_dup3
754 .long sys_pipe2 754 .long sys_pipe2
755 .long sys_inotify_init1 755 .long sys_inotify_init1
756 .long sys_preadv
757 .long sys_pwritev /* 330 */
756 758
diff --git a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S
index f513f530de91..86edb5fbcfc3 100644
--- a/arch/m68k/kernel/head.S
+++ b/arch/m68k/kernel/head.S
@@ -577,7 +577,7 @@ func_define putn,1
577#endif 577#endif
578.endm 578.endm
579 579
580.section ".text.head","ax" 580__HEAD
581ENTRY(_stext) 581ENTRY(_stext)
582/* 582/*
583 * Version numbers of the bootinfo interface 583 * Version numbers of the bootinfo interface
diff --git a/arch/m68k/kernel/sun3-head.S b/arch/m68k/kernel/sun3-head.S
index aad01592dbbc..43036bf4aeed 100644
--- a/arch/m68k/kernel/sun3-head.S
+++ b/arch/m68k/kernel/sun3-head.S
@@ -1,4 +1,5 @@
1#include <linux/linkage.h> 1#include <linux/linkage.h>
2#include <linux/init.h>
2 3
3#include <asm/entry.h> 4#include <asm/entry.h>
4#include <asm/page.h> 5#include <asm/page.h>
@@ -29,7 +30,7 @@ kernel_pmd_table: .skip 0x2000
29.globl kernel_pg_dir 30.globl kernel_pg_dir
30.equ kernel_pg_dir,kernel_pmd_table 31.equ kernel_pg_dir,kernel_pmd_table
31 32
32 .section .text.head 33 __HEAD
33ENTRY(_stext) 34ENTRY(_stext)
34ENTRY(_start) 35ENTRY(_start)
35 36
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index f846d4e3e5e1..01d212bb05a6 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -12,7 +12,7 @@ SECTIONS
12 . = 0x1000; 12 . = 0x1000;
13 _text = .; /* Text and read-only data */ 13 _text = .; /* Text and read-only data */
14 .text : { 14 .text : {
15 *(.text.head) 15 HEAD_TEXT
16 TEXT_TEXT 16 TEXT_TEXT
17 SCHED_TEXT 17 SCHED_TEXT
18 LOCK_TEXT 18 LOCK_TEXT
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index d9368c0709ba..c192f773db96 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -12,7 +12,7 @@ SECTIONS
12 . = 0xE002000; 12 . = 0xE002000;
13 _text = .; /* Text and read-only data */ 13 _text = .; /* Text and read-only data */
14 .text : { 14 .text : {
15 *(.text.head) 15 HEAD_TEXT
16 TEXT_TEXT 16 TEXT_TEXT
17 SCHED_TEXT 17 SCHED_TEXT
18 LOCK_TEXT 18 LOCK_TEXT
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 4beb59dfc6ec..534376299a99 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -16,6 +16,7 @@ config MMU
16 16
17config NO_DMA 17config NO_DMA
18 bool 18 bool
19 depends on !COLDFIRE
19 default y 20 default y
20 21
21config FPU 22config FPU
diff --git a/arch/m68knommu/configs/m5208evb_defconfig b/arch/m68knommu/configs/m5208evb_defconfig
index 6fae33a05e2a..854a4f333b2f 100644
--- a/arch/m68knommu/configs/m5208evb_defconfig
+++ b/arch/m68knommu/configs/m5208evb_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc1 3# Linux kernel version: 2.6.30-rc2
4# 4#
5CONFIG_M68K=y 5CONFIG_M68K=y
6# CONFIG_MMU is not set 6# CONFIG_MMU is not set
@@ -15,9 +15,10 @@ CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 15CONFIG_GENERIC_HARDIRQS=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CMOS_UPDATE=y
18CONFIG_TIME_LOW_RES=y 19CONFIG_TIME_LOW_RES=y
20CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_NO_IOPORT=y 21CONFIG_NO_IOPORT=y
20CONFIG_ARCH_SUPPORTS_AOUT=y
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
22 23
23# 24#
@@ -33,53 +34,55 @@ CONFIG_LOCALVERSION_AUTO=y
33# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set
40# CONFIG_RELAY is not set 50# CONFIG_RELAY is not set
41# CONFIG_NAMESPACES is not set 51# CONFIG_NAMESPACES is not set
42# CONFIG_BLK_DEV_INITRD is not set 52# CONFIG_BLK_DEV_INITRD is not set
43# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 53# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
44CONFIG_SYSCTL=y 54CONFIG_SYSCTL=y
45CONFIG_EMBEDDED=y 55CONFIG_EMBEDDED=y
46# CONFIG_UID16 is not set 56CONFIG_UID16=y
47# CONFIG_SYSCTL_SYSCALL is not set 57CONFIG_SYSCTL_SYSCALL=y
48# CONFIG_KALLSYMS is not set 58# CONFIG_KALLSYMS is not set
59# CONFIG_STRIP_ASM_SYMS is not set
49# CONFIG_HOTPLUG is not set 60# CONFIG_HOTPLUG is not set
50CONFIG_PRINTK=y 61CONFIG_PRINTK=y
51CONFIG_BUG=y 62CONFIG_BUG=y
52CONFIG_ELF_CORE=y 63CONFIG_ELF_CORE=y
53# CONFIG_COMPAT_BRK is not set
54CONFIG_BASE_FULL=y 64CONFIG_BASE_FULL=y
55# CONFIG_FUTEX is not set 65# CONFIG_FUTEX is not set
56# CONFIG_EPOLL is not set 66# CONFIG_EPOLL is not set
57# CONFIG_SIGNALFD is not set 67# CONFIG_SIGNALFD is not set
58# CONFIG_TIMERFD is not set 68# CONFIG_TIMERFD is not set
59# CONFIG_EVENTFD is not set 69# CONFIG_EVENTFD is not set
70# CONFIG_AIO is not set
60# CONFIG_VM_EVENT_COUNTERS is not set 71# CONFIG_VM_EVENT_COUNTERS is not set
61CONFIG_SLAB=y 72# CONFIG_COMPAT_BRK is not set
62# CONFIG_SLUB is not set 73# CONFIG_SLAB is not set
74CONFIG_SLUB=y
63# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
64# CONFIG_PROFILING is not set 76# CONFIG_PROFILING is not set
65# CONFIG_MARKERS is not set 77# CONFIG_MARKERS is not set
66# CONFIG_HAVE_OPROFILE is not set 78# CONFIG_SLOW_WORK is not set
67# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
68# CONFIG_HAVE_KRETPROBES is not set
69# CONFIG_HAVE_DMA_ATTRS is not set
70CONFIG_SLABINFO=y
71CONFIG_TINY_SHMEM=y
72CONFIG_BASE_SMALL=0 80CONFIG_BASE_SMALL=0
73CONFIG_MODULES=y 81# CONFIG_MODULES is not set
74CONFIG_MODULE_UNLOAD=y
75# CONFIG_MODULE_FORCE_UNLOAD is not set
76# CONFIG_MODVERSIONS is not set
77# CONFIG_MODULE_SRCVERSION_ALL is not set
78# CONFIG_KMOD is not set
79CONFIG_BLOCK=y 82CONFIG_BLOCK=y
80# CONFIG_LBD is not set 83# CONFIG_LBD is not set
81# CONFIG_LSF is not set
82# CONFIG_BLK_DEV_BSG is not set 84# CONFIG_BLK_DEV_BSG is not set
85# CONFIG_BLK_DEV_INTEGRITY is not set
83 86
84# 87#
85# IO Schedulers 88# IO Schedulers
@@ -93,7 +96,7 @@ CONFIG_IOSCHED_NOOP=y
93# CONFIG_DEFAULT_CFQ is not set 96# CONFIG_DEFAULT_CFQ is not set
94CONFIG_DEFAULT_NOOP=y 97CONFIG_DEFAULT_NOOP=y
95CONFIG_DEFAULT_IOSCHED="noop" 98CONFIG_DEFAULT_IOSCHED="noop"
96CONFIG_CLASSIC_RCU=y 99# CONFIG_FREEZER is not set
97 100
98# 101#
99# Processor type and features 102# Processor type and features
@@ -145,44 +148,39 @@ CONFIG_RAM16BIT=y
145# CONFIG_ROM is not set 148# CONFIG_ROM is not set
146CONFIG_RAMKERNEL=y 149CONFIG_RAMKERNEL=y
147# CONFIG_ROMKERNEL is not set 150# CONFIG_ROMKERNEL is not set
151CONFIG_PREEMPT_NONE=y
152# CONFIG_PREEMPT_VOLUNTARY is not set
153# CONFIG_PREEMPT is not set
154# CONFIG_NO_HZ is not set
155# CONFIG_HIGH_RES_TIMERS is not set
156CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
148CONFIG_SELECT_MEMORY_MODEL=y 157CONFIG_SELECT_MEMORY_MODEL=y
149CONFIG_FLATMEM_MANUAL=y 158CONFIG_FLATMEM_MANUAL=y
150# CONFIG_DISCONTIGMEM_MANUAL is not set 159# CONFIG_DISCONTIGMEM_MANUAL is not set
151# CONFIG_SPARSEMEM_MANUAL is not set 160# CONFIG_SPARSEMEM_MANUAL is not set
152CONFIG_FLATMEM=y 161CONFIG_FLATMEM=y
153CONFIG_FLAT_NODE_MEM_MAP=y 162CONFIG_FLAT_NODE_MEM_MAP=y
154# CONFIG_SPARSEMEM_STATIC is not set
155# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
156CONFIG_PAGEFLAGS_EXTENDED=y 163CONFIG_PAGEFLAGS_EXTENDED=y
157CONFIG_SPLIT_PTLOCK_CPUS=4 164CONFIG_SPLIT_PTLOCK_CPUS=4
158# CONFIG_RESOURCES_64BIT is not set 165# CONFIG_PHYS_ADDR_T_64BIT is not set
159CONFIG_ZONE_DMA_FLAG=1 166CONFIG_ZONE_DMA_FLAG=1
160CONFIG_VIRT_TO_BUS=y 167CONFIG_VIRT_TO_BUS=y
168# CONFIG_UNEVICTABLE_LRU is not set
161CONFIG_ISA_DMA_API=y 169CONFIG_ISA_DMA_API=y
162 170
163# 171#
164# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
165#
166# CONFIG_PCI is not set
167# CONFIG_ARCH_SUPPORTS_MSI is not set
168
169#
170# Executable file formats 172# Executable file formats
171# 173#
172CONFIG_BINFMT_FLAT=y 174CONFIG_BINFMT_FLAT=y
173# CONFIG_BINFMT_ZFLAT is not set 175# CONFIG_BINFMT_ZFLAT is not set
174# CONFIG_BINFMT_SHARED_FLAT is not set 176# CONFIG_BINFMT_SHARED_FLAT is not set
175# CONFIG_BINFMT_AOUT is not set 177# CONFIG_HAVE_AOUT is not set
176# CONFIG_BINFMT_MISC is not set 178# CONFIG_BINFMT_MISC is not set
177 179
178# 180#
179# Power management options 181# Power management options
180# 182#
181# CONFIG_PM is not set 183# CONFIG_PM is not set
182
183#
184# Networking
185#
186CONFIG_NET=y 184CONFIG_NET=y
187 185
188# 186#
@@ -223,6 +221,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
223# CONFIG_TIPC is not set 221# CONFIG_TIPC is not set
224# CONFIG_ATM is not set 222# CONFIG_ATM is not set
225# CONFIG_BRIDGE is not set 223# CONFIG_BRIDGE is not set
224# CONFIG_NET_DSA is not set
226# CONFIG_VLAN_8021Q is not set 225# CONFIG_VLAN_8021Q is not set
227# CONFIG_DECNET is not set 226# CONFIG_DECNET is not set
228# CONFIG_LLC2 is not set 227# CONFIG_LLC2 is not set
@@ -232,7 +231,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
232# CONFIG_LAPB is not set 231# CONFIG_LAPB is not set
233# CONFIG_ECONET is not set 232# CONFIG_ECONET is not set
234# CONFIG_WAN_ROUTER is not set 233# CONFIG_WAN_ROUTER is not set
234# CONFIG_PHONET is not set
235# CONFIG_NET_SCHED is not set 235# CONFIG_NET_SCHED is not set
236# CONFIG_DCB is not set
236 237
237# 238#
238# Network testing 239# Network testing
@@ -243,14 +244,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
243# CONFIG_IRDA is not set 244# CONFIG_IRDA is not set
244# CONFIG_BT is not set 245# CONFIG_BT is not set
245# CONFIG_AF_RXRPC is not set 246# CONFIG_AF_RXRPC is not set
246 247# CONFIG_WIRELESS is not set
247# 248# CONFIG_WIMAX is not set
248# Wireless
249#
250# CONFIG_CFG80211 is not set
251# CONFIG_WIRELESS_EXT is not set
252# CONFIG_MAC80211 is not set
253# CONFIG_IEEE80211 is not set
254# CONFIG_RFKILL is not set 249# CONFIG_RFKILL is not set
255# CONFIG_NET_9P is not set 250# CONFIG_NET_9P is not set
256 251
@@ -289,10 +284,8 @@ CONFIG_MTD_BLOCK=y
289# 284#
290# RAM/ROM/Flash chip drivers 285# RAM/ROM/Flash chip drivers
291# 286#
292CONFIG_MTD_CFI=y 287# CONFIG_MTD_CFI is not set
293# CONFIG_MTD_JEDECPROBE is not set 288# CONFIG_MTD_JEDECPROBE is not set
294CONFIG_MTD_GEN_PROBE=y
295# CONFIG_MTD_CFI_ADV_OPTIONS is not set
296CONFIG_MTD_MAP_BANK_WIDTH_1=y 289CONFIG_MTD_MAP_BANK_WIDTH_1=y
297CONFIG_MTD_MAP_BANK_WIDTH_2=y 290CONFIG_MTD_MAP_BANK_WIDTH_2=y
298CONFIG_MTD_MAP_BANK_WIDTH_4=y 291CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -303,10 +296,6 @@ CONFIG_MTD_CFI_I1=y
303CONFIG_MTD_CFI_I2=y 296CONFIG_MTD_CFI_I2=y
304# CONFIG_MTD_CFI_I4 is not set 297# CONFIG_MTD_CFI_I4 is not set
305# CONFIG_MTD_CFI_I8 is not set 298# CONFIG_MTD_CFI_I8 is not set
306# CONFIG_MTD_CFI_INTELEXT is not set
307CONFIG_MTD_CFI_AMDSTD=y
308# CONFIG_MTD_CFI_STAA is not set
309CONFIG_MTD_CFI_UTIL=y
310CONFIG_MTD_RAM=y 299CONFIG_MTD_RAM=y
311# CONFIG_MTD_ROM is not set 300# CONFIG_MTD_ROM is not set
312# CONFIG_MTD_ABSENT is not set 301# CONFIG_MTD_ABSENT is not set
@@ -315,7 +304,6 @@ CONFIG_MTD_RAM=y
315# Mapping drivers for chip access 304# Mapping drivers for chip access
316# 305#
317# CONFIG_MTD_COMPLEX_MAPPINGS is not set 306# CONFIG_MTD_COMPLEX_MAPPINGS is not set
318# CONFIG_MTD_PHYSMAP is not set
319CONFIG_MTD_UCLINUX=y 307CONFIG_MTD_UCLINUX=y
320# CONFIG_MTD_PLATRAM is not set 308# CONFIG_MTD_PLATRAM is not set
321 309
@@ -337,6 +325,11 @@ CONFIG_MTD_UCLINUX=y
337# CONFIG_MTD_ONENAND is not set 325# CONFIG_MTD_ONENAND is not set
338 326
339# 327#
328# LPDDR flash memory drivers
329#
330# CONFIG_MTD_LPDDR is not set
331
332#
340# UBI - Unsorted block images 333# UBI - Unsorted block images
341# 334#
342# CONFIG_MTD_UBI is not set 335# CONFIG_MTD_UBI is not set
@@ -351,6 +344,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
351# CONFIG_BLK_DEV_XIP is not set 344# CONFIG_BLK_DEV_XIP is not set
352# CONFIG_CDROM_PKTCDVD is not set 345# CONFIG_CDROM_PKTCDVD is not set
353# CONFIG_ATA_OVER_ETH is not set 346# CONFIG_ATA_OVER_ETH is not set
347# CONFIG_BLK_DEV_HD is not set
354# CONFIG_MISC_DEVICES is not set 348# CONFIG_MISC_DEVICES is not set
355CONFIG_HAVE_IDE=y 349CONFIG_HAVE_IDE=y
356# CONFIG_IDE is not set 350# CONFIG_IDE is not set
@@ -364,7 +358,7 @@ CONFIG_HAVE_IDE=y
364# CONFIG_SCSI_NETLINK is not set 358# CONFIG_SCSI_NETLINK is not set
365# CONFIG_MD is not set 359# CONFIG_MD is not set
366CONFIG_NETDEVICES=y 360CONFIG_NETDEVICES=y
367# CONFIG_NETDEVICES_MULTIQUEUE is not set 361CONFIG_COMPAT_NET_DEV_OPS=y
368# CONFIG_DUMMY is not set 362# CONFIG_DUMMY is not set
369# CONFIG_BONDING is not set 363# CONFIG_BONDING is not set
370# CONFIG_MACVLAN is not set 364# CONFIG_MACVLAN is not set
@@ -374,10 +368,15 @@ CONFIG_NETDEVICES=y
374# CONFIG_PHYLIB is not set 368# CONFIG_PHYLIB is not set
375CONFIG_NET_ETHERNET=y 369CONFIG_NET_ETHERNET=y
376# CONFIG_MII is not set 370# CONFIG_MII is not set
371# CONFIG_ETHOC is not set
372# CONFIG_DNET is not set
377# CONFIG_IBM_NEW_EMAC_ZMII is not set 373# CONFIG_IBM_NEW_EMAC_ZMII is not set
378# CONFIG_IBM_NEW_EMAC_RGMII is not set 374# CONFIG_IBM_NEW_EMAC_RGMII is not set
379# CONFIG_IBM_NEW_EMAC_TAH is not set 375# CONFIG_IBM_NEW_EMAC_TAH is not set
380# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 376# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
377# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
378# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
379# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
381# CONFIG_B44 is not set 380# CONFIG_B44 is not set
382CONFIG_FEC=y 381CONFIG_FEC=y
383# CONFIG_FEC2 is not set 382# CONFIG_FEC2 is not set
@@ -389,8 +388,10 @@ CONFIG_FEC=y
389# 388#
390# CONFIG_WLAN_PRE80211 is not set 389# CONFIG_WLAN_PRE80211 is not set
391# CONFIG_WLAN_80211 is not set 390# CONFIG_WLAN_80211 is not set
392# CONFIG_IWLWIFI is not set 391
393# CONFIG_IWLWIFI_LEDS is not set 392#
393# Enable WiMAX (Networking options) to see the WiMAX drivers
394#
394# CONFIG_WAN is not set 395# CONFIG_WAN is not set
395# CONFIG_PPP is not set 396# CONFIG_PPP is not set
396# CONFIG_SLIP is not set 397# CONFIG_SLIP is not set
@@ -415,7 +416,7 @@ CONFIG_FEC=y
415# Character devices 416# Character devices
416# 417#
417# CONFIG_VT is not set 418# CONFIG_VT is not set
418# CONFIG_DEVKMEM is not set 419CONFIG_DEVKMEM=y
419# CONFIG_SERIAL_NONSTANDARD is not set 420# CONFIG_SERIAL_NONSTANDARD is not set
420 421
421# 422#
@@ -428,7 +429,6 @@ CONFIG_FEC=y
428# 429#
429CONFIG_SERIAL_CORE=y 430CONFIG_SERIAL_CORE=y
430CONFIG_SERIAL_CORE_CONSOLE=y 431CONFIG_SERIAL_CORE_CONSOLE=y
431# CONFIG_SERIAL_COLDFIRE is not set
432CONFIG_SERIAL_MCF=y 432CONFIG_SERIAL_MCF=y
433CONFIG_SERIAL_MCF_BAUDRATE=115200 433CONFIG_SERIAL_MCF_BAUDRATE=115200
434CONFIG_SERIAL_MCF_CONSOLE=y 434CONFIG_SERIAL_MCF_CONSOLE=y
@@ -447,19 +447,23 @@ CONFIG_LEGACY_PTY_COUNT=256
447# CONFIG_POWER_SUPPLY is not set 447# CONFIG_POWER_SUPPLY is not set
448# CONFIG_HWMON is not set 448# CONFIG_HWMON is not set
449# CONFIG_THERMAL is not set 449# CONFIG_THERMAL is not set
450# CONFIG_THERMAL_HWMON is not set
450# CONFIG_WATCHDOG is not set 451# CONFIG_WATCHDOG is not set
452CONFIG_SSB_POSSIBLE=y
451 453
452# 454#
453# Sonics Silicon Backplane 455# Sonics Silicon Backplane
454# 456#
455CONFIG_SSB_POSSIBLE=y
456# CONFIG_SSB is not set 457# CONFIG_SSB is not set
457 458
458# 459#
459# Multifunction device drivers 460# Multifunction device drivers
460# 461#
462# CONFIG_MFD_CORE is not set
461# CONFIG_MFD_SM501 is not set 463# CONFIG_MFD_SM501 is not set
462# CONFIG_HTC_PASIC3 is not set 464# CONFIG_HTC_PASIC3 is not set
465# CONFIG_MFD_TMIO is not set
466# CONFIG_REGULATOR is not set
463 467
464# 468#
465# Multimedia devices 469# Multimedia devices
@@ -470,11 +474,12 @@ CONFIG_SSB_POSSIBLE=y
470# 474#
471# CONFIG_VIDEO_DEV is not set 475# CONFIG_VIDEO_DEV is not set
472# CONFIG_DVB_CORE is not set 476# CONFIG_DVB_CORE is not set
477# CONFIG_VIDEO_MEDIA is not set
473 478
474# 479#
475# Multimedia drivers 480# Multimedia drivers
476# 481#
477# CONFIG_DAB is not set 482CONFIG_DAB=y
478 483
479# 484#
480# Graphics support 485# Graphics support
@@ -488,10 +493,6 @@ CONFIG_SSB_POSSIBLE=y
488# Display device support 493# Display device support
489# 494#
490# CONFIG_DISPLAY_SUPPORT is not set 495# CONFIG_DISPLAY_SUPPORT is not set
491
492#
493# Sound
494#
495# CONFIG_SOUND is not set 496# CONFIG_SOUND is not set
496# CONFIG_USB_SUPPORT is not set 497# CONFIG_USB_SUPPORT is not set
497# CONFIG_MMC is not set 498# CONFIG_MMC is not set
@@ -499,7 +500,10 @@ CONFIG_SSB_POSSIBLE=y
499# CONFIG_NEW_LEDS is not set 500# CONFIG_NEW_LEDS is not set
500# CONFIG_ACCESSIBILITY is not set 501# CONFIG_ACCESSIBILITY is not set
501# CONFIG_RTC_CLASS is not set 502# CONFIG_RTC_CLASS is not set
503# CONFIG_DMADEVICES is not set
504# CONFIG_AUXDISPLAY is not set
502# CONFIG_UIO is not set 505# CONFIG_UIO is not set
506# CONFIG_STAGING is not set
503 507
504# 508#
505# File systems 509# File systems
@@ -507,11 +511,13 @@ CONFIG_SSB_POSSIBLE=y
507CONFIG_EXT2_FS=y 511CONFIG_EXT2_FS=y
508# CONFIG_EXT2_FS_XATTR is not set 512# CONFIG_EXT2_FS_XATTR is not set
509# CONFIG_EXT3_FS is not set 513# CONFIG_EXT3_FS is not set
510# CONFIG_EXT4DEV_FS is not set 514# CONFIG_EXT4_FS is not set
511# CONFIG_REISERFS_FS is not set 515# CONFIG_REISERFS_FS is not set
512# CONFIG_JFS_FS is not set 516# CONFIG_JFS_FS is not set
513# CONFIG_FS_POSIX_ACL is not set 517# CONFIG_FS_POSIX_ACL is not set
518# CONFIG_FILE_LOCKING is not set
514# CONFIG_XFS_FS is not set 519# CONFIG_XFS_FS is not set
520# CONFIG_BTRFS_FS is not set
515# CONFIG_DNOTIFY is not set 521# CONFIG_DNOTIFY is not set
516# CONFIG_INOTIFY is not set 522# CONFIG_INOTIFY is not set
517# CONFIG_QUOTA is not set 523# CONFIG_QUOTA is not set
@@ -520,6 +526,11 @@ CONFIG_EXT2_FS=y
520# CONFIG_FUSE_FS is not set 526# CONFIG_FUSE_FS is not set
521 527
522# 528#
529# Caches
530#
531# CONFIG_FSCACHE is not set
532
533#
523# CD-ROM/DVD Filesystems 534# CD-ROM/DVD Filesystems
524# 535#
525# CONFIG_ISO9660_FS is not set 536# CONFIG_ISO9660_FS is not set
@@ -540,10 +551,7 @@ CONFIG_PROC_SYSCTL=y
540# CONFIG_SYSFS is not set 551# CONFIG_SYSFS is not set
541# CONFIG_TMPFS is not set 552# CONFIG_TMPFS is not set
542# CONFIG_HUGETLB_PAGE is not set 553# CONFIG_HUGETLB_PAGE is not set
543 554CONFIG_MISC_FILESYSTEMS=y
544#
545# Miscellaneous filesystems
546#
547# CONFIG_ADFS_FS is not set 555# CONFIG_ADFS_FS is not set
548# CONFIG_AFFS_FS is not set 556# CONFIG_AFFS_FS is not set
549# CONFIG_HFS_FS is not set 557# CONFIG_HFS_FS is not set
@@ -553,13 +561,20 @@ CONFIG_PROC_SYSCTL=y
553# CONFIG_EFS_FS is not set 561# CONFIG_EFS_FS is not set
554# CONFIG_JFFS2_FS is not set 562# CONFIG_JFFS2_FS is not set
555# CONFIG_CRAMFS is not set 563# CONFIG_CRAMFS is not set
564# CONFIG_SQUASHFS is not set
556# CONFIG_VXFS_FS is not set 565# CONFIG_VXFS_FS is not set
557# CONFIG_MINIX_FS is not set 566# CONFIG_MINIX_FS is not set
567# CONFIG_OMFS_FS is not set
558# CONFIG_HPFS_FS is not set 568# CONFIG_HPFS_FS is not set
559# CONFIG_QNX4FS_FS is not set 569# CONFIG_QNX4FS_FS is not set
560CONFIG_ROMFS_FS=y 570CONFIG_ROMFS_FS=y
571# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
572CONFIG_ROMFS_BACKED_BY_MTD=y
573# CONFIG_ROMFS_BACKED_BY_BOTH is not set
574CONFIG_ROMFS_ON_MTD=y
561# CONFIG_SYSV_FS is not set 575# CONFIG_SYSV_FS is not set
562# CONFIG_UFS_FS is not set 576# CONFIG_UFS_FS is not set
577# CONFIG_NILFS2_FS is not set
563# CONFIG_NETWORK_FILESYSTEMS is not set 578# CONFIG_NETWORK_FILESYSTEMS is not set
564 579
565# 580#
@@ -581,10 +596,14 @@ CONFIG_FRAME_WARN=1024
581# CONFIG_HEADERS_CHECK is not set 596# CONFIG_HEADERS_CHECK is not set
582# CONFIG_DEBUG_KERNEL is not set 597# CONFIG_DEBUG_KERNEL is not set
583# CONFIG_DEBUG_BUGVERBOSE is not set 598# CONFIG_DEBUG_BUGVERBOSE is not set
599# CONFIG_DEBUG_MEMORY_INIT is not set
600# CONFIG_RCU_CPU_STALL_DETECTOR is not set
601CONFIG_SYSCTL_SYSCALL_CHECK=y
584# CONFIG_SAMPLES is not set 602# CONFIG_SAMPLES is not set
585CONFIG_FULLDEBUG=y 603CONFIG_FULLDEBUG=y
586# CONFIG_HIGHPROFILE is not set 604# CONFIG_HIGHPROFILE is not set
587# CONFIG_BOOTPARAM is not set 605CONFIG_BOOTPARAM=y
606CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
588# CONFIG_NO_KERNEL_MSG is not set 607# CONFIG_NO_KERNEL_MSG is not set
589# CONFIG_BDM_DISABLE is not set 608# CONFIG_BDM_DISABLE is not set
590 609
@@ -592,19 +611,23 @@ CONFIG_FULLDEBUG=y
592# Security options 611# Security options
593# 612#
594# CONFIG_KEYS is not set 613# CONFIG_KEYS is not set
614# CONFIG_SECURITYFS is not set
595# CONFIG_SECURITY_FILE_CAPABILITIES is not set 615# CONFIG_SECURITY_FILE_CAPABILITIES is not set
596# CONFIG_CRYPTO is not set 616# CONFIG_CRYPTO is not set
617# CONFIG_BINARY_PRINTF is not set
597 618
598# 619#
599# Library routines 620# Library routines
600# 621#
601CONFIG_BITREVERSE=y 622CONFIG_BITREVERSE=y
602# CONFIG_GENERIC_FIND_FIRST_BIT is not set 623CONFIG_GENERIC_FIND_LAST_BIT=y
603# CONFIG_CRC_CCITT is not set 624# CONFIG_CRC_CCITT is not set
604# CONFIG_CRC16 is not set 625# CONFIG_CRC16 is not set
626# CONFIG_CRC_T10DIF is not set
605# CONFIG_CRC_ITU_T is not set 627# CONFIG_CRC_ITU_T is not set
606CONFIG_CRC32=y 628CONFIG_CRC32=y
607# CONFIG_CRC7 is not set 629# CONFIG_CRC7 is not set
608# CONFIG_LIBCRC32C is not set 630# CONFIG_LIBCRC32C is not set
609CONFIG_HAS_IOMEM=y 631CONFIG_HAS_IOMEM=y
610CONFIG_HAS_DMA=y 632CONFIG_HAS_DMA=y
633CONFIG_NLATTR=y
diff --git a/arch/m68knommu/configs/m5249evb_defconfig b/arch/m68knommu/configs/m5249evb_defconfig
index cc6458333d67..2efba32e33a0 100644
--- a/arch/m68knommu/configs/m5249evb_defconfig
+++ b/arch/m68knommu/configs/m5249evb_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.26-rc1 3# Linux kernel version: 2.6.30-rc2
4# Wed Apr 22 17:32:41 2009
4# 5#
5CONFIG_M68K=y 6CONFIG_M68K=y
6# CONFIG_MMU is not set 7# CONFIG_MMU is not set
@@ -15,9 +16,10 @@ CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 16CONFIG_GENERIC_HARDIRQS=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_GENERIC_TIME=y 18CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CMOS_UPDATE=y
18CONFIG_TIME_LOW_RES=y 20CONFIG_TIME_LOW_RES=y
21# CONFIG_GENERIC_CLOCKEVENTS is not set
19CONFIG_NO_IOPORT=y 22CONFIG_NO_IOPORT=y
20CONFIG_ARCH_SUPPORTS_AOUT=y
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
22 24
23# 25#
@@ -29,11 +31,23 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
29CONFIG_LOCALVERSION="" 31CONFIG_LOCALVERSION=""
30CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
31# CONFIG_SYSVIPC is not set 33# CONFIG_SYSVIPC is not set
34# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set
37# CONFIG_AUDIT is not set
38
39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
33# CONFIG_IKCONFIG is not set 47# CONFIG_IKCONFIG is not set
34CONFIG_LOG_BUF_SHIFT=14 48CONFIG_LOG_BUF_SHIFT=14
35# CONFIG_CGROUPS is not set
36# CONFIG_GROUP_SCHED is not set 49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
37# CONFIG_SYSFS_DEPRECATED_V2 is not set 51# CONFIG_SYSFS_DEPRECATED_V2 is not set
38# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
39# CONFIG_NAMESPACES is not set 53# CONFIG_NAMESPACES is not set
@@ -41,44 +55,37 @@ CONFIG_LOG_BUF_SHIFT=14
41# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 55# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
42CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
43CONFIG_EMBEDDED=y 57CONFIG_EMBEDDED=y
44# CONFIG_UID16 is not set 58CONFIG_UID16=y
45# CONFIG_SYSCTL_SYSCALL is not set 59CONFIG_SYSCTL_SYSCALL=y
46# CONFIG_KALLSYMS is not set 60# CONFIG_KALLSYMS is not set
61# CONFIG_STRIP_ASM_SYMS is not set
47# CONFIG_HOTPLUG is not set 62# CONFIG_HOTPLUG is not set
48CONFIG_PRINTK=y 63CONFIG_PRINTK=y
49CONFIG_BUG=y 64CONFIG_BUG=y
50CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
51# CONFIG_COMPAT_BRK is not set
52CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
53# CONFIG_FUTEX is not set 67# CONFIG_FUTEX is not set
54# CONFIG_EPOLL is not set 68# CONFIG_EPOLL is not set
55# CONFIG_SIGNALFD is not set 69# CONFIG_SIGNALFD is not set
56# CONFIG_TIMERFD is not set 70# CONFIG_TIMERFD is not set
57# CONFIG_EVENTFD is not set 71# CONFIG_EVENTFD is not set
72# CONFIG_AIO is not set
58# CONFIG_VM_EVENT_COUNTERS is not set 73# CONFIG_VM_EVENT_COUNTERS is not set
59CONFIG_SLAB=y 74# CONFIG_SLUB_DEBUG is not set
60# CONFIG_SLUB is not set 75CONFIG_COMPAT_BRK=y
76# CONFIG_SLAB is not set
77CONFIG_SLUB=y
61# CONFIG_SLOB is not set 78# CONFIG_SLOB is not set
62# CONFIG_PROFILING is not set 79# CONFIG_PROFILING is not set
63# CONFIG_MARKERS is not set 80# CONFIG_MARKERS is not set
64# CONFIG_HAVE_OPROFILE is not set 81# CONFIG_SLOW_WORK is not set
65# CONFIG_HAVE_KPROBES is not set 82# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
66# CONFIG_HAVE_KRETPROBES is not set
67# CONFIG_HAVE_DMA_ATTRS is not set
68CONFIG_SLABINFO=y
69CONFIG_TINY_SHMEM=y
70CONFIG_BASE_SMALL=0 83CONFIG_BASE_SMALL=0
71CONFIG_MODULES=y 84# CONFIG_MODULES is not set
72CONFIG_MODULE_UNLOAD=y
73# CONFIG_MODULE_FORCE_UNLOAD is not set
74# CONFIG_MODVERSIONS is not set
75# CONFIG_MODULE_SRCVERSION_ALL is not set
76# CONFIG_KMOD is not set
77CONFIG_BLOCK=y 85CONFIG_BLOCK=y
78# CONFIG_LBD is not set 86# CONFIG_LBD is not set
79# CONFIG_BLK_DEV_IO_TRACE is not set
80# CONFIG_LSF is not set
81# CONFIG_BLK_DEV_BSG is not set 87# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set
82 89
83# 90#
84# IO Schedulers 91# IO Schedulers
@@ -92,7 +99,7 @@ CONFIG_IOSCHED_NOOP=y
92# CONFIG_DEFAULT_CFQ is not set 99# CONFIG_DEFAULT_CFQ is not set
93CONFIG_DEFAULT_NOOP=y 100CONFIG_DEFAULT_NOOP=y
94CONFIG_DEFAULT_IOSCHED="noop" 101CONFIG_DEFAULT_IOSCHED="noop"
95CONFIG_CLASSIC_RCU=y 102# CONFIG_FREEZER is not set
96 103
97# 104#
98# Processor type and features 105# Processor type and features
@@ -144,45 +151,103 @@ CONFIG_RAMAUTOBIT=y
144# CONFIG_ROM is not set 151# CONFIG_ROM is not set
145CONFIG_RAMKERNEL=y 152CONFIG_RAMKERNEL=y
146# CONFIG_ROMKERNEL is not set 153# CONFIG_ROMKERNEL is not set
154CONFIG_PREEMPT_NONE=y
155# CONFIG_PREEMPT_VOLUNTARY is not set
156# CONFIG_PREEMPT is not set
147CONFIG_SELECT_MEMORY_MODEL=y 157CONFIG_SELECT_MEMORY_MODEL=y
148CONFIG_FLATMEM_MANUAL=y 158CONFIG_FLATMEM_MANUAL=y
149# CONFIG_DISCONTIGMEM_MANUAL is not set 159# CONFIG_DISCONTIGMEM_MANUAL is not set
150# CONFIG_SPARSEMEM_MANUAL is not set 160# CONFIG_SPARSEMEM_MANUAL is not set
151CONFIG_FLATMEM=y 161CONFIG_FLATMEM=y
152CONFIG_FLAT_NODE_MEM_MAP=y 162CONFIG_FLAT_NODE_MEM_MAP=y
153# CONFIG_SPARSEMEM_STATIC is not set
154# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
155CONFIG_PAGEFLAGS_EXTENDED=y 163CONFIG_PAGEFLAGS_EXTENDED=y
156CONFIG_SPLIT_PTLOCK_CPUS=4 164CONFIG_SPLIT_PTLOCK_CPUS=4
157# CONFIG_RESOURCES_64BIT is not set 165# CONFIG_PHYS_ADDR_T_64BIT is not set
158CONFIG_ZONE_DMA_FLAG=1 166CONFIG_ZONE_DMA_FLAG=1
159CONFIG_VIRT_TO_BUS=y 167CONFIG_VIRT_TO_BUS=y
168# CONFIG_UNEVICTABLE_LRU is not set
160CONFIG_ISA_DMA_API=y 169CONFIG_ISA_DMA_API=y
161 170
162# 171#
163# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
164#
165# CONFIG_PCI is not set
166# CONFIG_ARCH_SUPPORTS_MSI is not set
167
168#
169# Executable file formats 172# Executable file formats
170# 173#
171CONFIG_BINFMT_FLAT=y 174CONFIG_BINFMT_FLAT=y
172# CONFIG_BINFMT_ZFLAT is not set 175# CONFIG_BINFMT_ZFLAT is not set
173# CONFIG_BINFMT_SHARED_FLAT is not set 176# CONFIG_BINFMT_SHARED_FLAT is not set
174# CONFIG_BINFMT_AOUT is not set 177# CONFIG_HAVE_AOUT is not set
175# CONFIG_BINFMT_MISC is not set 178# CONFIG_BINFMT_MISC is not set
176 179
177# 180#
178# Power management options 181# Power management options
179# 182#
180# CONFIG_PM is not set 183# CONFIG_PM is not set
181 184CONFIG_NET=y
182# 185
183# Networking 186#
184# 187# Networking options
185# CONFIG_NET is not set 188#
189CONFIG_PACKET=y
190# CONFIG_PACKET_MMAP is not set
191CONFIG_UNIX=y
192# CONFIG_NET_KEY is not set
193CONFIG_INET=y
194# CONFIG_IP_MULTICAST is not set
195# CONFIG_IP_ADVANCED_ROUTER is not set
196CONFIG_IP_FIB_HASH=y
197# CONFIG_IP_PNP is not set
198# CONFIG_NET_IPIP is not set
199# CONFIG_NET_IPGRE is not set
200# CONFIG_ARPD is not set
201# CONFIG_SYN_COOKIES is not set
202# CONFIG_INET_AH is not set
203# CONFIG_INET_ESP is not set
204# CONFIG_INET_IPCOMP is not set
205# CONFIG_INET_XFRM_TUNNEL is not set
206# CONFIG_INET_TUNNEL is not set
207# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
208# CONFIG_INET_XFRM_MODE_TUNNEL is not set
209# CONFIG_INET_XFRM_MODE_BEET is not set
210# CONFIG_INET_LRO is not set
211# CONFIG_INET_DIAG is not set
212# CONFIG_TCP_CONG_ADVANCED is not set
213CONFIG_TCP_CONG_CUBIC=y
214CONFIG_DEFAULT_TCP_CONG="cubic"
215# CONFIG_TCP_MD5SIG is not set
216# CONFIG_IPV6 is not set
217# CONFIG_NETWORK_SECMARK is not set
218# CONFIG_NETFILTER is not set
219# CONFIG_IP_DCCP is not set
220# CONFIG_IP_SCTP is not set
221# CONFIG_TIPC is not set
222# CONFIG_ATM is not set
223# CONFIG_BRIDGE is not set
224# CONFIG_NET_DSA is not set
225# CONFIG_VLAN_8021Q is not set
226# CONFIG_DECNET is not set
227# CONFIG_LLC2 is not set
228# CONFIG_IPX is not set
229# CONFIG_ATALK is not set
230# CONFIG_X25 is not set
231# CONFIG_LAPB is not set
232# CONFIG_ECONET is not set
233# CONFIG_WAN_ROUTER is not set
234# CONFIG_PHONET is not set
235# CONFIG_NET_SCHED is not set
236# CONFIG_DCB is not set
237
238#
239# Network testing
240#
241# CONFIG_NET_PKTGEN is not set
242# CONFIG_HAMRADIO is not set
243# CONFIG_CAN is not set
244# CONFIG_IRDA is not set
245# CONFIG_BT is not set
246# CONFIG_AF_RXRPC is not set
247# CONFIG_WIRELESS is not set
248# CONFIG_WIMAX is not set
249# CONFIG_RFKILL is not set
250# CONFIG_NET_9P is not set
186 251
187# 252#
188# Device Drivers 253# Device Drivers
@@ -194,6 +259,7 @@ CONFIG_BINFMT_FLAT=y
194CONFIG_STANDALONE=y 259CONFIG_STANDALONE=y
195CONFIG_PREVENT_FIRMWARE_BUILD=y 260CONFIG_PREVENT_FIRMWARE_BUILD=y
196# CONFIG_SYS_HYPERVISOR is not set 261# CONFIG_SYS_HYPERVISOR is not set
262# CONFIG_CONNECTOR is not set
197CONFIG_MTD=y 263CONFIG_MTD=y
198# CONFIG_MTD_DEBUG is not set 264# CONFIG_MTD_DEBUG is not set
199# CONFIG_MTD_CONCAT is not set 265# CONFIG_MTD_CONCAT is not set
@@ -259,6 +325,11 @@ CONFIG_MTD_UCLINUX=y
259# CONFIG_MTD_ONENAND is not set 325# CONFIG_MTD_ONENAND is not set
260 326
261# 327#
328# LPDDR flash memory drivers
329#
330# CONFIG_MTD_LPDDR is not set
331
332#
262# UBI - Unsorted block images 333# UBI - Unsorted block images
263# 334#
264# CONFIG_MTD_UBI is not set 335# CONFIG_MTD_UBI is not set
@@ -266,14 +337,15 @@ CONFIG_MTD_UCLINUX=y
266CONFIG_BLK_DEV=y 337CONFIG_BLK_DEV=y
267# CONFIG_BLK_DEV_COW_COMMON is not set 338# CONFIG_BLK_DEV_COW_COMMON is not set
268# CONFIG_BLK_DEV_LOOP is not set 339# CONFIG_BLK_DEV_LOOP is not set
340# CONFIG_BLK_DEV_NBD is not set
269CONFIG_BLK_DEV_RAM=y 341CONFIG_BLK_DEV_RAM=y
270CONFIG_BLK_DEV_RAM_COUNT=16 342CONFIG_BLK_DEV_RAM_COUNT=16
271CONFIG_BLK_DEV_RAM_SIZE=4096 343CONFIG_BLK_DEV_RAM_SIZE=4096
272# CONFIG_BLK_DEV_XIP is not set 344# CONFIG_BLK_DEV_XIP is not set
273# CONFIG_CDROM_PKTCDVD is not set 345# CONFIG_CDROM_PKTCDVD is not set
274CONFIG_MISC_DEVICES=y 346# CONFIG_ATA_OVER_ETH is not set
275# CONFIG_EEPROM_93CX6 is not set 347# CONFIG_BLK_DEV_HD is not set
276# CONFIG_ENCLOSURE_SERVICES is not set 348# CONFIG_MISC_DEVICES is not set
277CONFIG_HAVE_IDE=y 349CONFIG_HAVE_IDE=y
278# CONFIG_IDE is not set 350# CONFIG_IDE is not set
279 351
@@ -285,6 +357,56 @@ CONFIG_HAVE_IDE=y
285# CONFIG_SCSI_DMA is not set 357# CONFIG_SCSI_DMA is not set
286# CONFIG_SCSI_NETLINK is not set 358# CONFIG_SCSI_NETLINK is not set
287# CONFIG_MD is not set 359# CONFIG_MD is not set
360CONFIG_NETDEVICES=y
361CONFIG_COMPAT_NET_DEV_OPS=y
362# CONFIG_DUMMY is not set
363# CONFIG_BONDING is not set
364# CONFIG_MACVLAN is not set
365# CONFIG_EQUALIZER is not set
366# CONFIG_TUN is not set
367# CONFIG_VETH is not set
368# CONFIG_PHYLIB is not set
369CONFIG_NET_ETHERNET=y
370# CONFIG_MII is not set
371# CONFIG_ETHOC is not set
372# CONFIG_DNET is not set
373# CONFIG_IBM_NEW_EMAC_ZMII is not set
374# CONFIG_IBM_NEW_EMAC_RGMII is not set
375# CONFIG_IBM_NEW_EMAC_TAH is not set
376# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
377# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
378# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
379# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
380# CONFIG_B44 is not set
381# CONFIG_NETDEV_1000 is not set
382# CONFIG_NETDEV_10000 is not set
383
384#
385# Wireless LAN
386#
387# CONFIG_WLAN_PRE80211 is not set
388# CONFIG_WLAN_80211 is not set
389
390#
391# Enable WiMAX (Networking options) to see the WiMAX drivers
392#
393# CONFIG_WAN is not set
394CONFIG_PPP=y
395# CONFIG_PPP_MULTILINK is not set
396# CONFIG_PPP_FILTER is not set
397# CONFIG_PPP_ASYNC is not set
398# CONFIG_PPP_SYNC_TTY is not set
399# CONFIG_PPP_DEFLATE is not set
400# CONFIG_PPP_BSDCOMP is not set
401# CONFIG_PPP_MPPE is not set
402# CONFIG_PPPOE is not set
403# CONFIG_PPPOL2TP is not set
404# CONFIG_SLIP is not set
405CONFIG_SLHC=y
406# CONFIG_NETCONSOLE is not set
407# CONFIG_NETPOLL is not set
408# CONFIG_NET_POLL_CONTROLLER is not set
409# CONFIG_ISDN is not set
288# CONFIG_PHONE is not set 410# CONFIG_PHONE is not set
289 411
290# 412#
@@ -302,7 +424,7 @@ CONFIG_HAVE_IDE=y
302# Character devices 424# Character devices
303# 425#
304# CONFIG_VT is not set 426# CONFIG_VT is not set
305# CONFIG_DEVKMEM is not set 427CONFIG_DEVKMEM=y
306# CONFIG_SERIAL_NONSTANDARD is not set 428# CONFIG_SERIAL_NONSTANDARD is not set
307 429
308# 430#
@@ -315,7 +437,6 @@ CONFIG_HAVE_IDE=y
315# 437#
316CONFIG_SERIAL_CORE=y 438CONFIG_SERIAL_CORE=y
317CONFIG_SERIAL_CORE_CONSOLE=y 439CONFIG_SERIAL_CORE_CONSOLE=y
318# CONFIG_SERIAL_COLDFIRE is not set
319CONFIG_SERIAL_MCF=y 440CONFIG_SERIAL_MCF=y
320CONFIG_SERIAL_MCF_BAUDRATE=19200 441CONFIG_SERIAL_MCF_BAUDRATE=19200
321CONFIG_SERIAL_MCF_CONSOLE=y 442CONFIG_SERIAL_MCF_CONSOLE=y
@@ -323,7 +444,8 @@ CONFIG_SERIAL_MCF_CONSOLE=y
323CONFIG_LEGACY_PTYS=y 444CONFIG_LEGACY_PTYS=y
324CONFIG_LEGACY_PTY_COUNT=256 445CONFIG_LEGACY_PTY_COUNT=256
325# CONFIG_IPMI_HANDLER is not set 446# CONFIG_IPMI_HANDLER is not set
326# CONFIG_HW_RANDOM is not set 447CONFIG_HW_RANDOM=y
448# CONFIG_HW_RANDOM_TIMERIOMEM is not set
327# CONFIG_GEN_RTC is not set 449# CONFIG_GEN_RTC is not set
328# CONFIG_R3964 is not set 450# CONFIG_R3964 is not set
329# CONFIG_RAW_DRIVER is not set 451# CONFIG_RAW_DRIVER is not set
@@ -334,19 +456,23 @@ CONFIG_LEGACY_PTY_COUNT=256
334# CONFIG_POWER_SUPPLY is not set 456# CONFIG_POWER_SUPPLY is not set
335# CONFIG_HWMON is not set 457# CONFIG_HWMON is not set
336# CONFIG_THERMAL is not set 458# CONFIG_THERMAL is not set
459# CONFIG_THERMAL_HWMON is not set
337# CONFIG_WATCHDOG is not set 460# CONFIG_WATCHDOG is not set
461CONFIG_SSB_POSSIBLE=y
338 462
339# 463#
340# Sonics Silicon Backplane 464# Sonics Silicon Backplane
341# 465#
342CONFIG_SSB_POSSIBLE=y
343# CONFIG_SSB is not set 466# CONFIG_SSB is not set
344 467
345# 468#
346# Multifunction device drivers 469# Multifunction device drivers
347# 470#
471# CONFIG_MFD_CORE is not set
348# CONFIG_MFD_SM501 is not set 472# CONFIG_MFD_SM501 is not set
349# CONFIG_HTC_PASIC3 is not set 473# CONFIG_HTC_PASIC3 is not set
474# CONFIG_MFD_TMIO is not set
475# CONFIG_REGULATOR is not set
350 476
351# 477#
352# Multimedia devices 478# Multimedia devices
@@ -356,11 +482,13 @@ CONFIG_SSB_POSSIBLE=y
356# Multimedia core support 482# Multimedia core support
357# 483#
358# CONFIG_VIDEO_DEV is not set 484# CONFIG_VIDEO_DEV is not set
485# CONFIG_DVB_CORE is not set
486# CONFIG_VIDEO_MEDIA is not set
359 487
360# 488#
361# Multimedia drivers 489# Multimedia drivers
362# 490#
363# CONFIG_DAB is not set 491CONFIG_DAB=y
364 492
365# 493#
366# Graphics support 494# Graphics support
@@ -374,10 +502,6 @@ CONFIG_SSB_POSSIBLE=y
374# Display device support 502# Display device support
375# 503#
376# CONFIG_DISPLAY_SUPPORT is not set 504# CONFIG_DISPLAY_SUPPORT is not set
377
378#
379# Sound
380#
381# CONFIG_SOUND is not set 505# CONFIG_SOUND is not set
382# CONFIG_USB_SUPPORT is not set 506# CONFIG_USB_SUPPORT is not set
383# CONFIG_MMC is not set 507# CONFIG_MMC is not set
@@ -385,7 +509,10 @@ CONFIG_SSB_POSSIBLE=y
385# CONFIG_NEW_LEDS is not set 509# CONFIG_NEW_LEDS is not set
386# CONFIG_ACCESSIBILITY is not set 510# CONFIG_ACCESSIBILITY is not set
387# CONFIG_RTC_CLASS is not set 511# CONFIG_RTC_CLASS is not set
512# CONFIG_DMADEVICES is not set
513# CONFIG_AUXDISPLAY is not set
388# CONFIG_UIO is not set 514# CONFIG_UIO is not set
515# CONFIG_STAGING is not set
389 516
390# 517#
391# File systems 518# File systems
@@ -393,19 +520,28 @@ CONFIG_SSB_POSSIBLE=y
393CONFIG_EXT2_FS=y 520CONFIG_EXT2_FS=y
394# CONFIG_EXT2_FS_XATTR is not set 521# CONFIG_EXT2_FS_XATTR is not set
395# CONFIG_EXT3_FS is not set 522# CONFIG_EXT3_FS is not set
396# CONFIG_EXT4DEV_FS is not set 523# CONFIG_EXT4_FS is not set
397# CONFIG_REISERFS_FS is not set 524# CONFIG_REISERFS_FS is not set
398# CONFIG_JFS_FS is not set 525# CONFIG_JFS_FS is not set
399# CONFIG_FS_POSIX_ACL is not set 526# CONFIG_FS_POSIX_ACL is not set
527# CONFIG_FILE_LOCKING is not set
400# CONFIG_XFS_FS is not set 528# CONFIG_XFS_FS is not set
401# CONFIG_DNOTIFY is not set 529# CONFIG_OCFS2_FS is not set
402# CONFIG_INOTIFY is not set 530# CONFIG_BTRFS_FS is not set
531CONFIG_DNOTIFY=y
532CONFIG_INOTIFY=y
533CONFIG_INOTIFY_USER=y
403# CONFIG_QUOTA is not set 534# CONFIG_QUOTA is not set
404# CONFIG_AUTOFS_FS is not set 535# CONFIG_AUTOFS_FS is not set
405# CONFIG_AUTOFS4_FS is not set 536# CONFIG_AUTOFS4_FS is not set
406# CONFIG_FUSE_FS is not set 537# CONFIG_FUSE_FS is not set
407 538
408# 539#
540# Caches
541#
542# CONFIG_FSCACHE is not set
543
544#
409# CD-ROM/DVD Filesystems 545# CD-ROM/DVD Filesystems
410# 546#
411# CONFIG_ISO9660_FS is not set 547# CONFIG_ISO9660_FS is not set
@@ -427,10 +563,7 @@ CONFIG_SYSFS=y
427# CONFIG_TMPFS is not set 563# CONFIG_TMPFS is not set
428# CONFIG_HUGETLB_PAGE is not set 564# CONFIG_HUGETLB_PAGE is not set
429# CONFIG_CONFIGFS_FS is not set 565# CONFIG_CONFIGFS_FS is not set
430 566CONFIG_MISC_FILESYSTEMS=y
431#
432# Miscellaneous filesystems
433#
434# CONFIG_ADFS_FS is not set 567# CONFIG_ADFS_FS is not set
435# CONFIG_AFFS_FS is not set 568# CONFIG_AFFS_FS is not set
436# CONFIG_HFS_FS is not set 569# CONFIG_HFS_FS is not set
@@ -440,13 +573,21 @@ CONFIG_SYSFS=y
440# CONFIG_EFS_FS is not set 573# CONFIG_EFS_FS is not set
441# CONFIG_JFFS2_FS is not set 574# CONFIG_JFFS2_FS is not set
442# CONFIG_CRAMFS is not set 575# CONFIG_CRAMFS is not set
576# CONFIG_SQUASHFS is not set
443# CONFIG_VXFS_FS is not set 577# CONFIG_VXFS_FS is not set
444# CONFIG_MINIX_FS is not set 578# CONFIG_MINIX_FS is not set
579# CONFIG_OMFS_FS is not set
445# CONFIG_HPFS_FS is not set 580# CONFIG_HPFS_FS is not set
446# CONFIG_QNX4FS_FS is not set 581# CONFIG_QNX4FS_FS is not set
447CONFIG_ROMFS_FS=y 582CONFIG_ROMFS_FS=y
583# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
584CONFIG_ROMFS_BACKED_BY_MTD=y
585# CONFIG_ROMFS_BACKED_BY_BOTH is not set
586CONFIG_ROMFS_ON_MTD=y
448# CONFIG_SYSV_FS is not set 587# CONFIG_SYSV_FS is not set
449# CONFIG_UFS_FS is not set 588# CONFIG_UFS_FS is not set
589# CONFIG_NILFS2_FS is not set
590# CONFIG_NETWORK_FILESYSTEMS is not set
450 591
451# 592#
452# Partition Types 593# Partition Types
@@ -454,6 +595,7 @@ CONFIG_ROMFS_FS=y
454# CONFIG_PARTITION_ADVANCED is not set 595# CONFIG_PARTITION_ADVANCED is not set
455CONFIG_MSDOS_PARTITION=y 596CONFIG_MSDOS_PARTITION=y
456# CONFIG_NLS is not set 597# CONFIG_NLS is not set
598# CONFIG_DLM is not set
457 599
458# 600#
459# Kernel hacking 601# Kernel hacking
@@ -468,10 +610,14 @@ CONFIG_FRAME_WARN=1024
468# CONFIG_HEADERS_CHECK is not set 610# CONFIG_HEADERS_CHECK is not set
469# CONFIG_DEBUG_KERNEL is not set 611# CONFIG_DEBUG_KERNEL is not set
470# CONFIG_DEBUG_BUGVERBOSE is not set 612# CONFIG_DEBUG_BUGVERBOSE is not set
613# CONFIG_DEBUG_MEMORY_INIT is not set
614# CONFIG_RCU_CPU_STALL_DETECTOR is not set
615# CONFIG_SYSCTL_SYSCALL_CHECK is not set
471# CONFIG_SAMPLES is not set 616# CONFIG_SAMPLES is not set
472# CONFIG_FULLDEBUG is not set 617# CONFIG_FULLDEBUG is not set
473# CONFIG_HIGHPROFILE is not set 618# CONFIG_HIGHPROFILE is not set
474# CONFIG_BOOTPARAM is not set 619CONFIG_BOOTPARAM=y
620CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
475# CONFIG_NO_KERNEL_MSG is not set 621# CONFIG_NO_KERNEL_MSG is not set
476# CONFIG_BDM_DISABLE is not set 622# CONFIG_BDM_DISABLE is not set
477 623
@@ -480,18 +626,22 @@ CONFIG_FRAME_WARN=1024
480# 626#
481# CONFIG_KEYS is not set 627# CONFIG_KEYS is not set
482# CONFIG_SECURITY is not set 628# CONFIG_SECURITY is not set
629# CONFIG_SECURITYFS is not set
483# CONFIG_SECURITY_FILE_CAPABILITIES is not set 630# CONFIG_SECURITY_FILE_CAPABILITIES is not set
484# CONFIG_CRYPTO is not set 631# CONFIG_CRYPTO is not set
632# CONFIG_BINARY_PRINTF is not set
485 633
486# 634#
487# Library routines 635# Library routines
488# 636#
489# CONFIG_GENERIC_FIND_FIRST_BIT is not set 637CONFIG_GENERIC_FIND_LAST_BIT=y
490# CONFIG_CRC_CCITT is not set 638# CONFIG_CRC_CCITT is not set
491# CONFIG_CRC16 is not set 639# CONFIG_CRC16 is not set
640# CONFIG_CRC_T10DIF is not set
492# CONFIG_CRC_ITU_T is not set 641# CONFIG_CRC_ITU_T is not set
493# CONFIG_CRC32 is not set 642# CONFIG_CRC32 is not set
494# CONFIG_CRC7 is not set 643# CONFIG_CRC7 is not set
495# CONFIG_LIBCRC32C is not set 644# CONFIG_LIBCRC32C is not set
496CONFIG_HAS_IOMEM=y 645CONFIG_HAS_IOMEM=y
497CONFIG_HAS_DMA=y 646CONFIG_HAS_DMA=y
647CONFIG_NLATTR=y
diff --git a/arch/arm/configs/pcm037_defconfig b/arch/m68knommu/configs/m5272c3_defconfig
index 6e37c77c4760..f37852a34218 100644
--- a/arch/arm/configs/pcm037_defconfig
+++ b/arch/m68knommu/configs/m5272c3_defconfig
@@ -1,30 +1,25 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc6 3# Linux kernel version: 2.6.30-rc2
4# Wed Jun 25 11:52:42 2008 4# Wed Apr 22 17:17:30 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_M68K=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7# CONFIG_MMU is not set
8CONFIG_GENERIC_GPIO=y 8# CONFIG_FPU is not set
9CONFIG_GENERIC_TIME=y 9CONFIG_ZONE_DMA=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y 10CONFIG_RWSEM_GENERIC_SPINLOCK=y
11# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set 12# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 13# CONFIG_ARCH_HAS_ILOG2_U64 is not set
14CONFIG_GENERIC_FIND_NEXT_BIT=y
22CONFIG_GENERIC_HWEIGHT=y 15CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_HARDIRQS=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y 18CONFIG_GENERIC_TIME=y
25CONFIG_ZONE_DMA=y 19CONFIG_GENERIC_CMOS_UPDATE=y
26CONFIG_ARCH_MTD_XIP=y 20CONFIG_TIME_LOW_RES=y
27CONFIG_VECTORS_BASE=0xffff0000 21# CONFIG_GENERIC_CLOCKEVENTS is not set
22CONFIG_NO_IOPORT=y
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 24
30# 25#
@@ -32,248 +27,166 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32# 27#
33CONFIG_EXPERIMENTAL=y 28CONFIG_EXPERIMENTAL=y
34CONFIG_BROKEN_ON_SMP=y 29CONFIG_BROKEN_ON_SMP=y
35CONFIG_LOCK_KERNEL=y
36CONFIG_INIT_ENV_ARG_LIMIT=32 30CONFIG_INIT_ENV_ARG_LIMIT=32
37CONFIG_LOCALVERSION="" 31CONFIG_LOCALVERSION=""
38CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
39CONFIG_SWAP=y 33# CONFIG_SYSVIPC is not set
40CONFIG_SYSVIPC=y
41CONFIG_SYSVIPC_SYSCTL=y
42# CONFIG_POSIX_MQUEUE is not set 34# CONFIG_POSIX_MQUEUE is not set
43# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set 36# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
46CONFIG_IKCONFIG=y 38
47CONFIG_IKCONFIG_PROC=y 39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14 48CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_GROUP_SCHED is not set
49# CONFIG_CGROUPS is not set 50# CONFIG_CGROUPS is not set
50CONFIG_GROUP_SCHED=y 51# CONFIG_SYSFS_DEPRECATED_V2 is not set
51CONFIG_FAIR_GROUP_SCHED=y
52# CONFIG_RT_GROUP_SCHED is not set
53CONFIG_USER_SCHED=y
54# CONFIG_CGROUP_SCHED is not set
55CONFIG_SYSFS_DEPRECATED=y
56CONFIG_SYSFS_DEPRECATED_V2=y
57# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
58# CONFIG_NAMESPACES is not set 53# CONFIG_NAMESPACES is not set
59# CONFIG_BLK_DEV_INITRD is not set 54# CONFIG_BLK_DEV_INITRD is not set
60CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
61CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
62CONFIG_EMBEDDED=y 57CONFIG_EMBEDDED=y
63CONFIG_UID16=y 58CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y 59CONFIG_SYSCTL_SYSCALL=y
65CONFIG_SYSCTL_SYSCALL_CHECK=y 60# CONFIG_KALLSYMS is not set
66CONFIG_KALLSYMS=y 61# CONFIG_STRIP_ASM_SYMS is not set
67# CONFIG_KALLSYMS_EXTRA_PASS is not set 62# CONFIG_HOTPLUG is not set
68CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 63CONFIG_PRINTK=y
70CONFIG_BUG=y 64CONFIG_BUG=y
71CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
73CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 67# CONFIG_FUTEX is not set
75CONFIG_ANON_INODES=y 68# CONFIG_EPOLL is not set
76CONFIG_EPOLL=y 69# CONFIG_SIGNALFD is not set
77CONFIG_SIGNALFD=y 70# CONFIG_TIMERFD is not set
78CONFIG_TIMERFD=y 71# CONFIG_EVENTFD is not set
79CONFIG_EVENTFD=y 72# CONFIG_AIO is not set
80CONFIG_SHMEM=y 73# CONFIG_VM_EVENT_COUNTERS is not set
81CONFIG_VM_EVENT_COUNTERS=y 74# CONFIG_SLUB_DEBUG is not set
82CONFIG_SLAB=y 75CONFIG_COMPAT_BRK=y
83# CONFIG_SLUB is not set 76# CONFIG_SLAB is not set
77CONFIG_SLUB=y
84# CONFIG_SLOB is not set 78# CONFIG_SLOB is not set
85# CONFIG_PROFILING is not set 79# CONFIG_PROFILING is not set
86# CONFIG_MARKERS is not set 80# CONFIG_MARKERS is not set
87CONFIG_HAVE_OPROFILE=y 81# CONFIG_SLOW_WORK is not set
88# CONFIG_KPROBES is not set 82# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
89CONFIG_HAVE_KPROBES=y
90CONFIG_HAVE_KRETPROBES=y
91# CONFIG_HAVE_DMA_ATTRS is not set
92CONFIG_PROC_PAGE_MONITOR=y
93CONFIG_SLABINFO=y
94CONFIG_RT_MUTEXES=y
95# CONFIG_TINY_SHMEM is not set
96CONFIG_BASE_SMALL=0 83CONFIG_BASE_SMALL=0
97CONFIG_MODULES=y 84# CONFIG_MODULES is not set
98# CONFIG_MODULE_FORCE_LOAD is not set
99CONFIG_MODULE_UNLOAD=y
100CONFIG_MODULE_FORCE_UNLOAD=y
101CONFIG_MODVERSIONS=y
102# CONFIG_MODULE_SRCVERSION_ALL is not set
103CONFIG_KMOD=y
104CONFIG_BLOCK=y 85CONFIG_BLOCK=y
105# CONFIG_LBD is not set 86# CONFIG_LBD 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 87# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set
109 89
110# 90#
111# IO Schedulers 91# IO Schedulers
112# 92#
113CONFIG_IOSCHED_NOOP=y 93CONFIG_IOSCHED_NOOP=y
114CONFIG_IOSCHED_AS=y 94# CONFIG_IOSCHED_AS is not set
115CONFIG_IOSCHED_DEADLINE=y 95# CONFIG_IOSCHED_DEADLINE is not set
116CONFIG_IOSCHED_CFQ=y 96# CONFIG_IOSCHED_CFQ is not set
117# CONFIG_DEFAULT_AS is not set 97# CONFIG_DEFAULT_AS is not set
118# CONFIG_DEFAULT_DEADLINE is not set 98# CONFIG_DEFAULT_DEADLINE is not set
119CONFIG_DEFAULT_CFQ=y 99# CONFIG_DEFAULT_CFQ is not set
120# CONFIG_DEFAULT_NOOP is not set 100CONFIG_DEFAULT_NOOP=y
121CONFIG_DEFAULT_IOSCHED="cfq" 101CONFIG_DEFAULT_IOSCHED="noop"
122CONFIG_CLASSIC_RCU=y 102# CONFIG_FREEZER is not set
123 103
124# 104#
125# System Type 105# Processor type and features
126# 106#
127# CONFIG_ARCH_AAEC2000 is not set 107# CONFIG_M68328 is not set
128# CONFIG_ARCH_INTEGRATOR is not set 108# CONFIG_M68EZ328 is not set
129# CONFIG_ARCH_REALVIEW is not set 109# CONFIG_M68VZ328 is not set
130# CONFIG_ARCH_VERSATILE is not set 110# CONFIG_M68360 is not set
131# CONFIG_ARCH_AT91 is not set 111# CONFIG_M5206 is not set
132# CONFIG_ARCH_CLPS7500 is not set 112# CONFIG_M5206e is not set
133# CONFIG_ARCH_CLPS711X is not set 113# CONFIG_M520x is not set
134# CONFIG_ARCH_CO285 is not set 114# CONFIG_M523x is not set
135# CONFIG_ARCH_EBSA110 is not set 115# CONFIG_M5249 is not set
136# CONFIG_ARCH_EP93XX is not set 116# CONFIG_M5271 is not set
137# CONFIG_ARCH_FOOTBRIDGE is not set 117CONFIG_M5272=y
138# CONFIG_ARCH_NETX is not set 118# CONFIG_M5275 is not set
139# CONFIG_ARCH_H720X is not set 119# CONFIG_M528x is not set
140# CONFIG_ARCH_IMX is not set 120# CONFIG_M5307 is not set
141# CONFIG_ARCH_IOP13XX is not set 121# CONFIG_M532x is not set
142# CONFIG_ARCH_IOP32X is not set 122# CONFIG_M5407 is not set
143# CONFIG_ARCH_IOP33X is not set 123CONFIG_COLDFIRE=y
144# CONFIG_ARCH_IXP23XX is not set 124CONFIG_CLOCK_SET=y
145# CONFIG_ARCH_IXP2000 is not set 125CONFIG_CLOCK_FREQ=66666666
146# CONFIG_ARCH_IXP4XX is not set 126CONFIG_CLOCK_DIV=1
147# CONFIG_ARCH_L7200 is not set 127
148# CONFIG_ARCH_KS8695 is not set 128#
149# CONFIG_ARCH_NS9XXX is not set 129# Platform
150CONFIG_ARCH_MXC=y 130#
151# CONFIG_ARCH_ORION5X is not set 131# CONFIG_UC5272 is not set
152# CONFIG_ARCH_PNX4008 is not set 132CONFIG_M5272C3=y
153# CONFIG_ARCH_PXA is not set 133# CONFIG_COBRA5272 is not set
154# CONFIG_ARCH_RPC is not set 134# CONFIG_CANCam is not set
155# CONFIG_ARCH_SA1100 is not set 135# CONFIG_SCALES is not set
156# CONFIG_ARCH_S3C2410 is not set 136# CONFIG_NETtel is not set
157# CONFIG_ARCH_SHARK is not set 137# CONFIG_CPU16B is not set
158# CONFIG_ARCH_LH7A40X is not set 138# CONFIG_MOD5272 is not set
159# CONFIG_ARCH_DAVINCI is not set 139CONFIG_FREESCALE=y
160# CONFIG_ARCH_OMAP is not set 140CONFIG_4KSTACKS=y
161# CONFIG_ARCH_MSM7X00A is not set 141CONFIG_HZ=100
162
163#
164# Boot options
165#
166
167#
168# Power management
169#
170
171#
172# Freescale MXC Implementations
173#
174CONFIG_ARCH_MX3=y
175
176#
177# MX3 Options
178#
179# CONFIG_MACH_MX31ADS is not set
180CONFIG_MACH_PCM037=y
181
182#
183# Processor Type
184#
185CONFIG_CPU_32=y
186CONFIG_CPU_V6=y
187# CONFIG_CPU_32v6K is not set
188CONFIG_CPU_32v6=y
189CONFIG_CPU_ABRT_EV6=y
190CONFIG_CPU_PABRT_NOIFAR=y
191CONFIG_CPU_CACHE_V6=y
192CONFIG_CPU_CACHE_VIPT=y
193CONFIG_CPU_COPY_V6=y
194CONFIG_CPU_TLB_V6=y
195CONFIG_CPU_HAS_ASID=y
196CONFIG_CPU_CP15=y
197CONFIG_CPU_CP15_MMU=y
198
199#
200# Processor Features
201#
202CONFIG_ARM_THUMB=y
203# CONFIG_CPU_ICACHE_DISABLE is not set
204# CONFIG_CPU_DCACHE_DISABLE is not set
205# CONFIG_CPU_BPREDICT_DISABLE is not set
206# CONFIG_OUTER_CACHE is not set
207 142
208# 143#
209# Bus support 144# RAM configuration
210# 145#
211# CONFIG_PCI_SYSCALL is not set 146CONFIG_RAMBASE=0x00000000
212# CONFIG_ARCH_SUPPORTS_MSI is not set 147CONFIG_RAMSIZE=0x00800000
213# CONFIG_PCCARD is not set 148CONFIG_VECTORBASE=0x00000000
149CONFIG_KERNELBASE=0x00020000
150CONFIG_RAMAUTOBIT=y
151# CONFIG_RAM8BIT is not set
152# CONFIG_RAM16BIT is not set
153# CONFIG_RAM32BIT is not set
214 154
215# 155#
216# Kernel Features 156# ROM configuration
217# 157#
218CONFIG_TICK_ONESHOT=y 158# CONFIG_ROM is not set
219CONFIG_NO_HZ=y 159CONFIG_RAMKERNEL=y
220CONFIG_HIGH_RES_TIMERS=y 160# CONFIG_ROMKERNEL is not set
221CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 161CONFIG_PREEMPT_NONE=y
222CONFIG_PREEMPT=y 162# CONFIG_PREEMPT_VOLUNTARY is not set
223CONFIG_HZ=100 163# CONFIG_PREEMPT is not set
224CONFIG_AEABI=y
225# CONFIG_OABI_COMPAT is not set
226# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
227CONFIG_SELECT_MEMORY_MODEL=y 164CONFIG_SELECT_MEMORY_MODEL=y
228CONFIG_FLATMEM_MANUAL=y 165CONFIG_FLATMEM_MANUAL=y
229# CONFIG_DISCONTIGMEM_MANUAL is not set 166# CONFIG_DISCONTIGMEM_MANUAL is not set
230# CONFIG_SPARSEMEM_MANUAL is not set 167# CONFIG_SPARSEMEM_MANUAL is not set
231CONFIG_FLATMEM=y 168CONFIG_FLATMEM=y
232CONFIG_FLAT_NODE_MEM_MAP=y 169CONFIG_FLAT_NODE_MEM_MAP=y
233# CONFIG_SPARSEMEM_STATIC is not set
234# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
235CONFIG_PAGEFLAGS_EXTENDED=y 170CONFIG_PAGEFLAGS_EXTENDED=y
236CONFIG_SPLIT_PTLOCK_CPUS=4 171CONFIG_SPLIT_PTLOCK_CPUS=4
237# CONFIG_RESOURCES_64BIT is not set 172# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=1 173CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 174CONFIG_VIRT_TO_BUS=y
241CONFIG_ALIGNMENT_TRAP=y 175# CONFIG_UNEVICTABLE_LRU is not set
242
243#
244# Boot options
245#
246CONFIG_ZBOOT_ROM_TEXT=0x0
247CONFIG_ZBOOT_ROM_BSS=0x0
248CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off"
249# CONFIG_XIP_KERNEL is not set
250# CONFIG_KEXEC is not set
251 176
252# 177#
253# Floating point emulation 178# Executable file formats
254# 179#
255 180CONFIG_BINFMT_FLAT=y
256# 181# CONFIG_BINFMT_ZFLAT is not set
257# At least one emulation must be selected 182# CONFIG_BINFMT_SHARED_FLAT is not set
258# 183# CONFIG_HAVE_AOUT is not set
259CONFIG_VFP=y
260
261#
262# Userspace binary formats
263#
264CONFIG_BINFMT_ELF=y
265# CONFIG_BINFMT_AOUT is not set
266# CONFIG_BINFMT_MISC is not set 184# CONFIG_BINFMT_MISC is not set
267 185
268# 186#
269# Power management options 187# Power management options
270# 188#
271# CONFIG_PM is not set 189# CONFIG_PM is not set
272CONFIG_ARCH_SUSPEND_POSSIBLE=y
273
274#
275# Networking
276#
277CONFIG_NET=y 190CONFIG_NET=y
278 191
279# 192#
@@ -287,10 +200,7 @@ CONFIG_INET=y
287# CONFIG_IP_MULTICAST is not set 200# CONFIG_IP_MULTICAST is not set
288# CONFIG_IP_ADVANCED_ROUTER is not set 201# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y 202CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y 203# CONFIG_IP_PNP is not set
291CONFIG_IP_PNP_DHCP=y
292# CONFIG_IP_PNP_BOOTP is not set
293# CONFIG_IP_PNP_RARP is not set
294# CONFIG_NET_IPIP is not set 204# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set 205# CONFIG_NET_IPGRE is not set
296# CONFIG_ARPD is not set 206# CONFIG_ARPD is not set
@@ -317,6 +227,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
317# CONFIG_TIPC is not set 227# CONFIG_TIPC is not set
318# CONFIG_ATM is not set 228# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set 229# CONFIG_BRIDGE is not set
230# CONFIG_NET_DSA is not set
320# CONFIG_VLAN_8021Q is not set 231# CONFIG_VLAN_8021Q is not set
321# CONFIG_DECNET is not set 232# CONFIG_DECNET is not set
322# CONFIG_LLC2 is not set 233# CONFIG_LLC2 is not set
@@ -326,7 +237,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
326# CONFIG_LAPB is not set 237# CONFIG_LAPB is not set
327# CONFIG_ECONET is not set 238# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 239# CONFIG_WAN_ROUTER is not set
240# CONFIG_PHONET is not set
329# CONFIG_NET_SCHED is not set 241# CONFIG_NET_SCHED is not set
242# CONFIG_DCB is not set
330 243
331# 244#
332# Network testing 245# Network testing
@@ -337,14 +250,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_IRDA is not set 250# CONFIG_IRDA is not set
338# CONFIG_BT is not set 251# CONFIG_BT is not set
339# CONFIG_AF_RXRPC is not set 252# CONFIG_AF_RXRPC is not set
340 253# CONFIG_WIRELESS is not set
341# 254# CONFIG_WIMAX is not set
342# Wireless
343#
344# CONFIG_CFG80211 is not set
345# CONFIG_WIRELESS_EXT is not set
346# CONFIG_MAC80211 is not set
347# CONFIG_IEEE80211 is not set
348# CONFIG_RFKILL is not set 255# CONFIG_RFKILL is not set
349# CONFIG_NET_9P is not set 256# CONFIG_NET_9P is not set
350 257
@@ -355,10 +262,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# 262#
356# Generic Driver Options 263# Generic Driver Options
357# 264#
358CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
359CONFIG_STANDALONE=y 265CONFIG_STANDALONE=y
360CONFIG_PREVENT_FIRMWARE_BUILD=y 266CONFIG_PREVENT_FIRMWARE_BUILD=y
361CONFIG_FW_LOADER=m
362# CONFIG_SYS_HYPERVISOR is not set 267# CONFIG_SYS_HYPERVISOR is not set
363# CONFIG_CONNECTOR is not set 268# CONFIG_CONNECTOR is not set
364CONFIG_MTD=y 269CONFIG_MTD=y
@@ -366,8 +271,7 @@ CONFIG_MTD=y
366# CONFIG_MTD_CONCAT is not set 271# CONFIG_MTD_CONCAT is not set
367CONFIG_MTD_PARTITIONS=y 272CONFIG_MTD_PARTITIONS=y
368# CONFIG_MTD_REDBOOT_PARTS is not set 273# CONFIG_MTD_REDBOOT_PARTS is not set
369CONFIG_MTD_CMDLINE_PARTS=y 274# CONFIG_MTD_CMDLINE_PARTS is not set
370# CONFIG_MTD_AFS_PARTS is not set
371# CONFIG_MTD_AR7_PARTS is not set 275# CONFIG_MTD_AR7_PARTS is not set
372 276
373# 277#
@@ -386,13 +290,8 @@ CONFIG_MTD_BLOCK=y
386# 290#
387# RAM/ROM/Flash chip drivers 291# RAM/ROM/Flash chip drivers
388# 292#
389CONFIG_MTD_CFI=y 293# CONFIG_MTD_CFI is not set
390# CONFIG_MTD_JEDECPROBE is not set 294# CONFIG_MTD_JEDECPROBE is not set
391CONFIG_MTD_GEN_PROBE=y
392# CONFIG_MTD_CFI_ADV_OPTIONS is not set
393# CONFIG_MTD_CFI_NOSWAP is not set
394# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
395# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
396CONFIG_MTD_MAP_BANK_WIDTH_1=y 295CONFIG_MTD_MAP_BANK_WIDTH_1=y
397CONFIG_MTD_MAP_BANK_WIDTH_2=y 296CONFIG_MTD_MAP_BANK_WIDTH_2=y
398CONFIG_MTD_MAP_BANK_WIDTH_4=y 297CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -403,10 +302,7 @@ CONFIG_MTD_CFI_I1=y
403CONFIG_MTD_CFI_I2=y 302CONFIG_MTD_CFI_I2=y
404# CONFIG_MTD_CFI_I4 is not set 303# CONFIG_MTD_CFI_I4 is not set
405# CONFIG_MTD_CFI_I8 is not set 304# CONFIG_MTD_CFI_I8 is not set
406# CONFIG_MTD_CFI_INTELEXT is not set 305CONFIG_MTD_RAM=y
407# CONFIG_MTD_CFI_AMDSTD is not set
408# CONFIG_MTD_CFI_STAA is not set
409# CONFIG_MTD_RAM is not set
410# CONFIG_MTD_ROM is not set 306# CONFIG_MTD_ROM is not set
411# CONFIG_MTD_ABSENT is not set 307# CONFIG_MTD_ABSENT is not set
412 308
@@ -414,11 +310,7 @@ CONFIG_MTD_CFI_I2=y
414# Mapping drivers for chip access 310# Mapping drivers for chip access
415# 311#
416# CONFIG_MTD_COMPLEX_MAPPINGS is not set 312# CONFIG_MTD_COMPLEX_MAPPINGS is not set
417CONFIG_MTD_PHYSMAP=y 313CONFIG_MTD_UCLINUX=y
418CONFIG_MTD_PHYSMAP_START=0x0
419CONFIG_MTD_PHYSMAP_LEN=0
420CONFIG_MTD_PHYSMAP_BANKWIDTH=2
421# CONFIG_MTD_ARM_INTEGRATOR is not set
422# CONFIG_MTD_PLATRAM is not set 314# CONFIG_MTD_PLATRAM is not set
423 315
424# 316#
@@ -439,11 +331,26 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
439# CONFIG_MTD_ONENAND is not set 331# CONFIG_MTD_ONENAND is not set
440 332
441# 333#
334# LPDDR flash memory drivers
335#
336# CONFIG_MTD_LPDDR is not set
337
338#
442# UBI - Unsorted block images 339# UBI - Unsorted block images
443# 340#
444# CONFIG_MTD_UBI is not set 341# CONFIG_MTD_UBI is not set
445# CONFIG_PARPORT is not set 342# CONFIG_PARPORT is not set
446# CONFIG_BLK_DEV is not set 343CONFIG_BLK_DEV=y
344# CONFIG_BLK_DEV_COW_COMMON is not set
345# CONFIG_BLK_DEV_LOOP is not set
346# CONFIG_BLK_DEV_NBD is not set
347CONFIG_BLK_DEV_RAM=y
348CONFIG_BLK_DEV_RAM_COUNT=16
349CONFIG_BLK_DEV_RAM_SIZE=4096
350# CONFIG_BLK_DEV_XIP is not set
351# CONFIG_CDROM_PKTCDVD is not set
352# CONFIG_ATA_OVER_ETH is not set
353# CONFIG_BLK_DEV_HD is not set
447# CONFIG_MISC_DEVICES is not set 354# CONFIG_MISC_DEVICES is not set
448CONFIG_HAVE_IDE=y 355CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 356# CONFIG_IDE is not set
@@ -455,48 +362,30 @@ CONFIG_HAVE_IDE=y
455# CONFIG_SCSI is not set 362# CONFIG_SCSI is not set
456# CONFIG_SCSI_DMA is not set 363# CONFIG_SCSI_DMA is not set
457# CONFIG_SCSI_NETLINK is not set 364# CONFIG_SCSI_NETLINK is not set
458# CONFIG_ATA is not set
459# CONFIG_MD is not set 365# CONFIG_MD is not set
460CONFIG_NETDEVICES=y 366CONFIG_NETDEVICES=y
461# CONFIG_NETDEVICES_MULTIQUEUE is not set 367CONFIG_COMPAT_NET_DEV_OPS=y
462# CONFIG_DUMMY is not set 368# CONFIG_DUMMY is not set
463# CONFIG_BONDING is not set 369# CONFIG_BONDING is not set
464# CONFIG_MACVLAN is not set 370# CONFIG_MACVLAN is not set
465# CONFIG_EQUALIZER is not set 371# CONFIG_EQUALIZER is not set
466# CONFIG_TUN is not set 372# CONFIG_TUN is not set
467# CONFIG_VETH is not set 373# CONFIG_VETH is not set
468CONFIG_PHYLIB=y 374# CONFIG_PHYLIB is not set
469
470#
471# MII PHY device drivers
472#
473# CONFIG_MARVELL_PHY is not set
474# CONFIG_DAVICOM_PHY is not set
475# CONFIG_QSEMI_PHY is not set
476# CONFIG_LXT_PHY is not set
477# CONFIG_CICADA_PHY is not set
478# CONFIG_VITESSE_PHY is not set
479CONFIG_SMSC_PHY=y
480# CONFIG_BROADCOM_PHY is not set
481# CONFIG_ICPLUS_PHY is not set
482# CONFIG_REALTEK_PHY is not set
483# CONFIG_NATIONAL_PHY is not set
484# CONFIG_STE10XP is not set
485# CONFIG_LSI_ET1011C_PHY is not set
486# CONFIG_FIXED_PHY is not set
487# CONFIG_MDIO_BITBANG is not set
488CONFIG_NET_ETHERNET=y 375CONFIG_NET_ETHERNET=y
489CONFIG_MII=y 376# CONFIG_MII is not set
490# CONFIG_AX88796 is not set 377# CONFIG_ETHOC is not set
491CONFIG_SMC91X=y 378# CONFIG_DNET is not set
492# CONFIG_DM9000 is not set
493# CONFIG_SMC911X is not set
494CONFIG_SMSC911X=y
495# CONFIG_IBM_NEW_EMAC_ZMII is not set 379# CONFIG_IBM_NEW_EMAC_ZMII is not set
496# CONFIG_IBM_NEW_EMAC_RGMII is not set 380# CONFIG_IBM_NEW_EMAC_RGMII is not set
497# CONFIG_IBM_NEW_EMAC_TAH is not set 381# CONFIG_IBM_NEW_EMAC_TAH is not set
498# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 382# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
383# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
384# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
385# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
499# CONFIG_B44 is not set 386# CONFIG_B44 is not set
387CONFIG_FEC=y
388# CONFIG_FEC2 is not set
500# CONFIG_NETDEV_1000 is not set 389# CONFIG_NETDEV_1000 is not set
501# CONFIG_NETDEV_10000 is not set 390# CONFIG_NETDEV_10000 is not set
502 391
@@ -505,7 +394,10 @@ CONFIG_SMSC911X=y
505# 394#
506# CONFIG_WLAN_PRE80211 is not set 395# CONFIG_WLAN_PRE80211 is not set
507# CONFIG_WLAN_80211 is not set 396# CONFIG_WLAN_80211 is not set
508# CONFIG_IWLWIFI_LEDS is not set 397
398#
399# Enable WiMAX (Networking options) to see the WiMAX drivers
400#
509# CONFIG_WAN is not set 401# CONFIG_WAN is not set
510# CONFIG_PPP is not set 402# CONFIG_PPP is not set
511# CONFIG_SLIP is not set 403# CONFIG_SLIP is not set
@@ -513,6 +405,7 @@ CONFIG_SMSC911X=y
513# CONFIG_NETPOLL is not set 405# CONFIG_NETPOLL is not set
514# CONFIG_NET_POLL_CONTROLLER is not set 406# CONFIG_NET_POLL_CONTROLLER is not set
515# CONFIG_ISDN is not set 407# CONFIG_ISDN is not set
408# CONFIG_PHONE is not set
516 409
517# 410#
518# Input device support 411# Input device support
@@ -540,51 +433,44 @@ CONFIG_DEVKMEM=y
540# 433#
541# Non-8250 serial port support 434# Non-8250 serial port support
542# 435#
543CONFIG_SERIAL_IMX=y
544CONFIG_SERIAL_IMX_CONSOLE=y
545CONFIG_SERIAL_CORE=y 436CONFIG_SERIAL_CORE=y
546CONFIG_SERIAL_CORE_CONSOLE=y 437CONFIG_SERIAL_CORE_CONSOLE=y
547CONFIG_UNIX98_PTYS=y 438CONFIG_SERIAL_MCF=y
548# CONFIG_LEGACY_PTYS is not set 439CONFIG_SERIAL_MCF_BAUDRATE=19200
440CONFIG_SERIAL_MCF_CONSOLE=y
441# CONFIG_UNIX98_PTYS is not set
442CONFIG_LEGACY_PTYS=y
443CONFIG_LEGACY_PTY_COUNT=256
549# CONFIG_IPMI_HANDLER is not set 444# CONFIG_IPMI_HANDLER is not set
550# CONFIG_HW_RANDOM is not set 445CONFIG_HW_RANDOM=y
551# CONFIG_NVRAM is not set 446# CONFIG_HW_RANDOM_TIMERIOMEM is not set
447# CONFIG_GEN_RTC is not set
552# CONFIG_R3964 is not set 448# CONFIG_R3964 is not set
553# CONFIG_RAW_DRIVER is not set 449# CONFIG_RAW_DRIVER is not set
554# CONFIG_TCG_TPM is not set 450# CONFIG_TCG_TPM is not set
555# CONFIG_I2C is not set 451# CONFIG_I2C is not set
556# CONFIG_SPI is not set 452# CONFIG_SPI is not set
557CONFIG_HAVE_GPIO_LIB=y
558
559#
560# GPIO Support
561#
562
563#
564# I2C GPIO expanders:
565#
566
567#
568# SPI GPIO expanders:
569#
570# CONFIG_W1 is not set 453# CONFIG_W1 is not set
571# CONFIG_POWER_SUPPLY is not set 454# CONFIG_POWER_SUPPLY is not set
572# CONFIG_HWMON is not set 455# CONFIG_HWMON is not set
456# CONFIG_THERMAL is not set
457# CONFIG_THERMAL_HWMON is not set
573# CONFIG_WATCHDOG is not set 458# CONFIG_WATCHDOG is not set
459CONFIG_SSB_POSSIBLE=y
574 460
575# 461#
576# Sonics Silicon Backplane 462# Sonics Silicon Backplane
577# 463#
578CONFIG_SSB_POSSIBLE=y
579# CONFIG_SSB is not set 464# CONFIG_SSB is not set
580 465
581# 466#
582# Multifunction device drivers 467# Multifunction device drivers
583# 468#
469# CONFIG_MFD_CORE is not set
584# CONFIG_MFD_SM501 is not set 470# CONFIG_MFD_SM501 is not set
585# CONFIG_MFD_ASIC3 is not set
586# CONFIG_HTC_EGPIO is not set
587# CONFIG_HTC_PASIC3 is not set 471# CONFIG_HTC_PASIC3 is not set
472# CONFIG_MFD_TMIO is not set
473# CONFIG_REGULATOR is not set
588 474
589# 475#
590# Multimedia devices 476# Multimedia devices
@@ -600,7 +486,7 @@ CONFIG_SSB_POSSIBLE=y
600# 486#
601# Multimedia drivers 487# Multimedia drivers
602# 488#
603# CONFIG_DAB is not set 489CONFIG_DAB=y
604 490
605# 491#
606# Graphics support 492# Graphics support
@@ -614,38 +500,45 @@ CONFIG_SSB_POSSIBLE=y
614# Display device support 500# Display device support
615# 501#
616# CONFIG_DISPLAY_SUPPORT is not set 502# CONFIG_DISPLAY_SUPPORT is not set
617
618#
619# Sound
620#
621# CONFIG_SOUND is not set 503# CONFIG_SOUND is not set
622# CONFIG_USB_SUPPORT is not set 504# CONFIG_USB_SUPPORT is not set
623# CONFIG_MMC is not set 505# CONFIG_MMC is not set
506# CONFIG_MEMSTICK is not set
624# CONFIG_NEW_LEDS is not set 507# CONFIG_NEW_LEDS is not set
625CONFIG_RTC_LIB=y 508# CONFIG_ACCESSIBILITY is not set
626# CONFIG_RTC_CLASS is not set 509# CONFIG_RTC_CLASS is not set
510# CONFIG_DMADEVICES is not set
511# CONFIG_AUXDISPLAY is not set
627# CONFIG_UIO is not set 512# CONFIG_UIO is not set
513# CONFIG_STAGING is not set
628 514
629# 515#
630# File systems 516# File systems
631# 517#
632# CONFIG_EXT2_FS is not set 518CONFIG_EXT2_FS=y
519# CONFIG_EXT2_FS_XATTR is not set
633# CONFIG_EXT3_FS is not set 520# CONFIG_EXT3_FS is not set
634# CONFIG_EXT4DEV_FS is not set 521# CONFIG_EXT4_FS is not set
635# CONFIG_REISERFS_FS is not set 522# CONFIG_REISERFS_FS is not set
636# CONFIG_JFS_FS is not set 523# CONFIG_JFS_FS is not set
637# CONFIG_FS_POSIX_ACL is not set 524# CONFIG_FS_POSIX_ACL is not set
525# CONFIG_FILE_LOCKING is not set
638# CONFIG_XFS_FS is not set 526# CONFIG_XFS_FS is not set
639# CONFIG_OCFS2_FS is not set 527# CONFIG_OCFS2_FS is not set
528# CONFIG_BTRFS_FS is not set
640# CONFIG_DNOTIFY is not set 529# CONFIG_DNOTIFY is not set
641CONFIG_INOTIFY=y 530# CONFIG_INOTIFY is not set
642CONFIG_INOTIFY_USER=y
643# CONFIG_QUOTA is not set 531# CONFIG_QUOTA is not set
644# CONFIG_AUTOFS_FS is not set 532# CONFIG_AUTOFS_FS is not set
645# CONFIG_AUTOFS4_FS is not set 533# CONFIG_AUTOFS4_FS is not set
646# CONFIG_FUSE_FS is not set 534# CONFIG_FUSE_FS is not set
647 535
648# 536#
537# Caches
538#
539# CONFIG_FSCACHE is not set
540
541#
649# CD-ROM/DVD Filesystems 542# CD-ROM/DVD Filesystems
650# 543#
651# CONFIG_ISO9660_FS is not set 544# CONFIG_ISO9660_FS is not set
@@ -664,14 +557,10 @@ CONFIG_INOTIFY_USER=y
664CONFIG_PROC_FS=y 557CONFIG_PROC_FS=y
665CONFIG_PROC_SYSCTL=y 558CONFIG_PROC_SYSCTL=y
666CONFIG_SYSFS=y 559CONFIG_SYSFS=y
667CONFIG_TMPFS=y 560# CONFIG_TMPFS is not set
668# CONFIG_TMPFS_POSIX_ACL is not set
669# CONFIG_HUGETLB_PAGE is not set 561# CONFIG_HUGETLB_PAGE is not set
670# CONFIG_CONFIGFS_FS is not set 562# CONFIG_CONFIGFS_FS is not set
671 563CONFIG_MISC_FILESYSTEMS=y
672#
673# Miscellaneous filesystems
674#
675# CONFIG_ADFS_FS is not set 564# CONFIG_ADFS_FS is not set
676# CONFIG_AFFS_FS is not set 565# CONFIG_AFFS_FS is not set
677# CONFIG_HFS_FS is not set 566# CONFIG_HFS_FS is not set
@@ -679,42 +568,23 @@ CONFIG_TMPFS=y
679# CONFIG_BEFS_FS is not set 568# CONFIG_BEFS_FS is not set
680# CONFIG_BFS_FS is not set 569# CONFIG_BFS_FS is not set
681# CONFIG_EFS_FS is not set 570# CONFIG_EFS_FS is not set
682CONFIG_JFFS2_FS=y 571# CONFIG_JFFS2_FS is not set
683CONFIG_JFFS2_FS_DEBUG=0
684CONFIG_JFFS2_FS_WRITEBUFFER=y
685# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
686# CONFIG_JFFS2_SUMMARY is not set
687# CONFIG_JFFS2_FS_XATTR is not set
688# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
689CONFIG_JFFS2_ZLIB=y
690# CONFIG_JFFS2_LZO is not set
691CONFIG_JFFS2_RTIME=y
692# CONFIG_JFFS2_RUBIN is not set
693# CONFIG_CRAMFS is not set 572# CONFIG_CRAMFS is not set
573# CONFIG_SQUASHFS is not set
694# CONFIG_VXFS_FS is not set 574# CONFIG_VXFS_FS is not set
695# CONFIG_MINIX_FS is not set 575# CONFIG_MINIX_FS is not set
576# CONFIG_OMFS_FS is not set
696# CONFIG_HPFS_FS is not set 577# CONFIG_HPFS_FS is not set
697# CONFIG_QNX4FS_FS is not set 578# CONFIG_QNX4FS_FS is not set
698# CONFIG_ROMFS_FS is not set 579CONFIG_ROMFS_FS=y
580# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
581CONFIG_ROMFS_BACKED_BY_MTD=y
582# CONFIG_ROMFS_BACKED_BY_BOTH is not set
583CONFIG_ROMFS_ON_MTD=y
699# CONFIG_SYSV_FS is not set 584# CONFIG_SYSV_FS is not set
700# CONFIG_UFS_FS is not set 585# CONFIG_UFS_FS is not set
701CONFIG_NETWORK_FILESYSTEMS=y 586# CONFIG_NILFS2_FS is not set
702CONFIG_NFS_FS=y 587# CONFIG_NETWORK_FILESYSTEMS is not set
703# CONFIG_NFS_V3 is not set
704# CONFIG_NFS_V4 is not set
705# CONFIG_NFSD is not set
706CONFIG_ROOT_NFS=y
707CONFIG_LOCKD=y
708CONFIG_NFS_COMMON=y
709CONFIG_SUNRPC=y
710# CONFIG_SUNRPC_BIND34 is not set
711# CONFIG_RPCSEC_GSS_KRB5 is not set
712# CONFIG_RPCSEC_GSS_SPKM3 is not set
713# CONFIG_SMB_FS is not set
714# CONFIG_CIFS is not set
715# CONFIG_NCP_FS is not set
716# CONFIG_CODA_FS is not set
717# CONFIG_AFS_FS is not set
718 588
719# 589#
720# Partition Types 590# Partition Types
@@ -728,8 +598,8 @@ CONFIG_MSDOS_PARTITION=y
728# Kernel hacking 598# Kernel hacking
729# 599#
730# CONFIG_PRINTK_TIME is not set 600# CONFIG_PRINTK_TIME is not set
731# CONFIG_ENABLE_WARN_DEPRECATED is not set 601CONFIG_ENABLE_WARN_DEPRECATED=y
732# CONFIG_ENABLE_MUST_CHECK is not set 602CONFIG_ENABLE_MUST_CHECK=y
733CONFIG_FRAME_WARN=1024 603CONFIG_FRAME_WARN=1024
734# CONFIG_MAGIC_SYSRQ is not set 604# CONFIG_MAGIC_SYSRQ is not set
735# CONFIG_UNUSED_SYMBOLS is not set 605# CONFIG_UNUSED_SYMBOLS is not set
@@ -737,33 +607,39 @@ CONFIG_FRAME_WARN=1024
737# CONFIG_HEADERS_CHECK is not set 607# CONFIG_HEADERS_CHECK is not set
738# CONFIG_DEBUG_KERNEL is not set 608# CONFIG_DEBUG_KERNEL is not set
739# CONFIG_DEBUG_BUGVERBOSE is not set 609# CONFIG_DEBUG_BUGVERBOSE is not set
740CONFIG_FRAME_POINTER=y 610# CONFIG_DEBUG_MEMORY_INIT is not set
611# CONFIG_RCU_CPU_STALL_DETECTOR is not set
612# CONFIG_SYSCTL_SYSCALL_CHECK is not set
741# CONFIG_SAMPLES is not set 613# CONFIG_SAMPLES is not set
742# CONFIG_DEBUG_USER is not set 614# CONFIG_FULLDEBUG is not set
615# CONFIG_HIGHPROFILE is not set
616CONFIG_BOOTPARAM=y
617CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
618# CONFIG_NO_KERNEL_MSG is not set
619# CONFIG_BDM_DISABLE is not set
743 620
744# 621#
745# Security options 622# Security options
746# 623#
747# CONFIG_KEYS is not set 624# CONFIG_KEYS is not set
748# CONFIG_SECURITY is not set 625# CONFIG_SECURITY is not set
626# CONFIG_SECURITYFS is not set
749# CONFIG_SECURITY_FILE_CAPABILITIES is not set 627# CONFIG_SECURITY_FILE_CAPABILITIES is not set
750# CONFIG_CRYPTO is not set 628# CONFIG_CRYPTO is not set
629# CONFIG_BINARY_PRINTF is not set
751 630
752# 631#
753# Library routines 632# Library routines
754# 633#
755CONFIG_BITREVERSE=y 634CONFIG_BITREVERSE=y
756# CONFIG_GENERIC_FIND_FIRST_BIT is not set 635CONFIG_GENERIC_FIND_LAST_BIT=y
757# CONFIG_GENERIC_FIND_NEXT_BIT is not set
758# CONFIG_CRC_CCITT is not set 636# CONFIG_CRC_CCITT is not set
759# CONFIG_CRC16 is not set 637# CONFIG_CRC16 is not set
638# CONFIG_CRC_T10DIF is not set
760# CONFIG_CRC_ITU_T is not set 639# CONFIG_CRC_ITU_T is not set
761CONFIG_CRC32=y 640CONFIG_CRC32=y
762# CONFIG_CRC7 is not set 641# CONFIG_CRC7 is not set
763# CONFIG_LIBCRC32C is not set 642# CONFIG_LIBCRC32C is not set
764CONFIG_ZLIB_INFLATE=y
765CONFIG_ZLIB_DEFLATE=y
766CONFIG_PLIST=y
767CONFIG_HAS_IOMEM=y 643CONFIG_HAS_IOMEM=y
768CONFIG_HAS_IOPORT=y
769CONFIG_HAS_DMA=y 644CONFIG_HAS_DMA=y
645CONFIG_NLATTR=y
diff --git a/arch/m68knommu/configs/m5275evb_defconfig b/arch/m68knommu/configs/m5275evb_defconfig
index 0d1256f5addb..dc5c621d419c 100644
--- a/arch/m68knommu/configs/m5275evb_defconfig
+++ b/arch/m68knommu/configs/m5275evb_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.26-rc1 3# Linux kernel version: 2.6.30-rc2
4# Wed Apr 22 23:29:01 2009
4# 5#
5CONFIG_M68K=y 6CONFIG_M68K=y
6# CONFIG_MMU is not set 7# CONFIG_MMU is not set
@@ -15,9 +16,10 @@ CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 16CONFIG_GENERIC_HARDIRQS=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_GENERIC_TIME=y 18CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CMOS_UPDATE=y
18CONFIG_TIME_LOW_RES=y 20CONFIG_TIME_LOW_RES=y
21CONFIG_GENERIC_CLOCKEVENTS=y
19CONFIG_NO_IOPORT=y 22CONFIG_NO_IOPORT=y
20CONFIG_ARCH_SUPPORTS_AOUT=y
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
22 24
23# 25#
@@ -33,10 +35,19 @@ CONFIG_LOCALVERSION_AUTO=y
33# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 36# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
38
39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 47# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 48CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 51# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 53# CONFIG_NAMESPACES is not set
@@ -44,44 +55,37 @@ CONFIG_LOG_BUF_SHIFT=14
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 55# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
46CONFIG_EMBEDDED=y 57CONFIG_EMBEDDED=y
47# CONFIG_UID16 is not set 58CONFIG_UID16=y
48# CONFIG_SYSCTL_SYSCALL is not set 59CONFIG_SYSCTL_SYSCALL=y
49# CONFIG_KALLSYMS is not set 60# CONFIG_KALLSYMS is not set
61# CONFIG_STRIP_ASM_SYMS is not set
50# CONFIG_HOTPLUG is not set 62# CONFIG_HOTPLUG is not set
51CONFIG_PRINTK=y 63CONFIG_PRINTK=y
52CONFIG_BUG=y 64CONFIG_BUG=y
53CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
54# CONFIG_COMPAT_BRK is not set
55CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
56# CONFIG_FUTEX is not set 67# CONFIG_FUTEX is not set
57# CONFIG_EPOLL is not set 68# CONFIG_EPOLL is not set
58# CONFIG_SIGNALFD is not set 69# CONFIG_SIGNALFD is not set
59# CONFIG_TIMERFD is not set 70# CONFIG_TIMERFD is not set
60# CONFIG_EVENTFD is not set 71# CONFIG_EVENTFD is not set
72# CONFIG_AIO is not set
61# CONFIG_VM_EVENT_COUNTERS is not set 73# CONFIG_VM_EVENT_COUNTERS is not set
62CONFIG_SLAB=y 74# CONFIG_SLUB_DEBUG is not set
63# CONFIG_SLUB is not set 75CONFIG_COMPAT_BRK=y
76# CONFIG_SLAB is not set
77CONFIG_SLUB=y
64# CONFIG_SLOB is not set 78# CONFIG_SLOB is not set
65# CONFIG_PROFILING is not set 79# CONFIG_PROFILING is not set
66# CONFIG_MARKERS is not set 80# CONFIG_MARKERS is not set
67# CONFIG_HAVE_OPROFILE is not set 81# CONFIG_SLOW_WORK is not set
68# CONFIG_HAVE_KPROBES is not set 82# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
69# CONFIG_HAVE_KRETPROBES is not set
70# CONFIG_HAVE_DMA_ATTRS is not set
71CONFIG_SLABINFO=y
72CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0 83CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y 84# CONFIG_MODULES is not set
75CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set
78# CONFIG_MODULE_SRCVERSION_ALL is not set
79# CONFIG_KMOD is not set
80CONFIG_BLOCK=y 85CONFIG_BLOCK=y
81# CONFIG_LBD is not set 86# CONFIG_LBD is not set
82# CONFIG_BLK_DEV_IO_TRACE is not set
83# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set 87# CONFIG_BLK_DEV_BSG is not set
88# CONFIG_BLK_DEV_INTEGRITY is not set
85 89
86# 90#
87# IO Schedulers 91# IO Schedulers
@@ -95,7 +99,7 @@ CONFIG_IOSCHED_NOOP=y
95# CONFIG_DEFAULT_CFQ is not set 99# CONFIG_DEFAULT_CFQ is not set
96CONFIG_DEFAULT_NOOP=y 100CONFIG_DEFAULT_NOOP=y
97CONFIG_DEFAULT_IOSCHED="noop" 101CONFIG_DEFAULT_IOSCHED="noop"
98CONFIG_CLASSIC_RCU=y 102# CONFIG_FREEZER is not set
99 103
100# 104#
101# Processor type and features 105# Processor type and features
@@ -148,44 +152,39 @@ CONFIG_RAMAUTOBIT=y
148# CONFIG_ROM is not set 152# CONFIG_ROM is not set
149CONFIG_RAMKERNEL=y 153CONFIG_RAMKERNEL=y
150# CONFIG_ROMKERNEL is not set 154# CONFIG_ROMKERNEL is not set
155CONFIG_PREEMPT_NONE=y
156# CONFIG_PREEMPT_VOLUNTARY is not set
157# CONFIG_PREEMPT is not set
158# CONFIG_NO_HZ is not set
159# CONFIG_HIGH_RES_TIMERS is not set
160CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
151CONFIG_SELECT_MEMORY_MODEL=y 161CONFIG_SELECT_MEMORY_MODEL=y
152CONFIG_FLATMEM_MANUAL=y 162CONFIG_FLATMEM_MANUAL=y
153# CONFIG_DISCONTIGMEM_MANUAL is not set 163# CONFIG_DISCONTIGMEM_MANUAL is not set
154# CONFIG_SPARSEMEM_MANUAL is not set 164# CONFIG_SPARSEMEM_MANUAL is not set
155CONFIG_FLATMEM=y 165CONFIG_FLATMEM=y
156CONFIG_FLAT_NODE_MEM_MAP=y 166CONFIG_FLAT_NODE_MEM_MAP=y
157# CONFIG_SPARSEMEM_STATIC is not set
158# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
159CONFIG_PAGEFLAGS_EXTENDED=y 167CONFIG_PAGEFLAGS_EXTENDED=y
160CONFIG_SPLIT_PTLOCK_CPUS=4 168CONFIG_SPLIT_PTLOCK_CPUS=4
161# CONFIG_RESOURCES_64BIT is not set 169# CONFIG_PHYS_ADDR_T_64BIT is not set
162CONFIG_ZONE_DMA_FLAG=1 170CONFIG_ZONE_DMA_FLAG=1
163CONFIG_VIRT_TO_BUS=y 171CONFIG_VIRT_TO_BUS=y
172# CONFIG_UNEVICTABLE_LRU is not set
164CONFIG_ISA_DMA_API=y 173CONFIG_ISA_DMA_API=y
165 174
166# 175#
167# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
168#
169# CONFIG_PCI is not set
170# CONFIG_ARCH_SUPPORTS_MSI is not set
171
172#
173# Executable file formats 176# Executable file formats
174# 177#
175CONFIG_BINFMT_FLAT=y 178CONFIG_BINFMT_FLAT=y
176# CONFIG_BINFMT_ZFLAT is not set 179# CONFIG_BINFMT_ZFLAT is not set
177# CONFIG_BINFMT_SHARED_FLAT is not set 180# CONFIG_BINFMT_SHARED_FLAT is not set
178# CONFIG_BINFMT_AOUT is not set 181# CONFIG_HAVE_AOUT is not set
179# CONFIG_BINFMT_MISC is not set 182# CONFIG_BINFMT_MISC is not set
180 183
181# 184#
182# Power management options 185# Power management options
183# 186#
184# CONFIG_PM is not set 187# CONFIG_PM is not set
185
186#
187# Networking
188#
189CONFIG_NET=y 188CONFIG_NET=y
190 189
191# 190#
@@ -226,6 +225,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
226# CONFIG_TIPC is not set 225# CONFIG_TIPC is not set
227# CONFIG_ATM is not set 226# CONFIG_ATM is not set
228# CONFIG_BRIDGE is not set 227# CONFIG_BRIDGE is not set
228# CONFIG_NET_DSA is not set
229# CONFIG_VLAN_8021Q is not set 229# CONFIG_VLAN_8021Q is not set
230# CONFIG_DECNET is not set 230# CONFIG_DECNET is not set
231# CONFIG_LLC2 is not set 231# CONFIG_LLC2 is not set
@@ -235,7 +235,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
235# CONFIG_LAPB is not set 235# CONFIG_LAPB is not set
236# CONFIG_ECONET is not set 236# CONFIG_ECONET is not set
237# CONFIG_WAN_ROUTER is not set 237# CONFIG_WAN_ROUTER is not set
238# CONFIG_PHONET is not set
238# CONFIG_NET_SCHED is not set 239# CONFIG_NET_SCHED is not set
240# CONFIG_DCB is not set
239 241
240# 242#
241# Network testing 243# Network testing
@@ -246,14 +248,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
246# CONFIG_IRDA is not set 248# CONFIG_IRDA is not set
247# CONFIG_BT is not set 249# CONFIG_BT is not set
248# CONFIG_AF_RXRPC is not set 250# CONFIG_AF_RXRPC is not set
249 251# CONFIG_WIRELESS is not set
250# 252# CONFIG_WIMAX is not set
251# Wireless
252#
253# CONFIG_CFG80211 is not set
254# CONFIG_WIRELESS_EXT is not set
255# CONFIG_MAC80211 is not set
256# CONFIG_IEEE80211 is not set
257# CONFIG_RFKILL is not set 253# CONFIG_RFKILL is not set
258# CONFIG_NET_9P is not set 254# CONFIG_NET_9P is not set
259 255
@@ -333,6 +329,11 @@ CONFIG_MTD_UCLINUX=y
333# CONFIG_MTD_ONENAND is not set 329# CONFIG_MTD_ONENAND is not set
334 330
335# 331#
332# LPDDR flash memory drivers
333#
334# CONFIG_MTD_LPDDR is not set
335
336#
336# UBI - Unsorted block images 337# UBI - Unsorted block images
337# 338#
338# CONFIG_MTD_UBI is not set 339# CONFIG_MTD_UBI is not set
@@ -347,6 +348,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
347# CONFIG_BLK_DEV_XIP is not set 348# CONFIG_BLK_DEV_XIP is not set
348# CONFIG_CDROM_PKTCDVD is not set 349# CONFIG_CDROM_PKTCDVD is not set
349# CONFIG_ATA_OVER_ETH is not set 350# CONFIG_ATA_OVER_ETH is not set
351# CONFIG_BLK_DEV_HD is not set
350# CONFIG_MISC_DEVICES is not set 352# CONFIG_MISC_DEVICES is not set
351CONFIG_HAVE_IDE=y 353CONFIG_HAVE_IDE=y
352# CONFIG_IDE is not set 354# CONFIG_IDE is not set
@@ -360,7 +362,7 @@ CONFIG_HAVE_IDE=y
360# CONFIG_SCSI_NETLINK is not set 362# CONFIG_SCSI_NETLINK is not set
361# CONFIG_MD is not set 363# CONFIG_MD is not set
362CONFIG_NETDEVICES=y 364CONFIG_NETDEVICES=y
363# CONFIG_NETDEVICES_MULTIQUEUE is not set 365CONFIG_COMPAT_NET_DEV_OPS=y
364# CONFIG_DUMMY is not set 366# CONFIG_DUMMY is not set
365# CONFIG_BONDING is not set 367# CONFIG_BONDING is not set
366# CONFIG_MACVLAN is not set 368# CONFIG_MACVLAN is not set
@@ -370,10 +372,15 @@ CONFIG_NETDEVICES=y
370# CONFIG_PHYLIB is not set 372# CONFIG_PHYLIB is not set
371CONFIG_NET_ETHERNET=y 373CONFIG_NET_ETHERNET=y
372# CONFIG_MII is not set 374# CONFIG_MII is not set
375# CONFIG_ETHOC is not set
376# CONFIG_DNET is not set
373# CONFIG_IBM_NEW_EMAC_ZMII is not set 377# CONFIG_IBM_NEW_EMAC_ZMII is not set
374# CONFIG_IBM_NEW_EMAC_RGMII is not set 378# CONFIG_IBM_NEW_EMAC_RGMII is not set
375# CONFIG_IBM_NEW_EMAC_TAH is not set 379# CONFIG_IBM_NEW_EMAC_TAH is not set
376# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 380# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
381# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
382# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
383# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
377# CONFIG_B44 is not set 384# CONFIG_B44 is not set
378CONFIG_FEC=y 385CONFIG_FEC=y
379CONFIG_FEC2=y 386CONFIG_FEC2=y
@@ -385,8 +392,10 @@ CONFIG_FEC2=y
385# 392#
386# CONFIG_WLAN_PRE80211 is not set 393# CONFIG_WLAN_PRE80211 is not set
387# CONFIG_WLAN_80211 is not set 394# CONFIG_WLAN_80211 is not set
388# CONFIG_IWLWIFI is not set 395
389# CONFIG_IWLWIFI_LEDS is not set 396#
397# Enable WiMAX (Networking options) to see the WiMAX drivers
398#
390# CONFIG_WAN is not set 399# CONFIG_WAN is not set
391CONFIG_PPP=y 400CONFIG_PPP=y
392# CONFIG_PPP_MULTILINK is not set 401# CONFIG_PPP_MULTILINK is not set
@@ -421,7 +430,7 @@ CONFIG_SLHC=y
421# Character devices 430# Character devices
422# 431#
423# CONFIG_VT is not set 432# CONFIG_VT is not set
424# CONFIG_DEVKMEM is not set 433CONFIG_DEVKMEM=y
425# CONFIG_SERIAL_NONSTANDARD is not set 434# CONFIG_SERIAL_NONSTANDARD is not set
426 435
427# 436#
@@ -434,7 +443,6 @@ CONFIG_SLHC=y
434# 443#
435CONFIG_SERIAL_CORE=y 444CONFIG_SERIAL_CORE=y
436CONFIG_SERIAL_CORE_CONSOLE=y 445CONFIG_SERIAL_CORE_CONSOLE=y
437# CONFIG_SERIAL_COLDFIRE is not set
438CONFIG_SERIAL_MCF=y 446CONFIG_SERIAL_MCF=y
439CONFIG_SERIAL_MCF_BAUDRATE=19200 447CONFIG_SERIAL_MCF_BAUDRATE=19200
440CONFIG_SERIAL_MCF_CONSOLE=y 448CONFIG_SERIAL_MCF_CONSOLE=y
@@ -442,7 +450,8 @@ CONFIG_SERIAL_MCF_CONSOLE=y
442CONFIG_LEGACY_PTYS=y 450CONFIG_LEGACY_PTYS=y
443CONFIG_LEGACY_PTY_COUNT=256 451CONFIG_LEGACY_PTY_COUNT=256
444# CONFIG_IPMI_HANDLER is not set 452# CONFIG_IPMI_HANDLER is not set
445# CONFIG_HW_RANDOM is not set 453CONFIG_HW_RANDOM=y
454# CONFIG_HW_RANDOM_TIMERIOMEM is not set
446# CONFIG_GEN_RTC is not set 455# CONFIG_GEN_RTC is not set
447# CONFIG_R3964 is not set 456# CONFIG_R3964 is not set
448# CONFIG_RAW_DRIVER is not set 457# CONFIG_RAW_DRIVER is not set
@@ -453,19 +462,23 @@ CONFIG_LEGACY_PTY_COUNT=256
453# CONFIG_POWER_SUPPLY is not set 462# CONFIG_POWER_SUPPLY is not set
454# CONFIG_HWMON is not set 463# CONFIG_HWMON is not set
455# CONFIG_THERMAL is not set 464# CONFIG_THERMAL is not set
465# CONFIG_THERMAL_HWMON is not set
456# CONFIG_WATCHDOG is not set 466# CONFIG_WATCHDOG is not set
467CONFIG_SSB_POSSIBLE=y
457 468
458# 469#
459# Sonics Silicon Backplane 470# Sonics Silicon Backplane
460# 471#
461CONFIG_SSB_POSSIBLE=y
462# CONFIG_SSB is not set 472# CONFIG_SSB is not set
463 473
464# 474#
465# Multifunction device drivers 475# Multifunction device drivers
466# 476#
477# CONFIG_MFD_CORE is not set
467# CONFIG_MFD_SM501 is not set 478# CONFIG_MFD_SM501 is not set
468# CONFIG_HTC_PASIC3 is not set 479# CONFIG_HTC_PASIC3 is not set
480# CONFIG_MFD_TMIO is not set
481# CONFIG_REGULATOR is not set
469 482
470# 483#
471# Multimedia devices 484# Multimedia devices
@@ -476,6 +489,7 @@ CONFIG_SSB_POSSIBLE=y
476# 489#
477# CONFIG_VIDEO_DEV is not set 490# CONFIG_VIDEO_DEV is not set
478# CONFIG_DVB_CORE is not set 491# CONFIG_DVB_CORE is not set
492# CONFIG_VIDEO_MEDIA is not set
479 493
480# 494#
481# Multimedia drivers 495# Multimedia drivers
@@ -494,10 +508,6 @@ CONFIG_DAB=y
494# Display device support 508# Display device support
495# 509#
496# CONFIG_DISPLAY_SUPPORT is not set 510# CONFIG_DISPLAY_SUPPORT is not set
497
498#
499# Sound
500#
501# CONFIG_SOUND is not set 511# CONFIG_SOUND is not set
502# CONFIG_USB_SUPPORT is not set 512# CONFIG_USB_SUPPORT is not set
503# CONFIG_MMC is not set 513# CONFIG_MMC is not set
@@ -505,7 +515,10 @@ CONFIG_DAB=y
505# CONFIG_NEW_LEDS is not set 515# CONFIG_NEW_LEDS is not set
506# CONFIG_ACCESSIBILITY is not set 516# CONFIG_ACCESSIBILITY is not set
507# CONFIG_RTC_CLASS is not set 517# CONFIG_RTC_CLASS is not set
518# CONFIG_DMADEVICES is not set
519# CONFIG_AUXDISPLAY is not set
508# CONFIG_UIO is not set 520# CONFIG_UIO is not set
521# CONFIG_STAGING is not set
509 522
510# 523#
511# File systems 524# File systems
@@ -513,12 +526,14 @@ CONFIG_DAB=y
513CONFIG_EXT2_FS=y 526CONFIG_EXT2_FS=y
514# CONFIG_EXT2_FS_XATTR is not set 527# CONFIG_EXT2_FS_XATTR is not set
515# CONFIG_EXT3_FS is not set 528# CONFIG_EXT3_FS is not set
516# CONFIG_EXT4DEV_FS is not set 529# CONFIG_EXT4_FS is not set
517# CONFIG_REISERFS_FS is not set 530# CONFIG_REISERFS_FS is not set
518# CONFIG_JFS_FS is not set 531# CONFIG_JFS_FS is not set
519# CONFIG_FS_POSIX_ACL is not set 532# CONFIG_FS_POSIX_ACL is not set
533# CONFIG_FILE_LOCKING is not set
520# CONFIG_XFS_FS is not set 534# CONFIG_XFS_FS is not set
521# CONFIG_OCFS2_FS is not set 535# CONFIG_OCFS2_FS is not set
536# CONFIG_BTRFS_FS is not set
522# CONFIG_DNOTIFY is not set 537# CONFIG_DNOTIFY is not set
523# CONFIG_INOTIFY is not set 538# CONFIG_INOTIFY is not set
524# CONFIG_QUOTA is not set 539# CONFIG_QUOTA is not set
@@ -527,6 +542,11 @@ CONFIG_EXT2_FS=y
527# CONFIG_FUSE_FS is not set 542# CONFIG_FUSE_FS is not set
528 543
529# 544#
545# Caches
546#
547# CONFIG_FSCACHE is not set
548
549#
530# CD-ROM/DVD Filesystems 550# CD-ROM/DVD Filesystems
531# 551#
532# CONFIG_ISO9660_FS is not set 552# CONFIG_ISO9660_FS is not set
@@ -548,10 +568,7 @@ CONFIG_SYSFS=y
548# CONFIG_TMPFS is not set 568# CONFIG_TMPFS is not set
549# CONFIG_HUGETLB_PAGE is not set 569# CONFIG_HUGETLB_PAGE is not set
550# CONFIG_CONFIGFS_FS is not set 570# CONFIG_CONFIGFS_FS is not set
551 571CONFIG_MISC_FILESYSTEMS=y
552#
553# Miscellaneous filesystems
554#
555# CONFIG_ADFS_FS is not set 572# CONFIG_ADFS_FS is not set
556# CONFIG_AFFS_FS is not set 573# CONFIG_AFFS_FS is not set
557# CONFIG_HFS_FS is not set 574# CONFIG_HFS_FS is not set
@@ -561,21 +578,21 @@ CONFIG_SYSFS=y
561# CONFIG_EFS_FS is not set 578# CONFIG_EFS_FS is not set
562# CONFIG_JFFS2_FS is not set 579# CONFIG_JFFS2_FS is not set
563# CONFIG_CRAMFS is not set 580# CONFIG_CRAMFS is not set
581# CONFIG_SQUASHFS is not set
564# CONFIG_VXFS_FS is not set 582# CONFIG_VXFS_FS is not set
565# CONFIG_MINIX_FS is not set 583# CONFIG_MINIX_FS is not set
584# CONFIG_OMFS_FS is not set
566# CONFIG_HPFS_FS is not set 585# CONFIG_HPFS_FS is not set
567# CONFIG_QNX4FS_FS is not set 586# CONFIG_QNX4FS_FS is not set
568CONFIG_ROMFS_FS=y 587CONFIG_ROMFS_FS=y
588# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
589CONFIG_ROMFS_BACKED_BY_MTD=y
590# CONFIG_ROMFS_BACKED_BY_BOTH is not set
591CONFIG_ROMFS_ON_MTD=y
569# CONFIG_SYSV_FS is not set 592# CONFIG_SYSV_FS is not set
570# CONFIG_UFS_FS is not set 593# CONFIG_UFS_FS is not set
571CONFIG_NETWORK_FILESYSTEMS=y 594# CONFIG_NILFS2_FS is not set
572# CONFIG_NFS_FS is not set 595# CONFIG_NETWORK_FILESYSTEMS is not set
573# CONFIG_NFSD is not set
574# CONFIG_SMB_FS is not set
575# CONFIG_CIFS is not set
576# CONFIG_NCP_FS is not set
577# CONFIG_CODA_FS is not set
578# CONFIG_AFS_FS is not set
579 596
580# 597#
581# Partition Types 598# Partition Types
@@ -598,10 +615,14 @@ CONFIG_FRAME_WARN=1024
598# CONFIG_HEADERS_CHECK is not set 615# CONFIG_HEADERS_CHECK is not set
599# CONFIG_DEBUG_KERNEL is not set 616# CONFIG_DEBUG_KERNEL is not set
600# CONFIG_DEBUG_BUGVERBOSE is not set 617# CONFIG_DEBUG_BUGVERBOSE is not set
618# CONFIG_DEBUG_MEMORY_INIT is not set
619# CONFIG_RCU_CPU_STALL_DETECTOR is not set
620CONFIG_SYSCTL_SYSCALL_CHECK=y
601# CONFIG_SAMPLES is not set 621# CONFIG_SAMPLES is not set
602# CONFIG_FULLDEBUG is not set 622# CONFIG_FULLDEBUG is not set
603# CONFIG_HIGHPROFILE is not set 623# CONFIG_HIGHPROFILE is not set
604# CONFIG_BOOTPARAM is not set 624CONFIG_BOOTPARAM=y
625CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
605# CONFIG_NO_KERNEL_MSG is not set 626# CONFIG_NO_KERNEL_MSG is not set
606# CONFIG_BDM_DISABLE is not set 627# CONFIG_BDM_DISABLE is not set
607 628
@@ -610,18 +631,22 @@ CONFIG_FRAME_WARN=1024
610# 631#
611# CONFIG_KEYS is not set 632# CONFIG_KEYS is not set
612# CONFIG_SECURITY is not set 633# CONFIG_SECURITY is not set
634# CONFIG_SECURITYFS is not set
613# CONFIG_SECURITY_FILE_CAPABILITIES is not set 635# CONFIG_SECURITY_FILE_CAPABILITIES is not set
614# CONFIG_CRYPTO is not set 636# CONFIG_CRYPTO is not set
637# CONFIG_BINARY_PRINTF is not set
615 638
616# 639#
617# Library routines 640# Library routines
618# 641#
619# CONFIG_GENERIC_FIND_FIRST_BIT is not set 642CONFIG_GENERIC_FIND_LAST_BIT=y
620# CONFIG_CRC_CCITT is not set 643# CONFIG_CRC_CCITT is not set
621# CONFIG_CRC16 is not set 644# CONFIG_CRC16 is not set
645# CONFIG_CRC_T10DIF is not set
622# CONFIG_CRC_ITU_T is not set 646# CONFIG_CRC_ITU_T is not set
623# CONFIG_CRC32 is not set 647# CONFIG_CRC32 is not set
624# CONFIG_CRC7 is not set 648# CONFIG_CRC7 is not set
625# CONFIG_LIBCRC32C is not set 649# CONFIG_LIBCRC32C is not set
626CONFIG_HAS_IOMEM=y 650CONFIG_HAS_IOMEM=y
627CONFIG_HAS_DMA=y 651CONFIG_HAS_DMA=y
652CONFIG_NLATTR=y
diff --git a/arch/m68knommu/configs/m5307c3_defconfig b/arch/m68knommu/configs/m5307c3_defconfig
index fe2acdfa4d76..3a3f6733ae43 100644
--- a/arch/m68knommu/configs/m5307c3_defconfig
+++ b/arch/m68knommu/configs/m5307c3_defconfig
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc1 3# Linux kernel version: 2.6.30-rc2
4# 4#
5CONFIG_M68K=y 5CONFIG_M68K=y
6# CONFIG_MMU is not set 6# CONFIG_MMU is not set
@@ -15,9 +15,10 @@ CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_HARDIRQS=y 15CONFIG_GENERIC_HARDIRQS=y
16CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
17CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_CMOS_UPDATE=y
18CONFIG_TIME_LOW_RES=y 19CONFIG_TIME_LOW_RES=y
20# CONFIG_GENERIC_CLOCKEVENTS is not set
19CONFIG_NO_IOPORT=y 21CONFIG_NO_IOPORT=y
20CONFIG_ARCH_SUPPORTS_AOUT=y
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
22 23
23# 24#
@@ -33,10 +34,21 @@ CONFIG_LOCALVERSION_AUTO=y
33# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 48# CONFIG_GROUP_SCHED is not set
49# CONFIG_USER_SCHED is not set
50# CONFIG_CGROUP_SCHED is not set
51# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 52# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 54# CONFIG_NAMESPACES is not set
@@ -44,44 +56,37 @@ CONFIG_LOG_BUF_SHIFT=14
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 56# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
46CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
47# CONFIG_UID16 is not set 59CONFIG_UID16=y
48# CONFIG_SYSCTL_SYSCALL is not set 60CONFIG_SYSCTL_SYSCALL=y
49# CONFIG_KALLSYMS is not set 61# CONFIG_KALLSYMS is not set
62# CONFIG_STRIP_ASM_SYMS is not set
50# CONFIG_HOTPLUG is not set 63# CONFIG_HOTPLUG is not set
51CONFIG_PRINTK=y 64CONFIG_PRINTK=y
52CONFIG_BUG=y 65CONFIG_BUG=y
53CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
54# CONFIG_COMPAT_BRK is not set
55CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
56# CONFIG_FUTEX is not set 68# CONFIG_FUTEX is not set
57# CONFIG_EPOLL is not set 69# CONFIG_EPOLL is not set
58# CONFIG_SIGNALFD is not set 70# CONFIG_SIGNALFD is not set
59# CONFIG_TIMERFD is not set 71# CONFIG_TIMERFD is not set
60# CONFIG_EVENTFD is not set 72# CONFIG_EVENTFD is not set
73# CONFIG_AIO is not set
61# CONFIG_VM_EVENT_COUNTERS is not set 74# CONFIG_VM_EVENT_COUNTERS is not set
62CONFIG_SLAB=y 75# CONFIG_SLUB_DEBUG is not set
63# CONFIG_SLUB is not set 76CONFIG_COMPAT_BRK=y
77# CONFIG_SLAB is not set
78CONFIG_SLUB=y
64# CONFIG_SLOB is not set 79# CONFIG_SLOB is not set
65# CONFIG_PROFILING is not set 80# CONFIG_PROFILING is not set
66# CONFIG_MARKERS is not set 81# CONFIG_MARKERS is not set
67# CONFIG_HAVE_OPROFILE is not set 82# CONFIG_SLOW_WORK is not set
68# CONFIG_HAVE_KPROBES is not set 83# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
69# CONFIG_HAVE_KRETPROBES is not set
70# CONFIG_HAVE_DMA_ATTRS is not set
71CONFIG_SLABINFO=y
72CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0 84CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y 85# CONFIG_MODULES is not set
75CONFIG_MODULE_UNLOAD=y
76# CONFIG_MODULE_FORCE_UNLOAD is not set
77# CONFIG_MODVERSIONS is not set
78# CONFIG_MODULE_SRCVERSION_ALL is not set
79# CONFIG_KMOD is not set
80CONFIG_BLOCK=y 86CONFIG_BLOCK=y
81# CONFIG_LBD is not set 87# CONFIG_LBD is not set
82# CONFIG_BLK_DEV_IO_TRACE is not set
83# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set 88# CONFIG_BLK_DEV_BSG is not set
89# CONFIG_BLK_DEV_INTEGRITY is not set
85 90
86# 91#
87# IO Schedulers 92# IO Schedulers
@@ -95,7 +100,7 @@ CONFIG_IOSCHED_NOOP=y
95# CONFIG_DEFAULT_CFQ is not set 100# CONFIG_DEFAULT_CFQ is not set
96CONFIG_DEFAULT_NOOP=y 101CONFIG_DEFAULT_NOOP=y
97CONFIG_DEFAULT_IOSCHED="noop" 102CONFIG_DEFAULT_IOSCHED="noop"
98CONFIG_CLASSIC_RCU=y 103# CONFIG_FREEZER is not set
99 104
100# 105#
101# Processor type and features 106# Processor type and features
@@ -127,12 +132,11 @@ CONFIG_CLOCK_DIV=2
127# 132#
128# CONFIG_ARN5307 is not set 133# CONFIG_ARN5307 is not set
129CONFIG_M5307C3=y 134CONFIG_M5307C3=y
130# CONFIG_eLIA is not set
131# CONFIG_SECUREEDGEMP3 is not set 135# CONFIG_SECUREEDGEMP3 is not set
132# CONFIG_CLEOPATRA is not set 136# CONFIG_CLEOPATRA is not set
133# CONFIG_NETtel is not set 137# CONFIG_NETtel is not set
134CONFIG_FREESCALE=y 138CONFIG_FREESCALE=y
135# CONFIG_4KSTACKS is not set 139CONFIG_4KSTACKS=y
136CONFIG_HZ=100 140CONFIG_HZ=100
137 141
138# 142#
@@ -153,45 +157,36 @@ CONFIG_RAMAUTOBIT=y
153# CONFIG_ROM is not set 157# CONFIG_ROM is not set
154CONFIG_RAMKERNEL=y 158CONFIG_RAMKERNEL=y
155# CONFIG_ROMKERNEL is not set 159# CONFIG_ROMKERNEL is not set
160CONFIG_PREEMPT_NONE=y
161# CONFIG_PREEMPT_VOLUNTARY is not set
162# CONFIG_PREEMPT is not set
156CONFIG_SELECT_MEMORY_MODEL=y 163CONFIG_SELECT_MEMORY_MODEL=y
157CONFIG_FLATMEM_MANUAL=y 164CONFIG_FLATMEM_MANUAL=y
158# CONFIG_DISCONTIGMEM_MANUAL is not set 165# CONFIG_DISCONTIGMEM_MANUAL is not set
159# CONFIG_SPARSEMEM_MANUAL is not set 166# CONFIG_SPARSEMEM_MANUAL is not set
160CONFIG_FLATMEM=y 167CONFIG_FLATMEM=y
161CONFIG_FLAT_NODE_MEM_MAP=y 168CONFIG_FLAT_NODE_MEM_MAP=y
162# CONFIG_SPARSEMEM_STATIC is not set
163# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
164CONFIG_PAGEFLAGS_EXTENDED=y 169CONFIG_PAGEFLAGS_EXTENDED=y
165CONFIG_SPLIT_PTLOCK_CPUS=4 170CONFIG_SPLIT_PTLOCK_CPUS=4
166# CONFIG_RESOURCES_64BIT is not set 171# CONFIG_PHYS_ADDR_T_64BIT is not set
167CONFIG_ZONE_DMA_FLAG=1 172CONFIG_ZONE_DMA_FLAG=1
168CONFIG_VIRT_TO_BUS=y 173CONFIG_VIRT_TO_BUS=y
174# CONFIG_UNEVICTABLE_LRU is not set
169CONFIG_ISA_DMA_API=y 175CONFIG_ISA_DMA_API=y
170 176
171# 177#
172# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
173#
174# CONFIG_PCI is not set
175# CONFIG_COMEMPCI is not set
176# CONFIG_ARCH_SUPPORTS_MSI is not set
177
178#
179# Executable file formats 178# Executable file formats
180# 179#
181CONFIG_BINFMT_FLAT=y 180CONFIG_BINFMT_FLAT=y
182# CONFIG_BINFMT_ZFLAT is not set 181# CONFIG_BINFMT_ZFLAT is not set
183# CONFIG_BINFMT_SHARED_FLAT is not set 182# CONFIG_BINFMT_SHARED_FLAT is not set
184# CONFIG_BINFMT_AOUT is not set 183# CONFIG_HAVE_AOUT is not set
185# CONFIG_BINFMT_MISC is not set 184# CONFIG_BINFMT_MISC is not set
186 185
187# 186#
188# Power management options 187# Power management options
189# 188#
190# CONFIG_PM is not set 189# CONFIG_PM is not set
191
192#
193# Networking
194#
195CONFIG_NET=y 190CONFIG_NET=y
196 191
197# 192#
@@ -232,6 +227,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
232# CONFIG_TIPC is not set 227# CONFIG_TIPC is not set
233# CONFIG_ATM is not set 228# CONFIG_ATM is not set
234# CONFIG_BRIDGE is not set 229# CONFIG_BRIDGE is not set
230# CONFIG_NET_DSA is not set
235# CONFIG_VLAN_8021Q is not set 231# CONFIG_VLAN_8021Q is not set
236# CONFIG_DECNET is not set 232# CONFIG_DECNET is not set
237# CONFIG_LLC2 is not set 233# CONFIG_LLC2 is not set
@@ -241,7 +237,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
241# CONFIG_LAPB is not set 237# CONFIG_LAPB is not set
242# CONFIG_ECONET is not set 238# CONFIG_ECONET is not set
243# CONFIG_WAN_ROUTER is not set 239# CONFIG_WAN_ROUTER is not set
240# CONFIG_PHONET is not set
244# CONFIG_NET_SCHED is not set 241# CONFIG_NET_SCHED is not set
242# CONFIG_DCB is not set
245 243
246# 244#
247# Network testing 245# Network testing
@@ -252,14 +250,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
252# CONFIG_IRDA is not set 250# CONFIG_IRDA is not set
253# CONFIG_BT is not set 251# CONFIG_BT is not set
254# CONFIG_AF_RXRPC is not set 252# CONFIG_AF_RXRPC is not set
255 253# CONFIG_WIRELESS is not set
256# 254# CONFIG_WIMAX is not set
257# Wireless
258#
259# CONFIG_CFG80211 is not set
260# CONFIG_WIRELESS_EXT is not set
261# CONFIG_MAC80211 is not set
262# CONFIG_IEEE80211 is not set
263# CONFIG_RFKILL is not set 255# CONFIG_RFKILL is not set
264# CONFIG_NET_9P is not set 256# CONFIG_NET_9P is not set
265 257
@@ -274,7 +266,79 @@ CONFIG_STANDALONE=y
274CONFIG_PREVENT_FIRMWARE_BUILD=y 266CONFIG_PREVENT_FIRMWARE_BUILD=y
275# CONFIG_SYS_HYPERVISOR is not set 267# CONFIG_SYS_HYPERVISOR is not set
276# CONFIG_CONNECTOR is not set 268# CONFIG_CONNECTOR is not set
277# CONFIG_MTD is not set 269CONFIG_MTD=y
270# CONFIG_MTD_DEBUG is not set
271# CONFIG_MTD_CONCAT is not set
272CONFIG_MTD_PARTITIONS=y
273# CONFIG_MTD_REDBOOT_PARTS is not set
274# CONFIG_MTD_CMDLINE_PARTS is not set
275# CONFIG_MTD_AR7_PARTS is not set
276
277#
278# User Modules And Translation Layers
279#
280CONFIG_MTD_CHAR=y
281CONFIG_MTD_BLKDEVS=y
282CONFIG_MTD_BLOCK=y
283# CONFIG_FTL is not set
284# CONFIG_NFTL is not set
285# CONFIG_INFTL is not set
286# CONFIG_RFD_FTL is not set
287# CONFIG_SSFDC is not set
288# CONFIG_MTD_OOPS is not set
289
290#
291# RAM/ROM/Flash chip drivers
292#
293# CONFIG_MTD_CFI is not set
294# CONFIG_MTD_JEDECPROBE is not set
295CONFIG_MTD_MAP_BANK_WIDTH_1=y
296CONFIG_MTD_MAP_BANK_WIDTH_2=y
297CONFIG_MTD_MAP_BANK_WIDTH_4=y
298# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
299# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
300# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
301CONFIG_MTD_CFI_I1=y
302CONFIG_MTD_CFI_I2=y
303# CONFIG_MTD_CFI_I4 is not set
304# CONFIG_MTD_CFI_I8 is not set
305CONFIG_MTD_RAM=y
306# CONFIG_MTD_ROM is not set
307# CONFIG_MTD_ABSENT is not set
308
309#
310# Mapping drivers for chip access
311#
312# CONFIG_MTD_COMPLEX_MAPPINGS is not set
313CONFIG_MTD_UCLINUX=y
314# CONFIG_MTD_PLATRAM is not set
315
316#
317# Self-contained MTD device drivers
318#
319# CONFIG_MTD_SLRAM is not set
320# CONFIG_MTD_PHRAM is not set
321# CONFIG_MTD_MTDRAM is not set
322# CONFIG_MTD_BLOCK2MTD is not set
323
324#
325# Disk-On-Chip Device Drivers
326#
327# CONFIG_MTD_DOC2000 is not set
328# CONFIG_MTD_DOC2001 is not set
329# CONFIG_MTD_DOC2001PLUS is not set
330# CONFIG_MTD_NAND is not set
331# CONFIG_MTD_ONENAND is not set
332
333#
334# LPDDR flash memory drivers
335#
336# CONFIG_MTD_LPDDR is not set
337
338#
339# UBI - Unsorted block images
340#
341# CONFIG_MTD_UBI is not set
278# CONFIG_PARPORT is not set 342# CONFIG_PARPORT is not set
279CONFIG_BLK_DEV=y 343CONFIG_BLK_DEV=y
280# CONFIG_BLK_DEV_COW_COMMON is not set 344# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -286,6 +350,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
286# CONFIG_BLK_DEV_XIP is not set 350# CONFIG_BLK_DEV_XIP is not set
287# CONFIG_CDROM_PKTCDVD is not set 351# CONFIG_CDROM_PKTCDVD is not set
288# CONFIG_ATA_OVER_ETH is not set 352# CONFIG_ATA_OVER_ETH is not set
353# CONFIG_BLK_DEV_HD is not set
289# CONFIG_MISC_DEVICES is not set 354# CONFIG_MISC_DEVICES is not set
290CONFIG_HAVE_IDE=y 355CONFIG_HAVE_IDE=y
291# CONFIG_IDE is not set 356# CONFIG_IDE is not set
@@ -299,7 +364,7 @@ CONFIG_HAVE_IDE=y
299# CONFIG_SCSI_NETLINK is not set 364# CONFIG_SCSI_NETLINK is not set
300# CONFIG_MD is not set 365# CONFIG_MD is not set
301CONFIG_NETDEVICES=y 366CONFIG_NETDEVICES=y
302# CONFIG_NETDEVICES_MULTIQUEUE is not set 367CONFIG_COMPAT_NET_DEV_OPS=y
303# CONFIG_DUMMY is not set 368# CONFIG_DUMMY is not set
304# CONFIG_BONDING is not set 369# CONFIG_BONDING is not set
305# CONFIG_MACVLAN is not set 370# CONFIG_MACVLAN is not set
@@ -309,10 +374,15 @@ CONFIG_NETDEVICES=y
309# CONFIG_PHYLIB is not set 374# CONFIG_PHYLIB is not set
310CONFIG_NET_ETHERNET=y 375CONFIG_NET_ETHERNET=y
311# CONFIG_MII is not set 376# CONFIG_MII is not set
377# CONFIG_ETHOC is not set
378# CONFIG_DNET is not set
312# CONFIG_IBM_NEW_EMAC_ZMII is not set 379# CONFIG_IBM_NEW_EMAC_ZMII is not set
313# CONFIG_IBM_NEW_EMAC_RGMII is not set 380# CONFIG_IBM_NEW_EMAC_RGMII is not set
314# CONFIG_IBM_NEW_EMAC_TAH is not set 381# CONFIG_IBM_NEW_EMAC_TAH is not set
315# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 382# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
383# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
384# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
385# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
316# CONFIG_B44 is not set 386# CONFIG_B44 is not set
317# CONFIG_NETDEV_1000 is not set 387# CONFIG_NETDEV_1000 is not set
318# CONFIG_NETDEV_10000 is not set 388# CONFIG_NETDEV_10000 is not set
@@ -322,8 +392,10 @@ CONFIG_NET_ETHERNET=y
322# 392#
323# CONFIG_WLAN_PRE80211 is not set 393# CONFIG_WLAN_PRE80211 is not set
324# CONFIG_WLAN_80211 is not set 394# CONFIG_WLAN_80211 is not set
325# CONFIG_IWLWIFI is not set 395
326# CONFIG_IWLWIFI_LEDS is not set 396#
397# Enable WiMAX (Networking options) to see the WiMAX drivers
398#
327# CONFIG_WAN is not set 399# CONFIG_WAN is not set
328CONFIG_PPP=y 400CONFIG_PPP=y
329# CONFIG_PPP_MULTILINK is not set 401# CONFIG_PPP_MULTILINK is not set
@@ -381,7 +453,7 @@ CONFIG_INPUT=y
381# Character devices 453# Character devices
382# 454#
383# CONFIG_VT is not set 455# CONFIG_VT is not set
384# CONFIG_DEVKMEM is not set 456CONFIG_DEVKMEM=y
385# CONFIG_SERIAL_NONSTANDARD is not set 457# CONFIG_SERIAL_NONSTANDARD is not set
386 458
387# 459#
@@ -394,13 +466,12 @@ CONFIG_INPUT=y
394# 466#
395CONFIG_SERIAL_CORE=y 467CONFIG_SERIAL_CORE=y
396CONFIG_SERIAL_CORE_CONSOLE=y 468CONFIG_SERIAL_CORE_CONSOLE=y
397# CONFIG_SERIAL_COLDFIRE is not set
398CONFIG_SERIAL_MCF=y 469CONFIG_SERIAL_MCF=y
399CONFIG_SERIAL_MCF_BAUDRATE=19200 470CONFIG_SERIAL_MCF_BAUDRATE=19200
400CONFIG_SERIAL_MCF_CONSOLE=y 471CONFIG_SERIAL_MCF_CONSOLE=y
401CONFIG_UNIX98_PTYS=y 472CONFIG_UNIX98_PTYS=y
402CONFIG_LEGACY_PTYS=y 473# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
403CONFIG_LEGACY_PTY_COUNT=256 474# CONFIG_LEGACY_PTYS is not set
404# CONFIG_IPMI_HANDLER is not set 475# CONFIG_IPMI_HANDLER is not set
405# CONFIG_HW_RANDOM is not set 476# CONFIG_HW_RANDOM is not set
406# CONFIG_GEN_RTC is not set 477# CONFIG_GEN_RTC is not set
@@ -413,19 +484,23 @@ CONFIG_LEGACY_PTY_COUNT=256
413# CONFIG_POWER_SUPPLY is not set 484# CONFIG_POWER_SUPPLY is not set
414# CONFIG_HWMON is not set 485# CONFIG_HWMON is not set
415# CONFIG_THERMAL is not set 486# CONFIG_THERMAL is not set
487# CONFIG_THERMAL_HWMON is not set
416# CONFIG_WATCHDOG is not set 488# CONFIG_WATCHDOG is not set
489CONFIG_SSB_POSSIBLE=y
417 490
418# 491#
419# Sonics Silicon Backplane 492# Sonics Silicon Backplane
420# 493#
421CONFIG_SSB_POSSIBLE=y
422# CONFIG_SSB is not set 494# CONFIG_SSB is not set
423 495
424# 496#
425# Multifunction device drivers 497# Multifunction device drivers
426# 498#
499# CONFIG_MFD_CORE is not set
427# CONFIG_MFD_SM501 is not set 500# CONFIG_MFD_SM501 is not set
428# CONFIG_HTC_PASIC3 is not set 501# CONFIG_HTC_PASIC3 is not set
502# CONFIG_MFD_TMIO is not set
503# CONFIG_REGULATOR is not set
429 504
430# 505#
431# Multimedia devices 506# Multimedia devices
@@ -436,6 +511,7 @@ CONFIG_SSB_POSSIBLE=y
436# 511#
437# CONFIG_VIDEO_DEV is not set 512# CONFIG_VIDEO_DEV is not set
438# CONFIG_DVB_CORE is not set 513# CONFIG_DVB_CORE is not set
514# CONFIG_VIDEO_MEDIA is not set
439 515
440# 516#
441# Multimedia drivers 517# Multimedia drivers
@@ -454,10 +530,6 @@ CONFIG_DAB=y
454# Display device support 530# Display device support
455# 531#
456# CONFIG_DISPLAY_SUPPORT is not set 532# CONFIG_DISPLAY_SUPPORT is not set
457
458#
459# Sound
460#
461# CONFIG_SOUND is not set 533# CONFIG_SOUND is not set
462# CONFIG_HID_SUPPORT is not set 534# CONFIG_HID_SUPPORT is not set
463# CONFIG_USB_SUPPORT is not set 535# CONFIG_USB_SUPPORT is not set
@@ -466,7 +538,10 @@ CONFIG_DAB=y
466# CONFIG_NEW_LEDS is not set 538# CONFIG_NEW_LEDS is not set
467# CONFIG_ACCESSIBILITY is not set 539# CONFIG_ACCESSIBILITY is not set
468# CONFIG_RTC_CLASS is not set 540# CONFIG_RTC_CLASS is not set
541# CONFIG_DMADEVICES is not set
542# CONFIG_AUXDISPLAY is not set
469# CONFIG_UIO is not set 543# CONFIG_UIO is not set
544# CONFIG_STAGING is not set
470 545
471# 546#
472# File systems 547# File systems
@@ -474,12 +549,14 @@ CONFIG_DAB=y
474CONFIG_EXT2_FS=y 549CONFIG_EXT2_FS=y
475# CONFIG_EXT2_FS_XATTR is not set 550# CONFIG_EXT2_FS_XATTR is not set
476# CONFIG_EXT3_FS is not set 551# CONFIG_EXT3_FS is not set
477# CONFIG_EXT4DEV_FS is not set 552# CONFIG_EXT4_FS is not set
478# CONFIG_REISERFS_FS is not set 553# CONFIG_REISERFS_FS is not set
479# CONFIG_JFS_FS is not set 554# CONFIG_JFS_FS is not set
480# CONFIG_FS_POSIX_ACL is not set 555# CONFIG_FS_POSIX_ACL is not set
556CONFIG_FILE_LOCKING=y
481# CONFIG_XFS_FS is not set 557# CONFIG_XFS_FS is not set
482# CONFIG_OCFS2_FS is not set 558# CONFIG_OCFS2_FS is not set
559# CONFIG_BTRFS_FS is not set
483# CONFIG_DNOTIFY is not set 560# CONFIG_DNOTIFY is not set
484# CONFIG_INOTIFY is not set 561# CONFIG_INOTIFY is not set
485# CONFIG_QUOTA is not set 562# CONFIG_QUOTA is not set
@@ -488,6 +565,11 @@ CONFIG_EXT2_FS=y
488# CONFIG_FUSE_FS is not set 565# CONFIG_FUSE_FS is not set
489 566
490# 567#
568# Caches
569#
570# CONFIG_FSCACHE is not set
571
572#
491# CD-ROM/DVD Filesystems 573# CD-ROM/DVD Filesystems
492# 574#
493# CONFIG_ISO9660_FS is not set 575# CONFIG_ISO9660_FS is not set
@@ -509,10 +591,7 @@ CONFIG_SYSFS=y
509# CONFIG_TMPFS is not set 591# CONFIG_TMPFS is not set
510# CONFIG_HUGETLB_PAGE is not set 592# CONFIG_HUGETLB_PAGE is not set
511# CONFIG_CONFIGFS_FS is not set 593# CONFIG_CONFIGFS_FS is not set
512 594CONFIG_MISC_FILESYSTEMS=y
513#
514# Miscellaneous filesystems
515#
516# CONFIG_ADFS_FS is not set 595# CONFIG_ADFS_FS is not set
517# CONFIG_AFFS_FS is not set 596# CONFIG_AFFS_FS is not set
518# CONFIG_HFS_FS is not set 597# CONFIG_HFS_FS is not set
@@ -520,14 +599,22 @@ CONFIG_SYSFS=y
520# CONFIG_BEFS_FS is not set 599# CONFIG_BEFS_FS is not set
521# CONFIG_BFS_FS is not set 600# CONFIG_BFS_FS is not set
522# CONFIG_EFS_FS is not set 601# CONFIG_EFS_FS is not set
602# CONFIG_JFFS2_FS is not set
523# CONFIG_CRAMFS is not set 603# CONFIG_CRAMFS is not set
604# CONFIG_SQUASHFS is not set
524# CONFIG_VXFS_FS is not set 605# CONFIG_VXFS_FS is not set
525# CONFIG_MINIX_FS is not set 606# CONFIG_MINIX_FS is not set
607# CONFIG_OMFS_FS is not set
526# CONFIG_HPFS_FS is not set 608# CONFIG_HPFS_FS is not set
527# CONFIG_QNX4FS_FS is not set 609# CONFIG_QNX4FS_FS is not set
528CONFIG_ROMFS_FS=y 610CONFIG_ROMFS_FS=y
611# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
612CONFIG_ROMFS_BACKED_BY_MTD=y
613# CONFIG_ROMFS_BACKED_BY_BOTH is not set
614CONFIG_ROMFS_ON_MTD=y
529# CONFIG_SYSV_FS is not set 615# CONFIG_SYSV_FS is not set
530# CONFIG_UFS_FS is not set 616# CONFIG_UFS_FS is not set
617# CONFIG_NILFS2_FS is not set
531# CONFIG_NETWORK_FILESYSTEMS is not set 618# CONFIG_NETWORK_FILESYSTEMS is not set
532 619
533# 620#
@@ -551,10 +638,14 @@ CONFIG_FRAME_WARN=1024
551# CONFIG_HEADERS_CHECK is not set 638# CONFIG_HEADERS_CHECK is not set
552# CONFIG_DEBUG_KERNEL is not set 639# CONFIG_DEBUG_KERNEL is not set
553# CONFIG_DEBUG_BUGVERBOSE is not set 640# CONFIG_DEBUG_BUGVERBOSE is not set
641# CONFIG_DEBUG_MEMORY_INIT is not set
642# CONFIG_RCU_CPU_STALL_DETECTOR is not set
643CONFIG_SYSCTL_SYSCALL_CHECK=y
554# CONFIG_SAMPLES is not set 644# CONFIG_SAMPLES is not set
555CONFIG_FULLDEBUG=y 645CONFIG_FULLDEBUG=y
556# CONFIG_HIGHPROFILE is not set 646# CONFIG_HIGHPROFILE is not set
557# CONFIG_BOOTPARAM is not set 647CONFIG_BOOTPARAM=y
648CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
558# CONFIG_NO_KERNEL_MSG is not set 649# CONFIG_NO_KERNEL_MSG is not set
559# CONFIG_BDM_DISABLE is not set 650# CONFIG_BDM_DISABLE is not set
560 651
@@ -563,18 +654,22 @@ CONFIG_FULLDEBUG=y
563# 654#
564# CONFIG_KEYS is not set 655# CONFIG_KEYS is not set
565# CONFIG_SECURITY is not set 656# CONFIG_SECURITY is not set
657# CONFIG_SECURITYFS is not set
566# CONFIG_SECURITY_FILE_CAPABILITIES is not set 658# CONFIG_SECURITY_FILE_CAPABILITIES is not set
567# CONFIG_CRYPTO is not set 659# CONFIG_CRYPTO is not set
660# CONFIG_BINARY_PRINTF is not set
568 661
569# 662#
570# Library routines 663# Library routines
571# 664#
572# CONFIG_GENERIC_FIND_FIRST_BIT is not set 665CONFIG_GENERIC_FIND_LAST_BIT=y
573# CONFIG_CRC_CCITT is not set 666# CONFIG_CRC_CCITT is not set
574# CONFIG_CRC16 is not set 667# CONFIG_CRC16 is not set
668# CONFIG_CRC_T10DIF is not set
575# CONFIG_CRC_ITU_T is not set 669# CONFIG_CRC_ITU_T is not set
576# CONFIG_CRC32 is not set 670# CONFIG_CRC32 is not set
577# CONFIG_CRC7 is not set 671# CONFIG_CRC7 is not set
578# CONFIG_LIBCRC32C is not set 672# CONFIG_LIBCRC32C is not set
579CONFIG_HAS_IOMEM=y 673CONFIG_HAS_IOMEM=y
580CONFIG_HAS_DMA=y 674CONFIG_HAS_DMA=y
675CONFIG_NLATTR=y
diff --git a/arch/m68knommu/configs/m5407c3_defconfig b/arch/m68knommu/configs/m5407c3_defconfig
index 1118936d20e3..97b6cde2fc19 100644
--- a/arch/m68knommu/configs/m5407c3_defconfig
+++ b/arch/m68knommu/configs/m5407c3_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.26-rc1 3# Linux kernel version: 2.6.30-rc2
4# Wed May 7 10:25:16 2008 4# Thu Apr 23 09:21:40 2009
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7# CONFIG_MMU is not set 7# CONFIG_MMU is not set
@@ -16,9 +16,10 @@ CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_HARDIRQS=y 16CONFIG_GENERIC_HARDIRQS=y
17CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
18CONFIG_GENERIC_TIME=y 18CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CMOS_UPDATE=y
19CONFIG_TIME_LOW_RES=y 20CONFIG_TIME_LOW_RES=y
21# CONFIG_GENERIC_CLOCKEVENTS is not set
20CONFIG_NO_IOPORT=y 22CONFIG_NO_IOPORT=y
21CONFIG_ARCH_SUPPORTS_AOUT=y
22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
23 24
24# 25#
@@ -34,10 +35,19 @@ CONFIG_LOCALVERSION_AUTO=y
34# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 36# CONFIG_TASKSTATS is not set
36# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
38
39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
37# CONFIG_IKCONFIG is not set 47# CONFIG_IKCONFIG is not set
38CONFIG_LOG_BUF_SHIFT=14 48CONFIG_LOG_BUF_SHIFT=14
39# CONFIG_CGROUPS is not set
40# CONFIG_GROUP_SCHED is not set 49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41# CONFIG_SYSFS_DEPRECATED_V2 is not set 51# CONFIG_SYSFS_DEPRECATED_V2 is not set
42# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
43# CONFIG_NAMESPACES is not set 53# CONFIG_NAMESPACES is not set
@@ -45,44 +55,43 @@ CONFIG_LOG_BUF_SHIFT=14
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 55# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
47CONFIG_EMBEDDED=y 57CONFIG_EMBEDDED=y
48# CONFIG_UID16 is not set 58CONFIG_UID16=y
49# CONFIG_SYSCTL_SYSCALL is not set 59CONFIG_SYSCTL_SYSCALL=y
50# CONFIG_KALLSYMS is not set 60# CONFIG_KALLSYMS is not set
61# CONFIG_STRIP_ASM_SYMS is not set
51# CONFIG_HOTPLUG is not set 62# CONFIG_HOTPLUG is not set
52CONFIG_PRINTK=y 63CONFIG_PRINTK=y
53CONFIG_BUG=y 64CONFIG_BUG=y
54CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
55# CONFIG_COMPAT_BRK is not set
56CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
57# CONFIG_FUTEX is not set 67# CONFIG_FUTEX is not set
58# CONFIG_EPOLL is not set 68# CONFIG_EPOLL is not set
59# CONFIG_SIGNALFD is not set 69# CONFIG_SIGNALFD is not set
60# CONFIG_TIMERFD is not set 70# CONFIG_TIMERFD is not set
61# CONFIG_EVENTFD is not set 71# CONFIG_EVENTFD is not set
72# CONFIG_AIO is not set
62# CONFIG_VM_EVENT_COUNTERS is not set 73# CONFIG_VM_EVENT_COUNTERS is not set
63CONFIG_SLAB=y 74CONFIG_SLUB_DEBUG=y
64# CONFIG_SLUB is not set 75CONFIG_COMPAT_BRK=y
76# CONFIG_SLAB is not set
77CONFIG_SLUB=y
65# CONFIG_SLOB is not set 78# CONFIG_SLOB is not set
66# CONFIG_PROFILING is not set 79# CONFIG_PROFILING is not set
67# CONFIG_MARKERS is not set 80# CONFIG_MARKERS is not set
68# CONFIG_HAVE_OPROFILE is not set 81# CONFIG_SLOW_WORK is not set
69# CONFIG_HAVE_KPROBES is not set 82# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
70# CONFIG_HAVE_KRETPROBES is not set
71# CONFIG_HAVE_DMA_ATTRS is not set
72CONFIG_SLABINFO=y 83CONFIG_SLABINFO=y
73CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 84CONFIG_BASE_SMALL=0
75CONFIG_MODULES=y 85CONFIG_MODULES=y
86# CONFIG_MODULE_FORCE_LOAD is not set
76CONFIG_MODULE_UNLOAD=y 87CONFIG_MODULE_UNLOAD=y
77# CONFIG_MODULE_FORCE_UNLOAD is not set 88# CONFIG_MODULE_FORCE_UNLOAD is not set
78# CONFIG_MODVERSIONS is not set 89# CONFIG_MODVERSIONS is not set
79# CONFIG_MODULE_SRCVERSION_ALL is not set 90# CONFIG_MODULE_SRCVERSION_ALL is not set
80# CONFIG_KMOD is not set
81CONFIG_BLOCK=y 91CONFIG_BLOCK=y
82# CONFIG_LBD is not set 92# CONFIG_LBD is not set
83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
85# CONFIG_BLK_DEV_BSG is not set 93# CONFIG_BLK_DEV_BSG is not set
94# CONFIG_BLK_DEV_INTEGRITY is not set
86 95
87# 96#
88# IO Schedulers 97# IO Schedulers
@@ -96,7 +105,7 @@ CONFIG_IOSCHED_NOOP=y
96# CONFIG_DEFAULT_CFQ is not set 105# CONFIG_DEFAULT_CFQ is not set
97CONFIG_DEFAULT_NOOP=y 106CONFIG_DEFAULT_NOOP=y
98CONFIG_DEFAULT_IOSCHED="noop" 107CONFIG_DEFAULT_IOSCHED="noop"
99CONFIG_CLASSIC_RCU=y 108# CONFIG_FREEZER is not set
100 109
101# 110#
102# Processor type and features 111# Processor type and features
@@ -149,45 +158,36 @@ CONFIG_RAMAUTOBIT=y
149# CONFIG_ROM is not set 158# CONFIG_ROM is not set
150CONFIG_RAMKERNEL=y 159CONFIG_RAMKERNEL=y
151# CONFIG_ROMKERNEL is not set 160# CONFIG_ROMKERNEL is not set
161CONFIG_PREEMPT_NONE=y
162# CONFIG_PREEMPT_VOLUNTARY is not set
163# CONFIG_PREEMPT is not set
152CONFIG_SELECT_MEMORY_MODEL=y 164CONFIG_SELECT_MEMORY_MODEL=y
153CONFIG_FLATMEM_MANUAL=y 165CONFIG_FLATMEM_MANUAL=y
154# CONFIG_DISCONTIGMEM_MANUAL is not set 166# CONFIG_DISCONTIGMEM_MANUAL is not set
155# CONFIG_SPARSEMEM_MANUAL is not set 167# CONFIG_SPARSEMEM_MANUAL is not set
156CONFIG_FLATMEM=y 168CONFIG_FLATMEM=y
157CONFIG_FLAT_NODE_MEM_MAP=y 169CONFIG_FLAT_NODE_MEM_MAP=y
158# CONFIG_SPARSEMEM_STATIC is not set
159# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
160CONFIG_PAGEFLAGS_EXTENDED=y 170CONFIG_PAGEFLAGS_EXTENDED=y
161CONFIG_SPLIT_PTLOCK_CPUS=4 171CONFIG_SPLIT_PTLOCK_CPUS=4
162# CONFIG_RESOURCES_64BIT is not set 172# CONFIG_PHYS_ADDR_T_64BIT is not set
163CONFIG_ZONE_DMA_FLAG=1 173CONFIG_ZONE_DMA_FLAG=1
164CONFIG_VIRT_TO_BUS=y 174CONFIG_VIRT_TO_BUS=y
175# CONFIG_UNEVICTABLE_LRU is not set
165CONFIG_ISA_DMA_API=y 176CONFIG_ISA_DMA_API=y
166 177
167# 178#
168# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
169#
170# CONFIG_PCI is not set
171# CONFIG_COMEMPCI is not set
172# CONFIG_ARCH_SUPPORTS_MSI is not set
173
174#
175# Executable file formats 179# Executable file formats
176# 180#
177CONFIG_BINFMT_FLAT=y 181CONFIG_BINFMT_FLAT=y
178# CONFIG_BINFMT_ZFLAT is not set 182# CONFIG_BINFMT_ZFLAT is not set
179# CONFIG_BINFMT_SHARED_FLAT is not set 183# CONFIG_BINFMT_SHARED_FLAT is not set
180# CONFIG_BINFMT_AOUT is not set 184# CONFIG_HAVE_AOUT is not set
181# CONFIG_BINFMT_MISC is not set 185# CONFIG_BINFMT_MISC is not set
182 186
183# 187#
184# Power management options 188# Power management options
185# 189#
186# CONFIG_PM is not set 190# CONFIG_PM is not set
187
188#
189# Networking
190#
191CONFIG_NET=y 191CONFIG_NET=y
192 192
193# 193#
@@ -228,6 +228,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
228# CONFIG_TIPC is not set 228# CONFIG_TIPC is not set
229# CONFIG_ATM is not set 229# CONFIG_ATM is not set
230# CONFIG_BRIDGE is not set 230# CONFIG_BRIDGE is not set
231# CONFIG_NET_DSA is not set
231# CONFIG_VLAN_8021Q is not set 232# CONFIG_VLAN_8021Q is not set
232# CONFIG_DECNET is not set 233# CONFIG_DECNET is not set
233# CONFIG_LLC2 is not set 234# CONFIG_LLC2 is not set
@@ -237,7 +238,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
237# CONFIG_LAPB is not set 238# CONFIG_LAPB is not set
238# CONFIG_ECONET is not set 239# CONFIG_ECONET is not set
239# CONFIG_WAN_ROUTER is not set 240# CONFIG_WAN_ROUTER is not set
241# CONFIG_PHONET is not set
240# CONFIG_NET_SCHED is not set 242# CONFIG_NET_SCHED is not set
243# CONFIG_DCB is not set
241 244
242# 245#
243# Network testing 246# Network testing
@@ -248,14 +251,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
248# CONFIG_IRDA is not set 251# CONFIG_IRDA is not set
249# CONFIG_BT is not set 252# CONFIG_BT is not set
250# CONFIG_AF_RXRPC is not set 253# CONFIG_AF_RXRPC is not set
251 254# CONFIG_WIRELESS is not set
252# 255# CONFIG_WIMAX is not set
253# Wireless
254#
255# CONFIG_CFG80211 is not set
256# CONFIG_WIRELESS_EXT is not set
257# CONFIG_MAC80211 is not set
258# CONFIG_IEEE80211 is not set
259# CONFIG_RFKILL is not set 256# CONFIG_RFKILL is not set
260# CONFIG_NET_9P is not set 257# CONFIG_NET_9P is not set
261 258
@@ -274,6 +271,7 @@ CONFIG_MTD=y
274# CONFIG_MTD_DEBUG is not set 271# CONFIG_MTD_DEBUG is not set
275# CONFIG_MTD_CONCAT is not set 272# CONFIG_MTD_CONCAT is not set
276CONFIG_MTD_PARTITIONS=y 273CONFIG_MTD_PARTITIONS=y
274# CONFIG_MTD_TESTS is not set
277# CONFIG_MTD_REDBOOT_PARTS is not set 275# CONFIG_MTD_REDBOOT_PARTS is not set
278# CONFIG_MTD_CMDLINE_PARTS is not set 276# CONFIG_MTD_CMDLINE_PARTS is not set
279# CONFIG_MTD_AR7_PARTS is not set 277# CONFIG_MTD_AR7_PARTS is not set
@@ -335,6 +333,11 @@ CONFIG_MTD_UCLINUX=y
335# CONFIG_MTD_ONENAND is not set 333# CONFIG_MTD_ONENAND is not set
336 334
337# 335#
336# LPDDR flash memory drivers
337#
338# CONFIG_MTD_LPDDR is not set
339
340#
338# UBI - Unsorted block images 341# UBI - Unsorted block images
339# 342#
340# CONFIG_MTD_UBI is not set 343# CONFIG_MTD_UBI is not set
@@ -349,6 +352,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
349# CONFIG_BLK_DEV_XIP is not set 352# CONFIG_BLK_DEV_XIP is not set
350# CONFIG_CDROM_PKTCDVD is not set 353# CONFIG_CDROM_PKTCDVD is not set
351# CONFIG_ATA_OVER_ETH is not set 354# CONFIG_ATA_OVER_ETH is not set
355# CONFIG_BLK_DEV_HD is not set
352# CONFIG_MISC_DEVICES is not set 356# CONFIG_MISC_DEVICES is not set
353CONFIG_HAVE_IDE=y 357CONFIG_HAVE_IDE=y
354# CONFIG_IDE is not set 358# CONFIG_IDE is not set
@@ -362,7 +366,7 @@ CONFIG_HAVE_IDE=y
362# CONFIG_SCSI_NETLINK is not set 366# CONFIG_SCSI_NETLINK is not set
363# CONFIG_MD is not set 367# CONFIG_MD is not set
364CONFIG_NETDEVICES=y 368CONFIG_NETDEVICES=y
365# CONFIG_NETDEVICES_MULTIQUEUE is not set 369CONFIG_COMPAT_NET_DEV_OPS=y
366# CONFIG_DUMMY is not set 370# CONFIG_DUMMY is not set
367# CONFIG_BONDING is not set 371# CONFIG_BONDING is not set
368# CONFIG_MACVLAN is not set 372# CONFIG_MACVLAN is not set
@@ -372,10 +376,15 @@ CONFIG_NETDEVICES=y
372# CONFIG_PHYLIB is not set 376# CONFIG_PHYLIB is not set
373CONFIG_NET_ETHERNET=y 377CONFIG_NET_ETHERNET=y
374# CONFIG_MII is not set 378# CONFIG_MII is not set
379# CONFIG_ETHOC is not set
380# CONFIG_DNET is not set
375# CONFIG_IBM_NEW_EMAC_ZMII is not set 381# CONFIG_IBM_NEW_EMAC_ZMII is not set
376# CONFIG_IBM_NEW_EMAC_RGMII is not set 382# CONFIG_IBM_NEW_EMAC_RGMII is not set
377# CONFIG_IBM_NEW_EMAC_TAH is not set 383# CONFIG_IBM_NEW_EMAC_TAH is not set
378# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 384# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
385# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
386# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
387# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
379# CONFIG_B44 is not set 388# CONFIG_B44 is not set
380# CONFIG_NETDEV_1000 is not set 389# CONFIG_NETDEV_1000 is not set
381# CONFIG_NETDEV_10000 is not set 390# CONFIG_NETDEV_10000 is not set
@@ -385,8 +394,10 @@ CONFIG_NET_ETHERNET=y
385# 394#
386# CONFIG_WLAN_PRE80211 is not set 395# CONFIG_WLAN_PRE80211 is not set
387# CONFIG_WLAN_80211 is not set 396# CONFIG_WLAN_80211 is not set
388# CONFIG_IWLWIFI is not set 397
389# CONFIG_IWLWIFI_LEDS is not set 398#
399# Enable WiMAX (Networking options) to see the WiMAX drivers
400#
390# CONFIG_WAN is not set 401# CONFIG_WAN is not set
391CONFIG_PPP=y 402CONFIG_PPP=y
392# CONFIG_PPP_MULTILINK is not set 403# CONFIG_PPP_MULTILINK is not set
@@ -409,39 +420,22 @@ CONFIG_SLHC=y
409# 420#
410# Input device support 421# Input device support
411# 422#
412CONFIG_INPUT=y 423# CONFIG_INPUT is not set
413# CONFIG_INPUT_FF_MEMLESS is not set
414# CONFIG_INPUT_POLLDEV is not set
415
416#
417# Userland interfaces
418#
419# CONFIG_INPUT_MOUSEDEV is not set
420# CONFIG_INPUT_JOYDEV is not set
421# CONFIG_INPUT_EVDEV is not set
422# CONFIG_INPUT_EVBUG is not set
423
424#
425# Input Device Drivers
426#
427# CONFIG_INPUT_KEYBOARD is not set
428# CONFIG_INPUT_MOUSE is not set
429# CONFIG_INPUT_JOYSTICK is not set
430# CONFIG_INPUT_TABLET is not set
431# CONFIG_INPUT_TOUCHSCREEN is not set
432# CONFIG_INPUT_MISC is not set
433 424
434# 425#
435# Hardware I/O ports 426# Hardware I/O ports
436# 427#
437# CONFIG_SERIO is not set 428CONFIG_SERIO=y
429CONFIG_SERIO_SERPORT=y
430# CONFIG_SERIO_LIBPS2 is not set
431# CONFIG_SERIO_RAW is not set
438# CONFIG_GAMEPORT is not set 432# CONFIG_GAMEPORT is not set
439 433
440# 434#
441# Character devices 435# Character devices
442# 436#
443# CONFIG_VT is not set 437# CONFIG_VT is not set
444# CONFIG_DEVKMEM is not set 438CONFIG_DEVKMEM=y
445# CONFIG_SERIAL_NONSTANDARD is not set 439# CONFIG_SERIAL_NONSTANDARD is not set
446 440
447# 441#
@@ -454,7 +448,6 @@ CONFIG_INPUT=y
454# 448#
455CONFIG_SERIAL_CORE=y 449CONFIG_SERIAL_CORE=y
456CONFIG_SERIAL_CORE_CONSOLE=y 450CONFIG_SERIAL_CORE_CONSOLE=y
457# CONFIG_SERIAL_COLDFIRE is not set
458CONFIG_SERIAL_MCF=y 451CONFIG_SERIAL_MCF=y
459CONFIG_SERIAL_MCF_BAUDRATE=19200 452CONFIG_SERIAL_MCF_BAUDRATE=19200
460CONFIG_SERIAL_MCF_CONSOLE=y 453CONFIG_SERIAL_MCF_CONSOLE=y
@@ -473,19 +466,23 @@ CONFIG_LEGACY_PTY_COUNT=256
473# CONFIG_POWER_SUPPLY is not set 466# CONFIG_POWER_SUPPLY is not set
474# CONFIG_HWMON is not set 467# CONFIG_HWMON is not set
475# CONFIG_THERMAL is not set 468# CONFIG_THERMAL is not set
469# CONFIG_THERMAL_HWMON is not set
476# CONFIG_WATCHDOG is not set 470# CONFIG_WATCHDOG is not set
471CONFIG_SSB_POSSIBLE=y
477 472
478# 473#
479# Sonics Silicon Backplane 474# Sonics Silicon Backplane
480# 475#
481CONFIG_SSB_POSSIBLE=y
482# CONFIG_SSB is not set 476# CONFIG_SSB is not set
483 477
484# 478#
485# Multifunction device drivers 479# Multifunction device drivers
486# 480#
481# CONFIG_MFD_CORE is not set
487# CONFIG_MFD_SM501 is not set 482# CONFIG_MFD_SM501 is not set
488# CONFIG_HTC_PASIC3 is not set 483# CONFIG_HTC_PASIC3 is not set
484# CONFIG_MFD_TMIO is not set
485# CONFIG_REGULATOR is not set
489 486
490# 487#
491# Multimedia devices 488# Multimedia devices
@@ -496,6 +493,7 @@ CONFIG_SSB_POSSIBLE=y
496# 493#
497# CONFIG_VIDEO_DEV is not set 494# CONFIG_VIDEO_DEV is not set
498# CONFIG_DVB_CORE is not set 495# CONFIG_DVB_CORE is not set
496# CONFIG_VIDEO_MEDIA is not set
499 497
500# 498#
501# Multimedia drivers 499# Multimedia drivers
@@ -514,19 +512,17 @@ CONFIG_DAB=y
514# Display device support 512# Display device support
515# 513#
516# CONFIG_DISPLAY_SUPPORT is not set 514# CONFIG_DISPLAY_SUPPORT is not set
517
518#
519# Sound
520#
521# CONFIG_SOUND is not set 515# CONFIG_SOUND is not set
522# CONFIG_HID_SUPPORT is not set
523# CONFIG_USB_SUPPORT is not set 516# CONFIG_USB_SUPPORT is not set
524# CONFIG_MMC is not set 517# CONFIG_MMC is not set
525# CONFIG_MEMSTICK is not set 518# CONFIG_MEMSTICK is not set
526# CONFIG_NEW_LEDS is not set 519# CONFIG_NEW_LEDS is not set
527# CONFIG_ACCESSIBILITY is not set 520# CONFIG_ACCESSIBILITY is not set
528# CONFIG_RTC_CLASS is not set 521# CONFIG_RTC_CLASS is not set
522# CONFIG_DMADEVICES is not set
523# CONFIG_AUXDISPLAY is not set
529# CONFIG_UIO is not set 524# CONFIG_UIO is not set
525# CONFIG_STAGING is not set
530 526
531# 527#
532# File systems 528# File systems
@@ -534,12 +530,14 @@ CONFIG_DAB=y
534CONFIG_EXT2_FS=y 530CONFIG_EXT2_FS=y
535# CONFIG_EXT2_FS_XATTR is not set 531# CONFIG_EXT2_FS_XATTR is not set
536# CONFIG_EXT3_FS is not set 532# CONFIG_EXT3_FS is not set
537# CONFIG_EXT4DEV_FS is not set 533# CONFIG_EXT4_FS is not set
538# CONFIG_REISERFS_FS is not set 534# CONFIG_REISERFS_FS is not set
539# CONFIG_JFS_FS is not set 535# CONFIG_JFS_FS is not set
540# CONFIG_FS_POSIX_ACL is not set 536# CONFIG_FS_POSIX_ACL is not set
537# CONFIG_FILE_LOCKING is not set
541# CONFIG_XFS_FS is not set 538# CONFIG_XFS_FS is not set
542# CONFIG_OCFS2_FS is not set 539# CONFIG_OCFS2_FS is not set
540# CONFIG_BTRFS_FS is not set
543# CONFIG_DNOTIFY is not set 541# CONFIG_DNOTIFY is not set
544# CONFIG_INOTIFY is not set 542# CONFIG_INOTIFY is not set
545# CONFIG_QUOTA is not set 543# CONFIG_QUOTA is not set
@@ -548,6 +546,11 @@ CONFIG_EXT2_FS=y
548# CONFIG_FUSE_FS is not set 546# CONFIG_FUSE_FS is not set
549 547
550# 548#
549# Caches
550#
551# CONFIG_FSCACHE is not set
552
553#
551# CD-ROM/DVD Filesystems 554# CD-ROM/DVD Filesystems
552# 555#
553# CONFIG_ISO9660_FS is not set 556# CONFIG_ISO9660_FS is not set
@@ -569,10 +572,7 @@ CONFIG_SYSFS=y
569# CONFIG_TMPFS is not set 572# CONFIG_TMPFS is not set
570# CONFIG_HUGETLB_PAGE is not set 573# CONFIG_HUGETLB_PAGE is not set
571# CONFIG_CONFIGFS_FS is not set 574# CONFIG_CONFIGFS_FS is not set
572 575CONFIG_MISC_FILESYSTEMS=y
573#
574# Miscellaneous filesystems
575#
576# CONFIG_ADFS_FS is not set 576# CONFIG_ADFS_FS is not set
577# CONFIG_AFFS_FS is not set 577# CONFIG_AFFS_FS is not set
578# CONFIG_HFS_FS is not set 578# CONFIG_HFS_FS is not set
@@ -582,13 +582,20 @@ CONFIG_SYSFS=y
582# CONFIG_EFS_FS is not set 582# CONFIG_EFS_FS is not set
583# CONFIG_JFFS2_FS is not set 583# CONFIG_JFFS2_FS is not set
584# CONFIG_CRAMFS is not set 584# CONFIG_CRAMFS is not set
585# CONFIG_SQUASHFS is not set
585# CONFIG_VXFS_FS is not set 586# CONFIG_VXFS_FS is not set
586# CONFIG_MINIX_FS is not set 587# CONFIG_MINIX_FS is not set
588# CONFIG_OMFS_FS is not set
587# CONFIG_HPFS_FS is not set 589# CONFIG_HPFS_FS is not set
588# CONFIG_QNX4FS_FS is not set 590# CONFIG_QNX4FS_FS is not set
589CONFIG_ROMFS_FS=y 591CONFIG_ROMFS_FS=y
592# CONFIG_ROMFS_BACKED_BY_BLOCK is not set
593CONFIG_ROMFS_BACKED_BY_MTD=y
594# CONFIG_ROMFS_BACKED_BY_BOTH is not set
595CONFIG_ROMFS_ON_MTD=y
590# CONFIG_SYSV_FS is not set 596# CONFIG_SYSV_FS is not set
591# CONFIG_UFS_FS is not set 597# CONFIG_UFS_FS is not set
598# CONFIG_NILFS2_FS is not set
592# CONFIG_NETWORK_FILESYSTEMS is not set 599# CONFIG_NETWORK_FILESYSTEMS is not set
593 600
594# 601#
@@ -611,11 +618,17 @@ CONFIG_FRAME_WARN=1024
611# CONFIG_DEBUG_FS is not set 618# CONFIG_DEBUG_FS is not set
612# CONFIG_HEADERS_CHECK is not set 619# CONFIG_HEADERS_CHECK is not set
613# CONFIG_DEBUG_KERNEL is not set 620# CONFIG_DEBUG_KERNEL is not set
621# CONFIG_SLUB_DEBUG_ON is not set
622# CONFIG_SLUB_STATS is not set
614# CONFIG_DEBUG_BUGVERBOSE is not set 623# CONFIG_DEBUG_BUGVERBOSE is not set
624# CONFIG_DEBUG_MEMORY_INIT is not set
625# CONFIG_RCU_CPU_STALL_DETECTOR is not set
626CONFIG_SYSCTL_SYSCALL_CHECK=y
615# CONFIG_SAMPLES is not set 627# CONFIG_SAMPLES is not set
616# CONFIG_FULLDEBUG is not set 628# CONFIG_FULLDEBUG is not set
617# CONFIG_HIGHPROFILE is not set 629# CONFIG_HIGHPROFILE is not set
618# CONFIG_BOOTPARAM is not set 630CONFIG_BOOTPARAM=y
631CONFIG_BOOTPARAM_STRING="root=/dev/mtdblock0"
619# CONFIG_NO_KERNEL_MSG is not set 632# CONFIG_NO_KERNEL_MSG is not set
620# CONFIG_BDM_DISABLE is not set 633# CONFIG_BDM_DISABLE is not set
621 634
@@ -624,18 +637,22 @@ CONFIG_FRAME_WARN=1024
624# 637#
625# CONFIG_KEYS is not set 638# CONFIG_KEYS is not set
626# CONFIG_SECURITY is not set 639# CONFIG_SECURITY is not set
640# CONFIG_SECURITYFS is not set
627# CONFIG_SECURITY_FILE_CAPABILITIES is not set 641# CONFIG_SECURITY_FILE_CAPABILITIES is not set
628# CONFIG_CRYPTO is not set 642# CONFIG_CRYPTO is not set
643# CONFIG_BINARY_PRINTF is not set
629 644
630# 645#
631# Library routines 646# Library routines
632# 647#
633# CONFIG_GENERIC_FIND_FIRST_BIT is not set 648CONFIG_GENERIC_FIND_LAST_BIT=y
634# CONFIG_CRC_CCITT is not set 649# CONFIG_CRC_CCITT is not set
635# CONFIG_CRC16 is not set 650# CONFIG_CRC16 is not set
651# CONFIG_CRC_T10DIF is not set
636# CONFIG_CRC_ITU_T is not set 652# CONFIG_CRC_ITU_T is not set
637# CONFIG_CRC32 is not set 653# CONFIG_CRC32 is not set
638# CONFIG_CRC7 is not set 654# CONFIG_CRC7 is not set
639# CONFIG_LIBCRC32C is not set 655# CONFIG_LIBCRC32C is not set
640CONFIG_HAS_IOMEM=y 656CONFIG_HAS_IOMEM=y
641CONFIG_HAS_DMA=y 657CONFIG_HAS_DMA=y
658CONFIG_NLATTR=y
diff --git a/arch/m68knommu/kernel/asm-offsets.c b/arch/m68knommu/kernel/asm-offsets.c
index c785d07c02cc..f500dd6935d6 100644
--- a/arch/m68knommu/kernel/asm-offsets.c
+++ b/arch/m68knommu/kernel/asm-offsets.c
@@ -30,9 +30,6 @@ int main(void)
30 DEFINE(TASK_MM, offsetof(struct task_struct, mm)); 30 DEFINE(TASK_MM, offsetof(struct task_struct, mm));
31 DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); 31 DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
32 32
33 /* offsets into the kernel_stat struct */
34 DEFINE(STAT_IRQ, offsetof(struct kernel_stat, irqs));
35
36 /* offsets into the irq_cpustat_t struct */ 33 /* offsets into the irq_cpustat_t struct */
37 DEFINE(CPUSTAT_SOFTIRQ_PENDING, offsetof(irq_cpustat_t, __softirq_pending)); 34 DEFINE(CPUSTAT_SOFTIRQ_PENDING, offsetof(irq_cpustat_t, __softirq_pending));
38 35
@@ -69,9 +66,6 @@ int main(void)
69 DEFINE(PT_VECTOR, offsetof(struct pt_regs, pc) + 4); 66 DEFINE(PT_VECTOR, offsetof(struct pt_regs, pc) + 4);
70#endif 67#endif
71 68
72 /* offsets into the kernel_stat struct */
73 DEFINE(STAT_IRQ, offsetof(struct kernel_stat, irqs));
74
75 /* signal defines */ 69 /* signal defines */
76 DEFINE(SIGSEGV, SIGSEGV); 70 DEFINE(SIGSEGV, SIGSEGV);
77 DEFINE(SEGV_MAPERR, SEGV_MAPERR); 71 DEFINE(SEGV_MAPERR, SEGV_MAPERR);
diff --git a/arch/m68knommu/kernel/dma.c b/arch/m68knommu/kernel/dma.c
index 936125806638..aaf38bbbb6cd 100644
--- a/arch/m68knommu/kernel/dma.c
+++ b/arch/m68knommu/kernel/dma.c
@@ -7,10 +7,9 @@
7 7
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/string.h>
11#include <linux/device.h> 10#include <linux/device.h>
12#include <linux/dma-mapping.h> 11#include <linux/dma-mapping.h>
13#include <asm/io.h> 12#include <asm/cacheflush.h>
14 13
15void *dma_alloc_coherent(struct device *dev, size_t size, 14void *dma_alloc_coherent(struct device *dev, size_t size,
16 dma_addr_t *dma_handle, gfp_t gfp) 15 dma_addr_t *dma_handle, gfp_t gfp)
@@ -36,7 +35,39 @@ void dma_free_coherent(struct device *dev, size_t size,
36 free_pages((unsigned long)vaddr, get_order(size)); 35 free_pages((unsigned long)vaddr, get_order(size));
37} 36}
38 37
39void dma_sync_single_for_cpu(struct device *dev, dma_addr_t handle, size_t size, enum dma_data_direction dir) 38void dma_sync_single_for_device(struct device *dev, dma_addr_t handle,
39 size_t size, enum dma_data_direction dir)
40{ 40{
41 switch (dir) {
42 case DMA_TO_DEVICE:
43 flush_dcache_range(handle, size);
44 break;
45 case DMA_FROM_DEVICE:
46 /* Should be clear already */
47 break;
48 default:
49 if (printk_ratelimit())
50 printk("dma_sync_single_for_device: unsupported dir %u\n", dir);
51 break;
52 }
53}
54
55EXPORT_SYMBOL(dma_sync_single_for_device);
56dma_addr_t dma_map_single(struct device *dev, void *addr, size_t size,
57 enum dma_data_direction dir)
58{
59 dma_addr_t handle = virt_to_phys(addr);
60 flush_dcache_range(handle, size);
61 return handle;
41} 62}
63EXPORT_SYMBOL(dma_map_single);
42 64
65dma_addr_t dma_map_page(struct device *dev, struct page *page,
66 unsigned long offset, size_t size,
67 enum dma_data_direction dir)
68{
69 dma_addr_t handle = page_to_phys(page) + offset;
70 dma_sync_single_for_device(dev, handle, size, dir);
71 return handle;
72}
73EXPORT_SYMBOL(dma_map_page);
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S
index 1017e76f3711..c0b8782832fd 100644
--- a/arch/m68knommu/kernel/syscalltable.S
+++ b/arch/m68knommu/kernel/syscalltable.S
@@ -347,6 +347,8 @@ ENTRY(sys_call_table)
347 .long sys_dup3 347 .long sys_dup3
348 .long sys_pipe2 348 .long sys_pipe2
349 .long sys_inotify_init1 349 .long sys_inotify_init1
350 .long sys_preadv
351 .long sys_pwritev /* 330 */
350 352
351 .rept NR_syscalls-(.-sys_call_table)/4 353 .rept NR_syscalls-(.-sys_call_table)/4
352 .long sys_ni_syscall 354 .long sys_ni_syscall
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S
index 69ba9b10767a..b7fe505e358d 100644
--- a/arch/m68knommu/kernel/vmlinux.lds.S
+++ b/arch/m68knommu/kernel/vmlinux.lds.S
@@ -147,6 +147,8 @@ SECTIONS {
147 . = ALIGN(4); 147 . = ALIGN(4);
148 _sdata = . ; 148 _sdata = . ;
149 DATA_DATA 149 DATA_DATA
150 . = ALIGN(32);
151 *(.data.cacheline_aligned)
150 . = ALIGN(8192) ; 152 . = ALIGN(8192) ;
151 *(.data.init_task) 153 *(.data.init_task)
152 _edata = . ; 154 _edata = . ;
diff --git a/arch/m68knommu/platform/527x/config.c b/arch/m68knommu/platform/527x/config.c
index 49343fb157b0..428b15922ef5 100644
--- a/arch/m68knommu/platform/527x/config.c
+++ b/arch/m68knommu/platform/527x/config.c
@@ -189,10 +189,15 @@ static void __init m527x_fec_init(void)
189 m527x_fec_irq_init(0); 189 m527x_fec_irq_init(0);
190 190
191 /* Set multi-function pins to ethernet mode for fec0 */ 191 /* Set multi-function pins to ethernet mode for fec0 */
192#if defined(CONFIG_M5271)
193 v = readb(MCF_IPSBAR + 0x100047);
194 writeb(v | 0xf0, MCF_IPSBAR + 0x100047);
195#else
192 par = readw(MCF_IPSBAR + 0x100082); 196 par = readw(MCF_IPSBAR + 0x100082);
193 writew(par | 0xf00, MCF_IPSBAR + 0x100082); 197 writew(par | 0xf00, MCF_IPSBAR + 0x100082);
194 v = readb(MCF_IPSBAR + 0x100078); 198 v = readb(MCF_IPSBAR + 0x100078);
195 writeb(v | 0xc0, MCF_IPSBAR + 0x100078); 199 writeb(v | 0xc0, MCF_IPSBAR + 0x100078);
200#endif
196 201
197#ifdef CONFIG_FEC2 202#ifdef CONFIG_FEC2
198 m527x_fec_irq_init(1); 203 m527x_fec_irq_init(1);
diff --git a/arch/m68knommu/platform/68328/timers.c b/arch/m68knommu/platform/68328/timers.c
index 6bafefa546e5..309f725995bf 100644
--- a/arch/m68knommu/platform/68328/timers.c
+++ b/arch/m68knommu/platform/68328/timers.c
@@ -75,7 +75,7 @@ static struct irqaction m68328_timer_irq = {
75 75
76/***************************************************************************/ 76/***************************************************************************/
77 77
78static cycle_t m68328_read_clk(void) 78static cycle_t m68328_read_clk(struct clocksource *cs)
79{ 79{
80 unsigned long flags; 80 unsigned long flags;
81 u32 cycles; 81 u32 cycles;
diff --git a/arch/m68knommu/platform/coldfire/dma_timer.c b/arch/m68knommu/platform/coldfire/dma_timer.c
index 772578b1084f..a5f562823d7a 100644
--- a/arch/m68knommu/platform/coldfire/dma_timer.c
+++ b/arch/m68knommu/platform/coldfire/dma_timer.c
@@ -34,7 +34,7 @@
34#define DMA_DTMR_CLK_DIV_16 (2 << 1) 34#define DMA_DTMR_CLK_DIV_16 (2 << 1)
35#define DMA_DTMR_ENABLE (1 << 0) 35#define DMA_DTMR_ENABLE (1 << 0)
36 36
37static cycle_t cf_dt_get_cycles(void) 37static cycle_t cf_dt_get_cycles(struct clocksource *cs)
38{ 38{
39 return __raw_readl(DTCN0); 39 return __raw_readl(DTCN0);
40} 40}
diff --git a/arch/m68knommu/platform/coldfire/pit.c b/arch/m68knommu/platform/coldfire/pit.c
index 2a12e7fa9748..61b96211f8ff 100644
--- a/arch/m68knommu/platform/coldfire/pit.c
+++ b/arch/m68knommu/platform/coldfire/pit.c
@@ -125,7 +125,7 @@ static struct irqaction pit_irq = {
125 125
126/***************************************************************************/ 126/***************************************************************************/
127 127
128static cycle_t pit_read_clk(void) 128static cycle_t pit_read_clk(struct clocksource *cs)
129{ 129{
130 unsigned long flags; 130 unsigned long flags;
131 u32 cycles; 131 u32 cycles;
diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c
index 454f25493491..1ba8a3731653 100644
--- a/arch/m68knommu/platform/coldfire/timers.c
+++ b/arch/m68knommu/platform/coldfire/timers.c
@@ -78,7 +78,7 @@ static struct irqaction mcftmr_timer_irq = {
78 78
79/***************************************************************************/ 79/***************************************************************************/
80 80
81static cycle_t mcftmr_read_clk(void) 81static cycle_t mcftmr_read_clk(struct clocksource *cs)
82{ 82{
83 unsigned long flags; 83 unsigned long flags;
84 u32 cycles; 84 u32 cycles;
diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 0dcbb9832974..aaadfa701da3 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -26,21 +26,19 @@ ifeq (,$(findstring spartan2,$(CONFIG_XILINX_MICROBLAZE0_FAMILY)))
26endif 26endif
27CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div 27CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
28CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift 28CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
29CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP) += -mxl-pattern-compare 29CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
30 30
31CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER)) 31CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
32 32
33# The various CONFIG_XILINX cpu features options are integers 0/1/2... 33# The various CONFIG_XILINX cpu features options are integers 0/1/2...
34# rather than bools y/n 34# rather than bools y/n
35CFLAGS += $(CPUFLAGS-1)
36CFLAGS += $(CPUFLAGS-2)
37 35
38# r31 holds current when in kernel mode 36# r31 holds current when in kernel mode
39CFLAGS += -ffixed-r31 37CFLAGS_KERNEL += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2)
40 38
41LDFLAGS_BLOB := --format binary --oformat elf32-microblaze 39LDFLAGS_BLOB := --format binary --oformat elf32-microblaze
42 40
43LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) 41LIBGCC := $(shell $(CC) $(CFLAGS_KERNEL) -print-libgcc-file-name)
44 42
45head-y := arch/microblaze/kernel/head.o 43head-y := arch/microblaze/kernel/head.o
46libs-y += arch/microblaze/lib/ $(LIBGCC) 44libs-y += arch/microblaze/lib/ $(LIBGCC)
diff --git a/arch/microblaze/include/asm/auxvec.h b/arch/microblaze/include/asm/auxvec.h
index e69de29bb2d1..8b137891791f 100644
--- a/arch/microblaze/include/asm/auxvec.h
+++ b/arch/microblaze/include/asm/auxvec.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
index c4c64b43c074..c209c47509d5 100644
--- a/arch/microblaze/include/asm/cache.h
+++ b/arch/microblaze/include/asm/cache.h
@@ -37,9 +37,4 @@ void _invalidate_dcache(unsigned int addr);
37#define __disable_dcache() _disable_dcache() 37#define __disable_dcache() _disable_dcache()
38#define __invalidate_dcache(addr) _invalidate_dcache(addr) 38#define __invalidate_dcache(addr) _invalidate_dcache(addr)
39 39
40/* FIXME - I don't think this is right */
41#ifdef CONFIG_XILINX_UNCACHED_SHADOW
42#define UNCACHED_SHADOW_MASK (CONFIG_XILINX_ERAM_SIZE)
43#endif
44
45#endif /* _ASM_MICROBLAZE_CACHE_H */ 40#endif /* _ASM_MICROBLAZE_CACHE_H */
diff --git a/arch/microblaze/include/asm/cputable.h b/arch/microblaze/include/asm/cputable.h
index e69de29bb2d1..8b137891791f 100644
--- a/arch/microblaze/include/asm/cputable.h
+++ b/arch/microblaze/include/asm/cputable.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/include/asm/entry.h b/arch/microblaze/include/asm/entry.h
index 7f57e42ee467..e4c3aef884df 100644
--- a/arch/microblaze/include/asm/entry.h
+++ b/arch/microblaze/include/asm/entry.h
@@ -29,7 +29,9 @@ DECLARE_PER_CPU(unsigned int, KM); /* Kernel/user mode */
29DECLARE_PER_CPU(unsigned int, ENTRY_SP); /* Saved SP on kernel entry */ 29DECLARE_PER_CPU(unsigned int, ENTRY_SP); /* Saved SP on kernel entry */
30DECLARE_PER_CPU(unsigned int, R11_SAVE); /* Temp variable for entry */ 30DECLARE_PER_CPU(unsigned int, R11_SAVE); /* Temp variable for entry */
31DECLARE_PER_CPU(unsigned int, CURRENT_SAVE); /* Saved current pointer */ 31DECLARE_PER_CPU(unsigned int, CURRENT_SAVE); /* Saved current pointer */
32DECLARE_PER_CPU(unsigned int, SYSCALL_SAVE); /* Saved syscall number */
33# endif /* __ASSEMBLY__ */ 32# endif /* __ASSEMBLY__ */
34 33
34/* noMMU hasn't any space for args */
35# define STATE_SAVE_ARG_SPACE (0)
36
35#endif /* _ASM_MICROBLAZE_ENTRY_H */ 37#endif /* _ASM_MICROBLAZE_ENTRY_H */
diff --git a/arch/microblaze/include/asm/exceptions.h b/arch/microblaze/include/asm/exceptions.h
index 4cdd2159f470..24ca540e77c0 100644
--- a/arch/microblaze/include/asm/exceptions.h
+++ b/arch/microblaze/include/asm/exceptions.h
@@ -61,6 +61,9 @@
61asmlinkage void full_exception(struct pt_regs *regs, unsigned int type, 61asmlinkage void full_exception(struct pt_regs *regs, unsigned int type,
62 int fsr, int addr); 62 int fsr, int addr);
63 63
64void die(const char *str, struct pt_regs *fp, long err);
65void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr);
66
64#if defined(CONFIG_XMON) 67#if defined(CONFIG_XMON)
65extern void xmon(struct pt_regs *regs); 68extern void xmon(struct pt_regs *regs);
66extern int xmon_bpt(struct pt_regs *regs); 69extern int xmon_bpt(struct pt_regs *regs);
diff --git a/arch/microblaze/include/asm/ftrace.h b/arch/microblaze/include/asm/ftrace.h
new file mode 100644
index 000000000000..8b137891791f
--- /dev/null
+++ b/arch/microblaze/include/asm/ftrace.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/include/asm/hw_irq.h b/arch/microblaze/include/asm/hw_irq.h
index e69de29bb2d1..8b137891791f 100644
--- a/arch/microblaze/include/asm/hw_irq.h
+++ b/arch/microblaze/include/asm/hw_irq.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index cfab0342588d..8b5853ee6b5c 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -12,7 +12,6 @@
12#include <asm/byteorder.h> 12#include <asm/byteorder.h>
13#include <asm/page.h> 13#include <asm/page.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <asm/page.h>
16 15
17#define IO_SPACE_LIMIT (0xFFFFFFFF) 16#define IO_SPACE_LIMIT (0xFFFFFFFF)
18 17
diff --git a/arch/microblaze/include/asm/of_platform.h b/arch/microblaze/include/asm/of_platform.h
index 187c0eedaece..37491276c6ca 100644
--- a/arch/microblaze/include/asm/of_platform.h
+++ b/arch/microblaze/include/asm/of_platform.h
@@ -36,16 +36,6 @@ static const struct of_device_id of_default_bus_ids[] = {
36 {}, 36 {},
37}; 37};
38 38
39/* Platform drivers register/unregister */
40static inline int of_register_platform_driver(struct of_platform_driver *drv)
41{
42 return of_register_driver(drv, &of_platform_bus_type);
43}
44static inline void of_unregister_platform_driver(struct of_platform_driver *drv)
45{
46 of_unregister_driver(drv);
47}
48
49/* Platform devices and busses creation */ 39/* Platform devices and busses creation */
50extern struct of_device *of_platform_device_create(struct device_node *np, 40extern struct of_device *of_platform_device_create(struct device_node *np,
51 const char *bus_id, 41 const char *bus_id,
diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
index d8e15434ba21..9329029d2614 100644
--- a/arch/microblaze/include/asm/processor.h
+++ b/arch/microblaze/include/asm/processor.h
@@ -15,6 +15,8 @@
15#include <asm/setup.h> 15#include <asm/setup.h>
16#include <asm/registers.h> 16#include <asm/registers.h>
17#include <asm/segment.h> 17#include <asm/segment.h>
18#include <asm/entry.h>
19#include <asm/current.h>
18 20
19# ifndef __ASSEMBLY__ 21# ifndef __ASSEMBLY__
20/* from kernel/cpu/mb.c */ 22/* from kernel/cpu/mb.c */
@@ -26,6 +28,12 @@ extern const struct seq_operations cpuinfo_op;
26 28
27# endif /* __ASSEMBLY__ */ 29# endif /* __ASSEMBLY__ */
28 30
31#define task_pt_regs(tsk) \
32 (((struct pt_regs *)(THREAD_SIZE + task_stack_page(tsk))) - 1)
33
34/* Do necessary setup to start up a newly executed thread. */
35void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long usp);
36
29/* 37/*
30 * User space process size: memory size 38 * User space process size: memory size
31 * 39 *
@@ -55,16 +63,6 @@ struct task_struct;
55struct thread_struct { }; 63struct thread_struct { };
56# define INIT_THREAD { } 64# define INIT_THREAD { }
57 65
58/* Do necessary setup to start up a newly executed thread. */
59static inline void start_thread(struct pt_regs *regs,
60 unsigned long pc,
61 unsigned long usp)
62{
63 regs->pc = pc;
64 regs->r1 = usp;
65 regs->kernel_mode = 0;
66}
67
68/* Free all resources held by a thread. */ 66/* Free all resources held by a thread. */
69static inline void release_thread(struct task_struct *dead_task) 67static inline void release_thread(struct task_struct *dead_task)
70{ 68{
@@ -84,9 +82,6 @@ extern unsigned long get_wchan(struct task_struct *p);
84 */ 82 */
85extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); 83extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
86 84
87# define task_pt_regs(tsk) \
88 (((struct pt_regs *)(THREAD_SIZE + task_stack_page(tsk))) - 1)
89
90# define KSTK_EIP(tsk) (0) 85# define KSTK_EIP(tsk) (0)
91# define KSTK_ESP(tsk) (0) 86# define KSTK_ESP(tsk) (0)
92 87
diff --git a/arch/microblaze/include/asm/ptrace.h b/arch/microblaze/include/asm/ptrace.h
index f1f03486428a..55015bce5e47 100644
--- a/arch/microblaze/include/asm/ptrace.h
+++ b/arch/microblaze/include/asm/ptrace.h
@@ -52,10 +52,10 @@ struct pt_regs {
52 microblaze_reg_t ear; 52 microblaze_reg_t ear;
53 microblaze_reg_t esr; 53 microblaze_reg_t esr;
54 microblaze_reg_t fsr; 54 microblaze_reg_t fsr;
55 int kernel_mode; 55 int pt_mode;
56}; 56};
57 57
58#define kernel_mode(regs) ((regs)->kernel_mode) 58#define kernel_mode(regs) ((regs)->pt_mode)
59#define user_mode(regs) (!kernel_mode(regs)) 59#define user_mode(regs) (!kernel_mode(regs))
60 60
61#define instruction_pointer(regs) ((regs)->pc) 61#define instruction_pointer(regs) ((regs)->pc)
diff --git a/arch/microblaze/include/asm/socket.h b/arch/microblaze/include/asm/socket.h
index f919b6b540ac..825936860314 100644
--- a/arch/microblaze/include/asm/socket.h
+++ b/arch/microblaze/include/asm/socket.h
@@ -63,4 +63,7 @@
63 63
64#define SO_MARK 36 64#define SO_MARK 36
65 65
66#define SO_TIMESTAMPING 37
67#define SCM_TIMESTAMPING SO_TIMESTAMPING
68
66#endif /* _ASM_MICROBLAZE_SOCKET_H */ 69#endif /* _ASM_MICROBLAZE_SOCKET_H */
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index d9d3903fde3f..b5e2f5fa5c53 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -378,8 +378,10 @@
378#define __NR_sendmsg 360 /* new */ 378#define __NR_sendmsg 360 /* new */
379#define __NR_recvmsg 361 /* new */ 379#define __NR_recvmsg 361 /* new */
380#define __NR_accept04 362 /* new */ 380#define __NR_accept04 362 /* new */
381#define __NR_preadv 363 /* new */
382#define __NR_pwritev 364 /* new */
381 383
382#define __NR_syscalls 363 384#define __NR_syscalls 365
383 385
384#ifdef __KERNEL__ 386#ifdef __KERNEL__
385#ifndef __ASSEMBLY__ 387#ifndef __ASSEMBLY__
diff --git a/arch/microblaze/include/asm/user.h b/arch/microblaze/include/asm/user.h
index e69de29bb2d1..8b137891791f 100644
--- a/arch/microblaze/include/asm/user.h
+++ b/arch/microblaze/include/asm/user.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/include/asm/vga.h b/arch/microblaze/include/asm/vga.h
index e69de29bb2d1..8b137891791f 100644
--- a/arch/microblaze/include/asm/vga.h
+++ b/arch/microblaze/include/asm/vga.h
@@ -0,0 +1 @@
diff --git a/arch/microblaze/kernel/asm-offsets.c b/arch/microblaze/kernel/asm-offsets.c
index 38e1a2e8ad0c..aabd9e9423a6 100644
--- a/arch/microblaze/kernel/asm-offsets.c
+++ b/arch/microblaze/kernel/asm-offsets.c
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
57 DEFINE(PT_R29, offsetof(struct pt_regs, r29)); 57 DEFINE(PT_R29, offsetof(struct pt_regs, r29));
58 DEFINE(PT_R30, offsetof(struct pt_regs, r30)); 58 DEFINE(PT_R30, offsetof(struct pt_regs, r30));
59 DEFINE(PT_R31, offsetof(struct pt_regs, r31)); 59 DEFINE(PT_R31, offsetof(struct pt_regs, r31));
60 DEFINE(PT_MODE, offsetof(struct pt_regs, kernel_mode)); 60 DEFINE(PT_MODE, offsetof(struct pt_regs, pt_mode));
61 BLANK(); 61 BLANK();
62 62
63 /* Magic offsets for PTRACE PEEK/POKE etc */ 63 /* Magic offsets for PTRACE PEEK/POKE etc */
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c
index be9fecca4f91..af866a450125 100644
--- a/arch/microblaze/kernel/cpu/cache.c
+++ b/arch/microblaze/kernel/cpu/cache.c
@@ -100,7 +100,6 @@ void _enable_dcache(void)
100 100
101void _disable_dcache(void) 101void _disable_dcache(void)
102{ 102{
103 if (cpuinfo.use_dcache) {
104#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR 103#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR
105 __asm__ __volatile__ (" \ 104 __asm__ __volatile__ (" \
106 msrclr r0, %0; \ 105 msrclr r0, %0; \
@@ -119,12 +118,10 @@ void _disable_dcache(void)
119 : "i" (MSR_DCE) \ 118 : "i" (MSR_DCE) \
120 : "memory", "r12"); 119 : "memory", "r12");
121#endif 120#endif
122 }
123} 121}
124 122
125void _invalidate_dcache(unsigned int addr) 123void _invalidate_dcache(unsigned int addr)
126{ 124{
127 if (cpuinfo.use_dcache)
128 __asm__ __volatile__ (" \ 125 __asm__ __volatile__ (" \
129 wdc %0, r0" \ 126 wdc %0, r0" \
130 : \ 127 : \
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
index cf7424a6bb87..153f57c57b6d 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c
@@ -30,6 +30,13 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
30 int temp; /* for saving temp value */ 30 int temp; /* for saving temp value */
31 get_pvr(&pvr); 31 get_pvr(&pvr);
32 32
33 CI(ver_code, VERSION);
34 if (!ci->ver_code) {
35 printk(KERN_ERR "ERROR: MB has broken PVR regs "
36 "-> use DTS setting\n");
37 return;
38 }
39
33 temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\ 40 temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\
34 PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr); 41 PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr);
35 if (ci->use_instr != temp) 42 if (ci->use_instr != temp)
@@ -60,8 +67,6 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
60 67
61 CI(mmu, USE_MMU); 68 CI(mmu, USE_MMU);
62 69
63 CI(ver_code, VERSION);
64
65 CI(use_icache, USE_ICACHE); 70 CI(use_icache, USE_ICACHE);
66 CI(icache_tagbits, ICACHE_ADDR_TAG_BITS); 71 CI(icache_tagbits, ICACHE_ADDR_TAG_BITS);
67 CI(icache_write, ICACHE_ALLOW_WR); 72 CI(icache_write, ICACHE_ALLOW_WR);
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-static.c b/arch/microblaze/kernel/cpu/cpuinfo-static.c
index cfe44effdb77..450ca6bb828d 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo-static.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo-static.c
@@ -14,8 +14,8 @@
14#include <asm/cpuinfo.h> 14#include <asm/cpuinfo.h>
15#include <asm/pvr.h> 15#include <asm/pvr.h>
16 16
17const static char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY; 17static const char family_string[] = CONFIG_XILINX_MICROBLAZE0_FAMILY;
18const static char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER; 18static const char cpu_ver_string[] = CONFIG_XILINX_MICROBLAZE0_HW_VER;
19 19
20#define err_printk(x) \ 20#define err_printk(x) \
21 early_printk("ERROR: Microblaze " x "- different for kernel and DTS\n"); 21 early_printk("ERROR: Microblaze " x "- different for kernel and DTS\n");
diff --git a/arch/microblaze/kernel/cpu/cpuinfo.c b/arch/microblaze/kernel/cpu/cpuinfo.c
index 4a740dfcf6da..a10bea119b94 100644
--- a/arch/microblaze/kernel/cpu/cpuinfo.c
+++ b/arch/microblaze/kernel/cpu/cpuinfo.c
@@ -71,7 +71,7 @@ void __init setup_cpuinfo(void)
71 __func__); 71 __func__);
72 set_cpuinfo_static(&cpuinfo, cpu); 72 set_cpuinfo_static(&cpuinfo, cpu);
73 break; 73 break;
74/* FIXME I found weird behavior with MB 7.00.a/b 74/* FIXME I found weird behavior with MB 7.00.a/b 7.10.a
75 * please do not use FULL PVR with MMU */ 75 * please do not use FULL PVR with MMU */
76 case 1: 76 case 1:
77 printk(KERN_INFO "%s: Using full CPU PVR support\n", 77 printk(KERN_INFO "%s: Using full CPU PVR support\n",
diff --git a/arch/microblaze/kernel/cpu/mb.c b/arch/microblaze/kernel/cpu/mb.c
index 3b6212bdc8dc..4dcfccdbc364 100644
--- a/arch/microblaze/kernel/cpu/mb.c
+++ b/arch/microblaze/kernel/cpu/mb.c
@@ -115,8 +115,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
115 cpuinfo.hw_debug ? "yes" : "no"); 115 cpuinfo.hw_debug ? "yes" : "no");
116 116
117 count += seq_printf(m, 117 count += seq_printf(m,
118 "PVR-USR1:\t%x\n" 118 "PVR-USR1:\t%02x\n"
119 "PVR-USR2:\t%x\n", 119 "PVR-USR2:\t%08x\n",
120 cpuinfo.pvr_user1, 120 cpuinfo.pvr_user1,
121 cpuinfo.pvr_user2); 121 cpuinfo.pvr_user2);
122 122
diff --git a/arch/microblaze/kernel/early_printk.c b/arch/microblaze/kernel/early_printk.c
index 62cc78993f44..4b0f0fdb9ca0 100644
--- a/arch/microblaze/kernel/early_printk.c
+++ b/arch/microblaze/kernel/early_printk.c
@@ -36,7 +36,7 @@ static void early_printk_putc(char c)
36 36
37 unsigned retries = 10000; 37 unsigned retries = 10000;
38 /* read status bit - 0x8 offset */ 38 /* read status bit - 0x8 offset */
39 while (retries-- && (in_be32(base_addr + 8) & (1 << 3))) 39 while (--retries && (in_be32(base_addr + 8) & (1 << 3)))
40 ; 40 ;
41 41
42 /* Only attempt the iowrite if we didn't timeout */ 42 /* Only attempt the iowrite if we didn't timeout */
diff --git a/arch/microblaze/kernel/of_device.c b/arch/microblaze/kernel/of_device.c
index 717edf4ad0b4..9a0f7632c47c 100644
--- a/arch/microblaze/kernel/of_device.c
+++ b/arch/microblaze/kernel/of_device.c
@@ -13,7 +13,6 @@ void of_device_make_bus_id(struct of_device *dev)
13{ 13{
14 static atomic_t bus_no_reg_magic; 14 static atomic_t bus_no_reg_magic;
15 struct device_node *node = dev->node; 15 struct device_node *node = dev->node;
16 char *name = dev->dev.bus_id;
17 const u32 *reg; 16 const u32 *reg;
18 u64 addr; 17 u64 addr;
19 int magic; 18 int magic;
@@ -25,9 +24,8 @@ void of_device_make_bus_id(struct of_device *dev)
25 if (reg) { 24 if (reg) {
26 addr = of_translate_address(node, reg); 25 addr = of_translate_address(node, reg);
27 if (addr != OF_BAD_ADDR) { 26 if (addr != OF_BAD_ADDR) {
28 snprintf(name, BUS_ID_SIZE, 27 dev_set_name(&dev->dev, "%llx.%s",
29 "%llx.%s", (unsigned long long)addr, 28 (unsigned long long)addr, node->name);
30 node->name);
31 return; 29 return;
32 } 30 }
33 } 31 }
@@ -37,7 +35,7 @@ void of_device_make_bus_id(struct of_device *dev)
37 * counter (and pray...) 35 * counter (and pray...)
38 */ 36 */
39 magic = atomic_add_return(1, &bus_no_reg_magic); 37 magic = atomic_add_return(1, &bus_no_reg_magic);
40 snprintf(name, BUS_ID_SIZE, "%s.%d", node->name, magic - 1); 38 dev_set_name(&dev->dev, "%s.%d", node->name, magic - 1);
41} 39}
42EXPORT_SYMBOL(of_device_make_bus_id); 40EXPORT_SYMBOL(of_device_make_bus_id);
43 41
@@ -58,7 +56,7 @@ struct of_device *of_device_alloc(struct device_node *np,
58 dev->dev.archdata.of_node = np; 56 dev->dev.archdata.of_node = np;
59 57
60 if (bus_id) 58 if (bus_id)
61 strlcpy(dev->dev.bus_id, bus_id, BUS_ID_SIZE); 59 dev_set_name(&dev->dev, bus_id);
62 else 60 else
63 of_device_make_bus_id(dev); 61 of_device_make_bus_id(dev);
64 62
diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c
index 60e9ed7d3132..07d4fa339eda 100644
--- a/arch/microblaze/kernel/process.c
+++ b/arch/microblaze/kernel/process.c
@@ -18,7 +18,7 @@
18 18
19void show_regs(struct pt_regs *regs) 19void show_regs(struct pt_regs *regs)
20{ 20{
21 printk(KERN_INFO " Registers dump: mode=%X\r\n", regs->kernel_mode); 21 printk(KERN_INFO " Registers dump: mode=%X\r\n", regs->pt_mode);
22 printk(KERN_INFO " r1=%08lX, r2=%08lX, r3=%08lX, r4=%08lX\n", 22 printk(KERN_INFO " r1=%08lX, r2=%08lX, r3=%08lX, r4=%08lX\n",
23 regs->r1, regs->r2, regs->r3, regs->r4); 23 regs->r1, regs->r2, regs->r3, regs->r4);
24 printk(KERN_INFO " r5=%08lX, r6=%08lX, r7=%08lX, r8=%08lX\n", 24 printk(KERN_INFO " r5=%08lX, r6=%08lX, r7=%08lX, r8=%08lX\n",
@@ -37,8 +37,6 @@ void show_regs(struct pt_regs *regs)
37 regs->r29, regs->r30, regs->r31, regs->pc); 37 regs->r29, regs->r30, regs->r31, regs->pc);
38 printk(KERN_INFO " msr=%08lX, ear=%08lX, esr=%08lX, fsr=%08lX\n", 38 printk(KERN_INFO " msr=%08lX, ear=%08lX, esr=%08lX, fsr=%08lX\n",
39 regs->msr, regs->ear, regs->esr, regs->fsr); 39 regs->msr, regs->ear, regs->esr, regs->fsr);
40 while (1)
41 ;
42} 40}
43 41
44void (*pm_idle)(void); 42void (*pm_idle)(void);
@@ -115,8 +113,7 @@ void flush_thread(void)
115{ 113{
116} 114}
117 115
118/* FIXME - here will be a proposed change -> remove nr parameter */ 116int copy_thread(unsigned long clone_flags, unsigned long usp,
119int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
120 unsigned long unused, 117 unsigned long unused,
121 struct task_struct *p, struct pt_regs *regs) 118 struct task_struct *p, struct pt_regs *regs)
122{ 119{
@@ -164,7 +161,6 @@ static void kernel_thread_helper(int (*fn)(void *), void *arg)
164int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) 161int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
165{ 162{
166 struct pt_regs regs; 163 struct pt_regs regs;
167 int ret;
168 164
169 memset(&regs, 0, sizeof(regs)); 165 memset(&regs, 0, sizeof(regs));
170 /* store them in non-volatile registers */ 166 /* store them in non-volatile registers */
@@ -172,12 +168,10 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
172 regs.r6 = (unsigned long)arg; 168 regs.r6 = (unsigned long)arg;
173 local_save_flags(regs.msr); 169 local_save_flags(regs.msr);
174 regs.pc = (unsigned long)kernel_thread_helper; 170 regs.pc = (unsigned long)kernel_thread_helper;
175 regs.kernel_mode = 1; 171 regs.pt_mode = 1;
176 172
177 ret = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, 173 return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0,
178 &regs, 0, NULL, NULL); 174 &regs, 0, NULL, NULL);
179
180 return ret;
181} 175}
182 176
183unsigned long get_wchan(struct task_struct *p) 177unsigned long get_wchan(struct task_struct *p)
@@ -185,3 +179,12 @@ unsigned long get_wchan(struct task_struct *p)
185/* TBD (used by procfs) */ 179/* TBD (used by procfs) */
186 return 0; 180 return 0;
187} 181}
182
183/* Set up a thread for executing a new program */
184void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long usp)
185{
186 set_fs(USER_DS);
187 regs->pc = pc;
188 regs->r1 = usp;
189 regs->pt_mode = 0;
190}
diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index 475b1fac5cfd..34c48718061a 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -39,7 +39,6 @@
39#include <asm/system.h> 39#include <asm/system.h>
40#include <asm/mmu.h> 40#include <asm/mmu.h>
41#include <asm/pgtable.h> 41#include <asm/pgtable.h>
42#include <linux/pci.h>
43#include <asm/sections.h> 42#include <asm/sections.h>
44#include <asm/pci-bridge.h> 43#include <asm/pci-bridge.h>
45 44
diff --git a/arch/microblaze/kernel/ptrace.c b/arch/microblaze/kernel/ptrace.c
index 3171e39e3220..b86aa623e36d 100644
--- a/arch/microblaze/kernel/ptrace.c
+++ b/arch/microblaze/kernel/ptrace.c
@@ -32,7 +32,6 @@
32#include <linux/signal.h> 32#include <linux/signal.h>
33 33
34#include <linux/errno.h> 34#include <linux/errno.h>
35#include <linux/ptrace.h>
36#include <asm/processor.h> 35#include <asm/processor.h>
37#include <linux/uaccess.h> 36#include <linux/uaccess.h>
38#include <asm/asm-offsets.h> 37#include <asm/asm-offsets.h>
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index ff347b98863a..40d36931e363 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -37,7 +37,6 @@
37#include <linux/uaccess.h> 37#include <linux/uaccess.h>
38#include <asm/pgtable.h> 38#include <asm/pgtable.h>
39#include <asm/pgalloc.h> 39#include <asm/pgalloc.h>
40#include <linux/signal.h>
41#include <linux/syscalls.h> 40#include <linux/syscalls.h>
42#include <asm/cacheflush.h> 41#include <asm/cacheflush.h>
43#include <asm/syscalls.h> 42#include <asm/syscalls.h>
@@ -179,7 +178,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc, int *rval_p)
179 178
180asmlinkage int sys_sigreturn(struct pt_regs *regs) 179asmlinkage int sys_sigreturn(struct pt_regs *regs)
181{ 180{
182 struct sigframe *frame = (struct sigframe *)regs->r1; 181 struct sigframe *frame =
182 (struct sigframe *)(regs->r1 + STATE_SAVE_ARG_SPACE);
183
183 sigset_t set; 184 sigset_t set;
184 int rval; 185 int rval;
185 186
@@ -210,7 +211,9 @@ badframe:
210 211
211asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) 212asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
212{ 213{
213 struct rt_sigframe *frame = (struct rt_sigframe *)regs->r1; 214 struct rt_sigframe *frame =
215 (struct rt_sigframe *)(regs->r1 + STATE_SAVE_ARG_SPACE);
216
214 sigset_t set; 217 sigset_t set;
215 stack_t st; 218 stack_t st;
216 int rval; 219 int rval;
@@ -337,7 +340,8 @@ static void setup_frame(int sig, struct k_sigaction *ka,
337 goto give_sigsegv; 340 goto give_sigsegv;
338 341
339 /* Set up registers for signal handler */ 342 /* Set up registers for signal handler */
340 regs->r1 = (unsigned long) frame; 343 regs->r1 = (unsigned long) frame - STATE_SAVE_ARG_SPACE;
344
341 /* Signal handler args: */ 345 /* Signal handler args: */
342 regs->r5 = signal; /* Arg 0: signum */ 346 regs->r5 = signal; /* Arg 0: signum */
343 regs->r6 = (unsigned long) &frame->sc; /* arg 1: sigcontext */ 347 regs->r6 = (unsigned long) &frame->sc; /* arg 1: sigcontext */
@@ -415,7 +419,8 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
415 goto give_sigsegv; 419 goto give_sigsegv;
416 420
417 /* Set up registers for signal handler */ 421 /* Set up registers for signal handler */
418 regs->r1 = (unsigned long) frame; 422 regs->r1 = (unsigned long) frame - STATE_SAVE_ARG_SPACE;
423
419 /* Signal handler args: */ 424 /* Signal handler args: */
420 regs->r5 = signal; /* arg 0: signum */ 425 regs->r5 = signal; /* arg 0: signum */
421 regs->r6 = (unsigned long) &frame->info; /* arg 1: siginfo */ 426 regs->r6 = (unsigned long) &frame->info; /* arg 1: siginfo */
diff --git a/arch/microblaze/kernel/sys_microblaze.c b/arch/microblaze/kernel/sys_microblaze.c
index d90b548fb1bb..31905ff590b7 100644
--- a/arch/microblaze/kernel/sys_microblaze.c
+++ b/arch/microblaze/kernel/sys_microblaze.c
@@ -29,9 +29,7 @@
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/err.h> 30#include <linux/err.h>
31#include <linux/fs.h> 31#include <linux/fs.h>
32#include <linux/ipc.h>
33#include <linux/semaphore.h> 32#include <linux/semaphore.h>
34#include <linux/syscalls.h>
35#include <linux/uaccess.h> 33#include <linux/uaccess.h>
36#include <linux/unistd.h> 34#include <linux/unistd.h>
37 35
@@ -133,7 +131,7 @@ sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth)
133 ret = sys_shmctl(first, second, (struct shmid_ds *) ptr); 131 ret = sys_shmctl(first, second, (struct shmid_ds *) ptr);
134 break; 132 break;
135 } 133 }
136 return -EINVAL; 134 return ret;
137} 135}
138 136
139asmlinkage int sys_vfork(struct pt_regs *regs) 137asmlinkage int sys_vfork(struct pt_regs *regs)
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S
index 529b0dbf4fe9..3bb42ec924c2 100644
--- a/arch/microblaze/kernel/syscall_table.S
+++ b/arch/microblaze/kernel/syscall_table.S
@@ -363,3 +363,5 @@ ENTRY(sys_call_table)
363 .long sys_sendmsg /* 360 */ 363 .long sys_sendmsg /* 360 */
364 .long sys_recvmsg 364 .long sys_recvmsg
365 .long sys_ni_syscall 365 .long sys_ni_syscall
366 .long sys_ni_syscall
367 .long sys_ni_syscall
diff --git a/arch/microblaze/kernel/timer.c b/arch/microblaze/kernel/timer.c
index 05a497eefd78..bdfa2f9f0c81 100644
--- a/arch/microblaze/kernel/timer.c
+++ b/arch/microblaze/kernel/timer.c
@@ -176,7 +176,7 @@ static __init void microblaze_clockevent_init(void)
176 clockevents_register_device(&clockevent_microblaze_timer); 176 clockevents_register_device(&clockevent_microblaze_timer);
177} 177}
178 178
179static cycle_t microblaze_read(void) 179static cycle_t microblaze_read(struct clocksource *cs)
180{ 180{
181 /* reading actual value of timer 1 */ 181 /* reading actual value of timer 1 */
182 return (cycle_t) (in_be32(TIMER_BASE + TCR1)); 182 return (cycle_t) (in_be32(TIMER_BASE + TCR1));
diff --git a/arch/microblaze/kernel/traps.c b/arch/microblaze/kernel/traps.c
index fbdc533c61e3..293ef486013a 100644
--- a/arch/microblaze/kernel/traps.c
+++ b/arch/microblaze/kernel/traps.c
@@ -34,7 +34,7 @@ static int kstack_depth_to_print = 24;
34 34
35static int __init kstack_setup(char *s) 35static int __init kstack_setup(char *s)
36{ 36{
37 kstack_depth_to_print = strict_strtoul(s, 0, 0); 37 kstack_depth_to_print = strict_strtoul(s, 0, NULL);
38 38
39 return 1; 39 return 1;
40} 40}
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 998e5db8cc0f..09b1287a92ce 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1411,13 +1411,12 @@ config PAGE_SIZE_4KB
1411 1411
1412config PAGE_SIZE_8KB 1412config PAGE_SIZE_8KB
1413 bool "8kB" 1413 bool "8kB"
1414 depends on EXPERIMENTAL && CPU_R8000 1414 depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
1415 help 1415 help
1416 Using 8kB page size will result in higher performance kernel at 1416 Using 8kB page size will result in higher performance kernel at
1417 the price of higher memory consumption. This option is available 1417 the price of higher memory consumption. This option is available
1418 only on the R8000 processor. Not that at the time of this writing 1418 only on R8000 and cnMIPS processors. Note that you will need a
1419 this option is still high experimental; there are also issues with 1419 suitable Linux distribution to support this.
1420 compatibility of user applications.
1421 1420
1422config PAGE_SIZE_16KB 1421config PAGE_SIZE_16KB
1423 bool "16kB" 1422 bool "16kB"
@@ -1428,6 +1427,15 @@ config PAGE_SIZE_16KB
1428 all non-R3000 family processors. Note that you will need a suitable 1427 all non-R3000 family processors. Note that you will need a suitable
1429 Linux distribution to support this. 1428 Linux distribution to support this.
1430 1429
1430config PAGE_SIZE_32KB
1431 bool "32kB"
1432 depends on CPU_CAVIUM_OCTEON
1433 help
1434 Using 32kB page size will result in higher performance kernel at
1435 the price of higher memory consumption. This option is available
1436 only on cnMIPS cores. Note that you will need a suitable Linux
1437 distribution to support this.
1438
1431config PAGE_SIZE_64KB 1439config PAGE_SIZE_64KB
1432 bool "64kB" 1440 bool "64kB"
1433 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX 1441 depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
@@ -1958,10 +1966,6 @@ config SECCOMP
1958 1966
1959endmenu 1967endmenu
1960 1968
1961config RWSEM_GENERIC_SPINLOCK
1962 bool
1963 default y
1964
1965config LOCKDEP_SUPPORT 1969config LOCKDEP_SUPPORT
1966 bool 1970 bool
1967 default y 1971 default y
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 8d544c7c9fe9..26947ab85260 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -14,8 +14,6 @@
14 14
15KBUILD_DEFCONFIG := ip22_defconfig 15KBUILD_DEFCONFIG := ip22_defconfig
16 16
17cflags-y := -ffunction-sections
18
19# 17#
20# Select the object file format to substitute into the linker script. 18# Select the object file format to substitute into the linker script.
21# 19#
@@ -50,6 +48,9 @@ ifneq ($(SUBARCH),$(ARCH))
50 endif 48 endif
51endif 49endif
52 50
51cflags-y := -ffunction-sections
52cflags-y += $(call cc-option, -mno-check-zero-division)
53
53ifdef CONFIG_32BIT 54ifdef CONFIG_32BIT
54ld-emul = $(32bit-emul) 55ld-emul = $(32bit-emul)
55vmlinux-32 = vmlinux 56vmlinux-32 = vmlinux
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index f58d4ffb8945..33fbae79af5e 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -44,7 +44,7 @@
44 44
45extern int allow_au1k_wait; /* default off for CP0 Counter */ 45extern int allow_au1k_wait; /* default off for CP0 Counter */
46 46
47static cycle_t au1x_counter1_read(void) 47static cycle_t au1x_counter1_read(struct clocksource *cs)
48{ 48{
49 return au_readl(SYS_RTCREAD); 49 return au_readl(SYS_RTCREAD);
50} 50}
diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c
index 70fd92c31657..96110f217dcd 100644
--- a/arch/mips/cavium-octeon/csrc-octeon.c
+++ b/arch/mips/cavium-octeon/csrc-octeon.c
@@ -38,7 +38,7 @@ void octeon_init_cvmcount(void)
38 local_irq_restore(flags); 38 local_irq_restore(flags);
39} 39}
40 40
41static cycle_t octeon_cvmcount_read(void) 41static cycle_t octeon_cvmcount_read(struct clocksource *cs)
42{ 42{
43 return read_c0_cvmcount(); 43 return read_c0_cvmcount();
44} 44}
diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h
index bac4a960b24c..b1e9e97a9c78 100644
--- a/arch/mips/include/asm/bitops.h
+++ b/arch/mips/include/asm/bitops.h
@@ -567,7 +567,7 @@ static inline unsigned long __fls(unsigned long word)
567 int num; 567 int num;
568 568
569 if (BITS_PER_LONG == 32 && 569 if (BITS_PER_LONG == 32 &&
570 __builtin_constant_p(cpu_has_mips_r) && cpu_has_mips_r) { 570 __builtin_constant_p(cpu_has_clo_clz) && cpu_has_clo_clz) {
571 __asm__( 571 __asm__(
572 " .set push \n" 572 " .set push \n"
573 " .set mips32 \n" 573 " .set mips32 \n"
@@ -644,7 +644,7 @@ static inline int fls(int x)
644{ 644{
645 int r; 645 int r;
646 646
647 if (__builtin_constant_p(cpu_has_mips_r) && cpu_has_mips_r) { 647 if (__builtin_constant_p(cpu_has_clo_clz) && cpu_has_clo_clz) {
648 __asm__("clz %0, %1" : "=r" (x) : "r" (x)); 648 __asm__("clz %0, %1" : "=r" (x) : "r" (x));
649 649
650 return 32 - x; 650 return 32 - x;
diff --git a/arch/mips/include/asm/checksum.h b/arch/mips/include/asm/checksum.h
index 290485ac5407..f2f7c6c264da 100644
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -40,7 +40,7 @@ static inline
40__wsum csum_partial_copy_from_user(const void __user *src, void *dst, int len, 40__wsum csum_partial_copy_from_user(const void __user *src, void *dst, int len,
41 __wsum sum, int *err_ptr) 41 __wsum sum, int *err_ptr)
42{ 42{
43 might_sleep(); 43 might_fault();
44 return __csum_partial_copy_user((__force void *)src, dst, 44 return __csum_partial_copy_user((__force void *)src, dst,
45 len, sum, err_ptr); 45 len, sum, err_ptr);
46} 46}
@@ -53,7 +53,7 @@ static inline
53__wsum csum_and_copy_to_user(const void *src, void __user *dst, int len, 53__wsum csum_and_copy_to_user(const void *src, void __user *dst, int len,
54 __wsum sum, int *err_ptr) 54 __wsum sum, int *err_ptr)
55{ 55{
56 might_sleep(); 56 might_fault();
57 if (access_ok(VERIFY_WRITE, dst, len)) 57 if (access_ok(VERIFY_WRITE, dst, len))
58 return __csum_partial_copy_user(src, (__force void *)dst, 58 return __csum_partial_copy_user(src, (__force void *)dst,
59 len, sum, err_ptr); 59 len, sum, err_ptr);
diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
index 6c5b40905dd6..f58aed354bfd 100644
--- a/arch/mips/include/asm/compat.h
+++ b/arch/mips/include/asm/compat.h
@@ -3,7 +3,6 @@
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/thread_info.h>
8#include <linux/types.h> 7#include <linux/types.h>
9#include <asm/page.h> 8#include <asm/page.h>
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index a0d14f85b781..c0047f861337 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -147,6 +147,15 @@
147#define cpu_has_mips_r (cpu_has_mips32r1 | cpu_has_mips32r2 | \ 147#define cpu_has_mips_r (cpu_has_mips32r1 | cpu_has_mips32r2 | \
148 cpu_has_mips64r1 | cpu_has_mips64r2) 148 cpu_has_mips64r1 | cpu_has_mips64r2)
149 149
150/*
151 * MIPS32, MIPS64, VR5500, IDT32332, IDT32334 and maybe a few other
152 * pre-MIPS32/MIPS53 processors have CLO, CLZ. For 64-bit kernels
153 * cpu_has_clo_clz also indicates the availability of DCLO and DCLZ.
154 */
155# ifndef cpu_has_clo_clz
156# define cpu_has_clo_clz cpu_has_mips_r
157# endif
158
150#ifndef cpu_has_dsp 159#ifndef cpu_has_dsp
151#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP) 160#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP)
152#endif 161#endif
diff --git a/arch/mips/include/asm/div64.h b/arch/mips/include/asm/div64.h
index d1d699105c11..dc5ea5736440 100644
--- a/arch/mips/include/asm/div64.h
+++ b/arch/mips/include/asm/div64.h
@@ -6,105 +6,63 @@
6 * License. See the file "COPYING" in the main directory of this archive 6 * License. See the file "COPYING" in the main directory of this archive
7 * for more details. 7 * for more details.
8 */ 8 */
9#ifndef _ASM_DIV64_H 9#ifndef __ASM_DIV64_H
10#define _ASM_DIV64_H 10#define __ASM_DIV64_H
11 11
12#include <linux/types.h> 12#include <asm-generic/div64.h>
13 13
14#if (_MIPS_SZLONG == 32) 14#if BITS_PER_LONG == 64
15 15
16#include <asm/compiler.h> 16#include <linux/types.h>
17 17
18/* 18/*
19 * No traps on overflows for any of these... 19 * No traps on overflows for any of these...
20 */ 20 */
21 21
22#define do_div64_32(res, high, low, base) ({ \ 22#define __div64_32(n, base) \
23 unsigned long __quot32, __mod32; \ 23({ \
24 unsigned long __cf, __tmp, __tmp2, __i; \ 24 unsigned long __cf, __tmp, __tmp2, __i; \
25 \ 25 unsigned long __quot32, __mod32; \
26 __asm__(".set push\n\t" \ 26 unsigned long __high, __low; \
27 ".set noat\n\t" \ 27 unsigned long long __n; \
28 ".set noreorder\n\t" \ 28 \
29 "move %2, $0\n\t" \ 29 __high = *__n >> 32; \
30 "move %3, $0\n\t" \ 30 __low = __n; \
31 "b 1f\n\t" \ 31 __asm__( \
32 " li %4, 0x21\n" \ 32 " .set push \n" \
33 "0:\n\t" \ 33 " .set noat \n" \
34 "sll $1, %0, 0x1\n\t" \ 34 " .set noreorder \n" \
35 "srl %3, %0, 0x1f\n\t" \ 35 " move %2, $0 \n" \
36 "or %0, $1, %5\n\t" \ 36 " move %3, $0 \n" \
37 "sll %1, %1, 0x1\n\t" \ 37 " b 1f \n" \
38 "sll %2, %2, 0x1\n" \ 38 " li %4, 0x21 \n" \
39 "1:\n\t" \ 39 "0: \n" \
40 "bnez %3, 2f\n\t" \ 40 " sll $1, %0, 0x1 \n" \
41 " sltu %5, %0, %z6\n\t" \ 41 " srl %3, %0, 0x1f \n" \
42 "bnez %5, 3f\n" \ 42 " or %0, $1, %5 \n" \
43 "2:\n\t" \ 43 " sll %1, %1, 0x1 \n" \
44 " addiu %4, %4, -1\n\t" \ 44 " sll %2, %2, 0x1 \n" \
45 "subu %0, %0, %z6\n\t" \ 45 "1: \n" \
46 "addiu %2, %2, 1\n" \ 46 " bnez %3, 2f \n" \
47 "3:\n\t" \ 47 " sltu %5, %0, %z6 \n" \
48 "bnez %4, 0b\n\t" \ 48 " bnez %5, 3f \n" \
49 " srl %5, %1, 0x1f\n\t" \ 49 "2: \n" \
50 ".set pop" \ 50 " addiu %4, %4, -1 \n" \
51 : "=&r" (__mod32), "=&r" (__tmp), \ 51 " subu %0, %0, %z6 \n" \
52 "=&r" (__quot32), "=&r" (__cf), \ 52 " addiu %2, %2, 1 \n" \
53 "=&r" (__i), "=&r" (__tmp2) \ 53 "3: \n" \
54 : "Jr" (base), "0" (high), "1" (low)); \ 54 " bnez %4, 0b\n\t" \
55 \ 55 " srl %5, %1, 0x1f\n\t" \
56 (res) = __quot32; \ 56 " .set pop" \
57 __mod32; }) 57 : "=&r" (__mod32), "=&r" (__tmp), \
58 58 "=&r" (__quot32), "=&r" (__cf), \
59#define do_div(n, base) ({ \ 59 "=&r" (__i), "=&r" (__tmp2) \
60 unsigned long long __quot; \ 60 : "Jr" (base), "0" (__high), "1" (__low)); \
61 unsigned long __mod; \ 61 \
62 unsigned long long __div; \ 62 (__n) = __quot32; \
63 unsigned long __upper, __low, __high, __base; \ 63 __mod32; \
64 \ 64})
65 __div = (n); \
66 __base = (base); \
67 \
68 __high = __div >> 32; \
69 __low = __div; \
70 __upper = __high; \
71 \
72 if (__high) \
73 __asm__("divu $0, %z2, %z3" \
74 : "=h" (__upper), "=l" (__high) \
75 : "Jr" (__high), "Jr" (__base) \
76 : GCC_REG_ACCUM); \
77 \
78 __mod = do_div64_32(__low, __upper, __low, __base); \
79 \
80 __quot = __high; \
81 __quot = __quot << 32 | __low; \
82 (n) = __quot; \
83 __mod; })
84
85#endif /* (_MIPS_SZLONG == 32) */
86
87#if (_MIPS_SZLONG == 64)
88
89/*
90 * Hey, we're already 64-bit, no
91 * need to play games..
92 */
93#define do_div(n, base) ({ \
94 unsigned long __quot; \
95 unsigned int __mod; \
96 unsigned long __div; \
97 unsigned int __base; \
98 \
99 __div = (n); \
100 __base = (base); \
101 \
102 __mod = __div % __base; \
103 __quot = __div / __base; \
104 \
105 (n) = __quot; \
106 __mod; })
107 65
108#endif /* (_MIPS_SZLONG == 64) */ 66#endif /* BITS_PER_LONG == 64 */
109 67
110#endif /* _ASM_DIV64_H */ 68#endif /* __ASM_DIV64_H */
diff --git a/arch/mips/include/asm/dma-mapping.h b/arch/mips/include/asm/dma-mapping.h
index c64afb40cd06..d16afddb09a9 100644
--- a/arch/mips/include/asm/dma-mapping.h
+++ b/arch/mips/include/asm/dma-mapping.h
@@ -24,8 +24,13 @@ extern int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
24 enum dma_data_direction direction); 24 enum dma_data_direction direction);
25extern dma_addr_t dma_map_page(struct device *dev, struct page *page, 25extern dma_addr_t dma_map_page(struct device *dev, struct page *page,
26 unsigned long offset, size_t size, enum dma_data_direction direction); 26 unsigned long offset, size_t size, enum dma_data_direction direction);
27extern void dma_unmap_page(struct device *dev, dma_addr_t dma_address, 27
28 size_t size, enum dma_data_direction direction); 28static inline void dma_unmap_page(struct device *dev, dma_addr_t dma_address,
29 size_t size, enum dma_data_direction direction)
30{
31 dma_unmap_single(dev, dma_address, size, direction);
32}
33
29extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg, 34extern void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
30 int nhwentries, enum dma_data_direction direction); 35 int nhwentries, enum dma_data_direction direction);
31extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, 36extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
diff --git a/arch/mips/include/asm/fixmap.h b/arch/mips/include/asm/fixmap.h
index 9cc8522a394f..0f5caa1307f1 100644
--- a/arch/mips/include/asm/fixmap.h
+++ b/arch/mips/include/asm/fixmap.h
@@ -108,6 +108,9 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
108 return __virt_to_fix(vaddr); 108 return __virt_to_fix(vaddr);
109} 109}
110 110
111#define kmap_get_fixmap_pte(vaddr) \
112 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr))
113
111/* 114/*
112 * Called from pgtable_init() 115 * Called from pgtable_init()
113 */ 116 */
diff --git a/arch/mips/include/asm/hazards.h b/arch/mips/include/asm/hazards.h
index a12d971db4f9..0eaf77ffbc4f 100644
--- a/arch/mips/include/asm/hazards.h
+++ b/arch/mips/include/asm/hazards.h
@@ -138,8 +138,9 @@ do { \
138 __instruction_hazard(); \ 138 __instruction_hazard(); \
139} while (0) 139} while (0)
140 140
141#elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \ 141#elif defined(CONFIG_MACH_ALCHEMY) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \
142 defined(CONFIG_CPU_R5500) || defined(CONFIG_MACH_ALCHEMY) 142 defined(CONFIG_CPU_LOONGSON2) || defined(CONFIG_CPU_R10000) || \
143 defined(CONFIG_CPU_R5500)
143 144
144/* 145/*
145 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. 146 * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer.
diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h
index 4374ab2adc75..25adfb02923d 100644
--- a/arch/mips/include/asm/highmem.h
+++ b/arch/mips/include/asm/highmem.h
@@ -30,8 +30,6 @@
30/* declarations for highmem.c */ 30/* declarations for highmem.c */
31extern unsigned long highstart_pfn, highend_pfn; 31extern unsigned long highstart_pfn, highend_pfn;
32 32
33extern pte_t *kmap_pte;
34extern pgprot_t kmap_prot;
35extern pte_t *pkmap_page_table; 33extern pte_t *pkmap_page_table;
36 34
37/* 35/*
@@ -62,6 +60,10 @@ extern struct page *__kmap_atomic_to_page(void *ptr);
62 60
63#define flush_cache_kmaps() flush_cache_all() 61#define flush_cache_kmaps() flush_cache_all()
64 62
63extern void kmap_init(void);
64
65#define kmap_prot PAGE_KERNEL
66
65#endif /* __KERNEL__ */ 67#endif /* __KERNEL__ */
66 68
67#endif /* _ASM_HIGHMEM_H */ 69#endif /* _ASM_HIGHMEM_H */
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 62f91f50b5b5..854e95f1b07c 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -715,7 +715,7 @@ enum soc_au1500_ints {
715#ifdef CONFIG_SOC_AU1100 715#ifdef CONFIG_SOC_AU1100
716enum soc_au1100_ints { 716enum soc_au1100_ints {
717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8, 717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
718 AU1100_UART0_INT, 718 AU1100_UART0_INT = AU1100_FIRST_INT,
719 AU1100_UART1_INT, 719 AU1100_UART1_INT,
720 AU1100_SD_INT, 720 AU1100_SD_INT,
721 AU1100_UART3_INT, 721 AU1100_UART3_INT,
@@ -902,8 +902,8 @@ enum soc_au1200_ints {
902 AU1000_RTC_MATCH0_INT, 902 AU1000_RTC_MATCH0_INT,
903 AU1000_RTC_MATCH1_INT, 903 AU1000_RTC_MATCH1_INT,
904 AU1000_RTC_MATCH2_INT, 904 AU1000_RTC_MATCH2_INT,
905 905 AU1200_GPIO_203,
906 AU1200_NAND_INT = AU1200_FIRST_INT + 23, 906 AU1200_NAND_INT,
907 AU1200_GPIO_204, 907 AU1200_GPIO_204,
908 AU1200_GPIO_205, 908 AU1200_GPIO_205,
909 AU1200_GPIO_206, 909 AU1200_GPIO_206,
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h b/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
index 60638b8969ba..5656c72de6d3 100644
--- a/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_ide.h
@@ -46,20 +46,6 @@
46#define CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON 0 46#define CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON 0
47#endif 47#endif
48 48
49#ifdef CONFIG_PM
50/*
51 * This will enable the device to be powered up when write() or read()
52 * is called. If this is not defined, the driver will return -EBUSY.
53 */
54#define WAKE_ON_ACCESS 1
55
56typedef struct {
57 spinlock_t lock; /* Used to block on state transitions */
58 au1xxx_power_dev_t *dev; /* Power Managers device structure */
59 unsigned stopped; /* Used to signal device is stopped */
60} pm_state;
61#endif
62
63typedef struct { 49typedef struct {
64 u32 tx_dev_id, rx_dev_id, target_dev_id; 50 u32 tx_dev_id, rx_dev_id, target_dev_id;
65 u32 tx_chan, rx_chan; 51 u32 tx_chan, rx_chan;
@@ -72,9 +58,6 @@ typedef struct {
72#endif 58#endif
73 int irq; 59 int irq;
74 u32 regbase; 60 u32 regbase;
75#ifdef CONFIG_PM
76 pm_state pm;
77#endif
78} _auide_hwif; 61} _auide_hwif;
79 62
80/******************************************************************************/ 63/******************************************************************************/
diff --git a/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
new file mode 100644
index 000000000000..550a10dc9dba
--- /dev/null
+++ b/arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h
@@ -0,0 +1,59 @@
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com>
7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca>
8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org>
9 *
10 * reference: /proc/cpuinfo,
11 * arch/mips/kernel/cpu-probe.c(cpu_probe_legacy),
12 * arch/mips/kernel/proc.c(show_cpuinfo),
13 * loongson2f user manual.
14 */
15
16#ifndef __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H
17#define __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H
18
19#define cpu_dcache_line_size() 32
20#define cpu_icache_line_size() 32
21#define cpu_scache_line_size() 32
22
23
24#define cpu_has_32fpr 1
25#define cpu_has_3k_cache 0
26#define cpu_has_4k_cache 1
27#define cpu_has_4kex 1
28#define cpu_has_64bits 1
29#define cpu_has_cache_cdex_p 0
30#define cpu_has_cache_cdex_s 0
31#define cpu_has_counter 1
32#define cpu_has_dc_aliases 1
33#define cpu_has_divec 0
34#define cpu_has_dsp 0
35#define cpu_has_ejtag 0
36#define cpu_has_fpu 1
37#define cpu_has_ic_fills_f_dc 0
38#define cpu_has_inclusive_pcaches 1
39#define cpu_has_llsc 1
40#define cpu_has_mcheck 0
41#define cpu_has_mdmx 0
42#define cpu_has_mips16 0
43#define cpu_has_mips32r1 0
44#define cpu_has_mips32r2 0
45#define cpu_has_mips3d 0
46#define cpu_has_mips64r1 0
47#define cpu_has_mips64r2 0
48#define cpu_has_mipsmt 0
49#define cpu_has_prefetch 0
50#define cpu_has_smartmips 0
51#define cpu_has_tlb 1
52#define cpu_has_tx39_cache 0
53#define cpu_has_userlocal 0
54#define cpu_has_vce 0
55#define cpu_has_vtag_icache 0
56#define cpu_has_watch 1
57#define cpu_icache_snoops_remote_store 1
58
59#endif /* __ASM_MACH_LEMOTE_CPU_FEATURE_OVERRIDES_H */
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index 526f327475ce..32ef8bec5c85 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -184,12 +184,19 @@
184#else 184#else
185 185
186#define PM_4K 0x00000000 186#define PM_4K 0x00000000
187#define PM_8K 0x00002000
187#define PM_16K 0x00006000 188#define PM_16K 0x00006000
189#define PM_32K 0x0000e000
188#define PM_64K 0x0001e000 190#define PM_64K 0x0001e000
191#define PM_128K 0x0003e000
189#define PM_256K 0x0007e000 192#define PM_256K 0x0007e000
193#define PM_512K 0x000fe000
190#define PM_1M 0x001fe000 194#define PM_1M 0x001fe000
195#define PM_2M 0x003fe000
191#define PM_4M 0x007fe000 196#define PM_4M 0x007fe000
197#define PM_8M 0x00ffe000
192#define PM_16M 0x01ffe000 198#define PM_16M 0x01ffe000
199#define PM_32M 0x03ffe000
193#define PM_64M 0x07ffe000 200#define PM_64M 0x07ffe000
194#define PM_256M 0x1fffe000 201#define PM_256M 0x1fffe000
195#define PM_1G 0x7fffe000 202#define PM_1G 0x7fffe000
@@ -201,8 +208,12 @@
201 */ 208 */
202#ifdef CONFIG_PAGE_SIZE_4KB 209#ifdef CONFIG_PAGE_SIZE_4KB
203#define PM_DEFAULT_MASK PM_4K 210#define PM_DEFAULT_MASK PM_4K
211#elif defined(CONFIG_PAGE_SIZE_8KB)
212#define PM_DEFAULT_MASK PM_8K
204#elif defined(CONFIG_PAGE_SIZE_16KB) 213#elif defined(CONFIG_PAGE_SIZE_16KB)
205#define PM_DEFAULT_MASK PM_16K 214#define PM_DEFAULT_MASK PM_16K
215#elif defined(CONFIG_PAGE_SIZE_32KB)
216#define PM_DEFAULT_MASK PM_32K
206#elif defined(CONFIG_PAGE_SIZE_64KB) 217#elif defined(CONFIG_PAGE_SIZE_64KB)
207#define PM_DEFAULT_MASK PM_64K 218#define PM_DEFAULT_MASK PM_64K
208#else 219#else
@@ -717,8 +728,8 @@ do { \
717 ".set\tmips64\n\t" \ 728 ".set\tmips64\n\t" \
718 "dmfc0\t%M0, " #source "\n\t" \ 729 "dmfc0\t%M0, " #source "\n\t" \
719 "dsll\t%L0, %M0, 32\n\t" \ 730 "dsll\t%L0, %M0, 32\n\t" \
720 "dsrl\t%M0, %M0, 32\n\t" \ 731 "dsra\t%M0, %M0, 32\n\t" \
721 "dsrl\t%L0, %L0, 32\n\t" \ 732 "dsra\t%L0, %L0, 32\n\t" \
722 ".set\tmips0" \ 733 ".set\tmips0" \
723 : "=r" (__val)); \ 734 : "=r" (__val)); \
724 else \ 735 else \
@@ -726,8 +737,8 @@ do { \
726 ".set\tmips64\n\t" \ 737 ".set\tmips64\n\t" \
727 "dmfc0\t%M0, " #source ", " #sel "\n\t" \ 738 "dmfc0\t%M0, " #source ", " #sel "\n\t" \
728 "dsll\t%L0, %M0, 32\n\t" \ 739 "dsll\t%L0, %M0, 32\n\t" \
729 "dsrl\t%M0, %M0, 32\n\t" \ 740 "dsra\t%M0, %M0, 32\n\t" \
730 "dsrl\t%L0, %L0, 32\n\t" \ 741 "dsra\t%L0, %L0, 32\n\t" \
731 ".set\tmips0" \ 742 ".set\tmips0" \
732 : "=r" (__val)); \ 743 : "=r" (__val)); \
733 local_irq_restore(__flags); \ 744 local_irq_restore(__flags); \
@@ -1484,14 +1495,15 @@ static inline unsigned int \
1484set_c0_##name(unsigned int set) \ 1495set_c0_##name(unsigned int set) \
1485{ \ 1496{ \
1486 unsigned int res; \ 1497 unsigned int res; \
1498 unsigned int new; \
1487 unsigned int omt; \ 1499 unsigned int omt; \
1488 unsigned long flags; \ 1500 unsigned long flags; \
1489 \ 1501 \
1490 local_irq_save(flags); \ 1502 local_irq_save(flags); \
1491 omt = __dmt(); \ 1503 omt = __dmt(); \
1492 res = read_c0_##name(); \ 1504 res = read_c0_##name(); \
1493 res |= set; \ 1505 new = res | set; \
1494 write_c0_##name(res); \ 1506 write_c0_##name(new); \
1495 __emt(omt); \ 1507 __emt(omt); \
1496 local_irq_restore(flags); \ 1508 local_irq_restore(flags); \
1497 \ 1509 \
@@ -1502,14 +1514,15 @@ static inline unsigned int \
1502clear_c0_##name(unsigned int clear) \ 1514clear_c0_##name(unsigned int clear) \
1503{ \ 1515{ \
1504 unsigned int res; \ 1516 unsigned int res; \
1517 unsigned int new; \
1505 unsigned int omt; \ 1518 unsigned int omt; \
1506 unsigned long flags; \ 1519 unsigned long flags; \
1507 \ 1520 \
1508 local_irq_save(flags); \ 1521 local_irq_save(flags); \
1509 omt = __dmt(); \ 1522 omt = __dmt(); \
1510 res = read_c0_##name(); \ 1523 res = read_c0_##name(); \
1511 res &= ~clear; \ 1524 new = res & ~clear; \
1512 write_c0_##name(res); \ 1525 write_c0_##name(new); \
1513 __emt(omt); \ 1526 __emt(omt); \
1514 local_irq_restore(flags); \ 1527 local_irq_restore(flags); \
1515 \ 1528 \
@@ -1517,9 +1530,10 @@ clear_c0_##name(unsigned int clear) \
1517} \ 1530} \
1518 \ 1531 \
1519static inline unsigned int \ 1532static inline unsigned int \
1520change_c0_##name(unsigned int change, unsigned int new) \ 1533change_c0_##name(unsigned int change, unsigned int newbits) \
1521{ \ 1534{ \
1522 unsigned int res; \ 1535 unsigned int res; \
1536 unsigned int new; \
1523 unsigned int omt; \ 1537 unsigned int omt; \
1524 unsigned long flags; \ 1538 unsigned long flags; \
1525 \ 1539 \
@@ -1527,9 +1541,9 @@ change_c0_##name(unsigned int change, unsigned int new) \
1527 \ 1541 \
1528 omt = __dmt(); \ 1542 omt = __dmt(); \
1529 res = read_c0_##name(); \ 1543 res = read_c0_##name(); \
1530 res &= ~change; \ 1544 new = res & ~change; \
1531 res |= (new & change); \ 1545 new |= (newbits & change); \
1532 write_c0_##name(res); \ 1546 write_c0_##name(new); \
1533 __emt(omt); \ 1547 __emt(omt); \
1534 local_irq_restore(flags); \ 1548 local_irq_restore(flags); \
1535 \ 1549 \
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
index fe7a88ea066e..9f946e4ca057 100644
--- a/arch/mips/include/asm/page.h
+++ b/arch/mips/include/asm/page.h
@@ -23,6 +23,9 @@
23#ifdef CONFIG_PAGE_SIZE_16KB 23#ifdef CONFIG_PAGE_SIZE_16KB
24#define PAGE_SHIFT 14 24#define PAGE_SHIFT 14
25#endif 25#endif
26#ifdef CONFIG_PAGE_SIZE_32KB
27#define PAGE_SHIFT 15
28#endif
26#ifdef CONFIG_PAGE_SIZE_64KB 29#ifdef CONFIG_PAGE_SIZE_64KB
27#define PAGE_SHIFT 16 30#define PAGE_SHIFT 16
28#endif 31#endif
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h
index 943515f0ef87..4ed9d1bba2ba 100644
--- a/arch/mips/include/asm/pgtable-64.h
+++ b/arch/mips/include/asm/pgtable-64.h
@@ -83,6 +83,12 @@
83#define PMD_ORDER 0 83#define PMD_ORDER 0
84#define PTE_ORDER 0 84#define PTE_ORDER 0
85#endif 85#endif
86#ifdef CONFIG_PAGE_SIZE_32KB
87#define PGD_ORDER 0
88#define PUD_ORDER aieeee_attempt_to_allocate_pud
89#define PMD_ORDER 0
90#define PTE_ORDER 0
91#endif
86#ifdef CONFIG_PAGE_SIZE_64KB 92#ifdef CONFIG_PAGE_SIZE_64KB
87#define PGD_ORDER 0 93#define PGD_ORDER 0
88#define PUD_ORDER aieeee_attempt_to_allocate_pud 94#define PUD_ORDER aieeee_attempt_to_allocate_pud
diff --git a/arch/mips/include/asm/sn/addrs.h b/arch/mips/include/asm/sn/addrs.h
index fec9bdd34913..3a56d90abfa6 100644
--- a/arch/mips/include/asm/sn/addrs.h
+++ b/arch/mips/include/asm/sn/addrs.h
@@ -359,11 +359,11 @@
359 TO_NODE_UNCAC((nasid), LAUNCH_OFFSET(nasid, slice)) 359 TO_NODE_UNCAC((nasid), LAUNCH_OFFSET(nasid, slice))
360#define LAUNCH_SIZE(nasid) KLD_LAUNCH(nasid)->size 360#define LAUNCH_SIZE(nasid) KLD_LAUNCH(nasid)->size
361 361
362#define NMI_OFFSET(nasid, slice) \ 362#define SN_NMI_OFFSET(nasid, slice) \
363 (KLD_NMI(nasid)->offset + \ 363 (KLD_NMI(nasid)->offset + \
364 KLD_NMI(nasid)->stride * (slice)) 364 KLD_NMI(nasid)->stride * (slice))
365#define NMI_ADDR(nasid, slice) \ 365#define NMI_ADDR(nasid, slice) \
366 TO_NODE_UNCAC((nasid), NMI_OFFSET(nasid, slice)) 366 TO_NODE_UNCAC((nasid), SN_NMI_OFFSET(nasid, slice))
367#define NMI_SIZE(nasid) KLD_NMI(nasid)->size 367#define NMI_SIZE(nasid) KLD_NMI(nasid)->size
368 368
369#define KLCONFIG_OFFSET(nasid) KLD_KLCONFIG(nasid)->offset 369#define KLCONFIG_OFFSET(nasid) KLD_KLCONFIG(nasid)->offset
diff --git a/arch/mips/include/asm/sn/nmi.h b/arch/mips/include/asm/sn/nmi.h
index 6b7b0b5f3729..1af49897d4e1 100644
--- a/arch/mips/include/asm/sn/nmi.h
+++ b/arch/mips/include/asm/sn/nmi.h
@@ -3,13 +3,13 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Derived from IRIX <sys/SN/nmi.h>, Revision 1.5.
7 *
6 * Copyright (C) 1992 - 1997 Silicon Graphics, Inc. 8 * Copyright (C) 1992 - 1997 Silicon Graphics, Inc.
7 */ 9 */
8#ifndef __ASM_SN_NMI_H 10#ifndef __ASM_SN_NMI_H
9#define __ASM_SN_NMI_H 11#define __ASM_SN_NMI_H
10 12
11#ident "$Revision: 1.5 $"
12
13#include <asm/sn/addrs.h> 13#include <asm/sn/addrs.h>
14 14
15/* 15/*
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
index 676aa2ae1913..143a48136a4b 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arch/mips/include/asm/thread_info.h
@@ -75,6 +75,9 @@ register struct thread_info *__current_thread_info __asm__("$28");
75#ifdef CONFIG_PAGE_SIZE_16KB 75#ifdef CONFIG_PAGE_SIZE_16KB
76#define THREAD_SIZE_ORDER (0) 76#define THREAD_SIZE_ORDER (0)
77#endif 77#endif
78#ifdef CONFIG_PAGE_SIZE_32KB
79#define THREAD_SIZE_ORDER (0)
80#endif
78#ifdef CONFIG_PAGE_SIZE_64KB 81#ifdef CONFIG_PAGE_SIZE_64KB
79#define THREAD_SIZE_ORDER (0) 82#define THREAD_SIZE_ORDER (0)
80#endif 83#endif
diff --git a/arch/mips/include/asm/time.h b/arch/mips/include/asm/time.h
index 38a30d2ee959..df6a430de5eb 100644
--- a/arch/mips/include/asm/time.h
+++ b/arch/mips/include/asm/time.h
@@ -57,7 +57,11 @@ extern int r4k_clockevent_init(void);
57 57
58static inline int mips_clockevent_init(void) 58static inline int mips_clockevent_init(void)
59{ 59{
60#ifdef CONFIG_CEVT_R4K 60#ifdef CONFIG_MIPS_MT_SMTC
61 extern int smtc_clockevent_init(void);
62
63 return smtc_clockevent_init();
64#elif defined(CONFIG_CEVT_R4K)
61 return r4k_clockevent_init(); 65 return r4k_clockevent_init();
62#else 66#else
63 return -ENXIO; 67 return -ENXIO;
diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
index 09ff5bb17445..8de858f5449f 100644
--- a/arch/mips/include/asm/uaccess.h
+++ b/arch/mips/include/asm/uaccess.h
@@ -105,10 +105,20 @@
105#define __access_mask get_fs().seg 105#define __access_mask get_fs().seg
106 106
107#define __access_ok(addr, size, mask) \ 107#define __access_ok(addr, size, mask) \
108 (((signed long)((mask) & ((addr) | ((addr) + (size)) | __ua_size(size)))) == 0) 108({ \
109 unsigned long __addr = (unsigned long) (addr); \
110 unsigned long __size = size; \
111 unsigned long __mask = mask; \
112 unsigned long __ok; \
113 \
114 __chk_user_ptr(addr); \
115 __ok = (signed long)(__mask & (__addr | (__addr + __size) | \
116 __ua_size(__size))); \
117 __ok == 0; \
118})
109 119
110#define access_ok(type, addr, size) \ 120#define access_ok(type, addr, size) \
111 likely(__access_ok((unsigned long)(addr), (size), __access_mask)) 121 likely(__access_ok((addr), (size), __access_mask))
112 122
113/* 123/*
114 * put_user: - Write a simple value into user space. 124 * put_user: - Write a simple value into user space.
@@ -225,6 +235,7 @@ do { \
225({ \ 235({ \
226 int __gu_err; \ 236 int __gu_err; \
227 \ 237 \
238 __chk_user_ptr(ptr); \
228 __get_user_common((x), size, ptr); \ 239 __get_user_common((x), size, ptr); \
229 __gu_err; \ 240 __gu_err; \
230}) 241})
@@ -234,6 +245,7 @@ do { \
234 int __gu_err = -EFAULT; \ 245 int __gu_err = -EFAULT; \
235 const __typeof__(*(ptr)) __user * __gu_ptr = (ptr); \ 246 const __typeof__(*(ptr)) __user * __gu_ptr = (ptr); \
236 \ 247 \
248 might_fault(); \
237 if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \ 249 if (likely(access_ok(VERIFY_READ, __gu_ptr, size))) \
238 __get_user_common((x), size, __gu_ptr); \ 250 __get_user_common((x), size, __gu_ptr); \
239 \ 251 \
@@ -305,6 +317,7 @@ do { \
305 __typeof__(*(ptr)) __pu_val; \ 317 __typeof__(*(ptr)) __pu_val; \
306 int __pu_err = 0; \ 318 int __pu_err = 0; \
307 \ 319 \
320 __chk_user_ptr(ptr); \
308 __pu_val = (x); \ 321 __pu_val = (x); \
309 switch (size) { \ 322 switch (size) { \
310 case 1: __put_user_asm("sb", ptr); break; \ 323 case 1: __put_user_asm("sb", ptr); break; \
@@ -322,6 +335,7 @@ do { \
322 __typeof__(*(ptr)) __pu_val = (x); \ 335 __typeof__(*(ptr)) __pu_val = (x); \
323 int __pu_err = -EFAULT; \ 336 int __pu_err = -EFAULT; \
324 \ 337 \
338 might_fault(); \
325 if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \ 339 if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) { \
326 switch (size) { \ 340 switch (size) { \
327 case 1: __put_user_asm("sb", __pu_addr); break; \ 341 case 1: __put_user_asm("sb", __pu_addr); break; \
@@ -696,10 +710,10 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
696 const void *__cu_from; \ 710 const void *__cu_from; \
697 long __cu_len; \ 711 long __cu_len; \
698 \ 712 \
699 might_sleep(); \
700 __cu_to = (to); \ 713 __cu_to = (to); \
701 __cu_from = (from); \ 714 __cu_from = (from); \
702 __cu_len = (n); \ 715 __cu_len = (n); \
716 might_fault(); \
703 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len); \ 717 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len); \
704 __cu_len; \ 718 __cu_len; \
705}) 719})
@@ -752,13 +766,14 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
752 const void *__cu_from; \ 766 const void *__cu_from; \
753 long __cu_len; \ 767 long __cu_len; \
754 \ 768 \
755 might_sleep(); \
756 __cu_to = (to); \ 769 __cu_to = (to); \
757 __cu_from = (from); \ 770 __cu_from = (from); \
758 __cu_len = (n); \ 771 __cu_len = (n); \
759 if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) \ 772 if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) { \
773 might_fault(); \
760 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, \ 774 __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, \
761 __cu_len); \ 775 __cu_len); \
776 } \
762 __cu_len; \ 777 __cu_len; \
763}) 778})
764 779
@@ -831,10 +846,10 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
831 const void __user *__cu_from; \ 846 const void __user *__cu_from; \
832 long __cu_len; \ 847 long __cu_len; \
833 \ 848 \
834 might_sleep(); \
835 __cu_to = (to); \ 849 __cu_to = (to); \
836 __cu_from = (from); \ 850 __cu_from = (from); \
837 __cu_len = (n); \ 851 __cu_len = (n); \
852 might_fault(); \
838 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 853 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
839 __cu_len); \ 854 __cu_len); \
840 __cu_len; \ 855 __cu_len; \
@@ -862,17 +877,31 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
862 const void __user *__cu_from; \ 877 const void __user *__cu_from; \
863 long __cu_len; \ 878 long __cu_len; \
864 \ 879 \
865 might_sleep(); \
866 __cu_to = (to); \ 880 __cu_to = (to); \
867 __cu_from = (from); \ 881 __cu_from = (from); \
868 __cu_len = (n); \ 882 __cu_len = (n); \
869 if (access_ok(VERIFY_READ, __cu_from, __cu_len)) \ 883 if (access_ok(VERIFY_READ, __cu_from, __cu_len)) { \
884 might_fault(); \
870 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 885 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
871 __cu_len); \ 886 __cu_len); \
887 } \
872 __cu_len; \ 888 __cu_len; \
873}) 889})
874 890
875#define __copy_in_user(to, from, n) __copy_from_user(to, from, n) 891#define __copy_in_user(to, from, n) \
892({ \
893 void __user *__cu_to; \
894 const void __user *__cu_from; \
895 long __cu_len; \
896 \
897 __cu_to = (to); \
898 __cu_from = (from); \
899 __cu_len = (n); \
900 might_fault(); \
901 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
902 __cu_len); \
903 __cu_len; \
904})
876 905
877#define copy_in_user(to, from, n) \ 906#define copy_in_user(to, from, n) \
878({ \ 907({ \
@@ -880,14 +909,15 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
880 const void __user *__cu_from; \ 909 const void __user *__cu_from; \
881 long __cu_len; \ 910 long __cu_len; \
882 \ 911 \
883 might_sleep(); \
884 __cu_to = (to); \ 912 __cu_to = (to); \
885 __cu_from = (from); \ 913 __cu_from = (from); \
886 __cu_len = (n); \ 914 __cu_len = (n); \
887 if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) && \ 915 if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) && \
888 access_ok(VERIFY_WRITE, __cu_to, __cu_len))) \ 916 access_ok(VERIFY_WRITE, __cu_to, __cu_len))) { \
917 might_fault(); \
889 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \ 918 __cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
890 __cu_len); \ 919 __cu_len); \
920 } \
891 __cu_len; \ 921 __cu_len; \
892}) 922})
893 923
@@ -907,7 +937,7 @@ __clear_user(void __user *addr, __kernel_size_t size)
907{ 937{
908 __kernel_size_t res; 938 __kernel_size_t res;
909 939
910 might_sleep(); 940 might_fault();
911 __asm__ __volatile__( 941 __asm__ __volatile__(
912 "move\t$4, %1\n\t" 942 "move\t$4, %1\n\t"
913 "move\t$5, $0\n\t" 943 "move\t$5, $0\n\t"
@@ -956,7 +986,7 @@ __strncpy_from_user(char *__to, const char __user *__from, long __len)
956{ 986{
957 long res; 987 long res;
958 988
959 might_sleep(); 989 might_fault();
960 __asm__ __volatile__( 990 __asm__ __volatile__(
961 "move\t$4, %1\n\t" 991 "move\t$4, %1\n\t"
962 "move\t$5, %2\n\t" 992 "move\t$5, %2\n\t"
@@ -993,7 +1023,7 @@ strncpy_from_user(char *__to, const char __user *__from, long __len)
993{ 1023{
994 long res; 1024 long res;
995 1025
996 might_sleep(); 1026 might_fault();
997 __asm__ __volatile__( 1027 __asm__ __volatile__(
998 "move\t$4, %1\n\t" 1028 "move\t$4, %1\n\t"
999 "move\t$5, %2\n\t" 1029 "move\t$5, %2\n\t"
@@ -1012,7 +1042,7 @@ static inline long __strlen_user(const char __user *s)
1012{ 1042{
1013 long res; 1043 long res;
1014 1044
1015 might_sleep(); 1045 might_fault();
1016 __asm__ __volatile__( 1046 __asm__ __volatile__(
1017 "move\t$4, %1\n\t" 1047 "move\t$4, %1\n\t"
1018 __MODULE_JAL(__strlen_user_nocheck_asm) 1048 __MODULE_JAL(__strlen_user_nocheck_asm)
@@ -1042,7 +1072,7 @@ static inline long strlen_user(const char __user *s)
1042{ 1072{
1043 long res; 1073 long res;
1044 1074
1045 might_sleep(); 1075 might_fault();
1046 __asm__ __volatile__( 1076 __asm__ __volatile__(
1047 "move\t$4, %1\n\t" 1077 "move\t$4, %1\n\t"
1048 __MODULE_JAL(__strlen_user_asm) 1078 __MODULE_JAL(__strlen_user_asm)
@@ -1059,7 +1089,7 @@ static inline long __strnlen_user(const char __user *s, long n)
1059{ 1089{
1060 long res; 1090 long res;
1061 1091
1062 might_sleep(); 1092 might_fault();
1063 __asm__ __volatile__( 1093 __asm__ __volatile__(
1064 "move\t$4, %1\n\t" 1094 "move\t$4, %1\n\t"
1065 "move\t$5, %2\n\t" 1095 "move\t$5, %2\n\t"
@@ -1090,7 +1120,7 @@ static inline long strnlen_user(const char __user *s, long n)
1090{ 1120{
1091 long res; 1121 long res;
1092 1122
1093 might_sleep(); 1123 might_fault();
1094 __asm__ __volatile__( 1124 __asm__ __volatile__(
1095 "move\t$4, %1\n\t" 1125 "move\t$4, %1\n\t"
1096 "move\t$5, %2\n\t" 1126 "move\t$5, %2\n\t"
diff --git a/arch/mips/kernel/cevt-smtc.c b/arch/mips/kernel/cevt-smtc.c
index 6d45e24db5bf..df6f5bc60572 100644
--- a/arch/mips/kernel/cevt-smtc.c
+++ b/arch/mips/kernel/cevt-smtc.c
@@ -245,7 +245,7 @@ irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
245} 245}
246 246
247 247
248int __cpuinit mips_clockevent_init(void) 248int __cpuinit smtc_clockevent_init(void)
249{ 249{
250 uint64_t mips_freq = mips_hpt_frequency; 250 uint64_t mips_freq = mips_hpt_frequency;
251 unsigned int cpu = smp_processor_id(); 251 unsigned int cpu = smp_processor_id();
diff --git a/arch/mips/kernel/cevt-txx9.c b/arch/mips/kernel/cevt-txx9.c
index eccf7d6096bd..2e911e3da8d3 100644
--- a/arch/mips/kernel/cevt-txx9.c
+++ b/arch/mips/kernel/cevt-txx9.c
@@ -22,7 +22,7 @@
22 22
23static struct txx9_tmr_reg __iomem *txx9_cs_tmrptr; 23static struct txx9_tmr_reg __iomem *txx9_cs_tmrptr;
24 24
25static cycle_t txx9_cs_read(void) 25static cycle_t txx9_cs_read(struct clocksource *cs)
26{ 26{
27 return __raw_readl(&txx9_cs_tmrptr->trr); 27 return __raw_readl(&txx9_cs_tmrptr->trr);
28} 28}
diff --git a/arch/mips/kernel/csrc-bcm1480.c b/arch/mips/kernel/csrc-bcm1480.c
index 868745e7184b..51489f8a825e 100644
--- a/arch/mips/kernel/csrc-bcm1480.c
+++ b/arch/mips/kernel/csrc-bcm1480.c
@@ -28,7 +28,7 @@
28 28
29#include <asm/sibyte/sb1250.h> 29#include <asm/sibyte/sb1250.h>
30 30
31static cycle_t bcm1480_hpt_read(void) 31static cycle_t bcm1480_hpt_read(struct clocksource *cs)
32{ 32{
33 return (cycle_t) __raw_readq(IOADDR(A_SCD_ZBBUS_CYCLE_COUNT)); 33 return (cycle_t) __raw_readq(IOADDR(A_SCD_ZBBUS_CYCLE_COUNT));
34} 34}
diff --git a/arch/mips/kernel/csrc-ioasic.c b/arch/mips/kernel/csrc-ioasic.c
index 1d5f63cf8997..b551f48d3a07 100644
--- a/arch/mips/kernel/csrc-ioasic.c
+++ b/arch/mips/kernel/csrc-ioasic.c
@@ -25,7 +25,7 @@
25#include <asm/dec/ioasic.h> 25#include <asm/dec/ioasic.h>
26#include <asm/dec/ioasic_addrs.h> 26#include <asm/dec/ioasic_addrs.h>
27 27
28static cycle_t dec_ioasic_hpt_read(void) 28static cycle_t dec_ioasic_hpt_read(struct clocksource *cs)
29{ 29{
30 return ioasic_read(IO_REG_FCTR); 30 return ioasic_read(IO_REG_FCTR);
31} 31}
@@ -47,13 +47,13 @@ void __init dec_ioasic_clocksource_init(void)
47 while (!ds1287_timer_state()) 47 while (!ds1287_timer_state())
48 ; 48 ;
49 49
50 start = dec_ioasic_hpt_read(); 50 start = dec_ioasic_hpt_read(&clocksource_dec);
51 51
52 while (i--) 52 while (i--)
53 while (!ds1287_timer_state()) 53 while (!ds1287_timer_state())
54 ; 54 ;
55 55
56 end = dec_ioasic_hpt_read(); 56 end = dec_ioasic_hpt_read(&clocksource_dec);
57 57
58 freq = (end - start) * 10; 58 freq = (end - start) * 10;
59 printk(KERN_INFO "I/O ASIC clock frequency %dHz\n", freq); 59 printk(KERN_INFO "I/O ASIC clock frequency %dHz\n", freq);
diff --git a/arch/mips/kernel/csrc-r4k.c b/arch/mips/kernel/csrc-r4k.c
index f1a2893931ed..e95a3cd48eea 100644
--- a/arch/mips/kernel/csrc-r4k.c
+++ b/arch/mips/kernel/csrc-r4k.c
@@ -10,7 +10,7 @@
10 10
11#include <asm/time.h> 11#include <asm/time.h>
12 12
13static cycle_t c0_hpt_read(void) 13static cycle_t c0_hpt_read(struct clocksource *cs)
14{ 14{
15 return read_c0_count(); 15 return read_c0_count();
16} 16}
diff --git a/arch/mips/kernel/csrc-sb1250.c b/arch/mips/kernel/csrc-sb1250.c
index 92212bbb8e45..d14d3d1907fa 100644
--- a/arch/mips/kernel/csrc-sb1250.c
+++ b/arch/mips/kernel/csrc-sb1250.c
@@ -33,7 +33,7 @@
33 * The HPT is free running from SB1250_HPT_VALUE down to 0 then starts over 33 * The HPT is free running from SB1250_HPT_VALUE down to 0 then starts over
34 * again. 34 * again.
35 */ 35 */
36static cycle_t sb1250_hpt_read(void) 36static cycle_t sb1250_hpt_read(struct clocksource *cs)
37{ 37{
38 unsigned int count; 38 unsigned int count;
39 39
diff --git a/arch/mips/kernel/i8253.c b/arch/mips/kernel/i8253.c
index 689719e34f08..ed20e7fe65e3 100644
--- a/arch/mips/kernel/i8253.c
+++ b/arch/mips/kernel/i8253.c
@@ -128,7 +128,7 @@ void __init setup_pit_timer(void)
128 * to just read by itself. So use jiffies to emulate a free 128 * to just read by itself. So use jiffies to emulate a free
129 * running counter: 129 * running counter:
130 */ 130 */
131static cycle_t pit_read(void) 131static cycle_t pit_read(struct clocksource *cs)
132{ 132{
133 unsigned long flags; 133 unsigned long flags;
134 int count; 134 int count;
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index c2c16ef9218f..93cc672f4522 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -405,8 +405,8 @@ EXPORT(sysn32_call_table)
405 PTR sys_eventfd 405 PTR sys_eventfd
406 PTR sys_fallocate 406 PTR sys_fallocate
407 PTR sys_timerfd_create 407 PTR sys_timerfd_create
408 PTR sys_timerfd_gettime /* 5285 */ 408 PTR compat_sys_timerfd_gettime /* 5285 */
409 PTR sys_timerfd_settime 409 PTR compat_sys_timerfd_settime
410 PTR sys_signalfd4 410 PTR sys_signalfd4
411 PTR sys_eventfd2 411 PTR sys_eventfd2
412 PTR sys_epoll_create1 412 PTR sys_epoll_create1
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 002fac27021e..a5598b2339dd 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -525,8 +525,8 @@ sys_call_table:
525 PTR sys_eventfd 525 PTR sys_eventfd
526 PTR sys32_fallocate /* 4320 */ 526 PTR sys32_fallocate /* 4320 */
527 PTR sys_timerfd_create 527 PTR sys_timerfd_create
528 PTR sys_timerfd_gettime 528 PTR compat_sys_timerfd_gettime
529 PTR sys_timerfd_settime 529 PTR compat_sys_timerfd_settime
530 PTR compat_sys_signalfd4 530 PTR compat_sys_signalfd4
531 PTR sys_eventfd2 /* 4325 */ 531 PTR sys_eventfd2 /* 4325 */
532 PTR sys_epoll_create1 532 PTR sys_epoll_create1
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index bf4c4a979abb..67bd626942ab 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -482,19 +482,19 @@ fault:
482 return; 482 return;
483 483
484 die_if_kernel("Unhandled kernel unaligned access", regs); 484 die_if_kernel("Unhandled kernel unaligned access", regs);
485 send_sig(SIGSEGV, current, 1); 485 force_sig(SIGSEGV, current);
486 486
487 return; 487 return;
488 488
489sigbus: 489sigbus:
490 die_if_kernel("Unhandled kernel unaligned access", regs); 490 die_if_kernel("Unhandled kernel unaligned access", regs);
491 send_sig(SIGBUS, current, 1); 491 force_sig(SIGBUS, current);
492 492
493 return; 493 return;
494 494
495sigill: 495sigill:
496 die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs); 496 die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
497 send_sig(SIGILL, current, 1); 497 force_sig(SIGILL, current);
498} 498}
499 499
500asmlinkage void do_ade(struct pt_regs *regs) 500asmlinkage void do_ade(struct pt_regs *regs)
diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c
index 779821cd54ab..3f69725556af 100644
--- a/arch/mips/lib/dump_tlb.c
+++ b/arch/mips/lib/dump_tlb.c
@@ -19,6 +19,15 @@ static inline const char *msk2str(unsigned int mask)
19 case PM_16K: return "16kb"; 19 case PM_16K: return "16kb";
20 case PM_64K: return "64kb"; 20 case PM_64K: return "64kb";
21 case PM_256K: return "256kb"; 21 case PM_256K: return "256kb";
22#ifdef CONFIG_CPU_CAVIUM_OCTEON
23 case PM_8K: return "8kb";
24 case PM_32K: return "32kb";
25 case PM_128K: return "128kb";
26 case PM_512K: return "512kb";
27 case PM_2M: return "2Mb";
28 case PM_8M: return "8Mb";
29 case PM_32M: return "32Mb";
30#endif
22#ifndef CONFIG_CPU_VR41XX 31#ifndef CONFIG_CPU_VR41XX
23 case PM_1M: return "1Mb"; 32 case PM_1M: return "1Mb";
24 case PM_4M: return "4Mb"; 33 case PM_4M: return "4Mb";
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 58d9075e86fe..171951d2305b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1041,7 +1041,7 @@ static void __cpuinit probe_pcache(void)
1041 1041
1042 printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n", 1042 printk("Primary instruction cache %ldkB, %s, %s, linesize %d bytes.\n",
1043 icache_size >> 10, 1043 icache_size >> 10,
1044 cpu_has_vtag_icache ? "VIVT" : "VIPT", 1044 c->icache.flags & MIPS_CACHE_VTAG ? "VIVT" : "VIPT",
1045 way_string[c->icache.ways], c->icache.linesz); 1045 way_string[c->icache.ways], c->icache.linesz);
1046 1046
1047 printk("Primary data cache %ldkB, %s, %s, %s, linesize %d bytes\n", 1047 printk("Primary data cache %ldkB, %s, %s, %s, linesize %d bytes\n",
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index bed56f1ac837..4fdb7f5216b9 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -209,7 +209,7 @@ dma_addr_t dma_map_page(struct device *dev, struct page *page,
209 unsigned long addr; 209 unsigned long addr;
210 210
211 addr = (unsigned long) page_address(page) + offset; 211 addr = (unsigned long) page_address(page) + offset;
212 dma_cache_wback_inv(addr, size); 212 __dma_sync(addr, size, direction);
213 } 213 }
214 214
215 return plat_map_dma_mem_page(dev, page) + offset; 215 return plat_map_dma_mem_page(dev, page) + offset;
@@ -217,23 +217,6 @@ dma_addr_t dma_map_page(struct device *dev, struct page *page,
217 217
218EXPORT_SYMBOL(dma_map_page); 218EXPORT_SYMBOL(dma_map_page);
219 219
220void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
221 enum dma_data_direction direction)
222{
223 BUG_ON(direction == DMA_NONE);
224
225 if (!plat_device_is_coherent(dev) && direction != DMA_TO_DEVICE) {
226 unsigned long addr;
227
228 addr = dma_addr_to_virt(dma_address);
229 dma_cache_wback_inv(addr, size);
230 }
231
232 plat_unmap_dma_mem(dev, dma_address);
233}
234
235EXPORT_SYMBOL(dma_unmap_page);
236
237void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries, 220void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
238 enum dma_data_direction direction) 221 enum dma_data_direction direction)
239{ 222{
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index 4481656d1065..2b1309b2580a 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -1,7 +1,12 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/highmem.h> 2#include <linux/highmem.h>
3#include <asm/fixmap.h>
3#include <asm/tlbflush.h> 4#include <asm/tlbflush.h>
4 5
6static pte_t *kmap_pte;
7
8unsigned long highstart_pfn, highend_pfn;
9
5void *__kmap(struct page *page) 10void *__kmap(struct page *page)
6{ 11{
7 void *addr; 12 void *addr;
@@ -14,6 +19,7 @@ void *__kmap(struct page *page)
14 19
15 return addr; 20 return addr;
16} 21}
22EXPORT_SYMBOL(__kmap);
17 23
18void __kunmap(struct page *page) 24void __kunmap(struct page *page)
19{ 25{
@@ -22,6 +28,7 @@ void __kunmap(struct page *page)
22 return; 28 return;
23 kunmap_high(page); 29 kunmap_high(page);
24} 30}
31EXPORT_SYMBOL(__kunmap);
25 32
26/* 33/*
27 * kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because 34 * kmap_atomic/kunmap_atomic is significantly faster than kmap/kunmap because
@@ -48,11 +55,12 @@ void *__kmap_atomic(struct page *page, enum km_type type)
48#ifdef CONFIG_DEBUG_HIGHMEM 55#ifdef CONFIG_DEBUG_HIGHMEM
49 BUG_ON(!pte_none(*(kmap_pte - idx))); 56 BUG_ON(!pte_none(*(kmap_pte - idx)));
50#endif 57#endif
51 set_pte(kmap_pte-idx, mk_pte(page, kmap_prot)); 58 set_pte(kmap_pte-idx, mk_pte(page, PAGE_KERNEL));
52 local_flush_tlb_one((unsigned long)vaddr); 59 local_flush_tlb_one((unsigned long)vaddr);
53 60
54 return (void*) vaddr; 61 return (void*) vaddr;
55} 62}
63EXPORT_SYMBOL(__kmap_atomic);
56 64
57void __kunmap_atomic(void *kvaddr, enum km_type type) 65void __kunmap_atomic(void *kvaddr, enum km_type type)
58{ 66{
@@ -77,6 +85,7 @@ void __kunmap_atomic(void *kvaddr, enum km_type type)
77 85
78 pagefault_enable(); 86 pagefault_enable();
79} 87}
88EXPORT_SYMBOL(__kunmap_atomic);
80 89
81/* 90/*
82 * This is the same as kmap_atomic() but can map memory that doesn't 91 * This is the same as kmap_atomic() but can map memory that doesn't
@@ -92,7 +101,7 @@ void *kmap_atomic_pfn(unsigned long pfn, enum km_type type)
92 debug_kmap_atomic(type); 101 debug_kmap_atomic(type);
93 idx = type + KM_TYPE_NR*smp_processor_id(); 102 idx = type + KM_TYPE_NR*smp_processor_id();
94 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 103 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
95 set_pte(kmap_pte-idx, pfn_pte(pfn, kmap_prot)); 104 set_pte(kmap_pte-idx, pfn_pte(pfn, PAGE_KERNEL));
96 flush_tlb_one(vaddr); 105 flush_tlb_one(vaddr);
97 106
98 return (void*) vaddr; 107 return (void*) vaddr;
@@ -111,7 +120,11 @@ struct page *__kmap_atomic_to_page(void *ptr)
111 return pte_page(*pte); 120 return pte_page(*pte);
112} 121}
113 122
114EXPORT_SYMBOL(__kmap); 123void __init kmap_init(void)
115EXPORT_SYMBOL(__kunmap); 124{
116EXPORT_SYMBOL(__kmap_atomic); 125 unsigned long kmap_vstart;
117EXPORT_SYMBOL(__kunmap_atomic); 126
127 /* cache the first kmap pte */
128 kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
129 kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
130}
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index d9348946a19e..c5511294a9ee 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -104,14 +104,6 @@ unsigned long setup_zero_pages(void)
104 return 1UL << order; 104 return 1UL << order;
105} 105}
106 106
107/*
108 * These are almost like kmap_atomic / kunmap_atmic except they take an
109 * additional address argument as the hint.
110 */
111
112#define kmap_get_fixmap_pte(vaddr) \
113 pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr)), (vaddr))
114
115#ifdef CONFIG_MIPS_MT_SMTC 107#ifdef CONFIG_MIPS_MT_SMTC
116static pte_t *kmap_coherent_pte; 108static pte_t *kmap_coherent_pte;
117static void __init kmap_coherent_init(void) 109static void __init kmap_coherent_init(void)
@@ -264,24 +256,6 @@ void copy_from_user_page(struct vm_area_struct *vma,
264 } 256 }
265} 257}
266 258
267#ifdef CONFIG_HIGHMEM
268unsigned long highstart_pfn, highend_pfn;
269
270pte_t *kmap_pte;
271pgprot_t kmap_prot;
272
273static void __init kmap_init(void)
274{
275 unsigned long kmap_vstart;
276
277 /* cache the first kmap pte */
278 kmap_vstart = __fix_to_virt(FIX_KMAP_BEGIN);
279 kmap_pte = kmap_get_fixmap_pte(kmap_vstart);
280
281 kmap_prot = PAGE_KERNEL;
282}
283#endif /* CONFIG_HIGHMEM */
284
285void __init fixrange_init(unsigned long start, unsigned long end, 259void __init fixrange_init(unsigned long start, unsigned long end,
286 pgd_t *pgd_base) 260 pgd_t *pgd_base)
287{ 261{
diff --git a/arch/mips/mm/sc-rm7k.c b/arch/mips/mm/sc-rm7k.c
index e3abfb2d7e86..de69bfbf506e 100644
--- a/arch/mips/mm/sc-rm7k.c
+++ b/arch/mips/mm/sc-rm7k.c
@@ -29,7 +29,7 @@ extern unsigned long icache_way_size, dcache_way_size;
29 29
30#include <asm/r4kcache.h> 30#include <asm/r4kcache.h>
31 31
32int rm7k_tcache_enabled; 32static int rm7k_tcache_enabled;
33 33
34/* 34/*
35 * Writeback and invalidate the primary cache dcache before DMA. 35 * Writeback and invalidate the primary cache dcache before DMA.
@@ -121,7 +121,7 @@ static void rm7k_sc_disable(void)
121 clear_c0_config(RM7K_CONF_SE); 121 clear_c0_config(RM7K_CONF_SE);
122} 122}
123 123
124struct bcache_ops rm7k_sc_ops = { 124static struct bcache_ops rm7k_sc_ops = {
125 .bc_enable = rm7k_sc_enable, 125 .bc_enable = rm7k_sc_enable,
126 .bc_disable = rm7k_sc_disable, 126 .bc_disable = rm7k_sc_disable,
127 .bc_wback_inv = rm7k_sc_wback_inv, 127 .bc_wback_inv = rm7k_sc_wback_inv,
diff --git a/arch/mips/nxp/pnx8550/common/time.c b/arch/mips/nxp/pnx8550/common/time.c
index cf293b279098..8df43e9e4d90 100644
--- a/arch/mips/nxp/pnx8550/common/time.c
+++ b/arch/mips/nxp/pnx8550/common/time.c
@@ -35,7 +35,7 @@
35 35
36static unsigned long cpj; 36static unsigned long cpj;
37 37
38static cycle_t hpt_read(void) 38static cycle_t hpt_read(struct clocksource *cs)
39{ 39{
40 return read_c0_count2(); 40 return read_c0_count2();
41} 41}
diff --git a/arch/mips/pmc-sierra/Kconfig b/arch/mips/pmc-sierra/Kconfig
index 90261b83db04..c139988bb85d 100644
--- a/arch/mips/pmc-sierra/Kconfig
+++ b/arch/mips/pmc-sierra/Kconfig
@@ -36,18 +36,6 @@ config PMC_MSP7120_FPGA
36 36
37endchoice 37endchoice
38 38
39menu "Options for PMC-Sierra MSP chipsets"
40 depends on PMC_MSP
41
42config PMC_MSP_EMBEDDED_ROOTFS
43 bool "Root filesystem embedded in kernel image"
44 select MTD
45 select MTD_BLOCK
46 select MTD_PMC_MSP_RAMROOT
47 select MTD_RAM
48
49endmenu
50
51config HYPERTRANSPORT 39config HYPERTRANSPORT
52 bool "Hypertransport Support for PMC-Sierra Yosemite" 40 bool "Hypertransport Support for PMC-Sierra Yosemite"
53 depends on PMC_YOSEMITE 41 depends on PMC_YOSEMITE
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
index e5bd5481d8db..c317a3623ce9 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_prom.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
@@ -40,12 +40,6 @@
40#include <linux/string.h> 40#include <linux/string.h>
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/mm.h> 42#include <linux/mm.h>
43#ifdef CONFIG_CRAMFS
44#include <linux/cramfs_fs.h>
45#endif
46#ifdef CONFIG_SQUASHFS
47#include <linux/squashfs_fs.h>
48#endif
49 43
50#include <asm/addrspace.h> 44#include <asm/addrspace.h>
51#include <asm/bootinfo.h> 45#include <asm/bootinfo.h>
@@ -435,10 +429,6 @@ struct prom_pmemblock *__init prom_getmdesc(void)
435 char *str; 429 char *str;
436 unsigned int memsize; 430 unsigned int memsize;
437 unsigned int heaptop; 431 unsigned int heaptop;
438#ifdef CONFIG_MTD_PMC_MSP_RAMROOT
439 void *ramroot_start;
440 unsigned long ramroot_size;
441#endif
442 int i; 432 int i;
443 433
444 str = prom_getenv(memsz_env); 434 str = prom_getenv(memsz_env);
@@ -506,19 +496,7 @@ struct prom_pmemblock *__init prom_getmdesc(void)
506 i++; /* 3 */ 496 i++; /* 3 */
507 mdesc[i].type = BOOT_MEM_RESERVED; 497 mdesc[i].type = BOOT_MEM_RESERVED;
508 mdesc[i].base = CPHYSADDR((u32)_text); 498 mdesc[i].base = CPHYSADDR((u32)_text);
509#ifdef CONFIG_MTD_PMC_MSP_RAMROOT 499 mdesc[i].size = CPHYSADDR(PAGE_ALIGN((u32)_end)) - mdesc[i].base;
510 if (get_ramroot(&ramroot_start, &ramroot_size)) {
511 /*
512 * Rootfs in RAM -- follows kernel
513 * Combine rootfs image with kernel block so a
514 * page (4k) isn't wasted between memory blocks
515 */
516 mdesc[i].size = CPHYSADDR(PAGE_ALIGN(
517 (u32)ramroot_start + ramroot_size)) - mdesc[i].base;
518 } else
519#endif
520 mdesc[i].size = CPHYSADDR(PAGE_ALIGN(
521 (u32)_end)) - mdesc[i].base;
522 500
523 /* Remainder of RAM -- under memsize */ 501 /* Remainder of RAM -- under memsize */
524 i++; /* 5 */ 502 i++; /* 5 */
@@ -528,39 +506,3 @@ struct prom_pmemblock *__init prom_getmdesc(void)
528 506
529 return &mdesc[0]; 507 return &mdesc[0];
530} 508}
531
532/* rootfs functions */
533#ifdef CONFIG_MTD_PMC_MSP_RAMROOT
534bool get_ramroot(void **start, unsigned long *size)
535{
536 extern char _end[];
537
538 /* Check for start following the end of the kernel */
539 void *check_start = (void *)_end;
540
541 /* Check for supported rootfs types */
542#ifdef CONFIG_CRAMFS
543 if (*(__u32 *)check_start == CRAMFS_MAGIC) {
544 /* Get CRAMFS size */
545 *start = check_start;
546 *size = PAGE_ALIGN(((struct cramfs_super *)
547 check_start)->size);
548
549 return true;
550 }
551#endif
552#ifdef CONFIG_SQUASHFS
553 if (*((unsigned int *)check_start) == SQUASHFS_MAGIC) {
554 /* Get SQUASHFS size */
555 *start = check_start;
556 *size = PAGE_ALIGN(((struct squashfs_super_block *)
557 check_start)->bytes_used);
558
559 return true;
560 }
561#endif
562
563 return false;
564}
565EXPORT_SYMBOL(get_ramroot);
566#endif
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_setup.c b/arch/mips/pmc-sierra/msp71xx/msp_setup.c
index c93675615f5d..a54e85b3cf29 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_setup.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_setup.c
@@ -21,7 +21,6 @@
21 21
22#if defined(CONFIG_PMC_MSP7120_GW) 22#if defined(CONFIG_PMC_MSP7120_GW)
23#include <msp_regops.h> 23#include <msp_regops.h>
24#include <msp_gpio.h>
25#define MSP_BOARD_RESET_GPIO 9 24#define MSP_BOARD_RESET_GPIO 9
26#endif 25#endif
27 26
@@ -88,11 +87,8 @@ void msp7120_reset(void)
88 * as GPIO char driver may not be enabled and it would look up 87 * as GPIO char driver may not be enabled and it would look up
89 * data inRAM! 88 * data inRAM!
90 */ 89 */
91 set_value_reg32(GPIO_CFG3_REG, 90 set_value_reg32(GPIO_CFG3_REG, 0xf000, 0x8000);
92 basic_mode_mask(MSP_BOARD_RESET_GPIO), 91 set_reg32(GPIO_DATA3_REG, 8);
93 basic_mode(MSP_GPIO_OUTPUT, MSP_BOARD_RESET_GPIO));
94 set_reg32(GPIO_DATA3_REG,
95 basic_data_mask(MSP_BOARD_RESET_GPIO));
96 92
97 /* 93 /*
98 * In case GPIO9 doesn't reset the board (jumper configurable!) 94 * In case GPIO9 doesn't reset the board (jumper configurable!)
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_time.c b/arch/mips/pmc-sierra/msp71xx/msp_time.c
index 7cfeda5a651b..cca64e15f57f 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_time.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_time.c
@@ -81,10 +81,7 @@ void __init plat_time_init(void)
81 mips_hpt_frequency = cpu_rate/2; 81 mips_hpt_frequency = cpu_rate/2;
82} 82}
83 83
84void __init plat_timer_setup(struct irqaction *irq) 84unsigned int __init get_c0_compare_int(void)
85{ 85{
86#ifdef CONFIG_IRQ_MSP_CIC 86 return MSP_INT_VPE0_TIMER;
87 /* we are using the vpe0 counter for timer interrupts */
88 setup_irq(MSP_INT_VPE0_TIMER, irq);
89#endif
90} 87}
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index f024057a35f8..f10a7cd64f7e 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -159,7 +159,7 @@ static void __init hub_rt_clock_event_global_init(void)
159 setup_irq(irq, &hub_rt_irqaction); 159 setup_irq(irq, &hub_rt_irqaction);
160} 160}
161 161
162static cycle_t hub_rt_read(void) 162static cycle_t hub_rt_read(struct clocksource *cs)
163{ 163{
164 return REMOTE_HUB_L(cputonasid(0), PI_RT_COUNT); 164 return REMOTE_HUB_L(cputonasid(0), PI_RT_COUNT);
165} 165}
diff --git a/arch/mips/sgi-ip32/ip32-berr.c b/arch/mips/sgi-ip32/ip32-berr.c
index a278e918a019..afc1cadbba37 100644
--- a/arch/mips/sgi-ip32/ip32-berr.c
+++ b/arch/mips/sgi-ip32/ip32-berr.c
@@ -16,7 +16,7 @@
16#include <asm/ptrace.h> 16#include <asm/ptrace.h>
17#include <asm/tlbdebug.h> 17#include <asm/tlbdebug.h>
18 18
19int ip32_be_handler(struct pt_regs *regs, int is_fixup) 19static int ip32_be_handler(struct pt_regs *regs, int is_fixup)
20{ 20{
21 int data = regs->cp0_cause & 4; 21 int data = regs->cp0_cause & 4;
22 22
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 83a0b3c359da..5c2bf111ca67 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -112,13 +112,13 @@ static void inline flush_mace_bus(void)
112extern irqreturn_t crime_memerr_intr(int irq, void *dev_id); 112extern irqreturn_t crime_memerr_intr(int irq, void *dev_id);
113extern irqreturn_t crime_cpuerr_intr(int irq, void *dev_id); 113extern irqreturn_t crime_cpuerr_intr(int irq, void *dev_id);
114 114
115struct irqaction memerr_irq = { 115static struct irqaction memerr_irq = {
116 .handler = crime_memerr_intr, 116 .handler = crime_memerr_intr,
117 .flags = IRQF_DISABLED, 117 .flags = IRQF_DISABLED,
118 .name = "CRIME memory error", 118 .name = "CRIME memory error",
119}; 119};
120 120
121struct irqaction cpuerr_irq = { 121static struct irqaction cpuerr_irq = {
122 .handler = crime_cpuerr_intr, 122 .handler = crime_cpuerr_intr,
123 .flags = IRQF_DISABLED, 123 .flags = IRQF_DISABLED,
124 .name = "CRIME CPU error", 124 .name = "CRIME CPU error",
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 352352b3cb2f..c147c4b35d3f 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -113,7 +113,6 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
113{ 113{
114 int i = 0, old_cpu, cpu, int_on, k; 114 int i = 0, old_cpu, cpu, int_on, k;
115 u64 cur_ints; 115 u64 cur_ints;
116 struct irq_desc *desc = irq_desc + irq;
117 unsigned long flags; 116 unsigned long flags;
118 unsigned int irq_dirty; 117 unsigned int irq_dirty;
119 118
@@ -127,8 +126,7 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
127 cpu = cpu_logical_map(i); 126 cpu = cpu_logical_map(i);
128 127
129 /* Protect against other affinity changers and IMR manipulation */ 128 /* Protect against other affinity changers and IMR manipulation */
130 spin_lock_irqsave(&desc->lock, flags); 129 spin_lock_irqsave(&bcm1480_imr_lock, flags);
131 spin_lock(&bcm1480_imr_lock);
132 130
133 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 131 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
134 old_cpu = bcm1480_irq_owner[irq]; 132 old_cpu = bcm1480_irq_owner[irq];
@@ -153,8 +151,7 @@ static void bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
153 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); 151 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING)));
154 } 152 }
155 } 153 }
156 spin_unlock(&bcm1480_imr_lock); 154 spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
157 spin_unlock_irqrestore(&desc->lock, flags);
158} 155}
159#endif 156#endif
160 157
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index c08ff582da6f..38cb998ade22 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -107,7 +107,6 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
107{ 107{
108 int i = 0, old_cpu, cpu, int_on; 108 int i = 0, old_cpu, cpu, int_on;
109 u64 cur_ints; 109 u64 cur_ints;
110 struct irq_desc *desc = irq_desc + irq;
111 unsigned long flags; 110 unsigned long flags;
112 111
113 i = cpumask_first(mask); 112 i = cpumask_first(mask);
@@ -121,8 +120,7 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
121 cpu = cpu_logical_map(i); 120 cpu = cpu_logical_map(i);
122 121
123 /* Protect against other affinity changers and IMR manipulation */ 122 /* Protect against other affinity changers and IMR manipulation */
124 spin_lock_irqsave(&desc->lock, flags); 123 spin_lock_irqsave(&sb1250_imr_lock, flags);
125 spin_lock(&sb1250_imr_lock);
126 124
127 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 125 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
128 old_cpu = sb1250_irq_owner[irq]; 126 old_cpu = sb1250_irq_owner[irq];
@@ -144,8 +142,7 @@ static void sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
144 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 142 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
145 R_IMR_INTERRUPT_MASK)); 143 R_IMR_INTERRUPT_MASK));
146 } 144 }
147 spin_unlock(&sb1250_imr_lock); 145 spin_unlock_irqrestore(&sb1250_imr_lock, flags);
148 spin_unlock_irqrestore(&desc->lock, flags);
149} 146}
150#endif 147#endif
151 148
diff --git a/arch/mips/txx9/generic/setup_tx4927.c b/arch/mips/txx9/generic/setup_tx4927.c
index 914e93c62639..1093549df1a8 100644
--- a/arch/mips/txx9/generic/setup_tx4927.c
+++ b/arch/mips/txx9/generic/setup_tx4927.c
@@ -88,7 +88,7 @@ void __init tx4927_setup(void)
88{ 88{
89 int i; 89 int i;
90 __u32 divmode; 90 __u32 divmode;
91 int cpuclk = 0; 91 unsigned int cpuclk = 0;
92 u64 ccfg; 92 u64 ccfg;
93 93
94 txx9_reg_res_init(TX4927_REV_PCODE(), TX4927_REG_BASE, 94 txx9_reg_res_init(TX4927_REV_PCODE(), TX4927_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4938.c b/arch/mips/txx9/generic/setup_tx4938.c
index f0844f891f0b..3925219b8973 100644
--- a/arch/mips/txx9/generic/setup_tx4938.c
+++ b/arch/mips/txx9/generic/setup_tx4938.c
@@ -93,7 +93,7 @@ void __init tx4938_setup(void)
93{ 93{
94 int i; 94 int i;
95 __u32 divmode; 95 __u32 divmode;
96 int cpuclk = 0; 96 unsigned int cpuclk = 0;
97 u64 ccfg; 97 u64 ccfg;
98 98
99 txx9_reg_res_init(TX4938_REV_PCODE(), TX4938_REG_BASE, 99 txx9_reg_res_init(TX4938_REV_PCODE(), TX4938_REG_BASE,
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index 7a25b573e9b0..c2bf150c8838 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -114,7 +114,7 @@ void __init tx4939_setup(void)
114 int i; 114 int i;
115 __u32 divmode; 115 __u32 divmode;
116 __u64 pcfg; 116 __u64 pcfg;
117 int cpuclk = 0; 117 unsigned int cpuclk = 0;
118 118
119 txx9_reg_res_init(TX4939_REV_PCODE(), TX4939_REG_BASE, 119 txx9_reg_res_init(TX4939_REV_PCODE(), TX4939_REG_BASE,
120 TX4939_REG_SIZE); 120 TX4939_REG_SIZE);
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index 011e1e332f47..4199c6fd4d1d 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -536,7 +536,7 @@ static void __init rbtx4939_setup(void)
536} 536}
537 537
538struct txx9_board_vec rbtx4939_vec __initdata = { 538struct txx9_board_vec rbtx4939_vec __initdata = {
539 .system = "Tothiba RBTX4939", 539 .system = "Toshiba RBTX4939",
540 .prom_init = rbtx4939_prom_init, 540 .prom_init = rbtx4939_prom_init,
541 .mem_setup = rbtx4939_setup, 541 .mem_setup = rbtx4939_setup,
542 .irq_setup = rbtx4939_irq_setup, 542 .irq_setup = rbtx4939_irq_setup,
diff --git a/arch/mn10300/configs/asb2303_defconfig b/arch/mn10300/configs/asb2303_defconfig
index 3aa8906b3dea..3acce23708b0 100644
--- a/arch/mn10300/configs/asb2303_defconfig
+++ b/arch/mn10300/configs/asb2303_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.25-rc2 3# Linux kernel version: 2.6.30-rc2
4# Tue Feb 19 18:52:24 2008 4# Sat Apr 18 11:13:22 2009
5# 5#
6CONFIG_MN10300=y 6CONFIG_MN10300=y
7CONFIG_AM33=y 7CONFIG_AM33=y
@@ -18,7 +18,6 @@ CONFIG_GENERIC_TIME=y
18CONFIG_GENERIC_BUG=y 18CONFIG_GENERIC_BUG=y
19CONFIG_QUICKLIST=y 19CONFIG_QUICKLIST=y
20CONFIG_ARCH_HAS_ILOG2_U32=y 20CONFIG_ARCH_HAS_ILOG2_U32=y
21# CONFIG_ARCH_SUPPORTS_AOUT is not set
22CONFIG_GENERIC_HARDIRQS=y 21CONFIG_GENERIC_HARDIRQS=y
23# CONFIG_HOTPLUG_CPU is not set 22# CONFIG_HOTPLUG_CPU is not set
24CONFIG_HZ=1000 23CONFIG_HZ=1000
@@ -40,52 +39,58 @@ CONFIG_BSD_PROCESS_ACCT=y
40# CONFIG_BSD_PROCESS_ACCT_V3 is not set 39# CONFIG_BSD_PROCESS_ACCT_V3 is not set
41# CONFIG_TASKSTATS is not set 40# CONFIG_TASKSTATS is not set
42# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
42
43#
44# RCU Subsystem
45#
46CONFIG_CLASSIC_RCU=y
47# CONFIG_TREE_RCU is not set
48# CONFIG_PREEMPT_RCU is not set
49# CONFIG_TREE_RCU_TRACE is not set
50# CONFIG_PREEMPT_RCU_TRACE is not set
43# CONFIG_IKCONFIG is not set 51# CONFIG_IKCONFIG is not set
44CONFIG_LOG_BUF_SHIFT=14 52CONFIG_LOG_BUF_SHIFT=14
45# CONFIG_CGROUPS is not set
46# CONFIG_GROUP_SCHED is not set 53# CONFIG_GROUP_SCHED is not set
47# CONFIG_USER_SCHED is not set 54# CONFIG_CGROUPS is not set
48# CONFIG_CGROUP_SCHED is not set 55# CONFIG_SYSFS_DEPRECATED_V2 is not set
49# CONFIG_SYSFS_DEPRECATED is not set
50# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
51# CONFIG_NAMESPACES is not set 57# CONFIG_NAMESPACES is not set
52# CONFIG_BLK_DEV_INITRD is not set 58# CONFIG_BLK_DEV_INITRD is not set
53# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 59# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
54CONFIG_SYSCTL=y 60CONFIG_SYSCTL=y
61CONFIG_ANON_INODES=y
55CONFIG_EMBEDDED=y 62CONFIG_EMBEDDED=y
56CONFIG_SYSCTL_SYSCALL=y 63CONFIG_SYSCTL_SYSCALL=y
57# CONFIG_KALLSYMS is not set 64# CONFIG_KALLSYMS is not set
65CONFIG_STRIP_ASM_SYMS=y
58# CONFIG_HOTPLUG is not set 66# CONFIG_HOTPLUG is not set
59CONFIG_PRINTK=y 67CONFIG_PRINTK=y
60CONFIG_BUG=y 68CONFIG_BUG=y
61CONFIG_ELF_CORE=y 69CONFIG_ELF_CORE=y
62CONFIG_COMPAT_BRK=y
63CONFIG_BASE_FULL=y 70CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y 71CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y 72CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y 73CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y 74CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y 75CONFIG_EVENTFD=y
70CONFIG_SHMEM=y 76CONFIG_SHMEM=y
77CONFIG_AIO=y
71# CONFIG_VM_EVENT_COUNTERS is not set 78# CONFIG_VM_EVENT_COUNTERS is not set
79CONFIG_COMPAT_BRK=y
72CONFIG_SLAB=y 80CONFIG_SLAB=y
73# CONFIG_SLUB is not set 81# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set 82# CONFIG_SLOB is not set
75CONFIG_PROFILING=y 83CONFIG_PROFILING=y
76# CONFIG_MARKERS is not set 84# CONFIG_MARKERS is not set
77CONFIG_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
78# CONFIG_HAVE_OPROFILE is not set 86# CONFIG_SLOW_WORK is not set
79# CONFIG_HAVE_KPROBES is not set 87# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
80# CONFIG_PROC_PAGE_MONITOR is not set
81CONFIG_SLABINFO=y 88CONFIG_SLABINFO=y
82CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
83# CONFIG_TINY_SHMEM is not set
84CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
85# CONFIG_MODULES is not set 91# CONFIG_MODULES is not set
86# CONFIG_BLOCK is not set 92# CONFIG_BLOCK is not set
87CONFIG_CLASSIC_RCU=y 93# CONFIG_FREEZER is not set
88# CONFIG_PREEMPT_RCU is not set
89 94
90# 95#
91# Matsushita MN10300 system setup 96# Matsushita MN10300 system setup
@@ -107,7 +112,6 @@ CONFIG_INTERRUPT_VECTOR_BASE=0x90000000
107CONFIG_KERNEL_TEXT_ADDRESS=0x90001000 112CONFIG_KERNEL_TEXT_ADDRESS=0x90001000
108CONFIG_KERNEL_ZIMAGE_BASE_ADDRESS=0x90700000 113CONFIG_KERNEL_ZIMAGE_BASE_ADDRESS=0x90700000
109CONFIG_PREEMPT=y 114CONFIG_PREEMPT=y
110CONFIG_PREEMPT_BKL=y
111CONFIG_MN10300_CURRENT_IN_E2=y 115CONFIG_MN10300_CURRENT_IN_E2=y
112CONFIG_MN10300_USING_JTAG=y 116CONFIG_MN10300_USING_JTAG=y
113CONFIG_MN10300_RTC=y 117CONFIG_MN10300_RTC=y
@@ -135,13 +139,15 @@ CONFIG_FLATMEM_MANUAL=y
135# CONFIG_SPARSEMEM_MANUAL is not set 139# CONFIG_SPARSEMEM_MANUAL is not set
136CONFIG_FLATMEM=y 140CONFIG_FLATMEM=y
137CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
138# CONFIG_SPARSEMEM_STATIC is not set 142CONFIG_PAGEFLAGS_EXTENDED=y
139# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
140CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
141# CONFIG_RESOURCES_64BIT is not set 144# CONFIG_PHYS_ADDR_T_64BIT is not set
142CONFIG_ZONE_DMA_FLAG=0 145CONFIG_ZONE_DMA_FLAG=0
143CONFIG_NR_QUICK=1 146CONFIG_NR_QUICK=1
144CONFIG_VIRT_TO_BUS=y 147CONFIG_VIRT_TO_BUS=y
148CONFIG_UNEVICTABLE_LRU=y
149CONFIG_HAVE_MLOCK=y
150CONFIG_HAVE_MLOCKED_PAGE_BIT=y
145 151
146# 152#
147# Power management options 153# Power management options
@@ -152,11 +158,9 @@ CONFIG_VIRT_TO_BUS=y
152# Executable formats 158# Executable formats
153# 159#
154CONFIG_BINFMT_ELF=y 160CONFIG_BINFMT_ELF=y
161# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
162# CONFIG_HAVE_AOUT is not set
155# CONFIG_BINFMT_MISC is not set 163# CONFIG_BINFMT_MISC is not set
156
157#
158# Networking
159#
160CONFIG_NET=y 164CONFIG_NET=y
161 165
162# 166#
@@ -194,8 +198,6 @@ CONFIG_TCP_CONG_CUBIC=y
194CONFIG_DEFAULT_TCP_CONG="cubic" 198CONFIG_DEFAULT_TCP_CONG="cubic"
195# CONFIG_TCP_MD5SIG is not set 199# CONFIG_TCP_MD5SIG is not set
196# CONFIG_IPV6 is not set 200# CONFIG_IPV6 is not set
197# CONFIG_INET6_XFRM_TUNNEL is not set
198# CONFIG_INET6_TUNNEL is not set
199# CONFIG_NETWORK_SECMARK is not set 201# CONFIG_NETWORK_SECMARK is not set
200# CONFIG_NETFILTER is not set 202# CONFIG_NETFILTER is not set
201# CONFIG_IP_DCCP is not set 203# CONFIG_IP_DCCP is not set
@@ -203,6 +205,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
203# CONFIG_TIPC is not set 205# CONFIG_TIPC is not set
204# CONFIG_ATM is not set 206# CONFIG_ATM is not set
205# CONFIG_BRIDGE is not set 207# CONFIG_BRIDGE is not set
208# CONFIG_NET_DSA is not set
206# CONFIG_VLAN_8021Q is not set 209# CONFIG_VLAN_8021Q is not set
207# CONFIG_DECNET is not set 210# CONFIG_DECNET is not set
208# CONFIG_LLC2 is not set 211# CONFIG_LLC2 is not set
@@ -212,7 +215,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
212# CONFIG_LAPB is not set 215# CONFIG_LAPB is not set
213# CONFIG_ECONET is not set 216# CONFIG_ECONET is not set
214# CONFIG_WAN_ROUTER is not set 217# CONFIG_WAN_ROUTER is not set
218# CONFIG_PHONET is not set
215# CONFIG_NET_SCHED is not set 219# CONFIG_NET_SCHED is not set
220# CONFIG_DCB is not set
216 221
217# 222#
218# Network testing 223# Network testing
@@ -223,14 +228,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
223# CONFIG_IRDA is not set 228# CONFIG_IRDA is not set
224# CONFIG_BT is not set 229# CONFIG_BT is not set
225# CONFIG_AF_RXRPC is not set 230# CONFIG_AF_RXRPC is not set
226 231# CONFIG_WIRELESS is not set
227# 232# CONFIG_WIMAX is not set
228# Wireless
229#
230# CONFIG_CFG80211 is not set
231# CONFIG_WIRELESS_EXT is not set
232# CONFIG_MAC80211 is not set
233# CONFIG_IEEE80211 is not set
234# CONFIG_RFKILL is not set 233# CONFIG_RFKILL is not set
235# CONFIG_NET_9P is not set 234# CONFIG_NET_9P is not set
236 235
@@ -255,6 +254,7 @@ CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
255CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 254CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
256# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 255# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
257# CONFIG_MTD_CMDLINE_PARTS is not set 256# CONFIG_MTD_CMDLINE_PARTS is not set
257# CONFIG_MTD_AR7_PARTS is not set
258 258
259# 259#
260# User Modules And Translation Layers 260# User Modules And Translation Layers
@@ -297,9 +297,7 @@ CONFIG_MTD_CFI_UTIL=y
297# 297#
298# CONFIG_MTD_COMPLEX_MAPPINGS is not set 298# CONFIG_MTD_COMPLEX_MAPPINGS is not set
299CONFIG_MTD_PHYSMAP=y 299CONFIG_MTD_PHYSMAP=y
300CONFIG_MTD_PHYSMAP_START=0x8000000 300# CONFIG_MTD_PHYSMAP_COMPAT is not set
301CONFIG_MTD_PHYSMAP_LEN=0x0
302CONFIG_MTD_PHYSMAP_BANKWIDTH=2
303# CONFIG_MTD_PLATRAM is not set 301# CONFIG_MTD_PLATRAM is not set
304 302
305# 303#
@@ -319,14 +317,23 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
319# CONFIG_MTD_ONENAND is not set 317# CONFIG_MTD_ONENAND is not set
320 318
321# 319#
320# LPDDR flash memory drivers
321#
322# CONFIG_MTD_LPDDR is not set
323
324#
322# UBI - Unsorted block images 325# UBI - Unsorted block images
323# 326#
324# CONFIG_MTD_UBI is not set 327# CONFIG_MTD_UBI is not set
325# CONFIG_PARPORT is not set 328# CONFIG_PARPORT is not set
326CONFIG_MISC_DEVICES=y 329CONFIG_MISC_DEVICES=y
327# CONFIG_EEPROM_93CX6 is not set
328# CONFIG_ENCLOSURE_SERVICES is not set 330# CONFIG_ENCLOSURE_SERVICES is not set
329# CONFIG_HAVE_IDE is not set 331# CONFIG_C2PORT is not set
332
333#
334# EEPROM support
335#
336# CONFIG_EEPROM_93CX6 is not set
330 337
331# 338#
332# SCSI device support 339# SCSI device support
@@ -334,7 +341,7 @@ CONFIG_MISC_DEVICES=y
334# CONFIG_SCSI_DMA is not set 341# CONFIG_SCSI_DMA is not set
335# CONFIG_SCSI_NETLINK is not set 342# CONFIG_SCSI_NETLINK is not set
336CONFIG_NETDEVICES=y 343CONFIG_NETDEVICES=y
337# CONFIG_NETDEVICES_MULTIQUEUE is not set 344CONFIG_COMPAT_NET_DEV_OPS=y
338# CONFIG_DUMMY is not set 345# CONFIG_DUMMY is not set
339# CONFIG_BONDING is not set 346# CONFIG_BONDING is not set
340# CONFIG_MACVLAN is not set 347# CONFIG_MACVLAN is not set
@@ -345,10 +352,15 @@ CONFIG_NETDEVICES=y
345CONFIG_NET_ETHERNET=y 352CONFIG_NET_ETHERNET=y
346CONFIG_MII=y 353CONFIG_MII=y
347CONFIG_SMC91X=y 354CONFIG_SMC91X=y
355# CONFIG_ETHOC is not set
356# CONFIG_DNET is not set
348# CONFIG_IBM_NEW_EMAC_ZMII is not set 357# CONFIG_IBM_NEW_EMAC_ZMII is not set
349# CONFIG_IBM_NEW_EMAC_RGMII is not set 358# CONFIG_IBM_NEW_EMAC_RGMII is not set
350# CONFIG_IBM_NEW_EMAC_TAH is not set 359# CONFIG_IBM_NEW_EMAC_TAH is not set
351# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 360# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
361# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
362# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
363# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
352# CONFIG_B44 is not set 364# CONFIG_B44 is not set
353# CONFIG_NETDEV_1000 is not set 365# CONFIG_NETDEV_1000 is not set
354# CONFIG_NETDEV_10000 is not set 366# CONFIG_NETDEV_10000 is not set
@@ -358,6 +370,10 @@ CONFIG_SMC91X=y
358# 370#
359# CONFIG_WLAN_PRE80211 is not set 371# CONFIG_WLAN_PRE80211 is not set
360# CONFIG_WLAN_80211 is not set 372# CONFIG_WLAN_80211 is not set
373
374#
375# Enable WiMAX (Networking options) to see the WiMAX drivers
376#
361# CONFIG_WAN is not set 377# CONFIG_WAN is not set
362# CONFIG_PPP is not set 378# CONFIG_PPP is not set
363# CONFIG_SLIP is not set 379# CONFIG_SLIP is not set
@@ -382,6 +398,7 @@ CONFIG_SMC91X=y
382# Character devices 398# Character devices
383# 399#
384# CONFIG_VT is not set 400# CONFIG_VT is not set
401CONFIG_DEVKMEM=y
385# CONFIG_SERIAL_NONSTANDARD is not set 402# CONFIG_SERIAL_NONSTANDARD is not set
386 403
387# 404#
@@ -403,6 +420,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
403CONFIG_SERIAL_CORE=y 420CONFIG_SERIAL_CORE=y
404CONFIG_SERIAL_CORE_CONSOLE=y 421CONFIG_SERIAL_CORE_CONSOLE=y
405CONFIG_UNIX98_PTYS=y 422CONFIG_UNIX98_PTYS=y
423# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
406CONFIG_LEGACY_PTYS=y 424CONFIG_LEGACY_PTYS=y
407CONFIG_LEGACY_PTY_COUNT=256 425CONFIG_LEGACY_PTY_COUNT=256
408# CONFIG_IPMI_HANDLER is not set 426# CONFIG_IPMI_HANDLER is not set
@@ -411,34 +429,43 @@ CONFIG_RTC=y
411# CONFIG_R3964 is not set 429# CONFIG_R3964 is not set
412# CONFIG_TCG_TPM is not set 430# CONFIG_TCG_TPM is not set
413# CONFIG_I2C is not set 431# CONFIG_I2C is not set
414
415#
416# SPI support
417#
418# CONFIG_SPI is not set 432# CONFIG_SPI is not set
419# CONFIG_SPI_MASTER is not set
420# CONFIG_W1 is not set 433# CONFIG_W1 is not set
421# CONFIG_POWER_SUPPLY is not set 434# CONFIG_POWER_SUPPLY is not set
422# CONFIG_HWMON is not set 435# CONFIG_HWMON is not set
423# CONFIG_THERMAL is not set 436# CONFIG_THERMAL is not set
437# CONFIG_THERMAL_HWMON is not set
424# CONFIG_WATCHDOG is not set 438# CONFIG_WATCHDOG is not set
439CONFIG_SSB_POSSIBLE=y
425 440
426# 441#
427# Sonics Silicon Backplane 442# Sonics Silicon Backplane
428# 443#
429CONFIG_SSB_POSSIBLE=y
430# CONFIG_SSB is not set 444# CONFIG_SSB is not set
431 445
432# 446#
433# Multifunction device drivers 447# Multifunction device drivers
434# 448#
449# CONFIG_MFD_CORE is not set
435# CONFIG_MFD_SM501 is not set 450# CONFIG_MFD_SM501 is not set
451# CONFIG_HTC_PASIC3 is not set
452# CONFIG_MFD_TMIO is not set
453# CONFIG_REGULATOR is not set
436 454
437# 455#
438# Multimedia devices 456# Multimedia devices
439# 457#
458
459#
460# Multimedia core support
461#
440# CONFIG_VIDEO_DEV is not set 462# CONFIG_VIDEO_DEV is not set
441# CONFIG_DVB_CORE is not set 463# CONFIG_DVB_CORE is not set
464# CONFIG_VIDEO_MEDIA is not set
465
466#
467# Multimedia drivers
468#
442# CONFIG_DAB is not set 469# CONFIG_DAB is not set
443 470
444# 471#
@@ -453,21 +480,17 @@ CONFIG_SSB_POSSIBLE=y
453# Display device support 480# Display device support
454# 481#
455# CONFIG_DISPLAY_SUPPORT is not set 482# CONFIG_DISPLAY_SUPPORT is not set
456
457#
458# Sound
459#
460# CONFIG_SOUND is not set 483# CONFIG_SOUND is not set
461# CONFIG_USB_SUPPORT is not set 484# CONFIG_USB_SUPPORT is not set
462# CONFIG_MMC is not set 485# CONFIG_MMC is not set
463# CONFIG_MEMSTICK is not set 486# CONFIG_MEMSTICK is not set
464# CONFIG_NEW_LEDS is not set 487# CONFIG_NEW_LEDS is not set
488# CONFIG_ACCESSIBILITY is not set
465# CONFIG_RTC_CLASS is not set 489# CONFIG_RTC_CLASS is not set
466 490# CONFIG_DMADEVICES is not set
467# 491# CONFIG_AUXDISPLAY is not set
468# Userspace I/O
469#
470# CONFIG_UIO is not set 492# CONFIG_UIO is not set
493# CONFIG_STAGING is not set
471 494
472# 495#
473# File systems 496# File systems
@@ -481,20 +504,23 @@ CONFIG_INOTIFY_USER=y
481# CONFIG_FUSE_FS is not set 504# CONFIG_FUSE_FS is not set
482 505
483# 506#
507# Caches
508#
509# CONFIG_FSCACHE is not set
510
511#
484# Pseudo filesystems 512# Pseudo filesystems
485# 513#
486CONFIG_PROC_FS=y 514CONFIG_PROC_FS=y
487CONFIG_PROC_KCORE=y 515CONFIG_PROC_KCORE=y
488CONFIG_PROC_SYSCTL=y 516CONFIG_PROC_SYSCTL=y
517# CONFIG_PROC_PAGE_MONITOR is not set
489CONFIG_SYSFS=y 518CONFIG_SYSFS=y
490CONFIG_TMPFS=y 519CONFIG_TMPFS=y
491# CONFIG_TMPFS_POSIX_ACL is not set 520# CONFIG_TMPFS_POSIX_ACL is not set
492# CONFIG_HUGETLB_PAGE is not set 521# CONFIG_HUGETLB_PAGE is not set
493# CONFIG_CONFIGFS_FS is not set 522# CONFIG_CONFIGFS_FS is not set
494 523CONFIG_MISC_FILESYSTEMS=y
495#
496# Miscellaneous filesystems
497#
498CONFIG_JFFS2_FS=y 524CONFIG_JFFS2_FS=y
499CONFIG_JFFS2_FS_DEBUG=0 525CONFIG_JFFS2_FS_DEBUG=0
500CONFIG_JFFS2_FS_WRITEBUFFER=y 526CONFIG_JFFS2_FS_WRITEBUFFER=y
@@ -506,19 +532,17 @@ CONFIG_JFFS2_ZLIB=y
506# CONFIG_JFFS2_LZO is not set 532# CONFIG_JFFS2_LZO is not set
507CONFIG_JFFS2_RTIME=y 533CONFIG_JFFS2_RTIME=y
508# CONFIG_JFFS2_RUBIN is not set 534# CONFIG_JFFS2_RUBIN is not set
535# CONFIG_ROMFS_FS is not set
509CONFIG_NETWORK_FILESYSTEMS=y 536CONFIG_NETWORK_FILESYSTEMS=y
510CONFIG_NFS_FS=y 537CONFIG_NFS_FS=y
511CONFIG_NFS_V3=y 538CONFIG_NFS_V3=y
512# CONFIG_NFS_V3_ACL is not set 539# CONFIG_NFS_V3_ACL is not set
513# CONFIG_NFS_V4 is not set 540# CONFIG_NFS_V4 is not set
514# CONFIG_NFS_DIRECTIO is not set
515# CONFIG_NFSD is not set
516CONFIG_ROOT_NFS=y 541CONFIG_ROOT_NFS=y
517CONFIG_LOCKD=y 542CONFIG_LOCKD=y
518CONFIG_LOCKD_V4=y 543CONFIG_LOCKD_V4=y
519CONFIG_NFS_COMMON=y 544CONFIG_NFS_COMMON=y
520CONFIG_SUNRPC=y 545CONFIG_SUNRPC=y
521# CONFIG_SUNRPC_BIND34 is not set
522# CONFIG_RPCSEC_GSS_KRB5 is not set 546# CONFIG_RPCSEC_GSS_KRB5 is not set
523# CONFIG_RPCSEC_GSS_SPKM3 is not set 547# CONFIG_RPCSEC_GSS_SPKM3 is not set
524# CONFIG_SMB_FS is not set 548# CONFIG_SMB_FS is not set
@@ -535,12 +559,16 @@ CONFIG_SUNRPC=y
535# CONFIG_PRINTK_TIME is not set 559# CONFIG_PRINTK_TIME is not set
536CONFIG_ENABLE_WARN_DEPRECATED=y 560CONFIG_ENABLE_WARN_DEPRECATED=y
537CONFIG_ENABLE_MUST_CHECK=y 561CONFIG_ENABLE_MUST_CHECK=y
562CONFIG_FRAME_WARN=1024
538CONFIG_MAGIC_SYSRQ=y 563CONFIG_MAGIC_SYSRQ=y
539# CONFIG_UNUSED_SYMBOLS is not set 564# CONFIG_UNUSED_SYMBOLS is not set
540# CONFIG_DEBUG_FS is not set 565# CONFIG_DEBUG_FS is not set
541# CONFIG_HEADERS_CHECK is not set 566# CONFIG_HEADERS_CHECK is not set
542# CONFIG_DEBUG_KERNEL is not set 567# CONFIG_DEBUG_KERNEL is not set
543# CONFIG_DEBUG_BUGVERBOSE is not set 568# CONFIG_DEBUG_BUGVERBOSE is not set
569# CONFIG_DEBUG_MEMORY_INIT is not set
570# CONFIG_RCU_CPU_STALL_DETECTOR is not set
571# CONFIG_SYSCTL_SYSCALL_CHECK is not set
544# CONFIG_SAMPLES is not set 572# CONFIG_SAMPLES is not set
545 573
546# 574#
@@ -548,26 +576,26 @@ CONFIG_MAGIC_SYSRQ=y
548# 576#
549# CONFIG_KEYS is not set 577# CONFIG_KEYS is not set
550# CONFIG_SECURITY is not set 578# CONFIG_SECURITY is not set
579# CONFIG_SECURITYFS is not set
551# CONFIG_SECURITY_FILE_CAPABILITIES is not set 580# CONFIG_SECURITY_FILE_CAPABILITIES is not set
552# CONFIG_CRYPTO is not set 581# CONFIG_CRYPTO is not set
582# CONFIG_BINARY_PRINTF is not set
553 583
554# 584#
555# Library routines 585# Library routines
556# 586#
557CONFIG_BITREVERSE=y 587CONFIG_BITREVERSE=y
588CONFIG_GENERIC_FIND_LAST_BIT=y
558# CONFIG_CRC_CCITT is not set 589# CONFIG_CRC_CCITT is not set
559# CONFIG_CRC16 is not set 590# CONFIG_CRC16 is not set
591# CONFIG_CRC_T10DIF is not set
560# CONFIG_CRC_ITU_T is not set 592# CONFIG_CRC_ITU_T is not set
561CONFIG_CRC32=y 593CONFIG_CRC32=y
562# CONFIG_CRC7 is not set 594# CONFIG_CRC7 is not set
563# CONFIG_LIBCRC32C is not set 595# CONFIG_LIBCRC32C is not set
564CONFIG_ZLIB_INFLATE=y 596CONFIG_ZLIB_INFLATE=y
565CONFIG_ZLIB_DEFLATE=y 597CONFIG_ZLIB_DEFLATE=y
566CONFIG_PLIST=y
567CONFIG_HAS_IOMEM=y 598CONFIG_HAS_IOMEM=y
568CONFIG_HAS_IOPORT=y 599CONFIG_HAS_IOPORT=y
569CONFIG_HAS_DMA=y 600CONFIG_HAS_DMA=y
570 601CONFIG_NLATTR=y
571#
572# Profiling support
573#
diff --git a/arch/mn10300/include/asm/bug.h b/arch/mn10300/include/asm/bug.h
index 4fcf3384e259..aa6a38886391 100644
--- a/arch/mn10300/include/asm/bug.h
+++ b/arch/mn10300/include/asm/bug.h
@@ -11,10 +11,12 @@
11#ifndef _ASM_BUG_H 11#ifndef _ASM_BUG_H
12#define _ASM_BUG_H 12#define _ASM_BUG_H
13 13
14#ifdef CONFIG_BUG
15
14/* 16/*
15 * Tell the user there is some problem. 17 * Tell the user there is some problem.
16 */ 18 */
17#define _debug_bug_trap() \ 19#define BUG() \
18do { \ 20do { \
19 asm volatile( \ 21 asm volatile( \
20 " syscall 15 \n" \ 22 " syscall 15 \n" \
@@ -25,11 +27,11 @@ do { \
25 : \ 27 : \
26 : "i"(__FILE__), "i"(__LINE__) \ 28 : "i"(__FILE__), "i"(__LINE__) \
27 ); \ 29 ); \
28} while (0) 30} while (1)
29
30#define BUG() _debug_bug_trap()
31 31
32#define HAVE_ARCH_BUG 32#define HAVE_ARCH_BUG
33#endif /* CONFIG_BUG */
34
33#include <asm-generic/bug.h> 35#include <asm-generic/bug.h>
34 36
35#endif /* _ASM_BUG_H */ 37#endif /* _ASM_BUG_H */
diff --git a/arch/mn10300/include/asm/unistd.h b/arch/mn10300/include/asm/unistd.h
index 543a4f98695d..fef5b434dadc 100644
--- a/arch/mn10300/include/asm/unistd.h
+++ b/arch/mn10300/include/asm/unistd.h
@@ -344,6 +344,8 @@
344#define __NR_dup3 331 344#define __NR_dup3 331
345#define __NR_pipe2 332 345#define __NR_pipe2 332
346#define __NR_inotify_init1 333 346#define __NR_inotify_init1 333
347#define __NR_preadv 334
348#define __NR_pwritev 335
347 349
348#ifdef __KERNEL__ 350#ifdef __KERNEL__
349 351
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S
index 34ab5a293153..3dc3e462f92a 100644
--- a/arch/mn10300/kernel/entry.S
+++ b/arch/mn10300/kernel/entry.S
@@ -723,6 +723,8 @@ ENTRY(sys_call_table)
723 .long sys_dup3 723 .long sys_dup3
724 .long sys_pipe2 724 .long sys_pipe2
725 .long sys_inotify_init1 725 .long sys_inotify_init1
726 .long sys_preadv
727 .long sys_pwritev /* 335 */
726 728
727 729
728nr_syscalls=(.-sys_call_table)/4 730nr_syscalls=(.-sys_call_table)/4
diff --git a/arch/mn10300/kernel/head.S b/arch/mn10300/kernel/head.S
index 8a8309fbe3c4..14f27f3bfaf4 100644
--- a/arch/mn10300/kernel/head.S
+++ b/arch/mn10300/kernel/head.S
@@ -9,6 +9,7 @@
9 * 2 of the Licence, or (at your option) any later version. 9 * 2 of the Licence, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <linux/serial_reg.h> 15#include <linux/serial_reg.h>
@@ -19,7 +20,7 @@
19#include <asm/param.h> 20#include <asm/param.h>
20#include <unit/serial.h> 21#include <unit/serial.h>
21 22
22 .section .text.head,"ax" 23 __HEAD
23 24
24############################################################################### 25###############################################################################
25# 26#
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c
index 71414e19fd16..79890edfd67a 100644
--- a/arch/mn10300/kernel/setup.c
+++ b/arch/mn10300/kernel/setup.c
@@ -136,10 +136,6 @@ void __init setup_arch(char **cmdline_p)
136 data_resource.start = virt_to_bus(&_etext); 136 data_resource.start = virt_to_bus(&_etext);
137 data_resource.end = virt_to_bus(&_edata)-1; 137 data_resource.end = virt_to_bus(&_edata)-1;
138 138
139#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
140#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
141#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
142
143 start_pfn = (CONFIG_KERNEL_RAM_BASE_ADDRESS >> PAGE_SHIFT); 139 start_pfn = (CONFIG_KERNEL_RAM_BASE_ADDRESS >> PAGE_SHIFT);
144 kstart_pfn = PFN_UP(__pa(&_text)); 140 kstart_pfn = PFN_UP(__pa(&_text));
145 free_pfn = PFN_UP(__pa(&_end)); 141 free_pfn = PFN_UP(__pa(&_end));
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S
index b8259668f7dc..24de6b90f401 100644
--- a/arch/mn10300/kernel/vmlinux.lds.S
+++ b/arch/mn10300/kernel/vmlinux.lds.S
@@ -27,10 +27,7 @@ SECTIONS
27 _stext = .; 27 _stext = .;
28 _text = .; /* Text and read-only data */ 28 _text = .; /* Text and read-only data */
29 .text : { 29 .text : {
30 *( 30 HEAD_TEXT
31 .text.head
32 .text
33 )
34 TEXT_TEXT 31 TEXT_TEXT
35 SCHED_TEXT 32 SCHED_TEXT
36 LOCK_TEXT 33 LOCK_TEXT
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 5b50e1ac6179..a0d1146a0578 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -181,6 +181,10 @@ config SYS_SUPPORTS_APM_EMULATION
181 default y if PMAC_APM_EMU 181 default y if PMAC_APM_EMU
182 bool 182 bool
183 183
184config DTC
185 bool
186 default y
187
184config DEFAULT_UIMAGE 188config DEFAULT_UIMAGE
185 bool 189 bool
186 help 190 help
@@ -462,7 +466,7 @@ config PPC_64K_PAGES
462 466
463config PPC_256K_PAGES 467config PPC_256K_PAGES
464 bool "256k page size" if 44x 468 bool "256k page size" if 44x
465 depends on !STDBINUTILS && (!SHMEM || BROKEN) 469 depends on !STDBINUTILS
466 help 470 help
467 Make the page size 256k. 471 Make the page size 256k.
468 472
diff --git a/arch/powerpc/boot/4xx.c b/arch/powerpc/boot/4xx.c
index 5c878436f348..325b310573b9 100644
--- a/arch/powerpc/boot/4xx.c
+++ b/arch/powerpc/boot/4xx.c
@@ -158,21 +158,33 @@ void ibm440spe_fixup_memsize(void)
158 158
159#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask)) 159#define DDR_GET_VAL(val, mask, shift) (((val) >> (shift)) & (mask))
160 160
161void ibm4xx_denali_fixup_memsize(void) 161/*
162 * Some U-Boot versions set the number of chipselects to two
163 * for Sequoia/Rainier boards while they only have one chipselect
164 * hardwired. Hardcode the number of chipselects to one
165 * for sequioa/rainer board models or read the actual value
166 * from the memory controller register DDR0_10 otherwise.
167 */
168static inline u32 ibm4xx_denali_get_cs(void)
162{ 169{
163 u32 val, max_cs, max_col, max_row; 170 void *devp;
164 u32 cs, col, row, bank, dpath; 171 char model[64];
165 unsigned long memsize; 172 u32 val, cs;
166 173
167 val = SDRAM0_READ(DDR0_02); 174 devp = finddevice("/");
168 if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT)) 175 if (!devp)
169 fatal("DDR controller is not initialized\n"); 176 goto read_cs;
170 177
171 /* get maximum cs col and row values */ 178 if (getprop(devp, "model", model, sizeof(model)) <= 0)
172 max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT); 179 goto read_cs;
173 max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
174 max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
175 180
181 model[sizeof(model)-1] = 0;
182
183 if (!strcmp(model, "amcc,sequoia") ||
184 !strcmp(model, "amcc,rainier"))
185 return 1;
186
187read_cs:
176 /* get CS value */ 188 /* get CS value */
177 val = SDRAM0_READ(DDR0_10); 189 val = SDRAM0_READ(DDR0_10);
178 190
@@ -183,7 +195,25 @@ void ibm4xx_denali_fixup_memsize(void)
183 cs++; 195 cs++;
184 val = val >> 1; 196 val = val >> 1;
185 } 197 }
198 return cs;
199}
200
201void ibm4xx_denali_fixup_memsize(void)
202{
203 u32 val, max_cs, max_col, max_row;
204 u32 cs, col, row, bank, dpath;
205 unsigned long memsize;
206
207 val = SDRAM0_READ(DDR0_02);
208 if (!DDR_GET_VAL(val, DDR_START, DDR_START_SHIFT))
209 fatal("DDR controller is not initialized\n");
186 210
211 /* get maximum cs col and row values */
212 max_cs = DDR_GET_VAL(val, DDR_MAX_CS_REG, DDR_MAX_CS_REG_SHIFT);
213 max_col = DDR_GET_VAL(val, DDR_MAX_COL_REG, DDR_MAX_COL_REG_SHIFT);
214 max_row = DDR_GET_VAL(val, DDR_MAX_ROW_REG, DDR_MAX_ROW_REG_SHIFT);
215
216 cs = ibm4xx_denali_get_cs();
187 if (!cs) 217 if (!cs)
188 fatal("No memory installed\n"); 218 fatal("No memory installed\n");
189 if (cs > max_cs) 219 if (cs > max_cs)
@@ -193,9 +223,9 @@ void ibm4xx_denali_fixup_memsize(void)
193 val = SDRAM0_READ(DDR0_14); 223 val = SDRAM0_READ(DDR0_14);
194 224
195 if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT)) 225 if (DDR_GET_VAL(val, DDR_REDUC, DDR_REDUC_SHIFT))
196 dpath = 8; /* 64 bits */
197 else
198 dpath = 4; /* 32 bits */ 226 dpath = 4; /* 32 bits */
227 else
228 dpath = 8; /* 64 bits */
199 229
200 /* get address pins (rows) */ 230 /* get address pins (rows) */
201 val = SDRAM0_READ(DDR0_42); 231 val = SDRAM0_READ(DDR0_42);
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 4458abb67c51..9ae7b7e2ba71 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -33,7 +33,7 @@ ifeq ($(call cc-option-yn, -fstack-protector),y)
33BOOTCFLAGS += -fno-stack-protector 33BOOTCFLAGS += -fno-stack-protector
34endif 34endif
35 35
36BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) -I$(srctree)/$(src)/libfdt 36BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj)
37 37
38DTS_FLAGS ?= -p 1024 38DTS_FLAGS ?= -p 1024
39 39
@@ -53,9 +53,14 @@ zliblinuxheader := zlib.h zconf.h zutil.h
53$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o prpmc2800.o): \ 53$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o prpmc2800.o): \
54 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader)) 54 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
55 55
56src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c 56libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
57libfdtheader := fdt.h libfdt.h libfdt_internal.h
58
59$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o): \
60 $(addprefix $(obj)/,$(libfdtheader))
61
57src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \ 62src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
58 $(addprefix libfdt/,$(src-libfdt)) libfdt-wrapper.c \ 63 $(libfdt) libfdt-wrapper.c \
59 ns16550.c serial.c simple_alloc.c div64.S util.S \ 64 ns16550.c serial.c simple_alloc.c div64.S util.S \
60 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ 65 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
61 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \ 66 4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
@@ -96,6 +101,12 @@ $(addprefix $(obj)/,$(zlibheader)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
96$(addprefix $(obj)/,$(zliblinuxheader)): $(obj)/%: $(srctree)/include/linux/% 101$(addprefix $(obj)/,$(zliblinuxheader)): $(obj)/%: $(srctree)/include/linux/%
97 $(call cmd,copy_zliblinuxheader) 102 $(call cmd,copy_zliblinuxheader)
98 103
104quiet_cmd_copy_libfdt = COPY $@
105 cmd_copy_libfdt = cp $< $@
106
107$(addprefix $(obj)/,$(libfdt) $(libfdtheader)): $(obj)/%: $(srctree)/scripts/dtc/libfdt/%
108 $(call cmd,copy_libfdt)
109
99$(obj)/empty.c: 110$(obj)/empty.c:
100 @touch $@ 111 @touch $@
101 112
@@ -103,6 +114,7 @@ $(obj)/zImage.lds $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds: $(obj)/%: $(srct
103 @cp $< $@ 114 @cp $< $@
104 115
105clean-files := $(zlib) $(zlibheader) $(zliblinuxheader) \ 116clean-files := $(zlib) $(zlibheader) $(zliblinuxheader) \
117 $(libfdt) $(libfdtheader) \
106 empty.c zImage.coff.lds zImage.ps3.lds zImage.lds 118 empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
107 119
108quiet_cmd_bootcc = BOOTCC $@ 120quiet_cmd_bootcc = BOOTCC $@
@@ -114,6 +126,8 @@ quiet_cmd_bootas = BOOTAS $@
114quiet_cmd_bootar = BOOTAR $@ 126quiet_cmd_bootar = BOOTAR $@
115 cmd_bootar = $(CROSS32AR) -cr $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@ 127 cmd_bootar = $(CROSS32AR) -cr $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@
116 128
129$(obj-libfdt): $(obj)/%.o: $(srctree)/scripts/dtc/libfdt/%.c FORCE
130 $(call if_changed_dep,bootcc)
117$(patsubst %.c,%.o, $(filter %.c, $(src-boot))): %.o: %.c FORCE 131$(patsubst %.c,%.o, $(filter %.c, $(src-boot))): %.o: %.c FORCE
118 $(Q)mkdir -p $(dir $@) 132 $(Q)mkdir -p $(dir $@)
119 $(call if_changed_dep,bootcc) 133 $(call if_changed_dep,bootcc)
@@ -124,7 +138,7 @@ $(patsubst %.S,%.o, $(filter %.S, $(src-boot))): %.o: %.S FORCE
124$(obj)/wrapper.a: $(obj-wlib) FORCE 138$(obj)/wrapper.a: $(obj-wlib) FORCE
125 $(call if_changed,bootar) 139 $(call if_changed,bootar)
126 140
127hostprogs-y := addnote addRamDisk hack-coff mktree dtc 141hostprogs-y := addnote addRamDisk hack-coff mktree
128 142
129targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a) 143targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a)
130extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \ 144extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \
@@ -133,47 +147,10 @@ extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \
133dtstree := $(srctree)/$(src)/dts 147dtstree := $(srctree)/$(src)/dts
134 148
135wrapper :=$(srctree)/$(src)/wrapper 149wrapper :=$(srctree)/$(src)/wrapper
136wrapperbits := $(extra-y) $(addprefix $(obj)/,addnote hack-coff mktree dtc) \ 150wrapperbits := $(extra-y) $(addprefix $(obj)/,addnote hack-coff mktree) \
137 $(wrapper) FORCE 151 $(wrapper) FORCE
138 152
139############# 153#############
140# Bits for building dtc
141# DTC_GENPARSER := 1 # Uncomment to rebuild flex/bison output
142
143dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o srcpos.o checks.o
144dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
145dtc-objs := $(addprefix dtc-src/, $(dtc-objs))
146
147# prerequisites on generated files needs to be explicit
148$(obj)/dtc-src/dtc-parser.tab.o: $(obj)/dtc-src/dtc-parser.tab.c $(obj)/dtc-src/dtc-parser.tab.h
149$(obj)/dtc-src/dtc-lexer.lex.o: $(obj)/dtc-src/dtc-lexer.lex.c $(obj)/dtc-src/dtc-parser.tab.h
150
151HOSTCFLAGS += -I$(src)/dtc-src/ -I$(src)/libfdt/
152
153targets += dtc-src/dtc-parser.tab.c
154targets += dtc-src/dtc-lexer.lex.c
155
156clean-files += dtc-src/dtc-parser.tab.h
157
158ifdef DTC_GENPARSER
159BISON = bison
160FLEX = flex
161
162quiet_cmd_bison = BISON $@
163 cmd_bison = $(BISON) -o$@ -d $<; cp $@ $@_shipped
164quiet_cmd_flex = FLEX $@
165 cmd_flex = $(FLEX) -o$@ $<; cp $@ $@_shipped
166
167$(obj)/dtc-src/dtc-parser.tab.c: $(src)/dtc-src/dtc-parser.y FORCE
168 $(call if_changed,bison)
169
170$(obj)/dtc-src/dtc-parser.tab.h: $(obj)/dtc-src/dtc-parser.tab.c
171
172$(obj)/dtc-src/dtc-lexer.lex.c: $(src)/dtc-src/dtc-lexer.l FORCE
173 $(call if_changed,flex)
174endif
175
176#############
177# Bits for building various flavours of zImage 154# Bits for building various flavours of zImage
178 155
179ifneq ($(CROSS32_COMPILE),) 156ifneq ($(CROSS32_COMPILE),)
@@ -347,8 +324,10 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits)
347 $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb) 324 $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb)
348 325
349# Rule to build device tree blobs 326# Rule to build device tree blobs
350$(obj)/%.dtb: $(dtstree)/%.dts $(obj)/dtc 327DTC = $(objtree)/scripts/dtc/dtc
351 $(obj)/dtc -O dtb -o $(obj)/$*.dtb -b 0 $(DTS_FLAGS) $(dtstree)/$*.dts 328
329$(obj)/%.dtb: $(dtstree)/%.dts
330 $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 $(DTS_FLAGS) $(dtstree)/$*.dts
352 331
353# If there isn't a platform selected then just strip the vmlinux. 332# If there isn't a platform selected then just strip the vmlinux.
354ifeq (,$(image-y)) 333ifeq (,$(image-y))
@@ -367,7 +346,7 @@ install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
367clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \ 346clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
368 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \ 347 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
369 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \ 348 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \
370 otheros.bld *.dtb 349 simpleImage.* otheros.bld *.dtb
371 350
372# clean up files cached by wrapper 351# clean up files cached by wrapper
373clean-kernel := vmlinux.strip vmlinux.bin 352clean-kernel := vmlinux.strip vmlinux.bin
diff --git a/arch/powerpc/boot/dts/gef_ppc9a.dts b/arch/powerpc/boot/dts/gef_ppc9a.dts
index d47ad0718759..53a7a6255909 100644
--- a/arch/powerpc/boot/dts/gef_ppc9a.dts
+++ b/arch/powerpc/boot/dts/gef_ppc9a.dts
@@ -161,6 +161,7 @@
161 #address-cells = <1>; 161 #address-cells = <1>;
162 #size-cells = <1>; 162 #size-cells = <1>;
163 #interrupt-cells = <2>; 163 #interrupt-cells = <2>;
164 device_type = "soc";
164 compatible = "fsl,mpc8641-soc", "simple-bus"; 165 compatible = "fsl,mpc8641-soc", "simple-bus";
165 ranges = <0x0 0xfef00000 0x00100000>; 166 ranges = <0x0 0xfef00000 0x00100000>;
166 reg = <0xfef00000 0x100000>; // CCSRBAR 1M 167 reg = <0xfef00000 0x100000>; // CCSRBAR 1M
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts
index c63e3566479e..d13cb11ce623 100644
--- a/arch/powerpc/boot/dts/lite5200b.dts
+++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -293,4 +293,43 @@
293 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 293 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
294 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>; 294 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;
295 }; 295 };
296
297 localbus {
298 compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus";
299
300 #address-cells = <2>;
301 #size-cells = <1>;
302
303 ranges = <0 0 0xfe000000 0x02000000>;
304
305 flash@0,0 {
306 compatible = "cfi-flash";
307 reg = <0 0 0x02000000>;
308 bank-width = <1>;
309 #size-cells = <1>;
310 #address-cells = <1>;
311
312 partition@0 {
313 label = "kernel";
314 reg = <0x00000000 0x00200000>;
315 };
316 partition@200000 {
317 label = "rootfs";
318 reg = <0x00200000 0x01d00000>;
319 };
320 partition@1f00000 {
321 label = "u-boot";
322 reg = <0x01f00000 0x00060000>;
323 };
324 partition@1f60000 {
325 label = "u-boot-env";
326 reg = <0x01f60000 0x00020000>;
327 };
328 partition@1f80000 {
329 label = "dtb";
330 reg = <0x01f80000 0x00080000>;
331 };
332 };
333 };
334
296}; 335};
diff --git a/arch/powerpc/boot/dts/tqm8540.dts b/arch/powerpc/boot/dts/tqm8540.dts
index 231bae756637..b6f1fc6eb960 100644
--- a/arch/powerpc/boot/dts/tqm8540.dts
+++ b/arch/powerpc/boot/dts/tqm8540.dts
@@ -84,9 +84,9 @@
84 interrupt-parent = <&mpic>; 84 interrupt-parent = <&mpic>;
85 dfsrr; 85 dfsrr;
86 86
87 dtt@50 { 87 dtt@48 {
88 compatible = "national,lm75"; 88 compatible = "national,lm75";
89 reg = <0x50>; 89 reg = <0x48>;
90 }; 90 };
91 91
92 rtc@68 { 92 rtc@68 {
diff --git a/arch/powerpc/boot/dts/tqm8541.dts b/arch/powerpc/boot/dts/tqm8541.dts
index 4356a1f08295..fa6a3d54a8a5 100644
--- a/arch/powerpc/boot/dts/tqm8541.dts
+++ b/arch/powerpc/boot/dts/tqm8541.dts
@@ -83,9 +83,9 @@
83 interrupt-parent = <&mpic>; 83 interrupt-parent = <&mpic>;
84 dfsrr; 84 dfsrr;
85 85
86 dtt@50 { 86 dtt@48 {
87 compatible = "national,lm75"; 87 compatible = "national,lm75";
88 reg = <0x50>; 88 reg = <0x48>;
89 }; 89 };
90 90
91 rtc@68 { 91 rtc@68 {
diff --git a/arch/powerpc/boot/dts/tqm8548-bigflash.dts b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
index 19aa72301c83..00f7ed7a2455 100644
--- a/arch/powerpc/boot/dts/tqm8548-bigflash.dts
+++ b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
@@ -85,9 +85,9 @@
85 interrupt-parent = <&mpic>; 85 interrupt-parent = <&mpic>;
86 dfsrr; 86 dfsrr;
87 87
88 dtt@50 { 88 dtt@48 {
89 compatible = "national,lm75"; 89 compatible = "national,lm75";
90 reg = <0x50>; 90 reg = <0x48>;
91 }; 91 };
92 92
93 rtc@68 { 93 rtc@68 {
@@ -247,7 +247,7 @@
247 interrupts = <31 2 32 2 33 2>; 247 interrupts = <31 2 32 2 33 2>;
248 interrupt-parent = <&mpic>; 248 interrupt-parent = <&mpic>;
249 tbi-handle = <&tbi2>; 249 tbi-handle = <&tbi2>;
250 phy-handle = <&phy3>; 250 phy-handle = <&phy4>;
251 251
252 mdio@520 { 252 mdio@520 {
253 #address-cells = <1>; 253 #address-cells = <1>;
@@ -275,7 +275,7 @@
275 interrupts = <37 2 38 2 39 2>; 275 interrupts = <37 2 38 2 39 2>;
276 interrupt-parent = <&mpic>; 276 interrupt-parent = <&mpic>;
277 tbi-handle = <&tbi3>; 277 tbi-handle = <&tbi3>;
278 phy-handle = <&phy4>; 278 phy-handle = <&phy5>;
279 279
280 mdio@520 { 280 mdio@520 {
281 #address-cells = <1>; 281 #address-cells = <1>;
diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts
index 49145a04fc6c..673e4a778ac8 100644
--- a/arch/powerpc/boot/dts/tqm8548.dts
+++ b/arch/powerpc/boot/dts/tqm8548.dts
@@ -85,9 +85,9 @@
85 interrupt-parent = <&mpic>; 85 interrupt-parent = <&mpic>;
86 dfsrr; 86 dfsrr;
87 87
88 dtt@50 { 88 dtt@48 {
89 compatible = "national,lm75"; 89 compatible = "national,lm75";
90 reg = <0x50>; 90 reg = <0x48>;
91 }; 91 };
92 92
93 rtc@68 { 93 rtc@68 {
@@ -247,7 +247,7 @@
247 interrupts = <31 2 32 2 33 2>; 247 interrupts = <31 2 32 2 33 2>;
248 interrupt-parent = <&mpic>; 248 interrupt-parent = <&mpic>;
249 tbi-handle = <&tbi2>; 249 tbi-handle = <&tbi2>;
250 phy-handle = <&phy3>; 250 phy-handle = <&phy4>;
251 251
252 mdio@520 { 252 mdio@520 {
253 #address-cells = <1>; 253 #address-cells = <1>;
@@ -275,7 +275,7 @@
275 interrupts = <37 2 38 2 39 2>; 275 interrupts = <37 2 38 2 39 2>;
276 interrupt-parent = <&mpic>; 276 interrupt-parent = <&mpic>;
277 tbi-handle = <&tbi3>; 277 tbi-handle = <&tbi3>;
278 phy-handle = <&phy4>; 278 phy-handle = <&phy5>;
279 279
280 mdio@520 { 280 mdio@520 {
281 #address-cells = <1>; 281 #address-cells = <1>;
diff --git a/arch/powerpc/boot/dts/tqm8555.dts b/arch/powerpc/boot/dts/tqm8555.dts
index 06d366ebbda3..6a99f1eef7ad 100644
--- a/arch/powerpc/boot/dts/tqm8555.dts
+++ b/arch/powerpc/boot/dts/tqm8555.dts
@@ -83,9 +83,9 @@
83 interrupt-parent = <&mpic>; 83 interrupt-parent = <&mpic>;
84 dfsrr; 84 dfsrr;
85 85
86 dtt@50 { 86 dtt@48 {
87 compatible = "national,lm75"; 87 compatible = "national,lm75";
88 reg = <0x50>; 88 reg = <0x48>;
89 }; 89 };
90 90
91 rtc@68 { 91 rtc@68 {
diff --git a/arch/powerpc/boot/dts/tqm8560.dts b/arch/powerpc/boot/dts/tqm8560.dts
index feff915e0492..b6c2d71defd3 100644
--- a/arch/powerpc/boot/dts/tqm8560.dts
+++ b/arch/powerpc/boot/dts/tqm8560.dts
@@ -85,9 +85,9 @@
85 interrupt-parent = <&mpic>; 85 interrupt-parent = <&mpic>;
86 dfsrr; 86 dfsrr;
87 87
88 dtt@50 { 88 dtt@48 {
89 compatible = "national,lm75"; 89 compatible = "national,lm75";
90 reg = <0x50>; 90 reg = <0x48>;
91 }; 91 };
92 92
93 rtc@68 { 93 rtc@68 {
diff --git a/arch/powerpc/boot/mktree.c b/arch/powerpc/boot/mktree.c
index 45d06a8c7cd1..c2baae0a3d89 100644
--- a/arch/powerpc/boot/mktree.c
+++ b/arch/powerpc/boot/mktree.c
@@ -42,7 +42,7 @@ int main(int argc, char *argv[])
42{ 42{
43 int in_fd, out_fd; 43 int in_fd, out_fd;
44 int nblks, i; 44 int nblks, i;
45 uint cksum, *cp; 45 unsigned int cksum, *cp;
46 struct stat st; 46 struct stat st;
47 boot_block_t bt; 47 boot_block_t bt;
48 48
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])
90 90
91 cksum = 0; 91 cksum = 0;
92 cp = (void *)&bt; 92 cp = (void *)&bt;
93 for (i=0; i<sizeof(bt)/sizeof(uint); i++) 93 for (i = 0; i < sizeof(bt) / sizeof(unsigned int); i++)
94 cksum += *cp++; 94 cksum += *cp++;
95 95
96 /* Assume zImage is an ELF file, and skip the 64K header. 96 /* Assume zImage is an ELF file, and skip the 64K header.
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
101 exit(4); 101 exit(4);
102 } 102 }
103 103
104 if ((*(uint *)tmpbuf) != htonl(0x7f454c46)) { 104 if ((*(unsigned int *)tmpbuf) != htonl(0x7f454c46)) {
105 fprintf(stderr, "%s is not an ELF image\n", argv[1]); 105 fprintf(stderr, "%s is not an ELF image\n", argv[1]);
106 exit(4); 106 exit(4);
107 } 107 }
@@ -125,8 +125,8 @@ int main(int argc, char *argv[])
125 perror("zImage read"); 125 perror("zImage read");
126 exit(5); 126 exit(5);
127 } 127 }
128 cp = (uint *)tmpbuf; 128 cp = (unsigned int *)tmpbuf;
129 for (i=0; i<sizeof(tmpbuf)/sizeof(uint); i++) 129 for (i = 0; i < sizeof(tmpbuf) / sizeof(unsigned int); i++)
130 cksum += *cp++; 130 cksum += *cp++;
131 if (write(out_fd, tmpbuf, sizeof(tmpbuf)) != sizeof(tmpbuf)) { 131 if (write(out_fd, tmpbuf, sizeof(tmpbuf)) != sizeof(tmpbuf)) {
132 perror("boot-image write"); 132 perror("boot-image write");
diff --git a/arch/powerpc/boot/simpleboot.c b/arch/powerpc/boot/simpleboot.c
index c58a0dada992..21cd48074ec8 100644
--- a/arch/powerpc/boot/simpleboot.c
+++ b/arch/powerpc/boot/simpleboot.c
@@ -19,7 +19,7 @@
19#include "types.h" 19#include "types.h"
20#include "io.h" 20#include "io.h"
21#include "stdio.h" 21#include "stdio.h"
22#include "libfdt/libfdt.h" 22#include <libfdt.h>
23 23
24BSS_STACK(4*1024); 24BSS_STACK(4*1024);
25 25
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 1239c6132b4a..3838b77b8116 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 21:41:58 2009 4# Sat Apr 18 00:47:44 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -94,19 +96,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
94# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
95CONFIG_BLK_DEV_INITRD=y 97CONFIG_BLK_DEV_INITRD=y
96CONFIG_INITRAMFS_SOURCE="" 98CONFIG_INITRAMFS_SOURCE=""
99CONFIG_RD_GZIP=y
100# CONFIG_RD_BZIP2 is not set
101# CONFIG_RD_LZMA is not set
97# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
98CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y
99CONFIG_EMBEDDED=y 105CONFIG_EMBEDDED=y
100# CONFIG_SYSCTL_SYSCALL is not set 106# CONFIG_SYSCTL_SYSCALL is not set
101# CONFIG_KALLSYMS is not set 107# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 110CONFIG_PRINTK=y
104CONFIG_BUG=y 111CONFIG_BUG=y
105CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
106CONFIG_COMPAT_BRK=y
107CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
108CONFIG_FUTEX=y 114CONFIG_FUTEX=y
109CONFIG_ANON_INODES=y
110# CONFIG_EPOLL is not set 115# CONFIG_EPOLL is not set
111CONFIG_SIGNALFD=y 116CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 117CONFIG_TIMERFD=y
@@ -115,10 +120,12 @@ CONFIG_SHMEM=y
115CONFIG_AIO=y 120CONFIG_AIO=y
116CONFIG_VM_EVENT_COUNTERS=y 121CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_SLUB_DEBUG=y 122CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 124# CONFIG_SLAB is not set
119CONFIG_SLUB=y 125CONFIG_SLUB=y
120# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 127# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 129CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 131CONFIG_HAVE_IOREMAP_PROT=y
@@ -126,6 +133,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 133CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 134CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_CLK=y 135CONFIG_HAVE_CLK=y
136# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 138CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 139CONFIG_RT_MUTEXES=y
@@ -133,7 +141,6 @@ CONFIG_BASE_SMALL=0
133# CONFIG_MODULES is not set 141# CONFIG_MODULES is not set
134CONFIG_BLOCK=y 142CONFIG_BLOCK=y
135# CONFIG_LBD is not set 143# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
139 146
@@ -154,8 +161,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
154# 161#
155# Platform support 162# Platform support
156# 163#
157CONFIG_PPC_MULTIPLATFORM=y
158CONFIG_CLASSIC32=y
159# CONFIG_PPC_CHRP is not set 164# CONFIG_PPC_CHRP is not set
160# CONFIG_MPC5121_ADS is not set 165# CONFIG_MPC5121_ADS is not set
161# CONFIG_MPC5121_GENERIC is not set 166# CONFIG_MPC5121_GENERIC is not set
@@ -163,6 +168,7 @@ CONFIG_PPC_MPC52xx=y
163CONFIG_PPC_MPC5200_SIMPLE=y 168CONFIG_PPC_MPC5200_SIMPLE=y
164# CONFIG_PPC_EFIKA is not set 169# CONFIG_PPC_EFIKA is not set
165# CONFIG_PPC_LITE5200 is not set 170# CONFIG_PPC_LITE5200 is not set
171# CONFIG_PPC_MEDIA5200 is not set
166# CONFIG_PPC_MPC5200_BUGFIX is not set 172# CONFIG_PPC_MPC5200_BUGFIX is not set
167# CONFIG_PPC_MPC5200_GPIO is not set 173# CONFIG_PPC_MPC5200_GPIO is not set
168# CONFIG_PPC_PMAC is not set 174# CONFIG_PPC_PMAC is not set
@@ -173,6 +179,8 @@ CONFIG_PPC_MPC5200_SIMPLE=y
173# CONFIG_PPC_83xx is not set 179# CONFIG_PPC_83xx is not set
174# CONFIG_PPC_86xx is not set 180# CONFIG_PPC_86xx is not set
175# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
182# CONFIG_AMIGAONE is not set
183CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
176# CONFIG_IPIC is not set 184# CONFIG_IPIC is not set
177# CONFIG_MPIC is not set 185# CONFIG_MPIC is not set
178# CONFIG_MPIC_WEIRD is not set 186# CONFIG_MPIC_WEIRD is not set
@@ -232,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 245CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 246# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 247# CONFIG_PPC_64K_PAGES is not set
248# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
239CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
240# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -275,7 +286,6 @@ CONFIG_NET=y
275# 286#
276# Networking options 287# Networking options
277# 288#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 289CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -331,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_LAPB is not set 341# CONFIG_LAPB is not set
332# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
344# CONFIG_PHONET is not set
334# CONFIG_NET_SCHED is not set 345# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set 346# CONFIG_DCB is not set
336 347
@@ -343,7 +354,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
344# CONFIG_BT is not set 355# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set
347# CONFIG_WIRELESS is not set 357# CONFIG_WIRELESS is not set
348# CONFIG_WIMAX is not set 358# CONFIG_WIMAX is not set
349# CONFIG_RFKILL is not set 359# CONFIG_RFKILL is not set
@@ -440,7 +450,6 @@ CONFIG_MTD_PHYSMAP_OF=y
440# LPDDR flash memory drivers 450# LPDDR flash memory drivers
441# 451#
442# CONFIG_MTD_LPDDR is not set 452# CONFIG_MTD_LPDDR is not set
443# CONFIG_MTD_QINFO_PROBE is not set
444 453
445# 454#
446# UBI - Unsorted block images 455# UBI - Unsorted block images
@@ -505,10 +514,12 @@ CONFIG_CHR_DEV_SG=y
505# CONFIG_SCSI_SRP_ATTRS is not set 514# CONFIG_SCSI_SRP_ATTRS is not set
506# CONFIG_SCSI_LOWLEVEL is not set 515# CONFIG_SCSI_LOWLEVEL is not set
507# CONFIG_SCSI_DH is not set 516# CONFIG_SCSI_DH is not set
517# CONFIG_SCSI_OSD_INITIATOR is not set
508# CONFIG_ATA is not set 518# CONFIG_ATA is not set
509# CONFIG_MD is not set 519# CONFIG_MD is not set
510# CONFIG_MACINTOSH_DRIVERS is not set 520# CONFIG_MACINTOSH_DRIVERS is not set
511CONFIG_NETDEVICES=y 521CONFIG_NETDEVICES=y
522CONFIG_COMPAT_NET_DEV_OPS=y
512# CONFIG_DUMMY is not set 523# CONFIG_DUMMY is not set
513# CONFIG_BONDING is not set 524# CONFIG_BONDING is not set
514# CONFIG_MACVLAN is not set 525# CONFIG_MACVLAN is not set
@@ -537,6 +548,8 @@ CONFIG_LXT_PHY=y
537# CONFIG_MDIO_BITBANG is not set 548# CONFIG_MDIO_BITBANG is not set
538CONFIG_NET_ETHERNET=y 549CONFIG_NET_ETHERNET=y
539# CONFIG_MII is not set 550# CONFIG_MII is not set
551# CONFIG_ETHOC is not set
552# CONFIG_DNET is not set
540# CONFIG_IBM_NEW_EMAC_ZMII is not set 553# CONFIG_IBM_NEW_EMAC_ZMII is not set
541# CONFIG_IBM_NEW_EMAC_RGMII is not set 554# CONFIG_IBM_NEW_EMAC_RGMII is not set
542# CONFIG_IBM_NEW_EMAC_TAH is not set 555# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -555,7 +568,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
555# 568#
556# CONFIG_WLAN_PRE80211 is not set 569# CONFIG_WLAN_PRE80211 is not set
557# CONFIG_WLAN_80211 is not set 570# CONFIG_WLAN_80211 is not set
558# CONFIG_IWLWIFI_LEDS is not set
559 571
560# 572#
561# Enable WiMAX (Networking options) to see the WiMAX drivers 573# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -657,7 +669,6 @@ CONFIG_I2C_MPC=y
657# CONFIG_SENSORS_PCF8574 is not set 669# CONFIG_SENSORS_PCF8574 is not set
658# CONFIG_PCF8575 is not set 670# CONFIG_PCF8575 is not set
659# CONFIG_SENSORS_PCA9539 is not set 671# CONFIG_SENSORS_PCA9539 is not set
660# CONFIG_SENSORS_PCF8591 is not set
661# CONFIG_SENSORS_MAX6875 is not set 672# CONFIG_SENSORS_MAX6875 is not set
662# CONFIG_SENSORS_TSL2550 is not set 673# CONFIG_SENSORS_TSL2550 is not set
663# CONFIG_I2C_DEBUG_CORE is not set 674# CONFIG_I2C_DEBUG_CORE is not set
@@ -786,11 +797,11 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
786# CONFIG_USB_TMC is not set 797# CONFIG_USB_TMC is not set
787 798
788# 799#
789# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 800# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
790# 801#
791 802
792# 803#
793# see USB_STORAGE Help for more information 804# also be needed; see USB_STORAGE Help for more info
794# 805#
795CONFIG_USB_STORAGE=y 806CONFIG_USB_STORAGE=y
796# CONFIG_USB_STORAGE_DEBUG is not set 807# CONFIG_USB_STORAGE_DEBUG is not set
@@ -831,7 +842,6 @@ CONFIG_USB_STORAGE=y
831# CONFIG_USB_LED is not set 842# CONFIG_USB_LED is not set
832# CONFIG_USB_CYPRESS_CY7C63 is not set 843# CONFIG_USB_CYPRESS_CY7C63 is not set
833# CONFIG_USB_CYTHERM is not set 844# CONFIG_USB_CYTHERM is not set
834# CONFIG_USB_PHIDGET is not set
835# CONFIG_USB_IDMOUSE is not set 845# CONFIG_USB_IDMOUSE is not set
836# CONFIG_USB_FTDI_ELAN is not set 846# CONFIG_USB_FTDI_ELAN is not set
837# CONFIG_USB_APPLEDISPLAY is not set 847# CONFIG_USB_APPLEDISPLAY is not set
@@ -846,6 +856,7 @@ CONFIG_USB_STORAGE=y
846# 856#
847# OTG and related infrastructure 857# OTG and related infrastructure
848# 858#
859# CONFIG_NOP_USB_XCEIV is not set
849# CONFIG_MMC is not set 860# CONFIG_MMC is not set
850# CONFIG_MEMSTICK is not set 861# CONFIG_MEMSTICK is not set
851# CONFIG_NEW_LEDS is not set 862# CONFIG_NEW_LEDS is not set
@@ -853,6 +864,7 @@ CONFIG_USB_STORAGE=y
853# CONFIG_EDAC is not set 864# CONFIG_EDAC is not set
854# CONFIG_RTC_CLASS is not set 865# CONFIG_RTC_CLASS is not set
855# CONFIG_DMADEVICES is not set 866# CONFIG_DMADEVICES is not set
867# CONFIG_AUXDISPLAY is not set
856# CONFIG_UIO is not set 868# CONFIG_UIO is not set
857# CONFIG_STAGING is not set 869# CONFIG_STAGING is not set
858 870
@@ -863,6 +875,7 @@ CONFIG_EXT2_FS=y
863# CONFIG_EXT2_FS_XATTR is not set 875# CONFIG_EXT2_FS_XATTR is not set
864# CONFIG_EXT2_FS_XIP is not set 876# CONFIG_EXT2_FS_XIP is not set
865CONFIG_EXT3_FS=y 877CONFIG_EXT3_FS=y
878# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
866CONFIG_EXT3_FS_XATTR=y 879CONFIG_EXT3_FS_XATTR=y
867# CONFIG_EXT3_FS_POSIX_ACL is not set 880# CONFIG_EXT3_FS_POSIX_ACL is not set
868# CONFIG_EXT3_FS_SECURITY is not set 881# CONFIG_EXT3_FS_SECURITY is not set
@@ -885,6 +898,11 @@ CONFIG_INOTIFY_USER=y
885# CONFIG_FUSE_FS is not set 898# CONFIG_FUSE_FS is not set
886 899
887# 900#
901# Caches
902#
903# CONFIG_FSCACHE is not set
904
905#
888# CD-ROM/DVD Filesystems 906# CD-ROM/DVD Filesystems
889# 907#
890# CONFIG_ISO9660_FS is not set 908# CONFIG_ISO9660_FS is not set
@@ -941,6 +959,7 @@ CONFIG_CRAMFS=y
941# CONFIG_ROMFS_FS is not set 959# CONFIG_ROMFS_FS is not set
942# CONFIG_SYSV_FS is not set 960# CONFIG_SYSV_FS is not set
943# CONFIG_UFS_FS is not set 961# CONFIG_UFS_FS is not set
962# CONFIG_NILFS2_FS is not set
944CONFIG_NETWORK_FILESYSTEMS=y 963CONFIG_NETWORK_FILESYSTEMS=y
945CONFIG_NFS_FS=y 964CONFIG_NFS_FS=y
946CONFIG_NFS_V3=y 965CONFIG_NFS_V3=y
@@ -953,7 +972,6 @@ CONFIG_LOCKD_V4=y
953CONFIG_NFS_COMMON=y 972CONFIG_NFS_COMMON=y
954CONFIG_SUNRPC=y 973CONFIG_SUNRPC=y
955CONFIG_SUNRPC_GSS=y 974CONFIG_SUNRPC_GSS=y
956# CONFIG_SUNRPC_REGISTER_V4 is not set
957CONFIG_RPCSEC_GSS_KRB5=y 975CONFIG_RPCSEC_GSS_KRB5=y
958# CONFIG_RPCSEC_GSS_SPKM3 is not set 976# CONFIG_RPCSEC_GSS_SPKM3 is not set
959# CONFIG_SMB_FS is not set 977# CONFIG_SMB_FS is not set
@@ -1024,6 +1042,7 @@ CONFIG_NLS_ISO8859_1=y
1024# CONFIG_NLS_KOI8_U is not set 1042# CONFIG_NLS_KOI8_U is not set
1025# CONFIG_NLS_UTF8 is not set 1043# CONFIG_NLS_UTF8 is not set
1026# CONFIG_DLM is not set 1044# CONFIG_DLM is not set
1045# CONFIG_BINARY_PRINTF is not set
1027 1046
1028# 1047#
1029# Library routines 1048# Library routines
@@ -1039,11 +1058,12 @@ CONFIG_CRC32=y
1039# CONFIG_LIBCRC32C is not set 1058# CONFIG_LIBCRC32C is not set
1040CONFIG_ZLIB_INFLATE=y 1059CONFIG_ZLIB_INFLATE=y
1041CONFIG_ZLIB_DEFLATE=y 1060CONFIG_ZLIB_DEFLATE=y
1042CONFIG_PLIST=y 1061CONFIG_DECOMPRESS_GZIP=y
1043CONFIG_HAS_IOMEM=y 1062CONFIG_HAS_IOMEM=y
1044CONFIG_HAS_IOPORT=y 1063CONFIG_HAS_IOPORT=y
1045CONFIG_HAS_DMA=y 1064CONFIG_HAS_DMA=y
1046CONFIG_HAVE_LMB=y 1065CONFIG_HAVE_LMB=y
1066CONFIG_NLATTR=y
1047 1067
1048# 1068#
1049# Kernel hacking 1069# Kernel hacking
@@ -1061,6 +1081,9 @@ CONFIG_DEBUG_KERNEL=y
1061CONFIG_DETECT_SOFTLOCKUP=y 1081CONFIG_DETECT_SOFTLOCKUP=y
1062# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1082# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1063CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1083CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1084CONFIG_DETECT_HUNG_TASK=y
1085# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1086CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1064CONFIG_SCHED_DEBUG=y 1087CONFIG_SCHED_DEBUG=y
1065# CONFIG_SCHEDSTATS is not set 1088# CONFIG_SCHEDSTATS is not set
1066# CONFIG_TIMER_STATS is not set 1089# CONFIG_TIMER_STATS is not set
@@ -1089,9 +1112,12 @@ CONFIG_SCHED_DEBUG=y
1089# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1112# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1090# CONFIG_FAULT_INJECTION is not set 1113# CONFIG_FAULT_INJECTION is not set
1091# CONFIG_LATENCYTOP is not set 1114# CONFIG_LATENCYTOP is not set
1115# CONFIG_DEBUG_PAGEALLOC is not set
1092CONFIG_HAVE_FUNCTION_TRACER=y 1116CONFIG_HAVE_FUNCTION_TRACER=y
1117CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1093CONFIG_HAVE_DYNAMIC_FTRACE=y 1118CONFIG_HAVE_DYNAMIC_FTRACE=y
1094CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1119CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1120CONFIG_TRACING_SUPPORT=y
1095 1121
1096# 1122#
1097# Tracers 1123# Tracers
@@ -1099,17 +1125,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1099# CONFIG_FUNCTION_TRACER is not set 1125# CONFIG_FUNCTION_TRACER is not set
1100# CONFIG_SCHED_TRACER is not set 1126# CONFIG_SCHED_TRACER is not set
1101# CONFIG_CONTEXT_SWITCH_TRACER is not set 1127# CONFIG_CONTEXT_SWITCH_TRACER is not set
1128# CONFIG_EVENT_TRACER is not set
1102# CONFIG_BOOT_TRACER is not set 1129# CONFIG_BOOT_TRACER is not set
1103# CONFIG_TRACE_BRANCH_PROFILING is not set 1130# CONFIG_TRACE_BRANCH_PROFILING is not set
1104# CONFIG_STACK_TRACER is not set 1131# CONFIG_STACK_TRACER is not set
1105# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1132# CONFIG_KMEMTRACE is not set
1133# CONFIG_WORKQUEUE_TRACER is not set
1134# CONFIG_BLK_DEV_IO_TRACE is not set
1106# CONFIG_SAMPLES is not set 1135# CONFIG_SAMPLES is not set
1107CONFIG_HAVE_ARCH_KGDB=y 1136CONFIG_HAVE_ARCH_KGDB=y
1108# CONFIG_KGDB is not set 1137# CONFIG_KGDB is not set
1109CONFIG_PRINT_STACK_DEPTH=64 1138CONFIG_PRINT_STACK_DEPTH=64
1110# CONFIG_DEBUG_STACKOVERFLOW is not set 1139# CONFIG_DEBUG_STACKOVERFLOW is not set
1111# CONFIG_DEBUG_STACK_USAGE is not set 1140# CONFIG_DEBUG_STACK_USAGE is not set
1112# CONFIG_DEBUG_PAGEALLOC is not set
1113# CONFIG_CODE_PATCHING_SELFTEST is not set 1141# CONFIG_CODE_PATCHING_SELFTEST is not set
1114# CONFIG_FTR_FIXUP_SELFTEST is not set 1142# CONFIG_FTR_FIXUP_SELFTEST is not set
1115# CONFIG_MSI_BITMAP_SELFTEST is not set 1143# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1140,10 +1168,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1140CONFIG_CRYPTO_HASH=y 1168CONFIG_CRYPTO_HASH=y
1141CONFIG_CRYPTO_HASH2=y 1169CONFIG_CRYPTO_HASH2=y
1142CONFIG_CRYPTO_RNG2=y 1170CONFIG_CRYPTO_RNG2=y
1171CONFIG_CRYPTO_PCOMP=y
1143CONFIG_CRYPTO_MANAGER=y 1172CONFIG_CRYPTO_MANAGER=y
1144CONFIG_CRYPTO_MANAGER2=y 1173CONFIG_CRYPTO_MANAGER2=y
1145# CONFIG_CRYPTO_GF128MUL is not set 1174# CONFIG_CRYPTO_GF128MUL is not set
1146# CONFIG_CRYPTO_NULL is not set 1175# CONFIG_CRYPTO_NULL is not set
1176CONFIG_CRYPTO_WORKQUEUE=y
1147# CONFIG_CRYPTO_CRYPTD is not set 1177# CONFIG_CRYPTO_CRYPTD is not set
1148# CONFIG_CRYPTO_AUTHENC is not set 1178# CONFIG_CRYPTO_AUTHENC is not set
1149 1179
@@ -1211,6 +1241,7 @@ CONFIG_CRYPTO_DES=y
1211# Compression 1241# Compression
1212# 1242#
1213# CONFIG_CRYPTO_DEFLATE is not set 1243# CONFIG_CRYPTO_DEFLATE is not set
1244# CONFIG_CRYPTO_ZLIB is not set
1214# CONFIG_CRYPTO_LZO is not set 1245# CONFIG_CRYPTO_LZO is not set
1215 1246
1216# 1247#
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index b7b880562906..29b0f34488f5 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 21:41:14 2009 4# Sat Apr 18 00:48:04 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_DEFAULT_UIMAGE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y 56CONFIG_ARCH_SUSPEND_POSSIBLE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -95,19 +97,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
95# CONFIG_NAMESPACES is not set 97# CONFIG_NAMESPACES is not set
96CONFIG_BLK_DEV_INITRD=y 98CONFIG_BLK_DEV_INITRD=y
97CONFIG_INITRAMFS_SOURCE="" 99CONFIG_INITRAMFS_SOURCE=""
100CONFIG_RD_GZIP=y
101# CONFIG_RD_BZIP2 is not set
102# CONFIG_RD_LZMA is not set
98# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
99CONFIG_SYSCTL=y 104CONFIG_SYSCTL=y
105CONFIG_ANON_INODES=y
100CONFIG_EMBEDDED=y 106CONFIG_EMBEDDED=y
101# CONFIG_SYSCTL_SYSCALL is not set 107# CONFIG_SYSCTL_SYSCALL is not set
102# CONFIG_KALLSYMS is not set 108# CONFIG_KALLSYMS is not set
109# CONFIG_STRIP_ASM_SYMS is not set
103CONFIG_HOTPLUG=y 110CONFIG_HOTPLUG=y
104CONFIG_PRINTK=y 111CONFIG_PRINTK=y
105CONFIG_BUG=y 112CONFIG_BUG=y
106CONFIG_ELF_CORE=y 113CONFIG_ELF_CORE=y
107CONFIG_COMPAT_BRK=y
108CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
109CONFIG_FUTEX=y 115CONFIG_FUTEX=y
110CONFIG_ANON_INODES=y
111# CONFIG_EPOLL is not set 116# CONFIG_EPOLL is not set
112CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
113CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
@@ -117,10 +122,12 @@ CONFIG_AIO=y
117CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
118CONFIG_PCI_QUIRKS=y 123CONFIG_PCI_QUIRKS=y
119CONFIG_SLUB_DEBUG=y 124CONFIG_SLUB_DEBUG=y
125CONFIG_COMPAT_BRK=y
120# CONFIG_SLAB is not set 126# CONFIG_SLAB is not set
121CONFIG_SLUB=y 127CONFIG_SLUB=y
122# CONFIG_SLOB is not set 128# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set 129# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
124CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
126CONFIG_HAVE_IOREMAP_PROT=y 133CONFIG_HAVE_IOREMAP_PROT=y
@@ -128,6 +135,7 @@ CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y 135CONFIG_HAVE_KRETPROBES=y
129CONFIG_HAVE_ARCH_TRACEHOOK=y 136CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_HAVE_CLK=y 137CONFIG_HAVE_CLK=y
138# CONFIG_SLOW_WORK is not set
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -140,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_BLOCK=y 149CONFIG_BLOCK=y
142# CONFIG_LBD is not set 150# CONFIG_LBD is not set
143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
146 153
@@ -161,8 +168,6 @@ CONFIG_FREEZER=y
161# 168#
162# Platform support 169# Platform support
163# 170#
164CONFIG_PPC_MULTIPLATFORM=y
165CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
167# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
168# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -170,6 +175,7 @@ CONFIG_PPC_MPC52xx=y
170CONFIG_PPC_MPC5200_SIMPLE=y 175CONFIG_PPC_MPC5200_SIMPLE=y
171# CONFIG_PPC_EFIKA is not set 176# CONFIG_PPC_EFIKA is not set
172CONFIG_PPC_LITE5200=y 177CONFIG_PPC_LITE5200=y
178# CONFIG_PPC_MEDIA5200 is not set
173# CONFIG_PPC_MPC5200_BUGFIX is not set 179# CONFIG_PPC_MPC5200_BUGFIX is not set
174# CONFIG_PPC_MPC5200_GPIO is not set 180# CONFIG_PPC_MPC5200_GPIO is not set
175# CONFIG_PPC_PMAC is not set 181# CONFIG_PPC_PMAC is not set
@@ -180,6 +186,8 @@ CONFIG_PPC_LITE5200=y
180# CONFIG_PPC_83xx is not set 186# CONFIG_PPC_83xx is not set
181# CONFIG_PPC_86xx is not set 187# CONFIG_PPC_86xx is not set
182# CONFIG_EMBEDDED6xx is not set 188# CONFIG_EMBEDDED6xx is not set
189# CONFIG_AMIGAONE is not set
190CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
183# CONFIG_IPIC is not set 191# CONFIG_IPIC is not set
184# CONFIG_MPIC is not set 192# CONFIG_MPIC is not set
185# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
@@ -241,9 +249,12 @@ CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 251CONFIG_UNEVICTABLE_LRU=y
252CONFIG_HAVE_MLOCK=y
253CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244CONFIG_PPC_4K_PAGES=y 254CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set 255# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set 256# CONFIG_PPC_64K_PAGES is not set
257# CONFIG_PPC_256K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 258CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 259CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +283,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272CONFIG_PCI_LEGACY=y 283CONFIG_PCI_LEGACY=y
273# CONFIG_PCI_DEBUG is not set 284# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set 285# CONFIG_PCI_STUB is not set
286# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 287# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 288# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 289# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +306,6 @@ CONFIG_NET=y
294# 306#
295# Networking options 307# Networking options
296# 308#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 309CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 310# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 311CONFIG_UNIX=y
@@ -350,6 +361,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 361# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 362# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 363# CONFIG_WAN_ROUTER is not set
364# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 365# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 366# CONFIG_DCB is not set
355 367
@@ -362,7 +374,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 374# CONFIG_IRDA is not set
363# CONFIG_BT is not set 375# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 376# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366# CONFIG_WIRELESS is not set 377# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set 378# CONFIG_WIMAX is not set
368# CONFIG_RFKILL is not set 379# CONFIG_RFKILL is not set
@@ -412,6 +423,7 @@ CONFIG_MISC_DEVICES=y
412# CONFIG_ICS932S401 is not set 423# CONFIG_ICS932S401 is not set
413# CONFIG_ENCLOSURE_SERVICES is not set 424# CONFIG_ENCLOSURE_SERVICES is not set
414# CONFIG_HP_ILO is not set 425# CONFIG_HP_ILO is not set
426# CONFIG_ISL29003 is not set
415# CONFIG_C2PORT is not set 427# CONFIG_C2PORT is not set
416 428
417# 429#
@@ -477,9 +489,11 @@ CONFIG_SCSI_LOWLEVEL=y
477# CONFIG_MEGARAID_NEWGEN is not set 489# CONFIG_MEGARAID_NEWGEN is not set
478# CONFIG_MEGARAID_LEGACY is not set 490# CONFIG_MEGARAID_LEGACY is not set
479# CONFIG_MEGARAID_SAS is not set 491# CONFIG_MEGARAID_SAS is not set
492# CONFIG_SCSI_MPT2SAS is not set
480# CONFIG_SCSI_HPTIOP is not set 493# CONFIG_SCSI_HPTIOP is not set
481# CONFIG_SCSI_BUSLOGIC is not set 494# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set 495# CONFIG_LIBFC is not set
496# CONFIG_LIBFCOE is not set
483# CONFIG_FCOE is not set 497# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 498# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_EATA is not set 499# CONFIG_SCSI_EATA is not set
@@ -502,6 +516,7 @@ CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_SCSI_DEBUG is not set 516# CONFIG_SCSI_DEBUG is not set
503# CONFIG_SCSI_SRP is not set 517# CONFIG_SCSI_SRP is not set
504# CONFIG_SCSI_DH is not set 518# CONFIG_SCSI_DH is not set
519# CONFIG_SCSI_OSD_INITIATOR is not set
505CONFIG_ATA=y 520CONFIG_ATA=y
506# CONFIG_ATA_NONSTANDARD is not set 521# CONFIG_ATA_NONSTANDARD is not set
507CONFIG_SATA_PMP=y 522CONFIG_SATA_PMP=y
@@ -578,6 +593,7 @@ CONFIG_PATA_MPC52xx=y
578# CONFIG_I2O is not set 593# CONFIG_I2O is not set
579# CONFIG_MACINTOSH_DRIVERS is not set 594# CONFIG_MACINTOSH_DRIVERS is not set
580CONFIG_NETDEVICES=y 595CONFIG_NETDEVICES=y
596CONFIG_COMPAT_NET_DEV_OPS=y
581# CONFIG_DUMMY is not set 597# CONFIG_DUMMY is not set
582# CONFIG_BONDING is not set 598# CONFIG_BONDING is not set
583# CONFIG_MACVLAN is not set 599# CONFIG_MACVLAN is not set
@@ -611,6 +627,8 @@ CONFIG_NET_ETHERNET=y
611# CONFIG_SUNGEM is not set 627# CONFIG_SUNGEM is not set
612# CONFIG_CASSINI is not set 628# CONFIG_CASSINI is not set
613# CONFIG_NET_VENDOR_3COM is not set 629# CONFIG_NET_VENDOR_3COM is not set
630# CONFIG_ETHOC is not set
631# CONFIG_DNET 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
@@ -632,6 +650,7 @@ CONFIG_NETDEV_1000=y
632# CONFIG_E1000E is not set 650# CONFIG_E1000E is not set
633# CONFIG_IP1000 is not set 651# CONFIG_IP1000 is not set
634# CONFIG_IGB is not set 652# CONFIG_IGB is not set
653# CONFIG_IGBVF is not set
635# CONFIG_NS83820 is not set 654# CONFIG_NS83820 is not set
636# CONFIG_HAMACHI is not set 655# CONFIG_HAMACHI is not set
637# CONFIG_YELLOWFIN is not set 656# CONFIG_YELLOWFIN is not set
@@ -642,10 +661,10 @@ CONFIG_NETDEV_1000=y
642# CONFIG_VIA_VELOCITY is not set 661# CONFIG_VIA_VELOCITY is not set
643# CONFIG_TIGON3 is not set 662# CONFIG_TIGON3 is not set
644# CONFIG_BNX2 is not set 663# CONFIG_BNX2 is not set
645# CONFIG_MV643XX_ETH is not set
646# CONFIG_QLA3XXX is not set 664# CONFIG_QLA3XXX is not set
647# CONFIG_ATL1 is not set 665# CONFIG_ATL1 is not set
648# CONFIG_ATL1E is not set 666# CONFIG_ATL1E is not set
667# CONFIG_ATL1C is not set
649# CONFIG_JME is not set 668# CONFIG_JME is not set
650CONFIG_NETDEV_10000=y 669CONFIG_NETDEV_10000=y
651# CONFIG_CHELSIO_T1 is not set 670# CONFIG_CHELSIO_T1 is not set
@@ -655,6 +674,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
655# CONFIG_IXGBE is not set 674# CONFIG_IXGBE is not set
656# CONFIG_IXGB is not set 675# CONFIG_IXGB is not set
657# CONFIG_S2IO is not set 676# CONFIG_S2IO is not set
677# CONFIG_VXGE is not set
658# CONFIG_MYRI10GE is not set 678# CONFIG_MYRI10GE is not set
659# CONFIG_NETXEN_NIC is not set 679# CONFIG_NETXEN_NIC is not set
660# CONFIG_NIU is not set 680# CONFIG_NIU is not set
@@ -664,6 +684,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
664# CONFIG_BNX2X is not set 684# CONFIG_BNX2X is not set
665# CONFIG_QLGE is not set 685# CONFIG_QLGE is not set
666# CONFIG_SFC is not set 686# CONFIG_SFC is not set
687# CONFIG_BE2NET is not set
667# CONFIG_TR is not set 688# CONFIG_TR is not set
668 689
669# 690#
@@ -671,7 +692,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# 692#
672# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
673# CONFIG_WLAN_80211 is not set 694# CONFIG_WLAN_80211 is not set
674# CONFIG_IWLWIFI_LEDS is not set
675 695
676# 696#
677# Enable WiMAX (Networking options) to see the WiMAX drivers 697# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -795,7 +815,6 @@ CONFIG_I2C_MPC=y
795# CONFIG_SENSORS_PCF8574 is not set 815# CONFIG_SENSORS_PCF8574 is not set
796# CONFIG_PCF8575 is not set 816# CONFIG_PCF8575 is not set
797# CONFIG_SENSORS_PCA9539 is not set 817# CONFIG_SENSORS_PCA9539 is not set
798# CONFIG_SENSORS_PCF8591 is not set
799# CONFIG_SENSORS_MAX6875 is not set 818# CONFIG_SENSORS_MAX6875 is not set
800# CONFIG_SENSORS_TSL2550 is not set 819# CONFIG_SENSORS_TSL2550 is not set
801# CONFIG_I2C_DEBUG_CORE is not set 820# CONFIG_I2C_DEBUG_CORE is not set
@@ -876,7 +895,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
876# 895#
877 896
878# 897#
879# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 898# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
880# 899#
881# CONFIG_USB_GADGET is not set 900# CONFIG_USB_GADGET is not set
882 901
@@ -892,6 +911,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
892# CONFIG_EDAC is not set 911# CONFIG_EDAC is not set
893# CONFIG_RTC_CLASS is not set 912# CONFIG_RTC_CLASS is not set
894# CONFIG_DMADEVICES is not set 913# CONFIG_DMADEVICES is not set
914# CONFIG_AUXDISPLAY is not set
895# CONFIG_UIO is not set 915# CONFIG_UIO is not set
896# CONFIG_STAGING is not set 916# CONFIG_STAGING is not set
897 917
@@ -902,6 +922,7 @@ CONFIG_EXT2_FS=y
902# CONFIG_EXT2_FS_XATTR is not set 922# CONFIG_EXT2_FS_XATTR is not set
903# CONFIG_EXT2_FS_XIP is not set 923# CONFIG_EXT2_FS_XIP is not set
904CONFIG_EXT3_FS=y 924CONFIG_EXT3_FS=y
925# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
905CONFIG_EXT3_FS_XATTR=y 926CONFIG_EXT3_FS_XATTR=y
906# CONFIG_EXT3_FS_POSIX_ACL is not set 927# CONFIG_EXT3_FS_POSIX_ACL is not set
907# CONFIG_EXT3_FS_SECURITY is not set 928# CONFIG_EXT3_FS_SECURITY is not set
@@ -924,6 +945,11 @@ CONFIG_INOTIFY_USER=y
924# CONFIG_FUSE_FS is not set 945# CONFIG_FUSE_FS is not set
925 946
926# 947#
948# Caches
949#
950# CONFIG_FSCACHE is not set
951
952#
927# CD-ROM/DVD Filesystems 953# CD-ROM/DVD Filesystems
928# 954#
929# CONFIG_ISO9660_FS is not set 955# CONFIG_ISO9660_FS is not set
@@ -966,6 +992,7 @@ CONFIG_MISC_FILESYSTEMS=y
966# CONFIG_ROMFS_FS is not set 992# CONFIG_ROMFS_FS is not set
967# CONFIG_SYSV_FS is not set 993# CONFIG_SYSV_FS is not set
968# CONFIG_UFS_FS is not set 994# CONFIG_UFS_FS is not set
995# CONFIG_NILFS2_FS is not set
969CONFIG_NETWORK_FILESYSTEMS=y 996CONFIG_NETWORK_FILESYSTEMS=y
970CONFIG_NFS_FS=y 997CONFIG_NFS_FS=y
971CONFIG_NFS_V3=y 998CONFIG_NFS_V3=y
@@ -978,7 +1005,6 @@ CONFIG_LOCKD_V4=y
978CONFIG_NFS_COMMON=y 1005CONFIG_NFS_COMMON=y
979CONFIG_SUNRPC=y 1006CONFIG_SUNRPC=y
980CONFIG_SUNRPC_GSS=y 1007CONFIG_SUNRPC_GSS=y
981# CONFIG_SUNRPC_REGISTER_V4 is not set
982CONFIG_RPCSEC_GSS_KRB5=y 1008CONFIG_RPCSEC_GSS_KRB5=y
983# CONFIG_RPCSEC_GSS_SPKM3 is not set 1009# CONFIG_RPCSEC_GSS_SPKM3 is not set
984# CONFIG_SMB_FS is not set 1010# CONFIG_SMB_FS is not set
@@ -994,6 +1020,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
994CONFIG_MSDOS_PARTITION=y 1020CONFIG_MSDOS_PARTITION=y
995# CONFIG_NLS is not set 1021# CONFIG_NLS is not set
996# CONFIG_DLM is not set 1022# CONFIG_DLM is not set
1023# CONFIG_BINARY_PRINTF is not set
997 1024
998# 1025#
999# Library routines 1026# Library routines
@@ -1007,11 +1034,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1007CONFIG_CRC32=y 1034CONFIG_CRC32=y
1008# CONFIG_CRC7 is not set 1035# CONFIG_CRC7 is not set
1009# CONFIG_LIBCRC32C is not set 1036# CONFIG_LIBCRC32C is not set
1010CONFIG_PLIST=y 1037CONFIG_ZLIB_INFLATE=y
1038CONFIG_DECOMPRESS_GZIP=y
1011CONFIG_HAS_IOMEM=y 1039CONFIG_HAS_IOMEM=y
1012CONFIG_HAS_IOPORT=y 1040CONFIG_HAS_IOPORT=y
1013CONFIG_HAS_DMA=y 1041CONFIG_HAS_DMA=y
1014CONFIG_HAVE_LMB=y 1042CONFIG_HAVE_LMB=y
1043CONFIG_NLATTR=y
1015 1044
1016# 1045#
1017# Kernel hacking 1046# Kernel hacking
@@ -1029,6 +1058,9 @@ CONFIG_DEBUG_KERNEL=y
1029CONFIG_DETECT_SOFTLOCKUP=y 1058CONFIG_DETECT_SOFTLOCKUP=y
1030# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1059# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1031CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1060CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1061CONFIG_DETECT_HUNG_TASK=y
1062# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1063CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1032CONFIG_SCHED_DEBUG=y 1064CONFIG_SCHED_DEBUG=y
1033# CONFIG_SCHEDSTATS is not set 1065# CONFIG_SCHEDSTATS is not set
1034# CONFIG_TIMER_STATS is not set 1066# CONFIG_TIMER_STATS is not set
@@ -1057,9 +1089,12 @@ CONFIG_DEBUG_INFO=y
1057# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1089# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1058# CONFIG_FAULT_INJECTION is not set 1090# CONFIG_FAULT_INJECTION is not set
1059# CONFIG_LATENCYTOP is not set 1091# CONFIG_LATENCYTOP is not set
1092# CONFIG_DEBUG_PAGEALLOC is not set
1060CONFIG_HAVE_FUNCTION_TRACER=y 1093CONFIG_HAVE_FUNCTION_TRACER=y
1094CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1061CONFIG_HAVE_DYNAMIC_FTRACE=y 1095CONFIG_HAVE_DYNAMIC_FTRACE=y
1062CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1096CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1097CONFIG_TRACING_SUPPORT=y
1063 1098
1064# 1099#
1065# Tracers 1100# Tracers
@@ -1067,17 +1102,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1067# CONFIG_FUNCTION_TRACER is not set 1102# CONFIG_FUNCTION_TRACER is not set
1068# CONFIG_SCHED_TRACER is not set 1103# CONFIG_SCHED_TRACER is not set
1069# CONFIG_CONTEXT_SWITCH_TRACER is not set 1104# CONFIG_CONTEXT_SWITCH_TRACER is not set
1105# CONFIG_EVENT_TRACER is not set
1070# CONFIG_BOOT_TRACER is not set 1106# CONFIG_BOOT_TRACER is not set
1071# CONFIG_TRACE_BRANCH_PROFILING is not set 1107# CONFIG_TRACE_BRANCH_PROFILING is not set
1072# CONFIG_STACK_TRACER is not set 1108# CONFIG_STACK_TRACER is not set
1073# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1109# CONFIG_KMEMTRACE is not set
1110# CONFIG_WORKQUEUE_TRACER is not set
1111# CONFIG_BLK_DEV_IO_TRACE is not set
1074# CONFIG_SAMPLES is not set 1112# CONFIG_SAMPLES is not set
1075CONFIG_HAVE_ARCH_KGDB=y 1113CONFIG_HAVE_ARCH_KGDB=y
1076# CONFIG_KGDB is not set 1114# CONFIG_KGDB is not set
1077CONFIG_PRINT_STACK_DEPTH=64 1115CONFIG_PRINT_STACK_DEPTH=64
1078# CONFIG_DEBUG_STACKOVERFLOW is not set 1116# CONFIG_DEBUG_STACKOVERFLOW is not set
1079# CONFIG_DEBUG_STACK_USAGE is not set 1117# CONFIG_DEBUG_STACK_USAGE is not set
1080# CONFIG_DEBUG_PAGEALLOC is not set
1081# CONFIG_CODE_PATCHING_SELFTEST is not set 1118# CONFIG_CODE_PATCHING_SELFTEST is not set
1082# CONFIG_FTR_FIXUP_SELFTEST is not set 1119# CONFIG_FTR_FIXUP_SELFTEST is not set
1083# CONFIG_MSI_BITMAP_SELFTEST is not set 1120# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1108,10 +1145,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1108CONFIG_CRYPTO_HASH=y 1145CONFIG_CRYPTO_HASH=y
1109CONFIG_CRYPTO_HASH2=y 1146CONFIG_CRYPTO_HASH2=y
1110CONFIG_CRYPTO_RNG2=y 1147CONFIG_CRYPTO_RNG2=y
1148CONFIG_CRYPTO_PCOMP=y
1111CONFIG_CRYPTO_MANAGER=y 1149CONFIG_CRYPTO_MANAGER=y
1112CONFIG_CRYPTO_MANAGER2=y 1150CONFIG_CRYPTO_MANAGER2=y
1113# CONFIG_CRYPTO_GF128MUL is not set 1151# CONFIG_CRYPTO_GF128MUL is not set
1114# CONFIG_CRYPTO_NULL is not set 1152# CONFIG_CRYPTO_NULL is not set
1153CONFIG_CRYPTO_WORKQUEUE=y
1115# CONFIG_CRYPTO_CRYPTD is not set 1154# CONFIG_CRYPTO_CRYPTD is not set
1116# CONFIG_CRYPTO_AUTHENC is not set 1155# CONFIG_CRYPTO_AUTHENC is not set
1117# CONFIG_CRYPTO_TEST is not set 1156# CONFIG_CRYPTO_TEST is not set
@@ -1180,6 +1219,7 @@ CONFIG_CRYPTO_DES=y
1180# Compression 1219# Compression
1181# 1220#
1182# CONFIG_CRYPTO_DEFLATE is not set 1221# CONFIG_CRYPTO_DEFLATE is not set
1222# CONFIG_CRYPTO_ZLIB is not set
1183# CONFIG_CRYPTO_LZO is not set 1223# CONFIG_CRYPTO_LZO is not set
1184 1224
1185# 1225#
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index fb10f22fd0d2..07b6b266ea95 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 21:42:29 2009 4# Sat Apr 18 00:48:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -94,19 +96,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
94# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
95CONFIG_BLK_DEV_INITRD=y 97CONFIG_BLK_DEV_INITRD=y
96CONFIG_INITRAMFS_SOURCE="" 98CONFIG_INITRAMFS_SOURCE=""
99CONFIG_RD_GZIP=y
100# CONFIG_RD_BZIP2 is not set
101# CONFIG_RD_LZMA is not set
97# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
98CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y
99CONFIG_EMBEDDED=y 105CONFIG_EMBEDDED=y
100# CONFIG_SYSCTL_SYSCALL is not set 106# CONFIG_SYSCTL_SYSCALL is not set
101# CONFIG_KALLSYMS is not set 107# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 110CONFIG_PRINTK=y
104CONFIG_BUG=y 111CONFIG_BUG=y
105CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
106CONFIG_COMPAT_BRK=y
107CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
108CONFIG_FUTEX=y 114CONFIG_FUTEX=y
109CONFIG_ANON_INODES=y
110# CONFIG_EPOLL is not set 115# CONFIG_EPOLL is not set
111CONFIG_SIGNALFD=y 116CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 117CONFIG_TIMERFD=y
@@ -115,10 +120,12 @@ CONFIG_SHMEM=y
115CONFIG_AIO=y 120CONFIG_AIO=y
116CONFIG_VM_EVENT_COUNTERS=y 121CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_SLUB_DEBUG=y 122CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 124# CONFIG_SLAB is not set
119CONFIG_SLUB=y 125CONFIG_SLUB=y
120# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 127# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 129CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 131CONFIG_HAVE_IOREMAP_PROT=y
@@ -126,6 +133,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 133CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 134CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_CLK=y 135CONFIG_HAVE_CLK=y
136# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 138CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 139CONFIG_RT_MUTEXES=y
@@ -133,7 +141,6 @@ CONFIG_BASE_SMALL=0
133# CONFIG_MODULES is not set 141# CONFIG_MODULES is not set
134CONFIG_BLOCK=y 142CONFIG_BLOCK=y
135# CONFIG_LBD is not set 143# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
139 146
@@ -154,8 +161,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
154# 161#
155# Platform support 162# Platform support
156# 163#
157CONFIG_PPC_MULTIPLATFORM=y
158CONFIG_CLASSIC32=y
159# CONFIG_PPC_CHRP is not set 164# CONFIG_PPC_CHRP is not set
160# CONFIG_MPC5121_ADS is not set 165# CONFIG_MPC5121_ADS is not set
161# CONFIG_MPC5121_GENERIC is not set 166# CONFIG_MPC5121_GENERIC is not set
@@ -163,6 +168,7 @@ CONFIG_PPC_MPC52xx=y
163CONFIG_PPC_MPC5200_SIMPLE=y 168CONFIG_PPC_MPC5200_SIMPLE=y
164# CONFIG_PPC_EFIKA is not set 169# CONFIG_PPC_EFIKA is not set
165# CONFIG_PPC_LITE5200 is not set 170# CONFIG_PPC_LITE5200 is not set
171# CONFIG_PPC_MEDIA5200 is not set
166# CONFIG_PPC_MPC5200_BUGFIX is not set 172# CONFIG_PPC_MPC5200_BUGFIX is not set
167# CONFIG_PPC_MPC5200_GPIO is not set 173# CONFIG_PPC_MPC5200_GPIO is not set
168# CONFIG_PPC_PMAC is not set 174# CONFIG_PPC_PMAC is not set
@@ -173,6 +179,8 @@ CONFIG_PPC_MPC5200_SIMPLE=y
173# CONFIG_PPC_83xx is not set 179# CONFIG_PPC_83xx is not set
174# CONFIG_PPC_86xx is not set 180# CONFIG_PPC_86xx is not set
175# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
182# CONFIG_AMIGAONE is not set
183CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
176# CONFIG_IPIC is not set 184# CONFIG_IPIC is not set
177# CONFIG_MPIC is not set 185# CONFIG_MPIC is not set
178# CONFIG_MPIC_WEIRD is not set 186# CONFIG_MPIC_WEIRD is not set
@@ -233,9 +241,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 246CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 247# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 248# CONFIG_PPC_64K_PAGES is not set
249# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -276,7 +287,6 @@ CONFIG_NET=y
276# 287#
277# Networking options 288# Networking options
278# 289#
279CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 290CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 291# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 292CONFIG_UNIX=y
@@ -332,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_LAPB is not set 342# CONFIG_LAPB is not set
333# CONFIG_ECONET is not set 343# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 344# CONFIG_WAN_ROUTER is not set
345# CONFIG_PHONET is not set
335# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set 347# CONFIG_DCB is not set
337 348
@@ -344,7 +355,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
345# CONFIG_BT is not set 356# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
347# CONFIG_PHONET is not set
348# CONFIG_WIRELESS is not set 358# CONFIG_WIRELESS is not set
349# CONFIG_WIMAX is not set 359# CONFIG_WIMAX is not set
350# CONFIG_RFKILL is not set 360# CONFIG_RFKILL is not set
@@ -441,7 +451,6 @@ CONFIG_MTD_ROM=y
441# LPDDR flash memory drivers 451# LPDDR flash memory drivers
442# 452#
443# CONFIG_MTD_LPDDR is not set 453# CONFIG_MTD_LPDDR is not set
444# CONFIG_MTD_QINFO_PROBE is not set
445 454
446# 455#
447# UBI - Unsorted block images 456# UBI - Unsorted block images
@@ -466,6 +475,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
466CONFIG_MISC_DEVICES=y 475CONFIG_MISC_DEVICES=y
467# CONFIG_ICS932S401 is not set 476# CONFIG_ICS932S401 is not set
468# CONFIG_ENCLOSURE_SERVICES is not set 477# CONFIG_ENCLOSURE_SERVICES is not set
478# CONFIG_ISL29003 is not set
469# CONFIG_C2PORT is not set 479# CONFIG_C2PORT is not set
470 480
471# 481#
@@ -516,8 +526,10 @@ CONFIG_CHR_DEV_SG=y
516CONFIG_SCSI_LOWLEVEL=y 526CONFIG_SCSI_LOWLEVEL=y
517# CONFIG_ISCSI_TCP is not set 527# CONFIG_ISCSI_TCP is not set
518# CONFIG_LIBFC is not set 528# CONFIG_LIBFC is not set
529# CONFIG_LIBFCOE is not set
519# CONFIG_SCSI_DEBUG is not set 530# CONFIG_SCSI_DEBUG is not set
520# CONFIG_SCSI_DH is not set 531# CONFIG_SCSI_DH is not set
532# CONFIG_SCSI_OSD_INITIATOR is not set
521CONFIG_ATA=y 533CONFIG_ATA=y
522# CONFIG_ATA_NONSTANDARD is not set 534# CONFIG_ATA_NONSTANDARD is not set
523CONFIG_SATA_PMP=y 535CONFIG_SATA_PMP=y
@@ -528,6 +540,7 @@ CONFIG_PATA_MPC52xx=y
528# CONFIG_MD is not set 540# CONFIG_MD is not set
529# CONFIG_MACINTOSH_DRIVERS is not set 541# CONFIG_MACINTOSH_DRIVERS is not set
530CONFIG_NETDEVICES=y 542CONFIG_NETDEVICES=y
543CONFIG_COMPAT_NET_DEV_OPS=y
531# CONFIG_DUMMY is not set 544# CONFIG_DUMMY is not set
532# CONFIG_BONDING is not set 545# CONFIG_BONDING is not set
533# CONFIG_MACVLAN is not set 546# CONFIG_MACVLAN is not set
@@ -556,6 +569,8 @@ CONFIG_ICPLUS_PHY=y
556CONFIG_MDIO_BITBANG=y 569CONFIG_MDIO_BITBANG=y
557CONFIG_NET_ETHERNET=y 570CONFIG_NET_ETHERNET=y
558CONFIG_MII=y 571CONFIG_MII=y
572# CONFIG_ETHOC is not set
573# CONFIG_DNET is not set
559# CONFIG_IBM_NEW_EMAC_ZMII is not set 574# CONFIG_IBM_NEW_EMAC_ZMII is not set
560# CONFIG_IBM_NEW_EMAC_RGMII is not set 575# CONFIG_IBM_NEW_EMAC_RGMII is not set
561# CONFIG_IBM_NEW_EMAC_TAH is not set 576# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -574,7 +589,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
574# 589#
575# CONFIG_WLAN_PRE80211 is not set 590# CONFIG_WLAN_PRE80211 is not set
576# CONFIG_WLAN_80211 is not set 591# CONFIG_WLAN_80211 is not set
577# CONFIG_IWLWIFI_LEDS is not set
578 592
579# 593#
580# Enable WiMAX (Networking options) to see the WiMAX drivers 594# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -665,7 +679,6 @@ CONFIG_I2C_MPC=y
665# CONFIG_SENSORS_PCF8574 is not set 679# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 680# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 681# CONFIG_SENSORS_PCA9539 is not set
668# CONFIG_SENSORS_PCF8591 is not set
669# CONFIG_SENSORS_MAX6875 is not set 682# CONFIG_SENSORS_MAX6875 is not set
670# CONFIG_SENSORS_TSL2550 is not set 683# CONFIG_SENSORS_TSL2550 is not set
671# CONFIG_I2C_DEBUG_CORE is not set 684# CONFIG_I2C_DEBUG_CORE is not set
@@ -696,6 +709,7 @@ CONFIG_HWMON=y
696# CONFIG_SENSORS_F71805F is not set 709# CONFIG_SENSORS_F71805F is not set
697# CONFIG_SENSORS_F71882FG is not set 710# CONFIG_SENSORS_F71882FG is not set
698# CONFIG_SENSORS_F75375S is not set 711# CONFIG_SENSORS_F75375S is not set
712# CONFIG_SENSORS_G760A is not set
699# CONFIG_SENSORS_GL518SM is not set 713# CONFIG_SENSORS_GL518SM is not set
700# CONFIG_SENSORS_GL520SM is not set 714# CONFIG_SENSORS_GL520SM is not set
701# CONFIG_SENSORS_IT87 is not set 715# CONFIG_SENSORS_IT87 is not set
@@ -710,11 +724,14 @@ CONFIG_HWMON=y
710# CONFIG_SENSORS_LM90 is not set 724# CONFIG_SENSORS_LM90 is not set
711# CONFIG_SENSORS_LM92 is not set 725# CONFIG_SENSORS_LM92 is not set
712# CONFIG_SENSORS_LM93 is not set 726# CONFIG_SENSORS_LM93 is not set
727# CONFIG_SENSORS_LTC4215 is not set
713# CONFIG_SENSORS_LTC4245 is not set 728# CONFIG_SENSORS_LTC4245 is not set
729# CONFIG_SENSORS_LM95241 is not set
714# CONFIG_SENSORS_MAX1619 is not set 730# CONFIG_SENSORS_MAX1619 is not set
715# CONFIG_SENSORS_MAX6650 is not set 731# CONFIG_SENSORS_MAX6650 is not set
716# CONFIG_SENSORS_PC87360 is not set 732# CONFIG_SENSORS_PC87360 is not set
717# CONFIG_SENSORS_PC87427 is not set 733# CONFIG_SENSORS_PC87427 is not set
734# CONFIG_SENSORS_PCF8591 is not set
718# CONFIG_SENSORS_DME1737 is not set 735# CONFIG_SENSORS_DME1737 is not set
719# CONFIG_SENSORS_SMSC47M1 is not set 736# CONFIG_SENSORS_SMSC47M1 is not set
720# CONFIG_SENSORS_SMSC47M192 is not set 737# CONFIG_SENSORS_SMSC47M192 is not set
@@ -800,7 +817,9 @@ CONFIG_LEDS_CLASS=y
800# 817#
801# LED drivers 818# LED drivers
802# 819#
820# CONFIG_LEDS_LP5521 is not set
803# CONFIG_LEDS_PCA955X is not set 821# CONFIG_LEDS_PCA955X is not set
822# CONFIG_LEDS_BD2802 is not set
804 823
805# 824#
806# LED Triggers 825# LED Triggers
@@ -810,6 +829,10 @@ CONFIG_LEDS_TRIGGER_TIMER=y
810# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set 829# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
811# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 830# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
812# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 831# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
832
833#
834# iptables trigger is under Netfilter config (LED target)
835#
813# CONFIG_ACCESSIBILITY is not set 836# CONFIG_ACCESSIBILITY is not set
814# CONFIG_EDAC is not set 837# CONFIG_EDAC is not set
815CONFIG_RTC_LIB=y 838CONFIG_RTC_LIB=y
@@ -866,8 +889,9 @@ CONFIG_RTC_DRV_DS1307=y
866# 889#
867# on-CPU RTC drivers 890# on-CPU RTC drivers
868# 891#
869# CONFIG_RTC_DRV_PPC is not set 892# CONFIG_RTC_DRV_GENERIC is not set
870# CONFIG_DMADEVICES is not set 893# CONFIG_DMADEVICES is not set
894# CONFIG_AUXDISPLAY is not set
871# CONFIG_UIO is not set 895# CONFIG_UIO is not set
872# CONFIG_STAGING is not set 896# CONFIG_STAGING is not set
873 897
@@ -878,6 +902,7 @@ CONFIG_EXT2_FS=y
878# CONFIG_EXT2_FS_XATTR is not set 902# CONFIG_EXT2_FS_XATTR is not set
879# CONFIG_EXT2_FS_XIP is not set 903# CONFIG_EXT2_FS_XIP is not set
880CONFIG_EXT3_FS=y 904CONFIG_EXT3_FS=y
905# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
881CONFIG_EXT3_FS_XATTR=y 906CONFIG_EXT3_FS_XATTR=y
882# CONFIG_EXT3_FS_POSIX_ACL is not set 907# CONFIG_EXT3_FS_POSIX_ACL is not set
883# CONFIG_EXT3_FS_SECURITY is not set 908# CONFIG_EXT3_FS_SECURITY is not set
@@ -900,6 +925,11 @@ CONFIG_INOTIFY_USER=y
900# CONFIG_FUSE_FS is not set 925# CONFIG_FUSE_FS is not set
901 926
902# 927#
928# Caches
929#
930# CONFIG_FSCACHE is not set
931
932#
903# CD-ROM/DVD Filesystems 933# CD-ROM/DVD Filesystems
904# 934#
905# CONFIG_ISO9660_FS is not set 935# CONFIG_ISO9660_FS is not set
@@ -956,6 +986,7 @@ CONFIG_CRAMFS=y
956# CONFIG_ROMFS_FS is not set 986# CONFIG_ROMFS_FS is not set
957# CONFIG_SYSV_FS is not set 987# CONFIG_SYSV_FS is not set
958# CONFIG_UFS_FS is not set 988# CONFIG_UFS_FS is not set
989# CONFIG_NILFS2_FS is not set
959CONFIG_NETWORK_FILESYSTEMS=y 990CONFIG_NETWORK_FILESYSTEMS=y
960CONFIG_NFS_FS=y 991CONFIG_NFS_FS=y
961CONFIG_NFS_V3=y 992CONFIG_NFS_V3=y
@@ -968,7 +999,6 @@ CONFIG_LOCKD_V4=y
968CONFIG_NFS_COMMON=y 999CONFIG_NFS_COMMON=y
969CONFIG_SUNRPC=y 1000CONFIG_SUNRPC=y
970CONFIG_SUNRPC_GSS=y 1001CONFIG_SUNRPC_GSS=y
971# CONFIG_SUNRPC_REGISTER_V4 is not set
972CONFIG_RPCSEC_GSS_KRB5=y 1002CONFIG_RPCSEC_GSS_KRB5=y
973# CONFIG_RPCSEC_GSS_SPKM3 is not set 1003# CONFIG_RPCSEC_GSS_SPKM3 is not set
974# CONFIG_SMB_FS is not set 1004# CONFIG_SMB_FS is not set
@@ -1039,6 +1069,7 @@ CONFIG_NLS_ISO8859_1=y
1039# CONFIG_NLS_KOI8_U is not set 1069# CONFIG_NLS_KOI8_U is not set
1040# CONFIG_NLS_UTF8 is not set 1070# CONFIG_NLS_UTF8 is not set
1041# CONFIG_DLM is not set 1071# CONFIG_DLM is not set
1072# CONFIG_BINARY_PRINTF is not set
1042 1073
1043# 1074#
1044# Library routines 1075# Library routines
@@ -1054,11 +1085,12 @@ CONFIG_CRC32=y
1054# CONFIG_LIBCRC32C is not set 1085# CONFIG_LIBCRC32C is not set
1055CONFIG_ZLIB_INFLATE=y 1086CONFIG_ZLIB_INFLATE=y
1056CONFIG_ZLIB_DEFLATE=y 1087CONFIG_ZLIB_DEFLATE=y
1057CONFIG_PLIST=y 1088CONFIG_DECOMPRESS_GZIP=y
1058CONFIG_HAS_IOMEM=y 1089CONFIG_HAS_IOMEM=y
1059CONFIG_HAS_IOPORT=y 1090CONFIG_HAS_IOPORT=y
1060CONFIG_HAS_DMA=y 1091CONFIG_HAS_DMA=y
1061CONFIG_HAVE_LMB=y 1092CONFIG_HAVE_LMB=y
1093CONFIG_NLATTR=y
1062 1094
1063# 1095#
1064# Kernel hacking 1096# Kernel hacking
@@ -1076,6 +1108,9 @@ CONFIG_DEBUG_KERNEL=y
1076CONFIG_DETECT_SOFTLOCKUP=y 1108CONFIG_DETECT_SOFTLOCKUP=y
1077# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1109# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1078CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1110CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1111CONFIG_DETECT_HUNG_TASK=y
1112# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1113CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1079CONFIG_SCHED_DEBUG=y 1114CONFIG_SCHED_DEBUG=y
1080# CONFIG_SCHEDSTATS is not set 1115# CONFIG_SCHEDSTATS is not set
1081# CONFIG_TIMER_STATS is not set 1116# CONFIG_TIMER_STATS is not set
@@ -1104,9 +1139,12 @@ CONFIG_DEBUG_INFO=y
1104# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1139# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1105# CONFIG_FAULT_INJECTION is not set 1140# CONFIG_FAULT_INJECTION is not set
1106# CONFIG_LATENCYTOP is not set 1141# CONFIG_LATENCYTOP is not set
1142# CONFIG_DEBUG_PAGEALLOC is not set
1107CONFIG_HAVE_FUNCTION_TRACER=y 1143CONFIG_HAVE_FUNCTION_TRACER=y
1144CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y 1145CONFIG_HAVE_DYNAMIC_FTRACE=y
1109CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1146CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1147CONFIG_TRACING_SUPPORT=y
1110 1148
1111# 1149#
1112# Tracers 1150# Tracers
@@ -1114,17 +1152,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1114# CONFIG_FUNCTION_TRACER is not set 1152# CONFIG_FUNCTION_TRACER is not set
1115# CONFIG_SCHED_TRACER is not set 1153# CONFIG_SCHED_TRACER is not set
1116# CONFIG_CONTEXT_SWITCH_TRACER is not set 1154# CONFIG_CONTEXT_SWITCH_TRACER is not set
1155# CONFIG_EVENT_TRACER is not set
1117# CONFIG_BOOT_TRACER is not set 1156# CONFIG_BOOT_TRACER is not set
1118# CONFIG_TRACE_BRANCH_PROFILING is not set 1157# CONFIG_TRACE_BRANCH_PROFILING is not set
1119# CONFIG_STACK_TRACER is not set 1158# CONFIG_STACK_TRACER is not set
1120# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1159# CONFIG_KMEMTRACE is not set
1160# CONFIG_WORKQUEUE_TRACER is not set
1161# CONFIG_BLK_DEV_IO_TRACE is not set
1121# CONFIG_SAMPLES is not set 1162# CONFIG_SAMPLES is not set
1122CONFIG_HAVE_ARCH_KGDB=y 1163CONFIG_HAVE_ARCH_KGDB=y
1123# CONFIG_KGDB is not set 1164# CONFIG_KGDB is not set
1124CONFIG_PRINT_STACK_DEPTH=64 1165CONFIG_PRINT_STACK_DEPTH=64
1125# CONFIG_DEBUG_STACKOVERFLOW is not set 1166# CONFIG_DEBUG_STACKOVERFLOW is not set
1126# CONFIG_DEBUG_STACK_USAGE is not set 1167# CONFIG_DEBUG_STACK_USAGE is not set
1127# CONFIG_DEBUG_PAGEALLOC is not set
1128# CONFIG_CODE_PATCHING_SELFTEST is not set 1168# CONFIG_CODE_PATCHING_SELFTEST is not set
1129# CONFIG_FTR_FIXUP_SELFTEST is not set 1169# CONFIG_FTR_FIXUP_SELFTEST is not set
1130# CONFIG_MSI_BITMAP_SELFTEST is not set 1170# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1155,10 +1195,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1155CONFIG_CRYPTO_HASH=y 1195CONFIG_CRYPTO_HASH=y
1156CONFIG_CRYPTO_HASH2=y 1196CONFIG_CRYPTO_HASH2=y
1157CONFIG_CRYPTO_RNG2=y 1197CONFIG_CRYPTO_RNG2=y
1198CONFIG_CRYPTO_PCOMP=y
1158CONFIG_CRYPTO_MANAGER=y 1199CONFIG_CRYPTO_MANAGER=y
1159CONFIG_CRYPTO_MANAGER2=y 1200CONFIG_CRYPTO_MANAGER2=y
1160# CONFIG_CRYPTO_GF128MUL is not set 1201# CONFIG_CRYPTO_GF128MUL is not set
1161# CONFIG_CRYPTO_NULL is not set 1202# CONFIG_CRYPTO_NULL is not set
1203CONFIG_CRYPTO_WORKQUEUE=y
1162# CONFIG_CRYPTO_CRYPTD is not set 1204# CONFIG_CRYPTO_CRYPTD is not set
1163# CONFIG_CRYPTO_AUTHENC is not set 1205# CONFIG_CRYPTO_AUTHENC is not set
1164 1206
@@ -1226,6 +1268,7 @@ CONFIG_CRYPTO_DES=y
1226# Compression 1268# Compression
1227# 1269#
1228# CONFIG_CRYPTO_DEFLATE is not set 1270# CONFIG_CRYPTO_DEFLATE is not set
1271# CONFIG_CRYPTO_ZLIB is not set
1229# CONFIG_CRYPTO_LZO is not set 1272# CONFIG_CRYPTO_LZO is not set
1230 1273
1231# 1274#
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 00944c09a0ae..afb1a3d1ef0a 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 21:41:33 2009 4# Sat Apr 18 00:48:42 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -69,6 +71,7 @@ CONFIG_LOCALVERSION="trunk"
69CONFIG_SYSVIPC=y 71CONFIG_SYSVIPC=y
70CONFIG_SYSVIPC_SYSCTL=y 72CONFIG_SYSVIPC_SYSCTL=y
71CONFIG_POSIX_MQUEUE=y 73CONFIG_POSIX_MQUEUE=y
74CONFIG_POSIX_MQUEUE_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
@@ -97,18 +100,18 @@ CONFIG_SYSFS_DEPRECATED_V2=y
97# CONFIG_BLK_DEV_INITRD is not set 100# CONFIG_BLK_DEV_INITRD is not set
98# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 101# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
99CONFIG_SYSCTL=y 102CONFIG_SYSCTL=y
103CONFIG_ANON_INODES=y
100CONFIG_EMBEDDED=y 104CONFIG_EMBEDDED=y
101# CONFIG_SYSCTL_SYSCALL is not set 105# CONFIG_SYSCTL_SYSCALL is not set
102CONFIG_KALLSYMS=y 106CONFIG_KALLSYMS=y
103# CONFIG_KALLSYMS_EXTRA_PASS is not set 107# CONFIG_KALLSYMS_EXTRA_PASS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
104CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
105CONFIG_PRINTK=y 110CONFIG_PRINTK=y
106CONFIG_BUG=y 111CONFIG_BUG=y
107CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
108CONFIG_COMPAT_BRK=y
109CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
110CONFIG_FUTEX=y 114CONFIG_FUTEX=y
111CONFIG_ANON_INODES=y
112CONFIG_EPOLL=y 115CONFIG_EPOLL=y
113CONFIG_SIGNALFD=y 116CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 117CONFIG_TIMERFD=y
@@ -117,10 +120,12 @@ CONFIG_SHMEM=y
117CONFIG_AIO=y 120CONFIG_AIO=y
118# CONFIG_VM_EVENT_COUNTERS is not set 121# CONFIG_VM_EVENT_COUNTERS is not set
119CONFIG_PCI_QUIRKS=y 122CONFIG_PCI_QUIRKS=y
123CONFIG_COMPAT_BRK=y
120CONFIG_SLAB=y 124CONFIG_SLAB=y
121# CONFIG_SLUB is not set 125# CONFIG_SLUB is not set
122# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set 127# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
124CONFIG_HAVE_OPROFILE=y 129CONFIG_HAVE_OPROFILE=y
125# CONFIG_KPROBES is not set 130# CONFIG_KPROBES is not set
126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 131CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -129,6 +134,7 @@ CONFIG_HAVE_KPROBES=y
129CONFIG_HAVE_KRETPROBES=y 134CONFIG_HAVE_KRETPROBES=y
130CONFIG_HAVE_ARCH_TRACEHOOK=y 135CONFIG_HAVE_ARCH_TRACEHOOK=y
131CONFIG_HAVE_CLK=y 136CONFIG_HAVE_CLK=y
137# CONFIG_SLOW_WORK is not set
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
133CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
134CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -141,7 +147,6 @@ CONFIG_MODULE_UNLOAD=y
141# CONFIG_MODULE_SRCVERSION_ALL is not set 147# CONFIG_MODULE_SRCVERSION_ALL is not set
142CONFIG_BLOCK=y 148CONFIG_BLOCK=y
143# CONFIG_LBD is not set 149# CONFIG_LBD is not set
144# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
147 152
@@ -162,8 +167,6 @@ CONFIG_DEFAULT_IOSCHED="noop"
162# 167#
163# Platform support 168# Platform support
164# 169#
165CONFIG_PPC_MULTIPLATFORM=y
166CONFIG_CLASSIC32=y
167# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
168# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
169# CONFIG_MPC5121_GENERIC is not set 172# CONFIG_MPC5121_GENERIC is not set
@@ -171,6 +174,7 @@ CONFIG_PPC_MPC52xx=y
171CONFIG_PPC_MPC5200_SIMPLE=y 174CONFIG_PPC_MPC5200_SIMPLE=y
172# CONFIG_PPC_EFIKA is not set 175# CONFIG_PPC_EFIKA is not set
173# CONFIG_PPC_LITE5200 is not set 176# CONFIG_PPC_LITE5200 is not set
177# CONFIG_PPC_MEDIA5200 is not set
174# CONFIG_PPC_MPC5200_BUGFIX is not set 178# CONFIG_PPC_MPC5200_BUGFIX is not set
175# CONFIG_PPC_MPC5200_GPIO is not set 179# CONFIG_PPC_MPC5200_GPIO is not set
176# CONFIG_PPC_PMAC is not set 180# CONFIG_PPC_PMAC is not set
@@ -181,6 +185,8 @@ CONFIG_PPC_MPC5200_SIMPLE=y
181# CONFIG_PPC_83xx is not set 185# CONFIG_PPC_83xx is not set
182# CONFIG_PPC_86xx is not set 186# CONFIG_PPC_86xx is not set
183# CONFIG_EMBEDDED6xx is not set 187# CONFIG_EMBEDDED6xx is not set
188# CONFIG_AMIGAONE is not set
189CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
184# CONFIG_IPIC is not set 190# CONFIG_IPIC is not set
185# CONFIG_MPIC is not set 191# CONFIG_MPIC is not set
186# CONFIG_MPIC_WEIRD is not set 192# CONFIG_MPIC_WEIRD is not set
@@ -242,9 +248,12 @@ CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 249CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245CONFIG_PPC_4K_PAGES=y 253CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set 254# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set 255# CONFIG_PPC_64K_PAGES is not set
256# CONFIG_PPC_256K_PAGES is not set
248CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
249CONFIG_PROC_DEVICETREE=y 258CONFIG_PROC_DEVICETREE=y
250# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
@@ -268,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
268# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
269CONFIG_PCI_LEGACY=y 278CONFIG_PCI_LEGACY=y
270# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
271# CONFIG_PCCARD is not set 281# CONFIG_PCCARD is not set
272# CONFIG_HOTPLUG_PCI is not set 282# CONFIG_HOTPLUG_PCI is not set
273# CONFIG_HAS_RAPIDIO is not set 283# CONFIG_HAS_RAPIDIO is not set
@@ -290,7 +300,6 @@ CONFIG_NET=y
290# 300#
291# Networking options 301# Networking options
292# 302#
293CONFIG_COMPAT_NET_DEV_OPS=y
294CONFIG_PACKET=y 303CONFIG_PACKET=y
295# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
296CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -340,6 +349,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_LAPB is not set 349# CONFIG_LAPB is not set
341# CONFIG_ECONET is not set 350# CONFIG_ECONET is not set
342# CONFIG_WAN_ROUTER is not set 351# CONFIG_WAN_ROUTER is not set
352# CONFIG_PHONET is not set
343# CONFIG_NET_SCHED is not set 353# CONFIG_NET_SCHED is not set
344# CONFIG_DCB is not set 354# CONFIG_DCB is not set
345 355
@@ -352,7 +362,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
352# CONFIG_IRDA is not set 362# CONFIG_IRDA is not set
353# CONFIG_BT is not set 363# CONFIG_BT is not set
354# CONFIG_AF_RXRPC is not set 364# CONFIG_AF_RXRPC is not set
355# CONFIG_PHONET is not set
356# CONFIG_WIRELESS is not set 365# CONFIG_WIRELESS is not set
357# CONFIG_WIMAX is not set 366# CONFIG_WIMAX is not set
358# CONFIG_RFKILL is not set 367# CONFIG_RFKILL is not set
@@ -451,7 +460,6 @@ CONFIG_MTD_PHYSMAP=y
451# LPDDR flash memory drivers 460# LPDDR flash memory drivers
452# 461#
453# CONFIG_MTD_LPDDR is not set 462# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 463
456# 464#
457# UBI - Unsorted block images 465# UBI - Unsorted block images
@@ -504,6 +512,7 @@ CONFIG_SCSI_WAIT_SCAN=m
504# CONFIG_SCSI_SRP_ATTRS is not set 512# CONFIG_SCSI_SRP_ATTRS is not set
505# CONFIG_SCSI_LOWLEVEL is not set 513# CONFIG_SCSI_LOWLEVEL is not set
506# CONFIG_SCSI_DH is not set 514# CONFIG_SCSI_DH is not set
515# CONFIG_SCSI_OSD_INITIATOR is not set
507CONFIG_ATA=m 516CONFIG_ATA=m
508# CONFIG_ATA_NONSTANDARD is not set 517# CONFIG_ATA_NONSTANDARD is not set
509CONFIG_SATA_PMP=y 518CONFIG_SATA_PMP=y
@@ -580,6 +589,7 @@ CONFIG_PATA_MPC52xx=m
580# CONFIG_I2O is not set 589# CONFIG_I2O is not set
581# CONFIG_MACINTOSH_DRIVERS is not set 590# CONFIG_MACINTOSH_DRIVERS is not set
582CONFIG_NETDEVICES=y 591CONFIG_NETDEVICES=y
592CONFIG_COMPAT_NET_DEV_OPS=y
583# CONFIG_DUMMY is not set 593# CONFIG_DUMMY is not set
584# CONFIG_BONDING is not set 594# CONFIG_BONDING is not set
585# CONFIG_MACVLAN is not set 595# CONFIG_MACVLAN is not set
@@ -613,6 +623,8 @@ CONFIG_MII=y
613# CONFIG_SUNGEM is not set 623# CONFIG_SUNGEM is not set
614# CONFIG_CASSINI is not set 624# CONFIG_CASSINI is not set
615# CONFIG_NET_VENDOR_3COM is not set 625# CONFIG_NET_VENDOR_3COM is not set
626# CONFIG_ETHOC is not set
627# CONFIG_DNET is not set
616# CONFIG_NET_TULIP is not set 628# CONFIG_NET_TULIP is not set
617# CONFIG_HP100 is not set 629# CONFIG_HP100 is not set
618# CONFIG_IBM_NEW_EMAC_ZMII is not set 630# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -636,7 +648,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
636# 648#
637# CONFIG_WLAN_PRE80211 is not set 649# CONFIG_WLAN_PRE80211 is not set
638# CONFIG_WLAN_80211 is not set 650# CONFIG_WLAN_80211 is not set
639# CONFIG_IWLWIFI_LEDS is not set
640 651
641# 652#
642# Enable WiMAX (Networking options) to see the WiMAX drivers 653# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -702,6 +713,7 @@ CONFIG_UNIX98_PTYS=y
702# CONFIG_HVC_UDBG is not set 713# CONFIG_HVC_UDBG is not set
703# CONFIG_IPMI_HANDLER is not set 714# CONFIG_IPMI_HANDLER is not set
704CONFIG_HW_RANDOM=y 715CONFIG_HW_RANDOM=y
716# CONFIG_HW_RANDOM_TIMERIOMEM is not set
705# CONFIG_NVRAM is not set 717# CONFIG_NVRAM is not set
706# CONFIG_R3964 is not set 718# CONFIG_R3964 is not set
707# CONFIG_APPLICOM is not set 719# CONFIG_APPLICOM is not set
@@ -767,7 +779,6 @@ CONFIG_I2C_MPC=y
767# CONFIG_SENSORS_PCF8574 is not set 779# CONFIG_SENSORS_PCF8574 is not set
768# CONFIG_PCF8575 is not set 780# CONFIG_PCF8575 is not set
769# CONFIG_SENSORS_PCA9539 is not set 781# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set
771# CONFIG_SENSORS_MAX6875 is not set 782# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 783# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 784# CONFIG_I2C_DEBUG_CORE is not set
@@ -889,11 +900,11 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
889# CONFIG_USB_TMC is not set 900# CONFIG_USB_TMC is not set
890 901
891# 902#
892# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 903# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
893# 904#
894 905
895# 906#
896# see USB_STORAGE Help for more information 907# also be needed; see USB_STORAGE Help for more info
897# 908#
898CONFIG_USB_STORAGE=m 909CONFIG_USB_STORAGE=m
899# CONFIG_USB_STORAGE_DEBUG is not set 910# CONFIG_USB_STORAGE_DEBUG is not set
@@ -934,7 +945,6 @@ CONFIG_USB_STORAGE=m
934# CONFIG_USB_LED is not set 945# CONFIG_USB_LED is not set
935# CONFIG_USB_CYPRESS_CY7C63 is not set 946# CONFIG_USB_CYPRESS_CY7C63 is not set
936# CONFIG_USB_CYTHERM is not set 947# CONFIG_USB_CYTHERM is not set
937# CONFIG_USB_PHIDGET is not set
938# CONFIG_USB_IDMOUSE is not set 948# CONFIG_USB_IDMOUSE is not set
939# CONFIG_USB_FTDI_ELAN is not set 949# CONFIG_USB_FTDI_ELAN is not set
940# CONFIG_USB_APPLEDISPLAY is not set 950# CONFIG_USB_APPLEDISPLAY is not set
@@ -949,6 +959,7 @@ CONFIG_USB_STORAGE=m
949# 959#
950# OTG and related infrastructure 960# OTG and related infrastructure
951# 961#
962# CONFIG_NOP_USB_XCEIV is not set
952# CONFIG_UWB is not set 963# CONFIG_UWB is not set
953# CONFIG_MMC is not set 964# CONFIG_MMC is not set
954# CONFIG_MEMSTICK is not set 965# CONFIG_MEMSTICK is not set
@@ -1007,8 +1018,9 @@ CONFIG_RTC_DRV_PCF8563=m
1007# 1018#
1008# on-CPU RTC drivers 1019# on-CPU RTC drivers
1009# 1020#
1010# CONFIG_RTC_DRV_PPC is not set 1021# CONFIG_RTC_DRV_GENERIC is not set
1011# CONFIG_DMADEVICES is not set 1022# CONFIG_DMADEVICES is not set
1023# CONFIG_AUXDISPLAY is not set
1012# CONFIG_UIO is not set 1024# CONFIG_UIO is not set
1013# CONFIG_STAGING is not set 1025# CONFIG_STAGING is not set
1014 1026
@@ -1019,6 +1031,7 @@ CONFIG_EXT2_FS=m
1019# CONFIG_EXT2_FS_XATTR is not set 1031# CONFIG_EXT2_FS_XATTR is not set
1020# CONFIG_EXT2_FS_XIP is not set 1032# CONFIG_EXT2_FS_XIP is not set
1021CONFIG_EXT3_FS=m 1033CONFIG_EXT3_FS=m
1034# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1022CONFIG_EXT3_FS_XATTR=y 1035CONFIG_EXT3_FS_XATTR=y
1023# CONFIG_EXT3_FS_POSIX_ACL is not set 1036# CONFIG_EXT3_FS_POSIX_ACL is not set
1024# CONFIG_EXT3_FS_SECURITY is not set 1037# CONFIG_EXT3_FS_SECURITY is not set
@@ -1040,6 +1053,11 @@ CONFIG_FILE_LOCKING=y
1040# CONFIG_FUSE_FS is not set 1053# CONFIG_FUSE_FS is not set
1041 1054
1042# 1055#
1056# Caches
1057#
1058# CONFIG_FSCACHE is not set
1059
1060#
1043# CD-ROM/DVD Filesystems 1061# CD-ROM/DVD Filesystems
1044# 1062#
1045# CONFIG_ISO9660_FS is not set 1063# CONFIG_ISO9660_FS is not set
@@ -1096,6 +1114,7 @@ CONFIG_JFFS2_RTIME=y
1096# CONFIG_ROMFS_FS is not set 1114# CONFIG_ROMFS_FS is not set
1097# CONFIG_SYSV_FS is not set 1115# CONFIG_SYSV_FS is not set
1098# CONFIG_UFS_FS is not set 1116# CONFIG_UFS_FS is not set
1117# CONFIG_NILFS2_FS is not set
1099CONFIG_NETWORK_FILESYSTEMS=y 1118CONFIG_NETWORK_FILESYSTEMS=y
1100CONFIG_NFS_FS=y 1119CONFIG_NFS_FS=y
1101CONFIG_NFS_V3=y 1120CONFIG_NFS_V3=y
@@ -1107,7 +1126,6 @@ CONFIG_LOCKD=y
1107CONFIG_LOCKD_V4=y 1126CONFIG_LOCKD_V4=y
1108CONFIG_NFS_COMMON=y 1127CONFIG_NFS_COMMON=y
1109CONFIG_SUNRPC=y 1128CONFIG_SUNRPC=y
1110# CONFIG_SUNRPC_REGISTER_V4 is not set
1111# CONFIG_RPCSEC_GSS_KRB5 is not set 1129# CONFIG_RPCSEC_GSS_KRB5 is not set
1112# CONFIG_RPCSEC_GSS_SPKM3 is not set 1130# CONFIG_RPCSEC_GSS_SPKM3 is not set
1113# CONFIG_SMB_FS is not set 1131# CONFIG_SMB_FS is not set
@@ -1162,6 +1180,7 @@ CONFIG_NLS_ISO8859_1=y
1162# CONFIG_NLS_KOI8_U is not set 1180# CONFIG_NLS_KOI8_U is not set
1163# CONFIG_NLS_UTF8 is not set 1181# CONFIG_NLS_UTF8 is not set
1164# CONFIG_DLM is not set 1182# CONFIG_DLM is not set
1183# CONFIG_BINARY_PRINTF is not set
1165 1184
1166# 1185#
1167# Library routines 1186# Library routines
@@ -1177,11 +1196,11 @@ CONFIG_CRC32=y
1177# CONFIG_LIBCRC32C is not set 1196# CONFIG_LIBCRC32C is not set
1178CONFIG_ZLIB_INFLATE=y 1197CONFIG_ZLIB_INFLATE=y
1179CONFIG_ZLIB_DEFLATE=y 1198CONFIG_ZLIB_DEFLATE=y
1180CONFIG_PLIST=y
1181CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1182CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1183CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1184CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1185 1204
1186# 1205#
1187# Kernel hacking 1206# Kernel hacking
@@ -1200,13 +1219,25 @@ CONFIG_FRAME_WARN=1024
1200# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1219# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1201# CONFIG_LATENCYTOP is not set 1220# CONFIG_LATENCYTOP is not set
1202CONFIG_HAVE_FUNCTION_TRACER=y 1221CONFIG_HAVE_FUNCTION_TRACER=y
1222CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1203CONFIG_HAVE_DYNAMIC_FTRACE=y 1223CONFIG_HAVE_DYNAMIC_FTRACE=y
1204CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1224CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1225CONFIG_TRACING_SUPPORT=y
1205 1226
1206# 1227#
1207# Tracers 1228# Tracers
1208# 1229#
1209# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1230# CONFIG_FUNCTION_TRACER is not set
1231# CONFIG_PREEMPT_TRACER is not set
1232# CONFIG_SCHED_TRACER is not set
1233# CONFIG_CONTEXT_SWITCH_TRACER is not set
1234# CONFIG_EVENT_TRACER is not set
1235# CONFIG_BOOT_TRACER is not set
1236# CONFIG_TRACE_BRANCH_PROFILING is not set
1237# CONFIG_STACK_TRACER is not set
1238# CONFIG_KMEMTRACE is not set
1239# CONFIG_WORKQUEUE_TRACER is not set
1240# CONFIG_BLK_DEV_IO_TRACE is not set
1210# CONFIG_SAMPLES is not set 1241# CONFIG_SAMPLES is not set
1211CONFIG_HAVE_ARCH_KGDB=y 1242CONFIG_HAVE_ARCH_KGDB=y
1212CONFIG_PRINT_STACK_DEPTH=64 1243CONFIG_PRINT_STACK_DEPTH=64
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index 65237ad6f07e..8585c7c12861 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 21:42:58 2009 4# Sat Apr 18 00:48:57 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -94,19 +96,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
94# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
95CONFIG_BLK_DEV_INITRD=y 97CONFIG_BLK_DEV_INITRD=y
96CONFIG_INITRAMFS_SOURCE="" 98CONFIG_INITRAMFS_SOURCE=""
99CONFIG_RD_GZIP=y
100# CONFIG_RD_BZIP2 is not set
101# CONFIG_RD_LZMA is not set
97# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
98CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y
99CONFIG_EMBEDDED=y 105CONFIG_EMBEDDED=y
100# CONFIG_SYSCTL_SYSCALL is not set 106# CONFIG_SYSCTL_SYSCALL is not set
101# CONFIG_KALLSYMS is not set 107# CONFIG_KALLSYMS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 110CONFIG_PRINTK=y
104CONFIG_BUG=y 111CONFIG_BUG=y
105CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
106CONFIG_COMPAT_BRK=y
107CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
108CONFIG_FUTEX=y 114CONFIG_FUTEX=y
109CONFIG_ANON_INODES=y
110# CONFIG_EPOLL is not set 115# CONFIG_EPOLL is not set
111CONFIG_SIGNALFD=y 116CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 117CONFIG_TIMERFD=y
@@ -115,10 +120,12 @@ CONFIG_SHMEM=y
115CONFIG_AIO=y 120CONFIG_AIO=y
116CONFIG_VM_EVENT_COUNTERS=y 121CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_SLUB_DEBUG=y 122CONFIG_SLUB_DEBUG=y
123CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 124# CONFIG_SLAB is not set
119CONFIG_SLUB=y 125CONFIG_SLUB=y
120# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 127# CONFIG_PROFILING is not set
128# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 129CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 130CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 131CONFIG_HAVE_IOREMAP_PROT=y
@@ -126,6 +133,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 133CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 134CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_CLK=y 135CONFIG_HAVE_CLK=y
136# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 138CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 139CONFIG_RT_MUTEXES=y
@@ -138,7 +146,6 @@ CONFIG_MODVERSIONS=y
138# CONFIG_MODULE_SRCVERSION_ALL is not set 146# CONFIG_MODULE_SRCVERSION_ALL is not set
139CONFIG_BLOCK=y 147CONFIG_BLOCK=y
140# CONFIG_LBD is not set 148# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_BLK_DEV_BSG is not set 149# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 150# CONFIG_BLK_DEV_INTEGRITY is not set
144 151
@@ -159,8 +166,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
159# 166#
160# Platform support 167# Platform support
161# 168#
162CONFIG_PPC_MULTIPLATFORM=y
163CONFIG_CLASSIC32=y
164# CONFIG_PPC_CHRP is not set 169# CONFIG_PPC_CHRP is not set
165# CONFIG_MPC5121_ADS is not set 170# CONFIG_MPC5121_ADS is not set
166# CONFIG_MPC5121_GENERIC is not set 171# CONFIG_MPC5121_GENERIC is not set
@@ -168,6 +173,7 @@ CONFIG_PPC_MPC52xx=y
168CONFIG_PPC_MPC5200_SIMPLE=y 173CONFIG_PPC_MPC5200_SIMPLE=y
169# CONFIG_PPC_EFIKA is not set 174# CONFIG_PPC_EFIKA is not set
170# CONFIG_PPC_LITE5200 is not set 175# CONFIG_PPC_LITE5200 is not set
176# CONFIG_PPC_MEDIA5200 is not set
171CONFIG_PPC_MPC5200_BUGFIX=y 177CONFIG_PPC_MPC5200_BUGFIX=y
172# CONFIG_PPC_MPC5200_GPIO is not set 178# CONFIG_PPC_MPC5200_GPIO is not set
173# CONFIG_PPC_PMAC is not set 179# CONFIG_PPC_PMAC is not set
@@ -178,6 +184,8 @@ CONFIG_PPC_MPC5200_BUGFIX=y
178# CONFIG_PPC_83xx is not set 184# CONFIG_PPC_83xx is not set
179# CONFIG_PPC_86xx is not set 185# CONFIG_PPC_86xx is not set
180# CONFIG_EMBEDDED6xx is not set 186# CONFIG_EMBEDDED6xx is not set
187# CONFIG_AMIGAONE is not set
188CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
181# CONFIG_IPIC is not set 189# CONFIG_IPIC is not set
182# CONFIG_MPIC is not set 190# CONFIG_MPIC is not set
183# CONFIG_MPIC_WEIRD is not set 191# CONFIG_MPIC_WEIRD is not set
@@ -238,9 +246,12 @@ CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 246CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 247CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 248CONFIG_UNEVICTABLE_LRU=y
249CONFIG_HAVE_MLOCK=y
250CONFIG_HAVE_MLOCKED_PAGE_BIT=y
241CONFIG_PPC_4K_PAGES=y 251CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set 252# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set 253# CONFIG_PPC_64K_PAGES is not set
254# CONFIG_PPC_256K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=11 255CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y 256CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 257# CONFIG_CMDLINE_BOOL is not set
@@ -281,7 +292,6 @@ CONFIG_NET=y
281# 292#
282# Networking options 293# Networking options
283# 294#
284CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 295CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -337,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
338# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
339# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set
340# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set 352# CONFIG_DCB is not set
342 353
@@ -349,7 +360,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
350# CONFIG_BT is not set 361# CONFIG_BT is not set
351# CONFIG_AF_RXRPC is not set 362# CONFIG_AF_RXRPC is not set
352# CONFIG_PHONET is not set
353# CONFIG_WIRELESS is not set 363# CONFIG_WIRELESS is not set
354# CONFIG_WIMAX is not set 364# CONFIG_WIMAX is not set
355# CONFIG_RFKILL is not set 365# CONFIG_RFKILL is not set
@@ -447,7 +457,6 @@ CONFIG_MTD_PHYSMAP_OF=y
447# LPDDR flash memory drivers 457# LPDDR flash memory drivers
448# 458#
449# CONFIG_MTD_LPDDR is not set 459# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451 460
452# 461#
453# UBI - Unsorted block images 462# UBI - Unsorted block images
@@ -514,8 +523,10 @@ CONFIG_SCSI_WAIT_SCAN=m
514CONFIG_SCSI_LOWLEVEL=y 523CONFIG_SCSI_LOWLEVEL=y
515# CONFIG_ISCSI_TCP is not set 524# CONFIG_ISCSI_TCP is not set
516# CONFIG_LIBFC is not set 525# CONFIG_LIBFC is not set
526# CONFIG_LIBFCOE is not set
517# CONFIG_SCSI_DEBUG is not set 527# CONFIG_SCSI_DEBUG is not set
518# CONFIG_SCSI_DH is not set 528# CONFIG_SCSI_DH is not set
529# CONFIG_SCSI_OSD_INITIATOR is not set
519CONFIG_ATA=y 530CONFIG_ATA=y
520# CONFIG_ATA_NONSTANDARD is not set 531# CONFIG_ATA_NONSTANDARD is not set
521CONFIG_SATA_PMP=y 532CONFIG_SATA_PMP=y
@@ -527,6 +538,7 @@ CONFIG_PATA_PLATFORM=y
527# CONFIG_MD is not set 538# CONFIG_MD is not set
528# CONFIG_MACINTOSH_DRIVERS is not set 539# CONFIG_MACINTOSH_DRIVERS is not set
529CONFIG_NETDEVICES=y 540CONFIG_NETDEVICES=y
541CONFIG_COMPAT_NET_DEV_OPS=y
530# CONFIG_DUMMY is not set 542# CONFIG_DUMMY is not set
531# CONFIG_BONDING is not set 543# CONFIG_BONDING is not set
532# CONFIG_MACVLAN is not set 544# CONFIG_MACVLAN is not set
@@ -555,6 +567,8 @@ CONFIG_LXT_PHY=y
555# CONFIG_MDIO_BITBANG is not set 567# CONFIG_MDIO_BITBANG is not set
556CONFIG_NET_ETHERNET=y 568CONFIG_NET_ETHERNET=y
557# CONFIG_MII is not set 569# CONFIG_MII is not set
570# CONFIG_ETHOC is not set
571# CONFIG_DNET is not set
558# CONFIG_IBM_NEW_EMAC_ZMII is not set 572# CONFIG_IBM_NEW_EMAC_ZMII is not set
559# CONFIG_IBM_NEW_EMAC_RGMII is not set 573# CONFIG_IBM_NEW_EMAC_RGMII is not set
560# CONFIG_IBM_NEW_EMAC_TAH is not set 574# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -573,7 +587,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
573# 587#
574# CONFIG_WLAN_PRE80211 is not set 588# CONFIG_WLAN_PRE80211 is not set
575# CONFIG_WLAN_80211 is not set 589# CONFIG_WLAN_80211 is not set
576# CONFIG_IWLWIFI_LEDS is not set
577 590
578# 591#
579# Enable WiMAX (Networking options) to see the WiMAX drivers 592# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -675,7 +688,6 @@ CONFIG_I2C_MPC=y
675# CONFIG_SENSORS_PCF8574 is not set 688# CONFIG_SENSORS_PCF8574 is not set
676# CONFIG_PCF8575 is not set 689# CONFIG_PCF8575 is not set
677# CONFIG_SENSORS_PCA9539 is not set 690# CONFIG_SENSORS_PCA9539 is not set
678# CONFIG_SENSORS_PCF8591 is not set
679# CONFIG_SENSORS_MAX6875 is not set 691# CONFIG_SENSORS_MAX6875 is not set
680# CONFIG_SENSORS_TSL2550 is not set 692# CONFIG_SENSORS_TSL2550 is not set
681# CONFIG_I2C_DEBUG_CORE is not set 693# CONFIG_I2C_DEBUG_CORE is not set
@@ -706,6 +718,7 @@ CONFIG_HWMON=y
706# CONFIG_SENSORS_F71805F is not set 718# CONFIG_SENSORS_F71805F is not set
707# CONFIG_SENSORS_F71882FG is not set 719# CONFIG_SENSORS_F71882FG is not set
708# CONFIG_SENSORS_F75375S is not set 720# CONFIG_SENSORS_F75375S is not set
721# CONFIG_SENSORS_G760A is not set
709# CONFIG_SENSORS_GL518SM is not set 722# CONFIG_SENSORS_GL518SM is not set
710# CONFIG_SENSORS_GL520SM is not set 723# CONFIG_SENSORS_GL520SM is not set
711# CONFIG_SENSORS_IT87 is not set 724# CONFIG_SENSORS_IT87 is not set
@@ -720,11 +733,14 @@ CONFIG_HWMON=y
720# CONFIG_SENSORS_LM90 is not set 733# CONFIG_SENSORS_LM90 is not set
721# CONFIG_SENSORS_LM92 is not set 734# CONFIG_SENSORS_LM92 is not set
722# CONFIG_SENSORS_LM93 is not set 735# CONFIG_SENSORS_LM93 is not set
736# CONFIG_SENSORS_LTC4215 is not set
723# CONFIG_SENSORS_LTC4245 is not set 737# CONFIG_SENSORS_LTC4245 is not set
738# CONFIG_SENSORS_LM95241 is not set
724# CONFIG_SENSORS_MAX1619 is not set 739# CONFIG_SENSORS_MAX1619 is not set
725# CONFIG_SENSORS_MAX6650 is not set 740# CONFIG_SENSORS_MAX6650 is not set
726# CONFIG_SENSORS_PC87360 is not set 741# CONFIG_SENSORS_PC87360 is not set
727# CONFIG_SENSORS_PC87427 is not set 742# CONFIG_SENSORS_PC87427 is not set
743# CONFIG_SENSORS_PCF8591 is not set
728# CONFIG_SENSORS_DME1737 is not set 744# CONFIG_SENSORS_DME1737 is not set
729# CONFIG_SENSORS_SMSC47M1 is not set 745# CONFIG_SENSORS_SMSC47M1 is not set
730# CONFIG_SENSORS_SMSC47M192 is not set 746# CONFIG_SENSORS_SMSC47M192 is not set
@@ -857,11 +873,11 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
857# CONFIG_USB_TMC is not set 873# CONFIG_USB_TMC is not set
858 874
859# 875#
860# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 876# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
861# 877#
862 878
863# 879#
864# see USB_STORAGE Help for more information 880# also be needed; see USB_STORAGE Help for more info
865# 881#
866CONFIG_USB_STORAGE=y 882CONFIG_USB_STORAGE=y
867# CONFIG_USB_STORAGE_DEBUG is not set 883# CONFIG_USB_STORAGE_DEBUG is not set
@@ -902,7 +918,6 @@ CONFIG_USB_STORAGE=y
902# CONFIG_USB_LED is not set 918# CONFIG_USB_LED is not set
903# CONFIG_USB_CYPRESS_CY7C63 is not set 919# CONFIG_USB_CYPRESS_CY7C63 is not set
904# CONFIG_USB_CYTHERM is not set 920# CONFIG_USB_CYTHERM is not set
905# CONFIG_USB_PHIDGET is not set
906# CONFIG_USB_IDMOUSE is not set 921# CONFIG_USB_IDMOUSE is not set
907# CONFIG_USB_FTDI_ELAN is not set 922# CONFIG_USB_FTDI_ELAN is not set
908# CONFIG_USB_APPLEDISPLAY is not set 923# CONFIG_USB_APPLEDISPLAY is not set
@@ -917,6 +932,7 @@ CONFIG_USB_STORAGE=y
917# 932#
918# OTG and related infrastructure 933# OTG and related infrastructure
919# 934#
935# CONFIG_NOP_USB_XCEIV is not set
920# CONFIG_MMC is not set 936# CONFIG_MMC is not set
921# CONFIG_MEMSTICK is not set 937# CONFIG_MEMSTICK is not set
922# CONFIG_NEW_LEDS is not set 938# CONFIG_NEW_LEDS is not set
@@ -976,8 +992,9 @@ CONFIG_RTC_DRV_DS1307=y
976# 992#
977# on-CPU RTC drivers 993# on-CPU RTC drivers
978# 994#
979# CONFIG_RTC_DRV_PPC is not set 995# CONFIG_RTC_DRV_GENERIC is not set
980# CONFIG_DMADEVICES is not set 996# CONFIG_DMADEVICES is not set
997# CONFIG_AUXDISPLAY is not set
981# CONFIG_UIO is not set 998# CONFIG_UIO is not set
982# CONFIG_STAGING is not set 999# CONFIG_STAGING is not set
983 1000
@@ -988,6 +1005,7 @@ CONFIG_EXT2_FS=y
988# CONFIG_EXT2_FS_XATTR is not set 1005# CONFIG_EXT2_FS_XATTR is not set
989# CONFIG_EXT2_FS_XIP is not set 1006# CONFIG_EXT2_FS_XIP is not set
990CONFIG_EXT3_FS=y 1007CONFIG_EXT3_FS=y
1008# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
991CONFIG_EXT3_FS_XATTR=y 1009CONFIG_EXT3_FS_XATTR=y
992# CONFIG_EXT3_FS_POSIX_ACL is not set 1010# CONFIG_EXT3_FS_POSIX_ACL is not set
993# CONFIG_EXT3_FS_SECURITY is not set 1011# CONFIG_EXT3_FS_SECURITY is not set
@@ -1010,6 +1028,11 @@ CONFIG_INOTIFY_USER=y
1010# CONFIG_FUSE_FS is not set 1028# CONFIG_FUSE_FS is not set
1011 1029
1012# 1030#
1031# Caches
1032#
1033# CONFIG_FSCACHE is not set
1034
1035#
1013# CD-ROM/DVD Filesystems 1036# CD-ROM/DVD Filesystems
1014# 1037#
1015# CONFIG_ISO9660_FS is not set 1038# CONFIG_ISO9660_FS is not set
@@ -1066,6 +1089,7 @@ CONFIG_CRAMFS=y
1066# CONFIG_ROMFS_FS is not set 1089# CONFIG_ROMFS_FS is not set
1067# CONFIG_SYSV_FS is not set 1090# CONFIG_SYSV_FS is not set
1068# CONFIG_UFS_FS is not set 1091# CONFIG_UFS_FS is not set
1092# CONFIG_NILFS2_FS is not set
1069CONFIG_NETWORK_FILESYSTEMS=y 1093CONFIG_NETWORK_FILESYSTEMS=y
1070CONFIG_NFS_FS=y 1094CONFIG_NFS_FS=y
1071CONFIG_NFS_V3=y 1095CONFIG_NFS_V3=y
@@ -1078,7 +1102,6 @@ CONFIG_LOCKD_V4=y
1078CONFIG_NFS_COMMON=y 1102CONFIG_NFS_COMMON=y
1079CONFIG_SUNRPC=y 1103CONFIG_SUNRPC=y
1080CONFIG_SUNRPC_GSS=y 1104CONFIG_SUNRPC_GSS=y
1081# CONFIG_SUNRPC_REGISTER_V4 is not set
1082CONFIG_RPCSEC_GSS_KRB5=y 1105CONFIG_RPCSEC_GSS_KRB5=y
1083# CONFIG_RPCSEC_GSS_SPKM3 is not set 1106# CONFIG_RPCSEC_GSS_SPKM3 is not set
1084# CONFIG_SMB_FS is not set 1107# CONFIG_SMB_FS is not set
@@ -1149,6 +1172,7 @@ CONFIG_NLS_ISO8859_1=y
1149# CONFIG_NLS_KOI8_U is not set 1172# CONFIG_NLS_KOI8_U is not set
1150# CONFIG_NLS_UTF8 is not set 1173# CONFIG_NLS_UTF8 is not set
1151# CONFIG_DLM is not set 1174# CONFIG_DLM is not set
1175# CONFIG_BINARY_PRINTF is not set
1152 1176
1153# 1177#
1154# Library routines 1178# Library routines
@@ -1164,11 +1188,12 @@ CONFIG_CRC32=y
1164# CONFIG_LIBCRC32C is not set 1188# CONFIG_LIBCRC32C is not set
1165CONFIG_ZLIB_INFLATE=y 1189CONFIG_ZLIB_INFLATE=y
1166CONFIG_ZLIB_DEFLATE=y 1190CONFIG_ZLIB_DEFLATE=y
1167CONFIG_PLIST=y 1191CONFIG_DECOMPRESS_GZIP=y
1168CONFIG_HAS_IOMEM=y 1192CONFIG_HAS_IOMEM=y
1169CONFIG_HAS_IOPORT=y 1193CONFIG_HAS_IOPORT=y
1170CONFIG_HAS_DMA=y 1194CONFIG_HAS_DMA=y
1171CONFIG_HAVE_LMB=y 1195CONFIG_HAVE_LMB=y
1196CONFIG_NLATTR=y
1172 1197
1173# 1198#
1174# Kernel hacking 1199# Kernel hacking
@@ -1186,6 +1211,9 @@ CONFIG_DEBUG_KERNEL=y
1186CONFIG_DETECT_SOFTLOCKUP=y 1211CONFIG_DETECT_SOFTLOCKUP=y
1187# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1212# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1188CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1213CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1214CONFIG_DETECT_HUNG_TASK=y
1215# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1216CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1189CONFIG_SCHED_DEBUG=y 1217CONFIG_SCHED_DEBUG=y
1190# CONFIG_SCHEDSTATS is not set 1218# CONFIG_SCHEDSTATS is not set
1191# CONFIG_TIMER_STATS is not set 1219# CONFIG_TIMER_STATS is not set
@@ -1214,9 +1242,12 @@ CONFIG_DEBUG_INFO=y
1214# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1242# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1215# CONFIG_FAULT_INJECTION is not set 1243# CONFIG_FAULT_INJECTION is not set
1216# CONFIG_LATENCYTOP is not set 1244# CONFIG_LATENCYTOP is not set
1245# CONFIG_DEBUG_PAGEALLOC is not set
1217CONFIG_HAVE_FUNCTION_TRACER=y 1246CONFIG_HAVE_FUNCTION_TRACER=y
1247CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1218CONFIG_HAVE_DYNAMIC_FTRACE=y 1248CONFIG_HAVE_DYNAMIC_FTRACE=y
1219CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1249CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1250CONFIG_TRACING_SUPPORT=y
1220 1251
1221# 1252#
1222# Tracers 1253# Tracers
@@ -1224,17 +1255,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1224# CONFIG_FUNCTION_TRACER is not set 1255# CONFIG_FUNCTION_TRACER is not set
1225# CONFIG_SCHED_TRACER is not set 1256# CONFIG_SCHED_TRACER is not set
1226# CONFIG_CONTEXT_SWITCH_TRACER is not set 1257# CONFIG_CONTEXT_SWITCH_TRACER is not set
1258# CONFIG_EVENT_TRACER is not set
1227# CONFIG_BOOT_TRACER is not set 1259# CONFIG_BOOT_TRACER is not set
1228# CONFIG_TRACE_BRANCH_PROFILING is not set 1260# CONFIG_TRACE_BRANCH_PROFILING is not set
1229# CONFIG_STACK_TRACER is not set 1261# CONFIG_STACK_TRACER is not set
1230# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1262# CONFIG_KMEMTRACE is not set
1263# CONFIG_WORKQUEUE_TRACER is not set
1264# CONFIG_BLK_DEV_IO_TRACE is not set
1231# CONFIG_SAMPLES is not set 1265# CONFIG_SAMPLES is not set
1232CONFIG_HAVE_ARCH_KGDB=y 1266CONFIG_HAVE_ARCH_KGDB=y
1233# CONFIG_KGDB is not set 1267# CONFIG_KGDB is not set
1234CONFIG_PRINT_STACK_DEPTH=64 1268CONFIG_PRINT_STACK_DEPTH=64
1235# CONFIG_DEBUG_STACKOVERFLOW is not set 1269# CONFIG_DEBUG_STACKOVERFLOW is not set
1236# CONFIG_DEBUG_STACK_USAGE is not set 1270# CONFIG_DEBUG_STACK_USAGE is not set
1237# CONFIG_DEBUG_PAGEALLOC is not set
1238# CONFIG_CODE_PATCHING_SELFTEST is not set 1271# CONFIG_CODE_PATCHING_SELFTEST is not set
1239# CONFIG_FTR_FIXUP_SELFTEST is not set 1272# CONFIG_FTR_FIXUP_SELFTEST is not set
1240# CONFIG_MSI_BITMAP_SELFTEST is not set 1273# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1265,10 +1298,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1265CONFIG_CRYPTO_HASH=y 1298CONFIG_CRYPTO_HASH=y
1266CONFIG_CRYPTO_HASH2=y 1299CONFIG_CRYPTO_HASH2=y
1267CONFIG_CRYPTO_RNG2=y 1300CONFIG_CRYPTO_RNG2=y
1301CONFIG_CRYPTO_PCOMP=y
1268CONFIG_CRYPTO_MANAGER=y 1302CONFIG_CRYPTO_MANAGER=y
1269CONFIG_CRYPTO_MANAGER2=y 1303CONFIG_CRYPTO_MANAGER2=y
1270# CONFIG_CRYPTO_GF128MUL is not set 1304# CONFIG_CRYPTO_GF128MUL is not set
1271# CONFIG_CRYPTO_NULL is not set 1305# CONFIG_CRYPTO_NULL is not set
1306CONFIG_CRYPTO_WORKQUEUE=y
1272# CONFIG_CRYPTO_CRYPTD is not set 1307# CONFIG_CRYPTO_CRYPTD is not set
1273# CONFIG_CRYPTO_AUTHENC is not set 1308# CONFIG_CRYPTO_AUTHENC is not set
1274# CONFIG_CRYPTO_TEST is not set 1309# CONFIG_CRYPTO_TEST is not set
@@ -1337,6 +1372,7 @@ CONFIG_CRYPTO_DES=y
1337# Compression 1372# Compression
1338# 1373#
1339# CONFIG_CRYPTO_DEFLATE is not set 1374# CONFIG_CRYPTO_DEFLATE is not set
1375# CONFIG_CRYPTO_ZLIB is not set
1340# CONFIG_CRYPTO_LZO is not set 1376# CONFIG_CRYPTO_LZO is not set
1341 1377
1342# 1378#
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index fc4a39a40e72..278939713775 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:47 2009 4# Wed May 13 17:22:05 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_FSL_EMB_PERFMON=y 19CONFIG_FSL_EMB_PERFMON=y
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -57,6 +58,7 @@ CONFIG_REDBOOT=y
57CONFIG_ARCH_SUSPEND_POSSIBLE=y 58CONFIG_ARCH_SUSPEND_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -74,6 +76,15 @@ CONFIG_SYSVIPC_SYSCTL=y
74# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
75# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
77# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
79CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -88,19 +99,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
89CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
91# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
92CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
93CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
95# CONFIG_KALLSYMS is not set 110# CONFIG_KALLSYMS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -110,16 +124,19 @@ CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 126CONFIG_SLUB_DEBUG=y
127CONFIG_COMPAT_BRK=y
113# CONFIG_SLAB is not set 128# CONFIG_SLAB is not set
114CONFIG_SLUB=y 129CONFIG_SLUB=y
115# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 135CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
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 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_ASP834x=y
184CONFIG_PPC_MPC834x=y 193CONFIG_PPC_MPC834x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -469,7 +483,6 @@ CONFIG_MTD_PHYSMAP_OF=y
469# LPDDR flash memory drivers 483# LPDDR flash memory drivers
470# 484#
471# CONFIG_MTD_LPDDR is not set 485# CONFIG_MTD_LPDDR is not set
472# CONFIG_MTD_QINFO_PROBE is not set
473 486
474# 487#
475# UBI - Unsorted block images 488# UBI - Unsorted block images
@@ -499,13 +512,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
499# CONFIG_BLK_DEV_HD is not set 512# CONFIG_BLK_DEV_HD is not set
500CONFIG_MISC_DEVICES=y 513CONFIG_MISC_DEVICES=y
501# CONFIG_PHANTOM is not set 514# CONFIG_PHANTOM is not set
502# CONFIG_EEPROM_93CX6 is not set
503# CONFIG_SGI_IOC4 is not set 515# CONFIG_SGI_IOC4 is not set
504# CONFIG_TIFM_CORE is not set 516# CONFIG_TIFM_CORE is not set
505# CONFIG_ICS932S401 is not set 517# CONFIG_ICS932S401 is not set
506# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
507# CONFIG_HP_ILO is not set 519# CONFIG_HP_ILO is not set
520# CONFIG_ISL29003 is not set
508# CONFIG_C2PORT is not set 521# CONFIG_C2PORT is not set
522
523#
524# EEPROM support
525#
526# CONFIG_EEPROM_AT24 is not set
527# CONFIG_EEPROM_LEGACY is not set
528# CONFIG_EEPROM_93CX6 is not set
509CONFIG_HAVE_IDE=y 529CONFIG_HAVE_IDE=y
510# CONFIG_IDE is not set 530# CONFIG_IDE is not set
511 531
@@ -532,6 +552,7 @@ CONFIG_HAVE_IDE=y
532# CONFIG_I2O is not set 552# CONFIG_I2O is not set
533# CONFIG_MACINTOSH_DRIVERS is not set 553# CONFIG_MACINTOSH_DRIVERS is not set
534CONFIG_NETDEVICES=y 554CONFIG_NETDEVICES=y
555CONFIG_COMPAT_NET_DEV_OPS=y
535# CONFIG_DUMMY is not set 556# CONFIG_DUMMY is not set
536# CONFIG_BONDING is not set 557# CONFIG_BONDING is not set
537# CONFIG_MACVLAN is not set 558# CONFIG_MACVLAN is not set
@@ -565,6 +586,8 @@ CONFIG_MII=y
565# CONFIG_SUNGEM is not set 586# CONFIG_SUNGEM is not set
566# CONFIG_CASSINI is not set 587# CONFIG_CASSINI is not set
567# CONFIG_NET_VENDOR_3COM is not set 588# CONFIG_NET_VENDOR_3COM is not set
589# CONFIG_ETHOC is not set
590# CONFIG_DNET is not set
568# CONFIG_NET_TULIP is not set 591# CONFIG_NET_TULIP is not set
569# CONFIG_HP100 is not set 592# CONFIG_HP100 is not set
570# CONFIG_IBM_NEW_EMAC_ZMII is not set 593# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -584,6 +607,7 @@ CONFIG_NETDEV_1000=y
584# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
585# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
586# CONFIG_IGB is not set 609# CONFIG_IGB is not set
610# CONFIG_IGBVF is not set
587# CONFIG_NS83820 is not set 611# CONFIG_NS83820 is not set
588# CONFIG_HAMACHI is not set 612# CONFIG_HAMACHI is not set
589# CONFIG_YELLOWFIN is not set 613# CONFIG_YELLOWFIN is not set
@@ -594,11 +618,12 @@ CONFIG_NETDEV_1000=y
594# CONFIG_VIA_VELOCITY is not set 618# CONFIG_VIA_VELOCITY is not set
595# CONFIG_TIGON3 is not set 619# CONFIG_TIGON3 is not set
596# CONFIG_BNX2 is not set 620# CONFIG_BNX2 is not set
621CONFIG_FSL_PQ_MDIO=y
597CONFIG_GIANFAR=y 622CONFIG_GIANFAR=y
598# CONFIG_MV643XX_ETH is not set
599# CONFIG_QLA3XXX is not set 623# CONFIG_QLA3XXX is not set
600# CONFIG_ATL1 is not set 624# CONFIG_ATL1 is not set
601# CONFIG_ATL1E is not set 625# CONFIG_ATL1E is not set
626# CONFIG_ATL1C is not set
602# CONFIG_JME is not set 627# CONFIG_JME is not set
603# CONFIG_NETDEV_10000 is not set 628# CONFIG_NETDEV_10000 is not set
604# CONFIG_TR is not set 629# CONFIG_TR is not set
@@ -608,7 +633,6 @@ CONFIG_GIANFAR=y
608# 633#
609# CONFIG_WLAN_PRE80211 is not set 634# CONFIG_WLAN_PRE80211 is not set
610# CONFIG_WLAN_80211 is not set 635# CONFIG_WLAN_80211 is not set
611# CONFIG_IWLWIFI_LEDS is not set
612 636
613# 637#
614# Enable WiMAX (Networking options) to see the WiMAX drivers 638# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -759,12 +783,9 @@ CONFIG_I2C_MPC=y
759# Miscellaneous I2C Chip support 783# Miscellaneous I2C Chip support
760# 784#
761# CONFIG_DS1682 is not set 785# CONFIG_DS1682 is not set
762# CONFIG_EEPROM_AT24 is not set
763# CONFIG_EEPROM_LEGACY is not set
764# CONFIG_SENSORS_PCF8574 is not set 786# CONFIG_SENSORS_PCF8574 is not set
765# CONFIG_PCF8575 is not set 787# CONFIG_PCF8575 is not set
766# CONFIG_SENSORS_PCA9539 is not set 788# CONFIG_SENSORS_PCA9539 is not set
767# CONFIG_SENSORS_PCF8591 is not set
768# CONFIG_SENSORS_MAX6875 is not set 789# CONFIG_SENSORS_MAX6875 is not set
769# CONFIG_SENSORS_TSL2550 is not set 790# CONFIG_SENSORS_TSL2550 is not set
770# CONFIG_I2C_DEBUG_CORE is not set 791# CONFIG_I2C_DEBUG_CORE is not set
@@ -796,6 +817,7 @@ CONFIG_HWMON=y
796# CONFIG_SENSORS_F71805F is not set 817# CONFIG_SENSORS_F71805F is not set
797# CONFIG_SENSORS_F71882FG is not set 818# CONFIG_SENSORS_F71882FG is not set
798# CONFIG_SENSORS_F75375S is not set 819# CONFIG_SENSORS_F75375S is not set
820# CONFIG_SENSORS_G760A is not set
799# CONFIG_SENSORS_GL518SM is not set 821# CONFIG_SENSORS_GL518SM is not set
800# CONFIG_SENSORS_GL520SM is not set 822# CONFIG_SENSORS_GL520SM is not set
801# CONFIG_SENSORS_IT87 is not set 823# CONFIG_SENSORS_IT87 is not set
@@ -810,11 +832,14 @@ CONFIG_HWMON=y
810# CONFIG_SENSORS_LM90 is not set 832# CONFIG_SENSORS_LM90 is not set
811# CONFIG_SENSORS_LM92 is not set 833# CONFIG_SENSORS_LM92 is not set
812# CONFIG_SENSORS_LM93 is not set 834# CONFIG_SENSORS_LM93 is not set
835# CONFIG_SENSORS_LTC4215 is not set
813# CONFIG_SENSORS_LTC4245 is not set 836# CONFIG_SENSORS_LTC4245 is not set
837# CONFIG_SENSORS_LM95241 is not set
814# CONFIG_SENSORS_MAX1619 is not set 838# CONFIG_SENSORS_MAX1619 is not set
815# CONFIG_SENSORS_MAX6650 is not set 839# CONFIG_SENSORS_MAX6650 is not set
816# CONFIG_SENSORS_PC87360 is not set 840# CONFIG_SENSORS_PC87360 is not set
817# CONFIG_SENSORS_PC87427 is not set 841# CONFIG_SENSORS_PC87427 is not set
842# CONFIG_SENSORS_PCF8591 is not set
818# CONFIG_SENSORS_SIS5595 is not set 843# CONFIG_SENSORS_SIS5595 is not set
819# CONFIG_SENSORS_DME1737 is not set 844# CONFIG_SENSORS_DME1737 is not set
820# CONFIG_SENSORS_SMSC47M1 is not set 845# CONFIG_SENSORS_SMSC47M1 is not set
@@ -959,11 +984,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
959# CONFIG_USB_TMC is not set 984# CONFIG_USB_TMC is not set
960 985
961# 986#
962# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 987# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
963# 988#
964 989
965# 990#
966# see USB_STORAGE Help for more information 991# also be needed; see USB_STORAGE Help for more info
967# 992#
968# CONFIG_USB_LIBUSUAL is not set 993# CONFIG_USB_LIBUSUAL is not set
969 994
@@ -991,7 +1016,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
991# CONFIG_USB_LED is not set 1016# CONFIG_USB_LED is not set
992# CONFIG_USB_CYPRESS_CY7C63 is not set 1017# CONFIG_USB_CYPRESS_CY7C63 is not set
993# CONFIG_USB_CYTHERM is not set 1018# CONFIG_USB_CYTHERM is not set
994# CONFIG_USB_PHIDGET is not set
995# CONFIG_USB_IDMOUSE is not set 1019# CONFIG_USB_IDMOUSE is not set
996# CONFIG_USB_FTDI_ELAN is not set 1020# CONFIG_USB_FTDI_ELAN is not set
997# CONFIG_USB_APPLEDISPLAY is not set 1021# CONFIG_USB_APPLEDISPLAY is not set
@@ -1006,6 +1030,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1006# 1030#
1007# OTG and related infrastructure 1031# OTG and related infrastructure
1008# 1032#
1033# CONFIG_NOP_USB_XCEIV is not set
1009# CONFIG_UWB is not set 1034# CONFIG_UWB is not set
1010# CONFIG_MMC is not set 1035# CONFIG_MMC is not set
1011# CONFIG_MEMSTICK is not set 1036# CONFIG_MEMSTICK is not set
@@ -1067,8 +1092,9 @@ CONFIG_RTC_DRV_DS1374=y
1067# 1092#
1068# on-CPU RTC drivers 1093# on-CPU RTC drivers
1069# 1094#
1070# CONFIG_RTC_DRV_PPC is not set 1095# CONFIG_RTC_DRV_GENERIC is not set
1071# CONFIG_DMADEVICES is not set 1096# CONFIG_DMADEVICES is not set
1097# CONFIG_AUXDISPLAY is not set
1072# CONFIG_UIO is not set 1098# CONFIG_UIO is not set
1073# CONFIG_STAGING is not set 1099# CONFIG_STAGING is not set
1074 1100
@@ -1079,6 +1105,7 @@ CONFIG_EXT2_FS=y
1079# CONFIG_EXT2_FS_XATTR is not set 1105# CONFIG_EXT2_FS_XATTR is not set
1080# CONFIG_EXT2_FS_XIP is not set 1106# CONFIG_EXT2_FS_XIP is not set
1081CONFIG_EXT3_FS=y 1107CONFIG_EXT3_FS=y
1108# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1082CONFIG_EXT3_FS_XATTR=y 1109CONFIG_EXT3_FS_XATTR=y
1083# CONFIG_EXT3_FS_POSIX_ACL is not set 1110# CONFIG_EXT3_FS_POSIX_ACL is not set
1084# CONFIG_EXT3_FS_SECURITY is not set 1111# CONFIG_EXT3_FS_SECURITY is not set
@@ -1101,6 +1128,11 @@ CONFIG_INOTIFY_USER=y
1101# CONFIG_FUSE_FS is not set 1128# CONFIG_FUSE_FS is not set
1102 1129
1103# 1130#
1131# Caches
1132#
1133# CONFIG_FSCACHE is not set
1134
1135#
1104# CD-ROM/DVD Filesystems 1136# CD-ROM/DVD Filesystems
1105# 1137#
1106# CONFIG_ISO9660_FS is not set 1138# CONFIG_ISO9660_FS is not set
@@ -1154,6 +1186,7 @@ CONFIG_JFFS2_RTIME=y
1154# CONFIG_ROMFS_FS is not set 1186# CONFIG_ROMFS_FS is not set
1155# CONFIG_SYSV_FS is not set 1187# CONFIG_SYSV_FS is not set
1156# CONFIG_UFS_FS is not set 1188# CONFIG_UFS_FS is not set
1189# CONFIG_NILFS2_FS is not set
1157CONFIG_NETWORK_FILESYSTEMS=y 1190CONFIG_NETWORK_FILESYSTEMS=y
1158CONFIG_NFS_FS=y 1191CONFIG_NFS_FS=y
1159CONFIG_NFS_V3=y 1192CONFIG_NFS_V3=y
@@ -1166,7 +1199,6 @@ CONFIG_LOCKD_V4=y
1166CONFIG_NFS_COMMON=y 1199CONFIG_NFS_COMMON=y
1167CONFIG_SUNRPC=y 1200CONFIG_SUNRPC=y
1168CONFIG_SUNRPC_GSS=y 1201CONFIG_SUNRPC_GSS=y
1169# CONFIG_SUNRPC_REGISTER_V4 is not set
1170CONFIG_RPCSEC_GSS_KRB5=y 1202CONFIG_RPCSEC_GSS_KRB5=y
1171# CONFIG_RPCSEC_GSS_SPKM3 is not set 1203# CONFIG_RPCSEC_GSS_SPKM3 is not set
1172# CONFIG_SMB_FS is not set 1204# CONFIG_SMB_FS is not set
@@ -1233,6 +1265,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1233# CONFIG_NLS_KOI8_U is not set 1265# CONFIG_NLS_KOI8_U is not set
1234# CONFIG_NLS_UTF8 is not set 1266# CONFIG_NLS_UTF8 is not set
1235# CONFIG_DLM is not set 1267# CONFIG_DLM is not set
1268# CONFIG_BINARY_PRINTF is not set
1236 1269
1237# 1270#
1238# Library routines 1271# Library routines
@@ -1248,11 +1281,12 @@ CONFIG_CRC32=y
1248# CONFIG_LIBCRC32C is not set 1281# CONFIG_LIBCRC32C is not set
1249CONFIG_ZLIB_INFLATE=y 1282CONFIG_ZLIB_INFLATE=y
1250CONFIG_ZLIB_DEFLATE=y 1283CONFIG_ZLIB_DEFLATE=y
1251CONFIG_PLIST=y 1284CONFIG_DECOMPRESS_GZIP=y
1252CONFIG_HAS_IOMEM=y 1285CONFIG_HAS_IOMEM=y
1253CONFIG_HAS_IOPORT=y 1286CONFIG_HAS_IOPORT=y
1254CONFIG_HAS_DMA=y 1287CONFIG_HAS_DMA=y
1255CONFIG_HAVE_LMB=y 1288CONFIG_HAVE_LMB=y
1289CONFIG_NLATTR=y
1256 1290
1257# 1291#
1258# Kernel hacking 1292# Kernel hacking
@@ -1274,13 +1308,24 @@ CONFIG_FRAME_WARN=1024
1274# CONFIG_LATENCYTOP is not set 1308# CONFIG_LATENCYTOP is not set
1275# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1309# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1276CONFIG_HAVE_FUNCTION_TRACER=y 1310CONFIG_HAVE_FUNCTION_TRACER=y
1311CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1277CONFIG_HAVE_DYNAMIC_FTRACE=y 1312CONFIG_HAVE_DYNAMIC_FTRACE=y
1278CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1313CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1314CONFIG_TRACING_SUPPORT=y
1279 1315
1280# 1316#
1281# Tracers 1317# Tracers
1282# 1318#
1283# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1319# CONFIG_FUNCTION_TRACER is not set
1320# CONFIG_SCHED_TRACER is not set
1321# CONFIG_CONTEXT_SWITCH_TRACER is not set
1322# CONFIG_EVENT_TRACER is not set
1323# CONFIG_BOOT_TRACER is not set
1324# CONFIG_TRACE_BRANCH_PROFILING is not set
1325# CONFIG_STACK_TRACER is not set
1326# CONFIG_KMEMTRACE is not set
1327# CONFIG_WORKQUEUE_TRACER is not set
1328# CONFIG_BLK_DEV_IO_TRACE is not set
1284# CONFIG_SAMPLES is not set 1329# CONFIG_SAMPLES is not set
1285CONFIG_HAVE_ARCH_KGDB=y 1330CONFIG_HAVE_ARCH_KGDB=y
1286CONFIG_PRINT_STACK_DEPTH=64 1331CONFIG_PRINT_STACK_DEPTH=64
@@ -1309,10 +1354,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1309CONFIG_CRYPTO_HASH=y 1354CONFIG_CRYPTO_HASH=y
1310CONFIG_CRYPTO_HASH2=y 1355CONFIG_CRYPTO_HASH2=y
1311CONFIG_CRYPTO_RNG2=y 1356CONFIG_CRYPTO_RNG2=y
1357CONFIG_CRYPTO_PCOMP=y
1312CONFIG_CRYPTO_MANAGER=y 1358CONFIG_CRYPTO_MANAGER=y
1313CONFIG_CRYPTO_MANAGER2=y 1359CONFIG_CRYPTO_MANAGER2=y
1314# CONFIG_CRYPTO_GF128MUL is not set 1360# CONFIG_CRYPTO_GF128MUL is not set
1315# CONFIG_CRYPTO_NULL is not set 1361# CONFIG_CRYPTO_NULL is not set
1362CONFIG_CRYPTO_WORKQUEUE=y
1316# CONFIG_CRYPTO_CRYPTD is not set 1363# CONFIG_CRYPTO_CRYPTD is not set
1317# CONFIG_CRYPTO_AUTHENC is not set 1364# CONFIG_CRYPTO_AUTHENC is not set
1318# CONFIG_CRYPTO_TEST is not set 1365# CONFIG_CRYPTO_TEST is not set
@@ -1381,6 +1428,7 @@ CONFIG_CRYPTO_DES=y
1381# Compression 1428# Compression
1382# 1429#
1383# CONFIG_CRYPTO_DEFLATE is not set 1430# CONFIG_CRYPTO_DEFLATE is not set
1431# CONFIG_CRYPTO_ZLIB is not set
1384# CONFIG_CRYPTO_LZO is not set 1432# CONFIG_CRYPTO_LZO is not set
1385 1433
1386# 1434#
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 409d017621a8..c5c0fe71a438 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:48 2009 4# Wed May 13 17:22:06 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC831x_RDB=y
183CONFIG_PPC_MPC831x=y 192CONFIG_PPC_MPC831x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -481,7 +495,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
481# LPDDR flash memory drivers 495# LPDDR flash memory drivers
482# 496#
483# CONFIG_MTD_LPDDR is not set 497# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485 498
486# 499#
487# UBI - Unsorted block images 500# UBI - Unsorted block images
@@ -512,13 +525,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
512# CONFIG_BLK_DEV_HD is not set 525# CONFIG_BLK_DEV_HD is not set
513CONFIG_MISC_DEVICES=y 526CONFIG_MISC_DEVICES=y
514# CONFIG_PHANTOM is not set 527# CONFIG_PHANTOM is not set
515# CONFIG_EEPROM_93CX6 is not set
516# CONFIG_SGI_IOC4 is not set 528# CONFIG_SGI_IOC4 is not set
517# CONFIG_TIFM_CORE is not set 529# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set 530# CONFIG_ICS932S401 is not set
519# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_HP_ILO is not set 532# CONFIG_HP_ILO is not set
533# CONFIG_ISL29003 is not set
521# CONFIG_C2PORT is not set 534# CONFIG_C2PORT is not set
535
536#
537# EEPROM support
538#
539# CONFIG_EEPROM_AT24 is not set
540# CONFIG_EEPROM_AT25 is not set
541# CONFIG_EEPROM_LEGACY is not set
542# CONFIG_EEPROM_93CX6 is not set
522CONFIG_HAVE_IDE=y 543CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 544# CONFIG_IDE is not set
524 545
@@ -576,9 +597,11 @@ CONFIG_SCSI_LOWLEVEL=y
576# CONFIG_MEGARAID_NEWGEN is not set 597# CONFIG_MEGARAID_NEWGEN is not set
577# CONFIG_MEGARAID_LEGACY is not set 598# CONFIG_MEGARAID_LEGACY is not set
578# CONFIG_MEGARAID_SAS is not set 599# CONFIG_MEGARAID_SAS is not set
600# CONFIG_SCSI_MPT2SAS is not set
579# CONFIG_SCSI_HPTIOP is not set 601# CONFIG_SCSI_HPTIOP is not set
580# CONFIG_SCSI_BUSLOGIC is not set 602# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set 603# CONFIG_LIBFC is not set
604# CONFIG_LIBFCOE is not set
582# CONFIG_FCOE is not set 605# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 606# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 607# CONFIG_SCSI_EATA is not set
@@ -600,6 +623,7 @@ CONFIG_SCSI_LOWLEVEL=y
600# CONFIG_SCSI_DEBUG is not set 623# CONFIG_SCSI_DEBUG is not set
601# CONFIG_SCSI_SRP is not set 624# CONFIG_SCSI_SRP is not set
602# CONFIG_SCSI_DH is not set 625# CONFIG_SCSI_DH is not set
626# CONFIG_SCSI_OSD_INITIATOR is not set
603# CONFIG_ATA is not set 627# CONFIG_ATA is not set
604CONFIG_MD=y 628CONFIG_MD=y
605CONFIG_BLK_DEV_MD=y 629CONFIG_BLK_DEV_MD=y
@@ -626,6 +650,7 @@ CONFIG_MD_RAID1=y
626# CONFIG_I2O is not set 650# CONFIG_I2O is not set
627# CONFIG_MACINTOSH_DRIVERS is not set 651# CONFIG_MACINTOSH_DRIVERS is not set
628CONFIG_NETDEVICES=y 652CONFIG_NETDEVICES=y
653CONFIG_COMPAT_NET_DEV_OPS=y
629# CONFIG_DUMMY is not set 654# CONFIG_DUMMY is not set
630# CONFIG_BONDING is not set 655# CONFIG_BONDING is not set
631# CONFIG_MACVLAN is not set 656# CONFIG_MACVLAN is not set
@@ -660,6 +685,8 @@ CONFIG_MII=y
660# CONFIG_CASSINI is not set 685# CONFIG_CASSINI is not set
661# CONFIG_NET_VENDOR_3COM is not set 686# CONFIG_NET_VENDOR_3COM is not set
662# CONFIG_ENC28J60 is not set 687# CONFIG_ENC28J60 is not set
688# CONFIG_ETHOC is not set
689# CONFIG_DNET is not set
663# CONFIG_NET_TULIP is not set 690# CONFIG_NET_TULIP is not set
664# CONFIG_HP100 is not set 691# CONFIG_HP100 is not set
665# CONFIG_IBM_NEW_EMAC_ZMII is not set 692# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -697,6 +724,7 @@ CONFIG_NETDEV_1000=y
697# CONFIG_E1000E is not set 724# CONFIG_E1000E is not set
698# CONFIG_IP1000 is not set 725# CONFIG_IP1000 is not set
699# CONFIG_IGB is not set 726# CONFIG_IGB is not set
727# CONFIG_IGBVF is not set
700# CONFIG_NS83820 is not set 728# CONFIG_NS83820 is not set
701# CONFIG_HAMACHI is not set 729# CONFIG_HAMACHI is not set
702# CONFIG_YELLOWFIN is not set 730# CONFIG_YELLOWFIN is not set
@@ -707,11 +735,12 @@ CONFIG_NETDEV_1000=y
707# CONFIG_VIA_VELOCITY is not set 735# CONFIG_VIA_VELOCITY is not set
708# CONFIG_TIGON3 is not set 736# CONFIG_TIGON3 is not set
709# CONFIG_BNX2 is not set 737# CONFIG_BNX2 is not set
738CONFIG_FSL_PQ_MDIO=y
710CONFIG_GIANFAR=y 739CONFIG_GIANFAR=y
711# CONFIG_MV643XX_ETH is not set
712# CONFIG_QLA3XXX is not set 740# CONFIG_QLA3XXX is not set
713# CONFIG_ATL1 is not set 741# CONFIG_ATL1 is not set
714# CONFIG_ATL1E is not set 742# CONFIG_ATL1E is not set
743# CONFIG_ATL1C is not set
715# CONFIG_JME is not set 744# CONFIG_JME is not set
716CONFIG_NETDEV_10000=y 745CONFIG_NETDEV_10000=y
717# CONFIG_CHELSIO_T1 is not set 746# CONFIG_CHELSIO_T1 is not set
@@ -721,6 +750,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
721# CONFIG_IXGBE is not set 750# CONFIG_IXGBE is not set
722# CONFIG_IXGB is not set 751# CONFIG_IXGB is not set
723# CONFIG_S2IO is not set 752# CONFIG_S2IO is not set
753# CONFIG_VXGE is not set
724# CONFIG_MYRI10GE is not set 754# CONFIG_MYRI10GE is not set
725# CONFIG_NETXEN_NIC is not set 755# CONFIG_NETXEN_NIC is not set
726# CONFIG_NIU is not set 756# CONFIG_NIU is not set
@@ -730,6 +760,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
730# CONFIG_BNX2X is not set 760# CONFIG_BNX2X is not set
731# CONFIG_QLGE is not set 761# CONFIG_QLGE is not set
732# CONFIG_SFC is not set 762# CONFIG_SFC is not set
763# CONFIG_BE2NET is not set
733# CONFIG_TR is not set 764# CONFIG_TR is not set
734 765
735# 766#
@@ -737,7 +768,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
737# 768#
738# CONFIG_WLAN_PRE80211 is not set 769# CONFIG_WLAN_PRE80211 is not set
739# CONFIG_WLAN_80211 is not set 770# CONFIG_WLAN_80211 is not set
740# CONFIG_IWLWIFI_LEDS is not set
741 771
742# 772#
743# Enable WiMAX (Networking options) to see the WiMAX drivers 773# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -815,6 +845,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
815# 845#
816# Non-8250 serial port support 846# Non-8250 serial port support
817# 847#
848# CONFIG_SERIAL_MAX3100 is not set
818# CONFIG_SERIAL_UARTLITE is not set 849# CONFIG_SERIAL_UARTLITE is not set
819CONFIG_SERIAL_CORE=y 850CONFIG_SERIAL_CORE=y
820CONFIG_SERIAL_CORE_CONSOLE=y 851CONFIG_SERIAL_CORE_CONSOLE=y
@@ -827,6 +858,7 @@ CONFIG_LEGACY_PTY_COUNT=256
827# CONFIG_HVC_UDBG is not set 858# CONFIG_HVC_UDBG is not set
828# CONFIG_IPMI_HANDLER is not set 859# CONFIG_IPMI_HANDLER is not set
829CONFIG_HW_RANDOM=y 860CONFIG_HW_RANDOM=y
861# CONFIG_HW_RANDOM_TIMERIOMEM is not set
830# CONFIG_NVRAM is not set 862# CONFIG_NVRAM is not set
831# CONFIG_R3964 is not set 863# CONFIG_R3964 is not set
832# CONFIG_APPLICOM is not set 864# CONFIG_APPLICOM is not set
@@ -889,12 +921,9 @@ CONFIG_I2C_MPC=y
889# Miscellaneous I2C Chip support 921# Miscellaneous I2C Chip support
890# 922#
891# CONFIG_DS1682 is not set 923# CONFIG_DS1682 is not set
892# CONFIG_EEPROM_AT24 is not set
893# CONFIG_EEPROM_LEGACY is not set
894# CONFIG_SENSORS_PCF8574 is not set 924# CONFIG_SENSORS_PCF8574 is not set
895# CONFIG_PCF8575 is not set 925# CONFIG_PCF8575 is not set
896# CONFIG_SENSORS_PCA9539 is not set 926# CONFIG_SENSORS_PCA9539 is not set
897# CONFIG_SENSORS_PCF8591 is not set
898# CONFIG_SENSORS_MAX6875 is not set 927# CONFIG_SENSORS_MAX6875 is not set
899# CONFIG_SENSORS_TSL2550 is not set 928# CONFIG_SENSORS_TSL2550 is not set
900# CONFIG_I2C_DEBUG_CORE is not set 929# CONFIG_I2C_DEBUG_CORE is not set
@@ -914,7 +943,6 @@ CONFIG_SPI_MPC83xx=y
914# 943#
915# SPI Protocol Masters 944# SPI Protocol Masters
916# 945#
917# CONFIG_EEPROM_AT25 is not set
918# CONFIG_SPI_SPIDEV is not set 946# CONFIG_SPI_SPIDEV is not set
919# CONFIG_SPI_TLE62X0 is not set 947# CONFIG_SPI_TLE62X0 is not set
920CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 948CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -942,6 +970,7 @@ CONFIG_HWMON=y
942# CONFIG_SENSORS_F71805F is not set 970# CONFIG_SENSORS_F71805F is not set
943# CONFIG_SENSORS_F71882FG is not set 971# CONFIG_SENSORS_F71882FG is not set
944# CONFIG_SENSORS_F75375S is not set 972# CONFIG_SENSORS_F75375S is not set
973# CONFIG_SENSORS_G760A is not set
945# CONFIG_SENSORS_GL518SM is not set 974# CONFIG_SENSORS_GL518SM is not set
946# CONFIG_SENSORS_GL520SM is not set 975# CONFIG_SENSORS_GL520SM is not set
947# CONFIG_SENSORS_IT87 is not set 976# CONFIG_SENSORS_IT87 is not set
@@ -957,12 +986,15 @@ CONFIG_HWMON=y
957# CONFIG_SENSORS_LM90 is not set 986# CONFIG_SENSORS_LM90 is not set
958# CONFIG_SENSORS_LM92 is not set 987# CONFIG_SENSORS_LM92 is not set
959# CONFIG_SENSORS_LM93 is not set 988# CONFIG_SENSORS_LM93 is not set
989# CONFIG_SENSORS_LTC4215 is not set
960# CONFIG_SENSORS_LTC4245 is not set 990# CONFIG_SENSORS_LTC4245 is not set
991# CONFIG_SENSORS_LM95241 is not set
961# CONFIG_SENSORS_MAX1111 is not set 992# CONFIG_SENSORS_MAX1111 is not set
962# CONFIG_SENSORS_MAX1619 is not set 993# CONFIG_SENSORS_MAX1619 is not set
963# CONFIG_SENSORS_MAX6650 is not set 994# CONFIG_SENSORS_MAX6650 is not set
964# CONFIG_SENSORS_PC87360 is not set 995# CONFIG_SENSORS_PC87360 is not set
965# CONFIG_SENSORS_PC87427 is not set 996# CONFIG_SENSORS_PC87427 is not set
997# CONFIG_SENSORS_PCF8591 is not set
966# CONFIG_SENSORS_SIS5595 is not set 998# CONFIG_SENSORS_SIS5595 is not set
967# CONFIG_SENSORS_DME1737 is not set 999# CONFIG_SENSORS_DME1737 is not set
968# CONFIG_SENSORS_SMSC47M1 is not set 1000# CONFIG_SENSORS_SMSC47M1 is not set
@@ -981,6 +1013,7 @@ CONFIG_HWMON=y
981# CONFIG_SENSORS_W83L786NG is not set 1013# CONFIG_SENSORS_W83L786NG is not set
982# CONFIG_SENSORS_W83627HF is not set 1014# CONFIG_SENSORS_W83627HF is not set
983# CONFIG_SENSORS_W83627EHF is not set 1015# CONFIG_SENSORS_W83627EHF is not set
1016# CONFIG_SENSORS_LIS3_SPI is not set
984# CONFIG_HWMON_DEBUG_CHIP is not set 1017# CONFIG_HWMON_DEBUG_CHIP is not set
985# CONFIG_THERMAL is not set 1018# CONFIG_THERMAL is not set
986# CONFIG_THERMAL_HWMON is not set 1019# CONFIG_THERMAL_HWMON is not set
@@ -1077,7 +1110,6 @@ CONFIG_HID=y
1077# 1110#
1078# Special HID drivers 1111# Special HID drivers
1079# 1112#
1080CONFIG_HID_COMPAT=y
1081CONFIG_USB_SUPPORT=y 1113CONFIG_USB_SUPPORT=y
1082CONFIG_USB_ARCH_HAS_HCD=y 1114CONFIG_USB_ARCH_HAS_HCD=y
1083CONFIG_USB_ARCH_HAS_OHCI=y 1115CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1135,11 +1167,11 @@ CONFIG_USB_UHCI_HCD=y
1135# CONFIG_USB_TMC is not set 1167# CONFIG_USB_TMC is not set
1136 1168
1137# 1169#
1138# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1170# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1139# 1171#
1140 1172
1141# 1173#
1142# see USB_STORAGE Help for more information 1174# also be needed; see USB_STORAGE Help for more info
1143# 1175#
1144CONFIG_USB_STORAGE=y 1176CONFIG_USB_STORAGE=y
1145# CONFIG_USB_STORAGE_DEBUG is not set 1177# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1181,7 +1213,6 @@ CONFIG_USB_STORAGE=y
1181# CONFIG_USB_LED is not set 1213# CONFIG_USB_LED is not set
1182# CONFIG_USB_CYPRESS_CY7C63 is not set 1214# CONFIG_USB_CYPRESS_CY7C63 is not set
1183# CONFIG_USB_CYTHERM is not set 1215# CONFIG_USB_CYTHERM is not set
1184# CONFIG_USB_PHIDGET is not set
1185# CONFIG_USB_IDMOUSE is not set 1216# CONFIG_USB_IDMOUSE is not set
1186# CONFIG_USB_FTDI_ELAN is not set 1217# CONFIG_USB_FTDI_ELAN is not set
1187# CONFIG_USB_APPLEDISPLAY is not set 1218# CONFIG_USB_APPLEDISPLAY is not set
@@ -1228,6 +1259,7 @@ CONFIG_USB_ETH_RNDIS=y
1228# 1259#
1229# OTG and related infrastructure 1260# OTG and related infrastructure
1230# 1261#
1262# CONFIG_NOP_USB_XCEIV is not set
1231# CONFIG_UWB is not set 1263# CONFIG_UWB is not set
1232# CONFIG_MMC is not set 1264# CONFIG_MMC is not set
1233# CONFIG_MEMSTICK is not set 1265# CONFIG_MEMSTICK is not set
@@ -1296,8 +1328,9 @@ CONFIG_RTC_DRV_DS1307=y
1296# 1328#
1297# on-CPU RTC drivers 1329# on-CPU RTC drivers
1298# 1330#
1299# CONFIG_RTC_DRV_PPC is not set 1331# CONFIG_RTC_DRV_GENERIC is not set
1300# CONFIG_DMADEVICES is not set 1332# CONFIG_DMADEVICES is not set
1333# CONFIG_AUXDISPLAY is not set
1301# CONFIG_UIO is not set 1334# CONFIG_UIO is not set
1302# CONFIG_STAGING is not set 1335# CONFIG_STAGING is not set
1303 1336
@@ -1308,6 +1341,7 @@ CONFIG_EXT2_FS=y
1308# CONFIG_EXT2_FS_XATTR is not set 1341# CONFIG_EXT2_FS_XATTR is not set
1309# CONFIG_EXT2_FS_XIP is not set 1342# CONFIG_EXT2_FS_XIP is not set
1310CONFIG_EXT3_FS=y 1343CONFIG_EXT3_FS=y
1344# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1311CONFIG_EXT3_FS_XATTR=y 1345CONFIG_EXT3_FS_XATTR=y
1312# CONFIG_EXT3_FS_POSIX_ACL is not set 1346# CONFIG_EXT3_FS_POSIX_ACL is not set
1313# CONFIG_EXT3_FS_SECURITY is not set 1347# CONFIG_EXT3_FS_SECURITY is not set
@@ -1330,6 +1364,11 @@ CONFIG_INOTIFY_USER=y
1330# CONFIG_FUSE_FS is not set 1364# CONFIG_FUSE_FS is not set
1331 1365
1332# 1366#
1367# Caches
1368#
1369# CONFIG_FSCACHE is not set
1370
1371#
1333# CD-ROM/DVD Filesystems 1372# CD-ROM/DVD Filesystems
1334# 1373#
1335# CONFIG_ISO9660_FS is not set 1374# CONFIG_ISO9660_FS is not set
@@ -1383,6 +1422,7 @@ CONFIG_JFFS2_RTIME=y
1383# CONFIG_ROMFS_FS is not set 1422# CONFIG_ROMFS_FS is not set
1384# CONFIG_SYSV_FS is not set 1423# CONFIG_SYSV_FS is not set
1385# CONFIG_UFS_FS is not set 1424# CONFIG_UFS_FS is not set
1425# CONFIG_NILFS2_FS is not set
1386CONFIG_NETWORK_FILESYSTEMS=y 1426CONFIG_NETWORK_FILESYSTEMS=y
1387CONFIG_NFS_FS=y 1427CONFIG_NFS_FS=y
1388CONFIG_NFS_V3=y 1428CONFIG_NFS_V3=y
@@ -1395,7 +1435,6 @@ CONFIG_LOCKD_V4=y
1395CONFIG_NFS_COMMON=y 1435CONFIG_NFS_COMMON=y
1396CONFIG_SUNRPC=y 1436CONFIG_SUNRPC=y
1397CONFIG_SUNRPC_GSS=y 1437CONFIG_SUNRPC_GSS=y
1398# CONFIG_SUNRPC_REGISTER_V4 is not set
1399CONFIG_RPCSEC_GSS_KRB5=y 1438CONFIG_RPCSEC_GSS_KRB5=y
1400# CONFIG_RPCSEC_GSS_SPKM3 is not set 1439# CONFIG_RPCSEC_GSS_SPKM3 is not set
1401# CONFIG_SMB_FS is not set 1440# CONFIG_SMB_FS is not set
@@ -1427,6 +1466,7 @@ CONFIG_MSDOS_PARTITION=y
1427# CONFIG_SYSV68_PARTITION is not set 1466# CONFIG_SYSV68_PARTITION is not set
1428# CONFIG_NLS is not set 1467# CONFIG_NLS is not set
1429# CONFIG_DLM is not set 1468# CONFIG_DLM is not set
1469# CONFIG_BINARY_PRINTF is not set
1430 1470
1431# 1471#
1432# Library routines 1472# Library routines
@@ -1442,11 +1482,12 @@ CONFIG_CRC32=y
1442# CONFIG_LIBCRC32C is not set 1482# CONFIG_LIBCRC32C is not set
1443CONFIG_ZLIB_INFLATE=y 1483CONFIG_ZLIB_INFLATE=y
1444CONFIG_ZLIB_DEFLATE=y 1484CONFIG_ZLIB_DEFLATE=y
1445CONFIG_PLIST=y 1485CONFIG_DECOMPRESS_GZIP=y
1446CONFIG_HAS_IOMEM=y 1486CONFIG_HAS_IOMEM=y
1447CONFIG_HAS_IOPORT=y 1487CONFIG_HAS_IOPORT=y
1448CONFIG_HAS_DMA=y 1488CONFIG_HAS_DMA=y
1449CONFIG_HAVE_LMB=y 1489CONFIG_HAVE_LMB=y
1490CONFIG_NLATTR=y
1450 1491
1451# 1492#
1452# Kernel hacking 1493# Kernel hacking
@@ -1464,6 +1505,9 @@ CONFIG_DEBUG_KERNEL=y
1464CONFIG_DETECT_SOFTLOCKUP=y 1505CONFIG_DETECT_SOFTLOCKUP=y
1465# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1506# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1466CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1507CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1508CONFIG_DETECT_HUNG_TASK=y
1509# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1510CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1467CONFIG_SCHED_DEBUG=y 1511CONFIG_SCHED_DEBUG=y
1468# CONFIG_SCHEDSTATS is not set 1512# CONFIG_SCHEDSTATS is not set
1469# CONFIG_TIMER_STATS is not set 1513# CONFIG_TIMER_STATS is not set
@@ -1493,9 +1537,12 @@ CONFIG_SCHED_DEBUG=y
1493# CONFIG_FAULT_INJECTION is not set 1537# CONFIG_FAULT_INJECTION is not set
1494# CONFIG_LATENCYTOP is not set 1538# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y 1539CONFIG_SYSCTL_SYSCALL_CHECK=y
1540# CONFIG_DEBUG_PAGEALLOC is not set
1496CONFIG_HAVE_FUNCTION_TRACER=y 1541CONFIG_HAVE_FUNCTION_TRACER=y
1542CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y 1543CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1544CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1545CONFIG_TRACING_SUPPORT=y
1499 1546
1500# 1547#
1501# Tracers 1548# Tracers
@@ -1503,17 +1550,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1503# CONFIG_FUNCTION_TRACER is not set 1550# CONFIG_FUNCTION_TRACER is not set
1504# CONFIG_SCHED_TRACER is not set 1551# CONFIG_SCHED_TRACER is not set
1505# CONFIG_CONTEXT_SWITCH_TRACER is not set 1552# CONFIG_CONTEXT_SWITCH_TRACER is not set
1553# CONFIG_EVENT_TRACER is not set
1506# CONFIG_BOOT_TRACER is not set 1554# CONFIG_BOOT_TRACER is not set
1507# CONFIG_TRACE_BRANCH_PROFILING is not set 1555# CONFIG_TRACE_BRANCH_PROFILING is not set
1508# CONFIG_STACK_TRACER is not set 1556# CONFIG_STACK_TRACER is not set
1509# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1557# CONFIG_KMEMTRACE is not set
1558# CONFIG_WORKQUEUE_TRACER is not set
1559# CONFIG_BLK_DEV_IO_TRACE is not set
1510# CONFIG_SAMPLES is not set 1560# CONFIG_SAMPLES is not set
1511CONFIG_HAVE_ARCH_KGDB=y 1561CONFIG_HAVE_ARCH_KGDB=y
1512# CONFIG_KGDB is not set 1562# CONFIG_KGDB is not set
1513CONFIG_PRINT_STACK_DEPTH=64 1563CONFIG_PRINT_STACK_DEPTH=64
1514# CONFIG_DEBUG_STACKOVERFLOW is not set 1564# CONFIG_DEBUG_STACKOVERFLOW is not set
1515# CONFIG_DEBUG_STACK_USAGE is not set 1565# CONFIG_DEBUG_STACK_USAGE is not set
1516# CONFIG_DEBUG_PAGEALLOC is not set
1517# CONFIG_CODE_PATCHING_SELFTEST is not set 1566# CONFIG_CODE_PATCHING_SELFTEST is not set
1518# CONFIG_FTR_FIXUP_SELFTEST is not set 1567# CONFIG_FTR_FIXUP_SELFTEST is not set
1519# CONFIG_MSI_BITMAP_SELFTEST is not set 1568# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1544,10 +1593,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1544CONFIG_CRYPTO_HASH=y 1593CONFIG_CRYPTO_HASH=y
1545CONFIG_CRYPTO_HASH2=y 1594CONFIG_CRYPTO_HASH2=y
1546CONFIG_CRYPTO_RNG2=y 1595CONFIG_CRYPTO_RNG2=y
1596CONFIG_CRYPTO_PCOMP=y
1547CONFIG_CRYPTO_MANAGER=y 1597CONFIG_CRYPTO_MANAGER=y
1548CONFIG_CRYPTO_MANAGER2=y 1598CONFIG_CRYPTO_MANAGER2=y
1549# CONFIG_CRYPTO_GF128MUL is not set 1599# CONFIG_CRYPTO_GF128MUL is not set
1550# CONFIG_CRYPTO_NULL is not set 1600# CONFIG_CRYPTO_NULL is not set
1601CONFIG_CRYPTO_WORKQUEUE=y
1551# CONFIG_CRYPTO_CRYPTD is not set 1602# CONFIG_CRYPTO_CRYPTD is not set
1552# CONFIG_CRYPTO_AUTHENC is not set 1603# CONFIG_CRYPTO_AUTHENC is not set
1553# CONFIG_CRYPTO_TEST is not set 1604# CONFIG_CRYPTO_TEST is not set
@@ -1616,6 +1667,7 @@ CONFIG_CRYPTO_DES=y
1616# Compression 1667# Compression
1617# 1668#
1618# CONFIG_CRYPTO_DEFLATE is not set 1669# CONFIG_CRYPTO_DEFLATE is not set
1670# CONFIG_CRYPTO_ZLIB is not set
1619# CONFIG_CRYPTO_LZO is not set 1671# CONFIG_CRYPTO_LZO is not set
1620 1672
1621# 1673#
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 03db97c6cf33..af4952feba36 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:49 2009 4# Wed May 13 17:22:06 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC831x_RDB=y
183CONFIG_PPC_MPC831x=y 192CONFIG_PPC_MPC831x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -481,7 +495,6 @@ CONFIG_MTD_NAND_IDS=y
481# LPDDR flash memory drivers 495# LPDDR flash memory drivers
482# 496#
483# CONFIG_MTD_LPDDR is not set 497# CONFIG_MTD_LPDDR is not set
484# CONFIG_MTD_QINFO_PROBE is not set
485 498
486# 499#
487# UBI - Unsorted block images 500# UBI - Unsorted block images
@@ -512,13 +525,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
512# CONFIG_BLK_DEV_HD is not set 525# CONFIG_BLK_DEV_HD is not set
513CONFIG_MISC_DEVICES=y 526CONFIG_MISC_DEVICES=y
514# CONFIG_PHANTOM is not set 527# CONFIG_PHANTOM is not set
515# CONFIG_EEPROM_93CX6 is not set
516# CONFIG_SGI_IOC4 is not set 528# CONFIG_SGI_IOC4 is not set
517# CONFIG_TIFM_CORE is not set 529# CONFIG_TIFM_CORE is not set
518# CONFIG_ICS932S401 is not set 530# CONFIG_ICS932S401 is not set
519# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
520# CONFIG_HP_ILO is not set 532# CONFIG_HP_ILO is not set
533# CONFIG_ISL29003 is not set
521# CONFIG_C2PORT is not set 534# CONFIG_C2PORT is not set
535
536#
537# EEPROM support
538#
539# CONFIG_EEPROM_AT24 is not set
540# CONFIG_EEPROM_AT25 is not set
541# CONFIG_EEPROM_LEGACY is not set
542# CONFIG_EEPROM_93CX6 is not set
522CONFIG_HAVE_IDE=y 543CONFIG_HAVE_IDE=y
523# CONFIG_IDE is not set 544# CONFIG_IDE is not set
524 545
@@ -576,9 +597,11 @@ CONFIG_SCSI_LOWLEVEL=y
576# CONFIG_MEGARAID_NEWGEN is not set 597# CONFIG_MEGARAID_NEWGEN is not set
577# CONFIG_MEGARAID_LEGACY is not set 598# CONFIG_MEGARAID_LEGACY is not set
578# CONFIG_MEGARAID_SAS is not set 599# CONFIG_MEGARAID_SAS is not set
600# CONFIG_SCSI_MPT2SAS is not set
579# CONFIG_SCSI_HPTIOP is not set 601# CONFIG_SCSI_HPTIOP is not set
580# CONFIG_SCSI_BUSLOGIC is not set 602# CONFIG_SCSI_BUSLOGIC is not set
581# CONFIG_LIBFC is not set 603# CONFIG_LIBFC is not set
604# CONFIG_LIBFCOE is not set
582# CONFIG_FCOE is not set 605# CONFIG_FCOE is not set
583# CONFIG_SCSI_DMX3191D is not set 606# CONFIG_SCSI_DMX3191D is not set
584# CONFIG_SCSI_EATA is not set 607# CONFIG_SCSI_EATA is not set
@@ -601,6 +624,7 @@ CONFIG_SCSI_LOWLEVEL=y
601# CONFIG_SCSI_DEBUG is not set 624# CONFIG_SCSI_DEBUG is not set
602# CONFIG_SCSI_SRP is not set 625# CONFIG_SCSI_SRP is not set
603# CONFIG_SCSI_DH is not set 626# CONFIG_SCSI_DH is not set
627# CONFIG_SCSI_OSD_INITIATOR is not set
604CONFIG_ATA=y 628CONFIG_ATA=y
605# CONFIG_ATA_NONSTANDARD is not set 629# CONFIG_ATA_NONSTANDARD is not set
606CONFIG_SATA_PMP=y 630CONFIG_SATA_PMP=y
@@ -687,6 +711,7 @@ CONFIG_MD_RAID1=y
687# CONFIG_I2O is not set 711# CONFIG_I2O is not set
688# CONFIG_MACINTOSH_DRIVERS is not set 712# CONFIG_MACINTOSH_DRIVERS is not set
689CONFIG_NETDEVICES=y 713CONFIG_NETDEVICES=y
714CONFIG_COMPAT_NET_DEV_OPS=y
690# CONFIG_DUMMY is not set 715# CONFIG_DUMMY is not set
691# CONFIG_BONDING is not set 716# CONFIG_BONDING is not set
692# CONFIG_MACVLAN is not set 717# CONFIG_MACVLAN is not set
@@ -721,6 +746,8 @@ CONFIG_MII=y
721# CONFIG_CASSINI is not set 746# CONFIG_CASSINI is not set
722# CONFIG_NET_VENDOR_3COM is not set 747# CONFIG_NET_VENDOR_3COM is not set
723# CONFIG_ENC28J60 is not set 748# CONFIG_ENC28J60 is not set
749# CONFIG_ETHOC is not set
750# CONFIG_DNET is not set
724# CONFIG_NET_TULIP is not set 751# CONFIG_NET_TULIP is not set
725# CONFIG_HP100 is not set 752# CONFIG_HP100 is not set
726# CONFIG_IBM_NEW_EMAC_ZMII is not set 753# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -758,6 +785,7 @@ CONFIG_NETDEV_1000=y
758# CONFIG_E1000E is not set 785# CONFIG_E1000E is not set
759# CONFIG_IP1000 is not set 786# CONFIG_IP1000 is not set
760# CONFIG_IGB is not set 787# CONFIG_IGB is not set
788# CONFIG_IGBVF is not set
761# CONFIG_NS83820 is not set 789# CONFIG_NS83820 is not set
762# CONFIG_HAMACHI is not set 790# CONFIG_HAMACHI is not set
763# CONFIG_YELLOWFIN is not set 791# CONFIG_YELLOWFIN is not set
@@ -768,11 +796,12 @@ CONFIG_NETDEV_1000=y
768# CONFIG_VIA_VELOCITY is not set 796# CONFIG_VIA_VELOCITY is not set
769# CONFIG_TIGON3 is not set 797# CONFIG_TIGON3 is not set
770# CONFIG_BNX2 is not set 798# CONFIG_BNX2 is not set
799CONFIG_FSL_PQ_MDIO=y
771CONFIG_GIANFAR=y 800CONFIG_GIANFAR=y
772# CONFIG_MV643XX_ETH is not set
773# CONFIG_QLA3XXX is not set 801# CONFIG_QLA3XXX is not set
774# CONFIG_ATL1 is not set 802# CONFIG_ATL1 is not set
775# CONFIG_ATL1E is not set 803# CONFIG_ATL1E is not set
804# CONFIG_ATL1C is not set
776# CONFIG_JME is not set 805# CONFIG_JME is not set
777CONFIG_NETDEV_10000=y 806CONFIG_NETDEV_10000=y
778# CONFIG_CHELSIO_T1 is not set 807# CONFIG_CHELSIO_T1 is not set
@@ -782,6 +811,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
782# CONFIG_IXGBE is not set 811# CONFIG_IXGBE is not set
783# CONFIG_IXGB is not set 812# CONFIG_IXGB is not set
784# CONFIG_S2IO is not set 813# CONFIG_S2IO is not set
814# CONFIG_VXGE is not set
785# CONFIG_MYRI10GE is not set 815# CONFIG_MYRI10GE is not set
786# CONFIG_NETXEN_NIC is not set 816# CONFIG_NETXEN_NIC is not set
787# CONFIG_NIU is not set 817# CONFIG_NIU is not set
@@ -791,6 +821,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
791# CONFIG_BNX2X is not set 821# CONFIG_BNX2X is not set
792# CONFIG_QLGE is not set 822# CONFIG_QLGE is not set
793# CONFIG_SFC is not set 823# CONFIG_SFC is not set
824# CONFIG_BE2NET is not set
794# CONFIG_TR is not set 825# CONFIG_TR is not set
795 826
796# 827#
@@ -798,7 +829,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
798# 829#
799# CONFIG_WLAN_PRE80211 is not set 830# CONFIG_WLAN_PRE80211 is not set
800# CONFIG_WLAN_80211 is not set 831# CONFIG_WLAN_80211 is not set
801# CONFIG_IWLWIFI_LEDS is not set
802 832
803# 833#
804# Enable WiMAX (Networking options) to see the WiMAX drivers 834# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -876,6 +906,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
876# 906#
877# Non-8250 serial port support 907# Non-8250 serial port support
878# 908#
909# CONFIG_SERIAL_MAX3100 is not set
879# CONFIG_SERIAL_UARTLITE is not set 910# CONFIG_SERIAL_UARTLITE is not set
880CONFIG_SERIAL_CORE=y 911CONFIG_SERIAL_CORE=y
881CONFIG_SERIAL_CORE_CONSOLE=y 912CONFIG_SERIAL_CORE_CONSOLE=y
@@ -888,6 +919,7 @@ CONFIG_LEGACY_PTY_COUNT=256
888# CONFIG_HVC_UDBG is not set 919# CONFIG_HVC_UDBG is not set
889# CONFIG_IPMI_HANDLER is not set 920# CONFIG_IPMI_HANDLER is not set
890CONFIG_HW_RANDOM=y 921CONFIG_HW_RANDOM=y
922# CONFIG_HW_RANDOM_TIMERIOMEM is not set
891# CONFIG_NVRAM is not set 923# CONFIG_NVRAM is not set
892# CONFIG_R3964 is not set 924# CONFIG_R3964 is not set
893# CONFIG_APPLICOM is not set 925# CONFIG_APPLICOM is not set
@@ -950,12 +982,9 @@ CONFIG_I2C_MPC=y
950# Miscellaneous I2C Chip support 982# Miscellaneous I2C Chip support
951# 983#
952# CONFIG_DS1682 is not set 984# CONFIG_DS1682 is not set
953# CONFIG_EEPROM_AT24 is not set
954# CONFIG_EEPROM_LEGACY is not set
955# CONFIG_SENSORS_PCF8574 is not set 985# CONFIG_SENSORS_PCF8574 is not set
956# CONFIG_PCF8575 is not set 986# CONFIG_PCF8575 is not set
957# CONFIG_SENSORS_PCA9539 is not set 987# CONFIG_SENSORS_PCA9539 is not set
958# CONFIG_SENSORS_PCF8591 is not set
959# CONFIG_SENSORS_MAX6875 is not set 988# CONFIG_SENSORS_MAX6875 is not set
960# CONFIG_SENSORS_TSL2550 is not set 989# CONFIG_SENSORS_TSL2550 is not set
961# CONFIG_I2C_DEBUG_CORE is not set 990# CONFIG_I2C_DEBUG_CORE is not set
@@ -975,7 +1004,6 @@ CONFIG_SPI_MPC83xx=y
975# 1004#
976# SPI Protocol Masters 1005# SPI Protocol Masters
977# 1006#
978# CONFIG_EEPROM_AT25 is not set
979# CONFIG_SPI_SPIDEV is not set 1007# CONFIG_SPI_SPIDEV is not set
980# CONFIG_SPI_TLE62X0 is not set 1008# CONFIG_SPI_TLE62X0 is not set
981CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 1009CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -1003,6 +1031,7 @@ CONFIG_HWMON=y
1003# CONFIG_SENSORS_F71805F is not set 1031# CONFIG_SENSORS_F71805F is not set
1004# CONFIG_SENSORS_F71882FG is not set 1032# CONFIG_SENSORS_F71882FG is not set
1005# CONFIG_SENSORS_F75375S is not set 1033# CONFIG_SENSORS_F75375S is not set
1034# CONFIG_SENSORS_G760A is not set
1006# CONFIG_SENSORS_GL518SM is not set 1035# CONFIG_SENSORS_GL518SM is not set
1007# CONFIG_SENSORS_GL520SM is not set 1036# CONFIG_SENSORS_GL520SM is not set
1008# CONFIG_SENSORS_IT87 is not set 1037# CONFIG_SENSORS_IT87 is not set
@@ -1018,12 +1047,15 @@ CONFIG_HWMON=y
1018# CONFIG_SENSORS_LM90 is not set 1047# CONFIG_SENSORS_LM90 is not set
1019# CONFIG_SENSORS_LM92 is not set 1048# CONFIG_SENSORS_LM92 is not set
1020# CONFIG_SENSORS_LM93 is not set 1049# CONFIG_SENSORS_LM93 is not set
1050# CONFIG_SENSORS_LTC4215 is not set
1021# CONFIG_SENSORS_LTC4245 is not set 1051# CONFIG_SENSORS_LTC4245 is not set
1052# CONFIG_SENSORS_LM95241 is not set
1022# CONFIG_SENSORS_MAX1111 is not set 1053# CONFIG_SENSORS_MAX1111 is not set
1023# CONFIG_SENSORS_MAX1619 is not set 1054# CONFIG_SENSORS_MAX1619 is not set
1024# CONFIG_SENSORS_MAX6650 is not set 1055# CONFIG_SENSORS_MAX6650 is not set
1025# CONFIG_SENSORS_PC87360 is not set 1056# CONFIG_SENSORS_PC87360 is not set
1026# CONFIG_SENSORS_PC87427 is not set 1057# CONFIG_SENSORS_PC87427 is not set
1058# CONFIG_SENSORS_PCF8591 is not set
1027# CONFIG_SENSORS_SIS5595 is not set 1059# CONFIG_SENSORS_SIS5595 is not set
1028# CONFIG_SENSORS_DME1737 is not set 1060# CONFIG_SENSORS_DME1737 is not set
1029# CONFIG_SENSORS_SMSC47M1 is not set 1061# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1042,6 +1074,7 @@ CONFIG_HWMON=y
1042# CONFIG_SENSORS_W83L786NG is not set 1074# CONFIG_SENSORS_W83L786NG is not set
1043# CONFIG_SENSORS_W83627HF is not set 1075# CONFIG_SENSORS_W83627HF is not set
1044# CONFIG_SENSORS_W83627EHF is not set 1076# CONFIG_SENSORS_W83627EHF is not set
1077# CONFIG_SENSORS_LIS3_SPI is not set
1045# CONFIG_HWMON_DEBUG_CHIP is not set 1078# CONFIG_HWMON_DEBUG_CHIP is not set
1046# CONFIG_THERMAL is not set 1079# CONFIG_THERMAL is not set
1047# CONFIG_THERMAL_HWMON is not set 1080# CONFIG_THERMAL_HWMON is not set
@@ -1138,7 +1171,6 @@ CONFIG_HID=y
1138# 1171#
1139# Special HID drivers 1172# Special HID drivers
1140# 1173#
1141CONFIG_HID_COMPAT=y
1142CONFIG_USB_SUPPORT=y 1174CONFIG_USB_SUPPORT=y
1143CONFIG_USB_ARCH_HAS_HCD=y 1175CONFIG_USB_ARCH_HAS_HCD=y
1144CONFIG_USB_ARCH_HAS_OHCI=y 1176CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1196,11 +1228,11 @@ CONFIG_USB_UHCI_HCD=y
1196# CONFIG_USB_TMC is not set 1228# CONFIG_USB_TMC is not set
1197 1229
1198# 1230#
1199# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1231# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1200# 1232#
1201 1233
1202# 1234#
1203# see USB_STORAGE Help for more information 1235# also be needed; see USB_STORAGE Help for more info
1204# 1236#
1205CONFIG_USB_STORAGE=y 1237CONFIG_USB_STORAGE=y
1206# CONFIG_USB_STORAGE_DEBUG is not set 1238# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1242,7 +1274,6 @@ CONFIG_USB_STORAGE=y
1242# CONFIG_USB_LED is not set 1274# CONFIG_USB_LED is not set
1243# CONFIG_USB_CYPRESS_CY7C63 is not set 1275# CONFIG_USB_CYPRESS_CY7C63 is not set
1244# CONFIG_USB_CYTHERM is not set 1276# CONFIG_USB_CYTHERM is not set
1245# CONFIG_USB_PHIDGET is not set
1246# CONFIG_USB_IDMOUSE is not set 1277# CONFIG_USB_IDMOUSE is not set
1247# CONFIG_USB_FTDI_ELAN is not set 1278# CONFIG_USB_FTDI_ELAN is not set
1248# CONFIG_USB_APPLEDISPLAY is not set 1279# CONFIG_USB_APPLEDISPLAY is not set
@@ -1289,6 +1320,7 @@ CONFIG_USB_ETH_RNDIS=y
1289# 1320#
1290# OTG and related infrastructure 1321# OTG and related infrastructure
1291# 1322#
1323# CONFIG_NOP_USB_XCEIV is not set
1292# CONFIG_UWB is not set 1324# CONFIG_UWB is not set
1293# CONFIG_MMC is not set 1325# CONFIG_MMC is not set
1294# CONFIG_MEMSTICK is not set 1326# CONFIG_MEMSTICK is not set
@@ -1357,8 +1389,9 @@ CONFIG_RTC_DRV_DS1307=y
1357# 1389#
1358# on-CPU RTC drivers 1390# on-CPU RTC drivers
1359# 1391#
1360# CONFIG_RTC_DRV_PPC is not set 1392# CONFIG_RTC_DRV_GENERIC is not set
1361# CONFIG_DMADEVICES is not set 1393# CONFIG_DMADEVICES is not set
1394# CONFIG_AUXDISPLAY is not set
1362# CONFIG_UIO is not set 1395# CONFIG_UIO is not set
1363# CONFIG_STAGING is not set 1396# CONFIG_STAGING is not set
1364 1397
@@ -1369,6 +1402,7 @@ CONFIG_EXT2_FS=y
1369# CONFIG_EXT2_FS_XATTR is not set 1402# CONFIG_EXT2_FS_XATTR is not set
1370# CONFIG_EXT2_FS_XIP is not set 1403# CONFIG_EXT2_FS_XIP is not set
1371CONFIG_EXT3_FS=y 1404CONFIG_EXT3_FS=y
1405# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1372CONFIG_EXT3_FS_XATTR=y 1406CONFIG_EXT3_FS_XATTR=y
1373# CONFIG_EXT3_FS_POSIX_ACL is not set 1407# CONFIG_EXT3_FS_POSIX_ACL is not set
1374# CONFIG_EXT3_FS_SECURITY is not set 1408# CONFIG_EXT3_FS_SECURITY is not set
@@ -1391,6 +1425,11 @@ CONFIG_INOTIFY_USER=y
1391# CONFIG_FUSE_FS is not set 1425# CONFIG_FUSE_FS is not set
1392 1426
1393# 1427#
1428# Caches
1429#
1430# CONFIG_FSCACHE is not set
1431
1432#
1394# CD-ROM/DVD Filesystems 1433# CD-ROM/DVD Filesystems
1395# 1434#
1396# CONFIG_ISO9660_FS is not set 1435# CONFIG_ISO9660_FS is not set
@@ -1444,6 +1483,7 @@ CONFIG_JFFS2_RTIME=y
1444# CONFIG_ROMFS_FS is not set 1483# CONFIG_ROMFS_FS is not set
1445# CONFIG_SYSV_FS is not set 1484# CONFIG_SYSV_FS is not set
1446# CONFIG_UFS_FS is not set 1485# CONFIG_UFS_FS is not set
1486# CONFIG_NILFS2_FS is not set
1447CONFIG_NETWORK_FILESYSTEMS=y 1487CONFIG_NETWORK_FILESYSTEMS=y
1448CONFIG_NFS_FS=y 1488CONFIG_NFS_FS=y
1449CONFIG_NFS_V3=y 1489CONFIG_NFS_V3=y
@@ -1456,7 +1496,6 @@ CONFIG_LOCKD_V4=y
1456CONFIG_NFS_COMMON=y 1496CONFIG_NFS_COMMON=y
1457CONFIG_SUNRPC=y 1497CONFIG_SUNRPC=y
1458CONFIG_SUNRPC_GSS=y 1498CONFIG_SUNRPC_GSS=y
1459# CONFIG_SUNRPC_REGISTER_V4 is not set
1460CONFIG_RPCSEC_GSS_KRB5=y 1499CONFIG_RPCSEC_GSS_KRB5=y
1461# CONFIG_RPCSEC_GSS_SPKM3 is not set 1500# CONFIG_RPCSEC_GSS_SPKM3 is not set
1462# CONFIG_SMB_FS is not set 1501# CONFIG_SMB_FS is not set
@@ -1488,6 +1527,7 @@ CONFIG_MSDOS_PARTITION=y
1488# CONFIG_SYSV68_PARTITION is not set 1527# CONFIG_SYSV68_PARTITION is not set
1489# CONFIG_NLS is not set 1528# CONFIG_NLS is not set
1490# CONFIG_DLM is not set 1529# CONFIG_DLM is not set
1530# CONFIG_BINARY_PRINTF is not set
1491 1531
1492# 1532#
1493# Library routines 1533# Library routines
@@ -1503,11 +1543,12 @@ CONFIG_CRC32=y
1503# CONFIG_LIBCRC32C is not set 1543# CONFIG_LIBCRC32C is not set
1504CONFIG_ZLIB_INFLATE=y 1544CONFIG_ZLIB_INFLATE=y
1505CONFIG_ZLIB_DEFLATE=y 1545CONFIG_ZLIB_DEFLATE=y
1506CONFIG_PLIST=y 1546CONFIG_DECOMPRESS_GZIP=y
1507CONFIG_HAS_IOMEM=y 1547CONFIG_HAS_IOMEM=y
1508CONFIG_HAS_IOPORT=y 1548CONFIG_HAS_IOPORT=y
1509CONFIG_HAS_DMA=y 1549CONFIG_HAS_DMA=y
1510CONFIG_HAVE_LMB=y 1550CONFIG_HAVE_LMB=y
1551CONFIG_NLATTR=y
1511 1552
1512# 1553#
1513# Kernel hacking 1554# Kernel hacking
@@ -1525,6 +1566,9 @@ CONFIG_DEBUG_KERNEL=y
1525CONFIG_DETECT_SOFTLOCKUP=y 1566CONFIG_DETECT_SOFTLOCKUP=y
1526# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1567# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1527CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1568CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1569CONFIG_DETECT_HUNG_TASK=y
1570# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1571CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1528CONFIG_SCHED_DEBUG=y 1572CONFIG_SCHED_DEBUG=y
1529# CONFIG_SCHEDSTATS is not set 1573# CONFIG_SCHEDSTATS is not set
1530# CONFIG_TIMER_STATS is not set 1574# CONFIG_TIMER_STATS is not set
@@ -1554,9 +1598,12 @@ CONFIG_SCHED_DEBUG=y
1554# CONFIG_FAULT_INJECTION is not set 1598# CONFIG_FAULT_INJECTION is not set
1555# CONFIG_LATENCYTOP is not set 1599# CONFIG_LATENCYTOP is not set
1556CONFIG_SYSCTL_SYSCALL_CHECK=y 1600CONFIG_SYSCTL_SYSCALL_CHECK=y
1601# CONFIG_DEBUG_PAGEALLOC is not set
1557CONFIG_HAVE_FUNCTION_TRACER=y 1602CONFIG_HAVE_FUNCTION_TRACER=y
1603CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y 1604CONFIG_HAVE_DYNAMIC_FTRACE=y
1559CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1605CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1606CONFIG_TRACING_SUPPORT=y
1560 1607
1561# 1608#
1562# Tracers 1609# Tracers
@@ -1564,17 +1611,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1564# CONFIG_FUNCTION_TRACER is not set 1611# CONFIG_FUNCTION_TRACER is not set
1565# CONFIG_SCHED_TRACER is not set 1612# CONFIG_SCHED_TRACER is not set
1566# CONFIG_CONTEXT_SWITCH_TRACER is not set 1613# CONFIG_CONTEXT_SWITCH_TRACER is not set
1614# CONFIG_EVENT_TRACER is not set
1567# CONFIG_BOOT_TRACER is not set 1615# CONFIG_BOOT_TRACER is not set
1568# CONFIG_TRACE_BRANCH_PROFILING is not set 1616# CONFIG_TRACE_BRANCH_PROFILING is not set
1569# CONFIG_STACK_TRACER is not set 1617# CONFIG_STACK_TRACER is not set
1570# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1618# CONFIG_KMEMTRACE is not set
1619# CONFIG_WORKQUEUE_TRACER is not set
1620# CONFIG_BLK_DEV_IO_TRACE is not set
1571# CONFIG_SAMPLES is not set 1621# CONFIG_SAMPLES is not set
1572CONFIG_HAVE_ARCH_KGDB=y 1622CONFIG_HAVE_ARCH_KGDB=y
1573# CONFIG_KGDB is not set 1623# CONFIG_KGDB is not set
1574CONFIG_PRINT_STACK_DEPTH=64 1624CONFIG_PRINT_STACK_DEPTH=64
1575# CONFIG_DEBUG_STACKOVERFLOW is not set 1625# CONFIG_DEBUG_STACKOVERFLOW is not set
1576# CONFIG_DEBUG_STACK_USAGE is not set 1626# CONFIG_DEBUG_STACK_USAGE is not set
1577# CONFIG_DEBUG_PAGEALLOC is not set
1578# CONFIG_CODE_PATCHING_SELFTEST is not set 1627# CONFIG_CODE_PATCHING_SELFTEST is not set
1579# CONFIG_FTR_FIXUP_SELFTEST is not set 1628# CONFIG_FTR_FIXUP_SELFTEST is not set
1580# CONFIG_MSI_BITMAP_SELFTEST is not set 1629# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1605,10 +1654,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1605CONFIG_CRYPTO_HASH=y 1654CONFIG_CRYPTO_HASH=y
1606CONFIG_CRYPTO_HASH2=y 1655CONFIG_CRYPTO_HASH2=y
1607CONFIG_CRYPTO_RNG2=y 1656CONFIG_CRYPTO_RNG2=y
1657CONFIG_CRYPTO_PCOMP=y
1608CONFIG_CRYPTO_MANAGER=y 1658CONFIG_CRYPTO_MANAGER=y
1609CONFIG_CRYPTO_MANAGER2=y 1659CONFIG_CRYPTO_MANAGER2=y
1610# CONFIG_CRYPTO_GF128MUL is not set 1660# CONFIG_CRYPTO_GF128MUL is not set
1611# CONFIG_CRYPTO_NULL is not set 1661# CONFIG_CRYPTO_NULL is not set
1662CONFIG_CRYPTO_WORKQUEUE=y
1612# CONFIG_CRYPTO_CRYPTD is not set 1663# CONFIG_CRYPTO_CRYPTD is not set
1613# CONFIG_CRYPTO_AUTHENC is not set 1664# CONFIG_CRYPTO_AUTHENC is not set
1614# CONFIG_CRYPTO_TEST is not set 1665# CONFIG_CRYPTO_TEST is not set
@@ -1677,6 +1728,7 @@ CONFIG_CRYPTO_DES=y
1677# Compression 1728# Compression
1678# 1729#
1679# CONFIG_CRYPTO_DEFLATE is not set 1730# CONFIG_CRYPTO_DEFLATE is not set
1731# CONFIG_CRYPTO_ZLIB is not set
1680# CONFIG_CRYPTO_LZO is not set 1732# CONFIG_CRYPTO_LZO is not set
1681 1733
1682# 1734#
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index fb17de53cc02..8c8f660b4fc7 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:50 2009 4# Wed May 13 17:22:07 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC832x_MDS=y
183CONFIG_PPC_MPC832x=y 192CONFIG_PPC_MPC832x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -411,13 +425,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
411# CONFIG_BLK_DEV_HD is not set 425# CONFIG_BLK_DEV_HD is not set
412CONFIG_MISC_DEVICES=y 426CONFIG_MISC_DEVICES=y
413# CONFIG_PHANTOM is not set 427# CONFIG_PHANTOM is not set
414# CONFIG_EEPROM_93CX6 is not set
415# CONFIG_SGI_IOC4 is not set 428# CONFIG_SGI_IOC4 is not set
416# CONFIG_TIFM_CORE is not set 429# CONFIG_TIFM_CORE is not set
417# CONFIG_ICS932S401 is not set 430# CONFIG_ICS932S401 is not set
418# CONFIG_ENCLOSURE_SERVICES is not set 431# CONFIG_ENCLOSURE_SERVICES is not set
419# CONFIG_HP_ILO is not set 432# CONFIG_HP_ILO is not set
433# CONFIG_ISL29003 is not set
420# CONFIG_C2PORT is not set 434# CONFIG_C2PORT is not set
435
436#
437# EEPROM support
438#
439# CONFIG_EEPROM_AT24 is not set
440# CONFIG_EEPROM_LEGACY is not set
441# CONFIG_EEPROM_93CX6 is not set
421CONFIG_HAVE_IDE=y 442CONFIG_HAVE_IDE=y
422# CONFIG_IDE is not set 443# CONFIG_IDE is not set
423 444
@@ -475,9 +496,11 @@ CONFIG_SCSI_LOWLEVEL=y
475# CONFIG_MEGARAID_NEWGEN is not set 496# CONFIG_MEGARAID_NEWGEN is not set
476# CONFIG_MEGARAID_LEGACY is not set 497# CONFIG_MEGARAID_LEGACY is not set
477# CONFIG_MEGARAID_SAS is not set 498# CONFIG_MEGARAID_SAS is not set
499# CONFIG_SCSI_MPT2SAS is not set
478# CONFIG_SCSI_HPTIOP is not set 500# CONFIG_SCSI_HPTIOP is not set
479# CONFIG_SCSI_BUSLOGIC is not set 501# CONFIG_SCSI_BUSLOGIC is not set
480# CONFIG_LIBFC is not set 502# CONFIG_LIBFC is not set
503# CONFIG_LIBFCOE is not set
481# CONFIG_FCOE is not set 504# CONFIG_FCOE is not set
482# CONFIG_SCSI_DMX3191D is not set 505# CONFIG_SCSI_DMX3191D is not set
483# CONFIG_SCSI_EATA is not set 506# CONFIG_SCSI_EATA is not set
@@ -499,6 +522,7 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
501# CONFIG_SCSI_DH is not set 524# CONFIG_SCSI_DH is not set
525# CONFIG_SCSI_OSD_INITIATOR is not set
502# CONFIG_ATA is not set 526# CONFIG_ATA is not set
503# CONFIG_MD is not set 527# CONFIG_MD is not set
504# CONFIG_FUSION is not set 528# CONFIG_FUSION is not set
@@ -515,6 +539,7 @@ CONFIG_SCSI_LOWLEVEL=y
515# CONFIG_I2O is not set 539# CONFIG_I2O is not set
516# CONFIG_MACINTOSH_DRIVERS is not set 540# CONFIG_MACINTOSH_DRIVERS is not set
517CONFIG_NETDEVICES=y 541CONFIG_NETDEVICES=y
542CONFIG_COMPAT_NET_DEV_OPS=y
518# CONFIG_DUMMY is not set 543# CONFIG_DUMMY is not set
519# CONFIG_BONDING is not set 544# CONFIG_BONDING is not set
520# CONFIG_MACVLAN is not set 545# CONFIG_MACVLAN is not set
@@ -548,6 +573,8 @@ CONFIG_MII=y
548# CONFIG_SUNGEM is not set 573# CONFIG_SUNGEM is not set
549# CONFIG_CASSINI is not set 574# CONFIG_CASSINI is not set
550# CONFIG_NET_VENDOR_3COM is not set 575# CONFIG_NET_VENDOR_3COM is not set
576# CONFIG_ETHOC is not set
577# CONFIG_DNET is not set
551# CONFIG_NET_TULIP is not set 578# CONFIG_NET_TULIP is not set
552# CONFIG_HP100 is not set 579# CONFIG_HP100 is not set
553# CONFIG_IBM_NEW_EMAC_ZMII is not set 580# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -567,6 +594,7 @@ CONFIG_NETDEV_1000=y
567# CONFIG_E1000E is not set 594# CONFIG_E1000E is not set
568# CONFIG_IP1000 is not set 595# CONFIG_IP1000 is not set
569# CONFIG_IGB is not set 596# CONFIG_IGB is not set
597# CONFIG_IGBVF is not set
570# CONFIG_NS83820 is not set 598# CONFIG_NS83820 is not set
571# CONFIG_HAMACHI is not set 599# CONFIG_HAMACHI is not set
572# CONFIG_YELLOWFIN is not set 600# CONFIG_YELLOWFIN is not set
@@ -577,14 +605,15 @@ CONFIG_NETDEV_1000=y
577# CONFIG_VIA_VELOCITY is not set 605# CONFIG_VIA_VELOCITY is not set
578# CONFIG_TIGON3 is not set 606# CONFIG_TIGON3 is not set
579# CONFIG_BNX2 is not set 607# CONFIG_BNX2 is not set
608CONFIG_FSL_PQ_MDIO=y
580# CONFIG_GIANFAR is not set 609# CONFIG_GIANFAR is not set
581CONFIG_UCC_GETH=y 610CONFIG_UCC_GETH=y
582# CONFIG_UGETH_MAGIC_PACKET is not set 611# CONFIG_UGETH_MAGIC_PACKET is not set
583# CONFIG_UGETH_TX_ON_DEMAND is not set 612# CONFIG_UGETH_TX_ON_DEMAND is not set
584# CONFIG_MV643XX_ETH is not set
585# CONFIG_QLA3XXX is not set 613# CONFIG_QLA3XXX is not set
586# CONFIG_ATL1 is not set 614# CONFIG_ATL1 is not set
587# CONFIG_ATL1E is not set 615# CONFIG_ATL1E is not set
616# CONFIG_ATL1C is not set
588# CONFIG_JME is not set 617# CONFIG_JME is not set
589CONFIG_NETDEV_10000=y 618CONFIG_NETDEV_10000=y
590# CONFIG_CHELSIO_T1 is not set 619# CONFIG_CHELSIO_T1 is not set
@@ -594,6 +623,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
594# CONFIG_IXGBE is not set 623# CONFIG_IXGBE is not set
595# CONFIG_IXGB is not set 624# CONFIG_IXGB is not set
596# CONFIG_S2IO is not set 625# CONFIG_S2IO is not set
626# CONFIG_VXGE is not set
597# CONFIG_MYRI10GE is not set 627# CONFIG_MYRI10GE is not set
598# CONFIG_NETXEN_NIC is not set 628# CONFIG_NETXEN_NIC is not set
599# CONFIG_NIU is not set 629# CONFIG_NIU is not set
@@ -603,6 +633,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
603# CONFIG_BNX2X is not set 633# CONFIG_BNX2X is not set
604# CONFIG_QLGE is not set 634# CONFIG_QLGE is not set
605# CONFIG_SFC is not set 635# CONFIG_SFC is not set
636# CONFIG_BE2NET is not set
606# CONFIG_TR is not set 637# CONFIG_TR is not set
607 638
608# 639#
@@ -610,7 +641,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
610# 641#
611# CONFIG_WLAN_PRE80211 is not set 642# CONFIG_WLAN_PRE80211 is not set
612# CONFIG_WLAN_80211 is not set 643# CONFIG_WLAN_80211 is not set
613# CONFIG_IWLWIFI_LEDS is not set
614 644
615# 645#
616# Enable WiMAX (Networking options) to see the WiMAX drivers 646# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -692,6 +722,7 @@ CONFIG_LEGACY_PTY_COUNT=256
692# CONFIG_HVC_UDBG is not set 722# CONFIG_HVC_UDBG is not set
693# CONFIG_IPMI_HANDLER is not set 723# CONFIG_IPMI_HANDLER is not set
694CONFIG_HW_RANDOM=y 724CONFIG_HW_RANDOM=y
725# CONFIG_HW_RANDOM_TIMERIOMEM is not set
695# CONFIG_NVRAM is not set 726# CONFIG_NVRAM is not set
696# CONFIG_R3964 is not set 727# CONFIG_R3964 is not set
697# CONFIG_APPLICOM is not set 728# CONFIG_APPLICOM is not set
@@ -753,12 +784,9 @@ CONFIG_I2C_MPC=y
753# Miscellaneous I2C Chip support 784# Miscellaneous I2C Chip support
754# 785#
755# CONFIG_DS1682 is not set 786# CONFIG_DS1682 is not set
756# CONFIG_EEPROM_AT24 is not set
757# CONFIG_EEPROM_LEGACY is not set
758# CONFIG_SENSORS_PCF8574 is not set 787# CONFIG_SENSORS_PCF8574 is not set
759# CONFIG_PCF8575 is not set 788# CONFIG_PCF8575 is not set
760# CONFIG_SENSORS_PCA9539 is not set 789# CONFIG_SENSORS_PCA9539 is not set
761# CONFIG_SENSORS_PCF8591 is not set
762# CONFIG_SENSORS_MAX6875 is not set 790# CONFIG_SENSORS_MAX6875 is not set
763# CONFIG_SENSORS_TSL2550 is not set 791# CONFIG_SENSORS_TSL2550 is not set
764# CONFIG_I2C_DEBUG_CORE is not set 792# CONFIG_I2C_DEBUG_CORE is not set
@@ -790,6 +818,7 @@ CONFIG_HWMON=y
790# CONFIG_SENSORS_F71805F is not set 818# CONFIG_SENSORS_F71805F is not set
791# CONFIG_SENSORS_F71882FG is not set 819# CONFIG_SENSORS_F71882FG is not set
792# CONFIG_SENSORS_F75375S is not set 820# CONFIG_SENSORS_F75375S is not set
821# CONFIG_SENSORS_G760A is not set
793# CONFIG_SENSORS_GL518SM is not set 822# CONFIG_SENSORS_GL518SM is not set
794# CONFIG_SENSORS_GL520SM is not set 823# CONFIG_SENSORS_GL520SM is not set
795# CONFIG_SENSORS_IT87 is not set 824# CONFIG_SENSORS_IT87 is not set
@@ -804,11 +833,14 @@ CONFIG_HWMON=y
804# CONFIG_SENSORS_LM90 is not set 833# CONFIG_SENSORS_LM90 is not set
805# CONFIG_SENSORS_LM92 is not set 834# CONFIG_SENSORS_LM92 is not set
806# CONFIG_SENSORS_LM93 is not set 835# CONFIG_SENSORS_LM93 is not set
836# CONFIG_SENSORS_LTC4215 is not set
807# CONFIG_SENSORS_LTC4245 is not set 837# CONFIG_SENSORS_LTC4245 is not set
838# CONFIG_SENSORS_LM95241 is not set
808# CONFIG_SENSORS_MAX1619 is not set 839# CONFIG_SENSORS_MAX1619 is not set
809# CONFIG_SENSORS_MAX6650 is not set 840# CONFIG_SENSORS_MAX6650 is not set
810# CONFIG_SENSORS_PC87360 is not set 841# CONFIG_SENSORS_PC87360 is not set
811# CONFIG_SENSORS_PC87427 is not set 842# CONFIG_SENSORS_PC87427 is not set
843# CONFIG_SENSORS_PCF8591 is not set
812# CONFIG_SENSORS_SIS5595 is not set 844# CONFIG_SENSORS_SIS5595 is not set
813# CONFIG_SENSORS_DME1737 is not set 845# CONFIG_SENSORS_DME1737 is not set
814# CONFIG_SENSORS_SMSC47M1 is not set 846# CONFIG_SENSORS_SMSC47M1 is not set
@@ -906,7 +938,6 @@ CONFIG_HID=y
906# 938#
907# Special HID drivers 939# Special HID drivers
908# 940#
909CONFIG_HID_COMPAT=y
910CONFIG_USB_SUPPORT=y 941CONFIG_USB_SUPPORT=y
911CONFIG_USB_ARCH_HAS_HCD=y 942CONFIG_USB_ARCH_HAS_HCD=y
912CONFIG_USB_ARCH_HAS_OHCI=y 943CONFIG_USB_ARCH_HAS_OHCI=y
@@ -920,7 +951,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
920# 951#
921 952
922# 953#
923# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 954# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
924# 955#
925# CONFIG_USB_GADGET is not set 956# CONFIG_USB_GADGET is not set
926 957
@@ -988,8 +1019,9 @@ CONFIG_RTC_DRV_DS1374=y
988# 1019#
989# on-CPU RTC drivers 1020# on-CPU RTC drivers
990# 1021#
991# CONFIG_RTC_DRV_PPC is not set 1022# CONFIG_RTC_DRV_GENERIC is not set
992# CONFIG_DMADEVICES is not set 1023# CONFIG_DMADEVICES is not set
1024# CONFIG_AUXDISPLAY is not set
993# CONFIG_UIO is not set 1025# CONFIG_UIO is not set
994# CONFIG_STAGING is not set 1026# CONFIG_STAGING is not set
995 1027
@@ -1000,6 +1032,7 @@ CONFIG_EXT2_FS=y
1000# CONFIG_EXT2_FS_XATTR is not set 1032# CONFIG_EXT2_FS_XATTR is not set
1001# CONFIG_EXT2_FS_XIP is not set 1033# CONFIG_EXT2_FS_XIP is not set
1002CONFIG_EXT3_FS=y 1034CONFIG_EXT3_FS=y
1035# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1003CONFIG_EXT3_FS_XATTR=y 1036CONFIG_EXT3_FS_XATTR=y
1004# CONFIG_EXT3_FS_POSIX_ACL is not set 1037# CONFIG_EXT3_FS_POSIX_ACL is not set
1005# CONFIG_EXT3_FS_SECURITY is not set 1038# CONFIG_EXT3_FS_SECURITY is not set
@@ -1022,6 +1055,11 @@ CONFIG_INOTIFY_USER=y
1022# CONFIG_FUSE_FS is not set 1055# CONFIG_FUSE_FS is not set
1023 1056
1024# 1057#
1058# Caches
1059#
1060# CONFIG_FSCACHE is not set
1061
1062#
1025# CD-ROM/DVD Filesystems 1063# CD-ROM/DVD Filesystems
1026# 1064#
1027# CONFIG_ISO9660_FS is not set 1065# CONFIG_ISO9660_FS is not set
@@ -1064,6 +1102,7 @@ CONFIG_MISC_FILESYSTEMS=y
1064# CONFIG_ROMFS_FS is not set 1102# CONFIG_ROMFS_FS is not set
1065# CONFIG_SYSV_FS is not set 1103# CONFIG_SYSV_FS is not set
1066# CONFIG_UFS_FS is not set 1104# CONFIG_UFS_FS is not set
1105# CONFIG_NILFS2_FS is not set
1067CONFIG_NETWORK_FILESYSTEMS=y 1106CONFIG_NETWORK_FILESYSTEMS=y
1068CONFIG_NFS_FS=y 1107CONFIG_NFS_FS=y
1069CONFIG_NFS_V3=y 1108CONFIG_NFS_V3=y
@@ -1076,7 +1115,6 @@ CONFIG_LOCKD_V4=y
1076CONFIG_NFS_COMMON=y 1115CONFIG_NFS_COMMON=y
1077CONFIG_SUNRPC=y 1116CONFIG_SUNRPC=y
1078CONFIG_SUNRPC_GSS=y 1117CONFIG_SUNRPC_GSS=y
1079# CONFIG_SUNRPC_REGISTER_V4 is not set
1080CONFIG_RPCSEC_GSS_KRB5=y 1118CONFIG_RPCSEC_GSS_KRB5=y
1081# CONFIG_RPCSEC_GSS_SPKM3 is not set 1119# CONFIG_RPCSEC_GSS_SPKM3 is not set
1082# CONFIG_SMB_FS is not set 1120# CONFIG_SMB_FS is not set
@@ -1106,6 +1144,7 @@ CONFIG_PARTITION_ADVANCED=y
1106# CONFIG_DLM is not set 1144# CONFIG_DLM is not set
1107CONFIG_UCC_FAST=y 1145CONFIG_UCC_FAST=y
1108CONFIG_UCC=y 1146CONFIG_UCC=y
1147# CONFIG_BINARY_PRINTF is not set
1109 1148
1110# 1149#
1111# Library routines 1150# Library routines
@@ -1119,11 +1158,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1119CONFIG_CRC32=y 1158CONFIG_CRC32=y
1120# CONFIG_CRC7 is not set 1159# CONFIG_CRC7 is not set
1121# CONFIG_LIBCRC32C is not set 1160# CONFIG_LIBCRC32C is not set
1122CONFIG_PLIST=y 1161CONFIG_ZLIB_INFLATE=y
1162CONFIG_DECOMPRESS_GZIP=y
1123CONFIG_HAS_IOMEM=y 1163CONFIG_HAS_IOMEM=y
1124CONFIG_HAS_IOPORT=y 1164CONFIG_HAS_IOPORT=y
1125CONFIG_HAS_DMA=y 1165CONFIG_HAS_DMA=y
1126CONFIG_HAVE_LMB=y 1166CONFIG_HAVE_LMB=y
1167CONFIG_NLATTR=y
1127 1168
1128# 1169#
1129# Kernel hacking 1170# Kernel hacking
@@ -1145,13 +1186,24 @@ CONFIG_FRAME_WARN=1024
1145# CONFIG_LATENCYTOP is not set 1186# CONFIG_LATENCYTOP is not set
1146CONFIG_SYSCTL_SYSCALL_CHECK=y 1187CONFIG_SYSCTL_SYSCALL_CHECK=y
1147CONFIG_HAVE_FUNCTION_TRACER=y 1188CONFIG_HAVE_FUNCTION_TRACER=y
1189CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1148CONFIG_HAVE_DYNAMIC_FTRACE=y 1190CONFIG_HAVE_DYNAMIC_FTRACE=y
1149CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1191CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1192CONFIG_TRACING_SUPPORT=y
1150 1193
1151# 1194#
1152# Tracers 1195# Tracers
1153# 1196#
1154# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1197# CONFIG_FUNCTION_TRACER is not set
1198# CONFIG_SCHED_TRACER is not set
1199# CONFIG_CONTEXT_SWITCH_TRACER is not set
1200# CONFIG_EVENT_TRACER is not set
1201# CONFIG_BOOT_TRACER is not set
1202# CONFIG_TRACE_BRANCH_PROFILING is not set
1203# CONFIG_STACK_TRACER is not set
1204# CONFIG_KMEMTRACE is not set
1205# CONFIG_WORKQUEUE_TRACER is not set
1206# CONFIG_BLK_DEV_IO_TRACE is not set
1155# CONFIG_SAMPLES is not set 1207# CONFIG_SAMPLES is not set
1156CONFIG_HAVE_ARCH_KGDB=y 1208CONFIG_HAVE_ARCH_KGDB=y
1157CONFIG_PRINT_STACK_DEPTH=64 1209CONFIG_PRINT_STACK_DEPTH=64
@@ -1180,10 +1232,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1180CONFIG_CRYPTO_HASH=y 1232CONFIG_CRYPTO_HASH=y
1181CONFIG_CRYPTO_HASH2=y 1233CONFIG_CRYPTO_HASH2=y
1182CONFIG_CRYPTO_RNG2=y 1234CONFIG_CRYPTO_RNG2=y
1235CONFIG_CRYPTO_PCOMP=y
1183CONFIG_CRYPTO_MANAGER=y 1236CONFIG_CRYPTO_MANAGER=y
1184CONFIG_CRYPTO_MANAGER2=y 1237CONFIG_CRYPTO_MANAGER2=y
1185# CONFIG_CRYPTO_GF128MUL is not set 1238# CONFIG_CRYPTO_GF128MUL is not set
1186# CONFIG_CRYPTO_NULL is not set 1239# CONFIG_CRYPTO_NULL is not set
1240CONFIG_CRYPTO_WORKQUEUE=y
1187# CONFIG_CRYPTO_CRYPTD is not set 1241# CONFIG_CRYPTO_CRYPTD is not set
1188# CONFIG_CRYPTO_AUTHENC is not set 1242# CONFIG_CRYPTO_AUTHENC is not set
1189# CONFIG_CRYPTO_TEST is not set 1243# CONFIG_CRYPTO_TEST is not set
@@ -1252,6 +1306,7 @@ CONFIG_CRYPTO_DES=y
1252# Compression 1306# Compression
1253# 1307#
1254# CONFIG_CRYPTO_DEFLATE is not set 1308# CONFIG_CRYPTO_DEFLATE is not set
1309# CONFIG_CRYPTO_ZLIB is not set
1255# CONFIG_CRYPTO_LZO is not set 1310# CONFIG_CRYPTO_LZO is not set
1256 1311
1257# 1312#
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index a012ce235203..227dbba76795 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:52 2009 4# Wed May 13 17:22:08 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC832x_RDB=y
183CONFIG_PPC_MPC832x=y 192CONFIG_PPC_MPC832x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 266CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -413,13 +427,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
413# CONFIG_BLK_DEV_HD is not set 427# CONFIG_BLK_DEV_HD is not set
414CONFIG_MISC_DEVICES=y 428CONFIG_MISC_DEVICES=y
415# CONFIG_PHANTOM is not set 429# CONFIG_PHANTOM is not set
416# CONFIG_EEPROM_93CX6 is not set
417# CONFIG_SGI_IOC4 is not set 430# CONFIG_SGI_IOC4 is not set
418# CONFIG_TIFM_CORE is not set 431# CONFIG_TIFM_CORE is not set
419# CONFIG_ICS932S401 is not set 432# CONFIG_ICS932S401 is not set
420# CONFIG_ENCLOSURE_SERVICES is not set 433# CONFIG_ENCLOSURE_SERVICES is not set
421# CONFIG_HP_ILO is not set 434# CONFIG_HP_ILO is not set
435# CONFIG_ISL29003 is not set
422# CONFIG_C2PORT is not set 436# CONFIG_C2PORT is not set
437
438#
439# EEPROM support
440#
441# CONFIG_EEPROM_AT24 is not set
442# CONFIG_EEPROM_AT25 is not set
443# CONFIG_EEPROM_LEGACY is not set
444# CONFIG_EEPROM_93CX6 is not set
423CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
424# CONFIG_IDE is not set 446# CONFIG_IDE is not set
425 447
@@ -477,9 +499,11 @@ CONFIG_SCSI_LOWLEVEL=y
477# CONFIG_MEGARAID_NEWGEN is not set 499# CONFIG_MEGARAID_NEWGEN is not set
478# CONFIG_MEGARAID_LEGACY is not set 500# CONFIG_MEGARAID_LEGACY is not set
479# CONFIG_MEGARAID_SAS is not set 501# CONFIG_MEGARAID_SAS is not set
502# CONFIG_SCSI_MPT2SAS is not set
480# CONFIG_SCSI_HPTIOP is not set 503# CONFIG_SCSI_HPTIOP is not set
481# CONFIG_SCSI_BUSLOGIC is not set 504# CONFIG_SCSI_BUSLOGIC is not set
482# CONFIG_LIBFC is not set 505# CONFIG_LIBFC is not set
506# CONFIG_LIBFCOE is not set
483# CONFIG_FCOE is not set 507# CONFIG_FCOE is not set
484# CONFIG_SCSI_DMX3191D is not set 508# CONFIG_SCSI_DMX3191D is not set
485# CONFIG_SCSI_EATA is not set 509# CONFIG_SCSI_EATA is not set
@@ -501,6 +525,7 @@ CONFIG_SCSI_LOWLEVEL=y
501# CONFIG_SCSI_DEBUG is not set 525# CONFIG_SCSI_DEBUG is not set
502# CONFIG_SCSI_SRP is not set 526# CONFIG_SCSI_SRP is not set
503# CONFIG_SCSI_DH is not set 527# CONFIG_SCSI_DH is not set
528# CONFIG_SCSI_OSD_INITIATOR is not set
504# CONFIG_ATA is not set 529# CONFIG_ATA is not set
505# CONFIG_MD is not set 530# CONFIG_MD is not set
506# CONFIG_FUSION is not set 531# CONFIG_FUSION is not set
@@ -517,6 +542,7 @@ CONFIG_SCSI_LOWLEVEL=y
517# CONFIG_I2O is not set 542# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 543# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 544CONFIG_NETDEVICES=y
545CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 546# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 547# CONFIG_BONDING is not set
522# CONFIG_MACVLAN is not set 548# CONFIG_MACVLAN is not set
@@ -551,6 +577,8 @@ CONFIG_MII=y
551# CONFIG_CASSINI is not set 577# CONFIG_CASSINI is not set
552# CONFIG_NET_VENDOR_3COM is not set 578# CONFIG_NET_VENDOR_3COM is not set
553# CONFIG_ENC28J60 is not set 579# CONFIG_ENC28J60 is not set
580# CONFIG_ETHOC is not set
581# CONFIG_DNET is not set
554# CONFIG_NET_TULIP is not set 582# CONFIG_NET_TULIP is not set
555# CONFIG_HP100 is not set 583# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 584# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -570,6 +598,7 @@ CONFIG_E1000=y
570# CONFIG_E1000E is not set 598# CONFIG_E1000E is not set
571# CONFIG_IP1000 is not set 599# CONFIG_IP1000 is not set
572# CONFIG_IGB is not set 600# CONFIG_IGB is not set
601# CONFIG_IGBVF is not set
573# CONFIG_NS83820 is not set 602# CONFIG_NS83820 is not set
574# CONFIG_HAMACHI is not set 603# CONFIG_HAMACHI is not set
575# CONFIG_YELLOWFIN is not set 604# CONFIG_YELLOWFIN is not set
@@ -580,14 +609,15 @@ CONFIG_E1000=y
580# CONFIG_VIA_VELOCITY is not set 609# CONFIG_VIA_VELOCITY is not set
581# CONFIG_TIGON3 is not set 610# CONFIG_TIGON3 is not set
582# CONFIG_BNX2 is not set 611# CONFIG_BNX2 is not set
612CONFIG_FSL_PQ_MDIO=y
583# CONFIG_GIANFAR is not set 613# CONFIG_GIANFAR is not set
584CONFIG_UCC_GETH=y 614CONFIG_UCC_GETH=y
585# CONFIG_UGETH_MAGIC_PACKET is not set 615# CONFIG_UGETH_MAGIC_PACKET is not set
586# CONFIG_UGETH_TX_ON_DEMAND is not set 616# CONFIG_UGETH_TX_ON_DEMAND is not set
587# CONFIG_MV643XX_ETH is not set
588# CONFIG_QLA3XXX is not set 617# CONFIG_QLA3XXX is not set
589# CONFIG_ATL1 is not set 618# CONFIG_ATL1 is not set
590# CONFIG_ATL1E is not set 619# CONFIG_ATL1E is not set
620# CONFIG_ATL1C is not set
591# CONFIG_JME is not set 621# CONFIG_JME is not set
592CONFIG_NETDEV_10000=y 622CONFIG_NETDEV_10000=y
593# CONFIG_CHELSIO_T1 is not set 623# CONFIG_CHELSIO_T1 is not set
@@ -597,6 +627,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
597# CONFIG_IXGBE is not set 627# CONFIG_IXGBE is not set
598# CONFIG_IXGB is not set 628# CONFIG_IXGB is not set
599# CONFIG_S2IO is not set 629# CONFIG_S2IO is not set
630# CONFIG_VXGE is not set
600# CONFIG_MYRI10GE is not set 631# CONFIG_MYRI10GE is not set
601# CONFIG_NETXEN_NIC is not set 632# CONFIG_NETXEN_NIC is not set
602# CONFIG_NIU is not set 633# CONFIG_NIU is not set
@@ -606,6 +637,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
606# CONFIG_BNX2X is not set 637# CONFIG_BNX2X is not set
607# CONFIG_QLGE is not set 638# CONFIG_QLGE is not set
608# CONFIG_SFC is not set 639# CONFIG_SFC is not set
640# CONFIG_BE2NET is not set
609# CONFIG_TR is not set 641# CONFIG_TR is not set
610 642
611# 643#
@@ -613,7 +645,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
613# 645#
614# CONFIG_WLAN_PRE80211 is not set 646# CONFIG_WLAN_PRE80211 is not set
615# CONFIG_WLAN_80211 is not set 647# CONFIG_WLAN_80211 is not set
616# CONFIG_IWLWIFI_LEDS is not set
617 648
618# 649#
619# Enable WiMAX (Networking options) to see the WiMAX drivers 650# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -691,6 +722,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
691# 722#
692# Non-8250 serial port support 723# Non-8250 serial port support
693# 724#
725# CONFIG_SERIAL_MAX3100 is not set
694# CONFIG_SERIAL_UARTLITE is not set 726# CONFIG_SERIAL_UARTLITE is not set
695CONFIG_SERIAL_CORE=y 727CONFIG_SERIAL_CORE=y
696CONFIG_SERIAL_CORE_CONSOLE=y 728CONFIG_SERIAL_CORE_CONSOLE=y
@@ -704,6 +736,7 @@ CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_HVC_UDBG is not set 736# CONFIG_HVC_UDBG is not set
705# CONFIG_IPMI_HANDLER is not set 737# CONFIG_IPMI_HANDLER is not set
706CONFIG_HW_RANDOM=y 738CONFIG_HW_RANDOM=y
739# CONFIG_HW_RANDOM_TIMERIOMEM is not set
707# CONFIG_NVRAM is not set 740# CONFIG_NVRAM is not set
708CONFIG_GEN_RTC=y 741CONFIG_GEN_RTC=y
709# CONFIG_GEN_RTC_X is not set 742# CONFIG_GEN_RTC_X is not set
@@ -768,12 +801,9 @@ CONFIG_I2C_MPC=y
768# Miscellaneous I2C Chip support 801# Miscellaneous I2C Chip support
769# 802#
770# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
771# CONFIG_EEPROM_AT24 is not set
772# CONFIG_EEPROM_LEGACY is not set
773# CONFIG_SENSORS_PCF8574 is not set 804# CONFIG_SENSORS_PCF8574 is not set
774# CONFIG_PCF8575 is not set 805# CONFIG_PCF8575 is not set
775# CONFIG_SENSORS_PCA9539 is not set 806# CONFIG_SENSORS_PCA9539 is not set
776# CONFIG_SENSORS_PCF8591 is not set
777# CONFIG_SENSORS_MAX6875 is not set 807# CONFIG_SENSORS_MAX6875 is not set
778# CONFIG_SENSORS_TSL2550 is not set 808# CONFIG_SENSORS_TSL2550 is not set
779# CONFIG_I2C_DEBUG_CORE is not set 809# CONFIG_I2C_DEBUG_CORE is not set
@@ -792,7 +822,6 @@ CONFIG_SPI_MPC83xx=y
792# 822#
793# SPI Protocol Masters 823# SPI Protocol Masters
794# 824#
795# CONFIG_EEPROM_AT25 is not set
796# CONFIG_SPI_SPIDEV is not set 825# CONFIG_SPI_SPIDEV is not set
797# CONFIG_SPI_TLE62X0 is not set 826# CONFIG_SPI_TLE62X0 is not set
798CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 827CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -820,6 +849,7 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_F71805F is not set 849# CONFIG_SENSORS_F71805F is not set
821# CONFIG_SENSORS_F71882FG is not set 850# CONFIG_SENSORS_F71882FG is not set
822# CONFIG_SENSORS_F75375S is not set 851# CONFIG_SENSORS_F75375S is not set
852# CONFIG_SENSORS_G760A is not set
823# CONFIG_SENSORS_GL518SM is not set 853# CONFIG_SENSORS_GL518SM is not set
824# CONFIG_SENSORS_GL520SM is not set 854# CONFIG_SENSORS_GL520SM is not set
825# CONFIG_SENSORS_IT87 is not set 855# CONFIG_SENSORS_IT87 is not set
@@ -835,12 +865,15 @@ CONFIG_HWMON=y
835# CONFIG_SENSORS_LM90 is not set 865# CONFIG_SENSORS_LM90 is not set
836# CONFIG_SENSORS_LM92 is not set 866# CONFIG_SENSORS_LM92 is not set
837# CONFIG_SENSORS_LM93 is not set 867# CONFIG_SENSORS_LM93 is not set
868# CONFIG_SENSORS_LTC4215 is not set
838# CONFIG_SENSORS_LTC4245 is not set 869# CONFIG_SENSORS_LTC4245 is not set
870# CONFIG_SENSORS_LM95241 is not set
839# CONFIG_SENSORS_MAX1111 is not set 871# CONFIG_SENSORS_MAX1111 is not set
840# CONFIG_SENSORS_MAX1619 is not set 872# CONFIG_SENSORS_MAX1619 is not set
841# CONFIG_SENSORS_MAX6650 is not set 873# CONFIG_SENSORS_MAX6650 is not set
842# CONFIG_SENSORS_PC87360 is not set 874# CONFIG_SENSORS_PC87360 is not set
843# CONFIG_SENSORS_PC87427 is not set 875# CONFIG_SENSORS_PC87427 is not set
876# CONFIG_SENSORS_PCF8591 is not set
844# CONFIG_SENSORS_SIS5595 is not set 877# CONFIG_SENSORS_SIS5595 is not set
845# CONFIG_SENSORS_DME1737 is not set 878# CONFIG_SENSORS_DME1737 is not set
846# CONFIG_SENSORS_SMSC47M1 is not set 879# CONFIG_SENSORS_SMSC47M1 is not set
@@ -859,6 +892,7 @@ CONFIG_HWMON=y
859# CONFIG_SENSORS_W83L786NG is not set 892# CONFIG_SENSORS_W83L786NG is not set
860# CONFIG_SENSORS_W83627HF is not set 893# CONFIG_SENSORS_W83627HF is not set
861# CONFIG_SENSORS_W83627EHF is not set 894# CONFIG_SENSORS_W83627EHF is not set
895# CONFIG_SENSORS_LIS3_SPI is not set
862# CONFIG_HWMON_DEBUG_CHIP is not set 896# CONFIG_HWMON_DEBUG_CHIP is not set
863# CONFIG_THERMAL is not set 897# CONFIG_THERMAL is not set
864# CONFIG_THERMAL_HWMON is not set 898# CONFIG_THERMAL_HWMON is not set
@@ -955,7 +989,6 @@ CONFIG_HID=y
955# 989#
956# Special HID drivers 990# Special HID drivers
957# 991#
958CONFIG_HID_COMPAT=y
959CONFIG_USB_SUPPORT=y 992CONFIG_USB_SUPPORT=y
960CONFIG_USB_ARCH_HAS_HCD=y 993CONFIG_USB_ARCH_HAS_HCD=y
961CONFIG_USB_ARCH_HAS_OHCI=y 994CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1012,11 +1045,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1012# CONFIG_USB_TMC is not set 1045# CONFIG_USB_TMC is not set
1013 1046
1014# 1047#
1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1048# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1016# 1049#
1017 1050
1018# 1051#
1019# see USB_STORAGE Help for more information 1052# also be needed; see USB_STORAGE Help for more info
1020# 1053#
1021CONFIG_USB_STORAGE=y 1054CONFIG_USB_STORAGE=y
1022# CONFIG_USB_STORAGE_DEBUG is not set 1055# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1058,7 +1091,6 @@ CONFIG_USB_STORAGE=y
1058# CONFIG_USB_LED is not set 1091# CONFIG_USB_LED is not set
1059# CONFIG_USB_CYPRESS_CY7C63 is not set 1092# CONFIG_USB_CYPRESS_CY7C63 is not set
1060# CONFIG_USB_CYTHERM is not set 1093# CONFIG_USB_CYTHERM is not set
1061# CONFIG_USB_PHIDGET is not set
1062# CONFIG_USB_IDMOUSE is not set 1094# CONFIG_USB_IDMOUSE is not set
1063# CONFIG_USB_FTDI_ELAN is not set 1095# CONFIG_USB_FTDI_ELAN is not set
1064# CONFIG_USB_APPLEDISPLAY is not set 1096# CONFIG_USB_APPLEDISPLAY is not set
@@ -1074,6 +1106,7 @@ CONFIG_USB_STORAGE=y
1074# 1106#
1075# OTG and related infrastructure 1107# OTG and related infrastructure
1076# 1108#
1109# CONFIG_NOP_USB_XCEIV is not set
1077# CONFIG_UWB is not set 1110# CONFIG_UWB is not set
1078CONFIG_MMC=y 1111CONFIG_MMC=y
1079# CONFIG_MMC_DEBUG is not set 1112# CONFIG_MMC_DEBUG is not set
@@ -1101,6 +1134,7 @@ CONFIG_MMC_SPI=y
1101# CONFIG_EDAC is not set 1134# CONFIG_EDAC is not set
1102# CONFIG_RTC_CLASS is not set 1135# CONFIG_RTC_CLASS is not set
1103# CONFIG_DMADEVICES is not set 1136# CONFIG_DMADEVICES is not set
1137# CONFIG_AUXDISPLAY is not set
1104# CONFIG_UIO is not set 1138# CONFIG_UIO is not set
1105# CONFIG_STAGING is not set 1139# CONFIG_STAGING is not set
1106 1140
@@ -1111,6 +1145,7 @@ CONFIG_EXT2_FS=y
1111# CONFIG_EXT2_FS_XATTR is not set 1145# CONFIG_EXT2_FS_XATTR is not set
1112# CONFIG_EXT2_FS_XIP is not set 1146# CONFIG_EXT2_FS_XIP is not set
1113CONFIG_EXT3_FS=y 1147CONFIG_EXT3_FS=y
1148# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1114CONFIG_EXT3_FS_XATTR=y 1149CONFIG_EXT3_FS_XATTR=y
1115# CONFIG_EXT3_FS_POSIX_ACL is not set 1150# CONFIG_EXT3_FS_POSIX_ACL is not set
1116# CONFIG_EXT3_FS_SECURITY is not set 1151# CONFIG_EXT3_FS_SECURITY is not set
@@ -1133,6 +1168,11 @@ CONFIG_INOTIFY_USER=y
1133# CONFIG_FUSE_FS is not set 1168# CONFIG_FUSE_FS is not set
1134 1169
1135# 1170#
1171# Caches
1172#
1173# CONFIG_FSCACHE is not set
1174
1175#
1136# CD-ROM/DVD Filesystems 1176# CD-ROM/DVD Filesystems
1137# 1177#
1138# CONFIG_ISO9660_FS is not set 1178# CONFIG_ISO9660_FS is not set
@@ -1178,6 +1218,7 @@ CONFIG_MISC_FILESYSTEMS=y
1178# CONFIG_ROMFS_FS is not set 1218# CONFIG_ROMFS_FS is not set
1179# CONFIG_SYSV_FS is not set 1219# CONFIG_SYSV_FS is not set
1180# CONFIG_UFS_FS is not set 1220# CONFIG_UFS_FS is not set
1221# CONFIG_NILFS2_FS is not set
1181CONFIG_NETWORK_FILESYSTEMS=y 1222CONFIG_NETWORK_FILESYSTEMS=y
1182CONFIG_NFS_FS=y 1223CONFIG_NFS_FS=y
1183CONFIG_NFS_V3=y 1224CONFIG_NFS_V3=y
@@ -1190,7 +1231,6 @@ CONFIG_LOCKD_V4=y
1190CONFIG_NFS_COMMON=y 1231CONFIG_NFS_COMMON=y
1191CONFIG_SUNRPC=y 1232CONFIG_SUNRPC=y
1192CONFIG_SUNRPC_GSS=y 1233CONFIG_SUNRPC_GSS=y
1193# CONFIG_SUNRPC_REGISTER_V4 is not set
1194CONFIG_RPCSEC_GSS_KRB5=y 1234CONFIG_RPCSEC_GSS_KRB5=y
1195# CONFIG_RPCSEC_GSS_SPKM3 is not set 1235# CONFIG_RPCSEC_GSS_SPKM3 is not set
1196# CONFIG_SMB_FS is not set 1236# CONFIG_SMB_FS is not set
@@ -1264,6 +1304,7 @@ CONFIG_NLS_ISO8859_1=y
1264# CONFIG_DLM is not set 1304# CONFIG_DLM is not set
1265CONFIG_UCC_FAST=y 1305CONFIG_UCC_FAST=y
1266CONFIG_UCC=y 1306CONFIG_UCC=y
1307# CONFIG_BINARY_PRINTF is not set
1267 1308
1268# 1309#
1269# Library routines 1310# Library routines
@@ -1277,11 +1318,13 @@ CONFIG_CRC_ITU_T=y
1277CONFIG_CRC32=y 1318CONFIG_CRC32=y
1278CONFIG_CRC7=y 1319CONFIG_CRC7=y
1279# CONFIG_LIBCRC32C is not set 1320# CONFIG_LIBCRC32C is not set
1280CONFIG_PLIST=y 1321CONFIG_ZLIB_INFLATE=y
1322CONFIG_DECOMPRESS_GZIP=y
1281CONFIG_HAS_IOMEM=y 1323CONFIG_HAS_IOMEM=y
1282CONFIG_HAS_IOPORT=y 1324CONFIG_HAS_IOPORT=y
1283CONFIG_HAS_DMA=y 1325CONFIG_HAS_DMA=y
1284CONFIG_HAVE_LMB=y 1326CONFIG_HAVE_LMB=y
1327CONFIG_NLATTR=y
1285 1328
1286# 1329#
1287# Kernel hacking 1330# Kernel hacking
@@ -1303,13 +1346,24 @@ CONFIG_FRAME_WARN=1024
1303# CONFIG_LATENCYTOP is not set 1346# CONFIG_LATENCYTOP is not set
1304CONFIG_SYSCTL_SYSCALL_CHECK=y 1347CONFIG_SYSCTL_SYSCALL_CHECK=y
1305CONFIG_HAVE_FUNCTION_TRACER=y 1348CONFIG_HAVE_FUNCTION_TRACER=y
1349CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1306CONFIG_HAVE_DYNAMIC_FTRACE=y 1350CONFIG_HAVE_DYNAMIC_FTRACE=y
1307CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1351CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1352CONFIG_TRACING_SUPPORT=y
1308 1353
1309# 1354#
1310# Tracers 1355# Tracers
1311# 1356#
1312# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1357# CONFIG_FUNCTION_TRACER is not set
1358# CONFIG_SCHED_TRACER is not set
1359# CONFIG_CONTEXT_SWITCH_TRACER is not set
1360# CONFIG_EVENT_TRACER is not set
1361# CONFIG_BOOT_TRACER is not set
1362# CONFIG_TRACE_BRANCH_PROFILING is not set
1363# CONFIG_STACK_TRACER is not set
1364# CONFIG_KMEMTRACE is not set
1365# CONFIG_WORKQUEUE_TRACER is not set
1366# CONFIG_BLK_DEV_IO_TRACE is not set
1313# CONFIG_SAMPLES is not set 1367# CONFIG_SAMPLES is not set
1314CONFIG_HAVE_ARCH_KGDB=y 1368CONFIG_HAVE_ARCH_KGDB=y
1315CONFIG_PRINT_STACK_DEPTH=64 1369CONFIG_PRINT_STACK_DEPTH=64
@@ -1338,10 +1392,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1338CONFIG_CRYPTO_HASH=y 1392CONFIG_CRYPTO_HASH=y
1339CONFIG_CRYPTO_HASH2=y 1393CONFIG_CRYPTO_HASH2=y
1340CONFIG_CRYPTO_RNG2=y 1394CONFIG_CRYPTO_RNG2=y
1395CONFIG_CRYPTO_PCOMP=y
1341CONFIG_CRYPTO_MANAGER=y 1396CONFIG_CRYPTO_MANAGER=y
1342CONFIG_CRYPTO_MANAGER2=y 1397CONFIG_CRYPTO_MANAGER2=y
1343# CONFIG_CRYPTO_GF128MUL is not set 1398# CONFIG_CRYPTO_GF128MUL is not set
1344# CONFIG_CRYPTO_NULL is not set 1399# CONFIG_CRYPTO_NULL is not set
1400CONFIG_CRYPTO_WORKQUEUE=y
1345# CONFIG_CRYPTO_CRYPTD is not set 1401# CONFIG_CRYPTO_CRYPTD is not set
1346# CONFIG_CRYPTO_AUTHENC is not set 1402# CONFIG_CRYPTO_AUTHENC is not set
1347# CONFIG_CRYPTO_TEST is not set 1403# CONFIG_CRYPTO_TEST is not set
@@ -1410,6 +1466,7 @@ CONFIG_CRYPTO_DES=y
1410# Compression 1466# Compression
1411# 1467#
1412# CONFIG_CRYPTO_DEFLATE is not set 1468# CONFIG_CRYPTO_DEFLATE is not set
1469# CONFIG_CRYPTO_ZLIB is not set
1413# CONFIG_CRYPTO_LZO is not set 1470# CONFIG_CRYPTO_LZO is not set
1414 1471
1415# 1472#
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index 4bcc4a1ff308..24ee7fcac87e 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:53 2009 4# Wed May 13 17:22:09 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_ITX=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -465,7 +479,6 @@ CONFIG_MTD_PHYSMAP=y
465# LPDDR flash memory drivers 479# LPDDR flash memory drivers
466# 480#
467# CONFIG_MTD_LPDDR is not set 481# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469 482
470# 483#
471# UBI - Unsorted block images 484# UBI - Unsorted block images
@@ -496,13 +509,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
496# CONFIG_BLK_DEV_HD is not set 509# CONFIG_BLK_DEV_HD is not set
497CONFIG_MISC_DEVICES=y 510CONFIG_MISC_DEVICES=y
498# CONFIG_PHANTOM is not set 511# CONFIG_PHANTOM is not set
499# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 512# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 513# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set 514# CONFIG_ICS932S401 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 516# CONFIG_HP_ILO is not set
517# CONFIG_ISL29003 is not set
505# CONFIG_C2PORT is not set 518# CONFIG_C2PORT is not set
519
520#
521# EEPROM support
522#
523# CONFIG_EEPROM_AT24 is not set
524# CONFIG_EEPROM_AT25 is not set
525# CONFIG_EEPROM_LEGACY is not set
526# CONFIG_EEPROM_93CX6 is not set
506CONFIG_HAVE_IDE=y 527CONFIG_HAVE_IDE=y
507CONFIG_IDE=y 528CONFIG_IDE=y
508 529
@@ -608,9 +629,11 @@ CONFIG_SCSI_LOWLEVEL=y
608# CONFIG_MEGARAID_NEWGEN is not set 629# CONFIG_MEGARAID_NEWGEN is not set
609# CONFIG_MEGARAID_LEGACY is not set 630# CONFIG_MEGARAID_LEGACY is not set
610# CONFIG_MEGARAID_SAS is not set 631# CONFIG_MEGARAID_SAS is not set
632# CONFIG_SCSI_MPT2SAS is not set
611# CONFIG_SCSI_HPTIOP is not set 633# CONFIG_SCSI_HPTIOP is not set
612# CONFIG_SCSI_BUSLOGIC is not set 634# CONFIG_SCSI_BUSLOGIC is not set
613# CONFIG_LIBFC is not set 635# CONFIG_LIBFC is not set
636# CONFIG_LIBFCOE is not set
614# CONFIG_FCOE is not set 637# CONFIG_FCOE is not set
615# CONFIG_SCSI_DMX3191D is not set 638# CONFIG_SCSI_DMX3191D is not set
616# CONFIG_SCSI_EATA is not set 639# CONFIG_SCSI_EATA is not set
@@ -633,6 +656,7 @@ CONFIG_SCSI_LOWLEVEL=y
633# CONFIG_SCSI_DEBUG is not set 656# CONFIG_SCSI_DEBUG is not set
634# CONFIG_SCSI_SRP is not set 657# CONFIG_SCSI_SRP is not set
635# CONFIG_SCSI_DH is not set 658# CONFIG_SCSI_DH is not set
659# CONFIG_SCSI_OSD_INITIATOR is not set
636CONFIG_ATA=y 660CONFIG_ATA=y
637# CONFIG_ATA_NONSTANDARD is not set 661# CONFIG_ATA_NONSTANDARD is not set
638CONFIG_SATA_PMP=y 662CONFIG_SATA_PMP=y
@@ -720,6 +744,7 @@ CONFIG_MD_RAID1=y
720# CONFIG_I2O is not set 744# CONFIG_I2O is not set
721# CONFIG_MACINTOSH_DRIVERS is not set 745# CONFIG_MACINTOSH_DRIVERS is not set
722CONFIG_NETDEVICES=y 746CONFIG_NETDEVICES=y
747CONFIG_COMPAT_NET_DEV_OPS=y
723# CONFIG_DUMMY is not set 748# CONFIG_DUMMY is not set
724# CONFIG_BONDING is not set 749# CONFIG_BONDING is not set
725# CONFIG_MACVLAN is not set 750# CONFIG_MACVLAN is not set
@@ -755,6 +780,7 @@ CONFIG_NETDEV_1000=y
755# CONFIG_E1000E is not set 780# CONFIG_E1000E is not set
756# CONFIG_IP1000 is not set 781# CONFIG_IP1000 is not set
757# CONFIG_IGB is not set 782# CONFIG_IGB is not set
783# CONFIG_IGBVF is not set
758# CONFIG_NS83820 is not set 784# CONFIG_NS83820 is not set
759# CONFIG_HAMACHI is not set 785# CONFIG_HAMACHI is not set
760# CONFIG_YELLOWFIN is not set 786# CONFIG_YELLOWFIN is not set
@@ -765,11 +791,12 @@ CONFIG_NETDEV_1000=y
765# CONFIG_VIA_VELOCITY is not set 791# CONFIG_VIA_VELOCITY is not set
766# CONFIG_TIGON3 is not set 792# CONFIG_TIGON3 is not set
767# CONFIG_BNX2 is not set 793# CONFIG_BNX2 is not set
794CONFIG_FSL_PQ_MDIO=y
768CONFIG_GIANFAR=y 795CONFIG_GIANFAR=y
769# CONFIG_MV643XX_ETH is not set
770# CONFIG_QLA3XXX is not set 796# CONFIG_QLA3XXX is not set
771# CONFIG_ATL1 is not set 797# CONFIG_ATL1 is not set
772# CONFIG_ATL1E is not set 798# CONFIG_ATL1E is not set
799# CONFIG_ATL1C is not set
773# CONFIG_JME is not set 800# CONFIG_JME is not set
774CONFIG_NETDEV_10000=y 801CONFIG_NETDEV_10000=y
775# CONFIG_CHELSIO_T1 is not set 802# CONFIG_CHELSIO_T1 is not set
@@ -779,6 +806,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
779# CONFIG_IXGBE is not set 806# CONFIG_IXGBE is not set
780# CONFIG_IXGB is not set 807# CONFIG_IXGB is not set
781# CONFIG_S2IO is not set 808# CONFIG_S2IO is not set
809# CONFIG_VXGE is not set
782# CONFIG_MYRI10GE is not set 810# CONFIG_MYRI10GE is not set
783# CONFIG_NETXEN_NIC is not set 811# CONFIG_NETXEN_NIC is not set
784# CONFIG_NIU is not set 812# CONFIG_NIU is not set
@@ -788,6 +816,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
788# CONFIG_BNX2X is not set 816# CONFIG_BNX2X is not set
789# CONFIG_QLGE is not set 817# CONFIG_QLGE is not set
790# CONFIG_SFC is not set 818# CONFIG_SFC is not set
819# CONFIG_BE2NET is not set
791# CONFIG_TR is not set 820# CONFIG_TR is not set
792 821
793# 822#
@@ -795,7 +824,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
795# 824#
796# CONFIG_WLAN_PRE80211 is not set 825# CONFIG_WLAN_PRE80211 is not set
797# CONFIG_WLAN_80211 is not set 826# CONFIG_WLAN_80211 is not set
798# CONFIG_IWLWIFI_LEDS is not set
799 827
800# 828#
801# Enable WiMAX (Networking options) to see the WiMAX drivers 829# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -853,6 +881,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
853# 881#
854# Non-8250 serial port support 882# Non-8250 serial port support
855# 883#
884# CONFIG_SERIAL_MAX3100 is not set
856# CONFIG_SERIAL_UARTLITE is not set 885# CONFIG_SERIAL_UARTLITE is not set
857CONFIG_SERIAL_CORE=y 886CONFIG_SERIAL_CORE=y
858CONFIG_SERIAL_CORE_CONSOLE=y 887CONFIG_SERIAL_CORE_CONSOLE=y
@@ -865,6 +894,7 @@ CONFIG_LEGACY_PTY_COUNT=256
865# CONFIG_HVC_UDBG is not set 894# CONFIG_HVC_UDBG is not set
866# CONFIG_IPMI_HANDLER is not set 895# CONFIG_IPMI_HANDLER is not set
867CONFIG_HW_RANDOM=y 896CONFIG_HW_RANDOM=y
897# CONFIG_HW_RANDOM_TIMERIOMEM is not set
868# CONFIG_NVRAM is not set 898# CONFIG_NVRAM is not set
869# CONFIG_R3964 is not set 899# CONFIG_R3964 is not set
870# CONFIG_APPLICOM is not set 900# CONFIG_APPLICOM is not set
@@ -927,12 +957,9 @@ CONFIG_I2C_MPC=y
927# Miscellaneous I2C Chip support 957# Miscellaneous I2C Chip support
928# 958#
929# CONFIG_DS1682 is not set 959# CONFIG_DS1682 is not set
930# CONFIG_EEPROM_AT24 is not set
931# CONFIG_EEPROM_LEGACY is not set
932CONFIG_SENSORS_PCF8574=y 960CONFIG_SENSORS_PCF8574=y
933# CONFIG_PCF8575 is not set 961# CONFIG_PCF8575 is not set
934# CONFIG_SENSORS_PCA9539 is not set 962# CONFIG_SENSORS_PCA9539 is not set
935# CONFIG_SENSORS_PCF8591 is not set
936# CONFIG_SENSORS_MAX6875 is not set 963# CONFIG_SENSORS_MAX6875 is not set
937# CONFIG_SENSORS_TSL2550 is not set 964# CONFIG_SENSORS_TSL2550 is not set
938# CONFIG_I2C_DEBUG_CORE is not set 965# CONFIG_I2C_DEBUG_CORE is not set
@@ -951,7 +978,6 @@ CONFIG_SPI_MPC83xx=y
951# 978#
952# SPI Protocol Masters 979# SPI Protocol Masters
953# 980#
954# CONFIG_EEPROM_AT25 is not set
955# CONFIG_SPI_SPIDEV is not set 981# CONFIG_SPI_SPIDEV is not set
956# CONFIG_SPI_TLE62X0 is not set 982# CONFIG_SPI_TLE62X0 is not set
957CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 983CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -1083,11 +1109,11 @@ CONFIG_USB_UHCI_HCD=y
1083# CONFIG_USB_TMC is not set 1109# CONFIG_USB_TMC is not set
1084 1110
1085# 1111#
1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1112# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1087# 1113#
1088 1114
1089# 1115#
1090# see USB_STORAGE Help for more information 1116# also be needed; see USB_STORAGE Help for more info
1091# 1117#
1092CONFIG_USB_STORAGE=y 1118CONFIG_USB_STORAGE=y
1093# CONFIG_USB_STORAGE_DEBUG is not set 1119# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1128,7 +1154,6 @@ CONFIG_USB_STORAGE=y
1128# CONFIG_USB_LED is not set 1154# CONFIG_USB_LED is not set
1129# CONFIG_USB_CYPRESS_CY7C63 is not set 1155# CONFIG_USB_CYPRESS_CY7C63 is not set
1130# CONFIG_USB_CYTHERM is not set 1156# CONFIG_USB_CYTHERM is not set
1131# CONFIG_USB_PHIDGET is not set
1132# CONFIG_USB_IDMOUSE is not set 1157# CONFIG_USB_IDMOUSE is not set
1133# CONFIG_USB_FTDI_ELAN is not set 1158# CONFIG_USB_FTDI_ELAN is not set
1134# CONFIG_USB_APPLEDISPLAY is not set 1159# CONFIG_USB_APPLEDISPLAY is not set
@@ -1144,6 +1169,7 @@ CONFIG_USB_STORAGE=y
1144# 1169#
1145# OTG and related infrastructure 1170# OTG and related infrastructure
1146# 1171#
1172# CONFIG_NOP_USB_XCEIV is not set
1147# CONFIG_UWB is not set 1173# CONFIG_UWB is not set
1148# CONFIG_MMC is not set 1174# CONFIG_MMC is not set
1149# CONFIG_MEMSTICK is not set 1175# CONFIG_MEMSTICK is not set
@@ -1212,8 +1238,9 @@ CONFIG_RTC_DRV_DS1307=y
1212# 1238#
1213# on-CPU RTC drivers 1239# on-CPU RTC drivers
1214# 1240#
1215# CONFIG_RTC_DRV_PPC is not set 1241# CONFIG_RTC_DRV_GENERIC is not set
1216# CONFIG_DMADEVICES is not set 1242# CONFIG_DMADEVICES is not set
1243# CONFIG_AUXDISPLAY is not set
1217# CONFIG_UIO is not set 1244# CONFIG_UIO is not set
1218# CONFIG_STAGING is not set 1245# CONFIG_STAGING is not set
1219 1246
@@ -1224,6 +1251,7 @@ CONFIG_EXT2_FS=y
1224# CONFIG_EXT2_FS_XATTR is not set 1251# CONFIG_EXT2_FS_XATTR is not set
1225# CONFIG_EXT2_FS_XIP is not set 1252# CONFIG_EXT2_FS_XIP is not set
1226CONFIG_EXT3_FS=y 1253CONFIG_EXT3_FS=y
1254# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1227CONFIG_EXT3_FS_XATTR=y 1255CONFIG_EXT3_FS_XATTR=y
1228# CONFIG_EXT3_FS_POSIX_ACL is not set 1256# CONFIG_EXT3_FS_POSIX_ACL is not set
1229# CONFIG_EXT3_FS_SECURITY is not set 1257# CONFIG_EXT3_FS_SECURITY is not set
@@ -1246,6 +1274,11 @@ CONFIG_INOTIFY_USER=y
1246# CONFIG_FUSE_FS is not set 1274# CONFIG_FUSE_FS is not set
1247 1275
1248# 1276#
1277# Caches
1278#
1279# CONFIG_FSCACHE is not set
1280
1281#
1249# CD-ROM/DVD Filesystems 1282# CD-ROM/DVD Filesystems
1250# 1283#
1251# CONFIG_ISO9660_FS is not set 1284# CONFIG_ISO9660_FS is not set
@@ -1292,6 +1325,7 @@ CONFIG_MISC_FILESYSTEMS=y
1292# CONFIG_ROMFS_FS is not set 1325# CONFIG_ROMFS_FS is not set
1293# CONFIG_SYSV_FS is not set 1326# CONFIG_SYSV_FS is not set
1294# CONFIG_UFS_FS is not set 1327# CONFIG_UFS_FS is not set
1328# CONFIG_NILFS2_FS is not set
1295CONFIG_NETWORK_FILESYSTEMS=y 1329CONFIG_NETWORK_FILESYSTEMS=y
1296CONFIG_NFS_FS=y 1330CONFIG_NFS_FS=y
1297CONFIG_NFS_V3=y 1331CONFIG_NFS_V3=y
@@ -1304,7 +1338,6 @@ CONFIG_LOCKD_V4=y
1304CONFIG_NFS_COMMON=y 1338CONFIG_NFS_COMMON=y
1305CONFIG_SUNRPC=y 1339CONFIG_SUNRPC=y
1306CONFIG_SUNRPC_GSS=y 1340CONFIG_SUNRPC_GSS=y
1307# CONFIG_SUNRPC_REGISTER_V4 is not set
1308CONFIG_RPCSEC_GSS_KRB5=y 1341CONFIG_RPCSEC_GSS_KRB5=y
1309# CONFIG_RPCSEC_GSS_SPKM3 is not set 1342# CONFIG_RPCSEC_GSS_SPKM3 is not set
1310# CONFIG_SMB_FS is not set 1343# CONFIG_SMB_FS is not set
@@ -1375,6 +1408,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1375# CONFIG_NLS_KOI8_U is not set 1408# CONFIG_NLS_KOI8_U is not set
1376# CONFIG_NLS_UTF8 is not set 1409# CONFIG_NLS_UTF8 is not set
1377# CONFIG_DLM is not set 1410# CONFIG_DLM is not set
1411# CONFIG_BINARY_PRINTF is not set
1378 1412
1379# 1413#
1380# Library routines 1414# Library routines
@@ -1388,11 +1422,13 @@ CONFIG_CRC_T10DIF=y
1388CONFIG_CRC32=y 1422CONFIG_CRC32=y
1389# CONFIG_CRC7 is not set 1423# CONFIG_CRC7 is not set
1390# CONFIG_LIBCRC32C is not set 1424# CONFIG_LIBCRC32C is not set
1391CONFIG_PLIST=y 1425CONFIG_ZLIB_INFLATE=y
1426CONFIG_DECOMPRESS_GZIP=y
1392CONFIG_HAS_IOMEM=y 1427CONFIG_HAS_IOMEM=y
1393CONFIG_HAS_IOPORT=y 1428CONFIG_HAS_IOPORT=y
1394CONFIG_HAS_DMA=y 1429CONFIG_HAS_DMA=y
1395CONFIG_HAVE_LMB=y 1430CONFIG_HAVE_LMB=y
1431CONFIG_NLATTR=y
1396 1432
1397# 1433#
1398# Kernel hacking 1434# Kernel hacking
@@ -1414,13 +1450,24 @@ CONFIG_FRAME_WARN=1024
1414# CONFIG_LATENCYTOP is not set 1450# CONFIG_LATENCYTOP is not set
1415CONFIG_SYSCTL_SYSCALL_CHECK=y 1451CONFIG_SYSCTL_SYSCALL_CHECK=y
1416CONFIG_HAVE_FUNCTION_TRACER=y 1452CONFIG_HAVE_FUNCTION_TRACER=y
1453CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1417CONFIG_HAVE_DYNAMIC_FTRACE=y 1454CONFIG_HAVE_DYNAMIC_FTRACE=y
1418CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1455CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1456CONFIG_TRACING_SUPPORT=y
1419 1457
1420# 1458#
1421# Tracers 1459# Tracers
1422# 1460#
1423# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1461# CONFIG_FUNCTION_TRACER is not set
1462# CONFIG_SCHED_TRACER is not set
1463# CONFIG_CONTEXT_SWITCH_TRACER is not set
1464# CONFIG_EVENT_TRACER is not set
1465# CONFIG_BOOT_TRACER is not set
1466# CONFIG_TRACE_BRANCH_PROFILING is not set
1467# CONFIG_STACK_TRACER is not set
1468# CONFIG_KMEMTRACE is not set
1469# CONFIG_WORKQUEUE_TRACER is not set
1470# CONFIG_BLK_DEV_IO_TRACE is not set
1424# CONFIG_SAMPLES is not set 1471# CONFIG_SAMPLES is not set
1425CONFIG_HAVE_ARCH_KGDB=y 1472CONFIG_HAVE_ARCH_KGDB=y
1426CONFIG_PRINT_STACK_DEPTH=64 1473CONFIG_PRINT_STACK_DEPTH=64
@@ -1449,10 +1496,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1449CONFIG_CRYPTO_HASH=y 1496CONFIG_CRYPTO_HASH=y
1450CONFIG_CRYPTO_HASH2=y 1497CONFIG_CRYPTO_HASH2=y
1451CONFIG_CRYPTO_RNG2=y 1498CONFIG_CRYPTO_RNG2=y
1499CONFIG_CRYPTO_PCOMP=y
1452CONFIG_CRYPTO_MANAGER=y 1500CONFIG_CRYPTO_MANAGER=y
1453CONFIG_CRYPTO_MANAGER2=y 1501CONFIG_CRYPTO_MANAGER2=y
1454# CONFIG_CRYPTO_GF128MUL is not set 1502# CONFIG_CRYPTO_GF128MUL is not set
1455# CONFIG_CRYPTO_NULL is not set 1503# CONFIG_CRYPTO_NULL is not set
1504CONFIG_CRYPTO_WORKQUEUE=y
1456# CONFIG_CRYPTO_CRYPTD is not set 1505# CONFIG_CRYPTO_CRYPTD is not set
1457# CONFIG_CRYPTO_AUTHENC is not set 1506# CONFIG_CRYPTO_AUTHENC is not set
1458# CONFIG_CRYPTO_TEST is not set 1507# CONFIG_CRYPTO_TEST is not set
@@ -1521,6 +1570,7 @@ CONFIG_CRYPTO_DES=y
1521# Compression 1570# Compression
1522# 1571#
1523# CONFIG_CRYPTO_DEFLATE is not set 1572# CONFIG_CRYPTO_DEFLATE is not set
1573# CONFIG_CRYPTO_ZLIB is not set
1524# CONFIG_CRYPTO_LZO is not set 1574# CONFIG_CRYPTO_LZO is not set
1525 1575
1526# 1576#
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 9ba5518ce8df..7f39543205a9 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:55 2009 4# Wed May 13 17:22:10 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_ITX=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -465,7 +479,6 @@ CONFIG_MTD_PHYSMAP=y
465# LPDDR flash memory drivers 479# LPDDR flash memory drivers
466# 480#
467# CONFIG_MTD_LPDDR is not set 481# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469 482
470# 483#
471# UBI - Unsorted block images 484# UBI - Unsorted block images
@@ -496,13 +509,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
496# CONFIG_BLK_DEV_HD is not set 509# CONFIG_BLK_DEV_HD is not set
497CONFIG_MISC_DEVICES=y 510CONFIG_MISC_DEVICES=y
498# CONFIG_PHANTOM is not set 511# CONFIG_PHANTOM is not set
499# CONFIG_EEPROM_93CX6 is not set
500# CONFIG_SGI_IOC4 is not set 512# CONFIG_SGI_IOC4 is not set
501# CONFIG_TIFM_CORE is not set 513# CONFIG_TIFM_CORE is not set
502# CONFIG_ICS932S401 is not set 514# CONFIG_ICS932S401 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 515# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 516# CONFIG_HP_ILO is not set
517# CONFIG_ISL29003 is not set
505# CONFIG_C2PORT is not set 518# CONFIG_C2PORT is not set
519
520#
521# EEPROM support
522#
523# CONFIG_EEPROM_AT24 is not set
524# CONFIG_EEPROM_AT25 is not set
525# CONFIG_EEPROM_LEGACY is not set
526# CONFIG_EEPROM_93CX6 is not set
506CONFIG_HAVE_IDE=y 527CONFIG_HAVE_IDE=y
507# CONFIG_IDE is not set 528# CONFIG_IDE is not set
508 529
@@ -560,9 +581,11 @@ CONFIG_SCSI_LOWLEVEL=y
560# CONFIG_MEGARAID_NEWGEN is not set 581# CONFIG_MEGARAID_NEWGEN is not set
561# CONFIG_MEGARAID_LEGACY is not set 582# CONFIG_MEGARAID_LEGACY is not set
562# CONFIG_MEGARAID_SAS is not set 583# CONFIG_MEGARAID_SAS is not set
584# CONFIG_SCSI_MPT2SAS is not set
563# CONFIG_SCSI_HPTIOP is not set 585# CONFIG_SCSI_HPTIOP is not set
564# CONFIG_SCSI_BUSLOGIC is not set 586# CONFIG_SCSI_BUSLOGIC is not set
565# CONFIG_LIBFC is not set 587# CONFIG_LIBFC is not set
588# CONFIG_LIBFCOE is not set
566# CONFIG_FCOE is not set 589# CONFIG_FCOE is not set
567# CONFIG_SCSI_DMX3191D is not set 590# CONFIG_SCSI_DMX3191D is not set
568# CONFIG_SCSI_EATA is not set 591# CONFIG_SCSI_EATA is not set
@@ -584,6 +607,7 @@ CONFIG_SCSI_LOWLEVEL=y
584# CONFIG_SCSI_DEBUG is not set 607# CONFIG_SCSI_DEBUG is not set
585# CONFIG_SCSI_SRP is not set 608# CONFIG_SCSI_SRP is not set
586# CONFIG_SCSI_DH is not set 609# CONFIG_SCSI_DH is not set
610# CONFIG_SCSI_OSD_INITIATOR is not set
587# CONFIG_ATA is not set 611# CONFIG_ATA is not set
588# CONFIG_MD is not set 612# CONFIG_MD is not set
589# CONFIG_FUSION is not set 613# CONFIG_FUSION is not set
@@ -600,6 +624,7 @@ CONFIG_SCSI_LOWLEVEL=y
600# CONFIG_I2O is not set 624# CONFIG_I2O is not set
601# CONFIG_MACINTOSH_DRIVERS is not set 625# CONFIG_MACINTOSH_DRIVERS is not set
602CONFIG_NETDEVICES=y 626CONFIG_NETDEVICES=y
627CONFIG_COMPAT_NET_DEV_OPS=y
603# CONFIG_DUMMY is not set 628# CONFIG_DUMMY is not set
604# CONFIG_BONDING is not set 629# CONFIG_BONDING is not set
605# CONFIG_MACVLAN is not set 630# CONFIG_MACVLAN is not set
@@ -635,6 +660,7 @@ CONFIG_NETDEV_1000=y
635# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
636# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
637# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
638# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
639# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
640# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -645,11 +671,12 @@ CONFIG_NETDEV_1000=y
645# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
646# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
647# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
648CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
649# CONFIG_MV643XX_ETH is not set
650# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
651# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
652# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
653# CONFIG_JME is not set 680# CONFIG_JME is not set
654CONFIG_NETDEV_10000=y 681CONFIG_NETDEV_10000=y
655# CONFIG_CHELSIO_T1 is not set 682# CONFIG_CHELSIO_T1 is not set
@@ -659,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_IXGBE is not set 686# CONFIG_IXGBE is not set
660# CONFIG_IXGB is not set 687# CONFIG_IXGB is not set
661# CONFIG_S2IO is not set 688# CONFIG_S2IO is not set
689# CONFIG_VXGE is not set
662# CONFIG_MYRI10GE is not set 690# CONFIG_MYRI10GE is not set
663# CONFIG_NETXEN_NIC is not set 691# CONFIG_NETXEN_NIC is not set
664# CONFIG_NIU is not set 692# CONFIG_NIU is not set
@@ -668,6 +696,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
668# CONFIG_BNX2X is not set 696# CONFIG_BNX2X is not set
669# CONFIG_QLGE is not set 697# CONFIG_QLGE is not set
670# CONFIG_SFC is not set 698# CONFIG_SFC is not set
699# CONFIG_BE2NET is not set
671# CONFIG_TR is not set 700# CONFIG_TR is not set
672 701
673# 702#
@@ -675,7 +704,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
675# 704#
676# CONFIG_WLAN_PRE80211 is not set 705# CONFIG_WLAN_PRE80211 is not set
677# CONFIG_WLAN_80211 is not set 706# CONFIG_WLAN_80211 is not set
678# CONFIG_IWLWIFI_LEDS is not set
679 707
680# 708#
681# Enable WiMAX (Networking options) to see the WiMAX drivers 709# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -733,6 +761,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
733# 761#
734# Non-8250 serial port support 762# Non-8250 serial port support
735# 763#
764# CONFIG_SERIAL_MAX3100 is not set
736# CONFIG_SERIAL_UARTLITE is not set 765# CONFIG_SERIAL_UARTLITE is not set
737CONFIG_SERIAL_CORE=y 766CONFIG_SERIAL_CORE=y
738CONFIG_SERIAL_CORE_CONSOLE=y 767CONFIG_SERIAL_CORE_CONSOLE=y
@@ -745,6 +774,7 @@ CONFIG_LEGACY_PTY_COUNT=256
745# CONFIG_HVC_UDBG is not set 774# CONFIG_HVC_UDBG is not set
746# CONFIG_IPMI_HANDLER is not set 775# CONFIG_IPMI_HANDLER is not set
747CONFIG_HW_RANDOM=y 776CONFIG_HW_RANDOM=y
777# CONFIG_HW_RANDOM_TIMERIOMEM is not set
748# CONFIG_NVRAM is not set 778# CONFIG_NVRAM is not set
749# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
750# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -807,12 +837,9 @@ CONFIG_I2C_MPC=y
807# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
808# 838#
809# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
810# CONFIG_EEPROM_AT24 is not set
811# CONFIG_EEPROM_LEGACY is not set
812CONFIG_SENSORS_PCF8574=y 840CONFIG_SENSORS_PCF8574=y
813# CONFIG_PCF8575 is not set 841# CONFIG_PCF8575 is not set
814# CONFIG_SENSORS_PCA9539 is not set 842# CONFIG_SENSORS_PCA9539 is not set
815# CONFIG_SENSORS_PCF8591 is not set
816# CONFIG_SENSORS_MAX6875 is not set 843# CONFIG_SENSORS_MAX6875 is not set
817# CONFIG_SENSORS_TSL2550 is not set 844# CONFIG_SENSORS_TSL2550 is not set
818# CONFIG_I2C_DEBUG_CORE is not set 845# CONFIG_I2C_DEBUG_CORE is not set
@@ -831,7 +858,6 @@ CONFIG_SPI_MPC83xx=y
831# 858#
832# SPI Protocol Masters 859# SPI Protocol Masters
833# 860#
834# CONFIG_EEPROM_AT25 is not set
835# CONFIG_SPI_SPIDEV is not set 861# CONFIG_SPI_SPIDEV is not set
836# CONFIG_SPI_TLE62X0 is not set 862# CONFIG_SPI_TLE62X0 is not set
837CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 863CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -963,11 +989,11 @@ CONFIG_USB_UHCI_HCD=y
963# CONFIG_USB_TMC is not set 989# CONFIG_USB_TMC is not set
964 990
965# 991#
966# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 992# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
967# 993#
968 994
969# 995#
970# see USB_STORAGE Help for more information 996# also be needed; see USB_STORAGE Help for more info
971# 997#
972CONFIG_USB_STORAGE=y 998CONFIG_USB_STORAGE=y
973# CONFIG_USB_STORAGE_DEBUG is not set 999# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1008,7 +1034,6 @@ CONFIG_USB_STORAGE=y
1008# CONFIG_USB_LED is not set 1034# CONFIG_USB_LED is not set
1009# CONFIG_USB_CYPRESS_CY7C63 is not set 1035# CONFIG_USB_CYPRESS_CY7C63 is not set
1010# CONFIG_USB_CYTHERM is not set 1036# CONFIG_USB_CYTHERM is not set
1011# CONFIG_USB_PHIDGET is not set
1012# CONFIG_USB_IDMOUSE is not set 1037# CONFIG_USB_IDMOUSE is not set
1013# CONFIG_USB_FTDI_ELAN is not set 1038# CONFIG_USB_FTDI_ELAN is not set
1014# CONFIG_USB_APPLEDISPLAY is not set 1039# CONFIG_USB_APPLEDISPLAY is not set
@@ -1023,6 +1048,7 @@ CONFIG_USB_STORAGE=y
1023# 1048#
1024# OTG and related infrastructure 1049# OTG and related infrastructure
1025# 1050#
1051# CONFIG_NOP_USB_XCEIV is not set
1026# CONFIG_UWB is not set 1052# CONFIG_UWB is not set
1027# CONFIG_MMC is not set 1053# CONFIG_MMC is not set
1028# CONFIG_MEMSTICK is not set 1054# CONFIG_MEMSTICK is not set
@@ -1091,8 +1117,9 @@ CONFIG_RTC_DRV_DS1307=y
1091# 1117#
1092# on-CPU RTC drivers 1118# on-CPU RTC drivers
1093# 1119#
1094# CONFIG_RTC_DRV_PPC is not set 1120# CONFIG_RTC_DRV_GENERIC is not set
1095# CONFIG_DMADEVICES is not set 1121# CONFIG_DMADEVICES is not set
1122# CONFIG_AUXDISPLAY is not set
1096# CONFIG_UIO is not set 1123# CONFIG_UIO is not set
1097# CONFIG_STAGING is not set 1124# CONFIG_STAGING is not set
1098 1125
@@ -1103,6 +1130,7 @@ CONFIG_EXT2_FS=y
1103# CONFIG_EXT2_FS_XATTR is not set 1130# CONFIG_EXT2_FS_XATTR is not set
1104# CONFIG_EXT2_FS_XIP is not set 1131# CONFIG_EXT2_FS_XIP is not set
1105CONFIG_EXT3_FS=y 1132CONFIG_EXT3_FS=y
1133# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1106CONFIG_EXT3_FS_XATTR=y 1134CONFIG_EXT3_FS_XATTR=y
1107# CONFIG_EXT3_FS_POSIX_ACL is not set 1135# CONFIG_EXT3_FS_POSIX_ACL is not set
1108# CONFIG_EXT3_FS_SECURITY is not set 1136# CONFIG_EXT3_FS_SECURITY is not set
@@ -1125,6 +1153,11 @@ CONFIG_INOTIFY_USER=y
1125# CONFIG_FUSE_FS is not set 1153# CONFIG_FUSE_FS is not set
1126 1154
1127# 1155#
1156# Caches
1157#
1158# CONFIG_FSCACHE is not set
1159
1160#
1128# CD-ROM/DVD Filesystems 1161# CD-ROM/DVD Filesystems
1129# 1162#
1130# CONFIG_ISO9660_FS is not set 1163# CONFIG_ISO9660_FS is not set
@@ -1171,6 +1204,7 @@ CONFIG_MISC_FILESYSTEMS=y
1171# CONFIG_ROMFS_FS is not set 1204# CONFIG_ROMFS_FS is not set
1172# CONFIG_SYSV_FS is not set 1205# CONFIG_SYSV_FS is not set
1173# CONFIG_UFS_FS is not set 1206# CONFIG_UFS_FS is not set
1207# CONFIG_NILFS2_FS is not set
1174CONFIG_NETWORK_FILESYSTEMS=y 1208CONFIG_NETWORK_FILESYSTEMS=y
1175CONFIG_NFS_FS=y 1209CONFIG_NFS_FS=y
1176CONFIG_NFS_V3=y 1210CONFIG_NFS_V3=y
@@ -1183,7 +1217,6 @@ CONFIG_LOCKD_V4=y
1183CONFIG_NFS_COMMON=y 1217CONFIG_NFS_COMMON=y
1184CONFIG_SUNRPC=y 1218CONFIG_SUNRPC=y
1185CONFIG_SUNRPC_GSS=y 1219CONFIG_SUNRPC_GSS=y
1186# CONFIG_SUNRPC_REGISTER_V4 is not set
1187CONFIG_RPCSEC_GSS_KRB5=y 1220CONFIG_RPCSEC_GSS_KRB5=y
1188# CONFIG_RPCSEC_GSS_SPKM3 is not set 1221# CONFIG_RPCSEC_GSS_SPKM3 is not set
1189# CONFIG_SMB_FS is not set 1222# CONFIG_SMB_FS is not set
@@ -1254,6 +1287,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1254# CONFIG_NLS_KOI8_U is not set 1287# CONFIG_NLS_KOI8_U is not set
1255# CONFIG_NLS_UTF8 is not set 1288# CONFIG_NLS_UTF8 is not set
1256# CONFIG_DLM is not set 1289# CONFIG_DLM is not set
1290# CONFIG_BINARY_PRINTF is not set
1257 1291
1258# 1292#
1259# Library routines 1293# Library routines
@@ -1267,11 +1301,13 @@ CONFIG_CRC_T10DIF=y
1267CONFIG_CRC32=y 1301CONFIG_CRC32=y
1268# CONFIG_CRC7 is not set 1302# CONFIG_CRC7 is not set
1269# CONFIG_LIBCRC32C is not set 1303# CONFIG_LIBCRC32C is not set
1270CONFIG_PLIST=y 1304CONFIG_ZLIB_INFLATE=y
1305CONFIG_DECOMPRESS_GZIP=y
1271CONFIG_HAS_IOMEM=y 1306CONFIG_HAS_IOMEM=y
1272CONFIG_HAS_IOPORT=y 1307CONFIG_HAS_IOPORT=y
1273CONFIG_HAS_DMA=y 1308CONFIG_HAS_DMA=y
1274CONFIG_HAVE_LMB=y 1309CONFIG_HAVE_LMB=y
1310CONFIG_NLATTR=y
1275 1311
1276# 1312#
1277# Kernel hacking 1313# Kernel hacking
@@ -1293,13 +1329,24 @@ CONFIG_FRAME_WARN=1024
1293# CONFIG_LATENCYTOP is not set 1329# CONFIG_LATENCYTOP is not set
1294CONFIG_SYSCTL_SYSCALL_CHECK=y 1330CONFIG_SYSCTL_SYSCALL_CHECK=y
1295CONFIG_HAVE_FUNCTION_TRACER=y 1331CONFIG_HAVE_FUNCTION_TRACER=y
1332CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1296CONFIG_HAVE_DYNAMIC_FTRACE=y 1333CONFIG_HAVE_DYNAMIC_FTRACE=y
1297CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1334CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1335CONFIG_TRACING_SUPPORT=y
1298 1336
1299# 1337#
1300# Tracers 1338# Tracers
1301# 1339#
1302# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1340# CONFIG_FUNCTION_TRACER is not set
1341# CONFIG_SCHED_TRACER is not set
1342# CONFIG_CONTEXT_SWITCH_TRACER is not set
1343# CONFIG_EVENT_TRACER is not set
1344# CONFIG_BOOT_TRACER is not set
1345# CONFIG_TRACE_BRANCH_PROFILING is not set
1346# CONFIG_STACK_TRACER is not set
1347# CONFIG_KMEMTRACE is not set
1348# CONFIG_WORKQUEUE_TRACER is not set
1349# CONFIG_BLK_DEV_IO_TRACE is not set
1303# CONFIG_SAMPLES is not set 1350# CONFIG_SAMPLES is not set
1304CONFIG_HAVE_ARCH_KGDB=y 1351CONFIG_HAVE_ARCH_KGDB=y
1305CONFIG_PRINT_STACK_DEPTH=64 1352CONFIG_PRINT_STACK_DEPTH=64
@@ -1328,10 +1375,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1328CONFIG_CRYPTO_HASH=y 1375CONFIG_CRYPTO_HASH=y
1329CONFIG_CRYPTO_HASH2=y 1376CONFIG_CRYPTO_HASH2=y
1330CONFIG_CRYPTO_RNG2=y 1377CONFIG_CRYPTO_RNG2=y
1378CONFIG_CRYPTO_PCOMP=y
1331CONFIG_CRYPTO_MANAGER=y 1379CONFIG_CRYPTO_MANAGER=y
1332CONFIG_CRYPTO_MANAGER2=y 1380CONFIG_CRYPTO_MANAGER2=y
1333# CONFIG_CRYPTO_GF128MUL is not set 1381# CONFIG_CRYPTO_GF128MUL is not set
1334# CONFIG_CRYPTO_NULL is not set 1382# CONFIG_CRYPTO_NULL is not set
1383CONFIG_CRYPTO_WORKQUEUE=y
1335# CONFIG_CRYPTO_CRYPTD is not set 1384# CONFIG_CRYPTO_CRYPTD is not set
1336# CONFIG_CRYPTO_AUTHENC is not set 1385# CONFIG_CRYPTO_AUTHENC is not set
1337# CONFIG_CRYPTO_TEST is not set 1386# CONFIG_CRYPTO_TEST is not set
@@ -1400,6 +1449,7 @@ CONFIG_CRYPTO_DES=y
1400# Compression 1449# Compression
1401# 1450#
1402# CONFIG_CRYPTO_DEFLATE is not set 1451# CONFIG_CRYPTO_DEFLATE is not set
1452# CONFIG_CRYPTO_ZLIB is not set
1403# CONFIG_CRYPTO_LZO is not set 1453# CONFIG_CRYPTO_LZO is not set
1404 1454
1405# 1455#
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 18e4bc0b3c11..1cd1fcac22c8 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:56 2009 4# Wed May 13 17:22:11 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC834x_MDS=y
183CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -410,13 +424,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
410# CONFIG_BLK_DEV_HD is not set 424# CONFIG_BLK_DEV_HD is not set
411CONFIG_MISC_DEVICES=y 425CONFIG_MISC_DEVICES=y
412# CONFIG_PHANTOM is not set 426# CONFIG_PHANTOM is not set
413# CONFIG_EEPROM_93CX6 is not set
414# CONFIG_SGI_IOC4 is not set 427# CONFIG_SGI_IOC4 is not set
415# CONFIG_TIFM_CORE is not set 428# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set 429# CONFIG_ICS932S401 is not set
417# CONFIG_ENCLOSURE_SERVICES is not set 430# CONFIG_ENCLOSURE_SERVICES is not set
418# CONFIG_HP_ILO is not set 431# CONFIG_HP_ILO is not set
432# CONFIG_ISL29003 is not set
419# CONFIG_C2PORT is not set 433# CONFIG_C2PORT is not set
434
435#
436# EEPROM support
437#
438# CONFIG_EEPROM_AT24 is not set
439# CONFIG_EEPROM_LEGACY is not set
440# CONFIG_EEPROM_93CX6 is not set
420CONFIG_HAVE_IDE=y 441CONFIG_HAVE_IDE=y
421# CONFIG_IDE is not set 442# CONFIG_IDE is not set
422 443
@@ -443,6 +464,7 @@ CONFIG_HAVE_IDE=y
443# CONFIG_I2O is not set 464# CONFIG_I2O is not set
444# CONFIG_MACINTOSH_DRIVERS is not set 465# CONFIG_MACINTOSH_DRIVERS is not set
445CONFIG_NETDEVICES=y 466CONFIG_NETDEVICES=y
467CONFIG_COMPAT_NET_DEV_OPS=y
446# CONFIG_DUMMY is not set 468# CONFIG_DUMMY is not set
447# CONFIG_BONDING is not set 469# CONFIG_BONDING is not set
448# CONFIG_MACVLAN is not set 470# CONFIG_MACVLAN is not set
@@ -476,6 +498,8 @@ CONFIG_MII=y
476# CONFIG_SUNGEM is not set 498# CONFIG_SUNGEM is not set
477# CONFIG_CASSINI is not set 499# CONFIG_CASSINI is not set
478# CONFIG_NET_VENDOR_3COM is not set 500# CONFIG_NET_VENDOR_3COM is not set
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
479# CONFIG_NET_TULIP is not set 503# CONFIG_NET_TULIP is not set
480# CONFIG_HP100 is not set 504# CONFIG_HP100 is not set
481# CONFIG_IBM_NEW_EMAC_ZMII is not set 505# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -513,6 +537,7 @@ CONFIG_NETDEV_1000=y
513# CONFIG_E1000E is not set 537# CONFIG_E1000E is not set
514# CONFIG_IP1000 is not set 538# CONFIG_IP1000 is not set
515# CONFIG_IGB is not set 539# CONFIG_IGB is not set
540# CONFIG_IGBVF is not set
516# CONFIG_NS83820 is not set 541# CONFIG_NS83820 is not set
517# CONFIG_HAMACHI is not set 542# CONFIG_HAMACHI is not set
518# CONFIG_YELLOWFIN is not set 543# CONFIG_YELLOWFIN is not set
@@ -523,11 +548,12 @@ CONFIG_NETDEV_1000=y
523# CONFIG_VIA_VELOCITY is not set 548# CONFIG_VIA_VELOCITY is not set
524# CONFIG_TIGON3 is not set 549# CONFIG_TIGON3 is not set
525# CONFIG_BNX2 is not set 550# CONFIG_BNX2 is not set
551CONFIG_FSL_PQ_MDIO=y
526CONFIG_GIANFAR=y 552CONFIG_GIANFAR=y
527# CONFIG_MV643XX_ETH is not set
528# CONFIG_QLA3XXX is not set 553# CONFIG_QLA3XXX is not set
529# CONFIG_ATL1 is not set 554# CONFIG_ATL1 is not set
530# CONFIG_ATL1E is not set 555# CONFIG_ATL1E is not set
556# CONFIG_ATL1C is not set
531# CONFIG_JME is not set 557# CONFIG_JME is not set
532CONFIG_NETDEV_10000=y 558CONFIG_NETDEV_10000=y
533# CONFIG_CHELSIO_T1 is not set 559# CONFIG_CHELSIO_T1 is not set
@@ -537,6 +563,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
537# CONFIG_IXGBE is not set 563# CONFIG_IXGBE is not set
538# CONFIG_IXGB is not set 564# CONFIG_IXGB is not set
539# CONFIG_S2IO is not set 565# CONFIG_S2IO is not set
566# CONFIG_VXGE is not set
540# CONFIG_MYRI10GE is not set 567# CONFIG_MYRI10GE is not set
541# CONFIG_NETXEN_NIC is not set 568# CONFIG_NETXEN_NIC is not set
542# CONFIG_NIU is not set 569# CONFIG_NIU is not set
@@ -546,6 +573,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
546# CONFIG_BNX2X is not set 573# CONFIG_BNX2X is not set
547# CONFIG_QLGE is not set 574# CONFIG_QLGE is not set
548# CONFIG_SFC is not set 575# CONFIG_SFC is not set
576# CONFIG_BE2NET is not set
549# CONFIG_TR is not set 577# CONFIG_TR is not set
550 578
551# 579#
@@ -553,7 +581,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
553# 581#
554# CONFIG_WLAN_PRE80211 is not set 582# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 583# CONFIG_WLAN_80211 is not set
556# CONFIG_IWLWIFI_LEDS is not set
557 584
558# 585#
559# Enable WiMAX (Networking options) to see the WiMAX drivers 586# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -694,12 +721,9 @@ CONFIG_I2C_MPC=y
694# Miscellaneous I2C Chip support 721# Miscellaneous I2C Chip support
695# 722#
696# CONFIG_DS1682 is not set 723# CONFIG_DS1682 is not set
697# CONFIG_EEPROM_AT24 is not set
698# CONFIG_EEPROM_LEGACY is not set
699# CONFIG_SENSORS_PCF8574 is not set 724# CONFIG_SENSORS_PCF8574 is not set
700# CONFIG_PCF8575 is not set 725# CONFIG_PCF8575 is not set
701# CONFIG_SENSORS_PCA9539 is not set 726# CONFIG_SENSORS_PCA9539 is not set
702# CONFIG_SENSORS_PCF8591 is not set
703# CONFIG_SENSORS_MAX6875 is not set 727# CONFIG_SENSORS_MAX6875 is not set
704# CONFIG_SENSORS_TSL2550 is not set 728# CONFIG_SENSORS_TSL2550 is not set
705# CONFIG_I2C_DEBUG_CORE is not set 729# CONFIG_I2C_DEBUG_CORE is not set
@@ -731,6 +755,7 @@ CONFIG_HWMON=y
731# CONFIG_SENSORS_F71805F is not set 755# CONFIG_SENSORS_F71805F is not set
732# CONFIG_SENSORS_F71882FG is not set 756# CONFIG_SENSORS_F71882FG is not set
733# CONFIG_SENSORS_F75375S is not set 757# CONFIG_SENSORS_F75375S is not set
758# CONFIG_SENSORS_G760A is not set
734# CONFIG_SENSORS_GL518SM is not set 759# CONFIG_SENSORS_GL518SM is not set
735# CONFIG_SENSORS_GL520SM is not set 760# CONFIG_SENSORS_GL520SM is not set
736# CONFIG_SENSORS_IT87 is not set 761# CONFIG_SENSORS_IT87 is not set
@@ -745,11 +770,14 @@ CONFIG_HWMON=y
745# CONFIG_SENSORS_LM90 is not set 770# CONFIG_SENSORS_LM90 is not set
746# CONFIG_SENSORS_LM92 is not set 771# CONFIG_SENSORS_LM92 is not set
747# CONFIG_SENSORS_LM93 is not set 772# CONFIG_SENSORS_LM93 is not set
773# CONFIG_SENSORS_LTC4215 is not set
748# CONFIG_SENSORS_LTC4245 is not set 774# CONFIG_SENSORS_LTC4245 is not set
775# CONFIG_SENSORS_LM95241 is not set
749# CONFIG_SENSORS_MAX1619 is not set 776# CONFIG_SENSORS_MAX1619 is not set
750# CONFIG_SENSORS_MAX6650 is not set 777# CONFIG_SENSORS_MAX6650 is not set
751# CONFIG_SENSORS_PC87360 is not set 778# CONFIG_SENSORS_PC87360 is not set
752# CONFIG_SENSORS_PC87427 is not set 779# CONFIG_SENSORS_PC87427 is not set
780# CONFIG_SENSORS_PCF8591 is not set
753# CONFIG_SENSORS_SIS5595 is not set 781# CONFIG_SENSORS_SIS5595 is not set
754# CONFIG_SENSORS_DME1737 is not set 782# CONFIG_SENSORS_DME1737 is not set
755# CONFIG_SENSORS_SMSC47M1 is not set 783# CONFIG_SENSORS_SMSC47M1 is not set
@@ -847,7 +875,6 @@ CONFIG_HID=y
847# 875#
848# Special HID drivers 876# Special HID drivers
849# 877#
850CONFIG_HID_COMPAT=y
851CONFIG_USB_SUPPORT=y 878CONFIG_USB_SUPPORT=y
852CONFIG_USB_ARCH_HAS_HCD=y 879CONFIG_USB_ARCH_HAS_HCD=y
853CONFIG_USB_ARCH_HAS_OHCI=y 880CONFIG_USB_ARCH_HAS_OHCI=y
@@ -861,7 +888,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
861# 888#
862 889
863# 890#
864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 891# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
865# 892#
866# CONFIG_USB_GADGET is not set 893# CONFIG_USB_GADGET is not set
867 894
@@ -929,8 +956,9 @@ CONFIG_RTC_DRV_DS1374=y
929# 956#
930# on-CPU RTC drivers 957# on-CPU RTC drivers
931# 958#
932# CONFIG_RTC_DRV_PPC is not set 959# CONFIG_RTC_DRV_GENERIC is not set
933# CONFIG_DMADEVICES is not set 960# CONFIG_DMADEVICES is not set
961# CONFIG_AUXDISPLAY is not set
934# CONFIG_UIO is not set 962# CONFIG_UIO is not set
935# CONFIG_STAGING is not set 963# CONFIG_STAGING is not set
936 964
@@ -941,6 +969,7 @@ CONFIG_EXT2_FS=y
941# CONFIG_EXT2_FS_XATTR is not set 969# CONFIG_EXT2_FS_XATTR is not set
942# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
943CONFIG_EXT3_FS=y 971CONFIG_EXT3_FS=y
972# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
944CONFIG_EXT3_FS_XATTR=y 973CONFIG_EXT3_FS_XATTR=y
945# CONFIG_EXT3_FS_POSIX_ACL is not set 974# CONFIG_EXT3_FS_POSIX_ACL is not set
946# CONFIG_EXT3_FS_SECURITY is not set 975# CONFIG_EXT3_FS_SECURITY is not set
@@ -963,6 +992,11 @@ CONFIG_INOTIFY_USER=y
963# CONFIG_FUSE_FS is not set 992# CONFIG_FUSE_FS is not set
964 993
965# 994#
995# Caches
996#
997# CONFIG_FSCACHE is not set
998
999#
966# CD-ROM/DVD Filesystems 1000# CD-ROM/DVD Filesystems
967# 1001#
968# CONFIG_ISO9660_FS is not set 1002# CONFIG_ISO9660_FS is not set
@@ -1005,6 +1039,7 @@ CONFIG_MISC_FILESYSTEMS=y
1005# CONFIG_ROMFS_FS is not set 1039# CONFIG_ROMFS_FS is not set
1006# CONFIG_SYSV_FS is not set 1040# CONFIG_SYSV_FS is not set
1007# CONFIG_UFS_FS is not set 1041# CONFIG_UFS_FS is not set
1042# CONFIG_NILFS2_FS is not set
1008CONFIG_NETWORK_FILESYSTEMS=y 1043CONFIG_NETWORK_FILESYSTEMS=y
1009CONFIG_NFS_FS=y 1044CONFIG_NFS_FS=y
1010CONFIG_NFS_V3=y 1045CONFIG_NFS_V3=y
@@ -1017,7 +1052,6 @@ CONFIG_LOCKD_V4=y
1017CONFIG_NFS_COMMON=y 1052CONFIG_NFS_COMMON=y
1018CONFIG_SUNRPC=y 1053CONFIG_SUNRPC=y
1019CONFIG_SUNRPC_GSS=y 1054CONFIG_SUNRPC_GSS=y
1020# CONFIG_SUNRPC_REGISTER_V4 is not set
1021CONFIG_RPCSEC_GSS_KRB5=y 1055CONFIG_RPCSEC_GSS_KRB5=y
1022# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1023# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1045,6 +1079,7 @@ CONFIG_PARTITION_ADVANCED=y
1045# CONFIG_SYSV68_PARTITION is not set 1079# CONFIG_SYSV68_PARTITION is not set
1046# CONFIG_NLS is not set 1080# CONFIG_NLS is not set
1047# CONFIG_DLM is not set 1081# CONFIG_DLM is not set
1082# CONFIG_BINARY_PRINTF is not set
1048 1083
1049# 1084#
1050# Library routines 1085# Library routines
@@ -1058,11 +1093,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1058CONFIG_CRC32=y 1093CONFIG_CRC32=y
1059# CONFIG_CRC7 is not set 1094# CONFIG_CRC7 is not set
1060# CONFIG_LIBCRC32C is not set 1095# CONFIG_LIBCRC32C is not set
1061CONFIG_PLIST=y 1096CONFIG_ZLIB_INFLATE=y
1097CONFIG_DECOMPRESS_GZIP=y
1062CONFIG_HAS_IOMEM=y 1098CONFIG_HAS_IOMEM=y
1063CONFIG_HAS_IOPORT=y 1099CONFIG_HAS_IOPORT=y
1064CONFIG_HAS_DMA=y 1100CONFIG_HAS_DMA=y
1065CONFIG_HAVE_LMB=y 1101CONFIG_HAVE_LMB=y
1102CONFIG_NLATTR=y
1066 1103
1067# 1104#
1068# Kernel hacking 1105# Kernel hacking
@@ -1084,13 +1121,24 @@ CONFIG_FRAME_WARN=1024
1084# CONFIG_LATENCYTOP is not set 1121# CONFIG_LATENCYTOP is not set
1085CONFIG_SYSCTL_SYSCALL_CHECK=y 1122CONFIG_SYSCTL_SYSCALL_CHECK=y
1086CONFIG_HAVE_FUNCTION_TRACER=y 1123CONFIG_HAVE_FUNCTION_TRACER=y
1124CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1087CONFIG_HAVE_DYNAMIC_FTRACE=y 1125CONFIG_HAVE_DYNAMIC_FTRACE=y
1088CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1126CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1127CONFIG_TRACING_SUPPORT=y
1089 1128
1090# 1129#
1091# Tracers 1130# Tracers
1092# 1131#
1093# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1132# CONFIG_FUNCTION_TRACER is not set
1133# CONFIG_SCHED_TRACER is not set
1134# CONFIG_CONTEXT_SWITCH_TRACER is not set
1135# CONFIG_EVENT_TRACER is not set
1136# CONFIG_BOOT_TRACER is not set
1137# CONFIG_TRACE_BRANCH_PROFILING is not set
1138# CONFIG_STACK_TRACER is not set
1139# CONFIG_KMEMTRACE is not set
1140# CONFIG_WORKQUEUE_TRACER is not set
1141# CONFIG_BLK_DEV_IO_TRACE is not set
1094# CONFIG_SAMPLES is not set 1142# CONFIG_SAMPLES is not set
1095CONFIG_HAVE_ARCH_KGDB=y 1143CONFIG_HAVE_ARCH_KGDB=y
1096CONFIG_PRINT_STACK_DEPTH=64 1144CONFIG_PRINT_STACK_DEPTH=64
@@ -1119,10 +1167,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1119CONFIG_CRYPTO_HASH=y 1167CONFIG_CRYPTO_HASH=y
1120CONFIG_CRYPTO_HASH2=y 1168CONFIG_CRYPTO_HASH2=y
1121CONFIG_CRYPTO_RNG2=y 1169CONFIG_CRYPTO_RNG2=y
1170CONFIG_CRYPTO_PCOMP=y
1122CONFIG_CRYPTO_MANAGER=y 1171CONFIG_CRYPTO_MANAGER=y
1123CONFIG_CRYPTO_MANAGER2=y 1172CONFIG_CRYPTO_MANAGER2=y
1124# CONFIG_CRYPTO_GF128MUL is not set 1173# CONFIG_CRYPTO_GF128MUL is not set
1125# CONFIG_CRYPTO_NULL is not set 1174# CONFIG_CRYPTO_NULL is not set
1175CONFIG_CRYPTO_WORKQUEUE=y
1126# CONFIG_CRYPTO_CRYPTD is not set 1176# CONFIG_CRYPTO_CRYPTD is not set
1127# CONFIG_CRYPTO_AUTHENC is not set 1177# CONFIG_CRYPTO_AUTHENC is not set
1128# CONFIG_CRYPTO_TEST is not set 1178# CONFIG_CRYPTO_TEST is not set
@@ -1191,6 +1241,7 @@ CONFIG_CRYPTO_DES=y
1191# Compression 1241# Compression
1192# 1242#
1193# CONFIG_CRYPTO_DEFLATE is not set 1243# CONFIG_CRYPTO_DEFLATE is not set
1244# CONFIG_CRYPTO_ZLIB is not set
1194# CONFIG_CRYPTO_LZO is not set 1245# CONFIG_CRYPTO_LZO is not set
1195 1246
1196# 1247#
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 76db8138eac7..ce5177393a0d 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:58 2009 4# Wed May 13 17:22:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -109,16 +123,19 @@ CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 135CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
138# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 139# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 140CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 141CONFIG_RT_MUTEXES=y
@@ -131,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set 148# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_BLOCK=y 149CONFIG_BLOCK=y
133# CONFIG_LBD is not set 150# CONFIG_LBD is not set
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 151# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 152# CONFIG_BLK_DEV_INTEGRITY is not set
137 153
@@ -147,18 +163,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 165CONFIG_DEFAULT_IOSCHED="anticipatory"
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 166# CONFIG_FREEZER is not set
156 167
157# 168#
158# Platform support 169# Platform support
159# 170#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 171# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 172# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 173# CONFIG_MPC5121_GENERIC is not set
@@ -182,6 +191,8 @@ CONFIG_MPC836x_MDS=y
182# CONFIG_ASP834x is not set 191# CONFIG_ASP834x is not set
183# CONFIG_PPC_86xx is not set 192# CONFIG_PPC_86xx is not set
184# CONFIG_EMBEDDED6xx is not set 193# CONFIG_EMBEDDED6xx is not set
194# CONFIG_AMIGAONE is not set
195CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185CONFIG_IPIC=y 196CONFIG_IPIC=y
186# CONFIG_MPIC is not set 197# CONFIG_MPIC is not set
187# CONFIG_MPIC_WEIRD is not set 198# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +254,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 254CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 259CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 260# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 261# CONFIG_PPC_64K_PAGES is not set
262# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 263CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 264CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 265# CONFIG_CMDLINE_BOOL is not set
@@ -271,6 +285,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_MSI is not set 285# CONFIG_PCI_MSI is not set
272# CONFIG_PCI_LEGACY is not set 286# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_STUB is not set 287# CONFIG_PCI_STUB is not set
288# CONFIG_PCI_IOV is not set
274# CONFIG_PCCARD is not set 289# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 290# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 291# CONFIG_HAS_RAPIDIO is not set
@@ -293,7 +308,6 @@ CONFIG_NET=y
293# 308#
294# Networking options 309# Networking options
295# 310#
296CONFIG_COMPAT_NET_DEV_OPS=y
297CONFIG_PACKET=y 311CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set 312# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y 313CONFIG_UNIX=y
@@ -349,6 +363,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_LAPB is not set 363# CONFIG_LAPB is not set
350# CONFIG_ECONET is not set 364# CONFIG_ECONET is not set
351# CONFIG_WAN_ROUTER is not set 365# CONFIG_WAN_ROUTER is not set
366# CONFIG_PHONET is not set
352# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
353# CONFIG_DCB is not set 368# CONFIG_DCB is not set
354 369
@@ -361,7 +376,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_IRDA is not set 376# CONFIG_IRDA is not set
362# CONFIG_BT is not set 377# CONFIG_BT is not set
363# CONFIG_AF_RXRPC is not set 378# CONFIG_AF_RXRPC is not set
364# CONFIG_PHONET is not set
365CONFIG_WIRELESS=y 379CONFIG_WIRELESS=y
366# CONFIG_CFG80211 is not set 380# CONFIG_CFG80211 is not set
367CONFIG_WIRELESS_OLD_REGULATORY=y 381CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -464,7 +478,6 @@ CONFIG_MTD_PHYSMAP_OF=y
464# LPDDR flash memory drivers 478# LPDDR flash memory drivers
465# 479#
466# CONFIG_MTD_LPDDR is not set 480# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468 481
469# 482#
470# UBI - Unsorted block images 483# UBI - Unsorted block images
@@ -493,13 +506,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
493# CONFIG_BLK_DEV_HD is not set 506# CONFIG_BLK_DEV_HD is not set
494CONFIG_MISC_DEVICES=y 507CONFIG_MISC_DEVICES=y
495# CONFIG_PHANTOM is not set 508# CONFIG_PHANTOM is not set
496# CONFIG_EEPROM_93CX6 is not set
497# CONFIG_SGI_IOC4 is not set 509# CONFIG_SGI_IOC4 is not set
498# CONFIG_TIFM_CORE is not set 510# CONFIG_TIFM_CORE is not set
499# CONFIG_ICS932S401 is not set 511# CONFIG_ICS932S401 is not set
500# CONFIG_ENCLOSURE_SERVICES is not set 512# CONFIG_ENCLOSURE_SERVICES is not set
501# CONFIG_HP_ILO is not set 513# CONFIG_HP_ILO is not set
514# CONFIG_ISL29003 is not set
502# CONFIG_C2PORT is not set 515# CONFIG_C2PORT is not set
516
517#
518# EEPROM support
519#
520# CONFIG_EEPROM_AT24 is not set
521# CONFIG_EEPROM_LEGACY is not set
522# CONFIG_EEPROM_93CX6 is not set
503CONFIG_HAVE_IDE=y 523CONFIG_HAVE_IDE=y
504# CONFIG_IDE is not set 524# CONFIG_IDE is not set
505 525
@@ -557,9 +577,11 @@ CONFIG_SCSI_LOWLEVEL=y
557# CONFIG_MEGARAID_NEWGEN is not set 577# CONFIG_MEGARAID_NEWGEN is not set
558# CONFIG_MEGARAID_LEGACY is not set 578# CONFIG_MEGARAID_LEGACY is not set
559# CONFIG_MEGARAID_SAS is not set 579# CONFIG_MEGARAID_SAS is not set
580# CONFIG_SCSI_MPT2SAS is not set
560# CONFIG_SCSI_HPTIOP is not set 581# CONFIG_SCSI_HPTIOP is not set
561# CONFIG_SCSI_BUSLOGIC is not set 582# CONFIG_SCSI_BUSLOGIC is not set
562# CONFIG_LIBFC is not set 583# CONFIG_LIBFC is not set
584# CONFIG_LIBFCOE is not set
563# CONFIG_FCOE is not set 585# CONFIG_FCOE is not set
564# CONFIG_SCSI_DMX3191D is not set 586# CONFIG_SCSI_DMX3191D is not set
565# CONFIG_SCSI_EATA is not set 587# CONFIG_SCSI_EATA is not set
@@ -581,6 +603,7 @@ CONFIG_SCSI_LOWLEVEL=y
581# CONFIG_SCSI_DEBUG is not set 603# CONFIG_SCSI_DEBUG is not set
582# CONFIG_SCSI_SRP is not set 604# CONFIG_SCSI_SRP is not set
583# CONFIG_SCSI_DH is not set 605# CONFIG_SCSI_DH is not set
606# CONFIG_SCSI_OSD_INITIATOR is not set
584# CONFIG_ATA is not set 607# CONFIG_ATA is not set
585# CONFIG_MD is not set 608# CONFIG_MD is not set
586# CONFIG_FUSION is not set 609# CONFIG_FUSION is not set
@@ -597,6 +620,7 @@ CONFIG_SCSI_LOWLEVEL=y
597# CONFIG_I2O is not set 620# CONFIG_I2O is not set
598# CONFIG_MACINTOSH_DRIVERS is not set 621# CONFIG_MACINTOSH_DRIVERS is not set
599CONFIG_NETDEVICES=y 622CONFIG_NETDEVICES=y
623CONFIG_COMPAT_NET_DEV_OPS=y
600# CONFIG_DUMMY is not set 624# CONFIG_DUMMY is not set
601# CONFIG_BONDING is not set 625# CONFIG_BONDING is not set
602# CONFIG_MACVLAN is not set 626# CONFIG_MACVLAN is not set
@@ -630,6 +654,8 @@ CONFIG_MII=y
630# CONFIG_SUNGEM is not set 654# CONFIG_SUNGEM is not set
631# CONFIG_CASSINI is not set 655# CONFIG_CASSINI is not set
632# CONFIG_NET_VENDOR_3COM is not set 656# CONFIG_NET_VENDOR_3COM is not set
657# CONFIG_ETHOC is not set
658# CONFIG_DNET is not set
633# CONFIG_NET_TULIP is not set 659# CONFIG_NET_TULIP is not set
634# CONFIG_HP100 is not set 660# CONFIG_HP100 is not set
635# CONFIG_IBM_NEW_EMAC_ZMII is not set 661# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -649,6 +675,7 @@ CONFIG_NETDEV_1000=y
649# CONFIG_E1000E is not set 675# CONFIG_E1000E is not set
650# CONFIG_IP1000 is not set 676# CONFIG_IP1000 is not set
651# CONFIG_IGB is not set 677# CONFIG_IGB is not set
678# CONFIG_IGBVF is not set
652# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
653# CONFIG_HAMACHI is not set 680# CONFIG_HAMACHI is not set
654# CONFIG_YELLOWFIN is not set 681# CONFIG_YELLOWFIN is not set
@@ -659,14 +686,15 @@ CONFIG_NETDEV_1000=y
659# CONFIG_VIA_VELOCITY is not set 686# CONFIG_VIA_VELOCITY is not set
660# CONFIG_TIGON3 is not set 687# CONFIG_TIGON3 is not set
661# CONFIG_BNX2 is not set 688# CONFIG_BNX2 is not set
689CONFIG_FSL_PQ_MDIO=y
662# CONFIG_GIANFAR is not set 690# CONFIG_GIANFAR is not set
663CONFIG_UCC_GETH=y 691CONFIG_UCC_GETH=y
664# CONFIG_UGETH_MAGIC_PACKET is not set 692# CONFIG_UGETH_MAGIC_PACKET is not set
665# CONFIG_UGETH_TX_ON_DEMAND is not set 693# CONFIG_UGETH_TX_ON_DEMAND is not set
666# CONFIG_MV643XX_ETH is not set
667# CONFIG_QLA3XXX is not set 694# CONFIG_QLA3XXX is not set
668# CONFIG_ATL1 is not set 695# CONFIG_ATL1 is not set
669# CONFIG_ATL1E is not set 696# CONFIG_ATL1E is not set
697# CONFIG_ATL1C is not set
670# CONFIG_JME is not set 698# CONFIG_JME is not set
671CONFIG_NETDEV_10000=y 699CONFIG_NETDEV_10000=y
672# CONFIG_CHELSIO_T1 is not set 700# CONFIG_CHELSIO_T1 is not set
@@ -676,6 +704,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
676# CONFIG_IXGBE is not set 704# CONFIG_IXGBE is not set
677# CONFIG_IXGB is not set 705# CONFIG_IXGB is not set
678# CONFIG_S2IO is not set 706# CONFIG_S2IO is not set
707# CONFIG_VXGE is not set
679# CONFIG_MYRI10GE is not set 708# CONFIG_MYRI10GE is not set
680# CONFIG_NETXEN_NIC is not set 709# CONFIG_NETXEN_NIC is not set
681# CONFIG_NIU is not set 710# CONFIG_NIU is not set
@@ -685,6 +714,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
685# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
686# CONFIG_QLGE is not set 715# CONFIG_QLGE is not set
687# CONFIG_SFC is not set 716# CONFIG_SFC is not set
717# CONFIG_BE2NET is not set
688# CONFIG_TR is not set 718# CONFIG_TR is not set
689 719
690# 720#
@@ -692,7 +722,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
692# 722#
693# CONFIG_WLAN_PRE80211 is not set 723# CONFIG_WLAN_PRE80211 is not set
694# CONFIG_WLAN_80211 is not set 724# CONFIG_WLAN_80211 is not set
695# CONFIG_IWLWIFI_LEDS is not set
696 725
697# 726#
698# Enable WiMAX (Networking options) to see the WiMAX drivers 727# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -774,6 +803,7 @@ CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_HVC_UDBG is not set 803# CONFIG_HVC_UDBG is not set
775# CONFIG_IPMI_HANDLER is not set 804# CONFIG_IPMI_HANDLER is not set
776CONFIG_HW_RANDOM=y 805CONFIG_HW_RANDOM=y
806# CONFIG_HW_RANDOM_TIMERIOMEM is not set
777# CONFIG_NVRAM is not set 807# CONFIG_NVRAM is not set
778# CONFIG_R3964 is not set 808# CONFIG_R3964 is not set
779# CONFIG_APPLICOM is not set 809# CONFIG_APPLICOM is not set
@@ -835,12 +865,9 @@ CONFIG_I2C_MPC=y
835# Miscellaneous I2C Chip support 865# Miscellaneous I2C Chip support
836# 866#
837# CONFIG_DS1682 is not set 867# CONFIG_DS1682 is not set
838# CONFIG_EEPROM_AT24 is not set
839# CONFIG_EEPROM_LEGACY is not set
840# CONFIG_SENSORS_PCF8574 is not set 868# CONFIG_SENSORS_PCF8574 is not set
841# CONFIG_PCF8575 is not set 869# CONFIG_PCF8575 is not set
842# CONFIG_SENSORS_PCA9539 is not set 870# CONFIG_SENSORS_PCA9539 is not set
843# CONFIG_SENSORS_PCF8591 is not set
844# CONFIG_SENSORS_MAX6875 is not set 871# CONFIG_SENSORS_MAX6875 is not set
845# CONFIG_SENSORS_TSL2550 is not set 872# CONFIG_SENSORS_TSL2550 is not set
846# CONFIG_I2C_DEBUG_CORE is not set 873# CONFIG_I2C_DEBUG_CORE is not set
@@ -872,6 +899,7 @@ CONFIG_HWMON=y
872# CONFIG_SENSORS_F71805F is not set 899# CONFIG_SENSORS_F71805F is not set
873# CONFIG_SENSORS_F71882FG is not set 900# CONFIG_SENSORS_F71882FG is not set
874# CONFIG_SENSORS_F75375S is not set 901# CONFIG_SENSORS_F75375S is not set
902# CONFIG_SENSORS_G760A is not set
875# CONFIG_SENSORS_GL518SM is not set 903# CONFIG_SENSORS_GL518SM is not set
876# CONFIG_SENSORS_GL520SM is not set 904# CONFIG_SENSORS_GL520SM is not set
877# CONFIG_SENSORS_IT87 is not set 905# CONFIG_SENSORS_IT87 is not set
@@ -886,11 +914,14 @@ CONFIG_HWMON=y
886# CONFIG_SENSORS_LM90 is not set 914# CONFIG_SENSORS_LM90 is not set
887# CONFIG_SENSORS_LM92 is not set 915# CONFIG_SENSORS_LM92 is not set
888# CONFIG_SENSORS_LM93 is not set 916# CONFIG_SENSORS_LM93 is not set
917# CONFIG_SENSORS_LTC4215 is not set
889# CONFIG_SENSORS_LTC4245 is not set 918# CONFIG_SENSORS_LTC4245 is not set
919# CONFIG_SENSORS_LM95241 is not set
890# CONFIG_SENSORS_MAX1619 is not set 920# CONFIG_SENSORS_MAX1619 is not set
891# CONFIG_SENSORS_MAX6650 is not set 921# CONFIG_SENSORS_MAX6650 is not set
892# CONFIG_SENSORS_PC87360 is not set 922# CONFIG_SENSORS_PC87360 is not set
893# CONFIG_SENSORS_PC87427 is not set 923# CONFIG_SENSORS_PC87427 is not set
924# CONFIG_SENSORS_PCF8591 is not set
894# CONFIG_SENSORS_SIS5595 is not set 925# CONFIG_SENSORS_SIS5595 is not set
895# CONFIG_SENSORS_DME1737 is not set 926# CONFIG_SENSORS_DME1737 is not set
896# CONFIG_SENSORS_SMSC47M1 is not set 927# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1019,6 @@ CONFIG_HID=y
988# 1019#
989# Special HID drivers 1020# Special HID drivers
990# 1021#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1022CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1023CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1024CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1032,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1032#
1003 1033
1004# 1034#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1035# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1036#
1007# CONFIG_USB_GADGET is not set 1037# CONFIG_USB_GADGET is not set
1008 1038
@@ -1070,8 +1100,9 @@ CONFIG_RTC_DRV_DS1374=y
1070# 1100#
1071# on-CPU RTC drivers 1101# on-CPU RTC drivers
1072# 1102#
1073# CONFIG_RTC_DRV_PPC is not set 1103# CONFIG_RTC_DRV_GENERIC is not set
1074# CONFIG_DMADEVICES is not set 1104# CONFIG_DMADEVICES is not set
1105# CONFIG_AUXDISPLAY is not set
1075# CONFIG_UIO is not set 1106# CONFIG_UIO is not set
1076# CONFIG_STAGING is not set 1107# CONFIG_STAGING is not set
1077 1108
@@ -1082,6 +1113,7 @@ CONFIG_EXT2_FS=y
1082# CONFIG_EXT2_FS_XATTR is not set 1113# CONFIG_EXT2_FS_XATTR is not set
1083# CONFIG_EXT2_FS_XIP is not set 1114# CONFIG_EXT2_FS_XIP is not set
1084CONFIG_EXT3_FS=y 1115CONFIG_EXT3_FS=y
1116# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1085CONFIG_EXT3_FS_XATTR=y 1117CONFIG_EXT3_FS_XATTR=y
1086# CONFIG_EXT3_FS_POSIX_ACL is not set 1118# CONFIG_EXT3_FS_POSIX_ACL is not set
1087# CONFIG_EXT3_FS_SECURITY is not set 1119# CONFIG_EXT3_FS_SECURITY is not set
@@ -1104,6 +1136,11 @@ CONFIG_INOTIFY_USER=y
1104# CONFIG_FUSE_FS is not set 1136# CONFIG_FUSE_FS is not set
1105 1137
1106# 1138#
1139# Caches
1140#
1141# CONFIG_FSCACHE is not set
1142
1143#
1107# CD-ROM/DVD Filesystems 1144# CD-ROM/DVD Filesystems
1108# 1145#
1109# CONFIG_ISO9660_FS is not set 1146# CONFIG_ISO9660_FS is not set
@@ -1147,6 +1184,7 @@ CONFIG_MISC_FILESYSTEMS=y
1147# CONFIG_ROMFS_FS is not set 1184# CONFIG_ROMFS_FS is not set
1148# CONFIG_SYSV_FS is not set 1185# CONFIG_SYSV_FS is not set
1149# CONFIG_UFS_FS is not set 1186# CONFIG_UFS_FS is not set
1187# CONFIG_NILFS2_FS is not set
1150CONFIG_NETWORK_FILESYSTEMS=y 1188CONFIG_NETWORK_FILESYSTEMS=y
1151CONFIG_NFS_FS=y 1189CONFIG_NFS_FS=y
1152CONFIG_NFS_V3=y 1190CONFIG_NFS_V3=y
@@ -1159,7 +1197,6 @@ CONFIG_LOCKD_V4=y
1159CONFIG_NFS_COMMON=y 1197CONFIG_NFS_COMMON=y
1160CONFIG_SUNRPC=y 1198CONFIG_SUNRPC=y
1161CONFIG_SUNRPC_GSS=y 1199CONFIG_SUNRPC_GSS=y
1162# CONFIG_SUNRPC_REGISTER_V4 is not set
1163CONFIG_RPCSEC_GSS_KRB5=y 1200CONFIG_RPCSEC_GSS_KRB5=y
1164# CONFIG_RPCSEC_GSS_SPKM3 is not set 1201# CONFIG_RPCSEC_GSS_SPKM3 is not set
1165# CONFIG_SMB_FS is not set 1202# CONFIG_SMB_FS is not set
@@ -1189,6 +1226,7 @@ CONFIG_PARTITION_ADVANCED=y
1189# CONFIG_DLM is not set 1226# CONFIG_DLM is not set
1190CONFIG_UCC_FAST=y 1227CONFIG_UCC_FAST=y
1191CONFIG_UCC=y 1228CONFIG_UCC=y
1229# CONFIG_BINARY_PRINTF is not set
1192 1230
1193# 1231#
1194# Library routines 1232# Library routines
@@ -1202,11 +1240,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1202CONFIG_CRC32=y 1240CONFIG_CRC32=y
1203# CONFIG_CRC7 is not set 1241# CONFIG_CRC7 is not set
1204# CONFIG_LIBCRC32C is not set 1242# CONFIG_LIBCRC32C is not set
1205CONFIG_PLIST=y 1243CONFIG_ZLIB_INFLATE=y
1244CONFIG_DECOMPRESS_GZIP=y
1206CONFIG_HAS_IOMEM=y 1245CONFIG_HAS_IOMEM=y
1207CONFIG_HAS_IOPORT=y 1246CONFIG_HAS_IOPORT=y
1208CONFIG_HAS_DMA=y 1247CONFIG_HAS_DMA=y
1209CONFIG_HAVE_LMB=y 1248CONFIG_HAVE_LMB=y
1249CONFIG_NLATTR=y
1210 1250
1211# 1251#
1212# Kernel hacking 1252# Kernel hacking
@@ -1228,13 +1268,24 @@ CONFIG_FRAME_WARN=1024
1228# CONFIG_LATENCYTOP is not set 1268# CONFIG_LATENCYTOP is not set
1229CONFIG_SYSCTL_SYSCALL_CHECK=y 1269CONFIG_SYSCTL_SYSCALL_CHECK=y
1230CONFIG_HAVE_FUNCTION_TRACER=y 1270CONFIG_HAVE_FUNCTION_TRACER=y
1271CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1231CONFIG_HAVE_DYNAMIC_FTRACE=y 1272CONFIG_HAVE_DYNAMIC_FTRACE=y
1232CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1273CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1274CONFIG_TRACING_SUPPORT=y
1233 1275
1234# 1276#
1235# Tracers 1277# Tracers
1236# 1278#
1237# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1279# CONFIG_FUNCTION_TRACER is not set
1280# CONFIG_SCHED_TRACER is not set
1281# CONFIG_CONTEXT_SWITCH_TRACER is not set
1282# CONFIG_EVENT_TRACER is not set
1283# CONFIG_BOOT_TRACER is not set
1284# CONFIG_TRACE_BRANCH_PROFILING is not set
1285# CONFIG_STACK_TRACER is not set
1286# CONFIG_KMEMTRACE is not set
1287# CONFIG_WORKQUEUE_TRACER is not set
1288# CONFIG_BLK_DEV_IO_TRACE is not set
1238# CONFIG_SAMPLES is not set 1289# CONFIG_SAMPLES is not set
1239CONFIG_HAVE_ARCH_KGDB=y 1290CONFIG_HAVE_ARCH_KGDB=y
1240CONFIG_PRINT_STACK_DEPTH=64 1291CONFIG_PRINT_STACK_DEPTH=64
@@ -1263,10 +1314,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1263CONFIG_CRYPTO_HASH=y 1314CONFIG_CRYPTO_HASH=y
1264CONFIG_CRYPTO_HASH2=y 1315CONFIG_CRYPTO_HASH2=y
1265CONFIG_CRYPTO_RNG2=y 1316CONFIG_CRYPTO_RNG2=y
1317CONFIG_CRYPTO_PCOMP=y
1266CONFIG_CRYPTO_MANAGER=y 1318CONFIG_CRYPTO_MANAGER=y
1267CONFIG_CRYPTO_MANAGER2=y 1319CONFIG_CRYPTO_MANAGER2=y
1268# CONFIG_CRYPTO_GF128MUL is not set 1320# CONFIG_CRYPTO_GF128MUL is not set
1269# CONFIG_CRYPTO_NULL is not set 1321# CONFIG_CRYPTO_NULL is not set
1322CONFIG_CRYPTO_WORKQUEUE=y
1270# CONFIG_CRYPTO_CRYPTD is not set 1323# CONFIG_CRYPTO_CRYPTD is not set
1271# CONFIG_CRYPTO_AUTHENC is not set 1324# CONFIG_CRYPTO_AUTHENC is not set
1272# CONFIG_CRYPTO_TEST is not set 1325# CONFIG_CRYPTO_TEST is not set
@@ -1335,6 +1388,7 @@ CONFIG_CRYPTO_DES=y
1335# Compression 1388# Compression
1336# 1389#
1337# CONFIG_CRYPTO_DEFLATE is not set 1390# CONFIG_CRYPTO_DEFLATE is not set
1391# CONFIG_CRYPTO_ZLIB is not set
1338# CONFIG_CRYPTO_LZO is not set 1392# CONFIG_CRYPTO_LZO is not set
1339 1393
1340# 1394#
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index 0dc11c44306b..7f1d1383a249 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:01 2009 4# Wed May 13 17:22:13 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -57,6 +58,7 @@ CONFIG_DEFAULT_UIMAGE=y
57CONFIG_ARCH_SUSPEND_POSSIBLE=y 58CONFIG_ARCH_SUSPEND_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -74,6 +76,15 @@ CONFIG_SYSVIPC_SYSCTL=y
74# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
75# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
76# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
77# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
79CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -88,19 +99,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
89CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
91# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
92CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
93CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
95# CONFIG_KALLSYMS is not set 110# CONFIG_KALLSYMS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -110,16 +124,19 @@ CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
112CONFIG_SLUB_DEBUG=y 126CONFIG_SLUB_DEBUG=y
127CONFIG_COMPAT_BRK=y
113# CONFIG_SLAB is not set 128# CONFIG_SLAB is not set
114CONFIG_SLUB=y 129CONFIG_SLUB=y
115# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
116# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y 135CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
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 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -183,6 +192,8 @@ CONFIG_MPC836x_RDK=y
183# CONFIG_ASP834x is not set 192# CONFIG_ASP834x is not set
184# CONFIG_PPC_86xx is not set 193# CONFIG_PPC_86xx is not set
185# CONFIG_EMBEDDED6xx is not set 194# CONFIG_EMBEDDED6xx is not set
195# CONFIG_AMIGAONE is not set
196CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186CONFIG_IPIC=y 197CONFIG_IPIC=y
187# CONFIG_MPIC is not set 198# CONFIG_MPIC is not set
188# CONFIG_MPIC_WEIRD is not set 199# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +254,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 254CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 255CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 256CONFIG_UNEVICTABLE_LRU=y
257CONFIG_HAVE_MLOCK=y
258CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 259CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 260# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 261# CONFIG_PPC_64K_PAGES is not set
262# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 263CONFIG_FORCE_MAX_ZONEORDER=11
250CONFIG_PROC_DEVICETREE=y 264CONFIG_PROC_DEVICETREE=y
251# CONFIG_CMDLINE_BOOL is not set 265# CONFIG_CMDLINE_BOOL is not set
@@ -273,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# CONFIG_PCI_MSI is not set 287# CONFIG_PCI_MSI is not set
274# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
276# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -295,7 +310,6 @@ CONFIG_NET=y
295# 310#
296# Networking options 311# Networking options
297# 312#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y 313CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set 314# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y 315CONFIG_UNIX=y
@@ -351,6 +365,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_LAPB is not set 365# CONFIG_LAPB is not set
352# CONFIG_ECONET is not set 366# CONFIG_ECONET is not set
353# CONFIG_WAN_ROUTER is not set 367# CONFIG_WAN_ROUTER is not set
368# CONFIG_PHONET is not set
354# CONFIG_NET_SCHED is not set 369# CONFIG_NET_SCHED is not set
355# CONFIG_DCB is not set 370# CONFIG_DCB is not set
356 371
@@ -363,7 +378,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
363# CONFIG_IRDA is not set 378# CONFIG_IRDA is not set
364# CONFIG_BT is not set 379# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set 380# CONFIG_AF_RXRPC is not set
366# CONFIG_PHONET is not set
367CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
368# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
369CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -475,7 +489,6 @@ CONFIG_MTD_PHYSMAP_OF=y
475# LPDDR flash memory drivers 489# LPDDR flash memory drivers
476# 490#
477# CONFIG_MTD_LPDDR is not set 491# CONFIG_MTD_LPDDR is not set
478# CONFIG_MTD_QINFO_PROBE is not set
479 492
480# 493#
481# UBI - Unsorted block images 494# UBI - Unsorted block images
@@ -506,13 +519,21 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
506# CONFIG_BLK_DEV_HD is not set 519# CONFIG_BLK_DEV_HD is not set
507CONFIG_MISC_DEVICES=y 520CONFIG_MISC_DEVICES=y
508# CONFIG_PHANTOM is not set 521# CONFIG_PHANTOM is not set
509# CONFIG_EEPROM_93CX6 is not set
510# CONFIG_SGI_IOC4 is not set 522# CONFIG_SGI_IOC4 is not set
511# CONFIG_TIFM_CORE is not set 523# CONFIG_TIFM_CORE is not set
512# CONFIG_ICS932S401 is not set 524# CONFIG_ICS932S401 is not set
513# CONFIG_ENCLOSURE_SERVICES is not set 525# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set 526# CONFIG_HP_ILO is not set
527# CONFIG_ISL29003 is not set
515# CONFIG_C2PORT is not set 528# CONFIG_C2PORT is not set
529
530#
531# EEPROM support
532#
533# CONFIG_EEPROM_AT24 is not set
534# CONFIG_EEPROM_AT25 is not set
535# CONFIG_EEPROM_LEGACY is not set
536# CONFIG_EEPROM_93CX6 is not set
516CONFIG_HAVE_IDE=y 537CONFIG_HAVE_IDE=y
517# CONFIG_IDE is not set 538# CONFIG_IDE is not set
518 539
@@ -539,6 +560,7 @@ CONFIG_HAVE_IDE=y
539# CONFIG_I2O is not set 560# CONFIG_I2O is not set
540# CONFIG_MACINTOSH_DRIVERS is not set 561# CONFIG_MACINTOSH_DRIVERS is not set
541CONFIG_NETDEVICES=y 562CONFIG_NETDEVICES=y
563CONFIG_COMPAT_NET_DEV_OPS=y
542# CONFIG_DUMMY is not set 564# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 565# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 566# CONFIG_MACVLAN is not set
@@ -574,6 +596,7 @@ CONFIG_NETDEV_1000=y
574# CONFIG_E1000E is not set 596# CONFIG_E1000E is not set
575# CONFIG_IP1000 is not set 597# CONFIG_IP1000 is not set
576# CONFIG_IGB is not set 598# CONFIG_IGB is not set
599# CONFIG_IGBVF is not set
577# CONFIG_NS83820 is not set 600# CONFIG_NS83820 is not set
578# CONFIG_HAMACHI is not set 601# CONFIG_HAMACHI is not set
579# CONFIG_YELLOWFIN is not set 602# CONFIG_YELLOWFIN is not set
@@ -584,14 +607,15 @@ CONFIG_NETDEV_1000=y
584# CONFIG_VIA_VELOCITY is not set 607# CONFIG_VIA_VELOCITY is not set
585# CONFIG_TIGON3 is not set 608# CONFIG_TIGON3 is not set
586# CONFIG_BNX2 is not set 609# CONFIG_BNX2 is not set
610CONFIG_FSL_PQ_MDIO=y
587# CONFIG_GIANFAR is not set 611# CONFIG_GIANFAR is not set
588CONFIG_UCC_GETH=y 612CONFIG_UCC_GETH=y
589# CONFIG_UGETH_MAGIC_PACKET is not set 613# CONFIG_UGETH_MAGIC_PACKET is not set
590# CONFIG_UGETH_TX_ON_DEMAND is not set 614# CONFIG_UGETH_TX_ON_DEMAND is not set
591# CONFIG_MV643XX_ETH is not set
592# CONFIG_QLA3XXX is not set 615# CONFIG_QLA3XXX is not set
593# CONFIG_ATL1 is not set 616# CONFIG_ATL1 is not set
594# CONFIG_ATL1E is not set 617# CONFIG_ATL1E is not set
618# CONFIG_ATL1C is not set
595# CONFIG_JME is not set 619# CONFIG_JME is not set
596# CONFIG_NETDEV_10000 is not set 620# CONFIG_NETDEV_10000 is not set
597# CONFIG_TR is not set 621# CONFIG_TR is not set
@@ -601,7 +625,6 @@ CONFIG_UCC_GETH=y
601# 625#
602# CONFIG_WLAN_PRE80211 is not set 626# CONFIG_WLAN_PRE80211 is not set
603# CONFIG_WLAN_80211 is not set 627# CONFIG_WLAN_80211 is not set
604# CONFIG_IWLWIFI_LEDS is not set
605 628
606# 629#
607# Enable WiMAX (Networking options) to see the WiMAX drivers 630# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -673,6 +696,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
673# 696#
674# Non-8250 serial port support 697# Non-8250 serial port support
675# 698#
699# CONFIG_SERIAL_MAX3100 is not set
676# CONFIG_SERIAL_UARTLITE is not set 700# CONFIG_SERIAL_UARTLITE is not set
677CONFIG_SERIAL_CORE=y 701CONFIG_SERIAL_CORE=y
678CONFIG_SERIAL_CORE_CONSOLE=y 702CONFIG_SERIAL_CORE_CONSOLE=y
@@ -686,6 +710,7 @@ CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set 710# CONFIG_HVC_UDBG is not set
687# CONFIG_IPMI_HANDLER is not set 711# CONFIG_IPMI_HANDLER is not set
688CONFIG_HW_RANDOM=y 712CONFIG_HW_RANDOM=y
713# CONFIG_HW_RANDOM_TIMERIOMEM is not set
689# CONFIG_NVRAM is not set 714# CONFIG_NVRAM is not set
690# CONFIG_GEN_RTC is not set 715# CONFIG_GEN_RTC is not set
691# CONFIG_R3964 is not set 716# CONFIG_R3964 is not set
@@ -749,12 +774,9 @@ CONFIG_I2C_MPC=y
749# Miscellaneous I2C Chip support 774# Miscellaneous I2C Chip support
750# 775#
751# CONFIG_DS1682 is not set 776# CONFIG_DS1682 is not set
752# CONFIG_EEPROM_AT24 is not set
753# CONFIG_EEPROM_LEGACY is not set
754# CONFIG_SENSORS_PCF8574 is not set 777# CONFIG_SENSORS_PCF8574 is not set
755# CONFIG_PCF8575 is not set 778# CONFIG_PCF8575 is not set
756# CONFIG_SENSORS_PCA9539 is not set 779# CONFIG_SENSORS_PCA9539 is not set
757# CONFIG_SENSORS_PCF8591 is not set
758# CONFIG_SENSORS_MAX6875 is not set 780# CONFIG_SENSORS_MAX6875 is not set
759# CONFIG_SENSORS_TSL2550 is not set 781# CONFIG_SENSORS_TSL2550 is not set
760# CONFIG_I2C_DEBUG_CORE is not set 782# CONFIG_I2C_DEBUG_CORE is not set
@@ -774,7 +796,6 @@ CONFIG_SPI_MPC83xx=y
774# 796#
775# SPI Protocol Masters 797# SPI Protocol Masters
776# 798#
777# CONFIG_EEPROM_AT25 is not set
778CONFIG_SPI_SPIDEV=y 799CONFIG_SPI_SPIDEV=y
779# CONFIG_SPI_TLE62X0 is not set 800# CONFIG_SPI_TLE62X0 is not set
780CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 801CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
@@ -924,6 +945,7 @@ CONFIG_FB_OF=y
924# CONFIG_FB_VIRTUAL is not set 945# CONFIG_FB_VIRTUAL is not set
925# CONFIG_FB_METRONOME is not set 946# CONFIG_FB_METRONOME is not set
926# CONFIG_FB_MB862XX is not set 947# CONFIG_FB_MB862XX is not set
948# CONFIG_FB_BROADSHEET is not set
927# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 949# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
928 950
929# 951#
@@ -956,7 +978,6 @@ CONFIG_HID=y
956# 978#
957# Special HID drivers 979# Special HID drivers
958# 980#
959CONFIG_HID_COMPAT=y
960# CONFIG_USB_SUPPORT is not set 981# CONFIG_USB_SUPPORT is not set
961# CONFIG_UWB is not set 982# CONFIG_UWB is not set
962# CONFIG_MMC is not set 983# CONFIG_MMC is not set
@@ -967,6 +988,7 @@ CONFIG_HID_COMPAT=y
967# CONFIG_EDAC is not set 988# CONFIG_EDAC is not set
968# CONFIG_RTC_CLASS is not set 989# CONFIG_RTC_CLASS is not set
969# CONFIG_DMADEVICES is not set 990# CONFIG_DMADEVICES is not set
991# CONFIG_AUXDISPLAY is not set
970# CONFIG_UIO is not set 992# CONFIG_UIO is not set
971# CONFIG_STAGING is not set 993# CONFIG_STAGING is not set
972 994
@@ -977,6 +999,7 @@ CONFIG_EXT2_FS=y
977# CONFIG_EXT2_FS_XATTR is not set 999# CONFIG_EXT2_FS_XATTR is not set
978# CONFIG_EXT2_FS_XIP is not set 1000# CONFIG_EXT2_FS_XIP is not set
979CONFIG_EXT3_FS=y 1001CONFIG_EXT3_FS=y
1002# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
980CONFIG_EXT3_FS_XATTR=y 1003CONFIG_EXT3_FS_XATTR=y
981# CONFIG_EXT3_FS_POSIX_ACL is not set 1004# CONFIG_EXT3_FS_POSIX_ACL is not set
982# CONFIG_EXT3_FS_SECURITY is not set 1005# CONFIG_EXT3_FS_SECURITY is not set
@@ -999,6 +1022,11 @@ CONFIG_INOTIFY_USER=y
999# CONFIG_FUSE_FS is not set 1022# CONFIG_FUSE_FS is not set
1000 1023
1001# 1024#
1025# Caches
1026#
1027# CONFIG_FSCACHE is not set
1028
1029#
1002# CD-ROM/DVD Filesystems 1030# CD-ROM/DVD Filesystems
1003# 1031#
1004# CONFIG_ISO9660_FS is not set 1032# CONFIG_ISO9660_FS is not set
@@ -1052,6 +1080,7 @@ CONFIG_JFFS2_RTIME=y
1052# CONFIG_ROMFS_FS is not set 1080# CONFIG_ROMFS_FS is not set
1053# CONFIG_SYSV_FS is not set 1081# CONFIG_SYSV_FS is not set
1054# CONFIG_UFS_FS is not set 1082# CONFIG_UFS_FS is not set
1083# CONFIG_NILFS2_FS is not set
1055CONFIG_NETWORK_FILESYSTEMS=y 1084CONFIG_NETWORK_FILESYSTEMS=y
1056CONFIG_NFS_FS=y 1085CONFIG_NFS_FS=y
1057CONFIG_NFS_V3=y 1086CONFIG_NFS_V3=y
@@ -1064,7 +1093,6 @@ CONFIG_LOCKD_V4=y
1064CONFIG_NFS_COMMON=y 1093CONFIG_NFS_COMMON=y
1065CONFIG_SUNRPC=y 1094CONFIG_SUNRPC=y
1066CONFIG_SUNRPC_GSS=y 1095CONFIG_SUNRPC_GSS=y
1067# CONFIG_SUNRPC_REGISTER_V4 is not set
1068CONFIG_RPCSEC_GSS_KRB5=y 1096CONFIG_RPCSEC_GSS_KRB5=y
1069# CONFIG_RPCSEC_GSS_SPKM3 is not set 1097# CONFIG_RPCSEC_GSS_SPKM3 is not set
1070# CONFIG_SMB_FS is not set 1098# CONFIG_SMB_FS is not set
@@ -1095,6 +1123,7 @@ CONFIG_PARTITION_ADVANCED=y
1095CONFIG_UCC_SLOW=y 1123CONFIG_UCC_SLOW=y
1096CONFIG_UCC_FAST=y 1124CONFIG_UCC_FAST=y
1097CONFIG_UCC=y 1125CONFIG_UCC=y
1126# CONFIG_BINARY_PRINTF is not set
1098 1127
1099# 1128#
1100# Library routines 1129# Library routines
@@ -1110,11 +1139,12 @@ CONFIG_CRC32=y
1110# CONFIG_LIBCRC32C is not set 1139# CONFIG_LIBCRC32C is not set
1111CONFIG_ZLIB_INFLATE=y 1140CONFIG_ZLIB_INFLATE=y
1112CONFIG_ZLIB_DEFLATE=y 1141CONFIG_ZLIB_DEFLATE=y
1113CONFIG_PLIST=y 1142CONFIG_DECOMPRESS_GZIP=y
1114CONFIG_HAS_IOMEM=y 1143CONFIG_HAS_IOMEM=y
1115CONFIG_HAS_IOPORT=y 1144CONFIG_HAS_IOPORT=y
1116CONFIG_HAS_DMA=y 1145CONFIG_HAS_DMA=y
1117CONFIG_HAVE_LMB=y 1146CONFIG_HAVE_LMB=y
1147CONFIG_NLATTR=y
1118 1148
1119# 1149#
1120# Kernel hacking 1150# Kernel hacking
@@ -1136,13 +1166,24 @@ CONFIG_FRAME_WARN=1024
1136# CONFIG_LATENCYTOP is not set 1166# CONFIG_LATENCYTOP is not set
1137CONFIG_SYSCTL_SYSCALL_CHECK=y 1167CONFIG_SYSCTL_SYSCALL_CHECK=y
1138CONFIG_HAVE_FUNCTION_TRACER=y 1168CONFIG_HAVE_FUNCTION_TRACER=y
1169CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y 1170CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1171CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1172CONFIG_TRACING_SUPPORT=y
1141 1173
1142# 1174#
1143# Tracers 1175# Tracers
1144# 1176#
1145# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1177# CONFIG_FUNCTION_TRACER is not set
1178# CONFIG_SCHED_TRACER is not set
1179# CONFIG_CONTEXT_SWITCH_TRACER is not set
1180# CONFIG_EVENT_TRACER is not set
1181# CONFIG_BOOT_TRACER is not set
1182# CONFIG_TRACE_BRANCH_PROFILING is not set
1183# CONFIG_STACK_TRACER is not set
1184# CONFIG_KMEMTRACE is not set
1185# CONFIG_WORKQUEUE_TRACER is not set
1186# CONFIG_BLK_DEV_IO_TRACE is not set
1146# CONFIG_SAMPLES is not set 1187# CONFIG_SAMPLES is not set
1147CONFIG_HAVE_ARCH_KGDB=y 1188CONFIG_HAVE_ARCH_KGDB=y
1148CONFIG_PRINT_STACK_DEPTH=64 1189CONFIG_PRINT_STACK_DEPTH=64
@@ -1182,10 +1223,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1182CONFIG_CRYPTO_HASH=y 1223CONFIG_CRYPTO_HASH=y
1183CONFIG_CRYPTO_HASH2=y 1224CONFIG_CRYPTO_HASH2=y
1184CONFIG_CRYPTO_RNG2=y 1225CONFIG_CRYPTO_RNG2=y
1226CONFIG_CRYPTO_PCOMP=y
1185CONFIG_CRYPTO_MANAGER=y 1227CONFIG_CRYPTO_MANAGER=y
1186CONFIG_CRYPTO_MANAGER2=y 1228CONFIG_CRYPTO_MANAGER2=y
1187# CONFIG_CRYPTO_GF128MUL is not set 1229# CONFIG_CRYPTO_GF128MUL is not set
1188# CONFIG_CRYPTO_NULL is not set 1230# CONFIG_CRYPTO_NULL is not set
1231CONFIG_CRYPTO_WORKQUEUE=y
1189# CONFIG_CRYPTO_CRYPTD is not set 1232# CONFIG_CRYPTO_CRYPTD is not set
1190# CONFIG_CRYPTO_AUTHENC is not set 1233# CONFIG_CRYPTO_AUTHENC is not set
1191# CONFIG_CRYPTO_TEST is not set 1234# CONFIG_CRYPTO_TEST is not set
@@ -1254,6 +1297,7 @@ CONFIG_CRYPTO_DES=y
1254# Compression 1297# Compression
1255# 1298#
1256# CONFIG_CRYPTO_DEFLATE is not set 1299# CONFIG_CRYPTO_DEFLATE is not set
1300# CONFIG_CRYPTO_ZLIB is not set
1257# CONFIG_CRYPTO_LZO is not set 1301# CONFIG_CRYPTO_LZO is not set
1258 1302
1259# 1303#
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index e42f6b3917d2..bf636fd560ad 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:59 2009 4# Wed May 13 17:22:12 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,20 +98,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
126CONFIG_COMPAT_BRK=y
112CONFIG_SLAB=y 127CONFIG_SLAB=y
113# CONFIG_SLUB is not set 128# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 133# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
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 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_MPC837x_MDS=y
184CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -350,6 +364,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 364# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 365# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 366# CONFIG_WAN_ROUTER is not set
367# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 368# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 369# CONFIG_DCB is not set
355 370
@@ -362,7 +377,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
363# CONFIG_BT is not set 378# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366CONFIG_WIRELESS=y 380CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y 382CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -410,13 +424,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
410# CONFIG_BLK_DEV_HD is not set 424# CONFIG_BLK_DEV_HD is not set
411CONFIG_MISC_DEVICES=y 425CONFIG_MISC_DEVICES=y
412# CONFIG_PHANTOM is not set 426# CONFIG_PHANTOM is not set
413# CONFIG_EEPROM_93CX6 is not set
414# CONFIG_SGI_IOC4 is not set 427# CONFIG_SGI_IOC4 is not set
415# CONFIG_TIFM_CORE is not set 428# CONFIG_TIFM_CORE is not set
416# CONFIG_ICS932S401 is not set 429# CONFIG_ICS932S401 is not set
417# CONFIG_ENCLOSURE_SERVICES is not set 430# CONFIG_ENCLOSURE_SERVICES is not set
418# CONFIG_HP_ILO is not set 431# CONFIG_HP_ILO is not set
432# CONFIG_ISL29003 is not set
419# CONFIG_C2PORT is not set 433# CONFIG_C2PORT is not set
434
435#
436# EEPROM support
437#
438# CONFIG_EEPROM_AT24 is not set
439# CONFIG_EEPROM_LEGACY is not set
440# CONFIG_EEPROM_93CX6 is not set
420CONFIG_HAVE_IDE=y 441CONFIG_HAVE_IDE=y
421# CONFIG_IDE is not set 442# CONFIG_IDE is not set
422 443
@@ -474,9 +495,11 @@ CONFIG_SCSI_LOWLEVEL=y
474# CONFIG_MEGARAID_NEWGEN is not set 495# CONFIG_MEGARAID_NEWGEN is not set
475# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
476# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
498# CONFIG_SCSI_MPT2SAS is not set
477# CONFIG_SCSI_HPTIOP is not set 499# CONFIG_SCSI_HPTIOP is not set
478# CONFIG_SCSI_BUSLOGIC is not set 500# CONFIG_SCSI_BUSLOGIC is not set
479# CONFIG_LIBFC is not set 501# CONFIG_LIBFC is not set
502# CONFIG_LIBFCOE is not set
480# CONFIG_FCOE is not set 503# CONFIG_FCOE is not set
481# CONFIG_SCSI_DMX3191D is not set 504# CONFIG_SCSI_DMX3191D is not set
482# CONFIG_SCSI_EATA is not set 505# CONFIG_SCSI_EATA is not set
@@ -499,6 +522,7 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
500# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
501# CONFIG_SCSI_DH is not set 524# CONFIG_SCSI_DH is not set
525# CONFIG_SCSI_OSD_INITIATOR is not set
502CONFIG_ATA=y 526CONFIG_ATA=y
503# CONFIG_ATA_NONSTANDARD is not set 527# CONFIG_ATA_NONSTANDARD is not set
504CONFIG_SATA_PMP=y 528CONFIG_SATA_PMP=y
@@ -575,6 +599,7 @@ CONFIG_ATA_SFF=y
575# CONFIG_I2O is not set 599# CONFIG_I2O is not set
576# CONFIG_MACINTOSH_DRIVERS is not set 600# CONFIG_MACINTOSH_DRIVERS is not set
577CONFIG_NETDEVICES=y 601CONFIG_NETDEVICES=y
602CONFIG_COMPAT_NET_DEV_OPS=y
578# CONFIG_DUMMY is not set 603# CONFIG_DUMMY is not set
579# CONFIG_BONDING is not set 604# CONFIG_BONDING is not set
580# CONFIG_MACVLAN is not set 605# CONFIG_MACVLAN is not set
@@ -608,6 +633,8 @@ CONFIG_MII=y
608# CONFIG_SUNGEM is not set 633# CONFIG_SUNGEM is not set
609# CONFIG_CASSINI is not set 634# CONFIG_CASSINI is not set
610# CONFIG_NET_VENDOR_3COM is not set 635# CONFIG_NET_VENDOR_3COM is not set
636# CONFIG_ETHOC is not set
637# CONFIG_DNET is not set
611# CONFIG_NET_TULIP is not set 638# CONFIG_NET_TULIP is not set
612# CONFIG_HP100 is not set 639# CONFIG_HP100 is not set
613# CONFIG_IBM_NEW_EMAC_ZMII is not set 640# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -627,6 +654,7 @@ CONFIG_NETDEV_1000=y
627# CONFIG_E1000E is not set 654# CONFIG_E1000E is not set
628# CONFIG_IP1000 is not set 655# CONFIG_IP1000 is not set
629# CONFIG_IGB is not set 656# CONFIG_IGB is not set
657# CONFIG_IGBVF is not set
630# CONFIG_NS83820 is not set 658# CONFIG_NS83820 is not set
631# CONFIG_HAMACHI is not set 659# CONFIG_HAMACHI is not set
632# CONFIG_YELLOWFIN is not set 660# CONFIG_YELLOWFIN is not set
@@ -637,11 +665,12 @@ CONFIG_NETDEV_1000=y
637# CONFIG_VIA_VELOCITY is not set 665# CONFIG_VIA_VELOCITY is not set
638# CONFIG_TIGON3 is not set 666# CONFIG_TIGON3 is not set
639# CONFIG_BNX2 is not set 667# CONFIG_BNX2 is not set
668CONFIG_FSL_PQ_MDIO=y
640CONFIG_GIANFAR=y 669CONFIG_GIANFAR=y
641# CONFIG_MV643XX_ETH is not set
642# CONFIG_QLA3XXX is not set 670# CONFIG_QLA3XXX is not set
643# CONFIG_ATL1 is not set 671# CONFIG_ATL1 is not set
644# CONFIG_ATL1E is not set 672# CONFIG_ATL1E is not set
673# CONFIG_ATL1C is not set
645# CONFIG_JME is not set 674# CONFIG_JME is not set
646CONFIG_NETDEV_10000=y 675CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 676# CONFIG_CHELSIO_T1 is not set
@@ -651,6 +680,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
651# CONFIG_IXGBE is not set 680# CONFIG_IXGBE is not set
652# CONFIG_IXGB is not set 681# CONFIG_IXGB is not set
653# CONFIG_S2IO is not set 682# CONFIG_S2IO is not set
683# CONFIG_VXGE is not set
654# CONFIG_MYRI10GE is not set 684# CONFIG_MYRI10GE is not set
655# CONFIG_NETXEN_NIC is not set 685# CONFIG_NETXEN_NIC is not set
656# CONFIG_NIU is not set 686# CONFIG_NIU is not set
@@ -660,6 +690,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
660# CONFIG_BNX2X is not set 690# CONFIG_BNX2X is not set
661# CONFIG_QLGE is not set 691# CONFIG_QLGE is not set
662# CONFIG_SFC is not set 692# CONFIG_SFC is not set
693# CONFIG_BE2NET is not set
663# CONFIG_TR is not set 694# CONFIG_TR is not set
664 695
665# 696#
@@ -667,7 +698,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
667# 698#
668# CONFIG_WLAN_PRE80211 is not set 699# CONFIG_WLAN_PRE80211 is not set
669# CONFIG_WLAN_80211 is not set 700# CONFIG_WLAN_80211 is not set
670# CONFIG_IWLWIFI_LEDS is not set
671 701
672# 702#
673# Enable WiMAX (Networking options) to see the WiMAX drivers 703# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -811,12 +841,9 @@ CONFIG_I2C_MPC=y
811# Miscellaneous I2C Chip support 841# Miscellaneous I2C Chip support
812# 842#
813# CONFIG_DS1682 is not set 843# CONFIG_DS1682 is not set
814# CONFIG_EEPROM_AT24 is not set
815# CONFIG_EEPROM_LEGACY is not set
816# CONFIG_SENSORS_PCF8574 is not set 844# CONFIG_SENSORS_PCF8574 is not set
817# CONFIG_PCF8575 is not set 845# CONFIG_PCF8575 is not set
818# CONFIG_SENSORS_PCA9539 is not set 846# CONFIG_SENSORS_PCA9539 is not set
819# CONFIG_SENSORS_PCF8591 is not set
820# CONFIG_SENSORS_MAX6875 is not set 847# CONFIG_SENSORS_MAX6875 is not set
821# CONFIG_SENSORS_TSL2550 is not set 848# CONFIG_SENSORS_TSL2550 is not set
822# CONFIG_I2C_DEBUG_CORE is not set 849# CONFIG_I2C_DEBUG_CORE is not set
@@ -848,6 +875,7 @@ CONFIG_HWMON=y
848# CONFIG_SENSORS_F71805F is not set 875# CONFIG_SENSORS_F71805F is not set
849# CONFIG_SENSORS_F71882FG is not set 876# CONFIG_SENSORS_F71882FG is not set
850# CONFIG_SENSORS_F75375S is not set 877# CONFIG_SENSORS_F75375S is not set
878# CONFIG_SENSORS_G760A is not set
851# CONFIG_SENSORS_GL518SM is not set 879# CONFIG_SENSORS_GL518SM is not set
852# CONFIG_SENSORS_GL520SM is not set 880# CONFIG_SENSORS_GL520SM is not set
853# CONFIG_SENSORS_IT87 is not set 881# CONFIG_SENSORS_IT87 is not set
@@ -862,11 +890,14 @@ CONFIG_HWMON=y
862# CONFIG_SENSORS_LM90 is not set 890# CONFIG_SENSORS_LM90 is not set
863# CONFIG_SENSORS_LM92 is not set 891# CONFIG_SENSORS_LM92 is not set
864# CONFIG_SENSORS_LM93 is not set 892# CONFIG_SENSORS_LM93 is not set
893# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set 894# CONFIG_SENSORS_LTC4245 is not set
895# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1619 is not set 896# CONFIG_SENSORS_MAX1619 is not set
867# CONFIG_SENSORS_MAX6650 is not set 897# CONFIG_SENSORS_MAX6650 is not set
868# CONFIG_SENSORS_PC87360 is not set 898# CONFIG_SENSORS_PC87360 is not set
869# CONFIG_SENSORS_PC87427 is not set 899# CONFIG_SENSORS_PC87427 is not set
900# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_SIS5595 is not set 901# CONFIG_SENSORS_SIS5595 is not set
871# CONFIG_SENSORS_DME1737 is not set 902# CONFIG_SENSORS_DME1737 is not set
872# CONFIG_SENSORS_SMSC47M1 is not set 903# CONFIG_SENSORS_SMSC47M1 is not set
@@ -964,7 +995,6 @@ CONFIG_HID=y
964# 995#
965# Special HID drivers 996# Special HID drivers
966# 997#
967CONFIG_HID_COMPAT=y
968CONFIG_USB_SUPPORT=y 998CONFIG_USB_SUPPORT=y
969CONFIG_USB_ARCH_HAS_HCD=y 999CONFIG_USB_ARCH_HAS_HCD=y
970CONFIG_USB_ARCH_HAS_OHCI=y 1000CONFIG_USB_ARCH_HAS_OHCI=y
@@ -978,7 +1008,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
978# 1008#
979 1009
980# 1010#
981# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1011# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
982# 1012#
983# CONFIG_USB_GADGET is not set 1013# CONFIG_USB_GADGET is not set
984 1014
@@ -994,6 +1024,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
994# CONFIG_EDAC is not set 1024# CONFIG_EDAC is not set
995# CONFIG_RTC_CLASS is not set 1025# CONFIG_RTC_CLASS is not set
996# CONFIG_DMADEVICES is not set 1026# CONFIG_DMADEVICES is not set
1027# CONFIG_AUXDISPLAY is not set
997# CONFIG_UIO is not set 1028# CONFIG_UIO is not set
998# CONFIG_STAGING is not set 1029# CONFIG_STAGING is not set
999 1030
@@ -1004,6 +1035,7 @@ CONFIG_EXT2_FS=y
1004# CONFIG_EXT2_FS_XATTR is not set 1035# CONFIG_EXT2_FS_XATTR is not set
1005# CONFIG_EXT2_FS_XIP is not set 1036# CONFIG_EXT2_FS_XIP is not set
1006CONFIG_EXT3_FS=y 1037CONFIG_EXT3_FS=y
1038# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1007CONFIG_EXT3_FS_XATTR=y 1039CONFIG_EXT3_FS_XATTR=y
1008# CONFIG_EXT3_FS_POSIX_ACL is not set 1040# CONFIG_EXT3_FS_POSIX_ACL is not set
1009# CONFIG_EXT3_FS_SECURITY is not set 1041# CONFIG_EXT3_FS_SECURITY is not set
@@ -1026,6 +1058,11 @@ CONFIG_INOTIFY_USER=y
1026# CONFIG_FUSE_FS is not set 1058# CONFIG_FUSE_FS is not set
1027 1059
1028# 1060#
1061# Caches
1062#
1063# CONFIG_FSCACHE is not set
1064
1065#
1029# CD-ROM/DVD Filesystems 1066# CD-ROM/DVD Filesystems
1030# 1067#
1031# CONFIG_ISO9660_FS is not set 1068# CONFIG_ISO9660_FS is not set
@@ -1068,6 +1105,7 @@ CONFIG_MISC_FILESYSTEMS=y
1068# CONFIG_ROMFS_FS is not set 1105# CONFIG_ROMFS_FS is not set
1069# CONFIG_SYSV_FS is not set 1106# CONFIG_SYSV_FS is not set
1070# CONFIG_UFS_FS is not set 1107# CONFIG_UFS_FS is not set
1108# CONFIG_NILFS2_FS is not set
1071CONFIG_NETWORK_FILESYSTEMS=y 1109CONFIG_NETWORK_FILESYSTEMS=y
1072CONFIG_NFS_FS=y 1110CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1111CONFIG_NFS_V3=y
@@ -1080,7 +1118,6 @@ CONFIG_LOCKD_V4=y
1080CONFIG_NFS_COMMON=y 1118CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1119CONFIG_SUNRPC=y
1082CONFIG_SUNRPC_GSS=y 1120CONFIG_SUNRPC_GSS=y
1083# CONFIG_SUNRPC_REGISTER_V4 is not set
1084CONFIG_RPCSEC_GSS_KRB5=y 1121CONFIG_RPCSEC_GSS_KRB5=y
1085# CONFIG_RPCSEC_GSS_SPKM3 is not set 1122# CONFIG_RPCSEC_GSS_SPKM3 is not set
1086# CONFIG_SMB_FS is not set 1123# CONFIG_SMB_FS is not set
@@ -1112,6 +1149,7 @@ CONFIG_MSDOS_PARTITION=y
1112# CONFIG_SYSV68_PARTITION is not set 1149# CONFIG_SYSV68_PARTITION is not set
1113# CONFIG_NLS is not set 1150# CONFIG_NLS is not set
1114# CONFIG_DLM is not set 1151# CONFIG_DLM is not set
1152# CONFIG_BINARY_PRINTF is not set
1115 1153
1116# 1154#
1117# Library routines 1155# Library routines
@@ -1125,11 +1163,13 @@ CONFIG_CRC_T10DIF=y
1125CONFIG_CRC32=y 1163CONFIG_CRC32=y
1126# CONFIG_CRC7 is not set 1164# CONFIG_CRC7 is not set
1127# CONFIG_LIBCRC32C is not set 1165# CONFIG_LIBCRC32C is not set
1128CONFIG_PLIST=y 1166CONFIG_ZLIB_INFLATE=y
1167CONFIG_DECOMPRESS_GZIP=y
1129CONFIG_HAS_IOMEM=y 1168CONFIG_HAS_IOMEM=y
1130CONFIG_HAS_IOPORT=y 1169CONFIG_HAS_IOPORT=y
1131CONFIG_HAS_DMA=y 1170CONFIG_HAS_DMA=y
1132CONFIG_HAVE_LMB=y 1171CONFIG_HAVE_LMB=y
1172CONFIG_NLATTR=y
1133 1173
1134# 1174#
1135# Kernel hacking 1175# Kernel hacking
@@ -1149,13 +1189,24 @@ CONFIG_FRAME_WARN=1024
1149# CONFIG_LATENCYTOP is not set 1189# CONFIG_LATENCYTOP is not set
1150CONFIG_SYSCTL_SYSCALL_CHECK=y 1190CONFIG_SYSCTL_SYSCALL_CHECK=y
1151CONFIG_HAVE_FUNCTION_TRACER=y 1191CONFIG_HAVE_FUNCTION_TRACER=y
1192CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1152CONFIG_HAVE_DYNAMIC_FTRACE=y 1193CONFIG_HAVE_DYNAMIC_FTRACE=y
1153CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1194CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1195CONFIG_TRACING_SUPPORT=y
1154 1196
1155# 1197#
1156# Tracers 1198# Tracers
1157# 1199#
1158# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1200# CONFIG_FUNCTION_TRACER is not set
1201# CONFIG_SCHED_TRACER is not set
1202# CONFIG_CONTEXT_SWITCH_TRACER is not set
1203# CONFIG_EVENT_TRACER is not set
1204# CONFIG_BOOT_TRACER is not set
1205# CONFIG_TRACE_BRANCH_PROFILING is not set
1206# CONFIG_STACK_TRACER is not set
1207# CONFIG_KMEMTRACE is not set
1208# CONFIG_WORKQUEUE_TRACER is not set
1209# CONFIG_BLK_DEV_IO_TRACE is not set
1159# CONFIG_SAMPLES is not set 1210# CONFIG_SAMPLES is not set
1160CONFIG_HAVE_ARCH_KGDB=y 1211CONFIG_HAVE_ARCH_KGDB=y
1161CONFIG_PRINT_STACK_DEPTH=64 1212CONFIG_PRINT_STACK_DEPTH=64
@@ -1184,10 +1235,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1184CONFIG_CRYPTO_HASH=y 1235CONFIG_CRYPTO_HASH=y
1185CONFIG_CRYPTO_HASH2=y 1236CONFIG_CRYPTO_HASH2=y
1186CONFIG_CRYPTO_RNG2=y 1237CONFIG_CRYPTO_RNG2=y
1238CONFIG_CRYPTO_PCOMP=y
1187CONFIG_CRYPTO_MANAGER=y 1239CONFIG_CRYPTO_MANAGER=y
1188CONFIG_CRYPTO_MANAGER2=y 1240CONFIG_CRYPTO_MANAGER2=y
1189# CONFIG_CRYPTO_GF128MUL is not set 1241# CONFIG_CRYPTO_GF128MUL is not set
1190# CONFIG_CRYPTO_NULL is not set 1242# CONFIG_CRYPTO_NULL is not set
1243CONFIG_CRYPTO_WORKQUEUE=y
1191# CONFIG_CRYPTO_CRYPTD is not set 1244# CONFIG_CRYPTO_CRYPTD is not set
1192# CONFIG_CRYPTO_AUTHENC is not set 1245# CONFIG_CRYPTO_AUTHENC is not set
1193# CONFIG_CRYPTO_TEST is not set 1246# CONFIG_CRYPTO_TEST is not set
@@ -1256,6 +1309,7 @@ CONFIG_CRYPTO_DES=y
1256# Compression 1309# Compression
1257# 1310#
1258# CONFIG_CRYPTO_DEFLATE is not set 1311# CONFIG_CRYPTO_DEFLATE is not set
1312# CONFIG_CRYPTO_ZLIB is not set
1259# CONFIG_CRYPTO_LZO is not set 1313# CONFIG_CRYPTO_LZO is not set
1260 1314
1261# 1315#
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index 408022f79a50..fe6454eacbdb 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:01 2009 4# Wed May 13 17:22:14 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,20 +98,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104# CONFIG_EPOLL is not set 118# CONFIG_EPOLL is not set
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_PCI_QUIRKS=y 125CONFIG_PCI_QUIRKS=y
126CONFIG_COMPAT_BRK=y
112CONFIG_SLAB=y 127CONFIG_SLAB=y
113# CONFIG_SLUB is not set 128# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 133# CONFIG_KPROBES is not set
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 134CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_MODULE_UNLOAD=y
132# CONFIG_MODULE_SRCVERSION_ALL is not set 149# CONFIG_MODULE_SRCVERSION_ALL is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,18 +164,11 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
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 167# CONFIG_FREEZER is not set
157 168
158# 169#
159# Platform support 170# Platform support
160# 171#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 172# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 173# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 174# CONFIG_MPC5121_GENERIC is not set
@@ -184,6 +193,8 @@ CONFIG_MPC837x_RDB=y
184CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
185# CONFIG_PPC_86xx is not set 194# CONFIG_PPC_86xx is not set
186# CONFIG_EMBEDDED6xx is not set 195# CONFIG_EMBEDDED6xx is not set
196# CONFIG_AMIGAONE is not set
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187CONFIG_IPIC=y 198CONFIG_IPIC=y
188# CONFIG_MPIC is not set 199# CONFIG_MPIC is not set
189# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +255,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 255CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 256CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 257CONFIG_UNEVICTABLE_LRU=y
258CONFIG_HAVE_MLOCK=y
259CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 260CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 261# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 262# CONFIG_PPC_64K_PAGES is not set
263# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 264CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y 265CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 266# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set 286# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +309,6 @@ CONFIG_NET=y
294# 309#
295# Networking options 310# Networking options
296# 311#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 312CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -345,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_LAPB is not set 359# CONFIG_LAPB is not set
346# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
347# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
362# CONFIG_PHONET is not set
348# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set 364# CONFIG_DCB is not set
350 365
@@ -357,7 +372,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
357# CONFIG_IRDA is not set 372# CONFIG_IRDA is not set
358# CONFIG_BT is not set 373# CONFIG_BT is not set
359# CONFIG_AF_RXRPC is not set 374# CONFIG_AF_RXRPC is not set
360# CONFIG_PHONET is not set
361CONFIG_WIRELESS=y 375CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
363CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -406,13 +420,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
406# CONFIG_BLK_DEV_HD is not set 420# CONFIG_BLK_DEV_HD is not set
407CONFIG_MISC_DEVICES=y 421CONFIG_MISC_DEVICES=y
408# CONFIG_PHANTOM is not set 422# CONFIG_PHANTOM is not set
409# CONFIG_EEPROM_93CX6 is not set
410# CONFIG_SGI_IOC4 is not set 423# CONFIG_SGI_IOC4 is not set
411# CONFIG_TIFM_CORE is not set 424# CONFIG_TIFM_CORE is not set
412# CONFIG_ICS932S401 is not set 425# CONFIG_ICS932S401 is not set
413# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
414# CONFIG_HP_ILO is not set 427# CONFIG_HP_ILO is not set
428# CONFIG_ISL29003 is not set
415# CONFIG_C2PORT is not set 429# CONFIG_C2PORT is not set
430
431#
432# EEPROM support
433#
434# CONFIG_EEPROM_AT24 is not set
435# CONFIG_EEPROM_LEGACY is not set
436# CONFIG_EEPROM_93CX6 is not set
416CONFIG_HAVE_IDE=y 437CONFIG_HAVE_IDE=y
417# CONFIG_IDE is not set 438# CONFIG_IDE is not set
418 439
@@ -469,9 +490,11 @@ CONFIG_SCSI_LOWLEVEL=y
469# CONFIG_MEGARAID_NEWGEN is not set 490# CONFIG_MEGARAID_NEWGEN is not set
470# CONFIG_MEGARAID_LEGACY is not set 491# CONFIG_MEGARAID_LEGACY is not set
471# CONFIG_MEGARAID_SAS is not set 492# CONFIG_MEGARAID_SAS is not set
493# CONFIG_SCSI_MPT2SAS is not set
472# CONFIG_SCSI_HPTIOP is not set 494# CONFIG_SCSI_HPTIOP is not set
473# CONFIG_SCSI_BUSLOGIC is not set 495# CONFIG_SCSI_BUSLOGIC is not set
474# CONFIG_LIBFC is not set 496# CONFIG_LIBFC is not set
497# CONFIG_LIBFCOE is not set
475# CONFIG_FCOE is not set 498# CONFIG_FCOE is not set
476# CONFIG_SCSI_DMX3191D is not set 499# CONFIG_SCSI_DMX3191D is not set
477# CONFIG_SCSI_EATA is not set 500# CONFIG_SCSI_EATA is not set
@@ -494,6 +517,7 @@ CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_SCSI_DEBUG is not set 517# CONFIG_SCSI_DEBUG is not set
495# CONFIG_SCSI_SRP is not set 518# CONFIG_SCSI_SRP is not set
496# CONFIG_SCSI_DH is not set 519# CONFIG_SCSI_DH is not set
520# CONFIG_SCSI_OSD_INITIATOR is not set
497CONFIG_ATA=y 521CONFIG_ATA=y
498# CONFIG_ATA_NONSTANDARD is not set 522# CONFIG_ATA_NONSTANDARD is not set
499CONFIG_SATA_PMP=y 523CONFIG_SATA_PMP=y
@@ -563,7 +587,7 @@ CONFIG_MD_AUTODETECT=y
563CONFIG_MD_RAID1=y 587CONFIG_MD_RAID1=y
564# CONFIG_MD_RAID10 is not set 588# CONFIG_MD_RAID10 is not set
565CONFIG_MD_RAID456=y 589CONFIG_MD_RAID456=y
566CONFIG_MD_RAID5_RESHAPE=y 590CONFIG_MD_RAID6_PQ=y
567# CONFIG_MD_MULTIPATH is not set 591# CONFIG_MD_MULTIPATH is not set
568# CONFIG_MD_FAULTY is not set 592# CONFIG_MD_FAULTY is not set
569# CONFIG_BLK_DEV_DM is not set 593# CONFIG_BLK_DEV_DM is not set
@@ -581,6 +605,7 @@ CONFIG_MD_RAID5_RESHAPE=y
581# CONFIG_I2O is not set 605# CONFIG_I2O is not set
582# CONFIG_MACINTOSH_DRIVERS is not set 606# CONFIG_MACINTOSH_DRIVERS is not set
583CONFIG_NETDEVICES=y 607CONFIG_NETDEVICES=y
608CONFIG_COMPAT_NET_DEV_OPS=y
584# CONFIG_DUMMY is not set 609# CONFIG_DUMMY is not set
585# CONFIG_BONDING is not set 610# CONFIG_BONDING is not set
586# CONFIG_MACVLAN is not set 611# CONFIG_MACVLAN is not set
@@ -614,6 +639,8 @@ CONFIG_MII=y
614# CONFIG_SUNGEM is not set 639# CONFIG_SUNGEM is not set
615# CONFIG_CASSINI is not set 640# CONFIG_CASSINI is not set
616# CONFIG_NET_VENDOR_3COM is not set 641# CONFIG_NET_VENDOR_3COM is not set
642# CONFIG_ETHOC is not set
643# CONFIG_DNET is not set
617# CONFIG_NET_TULIP is not set 644# CONFIG_NET_TULIP is not set
618# CONFIG_HP100 is not set 645# CONFIG_HP100 is not set
619# CONFIG_IBM_NEW_EMAC_ZMII is not set 646# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -633,6 +660,7 @@ CONFIG_NETDEV_1000=y
633# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
634# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
635# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
636# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
637# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
638# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -643,11 +671,12 @@ CONFIG_NETDEV_1000=y
643# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
644# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
645# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
646CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
647# CONFIG_MV643XX_ETH is not set
648# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
649# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
650# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
651# CONFIG_JME is not set 680# CONFIG_JME is not set
652# CONFIG_NETDEV_10000 is not set 681# CONFIG_NETDEV_10000 is not set
653# CONFIG_TR is not set 682# CONFIG_TR is not set
@@ -657,7 +686,6 @@ CONFIG_GIANFAR=y
657# 686#
658# CONFIG_WLAN_PRE80211 is not set 687# CONFIG_WLAN_PRE80211 is not set
659# CONFIG_WLAN_80211 is not set 688# CONFIG_WLAN_80211 is not set
660# CONFIG_IWLWIFI_LEDS is not set
661 689
662# 690#
663# Enable WiMAX (Networking options) to see the WiMAX drivers 691# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -811,12 +839,9 @@ CONFIG_I2C_MPC=y
811# Miscellaneous I2C Chip support 839# Miscellaneous I2C Chip support
812# 840#
813# CONFIG_DS1682 is not set 841# CONFIG_DS1682 is not set
814# CONFIG_EEPROM_AT24 is not set
815# CONFIG_EEPROM_LEGACY is not set
816# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
817# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
818# CONFIG_SENSORS_PCA9539 is not set 844# CONFIG_SENSORS_PCA9539 is not set
819# CONFIG_SENSORS_PCF8591 is not set
820# CONFIG_SENSORS_MAX6875 is not set 845# CONFIG_SENSORS_MAX6875 is not set
821# CONFIG_SENSORS_TSL2550 is not set 846# CONFIG_SENSORS_TSL2550 is not set
822# CONFIG_I2C_DEBUG_CORE is not set 847# CONFIG_I2C_DEBUG_CORE is not set
@@ -848,6 +873,7 @@ CONFIG_HWMON=y
848# CONFIG_SENSORS_F71805F is not set 873# CONFIG_SENSORS_F71805F is not set
849# CONFIG_SENSORS_F71882FG is not set 874# CONFIG_SENSORS_F71882FG is not set
850# CONFIG_SENSORS_F75375S is not set 875# CONFIG_SENSORS_F75375S is not set
876# CONFIG_SENSORS_G760A is not set
851# CONFIG_SENSORS_GL518SM is not set 877# CONFIG_SENSORS_GL518SM is not set
852# CONFIG_SENSORS_GL520SM is not set 878# CONFIG_SENSORS_GL520SM is not set
853# CONFIG_SENSORS_IT87 is not set 879# CONFIG_SENSORS_IT87 is not set
@@ -862,11 +888,14 @@ CONFIG_HWMON=y
862# CONFIG_SENSORS_LM90 is not set 888# CONFIG_SENSORS_LM90 is not set
863# CONFIG_SENSORS_LM92 is not set 889# CONFIG_SENSORS_LM92 is not set
864# CONFIG_SENSORS_LM93 is not set 890# CONFIG_SENSORS_LM93 is not set
891# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set 892# CONFIG_SENSORS_LTC4245 is not set
893# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1619 is not set 894# CONFIG_SENSORS_MAX1619 is not set
867# CONFIG_SENSORS_MAX6650 is not set 895# CONFIG_SENSORS_MAX6650 is not set
868# CONFIG_SENSORS_PC87360 is not set 896# CONFIG_SENSORS_PC87360 is not set
869# CONFIG_SENSORS_PC87427 is not set 897# CONFIG_SENSORS_PC87427 is not set
898# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_SIS5595 is not set 899# CONFIG_SENSORS_SIS5595 is not set
871# CONFIG_SENSORS_DME1737 is not set 900# CONFIG_SENSORS_DME1737 is not set
872# CONFIG_SENSORS_SMSC47M1 is not set 901# CONFIG_SENSORS_SMSC47M1 is not set
@@ -976,15 +1005,17 @@ CONFIG_USB_HID=y
976# 1005#
977# Special HID drivers 1006# Special HID drivers
978# 1007#
979CONFIG_HID_COMPAT=y
980CONFIG_HID_A4TECH=y 1008CONFIG_HID_A4TECH=y
981CONFIG_HID_APPLE=y 1009CONFIG_HID_APPLE=y
982CONFIG_HID_BELKIN=y 1010CONFIG_HID_BELKIN=y
983CONFIG_HID_CHERRY=y 1011CONFIG_HID_CHERRY=y
984CONFIG_HID_CHICONY=y 1012CONFIG_HID_CHICONY=y
985CONFIG_HID_CYPRESS=y 1013CONFIG_HID_CYPRESS=y
1014# CONFIG_DRAGONRISE_FF is not set
986CONFIG_HID_EZKEY=y 1015CONFIG_HID_EZKEY=y
1016# CONFIG_HID_KYE is not set
987CONFIG_HID_GYRATION=y 1017CONFIG_HID_GYRATION=y
1018# CONFIG_HID_KENSINGTON is not set
988CONFIG_HID_LOGITECH=y 1019CONFIG_HID_LOGITECH=y
989# CONFIG_LOGITECH_FF is not set 1020# CONFIG_LOGITECH_FF is not set
990# CONFIG_LOGIRUMBLEPAD2_FF is not set 1021# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1050,11 +1081,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1050# CONFIG_USB_TMC is not set 1081# CONFIG_USB_TMC is not set
1051 1082
1052# 1083#
1053# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1084# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1054# 1085#
1055 1086
1056# 1087#
1057# see USB_STORAGE Help for more information 1088# also be needed; see USB_STORAGE Help for more info
1058# 1089#
1059# CONFIG_USB_STORAGE is not set 1090# CONFIG_USB_STORAGE is not set
1060# CONFIG_USB_LIBUSUAL is not set 1091# CONFIG_USB_LIBUSUAL is not set
@@ -1084,7 +1115,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1084# CONFIG_USB_LED is not set 1115# CONFIG_USB_LED is not set
1085# CONFIG_USB_CYPRESS_CY7C63 is not set 1116# CONFIG_USB_CYPRESS_CY7C63 is not set
1086# CONFIG_USB_CYTHERM is not set 1117# CONFIG_USB_CYTHERM is not set
1087# CONFIG_USB_PHIDGET is not set
1088# CONFIG_USB_IDMOUSE is not set 1118# CONFIG_USB_IDMOUSE is not set
1089# CONFIG_USB_FTDI_ELAN is not set 1119# CONFIG_USB_FTDI_ELAN is not set
1090# CONFIG_USB_APPLEDISPLAY is not set 1120# CONFIG_USB_APPLEDISPLAY is not set
@@ -1099,6 +1129,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1099# 1129#
1100# OTG and related infrastructure 1130# OTG and related infrastructure
1101# 1131#
1132# CONFIG_NOP_USB_XCEIV is not set
1102# CONFIG_UWB is not set 1133# CONFIG_UWB is not set
1103# CONFIG_MMC is not set 1134# CONFIG_MMC is not set
1104# CONFIG_MEMSTICK is not set 1135# CONFIG_MEMSTICK is not set
@@ -1108,6 +1139,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1108# CONFIG_EDAC is not set 1139# CONFIG_EDAC is not set
1109# CONFIG_RTC_CLASS is not set 1140# CONFIG_RTC_CLASS is not set
1110# CONFIG_DMADEVICES is not set 1141# CONFIG_DMADEVICES is not set
1142# CONFIG_AUXDISPLAY is not set
1111# CONFIG_UIO is not set 1143# CONFIG_UIO is not set
1112# CONFIG_STAGING is not set 1144# CONFIG_STAGING is not set
1113 1145
@@ -1118,6 +1150,7 @@ CONFIG_EXT2_FS=y
1118# CONFIG_EXT2_FS_XATTR is not set 1150# CONFIG_EXT2_FS_XATTR is not set
1119# CONFIG_EXT2_FS_XIP is not set 1151# CONFIG_EXT2_FS_XIP is not set
1120CONFIG_EXT3_FS=y 1152CONFIG_EXT3_FS=y
1153# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1121CONFIG_EXT3_FS_XATTR=y 1154CONFIG_EXT3_FS_XATTR=y
1122# CONFIG_EXT3_FS_POSIX_ACL is not set 1155# CONFIG_EXT3_FS_POSIX_ACL is not set
1123# CONFIG_EXT3_FS_SECURITY is not set 1156# CONFIG_EXT3_FS_SECURITY is not set
@@ -1140,6 +1173,11 @@ CONFIG_INOTIFY_USER=y
1140# CONFIG_FUSE_FS is not set 1173# CONFIG_FUSE_FS is not set
1141 1174
1142# 1175#
1176# Caches
1177#
1178# CONFIG_FSCACHE is not set
1179
1180#
1143# CD-ROM/DVD Filesystems 1181# CD-ROM/DVD Filesystems
1144# 1182#
1145# CONFIG_ISO9660_FS is not set 1183# CONFIG_ISO9660_FS is not set
@@ -1182,6 +1220,7 @@ CONFIG_MISC_FILESYSTEMS=y
1182# CONFIG_ROMFS_FS is not set 1220# CONFIG_ROMFS_FS is not set
1183# CONFIG_SYSV_FS is not set 1221# CONFIG_SYSV_FS is not set
1184# CONFIG_UFS_FS is not set 1222# CONFIG_UFS_FS is not set
1223# CONFIG_NILFS2_FS is not set
1185CONFIG_NETWORK_FILESYSTEMS=y 1224CONFIG_NETWORK_FILESYSTEMS=y
1186CONFIG_NFS_FS=y 1225CONFIG_NFS_FS=y
1187CONFIG_NFS_V3=y 1226CONFIG_NFS_V3=y
@@ -1194,7 +1233,6 @@ CONFIG_LOCKD_V4=y
1194CONFIG_NFS_COMMON=y 1233CONFIG_NFS_COMMON=y
1195CONFIG_SUNRPC=y 1234CONFIG_SUNRPC=y
1196CONFIG_SUNRPC_GSS=y 1235CONFIG_SUNRPC_GSS=y
1197# CONFIG_SUNRPC_REGISTER_V4 is not set
1198CONFIG_RPCSEC_GSS_KRB5=y 1236CONFIG_RPCSEC_GSS_KRB5=y
1199# CONFIG_RPCSEC_GSS_SPKM3 is not set 1237# CONFIG_RPCSEC_GSS_SPKM3 is not set
1200# CONFIG_SMB_FS is not set 1238# CONFIG_SMB_FS is not set
@@ -1226,6 +1264,7 @@ CONFIG_MSDOS_PARTITION=y
1226# CONFIG_SYSV68_PARTITION is not set 1264# CONFIG_SYSV68_PARTITION is not set
1227# CONFIG_NLS is not set 1265# CONFIG_NLS is not set
1228# CONFIG_DLM is not set 1266# CONFIG_DLM is not set
1267# CONFIG_BINARY_PRINTF is not set
1229 1268
1230# 1269#
1231# Library routines 1270# Library routines
@@ -1239,11 +1278,13 @@ CONFIG_CRC_T10DIF=y
1239CONFIG_CRC32=y 1278CONFIG_CRC32=y
1240# CONFIG_CRC7 is not set 1279# CONFIG_CRC7 is not set
1241# CONFIG_LIBCRC32C is not set 1280# CONFIG_LIBCRC32C is not set
1242CONFIG_PLIST=y 1281CONFIG_ZLIB_INFLATE=y
1282CONFIG_DECOMPRESS_GZIP=y
1243CONFIG_HAS_IOMEM=y 1283CONFIG_HAS_IOMEM=y
1244CONFIG_HAS_IOPORT=y 1284CONFIG_HAS_IOPORT=y
1245CONFIG_HAS_DMA=y 1285CONFIG_HAS_DMA=y
1246CONFIG_HAVE_LMB=y 1286CONFIG_HAVE_LMB=y
1287CONFIG_NLATTR=y
1247 1288
1248# 1289#
1249# Kernel hacking 1290# Kernel hacking
@@ -1263,13 +1304,24 @@ CONFIG_FRAME_WARN=1024
1263# CONFIG_LATENCYTOP is not set 1304# CONFIG_LATENCYTOP is not set
1264CONFIG_SYSCTL_SYSCALL_CHECK=y 1305CONFIG_SYSCTL_SYSCALL_CHECK=y
1265CONFIG_HAVE_FUNCTION_TRACER=y 1306CONFIG_HAVE_FUNCTION_TRACER=y
1307CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1266CONFIG_HAVE_DYNAMIC_FTRACE=y 1308CONFIG_HAVE_DYNAMIC_FTRACE=y
1267CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1309CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1310CONFIG_TRACING_SUPPORT=y
1268 1311
1269# 1312#
1270# Tracers 1313# Tracers
1271# 1314#
1272# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1315# CONFIG_FUNCTION_TRACER is not set
1316# CONFIG_SCHED_TRACER is not set
1317# CONFIG_CONTEXT_SWITCH_TRACER is not set
1318# CONFIG_EVENT_TRACER is not set
1319# CONFIG_BOOT_TRACER is not set
1320# CONFIG_TRACE_BRANCH_PROFILING is not set
1321# CONFIG_STACK_TRACER is not set
1322# CONFIG_KMEMTRACE is not set
1323# CONFIG_WORKQUEUE_TRACER is not set
1324# CONFIG_BLK_DEV_IO_TRACE is not set
1273# CONFIG_SAMPLES is not set 1325# CONFIG_SAMPLES is not set
1274CONFIG_HAVE_ARCH_KGDB=y 1326CONFIG_HAVE_ARCH_KGDB=y
1275CONFIG_PRINT_STACK_DEPTH=64 1327CONFIG_PRINT_STACK_DEPTH=64
@@ -1302,10 +1354,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1302CONFIG_CRYPTO_HASH=y 1354CONFIG_CRYPTO_HASH=y
1303CONFIG_CRYPTO_HASH2=y 1355CONFIG_CRYPTO_HASH2=y
1304CONFIG_CRYPTO_RNG2=y 1356CONFIG_CRYPTO_RNG2=y
1357CONFIG_CRYPTO_PCOMP=y
1305CONFIG_CRYPTO_MANAGER=y 1358CONFIG_CRYPTO_MANAGER=y
1306CONFIG_CRYPTO_MANAGER2=y 1359CONFIG_CRYPTO_MANAGER2=y
1307# CONFIG_CRYPTO_GF128MUL is not set 1360# CONFIG_CRYPTO_GF128MUL is not set
1308# CONFIG_CRYPTO_NULL is not set 1361# CONFIG_CRYPTO_NULL is not set
1362CONFIG_CRYPTO_WORKQUEUE=y
1309# CONFIG_CRYPTO_CRYPTD is not set 1363# CONFIG_CRYPTO_CRYPTD is not set
1310# CONFIG_CRYPTO_AUTHENC is not set 1364# CONFIG_CRYPTO_AUTHENC is not set
1311# CONFIG_CRYPTO_TEST is not set 1365# CONFIG_CRYPTO_TEST is not set
@@ -1374,6 +1428,7 @@ CONFIG_CRYPTO_DES=y
1374# Compression 1428# Compression
1375# 1429#
1376# CONFIG_CRYPTO_DEFLATE is not set 1430# CONFIG_CRYPTO_DEFLATE is not set
1431# CONFIG_CRYPTO_ZLIB is not set
1377# CONFIG_CRYPTO_LZO is not set 1432# CONFIG_CRYPTO_LZO is not set
1378 1433
1379# 1434#
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index a0c42fb65cb9..fe08f672cb27 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:02 2009 4# Wed May 13 17:22:15 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -56,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
56CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 89CONFIG_GROUP_SCHED=y
@@ -87,19 +98,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94# CONFIG_KALLSYMS is not set 109# CONFIG_KALLSYMS is not set
110# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_HOTPLUG=y 111CONFIG_HOTPLUG=y
96CONFIG_PRINTK=y 112CONFIG_PRINTK=y
97CONFIG_BUG=y 113CONFIG_BUG=y
98CONFIG_ELF_CORE=y 114CONFIG_ELF_CORE=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 115CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 116CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103# CONFIG_EPOLL is not set 117# CONFIG_EPOLL is not set
104CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 119CONFIG_TIMERFD=y
@@ -108,16 +122,19 @@ CONFIG_SHMEM=y
108CONFIG_AIO=y 122CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 123CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 124CONFIG_PCI_QUIRKS=y
125CONFIG_COMPAT_BRK=y
111CONFIG_SLAB=y 126CONFIG_SLAB=y
112# CONFIG_SLUB is not set 127# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 128# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 129# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 133CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 134CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 135CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 136CONFIG_HAVE_ARCH_TRACEHOOK=y
137# CONFIG_SLOW_WORK is not set
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_SRCVERSION_ALL is not set 147# CONFIG_MODULE_SRCVERSION_ALL is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,18 +162,11 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
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 165# CONFIG_FREEZER is not set
155 166
156# 167#
157# Platform support 168# Platform support
158# 169#
159CONFIG_PPC_MULTIPLATFORM=y
160CONFIG_CLASSIC32=y
161# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
162# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
163# CONFIG_MPC5121_GENERIC is not set 172# CONFIG_MPC5121_GENERIC is not set
@@ -182,6 +191,8 @@ CONFIG_SBC834x=y
182CONFIG_PPC_MPC834x=y 191CONFIG_PPC_MPC834x=y
183# CONFIG_PPC_86xx is not set 192# CONFIG_PPC_86xx is not set
184# CONFIG_EMBEDDED6xx is not set 193# CONFIG_EMBEDDED6xx is not set
194# CONFIG_AMIGAONE is not set
195CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185CONFIG_IPIC=y 196CONFIG_IPIC=y
186# CONFIG_MPIC is not set 197# CONFIG_MPIC is not set
187# CONFIG_MPIC_WEIRD is not set 198# CONFIG_MPIC_WEIRD is not set
@@ -242,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
242CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
243CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
244CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
246# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
247# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
248CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
249CONFIG_PROC_DEVICETREE=y 263CONFIG_PROC_DEVICETREE=y
250# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -270,6 +284,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# CONFIG_PCI_MSI is not set 284# CONFIG_PCI_MSI is not set
271# CONFIG_PCI_LEGACY is not set 285# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_STUB is not set 286# CONFIG_PCI_STUB is not set
287# CONFIG_PCI_IOV is not set
273# CONFIG_PCCARD is not set 288# CONFIG_PCCARD is not set
274# CONFIG_HOTPLUG_PCI is not set 289# CONFIG_HOTPLUG_PCI is not set
275# CONFIG_HAS_RAPIDIO is not set 290# CONFIG_HAS_RAPIDIO is not set
@@ -292,7 +307,6 @@ CONFIG_NET=y
292# 307#
293# Networking options 308# Networking options
294# 309#
295CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 310CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 311# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 312CONFIG_UNIX=y
@@ -348,6 +362,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_LAPB is not set 362# CONFIG_LAPB is not set
349# CONFIG_ECONET is not set 363# CONFIG_ECONET is not set
350# CONFIG_WAN_ROUTER is not set 364# CONFIG_WAN_ROUTER is not set
365# CONFIG_PHONET is not set
351# CONFIG_NET_SCHED is not set 366# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set 367# CONFIG_DCB is not set
353 368
@@ -360,7 +375,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 375# CONFIG_IRDA is not set
361# CONFIG_BT is not set 376# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 377# CONFIG_AF_RXRPC is not set
363# CONFIG_PHONET is not set
364CONFIG_WIRELESS=y 378CONFIG_WIRELESS=y
365# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
366CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -408,13 +422,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
408# CONFIG_BLK_DEV_HD is not set 422# CONFIG_BLK_DEV_HD is not set
409CONFIG_MISC_DEVICES=y 423CONFIG_MISC_DEVICES=y
410# CONFIG_PHANTOM is not set 424# CONFIG_PHANTOM is not set
411# CONFIG_EEPROM_93CX6 is not set
412# CONFIG_SGI_IOC4 is not set 425# CONFIG_SGI_IOC4 is not set
413# CONFIG_TIFM_CORE is not set 426# CONFIG_TIFM_CORE is not set
414# CONFIG_ICS932S401 is not set 427# CONFIG_ICS932S401 is not set
415# CONFIG_ENCLOSURE_SERVICES is not set 428# CONFIG_ENCLOSURE_SERVICES is not set
416# CONFIG_HP_ILO is not set 429# CONFIG_HP_ILO is not set
430# CONFIG_ISL29003 is not set
417# CONFIG_C2PORT is not set 431# CONFIG_C2PORT is not set
432
433#
434# EEPROM support
435#
436# CONFIG_EEPROM_AT24 is not set
437# CONFIG_EEPROM_LEGACY is not set
438# CONFIG_EEPROM_93CX6 is not set
418CONFIG_HAVE_IDE=y 439CONFIG_HAVE_IDE=y
419# CONFIG_IDE is not set 440# CONFIG_IDE is not set
420 441
@@ -441,6 +462,7 @@ CONFIG_HAVE_IDE=y
441# CONFIG_I2O is not set 462# CONFIG_I2O is not set
442# CONFIG_MACINTOSH_DRIVERS is not set 463# CONFIG_MACINTOSH_DRIVERS is not set
443CONFIG_NETDEVICES=y 464CONFIG_NETDEVICES=y
465CONFIG_COMPAT_NET_DEV_OPS=y
444# CONFIG_DUMMY is not set 466# CONFIG_DUMMY is not set
445# CONFIG_BONDING is not set 467# CONFIG_BONDING is not set
446# CONFIG_MACVLAN is not set 468# CONFIG_MACVLAN is not set
@@ -474,6 +496,8 @@ CONFIG_MII=y
474# CONFIG_SUNGEM is not set 496# CONFIG_SUNGEM is not set
475# CONFIG_CASSINI is not set 497# CONFIG_CASSINI is not set
476# CONFIG_NET_VENDOR_3COM is not set 498# CONFIG_NET_VENDOR_3COM is not set
499# CONFIG_ETHOC is not set
500# CONFIG_DNET is not set
477# CONFIG_NET_TULIP is not set 501# CONFIG_NET_TULIP is not set
478# CONFIG_HP100 is not set 502# CONFIG_HP100 is not set
479# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -493,6 +517,7 @@ CONFIG_NETDEV_1000=y
493# CONFIG_E1000E is not set 517# CONFIG_E1000E is not set
494# CONFIG_IP1000 is not set 518# CONFIG_IP1000 is not set
495# CONFIG_IGB is not set 519# CONFIG_IGB is not set
520# CONFIG_IGBVF is not set
496# CONFIG_NS83820 is not set 521# CONFIG_NS83820 is not set
497# CONFIG_HAMACHI is not set 522# CONFIG_HAMACHI is not set
498# CONFIG_YELLOWFIN is not set 523# CONFIG_YELLOWFIN is not set
@@ -503,11 +528,12 @@ CONFIG_NETDEV_1000=y
503# CONFIG_VIA_VELOCITY is not set 528# CONFIG_VIA_VELOCITY is not set
504# CONFIG_TIGON3 is not set 529# CONFIG_TIGON3 is not set
505# CONFIG_BNX2 is not set 530# CONFIG_BNX2 is not set
531CONFIG_FSL_PQ_MDIO=y
506CONFIG_GIANFAR=y 532CONFIG_GIANFAR=y
507# CONFIG_MV643XX_ETH is not set
508# CONFIG_QLA3XXX is not set 533# CONFIG_QLA3XXX is not set
509# CONFIG_ATL1 is not set 534# CONFIG_ATL1 is not set
510# CONFIG_ATL1E is not set 535# CONFIG_ATL1E is not set
536# CONFIG_ATL1C is not set
511# CONFIG_JME is not set 537# CONFIG_JME is not set
512# CONFIG_NETDEV_10000 is not set 538# CONFIG_NETDEV_10000 is not set
513# CONFIG_TR is not set 539# CONFIG_TR is not set
@@ -517,7 +543,6 @@ CONFIG_GIANFAR=y
517# 543#
518# CONFIG_WLAN_PRE80211 is not set 544# CONFIG_WLAN_PRE80211 is not set
519# CONFIG_WLAN_80211 is not set 545# CONFIG_WLAN_80211 is not set
520# CONFIG_IWLWIFI_LEDS is not set
521 546
522# 547#
523# Enable WiMAX (Networking options) to see the WiMAX drivers 548# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -660,12 +685,9 @@ CONFIG_I2C_MPC=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_EEPROM_AT24 is not set
664# CONFIG_EEPROM_LEGACY is not set
665# CONFIG_SENSORS_PCF8574 is not set 688# CONFIG_SENSORS_PCF8574 is not set
666# CONFIG_PCF8575 is not set 689# CONFIG_PCF8575 is not set
667# CONFIG_SENSORS_PCA9539 is not set 690# CONFIG_SENSORS_PCA9539 is not set
668# CONFIG_SENSORS_PCF8591 is not set
669# CONFIG_SENSORS_MAX6875 is not set 691# CONFIG_SENSORS_MAX6875 is not set
670# CONFIG_SENSORS_TSL2550 is not set 692# CONFIG_SENSORS_TSL2550 is not set
671# CONFIG_I2C_DEBUG_CORE is not set 693# CONFIG_I2C_DEBUG_CORE is not set
@@ -697,6 +719,7 @@ CONFIG_HWMON=y
697# CONFIG_SENSORS_F71805F is not set 719# CONFIG_SENSORS_F71805F is not set
698# CONFIG_SENSORS_F71882FG is not set 720# CONFIG_SENSORS_F71882FG is not set
699# CONFIG_SENSORS_F75375S is not set 721# CONFIG_SENSORS_F75375S is not set
722# CONFIG_SENSORS_G760A is not set
700# CONFIG_SENSORS_GL518SM is not set 723# CONFIG_SENSORS_GL518SM is not set
701# CONFIG_SENSORS_GL520SM is not set 724# CONFIG_SENSORS_GL520SM is not set
702# CONFIG_SENSORS_IT87 is not set 725# CONFIG_SENSORS_IT87 is not set
@@ -711,11 +734,14 @@ CONFIG_HWMON=y
711# CONFIG_SENSORS_LM90 is not set 734# CONFIG_SENSORS_LM90 is not set
712# CONFIG_SENSORS_LM92 is not set 735# CONFIG_SENSORS_LM92 is not set
713# CONFIG_SENSORS_LM93 is not set 736# CONFIG_SENSORS_LM93 is not set
737# CONFIG_SENSORS_LTC4215 is not set
714# CONFIG_SENSORS_LTC4245 is not set 738# CONFIG_SENSORS_LTC4245 is not set
739# CONFIG_SENSORS_LM95241 is not set
715# CONFIG_SENSORS_MAX1619 is not set 740# CONFIG_SENSORS_MAX1619 is not set
716# CONFIG_SENSORS_MAX6650 is not set 741# CONFIG_SENSORS_MAX6650 is not set
717# CONFIG_SENSORS_PC87360 is not set 742# CONFIG_SENSORS_PC87360 is not set
718# CONFIG_SENSORS_PC87427 is not set 743# CONFIG_SENSORS_PC87427 is not set
744# CONFIG_SENSORS_PCF8591 is not set
719# CONFIG_SENSORS_SIS5595 is not set 745# CONFIG_SENSORS_SIS5595 is not set
720# CONFIG_SENSORS_DME1737 is not set 746# CONFIG_SENSORS_DME1737 is not set
721# CONFIG_SENSORS_SMSC47M1 is not set 747# CONFIG_SENSORS_SMSC47M1 is not set
@@ -813,7 +839,6 @@ CONFIG_HID=y
813# 839#
814# Special HID drivers 840# Special HID drivers
815# 841#
816CONFIG_HID_COMPAT=y
817# CONFIG_USB_SUPPORT is not set 842# CONFIG_USB_SUPPORT is not set
818# CONFIG_UWB is not set 843# CONFIG_UWB is not set
819# CONFIG_MMC is not set 844# CONFIG_MMC is not set
@@ -824,6 +849,7 @@ CONFIG_HID_COMPAT=y
824# CONFIG_EDAC is not set 849# CONFIG_EDAC is not set
825# CONFIG_RTC_CLASS is not set 850# CONFIG_RTC_CLASS is not set
826# CONFIG_DMADEVICES is not set 851# CONFIG_DMADEVICES is not set
852# CONFIG_AUXDISPLAY is not set
827# CONFIG_UIO is not set 853# CONFIG_UIO is not set
828# CONFIG_STAGING is not set 854# CONFIG_STAGING is not set
829 855
@@ -849,6 +875,11 @@ CONFIG_INOTIFY_USER=y
849# CONFIG_FUSE_FS is not set 875# CONFIG_FUSE_FS is not set
850 876
851# 877#
878# Caches
879#
880# CONFIG_FSCACHE is not set
881
882#
852# CD-ROM/DVD Filesystems 883# CD-ROM/DVD Filesystems
853# 884#
854# CONFIG_ISO9660_FS is not set 885# CONFIG_ISO9660_FS is not set
@@ -891,6 +922,7 @@ CONFIG_MISC_FILESYSTEMS=y
891# CONFIG_ROMFS_FS is not set 922# CONFIG_ROMFS_FS is not set
892# CONFIG_SYSV_FS is not set 923# CONFIG_SYSV_FS is not set
893# CONFIG_UFS_FS is not set 924# CONFIG_UFS_FS is not set
925# CONFIG_NILFS2_FS is not set
894CONFIG_NETWORK_FILESYSTEMS=y 926CONFIG_NETWORK_FILESYSTEMS=y
895CONFIG_NFS_FS=y 927CONFIG_NFS_FS=y
896CONFIG_NFS_V3=y 928CONFIG_NFS_V3=y
@@ -903,7 +935,6 @@ CONFIG_LOCKD_V4=y
903CONFIG_NFS_COMMON=y 935CONFIG_NFS_COMMON=y
904CONFIG_SUNRPC=y 936CONFIG_SUNRPC=y
905CONFIG_SUNRPC_GSS=y 937CONFIG_SUNRPC_GSS=y
906# CONFIG_SUNRPC_REGISTER_V4 is not set
907CONFIG_RPCSEC_GSS_KRB5=y 938CONFIG_RPCSEC_GSS_KRB5=y
908# CONFIG_RPCSEC_GSS_SPKM3 is not set 939# CONFIG_RPCSEC_GSS_SPKM3 is not set
909# CONFIG_SMB_FS is not set 940# CONFIG_SMB_FS is not set
@@ -919,6 +950,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
919CONFIG_MSDOS_PARTITION=y 950CONFIG_MSDOS_PARTITION=y
920# CONFIG_NLS is not set 951# CONFIG_NLS is not set
921# CONFIG_DLM is not set 952# CONFIG_DLM is not set
953# CONFIG_BINARY_PRINTF is not set
922 954
923# 955#
924# Library routines 956# Library routines
@@ -932,11 +964,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
932CONFIG_CRC32=y 964CONFIG_CRC32=y
933# CONFIG_CRC7 is not set 965# CONFIG_CRC7 is not set
934# CONFIG_LIBCRC32C is not set 966# CONFIG_LIBCRC32C is not set
935CONFIG_PLIST=y 967CONFIG_ZLIB_INFLATE=y
968CONFIG_DECOMPRESS_GZIP=y
936CONFIG_HAS_IOMEM=y 969CONFIG_HAS_IOMEM=y
937CONFIG_HAS_IOPORT=y 970CONFIG_HAS_IOPORT=y
938CONFIG_HAS_DMA=y 971CONFIG_HAS_DMA=y
939CONFIG_HAVE_LMB=y 972CONFIG_HAVE_LMB=y
973CONFIG_NLATTR=y
940 974
941# 975#
942# Kernel hacking 976# Kernel hacking
@@ -956,13 +990,24 @@ CONFIG_FRAME_WARN=1024
956# CONFIG_LATENCYTOP is not set 990# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 991CONFIG_SYSCTL_SYSCALL_CHECK=y
958CONFIG_HAVE_FUNCTION_TRACER=y 992CONFIG_HAVE_FUNCTION_TRACER=y
993CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 994CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 995CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
996CONFIG_TRACING_SUPPORT=y
961 997
962# 998#
963# Tracers 999# Tracers
964# 1000#
965# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1001# CONFIG_FUNCTION_TRACER is not set
1002# CONFIG_SCHED_TRACER is not set
1003# CONFIG_CONTEXT_SWITCH_TRACER is not set
1004# CONFIG_EVENT_TRACER is not set
1005# CONFIG_BOOT_TRACER is not set
1006# CONFIG_TRACE_BRANCH_PROFILING is not set
1007# CONFIG_STACK_TRACER is not set
1008# CONFIG_KMEMTRACE is not set
1009# CONFIG_WORKQUEUE_TRACER is not set
1010# CONFIG_BLK_DEV_IO_TRACE is not set
966# CONFIG_SAMPLES is not set 1011# CONFIG_SAMPLES is not set
967CONFIG_HAVE_ARCH_KGDB=y 1012CONFIG_HAVE_ARCH_KGDB=y
968CONFIG_PRINT_STACK_DEPTH=64 1013CONFIG_PRINT_STACK_DEPTH=64
@@ -991,10 +1036,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
991CONFIG_CRYPTO_HASH=y 1036CONFIG_CRYPTO_HASH=y
992CONFIG_CRYPTO_HASH2=y 1037CONFIG_CRYPTO_HASH2=y
993CONFIG_CRYPTO_RNG2=y 1038CONFIG_CRYPTO_RNG2=y
1039CONFIG_CRYPTO_PCOMP=y
994CONFIG_CRYPTO_MANAGER=y 1040CONFIG_CRYPTO_MANAGER=y
995CONFIG_CRYPTO_MANAGER2=y 1041CONFIG_CRYPTO_MANAGER2=y
996# CONFIG_CRYPTO_GF128MUL is not set 1042# CONFIG_CRYPTO_GF128MUL is not set
997# CONFIG_CRYPTO_NULL is not set 1043# CONFIG_CRYPTO_NULL is not set
1044CONFIG_CRYPTO_WORKQUEUE=y
998# CONFIG_CRYPTO_CRYPTD is not set 1045# CONFIG_CRYPTO_CRYPTD is not set
999# CONFIG_CRYPTO_AUTHENC is not set 1046# CONFIG_CRYPTO_AUTHENC is not set
1000# CONFIG_CRYPTO_TEST is not set 1047# CONFIG_CRYPTO_TEST is not set
@@ -1063,6 +1110,7 @@ CONFIG_CRYPTO_DES=y
1063# Compression 1110# Compression
1064# 1111#
1065# CONFIG_CRYPTO_DEFLATE is not set 1112# CONFIG_CRYPTO_DEFLATE is not set
1113# CONFIG_CRYPTO_ZLIB is not set
1066# CONFIG_CRYPTO_LZO is not set 1114# CONFIG_CRYPTO_LZO is not set
1067 1115
1068# 1116#
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 6479bb9f3f57..09146ddaa3ca 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:03 2009 4# Wed May 13 17:22:16 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_GROUP_SCHED is not set 92# CONFIG_GROUP_SCHED is not set
@@ -86,21 +97,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_NAMESPACES is not set 97# CONFIG_NAMESPACES is not set
87CONFIG_BLK_DEV_INITRD=y 98CONFIG_BLK_DEV_INITRD=y
88CONFIG_INITRAMFS_SOURCE="" 99CONFIG_INITRAMFS_SOURCE=""
100CONFIG_RD_GZIP=y
101# CONFIG_RD_BZIP2 is not set
102# CONFIG_RD_LZMA is not set
89# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
90CONFIG_SYSCTL=y 104CONFIG_SYSCTL=y
105CONFIG_ANON_INODES=y
91CONFIG_EMBEDDED=y 106CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 107CONFIG_SYSCTL_SYSCALL=y
93CONFIG_KALLSYMS=y 108CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 109# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 110# CONFIG_KALLSYMS_EXTRA_PASS is not set
111# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_HOTPLUG=y 112CONFIG_HOTPLUG=y
97CONFIG_PRINTK=y 113CONFIG_PRINTK=y
98CONFIG_BUG=y 114CONFIG_BUG=y
99CONFIG_ELF_CORE=y 115CONFIG_ELF_CORE=y
100CONFIG_COMPAT_BRK=y
101CONFIG_BASE_FULL=y 116CONFIG_BASE_FULL=y
102CONFIG_FUTEX=y 117CONFIG_FUTEX=y
103CONFIG_ANON_INODES=y
104CONFIG_EPOLL=y 118CONFIG_EPOLL=y
105CONFIG_SIGNALFD=y 119CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y 120CONFIG_TIMERFD=y
@@ -109,10 +123,12 @@ CONFIG_SHMEM=y
109CONFIG_AIO=y 123CONFIG_AIO=y
110CONFIG_VM_EVENT_COUNTERS=y 124CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_SLUB_DEBUG=y 125CONFIG_SLUB_DEBUG=y
126CONFIG_COMPAT_BRK=y
112# CONFIG_SLAB is not set 127# CONFIG_SLAB is not set
113CONFIG_SLUB=y 128CONFIG_SLUB=y
114# CONFIG_SLOB is not set 129# CONFIG_SLOB is not set
115# CONFIG_PROFILING is not set 130# CONFIG_PROFILING is not set
131# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 132CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y 134CONFIG_HAVE_IOREMAP_PROT=y
@@ -120,6 +136,7 @@ CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 136CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 137CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_CLK=y 138CONFIG_HAVE_CLK=y
139# CONFIG_SLOW_WORK is not set
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 140# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 141CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 142CONFIG_RT_MUTEXES=y
@@ -127,7 +144,6 @@ CONFIG_BASE_SMALL=0
127# CONFIG_MODULES is not set 144# CONFIG_MODULES is not set
128CONFIG_BLOCK=y 145CONFIG_BLOCK=y
129# CONFIG_LBD is not set 146# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set 148# CONFIG_BLK_DEV_INTEGRITY is not set
133 149
@@ -143,11 +159,6 @@ CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_CFQ is not set 159# CONFIG_DEFAULT_CFQ is not set
144# CONFIG_DEFAULT_NOOP is not set 160# CONFIG_DEFAULT_NOOP is not set
145CONFIG_DEFAULT_IOSCHED="anticipatory" 161CONFIG_DEFAULT_IOSCHED="anticipatory"
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
151# CONFIG_FREEZER is not set 162# CONFIG_FREEZER is not set
152 163
153# 164#
@@ -163,6 +174,7 @@ CONFIG_MPC85xx=y
163# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set 175# CONFIG_MPC8536_DS is not set
165# CONFIG_MPC85xx_DS is not set 176# CONFIG_MPC85xx_DS is not set
177# CONFIG_SOCRATES is not set
166CONFIG_KSI8560=y 178CONFIG_KSI8560=y
167# CONFIG_STX_GP3 is not set 179# CONFIG_STX_GP3 is not set
168# CONFIG_TQM8540 is not set 180# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238# CONFIG_PROC_DEVICETREE is not set 253# CONFIG_PROC_DEVICETREE is not set
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -264,17 +279,17 @@ CONFIG_PPC_PCI_CHOICE=y
264# Default settings for advanced configuration options are used 279# Default settings for advanced configuration options are used
265# 280#
266CONFIG_LOWMEM_SIZE=0x30000000 281CONFIG_LOWMEM_SIZE=0x30000000
282CONFIG_LOWMEM_CAM_NUM=3
267CONFIG_PAGE_OFFSET=0xc0000000 283CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 284CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
270CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x04000000
271CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
272CONFIG_NET=y 288CONFIG_NET=y
273 289
274# 290#
275# Networking options 291# Networking options
276# 292#
277CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 293CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -330,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_LAPB is not set 345# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
348# CONFIG_PHONET is not set
333# CONFIG_NET_SCHED is not set 349# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set 350# CONFIG_DCB is not set
335 351
@@ -342,7 +358,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_IRDA is not set 358# CONFIG_IRDA is not set
343# CONFIG_BT is not set 359# CONFIG_BT is not set
344# CONFIG_AF_RXRPC is not set 360# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set
346CONFIG_WIRELESS=y 361CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -444,7 +459,6 @@ CONFIG_MTD_PHYSMAP_OF=y
444# LPDDR flash memory drivers 459# LPDDR flash memory drivers
445# 460#
446# CONFIG_MTD_LPDDR is not set 461# CONFIG_MTD_LPDDR is not set
447# CONFIG_MTD_QINFO_PROBE is not set
448 462
449# 463#
450# UBI - Unsorted block images 464# UBI - Unsorted block images
@@ -467,9 +481,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
467# CONFIG_ATA_OVER_ETH is not set 481# CONFIG_ATA_OVER_ETH is not set
468# CONFIG_BLK_DEV_HD is not set 482# CONFIG_BLK_DEV_HD is not set
469CONFIG_MISC_DEVICES=y 483CONFIG_MISC_DEVICES=y
470# CONFIG_EEPROM_93CX6 is not set
471# CONFIG_ENCLOSURE_SERVICES is not set 484# CONFIG_ENCLOSURE_SERVICES is not set
472# CONFIG_C2PORT is not set 485# CONFIG_C2PORT is not set
486
487#
488# EEPROM support
489#
490# CONFIG_EEPROM_93CX6 is not set
473CONFIG_HAVE_IDE=y 491CONFIG_HAVE_IDE=y
474CONFIG_IDE=y 492CONFIG_IDE=y
475 493
@@ -502,6 +520,7 @@ CONFIG_IDE_PROC_FS=y
502# CONFIG_MD is not set 520# CONFIG_MD is not set
503# CONFIG_MACINTOSH_DRIVERS is not set 521# CONFIG_MACINTOSH_DRIVERS is not set
504CONFIG_NETDEVICES=y 522CONFIG_NETDEVICES=y
523CONFIG_COMPAT_NET_DEV_OPS=y
505# CONFIG_DUMMY is not set 524# CONFIG_DUMMY is not set
506# CONFIG_BONDING is not set 525# CONFIG_BONDING is not set
507# CONFIG_MACVLAN is not set 526# CONFIG_MACVLAN is not set
@@ -531,6 +550,8 @@ CONFIG_MDIO_BITBANG=y
531# CONFIG_MDIO_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
553# CONFIG_ETHOC is not set
554# CONFIG_DNET is not set
534# CONFIG_IBM_NEW_EMAC_ZMII is not set 555# CONFIG_IBM_NEW_EMAC_ZMII is not set
535# CONFIG_IBM_NEW_EMAC_RGMII is not set 556# CONFIG_IBM_NEW_EMAC_RGMII is not set
536# CONFIG_IBM_NEW_EMAC_TAH is not set 557# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -544,6 +565,7 @@ CONFIG_FS_ENET=y
544CONFIG_FS_ENET_HAS_FCC=y 565CONFIG_FS_ENET_HAS_FCC=y
545CONFIG_FS_ENET_MDIO_FCC=y 566CONFIG_FS_ENET_MDIO_FCC=y
546CONFIG_NETDEV_1000=y 567CONFIG_NETDEV_1000=y
568CONFIG_FSL_PQ_MDIO=y
547CONFIG_GIANFAR=y 569CONFIG_GIANFAR=y
548CONFIG_NETDEV_10000=y 570CONFIG_NETDEV_10000=y
549 571
@@ -552,7 +574,6 @@ CONFIG_NETDEV_10000=y
552# 574#
553# CONFIG_WLAN_PRE80211 is not set 575# CONFIG_WLAN_PRE80211 is not set
554# CONFIG_WLAN_80211 is not set 576# CONFIG_WLAN_80211 is not set
555# CONFIG_IWLWIFI_LEDS is not set
556 577
557# 578#
558# Enable WiMAX (Networking options) to see the WiMAX drivers 579# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -624,6 +645,7 @@ CONFIG_LEGACY_PTY_COUNT=256
624# CONFIG_HVC_UDBG is not set 645# CONFIG_HVC_UDBG is not set
625# CONFIG_IPMI_HANDLER is not set 646# CONFIG_IPMI_HANDLER is not set
626CONFIG_HW_RANDOM=y 647CONFIG_HW_RANDOM=y
648# CONFIG_HW_RANDOM_TIMERIOMEM is not set
627# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
628CONFIG_GEN_RTC=y 650CONFIG_GEN_RTC=y
629# CONFIG_GEN_RTC_X is not set 651# CONFIG_GEN_RTC_X is not set
@@ -663,6 +685,7 @@ CONFIG_HWMON=y
663# CONFIG_SENSORS_IT87 is not set 685# CONFIG_SENSORS_IT87 is not set
664# CONFIG_SENSORS_PC87360 is not set 686# CONFIG_SENSORS_PC87360 is not set
665# CONFIG_SENSORS_PC87427 is not set 687# CONFIG_SENSORS_PC87427 is not set
688# CONFIG_SENSORS_SHT15 is not set
666# CONFIG_SENSORS_SMSC47M1 is not set 689# CONFIG_SENSORS_SMSC47M1 is not set
667# CONFIG_SENSORS_SMSC47B397 is not set 690# CONFIG_SENSORS_SMSC47B397 is not set
668# CONFIG_SENSORS_VT1211 is not set 691# CONFIG_SENSORS_VT1211 is not set
@@ -726,7 +749,6 @@ CONFIG_HID=y
726# 749#
727# Special HID drivers 750# Special HID drivers
728# 751#
729CONFIG_HID_COMPAT=y
730CONFIG_USB_SUPPORT=y 752CONFIG_USB_SUPPORT=y
731# CONFIG_USB_ARCH_HAS_HCD is not set 753# CONFIG_USB_ARCH_HAS_HCD is not set
732# CONFIG_USB_ARCH_HAS_OHCI is not set 754# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -739,7 +761,7 @@ CONFIG_USB_SUPPORT=y
739# 761#
740 762
741# 763#
742# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 764# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
743# 765#
744# CONFIG_USB_GADGET is not set 766# CONFIG_USB_GADGET is not set
745 767
@@ -753,6 +775,7 @@ CONFIG_USB_SUPPORT=y
753# CONFIG_EDAC is not set 775# CONFIG_EDAC is not set
754# CONFIG_RTC_CLASS is not set 776# CONFIG_RTC_CLASS is not set
755# CONFIG_DMADEVICES is not set 777# CONFIG_DMADEVICES is not set
778# CONFIG_AUXDISPLAY is not set
756# CONFIG_UIO is not set 779# CONFIG_UIO is not set
757# CONFIG_STAGING is not set 780# CONFIG_STAGING is not set
758 781
@@ -763,6 +786,7 @@ CONFIG_EXT2_FS=y
763# CONFIG_EXT2_FS_XATTR is not set 786# CONFIG_EXT2_FS_XATTR is not set
764# CONFIG_EXT2_FS_XIP is not set 787# CONFIG_EXT2_FS_XIP is not set
765CONFIG_EXT3_FS=y 788CONFIG_EXT3_FS=y
789# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
766CONFIG_EXT3_FS_XATTR=y 790CONFIG_EXT3_FS_XATTR=y
767# CONFIG_EXT3_FS_POSIX_ACL is not set 791# CONFIG_EXT3_FS_POSIX_ACL is not set
768# CONFIG_EXT3_FS_SECURITY is not set 792# CONFIG_EXT3_FS_SECURITY is not set
@@ -786,6 +810,11 @@ CONFIG_INOTIFY_USER=y
786# CONFIG_FUSE_FS is not set 810# CONFIG_FUSE_FS is not set
787 811
788# 812#
813# Caches
814#
815# CONFIG_FSCACHE is not set
816
817#
789# CD-ROM/DVD Filesystems 818# CD-ROM/DVD Filesystems
790# 819#
791# CONFIG_ISO9660_FS is not set 820# CONFIG_ISO9660_FS is not set
@@ -829,6 +858,7 @@ CONFIG_MISC_FILESYSTEMS=y
829# CONFIG_ROMFS_FS is not set 858# CONFIG_ROMFS_FS is not set
830# CONFIG_SYSV_FS is not set 859# CONFIG_SYSV_FS is not set
831# CONFIG_UFS_FS is not set 860# CONFIG_UFS_FS is not set
861# CONFIG_NILFS2_FS is not set
832CONFIG_NETWORK_FILESYSTEMS=y 862CONFIG_NETWORK_FILESYSTEMS=y
833CONFIG_NFS_FS=y 863CONFIG_NFS_FS=y
834# CONFIG_NFS_V3 is not set 864# CONFIG_NFS_V3 is not set
@@ -838,7 +868,6 @@ CONFIG_ROOT_NFS=y
838CONFIG_LOCKD=y 868CONFIG_LOCKD=y
839CONFIG_NFS_COMMON=y 869CONFIG_NFS_COMMON=y
840CONFIG_SUNRPC=y 870CONFIG_SUNRPC=y
841# CONFIG_SUNRPC_REGISTER_V4 is not set
842# CONFIG_RPCSEC_GSS_KRB5 is not set 871# CONFIG_RPCSEC_GSS_KRB5 is not set
843# CONFIG_RPCSEC_GSS_SPKM3 is not set 872# CONFIG_RPCSEC_GSS_SPKM3 is not set
844# CONFIG_SMB_FS is not set 873# CONFIG_SMB_FS is not set
@@ -866,6 +895,7 @@ CONFIG_PARTITION_ADVANCED=y
866# CONFIG_SYSV68_PARTITION is not set 895# CONFIG_SYSV68_PARTITION is not set
867# CONFIG_NLS is not set 896# CONFIG_NLS is not set
868# CONFIG_DLM is not set 897# CONFIG_DLM is not set
898# CONFIG_BINARY_PRINTF is not set
869 899
870# 900#
871# Library routines 901# Library routines
@@ -879,11 +909,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
879CONFIG_CRC32=y 909CONFIG_CRC32=y
880# CONFIG_CRC7 is not set 910# CONFIG_CRC7 is not set
881# CONFIG_LIBCRC32C is not set 911# CONFIG_LIBCRC32C is not set
882CONFIG_PLIST=y 912CONFIG_ZLIB_INFLATE=y
913CONFIG_DECOMPRESS_GZIP=y
883CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
884CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
885CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
886CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
887 919
888# 920#
889# Kernel hacking 921# Kernel hacking
@@ -901,6 +933,9 @@ CONFIG_DEBUG_KERNEL=y
901CONFIG_DETECT_SOFTLOCKUP=y 933CONFIG_DETECT_SOFTLOCKUP=y
902# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 934# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
903CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 935CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
936CONFIG_DETECT_HUNG_TASK=y
937# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
938CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
904CONFIG_SCHED_DEBUG=y 939CONFIG_SCHED_DEBUG=y
905# CONFIG_SCHEDSTATS is not set 940# CONFIG_SCHEDSTATS is not set
906# CONFIG_TIMER_STATS is not set 941# CONFIG_TIMER_STATS is not set
@@ -931,9 +966,12 @@ CONFIG_DEBUG_MUTEXES=y
931# CONFIG_FAULT_INJECTION is not set 966# CONFIG_FAULT_INJECTION is not set
932# CONFIG_LATENCYTOP is not set 967# CONFIG_LATENCYTOP is not set
933CONFIG_SYSCTL_SYSCALL_CHECK=y 968CONFIG_SYSCTL_SYSCALL_CHECK=y
969# CONFIG_DEBUG_PAGEALLOC is not set
934CONFIG_HAVE_FUNCTION_TRACER=y 970CONFIG_HAVE_FUNCTION_TRACER=y
971CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
935CONFIG_HAVE_DYNAMIC_FTRACE=y 972CONFIG_HAVE_DYNAMIC_FTRACE=y
936CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 973CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
974CONFIG_TRACING_SUPPORT=y
937 975
938# 976#
939# Tracers 977# Tracers
@@ -941,17 +979,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
941# CONFIG_FUNCTION_TRACER is not set 979# CONFIG_FUNCTION_TRACER is not set
942# CONFIG_SCHED_TRACER is not set 980# CONFIG_SCHED_TRACER is not set
943# CONFIG_CONTEXT_SWITCH_TRACER is not set 981# CONFIG_CONTEXT_SWITCH_TRACER is not set
982# CONFIG_EVENT_TRACER is not set
944# CONFIG_BOOT_TRACER is not set 983# CONFIG_BOOT_TRACER is not set
945# CONFIG_TRACE_BRANCH_PROFILING is not set 984# CONFIG_TRACE_BRANCH_PROFILING is not set
946# CONFIG_STACK_TRACER is not set 985# CONFIG_STACK_TRACER is not set
947# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 986# CONFIG_KMEMTRACE is not set
987# CONFIG_WORKQUEUE_TRACER is not set
988# CONFIG_BLK_DEV_IO_TRACE is not set
989# CONFIG_DYNAMIC_DEBUG is not set
948# CONFIG_SAMPLES is not set 990# CONFIG_SAMPLES is not set
949CONFIG_HAVE_ARCH_KGDB=y 991CONFIG_HAVE_ARCH_KGDB=y
950# CONFIG_KGDB is not set 992# CONFIG_KGDB is not set
951CONFIG_PRINT_STACK_DEPTH=64 993CONFIG_PRINT_STACK_DEPTH=64
952# CONFIG_DEBUG_STACKOVERFLOW is not set 994# CONFIG_DEBUG_STACKOVERFLOW is not set
953# CONFIG_DEBUG_STACK_USAGE is not set 995# CONFIG_DEBUG_STACK_USAGE is not set
954# CONFIG_DEBUG_PAGEALLOC is not set
955# CONFIG_CODE_PATCHING_SELFTEST is not set 996# CONFIG_CODE_PATCHING_SELFTEST is not set
956# CONFIG_FTR_FIXUP_SELFTEST is not set 997# CONFIG_FTR_FIXUP_SELFTEST is not set
957# CONFIG_MSI_BITMAP_SELFTEST is not set 998# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1045,6 +1086,7 @@ CONFIG_CRYPTO=y
1045# Compression 1086# Compression
1046# 1087#
1047# CONFIG_CRYPTO_DEFLATE is not set 1088# CONFIG_CRYPTO_DEFLATE is not set
1089# CONFIG_CRYPTO_ZLIB is not set
1048# CONFIG_CRYPTO_LZO is not set 1090# CONFIG_CRYPTO_LZO is not set
1049 1091
1050# 1092#
diff --git a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
deleted file mode 100644
index e31b6a4732ed..000000000000
--- a/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
+++ /dev/null
@@ -1,1802 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2
4# Mon Jan 26 15:36:04 2009
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12CONFIG_PPC_85xx=y
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
19CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
27CONFIG_PPC32=y
28CONFIG_WORD_SIZE=32
29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
30CONFIG_MMU=y
31CONFIG_GENERIC_CMOS_UPDATE=y
32CONFIG_GENERIC_TIME=y
33CONFIG_GENERIC_TIME_VSYSCALL=y
34CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y
36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37CONFIG_IRQ_PER_CPU=y
38CONFIG_STACKTRACE_SUPPORT=y
39CONFIG_HAVE_LATENCYTOP_SUPPORT=y
40CONFIG_LOCKDEP_SUPPORT=y
41CONFIG_RWSEM_XCHGADD_ALGORITHM=y
42CONFIG_ARCH_HAS_ILOG2_U32=y
43CONFIG_GENERIC_HWEIGHT=y
44CONFIG_GENERIC_CALIBRATE_DELAY=y
45CONFIG_GENERIC_FIND_NEXT_BIT=y
46# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
47CONFIG_PPC=y
48CONFIG_EARLY_PRINTK=y
49CONFIG_GENERIC_NVRAM=y
50CONFIG_SCHED_OMIT_FRAME_POINTER=y
51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
52CONFIG_PPC_OF=y
53CONFIG_OF=y
54CONFIG_PPC_UDBG_16550=y
55# CONFIG_GENERIC_TBSYNC is not set
56CONFIG_AUDIT_ARCH=y
57CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62
63#
64# General setup
65#
66CONFIG_EXPERIMENTAL=y
67CONFIG_BROKEN_ON_SMP=y
68CONFIG_INIT_ENV_ARG_LIMIT=32
69CONFIG_LOCALVERSION=""
70CONFIG_LOCALVERSION_AUTO=y
71CONFIG_SWAP=y
72CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y
75CONFIG_BSD_PROCESS_ACCT=y
76# CONFIG_BSD_PROCESS_ACCT_V3 is not set
77# CONFIG_TASKSTATS is not set
78CONFIG_AUDIT=y
79# CONFIG_AUDITSYSCALL is not set
80CONFIG_IKCONFIG=y
81CONFIG_IKCONFIG_PROC=y
82CONFIG_LOG_BUF_SHIFT=14
83CONFIG_GROUP_SCHED=y
84# CONFIG_FAIR_GROUP_SCHED is not set
85# CONFIG_RT_GROUP_SCHED is not set
86CONFIG_USER_SCHED=y
87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
89CONFIG_SYSFS_DEPRECATED=y
90CONFIG_SYSFS_DEPRECATED_V2=y
91# CONFIG_RELAY is not set
92# CONFIG_NAMESPACES is not set
93CONFIG_BLK_DEV_INITRD=y
94CONFIG_INITRAMFS_SOURCE=""
95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
96CONFIG_SYSCTL=y
97CONFIG_EMBEDDED=y
98CONFIG_SYSCTL_SYSCALL=y
99CONFIG_KALLSYMS=y
100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
102CONFIG_KALLSYMS_EXTRA_PASS=y
103CONFIG_HOTPLUG=y
104CONFIG_PRINTK=y
105CONFIG_BUG=y
106CONFIG_ELF_CORE=y
107CONFIG_COMPAT_BRK=y
108CONFIG_BASE_FULL=y
109CONFIG_FUTEX=y
110CONFIG_ANON_INODES=y
111CONFIG_EPOLL=y
112CONFIG_SIGNALFD=y
113CONFIG_TIMERFD=y
114CONFIG_EVENTFD=y
115CONFIG_SHMEM=y
116CONFIG_AIO=y
117CONFIG_VM_EVENT_COUNTERS=y
118CONFIG_PCI_QUIRKS=y
119CONFIG_SLUB_DEBUG=y
120# CONFIG_SLAB is not set
121CONFIG_SLUB=y
122# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set
124CONFIG_HAVE_OPROFILE=y
125# CONFIG_KPROBES is not set
126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
127CONFIG_HAVE_IOREMAP_PROT=y
128CONFIG_HAVE_KPROBES=y
129CONFIG_HAVE_KRETPROBES=y
130CONFIG_HAVE_ARCH_TRACEHOOK=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y
134CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set
137CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_BLOCK=y
142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
146
147#
148# IO Schedulers
149#
150CONFIG_IOSCHED_NOOP=y
151CONFIG_IOSCHED_AS=y
152CONFIG_IOSCHED_DEADLINE=y
153CONFIG_IOSCHED_CFQ=y
154# CONFIG_DEFAULT_AS is not set
155# CONFIG_DEFAULT_DEADLINE is not set
156CONFIG_DEFAULT_CFQ=y
157# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="cfq"
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
164# CONFIG_FREEZER is not set
165
166#
167# Platform support
168#
169# CONFIG_PPC_CELL is not set
170# CONFIG_PPC_CELL_NATIVE is not set
171# CONFIG_PQ2ADS is not set
172CONFIG_MPC85xx=y
173# CONFIG_MPC8540_ADS is not set
174# CONFIG_MPC8560_ADS is not set
175# CONFIG_MPC85xx_CDS is not set
176# CONFIG_MPC85xx_MDS is not set
177CONFIG_MPC8536_DS=y
178# CONFIG_MPC85xx_DS is not set
179# CONFIG_KSI8560 is not set
180# CONFIG_STX_GP3 is not set
181# CONFIG_TQM8540 is not set
182# CONFIG_TQM8541 is not set
183# CONFIG_TQM8548 is not set
184# CONFIG_TQM8555 is not set
185# CONFIG_TQM8560 is not set
186# CONFIG_SBC8548 is not set
187# CONFIG_SBC8560 is not set
188# CONFIG_IPIC is not set
189CONFIG_MPIC=y
190# CONFIG_MPIC_WEIRD is not set
191# CONFIG_PPC_I8259 is not set
192# CONFIG_PPC_RTAS is not set
193# CONFIG_MMIO_NVRAM is not set
194# CONFIG_PPC_MPC106 is not set
195# CONFIG_PPC_970_NAP is not set
196# CONFIG_PPC_INDIRECT_IO is not set
197# CONFIG_GENERIC_IOMAP is not set
198# CONFIG_CPU_FREQ is not set
199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_CPM2 is not set
201# CONFIG_FSL_ULI1575 is not set
202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
204
205#
206# Kernel options
207#
208CONFIG_HIGHMEM=y
209CONFIG_TICK_ONESHOT=y
210CONFIG_NO_HZ=y
211CONFIG_HIGH_RES_TIMERS=y
212CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
213# CONFIG_HZ_100 is not set
214CONFIG_HZ_250=y
215# CONFIG_HZ_300 is not set
216# CONFIG_HZ_1000 is not set
217CONFIG_HZ=250
218CONFIG_SCHED_HRTICK=y
219CONFIG_PREEMPT_NONE=y
220# CONFIG_PREEMPT_VOLUNTARY is not set
221# CONFIG_PREEMPT is not set
222CONFIG_BINFMT_ELF=y
223# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
224# CONFIG_HAVE_AOUT is not set
225CONFIG_BINFMT_MISC=m
226CONFIG_MATH_EMULATION=y
227# CONFIG_IOMMU_HELPER is not set
228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
229CONFIG_ARCH_HAS_WALK_MEMORY=y
230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
231CONFIG_ARCH_FLATMEM_ENABLE=y
232CONFIG_ARCH_POPULATES_NODE_MAP=y
233CONFIG_SELECT_MEMORY_MODEL=y
234CONFIG_FLATMEM_MANUAL=y
235# CONFIG_DISCONTIGMEM_MANUAL is not set
236# CONFIG_SPARSEMEM_MANUAL is not set
237CONFIG_FLATMEM=y
238CONFIG_FLAT_NODE_MEM_MAP=y
239CONFIG_PAGEFLAGS_EXTENDED=y
240CONFIG_SPLIT_PTLOCK_CPUS=4
241CONFIG_MIGRATION=y
242# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=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
250CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
254# CONFIG_PM is not set
255CONFIG_SECCOMP=y
256CONFIG_ISA_DMA_API=y
257
258#
259# Bus options
260#
261CONFIG_ZONE_DMA=y
262CONFIG_PPC_INDIRECT_PCI=y
263CONFIG_FSL_SOC=y
264CONFIG_FSL_PCI=y
265CONFIG_PPC_PCI_CHOICE=y
266CONFIG_PCI=y
267CONFIG_PCI_DOMAINS=y
268CONFIG_PCI_SYSCALL=y
269# CONFIG_PCIEPORTBUS is not set
270CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_MSI is not set
272# CONFIG_PCI_LEGACY is not set
273# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set
275# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set
278
279#
280# Advanced setup
281#
282# CONFIG_ADVANCED_OPTIONS is not set
283
284#
285# Default settings for advanced configuration options are used
286#
287CONFIG_LOWMEM_SIZE=0x30000000
288CONFIG_PAGE_OFFSET=0xc0000000
289CONFIG_KERNEL_START=0xc0000000
290CONFIG_PHYSICAL_START=0x00000000
291CONFIG_PHYSICAL_ALIGN=0x10000000
292CONFIG_TASK_SIZE=0xc0000000
293CONFIG_NET=y
294
295#
296# Networking options
297#
298CONFIG_COMPAT_NET_DEV_OPS=y
299CONFIG_PACKET=y
300# CONFIG_PACKET_MMAP is not set
301CONFIG_UNIX=y
302CONFIG_XFRM=y
303CONFIG_XFRM_USER=y
304# CONFIG_XFRM_SUB_POLICY is not set
305# CONFIG_XFRM_MIGRATE is not set
306# CONFIG_XFRM_STATISTICS is not set
307CONFIG_NET_KEY=m
308# CONFIG_NET_KEY_MIGRATE is not set
309CONFIG_INET=y
310CONFIG_IP_MULTICAST=y
311CONFIG_IP_ADVANCED_ROUTER=y
312CONFIG_ASK_IP_FIB_HASH=y
313# CONFIG_IP_FIB_TRIE is not set
314CONFIG_IP_FIB_HASH=y
315CONFIG_IP_MULTIPLE_TABLES=y
316CONFIG_IP_ROUTE_MULTIPATH=y
317CONFIG_IP_ROUTE_VERBOSE=y
318CONFIG_IP_PNP=y
319CONFIG_IP_PNP_DHCP=y
320CONFIG_IP_PNP_BOOTP=y
321CONFIG_IP_PNP_RARP=y
322CONFIG_NET_IPIP=y
323CONFIG_NET_IPGRE=y
324CONFIG_NET_IPGRE_BROADCAST=y
325CONFIG_IP_MROUTE=y
326CONFIG_IP_PIMSM_V1=y
327CONFIG_IP_PIMSM_V2=y
328CONFIG_ARPD=y
329# CONFIG_SYN_COOKIES is not set
330# CONFIG_INET_AH is not set
331# CONFIG_INET_ESP is not set
332# CONFIG_INET_IPCOMP is not set
333# CONFIG_INET_XFRM_TUNNEL is not set
334CONFIG_INET_TUNNEL=y
335# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
336# CONFIG_INET_XFRM_MODE_TUNNEL is not set
337# CONFIG_INET_XFRM_MODE_BEET is not set
338# CONFIG_INET_LRO is not set
339CONFIG_INET_DIAG=y
340CONFIG_INET_TCP_DIAG=y
341# CONFIG_TCP_CONG_ADVANCED is not set
342CONFIG_TCP_CONG_CUBIC=y
343CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_TCP_MD5SIG is not set
345CONFIG_IPV6=y
346# CONFIG_IPV6_PRIVACY is not set
347# CONFIG_IPV6_ROUTER_PREF is not set
348# CONFIG_IPV6_OPTIMISTIC_DAD is not set
349# CONFIG_INET6_AH is not set
350# CONFIG_INET6_ESP is not set
351# CONFIG_INET6_IPCOMP is not set
352# CONFIG_IPV6_MIP6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set
355CONFIG_INET6_XFRM_MODE_TRANSPORT=y
356CONFIG_INET6_XFRM_MODE_TUNNEL=y
357CONFIG_INET6_XFRM_MODE_BEET=y
358# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
359CONFIG_IPV6_SIT=y
360CONFIG_IPV6_NDISC_NODETYPE=y
361# CONFIG_IPV6_TUNNEL is not set
362# CONFIG_IPV6_MULTIPLE_TABLES is not set
363# CONFIG_IPV6_MROUTE is not set
364# CONFIG_NETWORK_SECMARK is not set
365# CONFIG_NETFILTER is not set
366# CONFIG_IP_DCCP is not set
367CONFIG_IP_SCTP=m
368# CONFIG_SCTP_DBG_MSG is not set
369# CONFIG_SCTP_DBG_OBJCNT is not set
370# CONFIG_SCTP_HMAC_NONE is not set
371# CONFIG_SCTP_HMAC_SHA1 is not set
372CONFIG_SCTP_HMAC_MD5=y
373# CONFIG_TIPC is not set
374# CONFIG_ATM is not set
375# CONFIG_BRIDGE is not set
376# CONFIG_NET_DSA is not set
377# CONFIG_VLAN_8021Q is not set
378# CONFIG_DECNET is not set
379# CONFIG_LLC2 is not set
380# CONFIG_IPX is not set
381# CONFIG_ATALK is not set
382# CONFIG_X25 is not set
383# CONFIG_LAPB is not set
384# CONFIG_ECONET is not set
385# CONFIG_WAN_ROUTER is not set
386# CONFIG_NET_SCHED is not set
387# CONFIG_DCB is not set
388
389#
390# Network testing
391#
392# CONFIG_NET_PKTGEN is not set
393# CONFIG_HAMRADIO is not set
394# CONFIG_CAN is not set
395# CONFIG_IRDA is not set
396# CONFIG_BT is not set
397# CONFIG_AF_RXRPC is not set
398# CONFIG_PHONET is not set
399CONFIG_FIB_RULES=y
400CONFIG_WIRELESS=y
401# CONFIG_CFG80211 is not set
402CONFIG_WIRELESS_OLD_REGULATORY=y
403# CONFIG_WIRELESS_EXT is not set
404# CONFIG_LIB80211 is not set
405# CONFIG_MAC80211 is not set
406# CONFIG_WIMAX is not set
407# CONFIG_RFKILL is not set
408# CONFIG_NET_9P is not set
409
410#
411# Device Drivers
412#
413
414#
415# Generic Driver Options
416#
417CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
418CONFIG_STANDALONE=y
419CONFIG_PREVENT_FIRMWARE_BUILD=y
420CONFIG_FW_LOADER=y
421CONFIG_FIRMWARE_IN_KERNEL=y
422CONFIG_EXTRA_FIRMWARE=""
423# CONFIG_DEBUG_DRIVER is not set
424# CONFIG_DEBUG_DEVRES is not set
425# CONFIG_SYS_HYPERVISOR is not set
426# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set
428CONFIG_OF_DEVICE=y
429CONFIG_OF_I2C=y
430# CONFIG_PARPORT is not set
431CONFIG_BLK_DEV=y
432# CONFIG_BLK_DEV_FD is not set
433# CONFIG_BLK_CPQ_DA is not set
434# CONFIG_BLK_CPQ_CISS_DA is not set
435# CONFIG_BLK_DEV_DAC960 is not set
436# CONFIG_BLK_DEV_UMEM is not set
437# CONFIG_BLK_DEV_COW_COMMON is not set
438CONFIG_BLK_DEV_LOOP=y
439# CONFIG_BLK_DEV_CRYPTOLOOP is not set
440CONFIG_BLK_DEV_NBD=y
441# CONFIG_BLK_DEV_SX8 is not set
442# CONFIG_BLK_DEV_UB is not set
443CONFIG_BLK_DEV_RAM=y
444CONFIG_BLK_DEV_RAM_COUNT=16
445CONFIG_BLK_DEV_RAM_SIZE=524288
446# CONFIG_BLK_DEV_XIP is not set
447# CONFIG_CDROM_PKTCDVD is not set
448# CONFIG_ATA_OVER_ETH is not set
449# CONFIG_BLK_DEV_HD is not set
450CONFIG_MISC_DEVICES=y
451# CONFIG_PHANTOM is not set
452# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_SGI_IOC4 is not set
454# CONFIG_TIFM_CORE is not set
455# CONFIG_ICS932S401 is not set
456# CONFIG_ENCLOSURE_SERVICES is not set
457# CONFIG_HP_ILO is not set
458# CONFIG_C2PORT is not set
459CONFIG_HAVE_IDE=y
460# CONFIG_IDE is not set
461
462#
463# SCSI device support
464#
465# CONFIG_RAID_ATTRS is not set
466CONFIG_SCSI=y
467CONFIG_SCSI_DMA=y
468# CONFIG_SCSI_TGT is not set
469# CONFIG_SCSI_NETLINK is not set
470CONFIG_SCSI_PROC_FS=y
471
472#
473# SCSI support type (disk, tape, CD-ROM)
474#
475CONFIG_BLK_DEV_SD=y
476CONFIG_CHR_DEV_ST=y
477# CONFIG_CHR_DEV_OSST is not set
478CONFIG_BLK_DEV_SR=y
479# CONFIG_BLK_DEV_SR_VENDOR is not set
480CONFIG_CHR_DEV_SG=y
481# CONFIG_CHR_DEV_SCH is not set
482
483#
484# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
485#
486CONFIG_SCSI_MULTI_LUN=y
487# CONFIG_SCSI_CONSTANTS is not set
488CONFIG_SCSI_LOGGING=y
489# CONFIG_SCSI_SCAN_ASYNC is not set
490CONFIG_SCSI_WAIT_SCAN=m
491
492#
493# SCSI Transports
494#
495# CONFIG_SCSI_SPI_ATTRS is not set
496# CONFIG_SCSI_FC_ATTRS is not set
497# CONFIG_SCSI_ISCSI_ATTRS is not set
498# CONFIG_SCSI_SAS_LIBSAS is not set
499# CONFIG_SCSI_SRP_ATTRS is not set
500CONFIG_SCSI_LOWLEVEL=y
501# CONFIG_ISCSI_TCP is not set
502# CONFIG_SCSI_CXGB3_ISCSI is not set
503# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
504# CONFIG_SCSI_3W_9XXX is not set
505# CONFIG_SCSI_ACARD is not set
506# CONFIG_SCSI_AACRAID is not set
507# CONFIG_SCSI_AIC7XXX is not set
508# CONFIG_SCSI_AIC7XXX_OLD is not set
509# CONFIG_SCSI_AIC79XX is not set
510# CONFIG_SCSI_AIC94XX is not set
511# CONFIG_SCSI_DPT_I2O is not set
512# CONFIG_SCSI_ADVANSYS is not set
513# CONFIG_SCSI_ARCMSR is not set
514# CONFIG_MEGARAID_NEWGEN is not set
515# CONFIG_MEGARAID_LEGACY is not set
516# CONFIG_MEGARAID_SAS is not set
517# CONFIG_SCSI_HPTIOP is not set
518# CONFIG_SCSI_BUSLOGIC is not set
519# CONFIG_LIBFC is not set
520# CONFIG_FCOE is not set
521# CONFIG_SCSI_DMX3191D is not set
522# CONFIG_SCSI_EATA is not set
523# CONFIG_SCSI_FUTURE_DOMAIN is not set
524# CONFIG_SCSI_GDTH is not set
525# CONFIG_SCSI_IPS is not set
526# CONFIG_SCSI_INITIO is not set
527# CONFIG_SCSI_INIA100 is not set
528# CONFIG_SCSI_MVSAS is not set
529# CONFIG_SCSI_STEX is not set
530# CONFIG_SCSI_SYM53C8XX_2 is not set
531# CONFIG_SCSI_IPR is not set
532# CONFIG_SCSI_QLOGIC_1280 is not set
533# CONFIG_SCSI_QLA_FC is not set
534# CONFIG_SCSI_QLA_ISCSI is not set
535# CONFIG_SCSI_LPFC is not set
536# CONFIG_SCSI_DC395x is not set
537# CONFIG_SCSI_DC390T is not set
538# CONFIG_SCSI_NSP32 is not set
539# CONFIG_SCSI_DEBUG is not set
540# CONFIG_SCSI_SRP is not set
541# CONFIG_SCSI_DH is not set
542CONFIG_ATA=y
543# CONFIG_ATA_NONSTANDARD is not set
544CONFIG_SATA_PMP=y
545# CONFIG_SATA_AHCI is not set
546CONFIG_SATA_SIL24=y
547CONFIG_SATA_FSL=y
548CONFIG_ATA_SFF=y
549# CONFIG_SATA_SVW is not set
550# CONFIG_ATA_PIIX is not set
551# CONFIG_SATA_MV is not set
552# CONFIG_SATA_NV is not set
553# CONFIG_PDC_ADMA is not set
554# CONFIG_SATA_QSTOR is not set
555# CONFIG_SATA_PROMISE is not set
556# CONFIG_SATA_SX4 is not set
557CONFIG_SATA_SIL=y
558# CONFIG_SATA_SIS is not set
559# CONFIG_SATA_ULI is not set
560# CONFIG_SATA_VIA is not set
561# CONFIG_SATA_VITESSE is not set
562# CONFIG_SATA_INIC162X is not set
563# CONFIG_PATA_ALI is not set
564# CONFIG_PATA_AMD is not set
565# CONFIG_PATA_ARTOP is not set
566# CONFIG_PATA_ATIIXP is not set
567# CONFIG_PATA_CMD640_PCI is not set
568# CONFIG_PATA_CMD64X is not set
569# CONFIG_PATA_CS5520 is not set
570# CONFIG_PATA_CS5530 is not set
571# CONFIG_PATA_CYPRESS is not set
572# CONFIG_PATA_EFAR is not set
573# CONFIG_ATA_GENERIC is not set
574# CONFIG_PATA_HPT366 is not set
575# CONFIG_PATA_HPT37X is not set
576# CONFIG_PATA_HPT3X2N is not set
577# CONFIG_PATA_HPT3X3 is not set
578# CONFIG_PATA_IT821X is not set
579# CONFIG_PATA_IT8213 is not set
580# CONFIG_PATA_JMICRON is not set
581# CONFIG_PATA_TRIFLEX is not set
582# CONFIG_PATA_MARVELL is not set
583# CONFIG_PATA_MPIIX is not set
584# CONFIG_PATA_OLDPIIX is not set
585# CONFIG_PATA_NETCELL is not set
586# CONFIG_PATA_NINJA32 is not set
587# CONFIG_PATA_NS87410 is not set
588# CONFIG_PATA_NS87415 is not set
589# CONFIG_PATA_OPTI is not set
590# CONFIG_PATA_OPTIDMA is not set
591# CONFIG_PATA_PDC_OLD is not set
592# CONFIG_PATA_RADISYS is not set
593# CONFIG_PATA_RZ1000 is not set
594# CONFIG_PATA_SC1200 is not set
595# CONFIG_PATA_SERVERWORKS is not set
596# CONFIG_PATA_PDC2027X is not set
597# CONFIG_PATA_SIL680 is not set
598# CONFIG_PATA_SIS is not set
599# CONFIG_PATA_VIA is not set
600# CONFIG_PATA_WINBOND is not set
601# CONFIG_PATA_PLATFORM is not set
602# CONFIG_PATA_SCH is not set
603# CONFIG_MD is not set
604# CONFIG_FUSION is not set
605
606#
607# IEEE 1394 (FireWire) support
608#
609
610#
611# Enable only one of the two stacks, unless you know what you are doing
612#
613# CONFIG_FIREWIRE is not set
614# CONFIG_IEEE1394 is not set
615# CONFIG_I2O is not set
616# CONFIG_MACINTOSH_DRIVERS is not set
617CONFIG_NETDEVICES=y
618CONFIG_DUMMY=y
619# CONFIG_BONDING is not set
620# CONFIG_MACVLAN is not set
621# CONFIG_EQUALIZER is not set
622# CONFIG_TUN is not set
623# CONFIG_VETH is not set
624# CONFIG_ARCNET is not set
625CONFIG_PHYLIB=y
626
627#
628# MII PHY device drivers
629#
630# CONFIG_MARVELL_PHY is not set
631# CONFIG_DAVICOM_PHY is not set
632# CONFIG_QSEMI_PHY is not set
633# CONFIG_LXT_PHY is not set
634# CONFIG_CICADA_PHY is not set
635CONFIG_VITESSE_PHY=y
636# CONFIG_SMSC_PHY is not set
637# CONFIG_BROADCOM_PHY is not set
638# CONFIG_ICPLUS_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
643# CONFIG_FIXED_PHY is not set
644# CONFIG_MDIO_BITBANG is not set
645CONFIG_NET_ETHERNET=y
646CONFIG_MII=y
647# CONFIG_HAPPYMEAL is not set
648# CONFIG_SUNGEM is not set
649# CONFIG_CASSINI is not set
650# CONFIG_NET_VENDOR_3COM is not set
651# CONFIG_NET_TULIP is not set
652# CONFIG_HP100 is not set
653# CONFIG_IBM_NEW_EMAC_ZMII is not set
654# CONFIG_IBM_NEW_EMAC_RGMII is not set
655# CONFIG_IBM_NEW_EMAC_TAH is not set
656# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
657# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
658# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
659# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
660# CONFIG_NET_PCI is not set
661# CONFIG_B44 is not set
662# CONFIG_ATL2 is not set
663CONFIG_NETDEV_1000=y
664# CONFIG_ACENIC is not set
665# CONFIG_DL2K is not set
666# CONFIG_E1000 is not set
667# CONFIG_E1000E is not set
668# CONFIG_IP1000 is not set
669# CONFIG_IGB is not set
670# CONFIG_NS83820 is not set
671# CONFIG_HAMACHI is not set
672# CONFIG_YELLOWFIN is not set
673# CONFIG_R8169 is not set
674# CONFIG_SIS190 is not set
675CONFIG_SKGE=y
676# CONFIG_SKGE_DEBUG is not set
677CONFIG_SKY2=y
678# CONFIG_SKY2_DEBUG is not set
679# CONFIG_VIA_VELOCITY is not set
680# CONFIG_TIGON3 is not set
681# CONFIG_BNX2 is not set
682CONFIG_GIANFAR=y
683# CONFIG_QLA3XXX is not set
684# CONFIG_ATL1 is not set
685# CONFIG_ATL1E is not set
686# CONFIG_JME is not set
687CONFIG_NETDEV_10000=y
688# CONFIG_CHELSIO_T1 is not set
689CONFIG_CHELSIO_T3_DEPENDS=y
690# CONFIG_CHELSIO_T3 is not set
691# CONFIG_ENIC is not set
692# CONFIG_IXGBE is not set
693# CONFIG_IXGB is not set
694# CONFIG_S2IO is not set
695# CONFIG_MYRI10GE is not set
696# CONFIG_NETXEN_NIC is not set
697# CONFIG_NIU is not set
698# CONFIG_MLX4_EN is not set
699# CONFIG_MLX4_CORE is not set
700# CONFIG_TEHUTI is not set
701# CONFIG_BNX2X is not set
702# CONFIG_QLGE is not set
703# CONFIG_SFC is not set
704# CONFIG_TR is not set
705
706#
707# Wireless LAN
708#
709# CONFIG_WLAN_PRE80211 is not set
710# CONFIG_WLAN_80211 is not set
711# CONFIG_IWLWIFI_LEDS is not set
712
713#
714# Enable WiMAX (Networking options) to see the WiMAX drivers
715#
716
717#
718# USB Network Adapters
719#
720# CONFIG_USB_CATC is not set
721# CONFIG_USB_KAWETH is not set
722# CONFIG_USB_PEGASUS is not set
723# CONFIG_USB_RTL8150 is not set
724# CONFIG_USB_USBNET is not set
725# CONFIG_WAN is not set
726# CONFIG_FDDI is not set
727# CONFIG_HIPPI is not set
728# CONFIG_PPP is not set
729# CONFIG_SLIP is not set
730# CONFIG_NET_FC is not set
731# CONFIG_NETCONSOLE is not set
732# CONFIG_NETPOLL is not set
733# CONFIG_NET_POLL_CONTROLLER is not set
734# CONFIG_ISDN is not set
735# CONFIG_PHONE is not set
736
737#
738# Input device support
739#
740CONFIG_INPUT=y
741CONFIG_INPUT_FF_MEMLESS=m
742# CONFIG_INPUT_POLLDEV is not set
743
744#
745# Userland interfaces
746#
747# CONFIG_INPUT_MOUSEDEV is not set
748# CONFIG_INPUT_JOYDEV is not set
749# CONFIG_INPUT_EVDEV is not set
750# CONFIG_INPUT_EVBUG is not set
751
752#
753# Input Device Drivers
754#
755# CONFIG_INPUT_KEYBOARD is not set
756# CONFIG_INPUT_MOUSE is not set
757# CONFIG_INPUT_JOYSTICK is not set
758# CONFIG_INPUT_TABLET is not set
759# CONFIG_INPUT_TOUCHSCREEN is not set
760# CONFIG_INPUT_MISC is not set
761
762#
763# Hardware I/O ports
764#
765CONFIG_SERIO=y
766CONFIG_SERIO_I8042=y
767CONFIG_SERIO_SERPORT=y
768# CONFIG_SERIO_PCIPS2 is not set
769CONFIG_SERIO_LIBPS2=y
770# CONFIG_SERIO_RAW is not set
771# CONFIG_SERIO_XILINX_XPS_PS2 is not set
772# CONFIG_GAMEPORT is not set
773
774#
775# Character devices
776#
777CONFIG_VT=y
778CONFIG_CONSOLE_TRANSLATIONS=y
779CONFIG_VT_CONSOLE=y
780CONFIG_HW_CONSOLE=y
781# CONFIG_VT_HW_CONSOLE_BINDING is not set
782CONFIG_DEVKMEM=y
783# CONFIG_SERIAL_NONSTANDARD is not set
784# CONFIG_NOZOMI is not set
785
786#
787# Serial drivers
788#
789CONFIG_SERIAL_8250=y
790CONFIG_SERIAL_8250_CONSOLE=y
791CONFIG_SERIAL_8250_PCI=y
792CONFIG_SERIAL_8250_NR_UARTS=2
793CONFIG_SERIAL_8250_RUNTIME_UARTS=2
794CONFIG_SERIAL_8250_EXTENDED=y
795CONFIG_SERIAL_8250_MANY_PORTS=y
796CONFIG_SERIAL_8250_SHARE_IRQ=y
797CONFIG_SERIAL_8250_DETECT_IRQ=y
798CONFIG_SERIAL_8250_RSA=y
799
800#
801# Non-8250 serial port support
802#
803# CONFIG_SERIAL_UARTLITE is not set
804CONFIG_SERIAL_CORE=y
805CONFIG_SERIAL_CORE_CONSOLE=y
806# CONFIG_SERIAL_JSM is not set
807# CONFIG_SERIAL_OF_PLATFORM is not set
808CONFIG_UNIX98_PTYS=y
809# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
810CONFIG_LEGACY_PTYS=y
811CONFIG_LEGACY_PTY_COUNT=256
812# CONFIG_HVC_UDBG is not set
813# CONFIG_IPMI_HANDLER is not set
814CONFIG_HW_RANDOM=y
815# CONFIG_NVRAM is not set
816# CONFIG_R3964 is not set
817# CONFIG_APPLICOM is not set
818# CONFIG_RAW_DRIVER is not set
819# CONFIG_TCG_TPM is not set
820CONFIG_DEVPORT=y
821CONFIG_I2C=y
822CONFIG_I2C_BOARDINFO=y
823# CONFIG_I2C_CHARDEV is not set
824CONFIG_I2C_HELPER_AUTO=y
825
826#
827# I2C Hardware Bus support
828#
829
830#
831# PC SMBus host controller drivers
832#
833# CONFIG_I2C_ALI1535 is not set
834# CONFIG_I2C_ALI1563 is not set
835# CONFIG_I2C_ALI15X3 is not set
836# CONFIG_I2C_AMD756 is not set
837# CONFIG_I2C_AMD8111 is not set
838# CONFIG_I2C_I801 is not set
839# CONFIG_I2C_ISCH is not set
840# CONFIG_I2C_PIIX4 is not set
841# CONFIG_I2C_NFORCE2 is not set
842# CONFIG_I2C_SIS5595 is not set
843# CONFIG_I2C_SIS630 is not set
844# CONFIG_I2C_SIS96X is not set
845# CONFIG_I2C_VIA is not set
846# CONFIG_I2C_VIAPRO is not set
847
848#
849# I2C system bus drivers (mostly embedded / system-on-chip)
850#
851CONFIG_I2C_MPC=y
852# CONFIG_I2C_OCORES is not set
853# CONFIG_I2C_SIMTEC is not set
854
855#
856# External I2C/SMBus adapter drivers
857#
858# CONFIG_I2C_PARPORT_LIGHT is not set
859# CONFIG_I2C_TAOS_EVM is not set
860# CONFIG_I2C_TINY_USB is not set
861
862#
863# Graphics adapter I2C/DDC channel drivers
864#
865# CONFIG_I2C_VOODOO3 is not set
866
867#
868# Other I2C/SMBus bus drivers
869#
870# CONFIG_I2C_PCA_PLATFORM is not set
871# CONFIG_I2C_STUB is not set
872
873#
874# Miscellaneous I2C Chip support
875#
876# CONFIG_DS1682 is not set
877# CONFIG_EEPROM_AT24 is not set
878CONFIG_EEPROM_LEGACY=y
879# CONFIG_SENSORS_PCF8574 is not set
880# CONFIG_PCF8575 is not set
881# CONFIG_SENSORS_PCA9539 is not set
882# CONFIG_SENSORS_PCF8591 is not set
883# CONFIG_SENSORS_MAX6875 is not set
884# CONFIG_SENSORS_TSL2550 is not set
885# CONFIG_I2C_DEBUG_CORE is not set
886# CONFIG_I2C_DEBUG_ALGO is not set
887# CONFIG_I2C_DEBUG_BUS is not set
888# CONFIG_I2C_DEBUG_CHIP is not set
889# CONFIG_SPI is not set
890CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
891# CONFIG_GPIOLIB is not set
892# CONFIG_W1 is not set
893# CONFIG_POWER_SUPPLY is not set
894# CONFIG_HWMON is not set
895CONFIG_THERMAL=y
896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
898
899#
900# Sonics Silicon Backplane
901#
902# CONFIG_SSB is not set
903
904#
905# Multifunction device drivers
906#
907# CONFIG_MFD_CORE is not set
908# CONFIG_MFD_SM501 is not set
909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set
913# CONFIG_MFD_WM8400 is not set
914# CONFIG_MFD_WM8350_I2C is not set
915# CONFIG_MFD_PCF50633 is not set
916# CONFIG_REGULATOR is not set
917
918#
919# Multimedia devices
920#
921
922#
923# Multimedia core support
924#
925# CONFIG_VIDEO_DEV is not set
926CONFIG_DVB_CORE=m
927CONFIG_VIDEO_MEDIA=m
928
929#
930# Multimedia drivers
931#
932# CONFIG_MEDIA_ATTACH is not set
933CONFIG_MEDIA_TUNER=m
934# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
935CONFIG_MEDIA_TUNER_SIMPLE=m
936CONFIG_MEDIA_TUNER_TDA8290=m
937CONFIG_MEDIA_TUNER_TDA9887=m
938CONFIG_MEDIA_TUNER_TEA5761=m
939CONFIG_MEDIA_TUNER_TEA5767=m
940CONFIG_MEDIA_TUNER_MT20XX=m
941CONFIG_MEDIA_TUNER_XC2028=m
942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
944CONFIG_DVB_CAPTURE_DRIVERS=y
945
946#
947# Supported SAA7146 based PCI Adapters
948#
949# CONFIG_TTPCI_EEPROM is not set
950# CONFIG_DVB_BUDGET_CORE is not set
951
952#
953# Supported USB Adapters
954#
955# CONFIG_DVB_USB is not set
956# CONFIG_DVB_TTUSB_BUDGET is not set
957# CONFIG_DVB_TTUSB_DEC is not set
958# CONFIG_DVB_SIANO_SMS1XXX is not set
959
960#
961# Supported FlexCopII (B2C2) Adapters
962#
963# CONFIG_DVB_B2C2_FLEXCOP is not set
964
965#
966# Supported BT878 Adapters
967#
968
969#
970# Supported Pluto2 Adapters
971#
972# CONFIG_DVB_PLUTO2 is not set
973
974#
975# Supported SDMC DM1105 Adapters
976#
977# CONFIG_DVB_DM1105 is not set
978
979#
980# Supported DVB Frontends
981#
982
983#
984# Customise DVB Frontends
985#
986# CONFIG_DVB_FE_CUSTOMISE is not set
987
988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
995# DVB-S (satellite) frontends
996#
997# CONFIG_DVB_CX24110 is not set
998# CONFIG_DVB_CX24123 is not set
999# CONFIG_DVB_MT312 is not set
1000# CONFIG_DVB_S5H1420 is not set
1001# CONFIG_DVB_STV0288 is not set
1002# CONFIG_DVB_STB6000 is not set
1003# CONFIG_DVB_STV0299 is not set
1004# CONFIG_DVB_TDA8083 is not set
1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
1007# CONFIG_DVB_VES1X93 is not set
1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
1010# CONFIG_DVB_TDA826X is not set
1011# CONFIG_DVB_TUA6100 is not set
1012# CONFIG_DVB_CX24116 is not set
1013# CONFIG_DVB_SI21XX is not set
1014
1015#
1016# DVB-T (terrestrial) frontends
1017#
1018# CONFIG_DVB_SP8870 is not set
1019# CONFIG_DVB_SP887X is not set
1020# CONFIG_DVB_CX22700 is not set
1021# CONFIG_DVB_CX22702 is not set
1022# CONFIG_DVB_DRX397XD is not set
1023# CONFIG_DVB_L64781 is not set
1024# CONFIG_DVB_TDA1004X is not set
1025# CONFIG_DVB_NXT6000 is not set
1026# CONFIG_DVB_MT352 is not set
1027# CONFIG_DVB_ZL10353 is not set
1028# CONFIG_DVB_DIB3000MB is not set
1029# CONFIG_DVB_DIB3000MC is not set
1030# CONFIG_DVB_DIB7000M is not set
1031# CONFIG_DVB_DIB7000P is not set
1032# CONFIG_DVB_TDA10048 is not set
1033
1034#
1035# DVB-C (cable) frontends
1036#
1037# CONFIG_DVB_VES1820 is not set
1038# CONFIG_DVB_TDA10021 is not set
1039# CONFIG_DVB_TDA10023 is not set
1040# CONFIG_DVB_STV0297 is not set
1041
1042#
1043# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1044#
1045# CONFIG_DVB_NXT200X is not set
1046# CONFIG_DVB_OR51211 is not set
1047# CONFIG_DVB_OR51132 is not set
1048# CONFIG_DVB_BCM3510 is not set
1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1051# CONFIG_DVB_S5H1409 is not set
1052# CONFIG_DVB_AU8522 is not set
1053# CONFIG_DVB_S5H1411 is not set
1054
1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1061# Digital terrestrial only tuners/PLL
1062#
1063# CONFIG_DVB_PLL is not set
1064# CONFIG_DVB_TUNER_DIB0070 is not set
1065
1066#
1067# SEC control devices for DVB-S
1068#
1069# CONFIG_DVB_LNBP21 is not set
1070# CONFIG_DVB_ISL6405 is not set
1071# CONFIG_DVB_ISL6421 is not set
1072# CONFIG_DVB_LGS8GL5 is not set
1073
1074#
1075# Tools to develop new frontends
1076#
1077# CONFIG_DVB_DUMMY_FE is not set
1078# CONFIG_DVB_AF9013 is not set
1079CONFIG_DAB=y
1080# CONFIG_USB_DABUSB is not set
1081
1082#
1083# Graphics support
1084#
1085# CONFIG_AGP is not set
1086# CONFIG_DRM is not set
1087# CONFIG_VGASTATE is not set
1088CONFIG_VIDEO_OUTPUT_CONTROL=y
1089# CONFIG_FB is not set
1090# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1091
1092#
1093# Display device support
1094#
1095# CONFIG_DISPLAY_SUPPORT is not set
1096
1097#
1098# Console display driver support
1099#
1100CONFIG_VGA_CONSOLE=y
1101# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1102CONFIG_DUMMY_CONSOLE=y
1103CONFIG_SOUND=y
1104# CONFIG_SOUND_OSS_CORE is not set
1105CONFIG_SND=y
1106CONFIG_SND_TIMER=y
1107CONFIG_SND_PCM=y
1108# CONFIG_SND_SEQUENCER is not set
1109# CONFIG_SND_MIXER_OSS is not set
1110# CONFIG_SND_PCM_OSS is not set
1111# CONFIG_SND_HRTIMER is not set
1112# CONFIG_SND_DYNAMIC_MINORS is not set
1113CONFIG_SND_SUPPORT_OLD_API=y
1114CONFIG_SND_VERBOSE_PROCFS=y
1115# CONFIG_SND_VERBOSE_PRINTK is not set
1116# CONFIG_SND_DEBUG is not set
1117CONFIG_SND_VMASTER=y
1118CONFIG_SND_AC97_CODEC=y
1119CONFIG_SND_DRIVERS=y
1120# CONFIG_SND_DUMMY is not set
1121# CONFIG_SND_MTPAV is not set
1122# CONFIG_SND_SERIAL_U16550 is not set
1123# CONFIG_SND_MPU401 is not set
1124# CONFIG_SND_AC97_POWER_SAVE is not set
1125CONFIG_SND_PCI=y
1126# CONFIG_SND_AD1889 is not set
1127# CONFIG_SND_ALS300 is not set
1128# CONFIG_SND_ALS4000 is not set
1129# CONFIG_SND_ALI5451 is not set
1130# CONFIG_SND_ATIIXP is not set
1131# CONFIG_SND_ATIIXP_MODEM is not set
1132# CONFIG_SND_AU8810 is not set
1133# CONFIG_SND_AU8820 is not set
1134# CONFIG_SND_AU8830 is not set
1135# CONFIG_SND_AW2 is not set
1136# CONFIG_SND_AZT3328 is not set
1137# CONFIG_SND_BT87X is not set
1138# CONFIG_SND_CA0106 is not set
1139# CONFIG_SND_CMIPCI is not set
1140# CONFIG_SND_OXYGEN is not set
1141# CONFIG_SND_CS4281 is not set
1142# CONFIG_SND_CS46XX is not set
1143# CONFIG_SND_CS5530 is not set
1144# CONFIG_SND_DARLA20 is not set
1145# CONFIG_SND_GINA20 is not set
1146# CONFIG_SND_LAYLA20 is not set
1147# CONFIG_SND_DARLA24 is not set
1148# CONFIG_SND_GINA24 is not set
1149# CONFIG_SND_LAYLA24 is not set
1150# CONFIG_SND_MONA is not set
1151# CONFIG_SND_MIA is not set
1152# CONFIG_SND_ECHO3G is not set
1153# CONFIG_SND_INDIGO is not set
1154# CONFIG_SND_INDIGOIO is not set
1155# CONFIG_SND_INDIGODJ is not set
1156# CONFIG_SND_EMU10K1 is not set
1157# CONFIG_SND_EMU10K1X is not set
1158# CONFIG_SND_ENS1370 is not set
1159# CONFIG_SND_ENS1371 is not set
1160# CONFIG_SND_ES1938 is not set
1161# CONFIG_SND_ES1968 is not set
1162# CONFIG_SND_FM801 is not set
1163# CONFIG_SND_HDA_INTEL is not set
1164# CONFIG_SND_HDSP is not set
1165# CONFIG_SND_HDSPM is not set
1166# CONFIG_SND_HIFIER is not set
1167# CONFIG_SND_ICE1712 is not set
1168# CONFIG_SND_ICE1724 is not set
1169CONFIG_SND_INTEL8X0=y
1170# CONFIG_SND_INTEL8X0M is not set
1171# CONFIG_SND_KORG1212 is not set
1172# CONFIG_SND_MAESTRO3 is not set
1173# CONFIG_SND_MIXART is not set
1174# CONFIG_SND_NM256 is not set
1175# CONFIG_SND_PCXHR is not set
1176# CONFIG_SND_RIPTIDE is not set
1177# CONFIG_SND_RME32 is not set
1178# CONFIG_SND_RME96 is not set
1179# CONFIG_SND_RME9652 is not set
1180# CONFIG_SND_SONICVIBES is not set
1181# CONFIG_SND_TRIDENT is not set
1182# CONFIG_SND_VIA82XX is not set
1183# CONFIG_SND_VIA82XX_MODEM is not set
1184# CONFIG_SND_VIRTUOSO is not set
1185# CONFIG_SND_VX222 is not set
1186# CONFIG_SND_YMFPCI is not set
1187CONFIG_SND_PPC=y
1188CONFIG_SND_USB=y
1189# CONFIG_SND_USB_AUDIO is not set
1190# CONFIG_SND_USB_USX2Y is not set
1191# CONFIG_SND_USB_CAIAQ is not set
1192# CONFIG_SND_SOC is not set
1193# CONFIG_SOUND_PRIME is not set
1194CONFIG_AC97_BUS=y
1195CONFIG_HID_SUPPORT=y
1196CONFIG_HID=y
1197# CONFIG_HID_DEBUG is not set
1198# CONFIG_HIDRAW is not set
1199
1200#
1201# USB Input Devices
1202#
1203CONFIG_USB_HID=y
1204# CONFIG_HID_PID is not set
1205# CONFIG_USB_HIDDEV is not set
1206
1207#
1208# Special HID drivers
1209#
1210CONFIG_HID_COMPAT=y
1211CONFIG_HID_A4TECH=y
1212CONFIG_HID_APPLE=y
1213CONFIG_HID_BELKIN=y
1214CONFIG_HID_CHERRY=y
1215CONFIG_HID_CHICONY=y
1216CONFIG_HID_CYPRESS=y
1217CONFIG_HID_EZKEY=y
1218CONFIG_HID_GYRATION=y
1219CONFIG_HID_LOGITECH=y
1220# CONFIG_LOGITECH_FF is not set
1221# CONFIG_LOGIRUMBLEPAD2_FF is not set
1222CONFIG_HID_MICROSOFT=y
1223CONFIG_HID_MONTEREY=y
1224# CONFIG_HID_NTRIG is not set
1225CONFIG_HID_PANTHERLORD=y
1226# CONFIG_PANTHERLORD_FF is not set
1227CONFIG_HID_PETALYNX=y
1228CONFIG_HID_SAMSUNG=y
1229CONFIG_HID_SONY=y
1230CONFIG_HID_SUNPLUS=y
1231# CONFIG_GREENASIA_FF is not set
1232# CONFIG_HID_TOPSEED is not set
1233CONFIG_THRUSTMASTER_FF=m
1234CONFIG_ZEROPLUS_FF=m
1235CONFIG_USB_SUPPORT=y
1236CONFIG_USB_ARCH_HAS_HCD=y
1237CONFIG_USB_ARCH_HAS_OHCI=y
1238CONFIG_USB_ARCH_HAS_EHCI=y
1239CONFIG_USB=y
1240# CONFIG_USB_DEBUG is not set
1241# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1242
1243#
1244# Miscellaneous USB options
1245#
1246CONFIG_USB_DEVICEFS=y
1247CONFIG_USB_DEVICE_CLASS=y
1248# CONFIG_USB_DYNAMIC_MINORS is not set
1249# CONFIG_USB_OTG is not set
1250# CONFIG_USB_OTG_WHITELIST is not set
1251# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1252CONFIG_USB_MON=y
1253# CONFIG_USB_WUSB is not set
1254# CONFIG_USB_WUSB_CBAF is not set
1255
1256#
1257# USB Host Controller Drivers
1258#
1259# CONFIG_USB_C67X00_HCD is not set
1260CONFIG_USB_EHCI_HCD=y
1261CONFIG_USB_EHCI_ROOT_HUB_TT=y
1262# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1263CONFIG_USB_EHCI_FSL=y
1264CONFIG_USB_EHCI_HCD_PPC_OF=y
1265# CONFIG_USB_OXU210HP_HCD is not set
1266# CONFIG_USB_ISP116X_HCD is not set
1267# CONFIG_USB_ISP1760_HCD is not set
1268CONFIG_USB_OHCI_HCD=y
1269CONFIG_USB_OHCI_HCD_PPC_OF=y
1270CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
1271CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
1272CONFIG_USB_OHCI_HCD_PCI=y
1273CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1274CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1275CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1276# CONFIG_USB_UHCI_HCD is not set
1277# CONFIG_USB_SL811_HCD is not set
1278# CONFIG_USB_R8A66597_HCD is not set
1279# CONFIG_USB_WHCI_HCD is not set
1280# CONFIG_USB_HWA_HCD is not set
1281
1282#
1283# USB Device Class drivers
1284#
1285# CONFIG_USB_ACM is not set
1286# CONFIG_USB_PRINTER is not set
1287# CONFIG_USB_WDM is not set
1288# CONFIG_USB_TMC is not set
1289
1290#
1291# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1292#
1293
1294#
1295# see USB_STORAGE Help for more information
1296#
1297CONFIG_USB_STORAGE=y
1298# CONFIG_USB_STORAGE_DEBUG is not set
1299# CONFIG_USB_STORAGE_DATAFAB is not set
1300# CONFIG_USB_STORAGE_FREECOM is not set
1301# CONFIG_USB_STORAGE_ISD200 is not set
1302# CONFIG_USB_STORAGE_USBAT is not set
1303# CONFIG_USB_STORAGE_SDDR09 is not set
1304# CONFIG_USB_STORAGE_SDDR55 is not set
1305# CONFIG_USB_STORAGE_JUMPSHOT is not set
1306# CONFIG_USB_STORAGE_ALAUDA is not set
1307# CONFIG_USB_STORAGE_ONETOUCH is not set
1308# CONFIG_USB_STORAGE_KARMA is not set
1309# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1310# CONFIG_USB_LIBUSUAL is not set
1311
1312#
1313# USB Imaging devices
1314#
1315# CONFIG_USB_MDC800 is not set
1316# CONFIG_USB_MICROTEK is not set
1317
1318#
1319# USB port drivers
1320#
1321# CONFIG_USB_SERIAL is not set
1322
1323#
1324# USB Miscellaneous drivers
1325#
1326# CONFIG_USB_EMI62 is not set
1327# CONFIG_USB_EMI26 is not set
1328# CONFIG_USB_ADUTUX is not set
1329# CONFIG_USB_SEVSEG is not set
1330# CONFIG_USB_RIO500 is not set
1331# CONFIG_USB_LEGOTOWER is not set
1332# CONFIG_USB_LCD is not set
1333# CONFIG_USB_BERRY_CHARGE is not set
1334# CONFIG_USB_LED is not set
1335# CONFIG_USB_CYPRESS_CY7C63 is not set
1336# CONFIG_USB_CYTHERM is not set
1337# CONFIG_USB_PHIDGET is not set
1338# CONFIG_USB_IDMOUSE is not set
1339# CONFIG_USB_FTDI_ELAN is not set
1340# CONFIG_USB_APPLEDISPLAY is not set
1341# CONFIG_USB_SISUSBVGA is not set
1342# CONFIG_USB_LD is not set
1343# CONFIG_USB_TRANCEVIBRATOR is not set
1344# CONFIG_USB_IOWARRIOR is not set
1345# CONFIG_USB_TEST is not set
1346# CONFIG_USB_ISIGHTFW is not set
1347# CONFIG_USB_VST is not set
1348# CONFIG_USB_GADGET is not set
1349
1350#
1351# OTG and related infrastructure
1352#
1353# CONFIG_UWB is not set
1354# CONFIG_MMC is not set
1355# CONFIG_MEMSTICK is not set
1356# CONFIG_NEW_LEDS is not set
1357# CONFIG_ACCESSIBILITY is not set
1358# CONFIG_INFINIBAND is not set
1359# CONFIG_EDAC is not set
1360CONFIG_RTC_LIB=y
1361CONFIG_RTC_CLASS=y
1362CONFIG_RTC_HCTOSYS=y
1363CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1364# CONFIG_RTC_DEBUG is not set
1365
1366#
1367# RTC interfaces
1368#
1369CONFIG_RTC_INTF_SYSFS=y
1370CONFIG_RTC_INTF_PROC=y
1371CONFIG_RTC_INTF_DEV=y
1372# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1373# CONFIG_RTC_DRV_TEST is not set
1374
1375#
1376# I2C RTC drivers
1377#
1378# CONFIG_RTC_DRV_DS1307 is not set
1379# CONFIG_RTC_DRV_DS1374 is not set
1380# CONFIG_RTC_DRV_DS1672 is not set
1381# CONFIG_RTC_DRV_MAX6900 is not set
1382# CONFIG_RTC_DRV_RS5C372 is not set
1383# CONFIG_RTC_DRV_ISL1208 is not set
1384# CONFIG_RTC_DRV_X1205 is not set
1385# CONFIG_RTC_DRV_PCF8563 is not set
1386# CONFIG_RTC_DRV_PCF8583 is not set
1387# CONFIG_RTC_DRV_M41T80 is not set
1388# CONFIG_RTC_DRV_S35390A is not set
1389# CONFIG_RTC_DRV_FM3130 is not set
1390# CONFIG_RTC_DRV_RX8581 is not set
1391
1392#
1393# SPI RTC drivers
1394#
1395
1396#
1397# Platform RTC drivers
1398#
1399CONFIG_RTC_DRV_CMOS=y
1400# CONFIG_RTC_DRV_DS1286 is not set
1401# CONFIG_RTC_DRV_DS1511 is not set
1402# CONFIG_RTC_DRV_DS1553 is not set
1403# CONFIG_RTC_DRV_DS1742 is not set
1404# CONFIG_RTC_DRV_STK17TA8 is not set
1405# CONFIG_RTC_DRV_M48T86 is not set
1406# CONFIG_RTC_DRV_M48T35 is not set
1407# CONFIG_RTC_DRV_M48T59 is not set
1408# CONFIG_RTC_DRV_BQ4802 is not set
1409# CONFIG_RTC_DRV_V3020 is not set
1410
1411#
1412# on-CPU RTC drivers
1413#
1414# CONFIG_RTC_DRV_PPC is not set
1415CONFIG_DMADEVICES=y
1416
1417#
1418# DMA Devices
1419#
1420CONFIG_FSL_DMA=y
1421CONFIG_DMA_ENGINE=y
1422
1423#
1424# DMA Clients
1425#
1426# CONFIG_NET_DMA is not set
1427# CONFIG_DMATEST is not set
1428# CONFIG_UIO is not set
1429# CONFIG_STAGING is not set
1430
1431#
1432# File systems
1433#
1434CONFIG_EXT2_FS=y
1435# CONFIG_EXT2_FS_XATTR is not set
1436# CONFIG_EXT2_FS_XIP is not set
1437CONFIG_EXT3_FS=y
1438CONFIG_EXT3_FS_XATTR=y
1439# CONFIG_EXT3_FS_POSIX_ACL is not set
1440# CONFIG_EXT3_FS_SECURITY is not set
1441# CONFIG_EXT4_FS is not set
1442CONFIG_JBD=y
1443# CONFIG_JBD_DEBUG is not set
1444CONFIG_FS_MBCACHE=y
1445# CONFIG_REISERFS_FS is not set
1446# CONFIG_JFS_FS is not set
1447# CONFIG_FS_POSIX_ACL is not set
1448CONFIG_FILE_LOCKING=y
1449# CONFIG_XFS_FS is not set
1450# CONFIG_GFS2_FS is not set
1451# CONFIG_OCFS2_FS is not set
1452# CONFIG_BTRFS_FS is not set
1453CONFIG_DNOTIFY=y
1454CONFIG_INOTIFY=y
1455CONFIG_INOTIFY_USER=y
1456# CONFIG_QUOTA is not set
1457# CONFIG_AUTOFS_FS is not set
1458# CONFIG_AUTOFS4_FS is not set
1459# CONFIG_FUSE_FS is not set
1460
1461#
1462# CD-ROM/DVD Filesystems
1463#
1464CONFIG_ISO9660_FS=m
1465CONFIG_JOLIET=y
1466CONFIG_ZISOFS=y
1467CONFIG_UDF_FS=m
1468CONFIG_UDF_NLS=y
1469
1470#
1471# DOS/FAT/NT Filesystems
1472#
1473CONFIG_FAT_FS=y
1474CONFIG_MSDOS_FS=m
1475CONFIG_VFAT_FS=y
1476CONFIG_FAT_DEFAULT_CODEPAGE=437
1477CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1478CONFIG_NTFS_FS=y
1479# CONFIG_NTFS_DEBUG is not set
1480# CONFIG_NTFS_RW is not set
1481
1482#
1483# Pseudo filesystems
1484#
1485CONFIG_PROC_FS=y
1486CONFIG_PROC_KCORE=y
1487CONFIG_PROC_SYSCTL=y
1488CONFIG_PROC_PAGE_MONITOR=y
1489CONFIG_SYSFS=y
1490CONFIG_TMPFS=y
1491# CONFIG_TMPFS_POSIX_ACL is not set
1492# CONFIG_HUGETLB_PAGE is not set
1493# CONFIG_CONFIGFS_FS is not set
1494CONFIG_MISC_FILESYSTEMS=y
1495CONFIG_ADFS_FS=m
1496# CONFIG_ADFS_FS_RW is not set
1497CONFIG_AFFS_FS=m
1498CONFIG_HFS_FS=m
1499CONFIG_HFSPLUS_FS=m
1500CONFIG_BEFS_FS=m
1501# CONFIG_BEFS_DEBUG is not set
1502CONFIG_BFS_FS=m
1503CONFIG_EFS_FS=m
1504CONFIG_CRAMFS=y
1505# CONFIG_SQUASHFS is not set
1506CONFIG_VXFS_FS=m
1507# CONFIG_MINIX_FS is not set
1508# CONFIG_OMFS_FS is not set
1509CONFIG_HPFS_FS=m
1510CONFIG_QNX4FS_FS=m
1511# CONFIG_ROMFS_FS is not set
1512CONFIG_SYSV_FS=m
1513CONFIG_UFS_FS=m
1514# CONFIG_UFS_FS_WRITE is not set
1515# CONFIG_UFS_DEBUG is not set
1516CONFIG_NETWORK_FILESYSTEMS=y
1517CONFIG_NFS_FS=y
1518CONFIG_NFS_V3=y
1519# CONFIG_NFS_V3_ACL is not set
1520CONFIG_NFS_V4=y
1521CONFIG_ROOT_NFS=y
1522CONFIG_NFSD=y
1523# CONFIG_NFSD_V3 is not set
1524# CONFIG_NFSD_V4 is not set
1525CONFIG_LOCKD=y
1526CONFIG_LOCKD_V4=y
1527CONFIG_EXPORTFS=y
1528CONFIG_NFS_COMMON=y
1529CONFIG_SUNRPC=y
1530CONFIG_SUNRPC_GSS=y
1531# CONFIG_SUNRPC_REGISTER_V4 is not set
1532CONFIG_RPCSEC_GSS_KRB5=y
1533# CONFIG_RPCSEC_GSS_SPKM3 is not set
1534# CONFIG_SMB_FS is not set
1535# CONFIG_CIFS is not set
1536# CONFIG_NCP_FS is not set
1537# CONFIG_CODA_FS is not set
1538# CONFIG_AFS_FS is not set
1539
1540#
1541# Partition Types
1542#
1543CONFIG_PARTITION_ADVANCED=y
1544# CONFIG_ACORN_PARTITION is not set
1545# CONFIG_OSF_PARTITION is not set
1546# CONFIG_AMIGA_PARTITION is not set
1547# CONFIG_ATARI_PARTITION is not set
1548CONFIG_MAC_PARTITION=y
1549CONFIG_MSDOS_PARTITION=y
1550# CONFIG_BSD_DISKLABEL is not set
1551# CONFIG_MINIX_SUBPARTITION is not set
1552# CONFIG_SOLARIS_X86_PARTITION is not set
1553# CONFIG_UNIXWARE_DISKLABEL is not set
1554# CONFIG_LDM_PARTITION is not set
1555# CONFIG_SGI_PARTITION is not set
1556# CONFIG_ULTRIX_PARTITION is not set
1557# CONFIG_SUN_PARTITION is not set
1558# CONFIG_KARMA_PARTITION is not set
1559# CONFIG_EFI_PARTITION is not set
1560# CONFIG_SYSV68_PARTITION is not set
1561CONFIG_NLS=y
1562CONFIG_NLS_DEFAULT="iso8859-1"
1563# CONFIG_NLS_CODEPAGE_437 is not set
1564# CONFIG_NLS_CODEPAGE_737 is not set
1565# CONFIG_NLS_CODEPAGE_775 is not set
1566# CONFIG_NLS_CODEPAGE_850 is not set
1567# CONFIG_NLS_CODEPAGE_852 is not set
1568# CONFIG_NLS_CODEPAGE_855 is not set
1569# CONFIG_NLS_CODEPAGE_857 is not set
1570# CONFIG_NLS_CODEPAGE_860 is not set
1571# CONFIG_NLS_CODEPAGE_861 is not set
1572# CONFIG_NLS_CODEPAGE_862 is not set
1573# CONFIG_NLS_CODEPAGE_863 is not set
1574# CONFIG_NLS_CODEPAGE_864 is not set
1575# CONFIG_NLS_CODEPAGE_865 is not set
1576# CONFIG_NLS_CODEPAGE_866 is not set
1577# CONFIG_NLS_CODEPAGE_869 is not set
1578# CONFIG_NLS_CODEPAGE_936 is not set
1579# CONFIG_NLS_CODEPAGE_950 is not set
1580# CONFIG_NLS_CODEPAGE_932 is not set
1581# CONFIG_NLS_CODEPAGE_949 is not set
1582# CONFIG_NLS_CODEPAGE_874 is not set
1583# CONFIG_NLS_ISO8859_8 is not set
1584# CONFIG_NLS_CODEPAGE_1250 is not set
1585# CONFIG_NLS_CODEPAGE_1251 is not set
1586# CONFIG_NLS_ASCII is not set
1587# CONFIG_NLS_ISO8859_1 is not set
1588# CONFIG_NLS_ISO8859_2 is not set
1589# CONFIG_NLS_ISO8859_3 is not set
1590# CONFIG_NLS_ISO8859_4 is not set
1591# CONFIG_NLS_ISO8859_5 is not set
1592# CONFIG_NLS_ISO8859_6 is not set
1593# CONFIG_NLS_ISO8859_7 is not set
1594# CONFIG_NLS_ISO8859_9 is not set
1595# CONFIG_NLS_ISO8859_13 is not set
1596# CONFIG_NLS_ISO8859_14 is not set
1597# CONFIG_NLS_ISO8859_15 is not set
1598# CONFIG_NLS_KOI8_R is not set
1599# CONFIG_NLS_KOI8_U is not set
1600CONFIG_NLS_UTF8=m
1601# CONFIG_DLM is not set
1602
1603#
1604# Library routines
1605#
1606CONFIG_BITREVERSE=y
1607CONFIG_GENERIC_FIND_LAST_BIT=y
1608# CONFIG_CRC_CCITT is not set
1609# CONFIG_CRC16 is not set
1610CONFIG_CRC_T10DIF=y
1611CONFIG_CRC_ITU_T=m
1612CONFIG_CRC32=y
1613# CONFIG_CRC7 is not set
1614CONFIG_LIBCRC32C=m
1615CONFIG_ZLIB_INFLATE=y
1616CONFIG_PLIST=y
1617CONFIG_HAS_IOMEM=y
1618CONFIG_HAS_IOPORT=y
1619CONFIG_HAS_DMA=y
1620CONFIG_HAVE_LMB=y
1621
1622#
1623# Kernel hacking
1624#
1625# CONFIG_PRINTK_TIME is not set
1626CONFIG_ENABLE_WARN_DEPRECATED=y
1627CONFIG_ENABLE_MUST_CHECK=y
1628CONFIG_FRAME_WARN=1024
1629# CONFIG_MAGIC_SYSRQ is not set
1630# CONFIG_UNUSED_SYMBOLS is not set
1631CONFIG_DEBUG_FS=y
1632# CONFIG_HEADERS_CHECK is not set
1633CONFIG_DEBUG_KERNEL=y
1634# CONFIG_DEBUG_SHIRQ is not set
1635CONFIG_DETECT_SOFTLOCKUP=y
1636# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1637CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1638CONFIG_SCHED_DEBUG=y
1639# CONFIG_SCHEDSTATS is not set
1640# CONFIG_TIMER_STATS is not set
1641# CONFIG_DEBUG_OBJECTS is not set
1642# CONFIG_SLUB_DEBUG_ON is not set
1643# CONFIG_SLUB_STATS is not set
1644# CONFIG_DEBUG_RT_MUTEXES is not set
1645# CONFIG_RT_MUTEX_TESTER is not set
1646# CONFIG_DEBUG_SPINLOCK is not set
1647# CONFIG_DEBUG_MUTEXES is not set
1648# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1649# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1650# CONFIG_DEBUG_KOBJECT is not set
1651# CONFIG_DEBUG_HIGHMEM is not set
1652# CONFIG_DEBUG_BUGVERBOSE is not set
1653CONFIG_DEBUG_INFO=y
1654# CONFIG_DEBUG_VM is not set
1655# CONFIG_DEBUG_WRITECOUNT is not set
1656# CONFIG_DEBUG_MEMORY_INIT is not set
1657# CONFIG_DEBUG_LIST is not set
1658# CONFIG_DEBUG_SG is not set
1659# CONFIG_DEBUG_NOTIFIERS is not set
1660# CONFIG_BOOT_PRINTK_DELAY is not set
1661# CONFIG_RCU_TORTURE_TEST is not set
1662# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1663# CONFIG_BACKTRACE_SELF_TEST is not set
1664# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1665# CONFIG_FAULT_INJECTION is not set
1666# CONFIG_LATENCYTOP is not set
1667CONFIG_SYSCTL_SYSCALL_CHECK=y
1668CONFIG_HAVE_FUNCTION_TRACER=y
1669CONFIG_HAVE_DYNAMIC_FTRACE=y
1670CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1671
1672#
1673# Tracers
1674#
1675# CONFIG_FUNCTION_TRACER is not set
1676# CONFIG_SCHED_TRACER is not set
1677# CONFIG_CONTEXT_SWITCH_TRACER is not set
1678# CONFIG_BOOT_TRACER is not set
1679# CONFIG_TRACE_BRANCH_PROFILING is not set
1680# CONFIG_STACK_TRACER is not set
1681# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1682# CONFIG_SAMPLES is not set
1683CONFIG_HAVE_ARCH_KGDB=y
1684# CONFIG_KGDB is not set
1685CONFIG_PRINT_STACK_DEPTH=64
1686# CONFIG_DEBUG_STACKOVERFLOW is not set
1687# CONFIG_DEBUG_STACK_USAGE is not set
1688# CONFIG_DEBUG_PAGEALLOC is not set
1689# CONFIG_CODE_PATCHING_SELFTEST is not set
1690# CONFIG_FTR_FIXUP_SELFTEST is not set
1691# CONFIG_MSI_BITMAP_SELFTEST is not set
1692# CONFIG_XMON is not set
1693# CONFIG_IRQSTACKS is not set
1694# CONFIG_VIRQ_DEBUG is not set
1695# CONFIG_BDI_SWITCH is not set
1696# CONFIG_PPC_EARLY_DEBUG is not set
1697
1698#
1699# Security options
1700#
1701# CONFIG_KEYS is not set
1702# CONFIG_SECURITY is not set
1703# CONFIG_SECURITYFS is not set
1704# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1705CONFIG_CRYPTO=y
1706
1707#
1708# Crypto core or helper
1709#
1710# CONFIG_CRYPTO_FIPS is not set
1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1717CONFIG_CRYPTO_HASH=y
1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1722# CONFIG_CRYPTO_GF128MUL is not set
1723# CONFIG_CRYPTO_NULL is not set
1724# CONFIG_CRYPTO_CRYPTD is not set
1725CONFIG_CRYPTO_AUTHENC=y
1726# CONFIG_CRYPTO_TEST is not set
1727
1728#
1729# Authenticated Encryption with Associated Data
1730#
1731# CONFIG_CRYPTO_CCM is not set
1732# CONFIG_CRYPTO_GCM is not set
1733# CONFIG_CRYPTO_SEQIV is not set
1734
1735#
1736# Block modes
1737#
1738CONFIG_CRYPTO_CBC=y
1739# CONFIG_CRYPTO_CTR is not set
1740# CONFIG_CRYPTO_CTS is not set
1741# CONFIG_CRYPTO_ECB is not set
1742# CONFIG_CRYPTO_LRW is not set
1743CONFIG_CRYPTO_PCBC=m
1744# CONFIG_CRYPTO_XTS is not set
1745
1746#
1747# Hash modes
1748#
1749CONFIG_CRYPTO_HMAC=y
1750# CONFIG_CRYPTO_XCBC is not set
1751
1752#
1753# Digest
1754#
1755CONFIG_CRYPTO_CRC32C=m
1756# CONFIG_CRYPTO_MD4 is not set
1757CONFIG_CRYPTO_MD5=y
1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
1759# CONFIG_CRYPTO_RMD128 is not set
1760# CONFIG_CRYPTO_RMD160 is not set
1761# CONFIG_CRYPTO_RMD256 is not set
1762# CONFIG_CRYPTO_RMD320 is not set
1763CONFIG_CRYPTO_SHA1=m
1764# CONFIG_CRYPTO_SHA256 is not set
1765# CONFIG_CRYPTO_SHA512 is not set
1766# CONFIG_CRYPTO_TGR192 is not set
1767# CONFIG_CRYPTO_WP512 is not set
1768
1769#
1770# Ciphers
1771#
1772# CONFIG_CRYPTO_AES is not set
1773# CONFIG_CRYPTO_ANUBIS is not set
1774# CONFIG_CRYPTO_ARC4 is not set
1775# CONFIG_CRYPTO_BLOWFISH is not set
1776# CONFIG_CRYPTO_CAMELLIA is not set
1777# CONFIG_CRYPTO_CAST5 is not set
1778# CONFIG_CRYPTO_CAST6 is not set
1779CONFIG_CRYPTO_DES=y
1780# CONFIG_CRYPTO_FCRYPT is not set
1781# CONFIG_CRYPTO_KHAZAD is not set
1782# CONFIG_CRYPTO_SALSA20 is not set
1783# CONFIG_CRYPTO_SEED is not set
1784# CONFIG_CRYPTO_SERPENT is not set
1785# CONFIG_CRYPTO_TEA is not set
1786# CONFIG_CRYPTO_TWOFISH is not set
1787
1788#
1789# Compression
1790#
1791# CONFIG_CRYPTO_DEFLATE is not set
1792# CONFIG_CRYPTO_LZO is not set
1793
1794#
1795# Random Number Generation
1796#
1797# CONFIG_CRYPTO_ANSI_CPRNG is not set
1798CONFIG_CRYPTO_HW=y
1799# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1800CONFIG_CRYPTO_DEV_TALITOS=y
1801# CONFIG_PPC_CLOCK is not set
1802# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 905e8a3388d6..7b43be7586b6 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:05 2009 4# Wed May 13 17:22:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -112,16 +126,19 @@ CONFIG_SHMEM=y
112CONFIG_AIO=y 126CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -129,7 +146,6 @@ CONFIG_BASE_SMALL=0
129# CONFIG_MODULES is not set 146# CONFIG_MODULES is not set
130CONFIG_BLOCK=y 147CONFIG_BLOCK=y
131# CONFIG_LBD is not set 148# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_BLK_DEV_BSG is not set 149# CONFIG_BLK_DEV_BSG is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set 150# CONFIG_BLK_DEV_INTEGRITY is not set
135 151
@@ -145,11 +161,6 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_CFQ is not set 161# CONFIG_DEFAULT_CFQ is not set
146# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 163CONFIG_DEFAULT_IOSCHED="anticipatory"
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
153# CONFIG_FREEZER is not set 164# CONFIG_FREEZER is not set
154 165
155# 166#
@@ -165,6 +176,7 @@ CONFIG_MPC8540_ADS=y
165# CONFIG_MPC85xx_MDS is not set 176# CONFIG_MPC85xx_MDS is not set
166# CONFIG_MPC8536_DS is not set 177# CONFIG_MPC8536_DS is not set
167# CONFIG_MPC85xx_DS is not set 178# CONFIG_MPC85xx_DS is not set
179# CONFIG_SOCRATES is not set
168# CONFIG_KSI8560 is not set 180# CONFIG_KSI8560 is not set
169# CONFIG_STX_GP3 is not set 181# CONFIG_STX_GP3 is not set
170# CONFIG_TQM8540 is not set 182# CONFIG_TQM8540 is not set
@@ -233,9 +245,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 246CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 247CONFIG_UNEVICTABLE_LRU=y
248CONFIG_HAVE_MLOCK=y
249CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 250CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 251# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 252# CONFIG_PPC_64K_PAGES is not set
253# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 254CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 255CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 256# CONFIG_CMDLINE_BOOL is not set
@@ -266,17 +281,17 @@ CONFIG_PPC_PCI_CHOICE=y
266# Default settings for advanced configuration options are used 281# Default settings for advanced configuration options are used
267# 282#
268CONFIG_LOWMEM_SIZE=0x30000000 283CONFIG_LOWMEM_SIZE=0x30000000
284CONFIG_LOWMEM_CAM_NUM=3
269CONFIG_PAGE_OFFSET=0xc0000000 285CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 286CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 287CONFIG_PHYSICAL_START=0x00000000
272CONFIG_PHYSICAL_ALIGN=0x10000000 288CONFIG_PHYSICAL_ALIGN=0x04000000
273CONFIG_TASK_SIZE=0xc0000000 289CONFIG_TASK_SIZE=0xc0000000
274CONFIG_NET=y 290CONFIG_NET=y
275 291
276# 292#
277# Networking options 293# Networking options
278# 294#
279CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 295CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -332,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
333# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
334# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set
335# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
336# CONFIG_DCB is not set 352# CONFIG_DCB is not set
337 353
@@ -344,7 +360,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
345# CONFIG_BT is not set 361# CONFIG_BT is not set
346# CONFIG_AF_RXRPC is not set 362# CONFIG_AF_RXRPC is not set
347# CONFIG_PHONET is not set
348CONFIG_WIRELESS=y 363CONFIG_WIRELESS=y
349# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
350CONFIG_WIRELESS_OLD_REGULATORY=y 365CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -387,9 +402,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
387# CONFIG_ATA_OVER_ETH is not set 402# CONFIG_ATA_OVER_ETH is not set
388# CONFIG_BLK_DEV_HD is not set 403# CONFIG_BLK_DEV_HD is not set
389CONFIG_MISC_DEVICES=y 404CONFIG_MISC_DEVICES=y
390# CONFIG_EEPROM_93CX6 is not set
391# CONFIG_ENCLOSURE_SERVICES is not set 405# CONFIG_ENCLOSURE_SERVICES is not set
392# CONFIG_C2PORT is not set 406# CONFIG_C2PORT is not set
407
408#
409# EEPROM support
410#
411# CONFIG_EEPROM_93CX6 is not set
393CONFIG_HAVE_IDE=y 412CONFIG_HAVE_IDE=y
394# CONFIG_IDE is not set 413# CONFIG_IDE is not set
395 414
@@ -404,6 +423,7 @@ CONFIG_HAVE_IDE=y
404# CONFIG_MD is not set 423# CONFIG_MD is not set
405# CONFIG_MACINTOSH_DRIVERS is not set 424# CONFIG_MACINTOSH_DRIVERS is not set
406CONFIG_NETDEVICES=y 425CONFIG_NETDEVICES=y
426CONFIG_COMPAT_NET_DEV_OPS=y
407# CONFIG_DUMMY is not set 427# CONFIG_DUMMY is not set
408# CONFIG_BONDING is not set 428# CONFIG_BONDING is not set
409# CONFIG_MACVLAN is not set 429# CONFIG_MACVLAN is not set
@@ -432,6 +452,8 @@ CONFIG_PHYLIB=y
432# CONFIG_MDIO_BITBANG is not set 452# CONFIG_MDIO_BITBANG is not set
433CONFIG_NET_ETHERNET=y 453CONFIG_NET_ETHERNET=y
434CONFIG_MII=y 454CONFIG_MII=y
455# CONFIG_ETHOC is not set
456# CONFIG_DNET is not set
435# CONFIG_IBM_NEW_EMAC_ZMII is not set 457# CONFIG_IBM_NEW_EMAC_ZMII is not set
436# CONFIG_IBM_NEW_EMAC_RGMII is not set 458# CONFIG_IBM_NEW_EMAC_RGMII is not set
437# CONFIG_IBM_NEW_EMAC_TAH is not set 459# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -441,6 +463,7 @@ CONFIG_MII=y
441# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 463# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
442# CONFIG_B44 is not set 464# CONFIG_B44 is not set
443CONFIG_NETDEV_1000=y 465CONFIG_NETDEV_1000=y
466CONFIG_FSL_PQ_MDIO=y
444CONFIG_GIANFAR=y 467CONFIG_GIANFAR=y
445CONFIG_NETDEV_10000=y 468CONFIG_NETDEV_10000=y
446 469
@@ -449,7 +472,6 @@ CONFIG_NETDEV_10000=y
449# 472#
450# CONFIG_WLAN_PRE80211 is not set 473# CONFIG_WLAN_PRE80211 is not set
451# CONFIG_WLAN_80211 is not set 474# CONFIG_WLAN_80211 is not set
452# CONFIG_IWLWIFI_LEDS is not set
453 475
454# 476#
455# Enable WiMAX (Networking options) to see the WiMAX drivers 477# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -607,7 +629,6 @@ CONFIG_HID=y
607# 629#
608# Special HID drivers 630# Special HID drivers
609# 631#
610CONFIG_HID_COMPAT=y
611CONFIG_USB_SUPPORT=y 632CONFIG_USB_SUPPORT=y
612# CONFIG_USB_ARCH_HAS_HCD is not set 633# CONFIG_USB_ARCH_HAS_HCD is not set
613# CONFIG_USB_ARCH_HAS_OHCI is not set 634# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -620,7 +641,7 @@ CONFIG_USB_SUPPORT=y
620# 641#
621 642
622# 643#
623# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 644# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
624# 645#
625# CONFIG_USB_GADGET is not set 646# CONFIG_USB_GADGET is not set
626 647
@@ -634,6 +655,7 @@ CONFIG_USB_SUPPORT=y
634# CONFIG_EDAC is not set 655# CONFIG_EDAC is not set
635# CONFIG_RTC_CLASS is not set 656# CONFIG_RTC_CLASS is not set
636# CONFIG_DMADEVICES is not set 657# CONFIG_DMADEVICES is not set
658# CONFIG_AUXDISPLAY is not set
637# CONFIG_UIO is not set 659# CONFIG_UIO is not set
638# CONFIG_STAGING is not set 660# CONFIG_STAGING is not set
639 661
@@ -644,6 +666,7 @@ CONFIG_EXT2_FS=y
644# CONFIG_EXT2_FS_XATTR is not set 666# CONFIG_EXT2_FS_XATTR is not set
645# CONFIG_EXT2_FS_XIP is not set 667# CONFIG_EXT2_FS_XIP is not set
646CONFIG_EXT3_FS=y 668CONFIG_EXT3_FS=y
669# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
647CONFIG_EXT3_FS_XATTR=y 670CONFIG_EXT3_FS_XATTR=y
648# CONFIG_EXT3_FS_POSIX_ACL is not set 671# CONFIG_EXT3_FS_POSIX_ACL is not set
649# CONFIG_EXT3_FS_SECURITY is not set 672# CONFIG_EXT3_FS_SECURITY is not set
@@ -666,6 +689,11 @@ CONFIG_INOTIFY_USER=y
666# CONFIG_FUSE_FS is not set 689# CONFIG_FUSE_FS is not set
667 690
668# 691#
692# Caches
693#
694# CONFIG_FSCACHE is not set
695
696#
669# CD-ROM/DVD Filesystems 697# CD-ROM/DVD Filesystems
670# 698#
671# CONFIG_ISO9660_FS is not set 699# CONFIG_ISO9660_FS is not set
@@ -708,6 +736,7 @@ CONFIG_MISC_FILESYSTEMS=y
708# CONFIG_ROMFS_FS is not set 736# CONFIG_ROMFS_FS is not set
709# CONFIG_SYSV_FS is not set 737# CONFIG_SYSV_FS is not set
710# CONFIG_UFS_FS is not set 738# CONFIG_UFS_FS is not set
739# CONFIG_NILFS2_FS is not set
711CONFIG_NETWORK_FILESYSTEMS=y 740CONFIG_NETWORK_FILESYSTEMS=y
712CONFIG_NFS_FS=y 741CONFIG_NFS_FS=y
713# CONFIG_NFS_V3 is not set 742# CONFIG_NFS_V3 is not set
@@ -717,7 +746,6 @@ CONFIG_ROOT_NFS=y
717CONFIG_LOCKD=y 746CONFIG_LOCKD=y
718CONFIG_NFS_COMMON=y 747CONFIG_NFS_COMMON=y
719CONFIG_SUNRPC=y 748CONFIG_SUNRPC=y
720# CONFIG_SUNRPC_REGISTER_V4 is not set
721# CONFIG_RPCSEC_GSS_KRB5 is not set 749# CONFIG_RPCSEC_GSS_KRB5 is not set
722# CONFIG_RPCSEC_GSS_SPKM3 is not set 750# CONFIG_RPCSEC_GSS_SPKM3 is not set
723# CONFIG_SMB_FS is not set 751# CONFIG_SMB_FS is not set
@@ -745,6 +773,7 @@ CONFIG_PARTITION_ADVANCED=y
745# CONFIG_SYSV68_PARTITION is not set 773# CONFIG_SYSV68_PARTITION is not set
746# CONFIG_NLS is not set 774# CONFIG_NLS is not set
747# CONFIG_DLM is not set 775# CONFIG_DLM is not set
776# CONFIG_BINARY_PRINTF is not set
748 777
749# 778#
750# Library routines 779# Library routines
@@ -758,11 +787,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
758CONFIG_CRC32=y 787CONFIG_CRC32=y
759# CONFIG_CRC7 is not set 788# CONFIG_CRC7 is not set
760# CONFIG_LIBCRC32C is not set 789# CONFIG_LIBCRC32C is not set
761CONFIG_PLIST=y 790CONFIG_ZLIB_INFLATE=y
791CONFIG_DECOMPRESS_GZIP=y
762CONFIG_HAS_IOMEM=y 792CONFIG_HAS_IOMEM=y
763CONFIG_HAS_IOPORT=y 793CONFIG_HAS_IOPORT=y
764CONFIG_HAS_DMA=y 794CONFIG_HAS_DMA=y
765CONFIG_HAVE_LMB=y 795CONFIG_HAVE_LMB=y
796CONFIG_NLATTR=y
766 797
767# 798#
768# Kernel hacking 799# Kernel hacking
@@ -780,6 +811,9 @@ CONFIG_DEBUG_KERNEL=y
780CONFIG_DETECT_SOFTLOCKUP=y 811CONFIG_DETECT_SOFTLOCKUP=y
781# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 812# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
782CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 813CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
814CONFIG_DETECT_HUNG_TASK=y
815# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
816CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
783CONFIG_SCHED_DEBUG=y 817CONFIG_SCHED_DEBUG=y
784# CONFIG_SCHEDSTATS is not set 818# CONFIG_SCHEDSTATS is not set
785# CONFIG_TIMER_STATS is not set 819# CONFIG_TIMER_STATS is not set
@@ -809,9 +843,12 @@ CONFIG_DEBUG_MUTEXES=y
809# CONFIG_FAULT_INJECTION is not set 843# CONFIG_FAULT_INJECTION is not set
810# CONFIG_LATENCYTOP is not set 844# CONFIG_LATENCYTOP is not set
811CONFIG_SYSCTL_SYSCALL_CHECK=y 845CONFIG_SYSCTL_SYSCALL_CHECK=y
846# CONFIG_DEBUG_PAGEALLOC is not set
812CONFIG_HAVE_FUNCTION_TRACER=y 847CONFIG_HAVE_FUNCTION_TRACER=y
848CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
813CONFIG_HAVE_DYNAMIC_FTRACE=y 849CONFIG_HAVE_DYNAMIC_FTRACE=y
814CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
851CONFIG_TRACING_SUPPORT=y
815 852
816# 853#
817# Tracers 854# Tracers
@@ -819,17 +856,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
819# CONFIG_FUNCTION_TRACER is not set 856# CONFIG_FUNCTION_TRACER is not set
820# CONFIG_SCHED_TRACER is not set 857# CONFIG_SCHED_TRACER is not set
821# CONFIG_CONTEXT_SWITCH_TRACER is not set 858# CONFIG_CONTEXT_SWITCH_TRACER is not set
859# CONFIG_EVENT_TRACER is not set
822# CONFIG_BOOT_TRACER is not set 860# CONFIG_BOOT_TRACER is not set
823# CONFIG_TRACE_BRANCH_PROFILING is not set 861# CONFIG_TRACE_BRANCH_PROFILING is not set
824# CONFIG_STACK_TRACER is not set 862# CONFIG_STACK_TRACER is not set
825# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 863# CONFIG_KMEMTRACE is not set
864# CONFIG_WORKQUEUE_TRACER is not set
865# CONFIG_BLK_DEV_IO_TRACE is not set
826# CONFIG_SAMPLES is not set 866# CONFIG_SAMPLES is not set
827CONFIG_HAVE_ARCH_KGDB=y 867CONFIG_HAVE_ARCH_KGDB=y
828# CONFIG_KGDB is not set 868# CONFIG_KGDB is not set
829CONFIG_PRINT_STACK_DEPTH=64 869CONFIG_PRINT_STACK_DEPTH=64
830# CONFIG_DEBUG_STACKOVERFLOW is not set 870# CONFIG_DEBUG_STACKOVERFLOW is not set
831# CONFIG_DEBUG_STACK_USAGE is not set 871# CONFIG_DEBUG_STACK_USAGE is not set
832# CONFIG_DEBUG_PAGEALLOC is not set
833# CONFIG_CODE_PATCHING_SELFTEST is not set 872# CONFIG_CODE_PATCHING_SELFTEST is not set
834# CONFIG_FTR_FIXUP_SELFTEST is not set 873# CONFIG_FTR_FIXUP_SELFTEST is not set
835# CONFIG_MSI_BITMAP_SELFTEST is not set 874# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -922,6 +961,7 @@ CONFIG_CRYPTO=y
922# Compression 961# Compression
923# 962#
924# CONFIG_CRYPTO_DEFLATE is not set 963# CONFIG_CRYPTO_DEFLATE is not set
964# CONFIG_CRYPTO_ZLIB is not set
925# CONFIG_CRYPTO_LZO is not set 965# CONFIG_CRYPTO_LZO is not set
926 966
927# 967#
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
deleted file mode 100644
index f6fa0b761cb3..000000000000
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ /dev/null
@@ -1,1802 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2
4# Mon Jan 26 15:36:07 2009
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12CONFIG_PPC_85xx=y
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
19CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
27CONFIG_PPC32=y
28CONFIG_WORD_SIZE=32
29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
30CONFIG_MMU=y
31CONFIG_GENERIC_CMOS_UPDATE=y
32CONFIG_GENERIC_TIME=y
33CONFIG_GENERIC_TIME_VSYSCALL=y
34CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y
36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37CONFIG_IRQ_PER_CPU=y
38CONFIG_STACKTRACE_SUPPORT=y
39CONFIG_HAVE_LATENCYTOP_SUPPORT=y
40CONFIG_LOCKDEP_SUPPORT=y
41CONFIG_RWSEM_XCHGADD_ALGORITHM=y
42CONFIG_ARCH_HAS_ILOG2_U32=y
43CONFIG_GENERIC_HWEIGHT=y
44CONFIG_GENERIC_CALIBRATE_DELAY=y
45CONFIG_GENERIC_FIND_NEXT_BIT=y
46# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
47CONFIG_PPC=y
48CONFIG_EARLY_PRINTK=y
49CONFIG_GENERIC_NVRAM=y
50CONFIG_SCHED_OMIT_FRAME_POINTER=y
51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
52CONFIG_PPC_OF=y
53CONFIG_OF=y
54CONFIG_PPC_UDBG_16550=y
55# CONFIG_GENERIC_TBSYNC is not set
56CONFIG_AUDIT_ARCH=y
57CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62
63#
64# General setup
65#
66CONFIG_EXPERIMENTAL=y
67CONFIG_BROKEN_ON_SMP=y
68CONFIG_INIT_ENV_ARG_LIMIT=32
69CONFIG_LOCALVERSION=""
70CONFIG_LOCALVERSION_AUTO=y
71CONFIG_SWAP=y
72CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y
75CONFIG_BSD_PROCESS_ACCT=y
76# CONFIG_BSD_PROCESS_ACCT_V3 is not set
77# CONFIG_TASKSTATS is not set
78CONFIG_AUDIT=y
79# CONFIG_AUDITSYSCALL is not set
80CONFIG_IKCONFIG=y
81CONFIG_IKCONFIG_PROC=y
82CONFIG_LOG_BUF_SHIFT=14
83CONFIG_GROUP_SCHED=y
84# CONFIG_FAIR_GROUP_SCHED is not set
85# CONFIG_RT_GROUP_SCHED is not set
86CONFIG_USER_SCHED=y
87# CONFIG_CGROUP_SCHED is not set
88# CONFIG_CGROUPS is not set
89CONFIG_SYSFS_DEPRECATED=y
90CONFIG_SYSFS_DEPRECATED_V2=y
91# CONFIG_RELAY is not set
92# CONFIG_NAMESPACES is not set
93CONFIG_BLK_DEV_INITRD=y
94CONFIG_INITRAMFS_SOURCE=""
95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
96CONFIG_SYSCTL=y
97CONFIG_EMBEDDED=y
98CONFIG_SYSCTL_SYSCALL=y
99CONFIG_KALLSYMS=y
100CONFIG_KALLSYMS_ALL=y
101CONFIG_KALLSYMS_STRIP_GENERATED=y
102CONFIG_KALLSYMS_EXTRA_PASS=y
103CONFIG_HOTPLUG=y
104CONFIG_PRINTK=y
105CONFIG_BUG=y
106CONFIG_ELF_CORE=y
107CONFIG_COMPAT_BRK=y
108CONFIG_BASE_FULL=y
109CONFIG_FUTEX=y
110CONFIG_ANON_INODES=y
111CONFIG_EPOLL=y
112CONFIG_SIGNALFD=y
113CONFIG_TIMERFD=y
114CONFIG_EVENTFD=y
115CONFIG_SHMEM=y
116CONFIG_AIO=y
117CONFIG_VM_EVENT_COUNTERS=y
118CONFIG_PCI_QUIRKS=y
119CONFIG_SLUB_DEBUG=y
120# CONFIG_SLAB is not set
121CONFIG_SLUB=y
122# CONFIG_SLOB is not set
123# CONFIG_PROFILING is not set
124CONFIG_HAVE_OPROFILE=y
125# CONFIG_KPROBES is not set
126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
127CONFIG_HAVE_IOREMAP_PROT=y
128CONFIG_HAVE_KPROBES=y
129CONFIG_HAVE_KRETPROBES=y
130CONFIG_HAVE_ARCH_TRACEHOOK=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y
134CONFIG_BASE_SMALL=0
135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set
137CONFIG_MODULE_UNLOAD=y
138CONFIG_MODULE_FORCE_UNLOAD=y
139CONFIG_MODVERSIONS=y
140# CONFIG_MODULE_SRCVERSION_ALL is not set
141CONFIG_BLOCK=y
142CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
146
147#
148# IO Schedulers
149#
150CONFIG_IOSCHED_NOOP=y
151CONFIG_IOSCHED_AS=y
152CONFIG_IOSCHED_DEADLINE=y
153CONFIG_IOSCHED_CFQ=y
154# CONFIG_DEFAULT_AS is not set
155# CONFIG_DEFAULT_DEADLINE is not set
156CONFIG_DEFAULT_CFQ=y
157# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="cfq"
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
164# CONFIG_FREEZER is not set
165
166#
167# Platform support
168#
169# CONFIG_PPC_CELL is not set
170# CONFIG_PPC_CELL_NATIVE is not set
171# CONFIG_PQ2ADS is not set
172CONFIG_MPC85xx=y
173# CONFIG_MPC8540_ADS is not set
174# CONFIG_MPC8560_ADS is not set
175# CONFIG_MPC85xx_CDS is not set
176# CONFIG_MPC85xx_MDS is not set
177# CONFIG_MPC8536_DS is not set
178CONFIG_MPC85xx_DS=y
179# CONFIG_KSI8560 is not set
180# CONFIG_STX_GP3 is not set
181# CONFIG_TQM8540 is not set
182# CONFIG_TQM8541 is not set
183# CONFIG_TQM8548 is not set
184# CONFIG_TQM8555 is not set
185# CONFIG_TQM8560 is not set
186# CONFIG_SBC8548 is not set
187# CONFIG_SBC8560 is not set
188# CONFIG_IPIC is not set
189CONFIG_MPIC=y
190# CONFIG_MPIC_WEIRD is not set
191CONFIG_PPC_I8259=y
192# CONFIG_PPC_RTAS is not set
193# CONFIG_MMIO_NVRAM is not set
194# CONFIG_PPC_MPC106 is not set
195# CONFIG_PPC_970_NAP is not set
196# CONFIG_PPC_INDIRECT_IO is not set
197# CONFIG_GENERIC_IOMAP is not set
198# CONFIG_CPU_FREQ is not set
199# CONFIG_QUICC_ENGINE is not set
200# CONFIG_CPM2 is not set
201CONFIG_FSL_ULI1575=y
202# CONFIG_MPC8xxx_GPIO is not set
203# CONFIG_SIMPLE_GPIO is not set
204
205#
206# Kernel options
207#
208CONFIG_HIGHMEM=y
209CONFIG_TICK_ONESHOT=y
210CONFIG_NO_HZ=y
211CONFIG_HIGH_RES_TIMERS=y
212CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
213# CONFIG_HZ_100 is not set
214CONFIG_HZ_250=y
215# CONFIG_HZ_300 is not set
216# CONFIG_HZ_1000 is not set
217CONFIG_HZ=250
218CONFIG_SCHED_HRTICK=y
219CONFIG_PREEMPT_NONE=y
220# CONFIG_PREEMPT_VOLUNTARY is not set
221# CONFIG_PREEMPT is not set
222CONFIG_BINFMT_ELF=y
223# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
224# CONFIG_HAVE_AOUT is not set
225CONFIG_BINFMT_MISC=m
226CONFIG_MATH_EMULATION=y
227# CONFIG_IOMMU_HELPER is not set
228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
229CONFIG_ARCH_HAS_WALK_MEMORY=y
230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
231CONFIG_ARCH_FLATMEM_ENABLE=y
232CONFIG_ARCH_POPULATES_NODE_MAP=y
233CONFIG_SELECT_MEMORY_MODEL=y
234CONFIG_FLATMEM_MANUAL=y
235# CONFIG_DISCONTIGMEM_MANUAL is not set
236# CONFIG_SPARSEMEM_MANUAL is not set
237CONFIG_FLATMEM=y
238CONFIG_FLAT_NODE_MEM_MAP=y
239CONFIG_PAGEFLAGS_EXTENDED=y
240CONFIG_SPLIT_PTLOCK_CPUS=4
241CONFIG_MIGRATION=y
242# CONFIG_PHYS_ADDR_T_64BIT is not set
243CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=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
250CONFIG_FORCE_MAX_ZONEORDER=11
251CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
254# CONFIG_PM is not set
255CONFIG_SECCOMP=y
256CONFIG_ISA_DMA_API=y
257
258#
259# Bus options
260#
261CONFIG_ZONE_DMA=y
262CONFIG_GENERIC_ISA_DMA=y
263CONFIG_PPC_INDIRECT_PCI=y
264CONFIG_FSL_SOC=y
265CONFIG_FSL_PCI=y
266CONFIG_PPC_PCI_CHOICE=y
267CONFIG_PCI=y
268CONFIG_PCI_DOMAINS=y
269CONFIG_PCI_SYSCALL=y
270# CONFIG_PCIEPORTBUS is not set
271CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set
273# CONFIG_PCI_LEGACY is not set
274# CONFIG_PCI_DEBUG is not set
275# CONFIG_PCI_STUB is not set
276# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set
279
280#
281# Advanced setup
282#
283# CONFIG_ADVANCED_OPTIONS is not set
284
285#
286# Default settings for advanced configuration options are used
287#
288CONFIG_LOWMEM_SIZE=0x30000000
289CONFIG_PAGE_OFFSET=0xc0000000
290CONFIG_KERNEL_START=0xc0000000
291CONFIG_PHYSICAL_START=0x00000000
292CONFIG_PHYSICAL_ALIGN=0x10000000
293CONFIG_TASK_SIZE=0xc0000000
294CONFIG_NET=y
295
296#
297# Networking options
298#
299CONFIG_COMPAT_NET_DEV_OPS=y
300CONFIG_PACKET=y
301# CONFIG_PACKET_MMAP is not set
302CONFIG_UNIX=y
303CONFIG_XFRM=y
304CONFIG_XFRM_USER=y
305# CONFIG_XFRM_SUB_POLICY is not set
306# CONFIG_XFRM_MIGRATE is not set
307# CONFIG_XFRM_STATISTICS is not set
308CONFIG_NET_KEY=m
309# CONFIG_NET_KEY_MIGRATE is not set
310CONFIG_INET=y
311CONFIG_IP_MULTICAST=y
312CONFIG_IP_ADVANCED_ROUTER=y
313CONFIG_ASK_IP_FIB_HASH=y
314# CONFIG_IP_FIB_TRIE is not set
315CONFIG_IP_FIB_HASH=y
316CONFIG_IP_MULTIPLE_TABLES=y
317CONFIG_IP_ROUTE_MULTIPATH=y
318CONFIG_IP_ROUTE_VERBOSE=y
319CONFIG_IP_PNP=y
320CONFIG_IP_PNP_DHCP=y
321CONFIG_IP_PNP_BOOTP=y
322CONFIG_IP_PNP_RARP=y
323CONFIG_NET_IPIP=y
324CONFIG_NET_IPGRE=y
325CONFIG_NET_IPGRE_BROADCAST=y
326CONFIG_IP_MROUTE=y
327CONFIG_IP_PIMSM_V1=y
328CONFIG_IP_PIMSM_V2=y
329CONFIG_ARPD=y
330# CONFIG_SYN_COOKIES is not set
331# CONFIG_INET_AH is not set
332# CONFIG_INET_ESP is not set
333# CONFIG_INET_IPCOMP is not set
334# CONFIG_INET_XFRM_TUNNEL is not set
335CONFIG_INET_TUNNEL=y
336# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
337# CONFIG_INET_XFRM_MODE_TUNNEL is not set
338# CONFIG_INET_XFRM_MODE_BEET is not set
339# CONFIG_INET_LRO is not set
340CONFIG_INET_DIAG=y
341CONFIG_INET_TCP_DIAG=y
342# CONFIG_TCP_CONG_ADVANCED is not set
343CONFIG_TCP_CONG_CUBIC=y
344CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_TCP_MD5SIG is not set
346CONFIG_IPV6=y
347# CONFIG_IPV6_PRIVACY is not set
348# CONFIG_IPV6_ROUTER_PREF is not set
349# CONFIG_IPV6_OPTIMISTIC_DAD is not set
350# CONFIG_INET6_AH is not set
351# CONFIG_INET6_ESP is not set
352# CONFIG_INET6_IPCOMP is not set
353# CONFIG_IPV6_MIP6 is not set
354# CONFIG_INET6_XFRM_TUNNEL is not set
355# CONFIG_INET6_TUNNEL is not set
356CONFIG_INET6_XFRM_MODE_TRANSPORT=y
357CONFIG_INET6_XFRM_MODE_TUNNEL=y
358CONFIG_INET6_XFRM_MODE_BEET=y
359# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
360CONFIG_IPV6_SIT=y
361CONFIG_IPV6_NDISC_NODETYPE=y
362# CONFIG_IPV6_TUNNEL is not set
363# CONFIG_IPV6_MULTIPLE_TABLES is not set
364# CONFIG_IPV6_MROUTE is not set
365# CONFIG_NETWORK_SECMARK is not set
366# CONFIG_NETFILTER is not set
367# CONFIG_IP_DCCP is not set
368CONFIG_IP_SCTP=m
369# CONFIG_SCTP_DBG_MSG is not set
370# CONFIG_SCTP_DBG_OBJCNT is not set
371# CONFIG_SCTP_HMAC_NONE is not set
372# CONFIG_SCTP_HMAC_SHA1 is not set
373CONFIG_SCTP_HMAC_MD5=y
374# CONFIG_TIPC is not set
375# CONFIG_ATM is not set
376# CONFIG_BRIDGE is not set
377# CONFIG_NET_DSA is not set
378# CONFIG_VLAN_8021Q is not set
379# CONFIG_DECNET is not set
380# CONFIG_LLC2 is not set
381# CONFIG_IPX is not set
382# CONFIG_ATALK is not set
383# CONFIG_X25 is not set
384# CONFIG_LAPB is not set
385# CONFIG_ECONET is not set
386# CONFIG_WAN_ROUTER is not set
387# CONFIG_NET_SCHED is not set
388# CONFIG_DCB is not set
389
390#
391# Network testing
392#
393# CONFIG_NET_PKTGEN is not set
394# CONFIG_HAMRADIO is not set
395# CONFIG_CAN is not set
396# CONFIG_IRDA is not set
397# CONFIG_BT is not set
398# CONFIG_AF_RXRPC is not set
399# CONFIG_PHONET is not set
400CONFIG_FIB_RULES=y
401CONFIG_WIRELESS=y
402# CONFIG_CFG80211 is not set
403CONFIG_WIRELESS_OLD_REGULATORY=y
404# CONFIG_WIRELESS_EXT is not set
405# CONFIG_LIB80211 is not set
406# CONFIG_MAC80211 is not set
407# CONFIG_WIMAX is not set
408# CONFIG_RFKILL is not set
409# CONFIG_NET_9P is not set
410
411#
412# Device Drivers
413#
414
415#
416# Generic Driver Options
417#
418CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
419CONFIG_STANDALONE=y
420CONFIG_PREVENT_FIRMWARE_BUILD=y
421CONFIG_FW_LOADER=y
422CONFIG_FIRMWARE_IN_KERNEL=y
423CONFIG_EXTRA_FIRMWARE=""
424# CONFIG_DEBUG_DRIVER is not set
425# CONFIG_DEBUG_DEVRES is not set
426# CONFIG_SYS_HYPERVISOR is not set
427# CONFIG_CONNECTOR is not set
428# CONFIG_MTD is not set
429CONFIG_OF_DEVICE=y
430CONFIG_OF_I2C=y
431# CONFIG_PARPORT is not set
432CONFIG_BLK_DEV=y
433# CONFIG_BLK_DEV_FD is not set
434# CONFIG_BLK_CPQ_DA is not set
435# CONFIG_BLK_CPQ_CISS_DA is not set
436# CONFIG_BLK_DEV_DAC960 is not set
437# CONFIG_BLK_DEV_UMEM is not set
438# CONFIG_BLK_DEV_COW_COMMON is not set
439CONFIG_BLK_DEV_LOOP=y
440# CONFIG_BLK_DEV_CRYPTOLOOP is not set
441CONFIG_BLK_DEV_NBD=y
442# CONFIG_BLK_DEV_SX8 is not set
443# CONFIG_BLK_DEV_UB is not set
444CONFIG_BLK_DEV_RAM=y
445CONFIG_BLK_DEV_RAM_COUNT=16
446CONFIG_BLK_DEV_RAM_SIZE=131072
447# CONFIG_BLK_DEV_XIP is not set
448# CONFIG_CDROM_PKTCDVD is not set
449# CONFIG_ATA_OVER_ETH is not set
450# CONFIG_BLK_DEV_HD is not set
451CONFIG_MISC_DEVICES=y
452# CONFIG_PHANTOM is not set
453# CONFIG_EEPROM_93CX6 is not set
454# CONFIG_SGI_IOC4 is not set
455# CONFIG_TIFM_CORE is not set
456# CONFIG_ICS932S401 is not set
457# CONFIG_ENCLOSURE_SERVICES is not set
458# CONFIG_HP_ILO is not set
459# CONFIG_C2PORT is not set
460CONFIG_HAVE_IDE=y
461# CONFIG_IDE is not set
462
463#
464# SCSI device support
465#
466# CONFIG_RAID_ATTRS is not set
467CONFIG_SCSI=y
468CONFIG_SCSI_DMA=y
469# CONFIG_SCSI_TGT is not set
470# CONFIG_SCSI_NETLINK is not set
471CONFIG_SCSI_PROC_FS=y
472
473#
474# SCSI support type (disk, tape, CD-ROM)
475#
476CONFIG_BLK_DEV_SD=y
477CONFIG_CHR_DEV_ST=y
478# CONFIG_CHR_DEV_OSST is not set
479CONFIG_BLK_DEV_SR=y
480# CONFIG_BLK_DEV_SR_VENDOR is not set
481CONFIG_CHR_DEV_SG=y
482# CONFIG_CHR_DEV_SCH is not set
483
484#
485# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
486#
487CONFIG_SCSI_MULTI_LUN=y
488# CONFIG_SCSI_CONSTANTS is not set
489CONFIG_SCSI_LOGGING=y
490# CONFIG_SCSI_SCAN_ASYNC is not set
491CONFIG_SCSI_WAIT_SCAN=m
492
493#
494# SCSI Transports
495#
496# CONFIG_SCSI_SPI_ATTRS is not set
497# CONFIG_SCSI_FC_ATTRS is not set
498# CONFIG_SCSI_ISCSI_ATTRS is not set
499# CONFIG_SCSI_SAS_LIBSAS is not set
500# CONFIG_SCSI_SRP_ATTRS is not set
501CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_ISCSI_TCP is not set
503# CONFIG_SCSI_CXGB3_ISCSI is not set
504# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
505# CONFIG_SCSI_3W_9XXX is not set
506# CONFIG_SCSI_ACARD is not set
507# CONFIG_SCSI_AACRAID is not set
508# CONFIG_SCSI_AIC7XXX is not set
509# CONFIG_SCSI_AIC7XXX_OLD is not set
510# CONFIG_SCSI_AIC79XX is not set
511# CONFIG_SCSI_AIC94XX is not set
512# CONFIG_SCSI_DPT_I2O is not set
513# CONFIG_SCSI_ADVANSYS is not set
514# CONFIG_SCSI_ARCMSR is not set
515# CONFIG_MEGARAID_NEWGEN is not set
516# CONFIG_MEGARAID_LEGACY is not set
517# CONFIG_MEGARAID_SAS is not set
518# CONFIG_SCSI_HPTIOP is not set
519# CONFIG_SCSI_BUSLOGIC is not set
520# CONFIG_LIBFC is not set
521# CONFIG_FCOE is not set
522# CONFIG_SCSI_DMX3191D is not set
523# CONFIG_SCSI_EATA is not set
524# CONFIG_SCSI_FUTURE_DOMAIN is not set
525# CONFIG_SCSI_GDTH is not set
526# CONFIG_SCSI_IPS is not set
527# CONFIG_SCSI_INITIO is not set
528# CONFIG_SCSI_INIA100 is not set
529# CONFIG_SCSI_MVSAS is not set
530# CONFIG_SCSI_STEX is not set
531# CONFIG_SCSI_SYM53C8XX_2 is not set
532# CONFIG_SCSI_IPR is not set
533# CONFIG_SCSI_QLOGIC_1280 is not set
534# CONFIG_SCSI_QLA_FC is not set
535# CONFIG_SCSI_QLA_ISCSI is not set
536# CONFIG_SCSI_LPFC is not set
537# CONFIG_SCSI_DC395x is not set
538# CONFIG_SCSI_DC390T is not set
539# CONFIG_SCSI_NSP32 is not set
540# CONFIG_SCSI_DEBUG is not set
541# CONFIG_SCSI_SRP is not set
542# CONFIG_SCSI_DH is not set
543CONFIG_ATA=y
544# CONFIG_ATA_NONSTANDARD is not set
545CONFIG_SATA_PMP=y
546CONFIG_SATA_AHCI=y
547# CONFIG_SATA_SIL24 is not set
548# CONFIG_SATA_FSL is not set
549CONFIG_ATA_SFF=y
550# CONFIG_SATA_SVW is not set
551# CONFIG_ATA_PIIX is not set
552# CONFIG_SATA_MV is not set
553# CONFIG_SATA_NV is not set
554# CONFIG_PDC_ADMA is not set
555# CONFIG_SATA_QSTOR is not set
556# CONFIG_SATA_PROMISE is not set
557# CONFIG_SATA_SX4 is not set
558# CONFIG_SATA_SIL is not set
559# CONFIG_SATA_SIS is not set
560# CONFIG_SATA_ULI is not set
561# CONFIG_SATA_VIA is not set
562# CONFIG_SATA_VITESSE is not set
563# CONFIG_SATA_INIC162X is not set
564CONFIG_PATA_ALI=y
565# CONFIG_PATA_AMD is not set
566# CONFIG_PATA_ARTOP is not set
567# CONFIG_PATA_ATIIXP is not set
568# CONFIG_PATA_CMD640_PCI is not set
569# CONFIG_PATA_CMD64X is not set
570# CONFIG_PATA_CS5520 is not set
571# CONFIG_PATA_CS5530 is not set
572# CONFIG_PATA_CYPRESS is not set
573# CONFIG_PATA_EFAR is not set
574# CONFIG_ATA_GENERIC is not set
575# CONFIG_PATA_HPT366 is not set
576# CONFIG_PATA_HPT37X is not set
577# CONFIG_PATA_HPT3X2N is not set
578# CONFIG_PATA_HPT3X3 is not set
579# CONFIG_PATA_IT821X is not set
580# CONFIG_PATA_IT8213 is not set
581# CONFIG_PATA_JMICRON is not set
582# CONFIG_PATA_TRIFLEX is not set
583# CONFIG_PATA_MARVELL is not set
584# CONFIG_PATA_MPIIX is not set
585# CONFIG_PATA_OLDPIIX is not set
586# CONFIG_PATA_NETCELL is not set
587# CONFIG_PATA_NINJA32 is not set
588# CONFIG_PATA_NS87410 is not set
589# CONFIG_PATA_NS87415 is not set
590# CONFIG_PATA_OPTI is not set
591# CONFIG_PATA_OPTIDMA is not set
592# CONFIG_PATA_PDC_OLD is not set
593# CONFIG_PATA_RADISYS is not set
594# CONFIG_PATA_RZ1000 is not set
595# CONFIG_PATA_SC1200 is not set
596# CONFIG_PATA_SERVERWORKS is not set
597# CONFIG_PATA_PDC2027X is not set
598# CONFIG_PATA_SIL680 is not set
599# CONFIG_PATA_SIS is not set
600# CONFIG_PATA_VIA is not set
601# CONFIG_PATA_WINBOND is not set
602# CONFIG_PATA_PLATFORM is not set
603# CONFIG_PATA_SCH is not set
604# CONFIG_MD is not set
605# CONFIG_FUSION is not set
606
607#
608# IEEE 1394 (FireWire) support
609#
610
611#
612# Enable only one of the two stacks, unless you know what you are doing
613#
614# CONFIG_FIREWIRE is not set
615# CONFIG_IEEE1394 is not set
616# CONFIG_I2O is not set
617# CONFIG_MACINTOSH_DRIVERS is not set
618CONFIG_NETDEVICES=y
619CONFIG_DUMMY=y
620# CONFIG_BONDING is not set
621# CONFIG_MACVLAN is not set
622# CONFIG_EQUALIZER is not set
623# CONFIG_TUN is not set
624# CONFIG_VETH is not set
625# CONFIG_ARCNET is not set
626CONFIG_PHYLIB=y
627
628#
629# MII PHY device drivers
630#
631# CONFIG_MARVELL_PHY is not set
632# CONFIG_DAVICOM_PHY is not set
633# CONFIG_QSEMI_PHY is not set
634# CONFIG_LXT_PHY is not set
635# CONFIG_CICADA_PHY is not set
636CONFIG_VITESSE_PHY=y
637# CONFIG_SMSC_PHY is not set
638# CONFIG_BROADCOM_PHY is not set
639# CONFIG_ICPLUS_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
644# CONFIG_FIXED_PHY is not set
645# CONFIG_MDIO_BITBANG is not set
646CONFIG_NET_ETHERNET=y
647CONFIG_MII=y
648# CONFIG_HAPPYMEAL is not set
649# CONFIG_SUNGEM is not set
650# CONFIG_CASSINI is not set
651# CONFIG_NET_VENDOR_3COM is not set
652# CONFIG_NET_TULIP is not set
653# CONFIG_HP100 is not set
654# CONFIG_IBM_NEW_EMAC_ZMII is not set
655# CONFIG_IBM_NEW_EMAC_RGMII is not set
656# CONFIG_IBM_NEW_EMAC_TAH is not set
657# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
658# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
659# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
660# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
661# CONFIG_NET_PCI is not set
662# CONFIG_B44 is not set
663# CONFIG_ATL2 is not set
664CONFIG_NETDEV_1000=y
665# CONFIG_ACENIC is not set
666# CONFIG_DL2K is not set
667# CONFIG_E1000 is not set
668# CONFIG_E1000E is not set
669# CONFIG_IP1000 is not set
670# CONFIG_IGB is not set
671# CONFIG_NS83820 is not set
672# CONFIG_HAMACHI is not set
673# CONFIG_YELLOWFIN is not set
674# CONFIG_R8169 is not set
675# CONFIG_SIS190 is not set
676# CONFIG_SKGE is not set
677# CONFIG_SKY2 is not set
678# CONFIG_VIA_VELOCITY is not set
679# CONFIG_TIGON3 is not set
680# CONFIG_BNX2 is not set
681CONFIG_GIANFAR=y
682# CONFIG_QLA3XXX is not set
683# CONFIG_ATL1 is not set
684# CONFIG_ATL1E is not set
685# CONFIG_JME is not set
686CONFIG_NETDEV_10000=y
687# CONFIG_CHELSIO_T1 is not set
688CONFIG_CHELSIO_T3_DEPENDS=y
689# CONFIG_CHELSIO_T3 is not set
690# CONFIG_ENIC is not set
691# CONFIG_IXGBE is not set
692# CONFIG_IXGB is not set
693# CONFIG_S2IO is not set
694# CONFIG_MYRI10GE is not set
695# CONFIG_NETXEN_NIC is not set
696# CONFIG_NIU is not set
697# CONFIG_MLX4_EN is not set
698# CONFIG_MLX4_CORE is not set
699# CONFIG_TEHUTI is not set
700# CONFIG_BNX2X is not set
701# CONFIG_QLGE is not set
702# CONFIG_SFC is not set
703# CONFIG_TR is not set
704
705#
706# Wireless LAN
707#
708# CONFIG_WLAN_PRE80211 is not set
709# CONFIG_WLAN_80211 is not set
710# CONFIG_IWLWIFI_LEDS is not set
711
712#
713# Enable WiMAX (Networking options) to see the WiMAX drivers
714#
715
716#
717# USB Network Adapters
718#
719# CONFIG_USB_CATC is not set
720# CONFIG_USB_KAWETH is not set
721# CONFIG_USB_PEGASUS is not set
722# CONFIG_USB_RTL8150 is not set
723# CONFIG_USB_USBNET is not set
724# CONFIG_WAN is not set
725# CONFIG_FDDI is not set
726# CONFIG_HIPPI is not set
727# CONFIG_PPP is not set
728# CONFIG_SLIP is not set
729# CONFIG_NET_FC is not set
730# CONFIG_NETCONSOLE is not set
731# CONFIG_NETPOLL is not set
732# CONFIG_NET_POLL_CONTROLLER is not set
733# CONFIG_ISDN is not set
734# CONFIG_PHONE is not set
735
736#
737# Input device support
738#
739CONFIG_INPUT=y
740CONFIG_INPUT_FF_MEMLESS=m
741# CONFIG_INPUT_POLLDEV is not set
742
743#
744# Userland interfaces
745#
746# CONFIG_INPUT_MOUSEDEV is not set
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#
754# CONFIG_INPUT_KEYBOARD is not set
755# CONFIG_INPUT_MOUSE is not set
756# CONFIG_INPUT_JOYSTICK is not set
757# CONFIG_INPUT_TABLET is not set
758# CONFIG_INPUT_TOUCHSCREEN is not set
759# CONFIG_INPUT_MISC is not set
760
761#
762# Hardware I/O ports
763#
764CONFIG_SERIO=y
765CONFIG_SERIO_I8042=y
766CONFIG_SERIO_SERPORT=y
767# CONFIG_SERIO_PCIPS2 is not set
768CONFIG_SERIO_LIBPS2=y
769# CONFIG_SERIO_RAW is not set
770# CONFIG_SERIO_XILINX_XPS_PS2 is not set
771# CONFIG_GAMEPORT is not set
772
773#
774# Character devices
775#
776CONFIG_VT=y
777CONFIG_CONSOLE_TRANSLATIONS=y
778CONFIG_VT_CONSOLE=y
779CONFIG_HW_CONSOLE=y
780# CONFIG_VT_HW_CONSOLE_BINDING is not set
781CONFIG_DEVKMEM=y
782# CONFIG_SERIAL_NONSTANDARD is not set
783# CONFIG_NOZOMI is not set
784
785#
786# Serial drivers
787#
788CONFIG_SERIAL_8250=y
789CONFIG_SERIAL_8250_CONSOLE=y
790CONFIG_SERIAL_8250_PCI=y
791CONFIG_SERIAL_8250_NR_UARTS=2
792CONFIG_SERIAL_8250_RUNTIME_UARTS=2
793CONFIG_SERIAL_8250_EXTENDED=y
794CONFIG_SERIAL_8250_MANY_PORTS=y
795CONFIG_SERIAL_8250_SHARE_IRQ=y
796CONFIG_SERIAL_8250_DETECT_IRQ=y
797CONFIG_SERIAL_8250_RSA=y
798
799#
800# Non-8250 serial port support
801#
802# CONFIG_SERIAL_UARTLITE is not set
803CONFIG_SERIAL_CORE=y
804CONFIG_SERIAL_CORE_CONSOLE=y
805# CONFIG_SERIAL_JSM is not set
806# CONFIG_SERIAL_OF_PLATFORM is not set
807CONFIG_UNIX98_PTYS=y
808# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
809CONFIG_LEGACY_PTYS=y
810CONFIG_LEGACY_PTY_COUNT=256
811# CONFIG_HVC_UDBG is not set
812# CONFIG_IPMI_HANDLER is not set
813CONFIG_HW_RANDOM=y
814CONFIG_NVRAM=y
815# CONFIG_R3964 is not set
816# CONFIG_APPLICOM is not set
817# CONFIG_RAW_DRIVER is not set
818# CONFIG_TCG_TPM is not set
819CONFIG_DEVPORT=y
820CONFIG_I2C=y
821CONFIG_I2C_BOARDINFO=y
822# CONFIG_I2C_CHARDEV is not set
823CONFIG_I2C_HELPER_AUTO=y
824
825#
826# I2C Hardware Bus support
827#
828
829#
830# PC SMBus host controller drivers
831#
832# CONFIG_I2C_ALI1535 is not set
833# CONFIG_I2C_ALI1563 is not set
834# CONFIG_I2C_ALI15X3 is not set
835# CONFIG_I2C_AMD756 is not set
836# CONFIG_I2C_AMD8111 is not set
837# CONFIG_I2C_I801 is not set
838# CONFIG_I2C_ISCH is not set
839# CONFIG_I2C_PIIX4 is not set
840# CONFIG_I2C_NFORCE2 is not set
841# CONFIG_I2C_SIS5595 is not set
842# CONFIG_I2C_SIS630 is not set
843# CONFIG_I2C_SIS96X is not set
844# CONFIG_I2C_VIA is not set
845# CONFIG_I2C_VIAPRO is not set
846
847#
848# I2C system bus drivers (mostly embedded / system-on-chip)
849#
850CONFIG_I2C_MPC=y
851# CONFIG_I2C_OCORES is not set
852# CONFIG_I2C_SIMTEC is not set
853
854#
855# External I2C/SMBus adapter drivers
856#
857# CONFIG_I2C_PARPORT_LIGHT is not set
858# CONFIG_I2C_TAOS_EVM is not set
859# CONFIG_I2C_TINY_USB is not set
860
861#
862# Graphics adapter I2C/DDC channel drivers
863#
864# CONFIG_I2C_VOODOO3 is not set
865
866#
867# Other I2C/SMBus bus drivers
868#
869# CONFIG_I2C_PCA_PLATFORM is not set
870# CONFIG_I2C_STUB is not set
871
872#
873# Miscellaneous I2C Chip support
874#
875# CONFIG_DS1682 is not set
876# CONFIG_EEPROM_AT24 is not set
877CONFIG_EEPROM_LEGACY=y
878# CONFIG_SENSORS_PCF8574 is not set
879# CONFIG_PCF8575 is not set
880# CONFIG_SENSORS_PCA9539 is not set
881# CONFIG_SENSORS_PCF8591 is not set
882# CONFIG_SENSORS_MAX6875 is not set
883# CONFIG_SENSORS_TSL2550 is not set
884# CONFIG_I2C_DEBUG_CORE is not set
885# CONFIG_I2C_DEBUG_ALGO is not set
886# CONFIG_I2C_DEBUG_BUS is not set
887# CONFIG_I2C_DEBUG_CHIP is not set
888# CONFIG_SPI is not set
889CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
890# CONFIG_GPIOLIB is not set
891# CONFIG_W1 is not set
892# CONFIG_POWER_SUPPLY is not set
893# CONFIG_HWMON is not set
894# CONFIG_THERMAL is not set
895# CONFIG_THERMAL_HWMON is not set
896# CONFIG_WATCHDOG is not set
897CONFIG_SSB_POSSIBLE=y
898
899#
900# Sonics Silicon Backplane
901#
902# CONFIG_SSB is not set
903
904#
905# Multifunction device drivers
906#
907# CONFIG_MFD_CORE is not set
908# CONFIG_MFD_SM501 is not set
909# CONFIG_HTC_PASIC3 is not set
910# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set
913# CONFIG_MFD_WM8400 is not set
914# CONFIG_MFD_WM8350_I2C is not set
915# CONFIG_MFD_PCF50633 is not set
916# CONFIG_REGULATOR is not set
917
918#
919# Multimedia devices
920#
921
922#
923# Multimedia core support
924#
925# CONFIG_VIDEO_DEV is not set
926CONFIG_DVB_CORE=m
927CONFIG_VIDEO_MEDIA=m
928
929#
930# Multimedia drivers
931#
932# CONFIG_MEDIA_ATTACH is not set
933CONFIG_MEDIA_TUNER=m
934# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
935CONFIG_MEDIA_TUNER_SIMPLE=m
936CONFIG_MEDIA_TUNER_TDA8290=m
937CONFIG_MEDIA_TUNER_TDA9887=m
938CONFIG_MEDIA_TUNER_TEA5761=m
939CONFIG_MEDIA_TUNER_TEA5767=m
940CONFIG_MEDIA_TUNER_MT20XX=m
941CONFIG_MEDIA_TUNER_XC2028=m
942CONFIG_MEDIA_TUNER_XC5000=m
943# CONFIG_DVB_DYNAMIC_MINORS is not set
944CONFIG_DVB_CAPTURE_DRIVERS=y
945
946#
947# Supported SAA7146 based PCI Adapters
948#
949# CONFIG_TTPCI_EEPROM is not set
950# CONFIG_DVB_BUDGET_CORE is not set
951
952#
953# Supported USB Adapters
954#
955# CONFIG_DVB_USB is not set
956# CONFIG_DVB_TTUSB_BUDGET is not set
957# CONFIG_DVB_TTUSB_DEC is not set
958# CONFIG_DVB_SIANO_SMS1XXX is not set
959
960#
961# Supported FlexCopII (B2C2) Adapters
962#
963# CONFIG_DVB_B2C2_FLEXCOP is not set
964
965#
966# Supported BT878 Adapters
967#
968
969#
970# Supported Pluto2 Adapters
971#
972# CONFIG_DVB_PLUTO2 is not set
973
974#
975# Supported SDMC DM1105 Adapters
976#
977# CONFIG_DVB_DM1105 is not set
978
979#
980# Supported DVB Frontends
981#
982
983#
984# Customise DVB Frontends
985#
986# CONFIG_DVB_FE_CUSTOMISE is not set
987
988#
989# Multistandard (satellite) frontends
990#
991# CONFIG_DVB_STB0899 is not set
992# CONFIG_DVB_STB6100 is not set
993
994#
995# DVB-S (satellite) frontends
996#
997# CONFIG_DVB_CX24110 is not set
998# CONFIG_DVB_CX24123 is not set
999# CONFIG_DVB_MT312 is not set
1000# CONFIG_DVB_S5H1420 is not set
1001# CONFIG_DVB_STV0288 is not set
1002# CONFIG_DVB_STB6000 is not set
1003# CONFIG_DVB_STV0299 is not set
1004# CONFIG_DVB_TDA8083 is not set
1005# CONFIG_DVB_TDA10086 is not set
1006# CONFIG_DVB_TDA8261 is not set
1007# CONFIG_DVB_VES1X93 is not set
1008# CONFIG_DVB_TUNER_ITD1000 is not set
1009# CONFIG_DVB_TUNER_CX24113 is not set
1010# CONFIG_DVB_TDA826X is not set
1011# CONFIG_DVB_TUA6100 is not set
1012# CONFIG_DVB_CX24116 is not set
1013# CONFIG_DVB_SI21XX is not set
1014
1015#
1016# DVB-T (terrestrial) frontends
1017#
1018# CONFIG_DVB_SP8870 is not set
1019# CONFIG_DVB_SP887X is not set
1020# CONFIG_DVB_CX22700 is not set
1021# CONFIG_DVB_CX22702 is not set
1022# CONFIG_DVB_DRX397XD is not set
1023# CONFIG_DVB_L64781 is not set
1024# CONFIG_DVB_TDA1004X is not set
1025# CONFIG_DVB_NXT6000 is not set
1026# CONFIG_DVB_MT352 is not set
1027# CONFIG_DVB_ZL10353 is not set
1028# CONFIG_DVB_DIB3000MB is not set
1029# CONFIG_DVB_DIB3000MC is not set
1030# CONFIG_DVB_DIB7000M is not set
1031# CONFIG_DVB_DIB7000P is not set
1032# CONFIG_DVB_TDA10048 is not set
1033
1034#
1035# DVB-C (cable) frontends
1036#
1037# CONFIG_DVB_VES1820 is not set
1038# CONFIG_DVB_TDA10021 is not set
1039# CONFIG_DVB_TDA10023 is not set
1040# CONFIG_DVB_STV0297 is not set
1041
1042#
1043# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1044#
1045# CONFIG_DVB_NXT200X is not set
1046# CONFIG_DVB_OR51211 is not set
1047# CONFIG_DVB_OR51132 is not set
1048# CONFIG_DVB_BCM3510 is not set
1049# CONFIG_DVB_LGDT330X is not set
1050# CONFIG_DVB_LGDT3304 is not set
1051# CONFIG_DVB_S5H1409 is not set
1052# CONFIG_DVB_AU8522 is not set
1053# CONFIG_DVB_S5H1411 is not set
1054
1055#
1056# ISDB-T (terrestrial) frontends
1057#
1058# CONFIG_DVB_S921 is not set
1059
1060#
1061# Digital terrestrial only tuners/PLL
1062#
1063# CONFIG_DVB_PLL is not set
1064# CONFIG_DVB_TUNER_DIB0070 is not set
1065
1066#
1067# SEC control devices for DVB-S
1068#
1069# CONFIG_DVB_LNBP21 is not set
1070# CONFIG_DVB_ISL6405 is not set
1071# CONFIG_DVB_ISL6421 is not set
1072# CONFIG_DVB_LGS8GL5 is not set
1073
1074#
1075# Tools to develop new frontends
1076#
1077# CONFIG_DVB_DUMMY_FE is not set
1078# CONFIG_DVB_AF9013 is not set
1079CONFIG_DAB=y
1080# CONFIG_USB_DABUSB is not set
1081
1082#
1083# Graphics support
1084#
1085# CONFIG_AGP is not set
1086# CONFIG_DRM is not set
1087# CONFIG_VGASTATE is not set
1088CONFIG_VIDEO_OUTPUT_CONTROL=y
1089# CONFIG_FB is not set
1090# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1091
1092#
1093# Display device support
1094#
1095# CONFIG_DISPLAY_SUPPORT is not set
1096
1097#
1098# Console display driver support
1099#
1100CONFIG_VGA_CONSOLE=y
1101# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1102CONFIG_DUMMY_CONSOLE=y
1103CONFIG_SOUND=y
1104CONFIG_SOUND_OSS_CORE=y
1105CONFIG_SND=y
1106CONFIG_SND_TIMER=y
1107CONFIG_SND_PCM=y
1108# CONFIG_SND_SEQUENCER is not set
1109CONFIG_SND_OSSEMUL=y
1110CONFIG_SND_MIXER_OSS=y
1111CONFIG_SND_PCM_OSS=y
1112CONFIG_SND_PCM_OSS_PLUGINS=y
1113# CONFIG_SND_HRTIMER is not set
1114# CONFIG_SND_DYNAMIC_MINORS is not set
1115# CONFIG_SND_SUPPORT_OLD_API is not set
1116CONFIG_SND_VERBOSE_PROCFS=y
1117# CONFIG_SND_VERBOSE_PRINTK is not set
1118# CONFIG_SND_DEBUG is not set
1119CONFIG_SND_VMASTER=y
1120CONFIG_SND_AC97_CODEC=y
1121CONFIG_SND_DRIVERS=y
1122# CONFIG_SND_DUMMY is not set
1123# CONFIG_SND_MTPAV is not set
1124# CONFIG_SND_SERIAL_U16550 is not set
1125# CONFIG_SND_MPU401 is not set
1126# CONFIG_SND_AC97_POWER_SAVE is not set
1127CONFIG_SND_PCI=y
1128# CONFIG_SND_AD1889 is not set
1129# CONFIG_SND_ALS300 is not set
1130# CONFIG_SND_ALS4000 is not set
1131# CONFIG_SND_ALI5451 is not set
1132# CONFIG_SND_ATIIXP is not set
1133# CONFIG_SND_ATIIXP_MODEM is not set
1134# CONFIG_SND_AU8810 is not set
1135# CONFIG_SND_AU8820 is not set
1136# CONFIG_SND_AU8830 is not set
1137# CONFIG_SND_AW2 is not set
1138# CONFIG_SND_AZT3328 is not set
1139# CONFIG_SND_BT87X is not set
1140# CONFIG_SND_CA0106 is not set
1141# CONFIG_SND_CMIPCI is not set
1142# CONFIG_SND_OXYGEN is not set
1143# CONFIG_SND_CS4281 is not set
1144# CONFIG_SND_CS46XX is not set
1145# CONFIG_SND_CS5530 is not set
1146# CONFIG_SND_DARLA20 is not set
1147# CONFIG_SND_GINA20 is not set
1148# CONFIG_SND_LAYLA20 is not set
1149# CONFIG_SND_DARLA24 is not set
1150# CONFIG_SND_GINA24 is not set
1151# CONFIG_SND_LAYLA24 is not set
1152# CONFIG_SND_MONA is not set
1153# CONFIG_SND_MIA is not set
1154# CONFIG_SND_ECHO3G is not set
1155# CONFIG_SND_INDIGO is not set
1156# CONFIG_SND_INDIGOIO is not set
1157# CONFIG_SND_INDIGODJ is not set
1158# CONFIG_SND_EMU10K1 is not set
1159# CONFIG_SND_EMU10K1X is not set
1160# CONFIG_SND_ENS1370 is not set
1161# CONFIG_SND_ENS1371 is not set
1162# CONFIG_SND_ES1938 is not set
1163# CONFIG_SND_ES1968 is not set
1164# CONFIG_SND_FM801 is not set
1165# CONFIG_SND_HDA_INTEL is not set
1166# CONFIG_SND_HDSP is not set
1167# CONFIG_SND_HDSPM is not set
1168# CONFIG_SND_HIFIER is not set
1169# CONFIG_SND_ICE1712 is not set
1170# CONFIG_SND_ICE1724 is not set
1171CONFIG_SND_INTEL8X0=y
1172# CONFIG_SND_INTEL8X0M is not set
1173# CONFIG_SND_KORG1212 is not set
1174# CONFIG_SND_MAESTRO3 is not set
1175# CONFIG_SND_MIXART is not set
1176# CONFIG_SND_NM256 is not set
1177# CONFIG_SND_PCXHR is not set
1178# CONFIG_SND_RIPTIDE is not set
1179# CONFIG_SND_RME32 is not set
1180# CONFIG_SND_RME96 is not set
1181# CONFIG_SND_RME9652 is not set
1182# CONFIG_SND_SONICVIBES is not set
1183# CONFIG_SND_TRIDENT is not set
1184# CONFIG_SND_VIA82XX is not set
1185# CONFIG_SND_VIA82XX_MODEM is not set
1186# CONFIG_SND_VIRTUOSO is not set
1187# CONFIG_SND_VX222 is not set
1188# CONFIG_SND_YMFPCI is not set
1189CONFIG_SND_PPC=y
1190CONFIG_SND_USB=y
1191# CONFIG_SND_USB_AUDIO is not set
1192# CONFIG_SND_USB_USX2Y is not set
1193# CONFIG_SND_USB_CAIAQ is not set
1194# CONFIG_SND_SOC is not set
1195# CONFIG_SOUND_PRIME is not set
1196CONFIG_AC97_BUS=y
1197CONFIG_HID_SUPPORT=y
1198CONFIG_HID=y
1199# CONFIG_HID_DEBUG is not set
1200# CONFIG_HIDRAW is not set
1201
1202#
1203# USB Input Devices
1204#
1205CONFIG_USB_HID=y
1206# CONFIG_HID_PID is not set
1207# CONFIG_USB_HIDDEV is not set
1208
1209#
1210# Special HID drivers
1211#
1212CONFIG_HID_COMPAT=y
1213CONFIG_HID_A4TECH=y
1214CONFIG_HID_APPLE=y
1215CONFIG_HID_BELKIN=y
1216CONFIG_HID_CHERRY=y
1217CONFIG_HID_CHICONY=y
1218CONFIG_HID_CYPRESS=y
1219CONFIG_HID_EZKEY=y
1220CONFIG_HID_GYRATION=y
1221CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGITECH_FF is not set
1223# CONFIG_LOGIRUMBLEPAD2_FF is not set
1224CONFIG_HID_MICROSOFT=y
1225CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set
1227CONFIG_HID_PANTHERLORD=y
1228# CONFIG_PANTHERLORD_FF is not set
1229CONFIG_HID_PETALYNX=y
1230CONFIG_HID_SAMSUNG=y
1231CONFIG_HID_SONY=y
1232CONFIG_HID_SUNPLUS=y
1233# CONFIG_GREENASIA_FF is not set
1234# CONFIG_HID_TOPSEED is not set
1235CONFIG_THRUSTMASTER_FF=m
1236CONFIG_ZEROPLUS_FF=m
1237CONFIG_USB_SUPPORT=y
1238CONFIG_USB_ARCH_HAS_HCD=y
1239CONFIG_USB_ARCH_HAS_OHCI=y
1240CONFIG_USB_ARCH_HAS_EHCI=y
1241CONFIG_USB=y
1242# CONFIG_USB_DEBUG is not set
1243# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1244
1245#
1246# Miscellaneous USB options
1247#
1248CONFIG_USB_DEVICEFS=y
1249CONFIG_USB_DEVICE_CLASS=y
1250# CONFIG_USB_DYNAMIC_MINORS is not set
1251# CONFIG_USB_OTG is not set
1252# CONFIG_USB_OTG_WHITELIST is not set
1253# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1254CONFIG_USB_MON=y
1255# CONFIG_USB_WUSB is not set
1256# CONFIG_USB_WUSB_CBAF is not set
1257
1258#
1259# USB Host Controller Drivers
1260#
1261# CONFIG_USB_C67X00_HCD is not set
1262CONFIG_USB_EHCI_HCD=y
1263# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1264# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1265# CONFIG_USB_EHCI_FSL is not set
1266CONFIG_USB_EHCI_HCD_PPC_OF=y
1267# CONFIG_USB_OXU210HP_HCD is not set
1268# CONFIG_USB_ISP116X_HCD is not set
1269# CONFIG_USB_ISP1760_HCD is not set
1270CONFIG_USB_OHCI_HCD=y
1271CONFIG_USB_OHCI_HCD_PPC_OF=y
1272CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
1273CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
1274CONFIG_USB_OHCI_HCD_PCI=y
1275CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1276CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1277CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1278# CONFIG_USB_UHCI_HCD is not set
1279# CONFIG_USB_SL811_HCD is not set
1280# CONFIG_USB_R8A66597_HCD is not set
1281# CONFIG_USB_WHCI_HCD is not set
1282# CONFIG_USB_HWA_HCD is not set
1283
1284#
1285# USB Device Class drivers
1286#
1287# CONFIG_USB_ACM is not set
1288# CONFIG_USB_PRINTER is not set
1289# CONFIG_USB_WDM is not set
1290# CONFIG_USB_TMC is not set
1291
1292#
1293# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1294#
1295
1296#
1297# see USB_STORAGE Help for more information
1298#
1299CONFIG_USB_STORAGE=y
1300# CONFIG_USB_STORAGE_DEBUG is not set
1301# CONFIG_USB_STORAGE_DATAFAB is not set
1302# CONFIG_USB_STORAGE_FREECOM is not set
1303# CONFIG_USB_STORAGE_ISD200 is not set
1304# CONFIG_USB_STORAGE_USBAT is not set
1305# CONFIG_USB_STORAGE_SDDR09 is not set
1306# CONFIG_USB_STORAGE_SDDR55 is not set
1307# CONFIG_USB_STORAGE_JUMPSHOT is not set
1308# CONFIG_USB_STORAGE_ALAUDA is not set
1309# CONFIG_USB_STORAGE_ONETOUCH is not set
1310# CONFIG_USB_STORAGE_KARMA is not set
1311# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1312# CONFIG_USB_LIBUSUAL is not set
1313
1314#
1315# USB Imaging devices
1316#
1317# CONFIG_USB_MDC800 is not set
1318# CONFIG_USB_MICROTEK is not set
1319
1320#
1321# USB port drivers
1322#
1323# CONFIG_USB_SERIAL is not set
1324
1325#
1326# USB Miscellaneous drivers
1327#
1328# CONFIG_USB_EMI62 is not set
1329# CONFIG_USB_EMI26 is not set
1330# CONFIG_USB_ADUTUX is not set
1331# CONFIG_USB_SEVSEG is not set
1332# CONFIG_USB_RIO500 is not set
1333# CONFIG_USB_LEGOTOWER is not set
1334# CONFIG_USB_LCD is not set
1335# CONFIG_USB_BERRY_CHARGE is not set
1336# CONFIG_USB_LED is not set
1337# CONFIG_USB_CYPRESS_CY7C63 is not set
1338# CONFIG_USB_CYTHERM is not set
1339# CONFIG_USB_PHIDGET is not set
1340# CONFIG_USB_IDMOUSE is not set
1341# CONFIG_USB_FTDI_ELAN is not set
1342# CONFIG_USB_APPLEDISPLAY is not set
1343# CONFIG_USB_SISUSBVGA is not set
1344# CONFIG_USB_LD is not set
1345# CONFIG_USB_TRANCEVIBRATOR is not set
1346# CONFIG_USB_IOWARRIOR is not set
1347# CONFIG_USB_TEST is not set
1348# CONFIG_USB_ISIGHTFW is not set
1349# CONFIG_USB_VST is not set
1350# CONFIG_USB_GADGET is not set
1351
1352#
1353# OTG and related infrastructure
1354#
1355# CONFIG_UWB is not set
1356# CONFIG_MMC is not set
1357# CONFIG_MEMSTICK is not set
1358# CONFIG_NEW_LEDS is not set
1359# CONFIG_ACCESSIBILITY is not set
1360# CONFIG_INFINIBAND is not set
1361# CONFIG_EDAC is not set
1362CONFIG_RTC_LIB=y
1363CONFIG_RTC_CLASS=y
1364CONFIG_RTC_HCTOSYS=y
1365CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1366# CONFIG_RTC_DEBUG is not set
1367
1368#
1369# RTC interfaces
1370#
1371CONFIG_RTC_INTF_SYSFS=y
1372CONFIG_RTC_INTF_PROC=y
1373CONFIG_RTC_INTF_DEV=y
1374# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1375# CONFIG_RTC_DRV_TEST is not set
1376
1377#
1378# I2C RTC drivers
1379#
1380# CONFIG_RTC_DRV_DS1307 is not set
1381# CONFIG_RTC_DRV_DS1374 is not set
1382# CONFIG_RTC_DRV_DS1672 is not set
1383# CONFIG_RTC_DRV_MAX6900 is not set
1384# CONFIG_RTC_DRV_RS5C372 is not set
1385# CONFIG_RTC_DRV_ISL1208 is not set
1386# CONFIG_RTC_DRV_X1205 is not set
1387# CONFIG_RTC_DRV_PCF8563 is not set
1388# CONFIG_RTC_DRV_PCF8583 is not set
1389# CONFIG_RTC_DRV_M41T80 is not set
1390# CONFIG_RTC_DRV_S35390A is not set
1391# CONFIG_RTC_DRV_FM3130 is not set
1392# CONFIG_RTC_DRV_RX8581 is not set
1393
1394#
1395# SPI RTC drivers
1396#
1397
1398#
1399# Platform RTC drivers
1400#
1401CONFIG_RTC_DRV_CMOS=y
1402# CONFIG_RTC_DRV_DS1286 is not set
1403# CONFIG_RTC_DRV_DS1511 is not set
1404# CONFIG_RTC_DRV_DS1553 is not set
1405# CONFIG_RTC_DRV_DS1742 is not set
1406# CONFIG_RTC_DRV_STK17TA8 is not set
1407# CONFIG_RTC_DRV_M48T86 is not set
1408# CONFIG_RTC_DRV_M48T35 is not set
1409# CONFIG_RTC_DRV_M48T59 is not set
1410# CONFIG_RTC_DRV_BQ4802 is not set
1411# CONFIG_RTC_DRV_V3020 is not set
1412
1413#
1414# on-CPU RTC drivers
1415#
1416# CONFIG_RTC_DRV_PPC is not set
1417CONFIG_DMADEVICES=y
1418
1419#
1420# DMA Devices
1421#
1422CONFIG_FSL_DMA=y
1423CONFIG_DMA_ENGINE=y
1424
1425#
1426# DMA Clients
1427#
1428# CONFIG_NET_DMA is not set
1429# CONFIG_DMATEST is not set
1430# CONFIG_UIO is not set
1431# CONFIG_STAGING is not set
1432
1433#
1434# File systems
1435#
1436CONFIG_EXT2_FS=y
1437# CONFIG_EXT2_FS_XATTR is not set
1438# CONFIG_EXT2_FS_XIP is not set
1439CONFIG_EXT3_FS=y
1440CONFIG_EXT3_FS_XATTR=y
1441# CONFIG_EXT3_FS_POSIX_ACL is not set
1442# CONFIG_EXT3_FS_SECURITY is not set
1443# CONFIG_EXT4_FS is not set
1444CONFIG_JBD=y
1445CONFIG_FS_MBCACHE=y
1446# CONFIG_REISERFS_FS is not set
1447# CONFIG_JFS_FS is not set
1448# CONFIG_FS_POSIX_ACL is not set
1449CONFIG_FILE_LOCKING=y
1450# CONFIG_XFS_FS is not set
1451# CONFIG_GFS2_FS is not set
1452# CONFIG_OCFS2_FS is not set
1453# CONFIG_BTRFS_FS is not set
1454CONFIG_DNOTIFY=y
1455CONFIG_INOTIFY=y
1456CONFIG_INOTIFY_USER=y
1457# CONFIG_QUOTA is not set
1458# CONFIG_AUTOFS_FS is not set
1459# CONFIG_AUTOFS4_FS is not set
1460# CONFIG_FUSE_FS is not set
1461
1462#
1463# CD-ROM/DVD Filesystems
1464#
1465CONFIG_ISO9660_FS=m
1466CONFIG_JOLIET=y
1467CONFIG_ZISOFS=y
1468CONFIG_UDF_FS=m
1469CONFIG_UDF_NLS=y
1470
1471#
1472# DOS/FAT/NT Filesystems
1473#
1474CONFIG_FAT_FS=y
1475CONFIG_MSDOS_FS=m
1476CONFIG_VFAT_FS=y
1477CONFIG_FAT_DEFAULT_CODEPAGE=437
1478CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1479CONFIG_NTFS_FS=y
1480# CONFIG_NTFS_DEBUG is not set
1481# CONFIG_NTFS_RW is not set
1482
1483#
1484# Pseudo filesystems
1485#
1486CONFIG_PROC_FS=y
1487CONFIG_PROC_KCORE=y
1488CONFIG_PROC_SYSCTL=y
1489CONFIG_PROC_PAGE_MONITOR=y
1490CONFIG_SYSFS=y
1491CONFIG_TMPFS=y
1492# CONFIG_TMPFS_POSIX_ACL is not set
1493# CONFIG_HUGETLB_PAGE is not set
1494# CONFIG_CONFIGFS_FS is not set
1495CONFIG_MISC_FILESYSTEMS=y
1496CONFIG_ADFS_FS=m
1497# CONFIG_ADFS_FS_RW is not set
1498CONFIG_AFFS_FS=m
1499CONFIG_HFS_FS=m
1500CONFIG_HFSPLUS_FS=m
1501CONFIG_BEFS_FS=m
1502# CONFIG_BEFS_DEBUG is not set
1503CONFIG_BFS_FS=m
1504CONFIG_EFS_FS=m
1505CONFIG_CRAMFS=y
1506# CONFIG_SQUASHFS is not set
1507CONFIG_VXFS_FS=m
1508# CONFIG_MINIX_FS is not set
1509# CONFIG_OMFS_FS is not set
1510CONFIG_HPFS_FS=m
1511CONFIG_QNX4FS_FS=m
1512# CONFIG_ROMFS_FS is not set
1513CONFIG_SYSV_FS=m
1514CONFIG_UFS_FS=m
1515# CONFIG_UFS_FS_WRITE is not set
1516# CONFIG_UFS_DEBUG is not set
1517CONFIG_NETWORK_FILESYSTEMS=y
1518CONFIG_NFS_FS=y
1519CONFIG_NFS_V3=y
1520# CONFIG_NFS_V3_ACL is not set
1521CONFIG_NFS_V4=y
1522CONFIG_ROOT_NFS=y
1523CONFIG_NFSD=y
1524# CONFIG_NFSD_V3 is not set
1525# CONFIG_NFSD_V4 is not set
1526CONFIG_LOCKD=y
1527CONFIG_LOCKD_V4=y
1528CONFIG_EXPORTFS=y
1529CONFIG_NFS_COMMON=y
1530CONFIG_SUNRPC=y
1531CONFIG_SUNRPC_GSS=y
1532# CONFIG_SUNRPC_REGISTER_V4 is not set
1533CONFIG_RPCSEC_GSS_KRB5=y
1534# CONFIG_RPCSEC_GSS_SPKM3 is not set
1535# CONFIG_SMB_FS is not set
1536# CONFIG_CIFS is not set
1537# CONFIG_NCP_FS is not set
1538# CONFIG_CODA_FS is not set
1539# CONFIG_AFS_FS is not set
1540
1541#
1542# Partition Types
1543#
1544CONFIG_PARTITION_ADVANCED=y
1545# CONFIG_ACORN_PARTITION is not set
1546# CONFIG_OSF_PARTITION is not set
1547# CONFIG_AMIGA_PARTITION is not set
1548# CONFIG_ATARI_PARTITION is not set
1549CONFIG_MAC_PARTITION=y
1550CONFIG_MSDOS_PARTITION=y
1551# CONFIG_BSD_DISKLABEL is not set
1552# CONFIG_MINIX_SUBPARTITION is not set
1553# CONFIG_SOLARIS_X86_PARTITION is not set
1554# CONFIG_UNIXWARE_DISKLABEL is not set
1555# CONFIG_LDM_PARTITION is not set
1556# CONFIG_SGI_PARTITION is not set
1557# CONFIG_ULTRIX_PARTITION is not set
1558# CONFIG_SUN_PARTITION is not set
1559# CONFIG_KARMA_PARTITION is not set
1560# CONFIG_EFI_PARTITION is not set
1561# CONFIG_SYSV68_PARTITION is not set
1562CONFIG_NLS=y
1563CONFIG_NLS_DEFAULT="iso8859-1"
1564# CONFIG_NLS_CODEPAGE_437 is not set
1565# CONFIG_NLS_CODEPAGE_737 is not set
1566# CONFIG_NLS_CODEPAGE_775 is not set
1567# CONFIG_NLS_CODEPAGE_850 is not set
1568# CONFIG_NLS_CODEPAGE_852 is not set
1569# CONFIG_NLS_CODEPAGE_855 is not set
1570# CONFIG_NLS_CODEPAGE_857 is not set
1571# CONFIG_NLS_CODEPAGE_860 is not set
1572# CONFIG_NLS_CODEPAGE_861 is not set
1573# CONFIG_NLS_CODEPAGE_862 is not set
1574# CONFIG_NLS_CODEPAGE_863 is not set
1575# CONFIG_NLS_CODEPAGE_864 is not set
1576# CONFIG_NLS_CODEPAGE_865 is not set
1577# CONFIG_NLS_CODEPAGE_866 is not set
1578# CONFIG_NLS_CODEPAGE_869 is not set
1579# CONFIG_NLS_CODEPAGE_936 is not set
1580# CONFIG_NLS_CODEPAGE_950 is not set
1581# CONFIG_NLS_CODEPAGE_932 is not set
1582# CONFIG_NLS_CODEPAGE_949 is not set
1583# CONFIG_NLS_CODEPAGE_874 is not set
1584# CONFIG_NLS_ISO8859_8 is not set
1585# CONFIG_NLS_CODEPAGE_1250 is not set
1586# CONFIG_NLS_CODEPAGE_1251 is not set
1587# CONFIG_NLS_ASCII is not set
1588# CONFIG_NLS_ISO8859_1 is not set
1589# CONFIG_NLS_ISO8859_2 is not set
1590# CONFIG_NLS_ISO8859_3 is not set
1591# CONFIG_NLS_ISO8859_4 is not set
1592# CONFIG_NLS_ISO8859_5 is not set
1593# CONFIG_NLS_ISO8859_6 is not set
1594# CONFIG_NLS_ISO8859_7 is not set
1595# CONFIG_NLS_ISO8859_9 is not set
1596# CONFIG_NLS_ISO8859_13 is not set
1597# CONFIG_NLS_ISO8859_14 is not set
1598# CONFIG_NLS_ISO8859_15 is not set
1599# CONFIG_NLS_KOI8_R is not set
1600# CONFIG_NLS_KOI8_U is not set
1601CONFIG_NLS_UTF8=m
1602# CONFIG_DLM is not set
1603
1604#
1605# Library routines
1606#
1607CONFIG_BITREVERSE=y
1608CONFIG_GENERIC_FIND_LAST_BIT=y
1609# CONFIG_CRC_CCITT is not set
1610# CONFIG_CRC16 is not set
1611CONFIG_CRC_T10DIF=y
1612CONFIG_CRC_ITU_T=m
1613CONFIG_CRC32=y
1614# CONFIG_CRC7 is not set
1615CONFIG_LIBCRC32C=m
1616CONFIG_ZLIB_INFLATE=y
1617CONFIG_PLIST=y
1618CONFIG_HAS_IOMEM=y
1619CONFIG_HAS_IOPORT=y
1620CONFIG_HAS_DMA=y
1621CONFIG_HAVE_LMB=y
1622
1623#
1624# Kernel hacking
1625#
1626# CONFIG_PRINTK_TIME is not set
1627CONFIG_ENABLE_WARN_DEPRECATED=y
1628CONFIG_ENABLE_MUST_CHECK=y
1629CONFIG_FRAME_WARN=1024
1630# CONFIG_MAGIC_SYSRQ is not set
1631# CONFIG_UNUSED_SYMBOLS is not set
1632# CONFIG_DEBUG_FS is not set
1633# CONFIG_HEADERS_CHECK is not set
1634CONFIG_DEBUG_KERNEL=y
1635# CONFIG_DEBUG_SHIRQ is not set
1636CONFIG_DETECT_SOFTLOCKUP=y
1637# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1638CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1639CONFIG_SCHED_DEBUG=y
1640# CONFIG_SCHEDSTATS is not set
1641# CONFIG_TIMER_STATS is not set
1642# CONFIG_DEBUG_OBJECTS is not set
1643# CONFIG_SLUB_DEBUG_ON is not set
1644# CONFIG_SLUB_STATS is not set
1645# CONFIG_DEBUG_RT_MUTEXES is not set
1646# CONFIG_RT_MUTEX_TESTER is not set
1647# CONFIG_DEBUG_SPINLOCK is not set
1648# CONFIG_DEBUG_MUTEXES is not set
1649# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1650# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1651# CONFIG_DEBUG_KOBJECT is not set
1652# CONFIG_DEBUG_HIGHMEM is not set
1653# CONFIG_DEBUG_BUGVERBOSE is not set
1654CONFIG_DEBUG_INFO=y
1655# CONFIG_DEBUG_VM is not set
1656# CONFIG_DEBUG_WRITECOUNT is not set
1657# CONFIG_DEBUG_MEMORY_INIT is not set
1658# CONFIG_DEBUG_LIST is not set
1659# CONFIG_DEBUG_SG is not set
1660# CONFIG_DEBUG_NOTIFIERS is not set
1661# CONFIG_BOOT_PRINTK_DELAY is not set
1662# CONFIG_RCU_TORTURE_TEST is not set
1663# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1664# CONFIG_BACKTRACE_SELF_TEST is not set
1665# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1666# CONFIG_FAULT_INJECTION is not set
1667# CONFIG_LATENCYTOP is not set
1668CONFIG_SYSCTL_SYSCALL_CHECK=y
1669CONFIG_HAVE_FUNCTION_TRACER=y
1670CONFIG_HAVE_DYNAMIC_FTRACE=y
1671CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1672
1673#
1674# Tracers
1675#
1676# CONFIG_FUNCTION_TRACER is not set
1677# CONFIG_SCHED_TRACER is not set
1678# CONFIG_CONTEXT_SWITCH_TRACER is not set
1679# CONFIG_BOOT_TRACER is not set
1680# CONFIG_TRACE_BRANCH_PROFILING is not set
1681# CONFIG_STACK_TRACER is not set
1682# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1683# CONFIG_SAMPLES is not set
1684CONFIG_HAVE_ARCH_KGDB=y
1685# CONFIG_KGDB is not set
1686CONFIG_PRINT_STACK_DEPTH=64
1687# CONFIG_DEBUG_STACKOVERFLOW is not set
1688# CONFIG_DEBUG_STACK_USAGE is not set
1689# CONFIG_DEBUG_PAGEALLOC is not set
1690# CONFIG_CODE_PATCHING_SELFTEST is not set
1691# CONFIG_FTR_FIXUP_SELFTEST is not set
1692# CONFIG_MSI_BITMAP_SELFTEST is not set
1693# CONFIG_XMON is not set
1694# CONFIG_IRQSTACKS is not set
1695# CONFIG_BDI_SWITCH is not set
1696# CONFIG_PPC_EARLY_DEBUG is not set
1697
1698#
1699# Security options
1700#
1701# CONFIG_KEYS is not set
1702# CONFIG_SECURITY is not set
1703# CONFIG_SECURITYFS is not set
1704# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1705CONFIG_CRYPTO=y
1706
1707#
1708# Crypto core or helper
1709#
1710# CONFIG_CRYPTO_FIPS is not set
1711CONFIG_CRYPTO_ALGAPI=y
1712CONFIG_CRYPTO_ALGAPI2=y
1713CONFIG_CRYPTO_AEAD=y
1714CONFIG_CRYPTO_AEAD2=y
1715CONFIG_CRYPTO_BLKCIPHER=y
1716CONFIG_CRYPTO_BLKCIPHER2=y
1717CONFIG_CRYPTO_HASH=y
1718CONFIG_CRYPTO_HASH2=y
1719CONFIG_CRYPTO_RNG2=y
1720CONFIG_CRYPTO_MANAGER=y
1721CONFIG_CRYPTO_MANAGER2=y
1722# CONFIG_CRYPTO_GF128MUL is not set
1723# CONFIG_CRYPTO_NULL is not set
1724# CONFIG_CRYPTO_CRYPTD is not set
1725CONFIG_CRYPTO_AUTHENC=y
1726# CONFIG_CRYPTO_TEST is not set
1727
1728#
1729# Authenticated Encryption with Associated Data
1730#
1731# CONFIG_CRYPTO_CCM is not set
1732# CONFIG_CRYPTO_GCM is not set
1733# CONFIG_CRYPTO_SEQIV is not set
1734
1735#
1736# Block modes
1737#
1738CONFIG_CRYPTO_CBC=y
1739# CONFIG_CRYPTO_CTR is not set
1740# CONFIG_CRYPTO_CTS is not set
1741# CONFIG_CRYPTO_ECB is not set
1742# CONFIG_CRYPTO_LRW is not set
1743CONFIG_CRYPTO_PCBC=m
1744# CONFIG_CRYPTO_XTS is not set
1745
1746#
1747# Hash modes
1748#
1749CONFIG_CRYPTO_HMAC=y
1750# CONFIG_CRYPTO_XCBC is not set
1751
1752#
1753# Digest
1754#
1755CONFIG_CRYPTO_CRC32C=m
1756# CONFIG_CRYPTO_MD4 is not set
1757CONFIG_CRYPTO_MD5=y
1758# CONFIG_CRYPTO_MICHAEL_MIC is not set
1759# CONFIG_CRYPTO_RMD128 is not set
1760# CONFIG_CRYPTO_RMD160 is not set
1761# CONFIG_CRYPTO_RMD256 is not set
1762# CONFIG_CRYPTO_RMD320 is not set
1763CONFIG_CRYPTO_SHA1=m
1764# CONFIG_CRYPTO_SHA256 is not set
1765# CONFIG_CRYPTO_SHA512 is not set
1766# CONFIG_CRYPTO_TGR192 is not set
1767# CONFIG_CRYPTO_WP512 is not set
1768
1769#
1770# Ciphers
1771#
1772# CONFIG_CRYPTO_AES is not set
1773# CONFIG_CRYPTO_ANUBIS is not set
1774# CONFIG_CRYPTO_ARC4 is not set
1775# CONFIG_CRYPTO_BLOWFISH is not set
1776# CONFIG_CRYPTO_CAMELLIA is not set
1777# CONFIG_CRYPTO_CAST5 is not set
1778# CONFIG_CRYPTO_CAST6 is not set
1779CONFIG_CRYPTO_DES=y
1780# CONFIG_CRYPTO_FCRYPT is not set
1781# CONFIG_CRYPTO_KHAZAD is not set
1782# CONFIG_CRYPTO_SALSA20 is not set
1783# CONFIG_CRYPTO_SEED is not set
1784# CONFIG_CRYPTO_SERPENT is not set
1785# CONFIG_CRYPTO_TEA is not set
1786# CONFIG_CRYPTO_TWOFISH is not set
1787
1788#
1789# Compression
1790#
1791# CONFIG_CRYPTO_DEFLATE is not set
1792# CONFIG_CRYPTO_LZO is not set
1793
1794#
1795# Random Number Generation
1796#
1797# CONFIG_CRYPTO_ANSI_CPRNG is not set
1798CONFIG_CRYPTO_HW=y
1799# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1800CONFIG_CRYPTO_DEV_TALITOS=y
1801# CONFIG_PPC_CLOCK is not set
1802# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 095e2ded6e8b..62adb71a5d4f 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:09 2009 4# Wed May 13 17:22:17 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,21 +101,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 112CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 113# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 114# CONFIG_KALLSYMS_EXTRA_PASS is not set
115# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 116CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 117CONFIG_PRINTK=y
102CONFIG_BUG=y 118CONFIG_BUG=y
103CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 121CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 122CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
@@ -114,10 +128,12 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 128CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 129CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 130CONFIG_SLUB_DEBUG=y
131CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 132# CONFIG_SLAB is not set
118CONFIG_SLUB=y 133CONFIG_SLUB=y
119# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 138CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y 139CONFIG_HAVE_IOREMAP_PROT=y
@@ -125,6 +141,7 @@ CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 142CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_HAVE_CLK=y 143CONFIG_HAVE_CLK=y
144# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 145# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 146CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 147CONFIG_RT_MUTEXES=y
@@ -132,7 +149,6 @@ CONFIG_BASE_SMALL=0
132# CONFIG_MODULES is not set 149# CONFIG_MODULES is not set
133CONFIG_BLOCK=y 150CONFIG_BLOCK=y
134# CONFIG_LBD is not set 151# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_BLK_DEV_BSG is not set 152# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 153# CONFIG_BLK_DEV_INTEGRITY is not set
138 154
@@ -148,11 +164,6 @@ CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
149# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 166CONFIG_DEFAULT_IOSCHED="anticipatory"
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 167# CONFIG_FREEZER is not set
157 168
158# 169#
@@ -168,6 +179,7 @@ CONFIG_MPC8560_ADS=y
168# CONFIG_MPC85xx_MDS is not set 179# CONFIG_MPC85xx_MDS is not set
169# CONFIG_MPC8536_DS is not set 180# CONFIG_MPC8536_DS is not set
170# CONFIG_MPC85xx_DS is not set 181# CONFIG_MPC85xx_DS is not set
182# CONFIG_SOCRATES is not set
171# CONFIG_KSI8560 is not set 183# CONFIG_KSI8560 is not set
172# CONFIG_STX_GP3 is not set 184# CONFIG_STX_GP3 is not set
173# CONFIG_TQM8540 is not set 185# CONFIG_TQM8540 is not set
@@ -236,9 +248,12 @@ CONFIG_ZONE_DMA_FLAG=1
236CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
237CONFIG_VIRT_TO_BUS=y 249CONFIG_VIRT_TO_BUS=y
238CONFIG_UNEVICTABLE_LRU=y 250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
239CONFIG_PPC_4K_PAGES=y 253CONFIG_PPC_4K_PAGES=y
240# CONFIG_PPC_16K_PAGES is not set 254# CONFIG_PPC_16K_PAGES is not set
241# CONFIG_PPC_64K_PAGES is not set 255# CONFIG_PPC_64K_PAGES is not set
256# CONFIG_PPC_256K_PAGES is not set
242CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
243# CONFIG_PROC_DEVICETREE is not set 258# CONFIG_PROC_DEVICETREE is not set
244# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
@@ -264,6 +279,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
264# CONFIG_PCI_LEGACY is not set 279# CONFIG_PCI_LEGACY is not set
265CONFIG_PCI_DEBUG=y 280CONFIG_PCI_DEBUG=y
266# CONFIG_PCI_STUB is not set 281# CONFIG_PCI_STUB is not set
282# CONFIG_PCI_IOV is not set
267# CONFIG_PCCARD is not set 283# CONFIG_PCCARD is not set
268# CONFIG_HOTPLUG_PCI is not set 284# CONFIG_HOTPLUG_PCI is not set
269# CONFIG_HAS_RAPIDIO is not set 285# CONFIG_HAS_RAPIDIO is not set
@@ -277,17 +293,17 @@ CONFIG_PCI_DEBUG=y
277# Default settings for advanced configuration options are used 293# Default settings for advanced configuration options are used
278# 294#
279CONFIG_LOWMEM_SIZE=0x30000000 295CONFIG_LOWMEM_SIZE=0x30000000
296CONFIG_LOWMEM_CAM_NUM=3
280CONFIG_PAGE_OFFSET=0xc0000000 297CONFIG_PAGE_OFFSET=0xc0000000
281CONFIG_KERNEL_START=0xc0000000 298CONFIG_KERNEL_START=0xc0000000
282CONFIG_PHYSICAL_START=0x00000000 299CONFIG_PHYSICAL_START=0x00000000
283CONFIG_PHYSICAL_ALIGN=0x10000000 300CONFIG_PHYSICAL_ALIGN=0x04000000
284CONFIG_TASK_SIZE=0xc0000000 301CONFIG_TASK_SIZE=0xc0000000
285CONFIG_NET=y 302CONFIG_NET=y
286 303
287# 304#
288# Networking options 305# Networking options
289# 306#
290CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 307CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 308# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 309CONFIG_UNIX=y
@@ -343,6 +359,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_LAPB is not set 359# CONFIG_LAPB is not set
344# CONFIG_ECONET is not set 360# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 361# CONFIG_WAN_ROUTER is not set
362# CONFIG_PHONET is not set
346# CONFIG_NET_SCHED is not set 363# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set 364# CONFIG_DCB is not set
348 365
@@ -355,7 +372,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_IRDA is not set 372# CONFIG_IRDA is not set
356# CONFIG_BT is not set 373# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set 374# CONFIG_AF_RXRPC is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 375CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 376# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 377CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -405,12 +421,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
405# CONFIG_BLK_DEV_HD is not set 421# CONFIG_BLK_DEV_HD is not set
406CONFIG_MISC_DEVICES=y 422CONFIG_MISC_DEVICES=y
407# CONFIG_PHANTOM is not set 423# CONFIG_PHANTOM is not set
408# CONFIG_EEPROM_93CX6 is not set
409# CONFIG_SGI_IOC4 is not set 424# CONFIG_SGI_IOC4 is not set
410# CONFIG_TIFM_CORE is not set 425# CONFIG_TIFM_CORE is not set
411# CONFIG_ENCLOSURE_SERVICES is not set 426# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_HP_ILO is not set 427# CONFIG_HP_ILO is not set
413# CONFIG_C2PORT is not set 428# CONFIG_C2PORT is not set
429
430#
431# EEPROM support
432#
433# CONFIG_EEPROM_93CX6 is not set
414CONFIG_HAVE_IDE=y 434CONFIG_HAVE_IDE=y
415# CONFIG_IDE is not set 435# CONFIG_IDE is not set
416 436
@@ -437,6 +457,7 @@ CONFIG_HAVE_IDE=y
437# CONFIG_I2O is not set 457# CONFIG_I2O is not set
438# CONFIG_MACINTOSH_DRIVERS is not set 458# CONFIG_MACINTOSH_DRIVERS is not set
439CONFIG_NETDEVICES=y 459CONFIG_NETDEVICES=y
460CONFIG_COMPAT_NET_DEV_OPS=y
440# CONFIG_DUMMY is not set 461# CONFIG_DUMMY is not set
441# CONFIG_BONDING is not set 462# CONFIG_BONDING is not set
442# CONFIG_MACVLAN is not set 463# CONFIG_MACVLAN is not set
@@ -470,6 +491,8 @@ CONFIG_MII=y
470# CONFIG_SUNGEM is not set 491# CONFIG_SUNGEM is not set
471# CONFIG_CASSINI is not set 492# CONFIG_CASSINI is not set
472# CONFIG_NET_VENDOR_3COM is not set 493# CONFIG_NET_VENDOR_3COM is not set
494# CONFIG_ETHOC is not set
495# CONFIG_DNET is not set
473# CONFIG_NET_TULIP is not set 496# CONFIG_NET_TULIP is not set
474# CONFIG_HP100 is not set 497# CONFIG_HP100 is not set
475# CONFIG_IBM_NEW_EMAC_ZMII is not set 498# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -493,6 +516,7 @@ CONFIG_E1000=y
493# CONFIG_E1000E is not set 516# CONFIG_E1000E is not set
494# CONFIG_IP1000 is not set 517# CONFIG_IP1000 is not set
495# CONFIG_IGB is not set 518# CONFIG_IGB is not set
519# CONFIG_IGBVF is not set
496# CONFIG_NS83820 is not set 520# CONFIG_NS83820 is not set
497# CONFIG_HAMACHI is not set 521# CONFIG_HAMACHI is not set
498# CONFIG_YELLOWFIN is not set 522# CONFIG_YELLOWFIN is not set
@@ -503,10 +527,12 @@ CONFIG_E1000=y
503# CONFIG_VIA_VELOCITY is not set 527# CONFIG_VIA_VELOCITY is not set
504# CONFIG_TIGON3 is not set 528# CONFIG_TIGON3 is not set
505# CONFIG_BNX2 is not set 529# CONFIG_BNX2 is not set
530CONFIG_FSL_PQ_MDIO=y
506CONFIG_GIANFAR=y 531CONFIG_GIANFAR=y
507# CONFIG_QLA3XXX is not set 532# CONFIG_QLA3XXX is not set
508# CONFIG_ATL1 is not set 533# CONFIG_ATL1 is not set
509# CONFIG_ATL1E is not set 534# CONFIG_ATL1E is not set
535# CONFIG_ATL1C is not set
510# CONFIG_JME is not set 536# CONFIG_JME is not set
511CONFIG_NETDEV_10000=y 537CONFIG_NETDEV_10000=y
512# CONFIG_CHELSIO_T1 is not set 538# CONFIG_CHELSIO_T1 is not set
@@ -516,6 +542,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
516# CONFIG_IXGBE is not set 542# CONFIG_IXGBE is not set
517# CONFIG_IXGB is not set 543# CONFIG_IXGB is not set
518# CONFIG_S2IO is not set 544# CONFIG_S2IO is not set
545# CONFIG_VXGE is not set
519# CONFIG_MYRI10GE is not set 546# CONFIG_MYRI10GE is not set
520# CONFIG_NETXEN_NIC is not set 547# CONFIG_NETXEN_NIC is not set
521# CONFIG_NIU is not set 548# CONFIG_NIU is not set
@@ -525,6 +552,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
525# CONFIG_BNX2X is not set 552# CONFIG_BNX2X is not set
526# CONFIG_QLGE is not set 553# CONFIG_QLGE is not set
527# CONFIG_SFC is not set 554# CONFIG_SFC is not set
555# CONFIG_BE2NET is not set
528# CONFIG_TR is not set 556# CONFIG_TR is not set
529 557
530# 558#
@@ -532,7 +560,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
532# 560#
533# CONFIG_WLAN_PRE80211 is not set 561# CONFIG_WLAN_PRE80211 is not set
534# CONFIG_WLAN_80211 is not set 562# CONFIG_WLAN_80211 is not set
535# CONFIG_IWLWIFI_LEDS is not set
536 563
537# 564#
538# Enable WiMAX (Networking options) to see the WiMAX drivers 565# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -608,6 +635,7 @@ CONFIG_LEGACY_PTY_COUNT=256
608# CONFIG_HVC_UDBG is not set 635# CONFIG_HVC_UDBG is not set
609# CONFIG_IPMI_HANDLER is not set 636# CONFIG_IPMI_HANDLER is not set
610CONFIG_HW_RANDOM=y 637CONFIG_HW_RANDOM=y
638# CONFIG_HW_RANDOM_TIMERIOMEM is not set
611# CONFIG_NVRAM is not set 639# CONFIG_NVRAM is not set
612CONFIG_GEN_RTC=y 640CONFIG_GEN_RTC=y
613# CONFIG_GEN_RTC_X is not set 641# CONFIG_GEN_RTC_X is not set
@@ -651,6 +679,7 @@ CONFIG_HWMON=y
651# CONFIG_SENSORS_IT87 is not set 679# CONFIG_SENSORS_IT87 is not set
652# CONFIG_SENSORS_PC87360 is not set 680# CONFIG_SENSORS_PC87360 is not set
653# CONFIG_SENSORS_PC87427 is not set 681# CONFIG_SENSORS_PC87427 is not set
682# CONFIG_SENSORS_SHT15 is not set
654# CONFIG_SENSORS_SIS5595 is not set 683# CONFIG_SENSORS_SIS5595 is not set
655# CONFIG_SENSORS_SMSC47M1 is not set 684# CONFIG_SENSORS_SMSC47M1 is not set
656# CONFIG_SENSORS_SMSC47B397 is not set 685# CONFIG_SENSORS_SMSC47B397 is not set
@@ -719,7 +748,6 @@ CONFIG_HID=y
719# 748#
720# Special HID drivers 749# Special HID drivers
721# 750#
722CONFIG_HID_COMPAT=y
723CONFIG_USB_SUPPORT=y 751CONFIG_USB_SUPPORT=y
724CONFIG_USB_ARCH_HAS_HCD=y 752CONFIG_USB_ARCH_HAS_HCD=y
725CONFIG_USB_ARCH_HAS_OHCI=y 753CONFIG_USB_ARCH_HAS_OHCI=y
@@ -733,7 +761,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
733# 761#
734 762
735# 763#
736# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 764# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
737# 765#
738# CONFIG_USB_GADGET is not set 766# CONFIG_USB_GADGET is not set
739 767
@@ -749,6 +777,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# CONFIG_EDAC is not set 777# CONFIG_EDAC is not set
750# CONFIG_RTC_CLASS is not set 778# CONFIG_RTC_CLASS is not set
751# CONFIG_DMADEVICES is not set 779# CONFIG_DMADEVICES is not set
780# CONFIG_AUXDISPLAY is not set
752# CONFIG_UIO is not set 781# CONFIG_UIO is not set
753# CONFIG_STAGING is not set 782# CONFIG_STAGING is not set
754 783
@@ -759,6 +788,7 @@ CONFIG_EXT2_FS=y
759# CONFIG_EXT2_FS_XATTR is not set 788# CONFIG_EXT2_FS_XATTR is not set
760# CONFIG_EXT2_FS_XIP is not set 789# CONFIG_EXT2_FS_XIP is not set
761CONFIG_EXT3_FS=y 790CONFIG_EXT3_FS=y
791# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
762CONFIG_EXT3_FS_XATTR=y 792CONFIG_EXT3_FS_XATTR=y
763# CONFIG_EXT3_FS_POSIX_ACL is not set 793# CONFIG_EXT3_FS_POSIX_ACL is not set
764# CONFIG_EXT3_FS_SECURITY is not set 794# CONFIG_EXT3_FS_SECURITY is not set
@@ -781,6 +811,11 @@ CONFIG_INOTIFY_USER=y
781# CONFIG_FUSE_FS is not set 811# CONFIG_FUSE_FS is not set
782 812
783# 813#
814# Caches
815#
816# CONFIG_FSCACHE is not set
817
818#
784# CD-ROM/DVD Filesystems 819# CD-ROM/DVD Filesystems
785# 820#
786# CONFIG_ISO9660_FS is not set 821# CONFIG_ISO9660_FS is not set
@@ -823,6 +858,7 @@ CONFIG_MISC_FILESYSTEMS=y
823# CONFIG_ROMFS_FS is not set 858# CONFIG_ROMFS_FS is not set
824# CONFIG_SYSV_FS is not set 859# CONFIG_SYSV_FS is not set
825# CONFIG_UFS_FS is not set 860# CONFIG_UFS_FS is not set
861# CONFIG_NILFS2_FS is not set
826CONFIG_NETWORK_FILESYSTEMS=y 862CONFIG_NETWORK_FILESYSTEMS=y
827CONFIG_NFS_FS=y 863CONFIG_NFS_FS=y
828# CONFIG_NFS_V3 is not set 864# CONFIG_NFS_V3 is not set
@@ -832,7 +868,6 @@ CONFIG_ROOT_NFS=y
832CONFIG_LOCKD=y 868CONFIG_LOCKD=y
833CONFIG_NFS_COMMON=y 869CONFIG_NFS_COMMON=y
834CONFIG_SUNRPC=y 870CONFIG_SUNRPC=y
835# CONFIG_SUNRPC_REGISTER_V4 is not set
836# CONFIG_RPCSEC_GSS_KRB5 is not set 871# CONFIG_RPCSEC_GSS_KRB5 is not set
837# CONFIG_RPCSEC_GSS_SPKM3 is not set 872# CONFIG_RPCSEC_GSS_SPKM3 is not set
838# CONFIG_SMB_FS is not set 873# CONFIG_SMB_FS is not set
@@ -860,6 +895,7 @@ CONFIG_PARTITION_ADVANCED=y
860# CONFIG_SYSV68_PARTITION is not set 895# CONFIG_SYSV68_PARTITION is not set
861# CONFIG_NLS is not set 896# CONFIG_NLS is not set
862# CONFIG_DLM is not set 897# CONFIG_DLM is not set
898# CONFIG_BINARY_PRINTF is not set
863 899
864# 900#
865# Library routines 901# Library routines
@@ -873,11 +909,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
873CONFIG_CRC32=y 909CONFIG_CRC32=y
874# CONFIG_CRC7 is not set 910# CONFIG_CRC7 is not set
875# CONFIG_LIBCRC32C is not set 911# CONFIG_LIBCRC32C is not set
876CONFIG_PLIST=y 912CONFIG_ZLIB_INFLATE=y
913CONFIG_DECOMPRESS_GZIP=y
877CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
878CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
879CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
880CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
881 919
882# 920#
883# Kernel hacking 921# Kernel hacking
@@ -895,6 +933,9 @@ CONFIG_DEBUG_KERNEL=y
895CONFIG_DETECT_SOFTLOCKUP=y 933CONFIG_DETECT_SOFTLOCKUP=y
896# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 934# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
897CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 935CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
936CONFIG_DETECT_HUNG_TASK=y
937# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
938CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
898CONFIG_SCHED_DEBUG=y 939CONFIG_SCHED_DEBUG=y
899# CONFIG_SCHEDSTATS is not set 940# CONFIG_SCHEDSTATS is not set
900# CONFIG_TIMER_STATS is not set 941# CONFIG_TIMER_STATS is not set
@@ -924,9 +965,12 @@ CONFIG_DEBUG_MUTEXES=y
924# CONFIG_FAULT_INJECTION is not set 965# CONFIG_FAULT_INJECTION is not set
925# CONFIG_LATENCYTOP is not set 966# CONFIG_LATENCYTOP is not set
926CONFIG_SYSCTL_SYSCALL_CHECK=y 967CONFIG_SYSCTL_SYSCALL_CHECK=y
968# CONFIG_DEBUG_PAGEALLOC is not set
927CONFIG_HAVE_FUNCTION_TRACER=y 969CONFIG_HAVE_FUNCTION_TRACER=y
970CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
928CONFIG_HAVE_DYNAMIC_FTRACE=y 971CONFIG_HAVE_DYNAMIC_FTRACE=y
929CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 972CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
973CONFIG_TRACING_SUPPORT=y
930 974
931# 975#
932# Tracers 976# Tracers
@@ -934,17 +978,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
934# CONFIG_FUNCTION_TRACER is not set 978# CONFIG_FUNCTION_TRACER is not set
935# CONFIG_SCHED_TRACER is not set 979# CONFIG_SCHED_TRACER is not set
936# CONFIG_CONTEXT_SWITCH_TRACER is not set 980# CONFIG_CONTEXT_SWITCH_TRACER is not set
981# CONFIG_EVENT_TRACER is not set
937# CONFIG_BOOT_TRACER is not set 982# CONFIG_BOOT_TRACER is not set
938# CONFIG_TRACE_BRANCH_PROFILING is not set 983# CONFIG_TRACE_BRANCH_PROFILING is not set
939# CONFIG_STACK_TRACER is not set 984# CONFIG_STACK_TRACER is not set
940# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 985# CONFIG_KMEMTRACE is not set
986# CONFIG_WORKQUEUE_TRACER is not set
987# CONFIG_BLK_DEV_IO_TRACE is not set
941# CONFIG_SAMPLES is not set 988# CONFIG_SAMPLES is not set
942CONFIG_HAVE_ARCH_KGDB=y 989CONFIG_HAVE_ARCH_KGDB=y
943# CONFIG_KGDB is not set 990# CONFIG_KGDB is not set
944CONFIG_PRINT_STACK_DEPTH=64 991CONFIG_PRINT_STACK_DEPTH=64
945# CONFIG_DEBUG_STACKOVERFLOW is not set 992# CONFIG_DEBUG_STACKOVERFLOW is not set
946# CONFIG_DEBUG_STACK_USAGE is not set 993# CONFIG_DEBUG_STACK_USAGE is not set
947# CONFIG_DEBUG_PAGEALLOC is not set
948# CONFIG_CODE_PATCHING_SELFTEST is not set 994# CONFIG_CODE_PATCHING_SELFTEST is not set
949# CONFIG_FTR_FIXUP_SELFTEST is not set 995# CONFIG_FTR_FIXUP_SELFTEST is not set
950# CONFIG_MSI_BITMAP_SELFTEST is not set 996# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1037,6 +1083,7 @@ CONFIG_CRYPTO=y
1037# Compression 1083# Compression
1038# 1084#
1039# CONFIG_CRYPTO_DEFLATE is not set 1085# CONFIG_CRYPTO_DEFLATE is not set
1086# CONFIG_CRYPTO_ZLIB is not set
1040# CONFIG_CRYPTO_LZO is not set 1087# CONFIG_CRYPTO_LZO is not set
1041 1088
1042# 1089#
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
deleted file mode 100644
index 186c1010a135..000000000000
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ /dev/null
@@ -1,1309 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29-rc2
4# Mon Jan 26 15:36:10 2009
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12CONFIG_PPC_85xx=y
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
19CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
25# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set
27CONFIG_PPC32=y
28CONFIG_WORD_SIZE=32
29# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
30CONFIG_MMU=y
31CONFIG_GENERIC_CMOS_UPDATE=y
32CONFIG_GENERIC_TIME=y
33CONFIG_GENERIC_TIME_VSYSCALL=y
34CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y
36# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
37CONFIG_IRQ_PER_CPU=y
38CONFIG_STACKTRACE_SUPPORT=y
39CONFIG_HAVE_LATENCYTOP_SUPPORT=y
40CONFIG_LOCKDEP_SUPPORT=y
41CONFIG_RWSEM_XCHGADD_ALGORITHM=y
42CONFIG_ARCH_HAS_ILOG2_U32=y
43CONFIG_GENERIC_HWEIGHT=y
44CONFIG_GENERIC_CALIBRATE_DELAY=y
45CONFIG_GENERIC_FIND_NEXT_BIT=y
46# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
47CONFIG_PPC=y
48CONFIG_EARLY_PRINTK=y
49CONFIG_GENERIC_NVRAM=y
50CONFIG_SCHED_OMIT_FRAME_POINTER=y
51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
52CONFIG_PPC_OF=y
53CONFIG_OF=y
54CONFIG_PPC_UDBG_16550=y
55# CONFIG_GENERIC_TBSYNC is not set
56CONFIG_AUDIT_ARCH=y
57CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62
63#
64# General setup
65#
66CONFIG_EXPERIMENTAL=y
67CONFIG_BROKEN_ON_SMP=y
68CONFIG_INIT_ENV_ARG_LIMIT=32
69CONFIG_LOCALVERSION=""
70CONFIG_LOCALVERSION_AUTO=y
71CONFIG_SWAP=y
72CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y
74# CONFIG_POSIX_MQUEUE is not set
75# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set
78# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y
81# CONFIG_FAIR_GROUP_SCHED is not set
82# CONFIG_RT_GROUP_SCHED is not set
83CONFIG_USER_SCHED=y
84# CONFIG_CGROUP_SCHED is not set
85# CONFIG_CGROUPS is not set
86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_RELAY is not set
89# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE=""
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y
94CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y
96# CONFIG_KALLSYMS is not set
97CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y
99CONFIG_BUG=y
100CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105# CONFIG_EPOLL is not set
106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y
110CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set
115CONFIG_SLUB=y
116# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set
118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y
127CONFIG_BASE_SMALL=0
128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set
130CONFIG_MODULE_UNLOAD=y
131# CONFIG_MODULE_FORCE_UNLOAD is not set
132# CONFIG_MODVERSIONS is not set
133# CONFIG_MODULE_SRCVERSION_ALL is not set
134CONFIG_BLOCK=y
135# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
139
140#
141# IO Schedulers
142#
143CONFIG_IOSCHED_NOOP=y
144CONFIG_IOSCHED_AS=y
145CONFIG_IOSCHED_DEADLINE=y
146CONFIG_IOSCHED_CFQ=y
147CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_DEADLINE is not set
149# CONFIG_DEFAULT_CFQ is not set
150# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory"
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
157# CONFIG_FREEZER is not set
158
159#
160# Platform support
161#
162# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set
164# CONFIG_PQ2ADS is not set
165CONFIG_MPC85xx=y
166# CONFIG_MPC8540_ADS is not set
167# CONFIG_MPC8560_ADS is not set
168# CONFIG_MPC85xx_CDS is not set
169CONFIG_MPC85xx_MDS=y
170# CONFIG_MPC8536_DS is not set
171# CONFIG_MPC85xx_DS is not set
172# CONFIG_KSI8560 is not set
173# CONFIG_STX_GP3 is not set
174# CONFIG_TQM8540 is not set
175# CONFIG_TQM8541 is not set
176# CONFIG_TQM8548 is not set
177# CONFIG_TQM8555 is not set
178# CONFIG_TQM8560 is not set
179# CONFIG_SBC8548 is not set
180# CONFIG_SBC8560 is not set
181# CONFIG_IPIC is not set
182CONFIG_MPIC=y
183# CONFIG_MPIC_WEIRD is not set
184# CONFIG_PPC_I8259 is not set
185# CONFIG_PPC_RTAS is not set
186# CONFIG_MMIO_NVRAM is not set
187# CONFIG_PPC_MPC106 is not set
188# CONFIG_PPC_970_NAP is not set
189# CONFIG_PPC_INDIRECT_IO is not set
190# CONFIG_GENERIC_IOMAP is not set
191# CONFIG_CPU_FREQ is not set
192CONFIG_QUICC_ENGINE=y
193# CONFIG_QE_GPIO is not set
194# CONFIG_CPM2 is not set
195# CONFIG_FSL_ULI1575 is not set
196# CONFIG_MPC8xxx_GPIO is not set
197# CONFIG_SIMPLE_GPIO is not set
198
199#
200# Kernel options
201#
202# CONFIG_HIGHMEM is not set
203CONFIG_TICK_ONESHOT=y
204CONFIG_NO_HZ=y
205CONFIG_HIGH_RES_TIMERS=y
206CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
207# CONFIG_HZ_100 is not set
208CONFIG_HZ_250=y
209# CONFIG_HZ_300 is not set
210# CONFIG_HZ_1000 is not set
211CONFIG_HZ=250
212CONFIG_SCHED_HRTICK=y
213CONFIG_PREEMPT_NONE=y
214# CONFIG_PREEMPT_VOLUNTARY is not set
215# CONFIG_PREEMPT is not set
216CONFIG_BINFMT_ELF=y
217# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
218# CONFIG_HAVE_AOUT is not set
219# CONFIG_BINFMT_MISC is not set
220CONFIG_MATH_EMULATION=y
221# CONFIG_IOMMU_HELPER is not set
222CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
223CONFIG_ARCH_HAS_WALK_MEMORY=y
224CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
225CONFIG_ARCH_FLATMEM_ENABLE=y
226CONFIG_ARCH_POPULATES_NODE_MAP=y
227CONFIG_SELECT_MEMORY_MODEL=y
228CONFIG_FLATMEM_MANUAL=y
229# CONFIG_DISCONTIGMEM_MANUAL is not set
230# CONFIG_SPARSEMEM_MANUAL is not set
231CONFIG_FLATMEM=y
232CONFIG_FLAT_NODE_MEM_MAP=y
233CONFIG_PAGEFLAGS_EXTENDED=y
234CONFIG_SPLIT_PTLOCK_CPUS=4
235CONFIG_MIGRATION=y
236# CONFIG_PHYS_ADDR_T_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=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
244CONFIG_FORCE_MAX_ZONEORDER=11
245CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set
247CONFIG_EXTRA_TARGETS=""
248# CONFIG_PM is not set
249CONFIG_SECCOMP=y
250CONFIG_ISA_DMA_API=y
251
252#
253# Bus options
254#
255CONFIG_ZONE_DMA=y
256CONFIG_PPC_INDIRECT_PCI=y
257CONFIG_FSL_SOC=y
258CONFIG_FSL_PCI=y
259CONFIG_PPC_PCI_CHOICE=y
260CONFIG_PCI=y
261CONFIG_PCI_DOMAINS=y
262CONFIG_PCI_SYSCALL=y
263# CONFIG_PCIEPORTBUS is not set
264CONFIG_ARCH_SUPPORTS_MSI=y
265# CONFIG_PCI_MSI is not set
266# CONFIG_PCI_LEGACY is not set
267# CONFIG_PCI_DEBUG is not set
268# CONFIG_PCI_STUB is not set
269# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set
272
273#
274# Advanced setup
275#
276# CONFIG_ADVANCED_OPTIONS is not set
277
278#
279# Default settings for advanced configuration options are used
280#
281CONFIG_LOWMEM_SIZE=0x30000000
282CONFIG_PAGE_OFFSET=0xc0000000
283CONFIG_KERNEL_START=0xc0000000
284CONFIG_PHYSICAL_START=0x00000000
285CONFIG_PHYSICAL_ALIGN=0x10000000
286CONFIG_TASK_SIZE=0xc0000000
287CONFIG_NET=y
288
289#
290# Networking options
291#
292CONFIG_COMPAT_NET_DEV_OPS=y
293CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y
296CONFIG_XFRM=y
297# CONFIG_XFRM_USER is not set
298# CONFIG_XFRM_SUB_POLICY is not set
299# CONFIG_XFRM_MIGRATE is not set
300# CONFIG_XFRM_STATISTICS is not set
301# CONFIG_NET_KEY is not set
302CONFIG_INET=y
303CONFIG_IP_MULTICAST=y
304# CONFIG_IP_ADVANCED_ROUTER is not set
305CONFIG_IP_FIB_HASH=y
306CONFIG_IP_PNP=y
307CONFIG_IP_PNP_DHCP=y
308CONFIG_IP_PNP_BOOTP=y
309# CONFIG_IP_PNP_RARP is not set
310# CONFIG_NET_IPIP is not set
311# CONFIG_NET_IPGRE is not set
312# CONFIG_IP_MROUTE is not set
313# CONFIG_ARPD is not set
314CONFIG_SYN_COOKIES=y
315# CONFIG_INET_AH is not set
316# CONFIG_INET_ESP is not set
317# CONFIG_INET_IPCOMP is not set
318# CONFIG_INET_XFRM_TUNNEL is not set
319# CONFIG_INET_TUNNEL is not set
320CONFIG_INET_XFRM_MODE_TRANSPORT=y
321CONFIG_INET_XFRM_MODE_TUNNEL=y
322CONFIG_INET_XFRM_MODE_BEET=y
323# CONFIG_INET_LRO is not set
324CONFIG_INET_DIAG=y
325CONFIG_INET_TCP_DIAG=y
326# CONFIG_TCP_CONG_ADVANCED is not set
327CONFIG_TCP_CONG_CUBIC=y
328CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_TCP_MD5SIG is not set
330# CONFIG_IPV6 is not set
331# CONFIG_NETWORK_SECMARK is not set
332# CONFIG_NETFILTER is not set
333# CONFIG_IP_DCCP is not set
334# CONFIG_IP_SCTP is not set
335# CONFIG_TIPC is not set
336# CONFIG_ATM is not set
337# CONFIG_BRIDGE is not set
338# CONFIG_NET_DSA is not set
339# CONFIG_VLAN_8021Q is not set
340# CONFIG_DECNET is not set
341# CONFIG_LLC2 is not set
342# CONFIG_IPX is not set
343# CONFIG_ATALK is not set
344# CONFIG_X25 is not set
345# CONFIG_LAPB is not set
346# CONFIG_ECONET is not set
347# CONFIG_WAN_ROUTER is not set
348# CONFIG_NET_SCHED is not set
349# CONFIG_DCB is not set
350
351#
352# Network testing
353#
354# CONFIG_NET_PKTGEN is not set
355# CONFIG_HAMRADIO is not set
356# CONFIG_CAN is not set
357# CONFIG_IRDA is not set
358# CONFIG_BT is not set
359# CONFIG_AF_RXRPC is not set
360# CONFIG_PHONET is not set
361CONFIG_WIRELESS=y
362# CONFIG_CFG80211 is not set
363CONFIG_WIRELESS_OLD_REGULATORY=y
364# CONFIG_WIRELESS_EXT is not set
365# CONFIG_LIB80211 is not set
366# CONFIG_MAC80211 is not set
367# CONFIG_WIMAX is not set
368# CONFIG_RFKILL is not set
369# CONFIG_NET_9P is not set
370
371#
372# Device Drivers
373#
374
375#
376# Generic Driver Options
377#
378CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
379CONFIG_STANDALONE=y
380CONFIG_PREVENT_FIRMWARE_BUILD=y
381# CONFIG_FW_LOADER is not set
382# CONFIG_DEBUG_DRIVER is not set
383# CONFIG_DEBUG_DEVRES is not set
384# CONFIG_SYS_HYPERVISOR is not set
385# CONFIG_CONNECTOR is not set
386# CONFIG_MTD is not set
387CONFIG_OF_DEVICE=y
388CONFIG_OF_I2C=y
389# CONFIG_PARPORT is not set
390CONFIG_BLK_DEV=y
391# CONFIG_BLK_DEV_FD is not set
392# CONFIG_BLK_CPQ_DA is not set
393# CONFIG_BLK_CPQ_CISS_DA is not set
394# CONFIG_BLK_DEV_DAC960 is not set
395# CONFIG_BLK_DEV_UMEM is not set
396# CONFIG_BLK_DEV_COW_COMMON is not set
397CONFIG_BLK_DEV_LOOP=y
398# CONFIG_BLK_DEV_CRYPTOLOOP is not set
399# CONFIG_BLK_DEV_NBD is not set
400# CONFIG_BLK_DEV_SX8 is not set
401CONFIG_BLK_DEV_RAM=y
402CONFIG_BLK_DEV_RAM_COUNT=16
403CONFIG_BLK_DEV_RAM_SIZE=32768
404# CONFIG_BLK_DEV_XIP is not set
405# CONFIG_CDROM_PKTCDVD is not set
406# CONFIG_ATA_OVER_ETH is not set
407# CONFIG_BLK_DEV_HD is not set
408CONFIG_MISC_DEVICES=y
409# CONFIG_PHANTOM is not set
410# CONFIG_EEPROM_93CX6 is not set
411# CONFIG_SGI_IOC4 is not set
412# CONFIG_TIFM_CORE is not set
413# CONFIG_ICS932S401 is not set
414# CONFIG_ENCLOSURE_SERVICES is not set
415# CONFIG_HP_ILO is not set
416# CONFIG_C2PORT is not set
417CONFIG_HAVE_IDE=y
418# CONFIG_IDE is not set
419
420#
421# SCSI device support
422#
423# CONFIG_RAID_ATTRS is not set
424CONFIG_SCSI=y
425CONFIG_SCSI_DMA=y
426# CONFIG_SCSI_TGT is not set
427# CONFIG_SCSI_NETLINK is not set
428CONFIG_SCSI_PROC_FS=y
429
430#
431# SCSI support type (disk, tape, CD-ROM)
432#
433# CONFIG_BLK_DEV_SD is not set
434# CONFIG_CHR_DEV_ST is not set
435# CONFIG_CHR_DEV_OSST is not set
436# CONFIG_BLK_DEV_SR is not set
437# CONFIG_CHR_DEV_SG is not set
438# CONFIG_CHR_DEV_SCH is not set
439
440#
441# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
442#
443# CONFIG_SCSI_MULTI_LUN is not set
444# CONFIG_SCSI_CONSTANTS is not set
445# CONFIG_SCSI_LOGGING is not set
446# CONFIG_SCSI_SCAN_ASYNC is not set
447CONFIG_SCSI_WAIT_SCAN=m
448
449#
450# SCSI Transports
451#
452# CONFIG_SCSI_SPI_ATTRS is not set
453# CONFIG_SCSI_FC_ATTRS is not set
454# CONFIG_SCSI_ISCSI_ATTRS is not set
455# CONFIG_SCSI_SAS_LIBSAS is not set
456# CONFIG_SCSI_SRP_ATTRS is not set
457CONFIG_SCSI_LOWLEVEL=y
458# CONFIG_ISCSI_TCP is not set
459# CONFIG_SCSI_CXGB3_ISCSI is not set
460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
461# CONFIG_SCSI_3W_9XXX is not set
462# CONFIG_SCSI_ACARD is not set
463# CONFIG_SCSI_AACRAID is not set
464# CONFIG_SCSI_AIC7XXX is not set
465# CONFIG_SCSI_AIC7XXX_OLD is not set
466# CONFIG_SCSI_AIC79XX is not set
467# CONFIG_SCSI_AIC94XX is not set
468# CONFIG_SCSI_DPT_I2O is not set
469# CONFIG_SCSI_ADVANSYS is not set
470# CONFIG_SCSI_ARCMSR is not set
471# CONFIG_MEGARAID_NEWGEN is not set
472# CONFIG_MEGARAID_LEGACY is not set
473# CONFIG_MEGARAID_SAS is not set
474# CONFIG_SCSI_HPTIOP is not set
475# CONFIG_SCSI_BUSLOGIC is not set
476# CONFIG_LIBFC is not set
477# CONFIG_FCOE is not set
478# CONFIG_SCSI_DMX3191D is not set
479# CONFIG_SCSI_EATA is not set
480# CONFIG_SCSI_FUTURE_DOMAIN is not set
481# CONFIG_SCSI_GDTH is not set
482# CONFIG_SCSI_IPS is not set
483# CONFIG_SCSI_INITIO is not set
484# CONFIG_SCSI_INIA100 is not set
485# CONFIG_SCSI_MVSAS is not set
486# CONFIG_SCSI_STEX is not set
487# CONFIG_SCSI_SYM53C8XX_2 is not set
488# CONFIG_SCSI_QLOGIC_1280 is not set
489# CONFIG_SCSI_QLA_FC is not set
490# CONFIG_SCSI_QLA_ISCSI is not set
491# CONFIG_SCSI_LPFC is not set
492# CONFIG_SCSI_DC395x is not set
493# CONFIG_SCSI_DC390T is not set
494# CONFIG_SCSI_NSP32 is not set
495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set
498# CONFIG_ATA is not set
499# CONFIG_MD is not set
500# CONFIG_FUSION is not set
501
502#
503# IEEE 1394 (FireWire) support
504#
505
506#
507# Enable only one of the two stacks, unless you know what you are doing
508#
509# CONFIG_FIREWIRE is not set
510# CONFIG_IEEE1394 is not set
511# CONFIG_I2O is not set
512# CONFIG_MACINTOSH_DRIVERS is not set
513CONFIG_NETDEVICES=y
514# CONFIG_DUMMY is not set
515# CONFIG_BONDING is not set
516# CONFIG_MACVLAN is not set
517# CONFIG_EQUALIZER is not set
518# CONFIG_TUN is not set
519# CONFIG_VETH is not set
520# CONFIG_ARCNET is not set
521CONFIG_PHYLIB=y
522
523#
524# MII PHY device drivers
525#
526CONFIG_MARVELL_PHY=y
527# CONFIG_DAVICOM_PHY is not set
528# CONFIG_QSEMI_PHY is not set
529# CONFIG_LXT_PHY is not set
530# CONFIG_CICADA_PHY is not set
531# CONFIG_VITESSE_PHY is not set
532# CONFIG_SMSC_PHY is not set
533# CONFIG_BROADCOM_PHY is not set
534# CONFIG_ICPLUS_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
539# CONFIG_FIXED_PHY is not set
540# CONFIG_MDIO_BITBANG is not set
541CONFIG_NET_ETHERNET=y
542CONFIG_MII=y
543# CONFIG_HAPPYMEAL is not set
544# CONFIG_SUNGEM is not set
545# CONFIG_CASSINI is not set
546# CONFIG_NET_VENDOR_3COM is not set
547# CONFIG_NET_TULIP is not set
548# CONFIG_HP100 is not set
549# CONFIG_IBM_NEW_EMAC_ZMII is not set
550# CONFIG_IBM_NEW_EMAC_RGMII is not set
551# CONFIG_IBM_NEW_EMAC_TAH is not set
552# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
553# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
554# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
555# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
556# CONFIG_NET_PCI is not set
557# CONFIG_B44 is not set
558# CONFIG_ATL2 is not set
559CONFIG_NETDEV_1000=y
560# CONFIG_ACENIC is not set
561# CONFIG_DL2K is not set
562# CONFIG_E1000 is not set
563# CONFIG_E1000E is not set
564# CONFIG_IP1000 is not set
565# CONFIG_IGB is not set
566# CONFIG_NS83820 is not set
567# CONFIG_HAMACHI is not set
568# CONFIG_YELLOWFIN is not set
569# CONFIG_R8169 is not set
570# CONFIG_SIS190 is not set
571# CONFIG_SKGE is not set
572# CONFIG_SKY2 is not set
573# CONFIG_VIA_VELOCITY is not set
574# CONFIG_TIGON3 is not set
575# CONFIG_BNX2 is not set
576CONFIG_GIANFAR=y
577# CONFIG_UCC_GETH is not set
578# CONFIG_QLA3XXX is not set
579# CONFIG_ATL1 is not set
580# CONFIG_ATL1E is not set
581# CONFIG_JME is not set
582CONFIG_NETDEV_10000=y
583# CONFIG_CHELSIO_T1 is not set
584CONFIG_CHELSIO_T3_DEPENDS=y
585# CONFIG_CHELSIO_T3 is not set
586# CONFIG_ENIC is not set
587# CONFIG_IXGBE is not set
588# CONFIG_IXGB is not set
589# CONFIG_S2IO is not set
590# CONFIG_MYRI10GE is not set
591# CONFIG_NETXEN_NIC is not set
592# CONFIG_NIU is not set
593# CONFIG_MLX4_EN is not set
594# CONFIG_MLX4_CORE is not set
595# CONFIG_TEHUTI is not set
596# CONFIG_BNX2X is not set
597# CONFIG_QLGE is not set
598# CONFIG_SFC is not set
599# CONFIG_TR is not set
600
601#
602# Wireless LAN
603#
604# CONFIG_WLAN_PRE80211 is not set
605# CONFIG_WLAN_80211 is not set
606# CONFIG_IWLWIFI_LEDS is not set
607
608#
609# Enable WiMAX (Networking options) to see the WiMAX drivers
610#
611# CONFIG_WAN is not set
612# CONFIG_FDDI is not set
613# CONFIG_HIPPI is not set
614# CONFIG_PPP is not set
615# CONFIG_SLIP is not set
616# CONFIG_NET_FC is not set
617# CONFIG_NETCONSOLE is not set
618# CONFIG_NETPOLL is not set
619# CONFIG_NET_POLL_CONTROLLER is not set
620# CONFIG_ISDN is not set
621# CONFIG_PHONE is not set
622
623#
624# Input device support
625#
626CONFIG_INPUT=y
627# CONFIG_INPUT_FF_MEMLESS is not set
628# CONFIG_INPUT_POLLDEV is not set
629
630#
631# Userland interfaces
632#
633# CONFIG_INPUT_MOUSEDEV is not set
634# CONFIG_INPUT_JOYDEV is not set
635# CONFIG_INPUT_EVDEV is not set
636# CONFIG_INPUT_EVBUG is not set
637
638#
639# Input Device Drivers
640#
641# CONFIG_INPUT_KEYBOARD is not set
642# CONFIG_INPUT_MOUSE is not set
643# CONFIG_INPUT_JOYSTICK is not set
644# CONFIG_INPUT_TABLET is not set
645# CONFIG_INPUT_TOUCHSCREEN is not set
646# CONFIG_INPUT_MISC is not set
647
648#
649# Hardware I/O ports
650#
651# CONFIG_SERIO is not set
652# CONFIG_GAMEPORT is not set
653
654#
655# Character devices
656#
657# CONFIG_VT is not set
658CONFIG_DEVKMEM=y
659# CONFIG_SERIAL_NONSTANDARD is not set
660# CONFIG_NOZOMI is not set
661
662#
663# Serial drivers
664#
665CONFIG_SERIAL_8250=y
666CONFIG_SERIAL_8250_CONSOLE=y
667CONFIG_SERIAL_8250_PCI=y
668CONFIG_SERIAL_8250_NR_UARTS=4
669CONFIG_SERIAL_8250_RUNTIME_UARTS=4
670# CONFIG_SERIAL_8250_EXTENDED is not set
671CONFIG_SERIAL_8250_SHARE_IRQ=y
672
673#
674# Non-8250 serial port support
675#
676# CONFIG_SERIAL_UARTLITE is not set
677CONFIG_SERIAL_CORE=y
678CONFIG_SERIAL_CORE_CONSOLE=y
679# CONFIG_SERIAL_JSM is not set
680# CONFIG_SERIAL_OF_PLATFORM is not set
681# CONFIG_SERIAL_QE is not set
682CONFIG_UNIX98_PTYS=y
683# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
684CONFIG_LEGACY_PTYS=y
685CONFIG_LEGACY_PTY_COUNT=256
686# CONFIG_HVC_UDBG is not set
687# CONFIG_IPMI_HANDLER is not set
688CONFIG_HW_RANDOM=y
689# CONFIG_NVRAM is not set
690# CONFIG_R3964 is not set
691# CONFIG_APPLICOM is not set
692# CONFIG_RAW_DRIVER is not set
693# CONFIG_TCG_TPM is not set
694CONFIG_DEVPORT=y
695CONFIG_I2C=y
696CONFIG_I2C_BOARDINFO=y
697CONFIG_I2C_CHARDEV=y
698CONFIG_I2C_HELPER_AUTO=y
699
700#
701# I2C Hardware Bus support
702#
703
704#
705# PC SMBus host controller drivers
706#
707# CONFIG_I2C_ALI1535 is not set
708# CONFIG_I2C_ALI1563 is not set
709# CONFIG_I2C_ALI15X3 is not set
710# CONFIG_I2C_AMD756 is not set
711# CONFIG_I2C_AMD8111 is not set
712# CONFIG_I2C_I801 is not set
713# CONFIG_I2C_ISCH is not set
714# CONFIG_I2C_PIIX4 is not set
715# CONFIG_I2C_NFORCE2 is not set
716# CONFIG_I2C_SIS5595 is not set
717# CONFIG_I2C_SIS630 is not set
718# CONFIG_I2C_SIS96X is not set
719# CONFIG_I2C_VIA is not set
720# CONFIG_I2C_VIAPRO is not set
721
722#
723# I2C system bus drivers (mostly embedded / system-on-chip)
724#
725CONFIG_I2C_MPC=y
726# CONFIG_I2C_OCORES is not set
727# CONFIG_I2C_SIMTEC is not set
728
729#
730# External I2C/SMBus adapter drivers
731#
732# CONFIG_I2C_PARPORT_LIGHT is not set
733# CONFIG_I2C_TAOS_EVM is not set
734
735#
736# Graphics adapter I2C/DDC channel drivers
737#
738# CONFIG_I2C_VOODOO3 is not set
739
740#
741# Other I2C/SMBus bus drivers
742#
743# CONFIG_I2C_PCA_PLATFORM is not set
744# CONFIG_I2C_STUB is not set
745
746#
747# Miscellaneous I2C Chip support
748#
749# CONFIG_DS1682 is not set
750# CONFIG_EEPROM_AT24 is not set
751# CONFIG_EEPROM_LEGACY is not set
752# CONFIG_SENSORS_PCF8574 is not set
753# CONFIG_PCF8575 is not set
754# CONFIG_SENSORS_PCA9539 is not set
755# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_SENSORS_MAX6875 is not set
757# CONFIG_SENSORS_TSL2550 is not set
758# CONFIG_I2C_DEBUG_CORE is not set
759# CONFIG_I2C_DEBUG_ALGO is not set
760# CONFIG_I2C_DEBUG_BUS is not set
761# CONFIG_I2C_DEBUG_CHIP is not set
762# CONFIG_SPI is not set
763CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
764# CONFIG_GPIOLIB is not set
765# CONFIG_W1 is not set
766# CONFIG_POWER_SUPPLY is not set
767CONFIG_HWMON=y
768# CONFIG_HWMON_VID is not set
769# CONFIG_SENSORS_AD7414 is not set
770# CONFIG_SENSORS_AD7418 is not set
771# CONFIG_SENSORS_ADM1021 is not set
772# CONFIG_SENSORS_ADM1025 is not set
773# CONFIG_SENSORS_ADM1026 is not set
774# CONFIG_SENSORS_ADM1029 is not set
775# CONFIG_SENSORS_ADM1031 is not set
776# CONFIG_SENSORS_ADM9240 is not set
777# CONFIG_SENSORS_ADT7462 is not set
778# CONFIG_SENSORS_ADT7470 is not set
779# CONFIG_SENSORS_ADT7473 is not set
780# CONFIG_SENSORS_ADT7475 is not set
781# CONFIG_SENSORS_ATXP1 is not set
782# CONFIG_SENSORS_DS1621 is not set
783# CONFIG_SENSORS_I5K_AMB is not set
784# CONFIG_SENSORS_F71805F is not set
785# CONFIG_SENSORS_F71882FG is not set
786# CONFIG_SENSORS_F75375S is not set
787# CONFIG_SENSORS_GL518SM is not set
788# CONFIG_SENSORS_GL520SM is not set
789# CONFIG_SENSORS_IT87 is not set
790# CONFIG_SENSORS_LM63 is not set
791# CONFIG_SENSORS_LM75 is not set
792# CONFIG_SENSORS_LM77 is not set
793# CONFIG_SENSORS_LM78 is not set
794# CONFIG_SENSORS_LM80 is not set
795# CONFIG_SENSORS_LM83 is not set
796# CONFIG_SENSORS_LM85 is not set
797# CONFIG_SENSORS_LM87 is not set
798# CONFIG_SENSORS_LM90 is not set
799# CONFIG_SENSORS_LM92 is not set
800# CONFIG_SENSORS_LM93 is not set
801# CONFIG_SENSORS_LTC4245 is not set
802# CONFIG_SENSORS_MAX1619 is not set
803# CONFIG_SENSORS_MAX6650 is not set
804# CONFIG_SENSORS_PC87360 is not set
805# CONFIG_SENSORS_PC87427 is not set
806# CONFIG_SENSORS_SIS5595 is not set
807# CONFIG_SENSORS_DME1737 is not set
808# CONFIG_SENSORS_SMSC47M1 is not set
809# CONFIG_SENSORS_SMSC47M192 is not set
810# CONFIG_SENSORS_SMSC47B397 is not set
811# CONFIG_SENSORS_ADS7828 is not set
812# CONFIG_SENSORS_THMC50 is not set
813# CONFIG_SENSORS_VIA686A is not set
814# CONFIG_SENSORS_VT1211 is not set
815# CONFIG_SENSORS_VT8231 is not set
816# CONFIG_SENSORS_W83781D is not set
817# CONFIG_SENSORS_W83791D is not set
818# CONFIG_SENSORS_W83792D is not set
819# CONFIG_SENSORS_W83793 is not set
820# CONFIG_SENSORS_W83L785TS is not set
821# CONFIG_SENSORS_W83L786NG is not set
822# CONFIG_SENSORS_W83627HF is not set
823# CONFIG_SENSORS_W83627EHF is not set
824# CONFIG_HWMON_DEBUG_CHIP is not set
825# CONFIG_THERMAL is not set
826# CONFIG_THERMAL_HWMON is not set
827CONFIG_WATCHDOG=y
828# CONFIG_WATCHDOG_NOWAYOUT is not set
829
830#
831# Watchdog Device Drivers
832#
833# CONFIG_SOFT_WATCHDOG is not set
834# CONFIG_ALIM7101_WDT is not set
835# CONFIG_BOOKE_WDT is not set
836
837#
838# PCI-based Watchdog Cards
839#
840# CONFIG_PCIPCWATCHDOG is not set
841# CONFIG_WDTPCI is not set
842CONFIG_SSB_POSSIBLE=y
843
844#
845# Sonics Silicon Backplane
846#
847# CONFIG_SSB is not set
848
849#
850# Multifunction device drivers
851#
852# CONFIG_MFD_CORE is not set
853# CONFIG_MFD_SM501 is not set
854# CONFIG_HTC_PASIC3 is not set
855# CONFIG_TWL4030_CORE is not set
856# CONFIG_MFD_TMIO is not set
857# CONFIG_PMIC_DA903X is not set
858# CONFIG_MFD_WM8400 is not set
859# CONFIG_MFD_WM8350_I2C is not set
860# CONFIG_MFD_PCF50633 is not set
861# CONFIG_REGULATOR is not set
862
863#
864# Multimedia devices
865#
866
867#
868# Multimedia core support
869#
870# CONFIG_VIDEO_DEV is not set
871# CONFIG_DVB_CORE is not set
872# CONFIG_VIDEO_MEDIA is not set
873
874#
875# Multimedia drivers
876#
877CONFIG_DAB=y
878
879#
880# Graphics support
881#
882# CONFIG_AGP is not set
883# CONFIG_DRM is not set
884# CONFIG_VGASTATE is not set
885CONFIG_VIDEO_OUTPUT_CONTROL=m
886# CONFIG_FB is not set
887# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
888
889#
890# Display device support
891#
892# CONFIG_DISPLAY_SUPPORT is not set
893# CONFIG_SOUND is not set
894CONFIG_HID_SUPPORT=y
895CONFIG_HID=y
896# CONFIG_HID_DEBUG is not set
897# CONFIG_HIDRAW is not set
898# CONFIG_HID_PID is not set
899
900#
901# Special HID drivers
902#
903CONFIG_HID_COMPAT=y
904CONFIG_USB_SUPPORT=y
905CONFIG_USB_ARCH_HAS_HCD=y
906CONFIG_USB_ARCH_HAS_OHCI=y
907CONFIG_USB_ARCH_HAS_EHCI=y
908# CONFIG_USB is not set
909# CONFIG_USB_OTG_WHITELIST is not set
910# CONFIG_USB_OTG_BLACKLIST_HUB is not set
911
912#
913# Enable Host or Gadget support to see Inventra options
914#
915
916#
917# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
918#
919# CONFIG_USB_GADGET is not set
920
921#
922# OTG and related infrastructure
923#
924# CONFIG_UWB is not set
925# CONFIG_MMC is not set
926# CONFIG_MEMSTICK is not set
927# CONFIG_NEW_LEDS is not set
928# CONFIG_ACCESSIBILITY is not set
929# CONFIG_INFINIBAND is not set
930# CONFIG_EDAC is not set
931CONFIG_RTC_LIB=y
932CONFIG_RTC_CLASS=y
933CONFIG_RTC_HCTOSYS=y
934CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
935# CONFIG_RTC_DEBUG is not set
936
937#
938# RTC interfaces
939#
940CONFIG_RTC_INTF_SYSFS=y
941CONFIG_RTC_INTF_PROC=y
942CONFIG_RTC_INTF_DEV=y
943# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
944# CONFIG_RTC_DRV_TEST is not set
945
946#
947# I2C RTC drivers
948#
949# CONFIG_RTC_DRV_DS1307 is not set
950CONFIG_RTC_DRV_DS1374=y
951# CONFIG_RTC_DRV_DS1672 is not set
952# CONFIG_RTC_DRV_MAX6900 is not set
953# CONFIG_RTC_DRV_RS5C372 is not set
954# CONFIG_RTC_DRV_ISL1208 is not set
955# CONFIG_RTC_DRV_X1205 is not set
956# CONFIG_RTC_DRV_PCF8563 is not set
957# CONFIG_RTC_DRV_PCF8583 is not set
958# CONFIG_RTC_DRV_M41T80 is not set
959# CONFIG_RTC_DRV_S35390A is not set
960# CONFIG_RTC_DRV_FM3130 is not set
961# CONFIG_RTC_DRV_RX8581 is not set
962
963#
964# SPI RTC drivers
965#
966
967#
968# Platform RTC drivers
969#
970# CONFIG_RTC_DRV_CMOS is not set
971# CONFIG_RTC_DRV_DS1286 is not set
972# CONFIG_RTC_DRV_DS1511 is not set
973# CONFIG_RTC_DRV_DS1553 is not set
974# CONFIG_RTC_DRV_DS1742 is not set
975# CONFIG_RTC_DRV_STK17TA8 is not set
976# CONFIG_RTC_DRV_M48T86 is not set
977# CONFIG_RTC_DRV_M48T35 is not set
978# CONFIG_RTC_DRV_M48T59 is not set
979# CONFIG_RTC_DRV_BQ4802 is not set
980# CONFIG_RTC_DRV_V3020 is not set
981
982#
983# on-CPU RTC drivers
984#
985# CONFIG_RTC_DRV_PPC is not set
986# CONFIG_DMADEVICES is not set
987# CONFIG_UIO is not set
988# CONFIG_STAGING is not set
989
990#
991# File systems
992#
993CONFIG_EXT2_FS=y
994# CONFIG_EXT2_FS_XATTR is not set
995# CONFIG_EXT2_FS_XIP is not set
996CONFIG_EXT3_FS=y
997CONFIG_EXT3_FS_XATTR=y
998# CONFIG_EXT3_FS_POSIX_ACL is not set
999# CONFIG_EXT3_FS_SECURITY is not set
1000# CONFIG_EXT4_FS is not set
1001CONFIG_JBD=y
1002CONFIG_FS_MBCACHE=y
1003# CONFIG_REISERFS_FS is not set
1004# CONFIG_JFS_FS is not set
1005# CONFIG_FS_POSIX_ACL is not set
1006CONFIG_FILE_LOCKING=y
1007# CONFIG_XFS_FS is not set
1008# CONFIG_OCFS2_FS is not set
1009# CONFIG_BTRFS_FS is not set
1010CONFIG_DNOTIFY=y
1011CONFIG_INOTIFY=y
1012CONFIG_INOTIFY_USER=y
1013# CONFIG_QUOTA is not set
1014# CONFIG_AUTOFS_FS is not set
1015# CONFIG_AUTOFS4_FS is not set
1016# CONFIG_FUSE_FS is not set
1017
1018#
1019# CD-ROM/DVD Filesystems
1020#
1021# CONFIG_ISO9660_FS is not set
1022# CONFIG_UDF_FS is not set
1023
1024#
1025# DOS/FAT/NT Filesystems
1026#
1027# CONFIG_MSDOS_FS is not set
1028# CONFIG_VFAT_FS is not set
1029# CONFIG_NTFS_FS is not set
1030
1031#
1032# Pseudo filesystems
1033#
1034CONFIG_PROC_FS=y
1035CONFIG_PROC_KCORE=y
1036CONFIG_PROC_SYSCTL=y
1037CONFIG_PROC_PAGE_MONITOR=y
1038CONFIG_SYSFS=y
1039CONFIG_TMPFS=y
1040# CONFIG_TMPFS_POSIX_ACL is not set
1041# CONFIG_HUGETLB_PAGE is not set
1042# CONFIG_CONFIGFS_FS is not set
1043CONFIG_MISC_FILESYSTEMS=y
1044# CONFIG_ADFS_FS is not set
1045# CONFIG_AFFS_FS is not set
1046# CONFIG_HFS_FS is not set
1047# CONFIG_HFSPLUS_FS is not set
1048# CONFIG_BEFS_FS is not set
1049# CONFIG_BFS_FS is not set
1050# CONFIG_EFS_FS is not set
1051# CONFIG_CRAMFS is not set
1052# CONFIG_SQUASHFS is not set
1053# CONFIG_VXFS_FS is not set
1054# CONFIG_MINIX_FS is not set
1055# CONFIG_OMFS_FS is not set
1056# CONFIG_HPFS_FS is not set
1057# CONFIG_QNX4FS_FS is not set
1058# CONFIG_ROMFS_FS is not set
1059# CONFIG_SYSV_FS is not set
1060# CONFIG_UFS_FS is not set
1061CONFIG_NETWORK_FILESYSTEMS=y
1062CONFIG_NFS_FS=y
1063CONFIG_NFS_V3=y
1064# CONFIG_NFS_V3_ACL is not set
1065CONFIG_NFS_V4=y
1066CONFIG_ROOT_NFS=y
1067# CONFIG_NFSD is not set
1068CONFIG_LOCKD=y
1069CONFIG_LOCKD_V4=y
1070CONFIG_NFS_COMMON=y
1071CONFIG_SUNRPC=y
1072CONFIG_SUNRPC_GSS=y
1073# CONFIG_SUNRPC_REGISTER_V4 is not set
1074CONFIG_RPCSEC_GSS_KRB5=y
1075# CONFIG_RPCSEC_GSS_SPKM3 is not set
1076# CONFIG_SMB_FS is not set
1077# CONFIG_CIFS is not set
1078# CONFIG_NCP_FS is not set
1079# CONFIG_CODA_FS is not set
1080# CONFIG_AFS_FS is not set
1081
1082#
1083# Partition Types
1084#
1085CONFIG_PARTITION_ADVANCED=y
1086# CONFIG_ACORN_PARTITION is not set
1087# CONFIG_OSF_PARTITION is not set
1088# CONFIG_AMIGA_PARTITION is not set
1089# CONFIG_ATARI_PARTITION is not set
1090# CONFIG_MAC_PARTITION is not set
1091# CONFIG_MSDOS_PARTITION is not set
1092# CONFIG_LDM_PARTITION is not set
1093# CONFIG_SGI_PARTITION is not set
1094# CONFIG_ULTRIX_PARTITION is not set
1095# CONFIG_SUN_PARTITION is not set
1096# CONFIG_KARMA_PARTITION is not set
1097# CONFIG_EFI_PARTITION is not set
1098# CONFIG_SYSV68_PARTITION is not set
1099# CONFIG_NLS is not set
1100# CONFIG_DLM is not set
1101
1102#
1103# Library routines
1104#
1105CONFIG_BITREVERSE=y
1106CONFIG_GENERIC_FIND_LAST_BIT=y
1107# CONFIG_CRC_CCITT is not set
1108# CONFIG_CRC16 is not set
1109# CONFIG_CRC_T10DIF is not set
1110# CONFIG_CRC_ITU_T is not set
1111CONFIG_CRC32=y
1112# CONFIG_CRC7 is not set
1113# CONFIG_LIBCRC32C is not set
1114CONFIG_PLIST=y
1115CONFIG_HAS_IOMEM=y
1116CONFIG_HAS_IOPORT=y
1117CONFIG_HAS_DMA=y
1118CONFIG_HAVE_LMB=y
1119
1120#
1121# Kernel hacking
1122#
1123# CONFIG_PRINTK_TIME is not set
1124CONFIG_ENABLE_WARN_DEPRECATED=y
1125CONFIG_ENABLE_MUST_CHECK=y
1126CONFIG_FRAME_WARN=1024
1127# CONFIG_MAGIC_SYSRQ is not set
1128# CONFIG_UNUSED_SYMBOLS is not set
1129# CONFIG_DEBUG_FS is not set
1130# CONFIG_HEADERS_CHECK is not set
1131CONFIG_DEBUG_KERNEL=y
1132# CONFIG_DEBUG_SHIRQ is not set
1133CONFIG_DETECT_SOFTLOCKUP=y
1134# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1135CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1136CONFIG_SCHED_DEBUG=y
1137# CONFIG_SCHEDSTATS is not set
1138# CONFIG_TIMER_STATS is not set
1139# CONFIG_DEBUG_OBJECTS is not set
1140# CONFIG_SLUB_DEBUG_ON is not set
1141# CONFIG_SLUB_STATS is not set
1142# CONFIG_DEBUG_RT_MUTEXES is not set
1143# CONFIG_RT_MUTEX_TESTER is not set
1144# CONFIG_DEBUG_SPINLOCK is not set
1145# CONFIG_DEBUG_MUTEXES is not set
1146# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1147# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1148# CONFIG_DEBUG_KOBJECT is not set
1149# CONFIG_DEBUG_BUGVERBOSE is not set
1150# CONFIG_DEBUG_INFO is not set
1151# CONFIG_DEBUG_VM is not set
1152# CONFIG_DEBUG_WRITECOUNT is not set
1153# CONFIG_DEBUG_MEMORY_INIT is not set
1154# CONFIG_DEBUG_LIST is not set
1155# CONFIG_DEBUG_SG is not set
1156# CONFIG_DEBUG_NOTIFIERS is not set
1157# CONFIG_BOOT_PRINTK_DELAY is not set
1158# CONFIG_RCU_TORTURE_TEST is not set
1159# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1160# CONFIG_BACKTRACE_SELF_TEST is not set
1161# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1162# CONFIG_FAULT_INJECTION is not set
1163# CONFIG_LATENCYTOP is not set
1164CONFIG_SYSCTL_SYSCALL_CHECK=y
1165CONFIG_HAVE_FUNCTION_TRACER=y
1166CONFIG_HAVE_DYNAMIC_FTRACE=y
1167CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1168
1169#
1170# Tracers
1171#
1172# CONFIG_FUNCTION_TRACER is not set
1173# CONFIG_SCHED_TRACER is not set
1174# CONFIG_CONTEXT_SWITCH_TRACER is not set
1175# CONFIG_BOOT_TRACER is not set
1176# CONFIG_TRACE_BRANCH_PROFILING is not set
1177# CONFIG_STACK_TRACER is not set
1178# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1179# CONFIG_SAMPLES is not set
1180CONFIG_HAVE_ARCH_KGDB=y
1181# CONFIG_KGDB is not set
1182CONFIG_PRINT_STACK_DEPTH=64
1183# CONFIG_DEBUG_STACKOVERFLOW is not set
1184# CONFIG_DEBUG_STACK_USAGE is not set
1185# CONFIG_DEBUG_PAGEALLOC is not set
1186# CONFIG_CODE_PATCHING_SELFTEST is not set
1187# CONFIG_FTR_FIXUP_SELFTEST is not set
1188# CONFIG_MSI_BITMAP_SELFTEST is not set
1189# CONFIG_XMON is not set
1190# CONFIG_IRQSTACKS is not set
1191# CONFIG_BDI_SWITCH is not set
1192CONFIG_PPC_EARLY_DEBUG=y
1193# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1194# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1195# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
1196# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1197# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1198# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
1199# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
1200# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
1201# CONFIG_PPC_EARLY_DEBUG_44x is not set
1202# CONFIG_PPC_EARLY_DEBUG_40x is not set
1203# CONFIG_PPC_EARLY_DEBUG_CPM is not set
1204
1205#
1206# Security options
1207#
1208# CONFIG_KEYS is not set
1209# CONFIG_SECURITY is not set
1210# CONFIG_SECURITYFS is not set
1211# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1212CONFIG_CRYPTO=y
1213
1214#
1215# Crypto core or helper
1216#
1217# CONFIG_CRYPTO_FIPS is not set
1218CONFIG_CRYPTO_ALGAPI=y
1219CONFIG_CRYPTO_ALGAPI2=y
1220CONFIG_CRYPTO_AEAD2=y
1221CONFIG_CRYPTO_BLKCIPHER=y
1222CONFIG_CRYPTO_BLKCIPHER2=y
1223CONFIG_CRYPTO_HASH=y
1224CONFIG_CRYPTO_HASH2=y
1225CONFIG_CRYPTO_RNG2=y
1226CONFIG_CRYPTO_MANAGER=y
1227CONFIG_CRYPTO_MANAGER2=y
1228# CONFIG_CRYPTO_GF128MUL is not set
1229# CONFIG_CRYPTO_NULL is not set
1230# CONFIG_CRYPTO_CRYPTD is not set
1231# CONFIG_CRYPTO_AUTHENC is not set
1232# CONFIG_CRYPTO_TEST is not set
1233
1234#
1235# Authenticated Encryption with Associated Data
1236#
1237# CONFIG_CRYPTO_CCM is not set
1238# CONFIG_CRYPTO_GCM is not set
1239# CONFIG_CRYPTO_SEQIV is not set
1240
1241#
1242# Block modes
1243#
1244CONFIG_CRYPTO_CBC=y
1245# CONFIG_CRYPTO_CTR is not set
1246# CONFIG_CRYPTO_CTS is not set
1247CONFIG_CRYPTO_ECB=m
1248# CONFIG_CRYPTO_LRW is not set
1249CONFIG_CRYPTO_PCBC=m
1250# CONFIG_CRYPTO_XTS is not set
1251
1252#
1253# Hash modes
1254#
1255# CONFIG_CRYPTO_HMAC is not set
1256# CONFIG_CRYPTO_XCBC is not set
1257
1258#
1259# Digest
1260#
1261# CONFIG_CRYPTO_CRC32C is not set
1262# CONFIG_CRYPTO_MD4 is not set
1263CONFIG_CRYPTO_MD5=y
1264# CONFIG_CRYPTO_MICHAEL_MIC is not set
1265# CONFIG_CRYPTO_RMD128 is not set
1266# CONFIG_CRYPTO_RMD160 is not set
1267# CONFIG_CRYPTO_RMD256 is not set
1268# CONFIG_CRYPTO_RMD320 is not set
1269# CONFIG_CRYPTO_SHA1 is not set
1270# CONFIG_CRYPTO_SHA256 is not set
1271# CONFIG_CRYPTO_SHA512 is not set
1272# CONFIG_CRYPTO_TGR192 is not set
1273# CONFIG_CRYPTO_WP512 is not set
1274
1275#
1276# Ciphers
1277#
1278# CONFIG_CRYPTO_AES is not set
1279# CONFIG_CRYPTO_ANUBIS is not set
1280# CONFIG_CRYPTO_ARC4 is not set
1281# CONFIG_CRYPTO_BLOWFISH is not set
1282# CONFIG_CRYPTO_CAMELLIA is not set
1283# CONFIG_CRYPTO_CAST5 is not set
1284# CONFIG_CRYPTO_CAST6 is not set
1285CONFIG_CRYPTO_DES=y
1286# CONFIG_CRYPTO_FCRYPT is not set
1287# CONFIG_CRYPTO_KHAZAD is not set
1288# CONFIG_CRYPTO_SALSA20 is not set
1289# CONFIG_CRYPTO_SEED is not set
1290# CONFIG_CRYPTO_SERPENT is not set
1291# CONFIG_CRYPTO_TEA is not set
1292# CONFIG_CRYPTO_TWOFISH is not set
1293
1294#
1295# Compression
1296#
1297# CONFIG_CRYPTO_DEFLATE is not set
1298# CONFIG_CRYPTO_LZO is not set
1299
1300#
1301# Random Number Generation
1302#
1303# CONFIG_CRYPTO_ANSI_CPRNG is not set
1304CONFIG_CRYPTO_HW=y
1305# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1306# CONFIG_CRYPTO_DEV_TALITOS is not set
1307# CONFIG_PPC_CLOCK is not set
1308CONFIG_PPC_LIB_RHEAP=y
1309# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index f95961c04a20..41209e3a6545 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:13 2009 4# Wed May 13 17:22:18 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -113,16 +127,19 @@ CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 128CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 129CONFIG_SLUB_DEBUG=y
130CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
117CONFIG_SLUB=y 132CONFIG_SLUB=y
118# CONFIG_SLOB is not set 133# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 134# CONFIG_PROFILING is not set
135# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 136CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y 138CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
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 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx_CDS=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -234,9 +246,12 @@ CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 246CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 247CONFIG_VIRT_TO_BUS=y
236CONFIG_UNEVICTABLE_LRU=y 248CONFIG_UNEVICTABLE_LRU=y
249CONFIG_HAVE_MLOCK=y
250CONFIG_HAVE_MLOCKED_PAGE_BIT=y
237CONFIG_PPC_4K_PAGES=y 251CONFIG_PPC_4K_PAGES=y
238# CONFIG_PPC_16K_PAGES is not set 252# CONFIG_PPC_16K_PAGES is not set
239# CONFIG_PPC_64K_PAGES is not set 253# CONFIG_PPC_64K_PAGES is not set
254# CONFIG_PPC_256K_PAGES is not set
240CONFIG_FORCE_MAX_ZONEORDER=11 255CONFIG_FORCE_MAX_ZONEORDER=11
241CONFIG_PROC_DEVICETREE=y 256CONFIG_PROC_DEVICETREE=y
242# CONFIG_CMDLINE_BOOL is not set 257# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_LEGACY is not set 277# CONFIG_PCI_LEGACY is not set
263# CONFIG_PCI_DEBUG is not set 278# CONFIG_PCI_DEBUG is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_PCCARD is not set 281# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 282# CONFIG_HOTPLUG_PCI is not set
267# CONFIG_HAS_RAPIDIO is not set 283# CONFIG_HAS_RAPIDIO is not set
@@ -275,17 +291,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275# Default settings for advanced configuration options are used 291# Default settings for advanced configuration options are used
276# 292#
277CONFIG_LOWMEM_SIZE=0x30000000 293CONFIG_LOWMEM_SIZE=0x30000000
294CONFIG_LOWMEM_CAM_NUM=3
278CONFIG_PAGE_OFFSET=0xc0000000 295CONFIG_PAGE_OFFSET=0xc0000000
279CONFIG_KERNEL_START=0xc0000000 296CONFIG_KERNEL_START=0xc0000000
280CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
281CONFIG_PHYSICAL_ALIGN=0x10000000 298CONFIG_PHYSICAL_ALIGN=0x04000000
282CONFIG_TASK_SIZE=0xc0000000 299CONFIG_TASK_SIZE=0xc0000000
283CONFIG_NET=y 300CONFIG_NET=y
284 301
285# 302#
286# Networking options 303# Networking options
287# 304#
288CONFIG_COMPAT_NET_DEV_OPS=y
289CONFIG_PACKET=y 305CONFIG_PACKET=y
290# CONFIG_PACKET_MMAP is not set 306# CONFIG_PACKET_MMAP is not set
291CONFIG_UNIX=y 307CONFIG_UNIX=y
@@ -341,6 +357,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
341# CONFIG_LAPB is not set 357# CONFIG_LAPB is not set
342# CONFIG_ECONET is not set 358# CONFIG_ECONET is not set
343# CONFIG_WAN_ROUTER is not set 359# CONFIG_WAN_ROUTER is not set
360# CONFIG_PHONET is not set
344# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
345# CONFIG_DCB is not set 362# CONFIG_DCB is not set
346 363
@@ -353,7 +370,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
353# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
354# CONFIG_BT is not set 371# CONFIG_BT is not set
355# CONFIG_AF_RXRPC is not set 372# CONFIG_AF_RXRPC is not set
356# CONFIG_PHONET is not set
357CONFIG_WIRELESS=y 373CONFIG_WIRELESS=y
358# CONFIG_CFG80211 is not set 374# CONFIG_CFG80211 is not set
359CONFIG_WIRELESS_OLD_REGULATORY=y 375CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -402,18 +418,23 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
402# CONFIG_BLK_DEV_HD is not set 418# CONFIG_BLK_DEV_HD is not set
403CONFIG_MISC_DEVICES=y 419CONFIG_MISC_DEVICES=y
404# CONFIG_PHANTOM is not set 420# CONFIG_PHANTOM is not set
405# CONFIG_EEPROM_93CX6 is not set
406# CONFIG_SGI_IOC4 is not set 421# CONFIG_SGI_IOC4 is not set
407# CONFIG_TIFM_CORE is not set 422# CONFIG_TIFM_CORE is not set
408# CONFIG_ENCLOSURE_SERVICES is not set 423# CONFIG_ENCLOSURE_SERVICES is not set
409# CONFIG_HP_ILO is not set 424# CONFIG_HP_ILO is not set
410# CONFIG_C2PORT is not set 425# CONFIG_C2PORT is not set
426
427#
428# EEPROM support
429#
430# CONFIG_EEPROM_93CX6 is not set
411CONFIG_HAVE_IDE=y 431CONFIG_HAVE_IDE=y
412CONFIG_IDE=y 432CONFIG_IDE=y
413 433
414# 434#
415# Please see Documentation/ide/ide.txt for help/info on IDE drives 435# Please see Documentation/ide/ide.txt for help/info on IDE drives
416# 436#
437CONFIG_IDE_XFER_MODE=y
417CONFIG_IDE_TIMINGS=y 438CONFIG_IDE_TIMINGS=y
418# CONFIG_BLK_DEV_IDE_SATA is not set 439# CONFIG_BLK_DEV_IDE_SATA is not set
419CONFIG_IDE_GD=y 440CONFIG_IDE_GD=y
@@ -488,6 +509,7 @@ CONFIG_BLK_DEV_IDEDMA=y
488# CONFIG_I2O is not set 509# CONFIG_I2O is not set
489# CONFIG_MACINTOSH_DRIVERS is not set 510# CONFIG_MACINTOSH_DRIVERS is not set
490CONFIG_NETDEVICES=y 511CONFIG_NETDEVICES=y
512CONFIG_COMPAT_NET_DEV_OPS=y
491# CONFIG_DUMMY is not set 513# CONFIG_DUMMY is not set
492# CONFIG_BONDING is not set 514# CONFIG_BONDING is not set
493# CONFIG_MACVLAN is not set 515# CONFIG_MACVLAN is not set
@@ -521,6 +543,8 @@ CONFIG_MII=y
521# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
522# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
523# CONFIG_NET_VENDOR_3COM is not set 545# CONFIG_NET_VENDOR_3COM is not set
546# CONFIG_ETHOC is not set
547# CONFIG_DNET is not set
524# CONFIG_NET_TULIP is not set 548# CONFIG_NET_TULIP is not set
525# CONFIG_HP100 is not set 549# CONFIG_HP100 is not set
526# CONFIG_IBM_NEW_EMAC_ZMII is not set 550# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -540,6 +564,7 @@ CONFIG_E1000=y
540# CONFIG_E1000E is not set 564# CONFIG_E1000E is not set
541# CONFIG_IP1000 is not set 565# CONFIG_IP1000 is not set
542# CONFIG_IGB is not set 566# CONFIG_IGB is not set
567# CONFIG_IGBVF is not set
543# CONFIG_NS83820 is not set 568# CONFIG_NS83820 is not set
544# CONFIG_HAMACHI is not set 569# CONFIG_HAMACHI is not set
545# CONFIG_YELLOWFIN is not set 570# CONFIG_YELLOWFIN is not set
@@ -550,10 +575,12 @@ CONFIG_E1000=y
550# CONFIG_VIA_VELOCITY is not set 575# CONFIG_VIA_VELOCITY is not set
551# CONFIG_TIGON3 is not set 576# CONFIG_TIGON3 is not set
552# CONFIG_BNX2 is not set 577# CONFIG_BNX2 is not set
578CONFIG_FSL_PQ_MDIO=y
553CONFIG_GIANFAR=y 579CONFIG_GIANFAR=y
554# CONFIG_QLA3XXX is not set 580# CONFIG_QLA3XXX is not set
555# CONFIG_ATL1 is not set 581# CONFIG_ATL1 is not set
556# CONFIG_ATL1E is not set 582# CONFIG_ATL1E is not set
583# CONFIG_ATL1C is not set
557# CONFIG_JME is not set 584# CONFIG_JME is not set
558CONFIG_NETDEV_10000=y 585CONFIG_NETDEV_10000=y
559# CONFIG_CHELSIO_T1 is not set 586# CONFIG_CHELSIO_T1 is not set
@@ -563,6 +590,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
563# CONFIG_IXGBE is not set 590# CONFIG_IXGBE is not set
564# CONFIG_IXGB is not set 591# CONFIG_IXGB is not set
565# CONFIG_S2IO is not set 592# CONFIG_S2IO is not set
593# CONFIG_VXGE is not set
566# CONFIG_MYRI10GE is not set 594# CONFIG_MYRI10GE is not set
567# CONFIG_NETXEN_NIC is not set 595# CONFIG_NETXEN_NIC is not set
568# CONFIG_NIU is not set 596# CONFIG_NIU is not set
@@ -572,6 +600,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
572# CONFIG_BNX2X is not set 600# CONFIG_BNX2X is not set
573# CONFIG_QLGE is not set 601# CONFIG_QLGE is not set
574# CONFIG_SFC is not set 602# CONFIG_SFC is not set
603# CONFIG_BE2NET is not set
575# CONFIG_TR is not set 604# CONFIG_TR is not set
576 605
577# 606#
@@ -579,7 +608,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
579# 608#
580# CONFIG_WLAN_PRE80211 is not set 609# CONFIG_WLAN_PRE80211 is not set
581# CONFIG_WLAN_80211 is not set 610# CONFIG_WLAN_80211 is not set
582# CONFIG_IWLWIFI_LEDS is not set
583 611
584# 612#
585# Enable WiMAX (Networking options) to see the WiMAX drivers 613# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -750,7 +778,6 @@ CONFIG_HID=y
750# 778#
751# Special HID drivers 779# Special HID drivers
752# 780#
753CONFIG_HID_COMPAT=y
754CONFIG_USB_SUPPORT=y 781CONFIG_USB_SUPPORT=y
755CONFIG_USB_ARCH_HAS_HCD=y 782CONFIG_USB_ARCH_HAS_HCD=y
756CONFIG_USB_ARCH_HAS_OHCI=y 783CONFIG_USB_ARCH_HAS_OHCI=y
@@ -764,7 +791,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
764# 791#
765 792
766# 793#
767# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 794# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
768# 795#
769# CONFIG_USB_GADGET is not set 796# CONFIG_USB_GADGET is not set
770 797
@@ -780,6 +807,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
780# CONFIG_EDAC is not set 807# CONFIG_EDAC is not set
781# CONFIG_RTC_CLASS is not set 808# CONFIG_RTC_CLASS is not set
782# CONFIG_DMADEVICES is not set 809# CONFIG_DMADEVICES is not set
810# CONFIG_AUXDISPLAY is not set
783# CONFIG_UIO is not set 811# CONFIG_UIO is not set
784# CONFIG_STAGING is not set 812# CONFIG_STAGING is not set
785 813
@@ -790,6 +818,7 @@ CONFIG_EXT2_FS=y
790# CONFIG_EXT2_FS_XATTR is not set 818# CONFIG_EXT2_FS_XATTR is not set
791# CONFIG_EXT2_FS_XIP is not set 819# CONFIG_EXT2_FS_XIP is not set
792CONFIG_EXT3_FS=y 820CONFIG_EXT3_FS=y
821# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
793CONFIG_EXT3_FS_XATTR=y 822CONFIG_EXT3_FS_XATTR=y
794# CONFIG_EXT3_FS_POSIX_ACL is not set 823# CONFIG_EXT3_FS_POSIX_ACL is not set
795# CONFIG_EXT3_FS_SECURITY is not set 824# CONFIG_EXT3_FS_SECURITY is not set
@@ -812,6 +841,11 @@ CONFIG_INOTIFY_USER=y
812# CONFIG_FUSE_FS is not set 841# CONFIG_FUSE_FS is not set
813 842
814# 843#
844# Caches
845#
846# CONFIG_FSCACHE is not set
847
848#
815# CD-ROM/DVD Filesystems 849# CD-ROM/DVD Filesystems
816# 850#
817# CONFIG_ISO9660_FS is not set 851# CONFIG_ISO9660_FS is not set
@@ -854,6 +888,7 @@ CONFIG_MISC_FILESYSTEMS=y
854# CONFIG_ROMFS_FS is not set 888# CONFIG_ROMFS_FS is not set
855# CONFIG_SYSV_FS is not set 889# CONFIG_SYSV_FS is not set
856# CONFIG_UFS_FS is not set 890# CONFIG_UFS_FS is not set
891# CONFIG_NILFS2_FS is not set
857CONFIG_NETWORK_FILESYSTEMS=y 892CONFIG_NETWORK_FILESYSTEMS=y
858CONFIG_NFS_FS=y 893CONFIG_NFS_FS=y
859# CONFIG_NFS_V3 is not set 894# CONFIG_NFS_V3 is not set
@@ -863,7 +898,6 @@ CONFIG_ROOT_NFS=y
863CONFIG_LOCKD=y 898CONFIG_LOCKD=y
864CONFIG_NFS_COMMON=y 899CONFIG_NFS_COMMON=y
865CONFIG_SUNRPC=y 900CONFIG_SUNRPC=y
866# CONFIG_SUNRPC_REGISTER_V4 is not set
867# CONFIG_RPCSEC_GSS_KRB5 is not set 901# CONFIG_RPCSEC_GSS_KRB5 is not set
868# CONFIG_RPCSEC_GSS_SPKM3 is not set 902# CONFIG_RPCSEC_GSS_SPKM3 is not set
869# CONFIG_SMB_FS is not set 903# CONFIG_SMB_FS is not set
@@ -891,6 +925,7 @@ CONFIG_PARTITION_ADVANCED=y
891# CONFIG_SYSV68_PARTITION is not set 925# CONFIG_SYSV68_PARTITION is not set
892# CONFIG_NLS is not set 926# CONFIG_NLS is not set
893# CONFIG_DLM is not set 927# CONFIG_DLM is not set
928# CONFIG_BINARY_PRINTF is not set
894 929
895# 930#
896# Library routines 931# Library routines
@@ -904,11 +939,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
904CONFIG_CRC32=y 939CONFIG_CRC32=y
905# CONFIG_CRC7 is not set 940# CONFIG_CRC7 is not set
906# CONFIG_LIBCRC32C is not set 941# CONFIG_LIBCRC32C is not set
907CONFIG_PLIST=y 942CONFIG_ZLIB_INFLATE=y
943CONFIG_DECOMPRESS_GZIP=y
908CONFIG_HAS_IOMEM=y 944CONFIG_HAS_IOMEM=y
909CONFIG_HAS_IOPORT=y 945CONFIG_HAS_IOPORT=y
910CONFIG_HAS_DMA=y 946CONFIG_HAS_DMA=y
911CONFIG_HAVE_LMB=y 947CONFIG_HAVE_LMB=y
948CONFIG_NLATTR=y
912 949
913# 950#
914# Kernel hacking 951# Kernel hacking
@@ -926,6 +963,9 @@ CONFIG_DEBUG_KERNEL=y
926CONFIG_DETECT_SOFTLOCKUP=y 963CONFIG_DETECT_SOFTLOCKUP=y
927# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 964# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
928CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 965CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
966CONFIG_DETECT_HUNG_TASK=y
967# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
968CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
929CONFIG_SCHED_DEBUG=y 969CONFIG_SCHED_DEBUG=y
930# CONFIG_SCHEDSTATS is not set 970# CONFIG_SCHEDSTATS is not set
931# CONFIG_TIMER_STATS is not set 971# CONFIG_TIMER_STATS is not set
@@ -955,9 +995,12 @@ CONFIG_DEBUG_MUTEXES=y
955# CONFIG_FAULT_INJECTION is not set 995# CONFIG_FAULT_INJECTION is not set
956# CONFIG_LATENCYTOP is not set 996# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 997CONFIG_SYSCTL_SYSCALL_CHECK=y
998# CONFIG_DEBUG_PAGEALLOC is not set
958CONFIG_HAVE_FUNCTION_TRACER=y 999CONFIG_HAVE_FUNCTION_TRACER=y
1000CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 1001CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1002CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1003CONFIG_TRACING_SUPPORT=y
961 1004
962# 1005#
963# Tracers 1006# Tracers
@@ -965,17 +1008,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
965# CONFIG_FUNCTION_TRACER is not set 1008# CONFIG_FUNCTION_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 1009# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 1010# CONFIG_CONTEXT_SWITCH_TRACER is not set
1011# CONFIG_EVENT_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 1012# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set 1013# CONFIG_TRACE_BRANCH_PROFILING is not set
970# CONFIG_STACK_TRACER is not set 1014# CONFIG_STACK_TRACER is not set
971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1015# CONFIG_KMEMTRACE is not set
1016# CONFIG_WORKQUEUE_TRACER is not set
1017# CONFIG_BLK_DEV_IO_TRACE is not set
972# CONFIG_SAMPLES is not set 1018# CONFIG_SAMPLES is not set
973CONFIG_HAVE_ARCH_KGDB=y 1019CONFIG_HAVE_ARCH_KGDB=y
974# CONFIG_KGDB is not set 1020# CONFIG_KGDB is not set
975CONFIG_PRINT_STACK_DEPTH=64 1021CONFIG_PRINT_STACK_DEPTH=64
976# CONFIG_DEBUG_STACKOVERFLOW is not set 1022# CONFIG_DEBUG_STACKOVERFLOW is not set
977# CONFIG_DEBUG_STACK_USAGE is not set 1023# CONFIG_DEBUG_STACK_USAGE is not set
978# CONFIG_DEBUG_PAGEALLOC is not set
979# CONFIG_CODE_PATCHING_SELFTEST is not set 1024# CONFIG_CODE_PATCHING_SELFTEST is not set
980# CONFIG_FTR_FIXUP_SELFTEST is not set 1025# CONFIG_FTR_FIXUP_SELFTEST is not set
981# CONFIG_MSI_BITMAP_SELFTEST is not set 1026# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1068,6 +1113,7 @@ CONFIG_CRYPTO=y
1068# Compression 1113# Compression
1069# 1114#
1070# CONFIG_CRYPTO_DEFLATE is not set 1115# CONFIG_CRYPTO_DEFLATE is not set
1116# CONFIG_CRYPTO_ZLIB is not set
1071# CONFIG_CRYPTO_LZO is not set 1117# CONFIG_CRYPTO_LZO is not set
1072 1118
1073# 1119#
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index e68e80987aa9..6c36c9c7abfd 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:15 2009 4# Wed May 13 17:22:19 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,20 +100,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_HOTPLUG=y 114CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106CONFIG_EPOLL=y 120CONFIG_EPOLL=y
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_SHMEM=y
111CONFIG_AIO=y 125CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
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 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169# CONFIG_TQM8540 is not set 181# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -258,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
258# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
259# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
260# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
261# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
262# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
263# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -271,17 +287,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# Default settings for advanced configuration options are used 287# Default settings for advanced configuration options are used
272# 288#
273CONFIG_LOWMEM_SIZE=0x30000000 289CONFIG_LOWMEM_SIZE=0x30000000
290CONFIG_LOWMEM_CAM_NUM=3
274CONFIG_PAGE_OFFSET=0xc0000000 291CONFIG_PAGE_OFFSET=0xc0000000
275CONFIG_KERNEL_START=0xc0000000 292CONFIG_KERNEL_START=0xc0000000
276CONFIG_PHYSICAL_START=0x00000000 293CONFIG_PHYSICAL_START=0x00000000
277CONFIG_PHYSICAL_ALIGN=0x10000000 294CONFIG_PHYSICAL_ALIGN=0x04000000
278CONFIG_TASK_SIZE=0xc0000000 295CONFIG_TASK_SIZE=0xc0000000
279CONFIG_NET=y 296CONFIG_NET=y
280 297
281# 298#
282# Networking options 299# Networking options
283# 300#
284CONFIG_COMPAT_NET_DEV_OPS=y
285CONFIG_PACKET=y 301CONFIG_PACKET=y
286# CONFIG_PACKET_MMAP is not set 302# CONFIG_PACKET_MMAP is not set
287CONFIG_UNIX=y 303CONFIG_UNIX=y
@@ -337,6 +353,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
337# CONFIG_LAPB is not set 353# CONFIG_LAPB is not set
338# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
339# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
356# CONFIG_PHONET is not set
340# CONFIG_NET_SCHED is not set 357# CONFIG_NET_SCHED is not set
341# CONFIG_DCB is not set 358# CONFIG_DCB is not set
342 359
@@ -349,7 +366,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
349# CONFIG_IRDA is not set 366# CONFIG_IRDA is not set
350# CONFIG_BT is not set 367# CONFIG_BT is not set
351# CONFIG_AF_RXRPC is not set 368# CONFIG_AF_RXRPC is not set
352# CONFIG_PHONET is not set
353CONFIG_WIRELESS=y 369CONFIG_WIRELESS=y
354# CONFIG_CFG80211 is not set 370# CONFIG_CFG80211 is not set
355CONFIG_WIRELESS_OLD_REGULATORY=y 371CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -396,12 +412,16 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
396# CONFIG_BLK_DEV_HD is not set 412# CONFIG_BLK_DEV_HD is not set
397CONFIG_MISC_DEVICES=y 413CONFIG_MISC_DEVICES=y
398# CONFIG_PHANTOM is not set 414# CONFIG_PHANTOM is not set
399# CONFIG_EEPROM_93CX6 is not set
400# CONFIG_SGI_IOC4 is not set 415# CONFIG_SGI_IOC4 is not set
401# CONFIG_TIFM_CORE is not set 416# CONFIG_TIFM_CORE is not set
402# CONFIG_ENCLOSURE_SERVICES is not set 417# CONFIG_ENCLOSURE_SERVICES is not set
403# CONFIG_HP_ILO is not set 418# CONFIG_HP_ILO is not set
404# CONFIG_C2PORT is not set 419# CONFIG_C2PORT is not set
420
421#
422# EEPROM support
423#
424# CONFIG_EEPROM_93CX6 is not set
405CONFIG_HAVE_IDE=y 425CONFIG_HAVE_IDE=y
406# CONFIG_IDE is not set 426# CONFIG_IDE is not set
407 427
@@ -428,6 +448,7 @@ CONFIG_HAVE_IDE=y
428# CONFIG_I2O is not set 448# CONFIG_I2O is not set
429# CONFIG_MACINTOSH_DRIVERS is not set 449# CONFIG_MACINTOSH_DRIVERS is not set
430CONFIG_NETDEVICES=y 450CONFIG_NETDEVICES=y
451CONFIG_COMPAT_NET_DEV_OPS=y
431# CONFIG_DUMMY is not set 452# CONFIG_DUMMY is not set
432# CONFIG_BONDING is not set 453# CONFIG_BONDING is not set
433# CONFIG_MACVLAN is not set 454# CONFIG_MACVLAN is not set
@@ -461,6 +482,8 @@ CONFIG_MII=y
461# CONFIG_SUNGEM is not set 482# CONFIG_SUNGEM is not set
462# CONFIG_CASSINI is not set 483# CONFIG_CASSINI is not set
463# CONFIG_NET_VENDOR_3COM is not set 484# CONFIG_NET_VENDOR_3COM is not set
485# CONFIG_ETHOC is not set
486# CONFIG_DNET is not set
464# CONFIG_NET_TULIP is not set 487# CONFIG_NET_TULIP is not set
465# CONFIG_HP100 is not set 488# CONFIG_HP100 is not set
466# CONFIG_IBM_NEW_EMAC_ZMII is not set 489# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -480,6 +503,7 @@ CONFIG_NETDEV_1000=y
480# CONFIG_E1000E is not set 503# CONFIG_E1000E is not set
481# CONFIG_IP1000 is not set 504# CONFIG_IP1000 is not set
482# CONFIG_IGB is not set 505# CONFIG_IGB is not set
506# CONFIG_IGBVF is not set
483# CONFIG_NS83820 is not set 507# CONFIG_NS83820 is not set
484# CONFIG_HAMACHI is not set 508# CONFIG_HAMACHI is not set
485# CONFIG_YELLOWFIN is not set 509# CONFIG_YELLOWFIN is not set
@@ -490,10 +514,12 @@ CONFIG_NETDEV_1000=y
490# CONFIG_VIA_VELOCITY is not set 514# CONFIG_VIA_VELOCITY is not set
491# CONFIG_TIGON3 is not set 515# CONFIG_TIGON3 is not set
492# CONFIG_BNX2 is not set 516# CONFIG_BNX2 is not set
517CONFIG_FSL_PQ_MDIO=y
493CONFIG_GIANFAR=y 518CONFIG_GIANFAR=y
494# CONFIG_QLA3XXX is not set 519# CONFIG_QLA3XXX is not set
495# CONFIG_ATL1 is not set 520# CONFIG_ATL1 is not set
496# CONFIG_ATL1E is not set 521# CONFIG_ATL1E is not set
522# CONFIG_ATL1C is not set
497# CONFIG_JME is not set 523# CONFIG_JME is not set
498CONFIG_NETDEV_10000=y 524CONFIG_NETDEV_10000=y
499# CONFIG_CHELSIO_T1 is not set 525# CONFIG_CHELSIO_T1 is not set
@@ -503,6 +529,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
503# CONFIG_IXGBE is not set 529# CONFIG_IXGBE is not set
504# CONFIG_IXGB is not set 530# CONFIG_IXGB is not set
505# CONFIG_S2IO is not set 531# CONFIG_S2IO is not set
532# CONFIG_VXGE is not set
506# CONFIG_MYRI10GE is not set 533# CONFIG_MYRI10GE is not set
507# CONFIG_NETXEN_NIC is not set 534# CONFIG_NETXEN_NIC is not set
508# CONFIG_NIU is not set 535# CONFIG_NIU is not set
@@ -512,6 +539,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
512# CONFIG_BNX2X is not set 539# CONFIG_BNX2X is not set
513# CONFIG_QLGE is not set 540# CONFIG_QLGE is not set
514# CONFIG_SFC is not set 541# CONFIG_SFC is not set
542# CONFIG_BE2NET is not set
515# CONFIG_TR is not set 543# CONFIG_TR is not set
516 544
517# 545#
@@ -519,7 +547,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
519# 547#
520# CONFIG_WLAN_PRE80211 is not set 548# CONFIG_WLAN_PRE80211 is not set
521# CONFIG_WLAN_80211 is not set 549# CONFIG_WLAN_80211 is not set
522# CONFIG_IWLWIFI_LEDS is not set
523 550
524# 551#
525# Enable WiMAX (Networking options) to see the WiMAX drivers 552# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -692,6 +719,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
692# CONFIG_EDAC is not set 719# CONFIG_EDAC is not set
693# CONFIG_RTC_CLASS is not set 720# CONFIG_RTC_CLASS is not set
694# CONFIG_DMADEVICES is not set 721# CONFIG_DMADEVICES is not set
722# CONFIG_AUXDISPLAY is not set
695# CONFIG_UIO is not set 723# CONFIG_UIO is not set
696# CONFIG_STAGING is not set 724# CONFIG_STAGING is not set
697 725
@@ -717,6 +745,11 @@ CONFIG_INOTIFY_USER=y
717# CONFIG_FUSE_FS is not set 745# CONFIG_FUSE_FS is not set
718 746
719# 747#
748# Caches
749#
750# CONFIG_FSCACHE is not set
751
752#
720# CD-ROM/DVD Filesystems 753# CD-ROM/DVD Filesystems
721# 754#
722# CONFIG_ISO9660_FS is not set 755# CONFIG_ISO9660_FS is not set
@@ -759,6 +792,7 @@ CONFIG_MISC_FILESYSTEMS=y
759# CONFIG_ROMFS_FS is not set 792# CONFIG_ROMFS_FS is not set
760# CONFIG_SYSV_FS is not set 793# CONFIG_SYSV_FS is not set
761# CONFIG_UFS_FS is not set 794# CONFIG_UFS_FS is not set
795# CONFIG_NILFS2_FS is not set
762CONFIG_NETWORK_FILESYSTEMS=y 796CONFIG_NETWORK_FILESYSTEMS=y
763CONFIG_NFS_FS=y 797CONFIG_NFS_FS=y
764# CONFIG_NFS_V3 is not set 798# CONFIG_NFS_V3 is not set
@@ -768,7 +802,6 @@ CONFIG_ROOT_NFS=y
768CONFIG_LOCKD=y 802CONFIG_LOCKD=y
769CONFIG_NFS_COMMON=y 803CONFIG_NFS_COMMON=y
770CONFIG_SUNRPC=y 804CONFIG_SUNRPC=y
771# CONFIG_SUNRPC_REGISTER_V4 is not set
772# CONFIG_RPCSEC_GSS_KRB5 is not set 805# CONFIG_RPCSEC_GSS_KRB5 is not set
773# CONFIG_RPCSEC_GSS_SPKM3 is not set 806# CONFIG_RPCSEC_GSS_SPKM3 is not set
774# CONFIG_SMB_FS is not set 807# CONFIG_SMB_FS is not set
@@ -784,6 +817,7 @@ CONFIG_SUNRPC=y
784CONFIG_MSDOS_PARTITION=y 817CONFIG_MSDOS_PARTITION=y
785# CONFIG_NLS is not set 818# CONFIG_NLS is not set
786# CONFIG_DLM is not set 819# CONFIG_DLM is not set
820# CONFIG_BINARY_PRINTF is not set
787 821
788# 822#
789# Library routines 823# Library routines
@@ -797,11 +831,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
797CONFIG_CRC32=y 831CONFIG_CRC32=y
798# CONFIG_CRC7 is not set 832# CONFIG_CRC7 is not set
799# CONFIG_LIBCRC32C is not set 833# CONFIG_LIBCRC32C is not set
800CONFIG_PLIST=y 834CONFIG_ZLIB_INFLATE=y
835CONFIG_DECOMPRESS_GZIP=y
801CONFIG_HAS_IOMEM=y 836CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 837CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 838CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 839CONFIG_HAVE_LMB=y
840CONFIG_NLATTR=y
805 841
806# 842#
807# Kernel hacking 843# Kernel hacking
@@ -821,13 +857,24 @@ CONFIG_FRAME_WARN=1024
821# CONFIG_LATENCYTOP is not set 857# CONFIG_LATENCYTOP is not set
822CONFIG_SYSCTL_SYSCALL_CHECK=y 858CONFIG_SYSCTL_SYSCALL_CHECK=y
823CONFIG_HAVE_FUNCTION_TRACER=y 859CONFIG_HAVE_FUNCTION_TRACER=y
860CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
824CONFIG_HAVE_DYNAMIC_FTRACE=y 861CONFIG_HAVE_DYNAMIC_FTRACE=y
825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 862CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
863CONFIG_TRACING_SUPPORT=y
826 864
827# 865#
828# Tracers 866# Tracers
829# 867#
830# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 868# CONFIG_FUNCTION_TRACER is not set
869# CONFIG_SCHED_TRACER is not set
870# CONFIG_CONTEXT_SWITCH_TRACER is not set
871# CONFIG_EVENT_TRACER is not set
872# CONFIG_BOOT_TRACER is not set
873# CONFIG_TRACE_BRANCH_PROFILING is not set
874# CONFIG_STACK_TRACER is not set
875# CONFIG_KMEMTRACE is not set
876# CONFIG_WORKQUEUE_TRACER is not set
877# CONFIG_BLK_DEV_IO_TRACE is not set
831# CONFIG_SAMPLES is not set 878# CONFIG_SAMPLES is not set
832CONFIG_HAVE_ARCH_KGDB=y 879CONFIG_HAVE_ARCH_KGDB=y
833CONFIG_PRINT_STACK_DEPTH=64 880CONFIG_PRINT_STACK_DEPTH=64
@@ -918,6 +965,7 @@ CONFIG_CRYPTO=y
918# Compression 965# Compression
919# 966#
920# CONFIG_CRYPTO_DEFLATE is not set 967# CONFIG_CRYPTO_DEFLATE is not set
968# CONFIG_CRYPTO_ZLIB is not set
921# CONFIG_CRYPTO_LZO is not set 969# CONFIG_CRYPTO_LZO is not set
922 970
923# 971#
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index b1c766ef7e2e..4aaf1a6bdc7d 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:17 2009 4# Wed May 13 17:22:20 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 125CONFIG_SHMEM=y
112CONFIG_AIO=y 126CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
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 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169# CONFIG_TQM8540 is not set 181# CONFIG_TQM8540 is not set
@@ -231,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
@@ -264,17 +279,17 @@ CONFIG_PPC_PCI_CHOICE=y
264# Default settings for advanced configuration options are used 279# Default settings for advanced configuration options are used
265# 280#
266CONFIG_LOWMEM_SIZE=0x30000000 281CONFIG_LOWMEM_SIZE=0x30000000
282CONFIG_LOWMEM_CAM_NUM=3
267CONFIG_PAGE_OFFSET=0xc0000000 283CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 284CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
270CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x04000000
271CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
272CONFIG_NET=y 288CONFIG_NET=y
273 289
274# 290#
275# Networking options 291# Networking options
276# 292#
277CONFIG_COMPAT_NET_DEV_OPS=y
278CONFIG_PACKET=y 293CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
280CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -330,6 +345,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_LAPB is not set 345# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set 346# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set 347# CONFIG_WAN_ROUTER is not set
348# CONFIG_PHONET is not set
333# CONFIG_NET_SCHED is not set 349# CONFIG_NET_SCHED is not set
334# CONFIG_DCB is not set 350# CONFIG_DCB is not set
335 351
@@ -342,7 +358,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
342# CONFIG_IRDA is not set 358# CONFIG_IRDA is not set
343# CONFIG_BT is not set 359# CONFIG_BT is not set
344# CONFIG_AF_RXRPC is not set 360# CONFIG_AF_RXRPC is not set
345# CONFIG_PHONET is not set
346CONFIG_WIRELESS=y 361CONFIG_WIRELESS=y
347# CONFIG_CFG80211 is not set 362# CONFIG_CFG80211 is not set
348CONFIG_WIRELESS_OLD_REGULATORY=y 363CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -385,9 +400,13 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
385# CONFIG_ATA_OVER_ETH is not set 400# CONFIG_ATA_OVER_ETH is not set
386# CONFIG_BLK_DEV_HD is not set 401# CONFIG_BLK_DEV_HD is not set
387CONFIG_MISC_DEVICES=y 402CONFIG_MISC_DEVICES=y
388# CONFIG_EEPROM_93CX6 is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 403# CONFIG_ENCLOSURE_SERVICES is not set
390# CONFIG_C2PORT is not set 404# CONFIG_C2PORT is not set
405
406#
407# EEPROM support
408#
409# CONFIG_EEPROM_93CX6 is not set
391CONFIG_HAVE_IDE=y 410CONFIG_HAVE_IDE=y
392# CONFIG_IDE is not set 411# CONFIG_IDE is not set
393 412
@@ -402,6 +421,7 @@ CONFIG_HAVE_IDE=y
402# CONFIG_MD is not set 421# CONFIG_MD is not set
403# CONFIG_MACINTOSH_DRIVERS is not set 422# CONFIG_MACINTOSH_DRIVERS is not set
404CONFIG_NETDEVICES=y 423CONFIG_NETDEVICES=y
424CONFIG_COMPAT_NET_DEV_OPS=y
405# CONFIG_DUMMY is not set 425# CONFIG_DUMMY is not set
406# CONFIG_BONDING is not set 426# CONFIG_BONDING is not set
407# CONFIG_MACVLAN is not set 427# CONFIG_MACVLAN is not set
@@ -430,6 +450,8 @@ CONFIG_BROADCOM_PHY=y
430# CONFIG_MDIO_BITBANG is not set 450# CONFIG_MDIO_BITBANG is not set
431CONFIG_NET_ETHERNET=y 451CONFIG_NET_ETHERNET=y
432CONFIG_MII=y 452CONFIG_MII=y
453# CONFIG_ETHOC is not set
454# CONFIG_DNET is not set
433# CONFIG_IBM_NEW_EMAC_ZMII is not set 455# CONFIG_IBM_NEW_EMAC_ZMII is not set
434# CONFIG_IBM_NEW_EMAC_RGMII is not set 456# CONFIG_IBM_NEW_EMAC_RGMII is not set
435# CONFIG_IBM_NEW_EMAC_TAH is not set 457# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -439,6 +461,7 @@ CONFIG_MII=y
439# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 461# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
440# CONFIG_B44 is not set 462# CONFIG_B44 is not set
441CONFIG_NETDEV_1000=y 463CONFIG_NETDEV_1000=y
464CONFIG_FSL_PQ_MDIO=y
442CONFIG_GIANFAR=y 465CONFIG_GIANFAR=y
443CONFIG_NETDEV_10000=y 466CONFIG_NETDEV_10000=y
444 467
@@ -447,7 +470,6 @@ CONFIG_NETDEV_10000=y
447# 470#
448# CONFIG_WLAN_PRE80211 is not set 471# CONFIG_WLAN_PRE80211 is not set
449# CONFIG_WLAN_80211 is not set 472# CONFIG_WLAN_80211 is not set
450# CONFIG_IWLWIFI_LEDS is not set
451 473
452# 474#
453# Enable WiMAX (Networking options) to see the WiMAX drivers 475# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -603,7 +625,6 @@ CONFIG_HID=y
603# 625#
604# Special HID drivers 626# Special HID drivers
605# 627#
606CONFIG_HID_COMPAT=y
607CONFIG_USB_SUPPORT=y 628CONFIG_USB_SUPPORT=y
608# CONFIG_USB_ARCH_HAS_HCD is not set 629# CONFIG_USB_ARCH_HAS_HCD is not set
609# CONFIG_USB_ARCH_HAS_OHCI is not set 630# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -616,7 +637,7 @@ CONFIG_USB_SUPPORT=y
616# 637#
617 638
618# 639#
619# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 640# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
620# 641#
621# CONFIG_USB_GADGET is not set 642# CONFIG_USB_GADGET is not set
622 643
@@ -665,8 +686,9 @@ CONFIG_RTC_DRV_M48T59=y
665# 686#
666# on-CPU RTC drivers 687# on-CPU RTC drivers
667# 688#
668# CONFIG_RTC_DRV_PPC is not set 689# CONFIG_RTC_DRV_GENERIC is not set
669# CONFIG_DMADEVICES is not set 690# CONFIG_DMADEVICES is not set
691# CONFIG_AUXDISPLAY is not set
670# CONFIG_UIO is not set 692# CONFIG_UIO is not set
671# CONFIG_STAGING is not set 693# CONFIG_STAGING is not set
672 694
@@ -692,6 +714,11 @@ CONFIG_INOTIFY_USER=y
692# CONFIG_FUSE_FS is not set 714# CONFIG_FUSE_FS is not set
693 715
694# 716#
717# Caches
718#
719# CONFIG_FSCACHE is not set
720
721#
695# CD-ROM/DVD Filesystems 722# CD-ROM/DVD Filesystems
696# 723#
697# CONFIG_ISO9660_FS is not set 724# CONFIG_ISO9660_FS is not set
@@ -734,6 +761,7 @@ CONFIG_MISC_FILESYSTEMS=y
734# CONFIG_ROMFS_FS is not set 761# CONFIG_ROMFS_FS is not set
735# CONFIG_SYSV_FS is not set 762# CONFIG_SYSV_FS is not set
736# CONFIG_UFS_FS is not set 763# CONFIG_UFS_FS is not set
764# CONFIG_NILFS2_FS is not set
737CONFIG_NETWORK_FILESYSTEMS=y 765CONFIG_NETWORK_FILESYSTEMS=y
738CONFIG_NFS_FS=y 766CONFIG_NFS_FS=y
739# CONFIG_NFS_V3 is not set 767# CONFIG_NFS_V3 is not set
@@ -743,7 +771,6 @@ CONFIG_ROOT_NFS=y
743CONFIG_LOCKD=y 771CONFIG_LOCKD=y
744CONFIG_NFS_COMMON=y 772CONFIG_NFS_COMMON=y
745CONFIG_SUNRPC=y 773CONFIG_SUNRPC=y
746# CONFIG_SUNRPC_REGISTER_V4 is not set
747# CONFIG_RPCSEC_GSS_KRB5 is not set 774# CONFIG_RPCSEC_GSS_KRB5 is not set
748# CONFIG_RPCSEC_GSS_SPKM3 is not set 775# CONFIG_RPCSEC_GSS_SPKM3 is not set
749# CONFIG_SMB_FS is not set 776# CONFIG_SMB_FS is not set
@@ -771,6 +798,7 @@ CONFIG_PARTITION_ADVANCED=y
771# CONFIG_SYSV68_PARTITION is not set 798# CONFIG_SYSV68_PARTITION is not set
772# CONFIG_NLS is not set 799# CONFIG_NLS is not set
773# CONFIG_DLM is not set 800# CONFIG_DLM is not set
801# CONFIG_BINARY_PRINTF is not set
774 802
775# 803#
776# Library routines 804# Library routines
@@ -784,11 +812,13 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
784CONFIG_CRC32=y 812CONFIG_CRC32=y
785# CONFIG_CRC7 is not set 813# CONFIG_CRC7 is not set
786# CONFIG_LIBCRC32C is not set 814# CONFIG_LIBCRC32C is not set
787CONFIG_PLIST=y 815CONFIG_ZLIB_INFLATE=y
816CONFIG_DECOMPRESS_GZIP=y
788CONFIG_HAS_IOMEM=y 817CONFIG_HAS_IOMEM=y
789CONFIG_HAS_IOPORT=y 818CONFIG_HAS_IOPORT=y
790CONFIG_HAS_DMA=y 819CONFIG_HAS_DMA=y
791CONFIG_HAVE_LMB=y 820CONFIG_HAVE_LMB=y
821CONFIG_NLATTR=y
792 822
793# 823#
794# Kernel hacking 824# Kernel hacking
@@ -806,6 +836,9 @@ CONFIG_DEBUG_KERNEL=y
806CONFIG_DETECT_SOFTLOCKUP=y 836CONFIG_DETECT_SOFTLOCKUP=y
807# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 837# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
808CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 838CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
839CONFIG_DETECT_HUNG_TASK=y
840# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
841CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
809CONFIG_SCHED_DEBUG=y 842CONFIG_SCHED_DEBUG=y
810# CONFIG_SCHEDSTATS is not set 843# CONFIG_SCHEDSTATS is not set
811# CONFIG_TIMER_STATS is not set 844# CONFIG_TIMER_STATS is not set
@@ -834,9 +867,12 @@ CONFIG_DEBUG_MUTEXES=y
834# CONFIG_FAULT_INJECTION is not set 867# CONFIG_FAULT_INJECTION is not set
835# CONFIG_LATENCYTOP is not set 868# CONFIG_LATENCYTOP is not set
836CONFIG_SYSCTL_SYSCALL_CHECK=y 869CONFIG_SYSCTL_SYSCALL_CHECK=y
870# CONFIG_DEBUG_PAGEALLOC is not set
837CONFIG_HAVE_FUNCTION_TRACER=y 871CONFIG_HAVE_FUNCTION_TRACER=y
872CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
838CONFIG_HAVE_DYNAMIC_FTRACE=y 873CONFIG_HAVE_DYNAMIC_FTRACE=y
839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 874CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
875CONFIG_TRACING_SUPPORT=y
840 876
841# 877#
842# Tracers 878# Tracers
@@ -844,17 +880,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
844# CONFIG_FUNCTION_TRACER is not set 880# CONFIG_FUNCTION_TRACER is not set
845# CONFIG_SCHED_TRACER is not set 881# CONFIG_SCHED_TRACER is not set
846# CONFIG_CONTEXT_SWITCH_TRACER is not set 882# CONFIG_CONTEXT_SWITCH_TRACER is not set
883# CONFIG_EVENT_TRACER is not set
847# CONFIG_BOOT_TRACER is not set 884# CONFIG_BOOT_TRACER is not set
848# CONFIG_TRACE_BRANCH_PROFILING is not set 885# CONFIG_TRACE_BRANCH_PROFILING is not set
849# CONFIG_STACK_TRACER is not set 886# CONFIG_STACK_TRACER is not set
850# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 887# CONFIG_KMEMTRACE is not set
888# CONFIG_WORKQUEUE_TRACER is not set
889# CONFIG_BLK_DEV_IO_TRACE is not set
851# CONFIG_SAMPLES is not set 890# CONFIG_SAMPLES is not set
852CONFIG_HAVE_ARCH_KGDB=y 891CONFIG_HAVE_ARCH_KGDB=y
853# CONFIG_KGDB is not set 892# CONFIG_KGDB is not set
854CONFIG_PRINT_STACK_DEPTH=64 893CONFIG_PRINT_STACK_DEPTH=64
855# CONFIG_DEBUG_STACKOVERFLOW is not set 894# CONFIG_DEBUG_STACKOVERFLOW is not set
856# CONFIG_DEBUG_STACK_USAGE is not set 895# CONFIG_DEBUG_STACK_USAGE is not set
857# CONFIG_DEBUG_PAGEALLOC is not set
858# CONFIG_CODE_PATCHING_SELFTEST is not set 896# CONFIG_CODE_PATCHING_SELFTEST is not set
859# CONFIG_FTR_FIXUP_SELFTEST is not set 897# CONFIG_FTR_FIXUP_SELFTEST is not set
860# CONFIG_MSI_BITMAP_SELFTEST is not set 898# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -958,6 +996,7 @@ CONFIG_CRYPTO=y
958# Compression 996# Compression
959# 997#
960# CONFIG_CRYPTO_DEFLATE is not set 998# CONFIG_CRYPTO_DEFLATE is not set
999# CONFIG_CRYPTO_ZLIB is not set
961# CONFIG_CRYPTO_LZO is not set 1000# CONFIG_CRYPTO_LZO is not set
962 1001
963# 1002#
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig
index 0cc9048290a8..79984589db69 100644
--- a/arch/powerpc/configs/85xx/socrates_defconfig
+++ b/arch/powerpc/configs/85xx/socrates_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.26.2 3# Linux kernel version: 2.6.30-rc3
4# Sat Oct 18 11:06:13 2008 4# Wed May 13 17:22:21 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,15 +15,19 @@ CONFIG_PPC_85xx=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_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
21# CONFIG_PHYS_64BIT is not set 22# CONFIG_PHYS_64BIT is not set
22CONFIG_SPE=y 23CONFIG_SPE=y
24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
23# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
27# CONFIG_SMP is not set
24CONFIG_PPC32=y 28CONFIG_PPC32=y
25CONFIG_WORD_SIZE=32 29CONFIG_WORD_SIZE=32
26CONFIG_PPC_MERGE=y 30# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
27CONFIG_MMU=y 31CONFIG_MMU=y
28CONFIG_GENERIC_CMOS_UPDATE=y 32CONFIG_GENERIC_CMOS_UPDATE=y
29CONFIG_GENERIC_TIME=y 33CONFIG_GENERIC_TIME=y
@@ -33,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 37# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 38CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 39CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 41CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 42CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 43CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -43,7 +48,7 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_PPC=y 48CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 49CONFIG_EARLY_PRINTK=y
45CONFIG_GENERIC_NVRAM=y 50CONFIG_GENERIC_NVRAM=y
46CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 51CONFIG_SCHED_OMIT_FRAME_POINTER=y
47CONFIG_ARCH_MAY_HAVE_PC_FDC=y 52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
48CONFIG_PPC_OF=y 53CONFIG_PPC_OF=y
49CONFIG_OF=y 54CONFIG_OF=y
@@ -54,6 +59,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 64
59# 65#
@@ -71,54 +77,70 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=16 90CONFIG_LOG_BUF_SHIFT=16
76# CONFIG_CGROUPS is not set
77CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
78CONFIG_FAIR_GROUP_SCHED=y 92CONFIG_FAIR_GROUP_SCHED=y
79# CONFIG_RT_GROUP_SCHED is not set 93# CONFIG_RT_GROUP_SCHED is not set
80CONFIG_USER_SCHED=y 94CONFIG_USER_SCHED=y
81# CONFIG_CGROUP_SCHED is not set 95# CONFIG_CGROUP_SCHED is not set
96# CONFIG_CGROUPS is not set
82CONFIG_SYSFS_DEPRECATED=y 97CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y 98CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
85# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
86CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
87CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
88# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
89CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
90CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 111# CONFIG_KALLSYMS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
94# CONFIG_HOTPLUG is not set 113# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 114CONFIG_PRINTK=y
96CONFIG_BUG=y 115CONFIG_BUG=y
97CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
98CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 118CONFIG_FUTEX=y
101CONFIG_ANON_INODES=y
102# CONFIG_EPOLL is not set 119# CONFIG_EPOLL is not set
103CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
105CONFIG_EVENTFD=y 122CONFIG_EVENTFD=y
106CONFIG_SHMEM=y 123CONFIG_SHMEM=y
124CONFIG_AIO=y
107CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
126CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
110CONFIG_SLUB=y 130CONFIG_SLUB=y
111# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 133# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
136CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set 139CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_PROC_PAGE_MONITOR=y 140# CONFIG_SLOW_WORK is not set
141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=0 144CONFIG_BASE_SMALL=0
123CONFIG_MODULES=y 145CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set 146# CONFIG_MODULE_FORCE_LOAD is not set
@@ -126,12 +148,10 @@ CONFIG_MODULE_UNLOAD=y
126CONFIG_MODULE_FORCE_UNLOAD=y 148CONFIG_MODULE_FORCE_UNLOAD=y
127# CONFIG_MODVERSIONS is not set 149# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 150# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set
130CONFIG_BLOCK=y 151CONFIG_BLOCK=y
131# CONFIG_LBD is not set 152# CONFIG_LBD 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 153# CONFIG_BLK_DEV_BSG is not set
154# CONFIG_BLK_DEV_INTEGRITY is not set
135 155
136# 156#
137# IO Schedulers 157# IO Schedulers
@@ -145,13 +165,11 @@ CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_CFQ is not set 165# CONFIG_DEFAULT_CFQ is not set
146# CONFIG_DEFAULT_NOOP is not set 166# CONFIG_DEFAULT_NOOP is not set
147CONFIG_DEFAULT_IOSCHED="anticipatory" 167CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_CLASSIC_RCU=y 168# CONFIG_FREEZER is not set
149 169
150# 170#
151# Platform support 171# Platform support
152# 172#
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
156# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
157# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
@@ -160,12 +178,14 @@ CONFIG_MPC85xx=y
160# CONFIG_MPC8560_ADS is not set 178# CONFIG_MPC8560_ADS is not set
161# CONFIG_MPC85xx_CDS is not set 179# CONFIG_MPC85xx_CDS is not set
162# CONFIG_MPC85xx_MDS is not set 180# CONFIG_MPC85xx_MDS is not set
181# CONFIG_MPC8536_DS is not set
163# CONFIG_MPC85xx_DS is not set 182# CONFIG_MPC85xx_DS is not set
164CONFIG_SOCRATES=y 183CONFIG_SOCRATES=y
165# CONFIG_KSI8560 is not set 184# CONFIG_KSI8560 is not set
166# CONFIG_STX_GP3 is not set 185# CONFIG_STX_GP3 is not set
167# CONFIG_TQM8540 is not set 186# CONFIG_TQM8540 is not set
168# CONFIG_TQM8541 is not set 187# CONFIG_TQM8541 is not set
188# CONFIG_TQM8548 is not set
169# CONFIG_TQM8555 is not set 189# CONFIG_TQM8555 is not set
170# CONFIG_TQM8560 is not set 190# CONFIG_TQM8560 is not set
171# CONFIG_SBC8548 is not set 191# CONFIG_SBC8548 is not set
@@ -181,14 +201,16 @@ CONFIG_MPIC=y
181# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_QUICC_ENGINE is not set
184# CONFIG_CPM2 is not set 205# CONFIG_CPM2 is not set
185# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
207# CONFIG_MPC8xxx_GPIO is not set
208# CONFIG_SIMPLE_GPIO is not set
186 209
187# 210#
188# Kernel options 211# Kernel options
189# 212#
190# CONFIG_HIGHMEM is not set 213# CONFIG_HIGHMEM is not set
191# CONFIG_TICK_ONESHOT is not set
192# CONFIG_NO_HZ is not set 214# CONFIG_NO_HZ is not set
193# CONFIG_HIGH_RES_TIMERS is not set 215# CONFIG_HIGH_RES_TIMERS is not set
194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 216CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
@@ -202,6 +224,8 @@ CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
203# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
204CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
228# CONFIG_HAVE_AOUT is not set
205# CONFIG_BINFMT_MISC is not set 229# CONFIG_BINFMT_MISC is not set
206CONFIG_MATH_EMULATION=y 230CONFIG_MATH_EMULATION=y
207# CONFIG_IOMMU_HELPER is not set 231# CONFIG_IOMMU_HELPER is not set
@@ -216,17 +240,24 @@ CONFIG_FLATMEM_MANUAL=y
216# CONFIG_SPARSEMEM_MANUAL is not set 240# CONFIG_SPARSEMEM_MANUAL is not set
217CONFIG_FLATMEM=y 241CONFIG_FLATMEM=y
218CONFIG_FLAT_NODE_MEM_MAP=y 242CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_STATIC is not set
220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
223# CONFIG_RESOURCES_64BIT is not set 245CONFIG_MIGRATION=y
246# CONFIG_PHYS_ADDR_T_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 249CONFIG_VIRT_TO_BUS=y
250CONFIG_UNEVICTABLE_LRU=y
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set
256# CONFIG_PPC_256K_PAGES is not set
227CONFIG_FORCE_MAX_ZONEORDER=11 257CONFIG_FORCE_MAX_ZONEORDER=11
228# CONFIG_PROC_DEVICETREE is not set 258# CONFIG_PROC_DEVICETREE is not set
229# CONFIG_CMDLINE_BOOL is not set 259# CONFIG_CMDLINE_BOOL is not set
260CONFIG_EXTRA_TARGETS=""
230# CONFIG_PM is not set 261# CONFIG_PM is not set
231CONFIG_SECCOMP=y 262CONFIG_SECCOMP=y
232CONFIG_ISA_DMA_API=y 263CONFIG_ISA_DMA_API=y
@@ -238,6 +269,7 @@ CONFIG_ZONE_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 269CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 270CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 271CONFIG_FSL_PCI=y
272CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 273CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 274CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 275CONFIG_PCI_SYSCALL=y
@@ -245,6 +277,8 @@ CONFIG_PCI_SYSCALL=y
245CONFIG_ARCH_SUPPORTS_MSI=y 277CONFIG_ARCH_SUPPORTS_MSI=y
246# CONFIG_PCI_MSI is not set 278# CONFIG_PCI_MSI is not set
247CONFIG_PCI_LEGACY=y 279CONFIG_PCI_LEGACY=y
280# CONFIG_PCI_STUB is not set
281# CONFIG_PCI_IOV is not set
248# CONFIG_HAS_RAPIDIO is not set 282# CONFIG_HAS_RAPIDIO is not set
249 283
250# 284#
@@ -256,15 +290,12 @@ CONFIG_PCI_LEGACY=y
256# Default settings for advanced configuration options are used 290# Default settings for advanced configuration options are used
257# 291#
258CONFIG_LOWMEM_SIZE=0x30000000 292CONFIG_LOWMEM_SIZE=0x30000000
293CONFIG_LOWMEM_CAM_NUM=3
259CONFIG_PAGE_OFFSET=0xc0000000 294CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 295CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 296CONFIG_PHYSICAL_START=0x00000000
262CONFIG_PHYSICAL_ALIGN=0x10000000 297CONFIG_PHYSICAL_ALIGN=0x04000000
263CONFIG_TASK_SIZE=0xc0000000 298CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 299CONFIG_NET=y
269 300
270# 301#
@@ -315,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
315# CONFIG_TIPC is not set 346# CONFIG_TIPC is not set
316# CONFIG_ATM is not set 347# CONFIG_ATM is not set
317# CONFIG_BRIDGE is not set 348# CONFIG_BRIDGE is not set
349# CONFIG_NET_DSA is not set
318# CONFIG_VLAN_8021Q is not set 350# CONFIG_VLAN_8021Q is not set
319# CONFIG_DECNET is not set 351# CONFIG_DECNET is not set
320# CONFIG_LLC2 is not set 352# CONFIG_LLC2 is not set
@@ -324,7 +356,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# CONFIG_LAPB is not set 356# CONFIG_LAPB is not set
325# CONFIG_ECONET is not set 357# CONFIG_ECONET is not set
326# CONFIG_WAN_ROUTER is not set 358# CONFIG_WAN_ROUTER is not set
359# CONFIG_PHONET is not set
327# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set
328 362
329# 363#
330# Network testing 364# Network testing
@@ -339,27 +373,17 @@ CONFIG_CAN_BCM=y
339# CAN Device Drivers 373# CAN Device Drivers
340# 374#
341# CONFIG_CAN_VCAN is not set 375# CONFIG_CAN_VCAN is not set
342# CONFIG_CAN_OLD_DRIVERS is not set
343# CONFIG_CAN_SLCAN is not set
344CONFIG_CAN_SJA1000=y
345CONFIG_CAN_SJA1000_MEM_OF=y
346# CONFIG_CAN_EMS_PCI is not set
347# CONFIG_CAN_IXXAT_PCI is not set
348# CONFIG_CAN_PEAK_PCI is not set
349# CONFIG_CAN_KVASER_PCI is not set
350# CONFIG_CAN_MSCAN is not set
351# CONFIG_CAN_DEBUG_DEVICES is not set 376# CONFIG_CAN_DEBUG_DEVICES is not set
352# CONFIG_IRDA is not set 377# CONFIG_IRDA is not set
353# CONFIG_BT is not set 378# CONFIG_BT is not set
354# CONFIG_AF_RXRPC is not set 379# CONFIG_AF_RXRPC is not set
355 380CONFIG_WIRELESS=y
356#
357# Wireless
358#
359# CONFIG_CFG80211 is not set 381# CONFIG_CFG80211 is not set
382# CONFIG_WIRELESS_OLD_REGULATORY is not set
360# CONFIG_WIRELESS_EXT is not set 383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_LIB80211 is not set
361# CONFIG_MAC80211 is not set 385# CONFIG_MAC80211 is not set
362# CONFIG_IEEE80211 is not set 386# CONFIG_WIMAX is not set
363# CONFIG_RFKILL is not set 387# CONFIG_RFKILL is not set
364# CONFIG_NET_9P is not set 388# CONFIG_NET_9P is not set
365 389
@@ -378,6 +402,7 @@ CONFIG_MTD=y
378# CONFIG_MTD_DEBUG is not set 402# CONFIG_MTD_DEBUG is not set
379CONFIG_MTD_CONCAT=y 403CONFIG_MTD_CONCAT=y
380CONFIG_MTD_PARTITIONS=y 404CONFIG_MTD_PARTITIONS=y
405# CONFIG_MTD_TESTS is not set
381# CONFIG_MTD_REDBOOT_PARTS is not set 406# CONFIG_MTD_REDBOOT_PARTS is not set
382CONFIG_MTD_CMDLINE_PARTS=y 407CONFIG_MTD_CMDLINE_PARTS=y
383CONFIG_MTD_OF_PARTS=y 408CONFIG_MTD_OF_PARTS=y
@@ -458,15 +483,22 @@ CONFIG_MTD_NAND_IDS=y
458# CONFIG_MTD_NAND_PLATFORM is not set 483# CONFIG_MTD_NAND_PLATFORM is not set
459# CONFIG_MTD_ALAUDA is not set 484# CONFIG_MTD_ALAUDA is not set
460# CONFIG_MTD_NAND_FSL_ELBC is not set 485# CONFIG_MTD_NAND_FSL_ELBC is not set
486# CONFIG_MTD_NAND_FSL_UPM is not set
461CONFIG_MTD_NAND_SOCRATES=y 487CONFIG_MTD_NAND_SOCRATES=y
462# CONFIG_MTD_ONENAND is not set 488# CONFIG_MTD_ONENAND is not set
463 489
464# 490#
491# LPDDR flash memory drivers
492#
493# CONFIG_MTD_LPDDR is not set
494
495#
465# UBI - Unsorted block images 496# UBI - Unsorted block images
466# 497#
467# CONFIG_MTD_UBI is not set 498# CONFIG_MTD_UBI is not set
468CONFIG_OF_DEVICE=y 499CONFIG_OF_DEVICE=y
469CONFIG_OF_I2C=y 500CONFIG_OF_I2C=y
501CONFIG_OF_SPI=y
470# CONFIG_PARPORT is not set 502# CONFIG_PARPORT is not set
471CONFIG_BLK_DEV=y 503CONFIG_BLK_DEV=y
472# CONFIG_BLK_DEV_FD is not set 504# CONFIG_BLK_DEV_FD is not set
@@ -486,12 +518,24 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
486# CONFIG_BLK_DEV_XIP is not set 518# CONFIG_BLK_DEV_XIP is not set
487# CONFIG_CDROM_PKTCDVD is not set 519# CONFIG_CDROM_PKTCDVD is not set
488# CONFIG_ATA_OVER_ETH is not set 520# CONFIG_ATA_OVER_ETH is not set
521# CONFIG_BLK_DEV_HD is not set
489CONFIG_MISC_DEVICES=y 522CONFIG_MISC_DEVICES=y
490# CONFIG_PHANTOM is not set 523# CONFIG_PHANTOM is not set
491# CONFIG_EEPROM_93CX6 is not set
492# CONFIG_SGI_IOC4 is not set 524# CONFIG_SGI_IOC4 is not set
493# CONFIG_TIFM_CORE is not set 525# CONFIG_TIFM_CORE is not set
526# CONFIG_ICS932S401 is not set
494# CONFIG_ENCLOSURE_SERVICES is not set 527# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_HP_ILO is not set
529# CONFIG_ISL29003 is not set
530# CONFIG_C2PORT is not set
531
532#
533# EEPROM support
534#
535# CONFIG_EEPROM_AT24 is not set
536# CONFIG_EEPROM_AT25 is not set
537# CONFIG_EEPROM_LEGACY is not set
538# CONFIG_EEPROM_93CX6 is not set
495CONFIG_HAVE_IDE=y 539CONFIG_HAVE_IDE=y
496# CONFIG_IDE is not set 540# CONFIG_IDE is not set
497 541
@@ -533,6 +577,8 @@ CONFIG_SCSI_WAIT_SCAN=m
533# CONFIG_SCSI_SAS_LIBSAS is not set 577# CONFIG_SCSI_SAS_LIBSAS is not set
534# CONFIG_SCSI_SRP_ATTRS is not set 578# CONFIG_SCSI_SRP_ATTRS is not set
535# CONFIG_SCSI_LOWLEVEL is not set 579# CONFIG_SCSI_LOWLEVEL is not set
580# CONFIG_SCSI_DH is not set
581# CONFIG_SCSI_OSD_INITIATOR is not set
536# CONFIG_ATA is not set 582# CONFIG_ATA is not set
537# CONFIG_MD is not set 583# CONFIG_MD is not set
538# CONFIG_FUSION is not set 584# CONFIG_FUSION is not set
@@ -549,7 +595,7 @@ CONFIG_SCSI_WAIT_SCAN=m
549# CONFIG_I2O is not set 595# CONFIG_I2O is not set
550# CONFIG_MACINTOSH_DRIVERS is not set 596# CONFIG_MACINTOSH_DRIVERS is not set
551CONFIG_NETDEVICES=y 597CONFIG_NETDEVICES=y
552# CONFIG_NETDEVICES_MULTIQUEUE is not set 598CONFIG_COMPAT_NET_DEV_OPS=y
553# CONFIG_DUMMY is not set 599# CONFIG_DUMMY is not set
554# CONFIG_BONDING is not set 600# CONFIG_BONDING is not set
555# CONFIG_MACVLAN is not set 601# CONFIG_MACVLAN is not set
@@ -572,6 +618,9 @@ CONFIG_MARVELL_PHY=y
572# CONFIG_BROADCOM_PHY is not set 618# CONFIG_BROADCOM_PHY is not set
573# CONFIG_ICPLUS_PHY is not set 619# CONFIG_ICPLUS_PHY is not set
574# CONFIG_REALTEK_PHY is not set 620# CONFIG_REALTEK_PHY is not set
621# CONFIG_NATIONAL_PHY is not set
622# CONFIG_STE10XP is not set
623# CONFIG_LSI_ET1011C_PHY is not set
575# CONFIG_FIXED_PHY is not set 624# CONFIG_FIXED_PHY is not set
576# CONFIG_MDIO_BITBANG is not set 625# CONFIG_MDIO_BITBANG is not set
577CONFIG_NET_ETHERNET=y 626CONFIG_NET_ETHERNET=y
@@ -581,22 +630,28 @@ CONFIG_MII=y
581# CONFIG_CASSINI is not set 630# CONFIG_CASSINI is not set
582# CONFIG_NET_VENDOR_3COM is not set 631# CONFIG_NET_VENDOR_3COM is not set
583# CONFIG_ENC28J60 is not set 632# CONFIG_ENC28J60 is not set
633# CONFIG_ETHOC is not set
634# CONFIG_DNET is not set
584# CONFIG_NET_TULIP is not set 635# CONFIG_NET_TULIP is not set
585# CONFIG_HP100 is not set 636# CONFIG_HP100 is not set
586# CONFIG_IBM_NEW_EMAC_ZMII is not set 637# CONFIG_IBM_NEW_EMAC_ZMII is not set
587# CONFIG_IBM_NEW_EMAC_RGMII is not set 638# CONFIG_IBM_NEW_EMAC_RGMII is not set
588# CONFIG_IBM_NEW_EMAC_TAH is not set 639# CONFIG_IBM_NEW_EMAC_TAH is not set
589# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 640# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
641# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
642# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
643# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
590# CONFIG_NET_PCI is not set 644# CONFIG_NET_PCI is not set
591# CONFIG_B44 is not set 645# CONFIG_B44 is not set
646# CONFIG_ATL2 is not set
592CONFIG_NETDEV_1000=y 647CONFIG_NETDEV_1000=y
593# CONFIG_ACENIC is not set 648# CONFIG_ACENIC is not set
594# CONFIG_DL2K is not set 649# CONFIG_DL2K is not set
595# CONFIG_E1000 is not set 650# CONFIG_E1000 is not set
596# CONFIG_E1000E is not set 651# CONFIG_E1000E is not set
597# CONFIG_E1000E_ENABLED is not set
598# CONFIG_IP1000 is not set 652# CONFIG_IP1000 is not set
599# CONFIG_IGB is not set 653# CONFIG_IGB is not set
654# CONFIG_IGBVF is not set
600# CONFIG_NS83820 is not set 655# CONFIG_NS83820 is not set
601# CONFIG_HAMACHI is not set 656# CONFIG_HAMACHI is not set
602# CONFIG_YELLOWFIN is not set 657# CONFIG_YELLOWFIN is not set
@@ -607,10 +662,13 @@ CONFIG_NETDEV_1000=y
607# CONFIG_VIA_VELOCITY is not set 662# CONFIG_VIA_VELOCITY is not set
608# CONFIG_TIGON3 is not set 663# CONFIG_TIGON3 is not set
609# CONFIG_BNX2 is not set 664# CONFIG_BNX2 is not set
665CONFIG_FSL_PQ_MDIO=y
610CONFIG_GIANFAR=y 666CONFIG_GIANFAR=y
611CONFIG_GFAR_NAPI=y
612# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
613# CONFIG_ATL1 is not set 668# CONFIG_ATL1 is not set
669# CONFIG_ATL1E is not set
670# CONFIG_ATL1C is not set
671# CONFIG_JME is not set
614# CONFIG_NETDEV_10000 is not set 672# CONFIG_NETDEV_10000 is not set
615# CONFIG_TR is not set 673# CONFIG_TR is not set
616 674
@@ -619,7 +677,10 @@ CONFIG_GFAR_NAPI=y
619# 677#
620# CONFIG_WLAN_PRE80211 is not set 678# CONFIG_WLAN_PRE80211 is not set
621# CONFIG_WLAN_80211 is not set 679# CONFIG_WLAN_80211 is not set
622# CONFIG_IWLWIFI_LEDS is not set 680
681#
682# Enable WiMAX (Networking options) to see the WiMAX drivers
683#
623 684
624# 685#
625# USB Network Adapters 686# USB Network Adapters
@@ -668,17 +729,23 @@ CONFIG_INPUT_EVDEV=y
668# CONFIG_INPUT_TABLET is not set 729# CONFIG_INPUT_TABLET is not set
669CONFIG_INPUT_TOUCHSCREEN=y 730CONFIG_INPUT_TOUCHSCREEN=y
670# CONFIG_TOUCHSCREEN_ADS7846 is not set 731# CONFIG_TOUCHSCREEN_ADS7846 is not set
732# CONFIG_TOUCHSCREEN_AD7877 is not set
733# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
734# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
735# CONFIG_TOUCHSCREEN_AD7879 is not set
671# CONFIG_TOUCHSCREEN_FUJITSU is not set 736# CONFIG_TOUCHSCREEN_FUJITSU is not set
672# CONFIG_TOUCHSCREEN_GUNZE is not set 737# CONFIG_TOUCHSCREEN_GUNZE is not set
673# CONFIG_TOUCHSCREEN_ELO is not set 738# CONFIG_TOUCHSCREEN_ELO is not set
739# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
674# CONFIG_TOUCHSCREEN_MTOUCH is not set 740# CONFIG_TOUCHSCREEN_MTOUCH is not set
741# CONFIG_TOUCHSCREEN_INEXIO is not set
675# CONFIG_TOUCHSCREEN_MK712 is not set 742# CONFIG_TOUCHSCREEN_MK712 is not set
676# CONFIG_TOUCHSCREEN_PENMOUNT is not set 743# CONFIG_TOUCHSCREEN_PENMOUNT is not set
677# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 744# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
678# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 745# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
679# CONFIG_TOUCHSCREEN_UCB1400 is not set
680CONFIG_TOUCHSCREEN_TSC2003=y
681# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 746# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
747# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
748# CONFIG_TOUCHSCREEN_TSC2007 is not set
682# CONFIG_INPUT_MISC is not set 749# CONFIG_INPUT_MISC is not set
683 750
684# 751#
@@ -691,6 +758,7 @@ CONFIG_TOUCHSCREEN_TSC2003=y
691# Character devices 758# Character devices
692# 759#
693CONFIG_VT=y 760CONFIG_VT=y
761CONFIG_CONSOLE_TRANSLATIONS=y
694CONFIG_VT_CONSOLE=y 762CONFIG_VT_CONSOLE=y
695CONFIG_HW_CONSOLE=y 763CONFIG_HW_CONSOLE=y
696# CONFIG_VT_HW_CONSOLE_BINDING is not set 764# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -715,16 +783,20 @@ CONFIG_SERIAL_8250_RSA=y
715# 783#
716# Non-8250 serial port support 784# Non-8250 serial port support
717# 785#
786# CONFIG_SERIAL_MAX3100 is not set
718# CONFIG_SERIAL_UARTLITE is not set 787# CONFIG_SERIAL_UARTLITE is not set
719CONFIG_SERIAL_CORE=y 788CONFIG_SERIAL_CORE=y
720CONFIG_SERIAL_CORE_CONSOLE=y 789CONFIG_SERIAL_CORE_CONSOLE=y
721# CONFIG_SERIAL_JSM is not set 790# CONFIG_SERIAL_JSM is not set
722# CONFIG_SERIAL_OF_PLATFORM is not set 791# CONFIG_SERIAL_OF_PLATFORM is not set
723CONFIG_UNIX98_PTYS=y 792CONFIG_UNIX98_PTYS=y
793# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724CONFIG_LEGACY_PTYS=y 794CONFIG_LEGACY_PTYS=y
725CONFIG_LEGACY_PTY_COUNT=256 795CONFIG_LEGACY_PTY_COUNT=256
796# CONFIG_HVC_UDBG is not set
726# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
727CONFIG_HW_RANDOM=y 798CONFIG_HW_RANDOM=y
799# CONFIG_HW_RANDOM_TIMERIOMEM is not set
728# CONFIG_NVRAM is not set 800# CONFIG_NVRAM is not set
729# CONFIG_R3964 is not set 801# CONFIG_R3964 is not set
730# CONFIG_APPLICOM is not set 802# CONFIG_APPLICOM is not set
@@ -734,44 +806,62 @@ CONFIG_DEVPORT=y
734CONFIG_I2C=y 806CONFIG_I2C=y
735CONFIG_I2C_BOARDINFO=y 807CONFIG_I2C_BOARDINFO=y
736CONFIG_I2C_CHARDEV=y 808CONFIG_I2C_CHARDEV=y
809CONFIG_I2C_HELPER_AUTO=y
737 810
738# 811#
739# I2C Hardware Bus support 812# I2C Hardware Bus support
740# 813#
814
815#
816# PC SMBus host controller drivers
817#
741# CONFIG_I2C_ALI1535 is not set 818# CONFIG_I2C_ALI1535 is not set
742# CONFIG_I2C_ALI1563 is not set 819# CONFIG_I2C_ALI1563 is not set
743# CONFIG_I2C_ALI15X3 is not set 820# CONFIG_I2C_ALI15X3 is not set
744# CONFIG_I2C_AMD756 is not set 821# CONFIG_I2C_AMD756 is not set
745# CONFIG_I2C_AMD8111 is not set 822# CONFIG_I2C_AMD8111 is not set
746# CONFIG_I2C_I801 is not set 823# CONFIG_I2C_I801 is not set
747# CONFIG_I2C_I810 is not set 824# CONFIG_I2C_ISCH is not set
748# CONFIG_I2C_PIIX4 is not set 825# CONFIG_I2C_PIIX4 is not set
749CONFIG_I2C_MPC=y
750# CONFIG_I2C_NFORCE2 is not set 826# CONFIG_I2C_NFORCE2 is not set
751# CONFIG_I2C_OCORES is not set
752# CONFIG_I2C_PARPORT_LIGHT is not set
753# CONFIG_I2C_PROSAVAGE is not set
754# CONFIG_I2C_SAVAGE4 is not set
755# CONFIG_I2C_SIMTEC is not set
756# CONFIG_I2C_SIS5595 is not set 827# CONFIG_I2C_SIS5595 is not set
757# CONFIG_I2C_SIS630 is not set 828# CONFIG_I2C_SIS630 is not set
758# CONFIG_I2C_SIS96X is not set 829# CONFIG_I2C_SIS96X is not set
759# CONFIG_I2C_TAOS_EVM is not set
760# CONFIG_I2C_STUB is not set
761# CONFIG_I2C_TINY_USB is not set
762# CONFIG_I2C_VIA is not set 830# CONFIG_I2C_VIA is not set
763# CONFIG_I2C_VIAPRO is not set 831# CONFIG_I2C_VIAPRO is not set
832
833#
834# I2C system bus drivers (mostly embedded / system-on-chip)
835#
836CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set
839
840#
841# External I2C/SMBus adapter drivers
842#
843# CONFIG_I2C_PARPORT_LIGHT is not set
844# CONFIG_I2C_TAOS_EVM is not set
845# CONFIG_I2C_TINY_USB is not set
846
847#
848# Graphics adapter I2C/DDC channel drivers
849#
764# CONFIG_I2C_VOODOO3 is not set 850# CONFIG_I2C_VOODOO3 is not set
851
852#
853# Other I2C/SMBus bus drivers
854#
765# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
856# CONFIG_I2C_STUB is not set
766 857
767# 858#
768# Miscellaneous I2C Chip support 859# Miscellaneous I2C Chip support
769# 860#
770# CONFIG_DS1682 is not set 861# CONFIG_DS1682 is not set
771# CONFIG_SENSORS_EEPROM is not set
772# CONFIG_SENSORS_PCF8574 is not set 862# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_PCF8575 is not set 863# CONFIG_PCF8575 is not set
774# CONFIG_SENSORS_PCF8591 is not set 864# CONFIG_SENSORS_PCA9539 is not set
775# CONFIG_SENSORS_MAX6875 is not set 865# CONFIG_SENSORS_MAX6875 is not set
776# CONFIG_SENSORS_TSL2550 is not set 866# CONFIG_SENSORS_TSL2550 is not set
777# CONFIG_I2C_DEBUG_CORE is not set 867# CONFIG_I2C_DEBUG_CORE is not set
@@ -785,33 +875,38 @@ CONFIG_SPI_MASTER=y
785# SPI Master Controller Drivers 875# SPI Master Controller Drivers
786# 876#
787# CONFIG_SPI_BITBANG is not set 877# CONFIG_SPI_BITBANG is not set
788CONFIG_SPI_SOCRATES=y
789 878
790# 879#
791# SPI Protocol Masters 880# SPI Protocol Masters
792# 881#
793# CONFIG_SPI_AT25 is not set
794# CONFIG_SPI_SPIDEV is not set 882# CONFIG_SPI_SPIDEV is not set
795# CONFIG_SPI_TLE62X0 is not set 883# CONFIG_SPI_TLE62X0 is not set
884CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
885# CONFIG_GPIOLIB is not set
796# CONFIG_W1 is not set 886# CONFIG_W1 is not set
797# CONFIG_POWER_SUPPLY is not set 887# CONFIG_POWER_SUPPLY is not set
798CONFIG_HWMON=y 888CONFIG_HWMON=y
799CONFIG_HWMON_VID=y 889CONFIG_HWMON_VID=y
890# CONFIG_SENSORS_AD7414 is not set
800# CONFIG_SENSORS_AD7418 is not set 891# CONFIG_SENSORS_AD7418 is not set
892# CONFIG_SENSORS_ADCXX is not set
801# CONFIG_SENSORS_ADM1021 is not set 893# CONFIG_SENSORS_ADM1021 is not set
802# CONFIG_SENSORS_ADM1025 is not set 894# CONFIG_SENSORS_ADM1025 is not set
803# CONFIG_SENSORS_ADM1026 is not set 895# CONFIG_SENSORS_ADM1026 is not set
804# CONFIG_SENSORS_ADM1029 is not set 896# CONFIG_SENSORS_ADM1029 is not set
805# CONFIG_SENSORS_ADM1031 is not set 897# CONFIG_SENSORS_ADM1031 is not set
806# CONFIG_SENSORS_ADM9240 is not set 898# CONFIG_SENSORS_ADM9240 is not set
899# CONFIG_SENSORS_ADT7462 is not set
807# CONFIG_SENSORS_ADT7470 is not set 900# CONFIG_SENSORS_ADT7470 is not set
808# CONFIG_SENSORS_ADT7473 is not set 901# CONFIG_SENSORS_ADT7473 is not set
902# CONFIG_SENSORS_ADT7475 is not set
809# CONFIG_SENSORS_ATXP1 is not set 903# CONFIG_SENSORS_ATXP1 is not set
810# CONFIG_SENSORS_DS1621 is not set 904# CONFIG_SENSORS_DS1621 is not set
811# CONFIG_SENSORS_I5K_AMB is not set 905# CONFIG_SENSORS_I5K_AMB is not set
812# CONFIG_SENSORS_F71805F is not set 906# CONFIG_SENSORS_F71805F is not set
813# CONFIG_SENSORS_F71882FG is not set 907# CONFIG_SENSORS_F71882FG is not set
814# CONFIG_SENSORS_F75375S is not set 908# CONFIG_SENSORS_F75375S is not set
909# CONFIG_SENSORS_G760A is not set
815# CONFIG_SENSORS_GL518SM is not set 910# CONFIG_SENSORS_GL518SM is not set
816# CONFIG_SENSORS_GL520SM is not set 911# CONFIG_SENSORS_GL520SM is not set
817# CONFIG_SENSORS_IT87 is not set 912# CONFIG_SENSORS_IT87 is not set
@@ -827,10 +922,15 @@ CONFIG_SENSORS_LM75=y
827# CONFIG_SENSORS_LM90 is not set 922# CONFIG_SENSORS_LM90 is not set
828# CONFIG_SENSORS_LM92 is not set 923# CONFIG_SENSORS_LM92 is not set
829# CONFIG_SENSORS_LM93 is not set 924# CONFIG_SENSORS_LM93 is not set
925# CONFIG_SENSORS_LTC4215 is not set
926# CONFIG_SENSORS_LTC4245 is not set
927# CONFIG_SENSORS_LM95241 is not set
928# CONFIG_SENSORS_MAX1111 is not set
830# CONFIG_SENSORS_MAX1619 is not set 929# CONFIG_SENSORS_MAX1619 is not set
831# CONFIG_SENSORS_MAX6650 is not set 930# CONFIG_SENSORS_MAX6650 is not set
832# CONFIG_SENSORS_PC87360 is not set 931# CONFIG_SENSORS_PC87360 is not set
833# CONFIG_SENSORS_PC87427 is not set 932# CONFIG_SENSORS_PC87427 is not set
933# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_SIS5595 is not set 934# CONFIG_SENSORS_SIS5595 is not set
835# CONFIG_SENSORS_DME1737 is not set 935# CONFIG_SENSORS_DME1737 is not set
836# CONFIG_SENSORS_SMSC47M1 is not set 936# CONFIG_SENSORS_SMSC47M1 is not set
@@ -849,22 +949,31 @@ CONFIG_SENSORS_W83781D=y
849# CONFIG_SENSORS_W83L786NG is not set 949# CONFIG_SENSORS_W83L786NG is not set
850# CONFIG_SENSORS_W83627HF is not set 950# CONFIG_SENSORS_W83627HF is not set
851# CONFIG_SENSORS_W83627EHF is not set 951# CONFIG_SENSORS_W83627EHF is not set
952# CONFIG_SENSORS_LIS3_SPI is not set
852CONFIG_HWMON_DEBUG_CHIP=y 953CONFIG_HWMON_DEBUG_CHIP=y
853# CONFIG_THERMAL is not set 954# CONFIG_THERMAL is not set
854# CONFIG_THERMAL_HWMON is not set 955# CONFIG_THERMAL_HWMON is not set
855# CONFIG_WATCHDOG is not set 956# CONFIG_WATCHDOG is not set
957CONFIG_SSB_POSSIBLE=y
856 958
857# 959#
858# Sonics Silicon Backplane 960# Sonics Silicon Backplane
859# 961#
860CONFIG_SSB_POSSIBLE=y
861# CONFIG_SSB is not set 962# CONFIG_SSB is not set
862 963
863# 964#
864# Multifunction device drivers 965# Multifunction device drivers
865# 966#
967# CONFIG_MFD_CORE is not set
866# CONFIG_MFD_SM501 is not set 968# CONFIG_MFD_SM501 is not set
867# CONFIG_HTC_PASIC3 is not set 969# CONFIG_HTC_PASIC3 is not set
970# CONFIG_TWL4030_CORE is not set
971# CONFIG_MFD_TMIO is not set
972# CONFIG_PMIC_DA903X is not set
973# CONFIG_MFD_WM8400 is not set
974# CONFIG_MFD_WM8350_I2C is not set
975# CONFIG_MFD_PCF50633 is not set
976# CONFIG_REGULATOR is not set
868 977
869# 978#
870# Multimedia devices 979# Multimedia devices
@@ -893,6 +1002,7 @@ CONFIG_DAB=y
893CONFIG_FB=y 1002CONFIG_FB=y
894# CONFIG_FIRMWARE_EDID is not set 1003# CONFIG_FIRMWARE_EDID is not set
895# CONFIG_FB_DDC is not set 1004# CONFIG_FB_DDC is not set
1005# CONFIG_FB_BOOT_VESA_SUPPORT is not set
896CONFIG_FB_CFB_FILLRECT=y 1006CONFIG_FB_CFB_FILLRECT=y
897CONFIG_FB_CFB_COPYAREA=y 1007CONFIG_FB_CFB_COPYAREA=y
898CONFIG_FB_CFB_IMAGEBLIT=y 1008CONFIG_FB_CFB_IMAGEBLIT=y
@@ -914,10 +1024,6 @@ CONFIG_FB_BOTH_ENDIAN=y
914# 1024#
915# Frame buffer hardware drivers 1025# Frame buffer hardware drivers
916# 1026#
917CONFIG_FB_MB862XX=y
918# CONFIG_FB_MB862XX_PCI_GDC is not set
919CONFIG_FB_MB862XX_LIME=y
920# CONFIG_FB_PRE_INIT_FB is not set
921# CONFIG_FB_CIRRUS is not set 1027# CONFIG_FB_CIRRUS is not set
922# CONFIG_FB_PM2 is not set 1028# CONFIG_FB_PM2 is not set
923# CONFIG_FB_CYBER2000 is not set 1029# CONFIG_FB_CYBER2000 is not set
@@ -936,6 +1042,7 @@ CONFIG_FB_MB862XX_LIME=y
936# CONFIG_FB_S3 is not set 1042# CONFIG_FB_S3 is not set
937# CONFIG_FB_SAVAGE is not set 1043# CONFIG_FB_SAVAGE is not set
938# CONFIG_FB_SIS is not set 1044# CONFIG_FB_SIS is not set
1045# CONFIG_FB_VIA is not set
939# CONFIG_FB_NEOMAGIC is not set 1046# CONFIG_FB_NEOMAGIC is not set
940# CONFIG_FB_KYRO is not set 1047# CONFIG_FB_KYRO is not set
941# CONFIG_FB_3DFX is not set 1048# CONFIG_FB_3DFX is not set
@@ -944,9 +1051,16 @@ CONFIG_FB_MB862XX_LIME=y
944# CONFIG_FB_TRIDENT is not set 1051# CONFIG_FB_TRIDENT is not set
945# CONFIG_FB_ARK is not set 1052# CONFIG_FB_ARK is not set
946# CONFIG_FB_PM3 is not set 1053# CONFIG_FB_PM3 is not set
1054# CONFIG_FB_CARMINE is not set
947# CONFIG_FB_FSL_DIU is not set 1055# CONFIG_FB_FSL_DIU is not set
948# CONFIG_FB_IBM_GXT4500 is not set 1056# CONFIG_FB_IBM_GXT4500 is not set
949# CONFIG_FB_VIRTUAL is not set 1057# CONFIG_FB_VIRTUAL is not set
1058# CONFIG_FB_METRONOME is not set
1059CONFIG_FB_MB862XX=y
1060# CONFIG_FB_MB862XX_PCI_GDC is not set
1061CONFIG_FB_MB862XX_LIME=y
1062# CONFIG_FB_PRE_INIT_FB is not set
1063# CONFIG_FB_BROADSHEET is not set
950# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1064# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
951 1065
952# 1066#
@@ -974,10 +1088,6 @@ CONFIG_FONT_8x16=y
974# CONFIG_FONT_SUN12x22 is not set 1088# CONFIG_FONT_SUN12x22 is not set
975# CONFIG_FONT_10x18 is not set 1089# CONFIG_FONT_10x18 is not set
976# CONFIG_LOGO is not set 1090# CONFIG_LOGO is not set
977
978#
979# Sound
980#
981# CONFIG_SOUND is not set 1091# CONFIG_SOUND is not set
982CONFIG_HID_SUPPORT=y 1092CONFIG_HID_SUPPORT=y
983CONFIG_HID=y 1093CONFIG_HID=y
@@ -988,9 +1098,36 @@ CONFIG_HID=y
988# USB Input Devices 1098# USB Input Devices
989# 1099#
990CONFIG_USB_HID=y 1100CONFIG_USB_HID=y
991# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1101# CONFIG_HID_PID is not set
992# CONFIG_HID_FF is not set
993# CONFIG_USB_HIDDEV is not set 1102# CONFIG_USB_HIDDEV is not set
1103
1104#
1105# Special HID drivers
1106#
1107# CONFIG_HID_A4TECH is not set
1108# CONFIG_HID_APPLE is not set
1109# CONFIG_HID_BELKIN is not set
1110# CONFIG_HID_CHERRY is not set
1111# CONFIG_HID_CHICONY is not set
1112# CONFIG_HID_CYPRESS is not set
1113# CONFIG_DRAGONRISE_FF is not set
1114# CONFIG_HID_EZKEY is not set
1115# CONFIG_HID_KYE is not set
1116# CONFIG_HID_GYRATION is not set
1117# CONFIG_HID_KENSINGTON is not set
1118# CONFIG_HID_LOGITECH is not set
1119# CONFIG_HID_MICROSOFT is not set
1120# CONFIG_HID_MONTEREY is not set
1121# CONFIG_HID_NTRIG is not set
1122# CONFIG_HID_PANTHERLORD is not set
1123# CONFIG_HID_PETALYNX is not set
1124# CONFIG_HID_SAMSUNG is not set
1125# CONFIG_HID_SONY is not set
1126# CONFIG_HID_SUNPLUS is not set
1127# CONFIG_GREENASIA_FF is not set
1128# CONFIG_HID_TOPSEED is not set
1129# CONFIG_THRUSTMASTER_FF is not set
1130# CONFIG_ZEROPLUS_FF is not set
994CONFIG_USB_SUPPORT=y 1131CONFIG_USB_SUPPORT=y
995CONFIG_USB_ARCH_HAS_HCD=y 1132CONFIG_USB_ARCH_HAS_HCD=y
996CONFIG_USB_ARCH_HAS_OHCI=y 1133CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1008,6 +1145,9 @@ CONFIG_USB_DEVICE_CLASS=y
1008# CONFIG_USB_OTG is not set 1145# CONFIG_USB_OTG is not set
1009# CONFIG_USB_OTG_WHITELIST is not set 1146# CONFIG_USB_OTG_WHITELIST is not set
1010# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1147# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1148CONFIG_USB_MON=y
1149# CONFIG_USB_WUSB is not set
1150# CONFIG_USB_WUSB_CBAF is not set
1011 1151
1012# 1152#
1013# USB Host Controller Drivers 1153# USB Host Controller Drivers
@@ -1018,6 +1158,7 @@ CONFIG_USB_EHCI_HCD=y
1018# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1158# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1019# CONFIG_USB_EHCI_FSL is not set 1159# CONFIG_USB_EHCI_FSL is not set
1020CONFIG_USB_EHCI_HCD_PPC_OF=y 1160CONFIG_USB_EHCI_HCD_PPC_OF=y
1161# CONFIG_USB_OXU210HP_HCD is not set
1021# CONFIG_USB_ISP116X_HCD is not set 1162# CONFIG_USB_ISP116X_HCD is not set
1022# CONFIG_USB_ISP1760_HCD is not set 1163# CONFIG_USB_ISP1760_HCD is not set
1023CONFIG_USB_OHCI_HCD=y 1164CONFIG_USB_OHCI_HCD=y
@@ -1031,6 +1172,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1031# CONFIG_USB_UHCI_HCD is not set 1172# CONFIG_USB_UHCI_HCD is not set
1032# CONFIG_USB_SL811_HCD is not set 1173# CONFIG_USB_SL811_HCD is not set
1033# CONFIG_USB_R8A66597_HCD is not set 1174# CONFIG_USB_R8A66597_HCD is not set
1175# CONFIG_USB_WHCI_HCD is not set
1176# CONFIG_USB_HWA_HCD is not set
1034 1177
1035# 1178#
1036# USB Device Class drivers 1179# USB Device Class drivers
@@ -1038,20 +1181,20 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1038# CONFIG_USB_ACM is not set 1181# CONFIG_USB_ACM is not set
1039# CONFIG_USB_PRINTER is not set 1182# CONFIG_USB_PRINTER is not set
1040# CONFIG_USB_WDM is not set 1183# CONFIG_USB_WDM is not set
1184# CONFIG_USB_TMC is not set
1041 1185
1042# 1186#
1043# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1187# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1044# 1188#
1045 1189
1046# 1190#
1047# may also be needed; see USB_STORAGE Help for more information 1191# also be needed; see USB_STORAGE Help for more info
1048# 1192#
1049CONFIG_USB_STORAGE=y 1193CONFIG_USB_STORAGE=y
1050# CONFIG_USB_STORAGE_DEBUG is not set 1194# CONFIG_USB_STORAGE_DEBUG is not set
1051# CONFIG_USB_STORAGE_DATAFAB is not set 1195# CONFIG_USB_STORAGE_DATAFAB is not set
1052# CONFIG_USB_STORAGE_FREECOM is not set 1196# CONFIG_USB_STORAGE_FREECOM is not set
1053# CONFIG_USB_STORAGE_ISD200 is not set 1197# CONFIG_USB_STORAGE_ISD200 is not set
1054# CONFIG_USB_STORAGE_DPCM is not set
1055# CONFIG_USB_STORAGE_USBAT is not set 1198# CONFIG_USB_STORAGE_USBAT is not set
1056# CONFIG_USB_STORAGE_SDDR09 is not set 1199# CONFIG_USB_STORAGE_SDDR09 is not set
1057# CONFIG_USB_STORAGE_SDDR55 is not set 1200# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1067,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1067# 1210#
1068# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1069# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1070CONFIG_USB_MON=y
1071 1213
1072# 1214#
1073# USB port drivers 1215# USB port drivers
@@ -1080,7 +1222,7 @@ CONFIG_USB_MON=y
1080# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1081# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1082# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1083# CONFIG_USB_AUERSWALD is not set 1225# CONFIG_USB_SEVSEG is not set
1084# CONFIG_USB_RIO500 is not set 1226# CONFIG_USB_RIO500 is not set
1085# CONFIG_USB_LEGOTOWER is not set 1227# CONFIG_USB_LEGOTOWER is not set
1086# CONFIG_USB_LCD is not set 1228# CONFIG_USB_LCD is not set
@@ -1088,7 +1230,6 @@ CONFIG_USB_MON=y
1088# CONFIG_USB_LED is not set 1230# CONFIG_USB_LED is not set
1089# CONFIG_USB_CYPRESS_CY7C63 is not set 1231# CONFIG_USB_CYPRESS_CY7C63 is not set
1090# CONFIG_USB_CYTHERM is not set 1232# CONFIG_USB_CYTHERM is not set
1091# CONFIG_USB_PHIDGET is not set
1092# CONFIG_USB_IDMOUSE is not set 1233# CONFIG_USB_IDMOUSE is not set
1093# CONFIG_USB_FTDI_ELAN is not set 1234# CONFIG_USB_FTDI_ELAN is not set
1094# CONFIG_USB_APPLEDISPLAY is not set 1235# CONFIG_USB_APPLEDISPLAY is not set
@@ -1098,7 +1239,14 @@ CONFIG_USB_MON=y
1098# CONFIG_USB_IOWARRIOR is not set 1239# CONFIG_USB_IOWARRIOR is not set
1099# CONFIG_USB_TEST is not set 1240# CONFIG_USB_TEST is not set
1100# CONFIG_USB_ISIGHTFW is not set 1241# CONFIG_USB_ISIGHTFW is not set
1242# CONFIG_USB_VST is not set
1101# CONFIG_USB_GADGET is not set 1243# CONFIG_USB_GADGET is not set
1244
1245#
1246# OTG and related infrastructure
1247#
1248# CONFIG_NOP_USB_XCEIV is not set
1249# CONFIG_UWB is not set
1102# CONFIG_MMC is not set 1250# CONFIG_MMC is not set
1103# CONFIG_MEMSTICK is not set 1251# CONFIG_MEMSTICK is not set
1104# CONFIG_NEW_LEDS is not set 1252# CONFIG_NEW_LEDS is not set
@@ -1135,33 +1283,42 @@ CONFIG_RTC_INTF_DEV=y
1135# CONFIG_RTC_DRV_M41T80 is not set 1283# CONFIG_RTC_DRV_M41T80 is not set
1136# CONFIG_RTC_DRV_S35390A is not set 1284# CONFIG_RTC_DRV_S35390A is not set
1137# CONFIG_RTC_DRV_FM3130 is not set 1285# CONFIG_RTC_DRV_FM3130 is not set
1138CONFIG_RTC_DRV_RX8025=y 1286# CONFIG_RTC_DRV_RX8581 is not set
1139 1287
1140# 1288#
1141# SPI RTC drivers 1289# SPI RTC drivers
1142# 1290#
1291# CONFIG_RTC_DRV_M41T94 is not set
1292# CONFIG_RTC_DRV_DS1305 is not set
1293# CONFIG_RTC_DRV_DS1390 is not set
1143# CONFIG_RTC_DRV_MAX6902 is not set 1294# CONFIG_RTC_DRV_MAX6902 is not set
1144# CONFIG_RTC_DRV_R9701 is not set 1295# CONFIG_RTC_DRV_R9701 is not set
1145# CONFIG_RTC_DRV_RS5C348 is not set 1296# CONFIG_RTC_DRV_RS5C348 is not set
1297# CONFIG_RTC_DRV_DS3234 is not set
1146 1298
1147# 1299#
1148# Platform RTC drivers 1300# Platform RTC drivers
1149# 1301#
1150# CONFIG_RTC_DRV_CMOS is not set 1302# CONFIG_RTC_DRV_CMOS is not set
1303# CONFIG_RTC_DRV_DS1286 is not set
1151# CONFIG_RTC_DRV_DS1511 is not set 1304# CONFIG_RTC_DRV_DS1511 is not set
1152# CONFIG_RTC_DRV_DS1553 is not set 1305# CONFIG_RTC_DRV_DS1553 is not set
1153# CONFIG_RTC_DRV_DS1742 is not set 1306# CONFIG_RTC_DRV_DS1742 is not set
1154# CONFIG_RTC_DRV_STK17TA8 is not set 1307# CONFIG_RTC_DRV_STK17TA8 is not set
1155# CONFIG_RTC_DRV_M48T86 is not set 1308# CONFIG_RTC_DRV_M48T86 is not set
1309# CONFIG_RTC_DRV_M48T35 is not set
1156# CONFIG_RTC_DRV_M48T59 is not set 1310# CONFIG_RTC_DRV_M48T59 is not set
1311# CONFIG_RTC_DRV_BQ4802 is not set
1157# CONFIG_RTC_DRV_V3020 is not set 1312# CONFIG_RTC_DRV_V3020 is not set
1158 1313
1159# 1314#
1160# on-CPU RTC drivers 1315# on-CPU RTC drivers
1161# 1316#
1162CONFIG_RTC_DRV_PPC=y 1317# CONFIG_RTC_DRV_GENERIC is not set
1163# CONFIG_DMADEVICES is not set 1318# CONFIG_DMADEVICES is not set
1319# CONFIG_AUXDISPLAY is not set
1164# CONFIG_UIO is not set 1320# CONFIG_UIO is not set
1321# CONFIG_STAGING is not set
1165 1322
1166# 1323#
1167# File systems 1324# File systems
@@ -1170,17 +1327,20 @@ CONFIG_EXT2_FS=y
1170# CONFIG_EXT2_FS_XATTR is not set 1327# CONFIG_EXT2_FS_XATTR is not set
1171# CONFIG_EXT2_FS_XIP is not set 1328# CONFIG_EXT2_FS_XIP is not set
1172CONFIG_EXT3_FS=y 1329CONFIG_EXT3_FS=y
1330# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1173CONFIG_EXT3_FS_XATTR=y 1331CONFIG_EXT3_FS_XATTR=y
1174# CONFIG_EXT3_FS_POSIX_ACL is not set 1332# CONFIG_EXT3_FS_POSIX_ACL is not set
1175# CONFIG_EXT3_FS_SECURITY is not set 1333# CONFIG_EXT3_FS_SECURITY is not set
1176# CONFIG_EXT4DEV_FS is not set 1334# CONFIG_EXT4_FS is not set
1177CONFIG_JBD=y 1335CONFIG_JBD=y
1178CONFIG_FS_MBCACHE=y 1336CONFIG_FS_MBCACHE=y
1179# CONFIG_REISERFS_FS is not set 1337# CONFIG_REISERFS_FS is not set
1180# CONFIG_JFS_FS is not set 1338# CONFIG_JFS_FS is not set
1181# CONFIG_FS_POSIX_ACL is not set 1339# CONFIG_FS_POSIX_ACL is not set
1340CONFIG_FILE_LOCKING=y
1182# CONFIG_XFS_FS is not set 1341# CONFIG_XFS_FS is not set
1183# CONFIG_OCFS2_FS is not set 1342# CONFIG_OCFS2_FS is not set
1343# CONFIG_BTRFS_FS is not set
1184CONFIG_DNOTIFY=y 1344CONFIG_DNOTIFY=y
1185CONFIG_INOTIFY=y 1345CONFIG_INOTIFY=y
1186CONFIG_INOTIFY_USER=y 1346CONFIG_INOTIFY_USER=y
@@ -1190,6 +1350,11 @@ CONFIG_INOTIFY_USER=y
1190# CONFIG_FUSE_FS is not set 1350# CONFIG_FUSE_FS is not set
1191 1351
1192# 1352#
1353# Caches
1354#
1355# CONFIG_FSCACHE is not set
1356
1357#
1193# CD-ROM/DVD Filesystems 1358# CD-ROM/DVD Filesystems
1194# 1359#
1195# CONFIG_ISO9660_FS is not set 1360# CONFIG_ISO9660_FS is not set
@@ -1208,15 +1373,13 @@ CONFIG_INOTIFY_USER=y
1208CONFIG_PROC_FS=y 1373CONFIG_PROC_FS=y
1209CONFIG_PROC_KCORE=y 1374CONFIG_PROC_KCORE=y
1210CONFIG_PROC_SYSCTL=y 1375CONFIG_PROC_SYSCTL=y
1376CONFIG_PROC_PAGE_MONITOR=y
1211CONFIG_SYSFS=y 1377CONFIG_SYSFS=y
1212CONFIG_TMPFS=y 1378CONFIG_TMPFS=y
1213# CONFIG_TMPFS_POSIX_ACL is not set 1379# CONFIG_TMPFS_POSIX_ACL is not set
1214# CONFIG_HUGETLB_PAGE is not set 1380# CONFIG_HUGETLB_PAGE is not set
1215# CONFIG_CONFIGFS_FS is not set 1381# CONFIG_CONFIGFS_FS is not set
1216 1382CONFIG_MISC_FILESYSTEMS=y
1217#
1218# Miscellaneous filesystems
1219#
1220# CONFIG_ADFS_FS is not set 1383# CONFIG_ADFS_FS is not set
1221# CONFIG_AFFS_FS is not set 1384# CONFIG_AFFS_FS is not set
1222# CONFIG_HFS_FS is not set 1385# CONFIG_HFS_FS is not set
@@ -1236,25 +1399,27 @@ CONFIG_JFFS2_ZLIB=y
1236CONFIG_JFFS2_RTIME=y 1399CONFIG_JFFS2_RTIME=y
1237# CONFIG_JFFS2_RUBIN is not set 1400# CONFIG_JFFS2_RUBIN is not set
1238CONFIG_CRAMFS=y 1401CONFIG_CRAMFS=y
1402# CONFIG_SQUASHFS is not set
1239# CONFIG_VXFS_FS is not set 1403# CONFIG_VXFS_FS is not set
1240# CONFIG_MINIX_FS is not set 1404# CONFIG_MINIX_FS is not set
1405# CONFIG_OMFS_FS is not set
1241# CONFIG_HPFS_FS is not set 1406# CONFIG_HPFS_FS is not set
1242# CONFIG_QNX4FS_FS is not set 1407# CONFIG_QNX4FS_FS is not set
1243# CONFIG_ROMFS_FS is not set 1408# CONFIG_ROMFS_FS is not set
1244# CONFIG_SYSV_FS is not set 1409# CONFIG_SYSV_FS is not set
1245# CONFIG_UFS_FS is not set 1410# CONFIG_UFS_FS is not set
1411# CONFIG_NILFS2_FS is not set
1246CONFIG_NETWORK_FILESYSTEMS=y 1412CONFIG_NETWORK_FILESYSTEMS=y
1247CONFIG_NFS_FS=y 1413CONFIG_NFS_FS=y
1248CONFIG_NFS_V3=y 1414CONFIG_NFS_V3=y
1249# CONFIG_NFS_V3_ACL is not set 1415# CONFIG_NFS_V3_ACL is not set
1250# CONFIG_NFS_V4 is not set 1416# CONFIG_NFS_V4 is not set
1251# CONFIG_NFSD is not set
1252CONFIG_ROOT_NFS=y 1417CONFIG_ROOT_NFS=y
1418# CONFIG_NFSD is not set
1253CONFIG_LOCKD=y 1419CONFIG_LOCKD=y
1254CONFIG_LOCKD_V4=y 1420CONFIG_LOCKD_V4=y
1255CONFIG_NFS_COMMON=y 1421CONFIG_NFS_COMMON=y
1256CONFIG_SUNRPC=y 1422CONFIG_SUNRPC=y
1257# CONFIG_SUNRPC_BIND34 is not set
1258# CONFIG_RPCSEC_GSS_KRB5 is not set 1423# CONFIG_RPCSEC_GSS_KRB5 is not set
1259# CONFIG_RPCSEC_GSS_SPKM3 is not set 1424# CONFIG_RPCSEC_GSS_SPKM3 is not set
1260# CONFIG_SMB_FS is not set 1425# CONFIG_SMB_FS is not set
@@ -1286,25 +1451,28 @@ CONFIG_MSDOS_PARTITION=y
1286# CONFIG_SYSV68_PARTITION is not set 1451# CONFIG_SYSV68_PARTITION is not set
1287# CONFIG_NLS is not set 1452# CONFIG_NLS is not set
1288# CONFIG_DLM is not set 1453# CONFIG_DLM is not set
1454# CONFIG_BINARY_PRINTF is not set
1289 1455
1290# 1456#
1291# Library routines 1457# Library routines
1292# 1458#
1293CONFIG_BITREVERSE=y 1459CONFIG_BITREVERSE=y
1294# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1460CONFIG_GENERIC_FIND_LAST_BIT=y
1295# CONFIG_CRC_CCITT is not set 1461# CONFIG_CRC_CCITT is not set
1296# CONFIG_CRC16 is not set 1462# CONFIG_CRC16 is not set
1463# CONFIG_CRC_T10DIF is not set
1297# CONFIG_CRC_ITU_T is not set 1464# CONFIG_CRC_ITU_T is not set
1298CONFIG_CRC32=y 1465CONFIG_CRC32=y
1299# CONFIG_CRC7 is not set 1466# CONFIG_CRC7 is not set
1300# CONFIG_LIBCRC32C is not set 1467# CONFIG_LIBCRC32C is not set
1301CONFIG_ZLIB_INFLATE=y 1468CONFIG_ZLIB_INFLATE=y
1302CONFIG_ZLIB_DEFLATE=y 1469CONFIG_ZLIB_DEFLATE=y
1303CONFIG_PLIST=y 1470CONFIG_DECOMPRESS_GZIP=y
1304CONFIG_HAS_IOMEM=y 1471CONFIG_HAS_IOMEM=y
1305CONFIG_HAS_IOPORT=y 1472CONFIG_HAS_IOPORT=y
1306CONFIG_HAS_DMA=y 1473CONFIG_HAS_DMA=y
1307CONFIG_HAVE_LMB=y 1474CONFIG_HAVE_LMB=y
1475CONFIG_NLATTR=y
1308 1476
1309# 1477#
1310# Kernel hacking 1478# Kernel hacking
@@ -1321,7 +1489,32 @@ CONFIG_FRAME_WARN=1024
1321# CONFIG_SLUB_DEBUG_ON is not set 1489# CONFIG_SLUB_DEBUG_ON is not set
1322# CONFIG_SLUB_STATS is not set 1490# CONFIG_SLUB_STATS is not set
1323# CONFIG_DEBUG_BUGVERBOSE is not set 1491# CONFIG_DEBUG_BUGVERBOSE is not set
1492# CONFIG_DEBUG_MEMORY_INIT is not set
1493# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1494# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y
1496CONFIG_HAVE_FUNCTION_TRACER=y
1497CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1498CONFIG_HAVE_DYNAMIC_FTRACE=y
1499CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1500CONFIG_TRACING_SUPPORT=y
1501
1502#
1503# Tracers
1504#
1505# CONFIG_FUNCTION_TRACER is not set
1506# CONFIG_SCHED_TRACER is not set
1507# CONFIG_CONTEXT_SWITCH_TRACER is not set
1508# CONFIG_EVENT_TRACER is not set
1509# CONFIG_BOOT_TRACER is not set
1510# CONFIG_TRACE_BRANCH_PROFILING is not set
1511# CONFIG_STACK_TRACER is not set
1512# CONFIG_KMEMTRACE is not set
1513# CONFIG_WORKQUEUE_TRACER is not set
1514# CONFIG_BLK_DEV_IO_TRACE is not set
1324# CONFIG_SAMPLES is not set 1515# CONFIG_SAMPLES is not set
1516CONFIG_HAVE_ARCH_KGDB=y
1517CONFIG_PRINT_STACK_DEPTH=64
1325# CONFIG_IRQSTACKS is not set 1518# CONFIG_IRQSTACKS is not set
1326# CONFIG_PPC_EARLY_DEBUG is not set 1519# CONFIG_PPC_EARLY_DEBUG is not set
1327 1520
@@ -1330,13 +1523,16 @@ CONFIG_FRAME_WARN=1024
1330# 1523#
1331# CONFIG_KEYS is not set 1524# CONFIG_KEYS is not set
1332# CONFIG_SECURITY is not set 1525# CONFIG_SECURITY is not set
1526# CONFIG_SECURITYFS is not set
1333# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1527# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1334CONFIG_CRYPTO=y 1528CONFIG_CRYPTO=y
1335 1529
1336# 1530#
1337# Crypto core or helper 1531# Crypto core or helper
1338# 1532#
1533# CONFIG_CRYPTO_FIPS is not set
1339# CONFIG_CRYPTO_MANAGER is not set 1534# CONFIG_CRYPTO_MANAGER is not set
1535# CONFIG_CRYPTO_MANAGER2 is not set
1340# CONFIG_CRYPTO_GF128MUL is not set 1536# CONFIG_CRYPTO_GF128MUL is not set
1341# CONFIG_CRYPTO_NULL is not set 1537# CONFIG_CRYPTO_NULL is not set
1342# CONFIG_CRYPTO_CRYPTD is not set 1538# CONFIG_CRYPTO_CRYPTD is not set
@@ -1374,6 +1570,10 @@ CONFIG_CRYPTO=y
1374# CONFIG_CRYPTO_MD4 is not set 1570# CONFIG_CRYPTO_MD4 is not set
1375# CONFIG_CRYPTO_MD5 is not set 1571# CONFIG_CRYPTO_MD5 is not set
1376# CONFIG_CRYPTO_MICHAEL_MIC is not set 1572# CONFIG_CRYPTO_MICHAEL_MIC is not set
1573# CONFIG_CRYPTO_RMD128 is not set
1574# CONFIG_CRYPTO_RMD160 is not set
1575# CONFIG_CRYPTO_RMD256 is not set
1576# CONFIG_CRYPTO_RMD320 is not set
1377# CONFIG_CRYPTO_SHA1 is not set 1577# CONFIG_CRYPTO_SHA1 is not set
1378# CONFIG_CRYPTO_SHA256 is not set 1578# CONFIG_CRYPTO_SHA256 is not set
1379# CONFIG_CRYPTO_SHA512 is not set 1579# CONFIG_CRYPTO_SHA512 is not set
@@ -1403,8 +1603,15 @@ CONFIG_CRYPTO=y
1403# Compression 1603# Compression
1404# 1604#
1405# CONFIG_CRYPTO_DEFLATE is not set 1605# CONFIG_CRYPTO_DEFLATE is not set
1606# CONFIG_CRYPTO_ZLIB is not set
1406# CONFIG_CRYPTO_LZO is not set 1607# CONFIG_CRYPTO_LZO is not set
1608
1609#
1610# Random Number Generation
1611#
1612# CONFIG_CRYPTO_ANSI_CPRNG is not set
1407CONFIG_CRYPTO_HW=y 1613CONFIG_CRYPTO_HW=y
1408# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1614# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1615# CONFIG_CRYPTO_DEV_TALITOS is not set
1409# CONFIG_PPC_CLOCK is not set 1616# CONFIG_PPC_CLOCK is not set
1410# CONFIG_VIRTUALIZATION is not set 1617# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index eb4ba7a5f41f..bd1bfcddbd0c 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:18 2009 4# Wed May 13 17:22:22 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,21 +101,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 112CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 113# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 114# CONFIG_KALLSYMS_EXTRA_PASS is not set
115# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 116CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 117CONFIG_PRINTK=y
102CONFIG_BUG=y 118CONFIG_BUG=y
103CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 121CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 122CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
@@ -114,10 +128,12 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 128CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 129CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 130CONFIG_SLUB_DEBUG=y
131CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 132# CONFIG_SLAB is not set
118CONFIG_SLUB=y 133CONFIG_SLUB=y
119# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 138# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 139CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,6 +142,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 142CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 143CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_CLK=y 144CONFIG_HAVE_CLK=y
145# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -137,7 +154,6 @@ CONFIG_MODVERSIONS=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 154# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_BLOCK=y 155CONFIG_BLOCK=y
139# CONFIG_LBD is not set 156# CONFIG_LBD is not set
140# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_BLK_DEV_BSG is not set 157# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 158# CONFIG_BLK_DEV_INTEGRITY is not set
143 159
@@ -153,11 +169,6 @@ CONFIG_IOSCHED_CFQ=y
153CONFIG_DEFAULT_CFQ=y 169CONFIG_DEFAULT_CFQ=y
154# CONFIG_DEFAULT_NOOP is not set 170# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="cfq" 171CONFIG_DEFAULT_IOSCHED="cfq"
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 172# CONFIG_FREEZER is not set
162 173
163# 174#
@@ -173,6 +184,7 @@ CONFIG_MPC85xx=y
173# CONFIG_MPC85xx_MDS is not set 184# CONFIG_MPC85xx_MDS is not set
174# CONFIG_MPC8536_DS is not set 185# CONFIG_MPC8536_DS is not set
175# CONFIG_MPC85xx_DS is not set 186# CONFIG_MPC85xx_DS is not set
187# CONFIG_SOCRATES is not set
176# CONFIG_KSI8560 is not set 188# CONFIG_KSI8560 is not set
177CONFIG_STX_GP3=y 189CONFIG_STX_GP3=y
178# CONFIG_TQM8540 is not set 190# CONFIG_TQM8540 is not set
@@ -241,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 263CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +284,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_LEGACY is not set 284# CONFIG_PCI_LEGACY is not set
270# CONFIG_PCI_DEBUG is not set 285# CONFIG_PCI_DEBUG is not set
271# CONFIG_PCI_STUB is not set 286# CONFIG_PCI_STUB is not set
287# CONFIG_PCI_IOV is not set
272# CONFIG_PCCARD is not set 288# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 289# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 290# CONFIG_HAS_RAPIDIO is not set
@@ -282,17 +298,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
282# Default settings for advanced configuration options are used 298# Default settings for advanced configuration options are used
283# 299#
284CONFIG_LOWMEM_SIZE=0x30000000 300CONFIG_LOWMEM_SIZE=0x30000000
301CONFIG_LOWMEM_CAM_NUM=3
285CONFIG_PAGE_OFFSET=0xc0000000 302CONFIG_PAGE_OFFSET=0xc0000000
286CONFIG_KERNEL_START=0xc0000000 303CONFIG_KERNEL_START=0xc0000000
287CONFIG_PHYSICAL_START=0x00000000 304CONFIG_PHYSICAL_START=0x00000000
288CONFIG_PHYSICAL_ALIGN=0x10000000 305CONFIG_PHYSICAL_ALIGN=0x04000000
289CONFIG_TASK_SIZE=0xc0000000 306CONFIG_TASK_SIZE=0xc0000000
290CONFIG_NET=y 307CONFIG_NET=y
291 308
292# 309#
293# Networking options 310# Networking options
294# 311#
295CONFIG_COMPAT_NET_DEV_OPS=y
296CONFIG_PACKET=y 312CONFIG_PACKET=y
297# CONFIG_PACKET_MMAP is not set 313# CONFIG_PACKET_MMAP is not set
298CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -353,6 +369,7 @@ CONFIG_NETFILTER_XTABLES=m
353# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 369# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
354# CONFIG_NETFILTER_XT_MATCH_ESP is not set 370# CONFIG_NETFILTER_XT_MATCH_ESP is not set
355# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 371# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
372# CONFIG_NETFILTER_XT_MATCH_HL is not set
356# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 373# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
357# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 374# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
358# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 375# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -389,6 +406,7 @@ CONFIG_IP_NF_FILTER=m
389# CONFIG_IP_NF_TARGET_LOG is not set 406# CONFIG_IP_NF_TARGET_LOG is not set
390# CONFIG_IP_NF_TARGET_ULOG is not set 407# CONFIG_IP_NF_TARGET_ULOG is not set
391# CONFIG_IP_NF_MANGLE is not set 408# CONFIG_IP_NF_MANGLE is not set
409# CONFIG_IP_NF_TARGET_TTL is not set
392# CONFIG_IP_NF_RAW is not set 410# CONFIG_IP_NF_RAW is not set
393# CONFIG_IP_NF_ARPTABLES is not set 411# CONFIG_IP_NF_ARPTABLES is not set
394# CONFIG_IP_DCCP is not set 412# CONFIG_IP_DCCP is not set
@@ -406,6 +424,7 @@ CONFIG_IP_NF_FILTER=m
406# CONFIG_LAPB is not set 424# CONFIG_LAPB is not set
407# CONFIG_ECONET is not set 425# CONFIG_ECONET is not set
408# CONFIG_WAN_ROUTER is not set 426# CONFIG_WAN_ROUTER is not set
427# CONFIG_PHONET is not set
409# CONFIG_NET_SCHED is not set 428# CONFIG_NET_SCHED is not set
410# CONFIG_DCB is not set 429# CONFIG_DCB is not set
411 430
@@ -418,7 +437,6 @@ CONFIG_NET_PKTGEN=y
418# CONFIG_IRDA is not set 437# CONFIG_IRDA is not set
419# CONFIG_BT is not set 438# CONFIG_BT is not set
420# CONFIG_AF_RXRPC is not set 439# CONFIG_AF_RXRPC is not set
421# CONFIG_PHONET is not set
422CONFIG_WIRELESS=y 440CONFIG_WIRELESS=y
423# CONFIG_CFG80211 is not set 441# CONFIG_CFG80211 is not set
424CONFIG_WIRELESS_OLD_REGULATORY=y 442CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -476,13 +494,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
476# CONFIG_BLK_DEV_HD is not set 494# CONFIG_BLK_DEV_HD is not set
477CONFIG_MISC_DEVICES=y 495CONFIG_MISC_DEVICES=y
478# CONFIG_PHANTOM is not set 496# CONFIG_PHANTOM is not set
479# CONFIG_EEPROM_93CX6 is not set
480# CONFIG_SGI_IOC4 is not set 497# CONFIG_SGI_IOC4 is not set
481# CONFIG_TIFM_CORE is not set 498# CONFIG_TIFM_CORE is not set
482# CONFIG_ICS932S401 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_ISL29003 is not set
485# CONFIG_C2PORT is not set 503# CONFIG_C2PORT is not set
504
505#
506# EEPROM support
507#
508# CONFIG_EEPROM_AT24 is not set
509# CONFIG_EEPROM_LEGACY is not set
510# CONFIG_EEPROM_93CX6 is not set
486CONFIG_HAVE_IDE=y 511CONFIG_HAVE_IDE=y
487CONFIG_IDE=y 512CONFIG_IDE=y
488 513
@@ -591,9 +616,11 @@ CONFIG_SCSI_LOWLEVEL=y
591# CONFIG_MEGARAID_NEWGEN is not set 616# CONFIG_MEGARAID_NEWGEN is not set
592# CONFIG_MEGARAID_LEGACY is not set 617# CONFIG_MEGARAID_LEGACY is not set
593# CONFIG_MEGARAID_SAS is not set 618# CONFIG_MEGARAID_SAS is not set
619# CONFIG_SCSI_MPT2SAS is not set
594# CONFIG_SCSI_HPTIOP is not set 620# CONFIG_SCSI_HPTIOP is not set
595# CONFIG_SCSI_BUSLOGIC is not set 621# CONFIG_SCSI_BUSLOGIC is not set
596# CONFIG_LIBFC is not set 622# CONFIG_LIBFC is not set
623# CONFIG_LIBFCOE is not set
597# CONFIG_FCOE is not set 624# CONFIG_FCOE is not set
598# CONFIG_SCSI_DMX3191D is not set 625# CONFIG_SCSI_DMX3191D is not set
599# CONFIG_SCSI_EATA is not set 626# CONFIG_SCSI_EATA is not set
@@ -617,6 +644,7 @@ CONFIG_SCSI_LOWLEVEL=y
617# CONFIG_SCSI_DEBUG is not set 644# CONFIG_SCSI_DEBUG is not set
618# CONFIG_SCSI_SRP is not set 645# CONFIG_SCSI_SRP is not set
619# CONFIG_SCSI_DH is not set 646# CONFIG_SCSI_DH is not set
647# CONFIG_SCSI_OSD_INITIATOR is not set
620# CONFIG_ATA is not set 648# CONFIG_ATA is not set
621# CONFIG_MD is not set 649# CONFIG_MD is not set
622# CONFIG_FUSION is not set 650# CONFIG_FUSION is not set
@@ -633,6 +661,7 @@ CONFIG_SCSI_LOWLEVEL=y
633# CONFIG_I2O is not set 661# CONFIG_I2O is not set
634# CONFIG_MACINTOSH_DRIVERS is not set 662# CONFIG_MACINTOSH_DRIVERS is not set
635CONFIG_NETDEVICES=y 663CONFIG_NETDEVICES=y
664CONFIG_COMPAT_NET_DEV_OPS=y
636# CONFIG_DUMMY is not set 665# CONFIG_DUMMY is not set
637# CONFIG_BONDING is not set 666# CONFIG_BONDING is not set
638# CONFIG_MACVLAN is not set 667# CONFIG_MACVLAN is not set
@@ -666,6 +695,8 @@ CONFIG_NET_ETHERNET=y
666# CONFIG_SUNGEM is not set 695# CONFIG_SUNGEM is not set
667# CONFIG_CASSINI is not set 696# CONFIG_CASSINI is not set
668# CONFIG_NET_VENDOR_3COM is not set 697# CONFIG_NET_VENDOR_3COM is not set
698# CONFIG_ETHOC is not set
699# CONFIG_DNET is not set
669# CONFIG_NET_TULIP is not set 700# CONFIG_NET_TULIP is not set
670# CONFIG_HP100 is not set 701# CONFIG_HP100 is not set
671# CONFIG_IBM_NEW_EMAC_ZMII is not set 702# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -687,6 +718,7 @@ CONFIG_NETDEV_1000=y
687# CONFIG_E1000E is not set 718# CONFIG_E1000E is not set
688# CONFIG_IP1000 is not set 719# CONFIG_IP1000 is not set
689# CONFIG_IGB is not set 720# CONFIG_IGB is not set
721# CONFIG_IGBVF is not set
690# CONFIG_NS83820 is not set 722# CONFIG_NS83820 is not set
691# CONFIG_HAMACHI is not set 723# CONFIG_HAMACHI is not set
692# CONFIG_YELLOWFIN is not set 724# CONFIG_YELLOWFIN is not set
@@ -697,10 +729,12 @@ CONFIG_NETDEV_1000=y
697# CONFIG_VIA_VELOCITY is not set 729# CONFIG_VIA_VELOCITY is not set
698# CONFIG_TIGON3 is not set 730# CONFIG_TIGON3 is not set
699# CONFIG_BNX2 is not set 731# CONFIG_BNX2 is not set
732CONFIG_FSL_PQ_MDIO=y
700CONFIG_GIANFAR=y 733CONFIG_GIANFAR=y
701# CONFIG_QLA3XXX is not set 734# CONFIG_QLA3XXX is not set
702# CONFIG_ATL1 is not set 735# CONFIG_ATL1 is not set
703# CONFIG_ATL1E is not set 736# CONFIG_ATL1E is not set
737# CONFIG_ATL1C is not set
704# CONFIG_JME is not set 738# CONFIG_JME is not set
705CONFIG_NETDEV_10000=y 739CONFIG_NETDEV_10000=y
706# CONFIG_CHELSIO_T1 is not set 740# CONFIG_CHELSIO_T1 is not set
@@ -710,6 +744,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
710# CONFIG_IXGBE is not set 744# CONFIG_IXGBE is not set
711# CONFIG_IXGB is not set 745# CONFIG_IXGB is not set
712# CONFIG_S2IO is not set 746# CONFIG_S2IO is not set
747# CONFIG_VXGE is not set
713# CONFIG_MYRI10GE is not set 748# CONFIG_MYRI10GE is not set
714# CONFIG_NETXEN_NIC is not set 749# CONFIG_NETXEN_NIC is not set
715# CONFIG_NIU is not set 750# CONFIG_NIU is not set
@@ -719,6 +754,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
719# CONFIG_BNX2X is not set 754# CONFIG_BNX2X is not set
720# CONFIG_QLGE is not set 755# CONFIG_QLGE is not set
721# CONFIG_SFC is not set 756# CONFIG_SFC is not set
757# CONFIG_BE2NET is not set
722# CONFIG_TR is not set 758# CONFIG_TR is not set
723 759
724# 760#
@@ -726,7 +762,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
726# 762#
727# CONFIG_WLAN_PRE80211 is not set 763# CONFIG_WLAN_PRE80211 is not set
728# CONFIG_WLAN_80211 is not set 764# CONFIG_WLAN_80211 is not set
729# CONFIG_IWLWIFI_LEDS is not set
730 765
731# 766#
732# Enable WiMAX (Networking options) to see the WiMAX drivers 767# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -778,7 +813,6 @@ CONFIG_MOUSE_PS2=y
778CONFIG_MOUSE_PS2_ALPS=y 813CONFIG_MOUSE_PS2_ALPS=y
779CONFIG_MOUSE_PS2_LOGIPS2PP=y 814CONFIG_MOUSE_PS2_LOGIPS2PP=y
780CONFIG_MOUSE_PS2_SYNAPTICS=y 815CONFIG_MOUSE_PS2_SYNAPTICS=y
781CONFIG_MOUSE_PS2_LIFEBOOK=y
782CONFIG_MOUSE_PS2_TRACKPOINT=y 816CONFIG_MOUSE_PS2_TRACKPOINT=y
783# CONFIG_MOUSE_PS2_ELANTECH is not set 817# CONFIG_MOUSE_PS2_ELANTECH is not set
784# CONFIG_MOUSE_PS2_TOUCHKIT is not set 818# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -837,6 +871,7 @@ CONFIG_PRINTER=m
837# CONFIG_HVC_UDBG is not set 871# CONFIG_HVC_UDBG is not set
838# CONFIG_IPMI_HANDLER is not set 872# CONFIG_IPMI_HANDLER is not set
839CONFIG_HW_RANDOM=m 873CONFIG_HW_RANDOM=m
874# CONFIG_HW_RANDOM_TIMERIOMEM is not set
840# CONFIG_NVRAM is not set 875# CONFIG_NVRAM is not set
841# CONFIG_GEN_RTC is not set 876# CONFIG_GEN_RTC is not set
842# CONFIG_R3964 is not set 877# CONFIG_R3964 is not set
@@ -903,12 +938,9 @@ CONFIG_I2C_ALGOBIT=m
903# Miscellaneous I2C Chip support 938# Miscellaneous I2C Chip support
904# 939#
905# CONFIG_DS1682 is not set 940# CONFIG_DS1682 is not set
906# CONFIG_EEPROM_AT24 is not set
907# CONFIG_EEPROM_LEGACY is not set
908# CONFIG_SENSORS_PCF8574 is not set 941# CONFIG_SENSORS_PCF8574 is not set
909# CONFIG_PCF8575 is not set 942# CONFIG_PCF8575 is not set
910# CONFIG_SENSORS_PCA9539 is not set 943# CONFIG_SENSORS_PCA9539 is not set
911# CONFIG_SENSORS_PCF8591 is not set
912# CONFIG_SENSORS_MAX6875 is not set 944# CONFIG_SENSORS_MAX6875 is not set
913# CONFIG_SENSORS_TSL2550 is not set 945# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_I2C_DEBUG_CORE is not set 946# CONFIG_I2C_DEBUG_CORE is not set
@@ -964,6 +996,7 @@ CONFIG_HWMON=y
964# CONFIG_SENSORS_F71805F is not set 996# CONFIG_SENSORS_F71805F is not set
965# CONFIG_SENSORS_F71882FG is not set 997# CONFIG_SENSORS_F71882FG is not set
966# CONFIG_SENSORS_F75375S is not set 998# CONFIG_SENSORS_F75375S is not set
999# CONFIG_SENSORS_G760A is not set
967# CONFIG_SENSORS_GL518SM is not set 1000# CONFIG_SENSORS_GL518SM is not set
968# CONFIG_SENSORS_GL520SM is not set 1001# CONFIG_SENSORS_GL520SM is not set
969# CONFIG_SENSORS_IT87 is not set 1002# CONFIG_SENSORS_IT87 is not set
@@ -978,11 +1011,15 @@ CONFIG_HWMON=y
978# CONFIG_SENSORS_LM90 is not set 1011# CONFIG_SENSORS_LM90 is not set
979# CONFIG_SENSORS_LM92 is not set 1012# CONFIG_SENSORS_LM92 is not set
980# CONFIG_SENSORS_LM93 is not set 1013# CONFIG_SENSORS_LM93 is not set
1014# CONFIG_SENSORS_LTC4215 is not set
981# CONFIG_SENSORS_LTC4245 is not set 1015# CONFIG_SENSORS_LTC4245 is not set
1016# CONFIG_SENSORS_LM95241 is not set
982# CONFIG_SENSORS_MAX1619 is not set 1017# CONFIG_SENSORS_MAX1619 is not set
983# CONFIG_SENSORS_MAX6650 is not set 1018# CONFIG_SENSORS_MAX6650 is not set
984# CONFIG_SENSORS_PC87360 is not set 1019# CONFIG_SENSORS_PC87360 is not set
985# CONFIG_SENSORS_PC87427 is not set 1020# CONFIG_SENSORS_PC87427 is not set
1021# CONFIG_SENSORS_PCF8591 is not set
1022# CONFIG_SENSORS_SHT15 is not set
986# CONFIG_SENSORS_SIS5595 is not set 1023# CONFIG_SENSORS_SIS5595 is not set
987# CONFIG_SENSORS_DME1737 is not set 1024# CONFIG_SENSORS_DME1737 is not set
988# CONFIG_SENSORS_SMSC47M1 is not set 1025# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1075,7 +1112,6 @@ CONFIG_HID=y
1075# 1112#
1076# Special HID drivers 1113# Special HID drivers
1077# 1114#
1078CONFIG_HID_COMPAT=y
1079CONFIG_USB_SUPPORT=y 1115CONFIG_USB_SUPPORT=y
1080CONFIG_USB_ARCH_HAS_HCD=y 1116CONFIG_USB_ARCH_HAS_HCD=y
1081CONFIG_USB_ARCH_HAS_OHCI=y 1117CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1089,7 +1125,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1089# 1125#
1090 1126
1091# 1127#
1092# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1128# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1093# 1129#
1094# CONFIG_USB_GADGET is not set 1130# CONFIG_USB_GADGET is not set
1095 1131
@@ -1116,6 +1152,7 @@ CONFIG_EXT2_FS=y
1116# CONFIG_EXT2_FS_XATTR is not set 1152# CONFIG_EXT2_FS_XATTR is not set
1117# CONFIG_EXT2_FS_XIP is not set 1153# CONFIG_EXT2_FS_XIP is not set
1118CONFIG_EXT3_FS=y 1154CONFIG_EXT3_FS=y
1155# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1119CONFIG_EXT3_FS_XATTR=y 1156CONFIG_EXT3_FS_XATTR=y
1120# CONFIG_EXT3_FS_POSIX_ACL is not set 1157# CONFIG_EXT3_FS_POSIX_ACL is not set
1121# CONFIG_EXT3_FS_SECURITY is not set 1158# CONFIG_EXT3_FS_SECURITY is not set
@@ -1138,6 +1175,11 @@ CONFIG_AUTOFS4_FS=y
1138# CONFIG_FUSE_FS is not set 1175# CONFIG_FUSE_FS is not set
1139 1176
1140# 1177#
1178# Caches
1179#
1180# CONFIG_FSCACHE is not set
1181
1182#
1141# CD-ROM/DVD Filesystems 1183# CD-ROM/DVD Filesystems
1142# 1184#
1143CONFIG_ISO9660_FS=m 1185CONFIG_ISO9660_FS=m
@@ -1186,6 +1228,7 @@ CONFIG_CRAMFS=m
1186# CONFIG_ROMFS_FS is not set 1228# CONFIG_ROMFS_FS is not set
1187# CONFIG_SYSV_FS is not set 1229# CONFIG_SYSV_FS is not set
1188# CONFIG_UFS_FS is not set 1230# CONFIG_UFS_FS is not set
1231# CONFIG_NILFS2_FS is not set
1189CONFIG_NETWORK_FILESYSTEMS=y 1232CONFIG_NETWORK_FILESYSTEMS=y
1190CONFIG_NFS_FS=y 1233CONFIG_NFS_FS=y
1191CONFIG_NFS_V3=y 1234CONFIG_NFS_V3=y
@@ -1197,7 +1240,6 @@ CONFIG_LOCKD=y
1197CONFIG_LOCKD_V4=y 1240CONFIG_LOCKD_V4=y
1198CONFIG_NFS_COMMON=y 1241CONFIG_NFS_COMMON=y
1199CONFIG_SUNRPC=y 1242CONFIG_SUNRPC=y
1200# CONFIG_SUNRPC_REGISTER_V4 is not set
1201# CONFIG_RPCSEC_GSS_KRB5 is not set 1243# CONFIG_RPCSEC_GSS_KRB5 is not set
1202# CONFIG_RPCSEC_GSS_SPKM3 is not set 1244# CONFIG_RPCSEC_GSS_SPKM3 is not set
1203CONFIG_SMB_FS=m 1245CONFIG_SMB_FS=m
@@ -1253,6 +1295,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1253# CONFIG_NLS_KOI8_U is not set 1295# CONFIG_NLS_KOI8_U is not set
1254# CONFIG_NLS_UTF8 is not set 1296# CONFIG_NLS_UTF8 is not set
1255# CONFIG_DLM is not set 1297# CONFIG_DLM is not set
1298# CONFIG_BINARY_PRINTF is not set
1256 1299
1257# 1300#
1258# Library routines 1301# Library routines
@@ -1266,12 +1309,13 @@ CONFIG_CRC_ITU_T=m
1266CONFIG_CRC32=y 1309CONFIG_CRC32=y
1267# CONFIG_CRC7 is not set 1310# CONFIG_CRC7 is not set
1268# CONFIG_LIBCRC32C is not set 1311# CONFIG_LIBCRC32C is not set
1269CONFIG_ZLIB_INFLATE=m 1312CONFIG_ZLIB_INFLATE=y
1270CONFIG_PLIST=y 1313CONFIG_DECOMPRESS_GZIP=y
1271CONFIG_HAS_IOMEM=y 1314CONFIG_HAS_IOMEM=y
1272CONFIG_HAS_IOPORT=y 1315CONFIG_HAS_IOPORT=y
1273CONFIG_HAS_DMA=y 1316CONFIG_HAS_DMA=y
1274CONFIG_HAVE_LMB=y 1317CONFIG_HAVE_LMB=y
1318CONFIG_NLATTR=y
1275 1319
1276# 1320#
1277# Kernel hacking 1321# Kernel hacking
@@ -1289,6 +1333,9 @@ CONFIG_DEBUG_KERNEL=y
1289CONFIG_DETECT_SOFTLOCKUP=y 1333CONFIG_DETECT_SOFTLOCKUP=y
1290# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1334# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1291CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1335CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1336CONFIG_DETECT_HUNG_TASK=y
1337# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1338CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1292CONFIG_SCHED_DEBUG=y 1339CONFIG_SCHED_DEBUG=y
1293# CONFIG_SCHEDSTATS is not set 1340# CONFIG_SCHEDSTATS is not set
1294# CONFIG_TIMER_STATS is not set 1341# CONFIG_TIMER_STATS is not set
@@ -1319,9 +1366,12 @@ CONFIG_SCHED_DEBUG=y
1319# CONFIG_FAULT_INJECTION is not set 1366# CONFIG_FAULT_INJECTION is not set
1320# CONFIG_LATENCYTOP is not set 1367# CONFIG_LATENCYTOP is not set
1321CONFIG_SYSCTL_SYSCALL_CHECK=y 1368CONFIG_SYSCTL_SYSCALL_CHECK=y
1369# CONFIG_DEBUG_PAGEALLOC is not set
1322CONFIG_HAVE_FUNCTION_TRACER=y 1370CONFIG_HAVE_FUNCTION_TRACER=y
1371CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1323CONFIG_HAVE_DYNAMIC_FTRACE=y 1372CONFIG_HAVE_DYNAMIC_FTRACE=y
1324CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1373CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1374CONFIG_TRACING_SUPPORT=y
1325 1375
1326# 1376#
1327# Tracers 1377# Tracers
@@ -1329,17 +1379,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1329# CONFIG_FUNCTION_TRACER is not set 1379# CONFIG_FUNCTION_TRACER is not set
1330# CONFIG_SCHED_TRACER is not set 1380# CONFIG_SCHED_TRACER is not set
1331# CONFIG_CONTEXT_SWITCH_TRACER is not set 1381# CONFIG_CONTEXT_SWITCH_TRACER is not set
1382# CONFIG_EVENT_TRACER is not set
1332# CONFIG_BOOT_TRACER is not set 1383# CONFIG_BOOT_TRACER is not set
1333# CONFIG_TRACE_BRANCH_PROFILING is not set 1384# CONFIG_TRACE_BRANCH_PROFILING is not set
1334# CONFIG_STACK_TRACER is not set 1385# CONFIG_STACK_TRACER is not set
1335# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1386# CONFIG_KMEMTRACE is not set
1387# CONFIG_WORKQUEUE_TRACER is not set
1388# CONFIG_BLK_DEV_IO_TRACE is not set
1336# CONFIG_SAMPLES is not set 1389# CONFIG_SAMPLES is not set
1337CONFIG_HAVE_ARCH_KGDB=y 1390CONFIG_HAVE_ARCH_KGDB=y
1338# CONFIG_KGDB is not set 1391# CONFIG_KGDB is not set
1339CONFIG_PRINT_STACK_DEPTH=64 1392CONFIG_PRINT_STACK_DEPTH=64
1340# CONFIG_DEBUG_STACKOVERFLOW is not set 1393# CONFIG_DEBUG_STACKOVERFLOW is not set
1341# CONFIG_DEBUG_STACK_USAGE is not set 1394# CONFIG_DEBUG_STACK_USAGE is not set
1342# CONFIG_DEBUG_PAGEALLOC is not set
1343# CONFIG_CODE_PATCHING_SELFTEST is not set 1395# CONFIG_CODE_PATCHING_SELFTEST is not set
1344# CONFIG_FTR_FIXUP_SELFTEST is not set 1396# CONFIG_FTR_FIXUP_SELFTEST is not set
1345# CONFIG_MSI_BITMAP_SELFTEST is not set 1397# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1433,6 +1485,7 @@ CONFIG_CRYPTO=y
1433# Compression 1485# Compression
1434# 1486#
1435# CONFIG_CRYPTO_DEFLATE is not set 1487# CONFIG_CRYPTO_DEFLATE is not set
1488# CONFIG_CRYPTO_ZLIB is not set
1436# CONFIG_CRYPTO_LZO is not set 1489# CONFIG_CRYPTO_LZO is not set
1437 1490
1438# 1491#
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index f4379b1cf841..767600145fb2 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:19 2009 4# Wed May 13 17:22:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,19 +100,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96# CONFIG_KALLSYMS is not set 111# CONFIG_KALLSYMS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
97# CONFIG_HOTPLUG is not set 113# CONFIG_HOTPLUG is not set
98CONFIG_PRINTK=y 114CONFIG_PRINTK=y
99CONFIG_BUG=y 115CONFIG_BUG=y
100CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 118CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105# CONFIG_EPOLL is not set 119# CONFIG_EPOLL is not set
106CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -111,16 +125,19 @@ CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
114# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
115CONFIG_SLUB=y 130CONFIG_SLUB=y
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y 136CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 137CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
140# CONFIG_SLOW_WORK is not set
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
@@ -128,7 +145,6 @@ CONFIG_BASE_SMALL=0
128# CONFIG_MODULES is not set 145# CONFIG_MODULES is not set
129CONFIG_BLOCK=y 146CONFIG_BLOCK=y
130# CONFIG_LBD is not set 147# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
134 150
@@ -144,11 +160,6 @@ CONFIG_DEFAULT_AS=y
144# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 161# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
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 163# CONFIG_FREEZER is not set
153 164
154# 165#
@@ -164,6 +175,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC85xx_MDS is not set 175# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set 176# CONFIG_MPC8536_DS is not set
166# CONFIG_MPC85xx_DS is not set 177# CONFIG_MPC85xx_DS is not set
178# CONFIG_SOCRATES is not set
167# CONFIG_KSI8560 is not set 179# CONFIG_KSI8560 is not set
168# CONFIG_STX_GP3 is not set 180# CONFIG_STX_GP3 is not set
169CONFIG_TQM8540=y 181CONFIG_TQM8540=y
@@ -232,9 +244,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 246CONFIG_UNEVICTABLE_LRU=y
247CONFIG_HAVE_MLOCK=y
248CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 249CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 250# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 251# CONFIG_PPC_64K_PAGES is not set
252# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 253CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 254# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
@@ -259,6 +274,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
259# CONFIG_PCI_MSI is not set 274# CONFIG_PCI_MSI is not set
260# CONFIG_PCI_LEGACY is not set 275# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_STUB is not set 276# CONFIG_PCI_STUB is not set
277# CONFIG_PCI_IOV is not set
262# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
263 279
264# 280#
@@ -270,17 +286,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
270# Default settings for advanced configuration options are used 286# Default settings for advanced configuration options are used
271# 287#
272CONFIG_LOWMEM_SIZE=0x30000000 288CONFIG_LOWMEM_SIZE=0x30000000
289CONFIG_LOWMEM_CAM_NUM=3
273CONFIG_PAGE_OFFSET=0xc0000000 290CONFIG_PAGE_OFFSET=0xc0000000
274CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
275CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
276CONFIG_PHYSICAL_ALIGN=0x10000000 293CONFIG_PHYSICAL_ALIGN=0x04000000
277CONFIG_TASK_SIZE=0xc0000000 294CONFIG_TASK_SIZE=0xc0000000
278CONFIG_NET=y 295CONFIG_NET=y
279 296
280# 297#
281# Networking options 298# Networking options
282# 299#
283CONFIG_COMPAT_NET_DEV_OPS=y
284CONFIG_PACKET=y 300CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set 301# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y 302CONFIG_UNIX=y
@@ -336,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_LAPB is not set 352# CONFIG_LAPB is not set
337# CONFIG_ECONET is not set 353# CONFIG_ECONET is not set
338# CONFIG_WAN_ROUTER is not set 354# CONFIG_WAN_ROUTER is not set
355# CONFIG_PHONET is not set
339# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
340# CONFIG_DCB is not set 357# CONFIG_DCB is not set
341 358
@@ -348,7 +365,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_IRDA is not set 365# CONFIG_IRDA is not set
349# CONFIG_BT is not set 366# CONFIG_BT is not set
350# CONFIG_AF_RXRPC is not set 367# CONFIG_AF_RXRPC is not set
351# CONFIG_PHONET is not set
352CONFIG_WIRELESS=y 368CONFIG_WIRELESS=y
353# CONFIG_CFG80211 is not set 369# CONFIG_CFG80211 is not set
354CONFIG_WIRELESS_OLD_REGULATORY=y 370CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -448,7 +464,6 @@ CONFIG_MTD_CFI_UTIL=y
448# LPDDR flash memory drivers 464# LPDDR flash memory drivers
449# 465#
450# CONFIG_MTD_LPDDR is not set 466# CONFIG_MTD_LPDDR is not set
451# CONFIG_MTD_QINFO_PROBE is not set
452 467
453# 468#
454# UBI - Unsorted block images 469# UBI - Unsorted block images
@@ -477,19 +492,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
477# CONFIG_BLK_DEV_HD is not set 492# CONFIG_BLK_DEV_HD is not set
478CONFIG_MISC_DEVICES=y 493CONFIG_MISC_DEVICES=y
479# CONFIG_PHANTOM is not set 494# CONFIG_PHANTOM is not set
480# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_SGI_IOC4 is not set 495# CONFIG_SGI_IOC4 is not set
482# CONFIG_TIFM_CORE is not set 496# CONFIG_TIFM_CORE is not set
483# CONFIG_ICS932S401 is not set 497# CONFIG_ICS932S401 is not set
484# CONFIG_ENCLOSURE_SERVICES is not set 498# CONFIG_ENCLOSURE_SERVICES is not set
485# CONFIG_HP_ILO is not set 499# CONFIG_HP_ILO is not set
500# CONFIG_ISL29003 is not set
486# CONFIG_C2PORT is not set 501# CONFIG_C2PORT is not set
502
503#
504# EEPROM support
505#
506# CONFIG_EEPROM_AT24 is not set
507# CONFIG_EEPROM_LEGACY is not set
508# CONFIG_EEPROM_93CX6 is not set
487CONFIG_HAVE_IDE=y 509CONFIG_HAVE_IDE=y
488CONFIG_IDE=y 510CONFIG_IDE=y
489 511
490# 512#
491# Please see Documentation/ide/ide.txt for help/info on IDE drives 513# Please see Documentation/ide/ide.txt for help/info on IDE drives
492# 514#
515CONFIG_IDE_XFER_MODE=y
493CONFIG_IDE_TIMINGS=y 516CONFIG_IDE_TIMINGS=y
494# CONFIG_BLK_DEV_IDE_SATA is not set 517# CONFIG_BLK_DEV_IDE_SATA is not set
495CONFIG_IDE_GD=y 518CONFIG_IDE_GD=y
@@ -564,6 +587,7 @@ CONFIG_BLK_DEV_IDEDMA=y
564# CONFIG_I2O is not set 587# CONFIG_I2O is not set
565# CONFIG_MACINTOSH_DRIVERS is not set 588# CONFIG_MACINTOSH_DRIVERS is not set
566CONFIG_NETDEVICES=y 589CONFIG_NETDEVICES=y
590CONFIG_COMPAT_NET_DEV_OPS=y
567# CONFIG_DUMMY is not set 591# CONFIG_DUMMY is not set
568# CONFIG_BONDING is not set 592# CONFIG_BONDING is not set
569# CONFIG_MACVLAN is not set 593# CONFIG_MACVLAN is not set
@@ -597,6 +621,8 @@ CONFIG_MII=y
597# CONFIG_SUNGEM is not set 621# CONFIG_SUNGEM is not set
598# CONFIG_CASSINI is not set 622# CONFIG_CASSINI is not set
599# CONFIG_NET_VENDOR_3COM is not set 623# CONFIG_NET_VENDOR_3COM is not set
624# CONFIG_ETHOC is not set
625# CONFIG_DNET is not set
600# CONFIG_NET_TULIP is not set 626# CONFIG_NET_TULIP is not set
601# CONFIG_HP100 is not set 627# CONFIG_HP100 is not set
602# CONFIG_IBM_NEW_EMAC_ZMII is not set 628# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -634,6 +660,7 @@ CONFIG_NETDEV_1000=y
634# CONFIG_E1000E is not set 660# CONFIG_E1000E is not set
635# CONFIG_IP1000 is not set 661# CONFIG_IP1000 is not set
636# CONFIG_IGB is not set 662# CONFIG_IGB is not set
663# CONFIG_IGBVF is not set
637# CONFIG_NS83820 is not set 664# CONFIG_NS83820 is not set
638# CONFIG_HAMACHI is not set 665# CONFIG_HAMACHI is not set
639# CONFIG_YELLOWFIN is not set 666# CONFIG_YELLOWFIN is not set
@@ -644,10 +671,12 @@ CONFIG_NETDEV_1000=y
644# CONFIG_VIA_VELOCITY is not set 671# CONFIG_VIA_VELOCITY is not set
645# CONFIG_TIGON3 is not set 672# CONFIG_TIGON3 is not set
646# CONFIG_BNX2 is not set 673# CONFIG_BNX2 is not set
674CONFIG_FSL_PQ_MDIO=y
647CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
648# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
649# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
650# CONFIG_ATL1E is not set 678# CONFIG_ATL1E is not set
679# CONFIG_ATL1C is not set
651# CONFIG_JME is not set 680# CONFIG_JME is not set
652CONFIG_NETDEV_10000=y 681CONFIG_NETDEV_10000=y
653# CONFIG_CHELSIO_T1 is not set 682# CONFIG_CHELSIO_T1 is not set
@@ -657,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
657# CONFIG_IXGBE is not set 686# CONFIG_IXGBE is not set
658# CONFIG_IXGB is not set 687# CONFIG_IXGB is not set
659# CONFIG_S2IO is not set 688# CONFIG_S2IO is not set
689# CONFIG_VXGE is not set
660# CONFIG_MYRI10GE is not set 690# CONFIG_MYRI10GE is not set
661# CONFIG_NETXEN_NIC is not set 691# CONFIG_NETXEN_NIC is not set
662# CONFIG_NIU is not set 692# CONFIG_NIU is not set
@@ -666,6 +696,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
666# CONFIG_BNX2X is not set 696# CONFIG_BNX2X is not set
667# CONFIG_QLGE is not set 697# CONFIG_QLGE is not set
668# CONFIG_SFC is not set 698# CONFIG_SFC is not set
699# CONFIG_BE2NET is not set
669# CONFIG_TR is not set 700# CONFIG_TR is not set
670 701
671# 702#
@@ -673,7 +704,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
673# 704#
674# CONFIG_WLAN_PRE80211 is not set 705# CONFIG_WLAN_PRE80211 is not set
675# CONFIG_WLAN_80211 is not set 706# CONFIG_WLAN_80211 is not set
676# CONFIG_IWLWIFI_LEDS is not set
677 707
678# 708#
679# Enable WiMAX (Networking options) to see the WiMAX drivers 709# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -754,6 +784,7 @@ CONFIG_LEGACY_PTY_COUNT=256
754# CONFIG_HVC_UDBG is not set 784# CONFIG_HVC_UDBG is not set
755# CONFIG_IPMI_HANDLER is not set 785# CONFIG_IPMI_HANDLER is not set
756CONFIG_HW_RANDOM=y 786CONFIG_HW_RANDOM=y
787# CONFIG_HW_RANDOM_TIMERIOMEM is not set
757# CONFIG_NVRAM is not set 788# CONFIG_NVRAM is not set
758CONFIG_GEN_RTC=y 789CONFIG_GEN_RTC=y
759# CONFIG_GEN_RTC_X is not set 790# CONFIG_GEN_RTC_X is not set
@@ -816,12 +847,9 @@ CONFIG_I2C_MPC=y
816# Miscellaneous I2C Chip support 847# Miscellaneous I2C Chip support
817# 848#
818# CONFIG_DS1682 is not set 849# CONFIG_DS1682 is not set
819# CONFIG_EEPROM_AT24 is not set
820# CONFIG_EEPROM_LEGACY is not set
821# CONFIG_SENSORS_PCF8574 is not set 850# CONFIG_SENSORS_PCF8574 is not set
822# CONFIG_PCF8575 is not set 851# CONFIG_PCF8575 is not set
823# CONFIG_SENSORS_PCA9539 is not set 852# CONFIG_SENSORS_PCA9539 is not set
824# CONFIG_SENSORS_PCF8591 is not set
825# CONFIG_SENSORS_MAX6875 is not set 853# CONFIG_SENSORS_MAX6875 is not set
826# CONFIG_SENSORS_TSL2550 is not set 854# CONFIG_SENSORS_TSL2550 is not set
827# CONFIG_I2C_DEBUG_CORE is not set 855# CONFIG_I2C_DEBUG_CORE is not set
@@ -853,6 +881,7 @@ CONFIG_HWMON=y
853# CONFIG_SENSORS_F71805F is not set 881# CONFIG_SENSORS_F71805F is not set
854# CONFIG_SENSORS_F71882FG is not set 882# CONFIG_SENSORS_F71882FG is not set
855# CONFIG_SENSORS_F75375S is not set 883# CONFIG_SENSORS_F75375S is not set
884# CONFIG_SENSORS_G760A is not set
856# CONFIG_SENSORS_GL518SM is not set 885# CONFIG_SENSORS_GL518SM is not set
857# CONFIG_SENSORS_GL520SM is not set 886# CONFIG_SENSORS_GL520SM is not set
858# CONFIG_SENSORS_IT87 is not set 887# CONFIG_SENSORS_IT87 is not set
@@ -867,11 +896,14 @@ CONFIG_SENSORS_LM75=y
867# CONFIG_SENSORS_LM90 is not set 896# CONFIG_SENSORS_LM90 is not set
868# CONFIG_SENSORS_LM92 is not set 897# CONFIG_SENSORS_LM92 is not set
869# CONFIG_SENSORS_LM93 is not set 898# CONFIG_SENSORS_LM93 is not set
899# CONFIG_SENSORS_LTC4215 is not set
870# CONFIG_SENSORS_LTC4245 is not set 900# CONFIG_SENSORS_LTC4245 is not set
901# CONFIG_SENSORS_LM95241 is not set
871# CONFIG_SENSORS_MAX1619 is not set 902# CONFIG_SENSORS_MAX1619 is not set
872# CONFIG_SENSORS_MAX6650 is not set 903# CONFIG_SENSORS_MAX6650 is not set
873# CONFIG_SENSORS_PC87360 is not set 904# CONFIG_SENSORS_PC87360 is not set
874# CONFIG_SENSORS_PC87427 is not set 905# CONFIG_SENSORS_PC87427 is not set
906# CONFIG_SENSORS_PCF8591 is not set
875# CONFIG_SENSORS_SIS5595 is not set 907# CONFIG_SENSORS_SIS5595 is not set
876# CONFIG_SENSORS_DME1737 is not set 908# CONFIG_SENSORS_DME1737 is not set
877# CONFIG_SENSORS_SMSC47M1 is not set 909# CONFIG_SENSORS_SMSC47M1 is not set
@@ -955,7 +987,6 @@ CONFIG_HID=y
955# 987#
956# Special HID drivers 988# Special HID drivers
957# 989#
958CONFIG_HID_COMPAT=y
959CONFIG_USB_SUPPORT=y 990CONFIG_USB_SUPPORT=y
960CONFIG_USB_ARCH_HAS_HCD=y 991CONFIG_USB_ARCH_HAS_HCD=y
961CONFIG_USB_ARCH_HAS_OHCI=y 992CONFIG_USB_ARCH_HAS_OHCI=y
@@ -969,7 +1000,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
969# 1000#
970 1001
971# 1002#
972# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1003# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
973# 1004#
974# CONFIG_USB_GADGET is not set 1005# CONFIG_USB_GADGET is not set
975 1006
@@ -985,6 +1016,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
985# CONFIG_EDAC is not set 1016# CONFIG_EDAC is not set
986# CONFIG_RTC_CLASS is not set 1017# CONFIG_RTC_CLASS is not set
987# CONFIG_DMADEVICES is not set 1018# CONFIG_DMADEVICES is not set
1019# CONFIG_AUXDISPLAY is not set
988# CONFIG_UIO is not set 1020# CONFIG_UIO is not set
989# CONFIG_STAGING is not set 1021# CONFIG_STAGING is not set
990 1022
@@ -995,6 +1027,7 @@ CONFIG_EXT2_FS=y
995# CONFIG_EXT2_FS_XATTR is not set 1027# CONFIG_EXT2_FS_XATTR is not set
996# CONFIG_EXT2_FS_XIP is not set 1028# CONFIG_EXT2_FS_XIP is not set
997CONFIG_EXT3_FS=y 1029CONFIG_EXT3_FS=y
1030# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
998CONFIG_EXT3_FS_XATTR=y 1031CONFIG_EXT3_FS_XATTR=y
999# CONFIG_EXT3_FS_POSIX_ACL is not set 1032# CONFIG_EXT3_FS_POSIX_ACL is not set
1000# CONFIG_EXT3_FS_SECURITY is not set 1033# CONFIG_EXT3_FS_SECURITY is not set
@@ -1017,6 +1050,11 @@ CONFIG_INOTIFY_USER=y
1017# CONFIG_FUSE_FS is not set 1050# CONFIG_FUSE_FS is not set
1018 1051
1019# 1052#
1053# Caches
1054#
1055# CONFIG_FSCACHE is not set
1056
1057#
1020# CD-ROM/DVD Filesystems 1058# CD-ROM/DVD Filesystems
1021# 1059#
1022# CONFIG_ISO9660_FS is not set 1060# CONFIG_ISO9660_FS is not set
@@ -1070,6 +1108,7 @@ CONFIG_CRAMFS=y
1070# CONFIG_ROMFS_FS is not set 1108# CONFIG_ROMFS_FS is not set
1071# CONFIG_SYSV_FS is not set 1109# CONFIG_SYSV_FS is not set
1072# CONFIG_UFS_FS is not set 1110# CONFIG_UFS_FS is not set
1111# CONFIG_NILFS2_FS is not set
1073CONFIG_NETWORK_FILESYSTEMS=y 1112CONFIG_NETWORK_FILESYSTEMS=y
1074CONFIG_NFS_FS=y 1113CONFIG_NFS_FS=y
1075# CONFIG_NFS_V3 is not set 1114# CONFIG_NFS_V3 is not set
@@ -1079,7 +1118,6 @@ CONFIG_ROOT_NFS=y
1079CONFIG_LOCKD=y 1118CONFIG_LOCKD=y
1080CONFIG_NFS_COMMON=y 1119CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1120CONFIG_SUNRPC=y
1082# CONFIG_SUNRPC_REGISTER_V4 is not set
1083# CONFIG_RPCSEC_GSS_KRB5 is not set 1121# CONFIG_RPCSEC_GSS_KRB5 is not set
1084# CONFIG_RPCSEC_GSS_SPKM3 is not set 1122# CONFIG_RPCSEC_GSS_SPKM3 is not set
1085# CONFIG_SMB_FS is not set 1123# CONFIG_SMB_FS is not set
@@ -1107,6 +1145,7 @@ CONFIG_PARTITION_ADVANCED=y
1107# CONFIG_SYSV68_PARTITION is not set 1145# CONFIG_SYSV68_PARTITION is not set
1108# CONFIG_NLS is not set 1146# CONFIG_NLS is not set
1109# CONFIG_DLM is not set 1147# CONFIG_DLM is not set
1148# CONFIG_BINARY_PRINTF is not set
1110 1149
1111# 1150#
1112# Library routines 1151# Library routines
@@ -1122,11 +1161,12 @@ CONFIG_CRC32=y
1122# CONFIG_LIBCRC32C is not set 1161# CONFIG_LIBCRC32C is not set
1123CONFIG_ZLIB_INFLATE=y 1162CONFIG_ZLIB_INFLATE=y
1124CONFIG_ZLIB_DEFLATE=y 1163CONFIG_ZLIB_DEFLATE=y
1125CONFIG_PLIST=y 1164CONFIG_DECOMPRESS_GZIP=y
1126CONFIG_HAS_IOMEM=y 1165CONFIG_HAS_IOMEM=y
1127CONFIG_HAS_IOPORT=y 1166CONFIG_HAS_IOPORT=y
1128CONFIG_HAS_DMA=y 1167CONFIG_HAS_DMA=y
1129CONFIG_HAVE_LMB=y 1168CONFIG_HAVE_LMB=y
1169CONFIG_NLATTR=y
1130 1170
1131# 1171#
1132# Kernel hacking 1172# Kernel hacking
@@ -1148,13 +1188,24 @@ CONFIG_FRAME_WARN=1024
1148# CONFIG_LATENCYTOP is not set 1188# CONFIG_LATENCYTOP is not set
1149CONFIG_SYSCTL_SYSCALL_CHECK=y 1189CONFIG_SYSCTL_SYSCALL_CHECK=y
1150CONFIG_HAVE_FUNCTION_TRACER=y 1190CONFIG_HAVE_FUNCTION_TRACER=y
1191CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1151CONFIG_HAVE_DYNAMIC_FTRACE=y 1192CONFIG_HAVE_DYNAMIC_FTRACE=y
1152CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1193CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1194CONFIG_TRACING_SUPPORT=y
1153 1195
1154# 1196#
1155# Tracers 1197# Tracers
1156# 1198#
1157# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1199# CONFIG_FUNCTION_TRACER is not set
1200# CONFIG_SCHED_TRACER is not set
1201# CONFIG_CONTEXT_SWITCH_TRACER is not set
1202# CONFIG_EVENT_TRACER is not set
1203# CONFIG_BOOT_TRACER is not set
1204# CONFIG_TRACE_BRANCH_PROFILING is not set
1205# CONFIG_STACK_TRACER is not set
1206# CONFIG_KMEMTRACE is not set
1207# CONFIG_WORKQUEUE_TRACER is not set
1208# CONFIG_BLK_DEV_IO_TRACE is not set
1158# CONFIG_SAMPLES is not set 1209# CONFIG_SAMPLES is not set
1159CONFIG_HAVE_ARCH_KGDB=y 1210CONFIG_HAVE_ARCH_KGDB=y
1160CONFIG_PRINT_STACK_DEPTH=64 1211CONFIG_PRINT_STACK_DEPTH=64
@@ -1245,6 +1296,7 @@ CONFIG_CRYPTO=y
1245# Compression 1296# Compression
1246# 1297#
1247# CONFIG_CRYPTO_DEFLATE is not set 1298# CONFIG_CRYPTO_DEFLATE is not set
1299# CONFIG_CRYPTO_ZLIB is not set
1248# CONFIG_CRYPTO_LZO is not set 1300# CONFIG_CRYPTO_LZO is not set
1249 1301
1250# 1302#
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index b8669231c1fe..52fafc006dd0 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:20 2009 4# Wed May 13 17:22:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
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 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 0bc45975911a..8b4faae7a9a1 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:20 2009 4# Wed May 13 17:22:24 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,21 +100,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 112# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 113# CONFIG_KALLSYMS_EXTRA_PASS is not set
114# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 115CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 116CONFIG_PRINTK=y
101CONFIG_BUG=y 117CONFIG_BUG=y
102CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 120CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107CONFIG_EPOLL=y 121CONFIG_EPOLL=y
108CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
@@ -113,10 +127,12 @@ CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 127CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 128CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 129CONFIG_SLUB_DEBUG=y
130CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
117CONFIG_SLUB=y 132CONFIG_SLUB=y
118# CONFIG_SLOB is not set 133# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 134# CONFIG_PROFILING is not set
135# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 136CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 137# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 138CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -124,6 +140,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 142CONFIG_HAVE_ARCH_TRACEHOOK=y
143# CONFIG_SLOW_WORK is not set
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 144# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 145CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 146CONFIG_RT_MUTEXES=y
@@ -136,7 +153,6 @@ CONFIG_MODULE_UNLOAD=y
136# CONFIG_MODULE_SRCVERSION_ALL is not set 153# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_BLOCK=y 154CONFIG_BLOCK=y
138# CONFIG_LBD is not set 155# CONFIG_LBD is not set
139# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_BLK_DEV_BSG is not set 156# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 157# CONFIG_BLK_DEV_INTEGRITY is not set
142 158
@@ -152,11 +168,6 @@ CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_CFQ is not set 168# CONFIG_DEFAULT_CFQ is not set
153# CONFIG_DEFAULT_NOOP is not set 169# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="anticipatory" 170CONFIG_DEFAULT_IOSCHED="anticipatory"
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
160# CONFIG_FREEZER is not set 171# CONFIG_FREEZER is not set
161 172
162# 173#
@@ -172,6 +183,7 @@ CONFIG_MPC85xx=y
172# CONFIG_MPC85xx_MDS is not set 183# CONFIG_MPC85xx_MDS is not set
173# CONFIG_MPC8536_DS is not set 184# CONFIG_MPC8536_DS is not set
174# CONFIG_MPC85xx_DS is not set 185# CONFIG_MPC85xx_DS is not set
186# CONFIG_SOCRATES is not set
175# CONFIG_KSI8560 is not set 187# CONFIG_KSI8560 is not set
176# CONFIG_STX_GP3 is not set 188# CONFIG_STX_GP3 is not set
177# CONFIG_TQM8540 is not set 189# CONFIG_TQM8540 is not set
@@ -202,7 +214,7 @@ CONFIG_MPIC=y
202# 214#
203# Kernel options 215# Kernel options
204# 216#
205# CONFIG_HIGHMEM is not set 217CONFIG_HIGHMEM=y
206CONFIG_TICK_ONESHOT=y 218CONFIG_TICK_ONESHOT=y
207CONFIG_NO_HZ=y 219CONFIG_NO_HZ=y
208CONFIG_HIGH_RES_TIMERS=y 220CONFIG_HIGH_RES_TIMERS=y
@@ -241,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 263CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -259,6 +274,7 @@ CONFIG_ZONE_DMA=y
259CONFIG_PPC_INDIRECT_PCI=y 274CONFIG_PPC_INDIRECT_PCI=y
260CONFIG_FSL_SOC=y 275CONFIG_FSL_SOC=y
261CONFIG_FSL_PCI=y 276CONFIG_FSL_PCI=y
277CONFIG_FSL_LBC=y
262CONFIG_PPC_PCI_CHOICE=y 278CONFIG_PPC_PCI_CHOICE=y
263CONFIG_PCI=y 279CONFIG_PCI=y
264CONFIG_PCI_DOMAINS=y 280CONFIG_PCI_DOMAINS=y
@@ -271,6 +287,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
271# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
272# CONFIG_PCI_DEBUG is not set 288# CONFIG_PCI_DEBUG is not set
273# CONFIG_PCI_STUB is not set 289# CONFIG_PCI_STUB is not set
290# CONFIG_PCI_IOV is not set
274# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set 292# CONFIG_HOTPLUG_PCI is not set
276# CONFIG_HAS_RAPIDIO is not set 293# CONFIG_HAS_RAPIDIO is not set
@@ -284,17 +301,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
284# Default settings for advanced configuration options are used 301# Default settings for advanced configuration options are used
285# 302#
286CONFIG_LOWMEM_SIZE=0x30000000 303CONFIG_LOWMEM_SIZE=0x30000000
304CONFIG_LOWMEM_CAM_NUM=3
287CONFIG_PAGE_OFFSET=0xc0000000 305CONFIG_PAGE_OFFSET=0xc0000000
288CONFIG_KERNEL_START=0xc0000000 306CONFIG_KERNEL_START=0xc0000000
289CONFIG_PHYSICAL_START=0x00000000 307CONFIG_PHYSICAL_START=0x00000000
290CONFIG_PHYSICAL_ALIGN=0x10000000 308CONFIG_PHYSICAL_ALIGN=0x04000000
291CONFIG_TASK_SIZE=0xc0000000 309CONFIG_TASK_SIZE=0xc0000000
292CONFIG_NET=y 310CONFIG_NET=y
293 311
294# 312#
295# Networking options 313# Networking options
296# 314#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 315CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 316# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 317CONFIG_UNIX=y
@@ -350,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 367# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 368# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 369# CONFIG_WAN_ROUTER is not set
370# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 371# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 372# CONFIG_DCB is not set
355 373
@@ -362,13 +380,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 380# CONFIG_IRDA is not set
363# CONFIG_BT is not set 381# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 382# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set 383# CONFIG_WIRELESS is not set
366CONFIG_WIRELESS=y
367# CONFIG_CFG80211 is not set
368CONFIG_WIRELESS_OLD_REGULATORY=y
369# CONFIG_WIRELESS_EXT is not set
370# CONFIG_LIB80211 is not set
371# CONFIG_MAC80211 is not set
372# CONFIG_WIMAX is not set 384# CONFIG_WIMAX is not set
373# CONFIG_RFKILL is not set 385# CONFIG_RFKILL is not set
374# CONFIG_NET_9P is not set 386# CONFIG_NET_9P is not set
@@ -471,27 +483,18 @@ CONFIG_MTD_NAND_IDS=y
471# CONFIG_MTD_NAND_NANDSIM is not set 483# CONFIG_MTD_NAND_NANDSIM is not set
472# CONFIG_MTD_NAND_PLATFORM is not set 484# CONFIG_MTD_NAND_PLATFORM is not set
473# CONFIG_MTD_NAND_FSL_ELBC is not set 485# CONFIG_MTD_NAND_FSL_ELBC is not set
474# CONFIG_MTD_NAND_FSL_UPM is not set 486CONFIG_MTD_NAND_FSL_UPM=y
475# CONFIG_MTD_ONENAND is not set 487# CONFIG_MTD_ONENAND is not set
476 488
477# 489#
478# LPDDR flash memory drivers 490# LPDDR flash memory drivers
479# 491#
480# CONFIG_MTD_LPDDR is not set 492# CONFIG_MTD_LPDDR is not set
481# CONFIG_MTD_QINFO_PROBE is not set
482 493
483# 494#
484# UBI - Unsorted block images 495# UBI - Unsorted block images
485# 496#
486CONFIG_MTD_UBI=m 497# CONFIG_MTD_UBI is not set
487CONFIG_MTD_UBI_WL_THRESHOLD=4096
488CONFIG_MTD_UBI_BEB_RESERVE=1
489# CONFIG_MTD_UBI_GLUEBI is not set
490
491#
492# UBI debugging options
493#
494# CONFIG_MTD_UBI_DEBUG is not set
495CONFIG_OF_DEVICE=y 498CONFIG_OF_DEVICE=y
496CONFIG_OF_I2C=y 499CONFIG_OF_I2C=y
497# CONFIG_PARPORT is not set 500# CONFIG_PARPORT is not set
@@ -515,69 +518,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
515# CONFIG_BLK_DEV_HD is not set 518# CONFIG_BLK_DEV_HD is not set
516CONFIG_MISC_DEVICES=y 519CONFIG_MISC_DEVICES=y
517# CONFIG_PHANTOM is not set 520# CONFIG_PHANTOM is not set
518# CONFIG_EEPROM_93CX6 is not set
519# CONFIG_SGI_IOC4 is not set 521# CONFIG_SGI_IOC4 is not set
520# CONFIG_TIFM_CORE is not set 522# CONFIG_TIFM_CORE is not set
521# CONFIG_ICS932S401 is not set 523# CONFIG_ICS932S401 is not set
522# CONFIG_ENCLOSURE_SERVICES is not set 524# CONFIG_ENCLOSURE_SERVICES is not set
523# CONFIG_HP_ILO is not set 525# CONFIG_HP_ILO is not set
526# CONFIG_ISL29003 is not set
524# CONFIG_C2PORT is not set 527# CONFIG_C2PORT is not set
528
529#
530# EEPROM support
531#
532# CONFIG_EEPROM_AT24 is not set
533# CONFIG_EEPROM_LEGACY is not set
534# CONFIG_EEPROM_93CX6 is not set
525CONFIG_HAVE_IDE=y 535CONFIG_HAVE_IDE=y
526CONFIG_IDE=y 536# CONFIG_IDE is not set
527
528#
529# Please see Documentation/ide/ide.txt for help/info on IDE drives
530#
531CONFIG_IDE_TIMINGS=y
532# CONFIG_BLK_DEV_IDE_SATA is not set
533CONFIG_IDE_GD=y
534CONFIG_IDE_GD_ATA=y
535# CONFIG_IDE_GD_ATAPI is not set
536# CONFIG_BLK_DEV_IDECD is not set
537# CONFIG_BLK_DEV_IDETAPE is not set
538# CONFIG_IDE_TASK_IOCTL is not set
539CONFIG_IDE_PROC_FS=y
540
541#
542# IDE chipset support/bugfixes
543#
544# CONFIG_BLK_DEV_PLATFORM is not set
545CONFIG_BLK_DEV_IDEDMA_SFF=y
546
547#
548# PCI IDE chipsets support
549#
550CONFIG_BLK_DEV_IDEPCI=y
551CONFIG_IDEPCI_PCIBUS_ORDER=y
552# CONFIG_BLK_DEV_OFFBOARD is not set
553CONFIG_BLK_DEV_GENERIC=y
554# CONFIG_BLK_DEV_OPTI621 is not set
555CONFIG_BLK_DEV_IDEDMA_PCI=y
556# CONFIG_BLK_DEV_AEC62XX is not set
557# CONFIG_BLK_DEV_ALI15X3 is not set
558# CONFIG_BLK_DEV_AMD74XX is not set
559# CONFIG_BLK_DEV_CMD64X is not set
560# CONFIG_BLK_DEV_TRIFLEX is not set
561# CONFIG_BLK_DEV_CS5520 is not set
562# CONFIG_BLK_DEV_CS5530 is not set
563# CONFIG_BLK_DEV_HPT366 is not set
564# CONFIG_BLK_DEV_JMICRON is not set
565# CONFIG_BLK_DEV_SC1200 is not set
566# CONFIG_BLK_DEV_PIIX is not set
567# CONFIG_BLK_DEV_IT8172 is not set
568# CONFIG_BLK_DEV_IT8213 is not set
569# CONFIG_BLK_DEV_IT821X is not set
570# CONFIG_BLK_DEV_NS87415 is not set
571# CONFIG_BLK_DEV_PDC202XX_OLD is not set
572# CONFIG_BLK_DEV_PDC202XX_NEW is not set
573# CONFIG_BLK_DEV_SVWKS is not set
574# CONFIG_BLK_DEV_SIIMAGE is not set
575# CONFIG_BLK_DEV_SL82C105 is not set
576# CONFIG_BLK_DEV_SLC90E66 is not set
577# CONFIG_BLK_DEV_TRM290 is not set
578CONFIG_BLK_DEV_VIA82CXXX=y
579# CONFIG_BLK_DEV_TC86C001 is not set
580CONFIG_BLK_DEV_IDEDMA=y
581 537
582# 538#
583# SCSI device support 539# SCSI device support
@@ -602,6 +558,7 @@ CONFIG_BLK_DEV_IDEDMA=y
602# CONFIG_I2O is not set 558# CONFIG_I2O is not set
603# CONFIG_MACINTOSH_DRIVERS is not set 559# CONFIG_MACINTOSH_DRIVERS is not set
604CONFIG_NETDEVICES=y 560CONFIG_NETDEVICES=y
561CONFIG_COMPAT_NET_DEV_OPS=y
605# CONFIG_DUMMY is not set 562# CONFIG_DUMMY is not set
606# CONFIG_BONDING is not set 563# CONFIG_BONDING is not set
607# CONFIG_MACVLAN is not set 564# CONFIG_MACVLAN is not set
@@ -635,6 +592,8 @@ CONFIG_MII=y
635# CONFIG_SUNGEM is not set 592# CONFIG_SUNGEM is not set
636# CONFIG_CASSINI is not set 593# CONFIG_CASSINI is not set
637# CONFIG_NET_VENDOR_3COM is not set 594# CONFIG_NET_VENDOR_3COM is not set
595# CONFIG_ETHOC is not set
596# CONFIG_DNET is not set
638# CONFIG_NET_TULIP is not set 597# CONFIG_NET_TULIP is not set
639# CONFIG_HP100 is not set 598# CONFIG_HP100 is not set
640# CONFIG_IBM_NEW_EMAC_ZMII is not set 599# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -650,10 +609,11 @@ CONFIG_MII=y
650CONFIG_NETDEV_1000=y 609CONFIG_NETDEV_1000=y
651# CONFIG_ACENIC is not set 610# CONFIG_ACENIC is not set
652# CONFIG_DL2K is not set 611# CONFIG_DL2K is not set
653CONFIG_E1000=y 612# CONFIG_E1000 is not set
654# CONFIG_E1000E is not set 613# CONFIG_E1000E is not set
655# CONFIG_IP1000 is not set 614# CONFIG_IP1000 is not set
656# CONFIG_IGB is not set 615# CONFIG_IGB is not set
616# CONFIG_IGBVF is not set
657# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
658# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
659# CONFIG_YELLOWFIN is not set 619# CONFIG_YELLOWFIN is not set
@@ -664,10 +624,12 @@ CONFIG_E1000=y
664# CONFIG_VIA_VELOCITY is not set 624# CONFIG_VIA_VELOCITY is not set
665# CONFIG_TIGON3 is not set 625# CONFIG_TIGON3 is not set
666# CONFIG_BNX2 is not set 626# CONFIG_BNX2 is not set
627CONFIG_FSL_PQ_MDIO=y
667CONFIG_GIANFAR=y 628CONFIG_GIANFAR=y
668# CONFIG_QLA3XXX is not set 629# CONFIG_QLA3XXX is not set
669# CONFIG_ATL1 is not set 630# CONFIG_ATL1 is not set
670# CONFIG_ATL1E is not set 631# CONFIG_ATL1E is not set
632# CONFIG_ATL1C is not set
671# CONFIG_JME is not set 633# CONFIG_JME is not set
672CONFIG_NETDEV_10000=y 634CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 635# CONFIG_CHELSIO_T1 is not set
@@ -677,6 +639,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
677# CONFIG_IXGBE is not set 639# CONFIG_IXGBE is not set
678# CONFIG_IXGB is not set 640# CONFIG_IXGB is not set
679# CONFIG_S2IO is not set 641# CONFIG_S2IO is not set
642# CONFIG_VXGE is not set
680# CONFIG_MYRI10GE is not set 643# CONFIG_MYRI10GE is not set
681# CONFIG_NETXEN_NIC is not set 644# CONFIG_NETXEN_NIC is not set
682# CONFIG_NIU is not set 645# CONFIG_NIU is not set
@@ -686,6 +649,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
686# CONFIG_BNX2X is not set 649# CONFIG_BNX2X is not set
687# CONFIG_QLGE is not set 650# CONFIG_QLGE is not set
688# CONFIG_SFC is not set 651# CONFIG_SFC is not set
652# CONFIG_BE2NET is not set
689# CONFIG_TR is not set 653# CONFIG_TR is not set
690 654
691# 655#
@@ -693,7 +657,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
693# 657#
694# CONFIG_WLAN_PRE80211 is not set 658# CONFIG_WLAN_PRE80211 is not set
695# CONFIG_WLAN_80211 is not set 659# CONFIG_WLAN_80211 is not set
696# CONFIG_IWLWIFI_LEDS is not set
697 660
698# 661#
699# Enable WiMAX (Networking options) to see the WiMAX drivers 662# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -835,12 +798,9 @@ CONFIG_I2C_MPC=y
835# Miscellaneous I2C Chip support 798# Miscellaneous I2C Chip support
836# 799#
837# CONFIG_DS1682 is not set 800# CONFIG_DS1682 is not set
838# CONFIG_EEPROM_AT24 is not set
839# CONFIG_EEPROM_LEGACY is not set
840# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
841# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
842# CONFIG_SENSORS_PCA9539 is not set 803# CONFIG_SENSORS_PCA9539 is not set
843# CONFIG_SENSORS_PCF8591 is not set
844# CONFIG_SENSORS_MAX6875 is not set 804# CONFIG_SENSORS_MAX6875 is not set
845# CONFIG_SENSORS_TSL2550 is not set 805# CONFIG_SENSORS_TSL2550 is not set
846# CONFIG_I2C_DEBUG_CORE is not set 806# CONFIG_I2C_DEBUG_CORE is not set
@@ -872,6 +832,7 @@ CONFIG_HWMON=y
872# CONFIG_SENSORS_F71805F is not set 832# CONFIG_SENSORS_F71805F is not set
873# CONFIG_SENSORS_F71882FG is not set 833# CONFIG_SENSORS_F71882FG is not set
874# CONFIG_SENSORS_F75375S is not set 834# CONFIG_SENSORS_F75375S is not set
835# CONFIG_SENSORS_G760A is not set
875# CONFIG_SENSORS_GL518SM is not set 836# CONFIG_SENSORS_GL518SM is not set
876# CONFIG_SENSORS_GL520SM is not set 837# CONFIG_SENSORS_GL520SM is not set
877# CONFIG_SENSORS_IT87 is not set 838# CONFIG_SENSORS_IT87 is not set
@@ -886,11 +847,14 @@ CONFIG_SENSORS_LM75=y
886# CONFIG_SENSORS_LM90 is not set 847# CONFIG_SENSORS_LM90 is not set
887# CONFIG_SENSORS_LM92 is not set 848# CONFIG_SENSORS_LM92 is not set
888# CONFIG_SENSORS_LM93 is not set 849# CONFIG_SENSORS_LM93 is not set
850# CONFIG_SENSORS_LTC4215 is not set
889# CONFIG_SENSORS_LTC4245 is not set 851# CONFIG_SENSORS_LTC4245 is not set
852# CONFIG_SENSORS_LM95241 is not set
890# CONFIG_SENSORS_MAX1619 is not set 853# CONFIG_SENSORS_MAX1619 is not set
891# CONFIG_SENSORS_MAX6650 is not set 854# CONFIG_SENSORS_MAX6650 is not set
892# CONFIG_SENSORS_PC87360 is not set 855# CONFIG_SENSORS_PC87360 is not set
893# CONFIG_SENSORS_PC87427 is not set 856# CONFIG_SENSORS_PC87427 is not set
857# CONFIG_SENSORS_PCF8591 is not set
894# CONFIG_SENSORS_SIS5595 is not set 858# CONFIG_SENSORS_SIS5595 is not set
895# CONFIG_SENSORS_DME1737 is not set 859# CONFIG_SENSORS_DME1737 is not set
896# CONFIG_SENSORS_SMSC47M1 is not set 860# CONFIG_SENSORS_SMSC47M1 is not set
@@ -974,27 +938,7 @@ CONFIG_HID=y
974# 938#
975# Special HID drivers 939# Special HID drivers
976# 940#
977CONFIG_HID_COMPAT=y 941# CONFIG_USB_SUPPORT is not set
978CONFIG_USB_SUPPORT=y
979CONFIG_USB_ARCH_HAS_HCD=y
980CONFIG_USB_ARCH_HAS_OHCI=y
981CONFIG_USB_ARCH_HAS_EHCI=y
982# CONFIG_USB is not set
983# CONFIG_USB_OTG_WHITELIST is not set
984# CONFIG_USB_OTG_BLACKLIST_HUB is not set
985
986#
987# Enable Host or Gadget support to see Inventra options
988#
989
990#
991# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
992#
993# CONFIG_USB_GADGET is not set
994
995#
996# OTG and related infrastructure
997#
998# CONFIG_UWB is not set 942# CONFIG_UWB is not set
999# CONFIG_MMC is not set 943# CONFIG_MMC is not set
1000# CONFIG_MEMSTICK is not set 944# CONFIG_MEMSTICK is not set
@@ -1056,24 +1000,18 @@ CONFIG_RTC_DRV_DS1307=y
1056# 1000#
1057# on-CPU RTC drivers 1001# on-CPU RTC drivers
1058# 1002#
1059# CONFIG_RTC_DRV_PPC is not set 1003# CONFIG_RTC_DRV_GENERIC is not set
1060# CONFIG_DMADEVICES is not set 1004# CONFIG_DMADEVICES is not set
1005# CONFIG_AUXDISPLAY is not set
1061# CONFIG_UIO is not set 1006# CONFIG_UIO is not set
1062# CONFIG_STAGING is not set 1007# CONFIG_STAGING is not set
1063 1008
1064# 1009#
1065# File systems 1010# File systems
1066# 1011#
1067CONFIG_EXT2_FS=y 1012# CONFIG_EXT2_FS is not set
1068# CONFIG_EXT2_FS_XATTR is not set 1013# CONFIG_EXT3_FS is not set
1069# CONFIG_EXT2_FS_XIP is not set
1070CONFIG_EXT3_FS=y
1071CONFIG_EXT3_FS_XATTR=y
1072# CONFIG_EXT3_FS_POSIX_ACL is not set
1073# CONFIG_EXT3_FS_SECURITY is not set
1074# CONFIG_EXT4_FS is not set 1014# CONFIG_EXT4_FS is not set
1075CONFIG_JBD=y
1076CONFIG_FS_MBCACHE=y
1077# CONFIG_REISERFS_FS is not set 1015# CONFIG_REISERFS_FS is not set
1078# CONFIG_JFS_FS is not set 1016# CONFIG_JFS_FS is not set
1079# CONFIG_FS_POSIX_ACL is not set 1017# CONFIG_FS_POSIX_ACL is not set
@@ -1090,6 +1028,11 @@ CONFIG_INOTIFY_USER=y
1090# CONFIG_FUSE_FS is not set 1028# CONFIG_FUSE_FS is not set
1091 1029
1092# 1030#
1031# Caches
1032#
1033# CONFIG_FSCACHE is not set
1034
1035#
1093# CD-ROM/DVD Filesystems 1036# CD-ROM/DVD Filesystems
1094# 1037#
1095# CONFIG_ISO9660_FS is not set 1038# CONFIG_ISO9660_FS is not set
@@ -1122,8 +1065,17 @@ CONFIG_MISC_FILESYSTEMS=y
1122# CONFIG_BEFS_FS is not set 1065# CONFIG_BEFS_FS is not set
1123# CONFIG_BFS_FS is not set 1066# CONFIG_BFS_FS is not set
1124# CONFIG_EFS_FS is not set 1067# CONFIG_EFS_FS is not set
1125# CONFIG_JFFS2_FS is not set 1068CONFIG_JFFS2_FS=y
1126# CONFIG_UBIFS_FS is not set 1069CONFIG_JFFS2_FS_DEBUG=0
1070CONFIG_JFFS2_FS_WRITEBUFFER=y
1071# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1072# CONFIG_JFFS2_SUMMARY is not set
1073# CONFIG_JFFS2_FS_XATTR is not set
1074# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1075CONFIG_JFFS2_ZLIB=y
1076# CONFIG_JFFS2_LZO is not set
1077CONFIG_JFFS2_RTIME=y
1078# CONFIG_JFFS2_RUBIN is not set
1127# CONFIG_CRAMFS is not set 1079# CONFIG_CRAMFS is not set
1128# CONFIG_SQUASHFS is not set 1080# CONFIG_SQUASHFS is not set
1129# CONFIG_VXFS_FS is not set 1081# CONFIG_VXFS_FS is not set
@@ -1134,6 +1086,7 @@ CONFIG_MISC_FILESYSTEMS=y
1134# CONFIG_ROMFS_FS is not set 1086# CONFIG_ROMFS_FS is not set
1135# CONFIG_SYSV_FS is not set 1087# CONFIG_SYSV_FS is not set
1136# CONFIG_UFS_FS is not set 1088# CONFIG_UFS_FS is not set
1089# CONFIG_NILFS2_FS is not set
1137CONFIG_NETWORK_FILESYSTEMS=y 1090CONFIG_NETWORK_FILESYSTEMS=y
1138CONFIG_NFS_FS=y 1091CONFIG_NFS_FS=y
1139# CONFIG_NFS_V3 is not set 1092# CONFIG_NFS_V3 is not set
@@ -1143,7 +1096,6 @@ CONFIG_ROOT_NFS=y
1143CONFIG_LOCKD=y 1096CONFIG_LOCKD=y
1144CONFIG_NFS_COMMON=y 1097CONFIG_NFS_COMMON=y
1145CONFIG_SUNRPC=y 1098CONFIG_SUNRPC=y
1146# CONFIG_SUNRPC_REGISTER_V4 is not set
1147# CONFIG_RPCSEC_GSS_KRB5 is not set 1099# CONFIG_RPCSEC_GSS_KRB5 is not set
1148# CONFIG_RPCSEC_GSS_SPKM3 is not set 1100# CONFIG_RPCSEC_GSS_SPKM3 is not set
1149# CONFIG_SMB_FS is not set 1101# CONFIG_SMB_FS is not set
@@ -1171,6 +1123,7 @@ CONFIG_PARTITION_ADVANCED=y
1171# CONFIG_SYSV68_PARTITION is not set 1123# CONFIG_SYSV68_PARTITION is not set
1172# CONFIG_NLS is not set 1124# CONFIG_NLS is not set
1173# CONFIG_DLM is not set 1125# CONFIG_DLM is not set
1126# CONFIG_BINARY_PRINTF is not set
1174 1127
1175# 1128#
1176# Library routines 1129# Library routines
@@ -1184,11 +1137,14 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
1184CONFIG_CRC32=y 1137CONFIG_CRC32=y
1185# CONFIG_CRC7 is not set 1138# CONFIG_CRC7 is not set
1186# CONFIG_LIBCRC32C is not set 1139# CONFIG_LIBCRC32C is not set
1187CONFIG_PLIST=y 1140CONFIG_ZLIB_INFLATE=y
1141CONFIG_ZLIB_DEFLATE=y
1142CONFIG_DECOMPRESS_GZIP=y
1188CONFIG_HAS_IOMEM=y 1143CONFIG_HAS_IOMEM=y
1189CONFIG_HAS_IOPORT=y 1144CONFIG_HAS_IOPORT=y
1190CONFIG_HAS_DMA=y 1145CONFIG_HAS_DMA=y
1191CONFIG_HAVE_LMB=y 1146CONFIG_HAVE_LMB=y
1147CONFIG_NLATTR=y
1192 1148
1193# 1149#
1194# Kernel hacking 1150# Kernel hacking
@@ -1206,6 +1162,9 @@ CONFIG_DEBUG_KERNEL=y
1206CONFIG_DETECT_SOFTLOCKUP=y 1162CONFIG_DETECT_SOFTLOCKUP=y
1207# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1163# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1208CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1164CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1165CONFIG_DETECT_HUNG_TASK=y
1166# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1167CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1209CONFIG_SCHED_DEBUG=y 1168CONFIG_SCHED_DEBUG=y
1210# CONFIG_SCHEDSTATS is not set 1169# CONFIG_SCHEDSTATS is not set
1211# CONFIG_TIMER_STATS is not set 1170# CONFIG_TIMER_STATS is not set
@@ -1219,6 +1178,7 @@ CONFIG_DEBUG_MUTEXES=y
1219# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1178# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1220# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1179# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1221# CONFIG_DEBUG_KOBJECT is not set 1180# CONFIG_DEBUG_KOBJECT is not set
1181# CONFIG_DEBUG_HIGHMEM is not set
1222# CONFIG_DEBUG_BUGVERBOSE is not set 1182# CONFIG_DEBUG_BUGVERBOSE is not set
1223# CONFIG_DEBUG_INFO is not set 1183# CONFIG_DEBUG_INFO is not set
1224# CONFIG_DEBUG_VM is not set 1184# CONFIG_DEBUG_VM is not set
@@ -1235,9 +1195,12 @@ CONFIG_DEBUG_MUTEXES=y
1235# CONFIG_FAULT_INJECTION is not set 1195# CONFIG_FAULT_INJECTION is not set
1236# CONFIG_LATENCYTOP is not set 1196# CONFIG_LATENCYTOP is not set
1237CONFIG_SYSCTL_SYSCALL_CHECK=y 1197CONFIG_SYSCTL_SYSCALL_CHECK=y
1198# CONFIG_DEBUG_PAGEALLOC is not set
1238CONFIG_HAVE_FUNCTION_TRACER=y 1199CONFIG_HAVE_FUNCTION_TRACER=y
1200CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1239CONFIG_HAVE_DYNAMIC_FTRACE=y 1201CONFIG_HAVE_DYNAMIC_FTRACE=y
1240CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1202CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1203CONFIG_TRACING_SUPPORT=y
1241 1204
1242# 1205#
1243# Tracers 1206# Tracers
@@ -1245,17 +1208,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1245# CONFIG_FUNCTION_TRACER is not set 1208# CONFIG_FUNCTION_TRACER is not set
1246# CONFIG_SCHED_TRACER is not set 1209# CONFIG_SCHED_TRACER is not set
1247# CONFIG_CONTEXT_SWITCH_TRACER is not set 1210# CONFIG_CONTEXT_SWITCH_TRACER is not set
1211# CONFIG_EVENT_TRACER is not set
1248# CONFIG_BOOT_TRACER is not set 1212# CONFIG_BOOT_TRACER is not set
1249# CONFIG_TRACE_BRANCH_PROFILING is not set 1213# CONFIG_TRACE_BRANCH_PROFILING is not set
1250# CONFIG_STACK_TRACER is not set 1214# CONFIG_STACK_TRACER is not set
1251# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1215# CONFIG_KMEMTRACE is not set
1216# CONFIG_WORKQUEUE_TRACER is not set
1217# CONFIG_BLK_DEV_IO_TRACE is not set
1252# CONFIG_SAMPLES is not set 1218# CONFIG_SAMPLES is not set
1253CONFIG_HAVE_ARCH_KGDB=y 1219CONFIG_HAVE_ARCH_KGDB=y
1254# CONFIG_KGDB is not set 1220# CONFIG_KGDB is not set
1255CONFIG_PRINT_STACK_DEPTH=64 1221CONFIG_PRINT_STACK_DEPTH=64
1256# CONFIG_DEBUG_STACKOVERFLOW is not set 1222# CONFIG_DEBUG_STACKOVERFLOW is not set
1257# CONFIG_DEBUG_STACK_USAGE is not set 1223# CONFIG_DEBUG_STACK_USAGE is not set
1258# CONFIG_DEBUG_PAGEALLOC is not set
1259# CONFIG_CODE_PATCHING_SELFTEST is not set 1224# CONFIG_CODE_PATCHING_SELFTEST is not set
1260# CONFIG_FTR_FIXUP_SELFTEST is not set 1225# CONFIG_FTR_FIXUP_SELFTEST is not set
1261# CONFIG_MSI_BITMAP_SELFTEST is not set 1226# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1349,6 +1314,7 @@ CONFIG_CRYPTO=y
1349# Compression 1314# Compression
1350# 1315#
1351# CONFIG_CRYPTO_DEFLATE is not set 1316# CONFIG_CRYPTO_DEFLATE is not set
1317# CONFIG_CRYPTO_ZLIB is not set
1352# CONFIG_CRYPTO_LZO is not set 1318# CONFIG_CRYPTO_LZO is not set
1353 1319
1354# 1320#
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index d5a864d74461..170360934cec 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:21 2009 4# Wed May 13 17:22:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
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 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index a25009174f37..f41cc2444d48 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:22 2009 4# Wed May 13 17:22:26 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -76,6 +78,15 @@ CONFIG_SYSVIPC_SYSCTL=y
76# CONFIG_BSD_PROCESS_ACCT is not set 78# CONFIG_BSD_PROCESS_ACCT is not set
77# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
81CONFIG_GROUP_SCHED=y 92CONFIG_GROUP_SCHED=y
@@ -90,19 +101,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 103CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 110CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 111CONFIG_SYSCTL_SYSCALL=y
97# CONFIG_KALLSYMS is not set 112# CONFIG_KALLSYMS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98# CONFIG_HOTPLUG is not set 114# CONFIG_HOTPLUG is not set
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -112,10 +126,12 @@ CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
114CONFIG_SLUB_DEBUG=y 128CONFIG_SLUB_DEBUG=y
129CONFIG_COMPAT_BRK=y
115# CONFIG_SLAB is not set 130# CONFIG_SLAB is not set
116CONFIG_SLUB=y 131CONFIG_SLUB=y
117# CONFIG_SLOB is not set 132# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set 133# CONFIG_PROFILING is not set
134# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y 137CONFIG_HAVE_IOREMAP_PROT=y
@@ -123,6 +139,7 @@ CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_CLK=y 141CONFIG_HAVE_CLK=y
142# CONFIG_SLOW_WORK is not set
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 143# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 144CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 145CONFIG_RT_MUTEXES=y
@@ -130,7 +147,6 @@ CONFIG_BASE_SMALL=0
130# CONFIG_MODULES is not set 147# CONFIG_MODULES is not set
131CONFIG_BLOCK=y 148CONFIG_BLOCK=y
132# CONFIG_LBD is not set 149# CONFIG_LBD is not set
133# CONFIG_BLK_DEV_IO_TRACE is not set
134# CONFIG_BLK_DEV_BSG is not set 150# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
136 152
@@ -146,11 +162,6 @@ CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_CFQ is not set 162# CONFIG_DEFAULT_CFQ is not set
147# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="anticipatory"
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 165# CONFIG_FREEZER is not set
155 166
156# 167#
@@ -166,6 +177,7 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC85xx_MDS is not set 177# CONFIG_MPC85xx_MDS is not set
167# CONFIG_MPC8536_DS is not set 178# CONFIG_MPC8536_DS is not set
168# CONFIG_MPC85xx_DS is not set 179# CONFIG_MPC85xx_DS is not set
180# CONFIG_SOCRATES is not set
169# CONFIG_KSI8560 is not set 181# CONFIG_KSI8560 is not set
170# CONFIG_STX_GP3 is not set 182# CONFIG_STX_GP3 is not set
171# CONFIG_TQM8540 is not set 183# CONFIG_TQM8540 is not set
@@ -235,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
236CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
237CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
239# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
240# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
241CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
242# CONFIG_PROC_DEVICETREE is not set 257# CONFIG_PROC_DEVICETREE is not set
243# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +277,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 277# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 278# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 279# CONFIG_PCI_STUB is not set
280# CONFIG_PCI_IOV is not set
265# CONFIG_HAS_RAPIDIO is not set 281# CONFIG_HAS_RAPIDIO is not set
266 282
267# 283#
@@ -273,17 +289,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
273# Default settings for advanced configuration options are used 289# Default settings for advanced configuration options are used
274# 290#
275CONFIG_LOWMEM_SIZE=0x30000000 291CONFIG_LOWMEM_SIZE=0x30000000
292CONFIG_LOWMEM_CAM_NUM=3
276CONFIG_PAGE_OFFSET=0xc0000000 293CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 294CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 295CONFIG_PHYSICAL_START=0x00000000
279CONFIG_PHYSICAL_ALIGN=0x10000000 296CONFIG_PHYSICAL_ALIGN=0x04000000
280CONFIG_TASK_SIZE=0xc0000000 297CONFIG_TASK_SIZE=0xc0000000
281CONFIG_NET=y 298CONFIG_NET=y
282 299
283# 300#
284# Networking options 301# Networking options
285# 302#
286CONFIG_COMPAT_NET_DEV_OPS=y
287CONFIG_PACKET=y 303CONFIG_PACKET=y
288# CONFIG_PACKET_MMAP is not set 304# CONFIG_PACKET_MMAP is not set
289CONFIG_UNIX=y 305CONFIG_UNIX=y
@@ -339,6 +355,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 355# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 356# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 357# CONFIG_WAN_ROUTER is not set
358# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 359# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 360# CONFIG_DCB is not set
344 361
@@ -351,7 +368,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 368# CONFIG_IRDA is not set
352# CONFIG_BT is not set 369# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 370# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 371CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 372# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 373CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -451,7 +467,6 @@ CONFIG_MTD_CFI_UTIL=y
451# LPDDR flash memory drivers 467# LPDDR flash memory drivers
452# 468#
453# CONFIG_MTD_LPDDR is not set 469# CONFIG_MTD_LPDDR is not set
454# CONFIG_MTD_QINFO_PROBE is not set
455 470
456# 471#
457# UBI - Unsorted block images 472# UBI - Unsorted block images
@@ -481,19 +496,27 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
481# CONFIG_BLK_DEV_HD is not set 496# CONFIG_BLK_DEV_HD is not set
482CONFIG_MISC_DEVICES=y 497CONFIG_MISC_DEVICES=y
483# CONFIG_PHANTOM is not set 498# CONFIG_PHANTOM is not set
484# CONFIG_EEPROM_93CX6 is not set
485# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
486# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
487# CONFIG_ICS932S401 is not set 501# CONFIG_ICS932S401 is not set
488# CONFIG_ENCLOSURE_SERVICES is not set 502# CONFIG_ENCLOSURE_SERVICES is not set
489# CONFIG_HP_ILO is not set 503# CONFIG_HP_ILO is not set
504# CONFIG_ISL29003 is not set
490# CONFIG_C2PORT is not set 505# CONFIG_C2PORT is not set
506
507#
508# EEPROM support
509#
510# CONFIG_EEPROM_AT24 is not set
511# CONFIG_EEPROM_LEGACY is not set
512# CONFIG_EEPROM_93CX6 is not set
491CONFIG_HAVE_IDE=y 513CONFIG_HAVE_IDE=y
492CONFIG_IDE=y 514CONFIG_IDE=y
493 515
494# 516#
495# Please see Documentation/ide/ide.txt for help/info on IDE drives 517# Please see Documentation/ide/ide.txt for help/info on IDE drives
496# 518#
519CONFIG_IDE_XFER_MODE=y
497CONFIG_IDE_TIMINGS=y 520CONFIG_IDE_TIMINGS=y
498# CONFIG_BLK_DEV_IDE_SATA is not set 521# CONFIG_BLK_DEV_IDE_SATA is not set
499CONFIG_IDE_GD=y 522CONFIG_IDE_GD=y
@@ -568,6 +591,7 @@ CONFIG_BLK_DEV_IDEDMA=y
568# CONFIG_I2O is not set 591# CONFIG_I2O is not set
569# CONFIG_MACINTOSH_DRIVERS is not set 592# CONFIG_MACINTOSH_DRIVERS is not set
570CONFIG_NETDEVICES=y 593CONFIG_NETDEVICES=y
594CONFIG_COMPAT_NET_DEV_OPS=y
571# CONFIG_DUMMY is not set 595# CONFIG_DUMMY is not set
572# CONFIG_BONDING is not set 596# CONFIG_BONDING is not set
573# CONFIG_MACVLAN is not set 597# CONFIG_MACVLAN is not set
@@ -601,6 +625,8 @@ CONFIG_MII=y
601# CONFIG_SUNGEM is not set 625# CONFIG_SUNGEM is not set
602# CONFIG_CASSINI is not set 626# CONFIG_CASSINI is not set
603# CONFIG_NET_VENDOR_3COM is not set 627# CONFIG_NET_VENDOR_3COM is not set
628# CONFIG_ETHOC is not set
629# CONFIG_DNET is not set
604# CONFIG_NET_TULIP is not set 630# CONFIG_NET_TULIP is not set
605# CONFIG_HP100 is not set 631# CONFIG_HP100 is not set
606# CONFIG_IBM_NEW_EMAC_ZMII is not set 632# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -639,6 +665,7 @@ CONFIG_NETDEV_1000=y
639# CONFIG_E1000E is not set 665# CONFIG_E1000E is not set
640# CONFIG_IP1000 is not set 666# CONFIG_IP1000 is not set
641# CONFIG_IGB is not set 667# CONFIG_IGB is not set
668# CONFIG_IGBVF is not set
642# CONFIG_NS83820 is not set 669# CONFIG_NS83820 is not set
643# CONFIG_HAMACHI is not set 670# CONFIG_HAMACHI is not set
644# CONFIG_YELLOWFIN is not set 671# CONFIG_YELLOWFIN is not set
@@ -649,10 +676,12 @@ CONFIG_NETDEV_1000=y
649# CONFIG_VIA_VELOCITY is not set 676# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 677# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 678# CONFIG_BNX2 is not set
679CONFIG_FSL_PQ_MDIO=y
652CONFIG_GIANFAR=y 680CONFIG_GIANFAR=y
653# CONFIG_QLA3XXX is not set 681# CONFIG_QLA3XXX is not set
654# CONFIG_ATL1 is not set 682# CONFIG_ATL1 is not set
655# CONFIG_ATL1E is not set 683# CONFIG_ATL1E is not set
684# CONFIG_ATL1C is not set
656# CONFIG_JME is not set 685# CONFIG_JME is not set
657CONFIG_NETDEV_10000=y 686CONFIG_NETDEV_10000=y
658# CONFIG_CHELSIO_T1 is not set 687# CONFIG_CHELSIO_T1 is not set
@@ -662,6 +691,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
662# CONFIG_IXGBE is not set 691# CONFIG_IXGBE is not set
663# CONFIG_IXGB is not set 692# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 693# CONFIG_S2IO is not set
694# CONFIG_VXGE is not set
665# CONFIG_MYRI10GE is not set 695# CONFIG_MYRI10GE is not set
666# CONFIG_NETXEN_NIC is not set 696# CONFIG_NETXEN_NIC is not set
667# CONFIG_NIU is not set 697# CONFIG_NIU is not set
@@ -671,6 +701,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
671# CONFIG_BNX2X is not set 701# CONFIG_BNX2X is not set
672# CONFIG_QLGE is not set 702# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 703# CONFIG_SFC is not set
704# CONFIG_BE2NET is not set
674# CONFIG_TR is not set 705# CONFIG_TR is not set
675 706
676# 707#
@@ -678,7 +709,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
678# 709#
679# CONFIG_WLAN_PRE80211 is not set 710# CONFIG_WLAN_PRE80211 is not set
680# CONFIG_WLAN_80211 is not set 711# CONFIG_WLAN_80211 is not set
681# CONFIG_IWLWIFI_LEDS is not set
682 712
683# 713#
684# Enable WiMAX (Networking options) to see the WiMAX drivers 714# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -761,6 +791,7 @@ CONFIG_LEGACY_PTY_COUNT=256
761# CONFIG_HVC_UDBG is not set 791# CONFIG_HVC_UDBG is not set
762# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
763CONFIG_HW_RANDOM=y 793CONFIG_HW_RANDOM=y
794# CONFIG_HW_RANDOM_TIMERIOMEM is not set
764# CONFIG_NVRAM is not set 795# CONFIG_NVRAM is not set
765CONFIG_GEN_RTC=y 796CONFIG_GEN_RTC=y
766# CONFIG_GEN_RTC_X is not set 797# CONFIG_GEN_RTC_X is not set
@@ -825,12 +856,9 @@ CONFIG_I2C_MPC=y
825# Miscellaneous I2C Chip support 856# Miscellaneous I2C Chip support
826# 857#
827# CONFIG_DS1682 is not set 858# CONFIG_DS1682 is not set
828# CONFIG_EEPROM_AT24 is not set
829# CONFIG_EEPROM_LEGACY is not set
830# CONFIG_SENSORS_PCF8574 is not set 859# CONFIG_SENSORS_PCF8574 is not set
831# CONFIG_PCF8575 is not set 860# CONFIG_PCF8575 is not set
832# CONFIG_SENSORS_PCA9539 is not set 861# CONFIG_SENSORS_PCA9539 is not set
833# CONFIG_SENSORS_PCF8591 is not set
834# CONFIG_SENSORS_MAX6875 is not set 862# CONFIG_SENSORS_MAX6875 is not set
835# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
@@ -885,6 +913,7 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_F71805F is not set 913# CONFIG_SENSORS_F71805F is not set
886# CONFIG_SENSORS_F71882FG is not set 914# CONFIG_SENSORS_F71882FG is not set
887# CONFIG_SENSORS_F75375S is not set 915# CONFIG_SENSORS_F75375S is not set
916# CONFIG_SENSORS_G760A is not set
888# CONFIG_SENSORS_GL518SM is not set 917# CONFIG_SENSORS_GL518SM is not set
889# CONFIG_SENSORS_GL520SM is not set 918# CONFIG_SENSORS_GL520SM is not set
890# CONFIG_SENSORS_IT87 is not set 919# CONFIG_SENSORS_IT87 is not set
@@ -899,11 +928,15 @@ CONFIG_SENSORS_LM75=y
899# CONFIG_SENSORS_LM90 is not set 928# CONFIG_SENSORS_LM90 is not set
900# CONFIG_SENSORS_LM92 is not set 929# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set 930# CONFIG_SENSORS_LM93 is not set
931# CONFIG_SENSORS_LTC4215 is not set
902# CONFIG_SENSORS_LTC4245 is not set 932# CONFIG_SENSORS_LTC4245 is not set
933# CONFIG_SENSORS_LM95241 is not set
903# CONFIG_SENSORS_MAX1619 is not set 934# CONFIG_SENSORS_MAX1619 is not set
904# CONFIG_SENSORS_MAX6650 is not set 935# CONFIG_SENSORS_MAX6650 is not set
905# CONFIG_SENSORS_PC87360 is not set 936# CONFIG_SENSORS_PC87360 is not set
906# CONFIG_SENSORS_PC87427 is not set 937# CONFIG_SENSORS_PC87427 is not set
938# CONFIG_SENSORS_PCF8591 is not set
939# CONFIG_SENSORS_SHT15 is not set
907# CONFIG_SENSORS_SIS5595 is not set 940# CONFIG_SENSORS_SIS5595 is not set
908# CONFIG_SENSORS_DME1737 is not set 941# CONFIG_SENSORS_DME1737 is not set
909# CONFIG_SENSORS_SMSC47M1 is not set 942# CONFIG_SENSORS_SMSC47M1 is not set
@@ -988,7 +1021,6 @@ CONFIG_HID=y
988# 1021#
989# Special HID drivers 1022# Special HID drivers
990# 1023#
991CONFIG_HID_COMPAT=y
992CONFIG_USB_SUPPORT=y 1024CONFIG_USB_SUPPORT=y
993CONFIG_USB_ARCH_HAS_HCD=y 1025CONFIG_USB_ARCH_HAS_HCD=y
994CONFIG_USB_ARCH_HAS_OHCI=y 1026CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1002,7 +1034,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1002# 1034#
1003 1035
1004# 1036#
1005# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1006# 1038#
1007# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1008 1040
@@ -1018,6 +1050,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1018# CONFIG_EDAC is not set 1050# CONFIG_EDAC is not set
1019# CONFIG_RTC_CLASS is not set 1051# CONFIG_RTC_CLASS is not set
1020# CONFIG_DMADEVICES is not set 1052# CONFIG_DMADEVICES is not set
1053# CONFIG_AUXDISPLAY is not set
1021# CONFIG_UIO is not set 1054# CONFIG_UIO is not set
1022# CONFIG_STAGING is not set 1055# CONFIG_STAGING is not set
1023 1056
@@ -1028,6 +1061,7 @@ CONFIG_EXT2_FS=y
1028# CONFIG_EXT2_FS_XATTR is not set 1061# CONFIG_EXT2_FS_XATTR is not set
1029# CONFIG_EXT2_FS_XIP is not set 1062# CONFIG_EXT2_FS_XIP is not set
1030CONFIG_EXT3_FS=y 1063CONFIG_EXT3_FS=y
1064# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1031CONFIG_EXT3_FS_XATTR=y 1065CONFIG_EXT3_FS_XATTR=y
1032# CONFIG_EXT3_FS_POSIX_ACL is not set 1066# CONFIG_EXT3_FS_POSIX_ACL is not set
1033# CONFIG_EXT3_FS_SECURITY is not set 1067# CONFIG_EXT3_FS_SECURITY is not set
@@ -1050,6 +1084,11 @@ CONFIG_INOTIFY_USER=y
1050# CONFIG_FUSE_FS is not set 1084# CONFIG_FUSE_FS is not set
1051 1085
1052# 1086#
1087# Caches
1088#
1089# CONFIG_FSCACHE is not set
1090
1091#
1053# CD-ROM/DVD Filesystems 1092# CD-ROM/DVD Filesystems
1054# 1093#
1055# CONFIG_ISO9660_FS is not set 1094# CONFIG_ISO9660_FS is not set
@@ -1103,6 +1142,7 @@ CONFIG_CRAMFS=y
1103# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set 1143# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set 1144# CONFIG_UFS_FS is not set
1145# CONFIG_NILFS2_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y 1146CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y 1147CONFIG_NFS_FS=y
1108# CONFIG_NFS_V3 is not set 1148# CONFIG_NFS_V3 is not set
@@ -1112,7 +1152,6 @@ CONFIG_ROOT_NFS=y
1112CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1113CONFIG_NFS_COMMON=y 1153CONFIG_NFS_COMMON=y
1114CONFIG_SUNRPC=y 1154CONFIG_SUNRPC=y
1115# CONFIG_SUNRPC_REGISTER_V4 is not set
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1155# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1156# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118# CONFIG_SMB_FS is not set 1157# CONFIG_SMB_FS is not set
@@ -1140,6 +1179,7 @@ CONFIG_PARTITION_ADVANCED=y
1140# CONFIG_SYSV68_PARTITION is not set 1179# CONFIG_SYSV68_PARTITION is not set
1141# CONFIG_NLS is not set 1180# CONFIG_NLS is not set
1142# CONFIG_DLM is not set 1181# CONFIG_DLM is not set
1182# CONFIG_BINARY_PRINTF is not set
1143 1183
1144# 1184#
1145# Library routines 1185# Library routines
@@ -1155,11 +1195,12 @@ CONFIG_CRC32=y
1155# CONFIG_LIBCRC32C is not set 1195# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_INFLATE=y 1196CONFIG_ZLIB_INFLATE=y
1157CONFIG_ZLIB_DEFLATE=y 1197CONFIG_ZLIB_DEFLATE=y
1158CONFIG_PLIST=y 1198CONFIG_DECOMPRESS_GZIP=y
1159CONFIG_HAS_IOMEM=y 1199CONFIG_HAS_IOMEM=y
1160CONFIG_HAS_IOPORT=y 1200CONFIG_HAS_IOPORT=y
1161CONFIG_HAS_DMA=y 1201CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y 1202CONFIG_HAVE_LMB=y
1203CONFIG_NLATTR=y
1163 1204
1164# 1205#
1165# Kernel hacking 1206# Kernel hacking
@@ -1181,13 +1222,24 @@ CONFIG_FRAME_WARN=1024
1181# CONFIG_LATENCYTOP is not set 1222# CONFIG_LATENCYTOP is not set
1182CONFIG_SYSCTL_SYSCALL_CHECK=y 1223CONFIG_SYSCTL_SYSCALL_CHECK=y
1183CONFIG_HAVE_FUNCTION_TRACER=y 1224CONFIG_HAVE_FUNCTION_TRACER=y
1225CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1184CONFIG_HAVE_DYNAMIC_FTRACE=y 1226CONFIG_HAVE_DYNAMIC_FTRACE=y
1185CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1227CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1228CONFIG_TRACING_SUPPORT=y
1186 1229
1187# 1230#
1188# Tracers 1231# Tracers
1189# 1232#
1190# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1233# CONFIG_FUNCTION_TRACER is not set
1234# CONFIG_SCHED_TRACER is not set
1235# CONFIG_CONTEXT_SWITCH_TRACER is not set
1236# CONFIG_EVENT_TRACER is not set
1237# CONFIG_BOOT_TRACER is not set
1238# CONFIG_TRACE_BRANCH_PROFILING is not set
1239# CONFIG_STACK_TRACER is not set
1240# CONFIG_KMEMTRACE is not set
1241# CONFIG_WORKQUEUE_TRACER is not set
1242# CONFIG_BLK_DEV_IO_TRACE is not set
1191# CONFIG_SAMPLES is not set 1243# CONFIG_SAMPLES is not set
1192CONFIG_HAVE_ARCH_KGDB=y 1244CONFIG_HAVE_ARCH_KGDB=y
1193CONFIG_PRINT_STACK_DEPTH=64 1245CONFIG_PRINT_STACK_DEPTH=64
@@ -1278,6 +1330,7 @@ CONFIG_CRYPTO=y
1278# Compression 1330# Compression
1279# 1331#
1280# CONFIG_CRYPTO_DEFLATE is not set 1332# CONFIG_CRYPTO_DEFLATE is not set
1333# CONFIG_CRYPTO_ZLIB is not set
1281# CONFIG_CRYPTO_LZO is not set 1334# CONFIG_CRYPTO_LZO is not set
1282 1335
1283# 1336#
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
index df2c16337794..b6a23af57f46 100644
--- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
+++ b/arch/powerpc/configs/86xx/gef_ppc9a_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.29-rc7 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 13 15:36:11 2009 4# Wed May 13 17:22:31 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,6 +74,7 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
@@ -100,21 +103,24 @@ CONFIG_RELAY=y
100# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
101CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
102CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
103# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
104CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
106CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
107CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
108# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
109# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 119CONFIG_PRINTK=y
112CONFIG_BUG=y 120CONFIG_BUG=y
113CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
114CONFIG_COMPAT_BRK=y
115CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
116CONFIG_FUTEX=y 123CONFIG_FUTEX=y
117CONFIG_ANON_INODES=y
118CONFIG_EPOLL=y 124CONFIG_EPOLL=y
119CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
120CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -123,10 +129,12 @@ CONFIG_SHMEM=y
123CONFIG_AIO=y 129CONFIG_AIO=y
124CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
125CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
132CONFIG_COMPAT_BRK=y
126CONFIG_SLAB=y 133CONFIG_SLAB=y
127# CONFIG_SLUB is not set 134# CONFIG_SLUB is not set
128# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
129# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
130CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
131# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -135,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
135CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
136CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
137CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
139CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
140CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -148,7 +157,6 @@ CONFIG_MODULE_UNLOAD=y
148CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
149CONFIG_BLOCK=y 158CONFIG_BLOCK=y
150# CONFIG_LBD is not set 159# CONFIG_LBD is not set
151# CONFIG_BLK_DEV_IO_TRACE is not set
152# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
153# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
154 162
@@ -169,8 +177,6 @@ CONFIG_DEFAULT_IOSCHED="cfq"
169# 177#
170# Platform support 178# Platform support
171# 179#
172CONFIG_PPC_MULTIPLATFORM=y
173CONFIG_CLASSIC32=y
174# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
175# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
176# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -189,6 +195,7 @@ CONFIG_GEF_PPC9A=y
189# CONFIG_GEF_SBC310 is not set 195# CONFIG_GEF_SBC310 is not set
190# CONFIG_GEF_SBC610 is not set 196# CONFIG_GEF_SBC610 is not set
191CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
192# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
193CONFIG_MPIC=y 200CONFIG_MPIC=y
194# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -250,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
252CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
256CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
257# CONFIG_PROC_DEVICETREE is not set 267# CONFIG_PROC_DEVICETREE is not set
258# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -281,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
281# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
282CONFIG_PCI_DEBUG=y 292CONFIG_PCI_DEBUG=y
283# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
284# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
285# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
286# CONFIG_HAS_RAPIDIO is not set 297# CONFIG_HAS_RAPIDIO is not set
@@ -303,7 +314,6 @@ CONFIG_NET=y
303# 314#
304# Networking options 315# Networking options
305# 316#
306CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 317CONFIG_PACKET=y
308CONFIG_PACKET_MMAP=y 318CONFIG_PACKET_MMAP=y
309CONFIG_UNIX=y 319CONFIG_UNIX=y
@@ -383,9 +393,11 @@ CONFIG_BRIDGE_NETFILTER=y
383# CONFIG_NETFILTER_NETLINK_QUEUE is not set 393# CONFIG_NETFILTER_NETLINK_QUEUE is not set
384# CONFIG_NETFILTER_NETLINK_LOG is not set 394# CONFIG_NETFILTER_NETLINK_LOG is not set
385# CONFIG_NF_CONNTRACK is not set 395# CONFIG_NF_CONNTRACK is not set
396# CONFIG_NETFILTER_TPROXY is not set
386CONFIG_NETFILTER_XTABLES=m 397CONFIG_NETFILTER_XTABLES=m
387# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 398# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
388# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 399# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
400# CONFIG_NETFILTER_XT_TARGET_HL is not set
389# CONFIG_NETFILTER_XT_TARGET_MARK is not set 401# CONFIG_NETFILTER_XT_TARGET_MARK is not set
390# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 402# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
391# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 403# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -398,6 +410,7 @@ CONFIG_NETFILTER_XTABLES=m
398# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 410# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
399# CONFIG_NETFILTER_XT_MATCH_ESP is not set 411# CONFIG_NETFILTER_XT_MATCH_ESP is not set
400# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 412# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
413CONFIG_NETFILTER_XT_MATCH_HL=m
401# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 414# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
402# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 415# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
403# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 416# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -456,11 +469,11 @@ CONFIG_IP6_NF_MATCH_HL=m
456CONFIG_IP6_NF_MATCH_IPV6HEADER=m 469CONFIG_IP6_NF_MATCH_IPV6HEADER=m
457# CONFIG_IP6_NF_MATCH_MH is not set 470# CONFIG_IP6_NF_MATCH_MH is not set
458CONFIG_IP6_NF_MATCH_RT=m 471CONFIG_IP6_NF_MATCH_RT=m
472# CONFIG_IP6_NF_TARGET_HL is not set
459CONFIG_IP6_NF_TARGET_LOG=m 473CONFIG_IP6_NF_TARGET_LOG=m
460CONFIG_IP6_NF_FILTER=m 474CONFIG_IP6_NF_FILTER=m
461# CONFIG_IP6_NF_TARGET_REJECT is not set 475# CONFIG_IP6_NF_TARGET_REJECT is not set
462CONFIG_IP6_NF_MANGLE=m 476CONFIG_IP6_NF_MANGLE=m
463# CONFIG_IP6_NF_TARGET_HL is not set
464CONFIG_IP6_NF_RAW=m 477CONFIG_IP6_NF_RAW=m
465# CONFIG_IP6_NF_SECURITY is not set 478# CONFIG_IP6_NF_SECURITY is not set
466# CONFIG_BRIDGE_NF_EBTABLES is not set 479# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -495,6 +508,7 @@ CONFIG_LLC=m
495# CONFIG_LAPB is not set 508# CONFIG_LAPB is not set
496# CONFIG_ECONET is not set 509# CONFIG_ECONET is not set
497CONFIG_WAN_ROUTER=m 510CONFIG_WAN_ROUTER=m
511# CONFIG_PHONET is not set
498CONFIG_NET_SCHED=y 512CONFIG_NET_SCHED=y
499 513
500# 514#
@@ -545,7 +559,6 @@ CONFIG_NET_PKTGEN=m
545# CONFIG_IRDA is not set 559# CONFIG_IRDA is not set
546# CONFIG_BT is not set 560# CONFIG_BT is not set
547# CONFIG_AF_RXRPC is not set 561# CONFIG_AF_RXRPC is not set
548# CONFIG_PHONET is not set
549CONFIG_FIB_RULES=y 562CONFIG_FIB_RULES=y
550CONFIG_WIRELESS=y 563CONFIG_WIRELESS=y
551# CONFIG_CFG80211 is not set 564# CONFIG_CFG80211 is not set
@@ -686,6 +699,7 @@ CONFIG_MISC_DEVICES=y
686# CONFIG_ICS932S401 is not set 699# CONFIG_ICS932S401 is not set
687# CONFIG_ENCLOSURE_SERVICES is not set 700# CONFIG_ENCLOSURE_SERVICES is not set
688# CONFIG_HP_ILO is not set 701# CONFIG_HP_ILO is not set
702# CONFIG_ISL29003 is not set
689# CONFIG_C2PORT is not set 703# CONFIG_C2PORT is not set
690 704
691# 705#
@@ -751,9 +765,11 @@ CONFIG_SCSI_LOWLEVEL=y
751# CONFIG_MEGARAID_NEWGEN is not set 765# CONFIG_MEGARAID_NEWGEN is not set
752# CONFIG_MEGARAID_LEGACY is not set 766# CONFIG_MEGARAID_LEGACY is not set
753# CONFIG_MEGARAID_SAS is not set 767# CONFIG_MEGARAID_SAS is not set
768# CONFIG_SCSI_MPT2SAS is not set
754# CONFIG_SCSI_HPTIOP is not set 769# CONFIG_SCSI_HPTIOP is not set
755# CONFIG_SCSI_BUSLOGIC is not set 770# CONFIG_SCSI_BUSLOGIC is not set
756# CONFIG_LIBFC is not set 771# CONFIG_LIBFC is not set
772# CONFIG_LIBFCOE is not set
757# CONFIG_FCOE is not set 773# CONFIG_FCOE is not set
758# CONFIG_SCSI_DMX3191D is not set 774# CONFIG_SCSI_DMX3191D is not set
759# CONFIG_SCSI_EATA is not set 775# CONFIG_SCSI_EATA is not set
@@ -776,6 +792,7 @@ CONFIG_SCSI_LOWLEVEL=y
776# CONFIG_SCSI_DEBUG is not set 792# CONFIG_SCSI_DEBUG is not set
777# CONFIG_SCSI_SRP is not set 793# CONFIG_SCSI_SRP is not set
778# CONFIG_SCSI_DH is not set 794# CONFIG_SCSI_DH is not set
795# CONFIG_SCSI_OSD_INITIATOR is not set
779CONFIG_ATA=y 796CONFIG_ATA=y
780# CONFIG_ATA_NONSTANDARD is not set 797# CONFIG_ATA_NONSTANDARD is not set
781CONFIG_SATA_PMP=y 798CONFIG_SATA_PMP=y
@@ -852,6 +869,7 @@ CONFIG_SATA_SIL=y
852# CONFIG_I2O is not set 869# CONFIG_I2O is not set
853# CONFIG_MACINTOSH_DRIVERS is not set 870# CONFIG_MACINTOSH_DRIVERS is not set
854CONFIG_NETDEVICES=y 871CONFIG_NETDEVICES=y
872CONFIG_COMPAT_NET_DEV_OPS=y
855CONFIG_DUMMY=m 873CONFIG_DUMMY=m
856CONFIG_BONDING=m 874CONFIG_BONDING=m
857# CONFIG_MACVLAN is not set 875# CONFIG_MACVLAN is not set
@@ -885,6 +903,8 @@ CONFIG_MII=y
885# CONFIG_SUNGEM is not set 903# CONFIG_SUNGEM is not set
886# CONFIG_CASSINI is not set 904# CONFIG_CASSINI is not set
887# CONFIG_NET_VENDOR_3COM is not set 905# CONFIG_NET_VENDOR_3COM is not set
906# CONFIG_ETHOC is not set
907# CONFIG_DNET is not set
888# CONFIG_NET_TULIP is not set 908# CONFIG_NET_TULIP is not set
889# CONFIG_HP100 is not set 909# CONFIG_HP100 is not set
890# CONFIG_IBM_NEW_EMAC_ZMII is not set 910# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -904,6 +924,7 @@ CONFIG_NETDEV_1000=y
904# CONFIG_E1000E is not set 924# CONFIG_E1000E is not set
905# CONFIG_IP1000 is not set 925# CONFIG_IP1000 is not set
906# CONFIG_IGB is not set 926# CONFIG_IGB is not set
927# CONFIG_IGBVF is not set
907# CONFIG_NS83820 is not set 928# CONFIG_NS83820 is not set
908# CONFIG_HAMACHI is not set 929# CONFIG_HAMACHI is not set
909# CONFIG_YELLOWFIN is not set 930# CONFIG_YELLOWFIN is not set
@@ -914,8 +935,8 @@ CONFIG_NETDEV_1000=y
914# CONFIG_VIA_VELOCITY is not set 935# CONFIG_VIA_VELOCITY is not set
915# CONFIG_TIGON3 is not set 936# CONFIG_TIGON3 is not set
916# CONFIG_BNX2 is not set 937# CONFIG_BNX2 is not set
938CONFIG_FSL_PQ_MDIO=y
917CONFIG_GIANFAR=y 939CONFIG_GIANFAR=y
918# CONFIG_MV643XX_ETH is not set
919# CONFIG_QLA3XXX is not set 940# CONFIG_QLA3XXX is not set
920# CONFIG_ATL1 is not set 941# CONFIG_ATL1 is not set
921# CONFIG_ATL1E is not set 942# CONFIG_ATL1E is not set
@@ -929,7 +950,6 @@ CONFIG_GIANFAR=y
929# 950#
930# CONFIG_WLAN_PRE80211 is not set 951# CONFIG_WLAN_PRE80211 is not set
931# CONFIG_WLAN_80211 is not set 952# CONFIG_WLAN_80211 is not set
932# CONFIG_IWLWIFI_LEDS is not set
933 953
934# 954#
935# Enable WiMAX (Networking options) to see the WiMAX drivers 955# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1056,6 +1076,7 @@ CONFIG_UNIX98_PTYS=y
1056# CONFIG_HVC_UDBG is not set 1076# CONFIG_HVC_UDBG is not set
1057# CONFIG_IPMI_HANDLER is not set 1077# CONFIG_IPMI_HANDLER is not set
1058CONFIG_HW_RANDOM=y 1078CONFIG_HW_RANDOM=y
1079# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1059CONFIG_NVRAM=y 1080CONFIG_NVRAM=y
1060# CONFIG_R3964 is not set 1081# CONFIG_R3964 is not set
1061# CONFIG_APPLICOM is not set 1082# CONFIG_APPLICOM is not set
@@ -1122,7 +1143,6 @@ CONFIG_DS1682=y
1122# CONFIG_SENSORS_PCF8574 is not set 1143# CONFIG_SENSORS_PCF8574 is not set
1123# CONFIG_PCF8575 is not set 1144# CONFIG_PCF8575 is not set
1124# CONFIG_SENSORS_PCA9539 is not set 1145# CONFIG_SENSORS_PCA9539 is not set
1125# CONFIG_SENSORS_PCF8591 is not set
1126# CONFIG_SENSORS_MAX6875 is not set 1146# CONFIG_SENSORS_MAX6875 is not set
1127# CONFIG_SENSORS_TSL2550 is not set 1147# CONFIG_SENSORS_TSL2550 is not set
1128# CONFIG_I2C_DEBUG_CORE is not set 1148# CONFIG_I2C_DEBUG_CORE is not set
@@ -1178,6 +1198,7 @@ CONFIG_HWMON=y
1178# CONFIG_SENSORS_F71805F is not set 1198# CONFIG_SENSORS_F71805F is not set
1179# CONFIG_SENSORS_F71882FG is not set 1199# CONFIG_SENSORS_F71882FG is not set
1180# CONFIG_SENSORS_F75375S is not set 1200# CONFIG_SENSORS_F75375S is not set
1201# CONFIG_SENSORS_G760A is not set
1181# CONFIG_SENSORS_GL518SM is not set 1202# CONFIG_SENSORS_GL518SM is not set
1182# CONFIG_SENSORS_GL520SM is not set 1203# CONFIG_SENSORS_GL520SM is not set
1183# CONFIG_SENSORS_IT87 is not set 1204# CONFIG_SENSORS_IT87 is not set
@@ -1192,11 +1213,15 @@ CONFIG_HWMON=y
1192CONFIG_SENSORS_LM90=y 1213CONFIG_SENSORS_LM90=y
1193CONFIG_SENSORS_LM92=y 1214CONFIG_SENSORS_LM92=y
1194# CONFIG_SENSORS_LM93 is not set 1215# CONFIG_SENSORS_LM93 is not set
1216# CONFIG_SENSORS_LTC4215 is not set
1195# CONFIG_SENSORS_LTC4245 is not set 1217# CONFIG_SENSORS_LTC4245 is not set
1218# CONFIG_SENSORS_LM95241 is not set
1196# CONFIG_SENSORS_MAX1619 is not set 1219# CONFIG_SENSORS_MAX1619 is not set
1197# CONFIG_SENSORS_MAX6650 is not set 1220# CONFIG_SENSORS_MAX6650 is not set
1198# CONFIG_SENSORS_PC87360 is not set 1221# CONFIG_SENSORS_PC87360 is not set
1199# CONFIG_SENSORS_PC87427 is not set 1222# CONFIG_SENSORS_PC87427 is not set
1223# CONFIG_SENSORS_PCF8591 is not set
1224# CONFIG_SENSORS_SHT15 is not set
1200# CONFIG_SENSORS_SIS5595 is not set 1225# CONFIG_SENSORS_SIS5595 is not set
1201# CONFIG_SENSORS_DME1737 is not set 1226# CONFIG_SENSORS_DME1737 is not set
1202# CONFIG_SENSORS_SMSC47M1 is not set 1227# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1315,15 +1340,17 @@ CONFIG_USB_HID=y
1315# 1340#
1316# Special HID drivers 1341# Special HID drivers
1317# 1342#
1318CONFIG_HID_COMPAT=y
1319CONFIG_HID_A4TECH=y 1343CONFIG_HID_A4TECH=y
1320CONFIG_HID_APPLE=y 1344CONFIG_HID_APPLE=y
1321CONFIG_HID_BELKIN=y 1345CONFIG_HID_BELKIN=y
1322CONFIG_HID_CHERRY=y 1346CONFIG_HID_CHERRY=y
1323CONFIG_HID_CHICONY=y 1347CONFIG_HID_CHICONY=y
1324CONFIG_HID_CYPRESS=y 1348CONFIG_HID_CYPRESS=y
1349# CONFIG_DRAGONRISE_FF is not set
1325CONFIG_HID_EZKEY=y 1350CONFIG_HID_EZKEY=y
1351# CONFIG_HID_KYE is not set
1326CONFIG_HID_GYRATION=y 1352CONFIG_HID_GYRATION=y
1353# CONFIG_HID_KENSINGTON is not set
1327CONFIG_HID_LOGITECH=y 1354CONFIG_HID_LOGITECH=y
1328# CONFIG_LOGITECH_FF is not set 1355# CONFIG_LOGITECH_FF is not set
1329# CONFIG_LOGIRUMBLEPAD2_FF is not set 1356# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1393,11 +1420,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1393# CONFIG_USB_TMC is not set 1420# CONFIG_USB_TMC is not set
1394 1421
1395# 1422#
1396# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1423# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1397# 1424#
1398 1425
1399# 1426#
1400# see USB_STORAGE Help for more information 1427# also be needed; see USB_STORAGE Help for more info
1401# 1428#
1402CONFIG_USB_STORAGE=y 1429CONFIG_USB_STORAGE=y
1403# CONFIG_USB_STORAGE_DEBUG is not set 1430# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1439,7 +1466,6 @@ CONFIG_USB_STORAGE=y
1439# CONFIG_USB_LED is not set 1466# CONFIG_USB_LED is not set
1440# CONFIG_USB_CYPRESS_CY7C63 is not set 1467# CONFIG_USB_CYPRESS_CY7C63 is not set
1441# CONFIG_USB_CYTHERM is not set 1468# CONFIG_USB_CYTHERM is not set
1442# CONFIG_USB_PHIDGET is not set
1443# CONFIG_USB_IDMOUSE is not set 1469# CONFIG_USB_IDMOUSE is not set
1444# CONFIG_USB_FTDI_ELAN is not set 1470# CONFIG_USB_FTDI_ELAN is not set
1445# CONFIG_USB_APPLEDISPLAY is not set 1471# CONFIG_USB_APPLEDISPLAY is not set
@@ -1456,6 +1482,7 @@ CONFIG_USB_STORAGE=y
1456# OTG and related infrastructure 1482# OTG and related infrastructure
1457# 1483#
1458# CONFIG_USB_GPIO_VBUS is not set 1484# CONFIG_USB_GPIO_VBUS is not set
1485# CONFIG_NOP_USB_XCEIV is not set
1459# CONFIG_UWB is not set 1486# CONFIG_UWB is not set
1460# CONFIG_MMC is not set 1487# CONFIG_MMC is not set
1461# CONFIG_MEMSTICK is not set 1488# CONFIG_MEMSTICK is not set
@@ -1517,8 +1544,9 @@ CONFIG_RTC_DRV_RX8581=y
1517# 1544#
1518# on-CPU RTC drivers 1545# on-CPU RTC drivers
1519# 1546#
1520# CONFIG_RTC_DRV_PPC is not set 1547# CONFIG_RTC_DRV_GENERIC is not set
1521# CONFIG_DMADEVICES is not set 1548# CONFIG_DMADEVICES is not set
1549# CONFIG_AUXDISPLAY is not set
1522# CONFIG_UIO is not set 1550# CONFIG_UIO is not set
1523# CONFIG_STAGING is not set 1551# CONFIG_STAGING is not set
1524 1552
@@ -1531,6 +1559,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1531# CONFIG_EXT2_FS_SECURITY is not set 1559# CONFIG_EXT2_FS_SECURITY is not set
1532# CONFIG_EXT2_FS_XIP is not set 1560# CONFIG_EXT2_FS_XIP is not set
1533CONFIG_EXT3_FS=y 1561CONFIG_EXT3_FS=y
1562# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1534CONFIG_EXT3_FS_XATTR=y 1563CONFIG_EXT3_FS_XATTR=y
1535CONFIG_EXT3_FS_POSIX_ACL=y 1564CONFIG_EXT3_FS_POSIX_ACL=y
1536# CONFIG_EXT3_FS_SECURITY is not set 1565# CONFIG_EXT3_FS_SECURITY is not set
@@ -1553,6 +1582,11 @@ CONFIG_INOTIFY_USER=y
1553# CONFIG_FUSE_FS is not set 1582# CONFIG_FUSE_FS is not set
1554 1583
1555# 1584#
1585# Caches
1586#
1587# CONFIG_FSCACHE is not set
1588
1589#
1556# CD-ROM/DVD Filesystems 1590# CD-ROM/DVD Filesystems
1557# 1591#
1558# CONFIG_ISO9660_FS is not set 1592# CONFIG_ISO9660_FS is not set
@@ -1609,6 +1643,7 @@ CONFIG_JFFS2_RTIME=y
1609# CONFIG_ROMFS_FS is not set 1643# CONFIG_ROMFS_FS is not set
1610# CONFIG_SYSV_FS is not set 1644# CONFIG_SYSV_FS is not set
1611# CONFIG_UFS_FS is not set 1645# CONFIG_UFS_FS is not set
1646# CONFIG_NILFS2_FS is not set
1612CONFIG_NETWORK_FILESYSTEMS=y 1647CONFIG_NETWORK_FILESYSTEMS=y
1613CONFIG_NFS_FS=y 1648CONFIG_NFS_FS=y
1614CONFIG_NFS_V3=y 1649CONFIG_NFS_V3=y
@@ -1621,7 +1656,6 @@ CONFIG_LOCKD_V4=y
1621CONFIG_NFS_COMMON=y 1656CONFIG_NFS_COMMON=y
1622CONFIG_SUNRPC=y 1657CONFIG_SUNRPC=y
1623CONFIG_SUNRPC_GSS=y 1658CONFIG_SUNRPC_GSS=y
1624# CONFIG_SUNRPC_REGISTER_V4 is not set
1625CONFIG_RPCSEC_GSS_KRB5=y 1659CONFIG_RPCSEC_GSS_KRB5=y
1626# CONFIG_RPCSEC_GSS_SPKM3 is not set 1660# CONFIG_RPCSEC_GSS_SPKM3 is not set
1627# CONFIG_SMB_FS is not set 1661# CONFIG_SMB_FS is not set
@@ -1682,6 +1716,7 @@ CONFIG_NLS_KOI8_R=m
1682CONFIG_NLS_KOI8_U=m 1716CONFIG_NLS_KOI8_U=m
1683CONFIG_NLS_UTF8=m 1717CONFIG_NLS_UTF8=m
1684# CONFIG_DLM is not set 1718# CONFIG_DLM is not set
1719# CONFIG_BINARY_PRINTF is not set
1685 1720
1686# 1721#
1687# Library routines 1722# Library routines
@@ -1697,11 +1732,12 @@ CONFIG_CRC32=y
1697CONFIG_LIBCRC32C=m 1732CONFIG_LIBCRC32C=m
1698CONFIG_ZLIB_INFLATE=y 1733CONFIG_ZLIB_INFLATE=y
1699CONFIG_ZLIB_DEFLATE=y 1734CONFIG_ZLIB_DEFLATE=y
1700CONFIG_PLIST=y 1735CONFIG_DECOMPRESS_GZIP=y
1701CONFIG_HAS_IOMEM=y 1736CONFIG_HAS_IOMEM=y
1702CONFIG_HAS_IOPORT=y 1737CONFIG_HAS_IOPORT=y
1703CONFIG_HAS_DMA=y 1738CONFIG_HAS_DMA=y
1704CONFIG_HAVE_LMB=y 1739CONFIG_HAVE_LMB=y
1740CONFIG_NLATTR=y
1705 1741
1706# 1742#
1707# Kernel hacking 1743# Kernel hacking
@@ -1719,6 +1755,9 @@ CONFIG_DEBUG_KERNEL=y
1719CONFIG_DETECT_SOFTLOCKUP=y 1755CONFIG_DETECT_SOFTLOCKUP=y
1720# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1756# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1721CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1757CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1758CONFIG_DETECT_HUNG_TASK=y
1759# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1760CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1722CONFIG_SCHED_DEBUG=y 1761CONFIG_SCHED_DEBUG=y
1723# CONFIG_SCHEDSTATS is not set 1762# CONFIG_SCHEDSTATS is not set
1724# CONFIG_TIMER_STATS is not set 1763# CONFIG_TIMER_STATS is not set
@@ -1747,9 +1786,12 @@ CONFIG_DEBUG_INFO=y
1747# CONFIG_FAULT_INJECTION is not set 1786# CONFIG_FAULT_INJECTION is not set
1748# CONFIG_LATENCYTOP is not set 1787# CONFIG_LATENCYTOP is not set
1749CONFIG_SYSCTL_SYSCALL_CHECK=y 1788CONFIG_SYSCTL_SYSCALL_CHECK=y
1789# CONFIG_DEBUG_PAGEALLOC is not set
1750CONFIG_HAVE_FUNCTION_TRACER=y 1790CONFIG_HAVE_FUNCTION_TRACER=y
1791CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1751CONFIG_HAVE_DYNAMIC_FTRACE=y 1792CONFIG_HAVE_DYNAMIC_FTRACE=y
1752CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1793CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1794CONFIG_TRACING_SUPPORT=y
1753 1795
1754# 1796#
1755# Tracers 1797# Tracers
@@ -1758,17 +1800,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1758# CONFIG_PREEMPT_TRACER is not set 1800# CONFIG_PREEMPT_TRACER is not set
1759# CONFIG_SCHED_TRACER is not set 1801# CONFIG_SCHED_TRACER is not set
1760# CONFIG_CONTEXT_SWITCH_TRACER is not set 1802# CONFIG_CONTEXT_SWITCH_TRACER is not set
1803# CONFIG_EVENT_TRACER is not set
1761# CONFIG_BOOT_TRACER is not set 1804# CONFIG_BOOT_TRACER is not set
1762# CONFIG_TRACE_BRANCH_PROFILING is not set 1805# CONFIG_TRACE_BRANCH_PROFILING is not set
1763# CONFIG_STACK_TRACER is not set 1806# CONFIG_STACK_TRACER is not set
1764# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1807# CONFIG_KMEMTRACE is not set
1808# CONFIG_WORKQUEUE_TRACER is not set
1809# CONFIG_BLK_DEV_IO_TRACE is not set
1765# CONFIG_SAMPLES is not set 1810# CONFIG_SAMPLES is not set
1766CONFIG_HAVE_ARCH_KGDB=y 1811CONFIG_HAVE_ARCH_KGDB=y
1767# CONFIG_KGDB is not set 1812# CONFIG_KGDB is not set
1768CONFIG_PRINT_STACK_DEPTH=64 1813CONFIG_PRINT_STACK_DEPTH=64
1769# CONFIG_DEBUG_STACKOVERFLOW is not set 1814# CONFIG_DEBUG_STACKOVERFLOW is not set
1770# CONFIG_DEBUG_STACK_USAGE is not set 1815# CONFIG_DEBUG_STACK_USAGE is not set
1771# CONFIG_DEBUG_PAGEALLOC is not set
1772# CONFIG_CODE_PATCHING_SELFTEST is not set 1816# CONFIG_CODE_PATCHING_SELFTEST is not set
1773# CONFIG_FTR_FIXUP_SELFTEST is not set 1817# CONFIG_FTR_FIXUP_SELFTEST is not set
1774# CONFIG_MSI_BITMAP_SELFTEST is not set 1818# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1790,6 +1834,7 @@ CONFIG_SECURITY_NETWORK=y
1790# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1834# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1791# CONFIG_SECURITY_ROOTPLUG is not set 1835# CONFIG_SECURITY_ROOTPLUG is not set
1792CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1836CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1837# CONFIG_SECURITY_TOMOYO is not set
1793CONFIG_CRYPTO=y 1838CONFIG_CRYPTO=y
1794 1839
1795# 1840#
@@ -1805,10 +1850,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1805CONFIG_CRYPTO_HASH=y 1850CONFIG_CRYPTO_HASH=y
1806CONFIG_CRYPTO_HASH2=y 1851CONFIG_CRYPTO_HASH2=y
1807CONFIG_CRYPTO_RNG2=y 1852CONFIG_CRYPTO_RNG2=y
1853CONFIG_CRYPTO_PCOMP=y
1808CONFIG_CRYPTO_MANAGER=y 1854CONFIG_CRYPTO_MANAGER=y
1809CONFIG_CRYPTO_MANAGER2=y 1855CONFIG_CRYPTO_MANAGER2=y
1810# CONFIG_CRYPTO_GF128MUL is not set 1856# CONFIG_CRYPTO_GF128MUL is not set
1811CONFIG_CRYPTO_NULL=m 1857CONFIG_CRYPTO_NULL=m
1858CONFIG_CRYPTO_WORKQUEUE=y
1812# CONFIG_CRYPTO_CRYPTD is not set 1859# CONFIG_CRYPTO_CRYPTD is not set
1813CONFIG_CRYPTO_AUTHENC=m 1860CONFIG_CRYPTO_AUTHENC=m
1814CONFIG_CRYPTO_TEST=m 1861CONFIG_CRYPTO_TEST=m
@@ -1878,6 +1925,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1878# Compression 1925# Compression
1879# 1926#
1880CONFIG_CRYPTO_DEFLATE=m 1927CONFIG_CRYPTO_DEFLATE=m
1928# CONFIG_CRYPTO_ZLIB is not set
1881# CONFIG_CRYPTO_LZO is not set 1929# CONFIG_CRYPTO_LZO is not set
1882 1930
1883# 1931#
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
index bd236b3d915a..a66910e63345 100644
--- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc310_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.29-rc3 3# Linux kernel version: 2.6.30-rc3
4# Wed Jan 28 23:05:34 2009 4# Wed May 13 17:22:29 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,6 +74,7 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
@@ -96,20 +99,23 @@ CONFIG_RELAY=y
96# CONFIG_NAMESPACES is not set 99# CONFIG_NAMESPACES is not set
97CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
98CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
102CONFIG_RD_GZIP=y
103# CONFIG_RD_BZIP2 is not set
104# CONFIG_RD_LZMA is not set
99# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 105# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
100CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
107CONFIG_ANON_INODES=y
101CONFIG_EMBEDDED=y 108CONFIG_EMBEDDED=y
102CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
103CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
104# CONFIG_KALLSYMS_EXTRA_PASS is not set 111# CONFIG_KALLSYMS_EXTRA_PASS is not set
112# CONFIG_STRIP_ASM_SYMS is not set
105CONFIG_HOTPLUG=y 113CONFIG_HOTPLUG=y
106CONFIG_PRINTK=y 114CONFIG_PRINTK=y
107CONFIG_BUG=y 115CONFIG_BUG=y
108CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
109CONFIG_COMPAT_BRK=y
110CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
111CONFIG_FUTEX=y 118CONFIG_FUTEX=y
112CONFIG_ANON_INODES=y
113CONFIG_EPOLL=y 119CONFIG_EPOLL=y
114CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
115CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -118,10 +124,12 @@ CONFIG_SHMEM=y
118CONFIG_AIO=y 124CONFIG_AIO=y
119CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
120CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
127CONFIG_COMPAT_BRK=y
121CONFIG_SLAB=y 128CONFIG_SLAB=y
122# CONFIG_SLUB is not set 129# CONFIG_SLUB is not set
123# CONFIG_SLOB is not set 130# CONFIG_SLOB is not set
124# CONFIG_PROFILING is not set 131# CONFIG_PROFILING is not set
132# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 133CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 134# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 135CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,6 +138,7 @@ CONFIG_HAVE_KPROBES=y
130CONFIG_HAVE_KRETPROBES=y 138CONFIG_HAVE_KRETPROBES=y
131CONFIG_HAVE_ARCH_TRACEHOOK=y 139CONFIG_HAVE_ARCH_TRACEHOOK=y
132CONFIG_USE_GENERIC_SMP_HELPERS=y 140CONFIG_USE_GENERIC_SMP_HELPERS=y
141# CONFIG_SLOW_WORK is not set
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -143,7 +152,6 @@ CONFIG_MODULE_UNLOAD=y
143CONFIG_STOP_MACHINE=y 152CONFIG_STOP_MACHINE=y
144CONFIG_BLOCK=y 153CONFIG_BLOCK=y
145# CONFIG_LBD is not set 154# CONFIG_LBD is not set
146# CONFIG_BLK_DEV_IO_TRACE is not set
147# CONFIG_BLK_DEV_BSG is not set 155# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 156# CONFIG_BLK_DEV_INTEGRITY is not set
149 157
@@ -165,8 +173,6 @@ CONFIG_PPC_MSI_BITMAP=y
165# 173#
166# Platform support 174# Platform support
167# 175#
168CONFIG_PPC_MULTIPLATFORM=y
169CONFIG_CLASSIC32=y
170# CONFIG_PPC_CHRP is not set 176# CONFIG_PPC_CHRP is not set
171# CONFIG_MPC5121_ADS is not set 177# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 178# CONFIG_MPC5121_GENERIC is not set
@@ -181,9 +187,11 @@ CONFIG_PPC_86xx=y
181# CONFIG_MPC8641_HPCN is not set 187# CONFIG_MPC8641_HPCN is not set
182# CONFIG_SBC8641D is not set 188# CONFIG_SBC8641D is not set
183# CONFIG_MPC8610_HPCD is not set 189# CONFIG_MPC8610_HPCD is not set
190# CONFIG_GEF_PPC9A is not set
184CONFIG_GEF_SBC310=y 191CONFIG_GEF_SBC310=y
185# CONFIG_GEF_SBC610 is not set 192# CONFIG_GEF_SBC610 is not set
186CONFIG_MPC8641=y 193CONFIG_MPC8641=y
194CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187# CONFIG_IPIC is not set 195# CONFIG_IPIC is not set
188CONFIG_MPIC=y 196CONFIG_MPIC=y
189# CONFIG_MPIC_WEIRD is not set 197# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +253,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 253CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 254CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 255CONFIG_UNEVICTABLE_LRU=y
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 258CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 259# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 260# CONFIG_PPC_64K_PAGES is not set
261# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 262CONFIG_FORCE_MAX_ZONEORDER=11
252# CONFIG_PROC_DEVICETREE is not set 263# CONFIG_PROC_DEVICETREE is not set
253# CONFIG_CMDLINE_BOOL is not set 264# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +286,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275CONFIG_PCI_MSI=y 286CONFIG_PCI_MSI=y
276# CONFIG_PCI_LEGACY is not set 287# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCI_STUB is not set 288# CONFIG_PCI_STUB is not set
289# CONFIG_PCI_IOV is not set
278# CONFIG_PCCARD is not set 290# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 291# CONFIG_HOTPLUG_PCI is not set
280# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
@@ -288,7 +300,6 @@ CONFIG_PCI_MSI=y
288# Default settings for advanced configuration options are used 300# Default settings for advanced configuration options are used
289# 301#
290CONFIG_LOWMEM_SIZE=0x30000000 302CONFIG_LOWMEM_SIZE=0x30000000
291CONFIG_LOWMEM_CAM_NUM=3
292CONFIG_PAGE_OFFSET=0xc0000000 303CONFIG_PAGE_OFFSET=0xc0000000
293CONFIG_KERNEL_START=0xc0000000 304CONFIG_KERNEL_START=0xc0000000
294CONFIG_PHYSICAL_START=0x00000000 305CONFIG_PHYSICAL_START=0x00000000
@@ -298,7 +309,6 @@ CONFIG_NET=y
298# 309#
299# Networking options 310# Networking options
300# 311#
301CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 312CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 313CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 314CONFIG_UNIX=y
@@ -382,6 +392,7 @@ CONFIG_IPV6_TUNNEL=m
382# CONFIG_LAPB is not set 392# CONFIG_LAPB is not set
383# CONFIG_ECONET is not set 393# CONFIG_ECONET is not set
384# CONFIG_WAN_ROUTER is not set 394# CONFIG_WAN_ROUTER is not set
395# CONFIG_PHONET is not set
385# CONFIG_NET_SCHED is not set 396# CONFIG_NET_SCHED is not set
386# CONFIG_DCB is not set 397# CONFIG_DCB is not set
387 398
@@ -394,7 +405,6 @@ CONFIG_NET_PKTGEN=m
394# CONFIG_IRDA is not set 405# CONFIG_IRDA is not set
395# CONFIG_BT is not set 406# CONFIG_BT is not set
396# CONFIG_AF_RXRPC is not set 407# CONFIG_AF_RXRPC is not set
397# CONFIG_PHONET is not set
398CONFIG_FIB_RULES=y 408CONFIG_FIB_RULES=y
399# CONFIG_WIRELESS is not set 409# CONFIG_WIRELESS is not set
400# CONFIG_WIMAX is not set 410# CONFIG_WIMAX is not set
@@ -493,7 +503,6 @@ CONFIG_MTD_PHYSMAP_OF=y
493# LPDDR flash memory drivers 503# LPDDR flash memory drivers
494# 504#
495# CONFIG_MTD_LPDDR is not set 505# CONFIG_MTD_LPDDR is not set
496# CONFIG_MTD_QINFO_PROBE is not set
497 506
498# 507#
499# UBI - Unsorted block images 508# UBI - Unsorted block images
@@ -529,6 +538,7 @@ CONFIG_MISC_DEVICES=y
529# CONFIG_ICS932S401 is not set 538# CONFIG_ICS932S401 is not set
530# CONFIG_ENCLOSURE_SERVICES is not set 539# CONFIG_ENCLOSURE_SERVICES is not set
531# CONFIG_HP_ILO is not set 540# CONFIG_HP_ILO is not set
541# CONFIG_ISL29003 is not set
532# CONFIG_C2PORT is not set 542# CONFIG_C2PORT is not set
533 543
534# 544#
@@ -594,9 +604,11 @@ CONFIG_SCSI_LOWLEVEL=y
594# CONFIG_MEGARAID_NEWGEN is not set 604# CONFIG_MEGARAID_NEWGEN is not set
595# CONFIG_MEGARAID_LEGACY is not set 605# CONFIG_MEGARAID_LEGACY is not set
596# CONFIG_MEGARAID_SAS is not set 606# CONFIG_MEGARAID_SAS is not set
607# CONFIG_SCSI_MPT2SAS is not set
597# CONFIG_SCSI_HPTIOP is not set 608# CONFIG_SCSI_HPTIOP is not set
598# CONFIG_SCSI_BUSLOGIC is not set 609# CONFIG_SCSI_BUSLOGIC is not set
599# CONFIG_LIBFC is not set 610# CONFIG_LIBFC is not set
611# CONFIG_LIBFCOE is not set
600# CONFIG_FCOE is not set 612# CONFIG_FCOE is not set
601# CONFIG_SCSI_DMX3191D is not set 613# CONFIG_SCSI_DMX3191D is not set
602# CONFIG_SCSI_EATA is not set 614# CONFIG_SCSI_EATA is not set
@@ -619,6 +631,7 @@ CONFIG_SCSI_LOWLEVEL=y
619# CONFIG_SCSI_DEBUG is not set 631# CONFIG_SCSI_DEBUG is not set
620# CONFIG_SCSI_SRP is not set 632# CONFIG_SCSI_SRP is not set
621# CONFIG_SCSI_DH is not set 633# CONFIG_SCSI_DH is not set
634# CONFIG_SCSI_OSD_INITIATOR is not set
622CONFIG_ATA=y 635CONFIG_ATA=y
623# CONFIG_ATA_NONSTANDARD is not set 636# CONFIG_ATA_NONSTANDARD is not set
624CONFIG_SATA_PMP=y 637CONFIG_SATA_PMP=y
@@ -641,6 +654,7 @@ CONFIG_SATA_SIL24=y
641# CONFIG_I2O is not set 654# CONFIG_I2O is not set
642# CONFIG_MACINTOSH_DRIVERS is not set 655# CONFIG_MACINTOSH_DRIVERS is not set
643CONFIG_NETDEVICES=y 656CONFIG_NETDEVICES=y
657CONFIG_COMPAT_NET_DEV_OPS=y
644CONFIG_DUMMY=m 658CONFIG_DUMMY=m
645CONFIG_BONDING=m 659CONFIG_BONDING=m
646# CONFIG_MACVLAN is not set 660# CONFIG_MACVLAN is not set
@@ -674,6 +688,8 @@ CONFIG_MII=y
674# CONFIG_SUNGEM is not set 688# CONFIG_SUNGEM is not set
675# CONFIG_CASSINI is not set 689# CONFIG_CASSINI is not set
676# CONFIG_NET_VENDOR_3COM is not set 690# CONFIG_NET_VENDOR_3COM is not set
691# CONFIG_ETHOC is not set
692# CONFIG_DNET is not set
677# CONFIG_NET_TULIP is not set 693# CONFIG_NET_TULIP is not set
678# CONFIG_HP100 is not set 694# CONFIG_HP100 is not set
679# CONFIG_IBM_NEW_EMAC_ZMII is not set 695# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -693,6 +709,7 @@ CONFIG_NETDEV_1000=y
693# CONFIG_E1000E is not set 709# CONFIG_E1000E is not set
694# CONFIG_IP1000 is not set 710# CONFIG_IP1000 is not set
695# CONFIG_IGB is not set 711# CONFIG_IGB is not set
712# CONFIG_IGBVF is not set
696# CONFIG_NS83820 is not set 713# CONFIG_NS83820 is not set
697# CONFIG_HAMACHI is not set 714# CONFIG_HAMACHI is not set
698# CONFIG_YELLOWFIN is not set 715# CONFIG_YELLOWFIN is not set
@@ -703,11 +720,12 @@ CONFIG_NETDEV_1000=y
703# CONFIG_VIA_VELOCITY is not set 720# CONFIG_VIA_VELOCITY is not set
704# CONFIG_TIGON3 is not set 721# CONFIG_TIGON3 is not set
705# CONFIG_BNX2 is not set 722# CONFIG_BNX2 is not set
723CONFIG_FSL_PQ_MDIO=y
706CONFIG_GIANFAR=y 724CONFIG_GIANFAR=y
707# CONFIG_MV643XX_ETH is not set
708# CONFIG_QLA3XXX is not set 725# CONFIG_QLA3XXX is not set
709# CONFIG_ATL1 is not set 726# CONFIG_ATL1 is not set
710# CONFIG_ATL1E is not set 727# CONFIG_ATL1E is not set
728# CONFIG_ATL1C is not set
711# CONFIG_JME is not set 729# CONFIG_JME is not set
712# CONFIG_NETDEV_10000 is not set 730# CONFIG_NETDEV_10000 is not set
713# CONFIG_TR is not set 731# CONFIG_TR is not set
@@ -717,7 +735,6 @@ CONFIG_GIANFAR=y
717# 735#
718# CONFIG_WLAN_PRE80211 is not set 736# CONFIG_WLAN_PRE80211 is not set
719# CONFIG_WLAN_80211 is not set 737# CONFIG_WLAN_80211 is not set
720# CONFIG_IWLWIFI_LEDS is not set
721 738
722# 739#
723# Enable WiMAX (Networking options) to see the WiMAX drivers 740# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -828,6 +845,7 @@ CONFIG_UNIX98_PTYS=y
828# CONFIG_HVC_UDBG is not set 845# CONFIG_HVC_UDBG is not set
829# CONFIG_IPMI_HANDLER is not set 846# CONFIG_IPMI_HANDLER is not set
830CONFIG_HW_RANDOM=y 847CONFIG_HW_RANDOM=y
848# CONFIG_HW_RANDOM_TIMERIOMEM is not set
831CONFIG_NVRAM=y 849CONFIG_NVRAM=y
832# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
833# CONFIG_APPLICOM is not set 851# CONFIG_APPLICOM is not set
@@ -894,7 +912,6 @@ CONFIG_DS1682=y
894# CONFIG_SENSORS_PCF8574 is not set 912# CONFIG_SENSORS_PCF8574 is not set
895# CONFIG_PCF8575 is not set 913# CONFIG_PCF8575 is not set
896# CONFIG_SENSORS_PCA9539 is not set 914# CONFIG_SENSORS_PCA9539 is not set
897# CONFIG_SENSORS_PCF8591 is not set
898# CONFIG_SENSORS_MAX6875 is not set 915# CONFIG_SENSORS_MAX6875 is not set
899# CONFIG_SENSORS_TSL2550 is not set 916# CONFIG_SENSORS_TSL2550 is not set
900# CONFIG_I2C_DEBUG_CORE is not set 917# CONFIG_I2C_DEBUG_CORE is not set
@@ -949,6 +966,7 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_F71805F is not set 966# CONFIG_SENSORS_F71805F is not set
950# CONFIG_SENSORS_F71882FG is not set 967# CONFIG_SENSORS_F71882FG is not set
951# CONFIG_SENSORS_F75375S is not set 968# CONFIG_SENSORS_F75375S is not set
969# CONFIG_SENSORS_G760A is not set
952# CONFIG_SENSORS_GL518SM is not set 970# CONFIG_SENSORS_GL518SM is not set
953# CONFIG_SENSORS_GL520SM is not set 971# CONFIG_SENSORS_GL520SM is not set
954# CONFIG_SENSORS_IT87 is not set 972# CONFIG_SENSORS_IT87 is not set
@@ -963,11 +981,15 @@ CONFIG_HWMON=y
963CONFIG_SENSORS_LM90=y 981CONFIG_SENSORS_LM90=y
964CONFIG_SENSORS_LM92=y 982CONFIG_SENSORS_LM92=y
965# CONFIG_SENSORS_LM93 is not set 983# CONFIG_SENSORS_LM93 is not set
984# CONFIG_SENSORS_LTC4215 is not set
966# CONFIG_SENSORS_LTC4245 is not set 985# CONFIG_SENSORS_LTC4245 is not set
986# CONFIG_SENSORS_LM95241 is not set
967# CONFIG_SENSORS_MAX1619 is not set 987# CONFIG_SENSORS_MAX1619 is not set
968# CONFIG_SENSORS_MAX6650 is not set 988# CONFIG_SENSORS_MAX6650 is not set
969# CONFIG_SENSORS_PC87360 is not set 989# CONFIG_SENSORS_PC87360 is not set
970# CONFIG_SENSORS_PC87427 is not set 990# CONFIG_SENSORS_PC87427 is not set
991# CONFIG_SENSORS_PCF8591 is not set
992# CONFIG_SENSORS_SHT15 is not set
971# CONFIG_SENSORS_SIS5595 is not set 993# CONFIG_SENSORS_SIS5595 is not set
972# CONFIG_SENSORS_DME1737 is not set 994# CONFIG_SENSORS_DME1737 is not set
973# CONFIG_SENSORS_SMSC47M1 is not set 995# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1086,15 +1108,17 @@ CONFIG_USB_HID=y
1086# 1108#
1087# Special HID drivers 1109# Special HID drivers
1088# 1110#
1089CONFIG_HID_COMPAT=y
1090CONFIG_HID_A4TECH=y 1111CONFIG_HID_A4TECH=y
1091CONFIG_HID_APPLE=y 1112CONFIG_HID_APPLE=y
1092CONFIG_HID_BELKIN=y 1113CONFIG_HID_BELKIN=y
1093CONFIG_HID_CHERRY=y 1114CONFIG_HID_CHERRY=y
1094CONFIG_HID_CHICONY=y 1115CONFIG_HID_CHICONY=y
1095CONFIG_HID_CYPRESS=y 1116CONFIG_HID_CYPRESS=y
1117# CONFIG_DRAGONRISE_FF is not set
1096CONFIG_HID_EZKEY=y 1118CONFIG_HID_EZKEY=y
1119# CONFIG_HID_KYE is not set
1097CONFIG_HID_GYRATION=y 1120CONFIG_HID_GYRATION=y
1121# CONFIG_HID_KENSINGTON is not set
1098CONFIG_HID_LOGITECH=y 1122CONFIG_HID_LOGITECH=y
1099# CONFIG_LOGITECH_FF is not set 1123# CONFIG_LOGITECH_FF is not set
1100# CONFIG_LOGIRUMBLEPAD2_FF is not set 1124# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1164,11 +1188,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1164# CONFIG_USB_TMC is not set 1188# CONFIG_USB_TMC is not set
1165 1189
1166# 1190#
1167# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1191# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1168# 1192#
1169 1193
1170# 1194#
1171# see USB_STORAGE Help for more information 1195# also be needed; see USB_STORAGE Help for more info
1172# 1196#
1173CONFIG_USB_STORAGE=y 1197CONFIG_USB_STORAGE=y
1174# CONFIG_USB_STORAGE_DEBUG is not set 1198# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1210,7 +1234,6 @@ CONFIG_USB_STORAGE=y
1210# CONFIG_USB_LED is not set 1234# CONFIG_USB_LED is not set
1211# CONFIG_USB_CYPRESS_CY7C63 is not set 1235# CONFIG_USB_CYPRESS_CY7C63 is not set
1212# CONFIG_USB_CYTHERM is not set 1236# CONFIG_USB_CYTHERM is not set
1213# CONFIG_USB_PHIDGET is not set
1214# CONFIG_USB_IDMOUSE is not set 1237# CONFIG_USB_IDMOUSE is not set
1215# CONFIG_USB_FTDI_ELAN is not set 1238# CONFIG_USB_FTDI_ELAN is not set
1216# CONFIG_USB_APPLEDISPLAY is not set 1239# CONFIG_USB_APPLEDISPLAY is not set
@@ -1226,6 +1249,7 @@ CONFIG_USB_STORAGE=y
1226# OTG and related infrastructure 1249# OTG and related infrastructure
1227# 1250#
1228# CONFIG_USB_GPIO_VBUS is not set 1251# CONFIG_USB_GPIO_VBUS is not set
1252# CONFIG_NOP_USB_XCEIV is not set
1229# CONFIG_UWB is not set 1253# CONFIG_UWB is not set
1230# CONFIG_MMC is not set 1254# CONFIG_MMC is not set
1231# CONFIG_MEMSTICK is not set 1255# CONFIG_MEMSTICK is not set
@@ -1287,8 +1311,9 @@ CONFIG_RTC_DRV_RX8581=y
1287# 1311#
1288# on-CPU RTC drivers 1312# on-CPU RTC drivers
1289# 1313#
1290# CONFIG_RTC_DRV_PPC is not set 1314# CONFIG_RTC_DRV_GENERIC is not set
1291# CONFIG_DMADEVICES is not set 1315# CONFIG_DMADEVICES is not set
1316# CONFIG_AUXDISPLAY is not set
1292# CONFIG_UIO is not set 1317# CONFIG_UIO is not set
1293# CONFIG_STAGING is not set 1318# CONFIG_STAGING is not set
1294 1319
@@ -1301,6 +1326,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1301# CONFIG_EXT2_FS_SECURITY is not set 1326# CONFIG_EXT2_FS_SECURITY is not set
1302# CONFIG_EXT2_FS_XIP is not set 1327# CONFIG_EXT2_FS_XIP is not set
1303CONFIG_EXT3_FS=y 1328CONFIG_EXT3_FS=y
1329# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1304CONFIG_EXT3_FS_XATTR=y 1330CONFIG_EXT3_FS_XATTR=y
1305CONFIG_EXT3_FS_POSIX_ACL=y 1331CONFIG_EXT3_FS_POSIX_ACL=y
1306# CONFIG_EXT3_FS_SECURITY is not set 1332# CONFIG_EXT3_FS_SECURITY is not set
@@ -1323,6 +1349,11 @@ CONFIG_INOTIFY_USER=y
1323# CONFIG_FUSE_FS is not set 1349# CONFIG_FUSE_FS is not set
1324 1350
1325# 1351#
1352# Caches
1353#
1354# CONFIG_FSCACHE is not set
1355
1356#
1326# CD-ROM/DVD Filesystems 1357# CD-ROM/DVD Filesystems
1327# 1358#
1328CONFIG_ISO9660_FS=y 1359CONFIG_ISO9660_FS=y
@@ -1382,6 +1413,7 @@ CONFIG_JFFS2_RTIME=y
1382# CONFIG_ROMFS_FS is not set 1413# CONFIG_ROMFS_FS is not set
1383# CONFIG_SYSV_FS is not set 1414# CONFIG_SYSV_FS is not set
1384# CONFIG_UFS_FS is not set 1415# CONFIG_UFS_FS is not set
1416# CONFIG_NILFS2_FS is not set
1385CONFIG_NETWORK_FILESYSTEMS=y 1417CONFIG_NETWORK_FILESYSTEMS=y
1386CONFIG_NFS_FS=y 1418CONFIG_NFS_FS=y
1387CONFIG_NFS_V3=y 1419CONFIG_NFS_V3=y
@@ -1394,7 +1426,6 @@ CONFIG_LOCKD_V4=y
1394CONFIG_NFS_COMMON=y 1426CONFIG_NFS_COMMON=y
1395CONFIG_SUNRPC=y 1427CONFIG_SUNRPC=y
1396CONFIG_SUNRPC_GSS=y 1428CONFIG_SUNRPC_GSS=y
1397# CONFIG_SUNRPC_REGISTER_V4 is not set
1398CONFIG_RPCSEC_GSS_KRB5=y 1429CONFIG_RPCSEC_GSS_KRB5=y
1399# CONFIG_RPCSEC_GSS_SPKM3 is not set 1430# CONFIG_RPCSEC_GSS_SPKM3 is not set
1400# CONFIG_SMB_FS is not set 1431# CONFIG_SMB_FS is not set
@@ -1455,6 +1486,7 @@ CONFIG_NLS_KOI8_R=m
1455CONFIG_NLS_KOI8_U=m 1486CONFIG_NLS_KOI8_U=m
1456CONFIG_NLS_UTF8=m 1487CONFIG_NLS_UTF8=m
1457# CONFIG_DLM is not set 1488# CONFIG_DLM is not set
1489# CONFIG_BINARY_PRINTF is not set
1458 1490
1459# 1491#
1460# Library routines 1492# Library routines
@@ -1470,11 +1502,12 @@ CONFIG_CRC32=y
1470CONFIG_LIBCRC32C=y 1502CONFIG_LIBCRC32C=y
1471CONFIG_ZLIB_INFLATE=y 1503CONFIG_ZLIB_INFLATE=y
1472CONFIG_ZLIB_DEFLATE=y 1504CONFIG_ZLIB_DEFLATE=y
1473CONFIG_PLIST=y 1505CONFIG_DECOMPRESS_GZIP=y
1474CONFIG_HAS_IOMEM=y 1506CONFIG_HAS_IOMEM=y
1475CONFIG_HAS_IOPORT=y 1507CONFIG_HAS_IOPORT=y
1476CONFIG_HAS_DMA=y 1508CONFIG_HAS_DMA=y
1477CONFIG_HAVE_LMB=y 1509CONFIG_HAVE_LMB=y
1510CONFIG_NLATTR=y
1478 1511
1479# 1512#
1480# Kernel hacking 1513# Kernel hacking
@@ -1494,13 +1527,25 @@ CONFIG_MAGIC_SYSRQ=y
1494# CONFIG_LATENCYTOP is not set 1527# CONFIG_LATENCYTOP is not set
1495CONFIG_SYSCTL_SYSCALL_CHECK=y 1528CONFIG_SYSCTL_SYSCALL_CHECK=y
1496CONFIG_HAVE_FUNCTION_TRACER=y 1529CONFIG_HAVE_FUNCTION_TRACER=y
1530CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1497CONFIG_HAVE_DYNAMIC_FTRACE=y 1531CONFIG_HAVE_DYNAMIC_FTRACE=y
1498CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1532CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1533CONFIG_TRACING_SUPPORT=y
1499 1534
1500# 1535#
1501# Tracers 1536# Tracers
1502# 1537#
1503# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1538# CONFIG_FUNCTION_TRACER is not set
1539# CONFIG_PREEMPT_TRACER is not set
1540# CONFIG_SCHED_TRACER is not set
1541# CONFIG_CONTEXT_SWITCH_TRACER is not set
1542# CONFIG_EVENT_TRACER is not set
1543# CONFIG_BOOT_TRACER is not set
1544# CONFIG_TRACE_BRANCH_PROFILING is not set
1545# CONFIG_STACK_TRACER is not set
1546# CONFIG_KMEMTRACE is not set
1547# CONFIG_WORKQUEUE_TRACER is not set
1548# CONFIG_BLK_DEV_IO_TRACE is not set
1504# CONFIG_SAMPLES is not set 1549# CONFIG_SAMPLES is not set
1505CONFIG_HAVE_ARCH_KGDB=y 1550CONFIG_HAVE_ARCH_KGDB=y
1506CONFIG_PRINT_STACK_DEPTH=64 1551CONFIG_PRINT_STACK_DEPTH=64
@@ -1530,10 +1575,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1530CONFIG_CRYPTO_HASH=y 1575CONFIG_CRYPTO_HASH=y
1531CONFIG_CRYPTO_HASH2=y 1576CONFIG_CRYPTO_HASH2=y
1532CONFIG_CRYPTO_RNG2=y 1577CONFIG_CRYPTO_RNG2=y
1578CONFIG_CRYPTO_PCOMP=y
1533CONFIG_CRYPTO_MANAGER=y 1579CONFIG_CRYPTO_MANAGER=y
1534CONFIG_CRYPTO_MANAGER2=y 1580CONFIG_CRYPTO_MANAGER2=y
1535# CONFIG_CRYPTO_GF128MUL is not set 1581# CONFIG_CRYPTO_GF128MUL is not set
1536# CONFIG_CRYPTO_NULL is not set 1582# CONFIG_CRYPTO_NULL is not set
1583CONFIG_CRYPTO_WORKQUEUE=y
1537# CONFIG_CRYPTO_CRYPTD is not set 1584# CONFIG_CRYPTO_CRYPTD is not set
1538CONFIG_CRYPTO_AUTHENC=m 1585CONFIG_CRYPTO_AUTHENC=m
1539# CONFIG_CRYPTO_TEST is not set 1586# CONFIG_CRYPTO_TEST is not set
@@ -1602,6 +1649,7 @@ CONFIG_CRYPTO_DES=y
1602# Compression 1649# Compression
1603# 1650#
1604CONFIG_CRYPTO_DEFLATE=m 1651CONFIG_CRYPTO_DEFLATE=m
1652# CONFIG_CRYPTO_ZLIB is not set
1605# CONFIG_CRYPTO_LZO is not set 1653# CONFIG_CRYPTO_LZO is not set
1606 1654
1607# 1655#
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 1ab5abae00a2..c6a7fc82b69a 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:26 2009 4# Wed May 13 17:22:30 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -58,6 +59,7 @@ CONFIG_GENERIC_BUG=y
58CONFIG_DEFAULT_UIMAGE=y 59CONFIG_DEFAULT_UIMAGE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -72,10 +74,20 @@ CONFIG_SWAP=y
72CONFIG_SYSVIPC=y 74CONFIG_SYSVIPC=y
73CONFIG_SYSVIPC_SYSCTL=y 75CONFIG_SYSVIPC_SYSCTL=y
74CONFIG_POSIX_MQUEUE=y 76CONFIG_POSIX_MQUEUE=y
77CONFIG_POSIX_MQUEUE_SYSCTL=y
75CONFIG_BSD_PROCESS_ACCT=y 78CONFIG_BSD_PROCESS_ACCT=y
76CONFIG_BSD_PROCESS_ACCT_V3=y 79CONFIG_BSD_PROCESS_ACCT_V3=y
77# CONFIG_TASKSTATS is not set 80# CONFIG_TASKSTATS is not set
78# CONFIG_AUDIT is not set 81# CONFIG_AUDIT is not set
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79CONFIG_IKCONFIG=y 91CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 92CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
@@ -91,21 +103,24 @@ CONFIG_RELAY=y
91# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
92CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
96CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 119CONFIG_PRINTK=y
103CONFIG_BUG=y 120CONFIG_BUG=y
104CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 123CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 124CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -114,10 +129,12 @@ CONFIG_SHMEM=y
114CONFIG_AIO=y 129CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
132CONFIG_COMPAT_BRK=y
117CONFIG_SLAB=y 133CONFIG_SLAB=y
118# CONFIG_SLUB is not set 134# CONFIG_SLUB is not set
119# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -126,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -139,7 +157,6 @@ CONFIG_MODULE_UNLOAD=y
139CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
140CONFIG_BLOCK=y 158CONFIG_BLOCK=y
141# CONFIG_LBD is not set 159# CONFIG_LBD is not set
142# CONFIG_BLK_DEV_IO_TRACE is not set
143# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
145 162
@@ -155,18 +172,11 @@ CONFIG_IOSCHED_CFQ=y
155CONFIG_DEFAULT_CFQ=y 172CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 173# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 174CONFIG_DEFAULT_IOSCHED="cfq"
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
163# CONFIG_FREEZER is not set 175# CONFIG_FREEZER is not set
164 176
165# 177#
166# Platform support 178# Platform support
167# 179#
168CONFIG_PPC_MULTIPLATFORM=y
169CONFIG_CLASSIC32=y
170# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
171# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -181,8 +191,11 @@ CONFIG_PPC_86xx=y
181# CONFIG_MPC8641_HPCN is not set 191# CONFIG_MPC8641_HPCN is not set
182# CONFIG_SBC8641D is not set 192# CONFIG_SBC8641D is not set
183# CONFIG_MPC8610_HPCD is not set 193# CONFIG_MPC8610_HPCD is not set
194# CONFIG_GEF_PPC9A is not set
195# CONFIG_GEF_SBC310 is not set
184CONFIG_GEF_SBC610=y 196CONFIG_GEF_SBC610=y
185CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
186# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
187CONFIG_MPIC=y 200CONFIG_MPIC=y
188# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -244,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
244CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
245CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
246CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
247CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
248# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
249# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
250CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
251# CONFIG_PROC_DEVICETREE is not set 267# CONFIG_PROC_DEVICETREE is not set
252# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -275,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
275# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
276CONFIG_PCI_DEBUG=y 292CONFIG_PCI_DEBUG=y
277# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
278# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
279# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
280CONFIG_HAS_RAPIDIO=y 297CONFIG_HAS_RAPIDIO=y
@@ -298,7 +315,6 @@ CONFIG_NET=y
298# 315#
299# Networking options 316# Networking options
300# 317#
301CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 318CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 319CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 320CONFIG_UNIX=y
@@ -378,9 +394,11 @@ CONFIG_BRIDGE_NETFILTER=y
378# CONFIG_NETFILTER_NETLINK_QUEUE is not set 394# CONFIG_NETFILTER_NETLINK_QUEUE is not set
379# CONFIG_NETFILTER_NETLINK_LOG is not set 395# CONFIG_NETFILTER_NETLINK_LOG is not set
380# CONFIG_NF_CONNTRACK is not set 396# CONFIG_NF_CONNTRACK is not set
397# CONFIG_NETFILTER_TPROXY is not set
381CONFIG_NETFILTER_XTABLES=m 398CONFIG_NETFILTER_XTABLES=m
382# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 399# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
383# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 400# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
401# CONFIG_NETFILTER_XT_TARGET_HL is not set
384# CONFIG_NETFILTER_XT_TARGET_MARK is not set 402# CONFIG_NETFILTER_XT_TARGET_MARK is not set
385# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 403# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
386# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 404# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -393,6 +411,7 @@ CONFIG_NETFILTER_XTABLES=m
393# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 411# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
394# CONFIG_NETFILTER_XT_MATCH_ESP is not set 412# CONFIG_NETFILTER_XT_MATCH_ESP is not set
395# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 413# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
414CONFIG_NETFILTER_XT_MATCH_HL=m
396# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 415# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
397# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 416# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
398# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 417# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -451,11 +470,11 @@ CONFIG_IP6_NF_MATCH_HL=m
451CONFIG_IP6_NF_MATCH_IPV6HEADER=m 470CONFIG_IP6_NF_MATCH_IPV6HEADER=m
452# CONFIG_IP6_NF_MATCH_MH is not set 471# CONFIG_IP6_NF_MATCH_MH is not set
453CONFIG_IP6_NF_MATCH_RT=m 472CONFIG_IP6_NF_MATCH_RT=m
473# CONFIG_IP6_NF_TARGET_HL is not set
454CONFIG_IP6_NF_TARGET_LOG=m 474CONFIG_IP6_NF_TARGET_LOG=m
455CONFIG_IP6_NF_FILTER=m 475CONFIG_IP6_NF_FILTER=m
456# CONFIG_IP6_NF_TARGET_REJECT is not set 476# CONFIG_IP6_NF_TARGET_REJECT is not set
457CONFIG_IP6_NF_MANGLE=m 477CONFIG_IP6_NF_MANGLE=m
458# CONFIG_IP6_NF_TARGET_HL is not set
459CONFIG_IP6_NF_RAW=m 478CONFIG_IP6_NF_RAW=m
460# CONFIG_IP6_NF_SECURITY is not set 479# CONFIG_IP6_NF_SECURITY is not set
461# CONFIG_BRIDGE_NF_EBTABLES is not set 480# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -490,6 +509,7 @@ CONFIG_LLC=m
490# CONFIG_LAPB is not set 509# CONFIG_LAPB is not set
491# CONFIG_ECONET is not set 510# CONFIG_ECONET is not set
492CONFIG_WAN_ROUTER=m 511CONFIG_WAN_ROUTER=m
512# CONFIG_PHONET is not set
493CONFIG_NET_SCHED=y 513CONFIG_NET_SCHED=y
494 514
495# 515#
@@ -540,7 +560,6 @@ CONFIG_NET_PKTGEN=m
540# CONFIG_IRDA is not set 560# CONFIG_IRDA is not set
541# CONFIG_BT is not set 561# CONFIG_BT is not set
542# CONFIG_AF_RXRPC is not set 562# CONFIG_AF_RXRPC is not set
543# CONFIG_PHONET is not set
544CONFIG_FIB_RULES=y 563CONFIG_FIB_RULES=y
545CONFIG_WIRELESS=y 564CONFIG_WIRELESS=y
546# CONFIG_CFG80211 is not set 565# CONFIG_CFG80211 is not set
@@ -651,7 +670,6 @@ CONFIG_MTD_PHYSMAP_OF=y
651# LPDDR flash memory drivers 670# LPDDR flash memory drivers
652# 671#
653# CONFIG_MTD_LPDDR is not set 672# CONFIG_MTD_LPDDR is not set
654# CONFIG_MTD_QINFO_PROBE is not set
655 673
656# 674#
657# UBI - Unsorted block images 675# UBI - Unsorted block images
@@ -682,13 +700,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
682# CONFIG_BLK_DEV_HD is not set 700# CONFIG_BLK_DEV_HD is not set
683CONFIG_MISC_DEVICES=y 701CONFIG_MISC_DEVICES=y
684# CONFIG_PHANTOM is not set 702# CONFIG_PHANTOM is not set
685# CONFIG_EEPROM_93CX6 is not set
686# CONFIG_SGI_IOC4 is not set 703# CONFIG_SGI_IOC4 is not set
687# CONFIG_TIFM_CORE is not set 704# CONFIG_TIFM_CORE is not set
688# CONFIG_ICS932S401 is not set 705# CONFIG_ICS932S401 is not set
689# CONFIG_ENCLOSURE_SERVICES is not set 706# CONFIG_ENCLOSURE_SERVICES is not set
690# CONFIG_HP_ILO is not set 707# CONFIG_HP_ILO is not set
708# CONFIG_ISL29003 is not set
691# CONFIG_C2PORT is not set 709# CONFIG_C2PORT is not set
710
711#
712# EEPROM support
713#
714# CONFIG_EEPROM_AT24 is not set
715# CONFIG_EEPROM_LEGACY is not set
716# CONFIG_EEPROM_93CX6 is not set
692CONFIG_HAVE_IDE=y 717CONFIG_HAVE_IDE=y
693# CONFIG_IDE is not set 718# CONFIG_IDE is not set
694 719
@@ -746,9 +771,11 @@ CONFIG_SCSI_LOWLEVEL=y
746# CONFIG_MEGARAID_NEWGEN is not set 771# CONFIG_MEGARAID_NEWGEN is not set
747# CONFIG_MEGARAID_LEGACY is not set 772# CONFIG_MEGARAID_LEGACY is not set
748# CONFIG_MEGARAID_SAS is not set 773# CONFIG_MEGARAID_SAS is not set
774# CONFIG_SCSI_MPT2SAS is not set
749# CONFIG_SCSI_HPTIOP is not set 775# CONFIG_SCSI_HPTIOP is not set
750# CONFIG_SCSI_BUSLOGIC is not set 776# CONFIG_SCSI_BUSLOGIC is not set
751# CONFIG_LIBFC is not set 777# CONFIG_LIBFC is not set
778# CONFIG_LIBFCOE is not set
752# CONFIG_FCOE is not set 779# CONFIG_FCOE is not set
753# CONFIG_SCSI_DMX3191D is not set 780# CONFIG_SCSI_DMX3191D is not set
754# CONFIG_SCSI_EATA is not set 781# CONFIG_SCSI_EATA is not set
@@ -771,6 +798,7 @@ CONFIG_SCSI_LOWLEVEL=y
771# CONFIG_SCSI_DEBUG is not set 798# CONFIG_SCSI_DEBUG is not set
772# CONFIG_SCSI_SRP is not set 799# CONFIG_SCSI_SRP is not set
773# CONFIG_SCSI_DH is not set 800# CONFIG_SCSI_DH is not set
801# CONFIG_SCSI_OSD_INITIATOR is not set
774CONFIG_ATA=y 802CONFIG_ATA=y
775# CONFIG_ATA_NONSTANDARD is not set 803# CONFIG_ATA_NONSTANDARD is not set
776CONFIG_SATA_PMP=y 804CONFIG_SATA_PMP=y
@@ -847,6 +875,7 @@ CONFIG_SATA_SIL=y
847# CONFIG_I2O is not set 875# CONFIG_I2O is not set
848# CONFIG_MACINTOSH_DRIVERS is not set 876# CONFIG_MACINTOSH_DRIVERS is not set
849CONFIG_NETDEVICES=y 877CONFIG_NETDEVICES=y
878CONFIG_COMPAT_NET_DEV_OPS=y
850CONFIG_DUMMY=m 879CONFIG_DUMMY=m
851CONFIG_BONDING=m 880CONFIG_BONDING=m
852# CONFIG_MACVLAN is not set 881# CONFIG_MACVLAN is not set
@@ -880,6 +909,8 @@ CONFIG_MII=y
880# CONFIG_SUNGEM is not set 909# CONFIG_SUNGEM is not set
881# CONFIG_CASSINI is not set 910# CONFIG_CASSINI is not set
882# CONFIG_NET_VENDOR_3COM is not set 911# CONFIG_NET_VENDOR_3COM is not set
912# CONFIG_ETHOC is not set
913# CONFIG_DNET is not set
883# CONFIG_NET_TULIP is not set 914# CONFIG_NET_TULIP is not set
884# CONFIG_HP100 is not set 915# CONFIG_HP100 is not set
885# CONFIG_IBM_NEW_EMAC_ZMII is not set 916# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -899,6 +930,7 @@ CONFIG_NETDEV_1000=y
899# CONFIG_E1000E is not set 930# CONFIG_E1000E is not set
900# CONFIG_IP1000 is not set 931# CONFIG_IP1000 is not set
901# CONFIG_IGB is not set 932# CONFIG_IGB is not set
933# CONFIG_IGBVF is not set
902# CONFIG_NS83820 is not set 934# CONFIG_NS83820 is not set
903# CONFIG_HAMACHI is not set 935# CONFIG_HAMACHI is not set
904# CONFIG_YELLOWFIN is not set 936# CONFIG_YELLOWFIN is not set
@@ -909,11 +941,12 @@ CONFIG_NETDEV_1000=y
909# CONFIG_VIA_VELOCITY is not set 941# CONFIG_VIA_VELOCITY is not set
910# CONFIG_TIGON3 is not set 942# CONFIG_TIGON3 is not set
911# CONFIG_BNX2 is not set 943# CONFIG_BNX2 is not set
944CONFIG_FSL_PQ_MDIO=y
912CONFIG_GIANFAR=y 945CONFIG_GIANFAR=y
913# CONFIG_MV643XX_ETH is not set
914# CONFIG_QLA3XXX is not set 946# CONFIG_QLA3XXX is not set
915# CONFIG_ATL1 is not set 947# CONFIG_ATL1 is not set
916# CONFIG_ATL1E is not set 948# CONFIG_ATL1E is not set
949# CONFIG_ATL1C is not set
917# CONFIG_JME is not set 950# CONFIG_JME is not set
918# CONFIG_NETDEV_10000 is not set 951# CONFIG_NETDEV_10000 is not set
919# CONFIG_TR is not set 952# CONFIG_TR is not set
@@ -923,7 +956,6 @@ CONFIG_GIANFAR=y
923# 956#
924# CONFIG_WLAN_PRE80211 is not set 957# CONFIG_WLAN_PRE80211 is not set
925# CONFIG_WLAN_80211 is not set 958# CONFIG_WLAN_80211 is not set
926# CONFIG_IWLWIFI_LEDS is not set
927 959
928# 960#
929# Enable WiMAX (Networking options) to see the WiMAX drivers 961# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1050,6 +1082,7 @@ CONFIG_UNIX98_PTYS=y
1050# CONFIG_HVC_UDBG is not set 1082# CONFIG_HVC_UDBG is not set
1051# CONFIG_IPMI_HANDLER is not set 1083# CONFIG_IPMI_HANDLER is not set
1052CONFIG_HW_RANDOM=y 1084CONFIG_HW_RANDOM=y
1085# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1053# CONFIG_NVRAM is not set 1086# CONFIG_NVRAM is not set
1054# CONFIG_R3964 is not set 1087# CONFIG_R3964 is not set
1055# CONFIG_APPLICOM is not set 1088# CONFIG_APPLICOM is not set
@@ -1113,12 +1146,9 @@ CONFIG_I2C_MPC=y
1113# Miscellaneous I2C Chip support 1146# Miscellaneous I2C Chip support
1114# 1147#
1115CONFIG_DS1682=y 1148CONFIG_DS1682=y
1116# CONFIG_EEPROM_AT24 is not set
1117# CONFIG_EEPROM_LEGACY is not set
1118# CONFIG_SENSORS_PCF8574 is not set 1149# CONFIG_SENSORS_PCF8574 is not set
1119# CONFIG_PCF8575 is not set 1150# CONFIG_PCF8575 is not set
1120# CONFIG_SENSORS_PCA9539 is not set 1151# CONFIG_SENSORS_PCA9539 is not set
1121# CONFIG_SENSORS_PCF8591 is not set
1122# CONFIG_SENSORS_MAX6875 is not set 1152# CONFIG_SENSORS_MAX6875 is not set
1123# CONFIG_SENSORS_TSL2550 is not set 1153# CONFIG_SENSORS_TSL2550 is not set
1124# CONFIG_I2C_DEBUG_CORE is not set 1154# CONFIG_I2C_DEBUG_CORE is not set
@@ -1174,6 +1204,7 @@ CONFIG_HWMON=y
1174# CONFIG_SENSORS_F71805F is not set 1204# CONFIG_SENSORS_F71805F is not set
1175# CONFIG_SENSORS_F71882FG is not set 1205# CONFIG_SENSORS_F71882FG is not set
1176# CONFIG_SENSORS_F75375S is not set 1206# CONFIG_SENSORS_F75375S is not set
1207# CONFIG_SENSORS_G760A is not set
1177# CONFIG_SENSORS_GL518SM is not set 1208# CONFIG_SENSORS_GL518SM is not set
1178# CONFIG_SENSORS_GL520SM is not set 1209# CONFIG_SENSORS_GL520SM is not set
1179# CONFIG_SENSORS_IT87 is not set 1210# CONFIG_SENSORS_IT87 is not set
@@ -1188,11 +1219,15 @@ CONFIG_HWMON=y
1188CONFIG_SENSORS_LM90=y 1219CONFIG_SENSORS_LM90=y
1189CONFIG_SENSORS_LM92=y 1220CONFIG_SENSORS_LM92=y
1190# CONFIG_SENSORS_LM93 is not set 1221# CONFIG_SENSORS_LM93 is not set
1222# CONFIG_SENSORS_LTC4215 is not set
1191# CONFIG_SENSORS_LTC4245 is not set 1223# CONFIG_SENSORS_LTC4245 is not set
1224# CONFIG_SENSORS_LM95241 is not set
1192# CONFIG_SENSORS_MAX1619 is not set 1225# CONFIG_SENSORS_MAX1619 is not set
1193# CONFIG_SENSORS_MAX6650 is not set 1226# CONFIG_SENSORS_MAX6650 is not set
1194# CONFIG_SENSORS_PC87360 is not set 1227# CONFIG_SENSORS_PC87360 is not set
1195# CONFIG_SENSORS_PC87427 is not set 1228# CONFIG_SENSORS_PC87427 is not set
1229# CONFIG_SENSORS_PCF8591 is not set
1230# CONFIG_SENSORS_SHT15 is not set
1196# CONFIG_SENSORS_SIS5595 is not set 1231# CONFIG_SENSORS_SIS5595 is not set
1197# CONFIG_SENSORS_DME1737 is not set 1232# CONFIG_SENSORS_DME1737 is not set
1198# CONFIG_SENSORS_SMSC47M1 is not set 1233# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1311,15 +1346,17 @@ CONFIG_USB_HID=y
1311# 1346#
1312# Special HID drivers 1347# Special HID drivers
1313# 1348#
1314CONFIG_HID_COMPAT=y
1315CONFIG_HID_A4TECH=y 1349CONFIG_HID_A4TECH=y
1316CONFIG_HID_APPLE=y 1350CONFIG_HID_APPLE=y
1317CONFIG_HID_BELKIN=y 1351CONFIG_HID_BELKIN=y
1318CONFIG_HID_CHERRY=y 1352CONFIG_HID_CHERRY=y
1319CONFIG_HID_CHICONY=y 1353CONFIG_HID_CHICONY=y
1320CONFIG_HID_CYPRESS=y 1354CONFIG_HID_CYPRESS=y
1355# CONFIG_DRAGONRISE_FF is not set
1321CONFIG_HID_EZKEY=y 1356CONFIG_HID_EZKEY=y
1357# CONFIG_HID_KYE is not set
1322CONFIG_HID_GYRATION=y 1358CONFIG_HID_GYRATION=y
1359# CONFIG_HID_KENSINGTON is not set
1323CONFIG_HID_LOGITECH=y 1360CONFIG_HID_LOGITECH=y
1324# CONFIG_LOGITECH_FF is not set 1361# CONFIG_LOGITECH_FF is not set
1325# CONFIG_LOGIRUMBLEPAD2_FF is not set 1362# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1389,11 +1426,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1389# CONFIG_USB_TMC is not set 1426# CONFIG_USB_TMC is not set
1390 1427
1391# 1428#
1392# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1429# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1393# 1430#
1394 1431
1395# 1432#
1396# see USB_STORAGE Help for more information 1433# also be needed; see USB_STORAGE Help for more info
1397# 1434#
1398CONFIG_USB_STORAGE=y 1435CONFIG_USB_STORAGE=y
1399# CONFIG_USB_STORAGE_DEBUG is not set 1436# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1435,7 +1472,6 @@ CONFIG_USB_STORAGE=y
1435# CONFIG_USB_LED is not set 1472# CONFIG_USB_LED is not set
1436# CONFIG_USB_CYPRESS_CY7C63 is not set 1473# CONFIG_USB_CYPRESS_CY7C63 is not set
1437# CONFIG_USB_CYTHERM is not set 1474# CONFIG_USB_CYTHERM is not set
1438# CONFIG_USB_PHIDGET is not set
1439# CONFIG_USB_IDMOUSE is not set 1475# CONFIG_USB_IDMOUSE is not set
1440# CONFIG_USB_FTDI_ELAN is not set 1476# CONFIG_USB_FTDI_ELAN is not set
1441# CONFIG_USB_APPLEDISPLAY is not set 1477# CONFIG_USB_APPLEDISPLAY is not set
@@ -1452,6 +1488,7 @@ CONFIG_USB_STORAGE=y
1452# OTG and related infrastructure 1488# OTG and related infrastructure
1453# 1489#
1454# CONFIG_USB_GPIO_VBUS is not set 1490# CONFIG_USB_GPIO_VBUS is not set
1491# CONFIG_NOP_USB_XCEIV is not set
1455# CONFIG_UWB is not set 1492# CONFIG_UWB is not set
1456# CONFIG_MMC is not set 1493# CONFIG_MMC is not set
1457# CONFIG_MEMSTICK is not set 1494# CONFIG_MEMSTICK is not set
@@ -1513,8 +1550,9 @@ CONFIG_RTC_DRV_RX8581=y
1513# 1550#
1514# on-CPU RTC drivers 1551# on-CPU RTC drivers
1515# 1552#
1516# CONFIG_RTC_DRV_PPC is not set 1553# CONFIG_RTC_DRV_GENERIC is not set
1517# CONFIG_DMADEVICES is not set 1554# CONFIG_DMADEVICES is not set
1555# CONFIG_AUXDISPLAY is not set
1518# CONFIG_UIO is not set 1556# CONFIG_UIO is not set
1519# CONFIG_STAGING is not set 1557# CONFIG_STAGING is not set
1520 1558
@@ -1527,6 +1565,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1527# CONFIG_EXT2_FS_SECURITY is not set 1565# CONFIG_EXT2_FS_SECURITY is not set
1528# CONFIG_EXT2_FS_XIP is not set 1566# CONFIG_EXT2_FS_XIP is not set
1529CONFIG_EXT3_FS=y 1567CONFIG_EXT3_FS=y
1568# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1530CONFIG_EXT3_FS_XATTR=y 1569CONFIG_EXT3_FS_XATTR=y
1531CONFIG_EXT3_FS_POSIX_ACL=y 1570CONFIG_EXT3_FS_POSIX_ACL=y
1532# CONFIG_EXT3_FS_SECURITY is not set 1571# CONFIG_EXT3_FS_SECURITY is not set
@@ -1549,6 +1588,11 @@ CONFIG_INOTIFY_USER=y
1549# CONFIG_FUSE_FS is not set 1588# CONFIG_FUSE_FS is not set
1550 1589
1551# 1590#
1591# Caches
1592#
1593# CONFIG_FSCACHE is not set
1594
1595#
1552# CD-ROM/DVD Filesystems 1596# CD-ROM/DVD Filesystems
1553# 1597#
1554# CONFIG_ISO9660_FS is not set 1598# CONFIG_ISO9660_FS is not set
@@ -1595,6 +1639,7 @@ CONFIG_MISC_FILESYSTEMS=y
1595# CONFIG_ROMFS_FS is not set 1639# CONFIG_ROMFS_FS is not set
1596# CONFIG_SYSV_FS is not set 1640# CONFIG_SYSV_FS is not set
1597# CONFIG_UFS_FS is not set 1641# CONFIG_UFS_FS is not set
1642# CONFIG_NILFS2_FS is not set
1598CONFIG_NETWORK_FILESYSTEMS=y 1643CONFIG_NETWORK_FILESYSTEMS=y
1599CONFIG_NFS_FS=y 1644CONFIG_NFS_FS=y
1600CONFIG_NFS_V3=y 1645CONFIG_NFS_V3=y
@@ -1607,7 +1652,6 @@ CONFIG_LOCKD_V4=y
1607CONFIG_NFS_COMMON=y 1652CONFIG_NFS_COMMON=y
1608CONFIG_SUNRPC=y 1653CONFIG_SUNRPC=y
1609CONFIG_SUNRPC_GSS=y 1654CONFIG_SUNRPC_GSS=y
1610# CONFIG_SUNRPC_REGISTER_V4 is not set
1611CONFIG_RPCSEC_GSS_KRB5=y 1655CONFIG_RPCSEC_GSS_KRB5=y
1612# CONFIG_RPCSEC_GSS_SPKM3 is not set 1656# CONFIG_RPCSEC_GSS_SPKM3 is not set
1613# CONFIG_SMB_FS is not set 1657# CONFIG_SMB_FS is not set
@@ -1668,6 +1712,7 @@ CONFIG_NLS_KOI8_R=m
1668CONFIG_NLS_KOI8_U=m 1712CONFIG_NLS_KOI8_U=m
1669CONFIG_NLS_UTF8=m 1713CONFIG_NLS_UTF8=m
1670# CONFIG_DLM is not set 1714# CONFIG_DLM is not set
1715# CONFIG_BINARY_PRINTF is not set
1671 1716
1672# 1717#
1673# Library routines 1718# Library routines
@@ -1681,13 +1726,14 @@ CONFIG_CRC_CCITT=m
1681CONFIG_CRC32=y 1726CONFIG_CRC32=y
1682# CONFIG_CRC7 is not set 1727# CONFIG_CRC7 is not set
1683CONFIG_LIBCRC32C=m 1728CONFIG_LIBCRC32C=m
1684CONFIG_ZLIB_INFLATE=m 1729CONFIG_ZLIB_INFLATE=y
1685CONFIG_ZLIB_DEFLATE=m 1730CONFIG_ZLIB_DEFLATE=m
1686CONFIG_PLIST=y 1731CONFIG_DECOMPRESS_GZIP=y
1687CONFIG_HAS_IOMEM=y 1732CONFIG_HAS_IOMEM=y
1688CONFIG_HAS_IOPORT=y 1733CONFIG_HAS_IOPORT=y
1689CONFIG_HAS_DMA=y 1734CONFIG_HAS_DMA=y
1690CONFIG_HAVE_LMB=y 1735CONFIG_HAVE_LMB=y
1736CONFIG_NLATTR=y
1691 1737
1692# 1738#
1693# Kernel hacking 1739# Kernel hacking
@@ -1705,6 +1751,9 @@ CONFIG_DEBUG_KERNEL=y
1705CONFIG_DETECT_SOFTLOCKUP=y 1751CONFIG_DETECT_SOFTLOCKUP=y
1706# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1752# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1707CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1753CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1754CONFIG_DETECT_HUNG_TASK=y
1755# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1756CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1708CONFIG_SCHED_DEBUG=y 1757CONFIG_SCHED_DEBUG=y
1709# CONFIG_SCHEDSTATS is not set 1758# CONFIG_SCHEDSTATS is not set
1710# CONFIG_TIMER_STATS is not set 1759# CONFIG_TIMER_STATS is not set
@@ -1733,9 +1782,12 @@ CONFIG_DEBUG_INFO=y
1733# CONFIG_FAULT_INJECTION is not set 1782# CONFIG_FAULT_INJECTION is not set
1734# CONFIG_LATENCYTOP is not set 1783# CONFIG_LATENCYTOP is not set
1735CONFIG_SYSCTL_SYSCALL_CHECK=y 1784CONFIG_SYSCTL_SYSCALL_CHECK=y
1785# CONFIG_DEBUG_PAGEALLOC is not set
1736CONFIG_HAVE_FUNCTION_TRACER=y 1786CONFIG_HAVE_FUNCTION_TRACER=y
1787CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1737CONFIG_HAVE_DYNAMIC_FTRACE=y 1788CONFIG_HAVE_DYNAMIC_FTRACE=y
1738CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1789CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1790CONFIG_TRACING_SUPPORT=y
1739 1791
1740# 1792#
1741# Tracers 1793# Tracers
@@ -1744,17 +1796,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1744# CONFIG_PREEMPT_TRACER is not set 1796# CONFIG_PREEMPT_TRACER is not set
1745# CONFIG_SCHED_TRACER is not set 1797# CONFIG_SCHED_TRACER is not set
1746# CONFIG_CONTEXT_SWITCH_TRACER is not set 1798# CONFIG_CONTEXT_SWITCH_TRACER is not set
1799# CONFIG_EVENT_TRACER is not set
1747# CONFIG_BOOT_TRACER is not set 1800# CONFIG_BOOT_TRACER is not set
1748# CONFIG_TRACE_BRANCH_PROFILING is not set 1801# CONFIG_TRACE_BRANCH_PROFILING is not set
1749# CONFIG_STACK_TRACER is not set 1802# CONFIG_STACK_TRACER is not set
1750# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1803# CONFIG_KMEMTRACE is not set
1804# CONFIG_WORKQUEUE_TRACER is not set
1805# CONFIG_BLK_DEV_IO_TRACE is not set
1751# CONFIG_SAMPLES is not set 1806# CONFIG_SAMPLES is not set
1752CONFIG_HAVE_ARCH_KGDB=y 1807CONFIG_HAVE_ARCH_KGDB=y
1753# CONFIG_KGDB is not set 1808# CONFIG_KGDB is not set
1754CONFIG_PRINT_STACK_DEPTH=64 1809CONFIG_PRINT_STACK_DEPTH=64
1755# CONFIG_DEBUG_STACKOVERFLOW is not set 1810# CONFIG_DEBUG_STACKOVERFLOW is not set
1756# CONFIG_DEBUG_STACK_USAGE is not set 1811# CONFIG_DEBUG_STACK_USAGE is not set
1757# CONFIG_DEBUG_PAGEALLOC is not set
1758# CONFIG_CODE_PATCHING_SELFTEST is not set 1812# CONFIG_CODE_PATCHING_SELFTEST is not set
1759# CONFIG_FTR_FIXUP_SELFTEST is not set 1813# CONFIG_FTR_FIXUP_SELFTEST is not set
1760# CONFIG_MSI_BITMAP_SELFTEST is not set 1814# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1776,6 +1830,7 @@ CONFIG_SECURITY_NETWORK=y
1776# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1830# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1777# CONFIG_SECURITY_ROOTPLUG is not set 1831# CONFIG_SECURITY_ROOTPLUG is not set
1778CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1832CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1833# CONFIG_SECURITY_TOMOYO is not set
1779CONFIG_CRYPTO=y 1834CONFIG_CRYPTO=y
1780 1835
1781# 1836#
@@ -1791,10 +1846,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1791CONFIG_CRYPTO_HASH=y 1846CONFIG_CRYPTO_HASH=y
1792CONFIG_CRYPTO_HASH2=y 1847CONFIG_CRYPTO_HASH2=y
1793CONFIG_CRYPTO_RNG2=y 1848CONFIG_CRYPTO_RNG2=y
1849CONFIG_CRYPTO_PCOMP=y
1794CONFIG_CRYPTO_MANAGER=y 1850CONFIG_CRYPTO_MANAGER=y
1795CONFIG_CRYPTO_MANAGER2=y 1851CONFIG_CRYPTO_MANAGER2=y
1796# CONFIG_CRYPTO_GF128MUL is not set 1852# CONFIG_CRYPTO_GF128MUL is not set
1797CONFIG_CRYPTO_NULL=m 1853CONFIG_CRYPTO_NULL=m
1854CONFIG_CRYPTO_WORKQUEUE=y
1798# CONFIG_CRYPTO_CRYPTD is not set 1855# CONFIG_CRYPTO_CRYPTD is not set
1799CONFIG_CRYPTO_AUTHENC=m 1856CONFIG_CRYPTO_AUTHENC=m
1800CONFIG_CRYPTO_TEST=m 1857CONFIG_CRYPTO_TEST=m
@@ -1864,6 +1921,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1864# Compression 1921# Compression
1865# 1922#
1866CONFIG_CRYPTO_DEFLATE=m 1923CONFIG_CRYPTO_DEFLATE=m
1924# CONFIG_CRYPTO_ZLIB is not set
1867# CONFIG_CRYPTO_LZO is not set 1925# CONFIG_CRYPTO_LZO is not set
1868 1926
1869# 1927#
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index bbdf4bfc4327..cfd2efcc6bce 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:24 2009 4# Wed May 13 17:22:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -72,6 +74,15 @@ CONFIG_SYSVIPC_SYSCTL=y
72# CONFIG_BSD_PROCESS_ACCT is not set 74# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set 75# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
77
78#
79# RCU Subsystem
80#
81CONFIG_CLASSIC_RCU=y
82# CONFIG_TREE_RCU is not set
83# CONFIG_PREEMPT_RCU is not set
84# CONFIG_TREE_RCU_TRACE is not set
85# CONFIG_PREEMPT_RCU_TRACE is not set
75CONFIG_IKCONFIG=y 86CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 87CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 88CONFIG_LOG_BUF_SHIFT=14
@@ -87,21 +98,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_NAMESPACES is not set 98# CONFIG_NAMESPACES is not set
88CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
101CONFIG_RD_GZIP=y
102# CONFIG_RD_BZIP2 is not set
103# CONFIG_RD_LZMA is not set
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 104# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y 105CONFIG_SYSCTL=y
106CONFIG_ANON_INODES=y
92CONFIG_EMBEDDED=y 107CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
94CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 110# CONFIG_KALLSYMS_ALL is not set
96CONFIG_KALLSYMS_EXTRA_PASS=y 111CONFIG_KALLSYMS_EXTRA_PASS=y
112# CONFIG_STRIP_ASM_SYMS is not set
97CONFIG_HOTPLUG=y 113CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y 114CONFIG_PRINTK=y
99CONFIG_BUG=y 115CONFIG_BUG=y
100# CONFIG_ELF_CORE is not set 116# CONFIG_ELF_CORE is not set
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y 117CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 118CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105CONFIG_EPOLL=y 119CONFIG_EPOLL=y
106CONFIG_SIGNALFD=y 120CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y 121CONFIG_TIMERFD=y
@@ -111,10 +125,12 @@ CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 125CONFIG_VM_EVENT_COUNTERS=y
112CONFIG_PCI_QUIRKS=y 126CONFIG_PCI_QUIRKS=y
113CONFIG_SLUB_DEBUG=y 127CONFIG_SLUB_DEBUG=y
128CONFIG_COMPAT_BRK=y
114# CONFIG_SLAB is not set 129# CONFIG_SLAB is not set
115CONFIG_SLUB=y 130CONFIG_SLUB=y
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 135# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,6 +138,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -134,7 +151,6 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 151# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_BLOCK=y 152CONFIG_BLOCK=y
136# CONFIG_LBD is not set 153# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_BLK_DEV_BSG is not set 154# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 155# CONFIG_BLK_DEV_INTEGRITY is not set
140 156
@@ -150,18 +166,11 @@ CONFIG_DEFAULT_DEADLINE=y
150# CONFIG_DEFAULT_CFQ is not set 166# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 167# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="deadline" 168CONFIG_DEFAULT_IOSCHED="deadline"
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 169# CONFIG_FREEZER is not set
159 170
160# 171#
161# Platform support 172# Platform support
162# 173#
163CONFIG_PPC_MULTIPLATFORM=y
164CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 174# CONFIG_PPC_CHRP is not set
166# CONFIG_MPC5121_ADS is not set 175# CONFIG_MPC5121_ADS is not set
167# CONFIG_MPC5121_GENERIC is not set 176# CONFIG_MPC5121_GENERIC is not set
@@ -176,9 +185,13 @@ CONFIG_PPC_86xx=y
176# CONFIG_MPC8641_HPCN is not set 185# CONFIG_MPC8641_HPCN is not set
177# CONFIG_SBC8641D is not set 186# CONFIG_SBC8641D is not set
178CONFIG_MPC8610_HPCD=y 187CONFIG_MPC8610_HPCD=y
188# CONFIG_GEF_PPC9A is not set
189# CONFIG_GEF_SBC310 is not set
179# CONFIG_GEF_SBC610 is not set 190# CONFIG_GEF_SBC610 is not set
180CONFIG_MPC8610=y 191CONFIG_MPC8610=y
181# CONFIG_EMBEDDED6xx is not set 192# CONFIG_EMBEDDED6xx is not set
193# CONFIG_AMIGAONE is not set
194CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
182# CONFIG_IPIC is not set 195# CONFIG_IPIC is not set
183CONFIG_MPIC=y 196CONFIG_MPIC=y
184# CONFIG_MPIC_WEIRD is not set 197# CONFIG_MPIC_WEIRD is not set
@@ -238,9 +251,12 @@ CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y 251CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y 252CONFIG_VIRT_TO_BUS=y
240CONFIG_UNEVICTABLE_LRU=y 253CONFIG_UNEVICTABLE_LRU=y
254CONFIG_HAVE_MLOCK=y
255CONFIG_HAVE_MLOCKED_PAGE_BIT=y
241CONFIG_PPC_4K_PAGES=y 256CONFIG_PPC_4K_PAGES=y
242# CONFIG_PPC_16K_PAGES is not set 257# CONFIG_PPC_16K_PAGES is not set
243# CONFIG_PPC_64K_PAGES is not set 258# CONFIG_PPC_64K_PAGES is not set
259# CONFIG_PPC_256K_PAGES is not set
244CONFIG_FORCE_MAX_ZONEORDER=12 260CONFIG_FORCE_MAX_ZONEORDER=12
245CONFIG_PROC_DEVICETREE=y 261CONFIG_PROC_DEVICETREE=y
246# CONFIG_CMDLINE_BOOL is not set 262# CONFIG_CMDLINE_BOOL is not set
@@ -269,6 +285,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
269# CONFIG_PCI_LEGACY is not set 285# CONFIG_PCI_LEGACY is not set
270CONFIG_PCI_DEBUG=y 286CONFIG_PCI_DEBUG=y
271# CONFIG_PCI_STUB is not set 287# CONFIG_PCI_STUB is not set
288# CONFIG_PCI_IOV is not set
272# CONFIG_PCCARD is not set 289# CONFIG_PCCARD is not set
273# CONFIG_HOTPLUG_PCI is not set 290# CONFIG_HOTPLUG_PCI is not set
274# CONFIG_HAS_RAPIDIO is not set 291# CONFIG_HAS_RAPIDIO is not set
@@ -291,7 +308,6 @@ CONFIG_NET=y
291# 308#
292# Networking options 309# Networking options
293# 310#
294CONFIG_COMPAT_NET_DEV_OPS=y
295CONFIG_PACKET=y 311CONFIG_PACKET=y
296# CONFIG_PACKET_MMAP is not set 312# CONFIG_PACKET_MMAP is not set
297CONFIG_UNIX=y 313CONFIG_UNIX=y
@@ -364,6 +380,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
364# CONFIG_LAPB is not set 380# CONFIG_LAPB is not set
365# CONFIG_ECONET is not set 381# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set 382# CONFIG_WAN_ROUTER is not set
383# CONFIG_PHONET is not set
367# CONFIG_NET_SCHED is not set 384# CONFIG_NET_SCHED is not set
368# CONFIG_DCB is not set 385# CONFIG_DCB is not set
369 386
@@ -376,7 +393,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
376# CONFIG_IRDA is not set 393# CONFIG_IRDA is not set
377# CONFIG_BT is not set 394# CONFIG_BT is not set
378# CONFIG_AF_RXRPC is not set 395# CONFIG_AF_RXRPC is not set
379# CONFIG_PHONET is not set
380CONFIG_WIRELESS=y 396CONFIG_WIRELESS=y
381# CONFIG_CFG80211 is not set 397# CONFIG_CFG80211 is not set
382CONFIG_WIRELESS_OLD_REGULATORY=y 398CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -492,7 +508,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
492# LPDDR flash memory drivers 508# LPDDR flash memory drivers
493# 509#
494# CONFIG_MTD_LPDDR is not set 510# CONFIG_MTD_LPDDR is not set
495# CONFIG_MTD_QINFO_PROBE is not set
496 511
497# 512#
498# UBI - Unsorted block images 513# UBI - Unsorted block images
@@ -521,13 +536,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
521# CONFIG_BLK_DEV_HD is not set 536# CONFIG_BLK_DEV_HD is not set
522CONFIG_MISC_DEVICES=y 537CONFIG_MISC_DEVICES=y
523# CONFIG_PHANTOM is not set 538# CONFIG_PHANTOM is not set
524# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_SGI_IOC4 is not set 539# CONFIG_SGI_IOC4 is not set
526# CONFIG_TIFM_CORE is not set 540# CONFIG_TIFM_CORE is not set
527# CONFIG_ICS932S401 is not set 541# CONFIG_ICS932S401 is not set
528# CONFIG_ENCLOSURE_SERVICES is not set 542# CONFIG_ENCLOSURE_SERVICES is not set
529# CONFIG_HP_ILO is not set 543# CONFIG_HP_ILO is not set
544# CONFIG_ISL29003 is not set
530# CONFIG_C2PORT is not set 545# CONFIG_C2PORT is not set
546
547#
548# EEPROM support
549#
550# CONFIG_EEPROM_AT24 is not set
551# CONFIG_EEPROM_LEGACY is not set
552# CONFIG_EEPROM_93CX6 is not set
531CONFIG_HAVE_IDE=y 553CONFIG_HAVE_IDE=y
532CONFIG_IDE=y 554CONFIG_IDE=y
533 555
@@ -632,9 +654,11 @@ CONFIG_SCSI_LOWLEVEL=y
632# CONFIG_MEGARAID_NEWGEN is not set 654# CONFIG_MEGARAID_NEWGEN is not set
633# CONFIG_MEGARAID_LEGACY is not set 655# CONFIG_MEGARAID_LEGACY is not set
634# CONFIG_MEGARAID_SAS is not set 656# CONFIG_MEGARAID_SAS is not set
657# CONFIG_SCSI_MPT2SAS is not set
635# CONFIG_SCSI_HPTIOP is not set 658# CONFIG_SCSI_HPTIOP is not set
636# CONFIG_SCSI_BUSLOGIC is not set 659# CONFIG_SCSI_BUSLOGIC is not set
637# CONFIG_LIBFC is not set 660# CONFIG_LIBFC is not set
661# CONFIG_LIBFCOE is not set
638# CONFIG_FCOE is not set 662# CONFIG_FCOE is not set
639# CONFIG_SCSI_DMX3191D is not set 663# CONFIG_SCSI_DMX3191D is not set
640# CONFIG_SCSI_EATA is not set 664# CONFIG_SCSI_EATA is not set
@@ -657,6 +681,7 @@ CONFIG_SCSI_LOWLEVEL=y
657# CONFIG_SCSI_DEBUG is not set 681# CONFIG_SCSI_DEBUG is not set
658# CONFIG_SCSI_SRP is not set 682# CONFIG_SCSI_SRP is not set
659# CONFIG_SCSI_DH is not set 683# CONFIG_SCSI_DH is not set
684# CONFIG_SCSI_OSD_INITIATOR is not set
660CONFIG_ATA=y 685CONFIG_ATA=y
661# CONFIG_ATA_NONSTANDARD is not set 686# CONFIG_ATA_NONSTANDARD is not set
662CONFIG_SATA_PMP=y 687CONFIG_SATA_PMP=y
@@ -733,6 +758,7 @@ CONFIG_PATA_ALI=y
733# CONFIG_I2O is not set 758# CONFIG_I2O is not set
734# CONFIG_MACINTOSH_DRIVERS is not set 759# CONFIG_MACINTOSH_DRIVERS is not set
735CONFIG_NETDEVICES=y 760CONFIG_NETDEVICES=y
761CONFIG_COMPAT_NET_DEV_OPS=y
736CONFIG_DUMMY=y 762CONFIG_DUMMY=y
737# CONFIG_BONDING is not set 763# CONFIG_BONDING is not set
738# CONFIG_MACVLAN is not set 764# CONFIG_MACVLAN is not set
@@ -747,6 +773,8 @@ CONFIG_NET_ETHERNET=y
747# CONFIG_SUNGEM is not set 773# CONFIG_SUNGEM is not set
748# CONFIG_CASSINI is not set 774# CONFIG_CASSINI is not set
749# CONFIG_NET_VENDOR_3COM is not set 775# CONFIG_NET_VENDOR_3COM is not set
776# CONFIG_ETHOC is not set
777# CONFIG_DNET is not set
750CONFIG_NET_TULIP=y 778CONFIG_NET_TULIP=y
751# CONFIG_DE2104X is not set 779# CONFIG_DE2104X is not set
752# CONFIG_TULIP is not set 780# CONFIG_TULIP is not set
@@ -774,7 +802,6 @@ CONFIG_ULI526X=y
774# 802#
775# CONFIG_WLAN_PRE80211 is not set 803# CONFIG_WLAN_PRE80211 is not set
776# CONFIG_WLAN_80211 is not set 804# CONFIG_WLAN_80211 is not set
777# CONFIG_IWLWIFI_LEDS is not set
778 805
779# 806#
780# Enable WiMAX (Networking options) to see the WiMAX drivers 807# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -929,12 +956,9 @@ CONFIG_I2C_MPC=y
929# Miscellaneous I2C Chip support 956# Miscellaneous I2C Chip support
930# 957#
931# CONFIG_DS1682 is not set 958# CONFIG_DS1682 is not set
932# CONFIG_EEPROM_AT24 is not set
933# CONFIG_EEPROM_LEGACY is not set
934# CONFIG_SENSORS_PCF8574 is not set 959# CONFIG_SENSORS_PCF8574 is not set
935# CONFIG_PCF8575 is not set 960# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set 961# CONFIG_SENSORS_PCA9539 is not set
937# CONFIG_SENSORS_PCF8591 is not set
938# CONFIG_SENSORS_MAX6875 is not set 962# CONFIG_SENSORS_MAX6875 is not set
939# CONFIG_SENSORS_TSL2550 is not set 963# CONFIG_SENSORS_TSL2550 is not set
940# CONFIG_I2C_DEBUG_CORE is not set 964# CONFIG_I2C_DEBUG_CORE is not set
@@ -1049,6 +1073,7 @@ CONFIG_FB_FSL_DIU=y
1049# CONFIG_FB_VIRTUAL is not set 1073# CONFIG_FB_VIRTUAL is not set
1050# CONFIG_FB_METRONOME is not set 1074# CONFIG_FB_METRONOME is not set
1051# CONFIG_FB_MB862XX is not set 1075# CONFIG_FB_MB862XX is not set
1076# CONFIG_FB_BROADSHEET is not set
1052# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1077# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1053 1078
1054# 1079#
@@ -1069,6 +1094,7 @@ CONFIG_SOUND_OSS_CORE=y
1069CONFIG_SND=y 1094CONFIG_SND=y
1070CONFIG_SND_TIMER=y 1095CONFIG_SND_TIMER=y
1071CONFIG_SND_PCM=y 1096CONFIG_SND_PCM=y
1097CONFIG_SND_JACK=y
1072# CONFIG_SND_SEQUENCER is not set 1098# CONFIG_SND_SEQUENCER is not set
1073CONFIG_SND_OSSEMUL=y 1099CONFIG_SND_OSSEMUL=y
1074CONFIG_SND_MIXER_OSS=y 1100CONFIG_SND_MIXER_OSS=y
@@ -1116,6 +1142,8 @@ CONFIG_SND_PCI=y
1116# CONFIG_SND_INDIGO is not set 1142# CONFIG_SND_INDIGO is not set
1117# CONFIG_SND_INDIGOIO is not set 1143# CONFIG_SND_INDIGOIO is not set
1118# CONFIG_SND_INDIGODJ is not set 1144# CONFIG_SND_INDIGODJ is not set
1145# CONFIG_SND_INDIGOIOX is not set
1146# CONFIG_SND_INDIGODJX is not set
1119# CONFIG_SND_EMU10K1 is not set 1147# CONFIG_SND_EMU10K1 is not set
1120# CONFIG_SND_EMU10K1X is not set 1148# CONFIG_SND_EMU10K1X is not set
1121# CONFIG_SND_ENS1370 is not set 1149# CONFIG_SND_ENS1370 is not set
@@ -1165,7 +1193,6 @@ CONFIG_HID=y
1165# 1193#
1166# Special HID drivers 1194# Special HID drivers
1167# 1195#
1168CONFIG_HID_COMPAT=y
1169CONFIG_USB_SUPPORT=y 1196CONFIG_USB_SUPPORT=y
1170CONFIG_USB_ARCH_HAS_HCD=y 1197CONFIG_USB_ARCH_HAS_HCD=y
1171CONFIG_USB_ARCH_HAS_OHCI=y 1198CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1179,7 +1206,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1179# 1206#
1180 1207
1181# 1208#
1182# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1209# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1183# 1210#
1184# CONFIG_USB_GADGET is not set 1211# CONFIG_USB_GADGET is not set
1185 1212
@@ -1247,8 +1274,9 @@ CONFIG_RTC_DRV_CMOS=y
1247# 1274#
1248# on-CPU RTC drivers 1275# on-CPU RTC drivers
1249# 1276#
1250# CONFIG_RTC_DRV_PPC is not set 1277# CONFIG_RTC_DRV_GENERIC is not set
1251# CONFIG_DMADEVICES is not set 1278# CONFIG_DMADEVICES is not set
1279# CONFIG_AUXDISPLAY is not set
1252# CONFIG_UIO is not set 1280# CONFIG_UIO is not set
1253# CONFIG_STAGING is not set 1281# CONFIG_STAGING is not set
1254 1282
@@ -1259,6 +1287,7 @@ CONFIG_EXT2_FS=y
1259# CONFIG_EXT2_FS_XATTR is not set 1287# CONFIG_EXT2_FS_XATTR is not set
1260# CONFIG_EXT2_FS_XIP is not set 1288# CONFIG_EXT2_FS_XIP is not set
1261CONFIG_EXT3_FS=y 1289CONFIG_EXT3_FS=y
1290# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1262CONFIG_EXT3_FS_XATTR=y 1291CONFIG_EXT3_FS_XATTR=y
1263# CONFIG_EXT3_FS_POSIX_ACL is not set 1292# CONFIG_EXT3_FS_POSIX_ACL is not set
1264# CONFIG_EXT3_FS_SECURITY is not set 1293# CONFIG_EXT3_FS_SECURITY is not set
@@ -1280,6 +1309,11 @@ CONFIG_FILE_LOCKING=y
1280# CONFIG_FUSE_FS is not set 1309# CONFIG_FUSE_FS is not set
1281 1310
1282# 1311#
1312# Caches
1313#
1314# CONFIG_FSCACHE is not set
1315
1316#
1283# CD-ROM/DVD Filesystems 1317# CD-ROM/DVD Filesystems
1284# 1318#
1285# CONFIG_ISO9660_FS is not set 1319# CONFIG_ISO9660_FS is not set
@@ -1323,6 +1357,7 @@ CONFIG_MISC_FILESYSTEMS=y
1323# CONFIG_ROMFS_FS is not set 1357# CONFIG_ROMFS_FS is not set
1324# CONFIG_SYSV_FS is not set 1358# CONFIG_SYSV_FS is not set
1325# CONFIG_UFS_FS is not set 1359# CONFIG_UFS_FS is not set
1360# CONFIG_NILFS2_FS is not set
1326CONFIG_NETWORK_FILESYSTEMS=y 1361CONFIG_NETWORK_FILESYSTEMS=y
1327CONFIG_NFS_FS=y 1362CONFIG_NFS_FS=y
1328CONFIG_NFS_V3=y 1363CONFIG_NFS_V3=y
@@ -1337,7 +1372,6 @@ CONFIG_LOCKD_V4=y
1337CONFIG_EXPORTFS=y 1372CONFIG_EXPORTFS=y
1338CONFIG_NFS_COMMON=y 1373CONFIG_NFS_COMMON=y
1339CONFIG_SUNRPC=y 1374CONFIG_SUNRPC=y
1340# CONFIG_SUNRPC_REGISTER_V4 is not set
1341# CONFIG_RPCSEC_GSS_KRB5 is not set 1375# CONFIG_RPCSEC_GSS_KRB5 is not set
1342# CONFIG_RPCSEC_GSS_SPKM3 is not set 1376# CONFIG_RPCSEC_GSS_SPKM3 is not set
1343# CONFIG_SMB_FS is not set 1377# CONFIG_SMB_FS is not set
@@ -1409,6 +1443,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1409# CONFIG_NLS_KOI8_U is not set 1443# CONFIG_NLS_KOI8_U is not set
1410# CONFIG_NLS_UTF8 is not set 1444# CONFIG_NLS_UTF8 is not set
1411# CONFIG_DLM is not set 1445# CONFIG_DLM is not set
1446# CONFIG_BINARY_PRINTF is not set
1412 1447
1413# 1448#
1414# Library routines 1449# Library routines
@@ -1422,11 +1457,13 @@ CONFIG_CRC_T10DIF=y
1422CONFIG_CRC32=y 1457CONFIG_CRC32=y
1423# CONFIG_CRC7 is not set 1458# CONFIG_CRC7 is not set
1424# CONFIG_LIBCRC32C is not set 1459# CONFIG_LIBCRC32C is not set
1425CONFIG_PLIST=y 1460CONFIG_ZLIB_INFLATE=y
1461CONFIG_DECOMPRESS_GZIP=y
1426CONFIG_HAS_IOMEM=y 1462CONFIG_HAS_IOMEM=y
1427CONFIG_HAS_IOPORT=y 1463CONFIG_HAS_IOPORT=y
1428CONFIG_HAS_DMA=y 1464CONFIG_HAS_DMA=y
1429CONFIG_HAVE_LMB=y 1465CONFIG_HAVE_LMB=y
1466CONFIG_NLATTR=y
1430 1467
1431# 1468#
1432# Kernel hacking 1469# Kernel hacking
@@ -1444,6 +1481,9 @@ CONFIG_DEBUG_SHIRQ=y
1444CONFIG_DETECT_SOFTLOCKUP=y 1481CONFIG_DETECT_SOFTLOCKUP=y
1445# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1482# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1446CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1483CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1484CONFIG_DETECT_HUNG_TASK=y
1485# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1486CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1447CONFIG_SCHED_DEBUG=y 1487CONFIG_SCHED_DEBUG=y
1448# CONFIG_SCHEDSTATS is not set 1488# CONFIG_SCHEDSTATS is not set
1449# CONFIG_TIMER_STATS is not set 1489# CONFIG_TIMER_STATS is not set
@@ -1474,9 +1514,12 @@ CONFIG_DEBUG_INFO=y
1474# CONFIG_FAULT_INJECTION is not set 1514# CONFIG_FAULT_INJECTION is not set
1475# CONFIG_LATENCYTOP is not set 1515# CONFIG_LATENCYTOP is not set
1476CONFIG_SYSCTL_SYSCALL_CHECK=y 1516CONFIG_SYSCTL_SYSCALL_CHECK=y
1517# CONFIG_DEBUG_PAGEALLOC is not set
1477CONFIG_HAVE_FUNCTION_TRACER=y 1518CONFIG_HAVE_FUNCTION_TRACER=y
1519CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1478CONFIG_HAVE_DYNAMIC_FTRACE=y 1520CONFIG_HAVE_DYNAMIC_FTRACE=y
1479CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1521CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1522CONFIG_TRACING_SUPPORT=y
1480 1523
1481# 1524#
1482# Tracers 1525# Tracers
@@ -1484,17 +1527,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1484# CONFIG_FUNCTION_TRACER is not set 1527# CONFIG_FUNCTION_TRACER is not set
1485# CONFIG_SCHED_TRACER is not set 1528# CONFIG_SCHED_TRACER is not set
1486# CONFIG_CONTEXT_SWITCH_TRACER is not set 1529# CONFIG_CONTEXT_SWITCH_TRACER is not set
1530# CONFIG_EVENT_TRACER is not set
1487# CONFIG_BOOT_TRACER is not set 1531# CONFIG_BOOT_TRACER is not set
1488# CONFIG_TRACE_BRANCH_PROFILING is not set 1532# CONFIG_TRACE_BRANCH_PROFILING is not set
1489# CONFIG_STACK_TRACER is not set 1533# CONFIG_STACK_TRACER is not set
1490# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1534# CONFIG_KMEMTRACE is not set
1535# CONFIG_WORKQUEUE_TRACER is not set
1536# CONFIG_BLK_DEV_IO_TRACE is not set
1491# CONFIG_SAMPLES is not set 1537# CONFIG_SAMPLES is not set
1492CONFIG_HAVE_ARCH_KGDB=y 1538CONFIG_HAVE_ARCH_KGDB=y
1493# CONFIG_KGDB is not set 1539# CONFIG_KGDB is not set
1494CONFIG_PRINT_STACK_DEPTH=64 1540CONFIG_PRINT_STACK_DEPTH=64
1495# CONFIG_DEBUG_STACKOVERFLOW is not set 1541# CONFIG_DEBUG_STACKOVERFLOW is not set
1496# CONFIG_DEBUG_STACK_USAGE is not set 1542# CONFIG_DEBUG_STACK_USAGE is not set
1497# CONFIG_DEBUG_PAGEALLOC is not set
1498# CONFIG_CODE_PATCHING_SELFTEST is not set 1543# CONFIG_CODE_PATCHING_SELFTEST is not set
1499# CONFIG_FTR_FIXUP_SELFTEST is not set 1544# CONFIG_FTR_FIXUP_SELFTEST is not set
1500# CONFIG_MSI_BITMAP_SELFTEST is not set 1545# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1589,6 +1634,7 @@ CONFIG_CRYPTO=y
1589# Compression 1634# Compression
1590# 1635#
1591# CONFIG_CRYPTO_DEFLATE is not set 1636# CONFIG_CRYPTO_DEFLATE is not set
1637# CONFIG_CRYPTO_ZLIB is not set
1592# CONFIG_CRYPTO_LZO is not set 1638# CONFIG_CRYPTO_LZO is not set
1593 1639
1594# 1640#
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 92acfdf3540a..0bee3e303942 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:25 2009 4# Wed May 13 17:22:28 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56CONFIG_DEFAULT_UIMAGE=y 57CONFIG_DEFAULT_UIMAGE=y
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,11 +72,21 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73CONFIG_BSD_PROCESS_ACCT=y 76CONFIG_BSD_PROCESS_ACCT=y
74# CONFIG_BSD_PROCESS_ACCT_V3 is not set 77# CONFIG_BSD_PROCESS_ACCT_V3 is not set
75# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
76CONFIG_AUDIT=y 79CONFIG_AUDIT=y
77# CONFIG_AUDITSYSCALL is not set 80# CONFIG_AUDITSYSCALL is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
78CONFIG_IKCONFIG=y 90CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 91CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
@@ -90,22 +102,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
90# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 104CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 111CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 112CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 114CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_STRIP_GENERATED=y
100CONFIG_KALLSYMS_EXTRA_PASS=y 115CONFIG_KALLSYMS_EXTRA_PASS=y
116# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 117CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 118CONFIG_PRINTK=y
103CONFIG_BUG=y 119CONFIG_BUG=y
104CONFIG_ELF_CORE=y 120CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 121CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 122CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 123CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 124CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 125CONFIG_TIMERFD=y
@@ -115,10 +129,12 @@ CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 130CONFIG_PCI_QUIRKS=y
117CONFIG_SLUB_DEBUG=y 131CONFIG_SLUB_DEBUG=y
132CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 133# CONFIG_SLAB is not set
119CONFIG_SLUB=y 134CONFIG_SLUB=y
120# CONFIG_SLOB is not set 135# CONFIG_SLOB is not set
121# CONFIG_PROFILING is not set 136# CONFIG_PROFILING is not set
137# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 138CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 139# CONFIG_KPROBES is not set
124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -127,6 +143,7 @@ CONFIG_HAVE_KPROBES=y
127CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
128CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
129CONFIG_USE_GENERIC_SMP_HELPERS=y 145CONFIG_USE_GENERIC_SMP_HELPERS=y
146# CONFIG_SLOW_WORK is not set
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -140,7 +157,6 @@ CONFIG_MODVERSIONS=y
140CONFIG_STOP_MACHINE=y 157CONFIG_STOP_MACHINE=y
141CONFIG_BLOCK=y 158CONFIG_BLOCK=y
142CONFIG_LBD=y 159CONFIG_LBD=y
143# CONFIG_BLK_DEV_IO_TRACE is not set
144# CONFIG_BLK_DEV_BSG is not set 160# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set 161# CONFIG_BLK_DEV_INTEGRITY is not set
146 162
@@ -156,18 +172,11 @@ CONFIG_IOSCHED_CFQ=y
156CONFIG_DEFAULT_CFQ=y 172CONFIG_DEFAULT_CFQ=y
157# CONFIG_DEFAULT_NOOP is not set 173# CONFIG_DEFAULT_NOOP is not set
158CONFIG_DEFAULT_IOSCHED="cfq" 174CONFIG_DEFAULT_IOSCHED="cfq"
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
164# CONFIG_FREEZER is not set 175# CONFIG_FREEZER is not set
165 176
166# 177#
167# Platform support 178# Platform support
168# 179#
169CONFIG_PPC_MULTIPLATFORM=y
170CONFIG_CLASSIC32=y
171# CONFIG_PPC_CHRP is not set 180# CONFIG_PPC_CHRP is not set
172# CONFIG_MPC5121_ADS is not set 181# CONFIG_MPC5121_ADS is not set
173# CONFIG_MPC5121_GENERIC is not set 182# CONFIG_MPC5121_GENERIC is not set
@@ -182,8 +191,11 @@ CONFIG_PPC_86xx=y
182CONFIG_MPC8641_HPCN=y 191CONFIG_MPC8641_HPCN=y
183# CONFIG_SBC8641D is not set 192# CONFIG_SBC8641D is not set
184# CONFIG_MPC8610_HPCD is not set 193# CONFIG_MPC8610_HPCD is not set
194# CONFIG_GEF_PPC9A is not set
195# CONFIG_GEF_SBC310 is not set
185# CONFIG_GEF_SBC610 is not set 196# CONFIG_GEF_SBC610 is not set
186CONFIG_MPC8641=y 197CONFIG_MPC8641=y
198CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
187# CONFIG_IPIC is not set 199# CONFIG_IPIC is not set
188CONFIG_MPIC=y 200CONFIG_MPIC=y
189# CONFIG_MPIC_WEIRD is not set 201# CONFIG_MPIC_WEIRD is not set
@@ -245,9 +257,12 @@ CONFIG_ZONE_DMA_FLAG=1
245CONFIG_BOUNCE=y 257CONFIG_BOUNCE=y
246CONFIG_VIRT_TO_BUS=y 258CONFIG_VIRT_TO_BUS=y
247CONFIG_UNEVICTABLE_LRU=y 259CONFIG_UNEVICTABLE_LRU=y
260CONFIG_HAVE_MLOCK=y
261CONFIG_HAVE_MLOCKED_PAGE_BIT=y
248CONFIG_PPC_4K_PAGES=y 262CONFIG_PPC_4K_PAGES=y
249# CONFIG_PPC_16K_PAGES is not set 263# CONFIG_PPC_16K_PAGES is not set
250# CONFIG_PPC_64K_PAGES is not set 264# CONFIG_PPC_64K_PAGES is not set
265# CONFIG_PPC_256K_PAGES is not set
251CONFIG_FORCE_MAX_ZONEORDER=11 266CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 267CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 268# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +289,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_LEGACY is not set 289# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 290# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set 291# CONFIG_PCI_STUB is not set
292# CONFIG_PCI_IOV is not set
277# CONFIG_PCCARD is not set 293# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 294# CONFIG_HOTPLUG_PCI is not set
279CONFIG_HAS_RAPIDIO=y 295CONFIG_HAS_RAPIDIO=y
@@ -297,7 +313,6 @@ CONFIG_NET=y
297# 313#
298# Networking options 314# Networking options
299# 315#
300CONFIG_COMPAT_NET_DEV_OPS=y
301CONFIG_PACKET=y 316CONFIG_PACKET=y
302# CONFIG_PACKET_MMAP is not set 317# CONFIG_PACKET_MMAP is not set
303CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -385,6 +400,7 @@ CONFIG_SCTP_HMAC_MD5=y
385# CONFIG_LAPB is not set 400# CONFIG_LAPB is not set
386# CONFIG_ECONET is not set 401# CONFIG_ECONET is not set
387# CONFIG_WAN_ROUTER is not set 402# CONFIG_WAN_ROUTER is not set
403# CONFIG_PHONET is not set
388# CONFIG_NET_SCHED is not set 404# CONFIG_NET_SCHED is not set
389# CONFIG_DCB is not set 405# CONFIG_DCB is not set
390 406
@@ -397,7 +413,6 @@ CONFIG_SCTP_HMAC_MD5=y
397# CONFIG_IRDA is not set 413# CONFIG_IRDA is not set
398# CONFIG_BT is not set 414# CONFIG_BT is not set
399# CONFIG_AF_RXRPC is not set 415# CONFIG_AF_RXRPC is not set
400# CONFIG_PHONET is not set
401CONFIG_FIB_RULES=y 416CONFIG_FIB_RULES=y
402CONFIG_WIRELESS=y 417CONFIG_WIRELESS=y
403# CONFIG_CFG80211 is not set 418# CONFIG_CFG80211 is not set
@@ -451,13 +466,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
451# CONFIG_BLK_DEV_HD is not set 466# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 467CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 468# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 469# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 470# CONFIG_TIFM_CORE is not set
457# CONFIG_ICS932S401 is not set 471# CONFIG_ICS932S401 is not set
458# CONFIG_ENCLOSURE_SERVICES is not set 472# CONFIG_ENCLOSURE_SERVICES is not set
459# CONFIG_HP_ILO is not set 473# CONFIG_HP_ILO is not set
474# CONFIG_ISL29003 is not set
460# CONFIG_C2PORT is not set 475# CONFIG_C2PORT is not set
476
477#
478# EEPROM support
479#
480# CONFIG_EEPROM_AT24 is not set
481CONFIG_EEPROM_LEGACY=y
482# CONFIG_EEPROM_93CX6 is not set
461CONFIG_HAVE_IDE=y 483CONFIG_HAVE_IDE=y
462# CONFIG_IDE is not set 484# CONFIG_IDE is not set
463 485
@@ -516,9 +538,11 @@ CONFIG_SCSI_LOWLEVEL=y
516# CONFIG_MEGARAID_NEWGEN is not set 538# CONFIG_MEGARAID_NEWGEN is not set
517# CONFIG_MEGARAID_LEGACY is not set 539# CONFIG_MEGARAID_LEGACY is not set
518# CONFIG_MEGARAID_SAS is not set 540# CONFIG_MEGARAID_SAS is not set
541# CONFIG_SCSI_MPT2SAS is not set
519# CONFIG_SCSI_HPTIOP is not set 542# CONFIG_SCSI_HPTIOP is not set
520# CONFIG_SCSI_BUSLOGIC is not set 543# CONFIG_SCSI_BUSLOGIC is not set
521# CONFIG_LIBFC is not set 544# CONFIG_LIBFC is not set
545# CONFIG_LIBFCOE is not set
522# CONFIG_FCOE is not set 546# CONFIG_FCOE is not set
523# CONFIG_SCSI_DMX3191D is not set 547# CONFIG_SCSI_DMX3191D is not set
524# CONFIG_SCSI_EATA is not set 548# CONFIG_SCSI_EATA is not set
@@ -541,6 +565,7 @@ CONFIG_SCSI_LOWLEVEL=y
541# CONFIG_SCSI_DEBUG is not set 565# CONFIG_SCSI_DEBUG is not set
542# CONFIG_SCSI_SRP is not set 566# CONFIG_SCSI_SRP is not set
543# CONFIG_SCSI_DH is not set 567# CONFIG_SCSI_DH is not set
568# CONFIG_SCSI_OSD_INITIATOR is not set
544CONFIG_ATA=y 569CONFIG_ATA=y
545# CONFIG_ATA_NONSTANDARD is not set 570# CONFIG_ATA_NONSTANDARD is not set
546CONFIG_SATA_PMP=y 571CONFIG_SATA_PMP=y
@@ -617,6 +642,7 @@ CONFIG_PATA_ALI=y
617# CONFIG_I2O is not set 642# CONFIG_I2O is not set
618# CONFIG_MACINTOSH_DRIVERS is not set 643# CONFIG_MACINTOSH_DRIVERS is not set
619CONFIG_NETDEVICES=y 644CONFIG_NETDEVICES=y
645CONFIG_COMPAT_NET_DEV_OPS=y
620CONFIG_DUMMY=y 646CONFIG_DUMMY=y
621# CONFIG_BONDING is not set 647# CONFIG_BONDING is not set
622# CONFIG_MACVLAN is not set 648# CONFIG_MACVLAN is not set
@@ -650,6 +676,8 @@ CONFIG_MII=y
650# CONFIG_SUNGEM is not set 676# CONFIG_SUNGEM is not set
651# CONFIG_CASSINI is not set 677# CONFIG_CASSINI is not set
652# CONFIG_NET_VENDOR_3COM is not set 678# CONFIG_NET_VENDOR_3COM is not set
679# CONFIG_ETHOC is not set
680# CONFIG_DNET is not set
653# CONFIG_NET_TULIP is not set 681# CONFIG_NET_TULIP is not set
654# CONFIG_HP100 is not set 682# CONFIG_HP100 is not set
655# CONFIG_IBM_NEW_EMAC_ZMII is not set 683# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -669,6 +697,7 @@ CONFIG_NETDEV_1000=y
669# CONFIG_E1000E is not set 697# CONFIG_E1000E is not set
670# CONFIG_IP1000 is not set 698# CONFIG_IP1000 is not set
671# CONFIG_IGB is not set 699# CONFIG_IGB is not set
700# CONFIG_IGBVF is not set
672# CONFIG_NS83820 is not set 701# CONFIG_NS83820 is not set
673# CONFIG_HAMACHI is not set 702# CONFIG_HAMACHI is not set
674# CONFIG_YELLOWFIN is not set 703# CONFIG_YELLOWFIN is not set
@@ -679,11 +708,12 @@ CONFIG_NETDEV_1000=y
679# CONFIG_VIA_VELOCITY is not set 708# CONFIG_VIA_VELOCITY is not set
680# CONFIG_TIGON3 is not set 709# CONFIG_TIGON3 is not set
681# CONFIG_BNX2 is not set 710# CONFIG_BNX2 is not set
711CONFIG_FSL_PQ_MDIO=y
682CONFIG_GIANFAR=y 712CONFIG_GIANFAR=y
683# CONFIG_MV643XX_ETH is not set
684# CONFIG_QLA3XXX is not set 713# CONFIG_QLA3XXX is not set
685# CONFIG_ATL1 is not set 714# CONFIG_ATL1 is not set
686# CONFIG_ATL1E is not set 715# CONFIG_ATL1E is not set
716# CONFIG_ATL1C is not set
687# CONFIG_JME is not set 717# CONFIG_JME is not set
688CONFIG_NETDEV_10000=y 718CONFIG_NETDEV_10000=y
689# CONFIG_CHELSIO_T1 is not set 719# CONFIG_CHELSIO_T1 is not set
@@ -693,6 +723,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
693# CONFIG_IXGBE is not set 723# CONFIG_IXGBE is not set
694# CONFIG_IXGB is not set 724# CONFIG_IXGB is not set
695# CONFIG_S2IO is not set 725# CONFIG_S2IO is not set
726# CONFIG_VXGE is not set
696# CONFIG_MYRI10GE is not set 727# CONFIG_MYRI10GE is not set
697# CONFIG_NETXEN_NIC is not set 728# CONFIG_NETXEN_NIC is not set
698# CONFIG_NIU is not set 729# CONFIG_NIU is not set
@@ -702,6 +733,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
702# CONFIG_BNX2X is not set 733# CONFIG_BNX2X is not set
703# CONFIG_QLGE is not set 734# CONFIG_QLGE is not set
704# CONFIG_SFC is not set 735# CONFIG_SFC is not set
736# CONFIG_BE2NET is not set
705# CONFIG_TR is not set 737# CONFIG_TR is not set
706 738
707# 739#
@@ -709,7 +741,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
709# 741#
710# CONFIG_WLAN_PRE80211 is not set 742# CONFIG_WLAN_PRE80211 is not set
711# CONFIG_WLAN_80211 is not set 743# CONFIG_WLAN_80211 is not set
712# CONFIG_IWLWIFI_LEDS is not set
713 744
714# 745#
715# Enable WiMAX (Networking options) to see the WiMAX drivers 746# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -875,12 +906,9 @@ CONFIG_I2C_MPC=y
875# Miscellaneous I2C Chip support 906# Miscellaneous I2C Chip support
876# 907#
877# CONFIG_DS1682 is not set 908# CONFIG_DS1682 is not set
878# CONFIG_EEPROM_AT24 is not set
879CONFIG_EEPROM_LEGACY=y
880# CONFIG_SENSORS_PCF8574 is not set 909# CONFIG_SENSORS_PCF8574 is not set
881# CONFIG_PCF8575 is not set 910# CONFIG_PCF8575 is not set
882# CONFIG_SENSORS_PCA9539 is not set 911# CONFIG_SENSORS_PCA9539 is not set
883# CONFIG_SENSORS_PCF8591 is not set
884# CONFIG_SENSORS_MAX6875 is not set 912# CONFIG_SENSORS_MAX6875 is not set
885# CONFIG_SENSORS_TSL2550 is not set 913# CONFIG_SENSORS_TSL2550 is not set
886# CONFIG_I2C_DEBUG_CORE is not set 914# CONFIG_I2C_DEBUG_CORE is not set
@@ -933,7 +961,7 @@ CONFIG_VIDEO_MEDIA=m
933# 961#
934# CONFIG_MEDIA_ATTACH is not set 962# CONFIG_MEDIA_ATTACH is not set
935CONFIG_MEDIA_TUNER=m 963CONFIG_MEDIA_TUNER=m
936# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 964# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
937CONFIG_MEDIA_TUNER_SIMPLE=m 965CONFIG_MEDIA_TUNER_SIMPLE=m
938CONFIG_MEDIA_TUNER_TDA8290=m 966CONFIG_MEDIA_TUNER_TDA8290=m
939CONFIG_MEDIA_TUNER_TDA9887=m 967CONFIG_MEDIA_TUNER_TDA9887=m
@@ -942,6 +970,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
942CONFIG_MEDIA_TUNER_MT20XX=m 970CONFIG_MEDIA_TUNER_MT20XX=m
943CONFIG_MEDIA_TUNER_XC2028=m 971CONFIG_MEDIA_TUNER_XC2028=m
944CONFIG_MEDIA_TUNER_XC5000=m 972CONFIG_MEDIA_TUNER_XC5000=m
973CONFIG_MEDIA_TUNER_MC44S803=m
945# CONFIG_DVB_DYNAMIC_MINORS is not set 974# CONFIG_DVB_DYNAMIC_MINORS is not set
946CONFIG_DVB_CAPTURE_DRIVERS=y 975CONFIG_DVB_CAPTURE_DRIVERS=y
947 976
@@ -981,103 +1010,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
981# 1010#
982# Supported DVB Frontends 1011# Supported DVB Frontends
983# 1012#
984
985#
986# Customise DVB Frontends
987#
988# CONFIG_DVB_FE_CUSTOMISE is not set 1013# CONFIG_DVB_FE_CUSTOMISE is not set
989
990#
991# Multistandard (satellite) frontends
992#
993# CONFIG_DVB_STB0899 is not set
994# CONFIG_DVB_STB6100 is not set
995
996#
997# DVB-S (satellite) frontends
998#
999# CONFIG_DVB_CX24110 is not set
1000# CONFIG_DVB_CX24123 is not set
1001# CONFIG_DVB_MT312 is not set
1002# CONFIG_DVB_S5H1420 is not set
1003# CONFIG_DVB_STV0288 is not set
1004# CONFIG_DVB_STB6000 is not set
1005# CONFIG_DVB_STV0299 is not set
1006# CONFIG_DVB_TDA8083 is not set
1007# CONFIG_DVB_TDA10086 is not set
1008# CONFIG_DVB_TDA8261 is not set
1009# CONFIG_DVB_VES1X93 is not set
1010# CONFIG_DVB_TUNER_ITD1000 is not set
1011# CONFIG_DVB_TUNER_CX24113 is not set
1012# CONFIG_DVB_TDA826X is not set
1013# CONFIG_DVB_TUA6100 is not set
1014# CONFIG_DVB_CX24116 is not set
1015# CONFIG_DVB_SI21XX is not set
1016
1017#
1018# DVB-T (terrestrial) frontends
1019#
1020# CONFIG_DVB_SP8870 is not set
1021# CONFIG_DVB_SP887X is not set
1022# CONFIG_DVB_CX22700 is not set
1023# CONFIG_DVB_CX22702 is not set
1024# CONFIG_DVB_DRX397XD is not set
1025# CONFIG_DVB_L64781 is not set
1026# CONFIG_DVB_TDA1004X is not set
1027# CONFIG_DVB_NXT6000 is not set
1028# CONFIG_DVB_MT352 is not set
1029# CONFIG_DVB_ZL10353 is not set
1030# CONFIG_DVB_DIB3000MB is not set
1031# CONFIG_DVB_DIB3000MC is not set
1032# CONFIG_DVB_DIB7000M is not set
1033# CONFIG_DVB_DIB7000P is not set
1034# CONFIG_DVB_TDA10048 is not set
1035
1036#
1037# DVB-C (cable) frontends
1038#
1039# CONFIG_DVB_VES1820 is not set
1040# CONFIG_DVB_TDA10021 is not set
1041# CONFIG_DVB_TDA10023 is not set
1042# CONFIG_DVB_STV0297 is not set
1043
1044#
1045# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1046#
1047# CONFIG_DVB_NXT200X is not set
1048# CONFIG_DVB_OR51211 is not set
1049# CONFIG_DVB_OR51132 is not set
1050# CONFIG_DVB_BCM3510 is not set
1051# CONFIG_DVB_LGDT330X is not set
1052# CONFIG_DVB_LGDT3304 is not set
1053# CONFIG_DVB_S5H1409 is not set
1054# CONFIG_DVB_AU8522 is not set
1055# CONFIG_DVB_S5H1411 is not set
1056
1057#
1058# ISDB-T (terrestrial) frontends
1059#
1060# CONFIG_DVB_S921 is not set
1061
1062#
1063# Digital terrestrial only tuners/PLL
1064#
1065# CONFIG_DVB_PLL is not set
1066# CONFIG_DVB_TUNER_DIB0070 is not set
1067
1068#
1069# SEC control devices for DVB-S
1070#
1071# CONFIG_DVB_LNBP21 is not set
1072# CONFIG_DVB_ISL6405 is not set
1073# CONFIG_DVB_ISL6421 is not set
1074# CONFIG_DVB_LGS8GL5 is not set
1075
1076#
1077# Tools to develop new frontends
1078#
1079# CONFIG_DVB_DUMMY_FE is not set
1080# CONFIG_DVB_AF9013 is not set
1081CONFIG_DAB=y 1014CONFIG_DAB=y
1082# CONFIG_USB_DABUSB is not set 1015# CONFIG_USB_DABUSB is not set
1083 1016
@@ -1157,6 +1090,8 @@ CONFIG_SND_PCI=y
1157# CONFIG_SND_INDIGO is not set 1090# CONFIG_SND_INDIGO is not set
1158# CONFIG_SND_INDIGOIO is not set 1091# CONFIG_SND_INDIGOIO is not set
1159# CONFIG_SND_INDIGODJ is not set 1092# CONFIG_SND_INDIGODJ is not set
1093# CONFIG_SND_INDIGOIOX is not set
1094# CONFIG_SND_INDIGODJX is not set
1160# CONFIG_SND_EMU10K1 is not set 1095# CONFIG_SND_EMU10K1 is not set
1161# CONFIG_SND_EMU10K1X is not set 1096# CONFIG_SND_EMU10K1X is not set
1162# CONFIG_SND_ENS1370 is not set 1097# CONFIG_SND_ENS1370 is not set
@@ -1211,15 +1146,17 @@ CONFIG_USB_HID=y
1211# 1146#
1212# Special HID drivers 1147# Special HID drivers
1213# 1148#
1214CONFIG_HID_COMPAT=y
1215CONFIG_HID_A4TECH=y 1149CONFIG_HID_A4TECH=y
1216CONFIG_HID_APPLE=y 1150CONFIG_HID_APPLE=y
1217CONFIG_HID_BELKIN=y 1151CONFIG_HID_BELKIN=y
1218CONFIG_HID_CHERRY=y 1152CONFIG_HID_CHERRY=y
1219CONFIG_HID_CHICONY=y 1153CONFIG_HID_CHICONY=y
1220CONFIG_HID_CYPRESS=y 1154CONFIG_HID_CYPRESS=y
1155# CONFIG_DRAGONRISE_FF is not set
1221CONFIG_HID_EZKEY=y 1156CONFIG_HID_EZKEY=y
1157# CONFIG_HID_KYE is not set
1222CONFIG_HID_GYRATION=y 1158CONFIG_HID_GYRATION=y
1159# CONFIG_HID_KENSINGTON is not set
1223CONFIG_HID_LOGITECH=y 1160CONFIG_HID_LOGITECH=y
1224# CONFIG_LOGITECH_FF is not set 1161# CONFIG_LOGITECH_FF is not set
1225# CONFIG_LOGIRUMBLEPAD2_FF is not set 1162# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1292,11 +1229,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1292# CONFIG_USB_TMC is not set 1229# CONFIG_USB_TMC is not set
1293 1230
1294# 1231#
1295# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1232# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1296# 1233#
1297 1234
1298# 1235#
1299# see USB_STORAGE Help for more information 1236# also be needed; see USB_STORAGE Help for more info
1300# 1237#
1301CONFIG_USB_STORAGE=y 1238CONFIG_USB_STORAGE=y
1302# CONFIG_USB_STORAGE_DEBUG is not set 1239# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1338,7 +1275,6 @@ CONFIG_USB_STORAGE=y
1338# CONFIG_USB_LED is not set 1275# CONFIG_USB_LED is not set
1339# CONFIG_USB_CYPRESS_CY7C63 is not set 1276# CONFIG_USB_CYPRESS_CY7C63 is not set
1340# CONFIG_USB_CYTHERM is not set 1277# CONFIG_USB_CYTHERM is not set
1341# CONFIG_USB_PHIDGET is not set
1342# CONFIG_USB_IDMOUSE is not set 1278# CONFIG_USB_IDMOUSE is not set
1343# CONFIG_USB_FTDI_ELAN is not set 1279# CONFIG_USB_FTDI_ELAN is not set
1344# CONFIG_USB_APPLEDISPLAY is not set 1280# CONFIG_USB_APPLEDISPLAY is not set
@@ -1354,6 +1290,7 @@ CONFIG_USB_STORAGE=y
1354# 1290#
1355# OTG and related infrastructure 1291# OTG and related infrastructure
1356# 1292#
1293# CONFIG_NOP_USB_XCEIV is not set
1357# CONFIG_UWB is not set 1294# CONFIG_UWB is not set
1358# CONFIG_MMC is not set 1295# CONFIG_MMC is not set
1359# CONFIG_MEMSTICK is not set 1296# CONFIG_MEMSTICK is not set
@@ -1415,8 +1352,9 @@ CONFIG_RTC_DRV_CMOS=y
1415# 1352#
1416# on-CPU RTC drivers 1353# on-CPU RTC drivers
1417# 1354#
1418# CONFIG_RTC_DRV_PPC is not set 1355# CONFIG_RTC_DRV_GENERIC is not set
1419# CONFIG_DMADEVICES is not set 1356# CONFIG_DMADEVICES is not set
1357# CONFIG_AUXDISPLAY is not set
1420# CONFIG_UIO is not set 1358# CONFIG_UIO is not set
1421# CONFIG_STAGING is not set 1359# CONFIG_STAGING is not set
1422 1360
@@ -1427,6 +1365,7 @@ CONFIG_EXT2_FS=y
1427# CONFIG_EXT2_FS_XATTR is not set 1365# CONFIG_EXT2_FS_XATTR is not set
1428# CONFIG_EXT2_FS_XIP is not set 1366# CONFIG_EXT2_FS_XIP is not set
1429CONFIG_EXT3_FS=y 1367CONFIG_EXT3_FS=y
1368# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1430CONFIG_EXT3_FS_XATTR=y 1369CONFIG_EXT3_FS_XATTR=y
1431# CONFIG_EXT3_FS_POSIX_ACL is not set 1370# CONFIG_EXT3_FS_POSIX_ACL is not set
1432# CONFIG_EXT3_FS_SECURITY is not set 1371# CONFIG_EXT3_FS_SECURITY is not set
@@ -1450,6 +1389,11 @@ CONFIG_INOTIFY_USER=y
1450# CONFIG_FUSE_FS is not set 1389# CONFIG_FUSE_FS is not set
1451 1390
1452# 1391#
1392# Caches
1393#
1394# CONFIG_FSCACHE is not set
1395
1396#
1453# CD-ROM/DVD Filesystems 1397# CD-ROM/DVD Filesystems
1454# 1398#
1455CONFIG_ISO9660_FS=m 1399CONFIG_ISO9660_FS=m
@@ -1504,6 +1448,7 @@ CONFIG_SYSV_FS=m
1504CONFIG_UFS_FS=m 1448CONFIG_UFS_FS=m
1505# CONFIG_UFS_FS_WRITE is not set 1449# CONFIG_UFS_FS_WRITE is not set
1506# CONFIG_UFS_DEBUG is not set 1450# CONFIG_UFS_DEBUG is not set
1451# CONFIG_NILFS2_FS is not set
1507CONFIG_NETWORK_FILESYSTEMS=y 1452CONFIG_NETWORK_FILESYSTEMS=y
1508CONFIG_NFS_FS=y 1453CONFIG_NFS_FS=y
1509CONFIG_NFS_V3=y 1454CONFIG_NFS_V3=y
@@ -1519,7 +1464,6 @@ CONFIG_EXPORTFS=y
1519CONFIG_NFS_COMMON=y 1464CONFIG_NFS_COMMON=y
1520CONFIG_SUNRPC=y 1465CONFIG_SUNRPC=y
1521CONFIG_SUNRPC_GSS=y 1466CONFIG_SUNRPC_GSS=y
1522# CONFIG_SUNRPC_REGISTER_V4 is not set
1523CONFIG_RPCSEC_GSS_KRB5=y 1467CONFIG_RPCSEC_GSS_KRB5=y
1524# CONFIG_RPCSEC_GSS_SPKM3 is not set 1468# CONFIG_RPCSEC_GSS_SPKM3 is not set
1525# CONFIG_SMB_FS is not set 1469# CONFIG_SMB_FS is not set
@@ -1590,6 +1534,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1590# CONFIG_NLS_KOI8_U is not set 1534# CONFIG_NLS_KOI8_U is not set
1591CONFIG_NLS_UTF8=m 1535CONFIG_NLS_UTF8=m
1592# CONFIG_DLM is not set 1536# CONFIG_DLM is not set
1537# CONFIG_BINARY_PRINTF is not set
1593 1538
1594# 1539#
1595# Library routines 1540# Library routines
@@ -1604,11 +1549,12 @@ CONFIG_CRC32=y
1604# CONFIG_CRC7 is not set 1549# CONFIG_CRC7 is not set
1605CONFIG_LIBCRC32C=m 1550CONFIG_LIBCRC32C=m
1606CONFIG_ZLIB_INFLATE=y 1551CONFIG_ZLIB_INFLATE=y
1607CONFIG_PLIST=y 1552CONFIG_DECOMPRESS_GZIP=y
1608CONFIG_HAS_IOMEM=y 1553CONFIG_HAS_IOMEM=y
1609CONFIG_HAS_IOPORT=y 1554CONFIG_HAS_IOPORT=y
1610CONFIG_HAS_DMA=y 1555CONFIG_HAS_DMA=y
1611CONFIG_HAVE_LMB=y 1556CONFIG_HAVE_LMB=y
1557CONFIG_NLATTR=y
1612 1558
1613# 1559#
1614# Kernel hacking 1560# Kernel hacking
@@ -1626,6 +1572,9 @@ CONFIG_DEBUG_KERNEL=y
1626CONFIG_DETECT_SOFTLOCKUP=y 1572CONFIG_DETECT_SOFTLOCKUP=y
1627# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1573# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1628CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1574CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1575CONFIG_DETECT_HUNG_TASK=y
1576# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1577CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1629CONFIG_SCHED_DEBUG=y 1578CONFIG_SCHED_DEBUG=y
1630# CONFIG_SCHEDSTATS is not set 1579# CONFIG_SCHEDSTATS is not set
1631# CONFIG_TIMER_STATS is not set 1580# CONFIG_TIMER_STATS is not set
@@ -1656,9 +1605,12 @@ CONFIG_DEBUG_INFO=y
1656# CONFIG_FAULT_INJECTION is not set 1605# CONFIG_FAULT_INJECTION is not set
1657# CONFIG_LATENCYTOP is not set 1606# CONFIG_LATENCYTOP is not set
1658CONFIG_SYSCTL_SYSCALL_CHECK=y 1607CONFIG_SYSCTL_SYSCALL_CHECK=y
1608# CONFIG_DEBUG_PAGEALLOC is not set
1659CONFIG_HAVE_FUNCTION_TRACER=y 1609CONFIG_HAVE_FUNCTION_TRACER=y
1610CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1660CONFIG_HAVE_DYNAMIC_FTRACE=y 1611CONFIG_HAVE_DYNAMIC_FTRACE=y
1661CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1612CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1613CONFIG_TRACING_SUPPORT=y
1662 1614
1663# 1615#
1664# Tracers 1616# Tracers
@@ -1666,17 +1618,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1666# CONFIG_FUNCTION_TRACER is not set 1618# CONFIG_FUNCTION_TRACER is not set
1667# CONFIG_SCHED_TRACER is not set 1619# CONFIG_SCHED_TRACER is not set
1668# CONFIG_CONTEXT_SWITCH_TRACER is not set 1620# CONFIG_CONTEXT_SWITCH_TRACER is not set
1621# CONFIG_EVENT_TRACER is not set
1669# CONFIG_BOOT_TRACER is not set 1622# CONFIG_BOOT_TRACER is not set
1670# CONFIG_TRACE_BRANCH_PROFILING is not set 1623# CONFIG_TRACE_BRANCH_PROFILING is not set
1671# CONFIG_STACK_TRACER is not set 1624# CONFIG_STACK_TRACER is not set
1672# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1625# CONFIG_KMEMTRACE is not set
1626# CONFIG_WORKQUEUE_TRACER is not set
1627# CONFIG_BLK_DEV_IO_TRACE is not set
1673# CONFIG_SAMPLES is not set 1628# CONFIG_SAMPLES is not set
1674CONFIG_HAVE_ARCH_KGDB=y 1629CONFIG_HAVE_ARCH_KGDB=y
1675# CONFIG_KGDB is not set 1630# CONFIG_KGDB is not set
1676CONFIG_PRINT_STACK_DEPTH=64 1631CONFIG_PRINT_STACK_DEPTH=64
1677# CONFIG_DEBUG_STACKOVERFLOW is not set 1632# CONFIG_DEBUG_STACKOVERFLOW is not set
1678# CONFIG_DEBUG_STACK_USAGE is not set 1633# CONFIG_DEBUG_STACK_USAGE is not set
1679# CONFIG_DEBUG_PAGEALLOC is not set
1680# CONFIG_CODE_PATCHING_SELFTEST is not set 1634# CONFIG_CODE_PATCHING_SELFTEST is not set
1681# CONFIG_FTR_FIXUP_SELFTEST is not set 1635# CONFIG_FTR_FIXUP_SELFTEST is not set
1682# CONFIG_MSI_BITMAP_SELFTEST is not set 1636# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1707,10 +1661,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1707CONFIG_CRYPTO_HASH=y 1661CONFIG_CRYPTO_HASH=y
1708CONFIG_CRYPTO_HASH2=y 1662CONFIG_CRYPTO_HASH2=y
1709CONFIG_CRYPTO_RNG2=y 1663CONFIG_CRYPTO_RNG2=y
1664CONFIG_CRYPTO_PCOMP=y
1710CONFIG_CRYPTO_MANAGER=y 1665CONFIG_CRYPTO_MANAGER=y
1711CONFIG_CRYPTO_MANAGER2=y 1666CONFIG_CRYPTO_MANAGER2=y
1712# CONFIG_CRYPTO_GF128MUL is not set 1667# CONFIG_CRYPTO_GF128MUL is not set
1713# CONFIG_CRYPTO_NULL is not set 1668# CONFIG_CRYPTO_NULL is not set
1669CONFIG_CRYPTO_WORKQUEUE=y
1714# CONFIG_CRYPTO_CRYPTD is not set 1670# CONFIG_CRYPTO_CRYPTD is not set
1715# CONFIG_CRYPTO_AUTHENC is not set 1671# CONFIG_CRYPTO_AUTHENC is not set
1716# CONFIG_CRYPTO_TEST is not set 1672# CONFIG_CRYPTO_TEST is not set
@@ -1779,6 +1735,7 @@ CONFIG_CRYPTO_DES=y
1779# Compression 1735# Compression
1780# 1736#
1781# CONFIG_CRYPTO_DEFLATE is not set 1737# CONFIG_CRYPTO_DEFLATE is not set
1738# CONFIG_CRYPTO_ZLIB is not set
1782# CONFIG_CRYPTO_LZO is not set 1739# CONFIG_CRYPTO_LZO is not set
1783 1740
1784# 1741#
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index 04797e730c5a..c30a0c715873 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:36:23 2009 4# Wed May 13 17:22:27 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -57,6 +58,7 @@ CONFIG_GENERIC_BUG=y
57CONFIG_DEFAULT_UIMAGE=y 58CONFIG_DEFAULT_UIMAGE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -71,10 +73,20 @@ CONFIG_SWAP=y
71CONFIG_SYSVIPC=y 73CONFIG_SYSVIPC=y
72CONFIG_SYSVIPC_SYSCTL=y 74CONFIG_SYSVIPC_SYSCTL=y
73CONFIG_POSIX_MQUEUE=y 75CONFIG_POSIX_MQUEUE=y
76CONFIG_POSIX_MQUEUE_SYSCTL=y
74CONFIG_BSD_PROCESS_ACCT=y 77CONFIG_BSD_PROCESS_ACCT=y
75CONFIG_BSD_PROCESS_ACCT_V3=y 78CONFIG_BSD_PROCESS_ACCT_V3=y
76# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 80# CONFIG_AUDIT is not set
81
82#
83# RCU Subsystem
84#
85CONFIG_CLASSIC_RCU=y
86# CONFIG_TREE_RCU is not set
87# CONFIG_PREEMPT_RCU is not set
88# CONFIG_TREE_RCU_TRACE is not set
89# CONFIG_PREEMPT_RCU_TRACE is not set
78CONFIG_IKCONFIG=y 90CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 91CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
@@ -90,21 +102,24 @@ CONFIG_RELAY=y
90# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
91CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
92CONFIG_INITRAMFS_SOURCE="" 104CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set
93# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
94CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y
95CONFIG_EMBEDDED=y 111CONFIG_EMBEDDED=y
96CONFIG_SYSCTL_SYSCALL=y 112CONFIG_SYSCTL_SYSCALL=y
97CONFIG_KALLSYMS=y 113CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 114# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 115# CONFIG_KALLSYMS_EXTRA_PASS is not set
116# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 117CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 118CONFIG_PRINTK=y
102CONFIG_BUG=y 119CONFIG_BUG=y
103CONFIG_ELF_CORE=y 120CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 121CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 122CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 123CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 124CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 125CONFIG_TIMERFD=y
@@ -113,10 +128,12 @@ CONFIG_SHMEM=y
113CONFIG_AIO=y 128CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 130CONFIG_PCI_QUIRKS=y
131CONFIG_COMPAT_BRK=y
116CONFIG_SLAB=y 132CONFIG_SLAB=y
117# CONFIG_SLUB is not set 133# CONFIG_SLUB is not set
118# CONFIG_SLOB is not set 134# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 135# CONFIG_PROFILING is not set
136# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 137CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 138# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 139CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -125,6 +142,7 @@ CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 142CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 143CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_USE_GENERIC_SMP_HELPERS=y 144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -138,7 +156,6 @@ CONFIG_MODULE_UNLOAD=y
138CONFIG_STOP_MACHINE=y 156CONFIG_STOP_MACHINE=y
139CONFIG_BLOCK=y 157CONFIG_BLOCK=y
140# CONFIG_LBD is not set 158# CONFIG_LBD is not set
141# CONFIG_BLK_DEV_IO_TRACE is not set
142# CONFIG_BLK_DEV_BSG is not set 159# CONFIG_BLK_DEV_BSG is not set
143# CONFIG_BLK_DEV_INTEGRITY is not set 160# CONFIG_BLK_DEV_INTEGRITY is not set
144 161
@@ -154,18 +171,11 @@ CONFIG_IOSCHED_CFQ=y
154CONFIG_DEFAULT_CFQ=y 171CONFIG_DEFAULT_CFQ=y
155# CONFIG_DEFAULT_NOOP is not set 172# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="cfq" 173CONFIG_DEFAULT_IOSCHED="cfq"
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 174# CONFIG_FREEZER is not set
163 175
164# 176#
165# Platform support 177# Platform support
166# 178#
167CONFIG_PPC_MULTIPLATFORM=y
168CONFIG_CLASSIC32=y
169# CONFIG_PPC_CHRP is not set 179# CONFIG_PPC_CHRP is not set
170# CONFIG_MPC5121_ADS is not set 180# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set 181# CONFIG_MPC5121_GENERIC is not set
@@ -180,8 +190,11 @@ CONFIG_PPC_86xx=y
180# CONFIG_MPC8641_HPCN is not set 190# CONFIG_MPC8641_HPCN is not set
181CONFIG_SBC8641D=y 191CONFIG_SBC8641D=y
182# CONFIG_MPC8610_HPCD is not set 192# CONFIG_MPC8610_HPCD is not set
193# CONFIG_GEF_PPC9A is not set
194# CONFIG_GEF_SBC310 is not set
183# CONFIG_GEF_SBC610 is not set 195# CONFIG_GEF_SBC610 is not set
184CONFIG_MPC8641=y 196CONFIG_MPC8641=y
197CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
185# CONFIG_IPIC is not set 198# CONFIG_IPIC is not set
186CONFIG_MPIC=y 199CONFIG_MPIC=y
187# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
@@ -243,9 +256,12 @@ CONFIG_ZONE_DMA_FLAG=1
243CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
244CONFIG_VIRT_TO_BUS=y 257CONFIG_VIRT_TO_BUS=y
245CONFIG_UNEVICTABLE_LRU=y 258CONFIG_UNEVICTABLE_LRU=y
259CONFIG_HAVE_MLOCK=y
260CONFIG_HAVE_MLOCKED_PAGE_BIT=y
246CONFIG_PPC_4K_PAGES=y 261CONFIG_PPC_4K_PAGES=y
247# CONFIG_PPC_16K_PAGES is not set 262# CONFIG_PPC_16K_PAGES is not set
248# CONFIG_PPC_64K_PAGES is not set 263# CONFIG_PPC_64K_PAGES is not set
264# CONFIG_PPC_256K_PAGES is not set
249CONFIG_FORCE_MAX_ZONEORDER=11 265CONFIG_FORCE_MAX_ZONEORDER=11
250# CONFIG_PROC_DEVICETREE is not set 266# CONFIG_PROC_DEVICETREE is not set
251# CONFIG_CMDLINE_BOOL is not set 267# CONFIG_CMDLINE_BOOL is not set
@@ -274,6 +290,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_LEGACY is not set 290# CONFIG_PCI_LEGACY is not set
275# CONFIG_PCI_DEBUG is not set 291# CONFIG_PCI_DEBUG is not set
276# CONFIG_PCI_STUB is not set 292# CONFIG_PCI_STUB is not set
293# CONFIG_PCI_IOV is not set
277# CONFIG_PCCARD is not set 294# CONFIG_PCCARD is not set
278# CONFIG_HOTPLUG_PCI is not set 295# CONFIG_HOTPLUG_PCI is not set
279# CONFIG_HAS_RAPIDIO is not set 296# CONFIG_HAS_RAPIDIO is not set
@@ -296,7 +313,6 @@ CONFIG_NET=y
296# 313#
297# Networking options 314# Networking options
298# 315#
299CONFIG_COMPAT_NET_DEV_OPS=y
300CONFIG_PACKET=y 316CONFIG_PACKET=y
301CONFIG_PACKET_MMAP=y 317CONFIG_PACKET_MMAP=y
302CONFIG_UNIX=y 318CONFIG_UNIX=y
@@ -376,9 +392,11 @@ CONFIG_BRIDGE_NETFILTER=y
376# CONFIG_NETFILTER_NETLINK_QUEUE is not set 392# CONFIG_NETFILTER_NETLINK_QUEUE is not set
377# CONFIG_NETFILTER_NETLINK_LOG is not set 393# CONFIG_NETFILTER_NETLINK_LOG is not set
378# CONFIG_NF_CONNTRACK is not set 394# CONFIG_NF_CONNTRACK is not set
395# CONFIG_NETFILTER_TPROXY is not set
379CONFIG_NETFILTER_XTABLES=m 396CONFIG_NETFILTER_XTABLES=m
380# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 397# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
381# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 398# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
399# CONFIG_NETFILTER_XT_TARGET_HL is not set
382# CONFIG_NETFILTER_XT_TARGET_MARK is not set 400# CONFIG_NETFILTER_XT_TARGET_MARK is not set
383# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 401# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
384# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 402# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -391,6 +409,7 @@ CONFIG_NETFILTER_XTABLES=m
391# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 409# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
392# CONFIG_NETFILTER_XT_MATCH_ESP is not set 410# CONFIG_NETFILTER_XT_MATCH_ESP is not set
393# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 411# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
412CONFIG_NETFILTER_XT_MATCH_HL=m
394# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 413# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
395# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 414# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
396# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 415# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -449,11 +468,11 @@ CONFIG_IP6_NF_MATCH_HL=m
449CONFIG_IP6_NF_MATCH_IPV6HEADER=m 468CONFIG_IP6_NF_MATCH_IPV6HEADER=m
450# CONFIG_IP6_NF_MATCH_MH is not set 469# CONFIG_IP6_NF_MATCH_MH is not set
451CONFIG_IP6_NF_MATCH_RT=m 470CONFIG_IP6_NF_MATCH_RT=m
471# CONFIG_IP6_NF_TARGET_HL is not set
452CONFIG_IP6_NF_TARGET_LOG=m 472CONFIG_IP6_NF_TARGET_LOG=m
453CONFIG_IP6_NF_FILTER=m 473CONFIG_IP6_NF_FILTER=m
454# CONFIG_IP6_NF_TARGET_REJECT is not set 474# CONFIG_IP6_NF_TARGET_REJECT is not set
455CONFIG_IP6_NF_MANGLE=m 475CONFIG_IP6_NF_MANGLE=m
456# CONFIG_IP6_NF_TARGET_HL is not set
457CONFIG_IP6_NF_RAW=m 476CONFIG_IP6_NF_RAW=m
458# CONFIG_IP6_NF_SECURITY is not set 477# CONFIG_IP6_NF_SECURITY is not set
459# CONFIG_BRIDGE_NF_EBTABLES is not set 478# CONFIG_BRIDGE_NF_EBTABLES is not set
@@ -488,6 +507,7 @@ CONFIG_LLC=m
488# CONFIG_LAPB is not set 507# CONFIG_LAPB is not set
489# CONFIG_ECONET is not set 508# CONFIG_ECONET is not set
490CONFIG_WAN_ROUTER=m 509CONFIG_WAN_ROUTER=m
510# CONFIG_PHONET is not set
491CONFIG_NET_SCHED=y 511CONFIG_NET_SCHED=y
492 512
493# 513#
@@ -538,7 +558,6 @@ CONFIG_NET_PKTGEN=m
538# CONFIG_IRDA is not set 558# CONFIG_IRDA is not set
539# CONFIG_BT is not set 559# CONFIG_BT is not set
540# CONFIG_AF_RXRPC is not set 560# CONFIG_AF_RXRPC is not set
541# CONFIG_PHONET is not set
542CONFIG_FIB_RULES=y 561CONFIG_FIB_RULES=y
543CONFIG_WIRELESS=y 562CONFIG_WIRELESS=y
544# CONFIG_CFG80211 is not set 563# CONFIG_CFG80211 is not set
@@ -649,7 +668,6 @@ CONFIG_MTD_PHYSMAP_OF=y
649# LPDDR flash memory drivers 668# LPDDR flash memory drivers
650# 669#
651# CONFIG_MTD_LPDDR is not set 670# CONFIG_MTD_LPDDR is not set
652# CONFIG_MTD_QINFO_PROBE is not set
653 671
654# 672#
655# UBI - Unsorted block images 673# UBI - Unsorted block images
@@ -678,13 +696,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
678# CONFIG_BLK_DEV_HD is not set 696# CONFIG_BLK_DEV_HD is not set
679CONFIG_MISC_DEVICES=y 697CONFIG_MISC_DEVICES=y
680# CONFIG_PHANTOM is not set 698# CONFIG_PHANTOM is not set
681# CONFIG_EEPROM_93CX6 is not set
682# CONFIG_SGI_IOC4 is not set 699# CONFIG_SGI_IOC4 is not set
683# CONFIG_TIFM_CORE is not set 700# CONFIG_TIFM_CORE is not set
684# CONFIG_ICS932S401 is not set 701# CONFIG_ICS932S401 is not set
685# CONFIG_ENCLOSURE_SERVICES is not set 702# CONFIG_ENCLOSURE_SERVICES is not set
686# CONFIG_HP_ILO is not set 703# CONFIG_HP_ILO is not set
704# CONFIG_ISL29003 is not set
687# CONFIG_C2PORT is not set 705# CONFIG_C2PORT is not set
706
707#
708# EEPROM support
709#
710# CONFIG_EEPROM_AT24 is not set
711# CONFIG_EEPROM_LEGACY is not set
712# CONFIG_EEPROM_93CX6 is not set
688CONFIG_HAVE_IDE=y 713CONFIG_HAVE_IDE=y
689# CONFIG_IDE is not set 714# CONFIG_IDE is not set
690 715
@@ -729,6 +754,7 @@ CONFIG_DM_ZERO=y
729# CONFIG_I2O is not set 754# CONFIG_I2O is not set
730# CONFIG_MACINTOSH_DRIVERS is not set 755# CONFIG_MACINTOSH_DRIVERS is not set
731CONFIG_NETDEVICES=y 756CONFIG_NETDEVICES=y
757CONFIG_COMPAT_NET_DEV_OPS=y
732CONFIG_DUMMY=m 758CONFIG_DUMMY=m
733CONFIG_BONDING=m 759CONFIG_BONDING=m
734# CONFIG_MACVLAN is not set 760# CONFIG_MACVLAN is not set
@@ -762,6 +788,8 @@ CONFIG_MII=y
762# CONFIG_SUNGEM is not set 788# CONFIG_SUNGEM is not set
763# CONFIG_CASSINI is not set 789# CONFIG_CASSINI is not set
764# CONFIG_NET_VENDOR_3COM is not set 790# CONFIG_NET_VENDOR_3COM is not set
791# CONFIG_ETHOC is not set
792# CONFIG_DNET is not set
765# CONFIG_NET_TULIP is not set 793# CONFIG_NET_TULIP is not set
766# CONFIG_HP100 is not set 794# CONFIG_HP100 is not set
767# CONFIG_IBM_NEW_EMAC_ZMII is not set 795# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -781,6 +809,7 @@ CONFIG_NETDEV_1000=y
781# CONFIG_E1000E is not set 809# CONFIG_E1000E is not set
782# CONFIG_IP1000 is not set 810# CONFIG_IP1000 is not set
783# CONFIG_IGB is not set 811# CONFIG_IGB is not set
812# CONFIG_IGBVF is not set
784# CONFIG_NS83820 is not set 813# CONFIG_NS83820 is not set
785# CONFIG_HAMACHI is not set 814# CONFIG_HAMACHI is not set
786# CONFIG_YELLOWFIN is not set 815# CONFIG_YELLOWFIN is not set
@@ -791,11 +820,12 @@ CONFIG_NETDEV_1000=y
791# CONFIG_VIA_VELOCITY is not set 820# CONFIG_VIA_VELOCITY is not set
792# CONFIG_TIGON3 is not set 821# CONFIG_TIGON3 is not set
793# CONFIG_BNX2 is not set 822# CONFIG_BNX2 is not set
823CONFIG_FSL_PQ_MDIO=y
794CONFIG_GIANFAR=y 824CONFIG_GIANFAR=y
795# CONFIG_MV643XX_ETH is not set
796# CONFIG_QLA3XXX is not set 825# CONFIG_QLA3XXX is not set
797# CONFIG_ATL1 is not set 826# CONFIG_ATL1 is not set
798# CONFIG_ATL1E is not set 827# CONFIG_ATL1E is not set
828# CONFIG_ATL1C is not set
799# CONFIG_JME is not set 829# CONFIG_JME is not set
800# CONFIG_NETDEV_10000 is not set 830# CONFIG_NETDEV_10000 is not set
801# CONFIG_TR is not set 831# CONFIG_TR is not set
@@ -805,7 +835,6 @@ CONFIG_GIANFAR=y
805# 835#
806# CONFIG_WLAN_PRE80211 is not set 836# CONFIG_WLAN_PRE80211 is not set
807# CONFIG_WLAN_80211 is not set 837# CONFIG_WLAN_80211 is not set
808# CONFIG_IWLWIFI_LEDS is not set
809 838
810# 839#
811# Enable WiMAX (Networking options) to see the WiMAX drivers 840# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -923,6 +952,7 @@ CONFIG_LEGACY_PTY_COUNT=256
923# CONFIG_HVC_UDBG is not set 952# CONFIG_HVC_UDBG is not set
924# CONFIG_IPMI_HANDLER is not set 953# CONFIG_IPMI_HANDLER is not set
925CONFIG_HW_RANDOM=m 954CONFIG_HW_RANDOM=m
955# CONFIG_HW_RANDOM_TIMERIOMEM is not set
926# CONFIG_NVRAM is not set 956# CONFIG_NVRAM is not set
927# CONFIG_GEN_RTC is not set 957# CONFIG_GEN_RTC is not set
928# CONFIG_R3964 is not set 958# CONFIG_R3964 is not set
@@ -985,12 +1015,9 @@ CONFIG_I2C_MPC=y
985# Miscellaneous I2C Chip support 1015# Miscellaneous I2C Chip support
986# 1016#
987# CONFIG_DS1682 is not set 1017# CONFIG_DS1682 is not set
988# CONFIG_EEPROM_AT24 is not set
989# CONFIG_EEPROM_LEGACY is not set
990# CONFIG_SENSORS_PCF8574 is not set 1018# CONFIG_SENSORS_PCF8574 is not set
991# CONFIG_PCF8575 is not set 1019# CONFIG_PCF8575 is not set
992# CONFIG_SENSORS_PCA9539 is not set 1020# CONFIG_SENSORS_PCA9539 is not set
993# CONFIG_SENSORS_PCF8591 is not set
994# CONFIG_SENSORS_MAX6875 is not set 1021# CONFIG_SENSORS_MAX6875 is not set
995# CONFIG_SENSORS_TSL2550 is not set 1022# CONFIG_SENSORS_TSL2550 is not set
996# CONFIG_I2C_DEBUG_CORE is not set 1023# CONFIG_I2C_DEBUG_CORE is not set
@@ -1022,6 +1049,7 @@ CONFIG_HWMON=y
1022# CONFIG_SENSORS_F71805F is not set 1049# CONFIG_SENSORS_F71805F is not set
1023# CONFIG_SENSORS_F71882FG is not set 1050# CONFIG_SENSORS_F71882FG is not set
1024# CONFIG_SENSORS_F75375S is not set 1051# CONFIG_SENSORS_F75375S is not set
1052# CONFIG_SENSORS_G760A is not set
1025# CONFIG_SENSORS_GL518SM is not set 1053# CONFIG_SENSORS_GL518SM is not set
1026# CONFIG_SENSORS_GL520SM is not set 1054# CONFIG_SENSORS_GL520SM is not set
1027# CONFIG_SENSORS_IT87 is not set 1055# CONFIG_SENSORS_IT87 is not set
@@ -1036,11 +1064,14 @@ CONFIG_HWMON=y
1036# CONFIG_SENSORS_LM90 is not set 1064# CONFIG_SENSORS_LM90 is not set
1037# CONFIG_SENSORS_LM92 is not set 1065# CONFIG_SENSORS_LM92 is not set
1038# CONFIG_SENSORS_LM93 is not set 1066# CONFIG_SENSORS_LM93 is not set
1067# CONFIG_SENSORS_LTC4215 is not set
1039# CONFIG_SENSORS_LTC4245 is not set 1068# CONFIG_SENSORS_LTC4245 is not set
1069# CONFIG_SENSORS_LM95241 is not set
1040# CONFIG_SENSORS_MAX1619 is not set 1070# CONFIG_SENSORS_MAX1619 is not set
1041# CONFIG_SENSORS_MAX6650 is not set 1071# CONFIG_SENSORS_MAX6650 is not set
1042# CONFIG_SENSORS_PC87360 is not set 1072# CONFIG_SENSORS_PC87360 is not set
1043# CONFIG_SENSORS_PC87427 is not set 1073# CONFIG_SENSORS_PC87427 is not set
1074# CONFIG_SENSORS_PCF8591 is not set
1044# CONFIG_SENSORS_SIS5595 is not set 1075# CONFIG_SENSORS_SIS5595 is not set
1045# CONFIG_SENSORS_DME1737 is not set 1076# CONFIG_SENSORS_DME1737 is not set
1046# CONFIG_SENSORS_SMSC47M1 is not set 1077# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1145,7 +1176,6 @@ CONFIG_HID=y
1145# 1176#
1146# Special HID drivers 1177# Special HID drivers
1147# 1178#
1148CONFIG_HID_COMPAT=y
1149CONFIG_USB_SUPPORT=y 1179CONFIG_USB_SUPPORT=y
1150CONFIG_USB_ARCH_HAS_HCD=y 1180CONFIG_USB_ARCH_HAS_HCD=y
1151CONFIG_USB_ARCH_HAS_OHCI=y 1181CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1159,7 +1189,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1159# 1189#
1160 1190
1161# 1191#
1162# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1192# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1163# 1193#
1164# CONFIG_USB_GADGET is not set 1194# CONFIG_USB_GADGET is not set
1165 1195
@@ -1175,6 +1205,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1175# CONFIG_EDAC is not set 1205# CONFIG_EDAC is not set
1176# CONFIG_RTC_CLASS is not set 1206# CONFIG_RTC_CLASS is not set
1177# CONFIG_DMADEVICES is not set 1207# CONFIG_DMADEVICES is not set
1208# CONFIG_AUXDISPLAY is not set
1178# CONFIG_UIO is not set 1209# CONFIG_UIO is not set
1179# CONFIG_STAGING is not set 1210# CONFIG_STAGING is not set
1180 1211
@@ -1187,6 +1218,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1187# CONFIG_EXT2_FS_SECURITY is not set 1218# CONFIG_EXT2_FS_SECURITY is not set
1188# CONFIG_EXT2_FS_XIP is not set 1219# CONFIG_EXT2_FS_XIP is not set
1189CONFIG_EXT3_FS=y 1220CONFIG_EXT3_FS=y
1221# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1190CONFIG_EXT3_FS_XATTR=y 1222CONFIG_EXT3_FS_XATTR=y
1191CONFIG_EXT3_FS_POSIX_ACL=y 1223CONFIG_EXT3_FS_POSIX_ACL=y
1192# CONFIG_EXT3_FS_SECURITY is not set 1224# CONFIG_EXT3_FS_SECURITY is not set
@@ -1228,6 +1260,11 @@ CONFIG_AUTOFS4_FS=m
1228# CONFIG_FUSE_FS is not set 1260# CONFIG_FUSE_FS is not set
1229 1261
1230# 1262#
1263# Caches
1264#
1265# CONFIG_FSCACHE is not set
1266
1267#
1231# CD-ROM/DVD Filesystems 1268# CD-ROM/DVD Filesystems
1232# 1269#
1233# CONFIG_ISO9660_FS is not set 1270# CONFIG_ISO9660_FS is not set
@@ -1269,8 +1306,13 @@ CONFIG_MINIX_FS=m
1269# CONFIG_HPFS_FS is not set 1306# CONFIG_HPFS_FS is not set
1270# CONFIG_QNX4FS_FS is not set 1307# CONFIG_QNX4FS_FS is not set
1271CONFIG_ROMFS_FS=m 1308CONFIG_ROMFS_FS=m
1309CONFIG_ROMFS_BACKED_BY_BLOCK=y
1310# CONFIG_ROMFS_BACKED_BY_MTD is not set
1311# CONFIG_ROMFS_BACKED_BY_BOTH is not set
1312CONFIG_ROMFS_ON_BLOCK=y
1272# CONFIG_SYSV_FS is not set 1313# CONFIG_SYSV_FS is not set
1273# CONFIG_UFS_FS is not set 1314# CONFIG_UFS_FS is not set
1315# CONFIG_NILFS2_FS is not set
1274CONFIG_NETWORK_FILESYSTEMS=y 1316CONFIG_NETWORK_FILESYSTEMS=y
1275CONFIG_NFS_FS=y 1317CONFIG_NFS_FS=y
1276CONFIG_NFS_V3=y 1318CONFIG_NFS_V3=y
@@ -1283,7 +1325,6 @@ CONFIG_LOCKD_V4=y
1283CONFIG_NFS_COMMON=y 1325CONFIG_NFS_COMMON=y
1284CONFIG_SUNRPC=y 1326CONFIG_SUNRPC=y
1285CONFIG_SUNRPC_GSS=y 1327CONFIG_SUNRPC_GSS=y
1286# CONFIG_SUNRPC_REGISTER_V4 is not set
1287CONFIG_RPCSEC_GSS_KRB5=y 1328CONFIG_RPCSEC_GSS_KRB5=y
1288# CONFIG_RPCSEC_GSS_SPKM3 is not set 1329# CONFIG_RPCSEC_GSS_SPKM3 is not set
1289CONFIG_SMB_FS=m 1330CONFIG_SMB_FS=m
@@ -1346,6 +1387,7 @@ CONFIG_NLS_KOI8_R=m
1346CONFIG_NLS_KOI8_U=m 1387CONFIG_NLS_KOI8_U=m
1347CONFIG_NLS_UTF8=m 1388CONFIG_NLS_UTF8=m
1348# CONFIG_DLM is not set 1389# CONFIG_DLM is not set
1390# CONFIG_BINARY_PRINTF is not set
1349 1391
1350# 1392#
1351# Library routines 1393# Library routines
@@ -1359,13 +1401,14 @@ CONFIG_CRC_CCITT=m
1359CONFIG_CRC32=y 1401CONFIG_CRC32=y
1360# CONFIG_CRC7 is not set 1402# CONFIG_CRC7 is not set
1361CONFIG_LIBCRC32C=m 1403CONFIG_LIBCRC32C=m
1362CONFIG_ZLIB_INFLATE=m 1404CONFIG_ZLIB_INFLATE=y
1363CONFIG_ZLIB_DEFLATE=m 1405CONFIG_ZLIB_DEFLATE=m
1364CONFIG_PLIST=y 1406CONFIG_DECOMPRESS_GZIP=y
1365CONFIG_HAS_IOMEM=y 1407CONFIG_HAS_IOMEM=y
1366CONFIG_HAS_IOPORT=y 1408CONFIG_HAS_IOPORT=y
1367CONFIG_HAS_DMA=y 1409CONFIG_HAS_DMA=y
1368CONFIG_HAVE_LMB=y 1410CONFIG_HAVE_LMB=y
1411CONFIG_NLATTR=y
1369 1412
1370# 1413#
1371# Kernel hacking 1414# Kernel hacking
@@ -1383,6 +1426,9 @@ CONFIG_DEBUG_KERNEL=y
1383CONFIG_DETECT_SOFTLOCKUP=y 1426CONFIG_DETECT_SOFTLOCKUP=y
1384# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1427# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1385CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1428CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1429CONFIG_DETECT_HUNG_TASK=y
1430# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1431CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1386CONFIG_SCHED_DEBUG=y 1432CONFIG_SCHED_DEBUG=y
1387# CONFIG_SCHEDSTATS is not set 1433# CONFIG_SCHEDSTATS is not set
1388# CONFIG_TIMER_STATS is not set 1434# CONFIG_TIMER_STATS is not set
@@ -1411,9 +1457,12 @@ CONFIG_DEBUG_INFO=y
1411# CONFIG_FAULT_INJECTION is not set 1457# CONFIG_FAULT_INJECTION is not set
1412# CONFIG_LATENCYTOP is not set 1458# CONFIG_LATENCYTOP is not set
1413CONFIG_SYSCTL_SYSCALL_CHECK=y 1459CONFIG_SYSCTL_SYSCALL_CHECK=y
1460# CONFIG_DEBUG_PAGEALLOC is not set
1414CONFIG_HAVE_FUNCTION_TRACER=y 1461CONFIG_HAVE_FUNCTION_TRACER=y
1462CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y 1463CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1464CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1465CONFIG_TRACING_SUPPORT=y
1417 1466
1418# 1467#
1419# Tracers 1468# Tracers
@@ -1422,17 +1471,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1422# CONFIG_PREEMPT_TRACER is not set 1471# CONFIG_PREEMPT_TRACER is not set
1423# CONFIG_SCHED_TRACER is not set 1472# CONFIG_SCHED_TRACER is not set
1424# CONFIG_CONTEXT_SWITCH_TRACER is not set 1473# CONFIG_CONTEXT_SWITCH_TRACER is not set
1474# CONFIG_EVENT_TRACER is not set
1425# CONFIG_BOOT_TRACER is not set 1475# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set 1476# CONFIG_TRACE_BRANCH_PROFILING is not set
1427# CONFIG_STACK_TRACER is not set 1477# CONFIG_STACK_TRACER is not set
1428# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1478# CONFIG_KMEMTRACE is not set
1479# CONFIG_WORKQUEUE_TRACER is not set
1480# CONFIG_BLK_DEV_IO_TRACE is not set
1481# CONFIG_DYNAMIC_DEBUG is not set
1429# CONFIG_SAMPLES is not set 1482# CONFIG_SAMPLES is not set
1430CONFIG_HAVE_ARCH_KGDB=y 1483CONFIG_HAVE_ARCH_KGDB=y
1431# CONFIG_KGDB is not set 1484# CONFIG_KGDB is not set
1432CONFIG_PRINT_STACK_DEPTH=64 1485CONFIG_PRINT_STACK_DEPTH=64
1433# CONFIG_DEBUG_STACKOVERFLOW is not set 1486# CONFIG_DEBUG_STACKOVERFLOW is not set
1434# CONFIG_DEBUG_STACK_USAGE is not set 1487# CONFIG_DEBUG_STACK_USAGE is not set
1435# CONFIG_DEBUG_PAGEALLOC is not set
1436# CONFIG_CODE_PATCHING_SELFTEST is not set 1488# CONFIG_CODE_PATCHING_SELFTEST is not set
1437# CONFIG_FTR_FIXUP_SELFTEST is not set 1489# CONFIG_FTR_FIXUP_SELFTEST is not set
1438# CONFIG_MSI_BITMAP_SELFTEST is not set 1490# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1454,6 +1506,7 @@ CONFIG_SECURITY_NETWORK=y
1454# CONFIG_SECURITY_PATH is not set 1506# CONFIG_SECURITY_PATH is not set
1455# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1507# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1456CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1508CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1509# CONFIG_SECURITY_TOMOYO is not set
1457CONFIG_CRYPTO=y 1510CONFIG_CRYPTO=y
1458 1511
1459# 1512#
@@ -1469,10 +1522,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1469CONFIG_CRYPTO_HASH=y 1522CONFIG_CRYPTO_HASH=y
1470CONFIG_CRYPTO_HASH2=y 1523CONFIG_CRYPTO_HASH2=y
1471CONFIG_CRYPTO_RNG2=y 1524CONFIG_CRYPTO_RNG2=y
1525CONFIG_CRYPTO_PCOMP=y
1472CONFIG_CRYPTO_MANAGER=y 1526CONFIG_CRYPTO_MANAGER=y
1473CONFIG_CRYPTO_MANAGER2=y 1527CONFIG_CRYPTO_MANAGER2=y
1474# CONFIG_CRYPTO_GF128MUL is not set 1528# CONFIG_CRYPTO_GF128MUL is not set
1475CONFIG_CRYPTO_NULL=m 1529CONFIG_CRYPTO_NULL=m
1530CONFIG_CRYPTO_WORKQUEUE=y
1476# CONFIG_CRYPTO_CRYPTD is not set 1531# CONFIG_CRYPTO_CRYPTD is not set
1477CONFIG_CRYPTO_AUTHENC=m 1532CONFIG_CRYPTO_AUTHENC=m
1478CONFIG_CRYPTO_TEST=m 1533CONFIG_CRYPTO_TEST=m
@@ -1542,6 +1597,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1542# Compression 1597# Compression
1543# 1598#
1544CONFIG_CRYPTO_DEFLATE=m 1599CONFIG_CRYPTO_DEFLATE=m
1600# CONFIG_CRYPTO_ZLIB is not set
1545# CONFIG_CRYPTO_LZO is not set 1601# CONFIG_CRYPTO_LZO is not set
1546 1602
1547# 1603#
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index aaab5cc3751c..74f7f7c6fdc4 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:24 2009 4# Wed May 13 17:21:50 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -53,6 +53,7 @@ CONFIG_GENERIC_BUG=y
53CONFIG_REDBOOT=y 53CONFIG_REDBOOT=y
54# CONFIG_PPC_DCR_NATIVE is not set 54# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 55# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
57 58
58# 59#
@@ -70,6 +71,15 @@ CONFIG_SYSVIPC_SYSCTL=y
70# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
71# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
72# 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
73# CONFIG_IKCONFIG is not set 83# CONFIG_IKCONFIG is not set
74CONFIG_LOG_BUF_SHIFT=14 84CONFIG_LOG_BUF_SHIFT=14
75CONFIG_GROUP_SCHED=y 85CONFIG_GROUP_SCHED=y
@@ -85,19 +95,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_BLK_DEV_INITRD is not set 95# CONFIG_BLK_DEV_INITRD is not set
86# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 96# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
87CONFIG_SYSCTL=y 97CONFIG_SYSCTL=y
98CONFIG_ANON_INODES=y
88CONFIG_EMBEDDED=y 99CONFIG_EMBEDDED=y
89# CONFIG_SYSCTL_SYSCALL is not set 100# CONFIG_SYSCTL_SYSCALL is not set
90CONFIG_KALLSYMS=y 101CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 102# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 103# CONFIG_KALLSYMS_EXTRA_PASS is not set
104# CONFIG_STRIP_ASM_SYMS is not set
93CONFIG_HOTPLUG=y 105CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 106CONFIG_PRINTK=y
95CONFIG_BUG=y 107CONFIG_BUG=y
96# CONFIG_ELF_CORE is not set 108# CONFIG_ELF_CORE is not set
97CONFIG_COMPAT_BRK=y
98# CONFIG_BASE_FULL is not set 109# CONFIG_BASE_FULL is not set
99# CONFIG_FUTEX is not set 110# CONFIG_FUTEX is not set
100CONFIG_ANON_INODES=y
101CONFIG_EPOLL=y 111CONFIG_EPOLL=y
102CONFIG_SIGNALFD=y 112CONFIG_SIGNALFD=y
103CONFIG_TIMERFD=y 113CONFIG_TIMERFD=y
@@ -106,10 +116,12 @@ CONFIG_SHMEM=y
106CONFIG_AIO=y 116CONFIG_AIO=y
107# CONFIG_VM_EVENT_COUNTERS is not set 117# CONFIG_VM_EVENT_COUNTERS is not set
108CONFIG_SLUB_DEBUG=y 118CONFIG_SLUB_DEBUG=y
119CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 120# CONFIG_SLAB is not set
110CONFIG_SLUB=y 121CONFIG_SLUB=y
111# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 127CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,13 +129,13 @@ CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 131CONFIG_HAVE_CLK=y
132# CONFIG_SLOW_WORK is not set
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
122CONFIG_BASE_SMALL=1 135CONFIG_BASE_SMALL=1
123# CONFIG_MODULES is not set 136# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 137CONFIG_BLOCK=y
125# CONFIG_LBD is not set 138# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
129 141
@@ -139,11 +151,6 @@ CONFIG_DEFAULT_DEADLINE=y
139# CONFIG_DEFAULT_CFQ is not set 151# CONFIG_DEFAULT_CFQ is not set
140# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="deadline" 153CONFIG_DEFAULT_IOSCHED="deadline"
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
147# CONFIG_FREEZER is not set 154# CONFIG_FREEZER is not set
148 155
149# 156#
@@ -233,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 245CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 246# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 247# CONFIG_PPC_64K_PAGES is not set
248# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
240# CONFIG_PROC_DEVICETREE is not set 250# CONFIG_PROC_DEVICETREE is not set
241# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,14 +280,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 280CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
272CONFIG_TASK_SIZE=0x80000000 282CONFIG_TASK_SIZE=0x80000000
273CONFIG_CONSISTENT_START=0xfd000000
274CONFIG_CONSISTENT_SIZE=0x00200000
275CONFIG_NET=y 283CONFIG_NET=y
276 284
277# 285#
278# Networking options 286# Networking options
279# 287#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 288CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -328,6 +335,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_LAPB is not set 335# CONFIG_LAPB is not set
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
338# CONFIG_PHONET is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set 340# CONFIG_DCB is not set
333 341
@@ -340,7 +348,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_IRDA is not set 348# CONFIG_IRDA is not set
341# CONFIG_BT is not set 349# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set 350# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set
344CONFIG_WIRELESS=y 351CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -439,7 +446,6 @@ CONFIG_MTD_PHYSMAP_OF=y
439# LPDDR flash memory drivers 446# LPDDR flash memory drivers
440# 447#
441# CONFIG_MTD_LPDDR is not set 448# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443 449
444# 450#
445# UBI - Unsorted block images 451# UBI - Unsorted block images
@@ -463,6 +469,7 @@ CONFIG_HAVE_IDE=y
463# CONFIG_MD is not set 469# CONFIG_MD is not set
464# CONFIG_MACINTOSH_DRIVERS is not set 470# CONFIG_MACINTOSH_DRIVERS is not set
465CONFIG_NETDEVICES=y 471CONFIG_NETDEVICES=y
472CONFIG_COMPAT_NET_DEV_OPS=y
466# CONFIG_DUMMY is not set 473# CONFIG_DUMMY is not set
467# CONFIG_BONDING is not set 474# CONFIG_BONDING is not set
468# CONFIG_MACVLAN is not set 475# CONFIG_MACVLAN is not set
@@ -491,6 +498,8 @@ CONFIG_DAVICOM_PHY=y
491# CONFIG_MDIO_BITBANG is not set 498# CONFIG_MDIO_BITBANG is not set
492CONFIG_NET_ETHERNET=y 499CONFIG_NET_ETHERNET=y
493CONFIG_MII=y 500CONFIG_MII=y
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 504# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 505# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -511,7 +520,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
511# 520#
512# CONFIG_WLAN_PRE80211 is not set 521# CONFIG_WLAN_PRE80211 is not set
513# CONFIG_WLAN_80211 is not set 522# CONFIG_WLAN_80211 is not set
514# CONFIG_IWLWIFI_LEDS is not set
515 523
516# 524#
517# Enable WiMAX (Networking options) to see the WiMAX drivers 525# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -558,7 +566,6 @@ CONFIG_MOUSE_PS2=y
558CONFIG_MOUSE_PS2_ALPS=y 566CONFIG_MOUSE_PS2_ALPS=y
559CONFIG_MOUSE_PS2_LOGIPS2PP=y 567CONFIG_MOUSE_PS2_LOGIPS2PP=y
560CONFIG_MOUSE_PS2_SYNAPTICS=y 568CONFIG_MOUSE_PS2_SYNAPTICS=y
561CONFIG_MOUSE_PS2_LIFEBOOK=y
562CONFIG_MOUSE_PS2_TRACKPOINT=y 569CONFIG_MOUSE_PS2_TRACKPOINT=y
563# CONFIG_MOUSE_PS2_ELANTECH is not set 570# CONFIG_MOUSE_PS2_ELANTECH is not set
564# CONFIG_MOUSE_PS2_TOUCHKIT is not set 571# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -606,6 +613,7 @@ CONFIG_UNIX98_PTYS=y
606# CONFIG_HVC_UDBG is not set 613# CONFIG_HVC_UDBG is not set
607# CONFIG_IPMI_HANDLER is not set 614# CONFIG_IPMI_HANDLER is not set
608CONFIG_HW_RANDOM=y 615CONFIG_HW_RANDOM=y
616# CONFIG_HW_RANDOM_TIMERIOMEM is not set
609# CONFIG_NVRAM is not set 617# CONFIG_NVRAM is not set
610CONFIG_GEN_RTC=y 618CONFIG_GEN_RTC=y
611# CONFIG_GEN_RTC_X is not set 619# CONFIG_GEN_RTC_X is not set
@@ -675,6 +683,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
675# CONFIG_EDAC is not set 683# CONFIG_EDAC is not set
676# CONFIG_RTC_CLASS is not set 684# CONFIG_RTC_CLASS is not set
677# CONFIG_DMADEVICES is not set 685# CONFIG_DMADEVICES is not set
686# CONFIG_AUXDISPLAY is not set
678# CONFIG_UIO is not set 687# CONFIG_UIO is not set
679# CONFIG_STAGING is not set 688# CONFIG_STAGING is not set
680 689
@@ -699,6 +708,11 @@ CONFIG_FILE_LOCKING=y
699# CONFIG_FUSE_FS is not set 708# CONFIG_FUSE_FS is not set
700 709
701# 710#
711# Caches
712#
713# CONFIG_FSCACHE is not set
714
715#
702# CD-ROM/DVD Filesystems 716# CD-ROM/DVD Filesystems
703# 717#
704# CONFIG_ISO9660_FS is not set 718# CONFIG_ISO9660_FS is not set
@@ -742,6 +756,7 @@ CONFIG_CRAMFS=y
742# CONFIG_ROMFS_FS is not set 756# CONFIG_ROMFS_FS is not set
743# CONFIG_SYSV_FS is not set 757# CONFIG_SYSV_FS is not set
744# CONFIG_UFS_FS is not set 758# CONFIG_UFS_FS is not set
759# CONFIG_NILFS2_FS is not set
745CONFIG_NETWORK_FILESYSTEMS=y 760CONFIG_NETWORK_FILESYSTEMS=y
746CONFIG_NFS_FS=y 761CONFIG_NFS_FS=y
747CONFIG_NFS_V3=y 762CONFIG_NFS_V3=y
@@ -753,7 +768,6 @@ CONFIG_LOCKD=y
753CONFIG_LOCKD_V4=y 768CONFIG_LOCKD_V4=y
754CONFIG_NFS_COMMON=y 769CONFIG_NFS_COMMON=y
755CONFIG_SUNRPC=y 770CONFIG_SUNRPC=y
756# CONFIG_SUNRPC_REGISTER_V4 is not set
757# CONFIG_RPCSEC_GSS_KRB5 is not set 771# CONFIG_RPCSEC_GSS_KRB5 is not set
758# CONFIG_RPCSEC_GSS_SPKM3 is not set 772# CONFIG_RPCSEC_GSS_SPKM3 is not set
759# CONFIG_SMB_FS is not set 773# CONFIG_SMB_FS is not set
@@ -785,6 +799,7 @@ CONFIG_MSDOS_PARTITION=y
785# CONFIG_SYSV68_PARTITION is not set 799# CONFIG_SYSV68_PARTITION is not set
786# CONFIG_NLS is not set 800# CONFIG_NLS is not set
787# CONFIG_DLM is not set 801# CONFIG_DLM is not set
802# CONFIG_BINARY_PRINTF is not set
788 803
789# 804#
790# Library routines 805# Library routines
@@ -802,6 +817,7 @@ CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 817CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 818CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 819CONFIG_HAVE_LMB=y
820CONFIG_NLATTR=y
805 821
806# 822#
807# Kernel hacking 823# Kernel hacking
@@ -819,6 +835,9 @@ CONFIG_DEBUG_KERNEL=y
819CONFIG_DETECT_SOFTLOCKUP=y 835CONFIG_DETECT_SOFTLOCKUP=y
820# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 836# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
821CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 837CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
838CONFIG_DETECT_HUNG_TASK=y
839# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
840CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
822CONFIG_SCHED_DEBUG=y 841CONFIG_SCHED_DEBUG=y
823# CONFIG_SCHEDSTATS is not set 842# CONFIG_SCHEDSTATS is not set
824# CONFIG_TIMER_STATS is not set 843# CONFIG_TIMER_STATS is not set
@@ -845,9 +864,12 @@ CONFIG_DEBUG_INFO=y
845# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 864# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
846# CONFIG_FAULT_INJECTION is not set 865# CONFIG_FAULT_INJECTION is not set
847# CONFIG_LATENCYTOP is not set 866# CONFIG_LATENCYTOP is not set
867# CONFIG_DEBUG_PAGEALLOC is not set
848CONFIG_HAVE_FUNCTION_TRACER=y 868CONFIG_HAVE_FUNCTION_TRACER=y
869CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
849CONFIG_HAVE_DYNAMIC_FTRACE=y 870CONFIG_HAVE_DYNAMIC_FTRACE=y
850CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 871CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
872CONFIG_TRACING_SUPPORT=y
851 873
852# 874#
853# Tracers 875# Tracers
@@ -855,17 +877,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
855# CONFIG_FUNCTION_TRACER is not set 877# CONFIG_FUNCTION_TRACER is not set
856# CONFIG_SCHED_TRACER is not set 878# CONFIG_SCHED_TRACER is not set
857# CONFIG_CONTEXT_SWITCH_TRACER is not set 879# CONFIG_CONTEXT_SWITCH_TRACER is not set
880# CONFIG_EVENT_TRACER is not set
858# CONFIG_BOOT_TRACER is not set 881# CONFIG_BOOT_TRACER is not set
859# CONFIG_TRACE_BRANCH_PROFILING is not set 882# CONFIG_TRACE_BRANCH_PROFILING is not set
860# CONFIG_STACK_TRACER is not set 883# CONFIG_STACK_TRACER is not set
861# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 884# CONFIG_KMEMTRACE is not set
885# CONFIG_WORKQUEUE_TRACER is not set
886# CONFIG_BLK_DEV_IO_TRACE is not set
887# CONFIG_DYNAMIC_DEBUG is not set
862# CONFIG_SAMPLES is not set 888# CONFIG_SAMPLES is not set
863CONFIG_HAVE_ARCH_KGDB=y 889CONFIG_HAVE_ARCH_KGDB=y
864# CONFIG_KGDB is not set 890# CONFIG_KGDB is not set
865CONFIG_PRINT_STACK_DEPTH=64 891CONFIG_PRINT_STACK_DEPTH=64
866# CONFIG_DEBUG_STACKOVERFLOW is not set 892# CONFIG_DEBUG_STACKOVERFLOW is not set
867# CONFIG_DEBUG_STACK_USAGE is not set 893# CONFIG_DEBUG_STACK_USAGE is not set
868# CONFIG_DEBUG_PAGEALLOC is not set
869# CONFIG_CODE_PATCHING_SELFTEST is not set 894# CONFIG_CODE_PATCHING_SELFTEST is not set
870# CONFIG_FTR_FIXUP_SELFTEST is not set 895# CONFIG_FTR_FIXUP_SELFTEST is not set
871# CONFIG_MSI_BITMAP_SELFTEST is not set 896# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 5103319a7f56..9ffa8de92803 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:26 2009 4# Wed May 13 17:21:51 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56# CONFIG_DEFAULT_UIMAGE is not set 57# CONFIG_DEFAULT_UIMAGE is not set
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,12 +72,22 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73CONFIG_BSD_PROCESS_ACCT=y 76CONFIG_BSD_PROCESS_ACCT=y
74# CONFIG_BSD_PROCESS_ACCT_V3 is not set 77# CONFIG_BSD_PROCESS_ACCT_V3 is not set
75# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
76CONFIG_AUDIT=y 79CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 80CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 81CONFIG_AUDIT_TREE=y
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
80CONFIG_LOG_BUF_SHIFT=17 92CONFIG_LOG_BUF_SHIFT=17
81CONFIG_GROUP_SCHED=y 93CONFIG_GROUP_SCHED=y
@@ -92,23 +104,27 @@ CONFIG_NAMESPACES=y
92# CONFIG_IPC_NS is not set 104# CONFIG_IPC_NS is not set
93# CONFIG_USER_NS is not set 105# CONFIG_USER_NS is not set
94# CONFIG_PID_NS is not set 106# CONFIG_PID_NS is not set
107# CONFIG_NET_NS is not set
95CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
96CONFIG_INITRAMFS_SOURCE="" 109CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y
111CONFIG_RD_BZIP2=y
112CONFIG_RD_LZMA=y
97CONFIG_CC_OPTIMIZE_FOR_SIZE=y 113CONFIG_CC_OPTIMIZE_FOR_SIZE=y
98CONFIG_SYSCTL=y 114CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y
99# CONFIG_EMBEDDED is not set 116# CONFIG_EMBEDDED is not set
100CONFIG_SYSCTL_SYSCALL=y 117CONFIG_SYSCTL_SYSCALL=y
101CONFIG_KALLSYMS=y 118CONFIG_KALLSYMS=y
102# CONFIG_KALLSYMS_ALL is not set 119# CONFIG_KALLSYMS_ALL is not set
103CONFIG_KALLSYMS_EXTRA_PASS=y 120CONFIG_KALLSYMS_EXTRA_PASS=y
121# CONFIG_STRIP_ASM_SYMS is not set
104CONFIG_HOTPLUG=y 122CONFIG_HOTPLUG=y
105CONFIG_PRINTK=y 123CONFIG_PRINTK=y
106CONFIG_BUG=y 124CONFIG_BUG=y
107CONFIG_ELF_CORE=y 125CONFIG_ELF_CORE=y
108CONFIG_COMPAT_BRK=y
109CONFIG_BASE_FULL=y 126CONFIG_BASE_FULL=y
110CONFIG_FUTEX=y 127CONFIG_FUTEX=y
111CONFIG_ANON_INODES=y
112CONFIG_EPOLL=y 128CONFIG_EPOLL=y
113CONFIG_SIGNALFD=y 129CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 130CONFIG_TIMERFD=y
@@ -118,6 +134,7 @@ CONFIG_AIO=y
118CONFIG_VM_EVENT_COUNTERS=y 134CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y 135CONFIG_PCI_QUIRKS=y
120CONFIG_SLUB_DEBUG=y 136CONFIG_SLUB_DEBUG=y
137CONFIG_COMPAT_BRK=y
121# CONFIG_SLAB is not set 138# CONFIG_SLAB is not set
122CONFIG_SLUB=y 139CONFIG_SLUB=y
123# CONFIG_SLOB is not set 140# CONFIG_SLOB is not set
@@ -133,6 +150,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
133CONFIG_HAVE_KPROBES=y 150CONFIG_HAVE_KPROBES=y
134CONFIG_HAVE_KRETPROBES=y 151CONFIG_HAVE_KRETPROBES=y
135CONFIG_HAVE_ARCH_TRACEHOOK=y 152CONFIG_HAVE_ARCH_TRACEHOOK=y
153# CONFIG_SLOW_WORK is not set
136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 154# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
137CONFIG_SLABINFO=y 155CONFIG_SLABINFO=y
138CONFIG_RT_MUTEXES=y 156CONFIG_RT_MUTEXES=y
@@ -145,7 +163,6 @@ CONFIG_MODVERSIONS=y
145# CONFIG_MODULE_SRCVERSION_ALL is not set 163# CONFIG_MODULE_SRCVERSION_ALL is not set
146CONFIG_BLOCK=y 164CONFIG_BLOCK=y
147CONFIG_LBD=y 165CONFIG_LBD=y
148# CONFIG_BLK_DEV_IO_TRACE is not set
149# CONFIG_BLK_DEV_BSG is not set 166# CONFIG_BLK_DEV_BSG is not set
150# CONFIG_BLK_DEV_INTEGRITY is not set 167# CONFIG_BLK_DEV_INTEGRITY is not set
151 168
@@ -161,18 +178,11 @@ CONFIG_IOSCHED_CFQ=y
161CONFIG_DEFAULT_CFQ=y 178CONFIG_DEFAULT_CFQ=y
162# CONFIG_DEFAULT_NOOP is not set 179# CONFIG_DEFAULT_NOOP is not set
163CONFIG_DEFAULT_IOSCHED="cfq" 180CONFIG_DEFAULT_IOSCHED="cfq"
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
169# CONFIG_FREEZER is not set 181# CONFIG_FREEZER is not set
170 182
171# 183#
172# Platform support 184# Platform support
173# 185#
174CONFIG_PPC_MULTIPLATFORM=y
175CONFIG_CLASSIC32=y
176# CONFIG_PPC_CHRP is not set 186# CONFIG_PPC_CHRP is not set
177# CONFIG_MPC5121_ADS is not set 187# CONFIG_MPC5121_ADS is not set
178# CONFIG_MPC5121_GENERIC is not set 188# CONFIG_MPC5121_GENERIC is not set
@@ -192,6 +202,8 @@ CONFIG_EMBEDDED6xx=y
192# CONFIG_PPC_PRPMC2800 is not set 202# CONFIG_PPC_PRPMC2800 is not set
193CONFIG_PPC_C2K=y 203CONFIG_PPC_C2K=y
194CONFIG_MV64X60=y 204CONFIG_MV64X60=y
205# CONFIG_AMIGAONE is not set
206CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
195# CONFIG_IPIC is not set 207# CONFIG_IPIC is not set
196# CONFIG_MPIC is not set 208# CONFIG_MPIC is not set
197# CONFIG_MPIC_WEIRD is not set 209# CONFIG_MPIC_WEIRD is not set
@@ -268,9 +280,12 @@ CONFIG_ZONE_DMA_FLAG=1
268CONFIG_BOUNCE=y 280CONFIG_BOUNCE=y
269CONFIG_VIRT_TO_BUS=y 281CONFIG_VIRT_TO_BUS=y
270CONFIG_UNEVICTABLE_LRU=y 282CONFIG_UNEVICTABLE_LRU=y
283CONFIG_HAVE_MLOCK=y
284CONFIG_HAVE_MLOCKED_PAGE_BIT=y
271CONFIG_PPC_4K_PAGES=y 285CONFIG_PPC_4K_PAGES=y
272# CONFIG_PPC_16K_PAGES is not set 286# CONFIG_PPC_16K_PAGES is not set
273# CONFIG_PPC_64K_PAGES is not set 287# CONFIG_PPC_64K_PAGES is not set
288# CONFIG_PPC_256K_PAGES is not set
274CONFIG_FORCE_MAX_ZONEORDER=11 289CONFIG_FORCE_MAX_ZONEORDER=11
275# CONFIG_PROC_DEVICETREE is not set 290# CONFIG_PROC_DEVICETREE is not set
276# CONFIG_CMDLINE_BOOL is not set 291# CONFIG_CMDLINE_BOOL is not set
@@ -295,6 +310,7 @@ CONFIG_PCI_MSI=y
295# CONFIG_PCI_LEGACY is not set 310# CONFIG_PCI_LEGACY is not set
296# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
297# CONFIG_PCI_STUB is not set 312# CONFIG_PCI_STUB is not set
313# CONFIG_PCI_IOV is not set
298# CONFIG_PCCARD is not set 314# CONFIG_PCCARD is not set
299CONFIG_HOTPLUG_PCI=y 315CONFIG_HOTPLUG_PCI=y
300# CONFIG_HOTPLUG_PCI_FAKE is not set 316# CONFIG_HOTPLUG_PCI_FAKE is not set
@@ -315,15 +331,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
315CONFIG_KERNEL_START=0xc0000000 331CONFIG_KERNEL_START=0xc0000000
316CONFIG_PHYSICAL_START=0x00000000 332CONFIG_PHYSICAL_START=0x00000000
317CONFIG_TASK_SIZE=0xc0000000 333CONFIG_TASK_SIZE=0xc0000000
318CONFIG_CONSISTENT_START=0xff100000
319CONFIG_CONSISTENT_SIZE=0x00200000
320CONFIG_NET=y 334CONFIG_NET=y
321 335
322# 336#
323# Networking options 337# Networking options
324# 338#
325# CONFIG_NET_NS is not set
326CONFIG_COMPAT_NET_DEV_OPS=y
327CONFIG_PACKET=y 339CONFIG_PACKET=y
328CONFIG_PACKET_MMAP=y 340CONFIG_PACKET_MMAP=y
329CONFIG_UNIX=y 341CONFIG_UNIX=y
@@ -364,7 +376,7 @@ CONFIG_INET_TUNNEL=m
364CONFIG_INET_XFRM_MODE_TRANSPORT=y 376CONFIG_INET_XFRM_MODE_TRANSPORT=y
365CONFIG_INET_XFRM_MODE_TUNNEL=y 377CONFIG_INET_XFRM_MODE_TUNNEL=y
366CONFIG_INET_XFRM_MODE_BEET=y 378CONFIG_INET_XFRM_MODE_BEET=y
367CONFIG_INET_LRO=m 379CONFIG_INET_LRO=y
368CONFIG_INET_DIAG=y 380CONFIG_INET_DIAG=y
369CONFIG_INET_TCP_DIAG=y 381CONFIG_INET_TCP_DIAG=y
370# CONFIG_TCP_CONG_ADVANCED is not set 382# CONFIG_TCP_CONG_ADVANCED is not set
@@ -403,9 +415,11 @@ CONFIG_BRIDGE_NETFILTER=y
403# CONFIG_NETFILTER_NETLINK_QUEUE is not set 415# CONFIG_NETFILTER_NETLINK_QUEUE is not set
404# CONFIG_NETFILTER_NETLINK_LOG is not set 416# CONFIG_NETFILTER_NETLINK_LOG is not set
405# CONFIG_NF_CONNTRACK is not set 417# CONFIG_NF_CONNTRACK is not set
418# CONFIG_NETFILTER_TPROXY is not set
406CONFIG_NETFILTER_XTABLES=m 419CONFIG_NETFILTER_XTABLES=m
407# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 420# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
408# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 421# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
422# CONFIG_NETFILTER_XT_TARGET_HL is not set
409# CONFIG_NETFILTER_XT_TARGET_MARK is not set 423# CONFIG_NETFILTER_XT_TARGET_MARK is not set
410# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 424# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
411# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 425# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -419,6 +433,7 @@ CONFIG_NETFILTER_XTABLES=m
419# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 433# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
420# CONFIG_NETFILTER_XT_MATCH_ESP is not set 434# CONFIG_NETFILTER_XT_MATCH_ESP is not set
421# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 435# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
436CONFIG_NETFILTER_XT_MATCH_HL=m
422# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 437# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
423# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 438# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
424# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 439# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -508,11 +523,11 @@ CONFIG_IP6_NF_MATCH_HL=m
508CONFIG_IP6_NF_MATCH_IPV6HEADER=m 523CONFIG_IP6_NF_MATCH_IPV6HEADER=m
509# CONFIG_IP6_NF_MATCH_MH is not set 524# CONFIG_IP6_NF_MATCH_MH is not set
510CONFIG_IP6_NF_MATCH_RT=m 525CONFIG_IP6_NF_MATCH_RT=m
526# CONFIG_IP6_NF_TARGET_HL is not set
511CONFIG_IP6_NF_TARGET_LOG=m 527CONFIG_IP6_NF_TARGET_LOG=m
512CONFIG_IP6_NF_FILTER=m 528CONFIG_IP6_NF_FILTER=m
513# CONFIG_IP6_NF_TARGET_REJECT is not set 529# CONFIG_IP6_NF_TARGET_REJECT is not set
514CONFIG_IP6_NF_MANGLE=m 530CONFIG_IP6_NF_MANGLE=m
515# CONFIG_IP6_NF_TARGET_HL is not set
516CONFIG_IP6_NF_RAW=m 531CONFIG_IP6_NF_RAW=m
517# CONFIG_IP6_NF_SECURITY is not set 532# CONFIG_IP6_NF_SECURITY is not set
518CONFIG_BRIDGE_NF_EBTABLES=m 533CONFIG_BRIDGE_NF_EBTABLES=m
@@ -544,6 +559,7 @@ CONFIG_IP_SCTP=m
544# CONFIG_SCTP_HMAC_NONE is not set 559# CONFIG_SCTP_HMAC_NONE is not set
545# CONFIG_SCTP_HMAC_SHA1 is not set 560# CONFIG_SCTP_HMAC_SHA1 is not set
546CONFIG_SCTP_HMAC_MD5=y 561CONFIG_SCTP_HMAC_MD5=y
562# CONFIG_RDS is not set
547# CONFIG_TIPC is not set 563# CONFIG_TIPC is not set
548CONFIG_ATM=m 564CONFIG_ATM=m
549CONFIG_ATM_CLIP=m 565CONFIG_ATM_CLIP=m
@@ -566,6 +582,7 @@ CONFIG_LLC=m
566# CONFIG_LAPB is not set 582# CONFIG_LAPB is not set
567# CONFIG_ECONET is not set 583# CONFIG_ECONET is not set
568# CONFIG_WAN_ROUTER is not set 584# CONFIG_WAN_ROUTER is not set
585# CONFIG_PHONET is not set
569CONFIG_NET_SCHED=y 586CONFIG_NET_SCHED=y
570 587
571# 588#
@@ -612,6 +629,7 @@ CONFIG_NET_SCH_FIFO=y
612# 629#
613# CONFIG_NET_PKTGEN is not set 630# CONFIG_NET_PKTGEN is not set
614# CONFIG_NET_TCPPROBE is not set 631# CONFIG_NET_TCPPROBE is not set
632# CONFIG_NET_DROP_MONITOR is not set
615# CONFIG_HAMRADIO is not set 633# CONFIG_HAMRADIO is not set
616# CONFIG_CAN is not set 634# CONFIG_CAN is not set
617# CONFIG_IRDA is not set 635# CONFIG_IRDA is not set
@@ -638,7 +656,6 @@ CONFIG_BT_HCIBCM203X=m
638CONFIG_BT_HCIBFUSB=m 656CONFIG_BT_HCIBFUSB=m
639CONFIG_BT_HCIVHCI=m 657CONFIG_BT_HCIVHCI=m
640# CONFIG_AF_RXRPC is not set 658# CONFIG_AF_RXRPC is not set
641# CONFIG_PHONET is not set
642CONFIG_FIB_RULES=y 659CONFIG_FIB_RULES=y
643CONFIG_WIRELESS=y 660CONFIG_WIRELESS=y
644# CONFIG_CFG80211 is not set 661# CONFIG_CFG80211 is not set
@@ -748,7 +765,6 @@ CONFIG_MTD_PHYSMAP_OF=y
748# LPDDR flash memory drivers 765# LPDDR flash memory drivers
749# 766#
750# CONFIG_MTD_LPDDR is not set 767# CONFIG_MTD_LPDDR is not set
751# CONFIG_MTD_QINFO_PROBE is not set
752 768
753# 769#
754# UBI - Unsorted block images 770# UBI - Unsorted block images
@@ -846,9 +862,11 @@ CONFIG_MEGARAID_MM=m
846CONFIG_MEGARAID_MAILBOX=m 862CONFIG_MEGARAID_MAILBOX=m
847# CONFIG_MEGARAID_LEGACY is not set 863# CONFIG_MEGARAID_LEGACY is not set
848CONFIG_MEGARAID_SAS=m 864CONFIG_MEGARAID_SAS=m
865# CONFIG_SCSI_MPT2SAS is not set
849# CONFIG_SCSI_HPTIOP is not set 866# CONFIG_SCSI_HPTIOP is not set
850# CONFIG_SCSI_BUSLOGIC is not set 867# CONFIG_SCSI_BUSLOGIC is not set
851# CONFIG_LIBFC is not set 868# CONFIG_LIBFC is not set
869# CONFIG_LIBFCOE is not set
852# CONFIG_FCOE is not set 870# CONFIG_FCOE is not set
853# CONFIG_SCSI_DMX3191D is not set 871# CONFIG_SCSI_DMX3191D is not set
854# CONFIG_SCSI_EATA is not set 872# CONFIG_SCSI_EATA is not set
@@ -875,6 +893,7 @@ CONFIG_SCSI_LPFC=m
875# CONFIG_SCSI_DEBUG is not set 893# CONFIG_SCSI_DEBUG is not set
876# CONFIG_SCSI_SRP is not set 894# CONFIG_SCSI_SRP is not set
877# CONFIG_SCSI_DH is not set 895# CONFIG_SCSI_DH is not set
896# CONFIG_SCSI_OSD_INITIATOR is not set
878# CONFIG_ATA is not set 897# CONFIG_ATA is not set
879# CONFIG_MD is not set 898# CONFIG_MD is not set
880# CONFIG_FUSION is not set 899# CONFIG_FUSION is not set
@@ -891,6 +910,7 @@ CONFIG_SCSI_LPFC=m
891# CONFIG_I2O is not set 910# CONFIG_I2O is not set
892# CONFIG_MACINTOSH_DRIVERS is not set 911# CONFIG_MACINTOSH_DRIVERS is not set
893CONFIG_NETDEVICES=y 912CONFIG_NETDEVICES=y
913CONFIG_COMPAT_NET_DEV_OPS=y
894CONFIG_DUMMY=m 914CONFIG_DUMMY=m
895CONFIG_BONDING=m 915CONFIG_BONDING=m
896# CONFIG_MACVLAN is not set 916# CONFIG_MACVLAN is not set
@@ -924,6 +944,8 @@ CONFIG_MII=y
924# CONFIG_SUNGEM is not set 944# CONFIG_SUNGEM is not set
925# CONFIG_CASSINI is not set 945# CONFIG_CASSINI is not set
926# CONFIG_NET_VENDOR_3COM is not set 946# CONFIG_NET_VENDOR_3COM is not set
947# CONFIG_ETHOC is not set
948# CONFIG_DNET is not set
927# CONFIG_NET_TULIP is not set 949# CONFIG_NET_TULIP is not set
928# CONFIG_HP100 is not set 950# CONFIG_HP100 is not set
929# CONFIG_IBM_NEW_EMAC_ZMII is not set 951# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -943,6 +965,7 @@ CONFIG_NETDEV_1000=y
943# CONFIG_E1000E is not set 965# CONFIG_E1000E is not set
944# CONFIG_IP1000 is not set 966# CONFIG_IP1000 is not set
945# CONFIG_IGB is not set 967# CONFIG_IGB is not set
968# CONFIG_IGBVF is not set
946# CONFIG_NS83820 is not set 969# CONFIG_NS83820 is not set
947# CONFIG_HAMACHI is not set 970# CONFIG_HAMACHI is not set
948# CONFIG_YELLOWFIN is not set 971# CONFIG_YELLOWFIN is not set
@@ -957,6 +980,7 @@ CONFIG_MV643XX_ETH=y
957# CONFIG_QLA3XXX is not set 980# CONFIG_QLA3XXX is not set
958# CONFIG_ATL1 is not set 981# CONFIG_ATL1 is not set
959# CONFIG_ATL1E is not set 982# CONFIG_ATL1E is not set
983# CONFIG_ATL1C is not set
960# CONFIG_JME is not set 984# CONFIG_JME is not set
961# CONFIG_NETDEV_10000 is not set 985# CONFIG_NETDEV_10000 is not set
962# CONFIG_TR is not set 986# CONFIG_TR is not set
@@ -966,7 +990,6 @@ CONFIG_MV643XX_ETH=y
966# 990#
967# CONFIG_WLAN_PRE80211 is not set 991# CONFIG_WLAN_PRE80211 is not set
968# CONFIG_WLAN_80211 is not set 992# CONFIG_WLAN_80211 is not set
969# CONFIG_IWLWIFI_LEDS is not set
970 993
971# 994#
972# Enable WiMAX (Networking options) to see the WiMAX drivers 995# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1084,6 +1107,7 @@ CONFIG_UNIX98_PTYS=y
1084# CONFIG_HVC_UDBG is not set 1107# CONFIG_HVC_UDBG is not set
1085# CONFIG_IPMI_HANDLER is not set 1108# CONFIG_IPMI_HANDLER is not set
1086CONFIG_HW_RANDOM=m 1109CONFIG_HW_RANDOM=m
1110# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1087CONFIG_NVRAM=m 1111CONFIG_NVRAM=m
1088CONFIG_GEN_RTC=m 1112CONFIG_GEN_RTC=m
1089# CONFIG_GEN_RTC_X is not set 1113# CONFIG_GEN_RTC_X is not set
@@ -1150,12 +1174,9 @@ CONFIG_I2C_MV64XXX=m
1150# Miscellaneous I2C Chip support 1174# Miscellaneous I2C Chip support
1151# 1175#
1152# CONFIG_DS1682 is not set 1176# CONFIG_DS1682 is not set
1153# CONFIG_EEPROM_AT24 is not set
1154CONFIG_EEPROM_LEGACY=m
1155CONFIG_SENSORS_PCF8574=m 1177CONFIG_SENSORS_PCF8574=m
1156# CONFIG_PCF8575 is not set 1178# CONFIG_PCF8575 is not set
1157# CONFIG_SENSORS_PCA9539 is not set 1179# CONFIG_SENSORS_PCA9539 is not set
1158CONFIG_SENSORS_PCF8591=m
1159# CONFIG_SENSORS_MAX6875 is not set 1180# CONFIG_SENSORS_MAX6875 is not set
1160# CONFIG_SENSORS_TSL2550 is not set 1181# CONFIG_SENSORS_TSL2550 is not set
1161# CONFIG_I2C_DEBUG_CORE is not set 1182# CONFIG_I2C_DEBUG_CORE is not set
@@ -1187,6 +1208,7 @@ CONFIG_SENSORS_DS1621=m
1187# CONFIG_SENSORS_F71805F is not set 1208# CONFIG_SENSORS_F71805F is not set
1188# CONFIG_SENSORS_F71882FG is not set 1209# CONFIG_SENSORS_F71882FG is not set
1189# CONFIG_SENSORS_F75375S is not set 1210# CONFIG_SENSORS_F75375S is not set
1211# CONFIG_SENSORS_G760A is not set
1190CONFIG_SENSORS_GL518SM=m 1212CONFIG_SENSORS_GL518SM=m
1191# CONFIG_SENSORS_GL520SM is not set 1213# CONFIG_SENSORS_GL520SM is not set
1192CONFIG_SENSORS_IT87=m 1214CONFIG_SENSORS_IT87=m
@@ -1201,11 +1223,14 @@ CONFIG_SENSORS_LM87=m
1201CONFIG_SENSORS_LM90=m 1223CONFIG_SENSORS_LM90=m
1202# CONFIG_SENSORS_LM92 is not set 1224# CONFIG_SENSORS_LM92 is not set
1203# CONFIG_SENSORS_LM93 is not set 1225# CONFIG_SENSORS_LM93 is not set
1226# CONFIG_SENSORS_LTC4215 is not set
1204# CONFIG_SENSORS_LTC4245 is not set 1227# CONFIG_SENSORS_LTC4245 is not set
1228# CONFIG_SENSORS_LM95241 is not set
1205CONFIG_SENSORS_MAX1619=m 1229CONFIG_SENSORS_MAX1619=m
1206# CONFIG_SENSORS_MAX6650 is not set 1230# CONFIG_SENSORS_MAX6650 is not set
1207# CONFIG_SENSORS_PC87360 is not set 1231# CONFIG_SENSORS_PC87360 is not set
1208# CONFIG_SENSORS_PC87427 is not set 1232# CONFIG_SENSORS_PC87427 is not set
1233CONFIG_SENSORS_PCF8591=m
1209# CONFIG_SENSORS_SIS5595 is not set 1234# CONFIG_SENSORS_SIS5595 is not set
1210# CONFIG_SENSORS_DME1737 is not set 1235# CONFIG_SENSORS_DME1737 is not set
1211CONFIG_SENSORS_SMSC47M1=m 1236CONFIG_SENSORS_SMSC47M1=m
@@ -1363,21 +1388,21 @@ CONFIG_USB_PRINTER=m
1363# CONFIG_USB_TMC is not set 1388# CONFIG_USB_TMC is not set
1364 1389
1365# 1390#
1366# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1391# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1367# 1392#
1368 1393
1369# 1394#
1370# see USB_STORAGE Help for more information 1395# also be needed; see USB_STORAGE Help for more info
1371# 1396#
1372CONFIG_USB_STORAGE=m 1397CONFIG_USB_STORAGE=m
1373# CONFIG_USB_STORAGE_DEBUG is not set 1398# CONFIG_USB_STORAGE_DEBUG is not set
1374CONFIG_USB_STORAGE_DATAFAB=y 1399CONFIG_USB_STORAGE_DATAFAB=m
1375CONFIG_USB_STORAGE_FREECOM=y 1400CONFIG_USB_STORAGE_FREECOM=m
1376CONFIG_USB_STORAGE_ISD200=y 1401CONFIG_USB_STORAGE_ISD200=m
1377# CONFIG_USB_STORAGE_USBAT is not set 1402# CONFIG_USB_STORAGE_USBAT is not set
1378CONFIG_USB_STORAGE_SDDR09=y 1403CONFIG_USB_STORAGE_SDDR09=m
1379CONFIG_USB_STORAGE_SDDR55=y 1404CONFIG_USB_STORAGE_SDDR55=m
1380CONFIG_USB_STORAGE_JUMPSHOT=y 1405CONFIG_USB_STORAGE_JUMPSHOT=m
1381# CONFIG_USB_STORAGE_ALAUDA is not set 1406# CONFIG_USB_STORAGE_ALAUDA is not set
1382# CONFIG_USB_STORAGE_ONETOUCH is not set 1407# CONFIG_USB_STORAGE_ONETOUCH is not set
1383# CONFIG_USB_STORAGE_KARMA is not set 1408# CONFIG_USB_STORAGE_KARMA is not set
@@ -1402,7 +1427,7 @@ CONFIG_USB_SERIAL_BELKIN=m
1402# CONFIG_USB_SERIAL_CH341 is not set 1427# CONFIG_USB_SERIAL_CH341 is not set
1403CONFIG_USB_SERIAL_WHITEHEAT=m 1428CONFIG_USB_SERIAL_WHITEHEAT=m
1404CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m 1429CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
1405# CONFIG_USB_SERIAL_CP2101 is not set 1430# CONFIG_USB_SERIAL_CP210X is not set
1406# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1431# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1407CONFIG_USB_SERIAL_EMPEG=m 1432CONFIG_USB_SERIAL_EMPEG=m
1408CONFIG_USB_SERIAL_FTDI_SIO=m 1433CONFIG_USB_SERIAL_FTDI_SIO=m
@@ -1438,12 +1463,14 @@ CONFIG_USB_SERIAL_MCT_U232=m
1438# CONFIG_USB_SERIAL_NAVMAN is not set 1463# CONFIG_USB_SERIAL_NAVMAN is not set
1439CONFIG_USB_SERIAL_PL2303=m 1464CONFIG_USB_SERIAL_PL2303=m
1440# CONFIG_USB_SERIAL_OTI6858 is not set 1465# CONFIG_USB_SERIAL_OTI6858 is not set
1466# CONFIG_USB_SERIAL_QUALCOMM is not set
1441# CONFIG_USB_SERIAL_SPCP8X5 is not set 1467# CONFIG_USB_SERIAL_SPCP8X5 is not set
1442# CONFIG_USB_SERIAL_HP4X is not set 1468# CONFIG_USB_SERIAL_HP4X is not set
1443CONFIG_USB_SERIAL_SAFE=m 1469CONFIG_USB_SERIAL_SAFE=m
1444CONFIG_USB_SERIAL_SAFE_PADDED=y 1470CONFIG_USB_SERIAL_SAFE_PADDED=y
1445# CONFIG_USB_SERIAL_SIEMENS_MPI is not set 1471# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1446# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1472# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1473# CONFIG_USB_SERIAL_SYMBOL is not set
1447# CONFIG_USB_SERIAL_TI is not set 1474# CONFIG_USB_SERIAL_TI is not set
1448CONFIG_USB_SERIAL_CYBERJACK=m 1475CONFIG_USB_SERIAL_CYBERJACK=m
1449CONFIG_USB_SERIAL_XIRCOM=m 1476CONFIG_USB_SERIAL_XIRCOM=m
@@ -1466,7 +1493,6 @@ CONFIG_USB_LCD=m
1466CONFIG_USB_LED=m 1493CONFIG_USB_LED=m
1467# CONFIG_USB_CYPRESS_CY7C63 is not set 1494# CONFIG_USB_CYPRESS_CY7C63 is not set
1468# CONFIG_USB_CYTHERM is not set 1495# CONFIG_USB_CYTHERM is not set
1469# CONFIG_USB_PHIDGET is not set
1470# CONFIG_USB_IDMOUSE is not set 1496# CONFIG_USB_IDMOUSE is not set
1471# CONFIG_USB_FTDI_ELAN is not set 1497# CONFIG_USB_FTDI_ELAN is not set
1472# CONFIG_USB_APPLEDISPLAY is not set 1498# CONFIG_USB_APPLEDISPLAY is not set
@@ -1487,6 +1513,7 @@ CONFIG_USB_SPEEDTOUCH=m
1487# 1513#
1488# OTG and related infrastructure 1514# OTG and related infrastructure
1489# 1515#
1516# CONFIG_NOP_USB_XCEIV is not set
1490# CONFIG_UWB is not set 1517# CONFIG_UWB is not set
1491# CONFIG_MMC is not set 1518# CONFIG_MMC is not set
1492# CONFIG_MEMSTICK is not set 1519# CONFIG_MEMSTICK is not set
@@ -1516,6 +1543,7 @@ CONFIG_DMADEVICES=y
1516# 1543#
1517# DMA Devices 1544# DMA Devices
1518# 1545#
1546# CONFIG_AUXDISPLAY is not set
1519# CONFIG_UIO is not set 1547# CONFIG_UIO is not set
1520# CONFIG_STAGING is not set 1548# CONFIG_STAGING is not set
1521 1549
@@ -1524,6 +1552,7 @@ CONFIG_DMADEVICES=y
1524# 1552#
1525# CONFIG_EXT2_FS is not set 1553# CONFIG_EXT2_FS is not set
1526CONFIG_EXT3_FS=m 1554CONFIG_EXT3_FS=m
1555# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1527CONFIG_EXT3_FS_XATTR=y 1556CONFIG_EXT3_FS_XATTR=y
1528CONFIG_EXT3_FS_POSIX_ACL=y 1557CONFIG_EXT3_FS_POSIX_ACL=y
1529CONFIG_EXT3_FS_SECURITY=y 1558CONFIG_EXT3_FS_SECURITY=y
@@ -1554,6 +1583,11 @@ CONFIG_AUTOFS4_FS=m
1554# CONFIG_FUSE_FS is not set 1583# CONFIG_FUSE_FS is not set
1555 1584
1556# 1585#
1586# Caches
1587#
1588# CONFIG_FSCACHE is not set
1589
1590#
1557# CD-ROM/DVD Filesystems 1591# CD-ROM/DVD Filesystems
1558# 1592#
1559# CONFIG_ISO9660_FS is not set 1593# CONFIG_ISO9660_FS is not set
@@ -1612,6 +1646,7 @@ CONFIG_VXFS_FS=m
1612# CONFIG_ROMFS_FS is not set 1646# CONFIG_ROMFS_FS is not set
1613# CONFIG_SYSV_FS is not set 1647# CONFIG_SYSV_FS is not set
1614# CONFIG_UFS_FS is not set 1648# CONFIG_UFS_FS is not set
1649# CONFIG_NILFS2_FS is not set
1615CONFIG_NETWORK_FILESYSTEMS=y 1650CONFIG_NETWORK_FILESYSTEMS=y
1616CONFIG_NFS_FS=y 1651CONFIG_NFS_FS=y
1617CONFIG_NFS_V3=y 1652CONFIG_NFS_V3=y
@@ -1626,7 +1661,6 @@ CONFIG_NFS_COMMON=y
1626CONFIG_SUNRPC=y 1661CONFIG_SUNRPC=y
1627CONFIG_SUNRPC_GSS=y 1662CONFIG_SUNRPC_GSS=y
1628CONFIG_SUNRPC_XPRT_RDMA=m 1663CONFIG_SUNRPC_XPRT_RDMA=m
1629# CONFIG_SUNRPC_REGISTER_V4 is not set
1630CONFIG_RPCSEC_GSS_KRB5=y 1664CONFIG_RPCSEC_GSS_KRB5=y
1631CONFIG_RPCSEC_GSS_SPKM3=m 1665CONFIG_RPCSEC_GSS_SPKM3=m
1632# CONFIG_SMB_FS is not set 1666# CONFIG_SMB_FS is not set
@@ -1637,6 +1671,7 @@ CONFIG_CIFS=m
1637CONFIG_CIFS_XATTR=y 1671CONFIG_CIFS_XATTR=y
1638CONFIG_CIFS_POSIX=y 1672CONFIG_CIFS_POSIX=y
1639# CONFIG_CIFS_DEBUG2 is not set 1673# CONFIG_CIFS_DEBUG2 is not set
1674# CONFIG_CIFS_DFS_UPCALL is not set
1640# CONFIG_CIFS_EXPERIMENTAL is not set 1675# CONFIG_CIFS_EXPERIMENTAL is not set
1641# CONFIG_NCP_FS is not set 1676# CONFIG_NCP_FS is not set
1642# CONFIG_CODA_FS is not set 1677# CONFIG_CODA_FS is not set
@@ -1704,6 +1739,7 @@ CONFIG_NLS_KOI8_R=m
1704CONFIG_NLS_KOI8_U=m 1739CONFIG_NLS_KOI8_U=m
1705CONFIG_NLS_UTF8=m 1740CONFIG_NLS_UTF8=m
1706# CONFIG_DLM is not set 1741# CONFIG_DLM is not set
1742CONFIG_BINARY_PRINTF=y
1707 1743
1708# 1744#
1709# Library routines 1745# Library routines
@@ -1719,12 +1755,15 @@ CONFIG_CRC32=y
1719CONFIG_LIBCRC32C=m 1755CONFIG_LIBCRC32C=m
1720CONFIG_ZLIB_INFLATE=y 1756CONFIG_ZLIB_INFLATE=y
1721CONFIG_ZLIB_DEFLATE=y 1757CONFIG_ZLIB_DEFLATE=y
1722CONFIG_PLIST=y 1758CONFIG_DECOMPRESS_GZIP=y
1759CONFIG_DECOMPRESS_BZIP2=y
1760CONFIG_DECOMPRESS_LZMA=y
1723CONFIG_HAS_IOMEM=y 1761CONFIG_HAS_IOMEM=y
1724CONFIG_HAS_IOPORT=y 1762CONFIG_HAS_IOPORT=y
1725CONFIG_HAS_DMA=y 1763CONFIG_HAS_DMA=y
1726CONFIG_CHECK_SIGNATURE=y 1764CONFIG_CHECK_SIGNATURE=y
1727CONFIG_HAVE_LMB=y 1765CONFIG_HAVE_LMB=y
1766CONFIG_NLATTR=y
1728 1767
1729# 1768#
1730# Kernel hacking 1769# Kernel hacking
@@ -1742,6 +1781,9 @@ CONFIG_DEBUG_KERNEL=y
1742CONFIG_DETECT_SOFTLOCKUP=y 1781CONFIG_DETECT_SOFTLOCKUP=y
1743# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1782# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1744CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1783CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1784CONFIG_DETECT_HUNG_TASK=y
1785# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1786CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1745CONFIG_SCHED_DEBUG=y 1787CONFIG_SCHED_DEBUG=y
1746# CONFIG_SCHEDSTATS is not set 1788# CONFIG_SCHEDSTATS is not set
1747# CONFIG_TIMER_STATS is not set 1789# CONFIG_TIMER_STATS is not set
@@ -1775,12 +1817,15 @@ CONFIG_DEBUG_MEMORY_INIT=y
1775# CONFIG_FAULT_INJECTION is not set 1817# CONFIG_FAULT_INJECTION is not set
1776# CONFIG_LATENCYTOP is not set 1818# CONFIG_LATENCYTOP is not set
1777CONFIG_SYSCTL_SYSCALL_CHECK=y 1819CONFIG_SYSCTL_SYSCALL_CHECK=y
1820# CONFIG_DEBUG_PAGEALLOC is not set
1778CONFIG_NOP_TRACER=y 1821CONFIG_NOP_TRACER=y
1779CONFIG_HAVE_FUNCTION_TRACER=y 1822CONFIG_HAVE_FUNCTION_TRACER=y
1823CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1780CONFIG_HAVE_DYNAMIC_FTRACE=y 1824CONFIG_HAVE_DYNAMIC_FTRACE=y
1781CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1825CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1782CONFIG_RING_BUFFER=y 1826CONFIG_RING_BUFFER=y
1783CONFIG_TRACING=y 1827CONFIG_TRACING=y
1828CONFIG_TRACING_SUPPORT=y
1784 1829
1785# 1830#
1786# Tracers 1831# Tracers
@@ -1788,18 +1833,21 @@ CONFIG_TRACING=y
1788# CONFIG_FUNCTION_TRACER is not set 1833# CONFIG_FUNCTION_TRACER is not set
1789# CONFIG_SCHED_TRACER is not set 1834# CONFIG_SCHED_TRACER is not set
1790# CONFIG_CONTEXT_SWITCH_TRACER is not set 1835# CONFIG_CONTEXT_SWITCH_TRACER is not set
1836# CONFIG_EVENT_TRACER is not set
1791# CONFIG_BOOT_TRACER is not set 1837# CONFIG_BOOT_TRACER is not set
1792# CONFIG_TRACE_BRANCH_PROFILING is not set 1838# CONFIG_TRACE_BRANCH_PROFILING is not set
1793# CONFIG_STACK_TRACER is not set 1839# CONFIG_STACK_TRACER is not set
1840# CONFIG_KMEMTRACE is not set
1841# CONFIG_WORKQUEUE_TRACER is not set
1842# CONFIG_BLK_DEV_IO_TRACE is not set
1794# CONFIG_FTRACE_STARTUP_TEST is not set 1843# CONFIG_FTRACE_STARTUP_TEST is not set
1795# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1844# CONFIG_DYNAMIC_DEBUG is not set
1796# CONFIG_SAMPLES is not set 1845# CONFIG_SAMPLES is not set
1797CONFIG_HAVE_ARCH_KGDB=y 1846CONFIG_HAVE_ARCH_KGDB=y
1798# CONFIG_KGDB is not set 1847# CONFIG_KGDB is not set
1799CONFIG_PRINT_STACK_DEPTH=64 1848CONFIG_PRINT_STACK_DEPTH=64
1800CONFIG_DEBUG_STACKOVERFLOW=y 1849CONFIG_DEBUG_STACKOVERFLOW=y
1801CONFIG_DEBUG_STACK_USAGE=y 1850CONFIG_DEBUG_STACK_USAGE=y
1802# CONFIG_DEBUG_PAGEALLOC is not set
1803# CONFIG_CODE_PATCHING_SELFTEST is not set 1851# CONFIG_CODE_PATCHING_SELFTEST is not set
1804# CONFIG_FTR_FIXUP_SELFTEST is not set 1852# CONFIG_FTR_FIXUP_SELFTEST is not set
1805# CONFIG_MSI_BITMAP_SELFTEST is not set 1853# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1830,6 +1878,7 @@ CONFIG_SECURITY_SELINUX_DEVELOP=y
1830CONFIG_SECURITY_SELINUX_AVC_STATS=y 1878CONFIG_SECURITY_SELINUX_AVC_STATS=y
1831CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 1879CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
1832# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set 1880# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
1881# CONFIG_SECURITY_TOMOYO is not set
1833CONFIG_CRYPTO=y 1882CONFIG_CRYPTO=y
1834 1883
1835# 1884#
@@ -1845,10 +1894,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1845CONFIG_CRYPTO_HASH=y 1894CONFIG_CRYPTO_HASH=y
1846CONFIG_CRYPTO_HASH2=y 1895CONFIG_CRYPTO_HASH2=y
1847CONFIG_CRYPTO_RNG2=y 1896CONFIG_CRYPTO_RNG2=y
1897CONFIG_CRYPTO_PCOMP=y
1848CONFIG_CRYPTO_MANAGER=y 1898CONFIG_CRYPTO_MANAGER=y
1849CONFIG_CRYPTO_MANAGER2=y 1899CONFIG_CRYPTO_MANAGER2=y
1850# CONFIG_CRYPTO_GF128MUL is not set 1900# CONFIG_CRYPTO_GF128MUL is not set
1851CONFIG_CRYPTO_NULL=m 1901CONFIG_CRYPTO_NULL=m
1902CONFIG_CRYPTO_WORKQUEUE=y
1852# CONFIG_CRYPTO_CRYPTD is not set 1903# CONFIG_CRYPTO_CRYPTD is not set
1853CONFIG_CRYPTO_AUTHENC=m 1904CONFIG_CRYPTO_AUTHENC=m
1854# CONFIG_CRYPTO_TEST is not set 1905# CONFIG_CRYPTO_TEST is not set
@@ -1918,6 +1969,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1918# Compression 1969# Compression
1919# 1970#
1920CONFIG_CRYPTO_DEFLATE=m 1971CONFIG_CRYPTO_DEFLATE=m
1972# CONFIG_CRYPTO_ZLIB is not set
1921# CONFIG_CRYPTO_LZO is not set 1973# CONFIG_CRYPTO_LZO is not set
1922 1974
1923# 1975#
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index add6419c15d9..04915c3a43f6 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:27 2009 4# Wed May 13 17:21:52 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55# CONFIG_DEFAULT_UIMAGE is not set 56# CONFIG_DEFAULT_UIMAGE is not set
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -82,20 +93,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
83CONFIG_CC_OPTIMIZE_FOR_SIZE=y 94CONFIG_CC_OPTIMIZE_FOR_SIZE=y
84CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
85CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
102# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 104CONFIG_PRINTK=y
93CONFIG_BUG=y 105CONFIG_BUG=y
94CONFIG_ELF_CORE=y 106CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 107CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 108CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 109CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 110CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
@@ -104,10 +114,12 @@ CONFIG_SHMEM=y
104CONFIG_AIO=y 114CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_PCI_QUIRKS=y 116CONFIG_PCI_QUIRKS=y
117CONFIG_COMPAT_BRK=y
107CONFIG_SLAB=y 118CONFIG_SLAB=y
108# CONFIG_SLUB is not set 119# CONFIG_SLUB is not set
109# CONFIG_SLOB is not set 120# CONFIG_SLOB is not set
110# CONFIG_PROFILING is not set 121# CONFIG_PROFILING is not set
122# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 124CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y 125CONFIG_HAVE_IOREMAP_PROT=y
@@ -115,6 +127,7 @@ CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
117CONFIG_HAVE_CLK=y 129CONFIG_HAVE_CLK=y
130# CONFIG_SLOW_WORK is not set
118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
@@ -122,7 +135,6 @@ CONFIG_BASE_SMALL=0
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
127 139
128# 140#
@@ -137,18 +149,11 @@ CONFIG_DEFAULT_DEADLINE=y
137# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="deadline" 151CONFIG_DEFAULT_IOSCHED="deadline"
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
145# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
146 153
147# 154#
148# Platform support 155# Platform support
149# 156#
150CONFIG_PPC_MULTIPLATFORM=y
151CONFIG_CLASSIC32=y
152# CONFIG_PPC_CHRP is not set 157# CONFIG_PPC_CHRP is not set
153# CONFIG_MPC5121_ADS is not set 158# CONFIG_MPC5121_ADS is not set
154# CONFIG_MPC5121_GENERIC is not set 159# CONFIG_MPC5121_GENERIC is not set
@@ -167,6 +172,8 @@ CONFIG_8272=y
167# CONFIG_PPC_83xx is not set 172# CONFIG_PPC_83xx is not set
168# CONFIG_PPC_86xx is not set 173# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set 174# CONFIG_EMBEDDED6xx is not set
175# CONFIG_AMIGAONE is not set
176CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
170# CONFIG_IPIC is not set 177# CONFIG_IPIC is not set
171# CONFIG_MPIC is not set 178# CONFIG_MPIC is not set
172# CONFIG_MPIC_WEIRD is not set 179# CONFIG_MPIC_WEIRD is not set
@@ -222,9 +229,12 @@ CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
223CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
224CONFIG_UNEVICTABLE_LRU=y 231CONFIG_UNEVICTABLE_LRU=y
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
225CONFIG_PPC_4K_PAGES=y 234CONFIG_PPC_4K_PAGES=y
226# CONFIG_PPC_16K_PAGES is not set 235# CONFIG_PPC_16K_PAGES is not set
227# CONFIG_PPC_64K_PAGES is not set 236# CONFIG_PPC_64K_PAGES is not set
237# CONFIG_PPC_256K_PAGES is not set
228CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
@@ -250,6 +260,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
250# CONFIG_PCI_LEGACY is not set 260# CONFIG_PCI_LEGACY is not set
251# CONFIG_PCI_DEBUG is not set 261# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCI_STUB is not set 262# CONFIG_PCI_STUB is not set
263# CONFIG_PCI_IOV is not set
253# CONFIG_PCCARD is not set 264# CONFIG_PCCARD is not set
254# CONFIG_HOTPLUG_PCI is not set 265# CONFIG_HOTPLUG_PCI is not set
255# CONFIG_HAS_RAPIDIO is not set 266# CONFIG_HAS_RAPIDIO is not set
@@ -272,7 +283,6 @@ CONFIG_NET=y
272# 283#
273# Networking options 284# Networking options
274# 285#
275CONFIG_COMPAT_NET_DEV_OPS=y
276CONFIG_PACKET=y 286CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
278CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -353,6 +363,7 @@ CONFIG_NETFILTER_ADVANCED=y
353# CONFIG_LLC2 is not set 363# CONFIG_LLC2 is not set
354# CONFIG_IPX is not set 364# CONFIG_IPX is not set
355# CONFIG_ATALK is not set 365# CONFIG_ATALK is not set
366# CONFIG_PHONET is not set
356# CONFIG_NET_SCHED is not set 367# CONFIG_NET_SCHED is not set
357# CONFIG_DCB is not set 368# CONFIG_DCB is not set
358 369
@@ -364,7 +375,6 @@ CONFIG_NETFILTER_ADVANCED=y
364# CONFIG_CAN is not set 375# CONFIG_CAN is not set
365# CONFIG_IRDA is not set 376# CONFIG_IRDA is not set
366# CONFIG_BT is not set 377# CONFIG_BT is not set
367# CONFIG_PHONET is not set
368CONFIG_WIRELESS=y 378CONFIG_WIRELESS=y
369# CONFIG_CFG80211 is not set 379# CONFIG_CFG80211 is not set
370CONFIG_WIRELESS_OLD_REGULATORY=y 380CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -468,7 +478,6 @@ CONFIG_MTD_PHYSMAP_OF=y
468# LPDDR flash memory drivers 478# LPDDR flash memory drivers
469# 479#
470# CONFIG_MTD_LPDDR is not set 480# CONFIG_MTD_LPDDR is not set
471# CONFIG_MTD_QINFO_PROBE is not set
472 481
473# 482#
474# UBI - Unsorted block images 483# UBI - Unsorted block images
@@ -517,6 +526,7 @@ CONFIG_HAVE_IDE=y
517# CONFIG_I2O is not set 526# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 527# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 528CONFIG_NETDEVICES=y
529CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 530# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
522# CONFIG_EQUALIZER is not set 532# CONFIG_EQUALIZER is not set
@@ -550,6 +560,8 @@ CONFIG_MII=y
550# CONFIG_SUNGEM is not set 560# CONFIG_SUNGEM is not set
551# CONFIG_CASSINI is not set 561# CONFIG_CASSINI is not set
552# CONFIG_NET_VENDOR_3COM is not set 562# CONFIG_NET_VENDOR_3COM is not set
563# CONFIG_ETHOC is not set
564# CONFIG_DNET is not set
553# CONFIG_NET_TULIP is not set 565# CONFIG_NET_TULIP is not set
554# CONFIG_HP100 is not set 566# CONFIG_HP100 is not set
555# CONFIG_IBM_NEW_EMAC_ZMII is not set 567# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -572,6 +584,7 @@ CONFIG_NETDEV_1000=y
572# CONFIG_E1000 is not set 584# CONFIG_E1000 is not set
573# CONFIG_E1000E is not set 585# CONFIG_E1000E is not set
574# CONFIG_IGB is not set 586# CONFIG_IGB is not set
587# CONFIG_IGBVF is not set
575# CONFIG_NS83820 is not set 588# CONFIG_NS83820 is not set
576# CONFIG_HAMACHI is not set 589# CONFIG_HAMACHI is not set
577# CONFIG_R8169 is not set 590# CONFIG_R8169 is not set
@@ -581,8 +594,8 @@ CONFIG_NETDEV_1000=y
581# CONFIG_VIA_VELOCITY is not set 594# CONFIG_VIA_VELOCITY is not set
582# CONFIG_TIGON3 is not set 595# CONFIG_TIGON3 is not set
583# CONFIG_BNX2 is not set 596# CONFIG_BNX2 is not set
597# CONFIG_FSL_PQ_MDIO is not set
584# CONFIG_GIANFAR is not set 598# CONFIG_GIANFAR is not set
585# CONFIG_MV643XX_ETH is not set
586# CONFIG_QLA3XXX is not set 599# CONFIG_QLA3XXX is not set
587# CONFIG_ATL1 is not set 600# CONFIG_ATL1 is not set
588# CONFIG_JME is not set 601# CONFIG_JME is not set
@@ -594,6 +607,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
594# CONFIG_IXGBE is not set 607# CONFIG_IXGBE is not set
595# CONFIG_IXGB is not set 608# CONFIG_IXGB is not set
596# CONFIG_S2IO is not set 609# CONFIG_S2IO is not set
610# CONFIG_VXGE is not set
597# CONFIG_MYRI10GE is not set 611# CONFIG_MYRI10GE is not set
598# CONFIG_NETXEN_NIC is not set 612# CONFIG_NETXEN_NIC is not set
599# CONFIG_NIU is not set 613# CONFIG_NIU is not set
@@ -603,6 +617,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
603# CONFIG_BNX2X is not set 617# CONFIG_BNX2X is not set
604# CONFIG_QLGE is not set 618# CONFIG_QLGE is not set
605# CONFIG_SFC is not set 619# CONFIG_SFC is not set
620# CONFIG_BE2NET is not set
606# CONFIG_TR is not set 621# CONFIG_TR is not set
607 622
608# 623#
@@ -610,7 +625,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
610# 625#
611# CONFIG_WLAN_PRE80211 is not set 626# CONFIG_WLAN_PRE80211 is not set
612# CONFIG_WLAN_80211 is not set 627# CONFIG_WLAN_80211 is not set
613# CONFIG_IWLWIFI_LEDS is not set
614 628
615# 629#
616# Enable WiMAX (Networking options) to see the WiMAX drivers 630# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -662,6 +676,7 @@ CONFIG_LEGACY_PTYS=y
662CONFIG_LEGACY_PTY_COUNT=256 676CONFIG_LEGACY_PTY_COUNT=256
663# CONFIG_IPMI_HANDLER is not set 677# CONFIG_IPMI_HANDLER is not set
664CONFIG_HW_RANDOM=y 678CONFIG_HW_RANDOM=y
679# CONFIG_HW_RANDOM_TIMERIOMEM is not set
665# CONFIG_NVRAM is not set 680# CONFIG_NVRAM is not set
666# CONFIG_GEN_RTC is not set 681# CONFIG_GEN_RTC is not set
667# CONFIG_R3964 is not set 682# CONFIG_R3964 is not set
@@ -751,8 +766,10 @@ CONFIG_DAB=y
751# CONFIG_NEW_LEDS is not set 766# CONFIG_NEW_LEDS is not set
752# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
753# CONFIG_INFINIBAND is not set 768# CONFIG_INFINIBAND is not set
769# CONFIG_EDAC is not set
754# CONFIG_RTC_CLASS is not set 770# CONFIG_RTC_CLASS is not set
755# CONFIG_DMADEVICES is not set 771# CONFIG_DMADEVICES is not set
772# CONFIG_AUXDISPLAY is not set
756# CONFIG_UIO is not set 773# CONFIG_UIO is not set
757# CONFIG_STAGING is not set 774# CONFIG_STAGING is not set
758 775
@@ -763,6 +780,7 @@ CONFIG_EXT2_FS=y
763# CONFIG_EXT2_FS_XATTR is not set 780# CONFIG_EXT2_FS_XATTR is not set
764# CONFIG_EXT2_FS_XIP is not set 781# CONFIG_EXT2_FS_XIP is not set
765CONFIG_EXT3_FS=y 782CONFIG_EXT3_FS=y
783# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
766# CONFIG_EXT3_FS_XATTR is not set 784# CONFIG_EXT3_FS_XATTR is not set
767# CONFIG_EXT4_FS is not set 785# CONFIG_EXT4_FS is not set
768CONFIG_JBD=y 786CONFIG_JBD=y
@@ -781,6 +799,10 @@ CONFIG_AUTOFS4_FS=y
781# CONFIG_FUSE_FS is not set 799# CONFIG_FUSE_FS is not set
782 800
783# 801#
802# Caches
803#
804
805#
784# CD-ROM/DVD Filesystems 806# CD-ROM/DVD Filesystems
785# 807#
786# CONFIG_ISO9660_FS is not set 808# CONFIG_ISO9660_FS is not set
@@ -894,6 +916,7 @@ CONFIG_NLS_ISO8859_1=y
894# CONFIG_NLS_KOI8_R is not set 916# CONFIG_NLS_KOI8_R is not set
895# CONFIG_NLS_KOI8_U is not set 917# CONFIG_NLS_KOI8_U is not set
896CONFIG_NLS_UTF8=y 918CONFIG_NLS_UTF8=y
919# CONFIG_BINARY_PRINTF is not set
897 920
898# 921#
899# Library routines 922# Library routines
@@ -907,11 +930,11 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
907# CONFIG_CRC7 is not set 930# CONFIG_CRC7 is not set
908# CONFIG_LIBCRC32C is not set 931# CONFIG_LIBCRC32C is not set
909CONFIG_ZLIB_INFLATE=y 932CONFIG_ZLIB_INFLATE=y
910CONFIG_PLIST=y
911CONFIG_HAS_IOMEM=y 933CONFIG_HAS_IOMEM=y
912CONFIG_HAS_IOPORT=y 934CONFIG_HAS_IOPORT=y
913CONFIG_HAS_DMA=y 935CONFIG_HAS_DMA=y
914CONFIG_HAVE_LMB=y 936CONFIG_HAVE_LMB=y
937CONFIG_NLATTR=y
915 938
916# 939#
917# Kernel hacking 940# Kernel hacking
@@ -927,6 +950,7 @@ CONFIG_MAGIC_SYSRQ=y
927CONFIG_DEBUG_KERNEL=y 950CONFIG_DEBUG_KERNEL=y
928# CONFIG_DEBUG_SHIRQ is not set 951# CONFIG_DEBUG_SHIRQ is not set
929# CONFIG_DETECT_SOFTLOCKUP is not set 952# CONFIG_DETECT_SOFTLOCKUP is not set
953# CONFIG_DETECT_HUNG_TASK is not set
930# CONFIG_SCHED_DEBUG is not set 954# CONFIG_SCHED_DEBUG is not set
931# CONFIG_SCHEDSTATS is not set 955# CONFIG_SCHEDSTATS is not set
932# CONFIG_TIMER_STATS is not set 956# CONFIG_TIMER_STATS is not set
@@ -955,9 +979,12 @@ CONFIG_DEBUG_INFO=y
955# CONFIG_FAULT_INJECTION is not set 979# CONFIG_FAULT_INJECTION is not set
956# CONFIG_LATENCYTOP is not set 980# CONFIG_LATENCYTOP is not set
957CONFIG_SYSCTL_SYSCALL_CHECK=y 981CONFIG_SYSCTL_SYSCALL_CHECK=y
982# CONFIG_DEBUG_PAGEALLOC is not set
958CONFIG_HAVE_FUNCTION_TRACER=y 983CONFIG_HAVE_FUNCTION_TRACER=y
984CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
959CONFIG_HAVE_DYNAMIC_FTRACE=y 985CONFIG_HAVE_DYNAMIC_FTRACE=y
960CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 986CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
987CONFIG_TRACING_SUPPORT=y
961 988
962# 989#
963# Tracers 990# Tracers
@@ -965,16 +992,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
965# CONFIG_FUNCTION_TRACER is not set 992# CONFIG_FUNCTION_TRACER is not set
966# CONFIG_SCHED_TRACER is not set 993# CONFIG_SCHED_TRACER is not set
967# CONFIG_CONTEXT_SWITCH_TRACER is not set 994# CONFIG_CONTEXT_SWITCH_TRACER is not set
995# CONFIG_EVENT_TRACER is not set
968# CONFIG_BOOT_TRACER is not set 996# CONFIG_BOOT_TRACER is not set
969# CONFIG_TRACE_BRANCH_PROFILING is not set 997# CONFIG_TRACE_BRANCH_PROFILING is not set
970# CONFIG_STACK_TRACER is not set 998# CONFIG_STACK_TRACER is not set
971# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 999# CONFIG_KMEMTRACE is not set
1000# CONFIG_WORKQUEUE_TRACER is not set
1001# CONFIG_BLK_DEV_IO_TRACE is not set
972# CONFIG_SAMPLES is not set 1002# CONFIG_SAMPLES is not set
973CONFIG_HAVE_ARCH_KGDB=y 1003CONFIG_HAVE_ARCH_KGDB=y
974CONFIG_PRINT_STACK_DEPTH=64 1004CONFIG_PRINT_STACK_DEPTH=64
975# CONFIG_DEBUG_STACKOVERFLOW is not set 1005# CONFIG_DEBUG_STACKOVERFLOW is not set
976# CONFIG_DEBUG_STACK_USAGE is not set 1006# CONFIG_DEBUG_STACK_USAGE is not set
977# CONFIG_DEBUG_PAGEALLOC is not set
978# CONFIG_CODE_PATCHING_SELFTEST is not set 1007# CONFIG_CODE_PATCHING_SELFTEST is not set
979# CONFIG_FTR_FIXUP_SELFTEST is not set 1008# CONFIG_FTR_FIXUP_SELFTEST is not set
980# CONFIG_MSI_BITMAP_SELFTEST is not set 1009# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1005,9 +1034,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1005CONFIG_CRYPTO_HASH=y 1034CONFIG_CRYPTO_HASH=y
1006CONFIG_CRYPTO_HASH2=y 1035CONFIG_CRYPTO_HASH2=y
1007CONFIG_CRYPTO_RNG2=y 1036CONFIG_CRYPTO_RNG2=y
1037CONFIG_CRYPTO_PCOMP=y
1008CONFIG_CRYPTO_MANAGER=y 1038CONFIG_CRYPTO_MANAGER=y
1009CONFIG_CRYPTO_MANAGER2=y 1039CONFIG_CRYPTO_MANAGER2=y
1010# CONFIG_CRYPTO_NULL is not set 1040# CONFIG_CRYPTO_NULL is not set
1041CONFIG_CRYPTO_WORKQUEUE=y
1011# CONFIG_CRYPTO_CRYPTD is not set 1042# CONFIG_CRYPTO_CRYPTD is not set
1012# CONFIG_CRYPTO_AUTHENC is not set 1043# CONFIG_CRYPTO_AUTHENC is not set
1013 1044
@@ -1071,6 +1102,7 @@ CONFIG_CRYPTO_DES=y
1071# Compression 1102# Compression
1072# 1103#
1073# CONFIG_CRYPTO_DEFLATE is not set 1104# CONFIG_CRYPTO_DEFLATE is not set
1105# CONFIG_CRYPTO_ZLIB is not set
1074# CONFIG_CRYPTO_LZO is not set 1106# CONFIG_CRYPTO_LZO is not set
1075 1107
1076# 1108#
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index b2fdfd9e183c..c2a439595f4d 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:28 2009 4# Wed May 13 17:21:53 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -52,6 +52,7 @@ CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53# CONFIG_PPC_DCR_NATIVE is not set 53# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
@@ -69,6 +70,15 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
73
74#
75# RCU Subsystem
76#
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
72# CONFIG_IKCONFIG is not set 82# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
74CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
@@ -84,19 +94,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_BLK_DEV_INITRD is not set 94# CONFIG_BLK_DEV_INITRD is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
97CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 98CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 99# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 101# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 102# CONFIG_KALLSYMS_EXTRA_PASS is not set
103# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 105CONFIG_PRINTK=y
94CONFIG_BUG=y 106CONFIG_BUG=y
95# CONFIG_ELF_CORE is not set 107# CONFIG_ELF_CORE is not set
96CONFIG_COMPAT_BRK=y
97# CONFIG_BASE_FULL is not set 108# CONFIG_BASE_FULL is not set
98# CONFIG_FUTEX is not set 109# CONFIG_FUTEX is not set
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 110CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 111CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 112CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_SHMEM=y
105CONFIG_AIO=y 115CONFIG_AIO=y
106# CONFIG_VM_EVENT_COUNTERS is not set 116# CONFIG_VM_EVENT_COUNTERS is not set
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,13 +128,13 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_BASE_SMALL=1 134CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
@@ -138,11 +150,6 @@ CONFIG_DEFAULT_DEADLINE=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
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
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
@@ -233,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 240CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y 241CONFIG_VIRT_TO_BUS=y
235CONFIG_UNEVICTABLE_LRU=y 242CONFIG_UNEVICTABLE_LRU=y
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
236CONFIG_PPC_4K_PAGES=y 245CONFIG_PPC_4K_PAGES=y
237# CONFIG_PPC_16K_PAGES is not set 246# CONFIG_PPC_16K_PAGES is not set
238# CONFIG_PPC_64K_PAGES is not set 247# CONFIG_PPC_64K_PAGES is not set
248# CONFIG_PPC_256K_PAGES is not set
239CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
240CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
241# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
@@ -270,14 +280,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
270CONFIG_KERNEL_START=0xc0000000 280CONFIG_KERNEL_START=0xc0000000
271CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
272CONFIG_TASK_SIZE=0x80000000 282CONFIG_TASK_SIZE=0x80000000
273CONFIG_CONSISTENT_START=0xfd000000
274CONFIG_CONSISTENT_SIZE=0x00200000
275CONFIG_NET=y 283CONFIG_NET=y
276 284
277# 285#
278# Networking options 286# Networking options
279# 287#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 288CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 289# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 290CONFIG_UNIX=y
@@ -328,6 +335,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
328# CONFIG_LAPB is not set 335# CONFIG_LAPB is not set
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
338# CONFIG_PHONET is not set
331# CONFIG_NET_SCHED is not set 339# CONFIG_NET_SCHED is not set
332# CONFIG_DCB is not set 340# CONFIG_DCB is not set
333 341
@@ -340,7 +348,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_IRDA is not set 348# CONFIG_IRDA is not set
341# CONFIG_BT is not set 349# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set 350# CONFIG_AF_RXRPC is not set
343# CONFIG_PHONET is not set
344CONFIG_WIRELESS=y 351CONFIG_WIRELESS=y
345# CONFIG_CFG80211 is not set 352# CONFIG_CFG80211 is not set
346CONFIG_WIRELESS_OLD_REGULATORY=y 353CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -439,7 +446,6 @@ CONFIG_MTD_PHYSMAP_OF=y
439# LPDDR flash memory drivers 446# LPDDR flash memory drivers
440# 447#
441# CONFIG_MTD_LPDDR is not set 448# CONFIG_MTD_LPDDR is not set
442# CONFIG_MTD_QINFO_PROBE is not set
443 449
444# 450#
445# UBI - Unsorted block images 451# UBI - Unsorted block images
@@ -463,6 +469,7 @@ CONFIG_HAVE_IDE=y
463# CONFIG_MD is not set 469# CONFIG_MD is not set
464# CONFIG_MACINTOSH_DRIVERS is not set 470# CONFIG_MACINTOSH_DRIVERS is not set
465CONFIG_NETDEVICES=y 471CONFIG_NETDEVICES=y
472CONFIG_COMPAT_NET_DEV_OPS=y
466# CONFIG_DUMMY is not set 473# CONFIG_DUMMY is not set
467# CONFIG_BONDING is not set 474# CONFIG_BONDING is not set
468# CONFIG_MACVLAN is not set 475# CONFIG_MACVLAN is not set
@@ -491,6 +498,8 @@ CONFIG_LXT_PHY=y
491# CONFIG_MDIO_BITBANG is not set 498# CONFIG_MDIO_BITBANG is not set
492CONFIG_NET_ETHERNET=y 499CONFIG_NET_ETHERNET=y
493CONFIG_MII=y 500CONFIG_MII=y
501# CONFIG_ETHOC is not set
502# CONFIG_DNET is not set
494# CONFIG_IBM_NEW_EMAC_ZMII is not set 503# CONFIG_IBM_NEW_EMAC_ZMII is not set
495# CONFIG_IBM_NEW_EMAC_RGMII is not set 504# CONFIG_IBM_NEW_EMAC_RGMII is not set
496# CONFIG_IBM_NEW_EMAC_TAH is not set 505# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -511,7 +520,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
511# 520#
512# CONFIG_WLAN_PRE80211 is not set 521# CONFIG_WLAN_PRE80211 is not set
513# CONFIG_WLAN_80211 is not set 522# CONFIG_WLAN_80211 is not set
514# CONFIG_IWLWIFI_LEDS is not set
515 523
516# 524#
517# Enable WiMAX (Networking options) to see the WiMAX drivers 525# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -562,6 +570,7 @@ CONFIG_UNIX98_PTYS=y
562# CONFIG_HVC_UDBG is not set 570# CONFIG_HVC_UDBG is not set
563# CONFIG_IPMI_HANDLER is not set 571# CONFIG_IPMI_HANDLER is not set
564CONFIG_HW_RANDOM=y 572CONFIG_HW_RANDOM=y
573# CONFIG_HW_RANDOM_TIMERIOMEM is not set
565# CONFIG_NVRAM is not set 574# CONFIG_NVRAM is not set
566CONFIG_GEN_RTC=y 575CONFIG_GEN_RTC=y
567# CONFIG_GEN_RTC_X is not set 576# CONFIG_GEN_RTC_X is not set
@@ -631,6 +640,7 @@ CONFIG_DAB=y
631# CONFIG_EDAC is not set 640# CONFIG_EDAC is not set
632# CONFIG_RTC_CLASS is not set 641# CONFIG_RTC_CLASS is not set
633# CONFIG_DMADEVICES is not set 642# CONFIG_DMADEVICES is not set
643# CONFIG_AUXDISPLAY is not set
634# CONFIG_UIO is not set 644# CONFIG_UIO is not set
635# CONFIG_STAGING is not set 645# CONFIG_STAGING is not set
636 646
@@ -655,6 +665,11 @@ CONFIG_FILE_LOCKING=y
655# CONFIG_FUSE_FS is not set 665# CONFIG_FUSE_FS is not set
656 666
657# 667#
668# Caches
669#
670# CONFIG_FSCACHE is not set
671
672#
658# CD-ROM/DVD Filesystems 673# CD-ROM/DVD Filesystems
659# 674#
660# CONFIG_ISO9660_FS is not set 675# CONFIG_ISO9660_FS is not set
@@ -698,6 +713,7 @@ CONFIG_CRAMFS=y
698# CONFIG_ROMFS_FS is not set 713# CONFIG_ROMFS_FS is not set
699# CONFIG_SYSV_FS is not set 714# CONFIG_SYSV_FS is not set
700# CONFIG_UFS_FS is not set 715# CONFIG_UFS_FS is not set
716# CONFIG_NILFS2_FS is not set
701CONFIG_NETWORK_FILESYSTEMS=y 717CONFIG_NETWORK_FILESYSTEMS=y
702CONFIG_NFS_FS=y 718CONFIG_NFS_FS=y
703CONFIG_NFS_V3=y 719CONFIG_NFS_V3=y
@@ -709,7 +725,6 @@ CONFIG_LOCKD=y
709CONFIG_LOCKD_V4=y 725CONFIG_LOCKD_V4=y
710CONFIG_NFS_COMMON=y 726CONFIG_NFS_COMMON=y
711CONFIG_SUNRPC=y 727CONFIG_SUNRPC=y
712# CONFIG_SUNRPC_REGISTER_V4 is not set
713# CONFIG_RPCSEC_GSS_KRB5 is not set 728# CONFIG_RPCSEC_GSS_KRB5 is not set
714# CONFIG_RPCSEC_GSS_SPKM3 is not set 729# CONFIG_RPCSEC_GSS_SPKM3 is not set
715# CONFIG_SMB_FS is not set 730# CONFIG_SMB_FS is not set
@@ -741,6 +756,7 @@ CONFIG_MSDOS_PARTITION=y
741# CONFIG_SYSV68_PARTITION is not set 756# CONFIG_SYSV68_PARTITION is not set
742# CONFIG_NLS is not set 757# CONFIG_NLS is not set
743# CONFIG_DLM is not set 758# CONFIG_DLM is not set
759# CONFIG_BINARY_PRINTF is not set
744 760
745# 761#
746# Library routines 762# Library routines
@@ -758,6 +774,7 @@ CONFIG_HAS_IOMEM=y
758CONFIG_HAS_IOPORT=y 774CONFIG_HAS_IOPORT=y
759CONFIG_HAS_DMA=y 775CONFIG_HAS_DMA=y
760CONFIG_HAVE_LMB=y 776CONFIG_HAVE_LMB=y
777CONFIG_NLATTR=y
761 778
762# 779#
763# Kernel hacking 780# Kernel hacking
@@ -775,6 +792,9 @@ CONFIG_DEBUG_KERNEL=y
775CONFIG_DETECT_SOFTLOCKUP=y 792CONFIG_DETECT_SOFTLOCKUP=y
776# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 793# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
777CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 794CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
795CONFIG_DETECT_HUNG_TASK=y
796# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
797CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
778CONFIG_SCHED_DEBUG=y 798CONFIG_SCHED_DEBUG=y
779# CONFIG_SCHEDSTATS is not set 799# CONFIG_SCHEDSTATS is not set
780# CONFIG_TIMER_STATS is not set 800# CONFIG_TIMER_STATS is not set
@@ -801,9 +821,12 @@ CONFIG_DEBUG_INFO=y
801# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 821# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
802# CONFIG_FAULT_INJECTION is not set 822# CONFIG_FAULT_INJECTION is not set
803# CONFIG_LATENCYTOP is not set 823# CONFIG_LATENCYTOP is not set
824# CONFIG_DEBUG_PAGEALLOC is not set
804CONFIG_HAVE_FUNCTION_TRACER=y 825CONFIG_HAVE_FUNCTION_TRACER=y
826CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
805CONFIG_HAVE_DYNAMIC_FTRACE=y 827CONFIG_HAVE_DYNAMIC_FTRACE=y
806CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 828CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
829CONFIG_TRACING_SUPPORT=y
807 830
808# 831#
809# Tracers 832# Tracers
@@ -811,17 +834,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
811# CONFIG_FUNCTION_TRACER is not set 834# CONFIG_FUNCTION_TRACER is not set
812# CONFIG_SCHED_TRACER is not set 835# CONFIG_SCHED_TRACER is not set
813# CONFIG_CONTEXT_SWITCH_TRACER is not set 836# CONFIG_CONTEXT_SWITCH_TRACER is not set
837# CONFIG_EVENT_TRACER is not set
814# CONFIG_BOOT_TRACER is not set 838# CONFIG_BOOT_TRACER is not set
815# CONFIG_TRACE_BRANCH_PROFILING is not set 839# CONFIG_TRACE_BRANCH_PROFILING is not set
816# CONFIG_STACK_TRACER is not set 840# CONFIG_STACK_TRACER is not set
817# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 841# CONFIG_KMEMTRACE is not set
842# CONFIG_WORKQUEUE_TRACER is not set
843# CONFIG_BLK_DEV_IO_TRACE is not set
818# CONFIG_SAMPLES is not set 844# CONFIG_SAMPLES is not set
819CONFIG_HAVE_ARCH_KGDB=y 845CONFIG_HAVE_ARCH_KGDB=y
820# CONFIG_KGDB is not set 846# CONFIG_KGDB is not set
821CONFIG_PRINT_STACK_DEPTH=64 847CONFIG_PRINT_STACK_DEPTH=64
822# CONFIG_DEBUG_STACKOVERFLOW is not set 848# CONFIG_DEBUG_STACKOVERFLOW is not set
823# CONFIG_DEBUG_STACK_USAGE is not set 849# CONFIG_DEBUG_STACK_USAGE is not set
824# CONFIG_DEBUG_PAGEALLOC is not set
825# CONFIG_CODE_PATCHING_SELFTEST is not set 850# CONFIG_CODE_PATCHING_SELFTEST is not set
826# CONFIG_FTR_FIXUP_SELFTEST is not set 851# CONFIG_FTR_FIXUP_SELFTEST is not set
827# CONFIG_MSI_BITMAP_SELFTEST is not set 852# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 15900dcf0bfa..a4053ab9e244 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.29-rc6 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 6 00:07:38 2009 4# Wed May 13 17:21:54 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -68,6 +70,7 @@ CONFIG_SWAP=y
68CONFIG_SYSVIPC=y 70CONFIG_SYSVIPC=y
69CONFIG_SYSVIPC_SYSCTL=y 71CONFIG_SYSVIPC_SYSCTL=y
70CONFIG_POSIX_MQUEUE=y 72CONFIG_POSIX_MQUEUE=y
73CONFIG_POSIX_MQUEUE_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 74# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 75# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 76# CONFIG_AUDIT is not set
@@ -100,21 +103,24 @@ CONFIG_NAMESPACES=y
100# CONFIG_NET_NS is not set 103# CONFIG_NET_NS is not set
101CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
102CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107CONFIG_RD_BZIP2=y
108CONFIG_RD_LZMA=y
103CONFIG_CC_OPTIMIZE_FOR_SIZE=y 109CONFIG_CC_OPTIMIZE_FOR_SIZE=y
104CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
105# CONFIG_EMBEDDED is not set 112# CONFIG_EMBEDDED is not set
106CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
107CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
108# CONFIG_KALLSYMS_ALL is not set 115# CONFIG_KALLSYMS_ALL is not set
109# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
110CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
111CONFIG_PRINTK=y 119CONFIG_PRINTK=y
112CONFIG_BUG=y 120CONFIG_BUG=y
113CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
114# CONFIG_COMPAT_BRK is not set
115CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
116CONFIG_FUTEX=y 123CONFIG_FUTEX=y
117CONFIG_ANON_INODES=y
118CONFIG_EPOLL=y 124CONFIG_EPOLL=y
119CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
120CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -124,10 +130,12 @@ CONFIG_AIO=y
124CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
125CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
126CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133# CONFIG_COMPAT_BRK is not set
127# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
128CONFIG_SLUB=y 135CONFIG_SLUB=y
129# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
130# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
131CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
132# CONFIG_KPROBES is not set 140# CONFIG_KPROBES is not set
133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -135,6 +143,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
135CONFIG_HAVE_KPROBES=y 143CONFIG_HAVE_KPROBES=y
136CONFIG_HAVE_KRETPROBES=y 144CONFIG_HAVE_KRETPROBES=y
137CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
146# CONFIG_SLOW_WORK is not set
138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
139CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
140CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
@@ -147,7 +156,6 @@ CONFIG_MODULE_UNLOAD=y
147# CONFIG_MODULE_SRCVERSION_ALL is not set 156# CONFIG_MODULE_SRCVERSION_ALL is not set
148CONFIG_BLOCK=y 157CONFIG_BLOCK=y
149# CONFIG_LBD is not set 158# CONFIG_LBD is not set
150# CONFIG_BLK_DEV_IO_TRACE is not set
151# CONFIG_BLK_DEV_BSG is not set 159# CONFIG_BLK_DEV_BSG is not set
152# CONFIG_BLK_DEV_INTEGRITY is not set 160# CONFIG_BLK_DEV_INTEGRITY is not set
153 161
@@ -168,8 +176,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
168# 176#
169# Platform support 177# Platform support
170# 178#
171CONFIG_PPC_MULTIPLATFORM=y
172CONFIG_CLASSIC32=y
173# CONFIG_PPC_CHRP is not set 179# CONFIG_PPC_CHRP is not set
174# CONFIG_MPC5121_ADS is not set 180# CONFIG_MPC5121_ADS is not set
175# CONFIG_MPC5121_GENERIC is not set 181# CONFIG_MPC5121_GENERIC is not set
@@ -191,6 +197,8 @@ CONFIG_LINKSTATION=y
191CONFIG_MPC10X_BRIDGE=y 197CONFIG_MPC10X_BRIDGE=y
192CONFIG_MPC10X_OPENPIC=y 198CONFIG_MPC10X_OPENPIC=y
193# CONFIG_MPC10X_STORE_GATHERING is not set 199# CONFIG_MPC10X_STORE_GATHERING is not set
200# CONFIG_AMIGAONE is not set
201CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
194# CONFIG_IPIC is not set 202# CONFIG_IPIC is not set
195CONFIG_MPIC=y 203CONFIG_MPIC=y
196# CONFIG_MPIC_WEIRD is not set 204# CONFIG_MPIC_WEIRD is not set
@@ -250,9 +258,12 @@ CONFIG_ZONE_DMA_FLAG=1
250CONFIG_BOUNCE=y 258CONFIG_BOUNCE=y
251CONFIG_VIRT_TO_BUS=y 259CONFIG_VIRT_TO_BUS=y
252CONFIG_UNEVICTABLE_LRU=y 260CONFIG_UNEVICTABLE_LRU=y
261CONFIG_HAVE_MLOCK=y
262CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253CONFIG_PPC_4K_PAGES=y 263CONFIG_PPC_4K_PAGES=y
254# CONFIG_PPC_16K_PAGES is not set 264# CONFIG_PPC_16K_PAGES is not set
255# CONFIG_PPC_64K_PAGES is not set 265# CONFIG_PPC_64K_PAGES is not set
266# CONFIG_PPC_256K_PAGES is not set
256CONFIG_FORCE_MAX_ZONEORDER=11 267CONFIG_FORCE_MAX_ZONEORDER=11
257CONFIG_PROC_DEVICETREE=y 268CONFIG_PROC_DEVICETREE=y
258# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
@@ -277,6 +288,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
277# CONFIG_PCI_LEGACY is not set 288# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCI_DEBUG is not set 289# CONFIG_PCI_DEBUG is not set
279# CONFIG_PCI_STUB is not set 290# CONFIG_PCI_STUB is not set
291# CONFIG_PCI_IOV is not set
280# CONFIG_PCCARD is not set 292# CONFIG_PCCARD is not set
281# CONFIG_HOTPLUG_PCI is not set 293# CONFIG_HOTPLUG_PCI is not set
282# CONFIG_HAS_RAPIDIO is not set 294# CONFIG_HAS_RAPIDIO is not set
@@ -299,7 +311,6 @@ CONFIG_NET=y
299# 311#
300# Networking options 312# Networking options
301# 313#
302CONFIG_COMPAT_NET_DEV_OPS=y
303CONFIG_PACKET=y 314CONFIG_PACKET=y
304CONFIG_PACKET_MMAP=y 315CONFIG_PACKET_MMAP=y
305CONFIG_UNIX=y 316CONFIG_UNIX=y
@@ -371,6 +382,7 @@ CONFIG_NETFILTER_XTABLES=m
371# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 382# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
372# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 383# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
373# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 384# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
385CONFIG_NETFILTER_XT_TARGET_HL=m
374# CONFIG_NETFILTER_XT_TARGET_MARK is not set 386# CONFIG_NETFILTER_XT_TARGET_MARK is not set
375# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 387# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
376# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set 388# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
@@ -379,6 +391,7 @@ CONFIG_NETFILTER_XTABLES=m
379# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 391# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
380# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 392# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
381# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set 393# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
394# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
382# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 395# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
383# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 396# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
384# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set 397# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
@@ -389,6 +402,7 @@ CONFIG_NETFILTER_XTABLES=m
389# CONFIG_NETFILTER_XT_MATCH_ESP is not set 402# CONFIG_NETFILTER_XT_MATCH_ESP is not set
390# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 403# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
391# CONFIG_NETFILTER_XT_MATCH_HELPER is not set 404# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
405# CONFIG_NETFILTER_XT_MATCH_HL is not set
392# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 406# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
393# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 407# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
394# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 408# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
@@ -465,6 +479,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
465# CONFIG_LAPB is not set 479# CONFIG_LAPB is not set
466# CONFIG_ECONET is not set 480# CONFIG_ECONET is not set
467# CONFIG_WAN_ROUTER is not set 481# CONFIG_WAN_ROUTER is not set
482# CONFIG_PHONET is not set
468# CONFIG_NET_SCHED is not set 483# CONFIG_NET_SCHED is not set
469# CONFIG_DCB is not set 484# CONFIG_DCB is not set
470 485
@@ -477,7 +492,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
477# CONFIG_IRDA is not set 492# CONFIG_IRDA is not set
478# CONFIG_BT is not set 493# CONFIG_BT is not set
479# CONFIG_AF_RXRPC is not set 494# CONFIG_AF_RXRPC is not set
480# CONFIG_PHONET is not set
481CONFIG_WIRELESS=y 495CONFIG_WIRELESS=y
482# CONFIG_CFG80211 is not set 496# CONFIG_CFG80211 is not set
483CONFIG_WIRELESS_OLD_REGULATORY=y 497CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -625,6 +639,7 @@ CONFIG_MISC_DEVICES=y
625# CONFIG_ICS932S401 is not set 639# CONFIG_ICS932S401 is not set
626# CONFIG_ENCLOSURE_SERVICES is not set 640# CONFIG_ENCLOSURE_SERVICES is not set
627# CONFIG_HP_ILO is not set 641# CONFIG_HP_ILO is not set
642# CONFIG_ISL29003 is not set
628# CONFIG_C2PORT is not set 643# CONFIG_C2PORT is not set
629 644
630# 645#
@@ -690,9 +705,11 @@ CONFIG_SCSI_LOWLEVEL=y
690# CONFIG_MEGARAID_NEWGEN is not set 705# CONFIG_MEGARAID_NEWGEN is not set
691# CONFIG_MEGARAID_LEGACY is not set 706# CONFIG_MEGARAID_LEGACY is not set
692# CONFIG_MEGARAID_SAS is not set 707# CONFIG_MEGARAID_SAS is not set
708# CONFIG_SCSI_MPT2SAS is not set
693# CONFIG_SCSI_HPTIOP is not set 709# CONFIG_SCSI_HPTIOP is not set
694# CONFIG_SCSI_BUSLOGIC is not set 710# CONFIG_SCSI_BUSLOGIC is not set
695# CONFIG_LIBFC is not set 711# CONFIG_LIBFC is not set
712# CONFIG_LIBFCOE is not set
696# CONFIG_FCOE is not set 713# CONFIG_FCOE is not set
697# CONFIG_SCSI_DMX3191D is not set 714# CONFIG_SCSI_DMX3191D is not set
698# CONFIG_SCSI_EATA is not set 715# CONFIG_SCSI_EATA is not set
@@ -715,6 +732,7 @@ CONFIG_SCSI_LOWLEVEL=y
715# CONFIG_SCSI_DEBUG is not set 732# CONFIG_SCSI_DEBUG is not set
716# CONFIG_SCSI_SRP is not set 733# CONFIG_SCSI_SRP is not set
717# CONFIG_SCSI_DH is not set 734# CONFIG_SCSI_DH is not set
735# CONFIG_SCSI_OSD_INITIATOR is not set
718CONFIG_ATA=y 736CONFIG_ATA=y
719# CONFIG_ATA_NONSTANDARD is not set 737# CONFIG_ATA_NONSTANDARD is not set
720CONFIG_SATA_PMP=y 738CONFIG_SATA_PMP=y
@@ -791,6 +809,7 @@ CONFIG_PATA_SIL680=y
791# CONFIG_I2O is not set 809# CONFIG_I2O is not set
792# CONFIG_MACINTOSH_DRIVERS is not set 810# CONFIG_MACINTOSH_DRIVERS is not set
793CONFIG_NETDEVICES=y 811CONFIG_NETDEVICES=y
812CONFIG_COMPAT_NET_DEV_OPS=y
794# CONFIG_DUMMY is not set 813# CONFIG_DUMMY is not set
795# CONFIG_BONDING is not set 814# CONFIG_BONDING is not set
796# CONFIG_MACVLAN is not set 815# CONFIG_MACVLAN is not set
@@ -805,6 +824,8 @@ CONFIG_MII=y
805# CONFIG_SUNGEM is not set 824# CONFIG_SUNGEM is not set
806# CONFIG_CASSINI is not set 825# CONFIG_CASSINI is not set
807# CONFIG_NET_VENDOR_3COM is not set 826# CONFIG_NET_VENDOR_3COM is not set
827# CONFIG_ETHOC is not set
828# CONFIG_DNET is not set
808CONFIG_NET_TULIP=y 829CONFIG_NET_TULIP=y
809# CONFIG_DE2104X is not set 830# CONFIG_DE2104X is not set
810CONFIG_TULIP=y 831CONFIG_TULIP=y
@@ -833,6 +854,7 @@ CONFIG_NETDEV_1000=y
833# CONFIG_E1000E is not set 854# CONFIG_E1000E is not set
834# CONFIG_IP1000 is not set 855# CONFIG_IP1000 is not set
835# CONFIG_IGB is not set 856# CONFIG_IGB is not set
857# CONFIG_IGBVF is not set
836# CONFIG_NS83820 is not set 858# CONFIG_NS83820 is not set
837# CONFIG_HAMACHI is not set 859# CONFIG_HAMACHI is not set
838# CONFIG_YELLOWFIN is not set 860# CONFIG_YELLOWFIN is not set
@@ -843,8 +865,8 @@ CONFIG_R8169=y
843# CONFIG_VIA_VELOCITY is not set 865# CONFIG_VIA_VELOCITY is not set
844# CONFIG_TIGON3 is not set 866# CONFIG_TIGON3 is not set
845# CONFIG_BNX2 is not set 867# CONFIG_BNX2 is not set
868# CONFIG_FSL_PQ_MDIO is not set
846# CONFIG_GIANFAR is not set 869# CONFIG_GIANFAR is not set
847# CONFIG_MV643XX_ETH is not set
848# CONFIG_QLA3XXX is not set 870# CONFIG_QLA3XXX is not set
849# CONFIG_ATL1 is not set 871# CONFIG_ATL1 is not set
850# CONFIG_ATL1E is not set 872# CONFIG_ATL1E is not set
@@ -858,6 +880,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
858# CONFIG_IXGBE is not set 880# CONFIG_IXGBE is not set
859# CONFIG_IXGB is not set 881# CONFIG_IXGB is not set
860# CONFIG_S2IO is not set 882# CONFIG_S2IO is not set
883# CONFIG_VXGE is not set
861# CONFIG_MYRI10GE is not set 884# CONFIG_MYRI10GE is not set
862# CONFIG_NETXEN_NIC is not set 885# CONFIG_NETXEN_NIC is not set
863# CONFIG_NIU is not set 886# CONFIG_NIU is not set
@@ -867,6 +890,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
867# CONFIG_BNX2X is not set 890# CONFIG_BNX2X is not set
868# CONFIG_QLGE is not set 891# CONFIG_QLGE is not set
869# CONFIG_SFC is not set 892# CONFIG_SFC is not set
893# CONFIG_BE2NET is not set
870# CONFIG_TR is not set 894# CONFIG_TR is not set
871 895
872# 896#
@@ -874,7 +898,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
874# 898#
875# CONFIG_WLAN_PRE80211 is not set 899# CONFIG_WLAN_PRE80211 is not set
876# CONFIG_WLAN_80211 is not set 900# CONFIG_WLAN_80211 is not set
877# CONFIG_IWLWIFI_LEDS is not set
878 901
879# 902#
880# Enable WiMAX (Networking options) to see the WiMAX drivers 903# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -985,6 +1008,7 @@ CONFIG_LEGACY_PTY_COUNT=256
985# CONFIG_HVC_UDBG is not set 1008# CONFIG_HVC_UDBG is not set
986# CONFIG_IPMI_HANDLER is not set 1009# CONFIG_IPMI_HANDLER is not set
987CONFIG_HW_RANDOM=y 1010CONFIG_HW_RANDOM=y
1011# CONFIG_HW_RANDOM_TIMERIOMEM is not set
988# CONFIG_NVRAM is not set 1012# CONFIG_NVRAM is not set
989# CONFIG_R3964 is not set 1013# CONFIG_R3964 is not set
990# CONFIG_APPLICOM is not set 1014# CONFIG_APPLICOM is not set
@@ -1050,7 +1074,6 @@ CONFIG_I2C_MPC=y
1050# CONFIG_SENSORS_PCF8574 is not set 1074# CONFIG_SENSORS_PCF8574 is not set
1051# CONFIG_PCF8575 is not set 1075# CONFIG_PCF8575 is not set
1052# CONFIG_SENSORS_PCA9539 is not set 1076# CONFIG_SENSORS_PCA9539 is not set
1053# CONFIG_SENSORS_PCF8591 is not set
1054# CONFIG_SENSORS_MAX6875 is not set 1077# CONFIG_SENSORS_MAX6875 is not set
1055# CONFIG_SENSORS_TSL2550 is not set 1078# CONFIG_SENSORS_TSL2550 is not set
1056# CONFIG_I2C_DEBUG_CORE is not set 1079# CONFIG_I2C_DEBUG_CORE is not set
@@ -1082,6 +1105,7 @@ CONFIG_HWMON=y
1082# CONFIG_SENSORS_F71805F is not set 1105# CONFIG_SENSORS_F71805F is not set
1083# CONFIG_SENSORS_F71882FG is not set 1106# CONFIG_SENSORS_F71882FG is not set
1084# CONFIG_SENSORS_F75375S is not set 1107# CONFIG_SENSORS_F75375S is not set
1108# CONFIG_SENSORS_G760A is not set
1085# CONFIG_SENSORS_GL518SM is not set 1109# CONFIG_SENSORS_GL518SM is not set
1086# CONFIG_SENSORS_GL520SM is not set 1110# CONFIG_SENSORS_GL520SM is not set
1087# CONFIG_SENSORS_IT87 is not set 1111# CONFIG_SENSORS_IT87 is not set
@@ -1096,11 +1120,14 @@ CONFIG_HWMON=y
1096# CONFIG_SENSORS_LM90 is not set 1120# CONFIG_SENSORS_LM90 is not set
1097# CONFIG_SENSORS_LM92 is not set 1121# CONFIG_SENSORS_LM92 is not set
1098# CONFIG_SENSORS_LM93 is not set 1122# CONFIG_SENSORS_LM93 is not set
1123# CONFIG_SENSORS_LTC4215 is not set
1099# CONFIG_SENSORS_LTC4245 is not set 1124# CONFIG_SENSORS_LTC4245 is not set
1125# CONFIG_SENSORS_LM95241 is not set
1100# CONFIG_SENSORS_MAX1619 is not set 1126# CONFIG_SENSORS_MAX1619 is not set
1101# CONFIG_SENSORS_MAX6650 is not set 1127# CONFIG_SENSORS_MAX6650 is not set
1102# CONFIG_SENSORS_PC87360 is not set 1128# CONFIG_SENSORS_PC87360 is not set
1103# CONFIG_SENSORS_PC87427 is not set 1129# CONFIG_SENSORS_PC87427 is not set
1130# CONFIG_SENSORS_PCF8591 is not set
1104# CONFIG_SENSORS_SIS5595 is not set 1131# CONFIG_SENSORS_SIS5595 is not set
1105# CONFIG_SENSORS_DME1737 is not set 1132# CONFIG_SENSORS_DME1737 is not set
1106# CONFIG_SENSORS_SMSC47M1 is not set 1133# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1195,7 +1222,6 @@ CONFIG_HID=m
1195# 1222#
1196# Special HID drivers 1223# Special HID drivers
1197# 1224#
1198CONFIG_HID_COMPAT=y
1199CONFIG_USB_SUPPORT=y 1225CONFIG_USB_SUPPORT=y
1200CONFIG_USB_ARCH_HAS_HCD=y 1226CONFIG_USB_ARCH_HAS_HCD=y
1201CONFIG_USB_ARCH_HAS_OHCI=y 1227CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1250,11 +1276,11 @@ CONFIG_USB_PRINTER=m
1250# CONFIG_USB_TMC is not set 1276# CONFIG_USB_TMC is not set
1251 1277
1252# 1278#
1253# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1279# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1254# 1280#
1255 1281
1256# 1282#
1257# see USB_STORAGE Help for more information 1283# also be needed; see USB_STORAGE Help for more info
1258# 1284#
1259CONFIG_USB_STORAGE=m 1285CONFIG_USB_STORAGE=m
1260# CONFIG_USB_STORAGE_DEBUG is not set 1286# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1290,7 +1316,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
1290# CONFIG_USB_SERIAL_CH341 is not set 1316# CONFIG_USB_SERIAL_CH341 is not set
1291# CONFIG_USB_SERIAL_WHITEHEAT is not set 1317# CONFIG_USB_SERIAL_WHITEHEAT is not set
1292# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 1318# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1293# CONFIG_USB_SERIAL_CP2101 is not set 1319# CONFIG_USB_SERIAL_CP210X is not set
1294# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 1320# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1295# CONFIG_USB_SERIAL_EMPEG is not set 1321# CONFIG_USB_SERIAL_EMPEG is not set
1296CONFIG_USB_SERIAL_FTDI_SIO=y 1322CONFIG_USB_SERIAL_FTDI_SIO=y
@@ -1314,11 +1340,13 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1314# CONFIG_USB_SERIAL_NAVMAN is not set 1340# CONFIG_USB_SERIAL_NAVMAN is not set
1315# CONFIG_USB_SERIAL_PL2303 is not set 1341# CONFIG_USB_SERIAL_PL2303 is not set
1316# CONFIG_USB_SERIAL_OTI6858 is not set 1342# CONFIG_USB_SERIAL_OTI6858 is not set
1343# CONFIG_USB_SERIAL_QUALCOMM is not set
1317# CONFIG_USB_SERIAL_SPCP8X5 is not set 1344# CONFIG_USB_SERIAL_SPCP8X5 is not set
1318# CONFIG_USB_SERIAL_HP4X is not set 1345# CONFIG_USB_SERIAL_HP4X is not set
1319# CONFIG_USB_SERIAL_SAFE is not set 1346# CONFIG_USB_SERIAL_SAFE is not set
1320# CONFIG_USB_SERIAL_SIEMENS_MPI is not set 1347# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1321# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1348# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1349# CONFIG_USB_SERIAL_SYMBOL is not set
1322# CONFIG_USB_SERIAL_TI is not set 1350# CONFIG_USB_SERIAL_TI is not set
1323# CONFIG_USB_SERIAL_CYBERJACK is not set 1351# CONFIG_USB_SERIAL_CYBERJACK is not set
1324# CONFIG_USB_SERIAL_XIRCOM is not set 1352# CONFIG_USB_SERIAL_XIRCOM is not set
@@ -1341,7 +1369,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1341# CONFIG_USB_LED is not set 1369# CONFIG_USB_LED is not set
1342# CONFIG_USB_CYPRESS_CY7C63 is not set 1370# CONFIG_USB_CYPRESS_CY7C63 is not set
1343# CONFIG_USB_CYTHERM is not set 1371# CONFIG_USB_CYTHERM is not set
1344# CONFIG_USB_PHIDGET is not set
1345# CONFIG_USB_IDMOUSE is not set 1372# CONFIG_USB_IDMOUSE is not set
1346# CONFIG_USB_FTDI_ELAN is not set 1373# CONFIG_USB_FTDI_ELAN is not set
1347# CONFIG_USB_APPLEDISPLAY is not set 1374# CONFIG_USB_APPLEDISPLAY is not set
@@ -1357,6 +1384,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1357# 1384#
1358# OTG and related infrastructure 1385# OTG and related infrastructure
1359# 1386#
1387# CONFIG_NOP_USB_XCEIV is not set
1360# CONFIG_UWB is not set 1388# CONFIG_UWB is not set
1361# CONFIG_MMC is not set 1389# CONFIG_MMC is not set
1362# CONFIG_MEMSTICK is not set 1390# CONFIG_MEMSTICK is not set
@@ -1418,8 +1446,9 @@ CONFIG_RTC_DRV_RS5C372=y
1418# 1446#
1419# on-CPU RTC drivers 1447# on-CPU RTC drivers
1420# 1448#
1421# CONFIG_RTC_DRV_PPC is not set 1449# CONFIG_RTC_DRV_GENERIC is not set
1422# CONFIG_DMADEVICES is not set 1450# CONFIG_DMADEVICES is not set
1451# CONFIG_AUXDISPLAY is not set
1423# CONFIG_UIO is not set 1452# CONFIG_UIO is not set
1424# CONFIG_STAGING is not set 1453# CONFIG_STAGING is not set
1425 1454
@@ -1430,6 +1459,7 @@ CONFIG_EXT2_FS=y
1430# CONFIG_EXT2_FS_XATTR is not set 1459# CONFIG_EXT2_FS_XATTR is not set
1431# CONFIG_EXT2_FS_XIP is not set 1460# CONFIG_EXT2_FS_XIP is not set
1432CONFIG_EXT3_FS=y 1461CONFIG_EXT3_FS=y
1462# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1433CONFIG_EXT3_FS_XATTR=y 1463CONFIG_EXT3_FS_XATTR=y
1434# CONFIG_EXT3_FS_POSIX_ACL is not set 1464# CONFIG_EXT3_FS_POSIX_ACL is not set
1435# CONFIG_EXT3_FS_SECURITY is not set 1465# CONFIG_EXT3_FS_SECURITY is not set
@@ -1456,6 +1486,11 @@ CONFIG_INOTIFY_USER=y
1456# CONFIG_FUSE_FS is not set 1486# CONFIG_FUSE_FS is not set
1457 1487
1458# 1488#
1489# Caches
1490#
1491# CONFIG_FSCACHE is not set
1492
1493#
1459# CD-ROM/DVD Filesystems 1494# CD-ROM/DVD Filesystems
1460# 1495#
1461CONFIG_ISO9660_FS=m 1496CONFIG_ISO9660_FS=m
@@ -1507,6 +1542,7 @@ CONFIG_MISC_FILESYSTEMS=y
1507# CONFIG_ROMFS_FS is not set 1542# CONFIG_ROMFS_FS is not set
1508# CONFIG_SYSV_FS is not set 1543# CONFIG_SYSV_FS is not set
1509# CONFIG_UFS_FS is not set 1544# CONFIG_UFS_FS is not set
1545# CONFIG_NILFS2_FS is not set
1510CONFIG_NETWORK_FILESYSTEMS=y 1546CONFIG_NETWORK_FILESYSTEMS=y
1511CONFIG_NFS_FS=y 1547CONFIG_NFS_FS=y
1512CONFIG_NFS_V3=y 1548CONFIG_NFS_V3=y
@@ -1524,7 +1560,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1524CONFIG_NFS_COMMON=y 1560CONFIG_NFS_COMMON=y
1525CONFIG_SUNRPC=y 1561CONFIG_SUNRPC=y
1526CONFIG_SUNRPC_GSS=y 1562CONFIG_SUNRPC_GSS=y
1527# CONFIG_SUNRPC_REGISTER_V4 is not set
1528CONFIG_RPCSEC_GSS_KRB5=y 1563CONFIG_RPCSEC_GSS_KRB5=y
1529# CONFIG_RPCSEC_GSS_SPKM3 is not set 1564# CONFIG_RPCSEC_GSS_SPKM3 is not set
1530# CONFIG_SMB_FS is not set 1565# CONFIG_SMB_FS is not set
@@ -1584,6 +1619,7 @@ CONFIG_NLS_ISO8859_1=m
1584# CONFIG_NLS_KOI8_U is not set 1619# CONFIG_NLS_KOI8_U is not set
1585CONFIG_NLS_UTF8=m 1620CONFIG_NLS_UTF8=m
1586# CONFIG_DLM is not set 1621# CONFIG_DLM is not set
1622# CONFIG_BINARY_PRINTF is not set
1587 1623
1588# 1624#
1589# Library routines 1625# Library routines
@@ -1597,15 +1633,18 @@ CONFIG_CRC_ITU_T=m
1597CONFIG_CRC32=y 1633CONFIG_CRC32=y
1598# CONFIG_CRC7 is not set 1634# CONFIG_CRC7 is not set
1599CONFIG_LIBCRC32C=m 1635CONFIG_LIBCRC32C=m
1600CONFIG_ZLIB_INFLATE=m 1636CONFIG_ZLIB_INFLATE=y
1601CONFIG_ZLIB_DEFLATE=m 1637CONFIG_ZLIB_DEFLATE=m
1638CONFIG_DECOMPRESS_GZIP=y
1639CONFIG_DECOMPRESS_BZIP2=y
1640CONFIG_DECOMPRESS_LZMA=y
1602CONFIG_TEXTSEARCH=y 1641CONFIG_TEXTSEARCH=y
1603CONFIG_TEXTSEARCH_KMP=m 1642CONFIG_TEXTSEARCH_KMP=m
1604CONFIG_PLIST=y
1605CONFIG_HAS_IOMEM=y 1643CONFIG_HAS_IOMEM=y
1606CONFIG_HAS_IOPORT=y 1644CONFIG_HAS_IOPORT=y
1607CONFIG_HAS_DMA=y 1645CONFIG_HAS_DMA=y
1608CONFIG_HAVE_LMB=y 1646CONFIG_HAVE_LMB=y
1647CONFIG_NLATTR=y
1609 1648
1610# 1649#
1611# Kernel hacking 1650# Kernel hacking
@@ -1623,6 +1662,9 @@ CONFIG_DEBUG_KERNEL=y
1623CONFIG_DETECT_SOFTLOCKUP=y 1662CONFIG_DETECT_SOFTLOCKUP=y
1624# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1663# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1625CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1664CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1665CONFIG_DETECT_HUNG_TASK=y
1666# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1667CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1626CONFIG_SCHED_DEBUG=y 1668CONFIG_SCHED_DEBUG=y
1627# CONFIG_SCHEDSTATS is not set 1669# CONFIG_SCHEDSTATS is not set
1628# CONFIG_TIMER_STATS is not set 1670# CONFIG_TIMER_STATS is not set
@@ -1652,9 +1694,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1652# CONFIG_FAULT_INJECTION is not set 1694# CONFIG_FAULT_INJECTION is not set
1653# CONFIG_LATENCYTOP is not set 1695# CONFIG_LATENCYTOP is not set
1654CONFIG_SYSCTL_SYSCALL_CHECK=y 1696CONFIG_SYSCTL_SYSCALL_CHECK=y
1697# CONFIG_DEBUG_PAGEALLOC is not set
1655CONFIG_HAVE_FUNCTION_TRACER=y 1698CONFIG_HAVE_FUNCTION_TRACER=y
1699CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1656CONFIG_HAVE_DYNAMIC_FTRACE=y 1700CONFIG_HAVE_DYNAMIC_FTRACE=y
1657CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1701CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1702CONFIG_TRACING_SUPPORT=y
1658 1703
1659# 1704#
1660# Tracers 1705# Tracers
@@ -1662,17 +1707,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1662# CONFIG_FUNCTION_TRACER is not set 1707# CONFIG_FUNCTION_TRACER is not set
1663# CONFIG_SCHED_TRACER is not set 1708# CONFIG_SCHED_TRACER is not set
1664# CONFIG_CONTEXT_SWITCH_TRACER is not set 1709# CONFIG_CONTEXT_SWITCH_TRACER is not set
1710# CONFIG_EVENT_TRACER is not set
1665# CONFIG_BOOT_TRACER is not set 1711# CONFIG_BOOT_TRACER is not set
1666# CONFIG_TRACE_BRANCH_PROFILING is not set 1712# CONFIG_TRACE_BRANCH_PROFILING is not set
1667# CONFIG_STACK_TRACER is not set 1713# CONFIG_STACK_TRACER is not set
1668# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1714# CONFIG_KMEMTRACE is not set
1715# CONFIG_WORKQUEUE_TRACER is not set
1716# CONFIG_BLK_DEV_IO_TRACE is not set
1669# CONFIG_SAMPLES is not set 1717# CONFIG_SAMPLES is not set
1670CONFIG_HAVE_ARCH_KGDB=y 1718CONFIG_HAVE_ARCH_KGDB=y
1671# CONFIG_KGDB is not set 1719# CONFIG_KGDB is not set
1672CONFIG_PRINT_STACK_DEPTH=64 1720CONFIG_PRINT_STACK_DEPTH=64
1673# CONFIG_DEBUG_STACKOVERFLOW is not set 1721# CONFIG_DEBUG_STACKOVERFLOW is not set
1674# CONFIG_DEBUG_STACK_USAGE is not set 1722# CONFIG_DEBUG_STACK_USAGE is not set
1675# CONFIG_DEBUG_PAGEALLOC is not set
1676# CONFIG_CODE_PATCHING_SELFTEST is not set 1723# CONFIG_CODE_PATCHING_SELFTEST is not set
1677# CONFIG_FTR_FIXUP_SELFTEST is not set 1724# CONFIG_FTR_FIXUP_SELFTEST is not set
1678# CONFIG_MSI_BITMAP_SELFTEST is not set 1725# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1703,10 +1750,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1703CONFIG_CRYPTO_HASH=y 1750CONFIG_CRYPTO_HASH=y
1704CONFIG_CRYPTO_HASH2=y 1751CONFIG_CRYPTO_HASH2=y
1705CONFIG_CRYPTO_RNG2=y 1752CONFIG_CRYPTO_RNG2=y
1753CONFIG_CRYPTO_PCOMP=y
1706CONFIG_CRYPTO_MANAGER=y 1754CONFIG_CRYPTO_MANAGER=y
1707CONFIG_CRYPTO_MANAGER2=y 1755CONFIG_CRYPTO_MANAGER2=y
1708# CONFIG_CRYPTO_GF128MUL is not set 1756# CONFIG_CRYPTO_GF128MUL is not set
1709# CONFIG_CRYPTO_NULL is not set 1757# CONFIG_CRYPTO_NULL is not set
1758CONFIG_CRYPTO_WORKQUEUE=y
1710# CONFIG_CRYPTO_CRYPTD is not set 1759# CONFIG_CRYPTO_CRYPTD is not set
1711# CONFIG_CRYPTO_AUTHENC is not set 1760# CONFIG_CRYPTO_AUTHENC is not set
1712# CONFIG_CRYPTO_TEST is not set 1761# CONFIG_CRYPTO_TEST is not set
@@ -1776,6 +1825,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1776# Compression 1825# Compression
1777# 1826#
1778CONFIG_CRYPTO_DEFLATE=m 1827CONFIG_CRYPTO_DEFLATE=m
1828# CONFIG_CRYPTO_ZLIB is not set
1779# CONFIG_CRYPTO_LZO is not set 1829# CONFIG_CRYPTO_LZO is not set
1780 1830
1781# 1831#
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index c58c38d5b7a6..31e1df665157 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:30 2009 4# Wed May 13 17:21:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -57,6 +58,7 @@ CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y 58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -73,6 +75,15 @@ CONFIG_SYSVIPC_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
76CONFIG_IKCONFIG=y 87CONFIG_IKCONFIG=y
77CONFIG_IKCONFIG_PROC=y 88CONFIG_IKCONFIG_PROC=y
78CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
@@ -83,23 +94,25 @@ CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_NAMESPACES is not set 94# CONFIG_NAMESPACES is not set
84CONFIG_BLK_DEV_INITRD=y 95CONFIG_BLK_DEV_INITRD=y
85CONFIG_INITRAMFS_SOURCE="" 96CONFIG_INITRAMFS_SOURCE=""
97CONFIG_RD_GZIP=y
98# CONFIG_RD_BZIP2 is not set
99# CONFIG_RD_LZMA is not set
86CONFIG_CC_OPTIMIZE_FOR_SIZE=y 100CONFIG_CC_OPTIMIZE_FOR_SIZE=y
87CONFIG_SYSCTL=y 101CONFIG_SYSCTL=y
102CONFIG_ANON_INODES=y
88CONFIG_EMBEDDED=y 103CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 104CONFIG_SYSCTL_SYSCALL=y
90CONFIG_KALLSYMS=y 105CONFIG_KALLSYMS=y
91CONFIG_KALLSYMS_ALL=y 106CONFIG_KALLSYMS_ALL=y
92CONFIG_KALLSYMS_STRIP_GENERATED=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 107# CONFIG_KALLSYMS_EXTRA_PASS is not set
108# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_HOTPLUG=y 109CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 110CONFIG_PRINTK=y
96CONFIG_BUG=y 111CONFIG_BUG=y
97CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
98CONFIG_PCSPKR_PLATFORM=y 113CONFIG_PCSPKR_PLATFORM=y
99CONFIG_COMPAT_BRK=y
100CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
101CONFIG_FUTEX=y 115CONFIG_FUTEX=y
102CONFIG_ANON_INODES=y
103CONFIG_EPOLL=y 116CONFIG_EPOLL=y
104CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
@@ -108,10 +121,12 @@ CONFIG_SHMEM=y
108CONFIG_AIO=y 121CONFIG_AIO=y
109CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
110CONFIG_PCI_QUIRKS=y 123CONFIG_PCI_QUIRKS=y
124CONFIG_COMPAT_BRK=y
111CONFIG_SLAB=y 125CONFIG_SLAB=y
112# CONFIG_SLUB is not set 126# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set 127# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 128# CONFIG_PROFILING is not set
129# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 130CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 131CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 132CONFIG_HAVE_IOREMAP_PROT=y
@@ -119,6 +134,7 @@ CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 134CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 135CONFIG_HAVE_ARCH_TRACEHOOK=y
121CONFIG_HAVE_CLK=y 136CONFIG_HAVE_CLK=y
137# CONFIG_SLOW_WORK is not set
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -126,7 +142,6 @@ CONFIG_BASE_SMALL=0
126# CONFIG_MODULES is not set 142# CONFIG_MODULES is not set
127CONFIG_BLOCK=y 143CONFIG_BLOCK=y
128# CONFIG_LBD is not set 144# CONFIG_LBD is not set
129# CONFIG_BLK_DEV_IO_TRACE is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 145# CONFIG_BLK_DEV_INTEGRITY is not set
131 146
132# 147#
@@ -141,18 +156,11 @@ CONFIG_DEFAULT_DEADLINE=y
141# CONFIG_DEFAULT_CFQ is not set 156# CONFIG_DEFAULT_CFQ is not set
142# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="deadline" 158CONFIG_DEFAULT_IOSCHED="deadline"
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
149# CONFIG_FREEZER is not set 159# CONFIG_FREEZER is not set
150 160
151# 161#
152# Platform support 162# Platform support
153# 163#
154CONFIG_PPC_MULTIPLATFORM=y
155CONFIG_CLASSIC32=y
156CONFIG_PPC_CHRP=y 164CONFIG_PPC_CHRP=y
157# CONFIG_MPC5121_ADS is not set 165# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set 166# CONFIG_MPC5121_GENERIC is not set
@@ -171,7 +179,9 @@ CONFIG_8272=y
171# CONFIG_PPC_83xx is not set 179# CONFIG_PPC_83xx is not set
172# CONFIG_PPC_86xx is not set 180# CONFIG_PPC_86xx is not set
173# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
182# CONFIG_AMIGAONE is not set
174CONFIG_PPC_NATIVE=y 183CONFIG_PPC_NATIVE=y
184CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
175# CONFIG_UDBG_RTAS_CONSOLE is not set 185# CONFIG_UDBG_RTAS_CONSOLE is not set
176# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
177CONFIG_MPIC=y 187CONFIG_MPIC=y
@@ -231,9 +241,12 @@ CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
233CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234CONFIG_PPC_4K_PAGES=y 246CONFIG_PPC_4K_PAGES=y
235# CONFIG_PPC_16K_PAGES is not set 247# CONFIG_PPC_16K_PAGES is not set
236# CONFIG_PPC_64K_PAGES is not set 248# CONFIG_PPC_64K_PAGES is not set
249# CONFIG_PPC_256K_PAGES is not set
237CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -260,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
260# CONFIG_PCI_LEGACY is not set 273# CONFIG_PCI_LEGACY is not set
261# CONFIG_PCI_DEBUG is not set 274# CONFIG_PCI_DEBUG is not set
262# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
263# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
264# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
265# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -282,7 +296,6 @@ CONFIG_NET=y
282# 296#
283# Networking options 297# Networking options
284# 298#
285CONFIG_COMPAT_NET_DEV_OPS=y
286CONFIG_PACKET=y 299CONFIG_PACKET=y
287# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
288CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -344,6 +357,7 @@ CONFIG_NETFILTER_ADVANCED=y
344# CONFIG_LLC2 is not set 357# CONFIG_LLC2 is not set
345# CONFIG_IPX is not set 358# CONFIG_IPX is not set
346# CONFIG_ATALK is not set 359# CONFIG_ATALK is not set
360# CONFIG_PHONET is not set
347# CONFIG_NET_SCHED is not set 361# CONFIG_NET_SCHED is not set
348# CONFIG_DCB is not set 362# CONFIG_DCB is not set
349 363
@@ -355,7 +369,6 @@ CONFIG_NETFILTER_ADVANCED=y
355# CONFIG_CAN is not set 369# CONFIG_CAN is not set
356# CONFIG_IRDA is not set 370# CONFIG_IRDA is not set
357# CONFIG_BT is not set 371# CONFIG_BT is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 372CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -464,7 +477,6 @@ CONFIG_MTD_PHYSMAP_OF=y
464# LPDDR flash memory drivers 477# LPDDR flash memory drivers
465# 478#
466# CONFIG_MTD_LPDDR is not set 479# CONFIG_MTD_LPDDR is not set
467# CONFIG_MTD_QINFO_PROBE is not set
468 480
469# 481#
470# UBI - Unsorted block images 482# UBI - Unsorted block images
@@ -517,6 +529,7 @@ CONFIG_HAVE_IDE=y
517# CONFIG_I2O is not set 529# CONFIG_I2O is not set
518# CONFIG_MACINTOSH_DRIVERS is not set 530# CONFIG_MACINTOSH_DRIVERS is not set
519CONFIG_NETDEVICES=y 531CONFIG_NETDEVICES=y
532CONFIG_COMPAT_NET_DEV_OPS=y
520# CONFIG_DUMMY is not set 533# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
522# CONFIG_EQUALIZER is not set 535# CONFIG_EQUALIZER is not set
@@ -551,6 +564,8 @@ CONFIG_MII=y
551# CONFIG_SUNGEM is not set 564# CONFIG_SUNGEM is not set
552# CONFIG_CASSINI is not set 565# CONFIG_CASSINI is not set
553# CONFIG_NET_VENDOR_3COM is not set 566# CONFIG_NET_VENDOR_3COM is not set
567# CONFIG_ETHOC is not set
568# CONFIG_DNET is not set
554# CONFIG_NET_TULIP is not set 569# CONFIG_NET_TULIP is not set
555# CONFIG_HP100 is not set 570# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 571# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -576,7 +591,6 @@ CONFIG_FS_ENET_HAS_SCC=y
576# 591#
577# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
578# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
579# CONFIG_IWLWIFI_LEDS is not set
580 594
581# 595#
582# Enable WiMAX (Networking options) to see the WiMAX drivers 596# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +645,7 @@ CONFIG_LEGACY_PTY_COUNT=256
631# CONFIG_HVC_RTAS is not set 645# CONFIG_HVC_RTAS is not set
632# CONFIG_IPMI_HANDLER is not set 646# CONFIG_IPMI_HANDLER is not set
633CONFIG_HW_RANDOM=y 647CONFIG_HW_RANDOM=y
648# CONFIG_HW_RANDOM_TIMERIOMEM is not set
634# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
635# CONFIG_GEN_RTC is not set 650# CONFIG_GEN_RTC is not set
636# CONFIG_R3964 is not set 651# CONFIG_R3964 is not set
@@ -720,8 +735,10 @@ CONFIG_SSB_POSSIBLE=y
720# CONFIG_NEW_LEDS is not set 735# CONFIG_NEW_LEDS is not set
721# CONFIG_ACCESSIBILITY is not set 736# CONFIG_ACCESSIBILITY is not set
722# CONFIG_INFINIBAND is not set 737# CONFIG_INFINIBAND is not set
738# CONFIG_EDAC is not set
723# CONFIG_RTC_CLASS is not set 739# CONFIG_RTC_CLASS is not set
724# CONFIG_DMADEVICES is not set 740# CONFIG_DMADEVICES is not set
741# CONFIG_AUXDISPLAY is not set
725# CONFIG_UIO is not set 742# CONFIG_UIO is not set
726# CONFIG_STAGING is not set 743# CONFIG_STAGING is not set
727 744
@@ -732,6 +749,7 @@ CONFIG_EXT2_FS=y
732# CONFIG_EXT2_FS_XATTR is not set 749# CONFIG_EXT2_FS_XATTR is not set
733# CONFIG_EXT2_FS_XIP is not set 750# CONFIG_EXT2_FS_XIP is not set
734CONFIG_EXT3_FS=y 751CONFIG_EXT3_FS=y
752# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
735# CONFIG_EXT3_FS_XATTR is not set 753# CONFIG_EXT3_FS_XATTR is not set
736# CONFIG_EXT4_FS is not set 754# CONFIG_EXT4_FS is not set
737CONFIG_JBD=y 755CONFIG_JBD=y
@@ -751,6 +769,10 @@ CONFIG_AUTOFS4_FS=y
751# CONFIG_FUSE_FS is not set 769# CONFIG_FUSE_FS is not set
752 770
753# 771#
772# Caches
773#
774
775#
754# CD-ROM/DVD Filesystems 776# CD-ROM/DVD Filesystems
755# 777#
756# CONFIG_ISO9660_FS is not set 778# CONFIG_ISO9660_FS is not set
@@ -872,6 +894,7 @@ CONFIG_NLS_ISO8859_1=y
872# CONFIG_NLS_KOI8_R is not set 894# CONFIG_NLS_KOI8_R is not set
873# CONFIG_NLS_KOI8_U is not set 895# CONFIG_NLS_KOI8_U is not set
874CONFIG_NLS_UTF8=y 896CONFIG_NLS_UTF8=y
897# CONFIG_BINARY_PRINTF is not set
875 898
876# 899#
877# Library routines 900# Library routines
@@ -887,11 +910,12 @@ CONFIG_CRC32=y
887# CONFIG_LIBCRC32C is not set 910# CONFIG_LIBCRC32C is not set
888CONFIG_ZLIB_INFLATE=y 911CONFIG_ZLIB_INFLATE=y
889CONFIG_ZLIB_DEFLATE=y 912CONFIG_ZLIB_DEFLATE=y
890CONFIG_PLIST=y 913CONFIG_DECOMPRESS_GZIP=y
891CONFIG_HAS_IOMEM=y 914CONFIG_HAS_IOMEM=y
892CONFIG_HAS_IOPORT=y 915CONFIG_HAS_IOPORT=y
893CONFIG_HAS_DMA=y 916CONFIG_HAS_DMA=y
894CONFIG_HAVE_LMB=y 917CONFIG_HAVE_LMB=y
918CONFIG_NLATTR=y
895 919
896# 920#
897# Kernel hacking 921# Kernel hacking
@@ -907,6 +931,7 @@ CONFIG_DEBUG_FS=y
907CONFIG_DEBUG_KERNEL=y 931CONFIG_DEBUG_KERNEL=y
908# CONFIG_DEBUG_SHIRQ is not set 932# CONFIG_DEBUG_SHIRQ is not set
909# CONFIG_DETECT_SOFTLOCKUP is not set 933# CONFIG_DETECT_SOFTLOCKUP is not set
934# CONFIG_DETECT_HUNG_TASK is not set
910# CONFIG_SCHED_DEBUG is not set 935# CONFIG_SCHED_DEBUG is not set
911# CONFIG_SCHEDSTATS is not set 936# CONFIG_SCHEDSTATS is not set
912# CONFIG_TIMER_STATS is not set 937# CONFIG_TIMER_STATS is not set
@@ -935,9 +960,12 @@ CONFIG_DEBUG_INFO=y
935# CONFIG_FAULT_INJECTION is not set 960# CONFIG_FAULT_INJECTION is not set
936# CONFIG_LATENCYTOP is not set 961# CONFIG_LATENCYTOP is not set
937CONFIG_SYSCTL_SYSCALL_CHECK=y 962CONFIG_SYSCTL_SYSCALL_CHECK=y
963# CONFIG_DEBUG_PAGEALLOC is not set
938CONFIG_HAVE_FUNCTION_TRACER=y 964CONFIG_HAVE_FUNCTION_TRACER=y
965CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
939CONFIG_HAVE_DYNAMIC_FTRACE=y 966CONFIG_HAVE_DYNAMIC_FTRACE=y
940CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 967CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
968CONFIG_TRACING_SUPPORT=y
941 969
942# 970#
943# Tracers 971# Tracers
@@ -945,16 +973,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
945# CONFIG_FUNCTION_TRACER is not set 973# CONFIG_FUNCTION_TRACER is not set
946# CONFIG_SCHED_TRACER is not set 974# CONFIG_SCHED_TRACER is not set
947# CONFIG_CONTEXT_SWITCH_TRACER is not set 975# CONFIG_CONTEXT_SWITCH_TRACER is not set
976# CONFIG_EVENT_TRACER is not set
948# CONFIG_BOOT_TRACER is not set 977# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set 978# CONFIG_TRACE_BRANCH_PROFILING is not set
950# CONFIG_STACK_TRACER is not set 979# CONFIG_STACK_TRACER is not set
951# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 980# CONFIG_KMEMTRACE is not set
981# CONFIG_WORKQUEUE_TRACER is not set
982# CONFIG_BLK_DEV_IO_TRACE is not set
983# CONFIG_DYNAMIC_DEBUG is not set
952# CONFIG_SAMPLES is not set 984# CONFIG_SAMPLES is not set
953CONFIG_HAVE_ARCH_KGDB=y 985CONFIG_HAVE_ARCH_KGDB=y
954CONFIG_PRINT_STACK_DEPTH=64 986CONFIG_PRINT_STACK_DEPTH=64
955# CONFIG_DEBUG_STACKOVERFLOW is not set 987# CONFIG_DEBUG_STACKOVERFLOW is not set
956# CONFIG_DEBUG_STACK_USAGE is not set 988# CONFIG_DEBUG_STACK_USAGE is not set
957# CONFIG_DEBUG_PAGEALLOC is not set
958# CONFIG_CODE_PATCHING_SELFTEST is not set 989# CONFIG_CODE_PATCHING_SELFTEST is not set
959# CONFIG_FTR_FIXUP_SELFTEST is not set 990# CONFIG_FTR_FIXUP_SELFTEST is not set
960# CONFIG_MSI_BITMAP_SELFTEST is not set 991# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -986,9 +1017,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
986CONFIG_CRYPTO_HASH=y 1017CONFIG_CRYPTO_HASH=y
987CONFIG_CRYPTO_HASH2=y 1018CONFIG_CRYPTO_HASH2=y
988CONFIG_CRYPTO_RNG2=y 1019CONFIG_CRYPTO_RNG2=y
1020CONFIG_CRYPTO_PCOMP=y
989CONFIG_CRYPTO_MANAGER=y 1021CONFIG_CRYPTO_MANAGER=y
990CONFIG_CRYPTO_MANAGER2=y 1022CONFIG_CRYPTO_MANAGER2=y
991# CONFIG_CRYPTO_NULL is not set 1023# CONFIG_CRYPTO_NULL is not set
1024CONFIG_CRYPTO_WORKQUEUE=y
992# CONFIG_CRYPTO_CRYPTD is not set 1025# CONFIG_CRYPTO_CRYPTD is not set
993# CONFIG_CRYPTO_AUTHENC is not set 1026# CONFIG_CRYPTO_AUTHENC is not set
994 1027
@@ -1052,6 +1085,7 @@ CONFIG_CRYPTO_DES=y
1052# Compression 1085# Compression
1053# 1086#
1054# CONFIG_CRYPTO_DEFLATE is not set 1087# CONFIG_CRYPTO_DEFLATE is not set
1088# CONFIG_CRYPTO_ZLIB is not set
1055# CONFIG_CRYPTO_LZO is not set 1089# CONFIG_CRYPTO_LZO is not set
1056 1090
1057# 1091#
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 297b5d5042be..24fa90792c54 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:32 2009 4# Wed May 13 17:21:55 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -51,6 +51,7 @@ CONFIG_AUDIT_ARCH=y
51# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
52# CONFIG_PPC_DCR_NATIVE is not set 52# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 53# CONFIG_PPC_DCR_MMIO is not set
54CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
55 56
56# 57#
@@ -68,6 +69,15 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
72
73#
74# RCU Subsystem
75#
76CONFIG_CLASSIC_RCU=y
77# CONFIG_TREE_RCU is not set
78# CONFIG_PREEMPT_RCU is not set
79# CONFIG_TREE_RCU_TRACE is not set
80# CONFIG_PREEMPT_RCU_TRACE is not set
71# CONFIG_IKCONFIG is not set 81# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=17 82CONFIG_LOG_BUF_SHIFT=17
73CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
@@ -82,20 +92,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_NAMESPACES is not set 92# CONFIG_NAMESPACES is not set
83CONFIG_BLK_DEV_INITRD=y 93CONFIG_BLK_DEV_INITRD=y
84CONFIG_INITRAMFS_SOURCE="" 94CONFIG_INITRAMFS_SOURCE=""
95CONFIG_RD_GZIP=y
96# CONFIG_RD_BZIP2 is not set
97# CONFIG_RD_LZMA is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 98# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 102# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 103CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 104# CONFIG_KALLSYMS_EXTRA_PASS is not set
105# CONFIG_STRIP_ASM_SYMS is not set
91# CONFIG_HOTPLUG is not set 106# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 107CONFIG_PRINTK=y
93# CONFIG_BUG is not set 108# CONFIG_BUG is not set
94CONFIG_ELF_CORE=y 109CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96# CONFIG_BASE_FULL is not set 110# CONFIG_BASE_FULL is not set
97CONFIG_FUTEX=y 111CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99# CONFIG_EPOLL is not set 112# CONFIG_EPOLL is not set
100CONFIG_SIGNALFD=y 113CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 114CONFIG_TIMERFD=y
@@ -103,10 +116,12 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 116CONFIG_SHMEM=y
104CONFIG_AIO=y 117CONFIG_AIO=y
105# CONFIG_VM_EVENT_COUNTERS is not set 118# CONFIG_VM_EVENT_COUNTERS is not set
119CONFIG_COMPAT_BRK=y
106CONFIG_SLAB=y 120CONFIG_SLAB=y
107# CONFIG_SLUB is not set 121# CONFIG_SLUB is not set
108# CONFIG_SLOB is not set 122# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 123# CONFIG_PROFILING is not set
124# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 126CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 127CONFIG_HAVE_IOREMAP_PROT=y
@@ -114,6 +129,7 @@ CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
116CONFIG_HAVE_CLK=y 131CONFIG_HAVE_CLK=y
132# CONFIG_SLOW_WORK is not set
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
@@ -121,7 +137,6 @@ CONFIG_BASE_SMALL=1
121# CONFIG_MODULES is not set 137# CONFIG_MODULES is not set
122CONFIG_BLOCK=y 138CONFIG_BLOCK=y
123# CONFIG_LBD is not set 139# CONFIG_LBD is not set
124# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
127 142
@@ -137,11 +152,6 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_CFQ is not set 152# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="anticipatory"
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
145# CONFIG_FREEZER is not set 155# CONFIG_FREEZER is not set
146 156
147# 157#
@@ -232,9 +242,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 243CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 244CONFIG_UNEVICTABLE_LRU=y
245CONFIG_HAVE_MLOCK=y
246CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 247CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 248# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 249# CONFIG_PPC_64K_PAGES is not set
250# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 252# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
@@ -268,14 +281,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 281CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 282CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0x80000000 283CONFIG_TASK_SIZE=0x80000000
271CONFIG_CONSISTENT_START=0xfd000000
272CONFIG_CONSISTENT_SIZE=0x00200000
273CONFIG_NET=y 284CONFIG_NET=y
274 285
275# 286#
276# Networking options 287# Networking options
277# 288#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 289CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -331,6 +341,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_LAPB is not set 341# CONFIG_LAPB is not set
332# CONFIG_ECONET is not set 342# CONFIG_ECONET is not set
333# CONFIG_WAN_ROUTER is not set 343# CONFIG_WAN_ROUTER is not set
344# CONFIG_PHONET is not set
334# CONFIG_NET_SCHED is not set 345# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set 346# CONFIG_DCB is not set
336 347
@@ -343,7 +354,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 354# CONFIG_IRDA is not set
344# CONFIG_BT is not set 355# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 356# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set
347CONFIG_WIRELESS=y 357CONFIG_WIRELESS=y
348# CONFIG_CFG80211 is not set 358# CONFIG_CFG80211 is not set
349CONFIG_WIRELESS_OLD_REGULATORY=y 359CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -447,7 +457,6 @@ CONFIG_MTD_PHYSMAP_OF=y
447# LPDDR flash memory drivers 457# LPDDR flash memory drivers
448# 458#
449# CONFIG_MTD_LPDDR is not set 459# CONFIG_MTD_LPDDR is not set
450# CONFIG_MTD_QINFO_PROBE is not set
451 460
452# 461#
453# UBI - Unsorted block images 462# UBI - Unsorted block images
@@ -483,6 +492,7 @@ CONFIG_HAVE_IDE=y
483# CONFIG_MD is not set 492# CONFIG_MD is not set
484# CONFIG_MACINTOSH_DRIVERS is not set 493# CONFIG_MACINTOSH_DRIVERS is not set
485CONFIG_NETDEVICES=y 494CONFIG_NETDEVICES=y
495CONFIG_COMPAT_NET_DEV_OPS=y
486# CONFIG_DUMMY is not set 496# CONFIG_DUMMY is not set
487# CONFIG_BONDING is not set 497# CONFIG_BONDING is not set
488# CONFIG_MACVLAN is not set 498# CONFIG_MACVLAN is not set
@@ -511,6 +521,8 @@ CONFIG_FIXED_PHY=y
511# CONFIG_MDIO_BITBANG is not set 521# CONFIG_MDIO_BITBANG is not set
512CONFIG_NET_ETHERNET=y 522CONFIG_NET_ETHERNET=y
513CONFIG_MII=y 523CONFIG_MII=y
524# CONFIG_ETHOC is not set
525# CONFIG_DNET is not set
514# CONFIG_IBM_NEW_EMAC_ZMII is not set 526# CONFIG_IBM_NEW_EMAC_ZMII is not set
515# CONFIG_IBM_NEW_EMAC_RGMII is not set 527# CONFIG_IBM_NEW_EMAC_RGMII is not set
516# CONFIG_IBM_NEW_EMAC_TAH is not set 528# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -531,7 +543,6 @@ CONFIG_FS_ENET_HAS_SCC=y
531# 543#
532# CONFIG_WLAN_PRE80211 is not set 544# CONFIG_WLAN_PRE80211 is not set
533# CONFIG_WLAN_80211 is not set 545# CONFIG_WLAN_80211 is not set
534# CONFIG_IWLWIFI_LEDS is not set
535 546
536# 547#
537# Enable WiMAX (Networking options) to see the WiMAX drivers 548# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -582,6 +593,7 @@ CONFIG_UNIX98_PTYS=y
582# CONFIG_HVC_UDBG is not set 593# CONFIG_HVC_UDBG is not set
583# CONFIG_IPMI_HANDLER is not set 594# CONFIG_IPMI_HANDLER is not set
584CONFIG_HW_RANDOM=y 595CONFIG_HW_RANDOM=y
596# CONFIG_HW_RANDOM_TIMERIOMEM is not set
585# CONFIG_NVRAM is not set 597# CONFIG_NVRAM is not set
586CONFIG_GEN_RTC=y 598CONFIG_GEN_RTC=y
587# CONFIG_GEN_RTC_X is not set 599# CONFIG_GEN_RTC_X is not set
@@ -651,6 +663,7 @@ CONFIG_SSB_POSSIBLE=y
651# CONFIG_EDAC is not set 663# CONFIG_EDAC is not set
652# CONFIG_RTC_CLASS is not set 664# CONFIG_RTC_CLASS is not set
653# CONFIG_DMADEVICES is not set 665# CONFIG_DMADEVICES is not set
666# CONFIG_AUXDISPLAY is not set
654# CONFIG_UIO is not set 667# CONFIG_UIO is not set
655# CONFIG_STAGING is not set 668# CONFIG_STAGING is not set
656 669
@@ -663,6 +676,7 @@ CONFIG_EXT2_FS_XATTR=y
663# CONFIG_EXT2_FS_SECURITY is not set 676# CONFIG_EXT2_FS_SECURITY is not set
664# CONFIG_EXT2_FS_XIP is not set 677# CONFIG_EXT2_FS_XIP is not set
665CONFIG_EXT3_FS=y 678CONFIG_EXT3_FS=y
679# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
666CONFIG_EXT3_FS_XATTR=y 680CONFIG_EXT3_FS_XATTR=y
667# CONFIG_EXT3_FS_POSIX_ACL is not set 681# CONFIG_EXT3_FS_POSIX_ACL is not set
668# CONFIG_EXT3_FS_SECURITY is not set 682# CONFIG_EXT3_FS_SECURITY is not set
@@ -686,6 +700,11 @@ CONFIG_INOTIFY_USER=y
686# CONFIG_FUSE_FS is not set 700# CONFIG_FUSE_FS is not set
687 701
688# 702#
703# Caches
704#
705# CONFIG_FSCACHE is not set
706
707#
689# CD-ROM/DVD Filesystems 708# CD-ROM/DVD Filesystems
690# 709#
691# CONFIG_ISO9660_FS is not set 710# CONFIG_ISO9660_FS is not set
@@ -739,6 +758,7 @@ CONFIG_CRAMFS=y
739# CONFIG_ROMFS_FS is not set 758# CONFIG_ROMFS_FS is not set
740# CONFIG_SYSV_FS is not set 759# CONFIG_SYSV_FS is not set
741# CONFIG_UFS_FS is not set 760# CONFIG_UFS_FS is not set
761# CONFIG_NILFS2_FS is not set
742CONFIG_NETWORK_FILESYSTEMS=y 762CONFIG_NETWORK_FILESYSTEMS=y
743CONFIG_NFS_FS=y 763CONFIG_NFS_FS=y
744CONFIG_NFS_V3=y 764CONFIG_NFS_V3=y
@@ -750,7 +770,6 @@ CONFIG_LOCKD=y
750CONFIG_LOCKD_V4=y 770CONFIG_LOCKD_V4=y
751CONFIG_NFS_COMMON=y 771CONFIG_NFS_COMMON=y
752CONFIG_SUNRPC=y 772CONFIG_SUNRPC=y
753# CONFIG_SUNRPC_REGISTER_V4 is not set
754# CONFIG_RPCSEC_GSS_KRB5 is not set 773# CONFIG_RPCSEC_GSS_KRB5 is not set
755# CONFIG_RPCSEC_GSS_SPKM3 is not set 774# CONFIG_RPCSEC_GSS_SPKM3 is not set
756# CONFIG_SMB_FS is not set 775# CONFIG_SMB_FS is not set
@@ -782,6 +801,7 @@ CONFIG_MSDOS_PARTITION=y
782# CONFIG_SYSV68_PARTITION is not set 801# CONFIG_SYSV68_PARTITION is not set
783# CONFIG_NLS is not set 802# CONFIG_NLS is not set
784# CONFIG_DLM is not set 803# CONFIG_DLM is not set
804# CONFIG_BINARY_PRINTF is not set
785 805
786# 806#
787# Library routines 807# Library routines
@@ -797,11 +817,12 @@ CONFIG_CRC32=y
797# CONFIG_LIBCRC32C is not set 817# CONFIG_LIBCRC32C is not set
798CONFIG_ZLIB_INFLATE=y 818CONFIG_ZLIB_INFLATE=y
799CONFIG_ZLIB_DEFLATE=y 819CONFIG_ZLIB_DEFLATE=y
800CONFIG_PLIST=y 820CONFIG_DECOMPRESS_GZIP=y
801CONFIG_HAS_IOMEM=y 821CONFIG_HAS_IOMEM=y
802CONFIG_HAS_IOPORT=y 822CONFIG_HAS_IOPORT=y
803CONFIG_HAS_DMA=y 823CONFIG_HAS_DMA=y
804CONFIG_HAVE_LMB=y 824CONFIG_HAVE_LMB=y
825CONFIG_NLATTR=y
805 826
806# 827#
807# Kernel hacking 828# Kernel hacking
@@ -819,13 +840,25 @@ CONFIG_DEBUG_FS=y
819# CONFIG_RCU_CPU_STALL_DETECTOR is not set 840# CONFIG_RCU_CPU_STALL_DETECTOR is not set
820# CONFIG_LATENCYTOP is not set 841# CONFIG_LATENCYTOP is not set
821CONFIG_HAVE_FUNCTION_TRACER=y 842CONFIG_HAVE_FUNCTION_TRACER=y
843CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
822CONFIG_HAVE_DYNAMIC_FTRACE=y 844CONFIG_HAVE_DYNAMIC_FTRACE=y
823CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 845CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
846CONFIG_TRACING_SUPPORT=y
824 847
825# 848#
826# Tracers 849# Tracers
827# 850#
828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 851# CONFIG_FUNCTION_TRACER is not set
852# CONFIG_SCHED_TRACER is not set
853# CONFIG_CONTEXT_SWITCH_TRACER is not set
854# CONFIG_EVENT_TRACER is not set
855# CONFIG_BOOT_TRACER is not set
856# CONFIG_TRACE_BRANCH_PROFILING is not set
857# CONFIG_STACK_TRACER is not set
858# CONFIG_KMEMTRACE is not set
859# CONFIG_WORKQUEUE_TRACER is not set
860# CONFIG_BLK_DEV_IO_TRACE is not set
861# CONFIG_DYNAMIC_DEBUG is not set
829# CONFIG_SAMPLES is not set 862# CONFIG_SAMPLES is not set
830CONFIG_HAVE_ARCH_KGDB=y 863CONFIG_HAVE_ARCH_KGDB=y
831CONFIG_PRINT_STACK_DEPTH=64 864CONFIG_PRINT_STACK_DEPTH=64
@@ -917,6 +950,7 @@ CONFIG_CRYPTO=y
917# Compression 950# Compression
918# 951#
919# CONFIG_CRYPTO_DEFLATE is not set 952# CONFIG_CRYPTO_DEFLATE is not set
953# CONFIG_CRYPTO_ZLIB is not set
920# CONFIG_CRYPTO_LZO is not set 954# CONFIG_CRYPTO_LZO is not set
921 955
922# 956#
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index af0cd55605d0..aaa4416660e9 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.29-rc3 3# Linux kernel version: 2.6.30-rc2
4# Fri Feb 6 09:48:53 2009 4# Mon Apr 20 11:06:25 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -39,6 +40,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 41CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 42CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 45CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
@@ -55,6 +57,7 @@ CONFIG_DEFAULT_UIMAGE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y 57CONFIG_ARCH_SUSPEND_POSSIBLE=y
56# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 62
60# 63#
@@ -91,19 +94,22 @@ CONFIG_SYSFS_DEPRECATED_V2=y
91# CONFIG_NAMESPACES is not set 94# CONFIG_NAMESPACES is not set
92CONFIG_BLK_DEV_INITRD=y 95CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 96CONFIG_INITRAMFS_SOURCE=""
97CONFIG_RD_GZIP=y
98# CONFIG_RD_BZIP2 is not set
99# CONFIG_RD_LZMA is not set
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 100# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 101CONFIG_SYSCTL=y
102CONFIG_ANON_INODES=y
96CONFIG_EMBEDDED=y 103CONFIG_EMBEDDED=y
97# CONFIG_SYSCTL_SYSCALL is not set 104# CONFIG_SYSCTL_SYSCALL is not set
98# CONFIG_KALLSYMS is not set 105# CONFIG_KALLSYMS is not set
106# CONFIG_STRIP_ASM_SYMS is not set
99CONFIG_HOTPLUG=y 107CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 108CONFIG_PRINTK=y
101CONFIG_BUG=y 109CONFIG_BUG=y
102CONFIG_ELF_CORE=y 110CONFIG_ELF_CORE=y
103CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 111CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 112CONFIG_FUTEX=y
106CONFIG_ANON_INODES=y
107# CONFIG_EPOLL is not set 113# CONFIG_EPOLL is not set
108CONFIG_SIGNALFD=y 114CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y 115CONFIG_TIMERFD=y
@@ -113,10 +119,12 @@ CONFIG_AIO=y
113CONFIG_VM_EVENT_COUNTERS=y 119CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 120CONFIG_PCI_QUIRKS=y
115CONFIG_SLUB_DEBUG=y 121CONFIG_SLUB_DEBUG=y
122CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 123# CONFIG_SLAB is not set
117CONFIG_SLUB=y 124CONFIG_SLUB=y
118# CONFIG_SLOB is not set 125# CONFIG_SLOB is not set
119# CONFIG_PROFILING is not set 126# CONFIG_PROFILING is not set
127# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 129CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y 130CONFIG_HAVE_IOREMAP_PROT=y
@@ -124,6 +132,7 @@ CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 132CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 133CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_CLK=y 134CONFIG_HAVE_CLK=y
135# CONFIG_SLOW_WORK is not set
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 137CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 138CONFIG_RT_MUTEXES=y
@@ -136,7 +145,6 @@ CONFIG_MODULE_UNLOAD=y
136# CONFIG_MODULE_SRCVERSION_ALL is not set 145# CONFIG_MODULE_SRCVERSION_ALL is not set
137CONFIG_BLOCK=y 146CONFIG_BLOCK=y
138# CONFIG_LBD is not set 147# CONFIG_LBD is not set
139# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set 149# CONFIG_BLK_DEV_INTEGRITY is not set
142 150
@@ -157,8 +165,6 @@ CONFIG_FREEZER=y
157# 165#
158# Platform support 166# Platform support
159# 167#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 168# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 169# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 170# CONFIG_MPC5121_GENERIC is not set
@@ -166,8 +172,9 @@ CONFIG_PPC_MPC52xx=y
166CONFIG_PPC_MPC5200_SIMPLE=y 172CONFIG_PPC_MPC5200_SIMPLE=y
167CONFIG_PPC_EFIKA=y 173CONFIG_PPC_EFIKA=y
168CONFIG_PPC_LITE5200=y 174CONFIG_PPC_LITE5200=y
175CONFIG_PPC_MEDIA5200=y
169CONFIG_PPC_MPC5200_BUGFIX=y 176CONFIG_PPC_MPC5200_BUGFIX=y
170# CONFIG_PPC_MPC5200_GPIO is not set 177CONFIG_PPC_MPC5200_GPIO=y
171# CONFIG_PPC_PMAC is not set 178# CONFIG_PPC_PMAC is not set
172# CONFIG_PPC_CELL is not set 179# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 180# CONFIG_PPC_CELL_NATIVE is not set
@@ -176,7 +183,9 @@ CONFIG_PPC_MPC5200_BUGFIX=y
176# CONFIG_PPC_83xx is not set 183# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set 184# CONFIG_PPC_86xx is not set
178# CONFIG_EMBEDDED6xx is not set 185# CONFIG_EMBEDDED6xx is not set
186# CONFIG_AMIGAONE is not set
179CONFIG_PPC_NATIVE=y 187CONFIG_PPC_NATIVE=y
188CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
180# CONFIG_UDBG_RTAS_CONSOLE is not set 189# CONFIG_UDBG_RTAS_CONSOLE is not set
181# CONFIG_IPIC is not set 190# CONFIG_IPIC is not set
182# CONFIG_MPIC is not set 191# CONFIG_MPIC is not set
@@ -241,9 +250,12 @@ CONFIG_ZONE_DMA_FLAG=1
241CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
242CONFIG_VIRT_TO_BUS=y 251CONFIG_VIRT_TO_BUS=y
243CONFIG_UNEVICTABLE_LRU=y 252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_HAVE_MLOCK=y
254CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244CONFIG_PPC_4K_PAGES=y 255CONFIG_PPC_4K_PAGES=y
245# CONFIG_PPC_16K_PAGES is not set 256# CONFIG_PPC_16K_PAGES is not set
246# CONFIG_PPC_64K_PAGES is not set 257# CONFIG_PPC_64K_PAGES is not set
258# CONFIG_PPC_256K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=11 259CONFIG_FORCE_MAX_ZONEORDER=11
248CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
249# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
@@ -272,6 +284,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
272CONFIG_PCI_LEGACY=y 284CONFIG_PCI_LEGACY=y
273# CONFIG_PCI_DEBUG is not set 285# CONFIG_PCI_DEBUG is not set
274# CONFIG_PCI_STUB is not set 286# CONFIG_PCI_STUB is not set
287# CONFIG_PCI_IOV is not set
275# CONFIG_PCCARD is not set 288# CONFIG_PCCARD is not set
276# CONFIG_HOTPLUG_PCI is not set 289# CONFIG_HOTPLUG_PCI is not set
277# CONFIG_HAS_RAPIDIO is not set 290# CONFIG_HAS_RAPIDIO is not set
@@ -294,7 +307,6 @@ CONFIG_NET=y
294# 307#
295# Networking options 308# Networking options
296# 309#
297CONFIG_COMPAT_NET_DEV_OPS=y
298CONFIG_PACKET=y 310CONFIG_PACKET=y
299# CONFIG_PACKET_MMAP is not set 311# CONFIG_PACKET_MMAP is not set
300CONFIG_UNIX=y 312CONFIG_UNIX=y
@@ -350,6 +362,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
350# CONFIG_LAPB is not set 362# CONFIG_LAPB is not set
351# CONFIG_ECONET is not set 363# CONFIG_ECONET is not set
352# CONFIG_WAN_ROUTER is not set 364# CONFIG_WAN_ROUTER is not set
365# CONFIG_PHONET is not set
353# CONFIG_NET_SCHED is not set 366# CONFIG_NET_SCHED is not set
354# CONFIG_DCB is not set 367# CONFIG_DCB is not set
355 368
@@ -362,7 +375,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
362# CONFIG_IRDA is not set 375# CONFIG_IRDA is not set
363# CONFIG_BT is not set 376# CONFIG_BT is not set
364# CONFIG_AF_RXRPC is not set 377# CONFIG_AF_RXRPC is not set
365# CONFIG_PHONET is not set
366# CONFIG_WIRELESS is not set 378# CONFIG_WIRELESS is not set
367# CONFIG_WIMAX is not set 379# CONFIG_WIMAX is not set
368# CONFIG_RFKILL is not set 380# CONFIG_RFKILL is not set
@@ -388,12 +400,9 @@ CONFIG_MTD=y
388CONFIG_MTD_CONCAT=y 400CONFIG_MTD_CONCAT=y
389CONFIG_MTD_PARTITIONS=y 401CONFIG_MTD_PARTITIONS=y
390# CONFIG_MTD_TESTS is not set 402# CONFIG_MTD_TESTS is not set
391CONFIG_MTD_REDBOOT_PARTS=y 403# CONFIG_MTD_REDBOOT_PARTS is not set
392CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
393# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
394# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
395CONFIG_MTD_CMDLINE_PARTS=y 404CONFIG_MTD_CMDLINE_PARTS=y
396# CONFIG_MTD_OF_PARTS is not set 405CONFIG_MTD_OF_PARTS=y
397# CONFIG_MTD_AR7_PARTS is not set 406# CONFIG_MTD_AR7_PARTS is not set
398 407
399# 408#
@@ -447,6 +456,8 @@ CONFIG_MTD_PHYSMAP_OF=y
447# Self-contained MTD device drivers 456# Self-contained MTD device drivers
448# 457#
449# CONFIG_MTD_PMC551 is not set 458# CONFIG_MTD_PMC551 is not set
459# CONFIG_MTD_DATAFLASH is not set
460# CONFIG_MTD_M25P80 is not set
450# CONFIG_MTD_SLRAM is not set 461# CONFIG_MTD_SLRAM is not set
451# CONFIG_MTD_PHRAM is not set 462# CONFIG_MTD_PHRAM is not set
452# CONFIG_MTD_MTDRAM is not set 463# CONFIG_MTD_MTDRAM is not set
@@ -465,14 +476,23 @@ CONFIG_MTD_PHYSMAP_OF=y
465# LPDDR flash memory drivers 476# LPDDR flash memory drivers
466# 477#
467# CONFIG_MTD_LPDDR is not set 478# CONFIG_MTD_LPDDR is not set
468# CONFIG_MTD_QINFO_PROBE is not set
469 479
470# 480#
471# UBI - Unsorted block images 481# UBI - Unsorted block images
472# 482#
473# CONFIG_MTD_UBI is not set 483CONFIG_MTD_UBI=m
484CONFIG_MTD_UBI_WL_THRESHOLD=4096
485CONFIG_MTD_UBI_BEB_RESERVE=1
486# CONFIG_MTD_UBI_GLUEBI is not set
487
488#
489# UBI debugging options
490#
491# CONFIG_MTD_UBI_DEBUG is not set
474CONFIG_OF_DEVICE=y 492CONFIG_OF_DEVICE=y
493CONFIG_OF_GPIO=y
475CONFIG_OF_I2C=y 494CONFIG_OF_I2C=y
495CONFIG_OF_SPI=y
476# CONFIG_PARPORT is not set 496# CONFIG_PARPORT is not set
477CONFIG_BLK_DEV=y 497CONFIG_BLK_DEV=y
478# CONFIG_BLK_DEV_FD is not set 498# CONFIG_BLK_DEV_FD is not set
@@ -500,12 +520,14 @@ CONFIG_MISC_DEVICES=y
500# CONFIG_ICS932S401 is not set 520# CONFIG_ICS932S401 is not set
501# CONFIG_ENCLOSURE_SERVICES is not set 521# CONFIG_ENCLOSURE_SERVICES is not set
502# CONFIG_HP_ILO is not set 522# CONFIG_HP_ILO is not set
523# CONFIG_ISL29003 is not set
503# CONFIG_C2PORT is not set 524# CONFIG_C2PORT is not set
504 525
505# 526#
506# EEPROM support 527# EEPROM support
507# 528#
508CONFIG_EEPROM_AT24=y 529CONFIG_EEPROM_AT24=y
530# CONFIG_EEPROM_AT25 is not set
509# CONFIG_EEPROM_LEGACY is not set 531# CONFIG_EEPROM_LEGACY is not set
510# CONFIG_EEPROM_93CX6 is not set 532# CONFIG_EEPROM_93CX6 is not set
511CONFIG_HAVE_IDE=y 533CONFIG_HAVE_IDE=y
@@ -564,9 +586,11 @@ CONFIG_SCSI_LOWLEVEL=y
564# CONFIG_MEGARAID_NEWGEN is not set 586# CONFIG_MEGARAID_NEWGEN is not set
565# CONFIG_MEGARAID_LEGACY is not set 587# CONFIG_MEGARAID_LEGACY is not set
566# CONFIG_MEGARAID_SAS is not set 588# CONFIG_MEGARAID_SAS is not set
589# CONFIG_SCSI_MPT2SAS is not set
567# CONFIG_SCSI_HPTIOP is not set 590# CONFIG_SCSI_HPTIOP is not set
568# CONFIG_SCSI_BUSLOGIC is not set 591# CONFIG_SCSI_BUSLOGIC is not set
569# CONFIG_LIBFC is not set 592# CONFIG_LIBFC is not set
593# CONFIG_LIBFCOE is not set
570# CONFIG_FCOE is not set 594# CONFIG_FCOE is not set
571# CONFIG_SCSI_DMX3191D is not set 595# CONFIG_SCSI_DMX3191D is not set
572# CONFIG_SCSI_EATA is not set 596# CONFIG_SCSI_EATA is not set
@@ -589,6 +613,7 @@ CONFIG_SCSI_LOWLEVEL=y
589# CONFIG_SCSI_DEBUG is not set 613# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 614# CONFIG_SCSI_SRP is not set
591# CONFIG_SCSI_DH is not set 615# CONFIG_SCSI_DH is not set
616# CONFIG_SCSI_OSD_INITIATOR is not set
592CONFIG_ATA=y 617CONFIG_ATA=y
593# CONFIG_ATA_NONSTANDARD is not set 618# CONFIG_ATA_NONSTANDARD is not set
594CONFIG_SATA_PMP=y 619CONFIG_SATA_PMP=y
@@ -666,6 +691,7 @@ CONFIG_PATA_PLATFORM=y
666# CONFIG_I2O is not set 691# CONFIG_I2O is not set
667# CONFIG_MACINTOSH_DRIVERS is not set 692# CONFIG_MACINTOSH_DRIVERS is not set
668CONFIG_NETDEVICES=y 693CONFIG_NETDEVICES=y
694CONFIG_COMPAT_NET_DEV_OPS=y
669# CONFIG_DUMMY is not set 695# CONFIG_DUMMY is not set
670# CONFIG_BONDING is not set 696# CONFIG_BONDING is not set
671# CONFIG_MACVLAN is not set 697# CONFIG_MACVLAN is not set
@@ -699,6 +725,9 @@ CONFIG_NET_ETHERNET=y
699# CONFIG_SUNGEM is not set 725# CONFIG_SUNGEM is not set
700# CONFIG_CASSINI is not set 726# CONFIG_CASSINI is not set
701# CONFIG_NET_VENDOR_3COM is not set 727# CONFIG_NET_VENDOR_3COM is not set
728# CONFIG_ENC28J60 is not set
729# CONFIG_ETHOC is not set
730# CONFIG_DNET is not set
702# CONFIG_NET_TULIP is not set 731# CONFIG_NET_TULIP is not set
703# CONFIG_HP100 is not set 732# CONFIG_HP100 is not set
704# CONFIG_IBM_NEW_EMAC_ZMII is not set 733# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -722,7 +751,6 @@ CONFIG_FEC_MPC52xx_MDIO=y
722# 751#
723# CONFIG_WLAN_PRE80211 is not set 752# CONFIG_WLAN_PRE80211 is not set
724# CONFIG_WLAN_80211 is not set 753# CONFIG_WLAN_80211 is not set
725# CONFIG_IWLWIFI_LEDS is not set
726 754
727# 755#
728# Enable WiMAX (Networking options) to see the WiMAX drivers 756# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -802,6 +830,7 @@ CONFIG_DEVKMEM=y
802# 830#
803# Non-8250 serial port support 831# Non-8250 serial port support
804# 832#
833# CONFIG_SERIAL_MAX3100 is not set
805# CONFIG_SERIAL_UARTLITE is not set 834# CONFIG_SERIAL_UARTLITE is not set
806CONFIG_SERIAL_CORE=y 835CONFIG_SERIAL_CORE=y
807CONFIG_SERIAL_CORE_CONSOLE=y 836CONFIG_SERIAL_CORE_CONSOLE=y
@@ -854,6 +883,7 @@ CONFIG_I2C_ALGOBIT=y
854# 883#
855# I2C system bus drivers (mostly embedded / system-on-chip) 884# I2C system bus drivers (mostly embedded / system-on-chip)
856# 885#
886# CONFIG_I2C_GPIO is not set
857CONFIG_I2C_MPC=y 887CONFIG_I2C_MPC=y
858# CONFIG_I2C_OCORES is not set 888# CONFIG_I2C_OCORES is not set
859# CONFIG_I2C_SIMTEC is not set 889# CONFIG_I2C_SIMTEC is not set
@@ -883,22 +913,63 @@ CONFIG_I2C_MPC=y
883# CONFIG_SENSORS_PCF8574 is not set 913# CONFIG_SENSORS_PCF8574 is not set
884# CONFIG_PCF8575 is not set 914# CONFIG_PCF8575 is not set
885# CONFIG_SENSORS_PCA9539 is not set 915# CONFIG_SENSORS_PCA9539 is not set
886# CONFIG_SENSORS_PCF8591 is not set
887# CONFIG_SENSORS_MAX6875 is not set 916# CONFIG_SENSORS_MAX6875 is not set
888# CONFIG_SENSORS_TSL2550 is not set 917# CONFIG_SENSORS_TSL2550 is not set
889# CONFIG_I2C_DEBUG_CORE is not set 918# CONFIG_I2C_DEBUG_CORE is not set
890# CONFIG_I2C_DEBUG_ALGO is not set 919# CONFIG_I2C_DEBUG_ALGO is not set
891# CONFIG_I2C_DEBUG_BUS is not set 920# CONFIG_I2C_DEBUG_BUS is not set
892# CONFIG_I2C_DEBUG_CHIP is not set 921# CONFIG_I2C_DEBUG_CHIP is not set
893# CONFIG_SPI is not set 922CONFIG_SPI=y
923# CONFIG_SPI_DEBUG is not set
924CONFIG_SPI_MASTER=y
925
926#
927# SPI Master Controller Drivers
928#
929# CONFIG_SPI_BITBANG is not set
930# CONFIG_SPI_GPIO is not set
931CONFIG_SPI_MPC52xx_PSC=m
932
933#
934# SPI Protocol Masters
935#
936CONFIG_SPI_SPIDEV=m
937# CONFIG_SPI_TLE62X0 is not set
894CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 938CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
895# CONFIG_GPIOLIB is not set 939CONFIG_ARCH_REQUIRE_GPIOLIB=y
940CONFIG_GPIOLIB=y
941# CONFIG_DEBUG_GPIO is not set
942# CONFIG_GPIO_SYSFS is not set
943
944#
945# Memory mapped GPIO expanders:
946#
947# CONFIG_GPIO_XILINX is not set
948
949#
950# I2C GPIO expanders:
951#
952# CONFIG_GPIO_MAX732X is not set
953# CONFIG_GPIO_PCA953X is not set
954# CONFIG_GPIO_PCF857X is not set
955
956#
957# PCI GPIO expanders:
958#
959# CONFIG_GPIO_BT8XX is not set
960
961#
962# SPI GPIO expanders:
963#
964# CONFIG_GPIO_MAX7301 is not set
965# CONFIG_GPIO_MCP23S08 is not set
896# CONFIG_W1 is not set 966# CONFIG_W1 is not set
897# CONFIG_POWER_SUPPLY is not set 967# CONFIG_POWER_SUPPLY is not set
898CONFIG_HWMON=y 968CONFIG_HWMON=y
899# CONFIG_HWMON_VID is not set 969# CONFIG_HWMON_VID is not set
900# CONFIG_SENSORS_AD7414 is not set 970# CONFIG_SENSORS_AD7414 is not set
901# CONFIG_SENSORS_AD7418 is not set 971# CONFIG_SENSORS_AD7418 is not set
972# CONFIG_SENSORS_ADCXX is not set
902# CONFIG_SENSORS_ADM1021 is not set 973# CONFIG_SENSORS_ADM1021 is not set
903# CONFIG_SENSORS_ADM1025 is not set 974# CONFIG_SENSORS_ADM1025 is not set
904# CONFIG_SENSORS_ADM1026 is not set 975# CONFIG_SENSORS_ADM1026 is not set
@@ -915,10 +986,12 @@ CONFIG_HWMON=y
915# CONFIG_SENSORS_F71805F is not set 986# CONFIG_SENSORS_F71805F is not set
916# CONFIG_SENSORS_F71882FG is not set 987# CONFIG_SENSORS_F71882FG is not set
917# CONFIG_SENSORS_F75375S is not set 988# CONFIG_SENSORS_F75375S is not set
989# CONFIG_SENSORS_G760A is not set
918# CONFIG_SENSORS_GL518SM is not set 990# CONFIG_SENSORS_GL518SM is not set
919# CONFIG_SENSORS_GL520SM is not set 991# CONFIG_SENSORS_GL520SM is not set
920# CONFIG_SENSORS_IT87 is not set 992# CONFIG_SENSORS_IT87 is not set
921# CONFIG_SENSORS_LM63 is not set 993# CONFIG_SENSORS_LM63 is not set
994# CONFIG_SENSORS_LM70 is not set
922# CONFIG_SENSORS_LM75 is not set 995# CONFIG_SENSORS_LM75 is not set
923# CONFIG_SENSORS_LM77 is not set 996# CONFIG_SENSORS_LM77 is not set
924# CONFIG_SENSORS_LM78 is not set 997# CONFIG_SENSORS_LM78 is not set
@@ -929,11 +1002,16 @@ CONFIG_HWMON=y
929# CONFIG_SENSORS_LM90 is not set 1002# CONFIG_SENSORS_LM90 is not set
930# CONFIG_SENSORS_LM92 is not set 1003# CONFIG_SENSORS_LM92 is not set
931# CONFIG_SENSORS_LM93 is not set 1004# CONFIG_SENSORS_LM93 is not set
1005# CONFIG_SENSORS_LTC4215 is not set
932# CONFIG_SENSORS_LTC4245 is not set 1006# CONFIG_SENSORS_LTC4245 is not set
1007# CONFIG_SENSORS_LM95241 is not set
1008# CONFIG_SENSORS_MAX1111 is not set
933# CONFIG_SENSORS_MAX1619 is not set 1009# CONFIG_SENSORS_MAX1619 is not set
934# CONFIG_SENSORS_MAX6650 is not set 1010# CONFIG_SENSORS_MAX6650 is not set
935# CONFIG_SENSORS_PC87360 is not set 1011# CONFIG_SENSORS_PC87360 is not set
936# CONFIG_SENSORS_PC87427 is not set 1012# CONFIG_SENSORS_PC87427 is not set
1013# CONFIG_SENSORS_PCF8591 is not set
1014# CONFIG_SENSORS_SHT15 is not set
937# CONFIG_SENSORS_SIS5595 is not set 1015# CONFIG_SENSORS_SIS5595 is not set
938# CONFIG_SENSORS_DME1737 is not set 1016# CONFIG_SENSORS_DME1737 is not set
939# CONFIG_SENSORS_SMSC47M1 is not set 1017# CONFIG_SENSORS_SMSC47M1 is not set
@@ -952,6 +1030,7 @@ CONFIG_HWMON=y
952# CONFIG_SENSORS_W83L786NG is not set 1030# CONFIG_SENSORS_W83L786NG is not set
953# CONFIG_SENSORS_W83627HF is not set 1031# CONFIG_SENSORS_W83627HF is not set
954# CONFIG_SENSORS_W83627EHF is not set 1032# CONFIG_SENSORS_W83627EHF is not set
1033# CONFIG_SENSORS_LIS3_SPI is not set
955# CONFIG_HWMON_DEBUG_CHIP is not set 1034# CONFIG_HWMON_DEBUG_CHIP is not set
956# CONFIG_THERMAL is not set 1035# CONFIG_THERMAL is not set
957# CONFIG_THERMAL_HWMON is not set 1036# CONFIG_THERMAL_HWMON is not set
@@ -989,6 +1068,7 @@ CONFIG_SSB_POSSIBLE=y
989# CONFIG_MFD_CORE is not set 1068# CONFIG_MFD_CORE is not set
990# CONFIG_MFD_SM501 is not set 1069# CONFIG_MFD_SM501 is not set
991# CONFIG_HTC_PASIC3 is not set 1070# CONFIG_HTC_PASIC3 is not set
1071# CONFIG_TPS65010 is not set
992# CONFIG_TWL4030_CORE is not set 1072# CONFIG_TWL4030_CORE is not set
993# CONFIG_MFD_TMIO is not set 1073# CONFIG_MFD_TMIO is not set
994# CONFIG_PMIC_DA903X is not set 1074# CONFIG_PMIC_DA903X is not set
@@ -1084,9 +1164,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1084# CONFIG_FB_VIRTUAL is not set 1164# CONFIG_FB_VIRTUAL is not set
1085# CONFIG_FB_METRONOME is not set 1165# CONFIG_FB_METRONOME is not set
1086# CONFIG_FB_MB862XX is not set 1166# CONFIG_FB_MB862XX is not set
1167# CONFIG_FB_BROADSHEET is not set
1087CONFIG_BACKLIGHT_LCD_SUPPORT=y 1168CONFIG_BACKLIGHT_LCD_SUPPORT=y
1088CONFIG_LCD_CLASS_DEVICE=m 1169CONFIG_LCD_CLASS_DEVICE=m
1170# CONFIG_LCD_LTV350QV is not set
1089# CONFIG_LCD_ILI9320 is not set 1171# CONFIG_LCD_ILI9320 is not set
1172# CONFIG_LCD_TDO24M is not set
1173# CONFIG_LCD_VGG2432A4 is not set
1090# CONFIG_LCD_PLATFORM is not set 1174# CONFIG_LCD_PLATFORM is not set
1091CONFIG_BACKLIGHT_CLASS_DEVICE=y 1175CONFIG_BACKLIGHT_CLASS_DEVICE=y
1092CONFIG_BACKLIGHT_GENERIC=y 1176CONFIG_BACKLIGHT_GENERIC=y
@@ -1127,15 +1211,17 @@ CONFIG_USB_HID=y
1127# 1211#
1128# Special HID drivers 1212# Special HID drivers
1129# 1213#
1130CONFIG_HID_COMPAT=y
1131CONFIG_HID_A4TECH=y 1214CONFIG_HID_A4TECH=y
1132# CONFIG_HID_APPLE is not set 1215# CONFIG_HID_APPLE is not set
1133CONFIG_HID_BELKIN=y 1216CONFIG_HID_BELKIN=y
1134CONFIG_HID_CHERRY=y 1217CONFIG_HID_CHERRY=y
1135# CONFIG_HID_CHICONY is not set 1218# CONFIG_HID_CHICONY is not set
1136CONFIG_HID_CYPRESS=y 1219CONFIG_HID_CYPRESS=y
1220# CONFIG_DRAGONRISE_FF is not set
1137CONFIG_HID_EZKEY=y 1221CONFIG_HID_EZKEY=y
1222# CONFIG_HID_KYE is not set
1138# CONFIG_HID_GYRATION is not set 1223# CONFIG_HID_GYRATION is not set
1224# CONFIG_HID_KENSINGTON is not set
1139# CONFIG_HID_LOGITECH is not set 1225# CONFIG_HID_LOGITECH is not set
1140# CONFIG_HID_MICROSOFT is not set 1226# CONFIG_HID_MICROSOFT is not set
1141# CONFIG_HID_MONTEREY is not set 1227# CONFIG_HID_MONTEREY is not set
@@ -1204,11 +1290,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1204# CONFIG_USB_TMC is not set 1290# CONFIG_USB_TMC is not set
1205 1291
1206# 1292#
1207# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1293# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1208# 1294#
1209 1295
1210# 1296#
1211# see USB_STORAGE Help for more information 1297# also be needed; see USB_STORAGE Help for more info
1212# 1298#
1213CONFIG_USB_STORAGE=y 1299CONFIG_USB_STORAGE=y
1214# CONFIG_USB_STORAGE_DEBUG is not set 1300# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1250,7 +1336,6 @@ CONFIG_USB_STORAGE=y
1250# CONFIG_USB_LED is not set 1336# CONFIG_USB_LED is not set
1251# CONFIG_USB_CYPRESS_CY7C63 is not set 1337# CONFIG_USB_CYPRESS_CY7C63 is not set
1252# CONFIG_USB_CYTHERM is not set 1338# CONFIG_USB_CYTHERM is not set
1253# CONFIG_USB_PHIDGET is not set
1254# CONFIG_USB_IDMOUSE is not set 1339# CONFIG_USB_IDMOUSE is not set
1255# CONFIG_USB_FTDI_ELAN is not set 1340# CONFIG_USB_FTDI_ELAN is not set
1256# CONFIG_USB_APPLEDISPLAY is not set 1341# CONFIG_USB_APPLEDISPLAY is not set
@@ -1265,6 +1350,8 @@ CONFIG_USB_STORAGE=y
1265# 1350#
1266# OTG and related infrastructure 1351# OTG and related infrastructure
1267# 1352#
1353# CONFIG_USB_GPIO_VBUS is not set
1354# CONFIG_NOP_USB_XCEIV is not set
1268# CONFIG_UWB is not set 1355# CONFIG_UWB is not set
1269# CONFIG_MMC is not set 1356# CONFIG_MMC is not set
1270# CONFIG_MEMSTICK is not set 1357# CONFIG_MEMSTICK is not set
@@ -1317,6 +1404,13 @@ CONFIG_RTC_DRV_DS1307=y
1317# 1404#
1318# SPI RTC drivers 1405# SPI RTC drivers
1319# 1406#
1407# CONFIG_RTC_DRV_M41T94 is not set
1408# CONFIG_RTC_DRV_DS1305 is not set
1409# CONFIG_RTC_DRV_DS1390 is not set
1410# CONFIG_RTC_DRV_MAX6902 is not set
1411# CONFIG_RTC_DRV_R9701 is not set
1412# CONFIG_RTC_DRV_RS5C348 is not set
1413# CONFIG_RTC_DRV_DS3234 is not set
1320 1414
1321# 1415#
1322# Platform RTC drivers 1416# Platform RTC drivers
@@ -1336,8 +1430,9 @@ CONFIG_RTC_DRV_DS1307=y
1336# 1430#
1337# on-CPU RTC drivers 1431# on-CPU RTC drivers
1338# 1432#
1339# CONFIG_RTC_DRV_PPC is not set 1433# CONFIG_RTC_DRV_GENERIC is not set
1340# CONFIG_DMADEVICES is not set 1434# CONFIG_DMADEVICES is not set
1435# CONFIG_AUXDISPLAY is not set
1341# CONFIG_UIO is not set 1436# CONFIG_UIO is not set
1342# CONFIG_STAGING is not set 1437# CONFIG_STAGING is not set
1343 1438
@@ -1348,6 +1443,7 @@ CONFIG_EXT2_FS=y
1348# CONFIG_EXT2_FS_XATTR is not set 1443# CONFIG_EXT2_FS_XATTR is not set
1349# CONFIG_EXT2_FS_XIP is not set 1444# CONFIG_EXT2_FS_XIP is not set
1350CONFIG_EXT3_FS=y 1445CONFIG_EXT3_FS=y
1446# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1351CONFIG_EXT3_FS_XATTR=y 1447CONFIG_EXT3_FS_XATTR=y
1352# CONFIG_EXT3_FS_POSIX_ACL is not set 1448# CONFIG_EXT3_FS_POSIX_ACL is not set
1353# CONFIG_EXT3_FS_SECURITY is not set 1449# CONFIG_EXT3_FS_SECURITY is not set
@@ -1370,6 +1466,11 @@ CONFIG_INOTIFY_USER=y
1370# CONFIG_FUSE_FS is not set 1466# CONFIG_FUSE_FS is not set
1371 1467
1372# 1468#
1469# Caches
1470#
1471# CONFIG_FSCACHE is not set
1472
1473#
1373# CD-ROM/DVD Filesystems 1474# CD-ROM/DVD Filesystems
1374# 1475#
1375# CONFIG_ISO9660_FS is not set 1476# CONFIG_ISO9660_FS is not set
@@ -1416,6 +1517,12 @@ CONFIG_JFFS2_ZLIB=y
1416# CONFIG_JFFS2_LZO is not set 1517# CONFIG_JFFS2_LZO is not set
1417CONFIG_JFFS2_RTIME=y 1518CONFIG_JFFS2_RTIME=y
1418# CONFIG_JFFS2_RUBIN is not set 1519# CONFIG_JFFS2_RUBIN is not set
1520CONFIG_UBIFS_FS=m
1521# CONFIG_UBIFS_FS_XATTR is not set
1522# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
1523CONFIG_UBIFS_FS_LZO=y
1524CONFIG_UBIFS_FS_ZLIB=y
1525# CONFIG_UBIFS_FS_DEBUG is not set
1419CONFIG_CRAMFS=y 1526CONFIG_CRAMFS=y
1420# CONFIG_SQUASHFS is not set 1527# CONFIG_SQUASHFS is not set
1421# CONFIG_VXFS_FS is not set 1528# CONFIG_VXFS_FS is not set
@@ -1426,6 +1533,7 @@ CONFIG_CRAMFS=y
1426# CONFIG_ROMFS_FS is not set 1533# CONFIG_ROMFS_FS is not set
1427# CONFIG_SYSV_FS is not set 1534# CONFIG_SYSV_FS is not set
1428# CONFIG_UFS_FS is not set 1535# CONFIG_UFS_FS is not set
1536# CONFIG_NILFS2_FS is not set
1429CONFIG_NETWORK_FILESYSTEMS=y 1537CONFIG_NETWORK_FILESYSTEMS=y
1430CONFIG_NFS_FS=y 1538CONFIG_NFS_FS=y
1431CONFIG_NFS_V3=y 1539CONFIG_NFS_V3=y
@@ -1438,7 +1546,6 @@ CONFIG_LOCKD_V4=y
1438CONFIG_NFS_COMMON=y 1546CONFIG_NFS_COMMON=y
1439CONFIG_SUNRPC=y 1547CONFIG_SUNRPC=y
1440CONFIG_SUNRPC_GSS=y 1548CONFIG_SUNRPC_GSS=y
1441# CONFIG_SUNRPC_REGISTER_V4 is not set
1442CONFIG_RPCSEC_GSS_KRB5=y 1549CONFIG_RPCSEC_GSS_KRB5=y
1443# CONFIG_RPCSEC_GSS_SPKM3 is not set 1550# CONFIG_RPCSEC_GSS_SPKM3 is not set
1444# CONFIG_SMB_FS is not set 1551# CONFIG_SMB_FS is not set
@@ -1493,6 +1600,7 @@ CONFIG_NLS_ISO8859_1=y
1493# CONFIG_NLS_KOI8_U is not set 1600# CONFIG_NLS_KOI8_U is not set
1494# CONFIG_NLS_UTF8 is not set 1601# CONFIG_NLS_UTF8 is not set
1495# CONFIG_DLM is not set 1602# CONFIG_DLM is not set
1603# CONFIG_BINARY_PRINTF is not set
1496 1604
1497# 1605#
1498# Library routines 1606# Library routines
@@ -1500,7 +1608,7 @@ CONFIG_NLS_ISO8859_1=y
1500CONFIG_BITREVERSE=y 1608CONFIG_BITREVERSE=y
1501CONFIG_GENERIC_FIND_LAST_BIT=y 1609CONFIG_GENERIC_FIND_LAST_BIT=y
1502# CONFIG_CRC_CCITT is not set 1610# CONFIG_CRC_CCITT is not set
1503# CONFIG_CRC16 is not set 1611CONFIG_CRC16=m
1504# CONFIG_CRC_T10DIF is not set 1612# CONFIG_CRC_T10DIF is not set
1505# CONFIG_CRC_ITU_T is not set 1613# CONFIG_CRC_ITU_T is not set
1506CONFIG_CRC32=y 1614CONFIG_CRC32=y
@@ -1508,11 +1616,14 @@ CONFIG_CRC32=y
1508# CONFIG_LIBCRC32C is not set 1616# CONFIG_LIBCRC32C is not set
1509CONFIG_ZLIB_INFLATE=y 1617CONFIG_ZLIB_INFLATE=y
1510CONFIG_ZLIB_DEFLATE=y 1618CONFIG_ZLIB_DEFLATE=y
1511CONFIG_PLIST=y 1619CONFIG_LZO_COMPRESS=m
1620CONFIG_LZO_DECOMPRESS=m
1621CONFIG_DECOMPRESS_GZIP=y
1512CONFIG_HAS_IOMEM=y 1622CONFIG_HAS_IOMEM=y
1513CONFIG_HAS_IOPORT=y 1623CONFIG_HAS_IOPORT=y
1514CONFIG_HAS_DMA=y 1624CONFIG_HAS_DMA=y
1515CONFIG_HAVE_LMB=y 1625CONFIG_HAVE_LMB=y
1626CONFIG_NLATTR=y
1516 1627
1517# 1628#
1518# Kernel hacking 1629# Kernel hacking
@@ -1530,6 +1641,9 @@ CONFIG_DEBUG_KERNEL=y
1530CONFIG_DETECT_SOFTLOCKUP=y 1641CONFIG_DETECT_SOFTLOCKUP=y
1531# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1642# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1532CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1643CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1644CONFIG_DETECT_HUNG_TASK=y
1645# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1646CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1533CONFIG_SCHED_DEBUG=y 1647CONFIG_SCHED_DEBUG=y
1534# CONFIG_SCHEDSTATS is not set 1648# CONFIG_SCHEDSTATS is not set
1535# CONFIG_TIMER_STATS is not set 1649# CONFIG_TIMER_STATS is not set
@@ -1558,9 +1672,12 @@ CONFIG_DEBUG_INFO=y
1558# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1672# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1559# CONFIG_FAULT_INJECTION is not set 1673# CONFIG_FAULT_INJECTION is not set
1560# CONFIG_LATENCYTOP is not set 1674# CONFIG_LATENCYTOP is not set
1675# CONFIG_DEBUG_PAGEALLOC is not set
1561CONFIG_HAVE_FUNCTION_TRACER=y 1676CONFIG_HAVE_FUNCTION_TRACER=y
1677CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1562CONFIG_HAVE_DYNAMIC_FTRACE=y 1678CONFIG_HAVE_DYNAMIC_FTRACE=y
1563CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1679CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1680CONFIG_TRACING_SUPPORT=y
1564 1681
1565# 1682#
1566# Tracers 1683# Tracers
@@ -1568,17 +1685,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1568# CONFIG_FUNCTION_TRACER is not set 1685# CONFIG_FUNCTION_TRACER is not set
1569# CONFIG_SCHED_TRACER is not set 1686# CONFIG_SCHED_TRACER is not set
1570# CONFIG_CONTEXT_SWITCH_TRACER is not set 1687# CONFIG_CONTEXT_SWITCH_TRACER is not set
1688# CONFIG_EVENT_TRACER is not set
1571# CONFIG_BOOT_TRACER is not set 1689# CONFIG_BOOT_TRACER is not set
1572# CONFIG_TRACE_BRANCH_PROFILING is not set 1690# CONFIG_TRACE_BRANCH_PROFILING is not set
1573# CONFIG_STACK_TRACER is not set 1691# CONFIG_STACK_TRACER is not set
1574# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1692# CONFIG_KMEMTRACE is not set
1693# CONFIG_WORKQUEUE_TRACER is not set
1694# CONFIG_BLK_DEV_IO_TRACE is not set
1575# CONFIG_SAMPLES is not set 1695# CONFIG_SAMPLES is not set
1576CONFIG_HAVE_ARCH_KGDB=y 1696CONFIG_HAVE_ARCH_KGDB=y
1577# CONFIG_KGDB is not set 1697# CONFIG_KGDB is not set
1578CONFIG_PRINT_STACK_DEPTH=64 1698CONFIG_PRINT_STACK_DEPTH=64
1579# CONFIG_DEBUG_STACKOVERFLOW is not set 1699# CONFIG_DEBUG_STACKOVERFLOW is not set
1580# CONFIG_DEBUG_STACK_USAGE is not set 1700# CONFIG_DEBUG_STACK_USAGE is not set
1581# CONFIG_DEBUG_PAGEALLOC is not set
1582# CONFIG_CODE_PATCHING_SELFTEST is not set 1701# CONFIG_CODE_PATCHING_SELFTEST is not set
1583# CONFIG_FTR_FIXUP_SELFTEST is not set 1702# CONFIG_FTR_FIXUP_SELFTEST is not set
1584# CONFIG_MSI_BITMAP_SELFTEST is not set 1703# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1609,10 +1728,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1609CONFIG_CRYPTO_HASH=y 1728CONFIG_CRYPTO_HASH=y
1610CONFIG_CRYPTO_HASH2=y 1729CONFIG_CRYPTO_HASH2=y
1611CONFIG_CRYPTO_RNG2=y 1730CONFIG_CRYPTO_RNG2=y
1731CONFIG_CRYPTO_PCOMP=y
1612CONFIG_CRYPTO_MANAGER=y 1732CONFIG_CRYPTO_MANAGER=y
1613CONFIG_CRYPTO_MANAGER2=y 1733CONFIG_CRYPTO_MANAGER2=y
1614# CONFIG_CRYPTO_GF128MUL is not set 1734# CONFIG_CRYPTO_GF128MUL is not set
1615# CONFIG_CRYPTO_NULL is not set 1735# CONFIG_CRYPTO_NULL is not set
1736CONFIG_CRYPTO_WORKQUEUE=y
1616# CONFIG_CRYPTO_CRYPTD is not set 1737# CONFIG_CRYPTO_CRYPTD is not set
1617# CONFIG_CRYPTO_AUTHENC is not set 1738# CONFIG_CRYPTO_AUTHENC is not set
1618# CONFIG_CRYPTO_TEST is not set 1739# CONFIG_CRYPTO_TEST is not set
@@ -1680,8 +1801,9 @@ CONFIG_CRYPTO_DES=y
1680# 1801#
1681# Compression 1802# Compression
1682# 1803#
1683# CONFIG_CRYPTO_DEFLATE is not set 1804CONFIG_CRYPTO_DEFLATE=m
1684# CONFIG_CRYPTO_LZO is not set 1805# CONFIG_CRYPTO_ZLIB is not set
1806CONFIG_CRYPTO_LZO=m
1685 1807
1686# 1808#
1687# Random Number Generation 1809# Random Number Generation
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 38712e861c46..642ab67c8431 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:33 2009 4# Wed May 13 17:21:56 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74# CONFIG_IKCONFIG is not set 85# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 86CONFIG_LOG_BUF_SHIFT=14
76CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
@@ -85,20 +96,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
86CONFIG_BLK_DEV_INITRD=y 97CONFIG_BLK_DEV_INITRD=y
87CONFIG_INITRAMFS_SOURCE="" 98CONFIG_INITRAMFS_SOURCE=""
99CONFIG_RD_GZIP=y
100# CONFIG_RD_BZIP2 is not set
101# CONFIG_RD_LZMA is not set
88# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
89CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
104CONFIG_ANON_INODES=y
90CONFIG_EMBEDDED=y 105CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 106CONFIG_SYSCTL_SYSCALL=y
92CONFIG_KALLSYMS=y 107CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 108# CONFIG_KALLSYMS_EXTRA_PASS is not set
109# CONFIG_STRIP_ASM_SYMS is not set
94CONFIG_HOTPLUG=y 110CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 111CONFIG_PRINTK=y
96CONFIG_BUG=y 112CONFIG_BUG=y
97CONFIG_ELF_CORE=y 113CONFIG_ELF_CORE=y
98CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 115CONFIG_FUTEX=y
101CONFIG_ANON_INODES=y
102CONFIG_EPOLL=y 116CONFIG_EPOLL=y
103CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
104CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
@@ -108,16 +122,19 @@ CONFIG_AIO=y
108CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
109CONFIG_PCI_QUIRKS=y 123CONFIG_PCI_QUIRKS=y
110CONFIG_SLUB_DEBUG=y 124CONFIG_SLUB_DEBUG=y
125CONFIG_COMPAT_BRK=y
111# CONFIG_SLAB is not set 126# CONFIG_SLAB is not set
112CONFIG_SLUB=y 127CONFIG_SLUB=y
113# CONFIG_SLOB is not set 128# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set 129# CONFIG_PROFILING is not set
130# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 132CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y 133CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 134CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 135CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 136CONFIG_HAVE_ARCH_TRACEHOOK=y
137# CONFIG_SLOW_WORK is not set
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 138# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 139CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 140CONFIG_RT_MUTEXES=y
@@ -125,7 +142,6 @@ CONFIG_BASE_SMALL=0
125# CONFIG_MODULES is not set 142# CONFIG_MODULES is not set
126CONFIG_BLOCK=y 143CONFIG_BLOCK=y
127CONFIG_LBD=y 144CONFIG_LBD=y
128# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
131 147
@@ -141,18 +157,11 @@ CONFIG_DEFAULT_AS=y
141# CONFIG_DEFAULT_CFQ is not set 157# CONFIG_DEFAULT_CFQ is not set
142# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
143CONFIG_DEFAULT_IOSCHED="anticipatory" 159CONFIG_DEFAULT_IOSCHED="anticipatory"
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
149# CONFIG_FREEZER is not set 160# CONFIG_FREEZER is not set
150 161
151# 162#
152# Platform support 163# Platform support
153# 164#
154CONFIG_PPC_MULTIPLATFORM=y
155CONFIG_CLASSIC32=y
156# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
157# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
@@ -172,6 +181,8 @@ CONFIG_MPC7448HPC2=y
172# CONFIG_PPC_PRPMC2800 is not set 181# CONFIG_PPC_PRPMC2800 is not set
173# CONFIG_PPC_C2K is not set 182# CONFIG_PPC_C2K is not set
174CONFIG_TSI108_BRIDGE=y 183CONFIG_TSI108_BRIDGE=y
184# CONFIG_AMIGAONE is not set
185CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
175# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
176CONFIG_MPIC=y 187CONFIG_MPIC=y
177CONFIG_MPIC_WEIRD=y 188CONFIG_MPIC_WEIRD=y
@@ -230,9 +241,12 @@ CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 241CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y 242CONFIG_VIRT_TO_BUS=y
232CONFIG_UNEVICTABLE_LRU=y 243CONFIG_UNEVICTABLE_LRU=y
244CONFIG_HAVE_MLOCK=y
245CONFIG_HAVE_MLOCKED_PAGE_BIT=y
233CONFIG_PPC_4K_PAGES=y 246CONFIG_PPC_4K_PAGES=y
234# CONFIG_PPC_16K_PAGES is not set 247# CONFIG_PPC_16K_PAGES is not set
235# CONFIG_PPC_64K_PAGES is not set 248# CONFIG_PPC_64K_PAGES is not set
249# CONFIG_PPC_256K_PAGES is not set
236CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
@@ -255,6 +269,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
255# CONFIG_PCI_MSI is not set 269# CONFIG_PCI_MSI is not set
256# CONFIG_PCI_LEGACY is not set 270# CONFIG_PCI_LEGACY is not set
257# CONFIG_PCI_STUB is not set 271# CONFIG_PCI_STUB is not set
272# CONFIG_PCI_IOV is not set
258# CONFIG_PCCARD is not set 273# CONFIG_PCCARD is not set
259# CONFIG_HOTPLUG_PCI is not set 274# CONFIG_HOTPLUG_PCI is not set
260# CONFIG_HAS_RAPIDIO is not set 275# CONFIG_HAS_RAPIDIO is not set
@@ -277,7 +292,6 @@ CONFIG_NET=y
277# 292#
278# Networking options 293# Networking options
279# 294#
280CONFIG_COMPAT_NET_DEV_OPS=y
281CONFIG_PACKET=y 295CONFIG_PACKET=y
282# CONFIG_PACKET_MMAP is not set 296# CONFIG_PACKET_MMAP is not set
283CONFIG_UNIX=y 297CONFIG_UNIX=y
@@ -333,6 +347,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
333# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
334# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
335# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set
336# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
337# CONFIG_DCB is not set 352# CONFIG_DCB is not set
338 353
@@ -345,7 +360,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_IRDA is not set 360# CONFIG_IRDA is not set
346# CONFIG_BT is not set 361# CONFIG_BT is not set
347# CONFIG_AF_RXRPC is not set 362# CONFIG_AF_RXRPC is not set
348# CONFIG_PHONET is not set
349CONFIG_WIRELESS=y 363CONFIG_WIRELESS=y
350# CONFIG_CFG80211 is not set 364# CONFIG_CFG80211 is not set
351CONFIG_WIRELESS_OLD_REGULATORY=y 365CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -392,12 +406,16 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
392# CONFIG_BLK_DEV_HD is not set 406# CONFIG_BLK_DEV_HD is not set
393CONFIG_MISC_DEVICES=y 407CONFIG_MISC_DEVICES=y
394# CONFIG_PHANTOM is not set 408# CONFIG_PHANTOM is not set
395# CONFIG_EEPROM_93CX6 is not set
396# CONFIG_SGI_IOC4 is not set 409# CONFIG_SGI_IOC4 is not set
397# CONFIG_TIFM_CORE is not set 410# CONFIG_TIFM_CORE is not set
398# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set 412# CONFIG_HP_ILO is not set
400# CONFIG_C2PORT is not set 413# CONFIG_C2PORT is not set
414
415#
416# EEPROM support
417#
418# CONFIG_EEPROM_93CX6 is not set
401CONFIG_HAVE_IDE=y 419CONFIG_HAVE_IDE=y
402# CONFIG_IDE is not set 420# CONFIG_IDE is not set
403 421
@@ -454,9 +472,11 @@ CONFIG_SCSI_LOWLEVEL=y
454# CONFIG_MEGARAID_NEWGEN is not set 472# CONFIG_MEGARAID_NEWGEN is not set
455# CONFIG_MEGARAID_LEGACY is not set 473# CONFIG_MEGARAID_LEGACY is not set
456# CONFIG_MEGARAID_SAS is not set 474# CONFIG_MEGARAID_SAS is not set
475# CONFIG_SCSI_MPT2SAS is not set
457# CONFIG_SCSI_HPTIOP is not set 476# CONFIG_SCSI_HPTIOP is not set
458# CONFIG_SCSI_BUSLOGIC is not set 477# CONFIG_SCSI_BUSLOGIC is not set
459# CONFIG_LIBFC is not set 478# CONFIG_LIBFC is not set
479# CONFIG_LIBFCOE is not set
460# CONFIG_FCOE is not set 480# CONFIG_FCOE is not set
461# CONFIG_SCSI_DMX3191D is not set 481# CONFIG_SCSI_DMX3191D is not set
462# CONFIG_SCSI_EATA is not set 482# CONFIG_SCSI_EATA is not set
@@ -479,6 +499,7 @@ CONFIG_SCSI_LOWLEVEL=y
479# CONFIG_SCSI_DEBUG is not set 499# CONFIG_SCSI_DEBUG is not set
480# CONFIG_SCSI_SRP is not set 500# CONFIG_SCSI_SRP is not set
481# CONFIG_SCSI_DH is not set 501# CONFIG_SCSI_DH is not set
502# CONFIG_SCSI_OSD_INITIATOR is not set
482CONFIG_ATA=y 503CONFIG_ATA=y
483# CONFIG_ATA_NONSTANDARD is not set 504# CONFIG_ATA_NONSTANDARD is not set
484CONFIG_SATA_PMP=y 505CONFIG_SATA_PMP=y
@@ -554,6 +575,7 @@ CONFIG_SATA_MV=y
554# CONFIG_I2O is not set 575# CONFIG_I2O is not set
555# CONFIG_MACINTOSH_DRIVERS is not set 576# CONFIG_MACINTOSH_DRIVERS is not set
556CONFIG_NETDEVICES=y 577CONFIG_NETDEVICES=y
578CONFIG_COMPAT_NET_DEV_OPS=y
557# CONFIG_DUMMY is not set 579# CONFIG_DUMMY is not set
558# CONFIG_BONDING is not set 580# CONFIG_BONDING is not set
559# CONFIG_MACVLAN is not set 581# CONFIG_MACVLAN is not set
@@ -587,6 +609,8 @@ CONFIG_MII=y
587# CONFIG_SUNGEM is not set 609# CONFIG_SUNGEM is not set
588# CONFIG_CASSINI is not set 610# CONFIG_CASSINI is not set
589# CONFIG_NET_VENDOR_3COM is not set 611# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_ETHOC is not set
613# CONFIG_DNET is not set
590# CONFIG_NET_TULIP is not set 614# CONFIG_NET_TULIP is not set
591# CONFIG_HP100 is not set 615# CONFIG_HP100 is not set
592# CONFIG_IBM_NEW_EMAC_ZMII is not set 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -628,6 +652,7 @@ CONFIG_NETDEV_1000=y
628# CONFIG_E1000E is not set 652# CONFIG_E1000E is not set
629# CONFIG_IP1000 is not set 653# CONFIG_IP1000 is not set
630# CONFIG_IGB is not set 654# CONFIG_IGB is not set
655# CONFIG_IGBVF is not set
631# CONFIG_NS83820 is not set 656# CONFIG_NS83820 is not set
632# CONFIG_HAMACHI is not set 657# CONFIG_HAMACHI is not set
633# CONFIG_YELLOWFIN is not set 658# CONFIG_YELLOWFIN is not set
@@ -639,10 +664,10 @@ CONFIG_NETDEV_1000=y
639# CONFIG_TIGON3 is not set 664# CONFIG_TIGON3 is not set
640# CONFIG_BNX2 is not set 665# CONFIG_BNX2 is not set
641CONFIG_TSI108_ETH=y 666CONFIG_TSI108_ETH=y
642# CONFIG_MV643XX_ETH is not set
643# CONFIG_QLA3XXX is not set 667# CONFIG_QLA3XXX is not set
644# CONFIG_ATL1 is not set 668# CONFIG_ATL1 is not set
645# CONFIG_ATL1E is not set 669# CONFIG_ATL1E is not set
670# CONFIG_ATL1C is not set
646# CONFIG_JME is not set 671# CONFIG_JME is not set
647CONFIG_NETDEV_10000=y 672CONFIG_NETDEV_10000=y
648# CONFIG_CHELSIO_T1 is not set 673# CONFIG_CHELSIO_T1 is not set
@@ -652,6 +677,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
652# CONFIG_IXGBE is not set 677# CONFIG_IXGBE is not set
653# CONFIG_IXGB is not set 678# CONFIG_IXGB is not set
654# CONFIG_S2IO is not set 679# CONFIG_S2IO is not set
680# CONFIG_VXGE is not set
655# CONFIG_MYRI10GE is not set 681# CONFIG_MYRI10GE is not set
656# CONFIG_NETXEN_NIC is not set 682# CONFIG_NETXEN_NIC is not set
657# CONFIG_NIU is not set 683# CONFIG_NIU is not set
@@ -661,6 +687,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
661# CONFIG_BNX2X is not set 687# CONFIG_BNX2X is not set
662# CONFIG_QLGE is not set 688# CONFIG_QLGE is not set
663# CONFIG_SFC is not set 689# CONFIG_SFC is not set
690# CONFIG_BE2NET is not set
664# CONFIG_TR is not set 691# CONFIG_TR is not set
665 692
666# 693#
@@ -668,7 +695,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
668# 695#
669# CONFIG_WLAN_PRE80211 is not set 696# CONFIG_WLAN_PRE80211 is not set
670# CONFIG_WLAN_80211 is not set 697# CONFIG_WLAN_80211 is not set
671# CONFIG_IWLWIFI_LEDS is not set
672 698
673# 699#
674# Enable WiMAX (Networking options) to see the WiMAX drivers 700# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -839,7 +865,6 @@ CONFIG_HID=y
839# 865#
840# Special HID drivers 866# Special HID drivers
841# 867#
842CONFIG_HID_COMPAT=y
843CONFIG_USB_SUPPORT=y 868CONFIG_USB_SUPPORT=y
844CONFIG_USB_ARCH_HAS_HCD=y 869CONFIG_USB_ARCH_HAS_HCD=y
845CONFIG_USB_ARCH_HAS_OHCI=y 870CONFIG_USB_ARCH_HAS_OHCI=y
@@ -853,7 +878,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
853# 878#
854 879
855# 880#
856# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 881# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
857# 882#
858# CONFIG_USB_GADGET is not set 883# CONFIG_USB_GADGET is not set
859 884
@@ -869,6 +894,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
869# CONFIG_EDAC is not set 894# CONFIG_EDAC is not set
870# CONFIG_RTC_CLASS is not set 895# CONFIG_RTC_CLASS is not set
871# CONFIG_DMADEVICES is not set 896# CONFIG_DMADEVICES is not set
897# CONFIG_AUXDISPLAY is not set
872# CONFIG_UIO is not set 898# CONFIG_UIO is not set
873# CONFIG_STAGING is not set 899# CONFIG_STAGING is not set
874 900
@@ -879,6 +905,7 @@ CONFIG_EXT2_FS=y
879# CONFIG_EXT2_FS_XATTR is not set 905# CONFIG_EXT2_FS_XATTR is not set
880# CONFIG_EXT2_FS_XIP is not set 906# CONFIG_EXT2_FS_XIP is not set
881CONFIG_EXT3_FS=y 907CONFIG_EXT3_FS=y
908# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
882CONFIG_EXT3_FS_XATTR=y 909CONFIG_EXT3_FS_XATTR=y
883# CONFIG_EXT3_FS_POSIX_ACL is not set 910# CONFIG_EXT3_FS_POSIX_ACL is not set
884# CONFIG_EXT3_FS_SECURITY is not set 911# CONFIG_EXT3_FS_SECURITY is not set
@@ -902,6 +929,11 @@ CONFIG_INOTIFY_USER=y
902# CONFIG_FUSE_FS is not set 929# CONFIG_FUSE_FS is not set
903 930
904# 931#
932# Caches
933#
934# CONFIG_FSCACHE is not set
935
936#
905# CD-ROM/DVD Filesystems 937# CD-ROM/DVD Filesystems
906# 938#
907# CONFIG_ISO9660_FS is not set 939# CONFIG_ISO9660_FS is not set
@@ -944,6 +976,7 @@ CONFIG_MISC_FILESYSTEMS=y
944# CONFIG_ROMFS_FS is not set 976# CONFIG_ROMFS_FS is not set
945# CONFIG_SYSV_FS is not set 977# CONFIG_SYSV_FS is not set
946# CONFIG_UFS_FS is not set 978# CONFIG_UFS_FS is not set
979# CONFIG_NILFS2_FS is not set
947CONFIG_NETWORK_FILESYSTEMS=y 980CONFIG_NETWORK_FILESYSTEMS=y
948CONFIG_NFS_FS=y 981CONFIG_NFS_FS=y
949# CONFIG_NFS_V3 is not set 982# CONFIG_NFS_V3 is not set
@@ -953,7 +986,6 @@ CONFIG_ROOT_NFS=y
953CONFIG_LOCKD=y 986CONFIG_LOCKD=y
954CONFIG_NFS_COMMON=y 987CONFIG_NFS_COMMON=y
955CONFIG_SUNRPC=y 988CONFIG_SUNRPC=y
956# CONFIG_SUNRPC_REGISTER_V4 is not set
957# CONFIG_RPCSEC_GSS_KRB5 is not set 989# CONFIG_RPCSEC_GSS_KRB5 is not set
958# CONFIG_RPCSEC_GSS_SPKM3 is not set 990# CONFIG_RPCSEC_GSS_SPKM3 is not set
959# CONFIG_SMB_FS is not set 991# CONFIG_SMB_FS is not set
@@ -985,6 +1017,7 @@ CONFIG_MSDOS_PARTITION=y
985# CONFIG_SYSV68_PARTITION is not set 1017# CONFIG_SYSV68_PARTITION is not set
986# CONFIG_NLS is not set 1018# CONFIG_NLS is not set
987# CONFIG_DLM is not set 1019# CONFIG_DLM is not set
1020# CONFIG_BINARY_PRINTF is not set
988 1021
989# 1022#
990# Library routines 1023# Library routines
@@ -998,11 +1031,13 @@ CONFIG_CRC_T10DIF=y
998CONFIG_CRC32=y 1031CONFIG_CRC32=y
999# CONFIG_CRC7 is not set 1032# CONFIG_CRC7 is not set
1000# CONFIG_LIBCRC32C is not set 1033# CONFIG_LIBCRC32C is not set
1001CONFIG_PLIST=y 1034CONFIG_ZLIB_INFLATE=y
1035CONFIG_DECOMPRESS_GZIP=y
1002CONFIG_HAS_IOMEM=y 1036CONFIG_HAS_IOMEM=y
1003CONFIG_HAS_IOPORT=y 1037CONFIG_HAS_IOPORT=y
1004CONFIG_HAS_DMA=y 1038CONFIG_HAS_DMA=y
1005CONFIG_HAVE_LMB=y 1039CONFIG_HAVE_LMB=y
1040CONFIG_NLATTR=y
1006 1041
1007# 1042#
1008# Kernel hacking 1043# Kernel hacking
@@ -1024,13 +1059,24 @@ CONFIG_FRAME_WARN=1024
1024# CONFIG_LATENCYTOP is not set 1059# CONFIG_LATENCYTOP is not set
1025CONFIG_SYSCTL_SYSCALL_CHECK=y 1060CONFIG_SYSCTL_SYSCALL_CHECK=y
1026CONFIG_HAVE_FUNCTION_TRACER=y 1061CONFIG_HAVE_FUNCTION_TRACER=y
1062CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1027CONFIG_HAVE_DYNAMIC_FTRACE=y 1063CONFIG_HAVE_DYNAMIC_FTRACE=y
1028CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1064CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1065CONFIG_TRACING_SUPPORT=y
1029 1066
1030# 1067#
1031# Tracers 1068# Tracers
1032# 1069#
1033# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1070# CONFIG_FUNCTION_TRACER is not set
1071# CONFIG_SCHED_TRACER is not set
1072# CONFIG_CONTEXT_SWITCH_TRACER is not set
1073# CONFIG_EVENT_TRACER is not set
1074# CONFIG_BOOT_TRACER is not set
1075# CONFIG_TRACE_BRANCH_PROFILING is not set
1076# CONFIG_STACK_TRACER is not set
1077# CONFIG_KMEMTRACE is not set
1078# CONFIG_WORKQUEUE_TRACER is not set
1079# CONFIG_BLK_DEV_IO_TRACE is not set
1034# CONFIG_SAMPLES is not set 1080# CONFIG_SAMPLES is not set
1035CONFIG_HAVE_ARCH_KGDB=y 1081CONFIG_HAVE_ARCH_KGDB=y
1036CONFIG_PRINT_STACK_DEPTH=64 1082CONFIG_PRINT_STACK_DEPTH=64
@@ -1122,6 +1168,7 @@ CONFIG_CRYPTO=y
1122# Compression 1168# Compression
1123# 1169#
1124# CONFIG_CRYPTO_DEFLATE is not set 1170# CONFIG_CRYPTO_DEFLATE is not set
1171# CONFIG_CRYPTO_ZLIB is not set
1125# CONFIG_CRYPTO_LZO is not set 1172# CONFIG_CRYPTO_LZO is not set
1126 1173
1127# 1174#
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index d85a43cb821f..cb966ca2ce89 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:35 2009 4# Wed May 13 17:21:57 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -82,20 +93,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
83CONFIG_CC_OPTIMIZE_FOR_SIZE=y 94CONFIG_CC_OPTIMIZE_FOR_SIZE=y
84CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
85CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
86CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
88CONFIG_KALLSYMS_ALL=y 100CONFIG_KALLSYMS_ALL=y
89CONFIG_KALLSYMS_STRIP_GENERATED=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
102# CONFIG_STRIP_ASM_SYMS is not set
91CONFIG_HOTPLUG=y 103CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 104CONFIG_PRINTK=y
93CONFIG_BUG=y 105CONFIG_BUG=y
94CONFIG_ELF_CORE=y 106CONFIG_ELF_CORE=y
95CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 107CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 108CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 109CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 110CONFIG_SIGNALFD=y
101CONFIG_TIMERFD=y 111CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_AIO=y
105CONFIG_VM_EVENT_COUNTERS=y 115CONFIG_VM_EVENT_COUNTERS=y
106CONFIG_PCI_QUIRKS=y 116CONFIG_PCI_QUIRKS=y
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,6 +128,7 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
@@ -123,7 +136,6 @@ CONFIG_BASE_SMALL=0
123# CONFIG_MODULES is not set 136# CONFIG_MODULES is not set
124CONFIG_BLOCK=y 137CONFIG_BLOCK=y
125# CONFIG_LBD is not set 138# CONFIG_LBD is not set
126# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
129# 141#
@@ -138,18 +150,11 @@ CONFIG_DEFAULT_AS=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
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
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
149# Platform support 156# Platform support
150# 157#
151CONFIG_PPC_MULTIPLATFORM=y
152CONFIG_CLASSIC32=y
153# CONFIG_PPC_CHRP is not set 158# CONFIG_PPC_CHRP is not set
154# CONFIG_MPC5121_ADS is not set 159# CONFIG_MPC5121_ADS is not set
155# CONFIG_MPC5121_GENERIC is not set 160# CONFIG_MPC5121_GENERIC is not set
@@ -169,6 +174,8 @@ CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 174# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 175# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 176# CONFIG_EMBEDDED6xx is not set
177# CONFIG_AMIGAONE is not set
178CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
172# CONFIG_IPIC is not set 179# CONFIG_IPIC is not set
173# CONFIG_MPIC is not set 180# CONFIG_MPIC is not set
174# CONFIG_MPIC_WEIRD is not set 181# CONFIG_MPIC_WEIRD is not set
@@ -225,9 +232,12 @@ CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 232CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 233CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 234CONFIG_UNEVICTABLE_LRU=y
235CONFIG_HAVE_MLOCK=y
236CONFIG_HAVE_MLOCKED_PAGE_BIT=y
228CONFIG_PPC_4K_PAGES=y 237CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set 238# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set 239# CONFIG_PPC_64K_PAGES is not set
240# CONFIG_PPC_256K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
@@ -253,6 +263,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
253# CONFIG_PCI_LEGACY is not set 263# CONFIG_PCI_LEGACY is not set
254# CONFIG_PCI_DEBUG is not set 264# CONFIG_PCI_DEBUG is not set
255# CONFIG_PCI_STUB is not set 265# CONFIG_PCI_STUB is not set
266# CONFIG_PCI_IOV is not set
256# CONFIG_PCCARD is not set 267# CONFIG_PCCARD is not set
257# CONFIG_HOTPLUG_PCI is not set 268# CONFIG_HOTPLUG_PCI is not set
258# CONFIG_HAS_RAPIDIO is not set 269# CONFIG_HAS_RAPIDIO is not set
@@ -275,7 +286,6 @@ CONFIG_NET=y
275# 286#
276# Networking options 287# Networking options
277# 288#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 289CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 290# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 291CONFIG_UNIX=y
@@ -356,6 +366,7 @@ CONFIG_NETFILTER_ADVANCED=y
356# CONFIG_LLC2 is not set 366# CONFIG_LLC2 is not set
357# CONFIG_IPX is not set 367# CONFIG_IPX is not set
358# CONFIG_ATALK is not set 368# CONFIG_ATALK is not set
369# CONFIG_PHONET is not set
359# CONFIG_NET_SCHED is not set 370# CONFIG_NET_SCHED is not set
360# CONFIG_DCB is not set 371# CONFIG_DCB is not set
361 372
@@ -367,7 +378,6 @@ CONFIG_NETFILTER_ADVANCED=y
367# CONFIG_CAN is not set 378# CONFIG_CAN is not set
368# CONFIG_IRDA is not set 379# CONFIG_IRDA is not set
369# CONFIG_BT is not set 380# CONFIG_BT is not set
370# CONFIG_PHONET is not set
371CONFIG_WIRELESS=y 381CONFIG_WIRELESS=y
372# CONFIG_CFG80211 is not set 382# CONFIG_CFG80211 is not set
373CONFIG_WIRELESS_OLD_REGULATORY=y 383CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -472,7 +482,6 @@ CONFIG_MTD_PHYSMAP_OF=y
472# LPDDR flash memory drivers 482# LPDDR flash memory drivers
473# 483#
474# CONFIG_MTD_LPDDR is not set 484# CONFIG_MTD_LPDDR is not set
475# CONFIG_MTD_QINFO_PROBE is not set
476 485
477# 486#
478# UBI - Unsorted block images 487# UBI - Unsorted block images
@@ -521,6 +530,7 @@ CONFIG_HAVE_IDE=y
521# CONFIG_I2O is not set 530# CONFIG_I2O is not set
522# CONFIG_MACINTOSH_DRIVERS is not set 531# CONFIG_MACINTOSH_DRIVERS is not set
523CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
533CONFIG_COMPAT_NET_DEV_OPS=y
524# CONFIG_DUMMY is not set 534# CONFIG_DUMMY is not set
525# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
526# CONFIG_EQUALIZER is not set 536# CONFIG_EQUALIZER is not set
@@ -554,6 +564,8 @@ CONFIG_MII=y
554# CONFIG_SUNGEM is not set 564# CONFIG_SUNGEM is not set
555# CONFIG_CASSINI is not set 565# CONFIG_CASSINI is not set
556# CONFIG_NET_VENDOR_3COM is not set 566# CONFIG_NET_VENDOR_3COM is not set
567# CONFIG_ETHOC is not set
568# CONFIG_DNET is not set
557# CONFIG_NET_TULIP is not set 569# CONFIG_NET_TULIP is not set
558# CONFIG_HP100 is not set 570# CONFIG_HP100 is not set
559# CONFIG_IBM_NEW_EMAC_ZMII is not set 571# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -576,6 +588,7 @@ CONFIG_NETDEV_1000=y
576# CONFIG_E1000 is not set 588# CONFIG_E1000 is not set
577# CONFIG_E1000E is not set 589# CONFIG_E1000E is not set
578# CONFIG_IGB is not set 590# CONFIG_IGB is not set
591# CONFIG_IGBVF is not set
579# CONFIG_NS83820 is not set 592# CONFIG_NS83820 is not set
580# CONFIG_HAMACHI is not set 593# CONFIG_HAMACHI is not set
581# CONFIG_R8169 is not set 594# CONFIG_R8169 is not set
@@ -585,8 +598,8 @@ CONFIG_NETDEV_1000=y
585# CONFIG_VIA_VELOCITY is not set 598# CONFIG_VIA_VELOCITY is not set
586# CONFIG_TIGON3 is not set 599# CONFIG_TIGON3 is not set
587# CONFIG_BNX2 is not set 600# CONFIG_BNX2 is not set
601# CONFIG_FSL_PQ_MDIO is not set
588# CONFIG_GIANFAR is not set 602# CONFIG_GIANFAR is not set
589# CONFIG_MV643XX_ETH is not set
590# CONFIG_QLA3XXX is not set 603# CONFIG_QLA3XXX is not set
591# CONFIG_ATL1 is not set 604# CONFIG_ATL1 is not set
592# CONFIG_JME is not set 605# CONFIG_JME is not set
@@ -598,6 +611,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
598# CONFIG_IXGBE is not set 611# CONFIG_IXGBE is not set
599# CONFIG_IXGB is not set 612# CONFIG_IXGB is not set
600# CONFIG_S2IO is not set 613# CONFIG_S2IO is not set
614# CONFIG_VXGE is not set
601# CONFIG_MYRI10GE is not set 615# CONFIG_MYRI10GE is not set
602# CONFIG_NETXEN_NIC is not set 616# CONFIG_NETXEN_NIC is not set
603# CONFIG_NIU is not set 617# CONFIG_NIU is not set
@@ -607,6 +621,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
607# CONFIG_BNX2X is not set 621# CONFIG_BNX2X is not set
608# CONFIG_QLGE is not set 622# CONFIG_QLGE is not set
609# CONFIG_SFC is not set 623# CONFIG_SFC is not set
624# CONFIG_BE2NET is not set
610# CONFIG_TR is not set 625# CONFIG_TR is not set
611 626
612# 627#
@@ -614,7 +629,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
614# 629#
615# CONFIG_WLAN_PRE80211 is not set 630# CONFIG_WLAN_PRE80211 is not set
616# CONFIG_WLAN_80211 is not set 631# CONFIG_WLAN_80211 is not set
617# CONFIG_IWLWIFI_LEDS is not set
618 632
619# 633#
620# Enable WiMAX (Networking options) to see the WiMAX drivers 634# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -668,7 +682,6 @@ CONFIG_MOUSE_PS2=y
668CONFIG_MOUSE_PS2_ALPS=y 682CONFIG_MOUSE_PS2_ALPS=y
669CONFIG_MOUSE_PS2_LOGIPS2PP=y 683CONFIG_MOUSE_PS2_LOGIPS2PP=y
670CONFIG_MOUSE_PS2_SYNAPTICS=y 684CONFIG_MOUSE_PS2_SYNAPTICS=y
671CONFIG_MOUSE_PS2_LIFEBOOK=y
672CONFIG_MOUSE_PS2_TRACKPOINT=y 685CONFIG_MOUSE_PS2_TRACKPOINT=y
673# CONFIG_MOUSE_PS2_ELANTECH is not set 686# CONFIG_MOUSE_PS2_ELANTECH is not set
674# CONFIG_MOUSE_PS2_TOUCHKIT is not set 687# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -719,6 +732,7 @@ CONFIG_LEGACY_PTYS=y
719CONFIG_LEGACY_PTY_COUNT=256 732CONFIG_LEGACY_PTY_COUNT=256
720# CONFIG_IPMI_HANDLER is not set 733# CONFIG_IPMI_HANDLER is not set
721CONFIG_HW_RANDOM=y 734CONFIG_HW_RANDOM=y
735# CONFIG_HW_RANDOM_TIMERIOMEM is not set
722# CONFIG_NVRAM is not set 736# CONFIG_NVRAM is not set
723# CONFIG_GEN_RTC is not set 737# CONFIG_GEN_RTC is not set
724# CONFIG_R3964 is not set 738# CONFIG_R3964 is not set
@@ -809,8 +823,10 @@ CONFIG_DAB=y
809# CONFIG_NEW_LEDS is not set 823# CONFIG_NEW_LEDS is not set
810# CONFIG_ACCESSIBILITY is not set 824# CONFIG_ACCESSIBILITY is not set
811# CONFIG_INFINIBAND is not set 825# CONFIG_INFINIBAND is not set
826# CONFIG_EDAC is not set
812# CONFIG_RTC_CLASS is not set 827# CONFIG_RTC_CLASS is not set
813# CONFIG_DMADEVICES is not set 828# CONFIG_DMADEVICES is not set
829# CONFIG_AUXDISPLAY is not set
814# CONFIG_UIO is not set 830# CONFIG_UIO is not set
815# CONFIG_STAGING is not set 831# CONFIG_STAGING is not set
816 832
@@ -821,6 +837,7 @@ CONFIG_EXT2_FS=y
821# CONFIG_EXT2_FS_XATTR is not set 837# CONFIG_EXT2_FS_XATTR is not set
822# CONFIG_EXT2_FS_XIP is not set 838# CONFIG_EXT2_FS_XIP is not set
823CONFIG_EXT3_FS=y 839CONFIG_EXT3_FS=y
840# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
824CONFIG_EXT3_FS_XATTR=y 841CONFIG_EXT3_FS_XATTR=y
825# CONFIG_EXT3_FS_POSIX_ACL is not set 842# CONFIG_EXT3_FS_POSIX_ACL is not set
826# CONFIG_EXT3_FS_SECURITY is not set 843# CONFIG_EXT3_FS_SECURITY is not set
@@ -842,6 +859,10 @@ CONFIG_AUTOFS4_FS=y
842# CONFIG_FUSE_FS is not set 859# CONFIG_FUSE_FS is not set
843 860
844# 861#
862# Caches
863#
864
865#
845# CD-ROM/DVD Filesystems 866# CD-ROM/DVD Filesystems
846# 867#
847# CONFIG_ISO9660_FS is not set 868# CONFIG_ISO9660_FS is not set
@@ -956,6 +977,7 @@ CONFIG_NLS_ISO8859_1=y
956# CONFIG_NLS_KOI8_R is not set 977# CONFIG_NLS_KOI8_R is not set
957# CONFIG_NLS_KOI8_U is not set 978# CONFIG_NLS_KOI8_U is not set
958CONFIG_NLS_UTF8=y 979CONFIG_NLS_UTF8=y
980# CONFIG_BINARY_PRINTF is not set
959 981
960# 982#
961# Library routines 983# Library routines
@@ -971,11 +993,11 @@ CONFIG_CRC32=y
971# CONFIG_LIBCRC32C is not set 993# CONFIG_LIBCRC32C is not set
972CONFIG_ZLIB_INFLATE=y 994CONFIG_ZLIB_INFLATE=y
973CONFIG_ZLIB_DEFLATE=y 995CONFIG_ZLIB_DEFLATE=y
974CONFIG_PLIST=y
975CONFIG_HAS_IOMEM=y 996CONFIG_HAS_IOMEM=y
976CONFIG_HAS_IOPORT=y 997CONFIG_HAS_IOPORT=y
977CONFIG_HAS_DMA=y 998CONFIG_HAS_DMA=y
978CONFIG_HAVE_LMB=y 999CONFIG_HAVE_LMB=y
1000CONFIG_NLATTR=y
979 1001
980# 1002#
981# Kernel hacking 1003# Kernel hacking
@@ -993,6 +1015,9 @@ CONFIG_DEBUG_KERNEL=y
993CONFIG_DETECT_SOFTLOCKUP=y 1015CONFIG_DETECT_SOFTLOCKUP=y
994# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1016# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
995CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1017CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1018CONFIG_DETECT_HUNG_TASK=y
1019# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1020CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
996CONFIG_SCHED_DEBUG=y 1021CONFIG_SCHED_DEBUG=y
997# CONFIG_SCHEDSTATS is not set 1022# CONFIG_SCHEDSTATS is not set
998# CONFIG_TIMER_STATS is not set 1023# CONFIG_TIMER_STATS is not set
@@ -1022,9 +1047,12 @@ CONFIG_DEBUG_INFO=y
1022# CONFIG_FAULT_INJECTION is not set 1047# CONFIG_FAULT_INJECTION is not set
1023# CONFIG_LATENCYTOP is not set 1048# CONFIG_LATENCYTOP is not set
1024CONFIG_SYSCTL_SYSCALL_CHECK=y 1049CONFIG_SYSCTL_SYSCALL_CHECK=y
1050# CONFIG_DEBUG_PAGEALLOC is not set
1025CONFIG_HAVE_FUNCTION_TRACER=y 1051CONFIG_HAVE_FUNCTION_TRACER=y
1052CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1026CONFIG_HAVE_DYNAMIC_FTRACE=y 1053CONFIG_HAVE_DYNAMIC_FTRACE=y
1027CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1054CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1055CONFIG_TRACING_SUPPORT=y
1028 1056
1029# 1057#
1030# Tracers 1058# Tracers
@@ -1032,16 +1060,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1032# CONFIG_FUNCTION_TRACER is not set 1060# CONFIG_FUNCTION_TRACER is not set
1033# CONFIG_SCHED_TRACER is not set 1061# CONFIG_SCHED_TRACER is not set
1034# CONFIG_CONTEXT_SWITCH_TRACER is not set 1062# CONFIG_CONTEXT_SWITCH_TRACER is not set
1063# CONFIG_EVENT_TRACER is not set
1035# CONFIG_BOOT_TRACER is not set 1064# CONFIG_BOOT_TRACER is not set
1036# CONFIG_TRACE_BRANCH_PROFILING is not set 1065# CONFIG_TRACE_BRANCH_PROFILING is not set
1037# CONFIG_STACK_TRACER is not set 1066# CONFIG_STACK_TRACER is not set
1038# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1067# CONFIG_KMEMTRACE is not set
1068# CONFIG_WORKQUEUE_TRACER is not set
1069# CONFIG_BLK_DEV_IO_TRACE is not set
1039# CONFIG_SAMPLES is not set 1070# CONFIG_SAMPLES is not set
1040CONFIG_HAVE_ARCH_KGDB=y 1071CONFIG_HAVE_ARCH_KGDB=y
1041CONFIG_PRINT_STACK_DEPTH=64 1072CONFIG_PRINT_STACK_DEPTH=64
1042# CONFIG_DEBUG_STACKOVERFLOW is not set 1073# CONFIG_DEBUG_STACKOVERFLOW is not set
1043# CONFIG_DEBUG_STACK_USAGE is not set 1074# CONFIG_DEBUG_STACK_USAGE is not set
1044# CONFIG_DEBUG_PAGEALLOC is not set
1045# CONFIG_CODE_PATCHING_SELFTEST is not set 1075# CONFIG_CODE_PATCHING_SELFTEST is not set
1046# CONFIG_FTR_FIXUP_SELFTEST is not set 1076# CONFIG_FTR_FIXUP_SELFTEST is not set
1047# CONFIG_MSI_BITMAP_SELFTEST is not set 1077# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1072,9 +1102,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1072CONFIG_CRYPTO_HASH=y 1102CONFIG_CRYPTO_HASH=y
1073CONFIG_CRYPTO_HASH2=y 1103CONFIG_CRYPTO_HASH2=y
1074CONFIG_CRYPTO_RNG2=y 1104CONFIG_CRYPTO_RNG2=y
1105CONFIG_CRYPTO_PCOMP=y
1075CONFIG_CRYPTO_MANAGER=y 1106CONFIG_CRYPTO_MANAGER=y
1076CONFIG_CRYPTO_MANAGER2=y 1107CONFIG_CRYPTO_MANAGER2=y
1077# CONFIG_CRYPTO_NULL is not set 1108# CONFIG_CRYPTO_NULL is not set
1109CONFIG_CRYPTO_WORKQUEUE=y
1078# CONFIG_CRYPTO_CRYPTD is not set 1110# CONFIG_CRYPTO_CRYPTD is not set
1079# CONFIG_CRYPTO_AUTHENC is not set 1111# CONFIG_CRYPTO_AUTHENC is not set
1080 1112
@@ -1138,6 +1170,7 @@ CONFIG_CRYPTO_DES=y
1138# Compression 1170# Compression
1139# 1171#
1140# CONFIG_CRYPTO_DEFLATE is not set 1172# CONFIG_CRYPTO_DEFLATE is not set
1173# CONFIG_CRYPTO_ZLIB is not set
1141# CONFIG_CRYPTO_LZO is not set 1174# CONFIG_CRYPTO_LZO is not set
1142 1175
1143# 1176#
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 45f03cad8db6..433c303eb82b 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:36 2009 4# Wed May 13 17:21:58 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 19# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set 20# CONFIG_ALTIVEC is not set
@@ -58,6 +59,7 @@ CONFIG_REDBOOT=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y 59CONFIG_ARCH_SUSPEND_POSSIBLE=y
59# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
60# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
62CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
62 64
63# 65#
@@ -75,6 +77,15 @@ CONFIG_SYSVIPC_SYSCTL=y
75# CONFIG_BSD_PROCESS_ACCT is not set 77# CONFIG_BSD_PROCESS_ACCT is not set
76# CONFIG_TASKSTATS is not set 78# CONFIG_TASKSTATS is not set
77# CONFIG_AUDIT is not set 79# CONFIG_AUDIT is not set
80
81#
82# RCU Subsystem
83#
84CONFIG_CLASSIC_RCU=y
85# CONFIG_TREE_RCU is not set
86# CONFIG_PREEMPT_RCU is not set
87# CONFIG_TREE_RCU_TRACE is not set
88# CONFIG_PREEMPT_RCU_TRACE is not set
78# CONFIG_IKCONFIG is not set 89# CONFIG_IKCONFIG is not set
79CONFIG_LOG_BUF_SHIFT=14 90CONFIG_LOG_BUF_SHIFT=14
80CONFIG_GROUP_SCHED=y 91CONFIG_GROUP_SCHED=y
@@ -89,20 +100,23 @@ CONFIG_SYSFS_DEPRECATED_V2=y
89# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE="" 102CONFIG_INITRAMFS_SOURCE=""
103CONFIG_RD_GZIP=y
104# CONFIG_RD_BZIP2 is not set
105# CONFIG_RD_LZMA is not set
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 106# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
108CONFIG_ANON_INODES=y
94CONFIG_EMBEDDED=y 109CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 110CONFIG_SYSCTL_SYSCALL=y
96CONFIG_KALLSYMS=y 111CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
113# CONFIG_STRIP_ASM_SYMS is not set
98CONFIG_HOTPLUG=y 114CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 115CONFIG_PRINTK=y
100CONFIG_BUG=y 116CONFIG_BUG=y
101CONFIG_ELF_CORE=y 117CONFIG_ELF_CORE=y
102CONFIG_COMPAT_BRK=y
103CONFIG_BASE_FULL=y 118CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 119CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106# CONFIG_EPOLL is not set 120# CONFIG_EPOLL is not set
107CONFIG_SIGNALFD=y 121CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 122CONFIG_TIMERFD=y
@@ -111,10 +125,12 @@ CONFIG_SHMEM=y
111CONFIG_AIO=y 125CONFIG_AIO=y
112CONFIG_VM_EVENT_COUNTERS=y 126CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 127CONFIG_PCI_QUIRKS=y
128CONFIG_COMPAT_BRK=y
114CONFIG_SLAB=y 129CONFIG_SLAB=y
115# CONFIG_SLUB is not set 130# CONFIG_SLUB is not set
116# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
117# CONFIG_PROFILING is not set 132# CONFIG_PROFILING is not set
133# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 135# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -122,6 +138,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 138CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 139CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 140CONFIG_HAVE_ARCH_TRACEHOOK=y
141# CONFIG_SLOW_WORK is not set
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 142# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 144CONFIG_RT_MUTEXES=y
@@ -134,7 +151,6 @@ CONFIG_MODULE_UNLOAD=y
134# CONFIG_MODULE_SRCVERSION_ALL is not set 151# CONFIG_MODULE_SRCVERSION_ALL is not set
135CONFIG_BLOCK=y 152CONFIG_BLOCK=y
136# CONFIG_LBD is not set 153# CONFIG_LBD is not set
137# CONFIG_BLK_DEV_IO_TRACE is not set
138# CONFIG_BLK_DEV_BSG is not set 154# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set 155# CONFIG_BLK_DEV_INTEGRITY is not set
140 156
@@ -150,18 +166,11 @@ CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_CFQ is not set 166# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 167# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="anticipatory" 168CONFIG_DEFAULT_IOSCHED="anticipatory"
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 169# CONFIG_FREEZER is not set
159 170
160# 171#
161# Platform support 172# Platform support
162# 173#
163CONFIG_PPC_MULTIPLATFORM=y
164CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 174# CONFIG_PPC_CHRP is not set
166# CONFIG_MPC5121_ADS is not set 175# CONFIG_MPC5121_ADS is not set
167# CONFIG_MPC5121_GENERIC is not set 176# CONFIG_MPC5121_GENERIC is not set
@@ -189,6 +198,8 @@ CONFIG_PPC_MPC834x=y
189CONFIG_PPC_MPC837x=y 198CONFIG_PPC_MPC837x=y
190# CONFIG_PPC_86xx is not set 199# CONFIG_PPC_86xx is not set
191# CONFIG_EMBEDDED6xx is not set 200# CONFIG_EMBEDDED6xx is not set
201# CONFIG_AMIGAONE is not set
202CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
192CONFIG_IPIC=y 203CONFIG_IPIC=y
193# CONFIG_MPIC is not set 204# CONFIG_MPIC is not set
194# CONFIG_MPIC_WEIRD is not set 205# CONFIG_MPIC_WEIRD is not set
@@ -251,9 +262,12 @@ CONFIG_ZONE_DMA_FLAG=1
251CONFIG_BOUNCE=y 262CONFIG_BOUNCE=y
252CONFIG_VIRT_TO_BUS=y 263CONFIG_VIRT_TO_BUS=y
253CONFIG_UNEVICTABLE_LRU=y 264CONFIG_UNEVICTABLE_LRU=y
265CONFIG_HAVE_MLOCK=y
266CONFIG_HAVE_MLOCKED_PAGE_BIT=y
254CONFIG_PPC_4K_PAGES=y 267CONFIG_PPC_4K_PAGES=y
255# CONFIG_PPC_16K_PAGES is not set 268# CONFIG_PPC_16K_PAGES is not set
256# CONFIG_PPC_64K_PAGES is not set 269# CONFIG_PPC_64K_PAGES is not set
270# CONFIG_PPC_256K_PAGES is not set
257CONFIG_FORCE_MAX_ZONEORDER=11 271CONFIG_FORCE_MAX_ZONEORDER=11
258CONFIG_PROC_DEVICETREE=y 272CONFIG_PROC_DEVICETREE=y
259# CONFIG_CMDLINE_BOOL is not set 273# CONFIG_CMDLINE_BOOL is not set
@@ -281,6 +295,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
281# CONFIG_PCI_MSI is not set 295# CONFIG_PCI_MSI is not set
282# CONFIG_PCI_LEGACY is not set 296# CONFIG_PCI_LEGACY is not set
283# CONFIG_PCI_STUB is not set 297# CONFIG_PCI_STUB is not set
298# CONFIG_PCI_IOV is not set
284# CONFIG_PCCARD is not set 299# CONFIG_PCCARD is not set
285# CONFIG_HOTPLUG_PCI is not set 300# CONFIG_HOTPLUG_PCI is not set
286# CONFIG_HAS_RAPIDIO is not set 301# CONFIG_HAS_RAPIDIO is not set
@@ -303,7 +318,6 @@ CONFIG_NET=y
303# 318#
304# Networking options 319# Networking options
305# 320#
306CONFIG_COMPAT_NET_DEV_OPS=y
307CONFIG_PACKET=y 321CONFIG_PACKET=y
308# CONFIG_PACKET_MMAP is not set 322# CONFIG_PACKET_MMAP is not set
309CONFIG_UNIX=y 323CONFIG_UNIX=y
@@ -359,6 +373,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_LAPB is not set 373# CONFIG_LAPB is not set
360# CONFIG_ECONET is not set 374# CONFIG_ECONET is not set
361# CONFIG_WAN_ROUTER is not set 375# CONFIG_WAN_ROUTER is not set
376# CONFIG_PHONET is not set
362# CONFIG_NET_SCHED is not set 377# CONFIG_NET_SCHED is not set
363# CONFIG_DCB is not set 378# CONFIG_DCB is not set
364 379
@@ -371,7 +386,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
371# CONFIG_IRDA is not set 386# CONFIG_IRDA is not set
372# CONFIG_BT is not set 387# CONFIG_BT is not set
373# CONFIG_AF_RXRPC is not set 388# CONFIG_AF_RXRPC is not set
374# CONFIG_PHONET is not set
375CONFIG_WIRELESS=y 389CONFIG_WIRELESS=y
376# CONFIG_CFG80211 is not set 390# CONFIG_CFG80211 is not set
377CONFIG_WIRELESS_OLD_REGULATORY=y 391CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -485,7 +499,6 @@ CONFIG_MTD_NAND_FSL_ELBC=y
485# LPDDR flash memory drivers 499# LPDDR flash memory drivers
486# 500#
487# CONFIG_MTD_LPDDR is not set 501# CONFIG_MTD_LPDDR is not set
488# CONFIG_MTD_QINFO_PROBE is not set
489 502
490# 503#
491# UBI - Unsorted block images 504# UBI - Unsorted block images
@@ -516,13 +529,20 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
516# CONFIG_BLK_DEV_HD is not set 529# CONFIG_BLK_DEV_HD is not set
517CONFIG_MISC_DEVICES=y 530CONFIG_MISC_DEVICES=y
518# CONFIG_PHANTOM is not set 531# CONFIG_PHANTOM is not set
519# CONFIG_EEPROM_93CX6 is not set
520# CONFIG_SGI_IOC4 is not set 532# CONFIG_SGI_IOC4 is not set
521# CONFIG_TIFM_CORE is not set 533# CONFIG_TIFM_CORE is not set
522# CONFIG_ICS932S401 is not set 534# CONFIG_ICS932S401 is not set
523# CONFIG_ENCLOSURE_SERVICES is not set 535# CONFIG_ENCLOSURE_SERVICES is not set
524# CONFIG_HP_ILO is not set 536# CONFIG_HP_ILO is not set
537# CONFIG_ISL29003 is not set
525# CONFIG_C2PORT is not set 538# CONFIG_C2PORT is not set
539
540#
541# EEPROM support
542#
543# CONFIG_EEPROM_AT24 is not set
544# CONFIG_EEPROM_LEGACY is not set
545# CONFIG_EEPROM_93CX6 is not set
526CONFIG_HAVE_IDE=y 546CONFIG_HAVE_IDE=y
527# CONFIG_IDE is not set 547# CONFIG_IDE is not set
528 548
@@ -580,9 +600,11 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_MEGARAID_NEWGEN is not set 600# CONFIG_MEGARAID_NEWGEN is not set
581# CONFIG_MEGARAID_LEGACY is not set 601# CONFIG_MEGARAID_LEGACY is not set
582# CONFIG_MEGARAID_SAS is not set 602# CONFIG_MEGARAID_SAS is not set
603# CONFIG_SCSI_MPT2SAS is not set
583# CONFIG_SCSI_HPTIOP is not set 604# CONFIG_SCSI_HPTIOP is not set
584# CONFIG_SCSI_BUSLOGIC is not set 605# CONFIG_SCSI_BUSLOGIC is not set
585# CONFIG_LIBFC is not set 606# CONFIG_LIBFC is not set
607# CONFIG_LIBFCOE is not set
586# CONFIG_FCOE is not set 608# CONFIG_FCOE is not set
587# CONFIG_SCSI_DMX3191D is not set 609# CONFIG_SCSI_DMX3191D is not set
588# CONFIG_SCSI_EATA is not set 610# CONFIG_SCSI_EATA is not set
@@ -605,6 +627,7 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_SCSI_DEBUG is not set 627# CONFIG_SCSI_DEBUG is not set
606# CONFIG_SCSI_SRP is not set 628# CONFIG_SCSI_SRP is not set
607# CONFIG_SCSI_DH is not set 629# CONFIG_SCSI_DH is not set
630# CONFIG_SCSI_OSD_INITIATOR is not set
608CONFIG_ATA=y 631CONFIG_ATA=y
609# CONFIG_ATA_NONSTANDARD is not set 632# CONFIG_ATA_NONSTANDARD is not set
610CONFIG_SATA_PMP=y 633CONFIG_SATA_PMP=y
@@ -681,6 +704,7 @@ CONFIG_ATA_SFF=y
681# CONFIG_I2O is not set 704# CONFIG_I2O is not set
682# CONFIG_MACINTOSH_DRIVERS is not set 705# CONFIG_MACINTOSH_DRIVERS is not set
683CONFIG_NETDEVICES=y 706CONFIG_NETDEVICES=y
707CONFIG_COMPAT_NET_DEV_OPS=y
684# CONFIG_DUMMY is not set 708# CONFIG_DUMMY is not set
685# CONFIG_BONDING is not set 709# CONFIG_BONDING is not set
686# CONFIG_MACVLAN is not set 710# CONFIG_MACVLAN is not set
@@ -714,6 +738,8 @@ CONFIG_MII=y
714# CONFIG_SUNGEM is not set 738# CONFIG_SUNGEM is not set
715# CONFIG_CASSINI is not set 739# CONFIG_CASSINI is not set
716# CONFIG_NET_VENDOR_3COM is not set 740# CONFIG_NET_VENDOR_3COM is not set
741# CONFIG_ETHOC is not set
742# CONFIG_DNET is not set
717# CONFIG_NET_TULIP is not set 743# CONFIG_NET_TULIP is not set
718# CONFIG_HP100 is not set 744# CONFIG_HP100 is not set
719# CONFIG_IBM_NEW_EMAC_ZMII is not set 745# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -733,6 +759,7 @@ CONFIG_NETDEV_1000=y
733# CONFIG_E1000E is not set 759# CONFIG_E1000E is not set
734# CONFIG_IP1000 is not set 760# CONFIG_IP1000 is not set
735# CONFIG_IGB is not set 761# CONFIG_IGB is not set
762# CONFIG_IGBVF is not set
736# CONFIG_NS83820 is not set 763# CONFIG_NS83820 is not set
737# CONFIG_HAMACHI is not set 764# CONFIG_HAMACHI is not set
738# CONFIG_YELLOWFIN is not set 765# CONFIG_YELLOWFIN is not set
@@ -743,14 +770,15 @@ CONFIG_NETDEV_1000=y
743# CONFIG_VIA_VELOCITY is not set 770# CONFIG_VIA_VELOCITY is not set
744# CONFIG_TIGON3 is not set 771# CONFIG_TIGON3 is not set
745# CONFIG_BNX2 is not set 772# CONFIG_BNX2 is not set
773CONFIG_FSL_PQ_MDIO=y
746CONFIG_GIANFAR=y 774CONFIG_GIANFAR=y
747CONFIG_UCC_GETH=y 775CONFIG_UCC_GETH=y
748# CONFIG_UGETH_MAGIC_PACKET is not set 776# CONFIG_UGETH_MAGIC_PACKET is not set
749# CONFIG_UGETH_TX_ON_DEMAND is not set 777# CONFIG_UGETH_TX_ON_DEMAND is not set
750# CONFIG_MV643XX_ETH is not set
751# CONFIG_QLA3XXX is not set 778# CONFIG_QLA3XXX is not set
752# CONFIG_ATL1 is not set 779# CONFIG_ATL1 is not set
753# CONFIG_ATL1E is not set 780# CONFIG_ATL1E is not set
781# CONFIG_ATL1C is not set
754# CONFIG_JME is not set 782# CONFIG_JME is not set
755CONFIG_NETDEV_10000=y 783CONFIG_NETDEV_10000=y
756# CONFIG_CHELSIO_T1 is not set 784# CONFIG_CHELSIO_T1 is not set
@@ -760,6 +788,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
760# CONFIG_IXGBE is not set 788# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 789# CONFIG_IXGB is not set
762# CONFIG_S2IO is not set 790# CONFIG_S2IO is not set
791# CONFIG_VXGE is not set
763# CONFIG_MYRI10GE is not set 792# CONFIG_MYRI10GE is not set
764# CONFIG_NETXEN_NIC is not set 793# CONFIG_NETXEN_NIC is not set
765# CONFIG_NIU is not set 794# CONFIG_NIU is not set
@@ -769,6 +798,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
769# CONFIG_BNX2X is not set 798# CONFIG_BNX2X is not set
770# CONFIG_QLGE is not set 799# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 800# CONFIG_SFC is not set
801# CONFIG_BE2NET is not set
772# CONFIG_TR is not set 802# CONFIG_TR is not set
773 803
774# 804#
@@ -776,7 +806,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
776# 806#
777# CONFIG_WLAN_PRE80211 is not set 807# CONFIG_WLAN_PRE80211 is not set
778# CONFIG_WLAN_80211 is not set 808# CONFIG_WLAN_80211 is not set
779# CONFIG_IWLWIFI_LEDS is not set
780 809
781# 810#
782# Enable WiMAX (Networking options) to see the WiMAX drivers 811# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -867,6 +896,7 @@ CONFIG_LEGACY_PTY_COUNT=256
867# CONFIG_HVC_UDBG is not set 896# CONFIG_HVC_UDBG is not set
868# CONFIG_IPMI_HANDLER is not set 897# CONFIG_IPMI_HANDLER is not set
869CONFIG_HW_RANDOM=y 898CONFIG_HW_RANDOM=y
899# CONFIG_HW_RANDOM_TIMERIOMEM is not set
870# CONFIG_NVRAM is not set 900# CONFIG_NVRAM is not set
871CONFIG_GEN_RTC=y 901CONFIG_GEN_RTC=y
872# CONFIG_GEN_RTC_X is not set 902# CONFIG_GEN_RTC_X is not set
@@ -932,12 +962,9 @@ CONFIG_I2C_MPC=y
932# Miscellaneous I2C Chip support 962# Miscellaneous I2C Chip support
933# 963#
934# CONFIG_DS1682 is not set 964# CONFIG_DS1682 is not set
935# CONFIG_EEPROM_AT24 is not set
936# CONFIG_EEPROM_LEGACY is not set
937# CONFIG_SENSORS_PCF8574 is not set 965# CONFIG_SENSORS_PCF8574 is not set
938# CONFIG_PCF8575 is not set 966# CONFIG_PCF8575 is not set
939# CONFIG_SENSORS_PCA9539 is not set 967# CONFIG_SENSORS_PCA9539 is not set
940# CONFIG_SENSORS_PCF8591 is not set
941# CONFIG_SENSORS_MAX6875 is not set 968# CONFIG_SENSORS_MAX6875 is not set
942# CONFIG_SENSORS_TSL2550 is not set 969# CONFIG_SENSORS_TSL2550 is not set
943# CONFIG_I2C_DEBUG_CORE is not set 970# CONFIG_I2C_DEBUG_CORE is not set
@@ -992,6 +1019,7 @@ CONFIG_HWMON=y
992# CONFIG_SENSORS_F71805F is not set 1019# CONFIG_SENSORS_F71805F is not set
993# CONFIG_SENSORS_F71882FG is not set 1020# CONFIG_SENSORS_F71882FG is not set
994# CONFIG_SENSORS_F75375S is not set 1021# CONFIG_SENSORS_F75375S is not set
1022# CONFIG_SENSORS_G760A is not set
995# CONFIG_SENSORS_GL518SM is not set 1023# CONFIG_SENSORS_GL518SM is not set
996# CONFIG_SENSORS_GL520SM is not set 1024# CONFIG_SENSORS_GL520SM is not set
997# CONFIG_SENSORS_IT87 is not set 1025# CONFIG_SENSORS_IT87 is not set
@@ -1006,11 +1034,15 @@ CONFIG_HWMON=y
1006# CONFIG_SENSORS_LM90 is not set 1034# CONFIG_SENSORS_LM90 is not set
1007# CONFIG_SENSORS_LM92 is not set 1035# CONFIG_SENSORS_LM92 is not set
1008# CONFIG_SENSORS_LM93 is not set 1036# CONFIG_SENSORS_LM93 is not set
1037# CONFIG_SENSORS_LTC4215 is not set
1009# CONFIG_SENSORS_LTC4245 is not set 1038# CONFIG_SENSORS_LTC4245 is not set
1039# CONFIG_SENSORS_LM95241 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
1013# CONFIG_SENSORS_PC87427 is not set 1043# CONFIG_SENSORS_PC87427 is not set
1044# CONFIG_SENSORS_PCF8591 is not set
1045# CONFIG_SENSORS_SHT15 is not set
1014# CONFIG_SENSORS_SIS5595 is not set 1046# CONFIG_SENSORS_SIS5595 is not set
1015# CONFIG_SENSORS_DME1737 is not set 1047# CONFIG_SENSORS_DME1737 is not set
1016# CONFIG_SENSORS_SMSC47M1 is not set 1048# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1121,15 +1153,17 @@ CONFIG_USB_HID=y
1121# 1153#
1122# Special HID drivers 1154# Special HID drivers
1123# 1155#
1124CONFIG_HID_COMPAT=y
1125CONFIG_HID_A4TECH=y 1156CONFIG_HID_A4TECH=y
1126CONFIG_HID_APPLE=y 1157CONFIG_HID_APPLE=y
1127CONFIG_HID_BELKIN=y 1158CONFIG_HID_BELKIN=y
1128CONFIG_HID_CHERRY=y 1159CONFIG_HID_CHERRY=y
1129CONFIG_HID_CHICONY=y 1160CONFIG_HID_CHICONY=y
1130CONFIG_HID_CYPRESS=y 1161CONFIG_HID_CYPRESS=y
1162# CONFIG_DRAGONRISE_FF is not set
1131CONFIG_HID_EZKEY=y 1163CONFIG_HID_EZKEY=y
1164# CONFIG_HID_KYE is not set
1132CONFIG_HID_GYRATION=y 1165CONFIG_HID_GYRATION=y
1166# CONFIG_HID_KENSINGTON is not set
1133CONFIG_HID_LOGITECH=y 1167CONFIG_HID_LOGITECH=y
1134# CONFIG_LOGITECH_FF is not set 1168# CONFIG_LOGITECH_FF is not set
1135# CONFIG_LOGIRUMBLEPAD2_FF is not set 1169# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1181,6 +1215,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1181# CONFIG_USB_ISP1760_HCD is not set 1215# CONFIG_USB_ISP1760_HCD is not set
1182# CONFIG_USB_OHCI_HCD is not set 1216# CONFIG_USB_OHCI_HCD is not set
1183# CONFIG_USB_UHCI_HCD is not set 1217# CONFIG_USB_UHCI_HCD is not set
1218# CONFIG_USB_FHCI_HCD is not set
1184# CONFIG_USB_SL811_HCD is not set 1219# CONFIG_USB_SL811_HCD is not set
1185# CONFIG_USB_R8A66597_HCD is not set 1220# CONFIG_USB_R8A66597_HCD is not set
1186# CONFIG_USB_WHCI_HCD is not set 1221# CONFIG_USB_WHCI_HCD is not set
@@ -1195,11 +1230,11 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1195# CONFIG_USB_TMC is not set 1230# CONFIG_USB_TMC is not set
1196 1231
1197# 1232#
1198# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1233# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1199# 1234#
1200 1235
1201# 1236#
1202# see USB_STORAGE Help for more information 1237# also be needed; see USB_STORAGE Help for more info
1203# 1238#
1204# CONFIG_USB_STORAGE is not set 1239# CONFIG_USB_STORAGE is not set
1205# CONFIG_USB_LIBUSUAL is not set 1240# CONFIG_USB_LIBUSUAL is not set
@@ -1229,7 +1264,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1229# CONFIG_USB_LED is not set 1264# CONFIG_USB_LED is not set
1230# CONFIG_USB_CYPRESS_CY7C63 is not set 1265# CONFIG_USB_CYPRESS_CY7C63 is not set
1231# CONFIG_USB_CYTHERM is not set 1266# CONFIG_USB_CYTHERM is not set
1232# CONFIG_USB_PHIDGET is not set
1233# CONFIG_USB_IDMOUSE is not set 1267# CONFIG_USB_IDMOUSE is not set
1234# CONFIG_USB_FTDI_ELAN is not set 1268# CONFIG_USB_FTDI_ELAN is not set
1235# CONFIG_USB_APPLEDISPLAY is not set 1269# CONFIG_USB_APPLEDISPLAY is not set
@@ -1245,6 +1279,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1245# OTG and related infrastructure 1279# OTG and related infrastructure
1246# 1280#
1247# CONFIG_USB_GPIO_VBUS is not set 1281# CONFIG_USB_GPIO_VBUS is not set
1282# CONFIG_NOP_USB_XCEIV is not set
1248# CONFIG_UWB is not set 1283# CONFIG_UWB is not set
1249# CONFIG_MMC is not set 1284# CONFIG_MMC is not set
1250# CONFIG_MEMSTICK is not set 1285# CONFIG_MEMSTICK is not set
@@ -1254,6 +1289,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1254# CONFIG_EDAC is not set 1289# CONFIG_EDAC is not set
1255# CONFIG_RTC_CLASS is not set 1290# CONFIG_RTC_CLASS is not set
1256# CONFIG_DMADEVICES is not set 1291# CONFIG_DMADEVICES is not set
1292# CONFIG_AUXDISPLAY is not set
1257# CONFIG_UIO is not set 1293# CONFIG_UIO is not set
1258# CONFIG_STAGING is not set 1294# CONFIG_STAGING is not set
1259 1295
@@ -1264,6 +1300,7 @@ CONFIG_EXT2_FS=y
1264# CONFIG_EXT2_FS_XATTR is not set 1300# CONFIG_EXT2_FS_XATTR is not set
1265# CONFIG_EXT2_FS_XIP is not set 1301# CONFIG_EXT2_FS_XIP is not set
1266CONFIG_EXT3_FS=y 1302CONFIG_EXT3_FS=y
1303# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1267CONFIG_EXT3_FS_XATTR=y 1304CONFIG_EXT3_FS_XATTR=y
1268# CONFIG_EXT3_FS_POSIX_ACL is not set 1305# CONFIG_EXT3_FS_POSIX_ACL is not set
1269# CONFIG_EXT3_FS_SECURITY is not set 1306# CONFIG_EXT3_FS_SECURITY is not set
@@ -1286,6 +1323,11 @@ CONFIG_INOTIFY_USER=y
1286# CONFIG_FUSE_FS is not set 1323# CONFIG_FUSE_FS is not set
1287 1324
1288# 1325#
1326# Caches
1327#
1328# CONFIG_FSCACHE is not set
1329
1330#
1289# CD-ROM/DVD Filesystems 1331# CD-ROM/DVD Filesystems
1290# 1332#
1291# CONFIG_ISO9660_FS is not set 1333# CONFIG_ISO9660_FS is not set
@@ -1329,6 +1371,7 @@ CONFIG_MISC_FILESYSTEMS=y
1329# CONFIG_ROMFS_FS is not set 1371# CONFIG_ROMFS_FS is not set
1330# CONFIG_SYSV_FS is not set 1372# CONFIG_SYSV_FS is not set
1331# CONFIG_UFS_FS is not set 1373# CONFIG_UFS_FS is not set
1374# CONFIG_NILFS2_FS is not set
1332CONFIG_NETWORK_FILESYSTEMS=y 1375CONFIG_NETWORK_FILESYSTEMS=y
1333CONFIG_NFS_FS=y 1376CONFIG_NFS_FS=y
1334CONFIG_NFS_V3=y 1377CONFIG_NFS_V3=y
@@ -1341,7 +1384,6 @@ CONFIG_LOCKD_V4=y
1341CONFIG_NFS_COMMON=y 1384CONFIG_NFS_COMMON=y
1342CONFIG_SUNRPC=y 1385CONFIG_SUNRPC=y
1343CONFIG_SUNRPC_GSS=y 1386CONFIG_SUNRPC_GSS=y
1344# CONFIG_SUNRPC_REGISTER_V4 is not set
1345CONFIG_RPCSEC_GSS_KRB5=y 1387CONFIG_RPCSEC_GSS_KRB5=y
1346# CONFIG_RPCSEC_GSS_SPKM3 is not set 1388# CONFIG_RPCSEC_GSS_SPKM3 is not set
1347# CONFIG_SMB_FS is not set 1389# CONFIG_SMB_FS is not set
@@ -1375,6 +1417,7 @@ CONFIG_MSDOS_PARTITION=y
1375# CONFIG_DLM is not set 1417# CONFIG_DLM is not set
1376CONFIG_UCC_FAST=y 1418CONFIG_UCC_FAST=y
1377CONFIG_UCC=y 1419CONFIG_UCC=y
1420# CONFIG_BINARY_PRINTF is not set
1378 1421
1379# 1422#
1380# Library routines 1423# Library routines
@@ -1388,11 +1431,13 @@ CONFIG_CRC_T10DIF=y
1388CONFIG_CRC32=y 1431CONFIG_CRC32=y
1389# CONFIG_CRC7 is not set 1432# CONFIG_CRC7 is not set
1390# CONFIG_LIBCRC32C is not set 1433# CONFIG_LIBCRC32C is not set
1391CONFIG_PLIST=y 1434CONFIG_ZLIB_INFLATE=y
1435CONFIG_DECOMPRESS_GZIP=y
1392CONFIG_HAS_IOMEM=y 1436CONFIG_HAS_IOMEM=y
1393CONFIG_HAS_IOPORT=y 1437CONFIG_HAS_IOPORT=y
1394CONFIG_HAS_DMA=y 1438CONFIG_HAS_DMA=y
1395CONFIG_HAVE_LMB=y 1439CONFIG_HAVE_LMB=y
1440CONFIG_NLATTR=y
1396 1441
1397# 1442#
1398# Kernel hacking 1443# Kernel hacking
@@ -1412,13 +1457,24 @@ CONFIG_FRAME_WARN=1024
1412# CONFIG_LATENCYTOP is not set 1457# CONFIG_LATENCYTOP is not set
1413CONFIG_SYSCTL_SYSCALL_CHECK=y 1458CONFIG_SYSCTL_SYSCALL_CHECK=y
1414CONFIG_HAVE_FUNCTION_TRACER=y 1459CONFIG_HAVE_FUNCTION_TRACER=y
1460CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1415CONFIG_HAVE_DYNAMIC_FTRACE=y 1461CONFIG_HAVE_DYNAMIC_FTRACE=y
1416CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1462CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1463CONFIG_TRACING_SUPPORT=y
1417 1464
1418# 1465#
1419# Tracers 1466# Tracers
1420# 1467#
1421# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1468# CONFIG_FUNCTION_TRACER is not set
1469# CONFIG_SCHED_TRACER is not set
1470# CONFIG_CONTEXT_SWITCH_TRACER is not set
1471# CONFIG_EVENT_TRACER is not set
1472# CONFIG_BOOT_TRACER is not set
1473# CONFIG_TRACE_BRANCH_PROFILING is not set
1474# CONFIG_STACK_TRACER is not set
1475# CONFIG_KMEMTRACE is not set
1476# CONFIG_WORKQUEUE_TRACER is not set
1477# CONFIG_BLK_DEV_IO_TRACE is not set
1422# CONFIG_SAMPLES is not set 1478# CONFIG_SAMPLES is not set
1423CONFIG_HAVE_ARCH_KGDB=y 1479CONFIG_HAVE_ARCH_KGDB=y
1424CONFIG_PRINT_STACK_DEPTH=64 1480CONFIG_PRINT_STACK_DEPTH=64
@@ -1448,10 +1504,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1448CONFIG_CRYPTO_HASH=y 1504CONFIG_CRYPTO_HASH=y
1449CONFIG_CRYPTO_HASH2=y 1505CONFIG_CRYPTO_HASH2=y
1450CONFIG_CRYPTO_RNG2=y 1506CONFIG_CRYPTO_RNG2=y
1507CONFIG_CRYPTO_PCOMP=y
1451CONFIG_CRYPTO_MANAGER=y 1508CONFIG_CRYPTO_MANAGER=y
1452CONFIG_CRYPTO_MANAGER2=y 1509CONFIG_CRYPTO_MANAGER2=y
1453# CONFIG_CRYPTO_GF128MUL is not set 1510# CONFIG_CRYPTO_GF128MUL is not set
1454# CONFIG_CRYPTO_NULL is not set 1511# CONFIG_CRYPTO_NULL is not set
1512CONFIG_CRYPTO_WORKQUEUE=y
1455# CONFIG_CRYPTO_CRYPTD is not set 1513# CONFIG_CRYPTO_CRYPTD is not set
1456CONFIG_CRYPTO_AUTHENC=y 1514CONFIG_CRYPTO_AUTHENC=y
1457# CONFIG_CRYPTO_TEST is not set 1515# CONFIG_CRYPTO_TEST is not set
@@ -1520,6 +1578,7 @@ CONFIG_CRYPTO_DES=y
1520# Compression 1578# Compression
1521# 1579#
1522# CONFIG_CRYPTO_DEFLATE is not set 1580# CONFIG_CRYPTO_DEFLATE is not set
1581# CONFIG_CRYPTO_ZLIB is not set
1523# CONFIG_CRYPTO_LZO is not set 1582# CONFIG_CRYPTO_LZO is not set
1524 1583
1525# 1584#
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index fb08819d7cc4..c162724fed4f 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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 15:35:37 2009 4# Tue Apr 21 15:40:23 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,6 +22,7 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26# CONFIG_SMP is not set 27# CONFIG_SMP is not set
27CONFIG_PPC32=y 28CONFIG_PPC32=y
@@ -59,6 +60,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 60CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
63CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 64CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 65
64# 66#
@@ -73,11 +75,21 @@ CONFIG_SWAP=y
73CONFIG_SYSVIPC=y 75CONFIG_SYSVIPC=y
74CONFIG_SYSVIPC_SYSCTL=y 76CONFIG_SYSVIPC_SYSCTL=y
75CONFIG_POSIX_MQUEUE=y 77CONFIG_POSIX_MQUEUE=y
78CONFIG_POSIX_MQUEUE_SYSCTL=y
76CONFIG_BSD_PROCESS_ACCT=y 79CONFIG_BSD_PROCESS_ACCT=y
77# CONFIG_BSD_PROCESS_ACCT_V3 is not set 80# CONFIG_BSD_PROCESS_ACCT_V3 is not set
78# CONFIG_TASKSTATS is not set 81# CONFIG_TASKSTATS is not set
79CONFIG_AUDIT=y 82CONFIG_AUDIT=y
80# CONFIG_AUDITSYSCALL is not set 83# CONFIG_AUDITSYSCALL is not set
84
85#
86# RCU Subsystem
87#
88CONFIG_CLASSIC_RCU=y
89# CONFIG_TREE_RCU is not set
90# CONFIG_PREEMPT_RCU is not set
91# CONFIG_TREE_RCU_TRACE is not set
92# CONFIG_PREEMPT_RCU_TRACE is not set
81CONFIG_IKCONFIG=y 93CONFIG_IKCONFIG=y
82CONFIG_IKCONFIG_PROC=y 94CONFIG_IKCONFIG_PROC=y
83CONFIG_LOG_BUF_SHIFT=14 95CONFIG_LOG_BUF_SHIFT=14
@@ -93,22 +105,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
93# CONFIG_NAMESPACES is not set 105# CONFIG_NAMESPACES is not set
94CONFIG_BLK_DEV_INITRD=y 106CONFIG_BLK_DEV_INITRD=y
95CONFIG_INITRAMFS_SOURCE="" 107CONFIG_INITRAMFS_SOURCE=""
108CONFIG_RD_GZIP=y
109# CONFIG_RD_BZIP2 is not set
110# CONFIG_RD_LZMA is not set
96# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
97CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
113CONFIG_ANON_INODES=y
98CONFIG_EMBEDDED=y 114CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 115CONFIG_SYSCTL_SYSCALL=y
100CONFIG_KALLSYMS=y 116CONFIG_KALLSYMS=y
101CONFIG_KALLSYMS_ALL=y 117CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
103CONFIG_KALLSYMS_EXTRA_PASS=y 118CONFIG_KALLSYMS_EXTRA_PASS=y
119# CONFIG_STRIP_ASM_SYMS is not set
104CONFIG_HOTPLUG=y 120CONFIG_HOTPLUG=y
105CONFIG_PRINTK=y 121CONFIG_PRINTK=y
106CONFIG_BUG=y 122CONFIG_BUG=y
107CONFIG_ELF_CORE=y 123CONFIG_ELF_CORE=y
108CONFIG_COMPAT_BRK=y
109CONFIG_BASE_FULL=y 124CONFIG_BASE_FULL=y
110CONFIG_FUTEX=y 125CONFIG_FUTEX=y
111CONFIG_ANON_INODES=y
112CONFIG_EPOLL=y 126CONFIG_EPOLL=y
113CONFIG_SIGNALFD=y 127CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 128CONFIG_TIMERFD=y
@@ -118,10 +132,12 @@ CONFIG_AIO=y
118CONFIG_VM_EVENT_COUNTERS=y 132CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y 133CONFIG_PCI_QUIRKS=y
120CONFIG_SLUB_DEBUG=y 134CONFIG_SLUB_DEBUG=y
135CONFIG_COMPAT_BRK=y
121# CONFIG_SLAB is not set 136# CONFIG_SLAB is not set
122CONFIG_SLUB=y 137CONFIG_SLUB=y
123# CONFIG_SLOB is not set 138# CONFIG_SLOB is not set
124# CONFIG_PROFILING is not set 139# CONFIG_PROFILING is not set
140# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 141CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 142# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 143CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,6 +146,7 @@ CONFIG_HAVE_KPROBES=y
130CONFIG_HAVE_KRETPROBES=y 146CONFIG_HAVE_KRETPROBES=y
131CONFIG_HAVE_ARCH_TRACEHOOK=y 147CONFIG_HAVE_ARCH_TRACEHOOK=y
132CONFIG_HAVE_CLK=y 148CONFIG_HAVE_CLK=y
149# CONFIG_SLOW_WORK is not set
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 150# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 151CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 152CONFIG_RT_MUTEXES=y
@@ -142,7 +159,6 @@ CONFIG_MODVERSIONS=y
142# CONFIG_MODULE_SRCVERSION_ALL is not set 159# CONFIG_MODULE_SRCVERSION_ALL is not set
143CONFIG_BLOCK=y 160CONFIG_BLOCK=y
144CONFIG_LBD=y 161CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_BLK_DEV_BSG is not set 162# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set 163# CONFIG_BLK_DEV_INTEGRITY is not set
148 164
@@ -158,11 +174,6 @@ CONFIG_IOSCHED_CFQ=y
158CONFIG_DEFAULT_CFQ=y 174CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 175# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="cfq" 176CONFIG_DEFAULT_IOSCHED="cfq"
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
166# CONFIG_FREEZER is not set 177# CONFIG_FREEZER is not set
167 178
168# 179#
@@ -178,8 +189,9 @@ CONFIG_MPC85xx_CDS=y
178CONFIG_MPC85xx_MDS=y 189CONFIG_MPC85xx_MDS=y
179CONFIG_MPC8536_DS=y 190CONFIG_MPC8536_DS=y
180CONFIG_MPC85xx_DS=y 191CONFIG_MPC85xx_DS=y
192CONFIG_SOCRATES=y
181CONFIG_KSI8560=y 193CONFIG_KSI8560=y
182# CONFIG_STX_GP3 is not set 194CONFIG_STX_GP3=y
183CONFIG_TQM8540=y 195CONFIG_TQM8540=y
184CONFIG_TQM8541=y 196CONFIG_TQM8541=y
185CONFIG_TQM8548=y 197CONFIG_TQM8548=y
@@ -200,11 +212,11 @@ CONFIG_PPC_I8259=y
200# CONFIG_GENERIC_IOMAP is not set 212# CONFIG_GENERIC_IOMAP is not set
201# CONFIG_CPU_FREQ is not set 213# CONFIG_CPU_FREQ is not set
202CONFIG_QUICC_ENGINE=y 214CONFIG_QUICC_ENGINE=y
203# CONFIG_QE_GPIO is not set 215CONFIG_QE_GPIO=y
204CONFIG_CPM2=y 216CONFIG_CPM2=y
205CONFIG_FSL_ULI1575=y 217CONFIG_FSL_ULI1575=y
206CONFIG_CPM=y 218CONFIG_CPM=y
207# CONFIG_MPC8xxx_GPIO is not set 219CONFIG_MPC8xxx_GPIO=y
208# CONFIG_SIMPLE_GPIO is not set 220# CONFIG_SIMPLE_GPIO is not set
209 221
210# 222#
@@ -249,9 +261,12 @@ CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 261CONFIG_BOUNCE=y
250CONFIG_VIRT_TO_BUS=y 262CONFIG_VIRT_TO_BUS=y
251CONFIG_UNEVICTABLE_LRU=y 263CONFIG_UNEVICTABLE_LRU=y
264CONFIG_HAVE_MLOCK=y
265CONFIG_HAVE_MLOCKED_PAGE_BIT=y
252CONFIG_PPC_4K_PAGES=y 266CONFIG_PPC_4K_PAGES=y
253# CONFIG_PPC_16K_PAGES is not set 267# CONFIG_PPC_16K_PAGES is not set
254# CONFIG_PPC_64K_PAGES is not set 268# CONFIG_PPC_64K_PAGES is not set
269# CONFIG_PPC_256K_PAGES is not set
255CONFIG_FORCE_MAX_ZONEORDER=11 270CONFIG_FORCE_MAX_ZONEORDER=11
256CONFIG_PROC_DEVICETREE=y 271CONFIG_PROC_DEVICETREE=y
257# CONFIG_CMDLINE_BOOL is not set 272# CONFIG_CMDLINE_BOOL is not set
@@ -278,6 +293,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
278# CONFIG_PCI_LEGACY is not set 293# CONFIG_PCI_LEGACY is not set
279# CONFIG_PCI_DEBUG is not set 294# CONFIG_PCI_DEBUG is not set
280# CONFIG_PCI_STUB is not set 295# CONFIG_PCI_STUB is not set
296# CONFIG_PCI_IOV is not set
281# CONFIG_PCCARD is not set 297# CONFIG_PCCARD is not set
282# CONFIG_HOTPLUG_PCI is not set 298# CONFIG_HOTPLUG_PCI is not set
283# CONFIG_HAS_RAPIDIO is not set 299# CONFIG_HAS_RAPIDIO is not set
@@ -291,17 +307,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
291# Default settings for advanced configuration options are used 307# Default settings for advanced configuration options are used
292# 308#
293CONFIG_LOWMEM_SIZE=0x30000000 309CONFIG_LOWMEM_SIZE=0x30000000
310CONFIG_LOWMEM_CAM_NUM=3
294CONFIG_PAGE_OFFSET=0xc0000000 311CONFIG_PAGE_OFFSET=0xc0000000
295CONFIG_KERNEL_START=0xc0000000 312CONFIG_KERNEL_START=0xc0000000
296CONFIG_PHYSICAL_START=0x00000000 313CONFIG_PHYSICAL_START=0x00000000
297CONFIG_PHYSICAL_ALIGN=0x10000000 314CONFIG_PHYSICAL_ALIGN=0x04000000
298CONFIG_TASK_SIZE=0xc0000000 315CONFIG_TASK_SIZE=0xc0000000
299CONFIG_NET=y 316CONFIG_NET=y
300 317
301# 318#
302# Networking options 319# Networking options
303# 320#
304CONFIG_COMPAT_NET_DEV_OPS=y
305CONFIG_PACKET=y 321CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set 322# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y 323CONFIG_UNIX=y
@@ -389,6 +405,7 @@ CONFIG_SCTP_HMAC_MD5=y
389# CONFIG_LAPB is not set 405# CONFIG_LAPB is not set
390# CONFIG_ECONET is not set 406# CONFIG_ECONET is not set
391# CONFIG_WAN_ROUTER is not set 407# CONFIG_WAN_ROUTER is not set
408# CONFIG_PHONET is not set
392# CONFIG_NET_SCHED is not set 409# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set 410# CONFIG_DCB is not set
394 411
@@ -401,7 +418,6 @@ CONFIG_SCTP_HMAC_MD5=y
401# CONFIG_IRDA is not set 418# CONFIG_IRDA is not set
402# CONFIG_BT is not set 419# CONFIG_BT is not set
403# CONFIG_AF_RXRPC is not set 420# CONFIG_AF_RXRPC is not set
404# CONFIG_PHONET is not set
405CONFIG_FIB_RULES=y 421CONFIG_FIB_RULES=y
406CONFIG_WIRELESS=y 422CONFIG_WIRELESS=y
407# CONFIG_CFG80211 is not set 423# CONFIG_CFG80211 is not set
@@ -456,13 +472,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
456# CONFIG_BLK_DEV_HD is not set 472# CONFIG_BLK_DEV_HD is not set
457CONFIG_MISC_DEVICES=y 473CONFIG_MISC_DEVICES=y
458# CONFIG_PHANTOM is not set 474# CONFIG_PHANTOM is not set
459# CONFIG_EEPROM_93CX6 is not set
460# CONFIG_SGI_IOC4 is not set 475# CONFIG_SGI_IOC4 is not set
461# CONFIG_TIFM_CORE is not set 476# CONFIG_TIFM_CORE is not set
462# CONFIG_ICS932S401 is not set 477# CONFIG_ICS932S401 is not set
463# CONFIG_ENCLOSURE_SERVICES is not set 478# CONFIG_ENCLOSURE_SERVICES is not set
464# CONFIG_HP_ILO is not set 479# CONFIG_HP_ILO is not set
480# CONFIG_ISL29003 is not set
465# CONFIG_C2PORT is not set 481# CONFIG_C2PORT is not set
482
483#
484# EEPROM support
485#
486# CONFIG_EEPROM_AT24 is not set
487CONFIG_EEPROM_LEGACY=y
488# CONFIG_EEPROM_93CX6 is not set
466CONFIG_HAVE_IDE=y 489CONFIG_HAVE_IDE=y
467# CONFIG_IDE is not set 490# CONFIG_IDE is not set
468 491
@@ -521,9 +544,11 @@ CONFIG_SCSI_LOWLEVEL=y
521# CONFIG_MEGARAID_NEWGEN is not set 544# CONFIG_MEGARAID_NEWGEN is not set
522# CONFIG_MEGARAID_LEGACY is not set 545# CONFIG_MEGARAID_LEGACY is not set
523# CONFIG_MEGARAID_SAS is not set 546# CONFIG_MEGARAID_SAS is not set
547# CONFIG_SCSI_MPT2SAS is not set
524# CONFIG_SCSI_HPTIOP is not set 548# CONFIG_SCSI_HPTIOP is not set
525# CONFIG_SCSI_BUSLOGIC is not set 549# CONFIG_SCSI_BUSLOGIC is not set
526# CONFIG_LIBFC is not set 550# CONFIG_LIBFC is not set
551# CONFIG_LIBFCOE is not set
527# CONFIG_FCOE is not set 552# CONFIG_FCOE is not set
528# CONFIG_SCSI_DMX3191D is not set 553# CONFIG_SCSI_DMX3191D is not set
529# CONFIG_SCSI_EATA is not set 554# CONFIG_SCSI_EATA is not set
@@ -546,6 +571,7 @@ CONFIG_SCSI_LOWLEVEL=y
546# CONFIG_SCSI_DEBUG is not set 571# CONFIG_SCSI_DEBUG is not set
547# CONFIG_SCSI_SRP is not set 572# CONFIG_SCSI_SRP is not set
548# CONFIG_SCSI_DH is not set 573# CONFIG_SCSI_DH is not set
574# CONFIG_SCSI_OSD_INITIATOR is not set
549CONFIG_ATA=y 575CONFIG_ATA=y
550# CONFIG_ATA_NONSTANDARD is not set 576# CONFIG_ATA_NONSTANDARD is not set
551CONFIG_SATA_PMP=y 577CONFIG_SATA_PMP=y
@@ -622,6 +648,7 @@ CONFIG_PATA_ALI=y
622# CONFIG_I2O is not set 648# CONFIG_I2O is not set
623# CONFIG_MACINTOSH_DRIVERS is not set 649# CONFIG_MACINTOSH_DRIVERS is not set
624CONFIG_NETDEVICES=y 650CONFIG_NETDEVICES=y
651CONFIG_COMPAT_NET_DEV_OPS=y
625CONFIG_DUMMY=y 652CONFIG_DUMMY=y
626# CONFIG_BONDING is not set 653# CONFIG_BONDING is not set
627# CONFIG_MACVLAN is not set 654# CONFIG_MACVLAN is not set
@@ -634,11 +661,11 @@ CONFIG_PHYLIB=y
634# 661#
635# MII PHY device drivers 662# MII PHY device drivers
636# 663#
637# CONFIG_MARVELL_PHY is not set 664CONFIG_MARVELL_PHY=y
638# CONFIG_DAVICOM_PHY is not set 665CONFIG_DAVICOM_PHY=y
639# CONFIG_QSEMI_PHY is not set 666# CONFIG_QSEMI_PHY is not set
640# CONFIG_LXT_PHY is not set 667# CONFIG_LXT_PHY is not set
641# CONFIG_CICADA_PHY is not set 668CONFIG_CICADA_PHY=y
642CONFIG_VITESSE_PHY=y 669CONFIG_VITESSE_PHY=y
643# CONFIG_SMSC_PHY is not set 670# CONFIG_SMSC_PHY is not set
644# CONFIG_BROADCOM_PHY is not set 671# CONFIG_BROADCOM_PHY is not set
@@ -647,7 +674,7 @@ CONFIG_VITESSE_PHY=y
647# CONFIG_NATIONAL_PHY is not set 674# CONFIG_NATIONAL_PHY is not set
648# CONFIG_STE10XP is not set 675# CONFIG_STE10XP is not set
649# CONFIG_LSI_ET1011C_PHY is not set 676# CONFIG_LSI_ET1011C_PHY is not set
650# CONFIG_FIXED_PHY is not set 677CONFIG_FIXED_PHY=y
651# CONFIG_MDIO_BITBANG is not set 678# CONFIG_MDIO_BITBANG is not set
652CONFIG_NET_ETHERNET=y 679CONFIG_NET_ETHERNET=y
653CONFIG_MII=y 680CONFIG_MII=y
@@ -655,6 +682,8 @@ CONFIG_MII=y
655# CONFIG_SUNGEM is not set 682# CONFIG_SUNGEM is not set
656# CONFIG_CASSINI is not set 683# CONFIG_CASSINI is not set
657# CONFIG_NET_VENDOR_3COM is not set 684# CONFIG_NET_VENDOR_3COM is not set
685# CONFIG_ETHOC is not set
686# CONFIG_DNET is not set
658# CONFIG_NET_TULIP is not set 687# CONFIG_NET_TULIP is not set
659# CONFIG_HP100 is not set 688# CONFIG_HP100 is not set
660# CONFIG_IBM_NEW_EMAC_ZMII is not set 689# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -667,7 +696,10 @@ CONFIG_MII=y
667# CONFIG_NET_PCI is not set 696# CONFIG_NET_PCI is not set
668# CONFIG_B44 is not set 697# CONFIG_B44 is not set
669# CONFIG_ATL2 is not set 698# CONFIG_ATL2 is not set
670# CONFIG_FS_ENET is not set 699CONFIG_FS_ENET=y
700CONFIG_FS_ENET_HAS_SCC=y
701CONFIG_FS_ENET_HAS_FCC=y
702# CONFIG_FS_ENET_MDIO_FCC is not set
671CONFIG_NETDEV_1000=y 703CONFIG_NETDEV_1000=y
672# CONFIG_ACENIC is not set 704# CONFIG_ACENIC is not set
673# CONFIG_DL2K is not set 705# CONFIG_DL2K is not set
@@ -675,6 +707,7 @@ CONFIG_NETDEV_1000=y
675# CONFIG_E1000E is not set 707# CONFIG_E1000E is not set
676# CONFIG_IP1000 is not set 708# CONFIG_IP1000 is not set
677# CONFIG_IGB is not set 709# CONFIG_IGB is not set
710# CONFIG_IGBVF is not set
678# CONFIG_NS83820 is not set 711# CONFIG_NS83820 is not set
679# CONFIG_HAMACHI is not set 712# CONFIG_HAMACHI is not set
680# CONFIG_YELLOWFIN is not set 713# CONFIG_YELLOWFIN is not set
@@ -685,11 +718,15 @@ CONFIG_NETDEV_1000=y
685# CONFIG_VIA_VELOCITY is not set 718# CONFIG_VIA_VELOCITY is not set
686# CONFIG_TIGON3 is not set 719# CONFIG_TIGON3 is not set
687# CONFIG_BNX2 is not set 720# CONFIG_BNX2 is not set
721CONFIG_FSL_PQ_MDIO=y
688CONFIG_GIANFAR=y 722CONFIG_GIANFAR=y
689# CONFIG_UCC_GETH is not set 723CONFIG_UCC_GETH=y
724# CONFIG_UGETH_MAGIC_PACKET is not set
725# CONFIG_UGETH_TX_ON_DEMAND is not set
690# CONFIG_QLA3XXX is not set 726# CONFIG_QLA3XXX is not set
691# CONFIG_ATL1 is not set 727# CONFIG_ATL1 is not set
692# CONFIG_ATL1E is not set 728# CONFIG_ATL1E is not set
729# CONFIG_ATL1C is not set
693# CONFIG_JME is not set 730# CONFIG_JME is not set
694CONFIG_NETDEV_10000=y 731CONFIG_NETDEV_10000=y
695# CONFIG_CHELSIO_T1 is not set 732# CONFIG_CHELSIO_T1 is not set
@@ -699,6 +736,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
699# CONFIG_IXGBE is not set 736# CONFIG_IXGBE is not set
700# CONFIG_IXGB is not set 737# CONFIG_IXGB is not set
701# CONFIG_S2IO is not set 738# CONFIG_S2IO is not set
739# CONFIG_VXGE is not set
702# CONFIG_MYRI10GE is not set 740# CONFIG_MYRI10GE is not set
703# CONFIG_NETXEN_NIC is not set 741# CONFIG_NETXEN_NIC is not set
704# CONFIG_NIU is not set 742# CONFIG_NIU is not set
@@ -708,6 +746,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
708# CONFIG_BNX2X is not set 746# CONFIG_BNX2X is not set
709# CONFIG_QLGE is not set 747# CONFIG_QLGE is not set
710# CONFIG_SFC is not set 748# CONFIG_SFC is not set
749# CONFIG_BE2NET is not set
711# CONFIG_TR is not set 750# CONFIG_TR is not set
712 751
713# 752#
@@ -715,7 +754,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
715# 754#
716# CONFIG_WLAN_PRE80211 is not set 755# CONFIG_WLAN_PRE80211 is not set
717# CONFIG_WLAN_80211 is not set 756# CONFIG_WLAN_80211 is not set
718# CONFIG_IWLWIFI_LEDS is not set
719 757
720# 758#
721# Enable WiMAX (Networking options) to see the WiMAX drivers 759# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -813,14 +851,15 @@ CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_CPM is not set 851# CONFIG_SERIAL_CPM is not set
814# CONFIG_SERIAL_JSM is not set 852# CONFIG_SERIAL_JSM is not set
815# CONFIG_SERIAL_OF_PLATFORM is not set 853# CONFIG_SERIAL_OF_PLATFORM is not set
816# CONFIG_SERIAL_QE is not set 854CONFIG_SERIAL_QE=m
817CONFIG_UNIX98_PTYS=y 855CONFIG_UNIX98_PTYS=y
818# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
819CONFIG_LEGACY_PTYS=y 857CONFIG_LEGACY_PTYS=y
820CONFIG_LEGACY_PTY_COUNT=256 858CONFIG_LEGACY_PTY_COUNT=256
821# CONFIG_HVC_UDBG is not set 859# CONFIG_HVC_UDBG is not set
822# CONFIG_IPMI_HANDLER is not set 860# CONFIG_IPMI_HANDLER is not set
823# CONFIG_HW_RANDOM is not set 861CONFIG_HW_RANDOM=y
862# CONFIG_HW_RANDOM_TIMERIOMEM is not set
824CONFIG_NVRAM=y 863CONFIG_NVRAM=y
825# CONFIG_R3964 is not set 864# CONFIG_R3964 is not set
826# CONFIG_APPLICOM is not set 865# CONFIG_APPLICOM is not set
@@ -857,7 +896,7 @@ CONFIG_I2C_HELPER_AUTO=y
857# 896#
858# I2C system bus drivers (mostly embedded / system-on-chip) 897# I2C system bus drivers (mostly embedded / system-on-chip)
859# 898#
860# CONFIG_I2C_CPM is not set 899CONFIG_I2C_CPM=m
861# CONFIG_I2C_GPIO is not set 900# CONFIG_I2C_GPIO is not set
862CONFIG_I2C_MPC=y 901CONFIG_I2C_MPC=y
863# CONFIG_I2C_OCORES is not set 902# CONFIG_I2C_OCORES is not set
@@ -885,12 +924,9 @@ CONFIG_I2C_MPC=y
885# Miscellaneous I2C Chip support 924# Miscellaneous I2C Chip support
886# 925#
887# CONFIG_DS1682 is not set 926# CONFIG_DS1682 is not set
888# CONFIG_EEPROM_AT24 is not set
889CONFIG_EEPROM_LEGACY=y
890# CONFIG_SENSORS_PCF8574 is not set 927# CONFIG_SENSORS_PCF8574 is not set
891# CONFIG_PCF8575 is not set 928# CONFIG_PCF8575 is not set
892# CONFIG_SENSORS_PCA9539 is not set 929# CONFIG_SENSORS_PCA9539 is not set
893# CONFIG_SENSORS_PCF8591 is not set
894# CONFIG_SENSORS_MAX6875 is not set 930# CONFIG_SENSORS_MAX6875 is not set
895# CONFIG_SENSORS_TSL2550 is not set 931# CONFIG_SENSORS_TSL2550 is not set
896# CONFIG_I2C_DEBUG_CORE is not set 932# CONFIG_I2C_DEBUG_CORE is not set
@@ -969,7 +1005,7 @@ CONFIG_VIDEO_MEDIA=m
969# 1005#
970# CONFIG_MEDIA_ATTACH is not set 1006# CONFIG_MEDIA_ATTACH is not set
971CONFIG_MEDIA_TUNER=m 1007CONFIG_MEDIA_TUNER=m
972# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 1008# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
973CONFIG_MEDIA_TUNER_SIMPLE=m 1009CONFIG_MEDIA_TUNER_SIMPLE=m
974CONFIG_MEDIA_TUNER_TDA8290=m 1010CONFIG_MEDIA_TUNER_TDA8290=m
975CONFIG_MEDIA_TUNER_TDA9887=m 1011CONFIG_MEDIA_TUNER_TDA9887=m
@@ -978,6 +1014,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
978CONFIG_MEDIA_TUNER_MT20XX=m 1014CONFIG_MEDIA_TUNER_MT20XX=m
979CONFIG_MEDIA_TUNER_XC2028=m 1015CONFIG_MEDIA_TUNER_XC2028=m
980CONFIG_MEDIA_TUNER_XC5000=m 1016CONFIG_MEDIA_TUNER_XC5000=m
1017CONFIG_MEDIA_TUNER_MC44S803=m
981# CONFIG_DVB_DYNAMIC_MINORS is not set 1018# CONFIG_DVB_DYNAMIC_MINORS is not set
982CONFIG_DVB_CAPTURE_DRIVERS=y 1019CONFIG_DVB_CAPTURE_DRIVERS=y
983 1020
@@ -1017,103 +1054,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1017# 1054#
1018# Supported DVB Frontends 1055# Supported DVB Frontends
1019# 1056#
1020
1021#
1022# Customise DVB Frontends
1023#
1024# CONFIG_DVB_FE_CUSTOMISE is not set 1057# CONFIG_DVB_FE_CUSTOMISE is not set
1025
1026#
1027# Multistandard (satellite) frontends
1028#
1029# CONFIG_DVB_STB0899 is not set
1030# CONFIG_DVB_STB6100 is not set
1031
1032#
1033# DVB-S (satellite) frontends
1034#
1035# CONFIG_DVB_CX24110 is not set
1036# CONFIG_DVB_CX24123 is not set
1037# CONFIG_DVB_MT312 is not set
1038# CONFIG_DVB_S5H1420 is not set
1039# CONFIG_DVB_STV0288 is not set
1040# CONFIG_DVB_STB6000 is not set
1041# CONFIG_DVB_STV0299 is not set
1042# CONFIG_DVB_TDA8083 is not set
1043# CONFIG_DVB_TDA10086 is not set
1044# CONFIG_DVB_TDA8261 is not set
1045# CONFIG_DVB_VES1X93 is not set
1046# CONFIG_DVB_TUNER_ITD1000 is not set
1047# CONFIG_DVB_TUNER_CX24113 is not set
1048# CONFIG_DVB_TDA826X is not set
1049# CONFIG_DVB_TUA6100 is not set
1050# CONFIG_DVB_CX24116 is not set
1051# CONFIG_DVB_SI21XX is not set
1052
1053#
1054# DVB-T (terrestrial) frontends
1055#
1056# CONFIG_DVB_SP8870 is not set
1057# CONFIG_DVB_SP887X is not set
1058# CONFIG_DVB_CX22700 is not set
1059# CONFIG_DVB_CX22702 is not set
1060# CONFIG_DVB_DRX397XD is not set
1061# CONFIG_DVB_L64781 is not set
1062# CONFIG_DVB_TDA1004X is not set
1063# CONFIG_DVB_NXT6000 is not set
1064# CONFIG_DVB_MT352 is not set
1065# CONFIG_DVB_ZL10353 is not set
1066# CONFIG_DVB_DIB3000MB is not set
1067# CONFIG_DVB_DIB3000MC is not set
1068# CONFIG_DVB_DIB7000M is not set
1069# CONFIG_DVB_DIB7000P is not set
1070# CONFIG_DVB_TDA10048 is not set
1071
1072#
1073# DVB-C (cable) frontends
1074#
1075# CONFIG_DVB_VES1820 is not set
1076# CONFIG_DVB_TDA10021 is not set
1077# CONFIG_DVB_TDA10023 is not set
1078# CONFIG_DVB_STV0297 is not set
1079
1080#
1081# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1082#
1083# CONFIG_DVB_NXT200X is not set
1084# CONFIG_DVB_OR51211 is not set
1085# CONFIG_DVB_OR51132 is not set
1086# CONFIG_DVB_BCM3510 is not set
1087# CONFIG_DVB_LGDT330X is not set
1088# CONFIG_DVB_LGDT3304 is not set
1089# CONFIG_DVB_S5H1409 is not set
1090# CONFIG_DVB_AU8522 is not set
1091# CONFIG_DVB_S5H1411 is not set
1092
1093#
1094# ISDB-T (terrestrial) frontends
1095#
1096# CONFIG_DVB_S921 is not set
1097
1098#
1099# Digital terrestrial only tuners/PLL
1100#
1101# CONFIG_DVB_PLL is not set
1102# CONFIG_DVB_TUNER_DIB0070 is not set
1103
1104#
1105# SEC control devices for DVB-S
1106#
1107# CONFIG_DVB_LNBP21 is not set
1108# CONFIG_DVB_ISL6405 is not set
1109# CONFIG_DVB_ISL6421 is not set
1110# CONFIG_DVB_LGS8GL5 is not set
1111
1112#
1113# Tools to develop new frontends
1114#
1115# CONFIG_DVB_DUMMY_FE is not set
1116# CONFIG_DVB_AF9013 is not set
1117CONFIG_DAB=y 1058CONFIG_DAB=y
1118# CONFIG_USB_DABUSB is not set 1059# CONFIG_USB_DABUSB is not set
1119 1060
@@ -1193,6 +1134,8 @@ CONFIG_SND_PCI=y
1193# CONFIG_SND_INDIGO is not set 1134# CONFIG_SND_INDIGO is not set
1194# CONFIG_SND_INDIGOIO is not set 1135# CONFIG_SND_INDIGOIO is not set
1195# CONFIG_SND_INDIGODJ is not set 1136# CONFIG_SND_INDIGODJ is not set
1137# CONFIG_SND_INDIGOIOX is not set
1138# CONFIG_SND_INDIGODJX is not set
1196# CONFIG_SND_EMU10K1 is not set 1139# CONFIG_SND_EMU10K1 is not set
1197# CONFIG_SND_EMU10K1X is not set 1140# CONFIG_SND_EMU10K1X is not set
1198# CONFIG_SND_ENS1370 is not set 1141# CONFIG_SND_ENS1370 is not set
@@ -1247,15 +1190,17 @@ CONFIG_USB_HID=y
1247# 1190#
1248# Special HID drivers 1191# Special HID drivers
1249# 1192#
1250CONFIG_HID_COMPAT=y
1251CONFIG_HID_A4TECH=y 1193CONFIG_HID_A4TECH=y
1252CONFIG_HID_APPLE=y 1194CONFIG_HID_APPLE=y
1253CONFIG_HID_BELKIN=y 1195CONFIG_HID_BELKIN=y
1254CONFIG_HID_CHERRY=y 1196CONFIG_HID_CHERRY=y
1255CONFIG_HID_CHICONY=y 1197CONFIG_HID_CHICONY=y
1256CONFIG_HID_CYPRESS=y 1198CONFIG_HID_CYPRESS=y
1199# CONFIG_DRAGONRISE_FF is not set
1257CONFIG_HID_EZKEY=y 1200CONFIG_HID_EZKEY=y
1201# CONFIG_HID_KYE is not set
1258CONFIG_HID_GYRATION=y 1202CONFIG_HID_GYRATION=y
1203# CONFIG_HID_KENSINGTON is not set
1259CONFIG_HID_LOGITECH=y 1204CONFIG_HID_LOGITECH=y
1260# CONFIG_LOGITECH_FF is not set 1205# CONFIG_LOGITECH_FF is not set
1261# CONFIG_LOGIRUMBLEPAD2_FF is not set 1206# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1314,6 +1259,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1314CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 1259CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1315CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1260CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1316# CONFIG_USB_UHCI_HCD is not set 1261# CONFIG_USB_UHCI_HCD is not set
1262# CONFIG_USB_FHCI_HCD is not set
1317# CONFIG_USB_SL811_HCD is not set 1263# CONFIG_USB_SL811_HCD is not set
1318# CONFIG_USB_R8A66597_HCD is not set 1264# CONFIG_USB_R8A66597_HCD is not set
1319# CONFIG_USB_WHCI_HCD is not set 1265# CONFIG_USB_WHCI_HCD is not set
@@ -1329,11 +1275,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1329# CONFIG_USB_TMC is not set 1275# CONFIG_USB_TMC is not set
1330 1276
1331# 1277#
1332# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1278# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1333# 1279#
1334 1280
1335# 1281#
1336# see USB_STORAGE Help for more information 1282# also be needed; see USB_STORAGE Help for more info
1337# 1283#
1338CONFIG_USB_STORAGE=y 1284CONFIG_USB_STORAGE=y
1339# CONFIG_USB_STORAGE_DEBUG is not set 1285# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1375,7 +1321,6 @@ CONFIG_USB_STORAGE=y
1375# CONFIG_USB_LED is not set 1321# CONFIG_USB_LED is not set
1376# CONFIG_USB_CYPRESS_CY7C63 is not set 1322# CONFIG_USB_CYPRESS_CY7C63 is not set
1377# CONFIG_USB_CYTHERM is not set 1323# CONFIG_USB_CYTHERM is not set
1378# CONFIG_USB_PHIDGET is not set
1379# CONFIG_USB_IDMOUSE is not set 1324# CONFIG_USB_IDMOUSE is not set
1380# CONFIG_USB_FTDI_ELAN is not set 1325# CONFIG_USB_FTDI_ELAN is not set
1381# CONFIG_USB_APPLEDISPLAY is not set 1326# CONFIG_USB_APPLEDISPLAY is not set
@@ -1392,6 +1337,7 @@ CONFIG_USB_STORAGE=y
1392# OTG and related infrastructure 1337# OTG and related infrastructure
1393# 1338#
1394# CONFIG_USB_GPIO_VBUS is not set 1339# CONFIG_USB_GPIO_VBUS is not set
1340# CONFIG_NOP_USB_XCEIV is not set
1395# CONFIG_UWB is not set 1341# CONFIG_UWB is not set
1396# CONFIG_MMC is not set 1342# CONFIG_MMC is not set
1397# CONFIG_MEMSTICK is not set 1343# CONFIG_MEMSTICK is not set
@@ -1406,6 +1352,8 @@ CONFIG_EDAC=y
1406# CONFIG_EDAC_DEBUG is not set 1352# CONFIG_EDAC_DEBUG is not set
1407CONFIG_EDAC_MM_EDAC=y 1353CONFIG_EDAC_MM_EDAC=y
1408CONFIG_EDAC_MPC85XX=y 1354CONFIG_EDAC_MPC85XX=y
1355# CONFIG_EDAC_AMD8131 is not set
1356# CONFIG_EDAC_AMD8111 is not set
1409CONFIG_RTC_LIB=y 1357CONFIG_RTC_LIB=y
1410CONFIG_RTC_CLASS=y 1358CONFIG_RTC_CLASS=y
1411CONFIG_RTC_HCTOSYS=y 1359CONFIG_RTC_HCTOSYS=y
@@ -1460,7 +1408,7 @@ CONFIG_RTC_DRV_CMOS=y
1460# 1408#
1461# on-CPU RTC drivers 1409# on-CPU RTC drivers
1462# 1410#
1463# CONFIG_RTC_DRV_PPC is not set 1411# CONFIG_RTC_DRV_GENERIC is not set
1464CONFIG_DMADEVICES=y 1412CONFIG_DMADEVICES=y
1465 1413
1466# 1414#
@@ -1473,7 +1421,9 @@ CONFIG_DMA_ENGINE=y
1473# DMA Clients 1421# DMA Clients
1474# 1422#
1475# CONFIG_NET_DMA is not set 1423# CONFIG_NET_DMA is not set
1424# CONFIG_ASYNC_TX_DMA is not set
1476# CONFIG_DMATEST is not set 1425# CONFIG_DMATEST is not set
1426# CONFIG_AUXDISPLAY is not set
1477# CONFIG_UIO is not set 1427# CONFIG_UIO is not set
1478# CONFIG_STAGING is not set 1428# CONFIG_STAGING is not set
1479 1429
@@ -1484,6 +1434,7 @@ CONFIG_EXT2_FS=y
1484# CONFIG_EXT2_FS_XATTR is not set 1434# CONFIG_EXT2_FS_XATTR is not set
1485# CONFIG_EXT2_FS_XIP is not set 1435# CONFIG_EXT2_FS_XIP is not set
1486CONFIG_EXT3_FS=y 1436CONFIG_EXT3_FS=y
1437# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1487CONFIG_EXT3_FS_XATTR=y 1438CONFIG_EXT3_FS_XATTR=y
1488# CONFIG_EXT3_FS_POSIX_ACL is not set 1439# CONFIG_EXT3_FS_POSIX_ACL is not set
1489# CONFIG_EXT3_FS_SECURITY is not set 1440# CONFIG_EXT3_FS_SECURITY is not set
@@ -1508,6 +1459,11 @@ CONFIG_INOTIFY_USER=y
1508# CONFIG_FUSE_FS is not set 1459# CONFIG_FUSE_FS is not set
1509 1460
1510# 1461#
1462# Caches
1463#
1464# CONFIG_FSCACHE is not set
1465
1466#
1511# CD-ROM/DVD Filesystems 1467# CD-ROM/DVD Filesystems
1512# 1468#
1513CONFIG_ISO9660_FS=m 1469CONFIG_ISO9660_FS=m
@@ -1562,6 +1518,7 @@ CONFIG_SYSV_FS=m
1562CONFIG_UFS_FS=m 1518CONFIG_UFS_FS=m
1563# CONFIG_UFS_FS_WRITE is not set 1519# CONFIG_UFS_FS_WRITE is not set
1564# CONFIG_UFS_DEBUG is not set 1520# CONFIG_UFS_DEBUG is not set
1521# CONFIG_NILFS2_FS is not set
1565CONFIG_NETWORK_FILESYSTEMS=y 1522CONFIG_NETWORK_FILESYSTEMS=y
1566CONFIG_NFS_FS=y 1523CONFIG_NFS_FS=y
1567CONFIG_NFS_V3=y 1524CONFIG_NFS_V3=y
@@ -1577,7 +1534,6 @@ CONFIG_EXPORTFS=y
1577CONFIG_NFS_COMMON=y 1534CONFIG_NFS_COMMON=y
1578CONFIG_SUNRPC=y 1535CONFIG_SUNRPC=y
1579CONFIG_SUNRPC_GSS=y 1536CONFIG_SUNRPC_GSS=y
1580# CONFIG_SUNRPC_REGISTER_V4 is not set
1581CONFIG_RPCSEC_GSS_KRB5=y 1537CONFIG_RPCSEC_GSS_KRB5=y
1582# CONFIG_RPCSEC_GSS_SPKM3 is not set 1538# CONFIG_RPCSEC_GSS_SPKM3 is not set
1583# CONFIG_SMB_FS is not set 1539# CONFIG_SMB_FS is not set
@@ -1648,6 +1604,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1648# CONFIG_NLS_KOI8_U is not set 1604# CONFIG_NLS_KOI8_U is not set
1649CONFIG_NLS_UTF8=m 1605CONFIG_NLS_UTF8=m
1650# CONFIG_DLM is not set 1606# CONFIG_DLM is not set
1607CONFIG_UCC_SLOW=y
1608CONFIG_UCC_FAST=y
1609CONFIG_UCC=y
1610# CONFIG_BINARY_PRINTF is not set
1651 1611
1652# 1612#
1653# Library routines 1613# Library routines
@@ -1662,11 +1622,12 @@ CONFIG_CRC32=y
1662# CONFIG_CRC7 is not set 1622# CONFIG_CRC7 is not set
1663CONFIG_LIBCRC32C=m 1623CONFIG_LIBCRC32C=m
1664CONFIG_ZLIB_INFLATE=y 1624CONFIG_ZLIB_INFLATE=y
1665CONFIG_PLIST=y 1625CONFIG_DECOMPRESS_GZIP=y
1666CONFIG_HAS_IOMEM=y 1626CONFIG_HAS_IOMEM=y
1667CONFIG_HAS_IOPORT=y 1627CONFIG_HAS_IOPORT=y
1668CONFIG_HAS_DMA=y 1628CONFIG_HAS_DMA=y
1669CONFIG_HAVE_LMB=y 1629CONFIG_HAVE_LMB=y
1630CONFIG_NLATTR=y
1670 1631
1671# 1632#
1672# Kernel hacking 1633# Kernel hacking
@@ -1684,6 +1645,9 @@ CONFIG_DEBUG_KERNEL=y
1684CONFIG_DETECT_SOFTLOCKUP=y 1645CONFIG_DETECT_SOFTLOCKUP=y
1685# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1646# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1686CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1647CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1648CONFIG_DETECT_HUNG_TASK=y
1649# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1650CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1687CONFIG_SCHED_DEBUG=y 1651CONFIG_SCHED_DEBUG=y
1688# CONFIG_SCHEDSTATS is not set 1652# CONFIG_SCHEDSTATS is not set
1689# CONFIG_TIMER_STATS is not set 1653# CONFIG_TIMER_STATS is not set
@@ -1714,9 +1678,12 @@ CONFIG_DEBUG_INFO=y
1714# CONFIG_FAULT_INJECTION is not set 1678# CONFIG_FAULT_INJECTION is not set
1715# CONFIG_LATENCYTOP is not set 1679# CONFIG_LATENCYTOP is not set
1716CONFIG_SYSCTL_SYSCALL_CHECK=y 1680CONFIG_SYSCTL_SYSCALL_CHECK=y
1681# CONFIG_DEBUG_PAGEALLOC is not set
1717CONFIG_HAVE_FUNCTION_TRACER=y 1682CONFIG_HAVE_FUNCTION_TRACER=y
1683CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1718CONFIG_HAVE_DYNAMIC_FTRACE=y 1684CONFIG_HAVE_DYNAMIC_FTRACE=y
1719CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1685CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1686CONFIG_TRACING_SUPPORT=y
1720 1687
1721# 1688#
1722# Tracers 1689# Tracers
@@ -1724,17 +1691,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1724# CONFIG_FUNCTION_TRACER is not set 1691# CONFIG_FUNCTION_TRACER is not set
1725# CONFIG_SCHED_TRACER is not set 1692# CONFIG_SCHED_TRACER is not set
1726# CONFIG_CONTEXT_SWITCH_TRACER is not set 1693# CONFIG_CONTEXT_SWITCH_TRACER is not set
1694# CONFIG_EVENT_TRACER is not set
1727# CONFIG_BOOT_TRACER is not set 1695# CONFIG_BOOT_TRACER is not set
1728# CONFIG_TRACE_BRANCH_PROFILING is not set 1696# CONFIG_TRACE_BRANCH_PROFILING is not set
1729# CONFIG_STACK_TRACER is not set 1697# CONFIG_STACK_TRACER is not set
1730# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1698# CONFIG_KMEMTRACE is not set
1699# CONFIG_WORKQUEUE_TRACER is not set
1700# CONFIG_BLK_DEV_IO_TRACE is not set
1701# CONFIG_DYNAMIC_DEBUG is not set
1731# CONFIG_SAMPLES is not set 1702# CONFIG_SAMPLES is not set
1732CONFIG_HAVE_ARCH_KGDB=y 1703CONFIG_HAVE_ARCH_KGDB=y
1733# CONFIG_KGDB is not set 1704# CONFIG_KGDB is not set
1734CONFIG_PRINT_STACK_DEPTH=64 1705CONFIG_PRINT_STACK_DEPTH=64
1735# CONFIG_DEBUG_STACKOVERFLOW is not set 1706# CONFIG_DEBUG_STACKOVERFLOW is not set
1736# CONFIG_DEBUG_STACK_USAGE is not set 1707# CONFIG_DEBUG_STACK_USAGE is not set
1737# CONFIG_DEBUG_PAGEALLOC is not set
1738# CONFIG_CODE_PATCHING_SELFTEST is not set 1708# CONFIG_CODE_PATCHING_SELFTEST is not set
1739# CONFIG_FTR_FIXUP_SELFTEST is not set 1709# CONFIG_FTR_FIXUP_SELFTEST is not set
1740# CONFIG_MSI_BITMAP_SELFTEST is not set 1710# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1759,18 +1729,21 @@ CONFIG_CRYPTO=y
1759# CONFIG_CRYPTO_FIPS is not set 1729# CONFIG_CRYPTO_FIPS is not set
1760CONFIG_CRYPTO_ALGAPI=y 1730CONFIG_CRYPTO_ALGAPI=y
1761CONFIG_CRYPTO_ALGAPI2=y 1731CONFIG_CRYPTO_ALGAPI2=y
1732CONFIG_CRYPTO_AEAD=y
1762CONFIG_CRYPTO_AEAD2=y 1733CONFIG_CRYPTO_AEAD2=y
1763CONFIG_CRYPTO_BLKCIPHER=y 1734CONFIG_CRYPTO_BLKCIPHER=y
1764CONFIG_CRYPTO_BLKCIPHER2=y 1735CONFIG_CRYPTO_BLKCIPHER2=y
1765CONFIG_CRYPTO_HASH=y 1736CONFIG_CRYPTO_HASH=y
1766CONFIG_CRYPTO_HASH2=y 1737CONFIG_CRYPTO_HASH2=y
1767CONFIG_CRYPTO_RNG2=y 1738CONFIG_CRYPTO_RNG2=y
1739CONFIG_CRYPTO_PCOMP=y
1768CONFIG_CRYPTO_MANAGER=y 1740CONFIG_CRYPTO_MANAGER=y
1769CONFIG_CRYPTO_MANAGER2=y 1741CONFIG_CRYPTO_MANAGER2=y
1770# CONFIG_CRYPTO_GF128MUL is not set 1742# CONFIG_CRYPTO_GF128MUL is not set
1771# CONFIG_CRYPTO_NULL is not set 1743# CONFIG_CRYPTO_NULL is not set
1744CONFIG_CRYPTO_WORKQUEUE=y
1772# CONFIG_CRYPTO_CRYPTD is not set 1745# CONFIG_CRYPTO_CRYPTD is not set
1773# CONFIG_CRYPTO_AUTHENC is not set 1746CONFIG_CRYPTO_AUTHENC=y
1774# CONFIG_CRYPTO_TEST is not set 1747# CONFIG_CRYPTO_TEST is not set
1775 1748
1776# 1749#
@@ -1837,6 +1810,7 @@ CONFIG_CRYPTO_DES=y
1837# Compression 1810# Compression
1838# 1811#
1839# CONFIG_CRYPTO_DEFLATE is not set 1812# CONFIG_CRYPTO_DEFLATE is not set
1813# CONFIG_CRYPTO_ZLIB is not set
1840# CONFIG_CRYPTO_LZO is not set 1814# CONFIG_CRYPTO_LZO is not set
1841 1815
1842# 1816#
@@ -1845,7 +1819,7 @@ CONFIG_CRYPTO_DES=y
1845# CONFIG_CRYPTO_ANSI_CPRNG is not set 1819# CONFIG_CRYPTO_ANSI_CPRNG is not set
1846CONFIG_CRYPTO_HW=y 1820CONFIG_CRYPTO_HW=y
1847# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1821# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1848# CONFIG_CRYPTO_DEV_TALITOS is not set 1822CONFIG_CRYPTO_DEV_TALITOS=y
1849CONFIG_PPC_CLOCK=y 1823CONFIG_PPC_CLOCK=y
1850CONFIG_PPC_LIB_RHEAP=y 1824CONFIG_PPC_LIB_RHEAP=y
1851# CONFIG_VIRTUALIZATION is not set 1825# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index 813223ae174d..1aa1c508d600 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/mpc85xx_smp_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.29-rc2 3# Linux kernel version: 2.6.30-rc2
4# Mon Jan 26 15:36:12 2009 4# Tue Apr 21 15:41:18 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -22,9 +22,10 @@ CONFIG_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 24CONFIG_PPC_MMU_NOHASH=y
25CONFIG_PPC_BOOK3E_MMU=y
25# CONFIG_PPC_MM_SLICES is not set 26# CONFIG_PPC_MM_SLICES is not set
26CONFIG_SMP=y 27CONFIG_SMP=y
27CONFIG_NR_CPUS=2 28CONFIG_NR_CPUS=8
28CONFIG_PPC32=y 29CONFIG_PPC32=y
29CONFIG_WORD_SIZE=32 30CONFIG_WORD_SIZE=32
30# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set 31# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
@@ -44,6 +45,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y
44CONFIG_GENERIC_HWEIGHT=y 45CONFIG_GENERIC_HWEIGHT=y
45CONFIG_GENERIC_CALIBRATE_DELAY=y 46CONFIG_GENERIC_CALIBRATE_DELAY=y
46CONFIG_GENERIC_FIND_NEXT_BIT=y 47CONFIG_GENERIC_FIND_NEXT_BIT=y
48CONFIG_GENERIC_GPIO=y
47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 49# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
48CONFIG_PPC=y 50CONFIG_PPC=y
49CONFIG_EARLY_PRINTK=y 51CONFIG_EARLY_PRINTK=y
@@ -59,6 +61,7 @@ CONFIG_GENERIC_BUG=y
59CONFIG_DEFAULT_UIMAGE=y 61CONFIG_DEFAULT_UIMAGE=y
60# CONFIG_PPC_DCR_NATIVE is not set 62# CONFIG_PPC_DCR_NATIVE is not set
61# CONFIG_PPC_DCR_MMIO is not set 63# CONFIG_PPC_DCR_MMIO is not set
64CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 65CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
63 66
64# 67#
@@ -73,11 +76,21 @@ CONFIG_SWAP=y
73CONFIG_SYSVIPC=y 76CONFIG_SYSVIPC=y
74CONFIG_SYSVIPC_SYSCTL=y 77CONFIG_SYSVIPC_SYSCTL=y
75CONFIG_POSIX_MQUEUE=y 78CONFIG_POSIX_MQUEUE=y
79CONFIG_POSIX_MQUEUE_SYSCTL=y
76CONFIG_BSD_PROCESS_ACCT=y 80CONFIG_BSD_PROCESS_ACCT=y
77# CONFIG_BSD_PROCESS_ACCT_V3 is not set 81# CONFIG_BSD_PROCESS_ACCT_V3 is not set
78# CONFIG_TASKSTATS is not set 82# CONFIG_TASKSTATS is not set
79CONFIG_AUDIT=y 83CONFIG_AUDIT=y
80# CONFIG_AUDITSYSCALL is not set 84# CONFIG_AUDITSYSCALL is not set
85
86#
87# RCU Subsystem
88#
89CONFIG_CLASSIC_RCU=y
90# CONFIG_TREE_RCU is not set
91# CONFIG_PREEMPT_RCU is not set
92# CONFIG_TREE_RCU_TRACE is not set
93# CONFIG_PREEMPT_RCU_TRACE is not set
81CONFIG_IKCONFIG=y 94CONFIG_IKCONFIG=y
82CONFIG_IKCONFIG_PROC=y 95CONFIG_IKCONFIG_PROC=y
83CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
@@ -93,22 +106,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
93# CONFIG_NAMESPACES is not set 106# CONFIG_NAMESPACES is not set
94CONFIG_BLK_DEV_INITRD=y 107CONFIG_BLK_DEV_INITRD=y
95CONFIG_INITRAMFS_SOURCE="" 108CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set
96# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
97CONFIG_SYSCTL=y 113CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y
98CONFIG_EMBEDDED=y 115CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 116CONFIG_SYSCTL_SYSCALL=y
100CONFIG_KALLSYMS=y 117CONFIG_KALLSYMS=y
101CONFIG_KALLSYMS_ALL=y 118CONFIG_KALLSYMS_ALL=y
102CONFIG_KALLSYMS_STRIP_GENERATED=y
103CONFIG_KALLSYMS_EXTRA_PASS=y 119CONFIG_KALLSYMS_EXTRA_PASS=y
120# CONFIG_STRIP_ASM_SYMS is not set
104CONFIG_HOTPLUG=y 121CONFIG_HOTPLUG=y
105CONFIG_PRINTK=y 122CONFIG_PRINTK=y
106CONFIG_BUG=y 123CONFIG_BUG=y
107CONFIG_ELF_CORE=y 124CONFIG_ELF_CORE=y
108CONFIG_COMPAT_BRK=y
109CONFIG_BASE_FULL=y 125CONFIG_BASE_FULL=y
110CONFIG_FUTEX=y 126CONFIG_FUTEX=y
111CONFIG_ANON_INODES=y
112CONFIG_EPOLL=y 127CONFIG_EPOLL=y
113CONFIG_SIGNALFD=y 128CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y 129CONFIG_TIMERFD=y
@@ -118,10 +133,12 @@ CONFIG_AIO=y
118CONFIG_VM_EVENT_COUNTERS=y 133CONFIG_VM_EVENT_COUNTERS=y
119CONFIG_PCI_QUIRKS=y 134CONFIG_PCI_QUIRKS=y
120CONFIG_SLUB_DEBUG=y 135CONFIG_SLUB_DEBUG=y
136CONFIG_COMPAT_BRK=y
121# CONFIG_SLAB is not set 137# CONFIG_SLAB is not set
122CONFIG_SLUB=y 138CONFIG_SLUB=y
123# CONFIG_SLOB is not set 139# CONFIG_SLOB is not set
124# CONFIG_PROFILING is not set 140# CONFIG_PROFILING is not set
141# CONFIG_MARKERS is not set
125CONFIG_HAVE_OPROFILE=y 142CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set 143# CONFIG_KPROBES is not set
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 144CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -130,6 +147,8 @@ CONFIG_HAVE_KPROBES=y
130CONFIG_HAVE_KRETPROBES=y 147CONFIG_HAVE_KRETPROBES=y
131CONFIG_HAVE_ARCH_TRACEHOOK=y 148CONFIG_HAVE_ARCH_TRACEHOOK=y
132CONFIG_USE_GENERIC_SMP_HELPERS=y 149CONFIG_USE_GENERIC_SMP_HELPERS=y
150CONFIG_HAVE_CLK=y
151# CONFIG_SLOW_WORK is not set
133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 152# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
134CONFIG_SLABINFO=y 153CONFIG_SLABINFO=y
135CONFIG_RT_MUTEXES=y 154CONFIG_RT_MUTEXES=y
@@ -143,7 +162,6 @@ CONFIG_MODVERSIONS=y
143CONFIG_STOP_MACHINE=y 162CONFIG_STOP_MACHINE=y
144CONFIG_BLOCK=y 163CONFIG_BLOCK=y
145CONFIG_LBD=y 164CONFIG_LBD=y
146# CONFIG_BLK_DEV_IO_TRACE is not set
147# CONFIG_BLK_DEV_BSG is not set 165# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set 166# CONFIG_BLK_DEV_INTEGRITY is not set
149 167
@@ -159,11 +177,6 @@ CONFIG_IOSCHED_CFQ=y
159CONFIG_DEFAULT_CFQ=y 177CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 178# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="cfq" 179CONFIG_DEFAULT_IOSCHED="cfq"
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
167# CONFIG_FREEZER is not set 180# CONFIG_FREEZER is not set
168 181
169# 182#
@@ -173,21 +186,23 @@ CONFIG_CLASSIC_RCU=y
173# CONFIG_PPC_CELL_NATIVE is not set 186# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PQ2ADS is not set 187# CONFIG_PQ2ADS is not set
175CONFIG_MPC85xx=y 188CONFIG_MPC85xx=y
176# CONFIG_MPC8540_ADS is not set 189CONFIG_MPC8540_ADS=y
177# CONFIG_MPC8560_ADS is not set 190CONFIG_MPC8560_ADS=y
178# CONFIG_MPC85xx_CDS is not set 191CONFIG_MPC85xx_CDS=y
179# CONFIG_MPC85xx_MDS is not set 192CONFIG_MPC85xx_MDS=y
180# CONFIG_MPC8536_DS is not set 193CONFIG_MPC8536_DS=y
181CONFIG_MPC85xx_DS=y 194CONFIG_MPC85xx_DS=y
182# CONFIG_KSI8560 is not set 195CONFIG_SOCRATES=y
183# CONFIG_STX_GP3 is not set 196CONFIG_KSI8560=y
184# CONFIG_TQM8540 is not set 197CONFIG_STX_GP3=y
185# CONFIG_TQM8541 is not set 198CONFIG_TQM8540=y
186# CONFIG_TQM8548 is not set 199CONFIG_TQM8541=y
187# CONFIG_TQM8555 is not set 200CONFIG_TQM8548=y
188# CONFIG_TQM8560 is not set 201CONFIG_TQM8555=y
189# CONFIG_SBC8548 is not set 202CONFIG_TQM8560=y
203CONFIG_SBC8548=y
190# CONFIG_SBC8560 is not set 204# CONFIG_SBC8560 is not set
205CONFIG_TQM85xx=y
191# CONFIG_IPIC is not set 206# CONFIG_IPIC is not set
192CONFIG_MPIC=y 207CONFIG_MPIC=y
193# CONFIG_MPIC_WEIRD is not set 208# CONFIG_MPIC_WEIRD is not set
@@ -199,10 +214,12 @@ CONFIG_PPC_I8259=y
199# CONFIG_PPC_INDIRECT_IO is not set 214# CONFIG_PPC_INDIRECT_IO is not set
200# CONFIG_GENERIC_IOMAP is not set 215# CONFIG_GENERIC_IOMAP is not set
201# CONFIG_CPU_FREQ is not set 216# CONFIG_CPU_FREQ is not set
202# CONFIG_QUICC_ENGINE is not set 217CONFIG_QUICC_ENGINE=y
203# CONFIG_CPM2 is not set 218CONFIG_QE_GPIO=y
219CONFIG_CPM2=y
204CONFIG_FSL_ULI1575=y 220CONFIG_FSL_ULI1575=y
205# CONFIG_MPC8xxx_GPIO is not set 221CONFIG_CPM=y
222CONFIG_MPC8xxx_GPIO=y
206# CONFIG_SIMPLE_GPIO is not set 223# CONFIG_SIMPLE_GPIO is not set
207 224
208# 225#
@@ -248,9 +265,12 @@ CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y 265CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y 266CONFIG_VIRT_TO_BUS=y
250CONFIG_UNEVICTABLE_LRU=y 267CONFIG_UNEVICTABLE_LRU=y
268CONFIG_HAVE_MLOCK=y
269CONFIG_HAVE_MLOCKED_PAGE_BIT=y
251CONFIG_PPC_4K_PAGES=y 270CONFIG_PPC_4K_PAGES=y
252# CONFIG_PPC_16K_PAGES is not set 271# CONFIG_PPC_16K_PAGES is not set
253# CONFIG_PPC_64K_PAGES is not set 272# CONFIG_PPC_64K_PAGES is not set
273# CONFIG_PPC_256K_PAGES is not set
254CONFIG_FORCE_MAX_ZONEORDER=11 274CONFIG_FORCE_MAX_ZONEORDER=11
255CONFIG_PROC_DEVICETREE=y 275CONFIG_PROC_DEVICETREE=y
256# CONFIG_CMDLINE_BOOL is not set 276# CONFIG_CMDLINE_BOOL is not set
@@ -277,6 +297,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
277# CONFIG_PCI_LEGACY is not set 297# CONFIG_PCI_LEGACY is not set
278# CONFIG_PCI_DEBUG is not set 298# CONFIG_PCI_DEBUG is not set
279# CONFIG_PCI_STUB is not set 299# CONFIG_PCI_STUB is not set
300# CONFIG_PCI_IOV is not set
280# CONFIG_PCCARD is not set 301# CONFIG_PCCARD is not set
281# CONFIG_HOTPLUG_PCI is not set 302# CONFIG_HOTPLUG_PCI is not set
282# CONFIG_HAS_RAPIDIO is not set 303# CONFIG_HAS_RAPIDIO is not set
@@ -290,17 +311,17 @@ CONFIG_ARCH_SUPPORTS_MSI=y
290# Default settings for advanced configuration options are used 311# Default settings for advanced configuration options are used
291# 312#
292CONFIG_LOWMEM_SIZE=0x30000000 313CONFIG_LOWMEM_SIZE=0x30000000
314CONFIG_LOWMEM_CAM_NUM=3
293CONFIG_PAGE_OFFSET=0xc0000000 315CONFIG_PAGE_OFFSET=0xc0000000
294CONFIG_KERNEL_START=0xc0000000 316CONFIG_KERNEL_START=0xc0000000
295CONFIG_PHYSICAL_START=0x00000000 317CONFIG_PHYSICAL_START=0x00000000
296CONFIG_PHYSICAL_ALIGN=0x10000000 318CONFIG_PHYSICAL_ALIGN=0x04000000
297CONFIG_TASK_SIZE=0xc0000000 319CONFIG_TASK_SIZE=0xc0000000
298CONFIG_NET=y 320CONFIG_NET=y
299 321
300# 322#
301# Networking options 323# Networking options
302# 324#
303CONFIG_COMPAT_NET_DEV_OPS=y
304CONFIG_PACKET=y 325CONFIG_PACKET=y
305# CONFIG_PACKET_MMAP is not set 326# CONFIG_PACKET_MMAP is not set
306CONFIG_UNIX=y 327CONFIG_UNIX=y
@@ -388,6 +409,7 @@ CONFIG_SCTP_HMAC_MD5=y
388# CONFIG_LAPB is not set 409# CONFIG_LAPB is not set
389# CONFIG_ECONET is not set 410# CONFIG_ECONET is not set
390# CONFIG_WAN_ROUTER is not set 411# CONFIG_WAN_ROUTER is not set
412# CONFIG_PHONET is not set
391# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
392# CONFIG_DCB is not set 414# CONFIG_DCB is not set
393 415
@@ -400,7 +422,6 @@ CONFIG_SCTP_HMAC_MD5=y
400# CONFIG_IRDA is not set 422# CONFIG_IRDA is not set
401# CONFIG_BT is not set 423# CONFIG_BT is not set
402# CONFIG_AF_RXRPC is not set 424# CONFIG_AF_RXRPC is not set
403# CONFIG_PHONET is not set
404CONFIG_FIB_RULES=y 425CONFIG_FIB_RULES=y
405CONFIG_WIRELESS=y 426CONFIG_WIRELESS=y
406# CONFIG_CFG80211 is not set 427# CONFIG_CFG80211 is not set
@@ -431,6 +452,7 @@ CONFIG_EXTRA_FIRMWARE=""
431# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
432# CONFIG_MTD is not set 453# CONFIG_MTD is not set
433CONFIG_OF_DEVICE=y 454CONFIG_OF_DEVICE=y
455CONFIG_OF_GPIO=y
434CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
435# CONFIG_PARPORT is not set 457# CONFIG_PARPORT is not set
436CONFIG_BLK_DEV=y 458CONFIG_BLK_DEV=y
@@ -454,13 +476,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
454# CONFIG_BLK_DEV_HD is not set 476# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 477CONFIG_MISC_DEVICES=y
456# CONFIG_PHANTOM is not set 478# CONFIG_PHANTOM is not set
457# CONFIG_EEPROM_93CX6 is not set
458# CONFIG_SGI_IOC4 is not set 479# CONFIG_SGI_IOC4 is not set
459# CONFIG_TIFM_CORE is not set 480# CONFIG_TIFM_CORE is not set
460# CONFIG_ICS932S401 is not set 481# CONFIG_ICS932S401 is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 482# CONFIG_ENCLOSURE_SERVICES is not set
462# CONFIG_HP_ILO is not set 483# CONFIG_HP_ILO is not set
484# CONFIG_ISL29003 is not set
463# CONFIG_C2PORT is not set 485# CONFIG_C2PORT is not set
486
487#
488# EEPROM support
489#
490# CONFIG_EEPROM_AT24 is not set
491CONFIG_EEPROM_LEGACY=y
492# CONFIG_EEPROM_93CX6 is not set
464CONFIG_HAVE_IDE=y 493CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 494# CONFIG_IDE is not set
466 495
@@ -519,9 +548,11 @@ CONFIG_SCSI_LOWLEVEL=y
519# CONFIG_MEGARAID_NEWGEN is not set 548# CONFIG_MEGARAID_NEWGEN is not set
520# CONFIG_MEGARAID_LEGACY is not set 549# CONFIG_MEGARAID_LEGACY is not set
521# CONFIG_MEGARAID_SAS is not set 550# CONFIG_MEGARAID_SAS is not set
551# CONFIG_SCSI_MPT2SAS is not set
522# CONFIG_SCSI_HPTIOP is not set 552# CONFIG_SCSI_HPTIOP is not set
523# CONFIG_SCSI_BUSLOGIC is not set 553# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set 554# CONFIG_LIBFC is not set
555# CONFIG_LIBFCOE is not set
525# CONFIG_FCOE is not set 556# CONFIG_FCOE is not set
526# CONFIG_SCSI_DMX3191D is not set 557# CONFIG_SCSI_DMX3191D is not set
527# CONFIG_SCSI_EATA is not set 558# CONFIG_SCSI_EATA is not set
@@ -544,12 +575,13 @@ CONFIG_SCSI_LOWLEVEL=y
544# CONFIG_SCSI_DEBUG is not set 575# CONFIG_SCSI_DEBUG is not set
545# CONFIG_SCSI_SRP is not set 576# CONFIG_SCSI_SRP is not set
546# CONFIG_SCSI_DH is not set 577# CONFIG_SCSI_DH is not set
578# CONFIG_SCSI_OSD_INITIATOR is not set
547CONFIG_ATA=y 579CONFIG_ATA=y
548# CONFIG_ATA_NONSTANDARD is not set 580# CONFIG_ATA_NONSTANDARD is not set
549CONFIG_SATA_PMP=y 581CONFIG_SATA_PMP=y
550CONFIG_SATA_AHCI=y 582CONFIG_SATA_AHCI=y
551# CONFIG_SATA_SIL24 is not set 583# CONFIG_SATA_SIL24 is not set
552# CONFIG_SATA_FSL is not set 584CONFIG_SATA_FSL=y
553CONFIG_ATA_SFF=y 585CONFIG_ATA_SFF=y
554# CONFIG_SATA_SVW is not set 586# CONFIG_SATA_SVW is not set
555# CONFIG_ATA_PIIX is not set 587# CONFIG_ATA_PIIX is not set
@@ -620,6 +652,7 @@ CONFIG_PATA_ALI=y
620# CONFIG_I2O is not set 652# CONFIG_I2O is not set
621# CONFIG_MACINTOSH_DRIVERS is not set 653# CONFIG_MACINTOSH_DRIVERS is not set
622CONFIG_NETDEVICES=y 654CONFIG_NETDEVICES=y
655CONFIG_COMPAT_NET_DEV_OPS=y
623CONFIG_DUMMY=y 656CONFIG_DUMMY=y
624# CONFIG_BONDING is not set 657# CONFIG_BONDING is not set
625# CONFIG_MACVLAN is not set 658# CONFIG_MACVLAN is not set
@@ -632,11 +665,11 @@ CONFIG_PHYLIB=y
632# 665#
633# MII PHY device drivers 666# MII PHY device drivers
634# 667#
635# CONFIG_MARVELL_PHY is not set 668CONFIG_MARVELL_PHY=y
636# CONFIG_DAVICOM_PHY is not set 669CONFIG_DAVICOM_PHY=y
637# CONFIG_QSEMI_PHY is not set 670# CONFIG_QSEMI_PHY is not set
638# CONFIG_LXT_PHY is not set 671# CONFIG_LXT_PHY is not set
639# CONFIG_CICADA_PHY is not set 672CONFIG_CICADA_PHY=y
640CONFIG_VITESSE_PHY=y 673CONFIG_VITESSE_PHY=y
641# CONFIG_SMSC_PHY is not set 674# CONFIG_SMSC_PHY is not set
642# CONFIG_BROADCOM_PHY is not set 675# CONFIG_BROADCOM_PHY is not set
@@ -645,7 +678,7 @@ CONFIG_VITESSE_PHY=y
645# CONFIG_NATIONAL_PHY is not set 678# CONFIG_NATIONAL_PHY is not set
646# CONFIG_STE10XP is not set 679# CONFIG_STE10XP is not set
647# CONFIG_LSI_ET1011C_PHY is not set 680# CONFIG_LSI_ET1011C_PHY is not set
648# CONFIG_FIXED_PHY is not set 681CONFIG_FIXED_PHY=y
649# CONFIG_MDIO_BITBANG is not set 682# CONFIG_MDIO_BITBANG is not set
650CONFIG_NET_ETHERNET=y 683CONFIG_NET_ETHERNET=y
651CONFIG_MII=y 684CONFIG_MII=y
@@ -653,6 +686,8 @@ CONFIG_MII=y
653# CONFIG_SUNGEM is not set 686# CONFIG_SUNGEM is not set
654# CONFIG_CASSINI is not set 687# CONFIG_CASSINI is not set
655# CONFIG_NET_VENDOR_3COM is not set 688# CONFIG_NET_VENDOR_3COM is not set
689# CONFIG_ETHOC is not set
690# CONFIG_DNET is not set
656# CONFIG_NET_TULIP is not set 691# CONFIG_NET_TULIP is not set
657# CONFIG_HP100 is not set 692# CONFIG_HP100 is not set
658# CONFIG_IBM_NEW_EMAC_ZMII is not set 693# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -665,6 +700,10 @@ CONFIG_MII=y
665# CONFIG_NET_PCI is not set 700# CONFIG_NET_PCI is not set
666# CONFIG_B44 is not set 701# CONFIG_B44 is not set
667# CONFIG_ATL2 is not set 702# CONFIG_ATL2 is not set
703CONFIG_FS_ENET=y
704CONFIG_FS_ENET_HAS_SCC=y
705CONFIG_FS_ENET_HAS_FCC=y
706# CONFIG_FS_ENET_MDIO_FCC is not set
668CONFIG_NETDEV_1000=y 707CONFIG_NETDEV_1000=y
669# CONFIG_ACENIC is not set 708# CONFIG_ACENIC is not set
670# CONFIG_DL2K is not set 709# CONFIG_DL2K is not set
@@ -672,6 +711,7 @@ CONFIG_NETDEV_1000=y
672# CONFIG_E1000E is not set 711# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 712# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 713# CONFIG_IGB is not set
714# CONFIG_IGBVF is not set
675# CONFIG_NS83820 is not set 715# CONFIG_NS83820 is not set
676# CONFIG_HAMACHI is not set 716# CONFIG_HAMACHI is not set
677# CONFIG_YELLOWFIN is not set 717# CONFIG_YELLOWFIN is not set
@@ -682,10 +722,15 @@ CONFIG_NETDEV_1000=y
682# CONFIG_VIA_VELOCITY is not set 722# CONFIG_VIA_VELOCITY is not set
683# CONFIG_TIGON3 is not set 723# CONFIG_TIGON3 is not set
684# CONFIG_BNX2 is not set 724# CONFIG_BNX2 is not set
725CONFIG_FSL_PQ_MDIO=y
685CONFIG_GIANFAR=y 726CONFIG_GIANFAR=y
727CONFIG_UCC_GETH=y
728# CONFIG_UGETH_MAGIC_PACKET is not set
729# CONFIG_UGETH_TX_ON_DEMAND is not set
686# CONFIG_QLA3XXX is not set 730# CONFIG_QLA3XXX is not set
687# CONFIG_ATL1 is not set 731# CONFIG_ATL1 is not set
688# CONFIG_ATL1E is not set 732# CONFIG_ATL1E is not set
733# CONFIG_ATL1C is not set
689# CONFIG_JME is not set 734# CONFIG_JME is not set
690CONFIG_NETDEV_10000=y 735CONFIG_NETDEV_10000=y
691# CONFIG_CHELSIO_T1 is not set 736# CONFIG_CHELSIO_T1 is not set
@@ -695,6 +740,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
695# CONFIG_IXGBE is not set 740# CONFIG_IXGBE is not set
696# CONFIG_IXGB is not set 741# CONFIG_IXGB is not set
697# CONFIG_S2IO is not set 742# CONFIG_S2IO is not set
743# CONFIG_VXGE is not set
698# CONFIG_MYRI10GE is not set 744# CONFIG_MYRI10GE is not set
699# CONFIG_NETXEN_NIC is not set 745# CONFIG_NETXEN_NIC is not set
700# CONFIG_NIU is not set 746# CONFIG_NIU is not set
@@ -704,6 +750,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
704# CONFIG_BNX2X is not set 750# CONFIG_BNX2X is not set
705# CONFIG_QLGE is not set 751# CONFIG_QLGE is not set
706# CONFIG_SFC is not set 752# CONFIG_SFC is not set
753# CONFIG_BE2NET is not set
707# CONFIG_TR is not set 754# CONFIG_TR is not set
708 755
709# 756#
@@ -711,7 +758,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
711# 758#
712# CONFIG_WLAN_PRE80211 is not set 759# CONFIG_WLAN_PRE80211 is not set
713# CONFIG_WLAN_80211 is not set 760# CONFIG_WLAN_80211 is not set
714# CONFIG_IWLWIFI_LEDS is not set
715 761
716# 762#
717# Enable WiMAX (Networking options) to see the WiMAX drivers 763# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -806,8 +852,10 @@ CONFIG_SERIAL_8250_RSA=y
806# CONFIG_SERIAL_UARTLITE is not set 852# CONFIG_SERIAL_UARTLITE is not set
807CONFIG_SERIAL_CORE=y 853CONFIG_SERIAL_CORE=y
808CONFIG_SERIAL_CORE_CONSOLE=y 854CONFIG_SERIAL_CORE_CONSOLE=y
855# CONFIG_SERIAL_CPM is not set
809# CONFIG_SERIAL_JSM is not set 856# CONFIG_SERIAL_JSM is not set
810# CONFIG_SERIAL_OF_PLATFORM is not set 857# CONFIG_SERIAL_OF_PLATFORM is not set
858CONFIG_SERIAL_QE=m
811CONFIG_UNIX98_PTYS=y 859CONFIG_UNIX98_PTYS=y
812# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 860# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
813CONFIG_LEGACY_PTYS=y 861CONFIG_LEGACY_PTYS=y
@@ -815,6 +863,7 @@ CONFIG_LEGACY_PTY_COUNT=256
815# CONFIG_HVC_UDBG is not set 863# CONFIG_HVC_UDBG is not set
816# CONFIG_IPMI_HANDLER is not set 864# CONFIG_IPMI_HANDLER is not set
817CONFIG_HW_RANDOM=y 865CONFIG_HW_RANDOM=y
866# CONFIG_HW_RANDOM_TIMERIOMEM is not set
818CONFIG_NVRAM=y 867CONFIG_NVRAM=y
819# CONFIG_R3964 is not set 868# CONFIG_R3964 is not set
820# CONFIG_APPLICOM is not set 869# CONFIG_APPLICOM is not set
@@ -851,6 +900,8 @@ CONFIG_I2C_HELPER_AUTO=y
851# 900#
852# I2C system bus drivers (mostly embedded / system-on-chip) 901# I2C system bus drivers (mostly embedded / system-on-chip)
853# 902#
903CONFIG_I2C_CPM=m
904# CONFIG_I2C_GPIO is not set
854CONFIG_I2C_MPC=y 905CONFIG_I2C_MPC=y
855# CONFIG_I2C_OCORES is not set 906# CONFIG_I2C_OCORES is not set
856# CONFIG_I2C_SIMTEC is not set 907# CONFIG_I2C_SIMTEC is not set
@@ -877,12 +928,9 @@ CONFIG_I2C_MPC=y
877# Miscellaneous I2C Chip support 928# Miscellaneous I2C Chip support
878# 929#
879# CONFIG_DS1682 is not set 930# CONFIG_DS1682 is not set
880# CONFIG_EEPROM_AT24 is not set
881CONFIG_EEPROM_LEGACY=y
882# CONFIG_SENSORS_PCF8574 is not set 931# CONFIG_SENSORS_PCF8574 is not set
883# CONFIG_PCF8575 is not set 932# CONFIG_PCF8575 is not set
884# CONFIG_SENSORS_PCA9539 is not set 933# CONFIG_SENSORS_PCA9539 is not set
885# CONFIG_SENSORS_PCF8591 is not set
886# CONFIG_SENSORS_MAX6875 is not set 934# CONFIG_SENSORS_MAX6875 is not set
887# CONFIG_SENSORS_TSL2550 is not set 935# CONFIG_SENSORS_TSL2550 is not set
888# CONFIG_I2C_DEBUG_CORE is not set 936# CONFIG_I2C_DEBUG_CORE is not set
@@ -891,7 +939,31 @@ CONFIG_EEPROM_LEGACY=y
891# CONFIG_I2C_DEBUG_CHIP is not set 939# CONFIG_I2C_DEBUG_CHIP is not set
892# CONFIG_SPI is not set 940# CONFIG_SPI is not set
893CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 941CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
894# CONFIG_GPIOLIB is not set 942CONFIG_ARCH_REQUIRE_GPIOLIB=y
943CONFIG_GPIOLIB=y
944# CONFIG_DEBUG_GPIO is not set
945# CONFIG_GPIO_SYSFS is not set
946
947#
948# Memory mapped GPIO expanders:
949#
950# CONFIG_GPIO_XILINX is not set
951
952#
953# I2C GPIO expanders:
954#
955# CONFIG_GPIO_MAX732X is not set
956# CONFIG_GPIO_PCA953X is not set
957# CONFIG_GPIO_PCF857X is not set
958
959#
960# PCI GPIO expanders:
961#
962# CONFIG_GPIO_BT8XX is not set
963
964#
965# SPI GPIO expanders:
966#
895# CONFIG_W1 is not set 967# CONFIG_W1 is not set
896# CONFIG_POWER_SUPPLY is not set 968# CONFIG_POWER_SUPPLY is not set
897# CONFIG_HWMON is not set 969# CONFIG_HWMON is not set
@@ -911,6 +983,8 @@ CONFIG_SSB_POSSIBLE=y
911# CONFIG_MFD_CORE is not set 983# CONFIG_MFD_CORE is not set
912# CONFIG_MFD_SM501 is not set 984# CONFIG_MFD_SM501 is not set
913# CONFIG_HTC_PASIC3 is not set 985# CONFIG_HTC_PASIC3 is not set
986# CONFIG_UCB1400_CORE is not set
987# CONFIG_TPS65010 is not set
914# CONFIG_TWL4030_CORE is not set 988# CONFIG_TWL4030_CORE is not set
915# CONFIG_MFD_TMIO is not set 989# CONFIG_MFD_TMIO is not set
916# CONFIG_PMIC_DA903X is not set 990# CONFIG_PMIC_DA903X is not set
@@ -935,7 +1009,7 @@ CONFIG_VIDEO_MEDIA=m
935# 1009#
936# CONFIG_MEDIA_ATTACH is not set 1010# CONFIG_MEDIA_ATTACH is not set
937CONFIG_MEDIA_TUNER=m 1011CONFIG_MEDIA_TUNER=m
938# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 1012# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
939CONFIG_MEDIA_TUNER_SIMPLE=m 1013CONFIG_MEDIA_TUNER_SIMPLE=m
940CONFIG_MEDIA_TUNER_TDA8290=m 1014CONFIG_MEDIA_TUNER_TDA8290=m
941CONFIG_MEDIA_TUNER_TDA9887=m 1015CONFIG_MEDIA_TUNER_TDA9887=m
@@ -944,6 +1018,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
944CONFIG_MEDIA_TUNER_MT20XX=m 1018CONFIG_MEDIA_TUNER_MT20XX=m
945CONFIG_MEDIA_TUNER_XC2028=m 1019CONFIG_MEDIA_TUNER_XC2028=m
946CONFIG_MEDIA_TUNER_XC5000=m 1020CONFIG_MEDIA_TUNER_XC5000=m
1021CONFIG_MEDIA_TUNER_MC44S803=m
947# CONFIG_DVB_DYNAMIC_MINORS is not set 1022# CONFIG_DVB_DYNAMIC_MINORS is not set
948CONFIG_DVB_CAPTURE_DRIVERS=y 1023CONFIG_DVB_CAPTURE_DRIVERS=y
949 1024
@@ -983,103 +1058,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
983# 1058#
984# Supported DVB Frontends 1059# Supported DVB Frontends
985# 1060#
986
987#
988# Customise DVB Frontends
989#
990# CONFIG_DVB_FE_CUSTOMISE is not set 1061# CONFIG_DVB_FE_CUSTOMISE is not set
991
992#
993# Multistandard (satellite) frontends
994#
995# CONFIG_DVB_STB0899 is not set
996# CONFIG_DVB_STB6100 is not set
997
998#
999# DVB-S (satellite) frontends
1000#
1001# CONFIG_DVB_CX24110 is not set
1002# CONFIG_DVB_CX24123 is not set
1003# CONFIG_DVB_MT312 is not set
1004# CONFIG_DVB_S5H1420 is not set
1005# CONFIG_DVB_STV0288 is not set
1006# CONFIG_DVB_STB6000 is not set
1007# CONFIG_DVB_STV0299 is not set
1008# CONFIG_DVB_TDA8083 is not set
1009# CONFIG_DVB_TDA10086 is not set
1010# CONFIG_DVB_TDA8261 is not set
1011# CONFIG_DVB_VES1X93 is not set
1012# CONFIG_DVB_TUNER_ITD1000 is not set
1013# CONFIG_DVB_TUNER_CX24113 is not set
1014# CONFIG_DVB_TDA826X is not set
1015# CONFIG_DVB_TUA6100 is not set
1016# CONFIG_DVB_CX24116 is not set
1017# CONFIG_DVB_SI21XX is not set
1018
1019#
1020# DVB-T (terrestrial) frontends
1021#
1022# CONFIG_DVB_SP8870 is not set
1023# CONFIG_DVB_SP887X is not set
1024# CONFIG_DVB_CX22700 is not set
1025# CONFIG_DVB_CX22702 is not set
1026# CONFIG_DVB_DRX397XD is not set
1027# CONFIG_DVB_L64781 is not set
1028# CONFIG_DVB_TDA1004X is not set
1029# CONFIG_DVB_NXT6000 is not set
1030# CONFIG_DVB_MT352 is not set
1031# CONFIG_DVB_ZL10353 is not set
1032# CONFIG_DVB_DIB3000MB is not set
1033# CONFIG_DVB_DIB3000MC is not set
1034# CONFIG_DVB_DIB7000M is not set
1035# CONFIG_DVB_DIB7000P is not set
1036# CONFIG_DVB_TDA10048 is not set
1037
1038#
1039# DVB-C (cable) frontends
1040#
1041# CONFIG_DVB_VES1820 is not set
1042# CONFIG_DVB_TDA10021 is not set
1043# CONFIG_DVB_TDA10023 is not set
1044# CONFIG_DVB_STV0297 is not set
1045
1046#
1047# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1048#
1049# CONFIG_DVB_NXT200X is not set
1050# CONFIG_DVB_OR51211 is not set
1051# CONFIG_DVB_OR51132 is not set
1052# CONFIG_DVB_BCM3510 is not set
1053# CONFIG_DVB_LGDT330X is not set
1054# CONFIG_DVB_LGDT3304 is not set
1055# CONFIG_DVB_S5H1409 is not set
1056# CONFIG_DVB_AU8522 is not set
1057# CONFIG_DVB_S5H1411 is not set
1058
1059#
1060# ISDB-T (terrestrial) frontends
1061#
1062# CONFIG_DVB_S921 is not set
1063
1064#
1065# Digital terrestrial only tuners/PLL
1066#
1067# CONFIG_DVB_PLL is not set
1068# CONFIG_DVB_TUNER_DIB0070 is not set
1069
1070#
1071# SEC control devices for DVB-S
1072#
1073# CONFIG_DVB_LNBP21 is not set
1074# CONFIG_DVB_ISL6405 is not set
1075# CONFIG_DVB_ISL6421 is not set
1076# CONFIG_DVB_LGS8GL5 is not set
1077
1078#
1079# Tools to develop new frontends
1080#
1081# CONFIG_DVB_DUMMY_FE is not set
1082# CONFIG_DVB_AF9013 is not set
1083CONFIG_DAB=y 1062CONFIG_DAB=y
1084# CONFIG_USB_DABUSB is not set 1063# CONFIG_USB_DABUSB is not set
1085 1064
@@ -1159,6 +1138,8 @@ CONFIG_SND_PCI=y
1159# CONFIG_SND_INDIGO is not set 1138# CONFIG_SND_INDIGO is not set
1160# CONFIG_SND_INDIGOIO is not set 1139# CONFIG_SND_INDIGOIO is not set
1161# CONFIG_SND_INDIGODJ is not set 1140# CONFIG_SND_INDIGODJ is not set
1141# CONFIG_SND_INDIGOIOX is not set
1142# CONFIG_SND_INDIGODJX is not set
1162# CONFIG_SND_EMU10K1 is not set 1143# CONFIG_SND_EMU10K1 is not set
1163# CONFIG_SND_EMU10K1X is not set 1144# CONFIG_SND_EMU10K1X is not set
1164# CONFIG_SND_ENS1370 is not set 1145# CONFIG_SND_ENS1370 is not set
@@ -1213,15 +1194,17 @@ CONFIG_USB_HID=y
1213# 1194#
1214# Special HID drivers 1195# Special HID drivers
1215# 1196#
1216CONFIG_HID_COMPAT=y
1217CONFIG_HID_A4TECH=y 1197CONFIG_HID_A4TECH=y
1218CONFIG_HID_APPLE=y 1198CONFIG_HID_APPLE=y
1219CONFIG_HID_BELKIN=y 1199CONFIG_HID_BELKIN=y
1220CONFIG_HID_CHERRY=y 1200CONFIG_HID_CHERRY=y
1221CONFIG_HID_CHICONY=y 1201CONFIG_HID_CHICONY=y
1222CONFIG_HID_CYPRESS=y 1202CONFIG_HID_CYPRESS=y
1203# CONFIG_DRAGONRISE_FF is not set
1223CONFIG_HID_EZKEY=y 1204CONFIG_HID_EZKEY=y
1205# CONFIG_HID_KYE is not set
1224CONFIG_HID_GYRATION=y 1206CONFIG_HID_GYRATION=y
1207# CONFIG_HID_KENSINGTON is not set
1225CONFIG_HID_LOGITECH=y 1208CONFIG_HID_LOGITECH=y
1226# CONFIG_LOGITECH_FF is not set 1209# CONFIG_LOGITECH_FF is not set
1227# CONFIG_LOGIRUMBLEPAD2_FF is not set 1210# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1264,9 +1247,9 @@ CONFIG_USB_MON=y
1264# 1247#
1265# CONFIG_USB_C67X00_HCD is not set 1248# CONFIG_USB_C67X00_HCD is not set
1266CONFIG_USB_EHCI_HCD=y 1249CONFIG_USB_EHCI_HCD=y
1267# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1250CONFIG_USB_EHCI_ROOT_HUB_TT=y
1268# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1251# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1269# CONFIG_USB_EHCI_FSL is not set 1252CONFIG_USB_EHCI_FSL=y
1270CONFIG_USB_EHCI_HCD_PPC_OF=y 1253CONFIG_USB_EHCI_HCD_PPC_OF=y
1271# CONFIG_USB_OXU210HP_HCD is not set 1254# CONFIG_USB_OXU210HP_HCD is not set
1272# CONFIG_USB_ISP116X_HCD is not set 1255# CONFIG_USB_ISP116X_HCD is not set
@@ -1280,10 +1263,12 @@ CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1280CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 1263CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1281CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1264CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1282# CONFIG_USB_UHCI_HCD is not set 1265# CONFIG_USB_UHCI_HCD is not set
1266# CONFIG_USB_FHCI_HCD is not set
1283# CONFIG_USB_SL811_HCD is not set 1267# CONFIG_USB_SL811_HCD is not set
1284# CONFIG_USB_R8A66597_HCD is not set 1268# CONFIG_USB_R8A66597_HCD is not set
1285# CONFIG_USB_WHCI_HCD is not set 1269# CONFIG_USB_WHCI_HCD is not set
1286# CONFIG_USB_HWA_HCD is not set 1270# CONFIG_USB_HWA_HCD is not set
1271# CONFIG_USB_MUSB_HDRC is not set
1287 1272
1288# 1273#
1289# USB Device Class drivers 1274# USB Device Class drivers
@@ -1294,11 +1279,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1294# CONFIG_USB_TMC is not set 1279# CONFIG_USB_TMC is not set
1295 1280
1296# 1281#
1297# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1282# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1298# 1283#
1299 1284
1300# 1285#
1301# see USB_STORAGE Help for more information 1286# also be needed; see USB_STORAGE Help for more info
1302# 1287#
1303CONFIG_USB_STORAGE=y 1288CONFIG_USB_STORAGE=y
1304# CONFIG_USB_STORAGE_DEBUG is not set 1289# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1340,7 +1325,6 @@ CONFIG_USB_STORAGE=y
1340# CONFIG_USB_LED is not set 1325# CONFIG_USB_LED is not set
1341# CONFIG_USB_CYPRESS_CY7C63 is not set 1326# CONFIG_USB_CYPRESS_CY7C63 is not set
1342# CONFIG_USB_CYTHERM is not set 1327# CONFIG_USB_CYTHERM is not set
1343# CONFIG_USB_PHIDGET is not set
1344# CONFIG_USB_IDMOUSE is not set 1328# CONFIG_USB_IDMOUSE is not set
1345# CONFIG_USB_FTDI_ELAN is not set 1329# CONFIG_USB_FTDI_ELAN is not set
1346# CONFIG_USB_APPLEDISPLAY is not set 1330# CONFIG_USB_APPLEDISPLAY is not set
@@ -1356,13 +1340,24 @@ CONFIG_USB_STORAGE=y
1356# 1340#
1357# OTG and related infrastructure 1341# OTG and related infrastructure
1358# 1342#
1343# CONFIG_USB_GPIO_VBUS is not set
1344# CONFIG_NOP_USB_XCEIV is not set
1359# CONFIG_UWB is not set 1345# CONFIG_UWB is not set
1360# CONFIG_MMC is not set 1346# CONFIG_MMC is not set
1361# CONFIG_MEMSTICK is not set 1347# CONFIG_MEMSTICK is not set
1362# CONFIG_NEW_LEDS is not set 1348# CONFIG_NEW_LEDS is not set
1363# CONFIG_ACCESSIBILITY is not set 1349# CONFIG_ACCESSIBILITY is not set
1364# CONFIG_INFINIBAND is not set 1350# CONFIG_INFINIBAND is not set
1365# CONFIG_EDAC is not set 1351CONFIG_EDAC=y
1352
1353#
1354# Reporting subsystems
1355#
1356# CONFIG_EDAC_DEBUG is not set
1357CONFIG_EDAC_MM_EDAC=y
1358CONFIG_EDAC_MPC85XX=y
1359# CONFIG_EDAC_AMD8131 is not set
1360# CONFIG_EDAC_AMD8111 is not set
1366CONFIG_RTC_LIB=y 1361CONFIG_RTC_LIB=y
1367CONFIG_RTC_CLASS=y 1362CONFIG_RTC_CLASS=y
1368CONFIG_RTC_HCTOSYS=y 1363CONFIG_RTC_HCTOSYS=y
@@ -1417,8 +1412,22 @@ CONFIG_RTC_DRV_CMOS=y
1417# 1412#
1418# on-CPU RTC drivers 1413# on-CPU RTC drivers
1419# 1414#
1420# CONFIG_RTC_DRV_PPC is not set 1415# CONFIG_RTC_DRV_GENERIC is not set
1421# CONFIG_DMADEVICES is not set 1416CONFIG_DMADEVICES=y
1417
1418#
1419# DMA Devices
1420#
1421CONFIG_FSL_DMA=y
1422CONFIG_DMA_ENGINE=y
1423
1424#
1425# DMA Clients
1426#
1427# CONFIG_NET_DMA is not set
1428# CONFIG_ASYNC_TX_DMA is not set
1429# CONFIG_DMATEST is not set
1430# CONFIG_AUXDISPLAY is not set
1422# CONFIG_UIO is not set 1431# CONFIG_UIO is not set
1423# CONFIG_STAGING is not set 1432# CONFIG_STAGING is not set
1424 1433
@@ -1429,11 +1438,13 @@ CONFIG_EXT2_FS=y
1429# CONFIG_EXT2_FS_XATTR is not set 1438# CONFIG_EXT2_FS_XATTR is not set
1430# CONFIG_EXT2_FS_XIP is not set 1439# CONFIG_EXT2_FS_XIP is not set
1431CONFIG_EXT3_FS=y 1440CONFIG_EXT3_FS=y
1441# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1432CONFIG_EXT3_FS_XATTR=y 1442CONFIG_EXT3_FS_XATTR=y
1433# CONFIG_EXT3_FS_POSIX_ACL is not set 1443# CONFIG_EXT3_FS_POSIX_ACL is not set
1434# CONFIG_EXT3_FS_SECURITY is not set 1444# CONFIG_EXT3_FS_SECURITY is not set
1435# CONFIG_EXT4_FS is not set 1445# CONFIG_EXT4_FS is not set
1436CONFIG_JBD=y 1446CONFIG_JBD=y
1447# CONFIG_JBD_DEBUG is not set
1437CONFIG_FS_MBCACHE=y 1448CONFIG_FS_MBCACHE=y
1438# CONFIG_REISERFS_FS is not set 1449# CONFIG_REISERFS_FS is not set
1439# CONFIG_JFS_FS is not set 1450# CONFIG_JFS_FS is not set
@@ -1452,6 +1463,11 @@ CONFIG_INOTIFY_USER=y
1452# CONFIG_FUSE_FS is not set 1463# CONFIG_FUSE_FS is not set
1453 1464
1454# 1465#
1466# Caches
1467#
1468# CONFIG_FSCACHE is not set
1469
1470#
1455# CD-ROM/DVD Filesystems 1471# CD-ROM/DVD Filesystems
1456# 1472#
1457CONFIG_ISO9660_FS=m 1473CONFIG_ISO9660_FS=m
@@ -1506,6 +1522,7 @@ CONFIG_SYSV_FS=m
1506CONFIG_UFS_FS=m 1522CONFIG_UFS_FS=m
1507# CONFIG_UFS_FS_WRITE is not set 1523# CONFIG_UFS_FS_WRITE is not set
1508# CONFIG_UFS_DEBUG is not set 1524# CONFIG_UFS_DEBUG is not set
1525# CONFIG_NILFS2_FS is not set
1509CONFIG_NETWORK_FILESYSTEMS=y 1526CONFIG_NETWORK_FILESYSTEMS=y
1510CONFIG_NFS_FS=y 1527CONFIG_NFS_FS=y
1511CONFIG_NFS_V3=y 1528CONFIG_NFS_V3=y
@@ -1521,7 +1538,6 @@ CONFIG_EXPORTFS=y
1521CONFIG_NFS_COMMON=y 1538CONFIG_NFS_COMMON=y
1522CONFIG_SUNRPC=y 1539CONFIG_SUNRPC=y
1523CONFIG_SUNRPC_GSS=y 1540CONFIG_SUNRPC_GSS=y
1524# CONFIG_SUNRPC_REGISTER_V4 is not set
1525CONFIG_RPCSEC_GSS_KRB5=y 1541CONFIG_RPCSEC_GSS_KRB5=y
1526# CONFIG_RPCSEC_GSS_SPKM3 is not set 1542# CONFIG_RPCSEC_GSS_SPKM3 is not set
1527# CONFIG_SMB_FS is not set 1543# CONFIG_SMB_FS is not set
@@ -1592,6 +1608,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1592# CONFIG_NLS_KOI8_U is not set 1608# CONFIG_NLS_KOI8_U is not set
1593CONFIG_NLS_UTF8=m 1609CONFIG_NLS_UTF8=m
1594# CONFIG_DLM is not set 1610# CONFIG_DLM is not set
1611CONFIG_UCC_SLOW=y
1612CONFIG_UCC_FAST=y
1613CONFIG_UCC=y
1614# CONFIG_BINARY_PRINTF is not set
1595 1615
1596# 1616#
1597# Library routines 1617# Library routines
@@ -1606,11 +1626,12 @@ CONFIG_CRC32=y
1606# CONFIG_CRC7 is not set 1626# CONFIG_CRC7 is not set
1607CONFIG_LIBCRC32C=m 1627CONFIG_LIBCRC32C=m
1608CONFIG_ZLIB_INFLATE=y 1628CONFIG_ZLIB_INFLATE=y
1609CONFIG_PLIST=y 1629CONFIG_DECOMPRESS_GZIP=y
1610CONFIG_HAS_IOMEM=y 1630CONFIG_HAS_IOMEM=y
1611CONFIG_HAS_IOPORT=y 1631CONFIG_HAS_IOPORT=y
1612CONFIG_HAS_DMA=y 1632CONFIG_HAS_DMA=y
1613CONFIG_HAVE_LMB=y 1633CONFIG_HAVE_LMB=y
1634CONFIG_NLATTR=y
1614 1635
1615# 1636#
1616# Kernel hacking 1637# Kernel hacking
@@ -1621,13 +1642,16 @@ CONFIG_ENABLE_MUST_CHECK=y
1621CONFIG_FRAME_WARN=1024 1642CONFIG_FRAME_WARN=1024
1622# CONFIG_MAGIC_SYSRQ is not set 1643# CONFIG_MAGIC_SYSRQ is not set
1623# CONFIG_UNUSED_SYMBOLS is not set 1644# CONFIG_UNUSED_SYMBOLS is not set
1624# CONFIG_DEBUG_FS is not set 1645CONFIG_DEBUG_FS=y
1625# CONFIG_HEADERS_CHECK is not set 1646# CONFIG_HEADERS_CHECK is not set
1626CONFIG_DEBUG_KERNEL=y 1647CONFIG_DEBUG_KERNEL=y
1627# CONFIG_DEBUG_SHIRQ is not set 1648# CONFIG_DEBUG_SHIRQ is not set
1628CONFIG_DETECT_SOFTLOCKUP=y 1649CONFIG_DETECT_SOFTLOCKUP=y
1629# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1650# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1630CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1651CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1652CONFIG_DETECT_HUNG_TASK=y
1653# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1654CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1631CONFIG_SCHED_DEBUG=y 1655CONFIG_SCHED_DEBUG=y
1632# CONFIG_SCHEDSTATS is not set 1656# CONFIG_SCHEDSTATS is not set
1633# CONFIG_TIMER_STATS is not set 1657# CONFIG_TIMER_STATS is not set
@@ -1658,9 +1682,12 @@ CONFIG_DEBUG_INFO=y
1658# CONFIG_FAULT_INJECTION is not set 1682# CONFIG_FAULT_INJECTION is not set
1659# CONFIG_LATENCYTOP is not set 1683# CONFIG_LATENCYTOP is not set
1660CONFIG_SYSCTL_SYSCALL_CHECK=y 1684CONFIG_SYSCTL_SYSCALL_CHECK=y
1685# CONFIG_DEBUG_PAGEALLOC is not set
1661CONFIG_HAVE_FUNCTION_TRACER=y 1686CONFIG_HAVE_FUNCTION_TRACER=y
1687CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1662CONFIG_HAVE_DYNAMIC_FTRACE=y 1688CONFIG_HAVE_DYNAMIC_FTRACE=y
1663CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1689CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1690CONFIG_TRACING_SUPPORT=y
1664 1691
1665# 1692#
1666# Tracers 1693# Tracers
@@ -1668,22 +1695,26 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1668# CONFIG_FUNCTION_TRACER is not set 1695# CONFIG_FUNCTION_TRACER is not set
1669# CONFIG_SCHED_TRACER is not set 1696# CONFIG_SCHED_TRACER is not set
1670# CONFIG_CONTEXT_SWITCH_TRACER is not set 1697# CONFIG_CONTEXT_SWITCH_TRACER is not set
1698# CONFIG_EVENT_TRACER is not set
1671# CONFIG_BOOT_TRACER is not set 1699# CONFIG_BOOT_TRACER is not set
1672# CONFIG_TRACE_BRANCH_PROFILING is not set 1700# CONFIG_TRACE_BRANCH_PROFILING is not set
1673# CONFIG_STACK_TRACER is not set 1701# CONFIG_STACK_TRACER is not set
1674# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1702# CONFIG_KMEMTRACE is not set
1703# CONFIG_WORKQUEUE_TRACER is not set
1704# CONFIG_BLK_DEV_IO_TRACE is not set
1705# CONFIG_DYNAMIC_DEBUG is not set
1675# CONFIG_SAMPLES is not set 1706# CONFIG_SAMPLES is not set
1676CONFIG_HAVE_ARCH_KGDB=y 1707CONFIG_HAVE_ARCH_KGDB=y
1677# CONFIG_KGDB is not set 1708# CONFIG_KGDB is not set
1678CONFIG_PRINT_STACK_DEPTH=64 1709CONFIG_PRINT_STACK_DEPTH=64
1679# CONFIG_DEBUG_STACKOVERFLOW is not set 1710# CONFIG_DEBUG_STACKOVERFLOW is not set
1680# CONFIG_DEBUG_STACK_USAGE is not set 1711# CONFIG_DEBUG_STACK_USAGE is not set
1681# CONFIG_DEBUG_PAGEALLOC is not set
1682# CONFIG_CODE_PATCHING_SELFTEST is not set 1712# CONFIG_CODE_PATCHING_SELFTEST is not set
1683# CONFIG_FTR_FIXUP_SELFTEST is not set 1713# CONFIG_FTR_FIXUP_SELFTEST is not set
1684# CONFIG_MSI_BITMAP_SELFTEST is not set 1714# CONFIG_MSI_BITMAP_SELFTEST is not set
1685# CONFIG_XMON is not set 1715# CONFIG_XMON is not set
1686# CONFIG_IRQSTACKS is not set 1716# CONFIG_IRQSTACKS is not set
1717CONFIG_VIRQ_DEBUG=y
1687# CONFIG_BDI_SWITCH is not set 1718# CONFIG_BDI_SWITCH is not set
1688# CONFIG_PPC_EARLY_DEBUG is not set 1719# CONFIG_PPC_EARLY_DEBUG is not set
1689 1720
@@ -1709,10 +1740,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1709CONFIG_CRYPTO_HASH=y 1740CONFIG_CRYPTO_HASH=y
1710CONFIG_CRYPTO_HASH2=y 1741CONFIG_CRYPTO_HASH2=y
1711CONFIG_CRYPTO_RNG2=y 1742CONFIG_CRYPTO_RNG2=y
1743CONFIG_CRYPTO_PCOMP=y
1712CONFIG_CRYPTO_MANAGER=y 1744CONFIG_CRYPTO_MANAGER=y
1713CONFIG_CRYPTO_MANAGER2=y 1745CONFIG_CRYPTO_MANAGER2=y
1714# CONFIG_CRYPTO_GF128MUL is not set 1746# CONFIG_CRYPTO_GF128MUL is not set
1715# CONFIG_CRYPTO_NULL is not set 1747# CONFIG_CRYPTO_NULL is not set
1748CONFIG_CRYPTO_WORKQUEUE=y
1716# CONFIG_CRYPTO_CRYPTD is not set 1749# CONFIG_CRYPTO_CRYPTD is not set
1717CONFIG_CRYPTO_AUTHENC=y 1750CONFIG_CRYPTO_AUTHENC=y
1718# CONFIG_CRYPTO_TEST is not set 1751# CONFIG_CRYPTO_TEST is not set
@@ -1781,6 +1814,7 @@ CONFIG_CRYPTO_DES=y
1781# Compression 1814# Compression
1782# 1815#
1783# CONFIG_CRYPTO_DEFLATE is not set 1816# CONFIG_CRYPTO_DEFLATE is not set
1817# CONFIG_CRYPTO_ZLIB is not set
1784# CONFIG_CRYPTO_LZO is not set 1818# CONFIG_CRYPTO_LZO is not set
1785 1819
1786# 1820#
@@ -1790,5 +1824,6 @@ CONFIG_CRYPTO_DES=y
1790CONFIG_CRYPTO_HW=y 1824CONFIG_CRYPTO_HW=y
1791# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1825# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1792CONFIG_CRYPTO_DEV_TALITOS=y 1826CONFIG_CRYPTO_DEV_TALITOS=y
1793# CONFIG_PPC_CLOCK is not set 1827CONFIG_PPC_CLOCK=y
1828CONFIG_PPC_LIB_RHEAP=y
1794# CONFIG_VIRTUALIZATION is not set 1829# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 1793d08e9c01..3add6f62b21e 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:38 2009 4# Wed May 13 17:22:00 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -51,6 +51,7 @@ CONFIG_AUDIT_ARCH=y
51# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
52# CONFIG_PPC_DCR_NATIVE is not set 52# CONFIG_PPC_DCR_NATIVE is not set
53# CONFIG_PPC_DCR_MMIO is not set 53# CONFIG_PPC_DCR_MMIO is not set
54CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
55 56
56# 57#
@@ -68,6 +69,15 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_BSD_PROCESS_ACCT is not set 69# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 70# CONFIG_TASKSTATS is not set
70# CONFIG_AUDIT is not set 71# CONFIG_AUDIT is not set
72
73#
74# RCU Subsystem
75#
76CONFIG_CLASSIC_RCU=y
77# CONFIG_TREE_RCU is not set
78# CONFIG_PREEMPT_RCU is not set
79# CONFIG_TREE_RCU_TRACE is not set
80# CONFIG_PREEMPT_RCU_TRACE is not set
71# CONFIG_IKCONFIG is not set 81# CONFIG_IKCONFIG is not set
72CONFIG_LOG_BUF_SHIFT=14 82CONFIG_LOG_BUF_SHIFT=14
73CONFIG_GROUP_SCHED=y 83CONFIG_GROUP_SCHED=y
@@ -83,18 +93,18 @@ CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_BLK_DEV_INITRD is not set 93# CONFIG_BLK_DEV_INITRD is not set
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
85CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
96CONFIG_ANON_INODES=y
86CONFIG_EMBEDDED=y 97CONFIG_EMBEDDED=y
87# CONFIG_SYSCTL_SYSCALL is not set 98# CONFIG_SYSCTL_SYSCALL is not set
88CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 100# CONFIG_KALLSYMS_EXTRA_PASS is not set
101# CONFIG_STRIP_ASM_SYMS is not set
90# CONFIG_HOTPLUG is not set 102# CONFIG_HOTPLUG is not set
91CONFIG_PRINTK=y 103CONFIG_PRINTK=y
92# CONFIG_BUG is not set 104# CONFIG_BUG is not set
93CONFIG_ELF_CORE=y 105CONFIG_ELF_CORE=y
94CONFIG_COMPAT_BRK=y
95# CONFIG_BASE_FULL is not set 106# CONFIG_BASE_FULL is not set
96CONFIG_FUTEX=y 107CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y
98# CONFIG_EPOLL is not set 108# CONFIG_EPOLL is not set
99CONFIG_SIGNALFD=y 109CONFIG_SIGNALFD=y
100CONFIG_TIMERFD=y 110CONFIG_TIMERFD=y
@@ -103,10 +113,12 @@ CONFIG_SHMEM=y
103CONFIG_AIO=y 113CONFIG_AIO=y
104# CONFIG_VM_EVENT_COUNTERS is not set 114# CONFIG_VM_EVENT_COUNTERS is not set
105CONFIG_SLUB_DEBUG=y 115CONFIG_SLUB_DEBUG=y
116CONFIG_COMPAT_BRK=y
106# CONFIG_SLAB is not set 117# CONFIG_SLAB is not set
107CONFIG_SLUB=y 118CONFIG_SLUB=y
108# CONFIG_SLOB is not set 119# CONFIG_SLOB is not set
109# CONFIG_PROFILING is not set 120# CONFIG_PROFILING is not set
121# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 122CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
112CONFIG_HAVE_IOREMAP_PROT=y 124CONFIG_HAVE_IOREMAP_PROT=y
@@ -114,6 +126,7 @@ CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
116CONFIG_HAVE_CLK=y 128CONFIG_HAVE_CLK=y
129# CONFIG_SLOW_WORK is not set
117# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
@@ -121,7 +134,6 @@ CONFIG_BASE_SMALL=1
121# CONFIG_MODULES is not set 134# CONFIG_MODULES is not set
122CONFIG_BLOCK=y 135CONFIG_BLOCK=y
123# CONFIG_LBD is not set 136# CONFIG_LBD is not set
124# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 138# CONFIG_BLK_DEV_INTEGRITY is not set
127 139
@@ -137,11 +149,6 @@ CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_CFQ is not set 149# CONFIG_DEFAULT_CFQ is not set
138# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
139CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
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
145# CONFIG_FREEZER is not set 152# CONFIG_FREEZER is not set
146 153
147# 154#
@@ -232,9 +239,12 @@ CONFIG_ZONE_DMA_FLAG=1
232CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
233CONFIG_VIRT_TO_BUS=y 240CONFIG_VIRT_TO_BUS=y
234CONFIG_UNEVICTABLE_LRU=y 241CONFIG_UNEVICTABLE_LRU=y
242CONFIG_HAVE_MLOCK=y
243CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235CONFIG_PPC_4K_PAGES=y 244CONFIG_PPC_4K_PAGES=y
236# CONFIG_PPC_16K_PAGES is not set 245# CONFIG_PPC_16K_PAGES is not set
237# CONFIG_PPC_64K_PAGES is not set 246# CONFIG_PPC_64K_PAGES is not set
247# CONFIG_PPC_256K_PAGES is not set
238CONFIG_FORCE_MAX_ZONEORDER=11 248CONFIG_FORCE_MAX_ZONEORDER=11
239# CONFIG_PROC_DEVICETREE is not set 249# CONFIG_PROC_DEVICETREE is not set
240# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
@@ -268,14 +278,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 278CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 279CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0x80000000 280CONFIG_TASK_SIZE=0x80000000
271CONFIG_CONSISTENT_START=0xfd000000
272CONFIG_CONSISTENT_SIZE=0x00200000
273CONFIG_NET=y 281CONFIG_NET=y
274 282
275# 283#
276# Networking options 284# Networking options
277# 285#
278CONFIG_COMPAT_NET_DEV_OPS=y
279CONFIG_PACKET=y 286CONFIG_PACKET=y
280# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
281CONFIG_UNIX=y 288CONFIG_UNIX=y
@@ -331,6 +338,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
331# CONFIG_LAPB is not set 338# CONFIG_LAPB is not set
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
341# CONFIG_PHONET is not set
334# CONFIG_NET_SCHED is not set 342# CONFIG_NET_SCHED is not set
335# CONFIG_DCB is not set 343# CONFIG_DCB is not set
336 344
@@ -343,7 +351,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_IRDA is not set 351# CONFIG_IRDA is not set
344# CONFIG_BT is not set 352# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set 353# CONFIG_AF_RXRPC is not set
346# CONFIG_PHONET is not set
347CONFIG_WIRELESS=y 354CONFIG_WIRELESS=y
348# CONFIG_CFG80211 is not set 355# CONFIG_CFG80211 is not set
349CONFIG_WIRELESS_OLD_REGULATORY=y 356CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -379,9 +386,13 @@ CONFIG_BLK_DEV_LOOP=y
379# CONFIG_ATA_OVER_ETH is not set 386# CONFIG_ATA_OVER_ETH is not set
380# CONFIG_BLK_DEV_HD is not set 387# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 388CONFIG_MISC_DEVICES=y
382# CONFIG_EEPROM_93CX6 is not set
383# CONFIG_ENCLOSURE_SERVICES is not set 389# CONFIG_ENCLOSURE_SERVICES is not set
384# CONFIG_C2PORT is not set 390# CONFIG_C2PORT is not set
391
392#
393# EEPROM support
394#
395# CONFIG_EEPROM_93CX6 is not set
385CONFIG_HAVE_IDE=y 396CONFIG_HAVE_IDE=y
386# CONFIG_IDE is not set 397# CONFIG_IDE is not set
387 398
@@ -396,6 +407,7 @@ CONFIG_HAVE_IDE=y
396# CONFIG_MD is not set 407# CONFIG_MD is not set
397# CONFIG_MACINTOSH_DRIVERS is not set 408# CONFIG_MACINTOSH_DRIVERS is not set
398CONFIG_NETDEVICES=y 409CONFIG_NETDEVICES=y
410CONFIG_COMPAT_NET_DEV_OPS=y
399# CONFIG_DUMMY is not set 411# CONFIG_DUMMY is not set
400# CONFIG_BONDING is not set 412# CONFIG_BONDING is not set
401# CONFIG_MACVLAN is not set 413# CONFIG_MACVLAN is not set
@@ -424,6 +436,8 @@ CONFIG_FIXED_PHY=y
424# CONFIG_MDIO_BITBANG is not set 436# CONFIG_MDIO_BITBANG is not set
425CONFIG_NET_ETHERNET=y 437CONFIG_NET_ETHERNET=y
426CONFIG_MII=y 438CONFIG_MII=y
439# CONFIG_ETHOC is not set
440# CONFIG_DNET is not set
427# CONFIG_IBM_NEW_EMAC_ZMII is not set 441# CONFIG_IBM_NEW_EMAC_ZMII is not set
428# CONFIG_IBM_NEW_EMAC_RGMII is not set 442# CONFIG_IBM_NEW_EMAC_RGMII is not set
429# CONFIG_IBM_NEW_EMAC_TAH is not set 443# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -437,6 +451,7 @@ CONFIG_FS_ENET_HAS_SCC=y
437CONFIG_FS_ENET_HAS_FEC=y 451CONFIG_FS_ENET_HAS_FEC=y
438CONFIG_FS_ENET_MDIO_FEC=y 452CONFIG_FS_ENET_MDIO_FEC=y
439CONFIG_NETDEV_1000=y 453CONFIG_NETDEV_1000=y
454# CONFIG_FSL_PQ_MDIO is not set
440# CONFIG_GIANFAR is not set 455# CONFIG_GIANFAR is not set
441CONFIG_NETDEV_10000=y 456CONFIG_NETDEV_10000=y
442 457
@@ -445,7 +460,6 @@ CONFIG_NETDEV_10000=y
445# 460#
446# CONFIG_WLAN_PRE80211 is not set 461# CONFIG_WLAN_PRE80211 is not set
447# CONFIG_WLAN_80211 is not set 462# CONFIG_WLAN_80211 is not set
448# CONFIG_IWLWIFI_LEDS is not set
449 463
450# 464#
451# Enable WiMAX (Networking options) to see the WiMAX drivers 465# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -492,7 +506,6 @@ CONFIG_MOUSE_PS2=y
492CONFIG_MOUSE_PS2_ALPS=y 506CONFIG_MOUSE_PS2_ALPS=y
493CONFIG_MOUSE_PS2_LOGIPS2PP=y 507CONFIG_MOUSE_PS2_LOGIPS2PP=y
494CONFIG_MOUSE_PS2_SYNAPTICS=y 508CONFIG_MOUSE_PS2_SYNAPTICS=y
495CONFIG_MOUSE_PS2_LIFEBOOK=y
496CONFIG_MOUSE_PS2_TRACKPOINT=y 509CONFIG_MOUSE_PS2_TRACKPOINT=y
497# CONFIG_MOUSE_PS2_ELANTECH is not set 510# CONFIG_MOUSE_PS2_ELANTECH is not set
498# CONFIG_MOUSE_PS2_TOUCHKIT is not set 511# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -540,6 +553,7 @@ CONFIG_UNIX98_PTYS=y
540# CONFIG_HVC_UDBG is not set 553# CONFIG_HVC_UDBG is not set
541# CONFIG_IPMI_HANDLER is not set 554# CONFIG_IPMI_HANDLER is not set
542CONFIG_HW_RANDOM=y 555CONFIG_HW_RANDOM=y
556# CONFIG_HW_RANDOM_TIMERIOMEM is not set
543# CONFIG_NVRAM is not set 557# CONFIG_NVRAM is not set
544CONFIG_GEN_RTC=y 558CONFIG_GEN_RTC=y
545# CONFIG_GEN_RTC_X is not set 559# CONFIG_GEN_RTC_X is not set
@@ -622,7 +636,6 @@ CONFIG_HID=y
622# 636#
623# Special HID drivers 637# Special HID drivers
624# 638#
625CONFIG_HID_COMPAT=y
626CONFIG_USB_SUPPORT=y 639CONFIG_USB_SUPPORT=y
627# CONFIG_USB_ARCH_HAS_HCD is not set 640# CONFIG_USB_ARCH_HAS_HCD is not set
628# CONFIG_USB_ARCH_HAS_OHCI is not set 641# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -635,7 +648,7 @@ CONFIG_USB_SUPPORT=y
635# 648#
636 649
637# 650#
638# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 651# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
639# 652#
640# CONFIG_USB_GADGET is not set 653# CONFIG_USB_GADGET is not set
641 654
@@ -649,6 +662,7 @@ CONFIG_USB_SUPPORT=y
649# CONFIG_EDAC is not set 662# CONFIG_EDAC is not set
650# CONFIG_RTC_CLASS is not set 663# CONFIG_RTC_CLASS is not set
651# CONFIG_DMADEVICES is not set 664# CONFIG_DMADEVICES is not set
665# CONFIG_AUXDISPLAY is not set
652# CONFIG_UIO is not set 666# CONFIG_UIO is not set
653# CONFIG_STAGING is not set 667# CONFIG_STAGING is not set
654 668
@@ -661,6 +675,7 @@ CONFIG_EXT2_FS_XATTR=y
661# CONFIG_EXT2_FS_SECURITY is not set 675# CONFIG_EXT2_FS_SECURITY is not set
662# CONFIG_EXT2_FS_XIP is not set 676# CONFIG_EXT2_FS_XIP is not set
663CONFIG_EXT3_FS=y 677CONFIG_EXT3_FS=y
678# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
664CONFIG_EXT3_FS_XATTR=y 679CONFIG_EXT3_FS_XATTR=y
665# CONFIG_EXT3_FS_POSIX_ACL is not set 680# CONFIG_EXT3_FS_POSIX_ACL is not set
666# CONFIG_EXT3_FS_SECURITY is not set 681# CONFIG_EXT3_FS_SECURITY is not set
@@ -683,6 +698,11 @@ CONFIG_INOTIFY_USER=y
683# CONFIG_FUSE_FS is not set 698# CONFIG_FUSE_FS is not set
684 699
685# 700#
701# Caches
702#
703# CONFIG_FSCACHE is not set
704
705#
686# CD-ROM/DVD Filesystems 706# CD-ROM/DVD Filesystems
687# 707#
688# CONFIG_ISO9660_FS is not set 708# CONFIG_ISO9660_FS is not set
@@ -725,6 +745,7 @@ CONFIG_CRAMFS=y
725# CONFIG_ROMFS_FS is not set 745# CONFIG_ROMFS_FS is not set
726# CONFIG_SYSV_FS is not set 746# CONFIG_SYSV_FS is not set
727# CONFIG_UFS_FS is not set 747# CONFIG_UFS_FS is not set
748# CONFIG_NILFS2_FS is not set
728CONFIG_NETWORK_FILESYSTEMS=y 749CONFIG_NETWORK_FILESYSTEMS=y
729CONFIG_NFS_FS=y 750CONFIG_NFS_FS=y
730CONFIG_NFS_V3=y 751CONFIG_NFS_V3=y
@@ -736,7 +757,6 @@ CONFIG_LOCKD=y
736CONFIG_LOCKD_V4=y 757CONFIG_LOCKD_V4=y
737CONFIG_NFS_COMMON=y 758CONFIG_NFS_COMMON=y
738CONFIG_SUNRPC=y 759CONFIG_SUNRPC=y
739# CONFIG_SUNRPC_REGISTER_V4 is not set
740# CONFIG_RPCSEC_GSS_KRB5 is not set 760# CONFIG_RPCSEC_GSS_KRB5 is not set
741# CONFIG_RPCSEC_GSS_SPKM3 is not set 761# CONFIG_RPCSEC_GSS_SPKM3 is not set
742# CONFIG_SMB_FS is not set 762# CONFIG_SMB_FS is not set
@@ -768,6 +788,7 @@ CONFIG_MSDOS_PARTITION=y
768# CONFIG_SYSV68_PARTITION is not set 788# CONFIG_SYSV68_PARTITION is not set
769# CONFIG_NLS is not set 789# CONFIG_NLS is not set
770# CONFIG_DLM is not set 790# CONFIG_DLM is not set
791# CONFIG_BINARY_PRINTF is not set
771 792
772# 793#
773# Library routines 794# Library routines
@@ -782,11 +803,11 @@ CONFIG_CRC32=y
782# CONFIG_CRC7 is not set 803# CONFIG_CRC7 is not set
783# CONFIG_LIBCRC32C is not set 804# CONFIG_LIBCRC32C is not set
784CONFIG_ZLIB_INFLATE=y 805CONFIG_ZLIB_INFLATE=y
785CONFIG_PLIST=y
786CONFIG_HAS_IOMEM=y 806CONFIG_HAS_IOMEM=y
787CONFIG_HAS_IOPORT=y 807CONFIG_HAS_IOPORT=y
788CONFIG_HAS_DMA=y 808CONFIG_HAS_DMA=y
789CONFIG_HAVE_LMB=y 809CONFIG_HAVE_LMB=y
810CONFIG_NLATTR=y
790 811
791# 812#
792# Kernel hacking 813# Kernel hacking
@@ -806,13 +827,24 @@ CONFIG_FRAME_WARN=1024
806# CONFIG_RCU_CPU_STALL_DETECTOR is not set 827# CONFIG_RCU_CPU_STALL_DETECTOR is not set
807# CONFIG_LATENCYTOP is not set 828# CONFIG_LATENCYTOP is not set
808CONFIG_HAVE_FUNCTION_TRACER=y 829CONFIG_HAVE_FUNCTION_TRACER=y
830CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
809CONFIG_HAVE_DYNAMIC_FTRACE=y 831CONFIG_HAVE_DYNAMIC_FTRACE=y
810CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 832CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
833CONFIG_TRACING_SUPPORT=y
811 834
812# 835#
813# Tracers 836# Tracers
814# 837#
815# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 838# CONFIG_FUNCTION_TRACER is not set
839# CONFIG_SCHED_TRACER is not set
840# CONFIG_CONTEXT_SWITCH_TRACER is not set
841# CONFIG_EVENT_TRACER is not set
842# CONFIG_BOOT_TRACER is not set
843# CONFIG_TRACE_BRANCH_PROFILING is not set
844# CONFIG_STACK_TRACER is not set
845# CONFIG_KMEMTRACE is not set
846# CONFIG_WORKQUEUE_TRACER is not set
847# CONFIG_BLK_DEV_IO_TRACE is not set
816# CONFIG_SAMPLES is not set 848# CONFIG_SAMPLES is not set
817CONFIG_HAVE_ARCH_KGDB=y 849CONFIG_HAVE_ARCH_KGDB=y
818CONFIG_PRINT_STACK_DEPTH=64 850CONFIG_PRINT_STACK_DEPTH=64
@@ -903,6 +935,7 @@ CONFIG_CRYPTO=y
903# Compression 935# Compression
904# 936#
905# CONFIG_CRYPTO_DEFLATE is not set 937# CONFIG_CRYPTO_DEFLATE is not set
938# CONFIG_CRYPTO_ZLIB is not set
906# CONFIG_CRYPTO_LZO is not set 939# CONFIG_CRYPTO_LZO is not set
907 940
908# 941#
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index adc756e1f252..5bb1b8eb0b49 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:39 2009 4# Wed May 13 17:22:00 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_PHYS_64BIT is not set 19# CONFIG_PHYS_64BIT is not set
19CONFIG_ALTIVEC=y 20CONFIG_ALTIVEC=y
@@ -57,6 +58,7 @@ CONFIG_GENERIC_BUG=y
57CONFIG_DEFAULT_UIMAGE=y 58CONFIG_DEFAULT_UIMAGE=y
58# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
59# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
61CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
61 63
62# 64#
@@ -71,11 +73,21 @@ CONFIG_SWAP=y
71CONFIG_SYSVIPC=y 73CONFIG_SYSVIPC=y
72CONFIG_SYSVIPC_SYSCTL=y 74CONFIG_SYSVIPC_SYSCTL=y
73CONFIG_POSIX_MQUEUE=y 75CONFIG_POSIX_MQUEUE=y
76CONFIG_POSIX_MQUEUE_SYSCTL=y
74CONFIG_BSD_PROCESS_ACCT=y 77CONFIG_BSD_PROCESS_ACCT=y
75# CONFIG_BSD_PROCESS_ACCT_V3 is not set 78# CONFIG_BSD_PROCESS_ACCT_V3 is not set
76# CONFIG_TASKSTATS is not set 79# CONFIG_TASKSTATS is not set
77CONFIG_AUDIT=y 80CONFIG_AUDIT=y
78# CONFIG_AUDITSYSCALL is not set 81# CONFIG_AUDITSYSCALL is not set
82
83#
84# RCU Subsystem
85#
86CONFIG_CLASSIC_RCU=y
87# CONFIG_TREE_RCU is not set
88# CONFIG_PREEMPT_RCU is not set
89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_PREEMPT_RCU_TRACE is not set
79CONFIG_IKCONFIG=y 91CONFIG_IKCONFIG=y
80CONFIG_IKCONFIG_PROC=y 92CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
@@ -91,22 +103,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
91# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
92CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 105CONFIG_INITRAMFS_SOURCE=""
106CONFIG_RD_GZIP=y
107# CONFIG_RD_BZIP2 is not set
108# CONFIG_RD_LZMA is not set
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
111CONFIG_ANON_INODES=y
96CONFIG_EMBEDDED=y 112CONFIG_EMBEDDED=y
97CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
99CONFIG_KALLSYMS_ALL=y 115CONFIG_KALLSYMS_ALL=y
100CONFIG_KALLSYMS_STRIP_GENERATED=y
101CONFIG_KALLSYMS_EXTRA_PASS=y 116CONFIG_KALLSYMS_EXTRA_PASS=y
117# CONFIG_STRIP_ASM_SYMS is not set
102CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 119CONFIG_PRINTK=y
104CONFIG_BUG=y 120CONFIG_BUG=y
105CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
106CONFIG_COMPAT_BRK=y
107CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
108CONFIG_FUTEX=y 123CONFIG_FUTEX=y
109CONFIG_ANON_INODES=y
110CONFIG_EPOLL=y 124CONFIG_EPOLL=y
111CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
112CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -116,10 +130,12 @@ CONFIG_AIO=y
116CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
117CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
118CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133CONFIG_COMPAT_BRK=y
119# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
120CONFIG_SLUB=y 135CONFIG_SLUB=y
121# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
122# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
123CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
124# CONFIG_KPROBES is not set 140# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -128,6 +144,7 @@ CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y 144CONFIG_HAVE_KRETPROBES=y
129CONFIG_HAVE_ARCH_TRACEHOOK=y 145CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_USE_GENERIC_SMP_HELPERS=y 146CONFIG_USE_GENERIC_SMP_HELPERS=y
147# CONFIG_SLOW_WORK is not set
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 148# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 149CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 150CONFIG_RT_MUTEXES=y
@@ -141,7 +158,6 @@ CONFIG_MODVERSIONS=y
141CONFIG_STOP_MACHINE=y 158CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 159CONFIG_BLOCK=y
143CONFIG_LBD=y 160CONFIG_LBD=y
144# CONFIG_BLK_DEV_IO_TRACE is not set
145# CONFIG_BLK_DEV_BSG is not set 161# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set 162# CONFIG_BLK_DEV_INTEGRITY is not set
147 163
@@ -157,18 +173,11 @@ CONFIG_IOSCHED_CFQ=y
157CONFIG_DEFAULT_CFQ=y 173CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 174# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 175CONFIG_DEFAULT_IOSCHED="cfq"
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
165# CONFIG_FREEZER is not set 176# CONFIG_FREEZER is not set
166 177
167# 178#
168# Platform support 179# Platform support
169# 180#
170CONFIG_PPC_MULTIPLATFORM=y
171CONFIG_CLASSIC32=y
172# CONFIG_PPC_CHRP is not set 181# CONFIG_PPC_CHRP is not set
173# CONFIG_MPC5121_ADS is not set 182# CONFIG_MPC5121_ADS is not set
174# CONFIG_MPC5121_GENERIC is not set 183# CONFIG_MPC5121_GENERIC is not set
@@ -183,9 +192,12 @@ CONFIG_PPC_86xx=y
183CONFIG_MPC8641_HPCN=y 192CONFIG_MPC8641_HPCN=y
184CONFIG_SBC8641D=y 193CONFIG_SBC8641D=y
185CONFIG_MPC8610_HPCD=y 194CONFIG_MPC8610_HPCD=y
195# CONFIG_GEF_PPC9A is not set
196# CONFIG_GEF_SBC310 is not set
186CONFIG_GEF_SBC610=y 197CONFIG_GEF_SBC610=y
187CONFIG_MPC8641=y 198CONFIG_MPC8641=y
188CONFIG_MPC8610=y 199CONFIG_MPC8610=y
200CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
189# CONFIG_IPIC is not set 201# CONFIG_IPIC is not set
190CONFIG_MPIC=y 202CONFIG_MPIC=y
191# CONFIG_MPIC_WEIRD is not set 203# CONFIG_MPIC_WEIRD is not set
@@ -247,9 +259,12 @@ CONFIG_ZONE_DMA_FLAG=1
247CONFIG_BOUNCE=y 259CONFIG_BOUNCE=y
248CONFIG_VIRT_TO_BUS=y 260CONFIG_VIRT_TO_BUS=y
249CONFIG_UNEVICTABLE_LRU=y 261CONFIG_UNEVICTABLE_LRU=y
262CONFIG_HAVE_MLOCK=y
263CONFIG_HAVE_MLOCKED_PAGE_BIT=y
250CONFIG_PPC_4K_PAGES=y 264CONFIG_PPC_4K_PAGES=y
251# CONFIG_PPC_16K_PAGES is not set 265# CONFIG_PPC_16K_PAGES is not set
252# CONFIG_PPC_64K_PAGES is not set 266# CONFIG_PPC_64K_PAGES is not set
267# CONFIG_PPC_256K_PAGES is not set
253CONFIG_FORCE_MAX_ZONEORDER=11 268CONFIG_FORCE_MAX_ZONEORDER=11
254CONFIG_PROC_DEVICETREE=y 269CONFIG_PROC_DEVICETREE=y
255# CONFIG_CMDLINE_BOOL is not set 270# CONFIG_CMDLINE_BOOL is not set
@@ -276,6 +291,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
276# CONFIG_PCI_LEGACY is not set 291# CONFIG_PCI_LEGACY is not set
277# CONFIG_PCI_DEBUG is not set 292# CONFIG_PCI_DEBUG is not set
278# CONFIG_PCI_STUB is not set 293# CONFIG_PCI_STUB is not set
294# CONFIG_PCI_IOV is not set
279# CONFIG_PCCARD is not set 295# CONFIG_PCCARD is not set
280# CONFIG_HOTPLUG_PCI is not set 296# CONFIG_HOTPLUG_PCI is not set
281CONFIG_HAS_RAPIDIO=y 297CONFIG_HAS_RAPIDIO=y
@@ -299,7 +315,6 @@ CONFIG_NET=y
299# 315#
300# Networking options 316# Networking options
301# 317#
302CONFIG_COMPAT_NET_DEV_OPS=y
303CONFIG_PACKET=y 318CONFIG_PACKET=y
304# CONFIG_PACKET_MMAP is not set 319# CONFIG_PACKET_MMAP is not set
305CONFIG_UNIX=y 320CONFIG_UNIX=y
@@ -387,6 +402,7 @@ CONFIG_SCTP_HMAC_MD5=y
387# CONFIG_LAPB is not set 402# CONFIG_LAPB is not set
388# CONFIG_ECONET is not set 403# CONFIG_ECONET is not set
389# CONFIG_WAN_ROUTER is not set 404# CONFIG_WAN_ROUTER is not set
405# CONFIG_PHONET is not set
390# CONFIG_NET_SCHED is not set 406# CONFIG_NET_SCHED is not set
391# CONFIG_DCB is not set 407# CONFIG_DCB is not set
392 408
@@ -399,7 +415,6 @@ CONFIG_SCTP_HMAC_MD5=y
399# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
400# CONFIG_BT is not set 416# CONFIG_BT is not set
401# CONFIG_AF_RXRPC is not set 417# CONFIG_AF_RXRPC is not set
402# CONFIG_PHONET is not set
403CONFIG_FIB_RULES=y 418CONFIG_FIB_RULES=y
404CONFIG_WIRELESS=y 419CONFIG_WIRELESS=y
405# CONFIG_CFG80211 is not set 420# CONFIG_CFG80211 is not set
@@ -454,13 +469,20 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
454# CONFIG_BLK_DEV_HD is not set 469# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 470CONFIG_MISC_DEVICES=y
456# CONFIG_PHANTOM is not set 471# CONFIG_PHANTOM is not set
457# CONFIG_EEPROM_93CX6 is not set
458# CONFIG_SGI_IOC4 is not set 472# CONFIG_SGI_IOC4 is not set
459# CONFIG_TIFM_CORE is not set 473# CONFIG_TIFM_CORE is not set
460# CONFIG_ICS932S401 is not set 474# CONFIG_ICS932S401 is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 475# CONFIG_ENCLOSURE_SERVICES is not set
462# CONFIG_HP_ILO is not set 476# CONFIG_HP_ILO is not set
477# CONFIG_ISL29003 is not set
463# CONFIG_C2PORT is not set 478# CONFIG_C2PORT is not set
479
480#
481# EEPROM support
482#
483# CONFIG_EEPROM_AT24 is not set
484CONFIG_EEPROM_LEGACY=y
485# CONFIG_EEPROM_93CX6 is not set
464CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 487# CONFIG_IDE is not set
466 488
@@ -519,9 +541,11 @@ CONFIG_SCSI_LOWLEVEL=y
519# CONFIG_MEGARAID_NEWGEN is not set 541# CONFIG_MEGARAID_NEWGEN is not set
520# CONFIG_MEGARAID_LEGACY is not set 542# CONFIG_MEGARAID_LEGACY is not set
521# CONFIG_MEGARAID_SAS is not set 543# CONFIG_MEGARAID_SAS is not set
544# CONFIG_SCSI_MPT2SAS is not set
522# CONFIG_SCSI_HPTIOP is not set 545# CONFIG_SCSI_HPTIOP is not set
523# CONFIG_SCSI_BUSLOGIC is not set 546# CONFIG_SCSI_BUSLOGIC is not set
524# CONFIG_LIBFC is not set 547# CONFIG_LIBFC is not set
548# CONFIG_LIBFCOE is not set
525# CONFIG_FCOE is not set 549# CONFIG_FCOE is not set
526# CONFIG_SCSI_DMX3191D is not set 550# CONFIG_SCSI_DMX3191D is not set
527# CONFIG_SCSI_EATA is not set 551# CONFIG_SCSI_EATA is not set
@@ -544,6 +568,7 @@ CONFIG_SCSI_LOWLEVEL=y
544# CONFIG_SCSI_DEBUG is not set 568# CONFIG_SCSI_DEBUG is not set
545# CONFIG_SCSI_SRP is not set 569# CONFIG_SCSI_SRP is not set
546# CONFIG_SCSI_DH is not set 570# CONFIG_SCSI_DH is not set
571# CONFIG_SCSI_OSD_INITIATOR is not set
547CONFIG_ATA=y 572CONFIG_ATA=y
548# CONFIG_ATA_NONSTANDARD is not set 573# CONFIG_ATA_NONSTANDARD is not set
549CONFIG_SATA_PMP=y 574CONFIG_SATA_PMP=y
@@ -620,6 +645,7 @@ CONFIG_PATA_ALI=y
620# CONFIG_I2O is not set 645# CONFIG_I2O is not set
621# CONFIG_MACINTOSH_DRIVERS is not set 646# CONFIG_MACINTOSH_DRIVERS is not set
622CONFIG_NETDEVICES=y 647CONFIG_NETDEVICES=y
648CONFIG_COMPAT_NET_DEV_OPS=y
623CONFIG_DUMMY=y 649CONFIG_DUMMY=y
624# CONFIG_BONDING is not set 650# CONFIG_BONDING is not set
625# CONFIG_MACVLAN is not set 651# CONFIG_MACVLAN is not set
@@ -653,6 +679,8 @@ CONFIG_MII=y
653# CONFIG_SUNGEM is not set 679# CONFIG_SUNGEM is not set
654# CONFIG_CASSINI is not set 680# CONFIG_CASSINI is not set
655# CONFIG_NET_VENDOR_3COM is not set 681# CONFIG_NET_VENDOR_3COM is not set
682# CONFIG_ETHOC is not set
683# CONFIG_DNET is not set
656# CONFIG_NET_TULIP is not set 684# CONFIG_NET_TULIP is not set
657# CONFIG_HP100 is not set 685# CONFIG_HP100 is not set
658# CONFIG_IBM_NEW_EMAC_ZMII is not set 686# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -672,6 +700,7 @@ CONFIG_NETDEV_1000=y
672# CONFIG_E1000E is not set 700# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 701# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 702# CONFIG_IGB is not set
703# CONFIG_IGBVF is not set
675# CONFIG_NS83820 is not set 704# CONFIG_NS83820 is not set
676# CONFIG_HAMACHI is not set 705# CONFIG_HAMACHI is not set
677# CONFIG_YELLOWFIN is not set 706# CONFIG_YELLOWFIN is not set
@@ -682,11 +711,12 @@ CONFIG_NETDEV_1000=y
682# CONFIG_VIA_VELOCITY is not set 711# CONFIG_VIA_VELOCITY is not set
683# CONFIG_TIGON3 is not set 712# CONFIG_TIGON3 is not set
684# CONFIG_BNX2 is not set 713# CONFIG_BNX2 is not set
714CONFIG_FSL_PQ_MDIO=y
685CONFIG_GIANFAR=y 715CONFIG_GIANFAR=y
686# CONFIG_MV643XX_ETH is not set
687# CONFIG_QLA3XXX is not set 716# CONFIG_QLA3XXX is not set
688# CONFIG_ATL1 is not set 717# CONFIG_ATL1 is not set
689# CONFIG_ATL1E is not set 718# CONFIG_ATL1E is not set
719# CONFIG_ATL1C is not set
690# CONFIG_JME is not set 720# CONFIG_JME is not set
691CONFIG_NETDEV_10000=y 721CONFIG_NETDEV_10000=y
692# CONFIG_CHELSIO_T1 is not set 722# CONFIG_CHELSIO_T1 is not set
@@ -696,6 +726,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
696# CONFIG_IXGBE is not set 726# CONFIG_IXGBE is not set
697# CONFIG_IXGB is not set 727# CONFIG_IXGB is not set
698# CONFIG_S2IO is not set 728# CONFIG_S2IO is not set
729# CONFIG_VXGE is not set
699# CONFIG_MYRI10GE is not set 730# CONFIG_MYRI10GE is not set
700# CONFIG_NETXEN_NIC is not set 731# CONFIG_NETXEN_NIC is not set
701# CONFIG_NIU is not set 732# CONFIG_NIU is not set
@@ -705,6 +736,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
705# CONFIG_BNX2X is not set 736# CONFIG_BNX2X is not set
706# CONFIG_QLGE is not set 737# CONFIG_QLGE is not set
707# CONFIG_SFC is not set 738# CONFIG_SFC is not set
739# CONFIG_BE2NET is not set
708# CONFIG_TR is not set 740# CONFIG_TR is not set
709 741
710# 742#
@@ -712,7 +744,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
712# 744#
713# CONFIG_WLAN_PRE80211 is not set 745# CONFIG_WLAN_PRE80211 is not set
714# CONFIG_WLAN_80211 is not set 746# CONFIG_WLAN_80211 is not set
715# CONFIG_IWLWIFI_LEDS is not set
716 747
717# 748#
718# Enable WiMAX (Networking options) to see the WiMAX drivers 749# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -879,12 +910,9 @@ CONFIG_I2C_MPC=y
879# Miscellaneous I2C Chip support 910# Miscellaneous I2C Chip support
880# 911#
881# CONFIG_DS1682 is not set 912# CONFIG_DS1682 is not set
882# CONFIG_EEPROM_AT24 is not set
883CONFIG_EEPROM_LEGACY=y
884# CONFIG_SENSORS_PCF8574 is not set 913# CONFIG_SENSORS_PCF8574 is not set
885# CONFIG_PCF8575 is not set 914# CONFIG_PCF8575 is not set
886# CONFIG_SENSORS_PCA9539 is not set 915# CONFIG_SENSORS_PCA9539 is not set
887# CONFIG_SENSORS_PCF8591 is not set
888# CONFIG_SENSORS_MAX6875 is not set 916# CONFIG_SENSORS_MAX6875 is not set
889# CONFIG_SENSORS_TSL2550 is not set 917# CONFIG_SENSORS_TSL2550 is not set
890# CONFIG_I2C_DEBUG_CORE is not set 918# CONFIG_I2C_DEBUG_CORE is not set
@@ -963,7 +991,7 @@ CONFIG_VIDEO_MEDIA=m
963# 991#
964# CONFIG_MEDIA_ATTACH is not set 992# CONFIG_MEDIA_ATTACH is not set
965CONFIG_MEDIA_TUNER=m 993CONFIG_MEDIA_TUNER=m
966# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 994# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
967CONFIG_MEDIA_TUNER_SIMPLE=m 995CONFIG_MEDIA_TUNER_SIMPLE=m
968CONFIG_MEDIA_TUNER_TDA8290=m 996CONFIG_MEDIA_TUNER_TDA8290=m
969CONFIG_MEDIA_TUNER_TDA9887=m 997CONFIG_MEDIA_TUNER_TDA9887=m
@@ -972,6 +1000,7 @@ CONFIG_MEDIA_TUNER_TEA5767=m
972CONFIG_MEDIA_TUNER_MT20XX=m 1000CONFIG_MEDIA_TUNER_MT20XX=m
973CONFIG_MEDIA_TUNER_XC2028=m 1001CONFIG_MEDIA_TUNER_XC2028=m
974CONFIG_MEDIA_TUNER_XC5000=m 1002CONFIG_MEDIA_TUNER_XC5000=m
1003CONFIG_MEDIA_TUNER_MC44S803=m
975# CONFIG_DVB_DYNAMIC_MINORS is not set 1004# CONFIG_DVB_DYNAMIC_MINORS is not set
976CONFIG_DVB_CAPTURE_DRIVERS=y 1005CONFIG_DVB_CAPTURE_DRIVERS=y
977 1006
@@ -1011,103 +1040,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
1011# 1040#
1012# Supported DVB Frontends 1041# Supported DVB Frontends
1013# 1042#
1014
1015#
1016# Customise DVB Frontends
1017#
1018# CONFIG_DVB_FE_CUSTOMISE is not set 1043# CONFIG_DVB_FE_CUSTOMISE is not set
1019
1020#
1021# Multistandard (satellite) frontends
1022#
1023# CONFIG_DVB_STB0899 is not set
1024# CONFIG_DVB_STB6100 is not set
1025
1026#
1027# DVB-S (satellite) frontends
1028#
1029# CONFIG_DVB_CX24110 is not set
1030# CONFIG_DVB_CX24123 is not set
1031# CONFIG_DVB_MT312 is not set
1032# CONFIG_DVB_S5H1420 is not set
1033# CONFIG_DVB_STV0288 is not set
1034# CONFIG_DVB_STB6000 is not set
1035# CONFIG_DVB_STV0299 is not set
1036# CONFIG_DVB_TDA8083 is not set
1037# CONFIG_DVB_TDA10086 is not set
1038# CONFIG_DVB_TDA8261 is not set
1039# CONFIG_DVB_VES1X93 is not set
1040# CONFIG_DVB_TUNER_ITD1000 is not set
1041# CONFIG_DVB_TUNER_CX24113 is not set
1042# CONFIG_DVB_TDA826X is not set
1043# CONFIG_DVB_TUA6100 is not set
1044# CONFIG_DVB_CX24116 is not set
1045# CONFIG_DVB_SI21XX is not set
1046
1047#
1048# DVB-T (terrestrial) frontends
1049#
1050# CONFIG_DVB_SP8870 is not set
1051# CONFIG_DVB_SP887X is not set
1052# CONFIG_DVB_CX22700 is not set
1053# CONFIG_DVB_CX22702 is not set
1054# CONFIG_DVB_DRX397XD is not set
1055# CONFIG_DVB_L64781 is not set
1056# CONFIG_DVB_TDA1004X is not set
1057# CONFIG_DVB_NXT6000 is not set
1058# CONFIG_DVB_MT352 is not set
1059# CONFIG_DVB_ZL10353 is not set
1060# CONFIG_DVB_DIB3000MB is not set
1061# CONFIG_DVB_DIB3000MC is not set
1062# CONFIG_DVB_DIB7000M is not set
1063# CONFIG_DVB_DIB7000P is not set
1064# CONFIG_DVB_TDA10048 is not set
1065
1066#
1067# DVB-C (cable) frontends
1068#
1069# CONFIG_DVB_VES1820 is not set
1070# CONFIG_DVB_TDA10021 is not set
1071# CONFIG_DVB_TDA10023 is not set
1072# CONFIG_DVB_STV0297 is not set
1073
1074#
1075# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
1076#
1077# CONFIG_DVB_NXT200X is not set
1078# CONFIG_DVB_OR51211 is not set
1079# CONFIG_DVB_OR51132 is not set
1080# CONFIG_DVB_BCM3510 is not set
1081# CONFIG_DVB_LGDT330X is not set
1082# CONFIG_DVB_LGDT3304 is not set
1083# CONFIG_DVB_S5H1409 is not set
1084# CONFIG_DVB_AU8522 is not set
1085# CONFIG_DVB_S5H1411 is not set
1086
1087#
1088# ISDB-T (terrestrial) frontends
1089#
1090# CONFIG_DVB_S921 is not set
1091
1092#
1093# Digital terrestrial only tuners/PLL
1094#
1095# CONFIG_DVB_PLL is not set
1096# CONFIG_DVB_TUNER_DIB0070 is not set
1097
1098#
1099# SEC control devices for DVB-S
1100#
1101# CONFIG_DVB_LNBP21 is not set
1102# CONFIG_DVB_ISL6405 is not set
1103# CONFIG_DVB_ISL6421 is not set
1104# CONFIG_DVB_LGS8GL5 is not set
1105
1106#
1107# Tools to develop new frontends
1108#
1109# CONFIG_DVB_DUMMY_FE is not set
1110# CONFIG_DVB_AF9013 is not set
1111CONFIG_DAB=y 1044CONFIG_DAB=y
1112# CONFIG_USB_DABUSB is not set 1045# CONFIG_USB_DABUSB is not set
1113 1046
@@ -1187,6 +1120,8 @@ CONFIG_SND_PCI=y
1187# CONFIG_SND_INDIGO is not set 1120# CONFIG_SND_INDIGO is not set
1188# CONFIG_SND_INDIGOIO is not set 1121# CONFIG_SND_INDIGOIO is not set
1189# CONFIG_SND_INDIGODJ is not set 1122# CONFIG_SND_INDIGODJ is not set
1123# CONFIG_SND_INDIGOIOX is not set
1124# CONFIG_SND_INDIGODJX is not set
1190# CONFIG_SND_EMU10K1 is not set 1125# CONFIG_SND_EMU10K1 is not set
1191# CONFIG_SND_EMU10K1X is not set 1126# CONFIG_SND_EMU10K1X is not set
1192# CONFIG_SND_ENS1370 is not set 1127# CONFIG_SND_ENS1370 is not set
@@ -1241,15 +1176,17 @@ CONFIG_USB_HID=y
1241# 1176#
1242# Special HID drivers 1177# Special HID drivers
1243# 1178#
1244CONFIG_HID_COMPAT=y
1245CONFIG_HID_A4TECH=y 1179CONFIG_HID_A4TECH=y
1246CONFIG_HID_APPLE=y 1180CONFIG_HID_APPLE=y
1247CONFIG_HID_BELKIN=y 1181CONFIG_HID_BELKIN=y
1248CONFIG_HID_CHERRY=y 1182CONFIG_HID_CHERRY=y
1249CONFIG_HID_CHICONY=y 1183CONFIG_HID_CHICONY=y
1250CONFIG_HID_CYPRESS=y 1184CONFIG_HID_CYPRESS=y
1185# CONFIG_DRAGONRISE_FF is not set
1251CONFIG_HID_EZKEY=y 1186CONFIG_HID_EZKEY=y
1187# CONFIG_HID_KYE is not set
1252CONFIG_HID_GYRATION=y 1188CONFIG_HID_GYRATION=y
1189# CONFIG_HID_KENSINGTON is not set
1253CONFIG_HID_LOGITECH=y 1190CONFIG_HID_LOGITECH=y
1254# CONFIG_LOGITECH_FF is not set 1191# CONFIG_LOGITECH_FF is not set
1255# CONFIG_LOGIRUMBLEPAD2_FF is not set 1192# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1322,11 +1259,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1322# CONFIG_USB_TMC is not set 1259# CONFIG_USB_TMC is not set
1323 1260
1324# 1261#
1325# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1262# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1326# 1263#
1327 1264
1328# 1265#
1329# see USB_STORAGE Help for more information 1266# also be needed; see USB_STORAGE Help for more info
1330# 1267#
1331CONFIG_USB_STORAGE=y 1268CONFIG_USB_STORAGE=y
1332# CONFIG_USB_STORAGE_DEBUG is not set 1269# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1368,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1368# CONFIG_USB_LED is not set 1305# CONFIG_USB_LED is not set
1369# CONFIG_USB_CYPRESS_CY7C63 is not set 1306# CONFIG_USB_CYPRESS_CY7C63 is not set
1370# CONFIG_USB_CYTHERM is not set 1307# CONFIG_USB_CYTHERM is not set
1371# CONFIG_USB_PHIDGET is not set
1372# CONFIG_USB_IDMOUSE is not set 1308# CONFIG_USB_IDMOUSE is not set
1373# CONFIG_USB_FTDI_ELAN is not set 1309# CONFIG_USB_FTDI_ELAN is not set
1374# CONFIG_USB_APPLEDISPLAY is not set 1310# CONFIG_USB_APPLEDISPLAY is not set
@@ -1385,6 +1321,7 @@ CONFIG_USB_STORAGE=y
1385# OTG and related infrastructure 1321# OTG and related infrastructure
1386# 1322#
1387# CONFIG_USB_GPIO_VBUS is not set 1323# CONFIG_USB_GPIO_VBUS is not set
1324# CONFIG_NOP_USB_XCEIV is not set
1388# CONFIG_UWB is not set 1325# CONFIG_UWB is not set
1389# CONFIG_MMC is not set 1326# CONFIG_MMC is not set
1390# CONFIG_MEMSTICK is not set 1327# CONFIG_MEMSTICK is not set
@@ -1446,8 +1383,9 @@ CONFIG_RTC_DRV_CMOS=y
1446# 1383#
1447# on-CPU RTC drivers 1384# on-CPU RTC drivers
1448# 1385#
1449# CONFIG_RTC_DRV_PPC is not set 1386# CONFIG_RTC_DRV_GENERIC is not set
1450# CONFIG_DMADEVICES is not set 1387# CONFIG_DMADEVICES is not set
1388# CONFIG_AUXDISPLAY is not set
1451# CONFIG_UIO is not set 1389# CONFIG_UIO is not set
1452# CONFIG_STAGING is not set 1390# CONFIG_STAGING is not set
1453 1391
@@ -1458,6 +1396,7 @@ CONFIG_EXT2_FS=y
1458# CONFIG_EXT2_FS_XATTR is not set 1396# CONFIG_EXT2_FS_XATTR is not set
1459# CONFIG_EXT2_FS_XIP is not set 1397# CONFIG_EXT2_FS_XIP is not set
1460CONFIG_EXT3_FS=y 1398CONFIG_EXT3_FS=y
1399# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1461CONFIG_EXT3_FS_XATTR=y 1400CONFIG_EXT3_FS_XATTR=y
1462# CONFIG_EXT3_FS_POSIX_ACL is not set 1401# CONFIG_EXT3_FS_POSIX_ACL is not set
1463# CONFIG_EXT3_FS_SECURITY is not set 1402# CONFIG_EXT3_FS_SECURITY is not set
@@ -1481,6 +1420,11 @@ CONFIG_INOTIFY_USER=y
1481# CONFIG_FUSE_FS is not set 1420# CONFIG_FUSE_FS is not set
1482 1421
1483# 1422#
1423# Caches
1424#
1425# CONFIG_FSCACHE is not set
1426
1427#
1484# CD-ROM/DVD Filesystems 1428# CD-ROM/DVD Filesystems
1485# 1429#
1486CONFIG_ISO9660_FS=m 1430CONFIG_ISO9660_FS=m
@@ -1535,6 +1479,7 @@ CONFIG_SYSV_FS=m
1535CONFIG_UFS_FS=m 1479CONFIG_UFS_FS=m
1536# CONFIG_UFS_FS_WRITE is not set 1480# CONFIG_UFS_FS_WRITE is not set
1537# CONFIG_UFS_DEBUG is not set 1481# CONFIG_UFS_DEBUG is not set
1482# CONFIG_NILFS2_FS is not set
1538CONFIG_NETWORK_FILESYSTEMS=y 1483CONFIG_NETWORK_FILESYSTEMS=y
1539CONFIG_NFS_FS=y 1484CONFIG_NFS_FS=y
1540CONFIG_NFS_V3=y 1485CONFIG_NFS_V3=y
@@ -1550,7 +1495,6 @@ CONFIG_EXPORTFS=y
1550CONFIG_NFS_COMMON=y 1495CONFIG_NFS_COMMON=y
1551CONFIG_SUNRPC=y 1496CONFIG_SUNRPC=y
1552CONFIG_SUNRPC_GSS=y 1497CONFIG_SUNRPC_GSS=y
1553# CONFIG_SUNRPC_REGISTER_V4 is not set
1554CONFIG_RPCSEC_GSS_KRB5=y 1498CONFIG_RPCSEC_GSS_KRB5=y
1555# CONFIG_RPCSEC_GSS_SPKM3 is not set 1499# CONFIG_RPCSEC_GSS_SPKM3 is not set
1556# CONFIG_SMB_FS is not set 1500# CONFIG_SMB_FS is not set
@@ -1621,6 +1565,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1621# CONFIG_NLS_KOI8_U is not set 1565# CONFIG_NLS_KOI8_U is not set
1622CONFIG_NLS_UTF8=m 1566CONFIG_NLS_UTF8=m
1623# CONFIG_DLM is not set 1567# CONFIG_DLM is not set
1568# CONFIG_BINARY_PRINTF is not set
1624 1569
1625# 1570#
1626# Library routines 1571# Library routines
@@ -1635,11 +1580,12 @@ CONFIG_CRC32=y
1635# CONFIG_CRC7 is not set 1580# CONFIG_CRC7 is not set
1636CONFIG_LIBCRC32C=m 1581CONFIG_LIBCRC32C=m
1637CONFIG_ZLIB_INFLATE=y 1582CONFIG_ZLIB_INFLATE=y
1638CONFIG_PLIST=y 1583CONFIG_DECOMPRESS_GZIP=y
1639CONFIG_HAS_IOMEM=y 1584CONFIG_HAS_IOMEM=y
1640CONFIG_HAS_IOPORT=y 1585CONFIG_HAS_IOPORT=y
1641CONFIG_HAS_DMA=y 1586CONFIG_HAS_DMA=y
1642CONFIG_HAVE_LMB=y 1587CONFIG_HAVE_LMB=y
1588CONFIG_NLATTR=y
1643 1589
1644# 1590#
1645# Kernel hacking 1591# Kernel hacking
@@ -1657,6 +1603,9 @@ CONFIG_DEBUG_KERNEL=y
1657CONFIG_DETECT_SOFTLOCKUP=y 1603CONFIG_DETECT_SOFTLOCKUP=y
1658# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1604# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1659CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1605CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1606CONFIG_DETECT_HUNG_TASK=y
1607# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1608CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1660CONFIG_SCHED_DEBUG=y 1609CONFIG_SCHED_DEBUG=y
1661# CONFIG_SCHEDSTATS is not set 1610# CONFIG_SCHEDSTATS is not set
1662# CONFIG_TIMER_STATS is not set 1611# CONFIG_TIMER_STATS is not set
@@ -1687,9 +1636,12 @@ CONFIG_DEBUG_INFO=y
1687# CONFIG_FAULT_INJECTION is not set 1636# CONFIG_FAULT_INJECTION is not set
1688# CONFIG_LATENCYTOP is not set 1637# CONFIG_LATENCYTOP is not set
1689CONFIG_SYSCTL_SYSCALL_CHECK=y 1638CONFIG_SYSCTL_SYSCALL_CHECK=y
1639# CONFIG_DEBUG_PAGEALLOC is not set
1690CONFIG_HAVE_FUNCTION_TRACER=y 1640CONFIG_HAVE_FUNCTION_TRACER=y
1641CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1691CONFIG_HAVE_DYNAMIC_FTRACE=y 1642CONFIG_HAVE_DYNAMIC_FTRACE=y
1692CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1643CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1644CONFIG_TRACING_SUPPORT=y
1693 1645
1694# 1646#
1695# Tracers 1647# Tracers
@@ -1697,17 +1649,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1697# CONFIG_FUNCTION_TRACER is not set 1649# CONFIG_FUNCTION_TRACER is not set
1698# CONFIG_SCHED_TRACER is not set 1650# CONFIG_SCHED_TRACER is not set
1699# CONFIG_CONTEXT_SWITCH_TRACER is not set 1651# CONFIG_CONTEXT_SWITCH_TRACER is not set
1652# CONFIG_EVENT_TRACER is not set
1700# CONFIG_BOOT_TRACER is not set 1653# CONFIG_BOOT_TRACER is not set
1701# CONFIG_TRACE_BRANCH_PROFILING is not set 1654# CONFIG_TRACE_BRANCH_PROFILING is not set
1702# CONFIG_STACK_TRACER is not set 1655# CONFIG_STACK_TRACER is not set
1703# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1656# CONFIG_KMEMTRACE is not set
1657# CONFIG_WORKQUEUE_TRACER is not set
1658# CONFIG_BLK_DEV_IO_TRACE is not set
1704# CONFIG_SAMPLES is not set 1659# CONFIG_SAMPLES is not set
1705CONFIG_HAVE_ARCH_KGDB=y 1660CONFIG_HAVE_ARCH_KGDB=y
1706# CONFIG_KGDB is not set 1661# CONFIG_KGDB is not set
1707CONFIG_PRINT_STACK_DEPTH=64 1662CONFIG_PRINT_STACK_DEPTH=64
1708# CONFIG_DEBUG_STACKOVERFLOW is not set 1663# CONFIG_DEBUG_STACKOVERFLOW is not set
1709# CONFIG_DEBUG_STACK_USAGE is not set 1664# CONFIG_DEBUG_STACK_USAGE is not set
1710# CONFIG_DEBUG_PAGEALLOC is not set
1711# CONFIG_CODE_PATCHING_SELFTEST is not set 1665# CONFIG_CODE_PATCHING_SELFTEST is not set
1712# CONFIG_FTR_FIXUP_SELFTEST is not set 1666# CONFIG_FTR_FIXUP_SELFTEST is not set
1713# CONFIG_MSI_BITMAP_SELFTEST is not set 1667# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1738,10 +1692,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1738CONFIG_CRYPTO_HASH=y 1692CONFIG_CRYPTO_HASH=y
1739CONFIG_CRYPTO_HASH2=y 1693CONFIG_CRYPTO_HASH2=y
1740CONFIG_CRYPTO_RNG2=y 1694CONFIG_CRYPTO_RNG2=y
1695CONFIG_CRYPTO_PCOMP=y
1741CONFIG_CRYPTO_MANAGER=y 1696CONFIG_CRYPTO_MANAGER=y
1742CONFIG_CRYPTO_MANAGER2=y 1697CONFIG_CRYPTO_MANAGER2=y
1743# CONFIG_CRYPTO_GF128MUL is not set 1698# CONFIG_CRYPTO_GF128MUL is not set
1744# CONFIG_CRYPTO_NULL is not set 1699# CONFIG_CRYPTO_NULL is not set
1700CONFIG_CRYPTO_WORKQUEUE=y
1745# CONFIG_CRYPTO_CRYPTD is not set 1701# CONFIG_CRYPTO_CRYPTD is not set
1746# CONFIG_CRYPTO_AUTHENC is not set 1702# CONFIG_CRYPTO_AUTHENC is not set
1747# CONFIG_CRYPTO_TEST is not set 1703# CONFIG_CRYPTO_TEST is not set
@@ -1810,6 +1766,7 @@ CONFIG_CRYPTO_DES=y
1810# Compression 1766# Compression
1811# 1767#
1812# CONFIG_CRYPTO_DEFLATE is not set 1768# CONFIG_CRYPTO_DEFLATE is not set
1769# CONFIG_CRYPTO_ZLIB is not set
1813# CONFIG_CRYPTO_LZO is not set 1770# CONFIG_CRYPTO_LZO is not set
1814 1771
1815# 1772#
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 4b76321c0ec4..42e64ebc279d 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:41 2009 4# Wed May 13 17:22:01 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -52,6 +52,7 @@ CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53# CONFIG_PPC_DCR_NATIVE is not set 53# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 54# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
@@ -69,6 +70,15 @@ CONFIG_SYSVIPC_SYSCTL=y
69# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
71# CONFIG_AUDIT is not set 72# CONFIG_AUDIT is not set
73
74#
75# RCU Subsystem
76#
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
72# CONFIG_IKCONFIG is not set 82# CONFIG_IKCONFIG is not set
73CONFIG_LOG_BUF_SHIFT=14 83CONFIG_LOG_BUF_SHIFT=14
74CONFIG_GROUP_SCHED=y 84CONFIG_GROUP_SCHED=y
@@ -84,19 +94,19 @@ CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_BLK_DEV_INITRD is not set 94# CONFIG_BLK_DEV_INITRD is not set
85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 95# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
86CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
97CONFIG_ANON_INODES=y
87CONFIG_EMBEDDED=y 98CONFIG_EMBEDDED=y
88# CONFIG_SYSCTL_SYSCALL is not set 99# CONFIG_SYSCTL_SYSCALL is not set
89CONFIG_KALLSYMS=y 100CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 101# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 102# CONFIG_KALLSYMS_EXTRA_PASS is not set
103# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 104CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 105CONFIG_PRINTK=y
94CONFIG_BUG=y 106CONFIG_BUG=y
95# CONFIG_ELF_CORE is not set 107# CONFIG_ELF_CORE is not set
96CONFIG_COMPAT_BRK=y
97# CONFIG_BASE_FULL is not set 108# CONFIG_BASE_FULL is not set
98# CONFIG_FUTEX is not set 109# CONFIG_FUTEX is not set
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 110CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 111CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 112CONFIG_TIMERFD=y
@@ -105,10 +115,12 @@ CONFIG_SHMEM=y
105CONFIG_AIO=y 115CONFIG_AIO=y
106# CONFIG_VM_EVENT_COUNTERS is not set 116# CONFIG_VM_EVENT_COUNTERS is not set
107CONFIG_SLUB_DEBUG=y 117CONFIG_SLUB_DEBUG=y
118CONFIG_COMPAT_BRK=y
108# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
109CONFIG_SLUB=y 120CONFIG_SLUB=y
110# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
111# CONFIG_PROFILING is not set 122# CONFIG_PROFILING is not set
123# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 124CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y 126CONFIG_HAVE_IOREMAP_PROT=y
@@ -116,13 +128,13 @@ CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 129CONFIG_HAVE_ARCH_TRACEHOOK=y
118CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
131# CONFIG_SLOW_WORK is not set
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
121CONFIG_BASE_SMALL=1 134CONFIG_BASE_SMALL=1
122# CONFIG_MODULES is not set 135# CONFIG_MODULES is not set
123CONFIG_BLOCK=y 136CONFIG_BLOCK=y
124# CONFIG_LBD is not set 137# CONFIG_LBD is not set
125# CONFIG_BLK_DEV_IO_TRACE is not set
126# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
128 140
@@ -138,11 +150,6 @@ CONFIG_DEFAULT_DEADLINE=y
138# CONFIG_DEFAULT_CFQ is not set 150# CONFIG_DEFAULT_CFQ is not set
139# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="deadline" 152CONFIG_DEFAULT_IOSCHED="deadline"
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
146# CONFIG_FREEZER is not set 153# CONFIG_FREEZER is not set
147 154
148# 155#
@@ -240,9 +247,12 @@ CONFIG_ZONE_DMA_FLAG=1
240CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
241CONFIG_VIRT_TO_BUS=y 248CONFIG_VIRT_TO_BUS=y
242CONFIG_UNEVICTABLE_LRU=y 249CONFIG_UNEVICTABLE_LRU=y
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
243CONFIG_PPC_4K_PAGES=y 252CONFIG_PPC_4K_PAGES=y
244# CONFIG_PPC_16K_PAGES is not set 253# CONFIG_PPC_16K_PAGES is not set
245# CONFIG_PPC_64K_PAGES is not set 254# CONFIG_PPC_64K_PAGES is not set
255# CONFIG_PPC_256K_PAGES is not set
246CONFIG_FORCE_MAX_ZONEORDER=11 256CONFIG_FORCE_MAX_ZONEORDER=11
247CONFIG_PROC_DEVICETREE=y 257CONFIG_PROC_DEVICETREE=y
248# CONFIG_CMDLINE_BOOL is not set 258# CONFIG_CMDLINE_BOOL is not set
@@ -277,14 +287,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
277CONFIG_KERNEL_START=0xc0000000 287CONFIG_KERNEL_START=0xc0000000
278CONFIG_PHYSICAL_START=0x00000000 288CONFIG_PHYSICAL_START=0x00000000
279CONFIG_TASK_SIZE=0x80000000 289CONFIG_TASK_SIZE=0x80000000
280CONFIG_CONSISTENT_START=0xfd000000
281CONFIG_CONSISTENT_SIZE=0x00200000
282CONFIG_NET=y 290CONFIG_NET=y
283 291
284# 292#
285# Networking options 293# Networking options
286# 294#
287CONFIG_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
@@ -335,6 +342,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
335# CONFIG_LAPB is not set 342# CONFIG_LAPB is not set
336# CONFIG_ECONET is not set 343# CONFIG_ECONET is not set
337# CONFIG_WAN_ROUTER is not set 344# CONFIG_WAN_ROUTER is not set
345# CONFIG_PHONET is not set
338# CONFIG_NET_SCHED is not set 346# CONFIG_NET_SCHED is not set
339# CONFIG_DCB is not set 347# CONFIG_DCB is not set
340 348
@@ -347,7 +355,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_IRDA is not set 355# CONFIG_IRDA is not set
348# CONFIG_BT is not set 356# CONFIG_BT is not set
349# CONFIG_AF_RXRPC is not set 357# CONFIG_AF_RXRPC is not set
350# CONFIG_PHONET is not set
351CONFIG_WIRELESS=y 358CONFIG_WIRELESS=y
352# CONFIG_CFG80211 is not set 359# CONFIG_CFG80211 is not set
353CONFIG_WIRELESS_OLD_REGULATORY=y 360CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -450,7 +457,6 @@ CONFIG_MTD_PHYSMAP_OF=y
450# LPDDR flash memory drivers 457# LPDDR flash memory drivers
451# 458#
452# CONFIG_MTD_LPDDR is not set 459# CONFIG_MTD_LPDDR is not set
453# CONFIG_MTD_QINFO_PROBE is not set
454 460
455# 461#
456# UBI - Unsorted block images 462# UBI - Unsorted block images
@@ -474,6 +480,7 @@ CONFIG_HAVE_IDE=y
474# CONFIG_MD is not set 480# CONFIG_MD is not set
475# CONFIG_MACINTOSH_DRIVERS is not set 481# CONFIG_MACINTOSH_DRIVERS is not set
476CONFIG_NETDEVICES=y 482CONFIG_NETDEVICES=y
483CONFIG_COMPAT_NET_DEV_OPS=y
477# CONFIG_DUMMY is not set 484# CONFIG_DUMMY is not set
478# CONFIG_BONDING is not set 485# CONFIG_BONDING is not set
479# CONFIG_MACVLAN is not set 486# CONFIG_MACVLAN is not set
@@ -502,6 +509,8 @@ CONFIG_DAVICOM_PHY=y
502# CONFIG_MDIO_BITBANG is not set 509# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 510CONFIG_NET_ETHERNET=y
504CONFIG_MII=y 511CONFIG_MII=y
512# CONFIG_ETHOC is not set
513# CONFIG_DNET is not set
505# CONFIG_IBM_NEW_EMAC_ZMII is not set 514# CONFIG_IBM_NEW_EMAC_ZMII is not set
506# CONFIG_IBM_NEW_EMAC_RGMII is not set 515# CONFIG_IBM_NEW_EMAC_RGMII is not set
507# CONFIG_IBM_NEW_EMAC_TAH is not set 516# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -522,7 +531,6 @@ CONFIG_FS_ENET_MDIO_FEC=y
522# 531#
523# CONFIG_WLAN_PRE80211 is not set 532# CONFIG_WLAN_PRE80211 is not set
524# CONFIG_WLAN_80211 is not set 533# CONFIG_WLAN_80211 is not set
525# CONFIG_IWLWIFI_LEDS is not set
526 534
527# 535#
528# Enable WiMAX (Networking options) to see the WiMAX drivers 536# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -573,6 +581,7 @@ CONFIG_UNIX98_PTYS=y
573# CONFIG_HVC_UDBG is not set 581# CONFIG_HVC_UDBG is not set
574# CONFIG_IPMI_HANDLER is not set 582# CONFIG_IPMI_HANDLER is not set
575CONFIG_HW_RANDOM=y 583CONFIG_HW_RANDOM=y
584# CONFIG_HW_RANDOM_TIMERIOMEM is not set
576# CONFIG_NVRAM is not set 585# CONFIG_NVRAM is not set
577CONFIG_GEN_RTC=y 586CONFIG_GEN_RTC=y
578# CONFIG_GEN_RTC_X is not set 587# CONFIG_GEN_RTC_X is not set
@@ -642,6 +651,7 @@ CONFIG_DAB=y
642# CONFIG_EDAC is not set 651# CONFIG_EDAC is not set
643# CONFIG_RTC_CLASS is not set 652# CONFIG_RTC_CLASS is not set
644# CONFIG_DMADEVICES is not set 653# CONFIG_DMADEVICES is not set
654# CONFIG_AUXDISPLAY is not set
645# CONFIG_UIO is not set 655# CONFIG_UIO is not set
646# CONFIG_STAGING is not set 656# CONFIG_STAGING is not set
647 657
@@ -666,6 +676,11 @@ CONFIG_FILE_LOCKING=y
666# CONFIG_FUSE_FS is not set 676# CONFIG_FUSE_FS is not set
667 677
668# 678#
679# Caches
680#
681# CONFIG_FSCACHE is not set
682
683#
669# CD-ROM/DVD Filesystems 684# CD-ROM/DVD Filesystems
670# 685#
671# CONFIG_ISO9660_FS is not set 686# CONFIG_ISO9660_FS is not set
@@ -709,6 +724,7 @@ CONFIG_CRAMFS=y
709# CONFIG_ROMFS_FS is not set 724# CONFIG_ROMFS_FS is not set
710# CONFIG_SYSV_FS is not set 725# CONFIG_SYSV_FS is not set
711# CONFIG_UFS_FS is not set 726# CONFIG_UFS_FS is not set
727# CONFIG_NILFS2_FS is not set
712CONFIG_NETWORK_FILESYSTEMS=y 728CONFIG_NETWORK_FILESYSTEMS=y
713CONFIG_NFS_FS=y 729CONFIG_NFS_FS=y
714CONFIG_NFS_V3=y 730CONFIG_NFS_V3=y
@@ -720,7 +736,6 @@ CONFIG_LOCKD=y
720CONFIG_LOCKD_V4=y 736CONFIG_LOCKD_V4=y
721CONFIG_NFS_COMMON=y 737CONFIG_NFS_COMMON=y
722CONFIG_SUNRPC=y 738CONFIG_SUNRPC=y
723# CONFIG_SUNRPC_REGISTER_V4 is not set
724# CONFIG_RPCSEC_GSS_KRB5 is not set 739# CONFIG_RPCSEC_GSS_KRB5 is not set
725# CONFIG_RPCSEC_GSS_SPKM3 is not set 740# CONFIG_RPCSEC_GSS_SPKM3 is not set
726# CONFIG_SMB_FS is not set 741# CONFIG_SMB_FS is not set
@@ -752,6 +767,7 @@ CONFIG_MSDOS_PARTITION=y
752# CONFIG_SYSV68_PARTITION is not set 767# CONFIG_SYSV68_PARTITION is not set
753# CONFIG_NLS is not set 768# CONFIG_NLS is not set
754# CONFIG_DLM is not set 769# CONFIG_DLM is not set
770# CONFIG_BINARY_PRINTF is not set
755 771
756# 772#
757# Library routines 773# Library routines
@@ -769,6 +785,7 @@ CONFIG_HAS_IOMEM=y
769CONFIG_HAS_IOPORT=y 785CONFIG_HAS_IOPORT=y
770CONFIG_HAS_DMA=y 786CONFIG_HAS_DMA=y
771CONFIG_HAVE_LMB=y 787CONFIG_HAVE_LMB=y
788CONFIG_NLATTR=y
772 789
773# 790#
774# Kernel hacking 791# Kernel hacking
@@ -786,6 +803,9 @@ CONFIG_DEBUG_KERNEL=y
786CONFIG_DETECT_SOFTLOCKUP=y 803CONFIG_DETECT_SOFTLOCKUP=y
787# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 804# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
788CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 805CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
806CONFIG_DETECT_HUNG_TASK=y
807# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
808CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
789CONFIG_SCHED_DEBUG=y 809CONFIG_SCHED_DEBUG=y
790# CONFIG_SCHEDSTATS is not set 810# CONFIG_SCHEDSTATS is not set
791# CONFIG_TIMER_STATS is not set 811# CONFIG_TIMER_STATS is not set
@@ -812,9 +832,12 @@ CONFIG_DEBUG_INFO=y
812# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 832# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
813# CONFIG_FAULT_INJECTION is not set 833# CONFIG_FAULT_INJECTION is not set
814# CONFIG_LATENCYTOP is not set 834# CONFIG_LATENCYTOP is not set
835# CONFIG_DEBUG_PAGEALLOC is not set
815CONFIG_HAVE_FUNCTION_TRACER=y 836CONFIG_HAVE_FUNCTION_TRACER=y
837CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
816CONFIG_HAVE_DYNAMIC_FTRACE=y 838CONFIG_HAVE_DYNAMIC_FTRACE=y
817CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 839CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
840CONFIG_TRACING_SUPPORT=y
818 841
819# 842#
820# Tracers 843# Tracers
@@ -822,17 +845,19 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
822# CONFIG_FUNCTION_TRACER is not set 845# CONFIG_FUNCTION_TRACER is not set
823# CONFIG_SCHED_TRACER is not set 846# CONFIG_SCHED_TRACER is not set
824# CONFIG_CONTEXT_SWITCH_TRACER is not set 847# CONFIG_CONTEXT_SWITCH_TRACER is not set
848# CONFIG_EVENT_TRACER is not set
825# CONFIG_BOOT_TRACER is not set 849# CONFIG_BOOT_TRACER is not set
826# CONFIG_TRACE_BRANCH_PROFILING is not set 850# CONFIG_TRACE_BRANCH_PROFILING is not set
827# CONFIG_STACK_TRACER is not set 851# CONFIG_STACK_TRACER is not set
828# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 852# CONFIG_KMEMTRACE is not set
853# CONFIG_WORKQUEUE_TRACER is not set
854# CONFIG_BLK_DEV_IO_TRACE is not set
829# CONFIG_SAMPLES is not set 855# CONFIG_SAMPLES is not set
830CONFIG_HAVE_ARCH_KGDB=y 856CONFIG_HAVE_ARCH_KGDB=y
831# CONFIG_KGDB is not set 857# CONFIG_KGDB is not set
832CONFIG_PRINT_STACK_DEPTH=64 858CONFIG_PRINT_STACK_DEPTH=64
833# CONFIG_DEBUG_STACKOVERFLOW is not set 859# CONFIG_DEBUG_STACKOVERFLOW is not set
834# CONFIG_DEBUG_STACK_USAGE is not set 860# CONFIG_DEBUG_STACK_USAGE is not set
835# CONFIG_DEBUG_PAGEALLOC is not set
836# CONFIG_CODE_PATCHING_SELFTEST is not set 861# CONFIG_CODE_PATCHING_SELFTEST is not set
837# CONFIG_FTR_FIXUP_SELFTEST is not set 862# CONFIG_FTR_FIXUP_SELFTEST is not set
838# CONFIG_MSI_BITMAP_SELFTEST is not set 863# CONFIG_MSI_BITMAP_SELFTEST is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index fdded96633a1..129d80860f2a 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:42 2009 4# Wed May 13 17:22:02 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set 57# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set 58# CONFIG_PPC_DCR_MMIO is not set
59CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59 61
60# 62#
@@ -71,6 +73,15 @@ CONFIG_SYSVIPC_SYSCTL=y
71# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
72# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
73# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
76
77#
78# RCU Subsystem
79#
80CONFIG_CLASSIC_RCU=y
81# CONFIG_TREE_RCU is not set
82# CONFIG_PREEMPT_RCU is not set
83# CONFIG_TREE_RCU_TRACE is not set
84# CONFIG_PREEMPT_RCU_TRACE is not set
74CONFIG_IKCONFIG=y 85CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 86CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=14 87CONFIG_LOG_BUF_SHIFT=14
@@ -81,22 +92,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_NAMESPACES is not set 92# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 93CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 94CONFIG_INITRAMFS_SOURCE=""
95CONFIG_RD_GZIP=y
96# CONFIG_RD_BZIP2 is not set
97# CONFIG_RD_LZMA is not set
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 98CONFIG_CC_OPTIMIZE_FOR_SIZE=y
85CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
86CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 102CONFIG_SYSCTL_SYSCALL=y
88CONFIG_KALLSYMS=y 103CONFIG_KALLSYMS=y
89CONFIG_KALLSYMS_ALL=y 104CONFIG_KALLSYMS_ALL=y
90CONFIG_KALLSYMS_STRIP_GENERATED=y
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 105# CONFIG_KALLSYMS_EXTRA_PASS is not set
106# CONFIG_STRIP_ASM_SYMS is not set
92CONFIG_HOTPLUG=y 107CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 108CONFIG_PRINTK=y
94CONFIG_BUG=y 109CONFIG_BUG=y
95CONFIG_ELF_CORE=y 110CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
97CONFIG_BASE_FULL=y 111CONFIG_BASE_FULL=y
98CONFIG_FUTEX=y 112CONFIG_FUTEX=y
99CONFIG_ANON_INODES=y
100CONFIG_EPOLL=y 113CONFIG_EPOLL=y
101CONFIG_SIGNALFD=y 114CONFIG_SIGNALFD=y
102CONFIG_TIMERFD=y 115CONFIG_TIMERFD=y
@@ -106,10 +119,12 @@ CONFIG_AIO=y
106CONFIG_VM_EVENT_COUNTERS=y 119CONFIG_VM_EVENT_COUNTERS=y
107CONFIG_PCI_QUIRKS=y 120CONFIG_PCI_QUIRKS=y
108CONFIG_SLUB_DEBUG=y 121CONFIG_SLUB_DEBUG=y
122CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 123# CONFIG_SLAB is not set
110CONFIG_SLUB=y 124CONFIG_SLUB=y
111# CONFIG_SLOB is not set 125# CONFIG_SLOB is not set
112# CONFIG_PROFILING is not set 126# CONFIG_PROFILING is not set
127# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 128CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 129CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y 130CONFIG_HAVE_IOREMAP_PROT=y
@@ -117,6 +132,7 @@ CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 132CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 133CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_CLK=y 134CONFIG_HAVE_CLK=y
135# CONFIG_SLOW_WORK is not set
120# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 136# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 137CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 138CONFIG_RT_MUTEXES=y
@@ -124,7 +140,6 @@ CONFIG_BASE_SMALL=0
124# CONFIG_MODULES is not set 140# CONFIG_MODULES is not set
125CONFIG_BLOCK=y 141CONFIG_BLOCK=y
126# CONFIG_LBD is not set 142# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_BLK_DEV_INTEGRITY is not set 143# CONFIG_BLK_DEV_INTEGRITY is not set
129 144
130# 145#
@@ -139,18 +154,11 @@ CONFIG_DEFAULT_AS=y
139# CONFIG_DEFAULT_CFQ is not set 154# CONFIG_DEFAULT_CFQ is not set
140# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
141CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="anticipatory"
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
147# CONFIG_FREEZER is not set 157# CONFIG_FREEZER is not set
148 158
149# 159#
150# Platform support 160# Platform support
151# 161#
152CONFIG_PPC_MULTIPLATFORM=y
153CONFIG_CLASSIC32=y
154# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
155# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
156# CONFIG_MPC5121_GENERIC is not set 164# CONFIG_MPC5121_GENERIC is not set
@@ -169,6 +177,8 @@ CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set 177# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set 178# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set 179# CONFIG_EMBEDDED6xx is not set
180# CONFIG_AMIGAONE is not set
181CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
172# CONFIG_IPIC is not set 182# CONFIG_IPIC is not set
173# CONFIG_MPIC is not set 183# CONFIG_MPIC is not set
174# CONFIG_MPIC_WEIRD is not set 184# CONFIG_MPIC_WEIRD is not set
@@ -225,9 +235,12 @@ CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
227CONFIG_UNEVICTABLE_LRU=y 237CONFIG_UNEVICTABLE_LRU=y
238CONFIG_HAVE_MLOCK=y
239CONFIG_HAVE_MLOCKED_PAGE_BIT=y
228CONFIG_PPC_4K_PAGES=y 240CONFIG_PPC_4K_PAGES=y
229# CONFIG_PPC_16K_PAGES is not set 241# CONFIG_PPC_16K_PAGES is not set
230# CONFIG_PPC_64K_PAGES is not set 242# CONFIG_PPC_64K_PAGES is not set
243# CONFIG_PPC_256K_PAGES is not set
231CONFIG_FORCE_MAX_ZONEORDER=11 244CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
@@ -254,6 +267,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
254# CONFIG_PCI_LEGACY is not set 267# CONFIG_PCI_LEGACY is not set
255# CONFIG_PCI_DEBUG is not set 268# CONFIG_PCI_DEBUG is not set
256# CONFIG_PCI_STUB is not set 269# CONFIG_PCI_STUB is not set
270# CONFIG_PCI_IOV is not set
257# CONFIG_PCCARD is not set 271# CONFIG_PCCARD is not set
258# CONFIG_HOTPLUG_PCI is not set 272# CONFIG_HOTPLUG_PCI is not set
259# CONFIG_HAS_RAPIDIO is not set 273# CONFIG_HAS_RAPIDIO is not set
@@ -276,7 +290,6 @@ CONFIG_NET=y
276# 290#
277# Networking options 291# Networking options
278# 292#
279CONFIG_COMPAT_NET_DEV_OPS=y
280CONFIG_PACKET=y 293CONFIG_PACKET=y
281# CONFIG_PACKET_MMAP is not set 294# CONFIG_PACKET_MMAP is not set
282CONFIG_UNIX=y 295CONFIG_UNIX=y
@@ -357,6 +370,7 @@ CONFIG_NETFILTER_ADVANCED=y
357# CONFIG_LLC2 is not set 370# CONFIG_LLC2 is not set
358# CONFIG_IPX is not set 371# CONFIG_IPX is not set
359# CONFIG_ATALK is not set 372# CONFIG_ATALK is not set
373# CONFIG_PHONET is not set
360# CONFIG_NET_SCHED is not set 374# CONFIG_NET_SCHED is not set
361# CONFIG_DCB is not set 375# CONFIG_DCB is not set
362 376
@@ -368,7 +382,6 @@ CONFIG_NETFILTER_ADVANCED=y
368# CONFIG_CAN is not set 382# CONFIG_CAN is not set
369# CONFIG_IRDA is not set 383# CONFIG_IRDA is not set
370# CONFIG_BT is not set 384# CONFIG_BT is not set
371# CONFIG_PHONET is not set
372CONFIG_WIRELESS=y 385CONFIG_WIRELESS=y
373# CONFIG_CFG80211 is not set 386# CONFIG_CFG80211 is not set
374CONFIG_WIRELESS_OLD_REGULATORY=y 387CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -473,7 +486,6 @@ CONFIG_MTD_PHYSMAP_OF=y
473# LPDDR flash memory drivers 486# LPDDR flash memory drivers
474# 487#
475# CONFIG_MTD_LPDDR is not set 488# CONFIG_MTD_LPDDR is not set
476# CONFIG_MTD_QINFO_PROBE is not set
477 489
478# 490#
479# UBI - Unsorted block images 491# UBI - Unsorted block images
@@ -498,10 +510,14 @@ CONFIG_BLK_DEV_LOOP=y
498# CONFIG_BLK_DEV_HD is not set 510# CONFIG_BLK_DEV_HD is not set
499CONFIG_MISC_DEVICES=y 511CONFIG_MISC_DEVICES=y
500# CONFIG_PHANTOM is not set 512# CONFIG_PHANTOM is not set
501# CONFIG_EEPROM_93CX6 is not set
502# CONFIG_SGI_IOC4 is not set 513# CONFIG_SGI_IOC4 is not set
503# CONFIG_ENCLOSURE_SERVICES is not set 514# CONFIG_ENCLOSURE_SERVICES is not set
504# CONFIG_HP_ILO is not set 515# CONFIG_HP_ILO is not set
516
517#
518# EEPROM support
519#
520# CONFIG_EEPROM_93CX6 is not set
505CONFIG_HAVE_IDE=y 521CONFIG_HAVE_IDE=y
506CONFIG_IDE=y 522CONFIG_IDE=y
507 523
@@ -573,6 +589,7 @@ CONFIG_IDE_PROC_FS=y
573# CONFIG_I2O is not set 589# CONFIG_I2O is not set
574# CONFIG_MACINTOSH_DRIVERS is not set 590# CONFIG_MACINTOSH_DRIVERS is not set
575CONFIG_NETDEVICES=y 591CONFIG_NETDEVICES=y
592CONFIG_COMPAT_NET_DEV_OPS=y
576# CONFIG_DUMMY is not set 593# CONFIG_DUMMY is not set
577# CONFIG_BONDING is not set 594# CONFIG_BONDING is not set
578# CONFIG_EQUALIZER is not set 595# CONFIG_EQUALIZER is not set
@@ -606,6 +623,8 @@ CONFIG_MII=y
606# CONFIG_SUNGEM is not set 623# CONFIG_SUNGEM is not set
607# CONFIG_CASSINI is not set 624# CONFIG_CASSINI is not set
608# CONFIG_NET_VENDOR_3COM is not set 625# CONFIG_NET_VENDOR_3COM is not set
626# CONFIG_ETHOC is not set
627# CONFIG_DNET is not set
609# CONFIG_NET_TULIP is not set 628# CONFIG_NET_TULIP is not set
610# CONFIG_HP100 is not set 629# CONFIG_HP100 is not set
611# CONFIG_IBM_NEW_EMAC_ZMII is not set 630# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -628,6 +647,7 @@ CONFIG_NETDEV_1000=y
628# CONFIG_E1000 is not set 647# CONFIG_E1000 is not set
629# CONFIG_E1000E is not set 648# CONFIG_E1000E is not set
630# CONFIG_IGB is not set 649# CONFIG_IGB is not set
650# CONFIG_IGBVF is not set
631# CONFIG_NS83820 is not set 651# CONFIG_NS83820 is not set
632# CONFIG_HAMACHI is not set 652# CONFIG_HAMACHI is not set
633# CONFIG_R8169 is not set 653# CONFIG_R8169 is not set
@@ -637,8 +657,8 @@ CONFIG_NETDEV_1000=y
637# CONFIG_VIA_VELOCITY is not set 657# CONFIG_VIA_VELOCITY is not set
638# CONFIG_TIGON3 is not set 658# CONFIG_TIGON3 is not set
639# CONFIG_BNX2 is not set 659# CONFIG_BNX2 is not set
660# CONFIG_FSL_PQ_MDIO is not set
640# CONFIG_GIANFAR is not set 661# CONFIG_GIANFAR is not set
641# CONFIG_MV643XX_ETH is not set
642# CONFIG_QLA3XXX is not set 662# CONFIG_QLA3XXX is not set
643# CONFIG_ATL1 is not set 663# CONFIG_ATL1 is not set
644# CONFIG_JME is not set 664# CONFIG_JME is not set
@@ -650,6 +670,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
650# CONFIG_IXGBE is not set 670# CONFIG_IXGBE is not set
651# CONFIG_IXGB is not set 671# CONFIG_IXGB is not set
652# CONFIG_S2IO is not set 672# CONFIG_S2IO is not set
673# CONFIG_VXGE is not set
653# CONFIG_MYRI10GE is not set 674# CONFIG_MYRI10GE is not set
654# CONFIG_NETXEN_NIC is not set 675# CONFIG_NETXEN_NIC is not set
655# CONFIG_NIU is not set 676# CONFIG_NIU is not set
@@ -659,6 +680,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_BNX2X is not set 680# CONFIG_BNX2X is not set
660# CONFIG_QLGE is not set 681# CONFIG_QLGE is not set
661# CONFIG_SFC is not set 682# CONFIG_SFC is not set
683# CONFIG_BE2NET is not set
662# CONFIG_TR is not set 684# CONFIG_TR is not set
663 685
664# 686#
@@ -666,7 +688,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
666# 688#
667# CONFIG_WLAN_PRE80211 is not set 689# CONFIG_WLAN_PRE80211 is not set
668# CONFIG_WLAN_80211 is not set 690# CONFIG_WLAN_80211 is not set
669# CONFIG_IWLWIFI_LEDS is not set
670 691
671# 692#
672# Enable WiMAX (Networking options) to see the WiMAX drivers 693# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -720,7 +741,6 @@ CONFIG_MOUSE_PS2=y
720CONFIG_MOUSE_PS2_ALPS=y 741CONFIG_MOUSE_PS2_ALPS=y
721CONFIG_MOUSE_PS2_LOGIPS2PP=y 742CONFIG_MOUSE_PS2_LOGIPS2PP=y
722CONFIG_MOUSE_PS2_SYNAPTICS=y 743CONFIG_MOUSE_PS2_SYNAPTICS=y
723CONFIG_MOUSE_PS2_LIFEBOOK=y
724CONFIG_MOUSE_PS2_TRACKPOINT=y 744CONFIG_MOUSE_PS2_TRACKPOINT=y
725# CONFIG_MOUSE_PS2_ELANTECH is not set 745# CONFIG_MOUSE_PS2_ELANTECH is not set
726# CONFIG_MOUSE_PS2_TOUCHKIT is not set 746# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -773,6 +793,7 @@ CONFIG_LEGACY_PTYS=y
773CONFIG_LEGACY_PTY_COUNT=256 793CONFIG_LEGACY_PTY_COUNT=256
774# CONFIG_IPMI_HANDLER is not set 794# CONFIG_IPMI_HANDLER is not set
775CONFIG_HW_RANDOM=y 795CONFIG_HW_RANDOM=y
796# CONFIG_HW_RANDOM_TIMERIOMEM is not set
776# CONFIG_NVRAM is not set 797# CONFIG_NVRAM is not set
777# CONFIG_GEN_RTC is not set 798# CONFIG_GEN_RTC is not set
778# CONFIG_R3964 is not set 799# CONFIG_R3964 is not set
@@ -868,7 +889,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
868# CONFIG_USB_GADGET_MUSB_HDRC is not set 889# CONFIG_USB_GADGET_MUSB_HDRC is not set
869 890
870# 891#
871# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 892# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
872# 893#
873CONFIG_USB_GADGET=y 894CONFIG_USB_GADGET=y
874# CONFIG_USB_GADGET_DEBUG is not set 895# CONFIG_USB_GADGET_DEBUG is not set
@@ -907,13 +928,16 @@ CONFIG_USB_ETH_RNDIS=y
907# OTG and related infrastructure 928# OTG and related infrastructure
908# 929#
909# CONFIG_USB_GPIO_VBUS is not set 930# CONFIG_USB_GPIO_VBUS is not set
931# CONFIG_NOP_USB_XCEIV is not set
910# CONFIG_MMC is not set 932# CONFIG_MMC is not set
911# CONFIG_MEMSTICK is not set 933# CONFIG_MEMSTICK is not set
912# CONFIG_NEW_LEDS is not set 934# CONFIG_NEW_LEDS is not set
913# CONFIG_ACCESSIBILITY is not set 935# CONFIG_ACCESSIBILITY is not set
914# CONFIG_INFINIBAND is not set 936# CONFIG_INFINIBAND is not set
937# CONFIG_EDAC is not set
915# CONFIG_RTC_CLASS is not set 938# CONFIG_RTC_CLASS is not set
916# CONFIG_DMADEVICES is not set 939# CONFIG_DMADEVICES is not set
940# CONFIG_AUXDISPLAY is not set
917# CONFIG_UIO is not set 941# CONFIG_UIO is not set
918# CONFIG_STAGING is not set 942# CONFIG_STAGING is not set
919 943
@@ -924,6 +948,7 @@ CONFIG_EXT2_FS=y
924# CONFIG_EXT2_FS_XATTR is not set 948# CONFIG_EXT2_FS_XATTR is not set
925# CONFIG_EXT2_FS_XIP is not set 949# CONFIG_EXT2_FS_XIP is not set
926CONFIG_EXT3_FS=y 950CONFIG_EXT3_FS=y
951# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
927CONFIG_EXT3_FS_XATTR=y 952CONFIG_EXT3_FS_XATTR=y
928# CONFIG_EXT3_FS_POSIX_ACL is not set 953# CONFIG_EXT3_FS_POSIX_ACL is not set
929# CONFIG_EXT3_FS_SECURITY is not set 954# CONFIG_EXT3_FS_SECURITY is not set
@@ -945,6 +970,10 @@ CONFIG_AUTOFS4_FS=y
945# CONFIG_FUSE_FS is not set 970# CONFIG_FUSE_FS is not set
946 971
947# 972#
973# Caches
974#
975
976#
948# CD-ROM/DVD Filesystems 977# CD-ROM/DVD Filesystems
949# 978#
950# CONFIG_ISO9660_FS is not set 979# CONFIG_ISO9660_FS is not set
@@ -1059,6 +1088,7 @@ CONFIG_NLS_ISO8859_1=y
1059# CONFIG_NLS_KOI8_R is not set 1088# CONFIG_NLS_KOI8_R is not set
1060# CONFIG_NLS_KOI8_U is not set 1089# CONFIG_NLS_KOI8_U is not set
1061CONFIG_NLS_UTF8=y 1090CONFIG_NLS_UTF8=y
1091# CONFIG_BINARY_PRINTF is not set
1062 1092
1063# 1093#
1064# Library routines 1094# Library routines
@@ -1074,11 +1104,12 @@ CONFIG_CRC32=y
1074# CONFIG_LIBCRC32C is not set 1104# CONFIG_LIBCRC32C is not set
1075CONFIG_ZLIB_INFLATE=y 1105CONFIG_ZLIB_INFLATE=y
1076CONFIG_ZLIB_DEFLATE=y 1106CONFIG_ZLIB_DEFLATE=y
1077CONFIG_PLIST=y 1107CONFIG_DECOMPRESS_GZIP=y
1078CONFIG_HAS_IOMEM=y 1108CONFIG_HAS_IOMEM=y
1079CONFIG_HAS_IOPORT=y 1109CONFIG_HAS_IOPORT=y
1080CONFIG_HAS_DMA=y 1110CONFIG_HAS_DMA=y
1081CONFIG_HAVE_LMB=y 1111CONFIG_HAVE_LMB=y
1112CONFIG_NLATTR=y
1082 1113
1083# 1114#
1084# Kernel hacking 1115# Kernel hacking
@@ -1096,6 +1127,9 @@ CONFIG_DEBUG_KERNEL=y
1096CONFIG_DETECT_SOFTLOCKUP=y 1127CONFIG_DETECT_SOFTLOCKUP=y
1097# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1128# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1098CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1129CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1130CONFIG_DETECT_HUNG_TASK=y
1131# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1132CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1099# CONFIG_SCHED_DEBUG is not set 1133# CONFIG_SCHED_DEBUG is not set
1100# CONFIG_SCHEDSTATS is not set 1134# CONFIG_SCHEDSTATS is not set
1101# CONFIG_TIMER_STATS is not set 1135# CONFIG_TIMER_STATS is not set
@@ -1125,9 +1159,12 @@ CONFIG_DEBUG_INFO=y
1125# CONFIG_FAULT_INJECTION is not set 1159# CONFIG_FAULT_INJECTION is not set
1126# CONFIG_LATENCYTOP is not set 1160# CONFIG_LATENCYTOP is not set
1127CONFIG_SYSCTL_SYSCALL_CHECK=y 1161CONFIG_SYSCTL_SYSCALL_CHECK=y
1162# CONFIG_DEBUG_PAGEALLOC is not set
1128CONFIG_HAVE_FUNCTION_TRACER=y 1163CONFIG_HAVE_FUNCTION_TRACER=y
1164CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1129CONFIG_HAVE_DYNAMIC_FTRACE=y 1165CONFIG_HAVE_DYNAMIC_FTRACE=y
1130CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1166CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1167CONFIG_TRACING_SUPPORT=y
1131 1168
1132# 1169#
1133# Tracers 1170# Tracers
@@ -1135,16 +1172,18 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1135# CONFIG_FUNCTION_TRACER is not set 1172# CONFIG_FUNCTION_TRACER is not set
1136# CONFIG_SCHED_TRACER is not set 1173# CONFIG_SCHED_TRACER is not set
1137# CONFIG_CONTEXT_SWITCH_TRACER is not set 1174# CONFIG_CONTEXT_SWITCH_TRACER is not set
1175# CONFIG_EVENT_TRACER is not set
1138# CONFIG_BOOT_TRACER is not set 1176# CONFIG_BOOT_TRACER is not set
1139# CONFIG_TRACE_BRANCH_PROFILING is not set 1177# CONFIG_TRACE_BRANCH_PROFILING is not set
1140# CONFIG_STACK_TRACER is not set 1178# CONFIG_STACK_TRACER is not set
1141# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1179# CONFIG_KMEMTRACE is not set
1180# CONFIG_WORKQUEUE_TRACER is not set
1181# CONFIG_BLK_DEV_IO_TRACE is not set
1142# CONFIG_SAMPLES is not set 1182# CONFIG_SAMPLES is not set
1143CONFIG_HAVE_ARCH_KGDB=y 1183CONFIG_HAVE_ARCH_KGDB=y
1144CONFIG_PRINT_STACK_DEPTH=64 1184CONFIG_PRINT_STACK_DEPTH=64
1145# CONFIG_DEBUG_STACKOVERFLOW is not set 1185# CONFIG_DEBUG_STACKOVERFLOW is not set
1146# CONFIG_DEBUG_STACK_USAGE is not set 1186# CONFIG_DEBUG_STACK_USAGE is not set
1147# CONFIG_DEBUG_PAGEALLOC is not set
1148# CONFIG_CODE_PATCHING_SELFTEST is not set 1187# CONFIG_CODE_PATCHING_SELFTEST is not set
1149# CONFIG_FTR_FIXUP_SELFTEST is not set 1188# CONFIG_FTR_FIXUP_SELFTEST is not set
1150# CONFIG_MSI_BITMAP_SELFTEST is not set 1189# CONFIG_MSI_BITMAP_SELFTEST is not set
@@ -1175,9 +1214,11 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1175CONFIG_CRYPTO_HASH=y 1214CONFIG_CRYPTO_HASH=y
1176CONFIG_CRYPTO_HASH2=y 1215CONFIG_CRYPTO_HASH2=y
1177CONFIG_CRYPTO_RNG2=y 1216CONFIG_CRYPTO_RNG2=y
1217CONFIG_CRYPTO_PCOMP=y
1178CONFIG_CRYPTO_MANAGER=y 1218CONFIG_CRYPTO_MANAGER=y
1179CONFIG_CRYPTO_MANAGER2=y 1219CONFIG_CRYPTO_MANAGER2=y
1180# CONFIG_CRYPTO_NULL is not set 1220# CONFIG_CRYPTO_NULL is not set
1221CONFIG_CRYPTO_WORKQUEUE=y
1181# CONFIG_CRYPTO_CRYPTD is not set 1222# CONFIG_CRYPTO_CRYPTD is not set
1182# CONFIG_CRYPTO_AUTHENC is not set 1223# CONFIG_CRYPTO_AUTHENC is not set
1183 1224
@@ -1241,6 +1282,7 @@ CONFIG_CRYPTO_DES=y
1241# Compression 1282# Compression
1242# 1283#
1243# CONFIG_CRYPTO_DEFLATE is not set 1284# CONFIG_CRYPTO_DEFLATE is not set
1285# CONFIG_CRYPTO_ZLIB is not set
1244# CONFIG_CRYPTO_LZO is not set 1286# CONFIG_CRYPTO_LZO is not set
1245 1287
1246# 1288#
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index e971db171138..e9f287f313fa 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.29-rc2 3# Linux kernel version: 2.6.30-rc3
4# Mon Jan 26 15:35:44 2009 4# Wed May 13 17:22:03 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18CONFIG_ALTIVEC=y 19CONFIG_ALTIVEC=y
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -56,6 +57,7 @@ CONFIG_GENERIC_BUG=y
56# CONFIG_DEFAULT_UIMAGE is not set 57# CONFIG_DEFAULT_UIMAGE is not set
57# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
58# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
60CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
60 62
61# 63#
@@ -70,9 +72,19 @@ CONFIG_SWAP=y
70CONFIG_SYSVIPC=y 72CONFIG_SYSVIPC=y
71CONFIG_SYSVIPC_SYSCTL=y 73CONFIG_SYSVIPC_SYSCTL=y
72CONFIG_POSIX_MQUEUE=y 74CONFIG_POSIX_MQUEUE=y
75CONFIG_POSIX_MQUEUE_SYSCTL=y
73# CONFIG_BSD_PROCESS_ACCT is not set 76# CONFIG_BSD_PROCESS_ACCT is not set
74# CONFIG_TASKSTATS is not set 77# CONFIG_TASKSTATS is not set
75# CONFIG_AUDIT is not set 78# CONFIG_AUDIT is not set
79
80#
81# RCU Subsystem
82#
83CONFIG_CLASSIC_RCU=y
84# CONFIG_TREE_RCU is not set
85# CONFIG_PREEMPT_RCU is not set
86# CONFIG_TREE_RCU_TRACE is not set
87# CONFIG_PREEMPT_RCU_TRACE is not set
76# CONFIG_IKCONFIG is not set 88# CONFIG_IKCONFIG is not set
77CONFIG_LOG_BUF_SHIFT=14 89CONFIG_LOG_BUF_SHIFT=14
78CONFIG_GROUP_SCHED=y 90CONFIG_GROUP_SCHED=y
@@ -89,22 +101,26 @@ CONFIG_NAMESPACES=y
89# CONFIG_IPC_NS is not set 101# CONFIG_IPC_NS is not set
90# CONFIG_USER_NS is not set 102# CONFIG_USER_NS is not set
91# CONFIG_PID_NS is not set 103# CONFIG_PID_NS is not set
104# CONFIG_NET_NS is not set
92CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 106CONFIG_INITRAMFS_SOURCE=""
107CONFIG_RD_GZIP=y
108CONFIG_RD_BZIP2=y
109CONFIG_RD_LZMA=y
94# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
95CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
112CONFIG_ANON_INODES=y
96# CONFIG_EMBEDDED is not set 113# CONFIG_EMBEDDED is not set
97CONFIG_SYSCTL_SYSCALL=y 114CONFIG_SYSCTL_SYSCALL=y
98CONFIG_KALLSYMS=y 115CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 116# CONFIG_KALLSYMS_EXTRA_PASS is not set
117# CONFIG_STRIP_ASM_SYMS is not set
100CONFIG_HOTPLUG=y 118CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 119CONFIG_PRINTK=y
102CONFIG_BUG=y 120CONFIG_BUG=y
103CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 123CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 124CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
@@ -114,16 +130,19 @@ CONFIG_AIO=y
114CONFIG_VM_EVENT_COUNTERS=y 130CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_PCI_QUIRKS=y 131CONFIG_PCI_QUIRKS=y
116CONFIG_SLUB_DEBUG=y 132CONFIG_SLUB_DEBUG=y
133CONFIG_COMPAT_BRK=y
117# CONFIG_SLAB is not set 134# CONFIG_SLAB is not set
118CONFIG_SLUB=y 135CONFIG_SLUB=y
119# CONFIG_SLOB is not set 136# CONFIG_SLOB is not set
120# CONFIG_PROFILING is not set 137# CONFIG_PROFILING is not set
138# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 140CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y 141CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 142CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 143CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 144CONFIG_HAVE_ARCH_TRACEHOOK=y
145# CONFIG_SLOW_WORK is not set
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
@@ -131,7 +150,6 @@ CONFIG_BASE_SMALL=0
131# CONFIG_MODULES is not set 150# CONFIG_MODULES is not set
132CONFIG_BLOCK=y 151CONFIG_BLOCK=y
133CONFIG_LBD=y 152CONFIG_LBD=y
134# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_BLK_DEV_BSG is not set 153# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set 154# CONFIG_BLK_DEV_INTEGRITY is not set
137 155
@@ -147,18 +165,11 @@ CONFIG_DEFAULT_AS=y
147# CONFIG_DEFAULT_CFQ is not set 165# CONFIG_DEFAULT_CFQ is not set
148# CONFIG_DEFAULT_NOOP is not set 166# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 167CONFIG_DEFAULT_IOSCHED="anticipatory"
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 168# CONFIG_FREEZER is not set
156 169
157# 170#
158# Platform support 171# Platform support
159# 172#
160CONFIG_PPC_MULTIPLATFORM=y
161CONFIG_CLASSIC32=y
162# CONFIG_PPC_CHRP is not set 173# CONFIG_PPC_CHRP is not set
163# CONFIG_MPC5121_ADS is not set 174# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set 175# CONFIG_MPC5121_GENERIC is not set
@@ -178,6 +189,8 @@ CONFIG_EMBEDDED6xx=y
178CONFIG_PPC_PRPMC2800=y 189CONFIG_PPC_PRPMC2800=y
179# CONFIG_PPC_C2K is not set 190# CONFIG_PPC_C2K is not set
180CONFIG_MV64X60=y 191CONFIG_MV64X60=y
192# CONFIG_AMIGAONE is not set
193CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
181# CONFIG_IPIC is not set 194# CONFIG_IPIC is not set
182# CONFIG_MPIC is not set 195# CONFIG_MPIC is not set
183# CONFIG_MPIC_WEIRD is not set 196# CONFIG_MPIC_WEIRD is not set
@@ -237,9 +250,12 @@ CONFIG_ZONE_DMA_FLAG=1
237CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
238CONFIG_VIRT_TO_BUS=y 251CONFIG_VIRT_TO_BUS=y
239CONFIG_UNEVICTABLE_LRU=y 252CONFIG_UNEVICTABLE_LRU=y
253CONFIG_HAVE_MLOCK=y
254CONFIG_HAVE_MLOCKED_PAGE_BIT=y
240CONFIG_PPC_4K_PAGES=y 255CONFIG_PPC_4K_PAGES=y
241# CONFIG_PPC_16K_PAGES is not set 256# CONFIG_PPC_16K_PAGES is not set
242# CONFIG_PPC_64K_PAGES is not set 257# CONFIG_PPC_64K_PAGES is not set
258# CONFIG_PPC_256K_PAGES is not set
243CONFIG_FORCE_MAX_ZONEORDER=11 259CONFIG_FORCE_MAX_ZONEORDER=11
244CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
245# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
@@ -262,6 +278,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
262# CONFIG_PCI_MSI is not set 278# CONFIG_PCI_MSI is not set
263# CONFIG_PCI_LEGACY is not set 279# CONFIG_PCI_LEGACY is not set
264# CONFIG_PCI_STUB is not set 280# CONFIG_PCI_STUB is not set
281# CONFIG_PCI_IOV is not set
265# CONFIG_PCCARD is not set 282# CONFIG_PCCARD is not set
266# CONFIG_HOTPLUG_PCI is not set 283# CONFIG_HOTPLUG_PCI is not set
267# CONFIG_HAS_RAPIDIO is not set 284# CONFIG_HAS_RAPIDIO is not set
@@ -279,15 +296,11 @@ CONFIG_PAGE_OFFSET=0xc0000000
279CONFIG_KERNEL_START=0xc0000000 296CONFIG_KERNEL_START=0xc0000000
280CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
281CONFIG_TASK_SIZE=0xc0000000 298CONFIG_TASK_SIZE=0xc0000000
282CONFIG_CONSISTENT_START=0xff100000
283CONFIG_CONSISTENT_SIZE=0x00200000
284CONFIG_NET=y 299CONFIG_NET=y
285 300
286# 301#
287# Networking options 302# Networking options
288# 303#
289# CONFIG_NET_NS is not set
290CONFIG_COMPAT_NET_DEV_OPS=y
291CONFIG_PACKET=y 304CONFIG_PACKET=y
292# CONFIG_PACKET_MMAP is not set 305# CONFIG_PACKET_MMAP is not set
293CONFIG_UNIX=y 306CONFIG_UNIX=y
@@ -318,7 +331,7 @@ CONFIG_SYN_COOKIES=y
318CONFIG_INET_XFRM_MODE_TRANSPORT=y 331CONFIG_INET_XFRM_MODE_TRANSPORT=y
319CONFIG_INET_XFRM_MODE_TUNNEL=y 332CONFIG_INET_XFRM_MODE_TUNNEL=y
320CONFIG_INET_XFRM_MODE_BEET=y 333CONFIG_INET_XFRM_MODE_BEET=y
321# CONFIG_INET_LRO is not set 334CONFIG_INET_LRO=y
322CONFIG_INET_DIAG=y 335CONFIG_INET_DIAG=y
323CONFIG_INET_TCP_DIAG=y 336CONFIG_INET_TCP_DIAG=y
324# CONFIG_TCP_CONG_ADVANCED is not set 337# CONFIG_TCP_CONG_ADVANCED is not set
@@ -343,6 +356,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_LAPB is not set 356# CONFIG_LAPB is not set
344# CONFIG_ECONET is not set 357# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set 358# CONFIG_WAN_ROUTER is not set
359# CONFIG_PHONET is not set
346# CONFIG_NET_SCHED is not set 360# CONFIG_NET_SCHED is not set
347# CONFIG_DCB is not set 361# CONFIG_DCB is not set
348 362
@@ -355,7 +369,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_IRDA is not set 369# CONFIG_IRDA is not set
356# CONFIG_BT is not set 370# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set 371# CONFIG_AF_RXRPC is not set
358# CONFIG_PHONET is not set
359CONFIG_WIRELESS=y 372CONFIG_WIRELESS=y
360# CONFIG_CFG80211 is not set 373# CONFIG_CFG80211 is not set
361CONFIG_WIRELESS_OLD_REGULATORY=y 374CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -459,7 +472,6 @@ CONFIG_MTD_PHYSMAP_OF=y
459# LPDDR flash memory drivers 472# LPDDR flash memory drivers
460# 473#
461# CONFIG_MTD_LPDDR is not set 474# CONFIG_MTD_LPDDR is not set
462# CONFIG_MTD_QINFO_PROBE is not set
463 475
464# 476#
465# UBI - Unsorted block images 477# UBI - Unsorted block images
@@ -489,19 +501,27 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
489# CONFIG_BLK_DEV_HD is not set 501# CONFIG_BLK_DEV_HD is not set
490CONFIG_MISC_DEVICES=y 502CONFIG_MISC_DEVICES=y
491# CONFIG_PHANTOM is not set 503# CONFIG_PHANTOM is not set
492# CONFIG_EEPROM_93CX6 is not set
493# CONFIG_SGI_IOC4 is not set 504# CONFIG_SGI_IOC4 is not set
494# CONFIG_TIFM_CORE is not set 505# CONFIG_TIFM_CORE is not set
495# CONFIG_ICS932S401 is not set 506# CONFIG_ICS932S401 is not set
496# CONFIG_ENCLOSURE_SERVICES is not set 507# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set 508# CONFIG_HP_ILO is not set
509# CONFIG_ISL29003 is not set
498# CONFIG_C2PORT is not set 510# CONFIG_C2PORT is not set
511
512#
513# EEPROM support
514#
515# CONFIG_EEPROM_AT24 is not set
516# CONFIG_EEPROM_LEGACY is not set
517# CONFIG_EEPROM_93CX6 is not set
499CONFIG_HAVE_IDE=y 518CONFIG_HAVE_IDE=y
500CONFIG_IDE=y 519CONFIG_IDE=y
501 520
502# 521#
503# Please see Documentation/ide/ide.txt for help/info on IDE drives 522# Please see Documentation/ide/ide.txt for help/info on IDE drives
504# 523#
524CONFIG_IDE_XFER_MODE=y
505# CONFIG_BLK_DEV_IDE_SATA is not set 525# CONFIG_BLK_DEV_IDE_SATA is not set
506CONFIG_IDE_GD=y 526CONFIG_IDE_GD=y
507CONFIG_IDE_GD_ATA=y 527CONFIG_IDE_GD_ATA=y
@@ -605,9 +625,11 @@ CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_MEGARAID_NEWGEN is not set 625# CONFIG_MEGARAID_NEWGEN is not set
606# CONFIG_MEGARAID_LEGACY is not set 626# CONFIG_MEGARAID_LEGACY is not set
607# CONFIG_MEGARAID_SAS is not set 627# CONFIG_MEGARAID_SAS is not set
628# CONFIG_SCSI_MPT2SAS is not set
608# CONFIG_SCSI_HPTIOP is not set 629# CONFIG_SCSI_HPTIOP is not set
609# CONFIG_SCSI_BUSLOGIC is not set 630# CONFIG_SCSI_BUSLOGIC is not set
610# CONFIG_LIBFC is not set 631# CONFIG_LIBFC is not set
632# CONFIG_LIBFCOE is not set
611# CONFIG_FCOE is not set 633# CONFIG_FCOE is not set
612# CONFIG_SCSI_DMX3191D is not set 634# CONFIG_SCSI_DMX3191D is not set
613# CONFIG_SCSI_EATA is not set 635# CONFIG_SCSI_EATA is not set
@@ -630,6 +652,7 @@ CONFIG_SCSI_LOWLEVEL=y
630# CONFIG_SCSI_DEBUG is not set 652# CONFIG_SCSI_DEBUG is not set
631# CONFIG_SCSI_SRP is not set 653# CONFIG_SCSI_SRP is not set
632# CONFIG_SCSI_DH is not set 654# CONFIG_SCSI_DH is not set
655# CONFIG_SCSI_OSD_INITIATOR is not set
633CONFIG_ATA=y 656CONFIG_ATA=y
634# CONFIG_ATA_NONSTANDARD is not set 657# CONFIG_ATA_NONSTANDARD is not set
635CONFIG_SATA_PMP=y 658CONFIG_SATA_PMP=y
@@ -707,6 +730,7 @@ CONFIG_MACINTOSH_DRIVERS=y
707# CONFIG_MAC_EMUMOUSEBTN is not set 730# CONFIG_MAC_EMUMOUSEBTN is not set
708# CONFIG_WINDFARM is not set 731# CONFIG_WINDFARM is not set
709CONFIG_NETDEVICES=y 732CONFIG_NETDEVICES=y
733CONFIG_COMPAT_NET_DEV_OPS=y
710# CONFIG_DUMMY is not set 734# CONFIG_DUMMY is not set
711# CONFIG_BONDING is not set 735# CONFIG_BONDING is not set
712# CONFIG_MACVLAN is not set 736# CONFIG_MACVLAN is not set
@@ -740,6 +764,8 @@ CONFIG_MII=y
740# CONFIG_SUNGEM is not set 764# CONFIG_SUNGEM is not set
741# CONFIG_CASSINI is not set 765# CONFIG_CASSINI is not set
742# CONFIG_NET_VENDOR_3COM is not set 766# CONFIG_NET_VENDOR_3COM is not set
767# CONFIG_ETHOC is not set
768# CONFIG_DNET is not set
743# CONFIG_NET_TULIP is not set 769# CONFIG_NET_TULIP is not set
744# CONFIG_HP100 is not set 770# CONFIG_HP100 is not set
745# CONFIG_IBM_NEW_EMAC_ZMII is not set 771# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -781,6 +807,7 @@ CONFIG_E1000=y
781# CONFIG_E1000E is not set 807# CONFIG_E1000E is not set
782# CONFIG_IP1000 is not set 808# CONFIG_IP1000 is not set
783# CONFIG_IGB is not set 809# CONFIG_IGB is not set
810# CONFIG_IGBVF is not set
784# CONFIG_NS83820 is not set 811# CONFIG_NS83820 is not set
785# CONFIG_HAMACHI is not set 812# CONFIG_HAMACHI is not set
786# CONFIG_YELLOWFIN is not set 813# CONFIG_YELLOWFIN is not set
@@ -795,6 +822,7 @@ CONFIG_MV643XX_ETH=y
795# CONFIG_QLA3XXX is not set 822# CONFIG_QLA3XXX is not set
796# CONFIG_ATL1 is not set 823# CONFIG_ATL1 is not set
797# CONFIG_ATL1E is not set 824# CONFIG_ATL1E is not set
825# CONFIG_ATL1C is not set
798# CONFIG_JME is not set 826# CONFIG_JME is not set
799CONFIG_NETDEV_10000=y 827CONFIG_NETDEV_10000=y
800# CONFIG_CHELSIO_T1 is not set 828# CONFIG_CHELSIO_T1 is not set
@@ -804,6 +832,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
804# CONFIG_IXGBE is not set 832# CONFIG_IXGBE is not set
805# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
806# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
835# CONFIG_VXGE is not set
807# CONFIG_MYRI10GE is not set 836# CONFIG_MYRI10GE is not set
808# CONFIG_NETXEN_NIC is not set 837# CONFIG_NETXEN_NIC is not set
809# CONFIG_NIU is not set 838# CONFIG_NIU is not set
@@ -813,6 +842,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
813# CONFIG_BNX2X is not set 842# CONFIG_BNX2X is not set
814# CONFIG_QLGE is not set 843# CONFIG_QLGE is not set
815# CONFIG_SFC is not set 844# CONFIG_SFC is not set
845# CONFIG_BE2NET is not set
816# CONFIG_TR is not set 846# CONFIG_TR is not set
817 847
818# 848#
@@ -820,7 +850,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
820# 850#
821# CONFIG_WLAN_PRE80211 is not set 851# CONFIG_WLAN_PRE80211 is not set
822# CONFIG_WLAN_80211 is not set 852# CONFIG_WLAN_80211 is not set
823# CONFIG_IWLWIFI_LEDS is not set
824 853
825# 854#
826# Enable WiMAX (Networking options) to see the WiMAX drivers 855# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -975,12 +1004,9 @@ CONFIG_I2C_MV64XXX=y
975# Miscellaneous I2C Chip support 1004# Miscellaneous I2C Chip support
976# 1005#
977# CONFIG_DS1682 is not set 1006# CONFIG_DS1682 is not set
978# CONFIG_EEPROM_AT24 is not set
979# CONFIG_EEPROM_LEGACY is not set
980# CONFIG_SENSORS_PCF8574 is not set 1007# CONFIG_SENSORS_PCF8574 is not set
981# CONFIG_PCF8575 is not set 1008# CONFIG_PCF8575 is not set
982# CONFIG_SENSORS_PCA9539 is not set 1009# CONFIG_SENSORS_PCA9539 is not set
983# CONFIG_SENSORS_PCF8591 is not set
984# CONFIG_SENSORS_MAX6875 is not set 1010# CONFIG_SENSORS_MAX6875 is not set
985# CONFIG_SENSORS_TSL2550 is not set 1011# CONFIG_SENSORS_TSL2550 is not set
986# CONFIG_I2C_DEBUG_CORE is not set 1012# CONFIG_I2C_DEBUG_CORE is not set
@@ -1012,6 +1038,7 @@ CONFIG_HWMON=y
1012# CONFIG_SENSORS_F71805F is not set 1038# CONFIG_SENSORS_F71805F is not set
1013# CONFIG_SENSORS_F71882FG is not set 1039# CONFIG_SENSORS_F71882FG is not set
1014# CONFIG_SENSORS_F75375S is not set 1040# CONFIG_SENSORS_F75375S is not set
1041# CONFIG_SENSORS_G760A is not set
1015# CONFIG_SENSORS_GL518SM is not set 1042# CONFIG_SENSORS_GL518SM is not set
1016# CONFIG_SENSORS_GL520SM is not set 1043# CONFIG_SENSORS_GL520SM is not set
1017# CONFIG_SENSORS_IT87 is not set 1044# CONFIG_SENSORS_IT87 is not set
@@ -1026,11 +1053,14 @@ CONFIG_HWMON=y
1026# CONFIG_SENSORS_LM90 is not set 1053# CONFIG_SENSORS_LM90 is not set
1027# CONFIG_SENSORS_LM92 is not set 1054# CONFIG_SENSORS_LM92 is not set
1028# CONFIG_SENSORS_LM93 is not set 1055# CONFIG_SENSORS_LM93 is not set
1056# CONFIG_SENSORS_LTC4215 is not set
1029# CONFIG_SENSORS_LTC4245 is not set 1057# CONFIG_SENSORS_LTC4245 is not set
1058# CONFIG_SENSORS_LM95241 is not set
1030# CONFIG_SENSORS_MAX1619 is not set 1059# CONFIG_SENSORS_MAX1619 is not set
1031# CONFIG_SENSORS_MAX6650 is not set 1060# CONFIG_SENSORS_MAX6650 is not set
1032# CONFIG_SENSORS_PC87360 is not set 1061# CONFIG_SENSORS_PC87360 is not set
1033# CONFIG_SENSORS_PC87427 is not set 1062# CONFIG_SENSORS_PC87427 is not set
1063# CONFIG_SENSORS_PCF8591 is not set
1034# CONFIG_SENSORS_SIS5595 is not set 1064# CONFIG_SENSORS_SIS5595 is not set
1035# CONFIG_SENSORS_DME1737 is not set 1065# CONFIG_SENSORS_DME1737 is not set
1036# CONFIG_SENSORS_SMSC47M1 is not set 1066# CONFIG_SENSORS_SMSC47M1 is not set
@@ -1127,15 +1157,17 @@ CONFIG_USB_HID=y
1127# 1157#
1128# Special HID drivers 1158# Special HID drivers
1129# 1159#
1130CONFIG_HID_COMPAT=y
1131CONFIG_HID_A4TECH=y 1160CONFIG_HID_A4TECH=y
1132CONFIG_HID_APPLE=y 1161CONFIG_HID_APPLE=y
1133CONFIG_HID_BELKIN=y 1162CONFIG_HID_BELKIN=y
1134CONFIG_HID_CHERRY=y 1163CONFIG_HID_CHERRY=y
1135CONFIG_HID_CHICONY=y 1164CONFIG_HID_CHICONY=y
1136CONFIG_HID_CYPRESS=y 1165CONFIG_HID_CYPRESS=y
1166# CONFIG_DRAGONRISE_FF is not set
1137CONFIG_HID_EZKEY=y 1167CONFIG_HID_EZKEY=y
1168CONFIG_HID_KYE=y
1138CONFIG_HID_GYRATION=y 1169CONFIG_HID_GYRATION=y
1170CONFIG_HID_KENSINGTON=y
1139CONFIG_HID_LOGITECH=y 1171CONFIG_HID_LOGITECH=y
1140# CONFIG_LOGITECH_FF is not set 1172# CONFIG_LOGITECH_FF is not set
1141# CONFIG_LOGIRUMBLEPAD2_FF is not set 1173# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1202,11 +1234,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1202# CONFIG_USB_TMC is not set 1234# CONFIG_USB_TMC is not set
1203 1235
1204# 1236#
1205# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1237# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1206# 1238#
1207 1239
1208# 1240#
1209# see USB_STORAGE Help for more information 1241# also be needed; see USB_STORAGE Help for more info
1210# 1242#
1211# CONFIG_USB_STORAGE is not set 1243# CONFIG_USB_STORAGE is not set
1212# CONFIG_USB_LIBUSUAL is not set 1244# CONFIG_USB_LIBUSUAL is not set
@@ -1236,7 +1268,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1236# CONFIG_USB_LED is not set 1268# CONFIG_USB_LED is not set
1237# CONFIG_USB_CYPRESS_CY7C63 is not set 1269# CONFIG_USB_CYPRESS_CY7C63 is not set
1238# CONFIG_USB_CYTHERM is not set 1270# CONFIG_USB_CYTHERM is not set
1239# CONFIG_USB_PHIDGET is not set
1240# CONFIG_USB_IDMOUSE is not set 1271# CONFIG_USB_IDMOUSE is not set
1241# CONFIG_USB_FTDI_ELAN is not set 1272# CONFIG_USB_FTDI_ELAN is not set
1242# CONFIG_USB_APPLEDISPLAY is not set 1273# CONFIG_USB_APPLEDISPLAY is not set
@@ -1252,6 +1283,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1252# 1283#
1253# OTG and related infrastructure 1284# OTG and related infrastructure
1254# 1285#
1286# CONFIG_NOP_USB_XCEIV is not set
1255# CONFIG_UWB is not set 1287# CONFIG_UWB is not set
1256# CONFIG_MMC is not set 1288# CONFIG_MMC is not set
1257# CONFIG_MEMSTICK is not set 1289# CONFIG_MEMSTICK is not set
@@ -1313,8 +1345,9 @@ CONFIG_RTC_DRV_MAX6900=y
1313# 1345#
1314# on-CPU RTC drivers 1346# on-CPU RTC drivers
1315# 1347#
1316# CONFIG_RTC_DRV_PPC is not set 1348# CONFIG_RTC_DRV_GENERIC is not set
1317# CONFIG_DMADEVICES is not set 1349# CONFIG_DMADEVICES is not set
1350# CONFIG_AUXDISPLAY is not set
1318# CONFIG_UIO is not set 1351# CONFIG_UIO is not set
1319# CONFIG_STAGING is not set 1352# CONFIG_STAGING is not set
1320 1353
@@ -1325,6 +1358,7 @@ CONFIG_EXT2_FS=y
1325# CONFIG_EXT2_FS_XATTR is not set 1358# CONFIG_EXT2_FS_XATTR is not set
1326# CONFIG_EXT2_FS_XIP is not set 1359# CONFIG_EXT2_FS_XIP is not set
1327CONFIG_EXT3_FS=y 1360CONFIG_EXT3_FS=y
1361# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1328CONFIG_EXT3_FS_XATTR=y 1362CONFIG_EXT3_FS_XATTR=y
1329# CONFIG_EXT3_FS_POSIX_ACL is not set 1363# CONFIG_EXT3_FS_POSIX_ACL is not set
1330# CONFIG_EXT3_FS_SECURITY is not set 1364# CONFIG_EXT3_FS_SECURITY is not set
@@ -1348,6 +1382,11 @@ CONFIG_INOTIFY_USER=y
1348# CONFIG_FUSE_FS is not set 1382# CONFIG_FUSE_FS is not set
1349 1383
1350# 1384#
1385# Caches
1386#
1387# CONFIG_FSCACHE is not set
1388
1389#
1351# CD-ROM/DVD Filesystems 1390# CD-ROM/DVD Filesystems
1352# 1391#
1353# CONFIG_ISO9660_FS is not set 1392# CONFIG_ISO9660_FS is not set
@@ -1391,6 +1430,7 @@ CONFIG_MISC_FILESYSTEMS=y
1391# CONFIG_ROMFS_FS is not set 1430# CONFIG_ROMFS_FS is not set
1392# CONFIG_SYSV_FS is not set 1431# CONFIG_SYSV_FS is not set
1393# CONFIG_UFS_FS is not set 1432# CONFIG_UFS_FS is not set
1433# CONFIG_NILFS2_FS is not set
1394CONFIG_NETWORK_FILESYSTEMS=y 1434CONFIG_NETWORK_FILESYSTEMS=y
1395CONFIG_NFS_FS=y 1435CONFIG_NFS_FS=y
1396# CONFIG_NFS_V3 is not set 1436# CONFIG_NFS_V3 is not set
@@ -1400,7 +1440,6 @@ CONFIG_ROOT_NFS=y
1400CONFIG_LOCKD=y 1440CONFIG_LOCKD=y
1401CONFIG_NFS_COMMON=y 1441CONFIG_NFS_COMMON=y
1402CONFIG_SUNRPC=y 1442CONFIG_SUNRPC=y
1403# CONFIG_SUNRPC_REGISTER_V4 is not set
1404# CONFIG_RPCSEC_GSS_KRB5 is not set 1443# CONFIG_RPCSEC_GSS_KRB5 is not set
1405# CONFIG_RPCSEC_GSS_SPKM3 is not set 1444# CONFIG_RPCSEC_GSS_SPKM3 is not set
1406# CONFIG_SMB_FS is not set 1445# CONFIG_SMB_FS is not set
@@ -1432,6 +1471,7 @@ CONFIG_MSDOS_PARTITION=y
1432# CONFIG_SYSV68_PARTITION is not set 1471# CONFIG_SYSV68_PARTITION is not set
1433# CONFIG_NLS is not set 1472# CONFIG_NLS is not set
1434# CONFIG_DLM is not set 1473# CONFIG_DLM is not set
1474# CONFIG_BINARY_PRINTF is not set
1435 1475
1436# 1476#
1437# Library routines 1477# Library routines
@@ -1445,11 +1485,15 @@ CONFIG_CRC_T10DIF=y
1445CONFIG_CRC32=y 1485CONFIG_CRC32=y
1446# CONFIG_CRC7 is not set 1486# CONFIG_CRC7 is not set
1447# CONFIG_LIBCRC32C is not set 1487# CONFIG_LIBCRC32C is not set
1448CONFIG_PLIST=y 1488CONFIG_ZLIB_INFLATE=y
1489CONFIG_DECOMPRESS_GZIP=y
1490CONFIG_DECOMPRESS_BZIP2=y
1491CONFIG_DECOMPRESS_LZMA=y
1449CONFIG_HAS_IOMEM=y 1492CONFIG_HAS_IOMEM=y
1450CONFIG_HAS_IOPORT=y 1493CONFIG_HAS_IOPORT=y
1451CONFIG_HAS_DMA=y 1494CONFIG_HAS_DMA=y
1452CONFIG_HAVE_LMB=y 1495CONFIG_HAVE_LMB=y
1496CONFIG_NLATTR=y
1453 1497
1454# 1498#
1455# Kernel hacking 1499# Kernel hacking
@@ -1471,13 +1515,24 @@ CONFIG_DEBUG_MEMORY_INIT=y
1471# CONFIG_LATENCYTOP is not set 1515# CONFIG_LATENCYTOP is not set
1472CONFIG_SYSCTL_SYSCALL_CHECK=y 1516CONFIG_SYSCTL_SYSCALL_CHECK=y
1473CONFIG_HAVE_FUNCTION_TRACER=y 1517CONFIG_HAVE_FUNCTION_TRACER=y
1518CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1474CONFIG_HAVE_DYNAMIC_FTRACE=y 1519CONFIG_HAVE_DYNAMIC_FTRACE=y
1475CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1520CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521CONFIG_TRACING_SUPPORT=y
1476 1522
1477# 1523#
1478# Tracers 1524# Tracers
1479# 1525#
1480# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1526# CONFIG_FUNCTION_TRACER is not set
1527# CONFIG_SCHED_TRACER is not set
1528# CONFIG_CONTEXT_SWITCH_TRACER is not set
1529# CONFIG_EVENT_TRACER is not set
1530# CONFIG_BOOT_TRACER is not set
1531# CONFIG_TRACE_BRANCH_PROFILING is not set
1532# CONFIG_STACK_TRACER is not set
1533# CONFIG_KMEMTRACE is not set
1534# CONFIG_WORKQUEUE_TRACER is not set
1535# CONFIG_BLK_DEV_IO_TRACE is not set
1481# CONFIG_SAMPLES is not set 1536# CONFIG_SAMPLES is not set
1482CONFIG_HAVE_ARCH_KGDB=y 1537CONFIG_HAVE_ARCH_KGDB=y
1483CONFIG_PRINT_STACK_DEPTH=64 1538CONFIG_PRINT_STACK_DEPTH=64
@@ -1569,6 +1624,7 @@ CONFIG_CRYPTO=y
1569# Compression 1624# Compression
1570# 1625#
1571# CONFIG_CRYPTO_DEFLATE is not set 1626# CONFIG_CRYPTO_DEFLATE is not set
1627# CONFIG_CRYPTO_ZLIB is not set
1572# CONFIG_CRYPTO_LZO is not set 1628# CONFIG_CRYPTO_LZO is not set
1573 1629
1574# 1630#
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 94903465ea12..bd4a8d435c50 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.29-rc6 3# Linux kernel version: 2.6.30-rc3
4# Fri Mar 6 00:09:08 2009 4# Wed May 13 17:22:04 2009
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -14,6 +14,7 @@ CONFIG_6xx=y
14# CONFIG_40x is not set 14# CONFIG_40x is not set
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_PPC_BOOK3S=y
17CONFIG_PPC_FPU=y 18CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set 19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
@@ -54,6 +55,7 @@ CONFIG_GENERIC_BUG=y
54# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
55# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 59CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58 60
59# 61#
@@ -95,17 +97,17 @@ CONFIG_SYSFS_DEPRECATED_V2=y
95# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
96CONFIG_CC_OPTIMIZE_FOR_SIZE=y 98CONFIG_CC_OPTIMIZE_FOR_SIZE=y
97CONFIG_SYSCTL=y 99CONFIG_SYSCTL=y
100CONFIG_ANON_INODES=y
98CONFIG_EMBEDDED=y 101CONFIG_EMBEDDED=y
99CONFIG_SYSCTL_SYSCALL=y 102CONFIG_SYSCTL_SYSCALL=y
100# CONFIG_KALLSYMS is not set 103# CONFIG_KALLSYMS is not set
104# CONFIG_STRIP_ASM_SYMS is not set
101CONFIG_HOTPLUG=y 105CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 106CONFIG_PRINTK=y
103CONFIG_BUG=y 107CONFIG_BUG=y
104CONFIG_ELF_CORE=y 108CONFIG_ELF_CORE=y
105CONFIG_COMPAT_BRK=y
106CONFIG_BASE_FULL=y 109CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 110CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 111CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 112CONFIG_SIGNALFD=y
111CONFIG_TIMERFD=y 113CONFIG_TIMERFD=y
@@ -115,16 +117,19 @@ CONFIG_AIO=y
115CONFIG_VM_EVENT_COUNTERS=y 117CONFIG_VM_EVENT_COUNTERS=y
116CONFIG_PCI_QUIRKS=y 118CONFIG_PCI_QUIRKS=y
117CONFIG_SLUB_DEBUG=y 119CONFIG_SLUB_DEBUG=y
120CONFIG_COMPAT_BRK=y
118# CONFIG_SLAB is not set 121# CONFIG_SLAB is not set
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
125# CONFIG_MARKERS is not set
122CONFIG_HAVE_OPROFILE=y 126CONFIG_HAVE_OPROFILE=y
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y 128CONFIG_HAVE_IOREMAP_PROT=y
125CONFIG_HAVE_KPROBES=y 129CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 130CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 131CONFIG_HAVE_ARCH_TRACEHOOK=y
132# CONFIG_SLOW_WORK is not set
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 133# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
129CONFIG_SLABINFO=y 134CONFIG_SLABINFO=y
130CONFIG_RT_MUTEXES=y 135CONFIG_RT_MUTEXES=y
@@ -137,7 +142,6 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_SRCVERSION_ALL is not set 142# CONFIG_MODULE_SRCVERSION_ALL is not set
138CONFIG_BLOCK=y 143CONFIG_BLOCK=y
139CONFIG_LBD=y 144CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set
141# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set 146# CONFIG_BLK_DEV_INTEGRITY is not set
143 147
@@ -158,8 +162,6 @@ CONFIG_DEFAULT_IOSCHED="cfq"
158# 162#
159# Platform support 163# Platform support
160# 164#
161CONFIG_PPC_MULTIPLATFORM=y
162CONFIG_CLASSIC32=y
163# CONFIG_PPC_CHRP is not set 165# CONFIG_PPC_CHRP is not set
164# CONFIG_MPC5121_ADS is not set 166# CONFIG_MPC5121_ADS is not set
165# CONFIG_MPC5121_GENERIC is not set 167# CONFIG_MPC5121_GENERIC is not set
@@ -181,6 +183,8 @@ CONFIG_STORCENTER=y
181CONFIG_MPC10X_BRIDGE=y 183CONFIG_MPC10X_BRIDGE=y
182CONFIG_MPC10X_OPENPIC=y 184CONFIG_MPC10X_OPENPIC=y
183# CONFIG_MPC10X_STORE_GATHERING is not set 185# CONFIG_MPC10X_STORE_GATHERING is not set
186# CONFIG_AMIGAONE is not set
187CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
184# CONFIG_IPIC is not set 188# CONFIG_IPIC is not set
185CONFIG_MPIC=y 189CONFIG_MPIC=y
186# CONFIG_MPIC_WEIRD is not set 190# CONFIG_MPIC_WEIRD is not set
@@ -239,9 +243,12 @@ CONFIG_ZONE_DMA_FLAG=1
239CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
240CONFIG_VIRT_TO_BUS=y 244CONFIG_VIRT_TO_BUS=y
241CONFIG_UNEVICTABLE_LRU=y 245CONFIG_UNEVICTABLE_LRU=y
246CONFIG_HAVE_MLOCK=y
247CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242CONFIG_PPC_4K_PAGES=y 248CONFIG_PPC_4K_PAGES=y
243# CONFIG_PPC_16K_PAGES is not set 249# CONFIG_PPC_16K_PAGES is not set
244# CONFIG_PPC_64K_PAGES is not set 250# CONFIG_PPC_64K_PAGES is not set
251# CONFIG_PPC_256K_PAGES is not set
245CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
246CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
247CONFIG_CMDLINE_BOOL=y 254CONFIG_CMDLINE_BOOL=y
@@ -266,6 +273,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
266# CONFIG_PCI_MSI is not set 273# CONFIG_PCI_MSI is not set
267# CONFIG_PCI_LEGACY is not set 274# CONFIG_PCI_LEGACY is not set
268# CONFIG_PCI_STUB is not set 275# CONFIG_PCI_STUB is not set
276# CONFIG_PCI_IOV is not set
269# CONFIG_PCCARD is not set 277# CONFIG_PCCARD is not set
270# CONFIG_HOTPLUG_PCI is not set 278# CONFIG_HOTPLUG_PCI is not set
271# CONFIG_HAS_RAPIDIO is not set 279# CONFIG_HAS_RAPIDIO is not set
@@ -288,7 +296,6 @@ CONFIG_NET=y
288# 296#
289# Networking options 297# Networking options
290# 298#
291CONFIG_COMPAT_NET_DEV_OPS=y
292CONFIG_PACKET=m 299CONFIG_PACKET=m
293# CONFIG_PACKET_MMAP is not set 300# CONFIG_PACKET_MMAP is not set
294CONFIG_UNIX=y 301CONFIG_UNIX=y
@@ -339,6 +346,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
339# CONFIG_LAPB is not set 346# CONFIG_LAPB is not set
340# CONFIG_ECONET is not set 347# CONFIG_ECONET is not set
341# CONFIG_WAN_ROUTER is not set 348# CONFIG_WAN_ROUTER is not set
349# CONFIG_PHONET is not set
342# CONFIG_NET_SCHED is not set 350# CONFIG_NET_SCHED is not set
343# CONFIG_DCB is not set 351# CONFIG_DCB is not set
344 352
@@ -351,7 +359,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_IRDA is not set 359# CONFIG_IRDA is not set
352# CONFIG_BT is not set 360# CONFIG_BT is not set
353# CONFIG_AF_RXRPC is not set 361# CONFIG_AF_RXRPC is not set
354# CONFIG_PHONET is not set
355CONFIG_WIRELESS=y 362CONFIG_WIRELESS=y
356# CONFIG_CFG80211 is not set 363# CONFIG_CFG80211 is not set
357CONFIG_WIRELESS_OLD_REGULATORY=y 364CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -486,6 +493,7 @@ CONFIG_MISC_DEVICES=y
486# CONFIG_ICS932S401 is not set 493# CONFIG_ICS932S401 is not set
487# CONFIG_ENCLOSURE_SERVICES is not set 494# CONFIG_ENCLOSURE_SERVICES is not set
488# CONFIG_HP_ILO is not set 495# CONFIG_HP_ILO is not set
496# CONFIG_ISL29003 is not set
489# CONFIG_C2PORT is not set 497# CONFIG_C2PORT is not set
490 498
491# 499#
@@ -500,6 +508,7 @@ CONFIG_IDE=y
500# 508#
501# Please see Documentation/ide/ide.txt for help/info on IDE drives 509# Please see Documentation/ide/ide.txt for help/info on IDE drives
502# 510#
511CONFIG_IDE_XFER_MODE=y
503CONFIG_IDE_TIMINGS=y 512CONFIG_IDE_TIMINGS=y
504# CONFIG_BLK_DEV_IDE_SATA is not set 513# CONFIG_BLK_DEV_IDE_SATA is not set
505CONFIG_IDE_GD=y 514CONFIG_IDE_GD=y
@@ -604,9 +613,11 @@ CONFIG_SCSI_LOWLEVEL=y
604# CONFIG_MEGARAID_NEWGEN is not set 613# CONFIG_MEGARAID_NEWGEN is not set
605# CONFIG_MEGARAID_LEGACY is not set 614# CONFIG_MEGARAID_LEGACY is not set
606# CONFIG_MEGARAID_SAS is not set 615# CONFIG_MEGARAID_SAS is not set
616# CONFIG_SCSI_MPT2SAS is not set
607# CONFIG_SCSI_HPTIOP is not set 617# CONFIG_SCSI_HPTIOP is not set
608# CONFIG_SCSI_BUSLOGIC is not set 618# CONFIG_SCSI_BUSLOGIC is not set
609# CONFIG_LIBFC is not set 619# CONFIG_LIBFC is not set
620# CONFIG_LIBFCOE is not set
610# CONFIG_FCOE is not set 621# CONFIG_FCOE is not set
611# CONFIG_SCSI_DMX3191D is not set 622# CONFIG_SCSI_DMX3191D is not set
612# CONFIG_SCSI_EATA is not set 623# CONFIG_SCSI_EATA is not set
@@ -628,6 +639,7 @@ CONFIG_SCSI_LOWLEVEL=y
628# CONFIG_SCSI_DEBUG is not set 639# CONFIG_SCSI_DEBUG is not set
629# CONFIG_SCSI_SRP is not set 640# CONFIG_SCSI_SRP is not set
630# CONFIG_SCSI_DH is not set 641# CONFIG_SCSI_DH is not set
642# CONFIG_SCSI_OSD_INITIATOR is not set
631# CONFIG_ATA is not set 643# CONFIG_ATA is not set
632CONFIG_MD=y 644CONFIG_MD=y
633CONFIG_BLK_DEV_MD=y 645CONFIG_BLK_DEV_MD=y
@@ -637,7 +649,7 @@ CONFIG_MD_RAID0=y
637CONFIG_MD_RAID1=y 649CONFIG_MD_RAID1=y
638# CONFIG_MD_RAID10 is not set 650# CONFIG_MD_RAID10 is not set
639CONFIG_MD_RAID456=y 651CONFIG_MD_RAID456=y
640CONFIG_MD_RAID5_RESHAPE=y 652CONFIG_MD_RAID6_PQ=y
641# CONFIG_MD_MULTIPATH is not set 653# CONFIG_MD_MULTIPATH is not set
642# CONFIG_MD_FAULTY is not set 654# CONFIG_MD_FAULTY is not set
643# CONFIG_BLK_DEV_DM is not set 655# CONFIG_BLK_DEV_DM is not set
@@ -655,6 +667,7 @@ CONFIG_MD_RAID5_RESHAPE=y
655# CONFIG_I2O is not set 667# CONFIG_I2O is not set
656# CONFIG_MACINTOSH_DRIVERS is not set 668# CONFIG_MACINTOSH_DRIVERS is not set
657CONFIG_NETDEVICES=y 669CONFIG_NETDEVICES=y
670CONFIG_COMPAT_NET_DEV_OPS=y
658CONFIG_DUMMY=m 671CONFIG_DUMMY=m
659# CONFIG_BONDING is not set 672# CONFIG_BONDING is not set
660# CONFIG_MACVLAN is not set 673# CONFIG_MACVLAN is not set
@@ -671,6 +684,7 @@ CONFIG_NETDEV_1000=y
671# CONFIG_E1000E is not set 684# CONFIG_E1000E is not set
672# CONFIG_IP1000 is not set 685# CONFIG_IP1000 is not set
673# CONFIG_IGB is not set 686# CONFIG_IGB is not set
687# CONFIG_IGBVF is not set
674# CONFIG_NS83820 is not set 688# CONFIG_NS83820 is not set
675# CONFIG_HAMACHI is not set 689# CONFIG_HAMACHI is not set
676# CONFIG_YELLOWFIN is not set 690# CONFIG_YELLOWFIN is not set
@@ -681,8 +695,8 @@ CONFIG_R8169=y
681# CONFIG_VIA_VELOCITY is not set 695# CONFIG_VIA_VELOCITY is not set
682# CONFIG_TIGON3 is not set 696# CONFIG_TIGON3 is not set
683# CONFIG_BNX2 is not set 697# CONFIG_BNX2 is not set
698# CONFIG_FSL_PQ_MDIO is not set
684# CONFIG_GIANFAR is not set 699# CONFIG_GIANFAR is not set
685# CONFIG_MV643XX_ETH is not set
686# CONFIG_QLA3XXX is not set 700# CONFIG_QLA3XXX is not set
687# CONFIG_ATL1 is not set 701# CONFIG_ATL1 is not set
688# CONFIG_ATL1E is not set 702# CONFIG_ATL1E is not set
@@ -696,7 +710,6 @@ CONFIG_R8169=y
696# 710#
697# CONFIG_WLAN_PRE80211 is not set 711# CONFIG_WLAN_PRE80211 is not set
698# CONFIG_WLAN_80211 is not set 712# CONFIG_WLAN_80211 is not set
699# CONFIG_IWLWIFI_LEDS is not set
700 713
701# 714#
702# Enable WiMAX (Networking options) to see the WiMAX drivers 715# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -766,6 +779,7 @@ CONFIG_LEGACY_PTY_COUNT=256
766# CONFIG_HVC_UDBG is not set 779# CONFIG_HVC_UDBG is not set
767# CONFIG_IPMI_HANDLER is not set 780# CONFIG_IPMI_HANDLER is not set
768CONFIG_HW_RANDOM=m 781CONFIG_HW_RANDOM=m
782# CONFIG_HW_RANDOM_TIMERIOMEM is not set
769CONFIG_NVRAM=y 783CONFIG_NVRAM=y
770# CONFIG_R3964 is not set 784# CONFIG_R3964 is not set
771# CONFIG_APPLICOM is not set 785# CONFIG_APPLICOM is not set
@@ -831,7 +845,6 @@ CONFIG_I2C_MPC=y
831# CONFIG_SENSORS_PCF8574 is not set 845# CONFIG_SENSORS_PCF8574 is not set
832# CONFIG_PCF8575 is not set 846# CONFIG_PCF8575 is not set
833# CONFIG_SENSORS_PCA9539 is not set 847# CONFIG_SENSORS_PCA9539 is not set
834# CONFIG_SENSORS_PCF8591 is not set
835# CONFIG_SENSORS_MAX6875 is not set 848# CONFIG_SENSORS_MAX6875 is not set
836# CONFIG_SENSORS_TSL2550 is not set 849# CONFIG_SENSORS_TSL2550 is not set
837# CONFIG_I2C_DEBUG_CORE is not set 850# CONFIG_I2C_DEBUG_CORE is not set
@@ -952,11 +965,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
952# CONFIG_USB_TMC is not set 965# CONFIG_USB_TMC is not set
953 966
954# 967#
955# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 968# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
956# 969#
957 970
958# 971#
959# see USB_STORAGE Help for more information 972# also be needed; see USB_STORAGE Help for more info
960# 973#
961CONFIG_USB_STORAGE=y 974CONFIG_USB_STORAGE=y
962# CONFIG_USB_STORAGE_DEBUG is not set 975# CONFIG_USB_STORAGE_DEBUG is not set
@@ -997,7 +1010,6 @@ CONFIG_USB_STORAGE=y
997# CONFIG_USB_LED is not set 1010# CONFIG_USB_LED is not set
998# CONFIG_USB_CYPRESS_CY7C63 is not set 1011# CONFIG_USB_CYPRESS_CY7C63 is not set
999# CONFIG_USB_CYTHERM is not set 1012# CONFIG_USB_CYTHERM is not set
1000# CONFIG_USB_PHIDGET is not set
1001# CONFIG_USB_IDMOUSE is not set 1013# CONFIG_USB_IDMOUSE is not set
1002# CONFIG_USB_FTDI_ELAN is not set 1014# CONFIG_USB_FTDI_ELAN is not set
1003# CONFIG_USB_APPLEDISPLAY is not set 1015# CONFIG_USB_APPLEDISPLAY is not set
@@ -1013,6 +1025,7 @@ CONFIG_USB_STORAGE=y
1013# 1025#
1014# OTG and related infrastructure 1026# OTG and related infrastructure
1015# 1027#
1028# CONFIG_NOP_USB_XCEIV is not set
1016# CONFIG_UWB is not set 1029# CONFIG_UWB is not set
1017# CONFIG_MMC is not set 1030# CONFIG_MMC is not set
1018# CONFIG_MEMSTICK is not set 1031# CONFIG_MEMSTICK is not set
@@ -1074,8 +1087,9 @@ CONFIG_RTC_DRV_DS1307=y
1074# 1087#
1075# on-CPU RTC drivers 1088# on-CPU RTC drivers
1076# 1089#
1077# CONFIG_RTC_DRV_PPC is not set 1090# CONFIG_RTC_DRV_GENERIC is not set
1078# CONFIG_DMADEVICES is not set 1091# CONFIG_DMADEVICES is not set
1092# CONFIG_AUXDISPLAY is not set
1079# CONFIG_UIO is not set 1093# CONFIG_UIO is not set
1080# CONFIG_STAGING is not set 1094# CONFIG_STAGING is not set
1081 1095
@@ -1086,6 +1100,7 @@ CONFIG_EXT2_FS=y
1086# CONFIG_EXT2_FS_XATTR is not set 1100# CONFIG_EXT2_FS_XATTR is not set
1087# CONFIG_EXT2_FS_XIP is not set 1101# CONFIG_EXT2_FS_XIP is not set
1088CONFIG_EXT3_FS=y 1102CONFIG_EXT3_FS=y
1103# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1089CONFIG_EXT3_FS_XATTR=y 1104CONFIG_EXT3_FS_XATTR=y
1090# CONFIG_EXT3_FS_POSIX_ACL is not set 1105# CONFIG_EXT3_FS_POSIX_ACL is not set
1091# CONFIG_EXT3_FS_SECURITY is not set 1106# CONFIG_EXT3_FS_SECURITY is not set
@@ -1113,6 +1128,11 @@ CONFIG_INOTIFY_USER=y
1113# CONFIG_FUSE_FS is not set 1128# CONFIG_FUSE_FS is not set
1114 1129
1115# 1130#
1131# Caches
1132#
1133# CONFIG_FSCACHE is not set
1134
1135#
1116# CD-ROM/DVD Filesystems 1136# CD-ROM/DVD Filesystems
1117# 1137#
1118# CONFIG_ISO9660_FS is not set 1138# CONFIG_ISO9660_FS is not set
@@ -1166,6 +1186,7 @@ CONFIG_JFFS2_RTIME=y
1166# CONFIG_ROMFS_FS is not set 1186# CONFIG_ROMFS_FS is not set
1167# CONFIG_SYSV_FS is not set 1187# CONFIG_SYSV_FS is not set
1168# CONFIG_UFS_FS is not set 1188# CONFIG_UFS_FS is not set
1189# CONFIG_NILFS2_FS is not set
1169# CONFIG_NETWORK_FILESYSTEMS is not set 1190# CONFIG_NETWORK_FILESYSTEMS is not set
1170CONFIG_EXPORTFS=m 1191CONFIG_EXPORTFS=m
1171 1192
@@ -1231,6 +1252,7 @@ CONFIG_NLS_ISO8859_1=y
1231# CONFIG_NLS_KOI8_U is not set 1252# CONFIG_NLS_KOI8_U is not set
1232CONFIG_NLS_UTF8=y 1253CONFIG_NLS_UTF8=y
1233# CONFIG_DLM is not set 1254# CONFIG_DLM is not set
1255# CONFIG_BINARY_PRINTF is not set
1234 1256
1235# 1257#
1236# Library routines 1258# Library routines
@@ -1246,11 +1268,11 @@ CONFIG_CRC32=y
1246# CONFIG_LIBCRC32C is not set 1268# CONFIG_LIBCRC32C is not set
1247CONFIG_ZLIB_INFLATE=y 1269CONFIG_ZLIB_INFLATE=y
1248CONFIG_ZLIB_DEFLATE=y 1270CONFIG_ZLIB_DEFLATE=y
1249CONFIG_PLIST=y
1250CONFIG_HAS_IOMEM=y 1271CONFIG_HAS_IOMEM=y
1251CONFIG_HAS_IOPORT=y 1272CONFIG_HAS_IOPORT=y
1252CONFIG_HAS_DMA=y 1273CONFIG_HAS_DMA=y
1253CONFIG_HAVE_LMB=y 1274CONFIG_HAVE_LMB=y
1275CONFIG_NLATTR=y
1254 1276
1255# 1277#
1256# Kernel hacking 1278# Kernel hacking
@@ -1272,13 +1294,24 @@ CONFIG_FRAME_WARN=1024
1272# CONFIG_LATENCYTOP is not set 1294# CONFIG_LATENCYTOP is not set
1273CONFIG_SYSCTL_SYSCALL_CHECK=y 1295CONFIG_SYSCTL_SYSCALL_CHECK=y
1274CONFIG_HAVE_FUNCTION_TRACER=y 1296CONFIG_HAVE_FUNCTION_TRACER=y
1297CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1275CONFIG_HAVE_DYNAMIC_FTRACE=y 1298CONFIG_HAVE_DYNAMIC_FTRACE=y
1276CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1299CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1300CONFIG_TRACING_SUPPORT=y
1277 1301
1278# 1302#
1279# Tracers 1303# Tracers
1280# 1304#
1281# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1305# CONFIG_FUNCTION_TRACER is not set
1306# CONFIG_SCHED_TRACER is not set
1307# CONFIG_CONTEXT_SWITCH_TRACER is not set
1308# CONFIG_EVENT_TRACER is not set
1309# CONFIG_BOOT_TRACER is not set
1310# CONFIG_TRACE_BRANCH_PROFILING is not set
1311# CONFIG_STACK_TRACER is not set
1312# CONFIG_KMEMTRACE is not set
1313# CONFIG_WORKQUEUE_TRACER is not set
1314# CONFIG_BLK_DEV_IO_TRACE is not set
1282# CONFIG_SAMPLES is not set 1315# CONFIG_SAMPLES is not set
1283CONFIG_HAVE_ARCH_KGDB=y 1316CONFIG_HAVE_ARCH_KGDB=y
1284CONFIG_PRINT_STACK_DEPTH=64 1317CONFIG_PRINT_STACK_DEPTH=64
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index 1a856b15226e..d6b4a12cdeff 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -258,7 +258,9 @@ do { \
258# define elf_read_implies_exec(ex, exec_stk) (test_thread_flag(TIF_32BIT) ? \ 258# define elf_read_implies_exec(ex, exec_stk) (test_thread_flag(TIF_32BIT) ? \
259 (exec_stk != EXSTACK_DISABLE_X) : 0) 259 (exec_stk != EXSTACK_DISABLE_X) : 0)
260#else 260#else
261# define SET_PERSONALITY(ex) set_personality(PER_LINUX) 261# define SET_PERSONALITY(ex) \
262 set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
263# define elf_read_implies_exec(ex, exec_stk) (exec_stk != EXSTACK_DISABLE_X)
262#endif /* __powerpc64__ */ 264#endif /* __powerpc64__ */
263 265
264extern int dcache_bsize; 266extern int dcache_bsize;
diff --git a/arch/powerpc/include/asm/futex.h b/arch/powerpc/include/asm/futex.h
index 6d406c5c5de4..9696cc36d2dc 100644
--- a/arch/powerpc/include/asm/futex.h
+++ b/arch/powerpc/include/asm/futex.h
@@ -27,7 +27,7 @@
27 PPC_LONG "1b,4b,2b,4b\n" \ 27 PPC_LONG "1b,4b,2b,4b\n" \
28 ".previous" \ 28 ".previous" \
29 : "=&r" (oldval), "=&r" (ret) \ 29 : "=&r" (oldval), "=&r" (ret) \
30 : "b" (uaddr), "i" (-EFAULT), "1" (oparg) \ 30 : "b" (uaddr), "i" (-EFAULT), "r" (oparg) \
31 : "cr0", "memory") 31 : "cr0", "memory")
32 32
33static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr) 33static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
@@ -47,19 +47,19 @@ static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
47 47
48 switch (op) { 48 switch (op) {
49 case FUTEX_OP_SET: 49 case FUTEX_OP_SET:
50 __futex_atomic_op("", ret, oldval, uaddr, oparg); 50 __futex_atomic_op("mr %1,%4\n", ret, oldval, uaddr, oparg);
51 break; 51 break;
52 case FUTEX_OP_ADD: 52 case FUTEX_OP_ADD:
53 __futex_atomic_op("add %1,%0,%1\n", ret, oldval, uaddr, oparg); 53 __futex_atomic_op("add %1,%0,%4\n", ret, oldval, uaddr, oparg);
54 break; 54 break;
55 case FUTEX_OP_OR: 55 case FUTEX_OP_OR:
56 __futex_atomic_op("or %1,%0,%1\n", ret, oldval, uaddr, oparg); 56 __futex_atomic_op("or %1,%0,%4\n", ret, oldval, uaddr, oparg);
57 break; 57 break;
58 case FUTEX_OP_ANDN: 58 case FUTEX_OP_ANDN:
59 __futex_atomic_op("andc %1,%0,%1\n", ret, oldval, uaddr, oparg); 59 __futex_atomic_op("andc %1,%0,%4\n", ret, oldval, uaddr, oparg);
60 break; 60 break;
61 case FUTEX_OP_XOR: 61 case FUTEX_OP_XOR:
62 __futex_atomic_op("xor %1,%0,%1\n", ret, oldval, uaddr, oparg); 62 __futex_atomic_op("xor %1,%0,%4\n", ret, oldval, uaddr, oparg);
63 break; 63 break;
64 default: 64 default:
65 ret = -ENOSYS; 65 ret = -ENOSYS;
diff --git a/arch/powerpc/include/asm/iseries/iommu.h b/arch/powerpc/include/asm/iseries/iommu.h
index c59ee7e4bed1..1b9692c60899 100644
--- a/arch/powerpc/include/asm/iseries/iommu.h
+++ b/arch/powerpc/include/asm/iseries/iommu.h
@@ -26,10 +26,6 @@ struct vio_dev;
26struct device_node; 26struct device_node;
27struct iommu_table; 27struct iommu_table;
28 28
29/* Creates table for an individual device node */
30extern void iommu_devnode_init_iSeries(struct pci_dev *pdev,
31 struct device_node *dn);
32
33/* Get table parameters from HV */ 29/* Get table parameters from HV */
34extern void iommu_table_getparms_iSeries(unsigned long busno, 30extern void iommu_table_getparms_iSeries(unsigned long busno,
35 unsigned char slotno, unsigned char virtbus, 31 unsigned char slotno, unsigned char virtbus,
diff --git a/arch/powerpc/include/asm/of_platform.h b/arch/powerpc/include/asm/of_platform.h
index 53b46507ffde..d4aaa3489440 100644
--- a/arch/powerpc/include/asm/of_platform.h
+++ b/arch/powerpc/include/asm/of_platform.h
@@ -11,16 +11,6 @@
11 * 11 *
12 */ 12 */
13 13
14/* Platform drivers register/unregister */
15static inline int of_register_platform_driver(struct of_platform_driver *drv)
16{
17 return of_register_driver(drv, &of_platform_bus_type);
18}
19static inline void of_unregister_platform_driver(struct of_platform_driver *drv)
20{
21 of_unregister_driver(drv);
22}
23
24/* Platform devices and busses creation */ 14/* Platform devices and busses creation */
25extern struct of_device *of_platform_device_create(struct device_node *np, 15extern struct of_device *of_platform_device_create(struct device_node *np,
26 const char *bus_id, 16 const char *bus_id,
diff --git a/arch/powerpc/include/asm/parport.h b/arch/powerpc/include/asm/parport.h
index 414c50e2e881..94942d60ddfd 100644
--- a/arch/powerpc/include/asm/parport.h
+++ b/arch/powerpc/include/asm/parport.h
@@ -29,7 +29,7 @@ static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
29 prop = of_get_property(np, "interrupts", NULL); 29 prop = of_get_property(np, "interrupts", NULL);
30 if (!prop) 30 if (!prop)
31 continue; 31 continue;
32 if (parport_pc_probe_port(io1, io2, prop[0], autodma, NULL) != NULL) 32 if (parport_pc_probe_port(io1, io2, prop[0], autodma, NULL, 0) != NULL)
33 count++; 33 count++;
34 } 34 }
35 return count; 35 return count;
diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h
index f4a4db8d5555..640ccbbc0977 100644
--- a/arch/powerpc/include/asm/ppc-opcode.h
+++ b/arch/powerpc/include/asm/ppc-opcode.h
@@ -43,7 +43,7 @@
43 43
44#define PPC_INST_STSWI 0x7c0005aa 44#define PPC_INST_STSWI 0x7c0005aa
45#define PPC_INST_STSWX 0x7c00052a 45#define PPC_INST_STSWX 0x7c00052a
46#define PPC_INST_TLBILX 0x7c000626 46#define PPC_INST_TLBILX 0x7c000024
47#define PPC_INST_WAIT 0x7c00007c 47#define PPC_INST_WAIT 0x7c00007c
48 48
49/* macros to insert fields into opcodes */ 49/* macros to insert fields into opcodes */
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index f59a66684aed..384d90c9c272 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -4,6 +4,7 @@
4#ifndef _ASM_POWERPC_PPC_ASM_H 4#ifndef _ASM_POWERPC_PPC_ASM_H
5#define _ASM_POWERPC_PPC_ASM_H 5#define _ASM_POWERPC_PPC_ASM_H
6 6
7#include <linux/init.h>
7#include <linux/stringify.h> 8#include <linux/stringify.h>
8#include <asm/asm-compat.h> 9#include <asm/asm-compat.h>
9#include <asm/processor.h> 10#include <asm/processor.h>
@@ -189,7 +190,7 @@ name: \
189GLUE(.,name): 190GLUE(.,name):
190 191
191#define _INIT_GLOBAL(name) \ 192#define _INIT_GLOBAL(name) \
192 .section ".text.init.refok"; \ 193 __REF; \
193 .align 2 ; \ 194 .align 2 ; \
194 .globl name; \ 195 .globl name; \
195 .globl GLUE(.,name); \ 196 .globl GLUE(.,name); \
@@ -229,7 +230,7 @@ name: \
229GLUE(.,name): 230GLUE(.,name):
230 231
231#define _INIT_STATIC(name) \ 232#define _INIT_STATIC(name) \
232 .section ".text.init.refok"; \ 233 __REF; \
233 .align 2 ; \ 234 .align 2 ; \
234 .section ".opd","aw"; \ 235 .section ".opd","aw"; \
235name: \ 236name: \
diff --git a/arch/powerpc/include/asm/system.h b/arch/powerpc/include/asm/system.h
index f612798e1c93..2b2420a49884 100644
--- a/arch/powerpc/include/asm/system.h
+++ b/arch/powerpc/include/asm/system.h
@@ -212,7 +212,7 @@ extern struct task_struct *_switch(struct thread_struct *prev,
212extern unsigned int rtas_data; 212extern unsigned int rtas_data;
213extern int mem_init_done; /* set on boot once kmalloc can be called */ 213extern int mem_init_done; /* set on boot once kmalloc can be called */
214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */ 214extern int init_bootmem_done; /* set on !NUMA once bootmem is available */
215extern unsigned long memory_limit; 215extern phys_addr_t memory_limit;
216extern unsigned long klimit; 216extern unsigned long klimit;
217 217
218extern void *alloc_maybe_bootmem(size_t size, gfp_t mask); 218extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index cd1b687544f3..3e33fb933d99 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -382,7 +382,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
382 .icache_bsize = 128, 382 .icache_bsize = 128,
383 .dcache_bsize = 128, 383 .dcache_bsize = 128,
384 .machine_check = machine_check_generic, 384 .machine_check = machine_check_generic,
385 .oprofile_cpu_type = "ppc64/compat-power5+", 385 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
386 .oprofile_type = PPC_OPROFILE_POWER4,
386 .platform = "power5+", 387 .platform = "power5+",
387 }, 388 },
388 { /* Power6 */ 389 { /* Power6 */
@@ -416,7 +417,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
416 .icache_bsize = 128, 417 .icache_bsize = 128,
417 .dcache_bsize = 128, 418 .dcache_bsize = 128,
418 .machine_check = machine_check_generic, 419 .machine_check = machine_check_generic,
419 .oprofile_cpu_type = "ppc64/compat-power6", 420 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
421 .oprofile_type = PPC_OPROFILE_POWER4,
420 .platform = "power6", 422 .platform = "power6",
421 }, 423 },
422 { /* 2.06-compliant processor, i.e. Power7 "architected" mode */ 424 { /* 2.06-compliant processor, i.e. Power7 "architected" mode */
@@ -429,7 +431,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
429 .icache_bsize = 128, 431 .icache_bsize = 128,
430 .dcache_bsize = 128, 432 .dcache_bsize = 128,
431 .machine_check = machine_check_generic, 433 .machine_check = machine_check_generic,
432 .oprofile_cpu_type = "ppc64/compat-power7", 434 .oprofile_type = PPC_OPROFILE_POWER4,
435 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
433 .platform = "power7", 436 .platform = "power7",
434 }, 437 },
435 { /* Power7 */ 438 { /* Power7 */
@@ -1833,8 +1836,10 @@ static void __init setup_cpu_spec(unsigned long offset, struct cpu_spec *s)
1833 * and, in that case, keep the current value for 1836 * and, in that case, keep the current value for
1834 * oprofile_cpu_type. 1837 * oprofile_cpu_type.
1835 */ 1838 */
1836 if (old.oprofile_cpu_type == NULL) 1839 if (old.oprofile_cpu_type != NULL) {
1837 t->oprofile_cpu_type = s->oprofile_cpu_type; 1840 t->oprofile_cpu_type = old.oprofile_cpu_type;
1841 t->oprofile_type = old.oprofile_type;
1842 }
1838 } 1843 }
1839 1844
1840 *PTRRELOC(&cur_cpu_spec) = &the_cpu_spec; 1845 *PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 54e68c11ae15..c01467f952d3 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -21,6 +21,7 @@
21 * 21 *
22 */ 22 */
23 23
24#include <linux/init.h>
24#include <asm/reg.h> 25#include <asm/reg.h>
25#include <asm/page.h> 26#include <asm/page.h>
26#include <asm/mmu.h> 27#include <asm/mmu.h>
@@ -50,7 +51,7 @@
50 mtspr SPRN_DBAT##n##L,RB; \ 51 mtspr SPRN_DBAT##n##L,RB; \
511: 521:
52 53
53 .section .text.head, "ax" 54 __HEAD
54 .stabs "arch/powerpc/kernel/",N_SO,0,0,0f 55 .stabs "arch/powerpc/kernel/",N_SO,0,0,0f
55 .stabs "head_32.S",N_SO,0,0,0f 56 .stabs "head_32.S",N_SO,0,0,0f
560: 570:
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index 56d8e5d90c5b..0c96911d4299 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -31,6 +31,7 @@
31 * 31 *
32 */ 32 */
33 33
34#include <linux/init.h>
34#include <asm/processor.h> 35#include <asm/processor.h>
35#include <asm/page.h> 36#include <asm/page.h>
36#include <asm/mmu.h> 37#include <asm/mmu.h>
@@ -52,7 +53,7 @@
52 * 53 *
53 * This is all going to change RSN when we add bi_recs....... -- Dan 54 * This is all going to change RSN when we add bi_recs....... -- Dan
54 */ 55 */
55 .section .text.head, "ax" 56 __HEAD
56_ENTRY(_stext); 57_ENTRY(_stext);
57_ENTRY(_start); 58_ENTRY(_start);
58 59
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index b56fecc93a16..18d8a1677c4d 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -28,6 +28,7 @@
28 * option) any later version. 28 * option) any later version.
29 */ 29 */
30 30
31#include <linux/init.h>
31#include <asm/processor.h> 32#include <asm/processor.h>
32#include <asm/page.h> 33#include <asm/page.h>
33#include <asm/mmu.h> 34#include <asm/mmu.h>
@@ -50,7 +51,7 @@
50 * r7 - End of kernel command line string 51 * r7 - End of kernel command line string
51 * 52 *
52 */ 53 */
53 .section .text.head, "ax" 54 __HEAD
54_ENTRY(_stext); 55_ENTRY(_stext);
55_ENTRY(_start); 56_ENTRY(_start);
56 /* 57 /*
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 3c9452d4308b..52ff8c53b93c 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -19,6 +19,7 @@
19 * 19 *
20 */ 20 */
21 21
22#include <linux/init.h>
22#include <asm/processor.h> 23#include <asm/processor.h>
23#include <asm/page.h> 24#include <asm/page.h>
24#include <asm/mmu.h> 25#include <asm/mmu.h>
@@ -38,7 +39,7 @@
38#else 39#else
39#define DO_8xx_CPU6(val, reg) 40#define DO_8xx_CPU6(val, reg)
40#endif 41#endif
41 .section .text.head, "ax" 42 __HEAD
42_ENTRY(_stext); 43_ENTRY(_stext);
43_ENTRY(_start); 44_ENTRY(_start);
44 45
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 4c22620d009b..5bdcc06d294c 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -30,6 +30,7 @@
30 * option) any later version. 30 * option) any later version.
31 */ 31 */
32 32
33#include <linux/init.h>
33#include <linux/threads.h> 34#include <linux/threads.h>
34#include <asm/processor.h> 35#include <asm/processor.h>
35#include <asm/page.h> 36#include <asm/page.h>
@@ -53,7 +54,7 @@
53 * r7 - End of kernel command line string 54 * r7 - End of kernel command line string
54 * 55 *
55 */ 56 */
56 .section .text.head, "ax" 57 __HEAD
57_ENTRY(_stext); 58_ENTRY(_stext);
58_ENTRY(_start); 59_ENTRY(_start);
59 /* 60 /*
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index d59e2b1bdcba..bb3d893a8353 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -125,8 +125,8 @@ void __init reserve_crashkernel(void)
125 /* Crash kernel trumps memory limit */ 125 /* Crash kernel trumps memory limit */
126 if (memory_limit && memory_limit <= crashk_res.end) { 126 if (memory_limit && memory_limit <= crashk_res.end) {
127 memory_limit = crashk_res.end + 1; 127 memory_limit = crashk_res.end + 1;
128 printk("Adjusted memory limit for crashkernel, now 0x%lx\n", 128 printk("Adjusted memory limit for crashkernel, now 0x%llx\n",
129 memory_limit); 129 (unsigned long long)memory_limit);
130 } 130 }
131 131
132 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " 132 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 9c69e7e145c5..4fee63cb53ff 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1366,12 +1366,17 @@ static void __init pcibios_allocate_resources(int pass)
1366 1366
1367 for_each_pci_dev(dev) { 1367 for_each_pci_dev(dev) {
1368 pci_read_config_word(dev, PCI_COMMAND, &command); 1368 pci_read_config_word(dev, PCI_COMMAND, &command);
1369 for (idx = 0; idx < 6; idx++) { 1369 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
1370 r = &dev->resource[idx]; 1370 r = &dev->resource[idx];
1371 if (r->parent) /* Already allocated */ 1371 if (r->parent) /* Already allocated */
1372 continue; 1372 continue;
1373 if (!r->flags || (r->flags & IORESOURCE_UNSET)) 1373 if (!r->flags || (r->flags & IORESOURCE_UNSET))
1374 continue; /* Not assigned at all */ 1374 continue; /* Not assigned at all */
1375 /* We only allocate ROMs on pass 1 just in case they
1376 * have been screwed up by firmware
1377 */
1378 if (idx == PCI_ROM_RESOURCE )
1379 disabled = 1;
1375 if (r->flags & IORESOURCE_IO) 1380 if (r->flags & IORESOURCE_IO)
1376 disabled = !(command & PCI_COMMAND_IO); 1381 disabled = !(command & PCI_COMMAND_IO);
1377 else 1382 else
@@ -1382,17 +1387,19 @@ static void __init pcibios_allocate_resources(int pass)
1382 if (pass) 1387 if (pass)
1383 continue; 1388 continue;
1384 r = &dev->resource[PCI_ROM_RESOURCE]; 1389 r = &dev->resource[PCI_ROM_RESOURCE];
1385 if (r->flags & IORESOURCE_ROM_ENABLE) { 1390 if (r->flags) {
1386 /* Turn the ROM off, leave the resource region, 1391 /* Turn the ROM off, leave the resource region,
1387 * but keep it unregistered. 1392 * but keep it unregistered.
1388 */ 1393 */
1389 u32 reg; 1394 u32 reg;
1390 pr_debug("PCI: Switching off ROM of %s\n",
1391 pci_name(dev));
1392 r->flags &= ~IORESOURCE_ROM_ENABLE;
1393 pci_read_config_dword(dev, dev->rom_base_reg, &reg); 1395 pci_read_config_dword(dev, dev->rom_base_reg, &reg);
1394 pci_write_config_dword(dev, dev->rom_base_reg, 1396 if (reg & PCI_ROM_ADDRESS_ENABLE) {
1395 reg & ~PCI_ROM_ADDRESS_ENABLE); 1397 pr_debug("PCI: Switching off ROM of %s\n",
1398 pci_name(dev));
1399 r->flags &= ~IORESOURCE_ROM_ENABLE;
1400 pci_write_config_dword(dev, dev->rom_base_reg,
1401 reg & ~PCI_ROM_ADDRESS_ENABLE);
1402 }
1396 } 1403 }
1397 } 1404 }
1398} 1405}
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index be574fc0d92f..96edb6f8babb 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -64,7 +64,7 @@ static u32 get_int_prop(struct device_node *np, const char *name, u32 def)
64 return def; 64 return def;
65} 65}
66 66
67static unsigned int pci_parse_of_flags(u32 addr0) 67static unsigned int pci_parse_of_flags(u32 addr0, int bridge)
68{ 68{
69 unsigned int flags = 0; 69 unsigned int flags = 0;
70 70
@@ -75,8 +75,17 @@ static unsigned int pci_parse_of_flags(u32 addr0)
75 if (addr0 & 0x40000000) 75 if (addr0 & 0x40000000)
76 flags |= IORESOURCE_PREFETCH 76 flags |= IORESOURCE_PREFETCH
77 | PCI_BASE_ADDRESS_MEM_PREFETCH; 77 | PCI_BASE_ADDRESS_MEM_PREFETCH;
78 /* Note: We don't know whether the ROM has been left enabled
79 * by the firmware or not. We mark it as disabled (ie, we do
80 * not set the IORESOURCE_ROM_ENABLE flag) for now rather than
81 * do a config space read, it will be force-enabled if needed
82 */
83 if (!bridge && (addr0 & 0xff) == 0x30)
84 flags |= IORESOURCE_READONLY;
78 } else if (addr0 & 0x01000000) 85 } else if (addr0 & 0x01000000)
79 flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO; 86 flags = IORESOURCE_IO | PCI_BASE_ADDRESS_SPACE_IO;
87 if (flags)
88 flags |= IORESOURCE_SIZEALIGN;
80 return flags; 89 return flags;
81} 90}
82 91
@@ -95,7 +104,7 @@ static void pci_parse_of_addrs(struct device_node *node, struct pci_dev *dev)
95 return; 104 return;
96 pr_debug(" parse addresses (%d bytes) @ %p\n", proplen, addrs); 105 pr_debug(" parse addresses (%d bytes) @ %p\n", proplen, addrs);
97 for (; proplen >= 20; proplen -= 20, addrs += 5) { 106 for (; proplen >= 20; proplen -= 20, addrs += 5) {
98 flags = pci_parse_of_flags(addrs[0]); 107 flags = pci_parse_of_flags(addrs[0], 0);
99 if (!flags) 108 if (!flags)
100 continue; 109 continue;
101 base = of_read_number(&addrs[1], 2); 110 base = of_read_number(&addrs[1], 2);
@@ -293,7 +302,7 @@ void __devinit of_scan_pci_bridge(struct device_node *node,
293 } 302 }
294 i = 1; 303 i = 1;
295 for (; len >= 32; len -= 32, ranges += 8) { 304 for (; len >= 32; len -= 32, ranges += 8) {
296 flags = pci_parse_of_flags(ranges[0]); 305 flags = pci_parse_of_flags(ranges[0], 1);
297 size = of_read_number(&ranges[6], 2); 306 size = of_read_number(&ranges[6], 2);
298 if (flags == 0 || size == 0) 307 if (flags == 0 || size == 0)
299 continue; 308 continue;
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 5ec6a9e23933..ce01ff2474da 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -426,7 +426,7 @@ static int __init early_parse_mem(char *p)
426 return 1; 426 return 1;
427 427
428 memory_limit = PAGE_ALIGN(memparse(p, &p)); 428 memory_limit = PAGE_ALIGN(memparse(p, &p));
429 DBG("memory limit = 0x%lx\n", memory_limit); 429 DBG("memory limit = 0x%llx\n", (unsigned long long)memory_limit);
430 430
431 return 0; 431 return 0;
432} 432}
@@ -1160,7 +1160,7 @@ static inline void __init phyp_dump_reserve_mem(void) {}
1160 1160
1161void __init early_init_devtree(void *params) 1161void __init early_init_devtree(void *params)
1162{ 1162{
1163 unsigned long limit; 1163 phys_addr_t limit;
1164 1164
1165 DBG(" -> early_init_devtree(%p)\n", params); 1165 DBG(" -> early_init_devtree(%p)\n", params);
1166 1166
@@ -1204,7 +1204,7 @@ void __init early_init_devtree(void *params)
1204 1204
1205 limit = memory_limit; 1205 limit = memory_limit;
1206 if (! limit) { 1206 if (! limit) {
1207 unsigned long memsize; 1207 phys_addr_t memsize;
1208 1208
1209 /* Ensure that total memory size is page-aligned, because 1209 /* Ensure that total memory size is page-aligned, because
1210 * otherwise mark_bootmem() gets upset. */ 1210 * otherwise mark_bootmem() gets upset. */
@@ -1218,7 +1218,7 @@ void __init early_init_devtree(void *params)
1218 lmb_analyze(); 1218 lmb_analyze();
1219 lmb_dump_all(); 1219 lmb_dump_all();
1220 1220
1221 DBG("Phys. mem: %lx\n", lmb_phys_mem_size()); 1221 DBG("Phys. mem: %llx\n", lmb_phys_mem_size());
1222 1222
1223 /* We may need to relocate the flat tree, do it now. 1223 /* We may need to relocate the flat tree, do it now.
1224 * FIXME .. and the initrd too? */ 1224 * FIXME .. and the initrd too? */
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index 8f0856f312da..8362620c9e6f 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -971,7 +971,7 @@ int of_irq_map_one(struct device_node *device, int index, struct of_irq *out_irq
971 struct device_node *p; 971 struct device_node *p;
972 const u32 *intspec, *tmp, *addr; 972 const u32 *intspec, *tmp, *addr;
973 u32 intsize, intlen; 973 u32 intsize, intlen;
974 int res; 974 int res = -EINVAL;
975 975
976 DBG("of_irq_map_one: dev=%s, index=%d\n", device->full_name, index); 976 DBG("of_irq_map_one: dev=%s, index=%d\n", device->full_name, index);
977 977
@@ -995,21 +995,20 @@ int of_irq_map_one(struct device_node *device, int index, struct of_irq *out_irq
995 995
996 /* Get size of interrupt specifier */ 996 /* Get size of interrupt specifier */
997 tmp = of_get_property(p, "#interrupt-cells", NULL); 997 tmp = of_get_property(p, "#interrupt-cells", NULL);
998 if (tmp == NULL) { 998 if (tmp == NULL)
999 of_node_put(p); 999 goto out;
1000 return -EINVAL;
1001 }
1002 intsize = *tmp; 1000 intsize = *tmp;
1003 1001
1004 DBG(" intsize=%d intlen=%d\n", intsize, intlen); 1002 DBG(" intsize=%d intlen=%d\n", intsize, intlen);
1005 1003
1006 /* Check index */ 1004 /* Check index */
1007 if ((index + 1) * intsize > intlen) 1005 if ((index + 1) * intsize > intlen)
1008 return -EINVAL; 1006 goto out;
1009 1007
1010 /* Get new specifier and map it */ 1008 /* Get new specifier and map it */
1011 res = of_irq_map_raw(p, intspec + index * intsize, intsize, 1009 res = of_irq_map_raw(p, intspec + index * intsize, intsize,
1012 addr, out_irq); 1010 addr, out_irq);
1011out:
1013 of_node_put(p); 1012 of_node_put(p);
1014 return res; 1013 return res;
1015} 1014}
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 926ea864e34f..48571ac56fb7 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -77,7 +77,7 @@
77#include <linux/clockchips.h> 77#include <linux/clockchips.h>
78#include <linux/clocksource.h> 78#include <linux/clocksource.h>
79 79
80static cycle_t rtc_read(void); 80static cycle_t rtc_read(struct clocksource *);
81static struct clocksource clocksource_rtc = { 81static struct clocksource clocksource_rtc = {
82 .name = "rtc", 82 .name = "rtc",
83 .rating = 400, 83 .rating = 400,
@@ -88,7 +88,7 @@ static struct clocksource clocksource_rtc = {
88 .read = rtc_read, 88 .read = rtc_read,
89}; 89};
90 90
91static cycle_t timebase_read(void); 91static cycle_t timebase_read(struct clocksource *);
92static struct clocksource clocksource_timebase = { 92static struct clocksource clocksource_timebase = {
93 .name = "timebase", 93 .name = "timebase",
94 .rating = 400, 94 .rating = 400,
@@ -766,12 +766,12 @@ unsigned long read_persistent_clock(void)
766} 766}
767 767
768/* clocksource code */ 768/* clocksource code */
769static cycle_t rtc_read(void) 769static cycle_t rtc_read(struct clocksource *cs)
770{ 770{
771 return (cycle_t)get_rtc(); 771 return (cycle_t)get_rtc();
772} 772}
773 773
774static cycle_t timebase_read(void) 774static cycle_t timebase_read(struct clocksource *cs)
775{ 775{
776 return (cycle_t)get_tb(); 776 return (cycle_t)get_tb();
777} 777}
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index b9ef1644a722..a047a6cfca4d 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -52,9 +52,10 @@ SECTIONS
52 /* Text and gots */ 52 /* Text and gots */
53 .text : AT(ADDR(.text) - LOAD_OFFSET) { 53 .text : AT(ADDR(.text) - LOAD_OFFSET) {
54 ALIGN_FUNCTION(); 54 ALIGN_FUNCTION();
55 *(.text.head) 55 HEAD_TEXT
56 _text = .; 56 _text = .;
57 *(.text .fixup .text.init.refok .exit.text.refok __ftr_alt_*) 57 /* careful! __ftr_alt_* sections need to be close to .text */
58 *(.text .fixup __ftr_alt_* .ref.text)
58 SCHED_TEXT 59 SCHED_TEXT
59 LOCK_TEXT 60 LOCK_TEXT
60 KPROBES_TEXT 61 KPROBES_TEXT
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index db556d25c3a7..1ade7eb6ae00 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -753,7 +753,7 @@ void __init early_init_mmu(void)
753} 753}
754 754
755#ifdef CONFIG_SMP 755#ifdef CONFIG_SMP
756void __init early_init_mmu_secondary(void) 756void __cpuinit early_init_mmu_secondary(void)
757{ 757{
758 /* Initialize hash table for that CPU */ 758 /* Initialize hash table for that CPU */
759 if (!firmware_has_feature(FW_FEATURE_LPAR)) 759 if (!firmware_has_feature(FW_FEATURE_LPAR))
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index f668fa9ba804..d0602a76bf7f 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -57,7 +57,7 @@
57 57
58int init_bootmem_done; 58int init_bootmem_done;
59int mem_init_done; 59int mem_init_done;
60unsigned long memory_limit; 60phys_addr_t memory_limit;
61 61
62#ifdef CONFIG_HIGHMEM 62#ifdef CONFIG_HIGHMEM
63pte_t *kmap_pte; 63pte_t *kmap_pte;
diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c
index 7af72970faed..ad2eb4d34dd4 100644
--- a/arch/powerpc/mm/tlb_nohash.c
+++ b/arch/powerpc/mm/tlb_nohash.c
@@ -125,7 +125,6 @@ static void do_flush_tlb_page_ipi(void *param)
125 125
126void flush_tlb_mm(struct mm_struct *mm) 126void flush_tlb_mm(struct mm_struct *mm)
127{ 127{
128 cpumask_t cpu_mask;
129 unsigned int pid; 128 unsigned int pid;
130 129
131 preempt_disable(); 130 preempt_disable();
diff --git a/arch/powerpc/mm/tlb_nohash_low.S b/arch/powerpc/mm/tlb_nohash_low.S
index 788b87c36f77..3037911279b1 100644
--- a/arch/powerpc/mm/tlb_nohash_low.S
+++ b/arch/powerpc/mm/tlb_nohash_low.S
@@ -191,6 +191,6 @@ ALT_MMU_FTR_SECTION_END_IFCLR(MMU_FTR_USE_TLBILX)
191 isync 191 isync
1921: wrtee r10 1921: wrtee r10
193 blr 193 blr
194#elif 194#else
195#error Unsupported processor type ! 195#error Unsupported processor type !
196#endif 196#endif
diff --git a/arch/powerpc/oprofile/op_model_power4.c b/arch/powerpc/oprofile/op_model_power4.c
index 3e3d91f536e0..80774092db77 100644
--- a/arch/powerpc/oprofile/op_model_power4.c
+++ b/arch/powerpc/oprofile/op_model_power4.c
@@ -26,6 +26,7 @@
26static unsigned long reset_value[OP_MAX_COUNTER]; 26static unsigned long reset_value[OP_MAX_COUNTER];
27 27
28static int oprofile_running; 28static int oprofile_running;
29static int use_slot_nums;
29 30
30/* mmcr values are set in power4_reg_setup, used in power4_cpu_setup */ 31/* mmcr values are set in power4_reg_setup, used in power4_cpu_setup */
31static u32 mmcr0_val; 32static u32 mmcr0_val;
@@ -61,6 +62,12 @@ static int power4_reg_setup(struct op_counter_config *ctr,
61 else 62 else
62 mmcr0_val |= MMCR0_PROBLEM_DISABLE; 63 mmcr0_val |= MMCR0_PROBLEM_DISABLE;
63 64
65 if (__is_processor(PV_POWER4) || __is_processor(PV_POWER4p) ||
66 __is_processor(PV_970) || __is_processor(PV_970FX) ||
67 __is_processor(PV_970MP) || __is_processor(PV_970GX) ||
68 __is_processor(PV_POWER5) || __is_processor(PV_POWER5p))
69 use_slot_nums = 1;
70
64 return 0; 71 return 0;
65} 72}
66 73
@@ -206,7 +213,7 @@ static unsigned long get_pc(struct pt_regs *regs)
206 213
207 mmcra = mfspr(SPRN_MMCRA); 214 mmcra = mfspr(SPRN_MMCRA);
208 215
209 if (mmcra & MMCRA_SAMPLE_ENABLE) { 216 if (use_slot_nums && (mmcra & MMCRA_SAMPLE_ENABLE)) {
210 slot = ((mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT); 217 slot = ((mmcra & MMCRA_SLOT) >> MMCRA_SLOT_SHIFT);
211 if (slot > 1) 218 if (slot > 1)
212 pc += 4 * (slot - 1); 219 pc += 4 * (slot - 1);
diff --git a/arch/powerpc/platforms/40x/Kconfig b/arch/powerpc/platforms/40x/Kconfig
index 14e027f5be66..f39c953d5353 100644
--- a/arch/powerpc/platforms/40x/Kconfig
+++ b/arch/powerpc/platforms/40x/Kconfig
@@ -153,6 +153,7 @@ config 405GPR
153 153
154config XILINX_VIRTEX 154config XILINX_VIRTEX
155 bool 155 bool
156 select DEFAULT_UIMAGE
156 157
157config XILINX_VIRTEX_II_PRO 158config XILINX_VIRTEX_II_PRO
158 bool 159 bool
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index bf5c7ff2e6e5..0d83a6a0397d 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -246,6 +246,7 @@ config IBM440EP_ERR42
246# Xilinx specific config options. 246# Xilinx specific config options.
247config XILINX_VIRTEX 247config XILINX_VIRTEX
248 bool 248 bool
249 select DEFAULT_UIMAGE
249 250
250# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above 251# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above
251config XILINX_VIRTEX_5_FXT 252config XILINX_VIRTEX_5_FXT
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig
index 40e24c39ad06..50f17bdd3c16 100644
--- a/arch/powerpc/platforms/cell/Kconfig
+++ b/arch/powerpc/platforms/cell/Kconfig
@@ -13,7 +13,6 @@ config PPC_CELL_COMMON
13config PPC_CELL_NATIVE 13config PPC_CELL_NATIVE
14 bool 14 bool
15 select PPC_CELL_COMMON 15 select PPC_CELL_COMMON
16 select PPC_OF_PLATFORM_PCI
17 select MPIC 16 select MPIC
18 select IBM_NEW_EMAC_EMAC4 17 select IBM_NEW_EMAC_EMAC4
19 select IBM_NEW_EMAC_RGMII 18 select IBM_NEW_EMAC_RGMII
@@ -25,6 +24,8 @@ config PPC_IBM_CELL_BLADE
25 bool "IBM Cell Blade" 24 bool "IBM Cell Blade"
26 depends on PPC64 && PPC_BOOK3S 25 depends on PPC64 && PPC_BOOK3S
27 select PPC_CELL_NATIVE 26 select PPC_CELL_NATIVE
27 select PPC_OF_PLATFORM_PCI
28 select PCI
28 select MMIO_NVRAM 29 select MMIO_NVRAM
29 select PPC_UDBG_16550 30 select PPC_UDBG_16550
30 select UDBG_RTAS_CONSOLE 31 select UDBG_RTAS_CONSOLE
@@ -33,6 +34,8 @@ config PPC_CELLEB
33 bool "Toshiba's Cell Reference Set 'Celleb' Architecture" 34 bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
34 depends on PPC64 && PPC_BOOK3S 35 depends on PPC64 && PPC_BOOK3S
35 select PPC_CELL_NATIVE 36 select PPC_CELL_NATIVE
37 select PPC_OF_PLATFORM_PCI
38 select PCI
36 select HAS_TXX9_SERIAL 39 select HAS_TXX9_SERIAL
37 select PPC_UDBG_BEAT 40 select PPC_UDBG_BEAT
38 select USB_OHCI_BIG_ENDIAN_MMIO 41 select USB_OHCI_BIG_ENDIAN_MMIO
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 5f961c464cc4..296b5268754e 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -122,12 +122,23 @@ static int __init cbe_ptcal_enable_on_node(int nid, int order)
122 122
123 area->nid = nid; 123 area->nid = nid;
124 area->order = order; 124 area->order = order;
125 area->pages = alloc_pages_node(area->nid, GFP_KERNEL, area->order); 125 area->pages = alloc_pages_node(area->nid, GFP_KERNEL | GFP_THISNODE,
126 area->order);
126 127
127 if (!area->pages) 128 if (!area->pages) {
129 printk(KERN_WARNING "%s: no page on node %d\n",
130 __func__, area->nid);
128 goto out_free_area; 131 goto out_free_area;
132 }
129 133
130 addr = __pa(page_address(area->pages)); 134 /*
135 * We move the ptcal area to the middle of the allocated
136 * page, in order to avoid prefetches in memcpy and similar
137 * functions stepping on it.
138 */
139 addr = __pa(page_address(area->pages)) + (PAGE_SIZE >> 1);
140 printk(KERN_DEBUG "%s: enabling PTCAL on node %d address=0x%016lx\n",
141 __func__, area->nid, addr);
131 142
132 ret = -EIO; 143 ret = -EIO;
133 if (rtas_call(ptcal_start_tok, 3, 1, NULL, area->nid, 144 if (rtas_call(ptcal_start_tok, 3, 1, NULL, area->nid,
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index 1db6b9e037fc..65a35f38e062 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -275,11 +275,6 @@ static void __devinit hpcd_quirk_uli5288(struct pci_dev *dev)
275 if (!machine_is(mpc86xx_hpcd)) 275 if (!machine_is(mpc86xx_hpcd))
276 return; 276 return;
277 277
278 /* Interrupt Disable, Needed when SATA disabled */
279 pci_read_config_word(dev, PCI_COMMAND, &temp);
280 temp |= 1<<10;
281 pci_write_config_word(dev, PCI_COMMAND, temp);
282
283 pci_read_config_byte(dev, 0x83, &c); 278 pci_read_config_byte(dev, 0x83, &c);
284 c |= 0x80; 279 c |= 0x80;
285 pci_write_config_byte(dev, 0x83, c); 280 pci_write_config_byte(dev, 0x83, c);
diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig
index 647e87787437..47a20cfb4486 100644
--- a/arch/powerpc/platforms/iseries/Kconfig
+++ b/arch/powerpc/platforms/iseries/Kconfig
@@ -17,6 +17,7 @@ config VIODASD
17 17
18config VIOCD 18config VIOCD
19 tristate "iSeries Virtual I/O CD support" 19 tristate "iSeries Virtual I/O CD support"
20 depends on BLOCK
20 select VIOPATH 21 select VIOPATH
21 help 22 help
22 If you are running Linux on an IBM iSeries system and you want to 23 If you are running Linux on an IBM iSeries system and you want to
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index ff43f1fd8343..40219823d9b0 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -174,9 +174,10 @@ static struct iommu_table *iommu_table_find(struct iommu_table * tbl)
174} 174}
175 175
176 176
177void iommu_devnode_init_iSeries(struct pci_dev *pdev, struct device_node *dn) 177static void pci_dma_dev_setup_iseries(struct pci_dev *pdev)
178{ 178{
179 struct iommu_table *tbl; 179 struct iommu_table *tbl;
180 struct device_node *dn = pdev->sysdata;
180 struct pci_dn *pdn = PCI_DN(dn); 181 struct pci_dn *pdn = PCI_DN(dn);
181 const u32 *lsn = of_get_property(dn, "linux,logical-slot-number", NULL); 182 const u32 *lsn = of_get_property(dn, "linux,logical-slot-number", NULL);
182 183
@@ -194,6 +195,8 @@ void iommu_devnode_init_iSeries(struct pci_dev *pdev, struct device_node *dn)
194 kfree(tbl); 195 kfree(tbl);
195 pdev->dev.archdata.dma_data = pdn->iommu_table; 196 pdev->dev.archdata.dma_data = pdn->iommu_table;
196} 197}
198#else
199#define pci_dma_dev_setup_iseries NULL
197#endif 200#endif
198 201
199static struct iommu_table veth_iommu_table; 202static struct iommu_table veth_iommu_table;
@@ -251,5 +254,6 @@ void iommu_init_early_iSeries(void)
251 ppc_md.tce_build = tce_build_iSeries; 254 ppc_md.tce_build = tce_build_iSeries;
252 ppc_md.tce_free = tce_free_iSeries; 255 ppc_md.tce_free = tce_free_iSeries;
253 256
257 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_iseries;
254 set_pci_dma_ops(&dma_iommu_ops); 258 set_pci_dma_ops(&dma_iommu_ops);
255} 259}
diff --git a/arch/powerpc/platforms/iseries/pci.c b/arch/powerpc/platforms/iseries/pci.c
index 02a634faedbe..21cddc30220b 100644
--- a/arch/powerpc/platforms/iseries/pci.c
+++ b/arch/powerpc/platforms/iseries/pci.c
@@ -444,7 +444,6 @@ void __init iSeries_pcibios_fixup_resources(struct pci_dev *pdev)
444 pdev->sysdata = node; 444 pdev->sysdata = node;
445 allocate_device_bars(pdev); 445 allocate_device_bars(pdev);
446 iseries_device_information(pdev, bus, *sub_bus); 446 iseries_device_information(pdev, bus, *sub_bus);
447 iommu_devnode_init_iSeries(pdev, node);
448} 447}
449 448
450/* 449/*
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index c64fb5bfb37e..153051eb6d93 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -44,10 +44,6 @@
44 44
45#include "pasemi.h" 45#include "pasemi.h"
46 46
47#if !defined(CONFIG_SMP)
48static void smp_send_stop(void) {}
49#endif
50
51/* SDC reset register, must be pre-mapped at reset time */ 47/* SDC reset register, must be pre-mapped at reset time */
52static void __iomem *reset_reg; 48static void __iomem *reset_reg;
53 49
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c
index 86e392b1b049..cf1cd0f8c18f 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -578,7 +578,7 @@ static void os_area_db_init(struct os_area_db *db)
578 * 578 *
579 */ 579 */
580 580
581static void update_flash_db(void) 581static void __maybe_unused update_flash_db(void)
582{ 582{
583 int result; 583 int result;
584 int file; 584 int file;
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index 66181821322a..1a7b5ae0c83e 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -45,10 +45,6 @@
45DEFINE_MUTEX(ps3_gpu_mutex); 45DEFINE_MUTEX(ps3_gpu_mutex);
46EXPORT_SYMBOL_GPL(ps3_gpu_mutex); 46EXPORT_SYMBOL_GPL(ps3_gpu_mutex);
47 47
48#if !defined(CONFIG_SMP)
49static void smp_send_stop(void) {}
50#endif
51
52static union ps3_firmware_version ps3_firmware_version; 48static union ps3_firmware_version ps3_firmware_version;
53 49
54void ps3_get_firmware_version(union ps3_firmware_version *v) 50void ps3_get_firmware_version(union ps3_firmware_version *v)
diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/pseries/dtl.c
index fafcaa0e81ef..ab69925d579b 100644
--- a/arch/powerpc/platforms/pseries/dtl.c
+++ b/arch/powerpc/platforms/pseries/dtl.c
@@ -25,6 +25,7 @@
25#include <asm/smp.h> 25#include <asm/smp.h>
26#include <asm/system.h> 26#include <asm/system.h>
27#include <asm/uaccess.h> 27#include <asm/uaccess.h>
28#include <asm/firmware.h>
28 29
29#include "plpar_wrappers.h" 30#include "plpar_wrappers.h"
30 31
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c
index 380420f8c400..9a2a6e32f00f 100644
--- a/arch/powerpc/platforms/pseries/eeh_driver.c
+++ b/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -182,6 +182,8 @@ static void eeh_report_reset(struct pci_dev *dev, void *userdata)
182 if (!driver) 182 if (!driver)
183 return; 183 return;
184 184
185 dev->error_state = pci_channel_io_normal;
186
185 eeh_enable_irq(dev); 187 eeh_enable_irq(dev);
186 188
187 if (!driver->err_handler || 189 if (!driver->err_handler ||
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index a0fa4ebb39c6..abdb124e1e2f 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -18,6 +18,7 @@
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/dma-mapping.h> 19#include <linux/dma-mapping.h>
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/device.h>
21#include <linux/rio.h> 22#include <linux/rio.h>
22#include <linux/rio_drv.h> 23#include <linux/rio_drv.h>
23#include <linux/of_platform.h> 24#include <linux/of_platform.h>
@@ -159,6 +160,7 @@ struct rio_msg_rx_ring {
159}; 160};
160 161
161struct rio_priv { 162struct rio_priv {
163 struct device *dev;
162 void __iomem *regs_win; 164 void __iomem *regs_win;
163 struct rio_atmu_regs __iomem *atmu_regs; 165 struct rio_atmu_regs __iomem *atmu_regs;
164 struct rio_atmu_regs __iomem *maint_atmu_regs; 166 struct rio_atmu_regs __iomem *maint_atmu_regs;
@@ -484,13 +486,13 @@ int rio_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entr
484 486
485 for (i = 0; i < priv->msg_tx_ring.size; i++) { 487 for (i = 0; i < priv->msg_tx_ring.size; i++) {
486 priv->msg_tx_ring.virt_buffer[i] = 488 priv->msg_tx_ring.virt_buffer[i] =
487 dma_alloc_coherent(NULL, RIO_MSG_BUFFER_SIZE, 489 dma_alloc_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
488 &priv->msg_tx_ring.phys_buffer[i], GFP_KERNEL); 490 &priv->msg_tx_ring.phys_buffer[i], GFP_KERNEL);
489 if (!priv->msg_tx_ring.virt_buffer[i]) { 491 if (!priv->msg_tx_ring.virt_buffer[i]) {
490 rc = -ENOMEM; 492 rc = -ENOMEM;
491 for (j = 0; j < priv->msg_tx_ring.size; j++) 493 for (j = 0; j < priv->msg_tx_ring.size; j++)
492 if (priv->msg_tx_ring.virt_buffer[j]) 494 if (priv->msg_tx_ring.virt_buffer[j])
493 dma_free_coherent(NULL, 495 dma_free_coherent(priv->dev,
494 RIO_MSG_BUFFER_SIZE, 496 RIO_MSG_BUFFER_SIZE,
495 priv->msg_tx_ring. 497 priv->msg_tx_ring.
496 virt_buffer[j], 498 virt_buffer[j],
@@ -501,7 +503,7 @@ int rio_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entr
501 } 503 }
502 504
503 /* Initialize outbound message descriptor ring */ 505 /* Initialize outbound message descriptor ring */
504 priv->msg_tx_ring.virt = dma_alloc_coherent(NULL, 506 priv->msg_tx_ring.virt = dma_alloc_coherent(priv->dev,
505 priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE, 507 priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
506 &priv->msg_tx_ring.phys, GFP_KERNEL); 508 &priv->msg_tx_ring.phys, GFP_KERNEL);
507 if (!priv->msg_tx_ring.virt) { 509 if (!priv->msg_tx_ring.virt) {
@@ -549,12 +551,13 @@ int rio_open_outb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entr
549 return rc; 551 return rc;
550 552
551 out_irq: 553 out_irq:
552 dma_free_coherent(NULL, priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE, 554 dma_free_coherent(priv->dev,
555 priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
553 priv->msg_tx_ring.virt, priv->msg_tx_ring.phys); 556 priv->msg_tx_ring.virt, priv->msg_tx_ring.phys);
554 557
555 out_dma: 558 out_dma:
556 for (i = 0; i < priv->msg_tx_ring.size; i++) 559 for (i = 0; i < priv->msg_tx_ring.size; i++)
557 dma_free_coherent(NULL, RIO_MSG_BUFFER_SIZE, 560 dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
558 priv->msg_tx_ring.virt_buffer[i], 561 priv->msg_tx_ring.virt_buffer[i],
559 priv->msg_tx_ring.phys_buffer[i]); 562 priv->msg_tx_ring.phys_buffer[i]);
560 563
@@ -576,7 +579,8 @@ void rio_close_outb_mbox(struct rio_mport *mport, int mbox)
576 out_be32(&priv->msg_regs->omr, 0); 579 out_be32(&priv->msg_regs->omr, 0);
577 580
578 /* Free ring */ 581 /* Free ring */
579 dma_free_coherent(NULL, priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE, 582 dma_free_coherent(priv->dev,
583 priv->msg_tx_ring.size * RIO_MSG_DESC_SIZE,
580 priv->msg_tx_ring.virt, priv->msg_tx_ring.phys); 584 priv->msg_tx_ring.virt, priv->msg_tx_ring.phys);
581 585
582 /* Free interrupt */ 586 /* Free interrupt */
@@ -654,7 +658,7 @@ int rio_open_inb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entri
654 priv->msg_rx_ring.virt_buffer[i] = NULL; 658 priv->msg_rx_ring.virt_buffer[i] = NULL;
655 659
656 /* Initialize inbound message ring */ 660 /* Initialize inbound message ring */
657 priv->msg_rx_ring.virt = dma_alloc_coherent(NULL, 661 priv->msg_rx_ring.virt = dma_alloc_coherent(priv->dev,
658 priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE, 662 priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
659 &priv->msg_rx_ring.phys, GFP_KERNEL); 663 &priv->msg_rx_ring.phys, GFP_KERNEL);
660 if (!priv->msg_rx_ring.virt) { 664 if (!priv->msg_rx_ring.virt) {
@@ -673,7 +677,7 @@ int rio_open_inb_mbox(struct rio_mport *mport, void *dev_id, int mbox, int entri
673 rc = request_irq(IRQ_RIO_RX(mport), fsl_rio_rx_handler, 0, 677 rc = request_irq(IRQ_RIO_RX(mport), fsl_rio_rx_handler, 0,
674 "msg_rx", (void *)mport); 678 "msg_rx", (void *)mport);
675 if (rc < 0) { 679 if (rc < 0) {
676 dma_free_coherent(NULL, RIO_MSG_BUFFER_SIZE, 680 dma_free_coherent(priv->dev, RIO_MSG_BUFFER_SIZE,
677 priv->msg_tx_ring.virt_buffer[i], 681 priv->msg_tx_ring.virt_buffer[i],
678 priv->msg_tx_ring.phys_buffer[i]); 682 priv->msg_tx_ring.phys_buffer[i]);
679 goto out; 683 goto out;
@@ -713,7 +717,7 @@ void rio_close_inb_mbox(struct rio_mport *mport, int mbox)
713 out_be32(&priv->msg_regs->imr, 0); 717 out_be32(&priv->msg_regs->imr, 0);
714 718
715 /* Free ring */ 719 /* Free ring */
716 dma_free_coherent(NULL, priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE, 720 dma_free_coherent(priv->dev, priv->msg_rx_ring.size * RIO_MAX_MSG_SIZE,
717 priv->msg_rx_ring.virt, priv->msg_rx_ring.phys); 721 priv->msg_rx_ring.virt, priv->msg_rx_ring.phys);
718 722
719 /* Free interrupt */ 723 /* Free interrupt */
@@ -890,7 +894,7 @@ static int fsl_rio_doorbell_init(struct rio_mport *mport)
890 } 894 }
891 895
892 /* Initialize inbound doorbells */ 896 /* Initialize inbound doorbells */
893 priv->dbell_ring.virt = dma_alloc_coherent(NULL, 512 * 897 priv->dbell_ring.virt = dma_alloc_coherent(priv->dev, 512 *
894 DOORBELL_MESSAGE_SIZE, &priv->dbell_ring.phys, GFP_KERNEL); 898 DOORBELL_MESSAGE_SIZE, &priv->dbell_ring.phys, GFP_KERNEL);
895 if (!priv->dbell_ring.virt) { 899 if (!priv->dbell_ring.virt) {
896 printk(KERN_ERR "RIO: unable allocate inbound doorbell ring\n"); 900 printk(KERN_ERR "RIO: unable allocate inbound doorbell ring\n");
@@ -911,7 +915,7 @@ static int fsl_rio_doorbell_init(struct rio_mport *mport)
911 "dbell_rx", (void *)mport); 915 "dbell_rx", (void *)mport);
912 if (rc < 0) { 916 if (rc < 0) {
913 iounmap(priv->dbell_win); 917 iounmap(priv->dbell_win);
914 dma_free_coherent(NULL, 512 * DOORBELL_MESSAGE_SIZE, 918 dma_free_coherent(priv->dev, 512 * DOORBELL_MESSAGE_SIZE,
915 priv->dbell_ring.virt, priv->dbell_ring.phys); 919 priv->dbell_ring.virt, priv->dbell_ring.phys);
916 printk(KERN_ERR 920 printk(KERN_ERR
917 "MPC85xx RIO: unable to request inbound doorbell irq"); 921 "MPC85xx RIO: unable to request inbound doorbell irq");
@@ -1087,6 +1091,8 @@ int fsl_rio_setup(struct of_device *dev)
1087 rio_init_mbox_res(&port->riores[RIO_OUTB_MBOX_RESOURCE], 0, 0); 1091 rio_init_mbox_res(&port->riores[RIO_OUTB_MBOX_RESOURCE], 0, 0);
1088 strcpy(port->name, "RIO0 mport"); 1092 strcpy(port->name, "RIO0 mport");
1089 1093
1094 priv->dev = &dev->dev;
1095
1090 port->ops = ops; 1096 port->ops = ops;
1091 port->host_deviceid = fsl_rio_get_hdid(port->id); 1097 port->host_deviceid = fsl_rio_get_hdid(port->id);
1092 1098
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index afe8dbc964aa..5c64ccd402e2 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -208,52 +208,6 @@ static int __init of_add_fixed_phys(void)
208arch_initcall(of_add_fixed_phys); 208arch_initcall(of_add_fixed_phys);
209#endif /* CONFIG_FIXED_PHY */ 209#endif /* CONFIG_FIXED_PHY */
210 210
211#ifdef CONFIG_PPC_83xx
212static int __init mpc83xx_wdt_init(void)
213{
214 struct resource r;
215 struct device_node *np;
216 struct platform_device *dev;
217 u32 freq = fsl_get_sys_freq();
218 int ret;
219
220 np = of_find_compatible_node(NULL, "watchdog", "mpc83xx_wdt");
221
222 if (!np) {
223 ret = -ENODEV;
224 goto nodev;
225 }
226
227 memset(&r, 0, sizeof(r));
228
229 ret = of_address_to_resource(np, 0, &r);
230 if (ret)
231 goto err;
232
233 dev = platform_device_register_simple("mpc83xx_wdt", 0, &r, 1);
234 if (IS_ERR(dev)) {
235 ret = PTR_ERR(dev);
236 goto err;
237 }
238
239 ret = platform_device_add_data(dev, &freq, sizeof(freq));
240 if (ret)
241 goto unreg;
242
243 of_node_put(np);
244 return 0;
245
246unreg:
247 platform_device_unregister(dev);
248err:
249 of_node_put(np);
250nodev:
251 return ret;
252}
253
254arch_initcall(mpc83xx_wdt_init);
255#endif
256
257static enum fsl_usb2_phy_modes determine_usb_phy(const char *phy_type) 211static enum fsl_usb2_phy_modes determine_usb_phy(const char *phy_type)
258{ 212{
259 if (!phy_type) 213 if (!phy_type)
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 21b956701596..0efc12d1a3d7 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1057,13 +1057,6 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1057 memset(mpic, 0, sizeof(struct mpic)); 1057 memset(mpic, 0, sizeof(struct mpic));
1058 mpic->name = name; 1058 mpic->name = name;
1059 1059
1060 mpic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
1061 isu_size, &mpic_host_ops,
1062 flags & MPIC_LARGE_VECTORS ? 2048 : 256);
1063 if (mpic->irqhost == NULL)
1064 return NULL;
1065
1066 mpic->irqhost->host_data = mpic;
1067 mpic->hc_irq = mpic_irq_chip; 1060 mpic->hc_irq = mpic_irq_chip;
1068 mpic->hc_irq.typename = name; 1061 mpic->hc_irq.typename = name;
1069 if (flags & MPIC_PRIMARY) 1062 if (flags & MPIC_PRIMARY)
@@ -1213,6 +1206,15 @@ struct mpic * __init mpic_alloc(struct device_node *node,
1213 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1); 1206 mpic->isu_shift = 1 + __ilog2(mpic->isu_size - 1);
1214 mpic->isu_mask = (1 << mpic->isu_shift) - 1; 1207 mpic->isu_mask = (1 << mpic->isu_shift) - 1;
1215 1208
1209 mpic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
1210 isu_size ? isu_size : mpic->num_sources,
1211 &mpic_host_ops,
1212 flags & MPIC_LARGE_VECTORS ? 2048 : 256);
1213 if (mpic->irqhost == NULL)
1214 return NULL;
1215
1216 mpic->irqhost->host_data = mpic;
1217
1216 /* Display version */ 1218 /* Display version */
1217 switch (greg_feature & MPIC_GREG_FEATURE_VERSION_MASK) { 1219 switch (greg_feature & MPIC_GREG_FEATURE_VERSION_MASK) {
1218 case 1: 1220 case 1:
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index a22e1a2df1af..c658b413c9b4 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -41,8 +41,32 @@
41 41
42static struct irq_host *master_irqhost; 42static struct irq_host *master_irqhost;
43 43
44#define XILINX_INTC_MAXIRQS (32)
45
46/* The following table allows the interrupt type, edge or level,
47 * to be cached after being read from the device tree until the interrupt
48 * is mapped
49 */
50static int xilinx_intc_typetable[XILINX_INTC_MAXIRQS];
51
52/* Map the interrupt type from the device tree to the interrupt types
53 * used by the interrupt subsystem
54 */
55static unsigned char xilinx_intc_map_senses[] = {
56 IRQ_TYPE_EDGE_RISING,
57 IRQ_TYPE_EDGE_FALLING,
58 IRQ_TYPE_LEVEL_HIGH,
59 IRQ_TYPE_LEVEL_LOW,
60};
61
44/* 62/*
45 * IRQ Chip operations 63 * The interrupt controller is setup such that it doesn't work well with
64 * the level interrupt handler in the kernel because the handler acks the
65 * interrupt before calling the application interrupt handler. To deal with
66 * that, we use 2 different irq chips so that different functions can be
67 * used for level and edge type interrupts.
68 *
69 * IRQ Chip common (across level and edge) operations
46 */ 70 */
47static void xilinx_intc_mask(unsigned int virq) 71static void xilinx_intc_mask(unsigned int virq)
48{ 72{
@@ -52,15 +76,54 @@ static void xilinx_intc_mask(unsigned int virq)
52 out_be32(regs + XINTC_CIE, 1 << irq); 76 out_be32(regs + XINTC_CIE, 1 << irq);
53} 77}
54 78
55static void xilinx_intc_unmask(unsigned int virq) 79static int xilinx_intc_set_type(unsigned int virq, unsigned int flow_type)
80{
81 struct irq_desc *desc = get_irq_desc(virq);
82
83 desc->status &= ~(IRQ_TYPE_SENSE_MASK | IRQ_LEVEL);
84 desc->status |= flow_type & IRQ_TYPE_SENSE_MASK;
85 if (flow_type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW))
86 desc->status |= IRQ_LEVEL;
87 return 0;
88}
89
90/*
91 * IRQ Chip level operations
92 */
93static void xilinx_intc_level_unmask(unsigned int virq)
56{ 94{
57 int irq = virq_to_hw(virq); 95 int irq = virq_to_hw(virq);
58 void * regs = get_irq_chip_data(virq); 96 void * regs = get_irq_chip_data(virq);
59 pr_debug("unmask: %d\n", irq); 97 pr_debug("unmask: %d\n", irq);
60 out_be32(regs + XINTC_SIE, 1 << irq); 98 out_be32(regs + XINTC_SIE, 1 << irq);
99
100 /* ack level irqs because they can't be acked during
101 * ack function since the handle_level_irq function
102 * acks the irq before calling the inerrupt handler
103 */
104 out_be32(regs + XINTC_IAR, 1 << irq);
61} 105}
62 106
63static void xilinx_intc_ack(unsigned int virq) 107static struct irq_chip xilinx_intc_level_irqchip = {
108 .typename = "Xilinx Level INTC",
109 .mask = xilinx_intc_mask,
110 .mask_ack = xilinx_intc_mask,
111 .unmask = xilinx_intc_level_unmask,
112 .set_type = xilinx_intc_set_type,
113};
114
115/*
116 * IRQ Chip edge operations
117 */
118static void xilinx_intc_edge_unmask(unsigned int virq)
119{
120 int irq = virq_to_hw(virq);
121 void *regs = get_irq_chip_data(virq);
122 pr_debug("unmask: %d\n", irq);
123 out_be32(regs + XINTC_SIE, 1 << irq);
124}
125
126static void xilinx_intc_edge_ack(unsigned int virq)
64{ 127{
65 int irq = virq_to_hw(virq); 128 int irq = virq_to_hw(virq);
66 void * regs = get_irq_chip_data(virq); 129 void * regs = get_irq_chip_data(virq);
@@ -68,27 +131,60 @@ static void xilinx_intc_ack(unsigned int virq)
68 out_be32(regs + XINTC_IAR, 1 << irq); 131 out_be32(regs + XINTC_IAR, 1 << irq);
69} 132}
70 133
71static struct irq_chip xilinx_intc_irqchip = { 134static struct irq_chip xilinx_intc_edge_irqchip = {
72 .typename = "Xilinx INTC", 135 .typename = "Xilinx Edge INTC",
73 .mask = xilinx_intc_mask, 136 .mask = xilinx_intc_mask,
74 .unmask = xilinx_intc_unmask, 137 .unmask = xilinx_intc_edge_unmask,
75 .ack = xilinx_intc_ack, 138 .ack = xilinx_intc_edge_ack,
139 .set_type = xilinx_intc_set_type,
76}; 140};
77 141
78/* 142/*
79 * IRQ Host operations 143 * IRQ Host operations
80 */ 144 */
145
146/**
147 * xilinx_intc_xlate - translate virq# from device tree interrupts property
148 */
149static int xilinx_intc_xlate(struct irq_host *h, struct device_node *ct,
150 u32 *intspec, unsigned int intsize,
151 irq_hw_number_t *out_hwirq,
152 unsigned int *out_flags)
153{
154 if ((intsize < 2) || (intspec[0] >= XILINX_INTC_MAXIRQS))
155 return -EINVAL;
156
157 /* keep a copy of the interrupt type til the interrupt is mapped
158 */
159 xilinx_intc_typetable[intspec[0]] = xilinx_intc_map_senses[intspec[1]];
160
161 /* Xilinx uses 2 interrupt entries, the 1st being the h/w
162 * interrupt number, the 2nd being the interrupt type, edge or level
163 */
164 *out_hwirq = intspec[0];
165 *out_flags = xilinx_intc_map_senses[intspec[1]];
166
167 return 0;
168}
81static int xilinx_intc_map(struct irq_host *h, unsigned int virq, 169static int xilinx_intc_map(struct irq_host *h, unsigned int virq,
82 irq_hw_number_t irq) 170 irq_hw_number_t irq)
83{ 171{
84 set_irq_chip_data(virq, h->host_data); 172 set_irq_chip_data(virq, h->host_data);
85 set_irq_chip_and_handler(virq, &xilinx_intc_irqchip, handle_level_irq); 173
86 set_irq_type(virq, IRQ_TYPE_NONE); 174 if (xilinx_intc_typetable[irq] == IRQ_TYPE_LEVEL_HIGH ||
175 xilinx_intc_typetable[irq] == IRQ_TYPE_LEVEL_LOW) {
176 set_irq_chip_and_handler(virq, &xilinx_intc_level_irqchip,
177 handle_level_irq);
178 } else {
179 set_irq_chip_and_handler(virq, &xilinx_intc_edge_irqchip,
180 handle_edge_irq);
181 }
87 return 0; 182 return 0;
88} 183}
89 184
90static struct irq_host_ops xilinx_intc_ops = { 185static struct irq_host_ops xilinx_intc_ops = {
91 .map = xilinx_intc_map, 186 .map = xilinx_intc_map,
187 .xlate = xilinx_intc_xlate,
92}; 188};
93 189
94struct irq_host * __init 190struct irq_host * __init
@@ -116,7 +212,8 @@ xilinx_intc_init(struct device_node *np)
116 out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */ 212 out_be32(regs + XINTC_MER, 0x3UL); /* Turn on the Master Enable. */
117 213
118 /* Allocate and initialize an irq_host structure. */ 214 /* Allocate and initialize an irq_host structure. */
119 irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, 32, &xilinx_intc_ops, -1); 215 irq = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, XILINX_INTC_MAXIRQS,
216 &xilinx_intc_ops, -1);
120 if (!irq) 217 if (!irq)
121 panic(__FILE__ ": Cannot allocate IRQ host\n"); 218 panic(__FILE__ ": Cannot allocate IRQ host\n");
122 irq->host_data = regs; 219 irq->host_data = regs;
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index 27b70d8a359c..1dfc7100c7ee 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -98,7 +98,7 @@ static DECLARE_WORK(appldata_work, appldata_work_fn);
98/* 98/*
99 * Ops list 99 * Ops list
100 */ 100 */
101static DEFINE_SPINLOCK(appldata_ops_lock); 101static DEFINE_MUTEX(appldata_ops_mutex);
102static LIST_HEAD(appldata_ops_list); 102static LIST_HEAD(appldata_ops_list);
103 103
104 104
@@ -129,14 +129,14 @@ static void appldata_work_fn(struct work_struct *work)
129 129
130 i = 0; 130 i = 0;
131 get_online_cpus(); 131 get_online_cpus();
132 spin_lock(&appldata_ops_lock); 132 mutex_lock(&appldata_ops_mutex);
133 list_for_each(lh, &appldata_ops_list) { 133 list_for_each(lh, &appldata_ops_list) {
134 ops = list_entry(lh, struct appldata_ops, list); 134 ops = list_entry(lh, struct appldata_ops, list);
135 if (ops->active == 1) { 135 if (ops->active == 1) {
136 ops->callback(ops->data); 136 ops->callback(ops->data);
137 } 137 }
138 } 138 }
139 spin_unlock(&appldata_ops_lock); 139 mutex_unlock(&appldata_ops_mutex);
140 put_online_cpus(); 140 put_online_cpus();
141} 141}
142 142
@@ -176,7 +176,7 @@ static void __appldata_mod_vtimer_wrap(void *p) {
176 struct vtimer_list *timer; 176 struct vtimer_list *timer;
177 u64 expires; 177 u64 expires;
178 } *args = p; 178 } *args = p;
179 mod_virt_timer(args->timer, args->expires); 179 mod_virt_timer_periodic(args->timer, args->expires);
180} 180}
181 181
182#define APPLDATA_ADD_TIMER 0 182#define APPLDATA_ADD_TIMER 0
@@ -338,7 +338,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
338 struct list_head *lh; 338 struct list_head *lh;
339 339
340 found = 0; 340 found = 0;
341 spin_lock(&appldata_ops_lock); 341 mutex_lock(&appldata_ops_mutex);
342 list_for_each(lh, &appldata_ops_list) { 342 list_for_each(lh, &appldata_ops_list) {
343 tmp_ops = list_entry(lh, struct appldata_ops, list); 343 tmp_ops = list_entry(lh, struct appldata_ops, list);
344 if (&tmp_ops->ctl_table[2] == ctl) { 344 if (&tmp_ops->ctl_table[2] == ctl) {
@@ -346,15 +346,15 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
346 } 346 }
347 } 347 }
348 if (!found) { 348 if (!found) {
349 spin_unlock(&appldata_ops_lock); 349 mutex_unlock(&appldata_ops_mutex);
350 return -ENODEV; 350 return -ENODEV;
351 } 351 }
352 ops = ctl->data; 352 ops = ctl->data;
353 if (!try_module_get(ops->owner)) { // protect this function 353 if (!try_module_get(ops->owner)) { // protect this function
354 spin_unlock(&appldata_ops_lock); 354 mutex_unlock(&appldata_ops_mutex);
355 return -ENODEV; 355 return -ENODEV;
356 } 356 }
357 spin_unlock(&appldata_ops_lock); 357 mutex_unlock(&appldata_ops_mutex);
358 358
359 if (!*lenp || *ppos) { 359 if (!*lenp || *ppos) {
360 *lenp = 0; 360 *lenp = 0;
@@ -378,11 +378,11 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
378 return -EFAULT; 378 return -EFAULT;
379 } 379 }
380 380
381 spin_lock(&appldata_ops_lock); 381 mutex_lock(&appldata_ops_mutex);
382 if ((buf[0] == '1') && (ops->active == 0)) { 382 if ((buf[0] == '1') && (ops->active == 0)) {
383 // protect work queue callback 383 // protect work queue callback
384 if (!try_module_get(ops->owner)) { 384 if (!try_module_get(ops->owner)) {
385 spin_unlock(&appldata_ops_lock); 385 mutex_unlock(&appldata_ops_mutex);
386 module_put(ops->owner); 386 module_put(ops->owner);
387 return -ENODEV; 387 return -ENODEV;
388 } 388 }
@@ -407,7 +407,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
407 "failed with rc=%d\n", ops->name, rc); 407 "failed with rc=%d\n", ops->name, rc);
408 module_put(ops->owner); 408 module_put(ops->owner);
409 } 409 }
410 spin_unlock(&appldata_ops_lock); 410 mutex_unlock(&appldata_ops_mutex);
411out: 411out:
412 *lenp = len; 412 *lenp = len;
413 *ppos += len; 413 *ppos += len;
@@ -433,9 +433,9 @@ int appldata_register_ops(struct appldata_ops *ops)
433 if (!ops->ctl_table) 433 if (!ops->ctl_table)
434 return -ENOMEM; 434 return -ENOMEM;
435 435
436 spin_lock(&appldata_ops_lock); 436 mutex_lock(&appldata_ops_mutex);
437 list_add(&ops->list, &appldata_ops_list); 437 list_add(&ops->list, &appldata_ops_list);
438 spin_unlock(&appldata_ops_lock); 438 mutex_unlock(&appldata_ops_mutex);
439 439
440 ops->ctl_table[0].procname = appldata_proc_name; 440 ops->ctl_table[0].procname = appldata_proc_name;
441 ops->ctl_table[0].maxlen = 0; 441 ops->ctl_table[0].maxlen = 0;
@@ -452,9 +452,9 @@ int appldata_register_ops(struct appldata_ops *ops)
452 goto out; 452 goto out;
453 return 0; 453 return 0;
454out: 454out:
455 spin_lock(&appldata_ops_lock); 455 mutex_lock(&appldata_ops_mutex);
456 list_del(&ops->list); 456 list_del(&ops->list);
457 spin_unlock(&appldata_ops_lock); 457 mutex_unlock(&appldata_ops_mutex);
458 kfree(ops->ctl_table); 458 kfree(ops->ctl_table);
459 return -ENOMEM; 459 return -ENOMEM;
460} 460}
@@ -466,9 +466,9 @@ out:
466 */ 466 */
467void appldata_unregister_ops(struct appldata_ops *ops) 467void appldata_unregister_ops(struct appldata_ops *ops)
468{ 468{
469 spin_lock(&appldata_ops_lock); 469 mutex_lock(&appldata_ops_mutex);
470 list_del(&ops->list); 470 list_del(&ops->list);
471 spin_unlock(&appldata_ops_lock); 471 mutex_unlock(&appldata_ops_mutex);
472 unregister_sysctl_table(ops->sysctl_header); 472 unregister_sysctl_table(ops->sysctl_header);
473 kfree(ops->ctl_table); 473 kfree(ops->ctl_table);
474} 474}
diff --git a/arch/s390/appldata/appldata_mem.c b/arch/s390/appldata/appldata_mem.c
index 3ed56b7d1b2f..4188cbe63a54 100644
--- a/arch/s390/appldata/appldata_mem.c
+++ b/arch/s390/appldata/appldata_mem.c
@@ -78,7 +78,7 @@ static void appldata_get_mem_data(void *data)
78{ 78{
79 /* 79 /*
80 * don't put large structures on the stack, we are 80 * don't put large structures on the stack, we are
81 * serialized through the appldata_ops_lock and can use static 81 * serialized through the appldata_ops_mutex and can use static
82 */ 82 */
83 static struct sysinfo val; 83 static struct sysinfo val;
84 unsigned long ev[NR_VM_EVENT_ITEMS]; 84 unsigned long ev[NR_VM_EVENT_ITEMS];
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index 31e809c77790..d401d56c255f 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.29-rc4 3# Linux kernel version: 2.6.30-rc3
4# Wed Feb 11 10:07:16 2009 4# Thu Apr 23 09:29:52 2009
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -22,6 +22,7 @@ CONFIG_NO_DMA=y
22CONFIG_GENERIC_LOCKBREAK=y 22CONFIG_GENERIC_LOCKBREAK=y
23CONFIG_PGSTE=y 23CONFIG_PGSTE=y
24CONFIG_VIRT_CPU_ACCOUNTING=y 24CONFIG_VIRT_CPU_ACCOUNTING=y
25CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
25CONFIG_S390=y 26CONFIG_S390=y
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27 28
@@ -37,6 +38,7 @@ CONFIG_SWAP=y
37CONFIG_SYSVIPC=y 38CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y 39CONFIG_SYSVIPC_SYSCTL=y
39CONFIG_POSIX_MQUEUE=y 40CONFIG_POSIX_MQUEUE=y
41CONFIG_POSIX_MQUEUE_SYSCTL=y
40# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
42CONFIG_AUDIT=y 44CONFIG_AUDIT=y
@@ -77,21 +79,24 @@ CONFIG_IPC_NS=y
77# CONFIG_NET_NS is not set 79# CONFIG_NET_NS is not set
78CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 81CONFIG_INITRAMFS_SOURCE=""
82CONFIG_RD_GZIP=y
83CONFIG_RD_BZIP2=y
84CONFIG_RD_LZMA=y
80# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 85# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
81CONFIG_SYSCTL=y 86CONFIG_SYSCTL=y
87CONFIG_ANON_INODES=y
82# CONFIG_EMBEDDED is not set 88# CONFIG_EMBEDDED is not set
83CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
84CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
85# CONFIG_KALLSYMS_ALL is not set 91# CONFIG_KALLSYMS_ALL is not set
86# CONFIG_KALLSYMS_EXTRA_PASS is not set 92# CONFIG_KALLSYMS_EXTRA_PASS is not set
93# CONFIG_STRIP_ASM_SYMS is not set
87CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 95CONFIG_PRINTK=y
89CONFIG_BUG=y 96CONFIG_BUG=y
90CONFIG_ELF_CORE=y 97CONFIG_ELF_CORE=y
91# CONFIG_COMPAT_BRK is not set
92CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 99CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 100CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 101CONFIG_SIGNALFD=y
97CONFIG_TIMERFD=y 102CONFIG_TIMERFD=y
@@ -99,10 +104,12 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 104CONFIG_SHMEM=y
100CONFIG_AIO=y 105CONFIG_AIO=y
101CONFIG_VM_EVENT_COUNTERS=y 106CONFIG_VM_EVENT_COUNTERS=y
107# CONFIG_COMPAT_BRK is not set
102CONFIG_SLAB=y 108CONFIG_SLAB=y
103# CONFIG_SLUB is not set 109# CONFIG_SLUB is not set
104# CONFIG_SLOB is not set 110# CONFIG_SLOB is not set
105# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set
106CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
107CONFIG_KPROBES=y 114CONFIG_KPROBES=y
108CONFIG_HAVE_SYSCALL_WRAPPERS=y 115CONFIG_HAVE_SYSCALL_WRAPPERS=y
@@ -111,6 +118,8 @@ CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
112CONFIG_HAVE_ARCH_TRACEHOOK=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
113CONFIG_USE_GENERIC_SMP_HELPERS=y 120CONFIG_USE_GENERIC_SMP_HELPERS=y
121CONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y
122# CONFIG_SLOW_WORK is not set
114# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
@@ -124,7 +133,6 @@ CONFIG_MODVERSIONS=y
124CONFIG_INIT_ALL_POSSIBLE=y 133CONFIG_INIT_ALL_POSSIBLE=y
125CONFIG_STOP_MACHINE=y 134CONFIG_STOP_MACHINE=y
126CONFIG_BLOCK=y 135CONFIG_BLOCK=y
127# CONFIG_BLK_DEV_IO_TRACE is not set
128CONFIG_BLK_DEV_BSG=y 136CONFIG_BLK_DEV_BSG=y
129# CONFIG_BLK_DEV_INTEGRITY is not set 137# CONFIG_BLK_DEV_INTEGRITY is not set
130CONFIG_BLOCK_COMPAT=y 138CONFIG_BLOCK_COMPAT=y
@@ -211,11 +219,12 @@ CONFIG_ZONE_DMA_FLAG=1
211CONFIG_BOUNCE=y 219CONFIG_BOUNCE=y
212CONFIG_VIRT_TO_BUS=y 220CONFIG_VIRT_TO_BUS=y
213CONFIG_UNEVICTABLE_LRU=y 221CONFIG_UNEVICTABLE_LRU=y
222CONFIG_HAVE_MLOCK=y
223CONFIG_HAVE_MLOCKED_PAGE_BIT=y
214 224
215# 225#
216# I/O subsystem configuration 226# I/O subsystem configuration
217# 227#
218CONFIG_MACHCHK_WARNING=y
219CONFIG_QDIO=y 228CONFIG_QDIO=y
220CONFIG_CHSC_SCH=m 229CONFIG_CHSC_SCH=m
221 230
@@ -247,12 +256,12 @@ CONFIG_S390_HYPFS_FS=y
247CONFIG_KEXEC=y 256CONFIG_KEXEC=y
248# CONFIG_ZFCPDUMP is not set 257# CONFIG_ZFCPDUMP is not set
249CONFIG_S390_GUEST=y 258CONFIG_S390_GUEST=y
259CONFIG_SECCOMP=y
250CONFIG_NET=y 260CONFIG_NET=y
251 261
252# 262#
253# Networking options 263# Networking options
254# 264#
255CONFIG_COMPAT_NET_DEV_OPS=y
256CONFIG_PACKET=y 265CONFIG_PACKET=y
257# CONFIG_PACKET_MMAP is not set 266# CONFIG_PACKET_MMAP is not set
258CONFIG_UNIX=y 267CONFIG_UNIX=y
@@ -374,6 +383,7 @@ CONFIG_SCTP_HMAC_MD5=y
374# CONFIG_LAPB is not set 383# CONFIG_LAPB is not set
375# CONFIG_ECONET is not set 384# CONFIG_ECONET is not set
376# CONFIG_WAN_ROUTER is not set 385# CONFIG_WAN_ROUTER is not set
386# CONFIG_PHONET is not set
377CONFIG_NET_SCHED=y 387CONFIG_NET_SCHED=y
378 388
379# 389#
@@ -438,7 +448,6 @@ CONFIG_CAN_BCM=m
438CONFIG_CAN_VCAN=m 448CONFIG_CAN_VCAN=m
439# CONFIG_CAN_DEBUG_DEVICES is not set 449# CONFIG_CAN_DEBUG_DEVICES is not set
440# CONFIG_AF_RXRPC is not set 450# CONFIG_AF_RXRPC is not set
441# CONFIG_PHONET is not set
442# CONFIG_WIMAX 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
@@ -537,6 +546,7 @@ CONFIG_SCSI_FC_ATTRS=y
537CONFIG_SCSI_LOWLEVEL=y 546CONFIG_SCSI_LOWLEVEL=y
538# CONFIG_ISCSI_TCP is not set 547# CONFIG_ISCSI_TCP is not set
539# CONFIG_LIBFC is not set 548# CONFIG_LIBFC is not set
549# CONFIG_LIBFCOE is not set
540# CONFIG_SCSI_DEBUG is not set 550# CONFIG_SCSI_DEBUG is not set
541CONFIG_ZFCP=y 551CONFIG_ZFCP=y
542CONFIG_SCSI_DH=m 552CONFIG_SCSI_DH=m
@@ -544,6 +554,10 @@ CONFIG_SCSI_DH_RDAC=m
544CONFIG_SCSI_DH_HP_SW=m 554CONFIG_SCSI_DH_HP_SW=m
545CONFIG_SCSI_DH_EMC=m 555CONFIG_SCSI_DH_EMC=m
546CONFIG_SCSI_DH_ALUA=m 556CONFIG_SCSI_DH_ALUA=m
557CONFIG_SCSI_OSD_INITIATOR=m
558CONFIG_SCSI_OSD_ULD=m
559CONFIG_SCSI_OSD_DPRINT_SENSE=1
560# CONFIG_SCSI_OSD_DEBUG is not set
547CONFIG_MD=y 561CONFIG_MD=y
548CONFIG_BLK_DEV_MD=y 562CONFIG_BLK_DEV_MD=y
549CONFIG_MD_AUTODETECT=y 563CONFIG_MD_AUTODETECT=y
@@ -564,6 +578,7 @@ CONFIG_DM_MULTIPATH=m
564# CONFIG_DM_DELAY is not set 578# CONFIG_DM_DELAY is not set
565# CONFIG_DM_UEVENT is not set 579# CONFIG_DM_UEVENT is not set
566CONFIG_NETDEVICES=y 580CONFIG_NETDEVICES=y
581CONFIG_COMPAT_NET_DEV_OPS=y
567# CONFIG_IFB is not set 582# CONFIG_IFB is not set
568CONFIG_DUMMY=m 583CONFIG_DUMMY=m
569CONFIG_BONDING=m 584CONFIG_BONDING=m
@@ -667,6 +682,7 @@ CONFIG_S390_VMUR=m
667# CONFIG_MEMSTICK is not set 682# CONFIG_MEMSTICK is not set
668# CONFIG_NEW_LEDS is not set 683# CONFIG_NEW_LEDS is not set
669CONFIG_ACCESSIBILITY=y 684CONFIG_ACCESSIBILITY=y
685# CONFIG_AUXDISPLAY is not set
670# CONFIG_STAGING is not set 686# CONFIG_STAGING is not set
671 687
672# 688#
@@ -676,6 +692,7 @@ CONFIG_EXT2_FS=y
676# CONFIG_EXT2_FS_XATTR is not set 692# CONFIG_EXT2_FS_XATTR is not set
677# CONFIG_EXT2_FS_XIP is not set 693# CONFIG_EXT2_FS_XIP is not set
678CONFIG_EXT3_FS=y 694CONFIG_EXT3_FS=y
695# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
679CONFIG_EXT3_FS_XATTR=y 696CONFIG_EXT3_FS_XATTR=y
680# CONFIG_EXT3_FS_POSIX_ACL is not set 697# CONFIG_EXT3_FS_POSIX_ACL is not set
681# CONFIG_EXT3_FS_SECURITY is not set 698# CONFIG_EXT3_FS_SECURITY is not set
@@ -701,6 +718,11 @@ CONFIG_INOTIFY_USER=y
701CONFIG_GENERIC_ACL=y 718CONFIG_GENERIC_ACL=y
702 719
703# 720#
721# Caches
722#
723# CONFIG_FSCACHE is not set
724
725#
704# CD-ROM/DVD Filesystems 726# CD-ROM/DVD Filesystems
705# 727#
706# CONFIG_ISO9660_FS is not set 728# CONFIG_ISO9660_FS is not set
@@ -744,6 +766,8 @@ CONFIG_MISC_FILESYSTEMS=y
744# CONFIG_ROMFS_FS is not set 766# CONFIG_ROMFS_FS is not set
745# CONFIG_SYSV_FS is not set 767# CONFIG_SYSV_FS is not set
746# CONFIG_UFS_FS is not set 768# CONFIG_UFS_FS is not set
769# CONFIG_EXOFS_FS is not set
770# CONFIG_NILFS2_FS is not set
747CONFIG_NETWORK_FILESYSTEMS=y 771CONFIG_NETWORK_FILESYSTEMS=y
748CONFIG_NFS_FS=y 772CONFIG_NFS_FS=y
749CONFIG_NFS_V3=y 773CONFIG_NFS_V3=y
@@ -758,7 +782,6 @@ CONFIG_LOCKD_V4=y
758CONFIG_EXPORTFS=y 782CONFIG_EXPORTFS=y
759CONFIG_NFS_COMMON=y 783CONFIG_NFS_COMMON=y
760CONFIG_SUNRPC=y 784CONFIG_SUNRPC=y
761# CONFIG_SUNRPC_REGISTER_V4 is not set
762# CONFIG_RPCSEC_GSS_KRB5 is not set 785# CONFIG_RPCSEC_GSS_KRB5 is not set
763# CONFIG_RPCSEC_GSS_SPKM3 is not set 786# CONFIG_RPCSEC_GSS_SPKM3 is not set
764# CONFIG_SMB_FS is not set 787# CONFIG_SMB_FS is not set
@@ -806,6 +829,7 @@ CONFIG_MAGIC_SYSRQ=y
806CONFIG_DEBUG_FS=y 829CONFIG_DEBUG_FS=y
807# CONFIG_HEADERS_CHECK is not set 830# CONFIG_HEADERS_CHECK is not set
808CONFIG_DEBUG_KERNEL=y 831CONFIG_DEBUG_KERNEL=y
832# CONFIG_DETECT_HUNG_TASK is not set
809# CONFIG_SCHED_DEBUG is not set 833# CONFIG_SCHED_DEBUG is not set
810# CONFIG_SCHEDSTATS is not set 834# CONFIG_SCHEDSTATS is not set
811# CONFIG_TIMER_STATS is not set 835# CONFIG_TIMER_STATS is not set
@@ -830,7 +854,6 @@ CONFIG_DEBUG_MEMORY_INIT=y
830# CONFIG_DEBUG_LIST is not set 854# CONFIG_DEBUG_LIST is not set
831# CONFIG_DEBUG_SG is not set 855# CONFIG_DEBUG_SG is not set
832# CONFIG_DEBUG_NOTIFIERS is not set 856# CONFIG_DEBUG_NOTIFIERS is not set
833# CONFIG_FRAME_POINTER is not set
834# CONFIG_RCU_TORTURE_TEST is not set 857# CONFIG_RCU_TORTURE_TEST is not set
835# CONFIG_RCU_CPU_STALL_DETECTOR is not set 858# CONFIG_RCU_CPU_STALL_DETECTOR is not set
836# CONFIG_KPROBES_SANITY_TEST is not set 859# CONFIG_KPROBES_SANITY_TEST is not set
@@ -840,7 +863,9 @@ CONFIG_DEBUG_MEMORY_INIT=y
840# CONFIG_FAULT_INJECTION is not set 863# CONFIG_FAULT_INJECTION is not set
841# CONFIG_LATENCYTOP is not set 864# CONFIG_LATENCYTOP is not set
842CONFIG_SYSCTL_SYSCALL_CHECK=y 865CONFIG_SYSCTL_SYSCALL_CHECK=y
866# CONFIG_DEBUG_PAGEALLOC is not set
843CONFIG_HAVE_FUNCTION_TRACER=y 867CONFIG_HAVE_FUNCTION_TRACER=y
868CONFIG_TRACING_SUPPORT=y
844 869
845# 870#
846# Tracers 871# Tracers
@@ -850,14 +875,17 @@ CONFIG_HAVE_FUNCTION_TRACER=y
850# CONFIG_PREEMPT_TRACER is not set 875# CONFIG_PREEMPT_TRACER is not set
851# CONFIG_SCHED_TRACER is not set 876# CONFIG_SCHED_TRACER is not set
852# CONFIG_CONTEXT_SWITCH_TRACER is not set 877# CONFIG_CONTEXT_SWITCH_TRACER is not set
878# CONFIG_EVENT_TRACER is not set
853# CONFIG_BOOT_TRACER is not set 879# CONFIG_BOOT_TRACER is not set
854# CONFIG_TRACE_BRANCH_PROFILING is not set 880# CONFIG_TRACE_BRANCH_PROFILING is not set
855# CONFIG_STACK_TRACER is not set 881# CONFIG_STACK_TRACER is not set
856# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 882# CONFIG_KMEMTRACE is not set
883# CONFIG_WORKQUEUE_TRACER is not set
884# CONFIG_BLK_DEV_IO_TRACE is not set
885# CONFIG_DYNAMIC_DEBUG is not set
857CONFIG_SAMPLES=y 886CONFIG_SAMPLES=y
858# CONFIG_SAMPLE_KOBJECT is not set 887# CONFIG_SAMPLE_KOBJECT is not set
859# CONFIG_SAMPLE_KPROBES is not set 888# CONFIG_SAMPLE_KPROBES is not set
860# CONFIG_DEBUG_PAGEALLOC is not set
861 889
862# 890#
863# Security options 891# Security options
@@ -882,10 +910,12 @@ CONFIG_CRYPTO_HASH=m
882CONFIG_CRYPTO_HASH2=y 910CONFIG_CRYPTO_HASH2=y
883CONFIG_CRYPTO_RNG=m 911CONFIG_CRYPTO_RNG=m
884CONFIG_CRYPTO_RNG2=y 912CONFIG_CRYPTO_RNG2=y
913CONFIG_CRYPTO_PCOMP=y
885CONFIG_CRYPTO_MANAGER=y 914CONFIG_CRYPTO_MANAGER=y
886CONFIG_CRYPTO_MANAGER2=y 915CONFIG_CRYPTO_MANAGER2=y
887CONFIG_CRYPTO_GF128MUL=m 916CONFIG_CRYPTO_GF128MUL=m
888# CONFIG_CRYPTO_NULL is not set 917# CONFIG_CRYPTO_NULL is not set
918CONFIG_CRYPTO_WORKQUEUE=y
889# CONFIG_CRYPTO_CRYPTD is not set 919# CONFIG_CRYPTO_CRYPTD is not set
890CONFIG_CRYPTO_AUTHENC=m 920CONFIG_CRYPTO_AUTHENC=m
891# CONFIG_CRYPTO_TEST is not set 921# CONFIG_CRYPTO_TEST is not set
@@ -954,6 +984,7 @@ CONFIG_CRYPTO_SEED=m
954# Compression 984# Compression
955# 985#
956# CONFIG_CRYPTO_DEFLATE is not set 986# CONFIG_CRYPTO_DEFLATE is not set
987CONFIG_CRYPTO_ZLIB=m
957CONFIG_CRYPTO_LZO=m 988CONFIG_CRYPTO_LZO=m
958 989
959# 990#
@@ -969,6 +1000,7 @@ CONFIG_CRYPTO_SHA512_S390=m
969# CONFIG_CRYPTO_DES_S390 is not set 1000# CONFIG_CRYPTO_DES_S390 is not set
970# CONFIG_CRYPTO_AES_S390 is not set 1001# CONFIG_CRYPTO_AES_S390 is not set
971CONFIG_S390_PRNG=m 1002CONFIG_S390_PRNG=m
1003# CONFIG_BINARY_PRINTF is not set
972 1004
973# 1005#
974# Library routines 1006# Library routines
@@ -982,9 +1014,14 @@ CONFIG_CRC_T10DIF=y
982CONFIG_CRC32=m 1014CONFIG_CRC32=m
983CONFIG_CRC7=m 1015CONFIG_CRC7=m
984CONFIG_LIBCRC32C=m 1016CONFIG_LIBCRC32C=m
1017CONFIG_ZLIB_INFLATE=y
1018CONFIG_ZLIB_DEFLATE=m
985CONFIG_LZO_COMPRESS=m 1019CONFIG_LZO_COMPRESS=m
986CONFIG_LZO_DECOMPRESS=m 1020CONFIG_LZO_DECOMPRESS=m
987CONFIG_PLIST=y 1021CONFIG_DECOMPRESS_GZIP=y
1022CONFIG_DECOMPRESS_BZIP2=y
1023CONFIG_DECOMPRESS_LZMA=y
1024CONFIG_NLATTR=y
988CONFIG_HAVE_KVM=y 1025CONFIG_HAVE_KVM=y
989CONFIG_VIRTUALIZATION=y 1026CONFIG_VIRTUALIZATION=y
990CONFIG_KVM=m 1027CONFIG_KVM=m
diff --git a/arch/s390/include/asm/cpuid.h b/arch/s390/include/asm/cpuid.h
new file mode 100644
index 000000000000..07836a2e5222
--- /dev/null
+++ b/arch/s390/include/asm/cpuid.h
@@ -0,0 +1,25 @@
1/*
2 * Copyright IBM Corp. 2000,2009
3 * Author(s): Hartmut Penner <hp@de.ibm.com>,
4 * Martin Schwidefsky <schwidefsky@de.ibm.com>
5 * Christian Ehrhardt <ehrhardt@de.ibm.com>
6 */
7
8#ifndef _ASM_S390_CPUID_H_
9#define _ASM_S390_CPUID_H_
10
11/*
12 * CPU type and hardware bug flags. Kept separately for each CPU.
13 * Members of this structure are referenced in head.S, so think twice
14 * before touching them. [mj]
15 */
16
17typedef struct
18{
19 unsigned int version : 8;
20 unsigned int ident : 24;
21 unsigned int machine : 16;
22 unsigned int unused : 16;
23} __attribute__ ((packed)) cpuid_t;
24
25#endif /* _ASM_S390_CPUID_H_ */
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h
index 95b0f7db3c69..941384fbd39c 100644
--- a/arch/s390/include/asm/cputime.h
+++ b/arch/s390/include/asm/cputime.h
@@ -174,4 +174,8 @@ cputime64_to_clock_t(cputime64_t cputime)
174 return __div(cputime, 4096000000ULL / USER_HZ); 174 return __div(cputime, 4096000000ULL / USER_HZ);
175} 175}
176 176
177cputime64_t s390_get_idle_time(int cpu);
178
179#define arch_idle_time(cpu) s390_get_idle_time(cpu)
180
177#endif /* _S390_CPUTIME_H */ 181#endif /* _S390_CPUTIME_H */
diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index c6e674f5fca9..54ea39f96ecd 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -15,6 +15,7 @@
15#define ASM_KVM_HOST_H 15#define ASM_KVM_HOST_H
16#include <linux/kvm_host.h> 16#include <linux/kvm_host.h>
17#include <asm/debug.h> 17#include <asm/debug.h>
18#include <asm/cpuid.h>
18 19
19#define KVM_MAX_VCPUS 64 20#define KVM_MAX_VCPUS 64
20#define KVM_MEMORY_SLOTS 32 21#define KVM_MEMORY_SLOTS 32
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
index b349f1c7fdfa..3aeca492b147 100644
--- a/arch/s390/include/asm/lowcore.h
+++ b/arch/s390/include/asm/lowcore.h
@@ -66,6 +66,7 @@
66#define __LC_USER_EXEC_ASCE 0x02ac 66#define __LC_USER_EXEC_ASCE 0x02ac
67#define __LC_CPUID 0x02b0 67#define __LC_CPUID 0x02b0
68#define __LC_INT_CLOCK 0x02c8 68#define __LC_INT_CLOCK 0x02c8
69#define __LC_MACHINE_FLAGS 0x02d8
69#define __LC_IRB 0x0300 70#define __LC_IRB 0x0300
70#define __LC_PFAULT_INTPARM 0x0080 71#define __LC_PFAULT_INTPARM 0x0080
71#define __LC_CPU_TIMER_SAVE_AREA 0x00d8 72#define __LC_CPU_TIMER_SAVE_AREA 0x00d8
@@ -110,6 +111,7 @@
110#define __LC_CPUID 0x0320 111#define __LC_CPUID 0x0320
111#define __LC_INT_CLOCK 0x0340 112#define __LC_INT_CLOCK 0x0340
112#define __LC_VDSO_PER_CPU 0x0350 113#define __LC_VDSO_PER_CPU 0x0350
114#define __LC_MACHINE_FLAGS 0x0358
113#define __LC_IRB 0x0380 115#define __LC_IRB 0x0380
114#define __LC_PASTE 0x03c0 116#define __LC_PASTE 0x03c0
115#define __LC_PFAULT_INTPARM 0x11b8 117#define __LC_PFAULT_INTPARM 0x11b8
@@ -127,9 +129,9 @@
127 129
128#ifndef __ASSEMBLY__ 130#ifndef __ASSEMBLY__
129 131
130#include <asm/processor.h> 132#include <asm/cpuid.h>
133#include <asm/ptrace.h>
131#include <linux/types.h> 134#include <linux/types.h>
132#include <asm/sigp.h>
133 135
134void restart_int_handler(void); 136void restart_int_handler(void);
135void ext_int_handler(void); 137void ext_int_handler(void);
@@ -277,7 +279,8 @@ struct _lowcore
277 __u32 ext_call_fast; /* 0x02c4 */ 279 __u32 ext_call_fast; /* 0x02c4 */
278 __u64 int_clock; /* 0x02c8 */ 280 __u64 int_clock; /* 0x02c8 */
279 __u64 clock_comparator; /* 0x02d0 */ 281 __u64 clock_comparator; /* 0x02d0 */
280 __u8 pad_0x02d8[0x0300-0x02d8]; /* 0x02d8 */ 282 __u32 machine_flags; /* 0x02d8 */
283 __u8 pad_0x02dc[0x0300-0x02dc]; /* 0x02dc */
281 284
282 /* Interrupt response block */ 285 /* Interrupt response block */
283 __u8 irb[64]; /* 0x0300 */ 286 __u8 irb[64]; /* 0x0300 */
@@ -381,7 +384,8 @@ struct _lowcore
381 __u64 int_clock; /* 0x0340 */ 384 __u64 int_clock; /* 0x0340 */
382 __u64 clock_comparator; /* 0x0348 */ 385 __u64 clock_comparator; /* 0x0348 */
383 __u64 vdso_per_cpu_data; /* 0x0350 */ 386 __u64 vdso_per_cpu_data; /* 0x0350 */
384 __u8 pad_0x0358[0x0380-0x0358]; /* 0x0358 */ 387 __u64 machine_flags; /* 0x0358 */
388 __u8 pad_0x0360[0x0380-0x0360]; /* 0x0360 */
385 389
386 /* Interrupt response block. */ 390 /* Interrupt response block. */
387 __u8 irb[64]; /* 0x0380 */ 391 __u8 irb[64]; /* 0x0380 */
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 61862b3ac794..c139fa7b8e89 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -14,7 +14,10 @@
14#define __ASM_S390_PROCESSOR_H 14#define __ASM_S390_PROCESSOR_H
15 15
16#include <linux/linkage.h> 16#include <linux/linkage.h>
17#include <asm/cpuid.h>
18#include <asm/page.h>
17#include <asm/ptrace.h> 19#include <asm/ptrace.h>
20#include <asm/setup.h>
18 21
19#ifdef __KERNEL__ 22#ifdef __KERNEL__
20/* 23/*
@@ -23,20 +26,6 @@
23 */ 26 */
24#define current_text_addr() ({ void *pc; asm("basr %0,0" : "=a" (pc)); pc; }) 27#define current_text_addr() ({ void *pc; asm("basr %0,0" : "=a" (pc)); pc; })
25 28
26/*
27 * CPU type and hardware bug flags. Kept separately for each CPU.
28 * Members of this structure are referenced in head.S, so think twice
29 * before touching them. [mj]
30 */
31
32typedef struct
33{
34 unsigned int version : 8;
35 unsigned int ident : 24;
36 unsigned int machine : 16;
37 unsigned int unused : 16;
38} __attribute__ ((packed)) cpuid_t;
39
40static inline void get_cpu_id(cpuid_t *ptr) 29static inline void get_cpu_id(cpuid_t *ptr)
41{ 30{
42 asm volatile("stidp 0(%1)" : "=m" (*ptr) : "a" (ptr)); 31 asm volatile("stidp 0(%1)" : "=m" (*ptr) : "a" (ptr));
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h
index f1b051630c50..539263fc9ab9 100644
--- a/arch/s390/include/asm/ptrace.h
+++ b/arch/s390/include/asm/ptrace.h
@@ -313,8 +313,6 @@ typedef struct
313 313
314 314
315#ifdef __KERNEL__ 315#ifdef __KERNEL__
316#include <asm/setup.h>
317#include <asm/page.h>
318 316
319/* 317/*
320 * The pt_regs struct defines the way the registers are stored on 318 * The pt_regs struct defines the way the registers are stored on
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
index e8bd6ac22c99..38b0fc221ed7 100644
--- a/arch/s390/include/asm/setup.h
+++ b/arch/s390/include/asm/setup.h
@@ -14,6 +14,7 @@
14 14
15#ifdef __KERNEL__ 15#ifdef __KERNEL__
16 16
17#include <asm/lowcore.h>
17#include <asm/types.h> 18#include <asm/types.h>
18 19
19#define PARMAREA 0x10400 20#define PARMAREA 0x10400
@@ -63,7 +64,6 @@ extern unsigned int s390_noexec;
63/* 64/*
64 * Machine features detected in head.S 65 * Machine features detected in head.S
65 */ 66 */
66extern unsigned long machine_flags;
67 67
68#define MACHINE_FLAG_VM (1UL << 0) 68#define MACHINE_FLAG_VM (1UL << 0)
69#define MACHINE_FLAG_IEEE (1UL << 1) 69#define MACHINE_FLAG_IEEE (1UL << 1)
@@ -77,28 +77,28 @@ extern unsigned long machine_flags;
77#define MACHINE_FLAG_HPAGE (1UL << 10) 77#define MACHINE_FLAG_HPAGE (1UL << 10)
78#define MACHINE_FLAG_PFMF (1UL << 11) 78#define MACHINE_FLAG_PFMF (1UL << 11)
79 79
80#define MACHINE_IS_VM (machine_flags & MACHINE_FLAG_VM) 80#define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM)
81#define MACHINE_IS_KVM (machine_flags & MACHINE_FLAG_KVM) 81#define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM)
82#define MACHINE_HAS_DIAG9C (machine_flags & MACHINE_FLAG_DIAG9C) 82#define MACHINE_HAS_DIAG9C (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG9C)
83 83
84#ifndef __s390x__ 84#ifndef __s390x__
85#define MACHINE_HAS_IEEE (machine_flags & MACHINE_FLAG_IEEE) 85#define MACHINE_HAS_IEEE (S390_lowcore.machine_flags & MACHINE_FLAG_IEEE)
86#define MACHINE_HAS_CSP (machine_flags & MACHINE_FLAG_CSP) 86#define MACHINE_HAS_CSP (S390_lowcore.machine_flags & MACHINE_FLAG_CSP)
87#define MACHINE_HAS_IDTE (0) 87#define MACHINE_HAS_IDTE (0)
88#define MACHINE_HAS_DIAG44 (1) 88#define MACHINE_HAS_DIAG44 (1)
89#define MACHINE_HAS_MVPG (machine_flags & MACHINE_FLAG_MVPG) 89#define MACHINE_HAS_MVPG (S390_lowcore.machine_flags & MACHINE_FLAG_MVPG)
90#define MACHINE_HAS_MVCOS (0) 90#define MACHINE_HAS_MVCOS (0)
91#define MACHINE_HAS_HPAGE (0) 91#define MACHINE_HAS_HPAGE (0)
92#define MACHINE_HAS_PFMF (0) 92#define MACHINE_HAS_PFMF (0)
93#else /* __s390x__ */ 93#else /* __s390x__ */
94#define MACHINE_HAS_IEEE (1) 94#define MACHINE_HAS_IEEE (1)
95#define MACHINE_HAS_CSP (1) 95#define MACHINE_HAS_CSP (1)
96#define MACHINE_HAS_IDTE (machine_flags & MACHINE_FLAG_IDTE) 96#define MACHINE_HAS_IDTE (S390_lowcore.machine_flags & MACHINE_FLAG_IDTE)
97#define MACHINE_HAS_DIAG44 (machine_flags & MACHINE_FLAG_DIAG44) 97#define MACHINE_HAS_DIAG44 (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG44)
98#define MACHINE_HAS_MVPG (1) 98#define MACHINE_HAS_MVPG (1)
99#define MACHINE_HAS_MVCOS (machine_flags & MACHINE_FLAG_MVCOS) 99#define MACHINE_HAS_MVCOS (S390_lowcore.machine_flags & MACHINE_FLAG_MVCOS)
100#define MACHINE_HAS_HPAGE (machine_flags & MACHINE_FLAG_HPAGE) 100#define MACHINE_HAS_HPAGE (S390_lowcore.machine_flags & MACHINE_FLAG_HPAGE)
101#define MACHINE_HAS_PFMF (machine_flags & MACHINE_FLAG_PFMF) 101#define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF)
102#endif /* __s390x__ */ 102#endif /* __s390x__ */
103 103
104#define ZFCPDUMP_HSA_SIZE (32UL<<20) 104#define ZFCPDUMP_HSA_SIZE (32UL<<20)
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h
index c544aa524535..461f2abd2e6f 100644
--- a/arch/s390/include/asm/thread_info.h
+++ b/arch/s390/include/asm/thread_info.h
@@ -31,8 +31,9 @@
31#define ASYNC_SIZE (PAGE_SIZE << ASYNC_ORDER) 31#define ASYNC_SIZE (PAGE_SIZE << ASYNC_ORDER)
32 32
33#ifndef __ASSEMBLY__ 33#ifndef __ASSEMBLY__
34#include <asm/processor.h>
35#include <asm/lowcore.h> 34#include <asm/lowcore.h>
35#include <asm/page.h>
36#include <asm/processor.h>
36 37
37/* 38/*
38 * low level task data that entry.S needs immediate access to 39 * low level task data that entry.S needs immediate access to
diff --git a/arch/s390/include/asm/timer.h b/arch/s390/include/asm/timer.h
index e4bcab739c19..814243cafdfe 100644
--- a/arch/s390/include/asm/timer.h
+++ b/arch/s390/include/asm/timer.h
@@ -41,6 +41,7 @@ extern void init_virt_timer(struct vtimer_list *timer);
41extern void add_virt_timer(void *new); 41extern void add_virt_timer(void *new);
42extern void add_virt_timer_periodic(void *new); 42extern void add_virt_timer_periodic(void *new);
43extern int mod_virt_timer(struct vtimer_list *timer, __u64 expires); 43extern int mod_virt_timer(struct vtimer_list *timer, __u64 expires);
44extern int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires);
44extern int del_virt_timer(struct vtimer_list *timer); 45extern int del_virt_timer(struct vtimer_list *timer);
45 46
46extern void init_cpu_vtimer(void); 47extern void init_cpu_vtimer(void);
diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h
index d744c3d62de5..cc21e3e20fd7 100644
--- a/arch/s390/include/asm/timex.h
+++ b/arch/s390/include/asm/timex.h
@@ -11,6 +11,9 @@
11#ifndef _ASM_S390_TIMEX_H 11#ifndef _ASM_S390_TIMEX_H
12#define _ASM_S390_TIMEX_H 12#define _ASM_S390_TIMEX_H
13 13
14/* The value of the TOD clock for 1.1.1970. */
15#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
16
14/* Inline functions for clock register access. */ 17/* Inline functions for clock register access. */
15static inline int set_clock(__u64 time) 18static inline int set_clock(__u64 time)
16{ 19{
@@ -85,4 +88,6 @@ int get_sync_clock(unsigned long long *clock);
85void init_cpu_timer(void); 88void init_cpu_timer(void);
86unsigned long long monotonic_clock(void); 89unsigned long long monotonic_clock(void);
87 90
91extern u64 sched_clock_base_cc;
92
88#endif 93#endif
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index c8ad350d1444..f0f19e6ace6c 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -265,7 +265,9 @@
265#define __NR_pipe2 325 265#define __NR_pipe2 325
266#define __NR_dup3 326 266#define __NR_dup3 326
267#define __NR_epoll_create1 327 267#define __NR_epoll_create1 327
268#define NR_syscalls 328 268#define __NR_preadv 328
269#define __NR_pwritev 329
270#define NR_syscalls 330
269 271
270/* 272/*
271 * There are some system calls that are not present on 64 bit, some 273 * There are some system calls that are not present on 64 bit, some
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index 67a60016babb..fa9905ce7d0b 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -27,6 +27,8 @@ int main(void)
27 DEFINE(__TI_flags, offsetof(struct thread_info, flags)); 27 DEFINE(__TI_flags, offsetof(struct thread_info, flags));
28 DEFINE(__TI_cpu, offsetof(struct thread_info, cpu)); 28 DEFINE(__TI_cpu, offsetof(struct thread_info, cpu));
29 DEFINE(__TI_precount, offsetof(struct thread_info, preempt_count)); 29 DEFINE(__TI_precount, offsetof(struct thread_info, preempt_count));
30 DEFINE(__TI_user_timer, offsetof(struct thread_info, user_timer));
31 DEFINE(__TI_system_timer, offsetof(struct thread_info, system_timer));
30 BLANK(); 32 BLANK();
31 DEFINE(__PT_ARGS, offsetof(struct pt_regs, args)); 33 DEFINE(__PT_ARGS, offsetof(struct pt_regs, args));
32 DEFINE(__PT_PSW, offsetof(struct pt_regs, psw)); 34 DEFINE(__PT_PSW, offsetof(struct pt_regs, psw));
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 6cc87d8c8682..002c70d3cb75 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -702,20 +702,12 @@ asmlinkage long sys32_fstatat64(unsigned int dfd, char __user *filename,
702 struct stat64_emu31 __user* statbuf, int flag) 702 struct stat64_emu31 __user* statbuf, int flag)
703{ 703{
704 struct kstat stat; 704 struct kstat stat;
705 int error = -EINVAL; 705 int error;
706
707 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
708 goto out;
709
710 if (flag & AT_SYMLINK_NOFOLLOW)
711 error = vfs_lstat_fd(dfd, filename, &stat);
712 else
713 error = vfs_stat_fd(dfd, filename, &stat);
714 706
715 if (!error) 707 error = vfs_fstatat(dfd, filename, &stat, flag);
716 error = cp_stat64(statbuf, &stat); 708 if (error)
717out: 709 return error;
718 return error; 710 return cp_stat64(statbuf, &stat);
719} 711}
720 712
721/* 713/*
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 87cf5a79a351..fb38af6316bb 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1805,3 +1805,21 @@ compat_sys_keyctl_wrapper:
1805 llgfr %r5,%r5 # u32 1805 llgfr %r5,%r5 # u32
1806 llgfr %r6,%r6 # u32 1806 llgfr %r6,%r6 # u32
1807 jg compat_sys_keyctl # branch to system call 1807 jg compat_sys_keyctl # branch to system call
1808
1809 .globl compat_sys_preadv_wrapper
1810compat_sys_preadv_wrapper:
1811 llgfr %r2,%r2 # unsigned long
1812 llgtr %r3,%r3 # compat_iovec *
1813 llgfr %r4,%r4 # unsigned long
1814 llgfr %r5,%r5 # u32
1815 llgfr %r6,%r6 # u32
1816 jg compat_sys_preadv # branch to system call
1817
1818 .globl compat_sys_pwritev_wrapper
1819compat_sys_pwritev_wrapper:
1820 llgfr %r2,%r2 # unsigned long
1821 llgtr %r3,%r3 # compat_iovec *
1822 llgfr %r4,%r4 # unsigned long
1823 llgfr %r5,%r5 # u32
1824 llgfr %r6,%r6 # u32
1825 jg compat_sys_pwritev # branch to system call
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 4d221c81c849..cf09948faad6 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -34,8 +34,25 @@
34 34
35char kernel_nss_name[NSS_NAME_SIZE + 1]; 35char kernel_nss_name[NSS_NAME_SIZE + 1];
36 36
37static unsigned long machine_flags;
38
37static void __init setup_boot_command_line(void); 39static void __init setup_boot_command_line(void);
38 40
41/*
42 * Get the TOD clock running.
43 */
44static void __init reset_tod_clock(void)
45{
46 u64 time;
47
48 if (store_clock(&time) == 0)
49 return;
50 /* TOD clock not running. Set the clock to Unix Epoch. */
51 if (set_clock(TOD_UNIX_EPOCH) != 0 || store_clock(&time) != 0)
52 disabled_wait(0);
53
54 sched_clock_base_cc = TOD_UNIX_EPOCH;
55}
39 56
40#ifdef CONFIG_SHARED_KERNEL 57#ifdef CONFIG_SHARED_KERNEL
41int __init savesys_ipl_nss(char *cmd, const int cmdlen); 58int __init savesys_ipl_nss(char *cmd, const int cmdlen);
@@ -370,6 +387,7 @@ static void __init setup_boot_command_line(void)
370 */ 387 */
371void __init startup_init(void) 388void __init startup_init(void)
372{ 389{
390 reset_tod_clock();
373 ipl_save_parameters(); 391 ipl_save_parameters();
374 rescue_initrd(); 392 rescue_initrd();
375 clear_bss_section(); 393 clear_bss_section();
@@ -391,5 +409,6 @@ void __init startup_init(void)
391 setup_hpage(); 409 setup_hpage();
392 sclp_facilities_detect(); 410 sclp_facilities_detect();
393 detect_memory_layout(memory_chunk); 411 detect_memory_layout(memory_chunk);
412 S390_lowcore.machine_flags = machine_flags;
394 lockdep_on(); 413 lockdep_on();
395} 414}
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 1268aa2991bf..f3e275934213 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -837,16 +837,29 @@ mcck_return:
837 __CPUINIT 837 __CPUINIT
838 .globl restart_int_handler 838 .globl restart_int_handler
839restart_int_handler: 839restart_int_handler:
840 basr %r1,0
841restart_base:
842 spt restart_vtime-restart_base(%r1)
843 stck __LC_LAST_UPDATE_CLOCK
844 mvc __LC_LAST_UPDATE_TIMER(8),restart_vtime-restart_base(%r1)
845 mvc __LC_EXIT_TIMER(8),restart_vtime-restart_base(%r1)
840 l %r15,__LC_SAVE_AREA+60 # load ksp 846 l %r15,__LC_SAVE_AREA+60 # load ksp
841 lctl %c0,%c15,__LC_CREGS_SAVE_AREA # get new ctl regs 847 lctl %c0,%c15,__LC_CREGS_SAVE_AREA # get new ctl regs
842 lam %a0,%a15,__LC_AREGS_SAVE_AREA 848 lam %a0,%a15,__LC_AREGS_SAVE_AREA
843 lm %r6,%r15,__SF_GPRS(%r15) # load registers from clone 849 lm %r6,%r15,__SF_GPRS(%r15) # load registers from clone
850 l %r1,__LC_THREAD_INFO
851 mvc __LC_USER_TIMER(8),__TI_user_timer(%r1)
852 mvc __LC_SYSTEM_TIMER(8),__TI_system_timer(%r1)
853 xc __LC_STEAL_TIMER(8),__LC_STEAL_TIMER
844 stosm __SF_EMPTY(%r15),0x04 # now we can turn dat on 854 stosm __SF_EMPTY(%r15),0x04 # now we can turn dat on
845 basr %r14,0 855 basr %r14,0
846 l %r14,restart_addr-.(%r14) 856 l %r14,restart_addr-.(%r14)
847 br %r14 # branch to start_secondary 857 br %r14 # branch to start_secondary
848restart_addr: 858restart_addr:
849 .long start_secondary 859 .long start_secondary
860 .align 8
861restart_vtime:
862 .long 0x7fffffff,0xffffffff
850 .previous 863 .previous
851#else 864#else
852/* 865/*
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index c6fbde13971a..84a105838e03 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -831,14 +831,27 @@ mcck_return:
831 __CPUINIT 831 __CPUINIT
832 .globl restart_int_handler 832 .globl restart_int_handler
833restart_int_handler: 833restart_int_handler:
834 basr %r1,0
835restart_base:
836 spt restart_vtime-restart_base(%r1)
837 stck __LC_LAST_UPDATE_CLOCK
838 mvc __LC_LAST_UPDATE_TIMER(8),restart_vtime-restart_base(%r1)
839 mvc __LC_EXIT_TIMER(8),restart_vtime-restart_base(%r1)
834 lg %r15,__LC_SAVE_AREA+120 # load ksp 840 lg %r15,__LC_SAVE_AREA+120 # load ksp
835 lghi %r10,__LC_CREGS_SAVE_AREA 841 lghi %r10,__LC_CREGS_SAVE_AREA
836 lctlg %c0,%c15,0(%r10) # get new ctl regs 842 lctlg %c0,%c15,0(%r10) # get new ctl regs
837 lghi %r10,__LC_AREGS_SAVE_AREA 843 lghi %r10,__LC_AREGS_SAVE_AREA
838 lam %a0,%a15,0(%r10) 844 lam %a0,%a15,0(%r10)
839 lmg %r6,%r15,__SF_GPRS(%r15) # load registers from clone 845 lmg %r6,%r15,__SF_GPRS(%r15) # load registers from clone
846 lg %r1,__LC_THREAD_INFO
847 mvc __LC_USER_TIMER(8),__TI_user_timer(%r1)
848 mvc __LC_SYSTEM_TIMER(8),__TI_system_timer(%r1)
849 xc __LC_STEAL_TIMER(8),__LC_STEAL_TIMER
840 stosm __SF_EMPTY(%r15),0x04 # now we can turn dat on 850 stosm __SF_EMPTY(%r15),0x04 # now we can turn dat on
841 jg start_secondary 851 jg start_secondary
852 .align 8
853restart_vtime:
854 .long 0x7fffffff,0xffffffff
842 .previous 855 .previous
843#else 856#else
844/* 857/*
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index 1046c2c9f8d1..22596d70fc2e 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -23,6 +23,7 @@
23 * 23 *
24 */ 24 */
25 25
26#include <linux/init.h>
26#include <asm/setup.h> 27#include <asm/setup.h>
27#include <asm/lowcore.h> 28#include <asm/lowcore.h>
28#include <asm/asm-offsets.h> 29#include <asm/asm-offsets.h>
@@ -35,7 +36,7 @@
35#define ARCH_OFFSET 0 36#define ARCH_OFFSET 0
36#endif 37#endif
37 38
38.section ".text.head","ax" 39__HEAD
39#ifndef CONFIG_IPL 40#ifndef CONFIG_IPL
40 .org 0 41 .org 0
41 .long 0x00080000,0x80000000+startup # Just a restart PSW 42 .long 0x00080000,0x80000000+startup # Just a restart PSW
@@ -471,7 +472,12 @@ startup:basr %r13,0 # get base
471.LPG0: 472.LPG0:
472 xc 0x200(256),0x200 # partially clear lowcore 473 xc 0x200(256),0x200 # partially clear lowcore
473 xc 0x300(256),0x300 474 xc 0x300(256),0x300
474 475 l %r1,5f-.LPG0(%r13)
476 stck 0(%r1)
477 spt 6f-.LPG0(%r13)
478 mvc __LC_LAST_UPDATE_CLOCK(8),0(%r1)
479 mvc __LC_LAST_UPDATE_TIMER(8),6f-.LPG0(%r13)
480 mvc __LC_EXIT_TIMER(8),5f-.LPG0(%r13)
475#ifndef CONFIG_MARCH_G5 481#ifndef CONFIG_MARCH_G5
476 # check processor version against MARCH_{G5,Z900,Z990,Z9_109,Z10} 482 # check processor version against MARCH_{G5,Z900,Z990,Z9_109,Z10}
477 stidp __LC_CPUID # store cpuid 483 stidp __LC_CPUID # store cpuid
@@ -496,9 +502,13 @@ startup:basr %r13,0 # get base
496 brct %r0,0b 502 brct %r0,0b
497#endif 503#endif
498 504
499 l %r13,0f-.LPG0(%r13) 505 l %r13,4f-.LPG0(%r13)
500 b 0(%r13) 506 b 0(%r13)
5010: .long startup_continue 507 .align 4
5084: .long startup_continue
5095: .long sched_clock_base_cc
510 .align 8
5116: .long 0x7fffffff,0xffffffff
502 512
503# 513#
504# params at 10400 (setup.h) 514# params at 10400 (setup.h)
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 6f3711a0eaaa..b8bf4b140065 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -23,6 +23,7 @@
23#include <asm/ebcdic.h> 23#include <asm/ebcdic.h>
24#include <asm/reset.h> 24#include <asm/reset.h>
25#include <asm/sclp.h> 25#include <asm/sclp.h>
26#include <asm/sigp.h>
26#include <asm/checksum.h> 27#include <asm/checksum.h>
27 28
28#define IPL_PARM_BLOCK_VERSION 0 29#define IPL_PARM_BLOCK_VERSION 0
diff --git a/arch/s390/kernel/nmi.c b/arch/s390/kernel/nmi.c
index 4bfdc421d7e9..28cf196ba775 100644
--- a/arch/s390/kernel/nmi.c
+++ b/arch/s390/kernel/nmi.c
@@ -10,6 +10,7 @@
10 10
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/hardirq.h>
13#include <linux/time.h> 14#include <linux/time.h>
14#include <linux/module.h> 15#include <linux/module.h>
15#include <asm/lowcore.h> 16#include <asm/lowcore.h>
@@ -253,7 +254,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
253 struct mci *mci; 254 struct mci *mci;
254 int umode; 255 int umode;
255 256
256 lockdep_off(); 257 nmi_enter();
257 s390_idle_check(); 258 s390_idle_check();
258 259
259 mci = (struct mci *) &S390_lowcore.mcck_interruption_code; 260 mci = (struct mci *) &S390_lowcore.mcck_interruption_code;
@@ -363,7 +364,7 @@ void notrace s390_do_machine_check(struct pt_regs *regs)
363 mcck->warning = 1; 364 mcck->warning = 1;
364 set_thread_flag(TIF_MCCK_PENDING); 365 set_thread_flag(TIF_MCCK_PENDING);
365 } 366 }
366 lockdep_on(); 367 nmi_exit();
367} 368}
368 369
369static int __init machine_check_init(void) 370static int __init machine_check_init(void)
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 06201b93cbbf..7402b6a39ead 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -82,9 +82,6 @@ EXPORT_SYMBOL(console_devno);
82unsigned int console_irq = -1; 82unsigned int console_irq = -1;
83EXPORT_SYMBOL(console_irq); 83EXPORT_SYMBOL(console_irq);
84 84
85unsigned long machine_flags;
86EXPORT_SYMBOL(machine_flags);
87
88unsigned long elf_hwcap = 0; 85unsigned long elf_hwcap = 0;
89char elf_platform[ELF_PLATFORM_SIZE]; 86char elf_platform[ELF_PLATFORM_SIZE];
90 87
@@ -426,6 +423,7 @@ setup_lowcore(void)
426 __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0) + PAGE_SIZE; 423 __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, 0) + PAGE_SIZE;
427 lc->current_task = (unsigned long) init_thread_union.thread_info.task; 424 lc->current_task = (unsigned long) init_thread_union.thread_info.task;
428 lc->thread_info = (unsigned long) &init_thread_union; 425 lc->thread_info = (unsigned long) &init_thread_union;
426 lc->machine_flags = S390_lowcore.machine_flags;
429#ifndef CONFIG_64BIT 427#ifndef CONFIG_64BIT
430 if (MACHINE_HAS_IEEE) { 428 if (MACHINE_HAS_IEEE) {
431 lc->extended_save_area_addr = (__u32) 429 lc->extended_save_area_addr = (__u32)
@@ -436,6 +434,14 @@ setup_lowcore(void)
436#else 434#else
437 lc->vdso_per_cpu_data = (unsigned long) &lc->paste[0]; 435 lc->vdso_per_cpu_data = (unsigned long) &lc->paste[0];
438#endif 436#endif
437 lc->sync_enter_timer = S390_lowcore.sync_enter_timer;
438 lc->async_enter_timer = S390_lowcore.async_enter_timer;
439 lc->exit_timer = S390_lowcore.exit_timer;
440 lc->user_timer = S390_lowcore.user_timer;
441 lc->system_timer = S390_lowcore.system_timer;
442 lc->steal_timer = S390_lowcore.steal_timer;
443 lc->last_update_timer = S390_lowcore.last_update_timer;
444 lc->last_update_clock = S390_lowcore.last_update_clock;
439 set_prefix((u32)(unsigned long) lc); 445 set_prefix((u32)(unsigned long) lc);
440 lowcore_ptr[0] = lc; 446 lowcore_ptr[0] = lc;
441} 447}
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 006ed5016eb4..a985a3ba4401 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -571,6 +571,7 @@ int __cpuinit __cpu_up(unsigned int cpu)
571 cpu_lowcore->current_task = (unsigned long) idle; 571 cpu_lowcore->current_task = (unsigned long) idle;
572 cpu_lowcore->cpu_nr = cpu; 572 cpu_lowcore->cpu_nr = cpu;
573 cpu_lowcore->kernel_asce = S390_lowcore.kernel_asce; 573 cpu_lowcore->kernel_asce = S390_lowcore.kernel_asce;
574 cpu_lowcore->machine_flags = S390_lowcore.machine_flags;
574 eieio(); 575 eieio();
575 576
576 while (signal_processor(cpu, sigp_restart) == sigp_busy) 577 while (signal_processor(cpu, sigp_restart) == sigp_busy)
@@ -590,7 +591,8 @@ static int __init setup_possible_cpus(char *s)
590 int pcpus, cpu; 591 int pcpus, cpu;
591 592
592 pcpus = simple_strtoul(s, NULL, 0); 593 pcpus = simple_strtoul(s, NULL, 0);
593 for (cpu = 0; cpu < pcpus && cpu < nr_cpu_ids; cpu++) 594 init_cpu_possible(cpumask_of(0));
595 for (cpu = 1; cpu < pcpus && cpu < nr_cpu_ids; cpu++)
594 set_cpu_possible(cpu, true); 596 set_cpu_possible(cpu, true);
595 return 0; 597 return 0;
596} 598}
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index fe5b25a988ab..2c7739fe70b1 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -336,3 +336,5 @@ SYSCALL(sys_inotify_init1,sys_inotify_init1,sys_inotify_init1_wrapper)
336SYSCALL(sys_pipe2,sys_pipe2,sys_pipe2_wrapper) /* 325 */ 336SYSCALL(sys_pipe2,sys_pipe2,sys_pipe2_wrapper) /* 325 */
337SYSCALL(sys_dup3,sys_dup3,sys_dup3_wrapper) 337SYSCALL(sys_dup3,sys_dup3,sys_dup3_wrapper)
338SYSCALL(sys_epoll_create1,sys_epoll_create1,sys_epoll_create1_wrapper) 338SYSCALL(sys_epoll_create1,sys_epoll_create1,sys_epoll_create1_wrapper)
339SYSCALL(sys_preadv,sys_preadv,compat_sys_preadv_wrapper)
340SYSCALL(sys_pwritev,sys_pwritev,compat_sys_pwritev_wrapper)
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index f72d41068dc2..ef596d020573 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -52,9 +52,6 @@
52#define USECS_PER_JIFFY ((unsigned long) 1000000/HZ) 52#define USECS_PER_JIFFY ((unsigned long) 1000000/HZ)
53#define CLK_TICKS_PER_JIFFY ((unsigned long) USECS_PER_JIFFY << 12) 53#define CLK_TICKS_PER_JIFFY ((unsigned long) USECS_PER_JIFFY << 12)
54 54
55/* The value of the TOD clock for 1.1.1970. */
56#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
57
58/* 55/*
59 * Create a small time difference between the timer interrupts 56 * Create a small time difference between the timer interrupts
60 * on the different cpus to avoid lock contention. 57 * on the different cpus to avoid lock contention.
@@ -63,9 +60,10 @@
63 60
64#define TICK_SIZE tick 61#define TICK_SIZE tick
65 62
63u64 sched_clock_base_cc = -1; /* Force to data section. */
64
66static ext_int_info_t ext_int_info_cc; 65static ext_int_info_t ext_int_info_cc;
67static ext_int_info_t ext_int_etr_cc; 66static ext_int_info_t ext_int_etr_cc;
68static u64 sched_clock_base_cc;
69 67
70static DEFINE_PER_CPU(struct clock_event_device, comparators); 68static DEFINE_PER_CPU(struct clock_event_device, comparators);
71 69
@@ -195,25 +193,15 @@ static void timing_alert_interrupt(__u16 code)
195static void etr_reset(void); 193static void etr_reset(void);
196static void stp_reset(void); 194static void stp_reset(void);
197 195
198/* 196unsigned long read_persistent_clock(void)
199 * Get the TOD clock running.
200 */
201static u64 __init reset_tod_clock(void)
202{ 197{
203 u64 time; 198 struct timespec ts;
204
205 etr_reset();
206 stp_reset();
207 if (store_clock(&time) == 0)
208 return time;
209 /* TOD clock not running. Set the clock to Unix Epoch. */
210 if (set_clock(TOD_UNIX_EPOCH) != 0 || store_clock(&time) != 0)
211 panic("TOD clock not operational.");
212 199
213 return TOD_UNIX_EPOCH; 200 tod_to_timeval(get_clock() - TOD_UNIX_EPOCH, &ts);
201 return ts.tv_sec;
214} 202}
215 203
216static cycle_t read_tod_clock(void) 204static cycle_t read_tod_clock(struct clocksource *cs)
217{ 205{
218 return get_clock(); 206 return get_clock();
219} 207}
@@ -265,12 +253,13 @@ void update_vsyscall_tz(void)
265 */ 253 */
266void __init time_init(void) 254void __init time_init(void)
267{ 255{
268 sched_clock_base_cc = reset_tod_clock(); 256 struct timespec ts;
257 unsigned long flags;
258 cycle_t now;
269 259
270 /* set xtime */ 260 /* Reset time synchronization interfaces. */
271 tod_to_timeval(sched_clock_base_cc - TOD_UNIX_EPOCH, &xtime); 261 etr_reset();
272 set_normalized_timespec(&wall_to_monotonic, 262 stp_reset();
273 -xtime.tv_sec, -xtime.tv_nsec);
274 263
275 /* request the clock comparator external interrupt */ 264 /* request the clock comparator external interrupt */
276 if (register_early_external_interrupt(0x1004, 265 if (register_early_external_interrupt(0x1004,
@@ -278,17 +267,38 @@ void __init time_init(void)
278 &ext_int_info_cc) != 0) 267 &ext_int_info_cc) != 0)
279 panic("Couldn't request external interrupt 0x1004"); 268 panic("Couldn't request external interrupt 0x1004");
280 269
281 if (clocksource_register(&clocksource_tod) != 0)
282 panic("Could not register TOD clock source");
283
284 /* request the timing alert external interrupt */ 270 /* request the timing alert external interrupt */
285 if (register_early_external_interrupt(0x1406, 271 if (register_early_external_interrupt(0x1406,
286 timing_alert_interrupt, 272 timing_alert_interrupt,
287 &ext_int_etr_cc) != 0) 273 &ext_int_etr_cc) != 0)
288 panic("Couldn't request external interrupt 0x1406"); 274 panic("Couldn't request external interrupt 0x1406");
289 275
276 if (clocksource_register(&clocksource_tod) != 0)
277 panic("Could not register TOD clock source");
278
279 /*
280 * The TOD clock is an accurate clock. The xtime should be
281 * initialized in a way that the difference between TOD and
282 * xtime is reasonably small. Too bad that timekeeping_init
283 * sets xtime.tv_nsec to zero. In addition the clock source
284 * change from the jiffies clock source to the TOD clock
285 * source add another error of up to 1/HZ second. The same
286 * function sets wall_to_monotonic to a value that is too
287 * small for /proc/uptime to be accurate.
288 * Reset xtime and wall_to_monotonic to sane values.
289 */
290 write_seqlock_irqsave(&xtime_lock, flags);
291 now = get_clock();
292 tod_to_timeval(now - TOD_UNIX_EPOCH, &xtime);
293 clocksource_tod.cycle_last = now;
294 clocksource_tod.raw_time = xtime;
295 tod_to_timeval(sched_clock_base_cc - TOD_UNIX_EPOCH, &ts);
296 set_normalized_timespec(&wall_to_monotonic, -ts.tv_sec, -ts.tv_nsec);
297 write_sequnlock_irqrestore(&xtime_lock, flags);
298
290 /* Enable TOD clock interrupts on the boot cpu. */ 299 /* Enable TOD clock interrupts on the boot cpu. */
291 init_cpu_timer(); 300 init_cpu_timer();
301
292 /* Enable cpu timer interrupts on the boot cpu. */ 302 /* Enable cpu timer interrupts on the boot cpu. */
293 vtime_init(); 303 vtime_init();
294} 304}
@@ -1423,6 +1433,7 @@ static void *stp_page;
1423static void stp_work_fn(struct work_struct *work); 1433static void stp_work_fn(struct work_struct *work);
1424static DEFINE_MUTEX(stp_work_mutex); 1434static DEFINE_MUTEX(stp_work_mutex);
1425static DECLARE_WORK(stp_work, stp_work_fn); 1435static DECLARE_WORK(stp_work, stp_work_fn);
1436static struct timer_list stp_timer;
1426 1437
1427static int __init early_parse_stp(char *p) 1438static int __init early_parse_stp(char *p)
1428{ 1439{
@@ -1454,10 +1465,16 @@ static void __init stp_reset(void)
1454 } 1465 }
1455} 1466}
1456 1467
1468static void stp_timeout(unsigned long dummy)
1469{
1470 queue_work(time_sync_wq, &stp_work);
1471}
1472
1457static int __init stp_init(void) 1473static int __init stp_init(void)
1458{ 1474{
1459 if (!test_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags)) 1475 if (!test_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags))
1460 return 0; 1476 return 0;
1477 setup_timer(&stp_timer, stp_timeout, 0UL);
1461 time_init_wq(); 1478 time_init_wq();
1462 if (!stp_online) 1479 if (!stp_online)
1463 return 0; 1480 return 0;
@@ -1565,6 +1582,7 @@ static void stp_work_fn(struct work_struct *work)
1565 1582
1566 if (!stp_online) { 1583 if (!stp_online) {
1567 chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000); 1584 chsc_sstpc(stp_page, STP_OP_CTRL, 0x0000);
1585 del_timer_sync(&stp_timer);
1568 goto out_unlock; 1586 goto out_unlock;
1569 } 1587 }
1570 1588
@@ -1586,6 +1604,13 @@ static void stp_work_fn(struct work_struct *work)
1586 stop_machine(stp_sync_clock, &stp_sync, &cpu_online_map); 1604 stop_machine(stp_sync_clock, &stp_sync, &cpu_online_map);
1587 put_online_cpus(); 1605 put_online_cpus();
1588 1606
1607 if (!check_sync_clock())
1608 /*
1609 * There is a usable clock but the synchonization failed.
1610 * Retry after a second.
1611 */
1612 mod_timer(&stp_timer, jiffies + HZ);
1613
1589out_unlock: 1614out_unlock:
1590 mutex_unlock(&stp_work_mutex); 1615 mutex_unlock(&stp_work_mutex);
1591} 1616}
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 7a2063eb88f0..89399b8756c2 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -29,8 +29,8 @@ SECTIONS
29 . = 0x00000000; 29 . = 0x00000000;
30 .text : { 30 .text : {
31 _text = .; /* Text and read-only data */ 31 _text = .; /* Text and read-only data */
32 *(.text.head) 32 HEAD_TEXT
33 TEXT_TEXT 33 TEXT_TEXT
34 SCHED_TEXT 34 SCHED_TEXT
35 LOCK_TEXT 35 LOCK_TEXT
36 KPROBES_TEXT 36 KPROBES_TEXT
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index ecf0304e61c1..c87f59bd8246 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -134,6 +134,8 @@ void vtime_start_cpu(void)
134 /* Account time spent with enabled wait psw loaded as idle time. */ 134 /* Account time spent with enabled wait psw loaded as idle time. */
135 idle_time = S390_lowcore.int_clock - idle->idle_enter; 135 idle_time = S390_lowcore.int_clock - idle->idle_enter;
136 account_idle_time(idle_time); 136 account_idle_time(idle_time);
137 S390_lowcore.steal_timer +=
138 idle->idle_enter - S390_lowcore.last_update_clock;
137 S390_lowcore.last_update_clock = S390_lowcore.int_clock; 139 S390_lowcore.last_update_clock = S390_lowcore.int_clock;
138 140
139 /* Account system time spent going idle. */ 141 /* Account system time spent going idle. */
@@ -238,6 +240,22 @@ void vtime_stop_cpu(void)
238 } 240 }
239} 241}
240 242
243cputime64_t s390_get_idle_time(int cpu)
244{
245 struct s390_idle_data *idle;
246 unsigned long long now, idle_time, idle_enter;
247
248 idle = &per_cpu(s390_idle, cpu);
249 spin_lock(&idle->lock);
250 now = get_clock();
251 idle_time = 0;
252 idle_enter = idle->idle_enter;
253 if (idle_enter != 0ULL && idle_enter < now)
254 idle_time = now - idle_enter;
255 spin_unlock(&idle->lock);
256 return idle_time;
257}
258
241/* 259/*
242 * Sorted add to a list. List is linear searched until first bigger 260 * Sorted add to a list. List is linear searched until first bigger
243 * element is found. 261 * element is found.
@@ -425,17 +443,7 @@ void add_virt_timer_periodic(void *new)
425} 443}
426EXPORT_SYMBOL(add_virt_timer_periodic); 444EXPORT_SYMBOL(add_virt_timer_periodic);
427 445
428/* 446int __mod_vtimer(struct vtimer_list *timer, __u64 expires, int periodic)
429 * If we change a pending timer the function must be called on the CPU
430 * where the timer is running on, e.g. by smp_call_function_single()
431 *
432 * The original mod_timer adds the timer if it is not pending. For
433 * compatibility we do the same. The timer will be added on the current
434 * CPU as a oneshot timer.
435 *
436 * returns whether it has modified a pending timer (1) or not (0)
437 */
438int mod_virt_timer(struct vtimer_list *timer, __u64 expires)
439{ 447{
440 struct vtimer_queue *vq; 448 struct vtimer_queue *vq;
441 unsigned long flags; 449 unsigned long flags;
@@ -444,39 +452,35 @@ int mod_virt_timer(struct vtimer_list *timer, __u64 expires)
444 BUG_ON(!timer->function); 452 BUG_ON(!timer->function);
445 BUG_ON(!expires || expires > VTIMER_MAX_SLICE); 453 BUG_ON(!expires || expires > VTIMER_MAX_SLICE);
446 454
447 /*
448 * This is a common optimization triggered by the
449 * networking code - if the timer is re-modified
450 * to be the same thing then just return:
451 */
452 if (timer->expires == expires && vtimer_pending(timer)) 455 if (timer->expires == expires && vtimer_pending(timer))
453 return 1; 456 return 1;
454 457
455 cpu = get_cpu(); 458 cpu = get_cpu();
456 vq = &per_cpu(virt_cpu_timer, cpu); 459 vq = &per_cpu(virt_cpu_timer, cpu);
457 460
458 /* check if we run on the right CPU */
459 BUG_ON(timer->cpu != cpu);
460
461 /* disable interrupts before test if timer is pending */ 461 /* disable interrupts before test if timer is pending */
462 spin_lock_irqsave(&vq->lock, flags); 462 spin_lock_irqsave(&vq->lock, flags);
463 463
464 /* if timer isn't pending add it on the current CPU */ 464 /* if timer isn't pending add it on the current CPU */
465 if (!vtimer_pending(timer)) { 465 if (!vtimer_pending(timer)) {
466 spin_unlock_irqrestore(&vq->lock, flags); 466 spin_unlock_irqrestore(&vq->lock, flags);
467 /* we do not activate an interval timer with mod_virt_timer */ 467
468 timer->interval = 0; 468 if (periodic)
469 timer->interval = expires;
470 else
471 timer->interval = 0;
469 timer->expires = expires; 472 timer->expires = expires;
470 timer->cpu = cpu; 473 timer->cpu = cpu;
471 internal_add_vtimer(timer); 474 internal_add_vtimer(timer);
472 return 0; 475 return 0;
473 } 476 }
474 477
478 /* check if we run on the right CPU */
479 BUG_ON(timer->cpu != cpu);
480
475 list_del_init(&timer->entry); 481 list_del_init(&timer->entry);
476 timer->expires = expires; 482 timer->expires = expires;
477 483 if (periodic)
478 /* also change the interval if we have an interval timer */
479 if (timer->interval)
480 timer->interval = expires; 484 timer->interval = expires;
481 485
482 /* the timer can't expire anymore so we can release the lock */ 486 /* the timer can't expire anymore so we can release the lock */
@@ -484,9 +488,32 @@ int mod_virt_timer(struct vtimer_list *timer, __u64 expires)
484 internal_add_vtimer(timer); 488 internal_add_vtimer(timer);
485 return 1; 489 return 1;
486} 490}
491
492/*
493 * If we change a pending timer the function must be called on the CPU
494 * where the timer is running on.
495 *
496 * returns whether it has modified a pending timer (1) or not (0)
497 */
498int mod_virt_timer(struct vtimer_list *timer, __u64 expires)
499{
500 return __mod_vtimer(timer, expires, 0);
501}
487EXPORT_SYMBOL(mod_virt_timer); 502EXPORT_SYMBOL(mod_virt_timer);
488 503
489/* 504/*
505 * If we change a pending timer the function must be called on the CPU
506 * where the timer is running on.
507 *
508 * returns whether it has modified a pending timer (1) or not (0)
509 */
510int mod_virt_timer_periodic(struct vtimer_list *timer, __u64 expires)
511{
512 return __mod_vtimer(timer, expires, 1);
513}
514EXPORT_SYMBOL(mod_virt_timer_periodic);
515
516/*
490 * delete a virtual timer 517 * delete a virtual timer
491 * 518 *
492 * returns whether the deleted timer was pending (1) or not (0) 519 * returns whether the deleted timer was pending (1) or not (0)
@@ -516,16 +543,8 @@ EXPORT_SYMBOL(del_virt_timer);
516 */ 543 */
517void init_cpu_vtimer(void) 544void init_cpu_vtimer(void)
518{ 545{
519 struct thread_info *ti = current_thread_info();
520 struct vtimer_queue *vq; 546 struct vtimer_queue *vq;
521 547
522 S390_lowcore.user_timer = ti->user_timer;
523 S390_lowcore.system_timer = ti->system_timer;
524
525 /* kick the virtual timer */
526 asm volatile ("STCK %0" : "=m" (S390_lowcore.last_update_clock));
527 asm volatile ("STPT %0" : "=m" (S390_lowcore.last_update_timer));
528
529 /* initialize per cpu vtimer structure */ 548 /* initialize per cpu vtimer structure */
530 vq = &__get_cpu_var(virt_cpu_timer); 549 vq = &__get_cpu_var(virt_cpu_timer);
531 INIT_LIST_HEAD(&vq->list); 550 INIT_LIST_HEAD(&vq->list);
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 5e4babecf934..e7390dd0283d 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -14,6 +14,7 @@ config SUPERH
14 select HAVE_GENERIC_DMA_COHERENT 14 select HAVE_GENERIC_DMA_COHERENT
15 select HAVE_IOREMAP_PROT if MMU 15 select HAVE_IOREMAP_PROT if MMU
16 select HAVE_ARCH_TRACEHOOK 16 select HAVE_ARCH_TRACEHOOK
17 select HAVE_DMA_API_DEBUG
17 help 18 help
18 The SuperH is a RISC processor targeted for use in embedded systems 19 The SuperH is a RISC processor targeted for use in embedded systems
19 and consumer electronics; it was also used in the Sega Dreamcast 20 and consumer electronics; it was also used in the Sega Dreamcast
@@ -21,7 +22,7 @@ config SUPERH
21 <http://www.linux-sh.org/>. 22 <http://www.linux-sh.org/>.
22 23
23config SUPERH32 24config SUPERH32
24 def_bool !SUPERH64 25 def_bool ARCH = "sh"
25 select HAVE_KPROBES 26 select HAVE_KPROBES
26 select HAVE_KRETPROBES 27 select HAVE_KRETPROBES
27 select HAVE_FUNCTION_TRACER 28 select HAVE_FUNCTION_TRACER
@@ -31,7 +32,7 @@ config SUPERH32
31 select ARCH_HIBERNATION_POSSIBLE if MMU 32 select ARCH_HIBERNATION_POSSIBLE if MMU
32 33
33config SUPERH64 34config SUPERH64
34 def_bool y if CPU_SH5 35 def_bool ARCH = "sh64"
35 36
36config ARCH_DEFCONFIG 37config ARCH_DEFCONFIG
37 string 38 string
@@ -187,6 +188,8 @@ config ARCH_SHMOBILE
187 bool 188 bool
188 select ARCH_SUSPEND_POSSIBLE 189 select ARCH_SUSPEND_POSSIBLE
189 190
191if SUPERH32
192
190choice 193choice
191 prompt "Processor sub-type selection" 194 prompt "Processor sub-type selection"
192 195
@@ -408,6 +411,15 @@ config CPU_SUBTYPE_SH7366
408 select SYS_SUPPORTS_NUMA 411 select SYS_SUPPORTS_NUMA
409 select SYS_SUPPORTS_CMT 412 select SYS_SUPPORTS_CMT
410 413
414endchoice
415
416endif
417
418if SUPERH64
419
420choice
421 prompt "Processor sub-type selection"
422
411# SH-5 Processor Support 423# SH-5 Processor Support
412 424
413config CPU_SUBTYPE_SH5_101 425config CPU_SUBTYPE_SH5_101
@@ -420,6 +432,8 @@ config CPU_SUBTYPE_SH5_103
420 432
421endchoice 433endchoice
422 434
435endif
436
423source "arch/sh/mm/Kconfig" 437source "arch/sh/mm/Kconfig"
424 438
425source "arch/sh/Kconfig.cpu" 439source "arch/sh/Kconfig.cpu"
diff --git a/arch/sh/boards/board-ap325rxa.c b/arch/sh/boards/board-ap325rxa.c
index 912458f666eb..39e46919df14 100644
--- a/arch/sh/boards/board-ap325rxa.c
+++ b/arch/sh/boards/board-ap325rxa.c
@@ -349,6 +349,7 @@ static int ov7725_power(struct device *dev, int mode)
349static struct ov772x_camera_info ov7725_info = { 349static struct ov772x_camera_info ov7725_info = {
350 .buswidth = SOCAM_DATAWIDTH_8, 350 .buswidth = SOCAM_DATAWIDTH_8,
351 .flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP, 351 .flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP,
352 .edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0),
352 .link = { 353 .link = {
353 .power = ov7725_power, 354 .power = ov7725_power,
354 }, 355 },
diff --git a/arch/sh/boards/board-urquell.c b/arch/sh/boards/board-urquell.c
index 8367d1d789c3..beb88c4da2c1 100644
--- a/arch/sh/boards/board-urquell.c
+++ b/arch/sh/boards/board-urquell.c
@@ -2,6 +2,8 @@
2 * Renesas Technology Corp. SH7786 Urquell Support. 2 * Renesas Technology Corp. SH7786 Urquell Support.
3 * 3 *
4 * Copyright (C) 2008 Kuninori Morimoto <morimoto.kuninori@renesas.com> 4 * Copyright (C) 2008 Kuninori Morimoto <morimoto.kuninori@renesas.com>
5 *
6 * Based on board-sh7785lcr.c
5 * Copyright (C) 2008 Yoshihiro Shimoda 7 * Copyright (C) 2008 Yoshihiro Shimoda
6 * 8 *
7 * This file is subject to the terms and conditions of the GNU General Public 9 * This file is subject to the terms and conditions of the GNU General Public
@@ -21,6 +23,32 @@
21#include <asm/heartbeat.h> 23#include <asm/heartbeat.h>
22#include <asm/sizes.h> 24#include <asm/sizes.h>
23 25
26/*
27 * bit 1234 5678
28 *----------------------------
29 * SW1 0101 0010 -> Pck 33MHz version
30 * (1101 0010) Pck 66MHz version
31 * SW2 0x1x xxxx -> little endian
32 * 29bit mode
33 * SW47 0001 1000 -> CS0 : on-board flash
34 * CS1 : SRAM, registers, LAN, PCMCIA
35 * 38400 bps for SCIF1
36 *
37 * Address
38 * 0x00000000 - 0x04000000 (CS0) Nor Flash
39 * 0x04000000 - 0x04200000 (CS1) SRAM
40 * 0x05000000 - 0x05800000 (CS1) on board register
41 * 0x05800000 - 0x06000000 (CS1) LAN91C111
42 * 0x06000000 - 0x06400000 (CS1) PCMCIA
43 * 0x08000000 - 0x10000000 (CS2-CS3) DDR3
44 * 0x10000000 - 0x14000000 (CS4) PCIe
45 * 0x14000000 - 0x14800000 (CS5) Core0 LRAM/URAM
46 * 0x14800000 - 0x15000000 (CS5) Core1 LRAM/URAM
47 * 0x18000000 - 0x1C000000 (CS6) ATA/NAND-Flash
48 * 0x1C000000 - (CS7) SH7786 Control register
49 */
50
51/* HeartBeat */
24static struct resource heartbeat_resources[] = { 52static struct resource heartbeat_resources[] = {
25 [0] = { 53 [0] = {
26 .start = BOARDREG(SLEDR), 54 .start = BOARDREG(SLEDR),
@@ -43,6 +71,7 @@ static struct platform_device heartbeat_device = {
43 .resource = heartbeat_resources, 71 .resource = heartbeat_resources,
44}; 72};
45 73
74/* LAN91C111 */
46static struct smc91x_platdata smc91x_info = { 75static struct smc91x_platdata smc91x_info = {
47 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT, 76 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
48}; 77};
@@ -69,6 +98,7 @@ static struct platform_device smc91x_eth_device = {
69 }, 98 },
70}; 99};
71 100
101/* Nor Flash */
72static struct mtd_partition nor_flash_partitions[] = { 102static struct mtd_partition nor_flash_partitions[] = {
73 { 103 {
74 .name = "loader", 104 .name = "loader",
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 8a42bbef1f50..e4fac2efc055 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_defconfig
@@ -1,10 +1,11 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29 3# Linux kernel version: 2.6.30-rc2
4# Thu Apr 2 19:15:58 2009 4# Wed Apr 22 19:17:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
8# CONFIG_SUPERH64 is not set
8CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" 9CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 10CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_BUG=y 11CONFIG_GENERIC_BUG=y
@@ -79,6 +80,7 @@ CONFIG_SYSCTL_SYSCALL=y
79CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
80# CONFIG_KALLSYMS_ALL is not set 81# CONFIG_KALLSYMS_ALL is not set
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 84CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 85CONFIG_PRINTK=y
84CONFIG_BUG=y 86CONFIG_BUG=y
@@ -98,6 +100,7 @@ CONFIG_SLAB=y
98# CONFIG_SLUB is not set 100# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 101# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 102CONFIG_PROFILING=y
103# CONFIG_MARKERS is not set
101# CONFIG_OPROFILE is not set 104# CONFIG_OPROFILE is not set
102CONFIG_HAVE_OPROFILE=y 105CONFIG_HAVE_OPROFILE=y
103# CONFIG_KPROBES is not set 106# CONFIG_KPROBES is not set
@@ -106,6 +109,8 @@ CONFIG_HAVE_KPROBES=y
106CONFIG_HAVE_KRETPROBES=y 109CONFIG_HAVE_KRETPROBES=y
107CONFIG_HAVE_ARCH_TRACEHOOK=y 110CONFIG_HAVE_ARCH_TRACEHOOK=y
108CONFIG_HAVE_CLK=y 111CONFIG_HAVE_CLK=y
112CONFIG_HAVE_DMA_API_DEBUG=y
113# CONFIG_SLOW_WORK is not set
109CONFIG_HAVE_GENERIC_DMA_COHERENT=y 114CONFIG_HAVE_GENERIC_DMA_COHERENT=y
110CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
111CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
@@ -118,7 +123,6 @@ CONFIG_MODULE_UNLOAD=y
118# CONFIG_MODULE_SRCVERSION_ALL is not set 123# CONFIG_MODULE_SRCVERSION_ALL is not set
119CONFIG_BLOCK=y 124CONFIG_BLOCK=y
120# CONFIG_LBD is not set 125# CONFIG_LBD is not set
121# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
123# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
124 128
@@ -166,6 +170,7 @@ CONFIG_CPU_SHX2=y
166# CONFIG_CPU_SUBTYPE_SH7760 is not set 170# CONFIG_CPU_SUBTYPE_SH7760 is not set
167# CONFIG_CPU_SUBTYPE_SH4_202 is not set 171# CONFIG_CPU_SUBTYPE_SH4_202 is not set
168# CONFIG_CPU_SUBTYPE_SH7723 is not set 172# CONFIG_CPU_SUBTYPE_SH7723 is not set
173# CONFIG_CPU_SUBTYPE_SH7724 is not set
169# CONFIG_CPU_SUBTYPE_SH7763 is not set 174# CONFIG_CPU_SUBTYPE_SH7763 is not set
170# CONFIG_CPU_SUBTYPE_SH7770 is not set 175# CONFIG_CPU_SUBTYPE_SH7770 is not set
171# CONFIG_CPU_SUBTYPE_SH7780 is not set 176# CONFIG_CPU_SUBTYPE_SH7780 is not set
@@ -175,8 +180,6 @@ CONFIG_CPU_SUBTYPE_SH7785=y
175# CONFIG_CPU_SUBTYPE_SH7343 is not set 180# CONFIG_CPU_SUBTYPE_SH7343 is not set
176# CONFIG_CPU_SUBTYPE_SH7722 is not set 181# CONFIG_CPU_SUBTYPE_SH7722 is not set
177# CONFIG_CPU_SUBTYPE_SH7366 is not set 182# CONFIG_CPU_SUBTYPE_SH7366 is not set
178# CONFIG_CPU_SUBTYPE_SH5_101 is not set
179# CONFIG_CPU_SUBTYPE_SH5_103 is not set
180 183
181# 184#
182# Memory management options 185# Memory management options
@@ -186,38 +189,31 @@ CONFIG_MMU=y
186CONFIG_PAGE_OFFSET=0x80000000 189CONFIG_PAGE_OFFSET=0x80000000
187CONFIG_MEMORY_START=0x08000000 190CONFIG_MEMORY_START=0x08000000
188CONFIG_MEMORY_SIZE=0x08000000 191CONFIG_MEMORY_SIZE=0x08000000
189# CONFIG_29BIT is not set 192CONFIG_29BIT=y
190CONFIG_32BIT=y 193# CONFIG_PMB_ENABLE is not set
191CONFIG_PMB_ENABLE=y
192# CONFIG_PMB is not set
193CONFIG_PMB_FIXED=y
194# CONFIG_X2TLB is not set 194# CONFIG_X2TLB is not set
195CONFIG_VSYSCALL=y 195CONFIG_VSYSCALL=y
196# CONFIG_NUMA is not set 196# CONFIG_NUMA is not set
197CONFIG_ARCH_FLATMEM_ENABLE=y 197CONFIG_ARCH_FLATMEM_ENABLE=y
198CONFIG_ARCH_SPARSEMEM_ENABLE=y 198CONFIG_ARCH_SPARSEMEM_ENABLE=y
199CONFIG_ARCH_SPARSEMEM_DEFAULT=y 199CONFIG_ARCH_SPARSEMEM_DEFAULT=y
200CONFIG_MAX_ACTIVE_REGIONS=2 200CONFIG_MAX_ACTIVE_REGIONS=1
201CONFIG_ARCH_POPULATES_NODE_MAP=y 201CONFIG_ARCH_POPULATES_NODE_MAP=y
202CONFIG_ARCH_SELECT_MEMORY_MODEL=y 202CONFIG_ARCH_SELECT_MEMORY_MODEL=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
205CONFIG_PAGE_SIZE_4KB=y 203CONFIG_PAGE_SIZE_4KB=y
206# CONFIG_PAGE_SIZE_8KB is not set 204# CONFIG_PAGE_SIZE_8KB is not set
207# CONFIG_PAGE_SIZE_16KB is not set 205# CONFIG_PAGE_SIZE_16KB is not set
208# CONFIG_PAGE_SIZE_64KB is not set 206# CONFIG_PAGE_SIZE_64KB is not set
209CONFIG_ENTRY_OFFSET=0x00001000 207CONFIG_ENTRY_OFFSET=0x00001000
210CONFIG_SELECT_MEMORY_MODEL=y 208CONFIG_SELECT_MEMORY_MODEL=y
211# CONFIG_FLATMEM_MANUAL is not set 209CONFIG_FLATMEM_MANUAL=y
212# CONFIG_DISCONTIGMEM_MANUAL is not set 210# CONFIG_DISCONTIGMEM_MANUAL is not set
213CONFIG_SPARSEMEM_MANUAL=y 211# CONFIG_SPARSEMEM_MANUAL is not set
214CONFIG_SPARSEMEM=y 212CONFIG_FLATMEM=y
215CONFIG_HAVE_MEMORY_PRESENT=y 213CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_SPARSEMEM_STATIC=y 214CONFIG_SPARSEMEM_STATIC=y
217# CONFIG_MEMORY_HOTPLUG is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 215CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 216CONFIG_SPLIT_PTLOCK_CPUS=4
220CONFIG_MIGRATION=y
221# CONFIG_PHYS_ADDR_T_64BIT is not set 217# CONFIG_PHYS_ADDR_T_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=0 218CONFIG_ZONE_DMA_FLAG=0
223CONFIG_NR_QUICK=2 219CONFIG_NR_QUICK=2
@@ -249,6 +245,7 @@ CONFIG_CPU_HAS_FPU=y
249# 245#
250# CONFIG_SH_HIGHLANDER is not set 246# CONFIG_SH_HIGHLANDER is not set
251CONFIG_SH_SH7785LCR=y 247CONFIG_SH_SH7785LCR=y
248CONFIG_SH_SH7785LCR_29BIT_PHYSMAPS=y
252 249
253# 250#
254# Timer and clock configuration 251# Timer and clock configuration
@@ -672,6 +669,7 @@ CONFIG_NETDEV_1000=y
672# CONFIG_E1000E is not set 669# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 670# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 671# CONFIG_IGB is not set
672# CONFIG_IGBVF is not set
675# CONFIG_NS83820 is not set 673# CONFIG_NS83820 is not set
676# CONFIG_HAMACHI is not set 674# CONFIG_HAMACHI is not set
677# CONFIG_YELLOWFIN is not set 675# CONFIG_YELLOWFIN is not set
@@ -1009,15 +1007,17 @@ CONFIG_USB_HID=y
1009# 1007#
1010# Special HID drivers 1008# Special HID drivers
1011# 1009#
1012CONFIG_HID_COMPAT=y
1013CONFIG_HID_A4TECH=y 1010CONFIG_HID_A4TECH=y
1014CONFIG_HID_APPLE=y 1011CONFIG_HID_APPLE=y
1015CONFIG_HID_BELKIN=y 1012CONFIG_HID_BELKIN=y
1016CONFIG_HID_CHERRY=y 1013CONFIG_HID_CHERRY=y
1017CONFIG_HID_CHICONY=y 1014CONFIG_HID_CHICONY=y
1018CONFIG_HID_CYPRESS=y 1015CONFIG_HID_CYPRESS=y
1016# CONFIG_DRAGONRISE_FF is not set
1019CONFIG_HID_EZKEY=y 1017CONFIG_HID_EZKEY=y
1018# CONFIG_HID_KYE is not set
1020CONFIG_HID_GYRATION=y 1019CONFIG_HID_GYRATION=y
1020# CONFIG_HID_KENSINGTON is not set
1021CONFIG_HID_LOGITECH=y 1021CONFIG_HID_LOGITECH=y
1022# CONFIG_LOGITECH_FF is not set 1022# CONFIG_LOGITECH_FF is not set
1023# CONFIG_LOGIRUMBLEPAD2_FF is not set 1023# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1218,6 +1218,7 @@ CONFIG_EXT2_FS=y
1218# CONFIG_EXT2_FS_XATTR is not set 1218# CONFIG_EXT2_FS_XATTR is not set
1219# CONFIG_EXT2_FS_XIP is not set 1219# CONFIG_EXT2_FS_XIP is not set
1220CONFIG_EXT3_FS=y 1220CONFIG_EXT3_FS=y
1221# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1221CONFIG_EXT3_FS_XATTR=y 1222CONFIG_EXT3_FS_XATTR=y
1222# CONFIG_EXT3_FS_POSIX_ACL is not set 1223# CONFIG_EXT3_FS_POSIX_ACL is not set
1223# CONFIG_EXT3_FS_SECURITY is not set 1224# CONFIG_EXT3_FS_SECURITY is not set
@@ -1240,6 +1241,11 @@ CONFIG_INOTIFY_USER=y
1240# CONFIG_FUSE_FS is not set 1241# CONFIG_FUSE_FS is not set
1241 1242
1242# 1243#
1244# Caches
1245#
1246# CONFIG_FSCACHE is not set
1247
1248#
1243# CD-ROM/DVD Filesystems 1249# CD-ROM/DVD Filesystems
1244# 1250#
1245# CONFIG_ISO9660_FS is not set 1251# CONFIG_ISO9660_FS is not set
@@ -1289,6 +1295,7 @@ CONFIG_MINIX_FS=y
1289# CONFIG_ROMFS_FS is not set 1295# CONFIG_ROMFS_FS is not set
1290# CONFIG_SYSV_FS is not set 1296# CONFIG_SYSV_FS is not set
1291# CONFIG_UFS_FS is not set 1297# CONFIG_UFS_FS is not set
1298# CONFIG_NILFS2_FS is not set
1292CONFIG_NETWORK_FILESYSTEMS=y 1299CONFIG_NETWORK_FILESYSTEMS=y
1293CONFIG_NFS_FS=y 1300CONFIG_NFS_FS=y
1294CONFIG_NFS_V3=y 1301CONFIG_NFS_V3=y
@@ -1377,6 +1384,9 @@ CONFIG_DEBUG_KERNEL=y
1377CONFIG_DETECT_SOFTLOCKUP=y 1384CONFIG_DETECT_SOFTLOCKUP=y
1378# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1385# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1379CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1386CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1387CONFIG_DETECT_HUNG_TASK=y
1388# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1389CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1380CONFIG_SCHED_DEBUG=y 1390CONFIG_SCHED_DEBUG=y
1381# CONFIG_SCHEDSTATS is not set 1391# CONFIG_SCHEDSTATS is not set
1382# CONFIG_TIMER_STATS is not set 1392# CONFIG_TIMER_STATS is not set
@@ -1413,6 +1423,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1413CONFIG_HAVE_FUNCTION_TRACER=y 1423CONFIG_HAVE_FUNCTION_TRACER=y
1414CONFIG_HAVE_DYNAMIC_FTRACE=y 1424CONFIG_HAVE_DYNAMIC_FTRACE=y
1415CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1425CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1426CONFIG_TRACING_SUPPORT=y
1416 1427
1417# 1428#
1418# Tracers 1429# Tracers
@@ -1422,9 +1433,14 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1422# CONFIG_PREEMPT_TRACER is not set 1433# CONFIG_PREEMPT_TRACER is not set
1423# CONFIG_SCHED_TRACER is not set 1434# CONFIG_SCHED_TRACER is not set
1424# CONFIG_CONTEXT_SWITCH_TRACER is not set 1435# CONFIG_CONTEXT_SWITCH_TRACER is not set
1436# CONFIG_EVENT_TRACER is not set
1425# CONFIG_BOOT_TRACER is not set 1437# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set 1438# CONFIG_TRACE_BRANCH_PROFILING is not set
1427# CONFIG_STACK_TRACER is not set 1439# CONFIG_STACK_TRACER is not set
1440# CONFIG_KMEMTRACE is not set
1441# CONFIG_WORKQUEUE_TRACER is not set
1442# CONFIG_BLK_DEV_IO_TRACE is not set
1443# CONFIG_DMA_API_DEBUG is not set
1428# CONFIG_SAMPLES is not set 1444# CONFIG_SAMPLES is not set
1429CONFIG_HAVE_ARCH_KGDB=y 1445CONFIG_HAVE_ARCH_KGDB=y
1430# CONFIG_KGDB is not set 1446# CONFIG_KGDB is not set
@@ -1542,6 +1558,7 @@ CONFIG_CRYPTO_DES=y
1542# 1558#
1543# CONFIG_CRYPTO_ANSI_CPRNG is not set 1559# CONFIG_CRYPTO_ANSI_CPRNG is not set
1544# CONFIG_CRYPTO_HW is not set 1560# CONFIG_CRYPTO_HW is not set
1561# CONFIG_BINARY_PRINTF is not set
1545 1562
1546# 1563#
1547# Library routines 1564# Library routines
diff --git a/arch/sh/drivers/pci/ops-sh7785lcr.c b/arch/sh/drivers/pci/ops-sh7785lcr.c
index e8b7446a7c2b..fb0869f0bef8 100644
--- a/arch/sh/drivers/pci/ops-sh7785lcr.c
+++ b/arch/sh/drivers/pci/ops-sh7785lcr.c
@@ -48,8 +48,13 @@ EXPORT_SYMBOL(board_pci_channels);
48 48
49static struct sh4_pci_address_map sh7785_pci_map = { 49static struct sh4_pci_address_map sh7785_pci_map = {
50 .window0 = { 50 .window0 = {
51#if defined(CONFIG_32BIT)
52 .base = SH7780_32BIT_DDR_BASE_ADDR,
53 .size = 0x40000000,
54#else
51 .base = SH7780_CS0_BASE_ADDR, 55 .base = SH7780_CS0_BASE_ADDR,
52 .size = 0x20000000, 56 .size = 0x20000000,
57#endif
53 }, 58 },
54 59
55 .flags = SH4_PCIC_NO_RESET, 60 .flags = SH4_PCIC_NO_RESET,
diff --git a/arch/sh/drivers/pci/pci-sh7780.h b/arch/sh/drivers/pci/pci-sh7780.h
index 97b2c98f05c4..93adc7119b79 100644
--- a/arch/sh/drivers/pci/pci-sh7780.h
+++ b/arch/sh/drivers/pci/pci-sh7780.h
@@ -104,6 +104,8 @@
104#define SH7780_CS5_BASE_ADDR (SH7780_CS4_BASE_ADDR + SH7780_MEM_REGION_SIZE) 104#define SH7780_CS5_BASE_ADDR (SH7780_CS4_BASE_ADDR + SH7780_MEM_REGION_SIZE)
105#define SH7780_CS6_BASE_ADDR (SH7780_CS5_BASE_ADDR + SH7780_MEM_REGION_SIZE) 105#define SH7780_CS6_BASE_ADDR (SH7780_CS5_BASE_ADDR + SH7780_MEM_REGION_SIZE)
106 106
107#define SH7780_32BIT_DDR_BASE_ADDR 0x40000000
108
107struct sh4_pci_address_map; 109struct sh4_pci_address_map;
108 110
109/* arch/sh/drivers/pci/pci-sh7780.c */ 111/* arch/sh/drivers/pci/pci-sh7780.c */
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c
index e36c7b870861..0d6ac7a1db49 100644
--- a/arch/sh/drivers/pci/pci.c
+++ b/arch/sh/drivers/pci/pci.c
@@ -19,6 +19,7 @@
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/pci.h> 20#include <linux/pci.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/dma-debug.h>
22#include <asm/io.h> 23#include <asm/io.h>
23 24
24static int __init pcibios_init(void) 25static int __init pcibios_init(void)
@@ -43,6 +44,8 @@ static int __init pcibios_init(void)
43 44
44 pci_fixup_irqs(pci_common_swizzle, pcibios_map_platform_irq); 45 pci_fixup_irqs(pci_common_swizzle, pcibios_map_platform_irq);
45 46
47 dma_debug_add_bus(&pci_bus_type);
48
46 return 0; 49 return 0;
47} 50}
48subsys_initcall(pcibios_init); 51subsys_initcall(pcibios_init);
diff --git a/arch/sh/include/asm/dma-mapping.h b/arch/sh/include/asm/dma-mapping.h
index 627315ecdb52..ea9d4f41c9d2 100644
--- a/arch/sh/include/asm/dma-mapping.h
+++ b/arch/sh/include/asm/dma-mapping.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/mm.h> 4#include <linux/mm.h>
5#include <linux/scatterlist.h> 5#include <linux/scatterlist.h>
6#include <linux/dma-debug.h>
6#include <asm/cacheflush.h> 7#include <asm/cacheflush.h>
7#include <asm/io.h> 8#include <asm/io.h>
8#include <asm-generic/dma-coherent.h> 9#include <asm-generic/dma-coherent.h>
@@ -38,16 +39,26 @@ static inline dma_addr_t dma_map_single(struct device *dev,
38 void *ptr, size_t size, 39 void *ptr, size_t size,
39 enum dma_data_direction dir) 40 enum dma_data_direction dir)
40{ 41{
42 dma_addr_t addr = virt_to_phys(ptr);
43
41#if defined(CONFIG_PCI) && !defined(CONFIG_SH_PCIDMA_NONCOHERENT) 44#if defined(CONFIG_PCI) && !defined(CONFIG_SH_PCIDMA_NONCOHERENT)
42 if (dev->bus == &pci_bus_type) 45 if (dev->bus == &pci_bus_type)
43 return virt_to_phys(ptr); 46 return addr;
44#endif 47#endif
45 dma_cache_sync(dev, ptr, size, dir); 48 dma_cache_sync(dev, ptr, size, dir);
46 49
47 return virt_to_phys(ptr); 50 debug_dma_map_page(dev, virt_to_page(ptr),
51 (unsigned long)ptr & ~PAGE_MASK, size,
52 dir, addr, true);
53
54 return addr;
48} 55}
49 56
50#define dma_unmap_single(dev, addr, size, dir) do { } while (0) 57static inline void dma_unmap_single(struct device *dev, dma_addr_t addr,
58 size_t size, enum dma_data_direction dir)
59{
60 debug_dma_unmap_page(dev, addr, size, dir, true);
61}
51 62
52static inline int dma_map_sg(struct device *dev, struct scatterlist *sg, 63static inline int dma_map_sg(struct device *dev, struct scatterlist *sg,
53 int nents, enum dma_data_direction dir) 64 int nents, enum dma_data_direction dir)
@@ -59,12 +70,19 @@ static inline int dma_map_sg(struct device *dev, struct scatterlist *sg,
59 dma_cache_sync(dev, sg_virt(&sg[i]), sg[i].length, dir); 70 dma_cache_sync(dev, sg_virt(&sg[i]), sg[i].length, dir);
60#endif 71#endif
61 sg[i].dma_address = sg_phys(&sg[i]); 72 sg[i].dma_address = sg_phys(&sg[i]);
73 sg[i].dma_length = sg[i].length;
62 } 74 }
63 75
76 debug_dma_map_sg(dev, sg, nents, i, dir);
77
64 return nents; 78 return nents;
65} 79}
66 80
67#define dma_unmap_sg(dev, sg, nents, dir) do { } while (0) 81static inline void dma_unmap_sg(struct device *dev, struct scatterlist *sg,
82 int nents, enum dma_data_direction dir)
83{
84 debug_dma_unmap_sg(dev, sg, nents, dir);
85}
68 86
69static inline dma_addr_t dma_map_page(struct device *dev, struct page *page, 87static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
70 unsigned long offset, size_t size, 88 unsigned long offset, size_t size,
@@ -111,6 +129,7 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg,
111 dma_cache_sync(dev, sg_virt(&sg[i]), sg[i].length, dir); 129 dma_cache_sync(dev, sg_virt(&sg[i]), sg[i].length, dir);
112#endif 130#endif
113 sg[i].dma_address = sg_phys(&sg[i]); 131 sg[i].dma_address = sg_phys(&sg[i]);
132 sg[i].dma_length = sg[i].length;
114 } 133 }
115} 134}
116 135
@@ -119,6 +138,7 @@ static inline void dma_sync_single_for_cpu(struct device *dev,
119 enum dma_data_direction dir) 138 enum dma_data_direction dir)
120{ 139{
121 dma_sync_single(dev, dma_handle, size, dir); 140 dma_sync_single(dev, dma_handle, size, dir);
141 debug_dma_sync_single_for_cpu(dev, dma_handle, size, dir);
122} 142}
123 143
124static inline void dma_sync_single_for_device(struct device *dev, 144static inline void dma_sync_single_for_device(struct device *dev,
@@ -127,6 +147,7 @@ static inline void dma_sync_single_for_device(struct device *dev,
127 enum dma_data_direction dir) 147 enum dma_data_direction dir)
128{ 148{
129 dma_sync_single(dev, dma_handle, size, dir); 149 dma_sync_single(dev, dma_handle, size, dir);
150 debug_dma_sync_single_for_device(dev, dma_handle, size, dir);
130} 151}
131 152
132static inline void dma_sync_single_range_for_cpu(struct device *dev, 153static inline void dma_sync_single_range_for_cpu(struct device *dev,
@@ -136,6 +157,8 @@ static inline void dma_sync_single_range_for_cpu(struct device *dev,
136 enum dma_data_direction direction) 157 enum dma_data_direction direction)
137{ 158{
138 dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction); 159 dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction);
160 debug_dma_sync_single_range_for_cpu(dev, dma_handle,
161 offset, size, direction);
139} 162}
140 163
141static inline void dma_sync_single_range_for_device(struct device *dev, 164static inline void dma_sync_single_range_for_device(struct device *dev,
@@ -145,6 +168,8 @@ static inline void dma_sync_single_range_for_device(struct device *dev,
145 enum dma_data_direction direction) 168 enum dma_data_direction direction)
146{ 169{
147 dma_sync_single_for_device(dev, dma_handle+offset, size, direction); 170 dma_sync_single_for_device(dev, dma_handle+offset, size, direction);
171 debug_dma_sync_single_range_for_device(dev, dma_handle,
172 offset, size, direction);
148} 173}
149 174
150 175
@@ -153,6 +178,7 @@ static inline void dma_sync_sg_for_cpu(struct device *dev,
153 enum dma_data_direction dir) 178 enum dma_data_direction dir)
154{ 179{
155 dma_sync_sg(dev, sg, nelems, dir); 180 dma_sync_sg(dev, sg, nelems, dir);
181 debug_dma_sync_sg_for_cpu(dev, sg, nelems, dir);
156} 182}
157 183
158static inline void dma_sync_sg_for_device(struct device *dev, 184static inline void dma_sync_sg_for_device(struct device *dev,
@@ -160,9 +186,9 @@ static inline void dma_sync_sg_for_device(struct device *dev,
160 enum dma_data_direction dir) 186 enum dma_data_direction dir)
161{ 187{
162 dma_sync_sg(dev, sg, nelems, dir); 188 dma_sync_sg(dev, sg, nelems, dir);
189 debug_dma_sync_sg_for_device(dev, sg, nelems, dir);
163} 190}
164 191
165
166static inline int dma_get_cache_alignment(void) 192static inline int dma_get_cache_alignment(void)
167{ 193{
168 /* 194 /*
diff --git a/arch/sh/include/asm/ptrace.h b/arch/sh/include/asm/ptrace.h
index d3f6caa936b0..68e20ff9aa9b 100644
--- a/arch/sh/include/asm/ptrace.h
+++ b/arch/sh/include/asm/ptrace.h
@@ -9,7 +9,7 @@
9struct pt_regs { 9struct pt_regs {
10 unsigned long long pc; 10 unsigned long long pc;
11 unsigned long long sr; 11 unsigned long long sr;
12 unsigned long long syscall_nr; 12 long long syscall_nr;
13 unsigned long long regs[63]; 13 unsigned long long regs[63];
14 unsigned long long tregs[8]; 14 unsigned long long tregs[8];
15 unsigned long long pad[2]; 15 unsigned long long pad[2];
diff --git a/arch/sh/include/asm/scatterlist.h b/arch/sh/include/asm/scatterlist.h
index 2084d0373693..c693d268a413 100644
--- a/arch/sh/include/asm/scatterlist.h
+++ b/arch/sh/include/asm/scatterlist.h
@@ -5,12 +5,13 @@
5 5
6struct scatterlist { 6struct scatterlist {
7#ifdef CONFIG_DEBUG_SG 7#ifdef CONFIG_DEBUG_SG
8 unsigned long sg_magic; 8 unsigned long sg_magic;
9#endif 9#endif
10 unsigned long page_link; 10 unsigned long page_link;
11 unsigned int offset;/* for highmem, page offset */ 11 unsigned int offset; /* for highmem, page offset */
12 dma_addr_t dma_address; 12 unsigned int length;
13 unsigned int length; 13 dma_addr_t dma_address;
14 unsigned int dma_length;
14}; 15};
15 16
16#define ISA_DMA_THRESHOLD PHYS_ADDR_MASK 17#define ISA_DMA_THRESHOLD PHYS_ADDR_MASK
diff --git a/arch/sh/include/asm/topology.h b/arch/sh/include/asm/topology.h
index a3f239545897..8489a0905a87 100644
--- a/arch/sh/include/asm/topology.h
+++ b/arch/sh/include/asm/topology.h
@@ -37,8 +37,11 @@
37#define pcibus_to_node(bus) ((void)(bus), -1) 37#define pcibus_to_node(bus) ((void)(bus), -1)
38#define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \ 38#define pcibus_to_cpumask(bus) (pcibus_to_node(bus) == -1 ? \
39 CPU_MASK_ALL : \ 39 CPU_MASK_ALL : \
40 node_to_cpumask(pcibus_to_node(bus)) \ 40 node_to_cpumask(pcibus_to_node(bus)))
41 ) 41#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
42 CPU_MASK_ALL_PTR : \
43 cpumask_of_node(pcibus_to_node(bus)))
44
42#endif 45#endif
43 46
44#include <asm-generic/topology.h> 47#include <asm-generic/topology.h>
diff --git a/arch/sh/include/asm/unistd_32.h b/arch/sh/include/asm/unistd_32.h
index d52c000cf924..2efb819e2db3 100644
--- a/arch/sh/include/asm/unistd_32.h
+++ b/arch/sh/include/asm/unistd_32.h
@@ -341,8 +341,10 @@
341#define __NR_dup3 330 341#define __NR_dup3 330
342#define __NR_pipe2 331 342#define __NR_pipe2 331
343#define __NR_inotify_init1 332 343#define __NR_inotify_init1 332
344#define __NR_preadv 333
345#define __NR_pwritev 334
344 346
345#define NR_syscalls 333 347#define NR_syscalls 335
346 348
347#ifdef __KERNEL__ 349#ifdef __KERNEL__
348 350
diff --git a/arch/sh/include/asm/unistd_64.h b/arch/sh/include/asm/unistd_64.h
index 7c54e91753c1..6eb9d2934c0f 100644
--- a/arch/sh/include/asm/unistd_64.h
+++ b/arch/sh/include/asm/unistd_64.h
@@ -381,10 +381,12 @@
381#define __NR_dup3 358 381#define __NR_dup3 358
382#define __NR_pipe2 359 382#define __NR_pipe2 359
383#define __NR_inotify_init1 360 383#define __NR_inotify_init1 360
384#define __NR_preadv 361
385#define __NR_pwritev 362
384 386
385#ifdef __KERNEL__ 387#ifdef __KERNEL__
386 388
387#define NR_syscalls 361 389#define NR_syscalls 363
388 390
389#define __ARCH_WANT_IPC_PARSE_VERSION 391#define __ARCH_WANT_IPC_PARSE_VERSION
390#define __ARCH_WANT_OLD_READDIR 392#define __ARCH_WANT_OLD_READDIR
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
index 0e5d204bc792..406747f07dc0 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
@@ -256,7 +256,6 @@ static int __init sh7722_devices_setup(void)
256{ 256{
257 clk_always_enable("uram0"); /* URAM */ 257 clk_always_enable("uram0"); /* URAM */
258 clk_always_enable("xymem0"); /* XYMEM */ 258 clk_always_enable("xymem0"); /* XYMEM */
259 clk_always_enable("rtc0"); /* RTC */
260 clk_always_enable("veu0"); /* VEU */ 259 clk_always_enable("veu0"); /* VEU */
261 clk_always_enable("vpu0"); /* VPU */ 260 clk_always_enable("vpu0"); /* VPU */
262 clk_always_enable("jpu0"); /* JPU */ 261 clk_always_enable("jpu0"); /* JPU */
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index 5338dacbcfba..a800466b938c 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -267,7 +267,6 @@ static struct platform_device *sh7723_devices[] __initdata = {
267static int __init sh7723_devices_setup(void) 267static int __init sh7723_devices_setup(void)
268{ 268{
269 clk_always_enable("meram0"); /* MERAM */ 269 clk_always_enable("meram0"); /* MERAM */
270 clk_always_enable("rtc0"); /* RTC */
271 clk_always_enable("veu1"); /* VEU2H1 */ 270 clk_always_enable("veu1"); /* VEU2H1 */
272 clk_always_enable("veu0"); /* VEU2H0 */ 271 clk_always_enable("veu0"); /* VEU2H0 */
273 clk_always_enable("vpu0"); /* VPU */ 272 clk_always_enable("vpu0"); /* VPU */
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
index 5a47e1cf442e..90e8cfff55fd 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
@@ -143,14 +143,14 @@ static void __init sh7786_usb_setup(void)
143 * Set the PHY and PLL enable bit 143 * Set the PHY and PLL enable bit
144 */ 144 */
145 __raw_writel(PHY_ENB | PLL_ENB, USBPCTL1); 145 __raw_writel(PHY_ENB | PLL_ENB, USBPCTL1);
146 while (i-- && 146 while (i--) {
147 ((__raw_readl(USBST) & ACT_PLL_STATUS) != ACT_PLL_STATUS)) 147 if (ACT_PLL_STATUS == (__raw_readl(USBST) & ACT_PLL_STATUS)) {
148 /* Set the PHY RST bit */
149 __raw_writel(PHY_ENB | PLL_ENB | PHY_RST, USBPCTL1);
150 printk(KERN_INFO "sh7786 usb setup done\n");
151 break;
152 }
148 cpu_relax(); 153 cpu_relax();
149
150 if (i) {
151 /* Set the PHY RST bit */
152 __raw_writel(PHY_ENB | PLL_ENB | PHY_RST, USBPCTL1);
153 printk(KERN_INFO "sh7786 usb setup done\n");
154 } 154 }
155} 155}
156 156
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S
index e640c63d5811..7e49cb812f8b 100644
--- a/arch/sh/kernel/cpu/sh5/entry.S
+++ b/arch/sh/kernel/cpu/sh5/entry.S
@@ -10,6 +10,7 @@
10 * for more details. 10 * for more details.
11 */ 11 */
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/init.h>
13#include <linux/sys.h> 14#include <linux/sys.h>
14#include <cpu/registers.h> 15#include <cpu/registers.h>
15#include <asm/processor.h> 16#include <asm/processor.h>
@@ -2058,10 +2059,10 @@ asm_uaccess_end:
2058 2059
2059 2060
2060/* 2061/*
2061 * --- .text.init Section 2062 * --- .init.text Section
2062 */ 2063 */
2063 2064
2064 .section .text.init, "ax" 2065 __INIT
2065 2066
2066/* 2067/*
2067 * void trap_init (void) 2068 * void trap_init (void)
diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S
index 788605ff7088..a78be74b8d3e 100644
--- a/arch/sh/kernel/head_32.S
+++ b/arch/sh/kernel/head_32.S
@@ -10,6 +10,7 @@
10 * 10 *
11 * Head.S contains the SH exception handlers and startup code. 11 * Head.S contains the SH exception handlers and startup code.
12 */ 12 */
13#include <linux/init.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/thread_info.h> 15#include <asm/thread_info.h>
15 16
@@ -40,7 +41,7 @@ ENTRY(empty_zero_page)
401: 411:
41 .skip PAGE_SIZE - empty_zero_page - 1b 42 .skip PAGE_SIZE - empty_zero_page - 1b
42 43
43 .section .text.head, "ax" 44 __HEAD
44 45
45/* 46/*
46 * Condition at the entry of _stext: 47 * Condition at the entry of _stext:
diff --git a/arch/sh/kernel/head_64.S b/arch/sh/kernel/head_64.S
index 7ccfb995a398..3ea765844c74 100644
--- a/arch/sh/kernel/head_64.S
+++ b/arch/sh/kernel/head_64.S
@@ -8,6 +8,9 @@
8 * License. See the file "COPYING" in the main directory of this archive 8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details. 9 * for more details.
10 */ 10 */
11
12#include <linux/init.h>
13
11#include <asm/page.h> 14#include <asm/page.h>
12#include <asm/cache.h> 15#include <asm/cache.h>
13#include <asm/tlb.h> 16#include <asm/tlb.h>
@@ -110,7 +113,7 @@ empty_bad_pte_table:
110fpu_in_use: .quad 0 113fpu_in_use: .quad 0
111 114
112 115
113 .section .text.head, "ax" 116 __HEAD
114 .balign L1_CACHE_BYTES 117 .balign L1_CACHE_BYTES
115/* 118/*
116 * Condition at the entry of __stext: 119 * Condition at the entry of __stext:
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c
index 58dfc02c7af1..e3a7e36639ef 100644
--- a/arch/sh/kernel/sys_sh.c
+++ b/arch/sh/kernel/sys_sh.c
@@ -63,6 +63,15 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
63 unsigned long prot, unsigned long flags, 63 unsigned long prot, unsigned long flags,
64 unsigned long fd, unsigned long pgoff) 64 unsigned long fd, unsigned long pgoff)
65{ 65{
66 /*
67 * The shift for mmap2 is constant, regardless of PAGE_SIZE
68 * setting.
69 */
70 if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1))
71 return -EINVAL;
72
73 pgoff >>= PAGE_SHIFT - 12;
74
66 return do_mmap2(addr, len, prot, flags, fd, pgoff); 75 return do_mmap2(addr, len, prot, flags, fd, pgoff);
67} 76}
68 77
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S
index e67c1733e1b9..05202edd8e21 100644
--- a/arch/sh/kernel/syscalls_32.S
+++ b/arch/sh/kernel/syscalls_32.S
@@ -349,3 +349,5 @@ ENTRY(sys_call_table)
349 .long sys_dup3 /* 330 */ 349 .long sys_dup3 /* 330 */
350 .long sys_pipe2 350 .long sys_pipe2
351 .long sys_inotify_init1 351 .long sys_inotify_init1
352 .long sys_preadv
353 .long sys_writev
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S
index 557cb91f5caf..a083609f9284 100644
--- a/arch/sh/kernel/syscalls_64.S
+++ b/arch/sh/kernel/syscalls_64.S
@@ -387,3 +387,5 @@ sys_call_table:
387 .long sys_dup3 387 .long sys_dup3
388 .long sys_pipe2 388 .long sys_pipe2
389 .long sys_inotify_init1 /* 360 */ 389 .long sys_inotify_init1 /* 360 */
390 .long sys_preadv
391 .long sys_pwritev
diff --git a/arch/sh/kernel/time_32.c b/arch/sh/kernel/time_32.c
index c34e1e0f9b02..1700d2465f6c 100644
--- a/arch/sh/kernel/time_32.c
+++ b/arch/sh/kernel/time_32.c
@@ -208,7 +208,7 @@ unsigned long long sched_clock(void)
208 if (!clocksource_sh.rating) 208 if (!clocksource_sh.rating)
209 return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ); 209 return (unsigned long long)jiffies * (NSEC_PER_SEC / HZ);
210 210
211 cycles = clocksource_sh.read(); 211 cycles = clocksource_sh.read(&clocksource_sh);
212 return cyc2ns(&clocksource_sh, cycles); 212 return cyc2ns(&clocksource_sh, cycles);
213} 213}
214#endif 214#endif
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c
index c5d3396f5960..fe8d8930ccb6 100644
--- a/arch/sh/kernel/timers/timer-tmu.c
+++ b/arch/sh/kernel/timers/timer-tmu.c
@@ -81,7 +81,7 @@ static int tmu_timer_stop(void)
81 */ 81 */
82static int tmus_are_scaled; 82static int tmus_are_scaled;
83 83
84static cycle_t tmu_timer_read(void) 84static cycle_t tmu_timer_read(struct clocksource *cs)
85{ 85{
86 return ((cycle_t)(~_tmu_read(TMU1)))<<tmus_are_scaled; 86 return ((cycle_t)(~_tmu_read(TMU1)))<<tmus_are_scaled;
87} 87}
diff --git a/arch/sh/kernel/vmlinux_32.lds.S b/arch/sh/kernel/vmlinux_32.lds.S
index d0b2a715cd14..dd9b2ee1312d 100644
--- a/arch/sh/kernel/vmlinux_32.lds.S
+++ b/arch/sh/kernel/vmlinux_32.lds.S
@@ -31,7 +31,7 @@ SECTIONS
31 } = 0 31 } = 0
32 32
33 .text : { 33 .text : {
34 *(.text.head) 34 HEAD_TEXT
35 TEXT_TEXT 35 TEXT_TEXT
36 SCHED_TEXT 36 SCHED_TEXT
37 LOCK_TEXT 37 LOCK_TEXT
diff --git a/arch/sh/kernel/vmlinux_64.lds.S b/arch/sh/kernel/vmlinux_64.lds.S
index 33fa46451406..69664460c688 100644
--- a/arch/sh/kernel/vmlinux_64.lds.S
+++ b/arch/sh/kernel/vmlinux_64.lds.S
@@ -42,7 +42,7 @@ SECTIONS
42 } = 0 42 } = 0
43 43
44 .text : C_PHYS(.text) { 44 .text : C_PHYS(.text) {
45 *(.text.head) 45 HEAD_TEXT
46 TEXT_TEXT 46 TEXT_TEXT
47 *(.text64) 47 *(.text64)
48 *(.text..SHmedia32) 48 *(.text..SHmedia32)
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index edcd5fbf9651..e098ec158ddb 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -10,11 +10,22 @@
10 * for more details. 10 * for more details.
11 */ 11 */
12#include <linux/mm.h> 12#include <linux/mm.h>
13#include <linux/init.h>
13#include <linux/platform_device.h> 14#include <linux/platform_device.h>
14#include <linux/dma-mapping.h> 15#include <linux/dma-mapping.h>
16#include <linux/dma-debug.h>
17#include <linux/io.h>
15#include <asm/cacheflush.h> 18#include <asm/cacheflush.h>
16#include <asm/addrspace.h> 19#include <asm/addrspace.h>
17#include <asm/io.h> 20
21#define PREALLOC_DMA_DEBUG_ENTRIES 4096
22
23static int __init dma_init(void)
24{
25 dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES);
26 return 0;
27}
28fs_initcall(dma_init);
18 29
19void *dma_alloc_coherent(struct device *dev, size_t size, 30void *dma_alloc_coherent(struct device *dev, size_t size,
20 dma_addr_t *dma_handle, gfp_t gfp) 31 dma_addr_t *dma_handle, gfp_t gfp)
@@ -45,6 +56,9 @@ void *dma_alloc_coherent(struct device *dev, size_t size,
45 split_page(pfn_to_page(virt_to_phys(ret) >> PAGE_SHIFT), order); 56 split_page(pfn_to_page(virt_to_phys(ret) >> PAGE_SHIFT), order);
46 57
47 *dma_handle = virt_to_phys(ret); 58 *dma_handle = virt_to_phys(ret);
59
60 debug_dma_alloc_coherent(dev, size, *dma_handle, ret_nocache);
61
48 return ret_nocache; 62 return ret_nocache;
49} 63}
50EXPORT_SYMBOL(dma_alloc_coherent); 64EXPORT_SYMBOL(dma_alloc_coherent);
@@ -56,12 +70,15 @@ void dma_free_coherent(struct device *dev, size_t size,
56 unsigned long pfn = dma_handle >> PAGE_SHIFT; 70 unsigned long pfn = dma_handle >> PAGE_SHIFT;
57 int k; 71 int k;
58 72
59 if (!dma_release_from_coherent(dev, order, vaddr)) { 73 WARN_ON(irqs_disabled()); /* for portability */
60 WARN_ON(irqs_disabled()); /* for portability */ 74
61 for (k = 0; k < (1 << order); k++) 75 if (dma_release_from_coherent(dev, order, vaddr))
62 __free_pages(pfn_to_page(pfn + k), 0); 76 return;
63 iounmap(vaddr); 77
64 } 78 debug_dma_free_coherent(dev, size, vaddr, dma_handle);
79 for (k = 0; k < (1 << order); k++)
80 __free_pages(pfn_to_page(pfn + k), 0);
81 iounmap(vaddr);
65} 82}
66EXPORT_SYMBOL(dma_free_coherent); 83EXPORT_SYMBOL(dma_free_coherent);
67 84
diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/sparc32_defconfig
index 09ab46e4c59d..8bcd27af724b 100644
--- a/arch/sparc/configs/sparc32_defconfig
+++ b/arch/sparc/configs/sparc32_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 3# Linux kernel version: 2.6.30-rc2
4# Thu Jan 8 16:45:44 2009 4# Fri Apr 17 04:04:46 2009
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_SPARC=y 7CONFIG_SPARC=y
@@ -30,17 +30,27 @@ CONFIG_SWAP=y
30CONFIG_SYSVIPC=y 30CONFIG_SYSVIPC=y
31CONFIG_SYSVIPC_SYSCTL=y 31CONFIG_SYSVIPC_SYSCTL=y
32CONFIG_POSIX_MQUEUE=y 32CONFIG_POSIX_MQUEUE=y
33CONFIG_POSIX_MQUEUE_SYSCTL=y
33# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
36# CONFIG_IKCONFIG is not set 46# CONFIG_IKCONFIG is not set
37CONFIG_LOG_BUF_SHIFT=14 47CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39CONFIG_GROUP_SCHED=y 48CONFIG_GROUP_SCHED=y
40CONFIG_FAIR_GROUP_SCHED=y 49CONFIG_FAIR_GROUP_SCHED=y
41CONFIG_RT_GROUP_SCHED=y 50CONFIG_RT_GROUP_SCHED=y
42CONFIG_USER_SCHED=y 51CONFIG_USER_SCHED=y
43# CONFIG_CGROUP_SCHED is not set 52# CONFIG_CGROUP_SCHED is not set
53# CONFIG_CGROUPS is not set
44CONFIG_SYSFS_DEPRECATED=y 54CONFIG_SYSFS_DEPRECATED=y
45CONFIG_SYSFS_DEPRECATED_V2=y 55CONFIG_SYSFS_DEPRECATED_V2=y
46# CONFIG_RELAY is not set 56# CONFIG_RELAY is not set
@@ -49,24 +59,28 @@ CONFIG_NAMESPACES=y
49# CONFIG_IPC_NS is not set 59# CONFIG_IPC_NS is not set
50# CONFIG_USER_NS is not set 60# CONFIG_USER_NS is not set
51# CONFIG_PID_NS is not set 61# CONFIG_PID_NS is not set
62# CONFIG_NET_NS is not set
52CONFIG_BLK_DEV_INITRD=y 63CONFIG_BLK_DEV_INITRD=y
53CONFIG_INITRAMFS_SOURCE="" 64CONFIG_INITRAMFS_SOURCE=""
65CONFIG_RD_GZIP=y
66CONFIG_RD_BZIP2=y
67CONFIG_RD_LZMA=y
54# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 68# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
55CONFIG_SYSCTL=y 69CONFIG_SYSCTL=y
70CONFIG_ANON_INODES=y
56# CONFIG_EMBEDDED is not set 71# CONFIG_EMBEDDED is not set
57CONFIG_UID16=y 72CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 73CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y 74CONFIG_KALLSYMS=y
60# CONFIG_KALLSYMS_ALL is not set 75# CONFIG_KALLSYMS_ALL is not set
61# CONFIG_KALLSYMS_EXTRA_PASS is not set 76# CONFIG_KALLSYMS_EXTRA_PASS is not set
77# CONFIG_STRIP_ASM_SYMS is not set
62CONFIG_HOTPLUG=y 78CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y 79CONFIG_PRINTK=y
64CONFIG_BUG=y 80CONFIG_BUG=y
65CONFIG_ELF_CORE=y 81CONFIG_ELF_CORE=y
66CONFIG_COMPAT_BRK=y
67CONFIG_BASE_FULL=y 82CONFIG_BASE_FULL=y
68CONFIG_FUTEX=y 83CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
70CONFIG_EPOLL=y 84CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y 85CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y 86CONFIG_TIMERFD=y
@@ -75,12 +89,15 @@ CONFIG_SHMEM=y
75CONFIG_AIO=y 89CONFIG_AIO=y
76CONFIG_VM_EVENT_COUNTERS=y 90CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y 91CONFIG_PCI_QUIRKS=y
92CONFIG_COMPAT_BRK=y
78CONFIG_SLAB=y 93CONFIG_SLAB=y
79# CONFIG_SLUB is not set 94# CONFIG_SLUB is not set
80# CONFIG_SLOB is not set 95# CONFIG_SLOB is not set
81# CONFIG_PROFILING is not set 96# CONFIG_PROFILING is not set
97# CONFIG_MARKERS is not set
82CONFIG_HAVE_OPROFILE=y 98CONFIG_HAVE_OPROFILE=y
83CONFIG_HAVE_ARCH_TRACEHOOK=y 99CONFIG_HAVE_ARCH_TRACEHOOK=y
100# CONFIG_SLOW_WORK is not set
84# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 101# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
85CONFIG_SLABINFO=y 102CONFIG_SLABINFO=y
86CONFIG_RT_MUTEXES=y 103CONFIG_RT_MUTEXES=y
@@ -93,7 +110,6 @@ CONFIG_MODULE_UNLOAD=y
93# CONFIG_MODULE_SRCVERSION_ALL is not set 110# CONFIG_MODULE_SRCVERSION_ALL is not set
94CONFIG_BLOCK=y 111CONFIG_BLOCK=y
95# CONFIG_LBD is not set 112# CONFIG_LBD is not set
96# CONFIG_BLK_DEV_IO_TRACE is not set
97# CONFIG_BLK_DEV_BSG is not set 113# CONFIG_BLK_DEV_BSG is not set
98# CONFIG_BLK_DEV_INTEGRITY is not set 114# CONFIG_BLK_DEV_INTEGRITY is not set
99 115
@@ -109,11 +125,6 @@ CONFIG_IOSCHED_CFQ=y
109CONFIG_DEFAULT_CFQ=y 125CONFIG_DEFAULT_CFQ=y
110# CONFIG_DEFAULT_NOOP is not set 126# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="cfq" 127CONFIG_DEFAULT_IOSCHED="cfq"
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
117# CONFIG_FREEZER is not set 128# CONFIG_FREEZER is not set
118 129
119# 130#
@@ -144,6 +155,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
144CONFIG_ZONE_DMA_FLAG=1 155CONFIG_ZONE_DMA_FLAG=1
145CONFIG_BOUNCE=y 156CONFIG_BOUNCE=y
146CONFIG_UNEVICTABLE_LRU=y 157CONFIG_UNEVICTABLE_LRU=y
158CONFIG_HAVE_MLOCK=y
159CONFIG_HAVE_MLOCKED_PAGE_BIT=y
147CONFIG_SUN_PM=y 160CONFIG_SUN_PM=y
148# CONFIG_SPARC_LED is not set 161# CONFIG_SPARC_LED is not set
149CONFIG_SERIAL_CONSOLE=y 162CONFIG_SERIAL_CONSOLE=y
@@ -159,6 +172,7 @@ CONFIG_PCI_SYSCALL=y
159CONFIG_PCI_LEGACY=y 172CONFIG_PCI_LEGACY=y
160# CONFIG_PCI_DEBUG is not set 173# CONFIG_PCI_DEBUG is not set
161# CONFIG_PCI_STUB is not set 174# CONFIG_PCI_STUB is not set
175# CONFIG_PCI_IOV is not set
162# CONFIG_PCCARD is not set 176# CONFIG_PCCARD is not set
163CONFIG_SUN_OPENPROMFS=m 177CONFIG_SUN_OPENPROMFS=m
164CONFIG_SPARC32_PCI=y 178CONFIG_SPARC32_PCI=y
@@ -175,8 +189,6 @@ CONFIG_NET=y
175# 189#
176# Networking options 190# Networking options
177# 191#
178# CONFIG_NET_NS is not set
179CONFIG_COMPAT_NET_DEV_OPS=y
180CONFIG_PACKET=y 192CONFIG_PACKET=y
181# CONFIG_PACKET_MMAP is not set 193# CONFIG_PACKET_MMAP is not set
182CONFIG_UNIX=y 194CONFIG_UNIX=y
@@ -251,6 +263,7 @@ CONFIG_IPV6_TUNNEL=m
251# CONFIG_LAPB is not set 263# CONFIG_LAPB is not set
252# CONFIG_ECONET is not set 264# CONFIG_ECONET is not set
253# CONFIG_WAN_ROUTER is not set 265# CONFIG_WAN_ROUTER is not set
266# CONFIG_PHONET is not set
254# CONFIG_NET_SCHED is not set 267# CONFIG_NET_SCHED is not set
255# CONFIG_DCB is not set 268# CONFIG_DCB is not set
256 269
@@ -263,7 +276,6 @@ CONFIG_NET_PKTGEN=m
263# CONFIG_IRDA is not set 276# CONFIG_IRDA is not set
264# CONFIG_BT is not set 277# CONFIG_BT is not set
265# CONFIG_AF_RXRPC is not set 278# CONFIG_AF_RXRPC is not set
266# CONFIG_PHONET is not set
267CONFIG_WIRELESS=y 279CONFIG_WIRELESS=y
268# CONFIG_CFG80211 is not set 280# CONFIG_CFG80211 is not set
269CONFIG_WIRELESS_OLD_REGULATORY=y 281CONFIG_WIRELESS_OLD_REGULATORY=y
@@ -313,12 +325,16 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
313# CONFIG_BLK_DEV_HD is not set 325# CONFIG_BLK_DEV_HD is not set
314CONFIG_MISC_DEVICES=y 326CONFIG_MISC_DEVICES=y
315# CONFIG_PHANTOM is not set 327# CONFIG_PHANTOM is not set
316# CONFIG_EEPROM_93CX6 is not set
317# CONFIG_SGI_IOC4 is not set 328# CONFIG_SGI_IOC4 is not set
318# CONFIG_TIFM_CORE is not set 329# CONFIG_TIFM_CORE is not set
319# CONFIG_ENCLOSURE_SERVICES is not set 330# CONFIG_ENCLOSURE_SERVICES is not set
320# CONFIG_HP_ILO is not set 331# CONFIG_HP_ILO is not set
321# CONFIG_C2PORT is not set 332# CONFIG_C2PORT is not set
333
334#
335# EEPROM support
336#
337# CONFIG_EEPROM_93CX6 is not set
322CONFIG_HAVE_IDE=y 338CONFIG_HAVE_IDE=y
323# CONFIG_IDE is not set 339# CONFIG_IDE is not set
324 340
@@ -375,8 +391,10 @@ CONFIG_SCSI_LOWLEVEL=y
375# CONFIG_MEGARAID_NEWGEN is not set 391# CONFIG_MEGARAID_NEWGEN is not set
376# CONFIG_MEGARAID_LEGACY is not set 392# CONFIG_MEGARAID_LEGACY is not set
377# CONFIG_MEGARAID_SAS is not set 393# CONFIG_MEGARAID_SAS is not set
394# CONFIG_SCSI_MPT2SAS is not set
378# CONFIG_SCSI_HPTIOP is not set 395# CONFIG_SCSI_HPTIOP is not set
379# CONFIG_LIBFC is not set 396# CONFIG_LIBFC is not set
397# CONFIG_LIBFCOE is not set
380# CONFIG_FCOE is not set 398# CONFIG_FCOE is not set
381# CONFIG_SCSI_DMX3191D is not set 399# CONFIG_SCSI_DMX3191D is not set
382# CONFIG_SCSI_FUTURE_DOMAIN is not set 400# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -398,6 +416,7 @@ CONFIG_SCSI_QLOGICPTI=m
398CONFIG_SCSI_SUNESP=y 416CONFIG_SCSI_SUNESP=y
399# CONFIG_SCSI_SRP is not set 417# CONFIG_SCSI_SRP is not set
400# CONFIG_SCSI_DH is not set 418# CONFIG_SCSI_DH is not set
419# CONFIG_SCSI_OSD_INITIATOR is not set
401# CONFIG_ATA is not set 420# CONFIG_ATA is not set
402# CONFIG_MD is not set 421# CONFIG_MD is not set
403# CONFIG_FUSION is not set 422# CONFIG_FUSION is not set
@@ -413,6 +432,7 @@ CONFIG_SCSI_SUNESP=y
413# CONFIG_IEEE1394 is not set 432# CONFIG_IEEE1394 is not set
414# CONFIG_I2O is not set 433# CONFIG_I2O is not set
415CONFIG_NETDEVICES=y 434CONFIG_NETDEVICES=y
435CONFIG_COMPAT_NET_DEV_OPS=y
416CONFIG_DUMMY=m 436CONFIG_DUMMY=m
417# CONFIG_BONDING is not set 437# CONFIG_BONDING is not set
418# CONFIG_MACVLAN is not set 438# CONFIG_MACVLAN is not set
@@ -430,6 +450,8 @@ CONFIG_SUNQE=m
430# CONFIG_SUNGEM is not set 450# CONFIG_SUNGEM is not set
431# CONFIG_CASSINI is not set 451# CONFIG_CASSINI is not set
432# CONFIG_NET_VENDOR_3COM is not set 452# CONFIG_NET_VENDOR_3COM is not set
453# CONFIG_ETHOC is not set
454# CONFIG_DNET is not set
433# CONFIG_NET_TULIP is not set 455# CONFIG_NET_TULIP is not set
434# CONFIG_HP100 is not set 456# CONFIG_HP100 is not set
435# CONFIG_IBM_NEW_EMAC_ZMII is not set 457# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -448,6 +470,7 @@ CONFIG_NETDEV_1000=y
448# CONFIG_E1000 is not set 470# CONFIG_E1000 is not set
449# CONFIG_IP1000 is not set 471# CONFIG_IP1000 is not set
450# CONFIG_IGB is not set 472# CONFIG_IGB is not set
473# CONFIG_IGBVF is not set
451# CONFIG_MYRI_SBUS is not set 474# CONFIG_MYRI_SBUS is not set
452# CONFIG_NS83820 is not set 475# CONFIG_NS83820 is not set
453# CONFIG_HAMACHI is not set 476# CONFIG_HAMACHI is not set
@@ -462,6 +485,7 @@ CONFIG_NETDEV_1000=y
462# CONFIG_QLA3XXX is not set 485# CONFIG_QLA3XXX is not set
463# CONFIG_ATL1 is not set 486# CONFIG_ATL1 is not set
464# CONFIG_ATL1E is not set 487# CONFIG_ATL1E is not set
488# CONFIG_ATL1C is not set
465# CONFIG_JME is not set 489# CONFIG_JME is not set
466CONFIG_NETDEV_10000=y 490CONFIG_NETDEV_10000=y
467# CONFIG_CHELSIO_T1 is not set 491# CONFIG_CHELSIO_T1 is not set
@@ -471,6 +495,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
471# CONFIG_IXGBE is not set 495# CONFIG_IXGBE is not set
472# CONFIG_IXGB is not set 496# CONFIG_IXGB is not set
473# CONFIG_S2IO is not set 497# CONFIG_S2IO is not set
498# CONFIG_VXGE is not set
474# CONFIG_MYRI10GE is not set 499# CONFIG_MYRI10GE is not set
475# CONFIG_NETXEN_NIC is not set 500# CONFIG_NETXEN_NIC is not set
476# CONFIG_NIU is not set 501# CONFIG_NIU is not set
@@ -480,6 +505,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
480# CONFIG_BNX2X is not set 505# CONFIG_BNX2X is not set
481# CONFIG_QLGE is not set 506# CONFIG_QLGE is not set
482# CONFIG_SFC is not set 507# CONFIG_SFC is not set
508# CONFIG_BE2NET is not set
483# CONFIG_TR is not set 509# CONFIG_TR is not set
484 510
485# 511#
@@ -487,7 +513,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
487# 513#
488# CONFIG_WLAN_PRE80211 is not set 514# CONFIG_WLAN_PRE80211 is not set
489# CONFIG_WLAN_80211 is not set 515# CONFIG_WLAN_80211 is not set
490# CONFIG_IWLWIFI_LEDS is not set
491 516
492# 517#
493# Enable WiMAX (Networking options) to see the WiMAX drivers 518# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -537,7 +562,6 @@ CONFIG_MOUSE_PS2=m
537CONFIG_MOUSE_PS2_ALPS=y 562CONFIG_MOUSE_PS2_ALPS=y
538CONFIG_MOUSE_PS2_LOGIPS2PP=y 563CONFIG_MOUSE_PS2_LOGIPS2PP=y
539CONFIG_MOUSE_PS2_SYNAPTICS=y 564CONFIG_MOUSE_PS2_SYNAPTICS=y
540CONFIG_MOUSE_PS2_LIFEBOOK=y
541CONFIG_MOUSE_PS2_TRACKPOINT=y 565CONFIG_MOUSE_PS2_TRACKPOINT=y
542# CONFIG_MOUSE_PS2_ELANTECH is not set 566# CONFIG_MOUSE_PS2_ELANTECH is not set
543# CONFIG_MOUSE_PS2_TOUCHKIT is not set 567# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -597,6 +621,7 @@ CONFIG_LEGACY_PTYS=y
597CONFIG_LEGACY_PTY_COUNT=256 621CONFIG_LEGACY_PTY_COUNT=256
598# CONFIG_IPMI_HANDLER is not set 622# CONFIG_IPMI_HANDLER is not set
599CONFIG_HW_RANDOM=m 623CONFIG_HW_RANDOM=m
624# CONFIG_HW_RANDOM_TIMERIOMEM is not set
600# CONFIG_R3964 is not set 625# CONFIG_R3964 is not set
601# CONFIG_APPLICOM is not set 626# CONFIG_APPLICOM is not set
602# CONFIG_RAW_DRIVER is not set 627# CONFIG_RAW_DRIVER is not set
@@ -688,7 +713,6 @@ CONFIG_HID=y
688# 713#
689# Special HID drivers 714# Special HID drivers
690# 715#
691CONFIG_HID_COMPAT=y
692CONFIG_USB_SUPPORT=y 716CONFIG_USB_SUPPORT=y
693CONFIG_USB_ARCH_HAS_HCD=y 717CONFIG_USB_ARCH_HAS_HCD=y
694CONFIG_USB_ARCH_HAS_OHCI=y 718CONFIG_USB_ARCH_HAS_OHCI=y
@@ -700,7 +724,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
700# 724#
701 725
702# 726#
703# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 727# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
704# 728#
705# CONFIG_USB_GADGET is not set 729# CONFIG_USB_GADGET is not set
706 730
@@ -750,6 +774,7 @@ CONFIG_RTC_DRV_M48T59=y
750# on-CPU RTC drivers 774# on-CPU RTC drivers
751# 775#
752# CONFIG_DMADEVICES is not set 776# CONFIG_DMADEVICES is not set
777# CONFIG_AUXDISPLAY is not set
753# CONFIG_UIO is not set 778# CONFIG_UIO is not set
754# CONFIG_STAGING is not set 779# CONFIG_STAGING is not set
755 780
@@ -777,6 +802,7 @@ CONFIG_FS_POSIX_ACL=y
777CONFIG_FILE_LOCKING=y 802CONFIG_FILE_LOCKING=y
778# CONFIG_XFS_FS is not set 803# CONFIG_XFS_FS is not set
779# CONFIG_OCFS2_FS is not set 804# CONFIG_OCFS2_FS is not set
805# CONFIG_BTRFS_FS is not set
780CONFIG_DNOTIFY=y 806CONFIG_DNOTIFY=y
781CONFIG_INOTIFY=y 807CONFIG_INOTIFY=y
782CONFIG_INOTIFY_USER=y 808CONFIG_INOTIFY_USER=y
@@ -786,6 +812,11 @@ CONFIG_AUTOFS4_FS=m
786# CONFIG_FUSE_FS is not set 812# CONFIG_FUSE_FS is not set
787 813
788# 814#
815# Caches
816#
817# CONFIG_FSCACHE is not set
818
819#
789# CD-ROM/DVD Filesystems 820# CD-ROM/DVD Filesystems
790# 821#
791CONFIG_ISO9660_FS=m 822CONFIG_ISO9660_FS=m
@@ -820,14 +851,20 @@ CONFIG_MISC_FILESYSTEMS=y
820# CONFIG_BFS_FS is not set 851# CONFIG_BFS_FS is not set
821# CONFIG_EFS_FS is not set 852# CONFIG_EFS_FS is not set
822# CONFIG_CRAMFS is not set 853# CONFIG_CRAMFS is not set
854# CONFIG_SQUASHFS is not set
823# CONFIG_VXFS_FS is not set 855# CONFIG_VXFS_FS is not set
824# CONFIG_MINIX_FS is not set 856# CONFIG_MINIX_FS is not set
825# CONFIG_OMFS_FS is not set 857# CONFIG_OMFS_FS is not set
826# CONFIG_HPFS_FS is not set 858# CONFIG_HPFS_FS is not set
827# CONFIG_QNX4FS_FS is not set 859# CONFIG_QNX4FS_FS is not set
828CONFIG_ROMFS_FS=m 860CONFIG_ROMFS_FS=m
861CONFIG_ROMFS_BACKED_BY_BLOCK=y
862# CONFIG_ROMFS_BACKED_BY_MTD is not set
863# CONFIG_ROMFS_BACKED_BY_BOTH is not set
864CONFIG_ROMFS_ON_BLOCK=y
829# CONFIG_SYSV_FS is not set 865# CONFIG_SYSV_FS is not set
830# CONFIG_UFS_FS is not set 866# CONFIG_UFS_FS is not set
867# CONFIG_NILFS2_FS is not set
831CONFIG_NETWORK_FILESYSTEMS=y 868CONFIG_NETWORK_FILESYSTEMS=y
832CONFIG_NFS_FS=y 869CONFIG_NFS_FS=y
833# CONFIG_NFS_V3 is not set 870# CONFIG_NFS_V3 is not set
@@ -838,7 +875,6 @@ CONFIG_LOCKD=y
838CONFIG_NFS_COMMON=y 875CONFIG_NFS_COMMON=y
839CONFIG_SUNRPC=y 876CONFIG_SUNRPC=y
840CONFIG_SUNRPC_GSS=m 877CONFIG_SUNRPC_GSS=m
841# CONFIG_SUNRPC_REGISTER_V4 is not set
842CONFIG_RPCSEC_GSS_KRB5=m 878CONFIG_RPCSEC_GSS_KRB5=m
843# CONFIG_RPCSEC_GSS_SPKM3 is not set 879# CONFIG_RPCSEC_GSS_SPKM3 is not set
844# CONFIG_SMB_FS is not set 880# CONFIG_SMB_FS is not set
@@ -911,6 +947,9 @@ CONFIG_DEBUG_KERNEL=y
911CONFIG_DETECT_SOFTLOCKUP=y 947CONFIG_DETECT_SOFTLOCKUP=y
912# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 948# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
913CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 949CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
950CONFIG_DETECT_HUNG_TASK=y
951# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
952CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
914# CONFIG_SCHED_DEBUG is not set 953# CONFIG_SCHED_DEBUG is not set
915# CONFIG_SCHEDSTATS is not set 954# CONFIG_SCHEDSTATS is not set
916# CONFIG_TIMER_STATS is not set 955# CONFIG_TIMER_STATS is not set
@@ -939,15 +978,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
939# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 978# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
940# CONFIG_FAULT_INJECTION is not set 979# CONFIG_FAULT_INJECTION is not set
941# CONFIG_SYSCTL_SYSCALL_CHECK is not set 980# CONFIG_SYSCTL_SYSCALL_CHECK is not set
942 981# CONFIG_PAGE_POISONING is not set
943#
944# Tracers
945#
946# CONFIG_SCHED_TRACER is not set
947# CONFIG_CONTEXT_SWITCH_TRACER is not set
948# CONFIG_BOOT_TRACER is not set
949# CONFIG_TRACE_BRANCH_PROFILING is not set
950# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
951# CONFIG_SAMPLES is not set 982# CONFIG_SAMPLES is not set
952CONFIG_HAVE_ARCH_KGDB=y 983CONFIG_HAVE_ARCH_KGDB=y
953CONFIG_KGDB=y 984CONFIG_KGDB=y
@@ -979,10 +1010,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
979CONFIG_CRYPTO_HASH=y 1010CONFIG_CRYPTO_HASH=y
980CONFIG_CRYPTO_HASH2=y 1011CONFIG_CRYPTO_HASH2=y
981CONFIG_CRYPTO_RNG2=y 1012CONFIG_CRYPTO_RNG2=y
1013CONFIG_CRYPTO_PCOMP=y
982CONFIG_CRYPTO_MANAGER=y 1014CONFIG_CRYPTO_MANAGER=y
983CONFIG_CRYPTO_MANAGER2=y 1015CONFIG_CRYPTO_MANAGER2=y
984# CONFIG_CRYPTO_GF128MUL is not set 1016# CONFIG_CRYPTO_GF128MUL is not set
985CONFIG_CRYPTO_NULL=m 1017CONFIG_CRYPTO_NULL=m
1018CONFIG_CRYPTO_WORKQUEUE=y
986# CONFIG_CRYPTO_CRYPTD is not set 1019# CONFIG_CRYPTO_CRYPTD is not set
987CONFIG_CRYPTO_AUTHENC=y 1020CONFIG_CRYPTO_AUTHENC=y
988# CONFIG_CRYPTO_TEST is not set 1021# CONFIG_CRYPTO_TEST is not set
@@ -1052,6 +1085,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1052# Compression 1085# Compression
1053# 1086#
1054CONFIG_CRYPTO_DEFLATE=y 1087CONFIG_CRYPTO_DEFLATE=y
1088# CONFIG_CRYPTO_ZLIB is not set
1055# CONFIG_CRYPTO_LZO is not set 1089# CONFIG_CRYPTO_LZO is not set
1056 1090
1057# 1091#
@@ -1059,6 +1093,7 @@ CONFIG_CRYPTO_DEFLATE=y
1059# 1093#
1060# CONFIG_CRYPTO_ANSI_CPRNG is not set 1094# CONFIG_CRYPTO_ANSI_CPRNG is not set
1061# CONFIG_CRYPTO_HW is not set 1095# CONFIG_CRYPTO_HW is not set
1096# CONFIG_BINARY_PRINTF is not set
1062 1097
1063# 1098#
1064# Library routines 1099# Library routines
@@ -1074,7 +1109,10 @@ CONFIG_CRC32=y
1074CONFIG_LIBCRC32C=m 1109CONFIG_LIBCRC32C=m
1075CONFIG_ZLIB_INFLATE=y 1110CONFIG_ZLIB_INFLATE=y
1076CONFIG_ZLIB_DEFLATE=y 1111CONFIG_ZLIB_DEFLATE=y
1077CONFIG_PLIST=y 1112CONFIG_DECOMPRESS_GZIP=y
1113CONFIG_DECOMPRESS_BZIP2=y
1114CONFIG_DECOMPRESS_LZMA=y
1078CONFIG_HAS_IOMEM=y 1115CONFIG_HAS_IOMEM=y
1079CONFIG_HAS_IOPORT=y 1116CONFIG_HAS_IOPORT=y
1080CONFIG_HAS_DMA=y 1117CONFIG_HAS_DMA=y
1118CONFIG_NLATTR=y
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index ade49941def2..b5d63bd8716e 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -1,13 +1,14 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28 3# Linux kernel version: 2.6.30-rc2
4# Fri Jan 2 18:14:26 2009 4# Fri Apr 17 02:03:07 2009
5# 5#
6CONFIG_64BIT=y
6CONFIG_SPARC=y 7CONFIG_SPARC=y
8# CONFIG_SPARC32 is not set
7CONFIG_SPARC64=y 9CONFIG_SPARC64=y
8CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig"
9CONFIG_BITS=64 11CONFIG_BITS=64
10CONFIG_64BIT=y
11CONFIG_GENERIC_TIME=y 12CONFIG_GENERIC_TIME=y
12CONFIG_GENERIC_CMOS_UPDATE=y 13CONFIG_GENERIC_CMOS_UPDATE=y
13CONFIG_GENERIC_CLOCKEVENTS=y 14CONFIG_GENERIC_CLOCKEVENTS=y
@@ -22,6 +23,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
22CONFIG_MMU=y 23CONFIG_MMU=y
23CONFIG_ARCH_NO_VIRT_TO_BUS=y 24CONFIG_ARCH_NO_VIRT_TO_BUS=y
24CONFIG_OF=y 25CONFIG_OF=y
26CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26 28
27# 29#
@@ -36,17 +38,27 @@ CONFIG_SWAP=y
36CONFIG_SYSVIPC=y 38CONFIG_SYSVIPC=y
37CONFIG_SYSVIPC_SYSCTL=y 39CONFIG_SYSVIPC_SYSCTL=y
38CONFIG_POSIX_MQUEUE=y 40CONFIG_POSIX_MQUEUE=y
41CONFIG_POSIX_MQUEUE_SYSCTL=y
39# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
40# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
41# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
45
46#
47# RCU Subsystem
48#
49CONFIG_CLASSIC_RCU=y
50# CONFIG_TREE_RCU is not set
51# CONFIG_PREEMPT_RCU is not set
52# CONFIG_TREE_RCU_TRACE is not set
53# CONFIG_PREEMPT_RCU_TRACE is not set
42# CONFIG_IKCONFIG is not set 54# CONFIG_IKCONFIG is not set
43CONFIG_LOG_BUF_SHIFT=18 55CONFIG_LOG_BUF_SHIFT=18
44# CONFIG_CGROUPS is not set
45CONFIG_GROUP_SCHED=y 56CONFIG_GROUP_SCHED=y
46CONFIG_FAIR_GROUP_SCHED=y 57CONFIG_FAIR_GROUP_SCHED=y
47CONFIG_RT_GROUP_SCHED=y 58CONFIG_RT_GROUP_SCHED=y
48CONFIG_USER_SCHED=y 59CONFIG_USER_SCHED=y
49# CONFIG_CGROUP_SCHED is not set 60# CONFIG_CGROUP_SCHED is not set
61# CONFIG_CGROUPS is not set
50CONFIG_SYSFS_DEPRECATED=y 62CONFIG_SYSFS_DEPRECATED=y
51CONFIG_SYSFS_DEPRECATED_V2=y 63CONFIG_SYSFS_DEPRECATED_V2=y
52CONFIG_RELAY=y 64CONFIG_RELAY=y
@@ -55,24 +67,28 @@ CONFIG_NAMESPACES=y
55# CONFIG_IPC_NS is not set 67# CONFIG_IPC_NS is not set
56# CONFIG_USER_NS is not set 68# CONFIG_USER_NS is not set
57# CONFIG_PID_NS is not set 69# CONFIG_PID_NS is not set
70# CONFIG_NET_NS is not set
58CONFIG_BLK_DEV_INITRD=y 71CONFIG_BLK_DEV_INITRD=y
59CONFIG_INITRAMFS_SOURCE="" 72CONFIG_INITRAMFS_SOURCE=""
73CONFIG_RD_GZIP=y
74CONFIG_RD_BZIP2=y
75CONFIG_RD_LZMA=y
60CONFIG_CC_OPTIMIZE_FOR_SIZE=y 76CONFIG_CC_OPTIMIZE_FOR_SIZE=y
61CONFIG_SYSCTL=y 77CONFIG_SYSCTL=y
78CONFIG_ANON_INODES=y
62# CONFIG_EMBEDDED is not set 79# CONFIG_EMBEDDED is not set
63CONFIG_UID16=y 80CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y 81CONFIG_SYSCTL_SYSCALL=y
65CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
66# CONFIG_KALLSYMS_ALL is not set 83# CONFIG_KALLSYMS_ALL is not set
67# CONFIG_KALLSYMS_EXTRA_PASS is not set 84# CONFIG_KALLSYMS_EXTRA_PASS is not set
85# CONFIG_STRIP_ASM_SYMS is not set
68CONFIG_HOTPLUG=y 86CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 87CONFIG_PRINTK=y
70CONFIG_BUG=y 88CONFIG_BUG=y
71CONFIG_ELF_CORE=y 89CONFIG_ELF_CORE=y
72# CONFIG_COMPAT_BRK is not set
73CONFIG_BASE_FULL=y 90CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 91CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y
76CONFIG_EPOLL=y 92CONFIG_EPOLL=y
77CONFIG_SIGNALFD=y 93CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y 94CONFIG_TIMERFD=y
@@ -82,6 +98,7 @@ CONFIG_AIO=y
82CONFIG_VM_EVENT_COUNTERS=y 98CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_PCI_QUIRKS=y 99CONFIG_PCI_QUIRKS=y
84CONFIG_SLUB_DEBUG=y 100CONFIG_SLUB_DEBUG=y
101# CONFIG_COMPAT_BRK is not set
85# CONFIG_SLAB is not set 102# CONFIG_SLAB is not set
86CONFIG_SLUB=y 103CONFIG_SLUB=y
87# CONFIG_SLOB is not set 104# CONFIG_SLOB is not set
@@ -91,15 +108,16 @@ CONFIG_TRACEPOINTS=y
91CONFIG_OPROFILE=m 108CONFIG_OPROFILE=m
92CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
93CONFIG_KPROBES=y 110CONFIG_KPROBES=y
111CONFIG_HAVE_SYSCALL_WRAPPERS=y
94CONFIG_KRETPROBES=y 112CONFIG_KRETPROBES=y
95CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
96CONFIG_HAVE_KRETPROBES=y 114CONFIG_HAVE_KRETPROBES=y
97CONFIG_HAVE_ARCH_TRACEHOOK=y 115CONFIG_HAVE_ARCH_TRACEHOOK=y
98CONFIG_USE_GENERIC_SMP_HELPERS=y 116CONFIG_USE_GENERIC_SMP_HELPERS=y
117# CONFIG_SLOW_WORK is not set
99# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 118# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
100CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
102# CONFIG_TINY_SHMEM is not set
103CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
104CONFIG_MODULES=y 122CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set 123# CONFIG_MODULE_FORCE_LOAD is not set
@@ -107,10 +125,8 @@ CONFIG_MODULE_UNLOAD=y
107CONFIG_MODULE_FORCE_UNLOAD=y 125CONFIG_MODULE_FORCE_UNLOAD=y
108CONFIG_MODVERSIONS=y 126CONFIG_MODVERSIONS=y
109CONFIG_MODULE_SRCVERSION_ALL=y 127CONFIG_MODULE_SRCVERSION_ALL=y
110CONFIG_KMOD=y
111CONFIG_STOP_MACHINE=y 128CONFIG_STOP_MACHINE=y
112CONFIG_BLOCK=y 129CONFIG_BLOCK=y
113CONFIG_BLK_DEV_IO_TRACE=y
114CONFIG_BLK_DEV_BSG=y 130CONFIG_BLK_DEV_BSG=y
115# CONFIG_BLK_DEV_INTEGRITY is not set 131# CONFIG_BLK_DEV_INTEGRITY is not set
116CONFIG_BLOCK_COMPAT=y 132CONFIG_BLOCK_COMPAT=y
@@ -127,11 +143,6 @@ CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_CFQ is not set 143# CONFIG_DEFAULT_CFQ is not set
128# CONFIG_DEFAULT_NOOP is not set 144# CONFIG_DEFAULT_NOOP is not set
129CONFIG_DEFAULT_IOSCHED="anticipatory" 145CONFIG_DEFAULT_IOSCHED="anticipatory"
130CONFIG_CLASSIC_RCU=y
131# CONFIG_TREE_RCU is not set
132# CONFIG_PREEMPT_RCU is not set
133# CONFIG_TREE_RCU_TRACE is not set
134# CONFIG_PREEMPT_RCU_TRACE is not set
135# CONFIG_FREEZER is not set 146# CONFIG_FREEZER is not set
136 147
137# 148#
@@ -185,11 +196,12 @@ CONFIG_SPARSEMEM_VMEMMAP=y
185CONFIG_PAGEFLAGS_EXTENDED=y 196CONFIG_PAGEFLAGS_EXTENDED=y
186CONFIG_SPLIT_PTLOCK_CPUS=4 197CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_MIGRATION=y 198CONFIG_MIGRATION=y
188CONFIG_RESOURCES_64BIT=y
189CONFIG_PHYS_ADDR_T_64BIT=y 199CONFIG_PHYS_ADDR_T_64BIT=y
190CONFIG_ZONE_DMA_FLAG=0 200CONFIG_ZONE_DMA_FLAG=0
191CONFIG_NR_QUICK=1 201CONFIG_NR_QUICK=1
192CONFIG_UNEVICTABLE_LRU=y 202CONFIG_UNEVICTABLE_LRU=y
203CONFIG_HAVE_MLOCK=y
204CONFIG_HAVE_MLOCKED_PAGE_BIT=y
193CONFIG_SCHED_SMT=y 205CONFIG_SCHED_SMT=y
194CONFIG_SCHED_MC=y 206CONFIG_SCHED_MC=y
195# CONFIG_PREEMPT_NONE is not set 207# CONFIG_PREEMPT_NONE is not set
@@ -210,6 +222,8 @@ CONFIG_ARCH_SUPPORTS_MSI=y
210CONFIG_PCI_MSI=y 222CONFIG_PCI_MSI=y
211# CONFIG_PCI_LEGACY is not set 223# CONFIG_PCI_LEGACY is not set
212# CONFIG_PCI_DEBUG is not set 224# CONFIG_PCI_DEBUG is not set
225# CONFIG_PCI_STUB is not set
226# CONFIG_PCI_IOV is not set
213# CONFIG_PCCARD is not set 227# CONFIG_PCCARD is not set
214CONFIG_SUN_OPENPROMFS=m 228CONFIG_SUN_OPENPROMFS=m
215CONFIG_SPARC64_PCI=y 229CONFIG_SPARC64_PCI=y
@@ -229,8 +243,6 @@ CONFIG_NET=y
229# 243#
230# Networking options 244# Networking options
231# 245#
232# CONFIG_NET_NS is not set
233CONFIG_COMPAT_NET_DEV_OPS=y
234CONFIG_PACKET=y 246CONFIG_PACKET=y
235CONFIG_PACKET_MMAP=y 247CONFIG_PACKET_MMAP=y
236CONFIG_UNIX=y 248CONFIG_UNIX=y
@@ -292,25 +304,7 @@ CONFIG_IPV6_TUNNEL=m
292# CONFIG_IPV6_MROUTE is not set 304# CONFIG_IPV6_MROUTE is not set
293# CONFIG_NETWORK_SECMARK is not set 305# CONFIG_NETWORK_SECMARK is not set
294# CONFIG_NETFILTER is not set 306# CONFIG_NETFILTER is not set
295CONFIG_IP_DCCP=m 307# CONFIG_IP_DCCP is not set
296CONFIG_INET_DCCP_DIAG=m
297CONFIG_IP_DCCP_ACKVEC=y
298
299#
300# DCCP CCIDs Configuration (EXPERIMENTAL)
301#
302CONFIG_IP_DCCP_CCID2=m
303# CONFIG_IP_DCCP_CCID2_DEBUG is not set
304CONFIG_IP_DCCP_CCID3=m
305# CONFIG_IP_DCCP_CCID3_DEBUG is not set
306CONFIG_IP_DCCP_CCID3_RTO=100
307CONFIG_IP_DCCP_TFRC_LIB=m
308
309#
310# DCCP Kernel Hacking
311#
312# CONFIG_IP_DCCP_DEBUG is not set
313# CONFIG_NET_DCCPPROBE is not set
314# CONFIG_IP_SCTP is not set 308# CONFIG_IP_SCTP is not set
315# CONFIG_TIPC is not set 309# CONFIG_TIPC is not set
316# CONFIG_ATM is not set 310# CONFIG_ATM is not set
@@ -326,6 +320,7 @@ CONFIG_VLAN_8021Q=m
326# CONFIG_LAPB is not set 320# CONFIG_LAPB is not set
327# CONFIG_ECONET is not set 321# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set 322# CONFIG_WAN_ROUTER is not set
323# CONFIG_PHONET is not set
329# CONFIG_NET_SCHED is not set 324# CONFIG_NET_SCHED is not set
330# CONFIG_DCB is not set 325# CONFIG_DCB is not set
331 326
@@ -334,18 +329,19 @@ CONFIG_VLAN_8021Q=m
334# 329#
335CONFIG_NET_PKTGEN=m 330CONFIG_NET_PKTGEN=m
336CONFIG_NET_TCPPROBE=m 331CONFIG_NET_TCPPROBE=m
332# CONFIG_NET_DROP_MONITOR is not set
337# CONFIG_HAMRADIO is not set 333# CONFIG_HAMRADIO is not set
338# CONFIG_CAN is not set 334# CONFIG_CAN is not set
339# CONFIG_IRDA is not set 335# CONFIG_IRDA is not set
340# CONFIG_BT is not set 336# CONFIG_BT is not set
341# CONFIG_AF_RXRPC is not set 337# CONFIG_AF_RXRPC is not set
342# CONFIG_PHONET is not set
343CONFIG_WIRELESS=y 338CONFIG_WIRELESS=y
344# CONFIG_CFG80211 is not set 339# CONFIG_CFG80211 is not set
345CONFIG_WIRELESS_OLD_REGULATORY=y 340CONFIG_WIRELESS_OLD_REGULATORY=y
346# CONFIG_WIRELESS_EXT is not set 341# CONFIG_WIRELESS_EXT is not set
347# CONFIG_LIB80211 is not set 342# CONFIG_LIB80211 is not set
348# CONFIG_MAC80211 is not set 343# CONFIG_MAC80211 is not set
344# CONFIG_WIMAX is not set
349# CONFIG_RFKILL is not set 345# CONFIG_RFKILL is not set
350# CONFIG_NET_9P is not set 346# CONFIG_NET_9P is not set
351 347
@@ -389,19 +385,27 @@ CONFIG_SUNVDC=m
389# CONFIG_BLK_DEV_HD is not set 385# CONFIG_BLK_DEV_HD is not set
390CONFIG_MISC_DEVICES=y 386CONFIG_MISC_DEVICES=y
391# CONFIG_PHANTOM is not set 387# CONFIG_PHANTOM is not set
392# CONFIG_EEPROM_93CX6 is not set
393# CONFIG_SGI_IOC4 is not set 388# CONFIG_SGI_IOC4 is not set
394# CONFIG_TIFM_CORE is not set 389# CONFIG_TIFM_CORE is not set
395# CONFIG_ICS932S401 is not set 390# CONFIG_ICS932S401 is not set
396# CONFIG_ENCLOSURE_SERVICES is not set 391# CONFIG_ENCLOSURE_SERVICES is not set
397# CONFIG_HP_ILO is not set 392# CONFIG_HP_ILO is not set
393# CONFIG_ISL29003 is not set
398# CONFIG_C2PORT is not set 394# CONFIG_C2PORT is not set
395
396#
397# EEPROM support
398#
399# CONFIG_EEPROM_AT24 is not set
400# CONFIG_EEPROM_LEGACY is not set
401# CONFIG_EEPROM_93CX6 is not set
399CONFIG_HAVE_IDE=y 402CONFIG_HAVE_IDE=y
400CONFIG_IDE=y 403CONFIG_IDE=y
401 404
402# 405#
403# Please see Documentation/ide/ide.txt for help/info on IDE drives 406# Please see Documentation/ide/ide.txt for help/info on IDE drives
404# 407#
408CONFIG_IDE_XFER_MODE=y
405CONFIG_IDE_TIMINGS=y 409CONFIG_IDE_TIMINGS=y
406CONFIG_IDE_ATAPI=y 410CONFIG_IDE_ATAPI=y
407# CONFIG_BLK_DEV_IDE_SATA is not set 411# CONFIG_BLK_DEV_IDE_SATA is not set
@@ -439,6 +443,7 @@ CONFIG_BLK_DEV_ALI15X3=y
439# CONFIG_BLK_DEV_JMICRON is not set 443# CONFIG_BLK_DEV_JMICRON is not set
440# CONFIG_BLK_DEV_SC1200 is not set 444# CONFIG_BLK_DEV_SC1200 is not set
441# CONFIG_BLK_DEV_PIIX is not set 445# CONFIG_BLK_DEV_PIIX is not set
446# CONFIG_BLK_DEV_IT8172 is not set
442# CONFIG_BLK_DEV_IT8213 is not set 447# CONFIG_BLK_DEV_IT8213 is not set
443# CONFIG_BLK_DEV_IT821X is not set 448# CONFIG_BLK_DEV_IT821X is not set
444# CONFIG_BLK_DEV_NS87415 is not set 449# CONFIG_BLK_DEV_NS87415 is not set
@@ -506,8 +511,10 @@ CONFIG_SCSI_LOWLEVEL=y
506# CONFIG_MEGARAID_NEWGEN is not set 511# CONFIG_MEGARAID_NEWGEN is not set
507# CONFIG_MEGARAID_LEGACY is not set 512# CONFIG_MEGARAID_LEGACY is not set
508# CONFIG_MEGARAID_SAS is not set 513# CONFIG_MEGARAID_SAS is not set
514# CONFIG_SCSI_MPT2SAS is not set
509# CONFIG_SCSI_HPTIOP is not set 515# CONFIG_SCSI_HPTIOP is not set
510# CONFIG_LIBFC is not set 516# CONFIG_LIBFC is not set
517# CONFIG_LIBFCOE is not set
511# CONFIG_FCOE is not set 518# CONFIG_FCOE is not set
512# CONFIG_SCSI_DMX3191D is not set 519# CONFIG_SCSI_DMX3191D is not set
513# CONFIG_SCSI_FUTURE_DOMAIN is not set 520# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -528,6 +535,7 @@ CONFIG_SCSI_LOWLEVEL=y
528# CONFIG_SCSI_SUNESP is not set 535# CONFIG_SCSI_SUNESP is not set
529# CONFIG_SCSI_SRP is not set 536# CONFIG_SCSI_SRP is not set
530# CONFIG_SCSI_DH is not set 537# CONFIG_SCSI_DH is not set
538# CONFIG_SCSI_OSD_INITIATOR is not set
531# CONFIG_ATA is not set 539# CONFIG_ATA is not set
532CONFIG_MD=y 540CONFIG_MD=y
533CONFIG_BLK_DEV_MD=m 541CONFIG_BLK_DEV_MD=m
@@ -536,7 +544,7 @@ CONFIG_MD_RAID0=m
536CONFIG_MD_RAID1=m 544CONFIG_MD_RAID1=m
537CONFIG_MD_RAID10=m 545CONFIG_MD_RAID10=m
538CONFIG_MD_RAID456=m 546CONFIG_MD_RAID456=m
539# CONFIG_MD_RAID5_RESHAPE is not set 547CONFIG_MD_RAID6_PQ=m
540CONFIG_MD_MULTIPATH=m 548CONFIG_MD_MULTIPATH=m
541# CONFIG_MD_FAULTY is not set 549# CONFIG_MD_FAULTY is not set
542CONFIG_BLK_DEV_DM=m 550CONFIG_BLK_DEV_DM=m
@@ -561,6 +569,7 @@ CONFIG_DM_ZERO=m
561# CONFIG_IEEE1394 is not set 569# CONFIG_IEEE1394 is not set
562# CONFIG_I2O is not set 570# CONFIG_I2O is not set
563CONFIG_NETDEVICES=y 571CONFIG_NETDEVICES=y
572CONFIG_COMPAT_NET_DEV_OPS=y
564# CONFIG_DUMMY is not set 573# CONFIG_DUMMY is not set
565# CONFIG_BONDING is not set 574# CONFIG_BONDING is not set
566# CONFIG_MACVLAN is not set 575# CONFIG_MACVLAN is not set
@@ -589,14 +598,16 @@ CONFIG_PHYLIB=m
589# CONFIG_MDIO_BITBANG is not set 598# CONFIG_MDIO_BITBANG is not set
590CONFIG_NET_ETHERNET=y 599CONFIG_NET_ETHERNET=y
591CONFIG_MII=m 600CONFIG_MII=m
592# CONFIG_SUNLANCE is not set 601CONFIG_SUNLANCE=m
593# CONFIG_HAPPYMEAL is not set 602CONFIG_HAPPYMEAL=m
594# CONFIG_SUNBMAC is not set 603# CONFIG_SUNBMAC is not set
595# CONFIG_SUNQE is not set 604# CONFIG_SUNQE is not set
596# CONFIG_SUNGEM is not set 605CONFIG_SUNGEM=m
597CONFIG_CASSINI=m 606# CONFIG_CASSINI is not set
598CONFIG_SUNVNET=m 607CONFIG_SUNVNET=m
599# CONFIG_NET_VENDOR_3COM is not set 608# CONFIG_NET_VENDOR_3COM is not set
609# CONFIG_ETHOC is not set
610# CONFIG_DNET is not set
600# CONFIG_NET_TULIP is not set 611# CONFIG_NET_TULIP is not set
601# CONFIG_HP100 is not set 612# CONFIG_HP100 is not set
602# CONFIG_IBM_NEW_EMAC_ZMII is not set 613# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -631,9 +642,10 @@ CONFIG_NETDEV_1000=y
631# CONFIG_ACENIC is not set 642# CONFIG_ACENIC is not set
632# CONFIG_DL2K is not set 643# CONFIG_DL2K is not set
633CONFIG_E1000=m 644CONFIG_E1000=m
634# CONFIG_E1000E is not set 645CONFIG_E1000E=m
635# CONFIG_IP1000 is not set 646# CONFIG_IP1000 is not set
636# CONFIG_IGB is not set 647# CONFIG_IGB is not set
648# CONFIG_IGBVF is not set
637# CONFIG_MYRI_SBUS is not set 649# CONFIG_MYRI_SBUS is not set
638# CONFIG_NS83820 is not set 650# CONFIG_NS83820 is not set
639# CONFIG_HAMACHI is not set 651# CONFIG_HAMACHI is not set
@@ -648,6 +660,7 @@ CONFIG_BNX2=m
648# CONFIG_QLA3XXX is not set 660# CONFIG_QLA3XXX is not set
649# CONFIG_ATL1 is not set 661# CONFIG_ATL1 is not set
650# CONFIG_ATL1E is not set 662# CONFIG_ATL1E is not set
663# CONFIG_ATL1C is not set
651# CONFIG_JME is not set 664# CONFIG_JME is not set
652CONFIG_NETDEV_10000=y 665CONFIG_NETDEV_10000=y
653# CONFIG_CHELSIO_T1 is not set 666# CONFIG_CHELSIO_T1 is not set
@@ -657,6 +670,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
657# CONFIG_IXGBE is not set 670# CONFIG_IXGBE is not set
658# CONFIG_IXGB is not set 671# CONFIG_IXGB is not set
659# CONFIG_S2IO is not set 672# CONFIG_S2IO is not set
673# CONFIG_VXGE is not set
660# CONFIG_MYRI10GE is not set 674# CONFIG_MYRI10GE is not set
661# CONFIG_NETXEN_NIC is not set 675# CONFIG_NETXEN_NIC is not set
662CONFIG_NIU=m 676CONFIG_NIU=m
@@ -666,6 +680,7 @@ CONFIG_NIU=m
666# CONFIG_BNX2X is not set 680# CONFIG_BNX2X is not set
667# CONFIG_QLGE is not set 681# CONFIG_QLGE is not set
668# CONFIG_SFC is not set 682# CONFIG_SFC is not set
683# CONFIG_BE2NET is not set
669# CONFIG_TR is not set 684# CONFIG_TR is not set
670 685
671# 686#
@@ -673,7 +688,10 @@ CONFIG_NIU=m
673# 688#
674# CONFIG_WLAN_PRE80211 is not set 689# CONFIG_WLAN_PRE80211 is not set
675# CONFIG_WLAN_80211 is not set 690# CONFIG_WLAN_80211 is not set
676# CONFIG_IWLWIFI_LEDS is not set 691
692#
693# Enable WiMAX (Networking options) to see the WiMAX drivers
694#
677 695
678# 696#
679# USB Network Adapters 697# USB Network Adapters
@@ -738,7 +756,6 @@ CONFIG_MOUSE_PS2=y
738CONFIG_MOUSE_PS2_ALPS=y 756CONFIG_MOUSE_PS2_ALPS=y
739CONFIG_MOUSE_PS2_LOGIPS2PP=y 757CONFIG_MOUSE_PS2_LOGIPS2PP=y
740CONFIG_MOUSE_PS2_SYNAPTICS=y 758CONFIG_MOUSE_PS2_SYNAPTICS=y
741CONFIG_MOUSE_PS2_LIFEBOOK=y
742CONFIG_MOUSE_PS2_TRACKPOINT=y 759CONFIG_MOUSE_PS2_TRACKPOINT=y
743# CONFIG_MOUSE_PS2_ELANTECH is not set 760# CONFIG_MOUSE_PS2_ELANTECH is not set
744# CONFIG_MOUSE_PS2_TOUCHKIT is not set 761# CONFIG_MOUSE_PS2_TOUCHKIT is not set
@@ -805,6 +822,7 @@ CONFIG_UNIX98_PTYS=y
805# CONFIG_LEGACY_PTYS is not set 822# CONFIG_LEGACY_PTYS is not set
806# CONFIG_IPMI_HANDLER is not set 823# CONFIG_IPMI_HANDLER is not set
807CONFIG_HW_RANDOM=m 824CONFIG_HW_RANDOM=m
825# CONFIG_HW_RANDOM_TIMERIOMEM is not set
808CONFIG_HW_RANDOM_N2RNG=m 826CONFIG_HW_RANDOM_N2RNG=m
809# CONFIG_R3964 is not set 827# CONFIG_R3964 is not set
810# CONFIG_APPLICOM is not set 828# CONFIG_APPLICOM is not set
@@ -867,12 +885,9 @@ CONFIG_I2C_ALGOBIT=y
867# Miscellaneous I2C Chip support 885# Miscellaneous I2C Chip support
868# 886#
869# CONFIG_DS1682 is not set 887# CONFIG_DS1682 is not set
870# CONFIG_EEPROM_AT24 is not set
871# CONFIG_EEPROM_LEGACY is not set
872# CONFIG_SENSORS_PCF8574 is not set 888# CONFIG_SENSORS_PCF8574 is not set
873# CONFIG_PCF8575 is not set 889# CONFIG_PCF8575 is not set
874# CONFIG_SENSORS_PCA9539 is not set 890# CONFIG_SENSORS_PCA9539 is not set
875# CONFIG_SENSORS_PCF8591 is not set
876# CONFIG_SENSORS_MAX6875 is not set 891# CONFIG_SENSORS_MAX6875 is not set
877# CONFIG_SENSORS_TSL2550 is not set 892# CONFIG_SENSORS_TSL2550 is not set
878# CONFIG_I2C_DEBUG_CORE is not set 893# CONFIG_I2C_DEBUG_CORE is not set
@@ -897,12 +912,14 @@ CONFIG_HWMON=y
897# CONFIG_SENSORS_ADT7462 is not set 912# CONFIG_SENSORS_ADT7462 is not set
898# CONFIG_SENSORS_ADT7470 is not set 913# CONFIG_SENSORS_ADT7470 is not set
899# CONFIG_SENSORS_ADT7473 is not set 914# CONFIG_SENSORS_ADT7473 is not set
915# CONFIG_SENSORS_ADT7475 is not set
900# CONFIG_SENSORS_ATXP1 is not set 916# CONFIG_SENSORS_ATXP1 is not set
901# CONFIG_SENSORS_DS1621 is not set 917# CONFIG_SENSORS_DS1621 is not set
902# CONFIG_SENSORS_I5K_AMB is not set 918# CONFIG_SENSORS_I5K_AMB is not set
903# CONFIG_SENSORS_F71805F is not set 919# CONFIG_SENSORS_F71805F is not set
904# CONFIG_SENSORS_F71882FG is not set 920# CONFIG_SENSORS_F71882FG is not set
905# CONFIG_SENSORS_F75375S is not set 921# CONFIG_SENSORS_F75375S is not set
922# CONFIG_SENSORS_G760A is not set
906# CONFIG_SENSORS_GL518SM is not set 923# CONFIG_SENSORS_GL518SM is not set
907# CONFIG_SENSORS_GL520SM is not set 924# CONFIG_SENSORS_GL520SM is not set
908# CONFIG_SENSORS_IT87 is not set 925# CONFIG_SENSORS_IT87 is not set
@@ -917,10 +934,14 @@ CONFIG_HWMON=y
917# CONFIG_SENSORS_LM90 is not set 934# CONFIG_SENSORS_LM90 is not set
918# CONFIG_SENSORS_LM92 is not set 935# CONFIG_SENSORS_LM92 is not set
919# CONFIG_SENSORS_LM93 is not set 936# CONFIG_SENSORS_LM93 is not set
937# CONFIG_SENSORS_LTC4215 is not set
938# CONFIG_SENSORS_LTC4245 is not set
939# CONFIG_SENSORS_LM95241 is not set
920# CONFIG_SENSORS_MAX1619 is not set 940# CONFIG_SENSORS_MAX1619 is not set
921# CONFIG_SENSORS_MAX6650 is not set 941# CONFIG_SENSORS_MAX6650 is not set
922# CONFIG_SENSORS_PC87360 is not set 942# CONFIG_SENSORS_PC87360 is not set
923# CONFIG_SENSORS_PC87427 is not set 943# CONFIG_SENSORS_PC87427 is not set
944# CONFIG_SENSORS_PCF8591 is not set
924# CONFIG_SENSORS_SIS5595 is not set 945# CONFIG_SENSORS_SIS5595 is not set
925# CONFIG_SENSORS_DME1737 is not set 946# CONFIG_SENSORS_DME1737 is not set
926# CONFIG_SENSORS_SMSC47M1 is not set 947# CONFIG_SENSORS_SMSC47M1 is not set
@@ -957,10 +978,12 @@ CONFIG_SSB_POSSIBLE=y
957# CONFIG_MFD_CORE is not set 978# CONFIG_MFD_CORE is not set
958# CONFIG_MFD_SM501 is not set 979# CONFIG_MFD_SM501 is not set
959# CONFIG_HTC_PASIC3 is not set 980# CONFIG_HTC_PASIC3 is not set
981# CONFIG_TWL4030_CORE is not set
960# CONFIG_MFD_TMIO is not set 982# CONFIG_MFD_TMIO is not set
961# CONFIG_PMIC_DA903X is not set 983# CONFIG_PMIC_DA903X is not set
962# CONFIG_MFD_WM8400 is not set 984# CONFIG_MFD_WM8400 is not set
963# CONFIG_MFD_WM8350_I2C is not set 985# CONFIG_MFD_WM8350_I2C is not set
986# CONFIG_MFD_PCF50633 is not set
964# CONFIG_REGULATOR is not set 987# CONFIG_REGULATOR is not set
965 988
966# 989#
@@ -1053,6 +1076,7 @@ CONFIG_FB_ATY_GX=y
1053# CONFIG_FB_VIRTUAL is not set 1076# CONFIG_FB_VIRTUAL is not set
1054# CONFIG_FB_METRONOME is not set 1077# CONFIG_FB_METRONOME is not set
1055# CONFIG_FB_MB862XX is not set 1078# CONFIG_FB_MB862XX is not set
1079# CONFIG_FB_BROADSHEET is not set
1056# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1080# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1057 1081
1058# 1082#
@@ -1141,6 +1165,8 @@ CONFIG_SND_ALI5451=m
1141# CONFIG_SND_INDIGO is not set 1165# CONFIG_SND_INDIGO is not set
1142# CONFIG_SND_INDIGOIO is not set 1166# CONFIG_SND_INDIGOIO is not set
1143# CONFIG_SND_INDIGODJ is not set 1167# CONFIG_SND_INDIGODJ is not set
1168# CONFIG_SND_INDIGOIOX is not set
1169# CONFIG_SND_INDIGODJX is not set
1144# CONFIG_SND_EMU10K1 is not set 1170# CONFIG_SND_EMU10K1 is not set
1145# CONFIG_SND_EMU10K1X is not set 1171# CONFIG_SND_EMU10K1X is not set
1146# CONFIG_SND_ENS1370 is not set 1172# CONFIG_SND_ENS1370 is not set
@@ -1197,28 +1223,31 @@ CONFIG_USB_HIDDEV=y
1197# 1223#
1198# Special HID drivers 1224# Special HID drivers
1199# 1225#
1200CONFIG_HID_COMPAT=y
1201CONFIG_HID_A4TECH=y 1226CONFIG_HID_A4TECH=y
1202CONFIG_HID_APPLE=y 1227CONFIG_HID_APPLE=y
1203CONFIG_HID_BELKIN=y 1228CONFIG_HID_BELKIN=y
1204CONFIG_HID_BRIGHT=y
1205CONFIG_HID_CHERRY=y 1229CONFIG_HID_CHERRY=y
1206CONFIG_HID_CHICONY=y 1230CONFIG_HID_CHICONY=y
1207CONFIG_HID_CYPRESS=y 1231CONFIG_HID_CYPRESS=y
1208CONFIG_HID_DELL=y 1232# CONFIG_DRAGONRISE_FF is not set
1209CONFIG_HID_EZKEY=y 1233CONFIG_HID_EZKEY=y
1234CONFIG_HID_KYE=y
1210CONFIG_HID_GYRATION=y 1235CONFIG_HID_GYRATION=y
1236CONFIG_HID_KENSINGTON=y
1211CONFIG_HID_LOGITECH=y 1237CONFIG_HID_LOGITECH=y
1212# CONFIG_LOGITECH_FF is not set 1238# CONFIG_LOGITECH_FF is not set
1213# CONFIG_LOGIRUMBLEPAD2_FF is not set 1239# CONFIG_LOGIRUMBLEPAD2_FF is not set
1214CONFIG_HID_MICROSOFT=y 1240CONFIG_HID_MICROSOFT=y
1215CONFIG_HID_MONTEREY=y 1241CONFIG_HID_MONTEREY=y
1242CONFIG_HID_NTRIG=y
1216CONFIG_HID_PANTHERLORD=y 1243CONFIG_HID_PANTHERLORD=y
1217# CONFIG_PANTHERLORD_FF is not set 1244# CONFIG_PANTHERLORD_FF is not set
1218CONFIG_HID_PETALYNX=y 1245CONFIG_HID_PETALYNX=y
1219CONFIG_HID_SAMSUNG=y 1246CONFIG_HID_SAMSUNG=y
1220CONFIG_HID_SONY=y 1247CONFIG_HID_SONY=y
1221CONFIG_HID_SUNPLUS=y 1248CONFIG_HID_SUNPLUS=y
1249# CONFIG_GREENASIA_FF is not set
1250CONFIG_HID_TOPSEED=y
1222# CONFIG_THRUSTMASTER_FF is not set 1251# CONFIG_THRUSTMASTER_FF is not set
1223# CONFIG_ZEROPLUS_FF is not set 1252# CONFIG_ZEROPLUS_FF is not set
1224CONFIG_USB_SUPPORT=y 1253CONFIG_USB_SUPPORT=y
@@ -1247,6 +1276,7 @@ CONFIG_USB_DEVICEFS=y
1247CONFIG_USB_EHCI_HCD=m 1276CONFIG_USB_EHCI_HCD=m
1248# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1277# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1249# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1278# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1279# CONFIG_USB_OXU210HP_HCD is not set
1250# CONFIG_USB_ISP116X_HCD is not set 1280# CONFIG_USB_ISP116X_HCD is not set
1251# CONFIG_USB_ISP1760_HCD is not set 1281# CONFIG_USB_ISP1760_HCD is not set
1252CONFIG_USB_OHCI_HCD=y 1282CONFIG_USB_OHCI_HCD=y
@@ -1268,18 +1298,17 @@ CONFIG_USB_UHCI_HCD=m
1268# CONFIG_USB_TMC is not set 1298# CONFIG_USB_TMC is not set
1269 1299
1270# 1300#
1271# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1301# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1272# 1302#
1273 1303
1274# 1304#
1275# see USB_STORAGE Help for more information 1305# also be needed; see USB_STORAGE Help for more info
1276# 1306#
1277CONFIG_USB_STORAGE=m 1307CONFIG_USB_STORAGE=m
1278# CONFIG_USB_STORAGE_DEBUG is not set 1308# CONFIG_USB_STORAGE_DEBUG is not set
1279# CONFIG_USB_STORAGE_DATAFAB is not set 1309# CONFIG_USB_STORAGE_DATAFAB is not set
1280# CONFIG_USB_STORAGE_FREECOM is not set 1310# CONFIG_USB_STORAGE_FREECOM is not set
1281# CONFIG_USB_STORAGE_ISD200 is not set 1311# CONFIG_USB_STORAGE_ISD200 is not set
1282# CONFIG_USB_STORAGE_DPCM is not set
1283# CONFIG_USB_STORAGE_USBAT is not set 1312# CONFIG_USB_STORAGE_USBAT is not set
1284# CONFIG_USB_STORAGE_SDDR09 is not set 1313# CONFIG_USB_STORAGE_SDDR09 is not set
1285# CONFIG_USB_STORAGE_SDDR55 is not set 1314# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1315,7 +1344,6 @@ CONFIG_USB_STORAGE=m
1315# CONFIG_USB_LED is not set 1344# CONFIG_USB_LED is not set
1316# CONFIG_USB_CYPRESS_CY7C63 is not set 1345# CONFIG_USB_CYPRESS_CY7C63 is not set
1317# CONFIG_USB_CYTHERM is not set 1346# CONFIG_USB_CYTHERM is not set
1318# CONFIG_USB_PHIDGET is not set
1319# CONFIG_USB_IDMOUSE is not set 1347# CONFIG_USB_IDMOUSE is not set
1320# CONFIG_USB_FTDI_ELAN is not set 1348# CONFIG_USB_FTDI_ELAN is not set
1321# CONFIG_USB_APPLEDISPLAY is not set 1349# CONFIG_USB_APPLEDISPLAY is not set
@@ -1327,6 +1355,11 @@ CONFIG_USB_STORAGE=m
1327# CONFIG_USB_ISIGHTFW is not set 1355# CONFIG_USB_ISIGHTFW is not set
1328# CONFIG_USB_VST is not set 1356# CONFIG_USB_VST is not set
1329# CONFIG_USB_GADGET is not set 1357# CONFIG_USB_GADGET is not set
1358
1359#
1360# OTG and related infrastructure
1361#
1362# CONFIG_NOP_USB_XCEIV is not set
1330# CONFIG_UWB is not set 1363# CONFIG_UWB is not set
1331# CONFIG_MMC is not set 1364# CONFIG_MMC is not set
1332# CONFIG_MEMSTICK is not set 1365# CONFIG_MEMSTICK is not set
@@ -1390,6 +1423,7 @@ CONFIG_RTC_DRV_BQ4802=y
1390CONFIG_RTC_DRV_SUN4V=y 1423CONFIG_RTC_DRV_SUN4V=y
1391CONFIG_RTC_DRV_STARFIRE=y 1424CONFIG_RTC_DRV_STARFIRE=y
1392# CONFIG_DMADEVICES is not set 1425# CONFIG_DMADEVICES is not set
1426# CONFIG_AUXDISPLAY is not set
1393# CONFIG_UIO is not set 1427# CONFIG_UIO is not set
1394# CONFIG_STAGING is not set 1428# CONFIG_STAGING is not set
1395 1429
@@ -1412,6 +1446,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y
1412CONFIG_EXT2_FS_SECURITY=y 1446CONFIG_EXT2_FS_SECURITY=y
1413# CONFIG_EXT2_FS_XIP is not set 1447# CONFIG_EXT2_FS_XIP is not set
1414CONFIG_EXT3_FS=y 1448CONFIG_EXT3_FS=y
1449# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1415CONFIG_EXT3_FS_XATTR=y 1450CONFIG_EXT3_FS_XATTR=y
1416CONFIG_EXT3_FS_POSIX_ACL=y 1451CONFIG_EXT3_FS_POSIX_ACL=y
1417CONFIG_EXT3_FS_SECURITY=y 1452CONFIG_EXT3_FS_SECURITY=y
@@ -1426,6 +1461,7 @@ CONFIG_FILE_LOCKING=y
1426# CONFIG_XFS_FS is not set 1461# CONFIG_XFS_FS is not set
1427# CONFIG_GFS2_FS is not set 1462# CONFIG_GFS2_FS is not set
1428# CONFIG_OCFS2_FS is not set 1463# CONFIG_OCFS2_FS is not set
1464# CONFIG_BTRFS_FS is not set
1429CONFIG_DNOTIFY=y 1465CONFIG_DNOTIFY=y
1430CONFIG_INOTIFY=y 1466CONFIG_INOTIFY=y
1431CONFIG_INOTIFY_USER=y 1467CONFIG_INOTIFY_USER=y
@@ -1435,6 +1471,11 @@ CONFIG_INOTIFY_USER=y
1435# CONFIG_FUSE_FS is not set 1471# CONFIG_FUSE_FS is not set
1436 1472
1437# 1473#
1474# Caches
1475#
1476# CONFIG_FSCACHE is not set
1477
1478#
1438# CD-ROM/DVD Filesystems 1479# CD-ROM/DVD Filesystems
1439# 1480#
1440# CONFIG_ISO9660_FS is not set 1481# CONFIG_ISO9660_FS is not set
@@ -1460,10 +1501,7 @@ CONFIG_TMPFS=y
1460CONFIG_HUGETLBFS=y 1501CONFIG_HUGETLBFS=y
1461CONFIG_HUGETLB_PAGE=y 1502CONFIG_HUGETLB_PAGE=y
1462# CONFIG_CONFIGFS_FS is not set 1503# CONFIG_CONFIGFS_FS is not set
1463 1504CONFIG_MISC_FILESYSTEMS=y
1464#
1465# Miscellaneous filesystems
1466#
1467# CONFIG_ADFS_FS is not set 1505# CONFIG_ADFS_FS is not set
1468# CONFIG_AFFS_FS is not set 1506# CONFIG_AFFS_FS is not set
1469# CONFIG_ECRYPT_FS is not set 1507# CONFIG_ECRYPT_FS is not set
@@ -1473,6 +1511,7 @@ CONFIG_HUGETLB_PAGE=y
1473# CONFIG_BFS_FS is not set 1511# CONFIG_BFS_FS is not set
1474# CONFIG_EFS_FS is not set 1512# CONFIG_EFS_FS is not set
1475# CONFIG_CRAMFS is not set 1513# CONFIG_CRAMFS is not set
1514# CONFIG_SQUASHFS is not set
1476# CONFIG_VXFS_FS is not set 1515# CONFIG_VXFS_FS is not set
1477# CONFIG_MINIX_FS is not set 1516# CONFIG_MINIX_FS is not set
1478# CONFIG_OMFS_FS is not set 1517# CONFIG_OMFS_FS is not set
@@ -1481,6 +1520,7 @@ CONFIG_HUGETLB_PAGE=y
1481# CONFIG_ROMFS_FS is not set 1520# CONFIG_ROMFS_FS is not set
1482# CONFIG_SYSV_FS is not set 1521# CONFIG_SYSV_FS is not set
1483# CONFIG_UFS_FS is not set 1522# CONFIG_UFS_FS is not set
1523# CONFIG_NILFS2_FS is not set
1484CONFIG_NETWORK_FILESYSTEMS=y 1524CONFIG_NETWORK_FILESYSTEMS=y
1485# CONFIG_NFS_FS is not set 1525# CONFIG_NFS_FS is not set
1486# CONFIG_NFSD is not set 1526# CONFIG_NFSD is not set
@@ -1555,6 +1595,9 @@ CONFIG_DEBUG_KERNEL=y
1555CONFIG_DETECT_SOFTLOCKUP=y 1595CONFIG_DETECT_SOFTLOCKUP=y
1556# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1596# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1557CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1597CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1598CONFIG_DETECT_HUNG_TASK=y
1599# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1600CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1558# CONFIG_SCHED_DEBUG is not set 1601# CONFIG_SCHED_DEBUG is not set
1559CONFIG_SCHEDSTATS=y 1602CONFIG_SCHEDSTATS=y
1560# CONFIG_TIMER_STATS is not set 1603# CONFIG_TIMER_STATS is not set
@@ -1590,10 +1633,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1590# CONFIG_FAULT_INJECTION is not set 1633# CONFIG_FAULT_INJECTION is not set
1591# CONFIG_LATENCYTOP is not set 1634# CONFIG_LATENCYTOP is not set
1592CONFIG_SYSCTL_SYSCALL_CHECK=y 1635CONFIG_SYSCTL_SYSCALL_CHECK=y
1636# CONFIG_DEBUG_PAGEALLOC is not set
1593CONFIG_NOP_TRACER=y 1637CONFIG_NOP_TRACER=y
1594CONFIG_HAVE_FUNCTION_TRACER=y 1638CONFIG_HAVE_FUNCTION_TRACER=y
1595CONFIG_RING_BUFFER=y 1639CONFIG_RING_BUFFER=y
1596CONFIG_TRACING=y 1640CONFIG_TRACING=y
1641CONFIG_TRACING_SUPPORT=y
1597 1642
1598# 1643#
1599# Tracers 1644# Tracers
@@ -1602,18 +1647,21 @@ CONFIG_TRACING=y
1602# CONFIG_IRQSOFF_TRACER is not set 1647# CONFIG_IRQSOFF_TRACER is not set
1603# CONFIG_SCHED_TRACER is not set 1648# CONFIG_SCHED_TRACER is not set
1604# CONFIG_CONTEXT_SWITCH_TRACER is not set 1649# CONFIG_CONTEXT_SWITCH_TRACER is not set
1650# CONFIG_EVENT_TRACER is not set
1605# CONFIG_BOOT_TRACER is not set 1651# CONFIG_BOOT_TRACER is not set
1606# CONFIG_TRACE_BRANCH_PROFILING is not set 1652# CONFIG_TRACE_BRANCH_PROFILING is not set
1607# CONFIG_STACK_TRACER is not set 1653# CONFIG_STACK_TRACER is not set
1654# CONFIG_KMEMTRACE is not set
1655# CONFIG_WORKQUEUE_TRACER is not set
1656CONFIG_BLK_DEV_IO_TRACE=y
1608# CONFIG_FTRACE_STARTUP_TEST is not set 1657# CONFIG_FTRACE_STARTUP_TEST is not set
1609# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1658# CONFIG_DYNAMIC_DEBUG is not set
1610# CONFIG_SAMPLES is not set 1659# CONFIG_SAMPLES is not set
1611CONFIG_HAVE_ARCH_KGDB=y 1660CONFIG_HAVE_ARCH_KGDB=y
1612# CONFIG_KGDB is not set 1661# CONFIG_KGDB is not set
1613# CONFIG_DEBUG_STACK_USAGE is not set 1662# CONFIG_DEBUG_STACK_USAGE is not set
1614# CONFIG_DEBUG_DCFLUSH is not set 1663# CONFIG_DEBUG_DCFLUSH is not set
1615# CONFIG_STACK_DEBUG is not set 1664# CONFIG_STACK_DEBUG is not set
1616# CONFIG_DEBUG_PAGEALLOC is not set
1617 1665
1618# 1666#
1619# Security options 1667# Security options
@@ -1642,10 +1690,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
1642CONFIG_CRYPTO_HASH=y 1690CONFIG_CRYPTO_HASH=y
1643CONFIG_CRYPTO_HASH2=y 1691CONFIG_CRYPTO_HASH2=y
1644CONFIG_CRYPTO_RNG2=y 1692CONFIG_CRYPTO_RNG2=y
1693CONFIG_CRYPTO_PCOMP=y
1645CONFIG_CRYPTO_MANAGER=y 1694CONFIG_CRYPTO_MANAGER=y
1646CONFIG_CRYPTO_MANAGER2=y 1695CONFIG_CRYPTO_MANAGER2=y
1647CONFIG_CRYPTO_GF128MUL=m 1696CONFIG_CRYPTO_GF128MUL=m
1648CONFIG_CRYPTO_NULL=m 1697CONFIG_CRYPTO_NULL=m
1698CONFIG_CRYPTO_WORKQUEUE=y
1649# CONFIG_CRYPTO_CRYPTD is not set 1699# CONFIG_CRYPTO_CRYPTD is not set
1650CONFIG_CRYPTO_AUTHENC=y 1700CONFIG_CRYPTO_AUTHENC=y
1651CONFIG_CRYPTO_TEST=m 1701CONFIG_CRYPTO_TEST=m
@@ -1715,6 +1765,7 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1715# Compression 1765# Compression
1716# 1766#
1717CONFIG_CRYPTO_DEFLATE=y 1767CONFIG_CRYPTO_DEFLATE=y
1768# CONFIG_CRYPTO_ZLIB is not set
1718# CONFIG_CRYPTO_LZO is not set 1769# CONFIG_CRYPTO_LZO is not set
1719 1770
1720# 1771#
@@ -1723,11 +1774,13 @@ CONFIG_CRYPTO_DEFLATE=y
1723# CONFIG_CRYPTO_ANSI_CPRNG is not set 1774# CONFIG_CRYPTO_ANSI_CPRNG is not set
1724CONFIG_CRYPTO_HW=y 1775CONFIG_CRYPTO_HW=y
1725# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1776# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1777CONFIG_BINARY_PRINTF=y
1726 1778
1727# 1779#
1728# Library routines 1780# Library routines
1729# 1781#
1730CONFIG_BITREVERSE=y 1782CONFIG_BITREVERSE=y
1783CONFIG_GENERIC_FIND_LAST_BIT=y
1731CONFIG_CRC_CCITT=m 1784CONFIG_CRC_CCITT=m
1732CONFIG_CRC16=m 1785CONFIG_CRC16=m
1733# CONFIG_CRC_T10DIF is not set 1786# CONFIG_CRC_T10DIF is not set
@@ -1737,8 +1790,11 @@ CONFIG_CRC32=y
1737CONFIG_LIBCRC32C=m 1790CONFIG_LIBCRC32C=m
1738CONFIG_ZLIB_INFLATE=y 1791CONFIG_ZLIB_INFLATE=y
1739CONFIG_ZLIB_DEFLATE=y 1792CONFIG_ZLIB_DEFLATE=y
1740CONFIG_PLIST=y 1793CONFIG_DECOMPRESS_GZIP=y
1794CONFIG_DECOMPRESS_BZIP2=y
1795CONFIG_DECOMPRESS_LZMA=y
1741CONFIG_HAS_IOMEM=y 1796CONFIG_HAS_IOMEM=y
1742CONFIG_HAS_IOPORT=y 1797CONFIG_HAS_IOPORT=y
1743CONFIG_HAS_DMA=y 1798CONFIG_HAS_DMA=y
1744CONFIG_HAVE_LMB=y 1799CONFIG_HAVE_LMB=y
1800CONFIG_NLATTR=y
diff --git a/arch/sparc/include/asm/atomic_32.h b/arch/sparc/include/asm/atomic_32.h
index ce465975a6a5..bb91b1248cd1 100644
--- a/arch/sparc/include/asm/atomic_32.h
+++ b/arch/sparc/include/asm/atomic_32.h
@@ -15,6 +15,8 @@
15 15
16#ifdef __KERNEL__ 16#ifdef __KERNEL__
17 17
18#include <asm/system.h>
19
18#define ATOMIC_INIT(i) { (i) } 20#define ATOMIC_INIT(i) { (i) }
19 21
20extern int __atomic_add_return(int, atomic_t *); 22extern int __atomic_add_return(int, atomic_t *);
diff --git a/arch/sparc/include/asm/parport.h b/arch/sparc/include/asm/parport.h
index dff3f0253aa8..ff9ead640c4a 100644
--- a/arch/sparc/include/asm/parport.h
+++ b/arch/sparc/include/asm/parport.h
@@ -117,7 +117,7 @@ static int __devinit ecpp_probe(struct of_device *op, const struct of_device_id
117 if (!strcmp(parent->name, "dma")) { 117 if (!strcmp(parent->name, "dma")) {
118 p = parport_pc_probe_port(base, base + 0x400, 118 p = parport_pc_probe_port(base, base + 0x400,
119 op->irqs[0], PARPORT_DMA_NOFIFO, 119 op->irqs[0], PARPORT_DMA_NOFIFO,
120 op->dev.parent->parent); 120 op->dev.parent->parent, 0);
121 if (!p) 121 if (!p)
122 return -ENOMEM; 122 return -ENOMEM;
123 dev_set_drvdata(&op->dev, p); 123 dev_set_drvdata(&op->dev, p);
@@ -168,7 +168,8 @@ static int __devinit ecpp_probe(struct of_device *op, const struct of_device_id
168 p = parport_pc_probe_port(base, base + 0x400, 168 p = parport_pc_probe_port(base, base + 0x400,
169 op->irqs[0], 169 op->irqs[0],
170 slot, 170 slot,
171 op->dev.parent); 171 op->dev.parent,
172 0);
172 err = -ENOMEM; 173 err = -ENOMEM;
173 if (!p) 174 if (!p)
174 goto out_disable_irq; 175 goto out_disable_irq;
diff --git a/arch/sparc/kernel/head_32.S b/arch/sparc/kernel/head_32.S
index f0b4b516304f..6b4d8acc4c83 100644
--- a/arch/sparc/kernel/head_32.S
+++ b/arch/sparc/kernel/head_32.S
@@ -72,7 +72,7 @@ sun4e_notsup:
72 .align 4 72 .align 4
73 73
74 /* The Sparc trap table, bootloader gives us control at _start. */ 74 /* The Sparc trap table, bootloader gives us control at _start. */
75 .section .text.head,"ax" 75 __HEAD
76 .globl start, _stext, _start, __stext 76 .globl start, _stext, _start, __stext
77 .globl trapbase 77 .globl trapbase
78_start: /* danger danger */ 78_start: /* danger danger */
@@ -735,7 +735,7 @@ go_to_highmem:
735 nop 735 nop
736 736
737/* The code above should be at beginning and we have to take care about 737/* The code above should be at beginning and we have to take care about
738 * short jumps, as branching to .text.init section from .text is usually 738 * short jumps, as branching to .init.text section from .text is usually
739 * impossible */ 739 * impossible */
740 __INIT 740 __INIT
741/* Acquire boot time privileged register values, this will help debugging. 741/* Acquire boot time privileged register values, this will help debugging.
diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S
index 3a1b7bf03cff..91bf4c7f79b9 100644
--- a/arch/sparc/kernel/head_64.S
+++ b/arch/sparc/kernel/head_64.S
@@ -467,7 +467,7 @@ jump_to_sun4u_init:
467 jmpl %g2 + %g0, %g0 467 jmpl %g2 + %g0, %g0
468 nop 468 nop
469 469
470 .section .text.init.refok 470 __REF
471sun4u_init: 471sun4u_init:
472 BRANCH_IF_SUN4V(g1, sun4v_init) 472 BRANCH_IF_SUN4V(g1, sun4v_init)
473 473
diff --git a/arch/sparc/kernel/ldc.c b/arch/sparc/kernel/ldc.c
index 6ce5d2598a09..adf5f273868a 100644
--- a/arch/sparc/kernel/ldc.c
+++ b/arch/sparc/kernel/ldc.c
@@ -1183,8 +1183,7 @@ out_free_txq:
1183 free_queue(lp->tx_num_entries, lp->tx_base); 1183 free_queue(lp->tx_num_entries, lp->tx_base);
1184 1184
1185out_free_mssbuf: 1185out_free_mssbuf:
1186 if (mssbuf) 1186 kfree(mssbuf);
1187 kfree(mssbuf);
1188 1187
1189out_free_iommu: 1188out_free_iommu:
1190 ldc_iommu_release(lp); 1189 ldc_iommu_release(lp);
@@ -1217,8 +1216,7 @@ void ldc_free(struct ldc_channel *lp)
1217 1216
1218 hlist_del(&lp->list); 1217 hlist_del(&lp->list);
1219 1218
1220 if (lp->mssbuf) 1219 kfree(lp->mssbuf);
1221 kfree(lp->mssbuf);
1222 1220
1223 ldc_iommu_release(lp); 1221 ldc_iommu_release(lp);
1224 1222
diff --git a/arch/sparc/kernel/of_device_32.c b/arch/sparc/kernel/of_device_32.c
index 0a83bd737654..c8f14c1dc521 100644
--- a/arch/sparc/kernel/of_device_32.c
+++ b/arch/sparc/kernel/of_device_32.c
@@ -246,8 +246,25 @@ static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
246 246
247static int of_bus_sbus_match(struct device_node *np) 247static int of_bus_sbus_match(struct device_node *np)
248{ 248{
249 return !strcmp(np->name, "sbus") || 249 struct device_node *dp = np;
250 !strcmp(np->name, "sbi"); 250
251 while (dp) {
252 if (!strcmp(dp->name, "sbus") ||
253 !strcmp(dp->name, "sbi"))
254 return 1;
255
256 /* Have a look at use_1to1_mapping(). We're trying
257 * to match SBUS if that's the top-level bus and we
258 * don't have some intervening real bus that provides
259 * ranges based translations.
260 */
261 if (of_find_property(dp, "ranges", NULL) != NULL)
262 break;
263
264 dp = dp->parent;
265 }
266
267 return 0;
251} 268}
252 269
253static void of_bus_sbus_count_cells(struct device_node *child, 270static void of_bus_sbus_count_cells(struct device_node *child,
diff --git a/arch/sparc/kernel/of_device_64.c b/arch/sparc/kernel/of_device_64.c
index 27381f1baffc..5ac287ac03de 100644
--- a/arch/sparc/kernel/of_device_64.c
+++ b/arch/sparc/kernel/of_device_64.c
@@ -300,8 +300,25 @@ static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
300 300
301static int of_bus_sbus_match(struct device_node *np) 301static int of_bus_sbus_match(struct device_node *np)
302{ 302{
303 return !strcmp(np->name, "sbus") || 303 struct device_node *dp = np;
304 !strcmp(np->name, "sbi"); 304
305 while (dp) {
306 if (!strcmp(dp->name, "sbus") ||
307 !strcmp(dp->name, "sbi"))
308 return 1;
309
310 /* Have a look at use_1to1_mapping(). We're trying
311 * to match SBUS if that's the top-level bus and we
312 * don't have some intervening real bus that provides
313 * ranges based translations.
314 */
315 if (of_find_property(dp, "ranges", NULL) != NULL)
316 break;
317
318 dp = dp->parent;
319 }
320
321 return 0;
305} 322}
306 323
307static void of_bus_sbus_count_cells(struct device_node *child, 324static void of_bus_sbus_count_cells(struct device_node *child,
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index 708e12a26b05..f7642e5a94db 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -118,9 +118,9 @@ void __cpuinit smp_callin(void)
118 while (!cpu_isset(cpuid, smp_commenced_mask)) 118 while (!cpu_isset(cpuid, smp_commenced_mask))
119 rmb(); 119 rmb();
120 120
121 ipi_call_lock(); 121 ipi_call_lock_irq();
122 cpu_set(cpuid, cpu_online_map); 122 cpu_set(cpuid, cpu_online_map);
123 ipi_call_unlock(); 123 ipi_call_unlock_irq();
124 124
125 /* idle thread is expected to have preempt disabled */ 125 /* idle thread is expected to have preempt disabled */
126 preempt_disable(); 126 preempt_disable();
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c
index e800503879e4..f5000a460c05 100644
--- a/arch/sparc/kernel/sys_sparc32.c
+++ b/arch/sparc/kernel/sys_sparc32.c
@@ -206,21 +206,12 @@ asmlinkage long compat_sys_fstatat64(unsigned int dfd, char __user *filename,
206 struct compat_stat64 __user * statbuf, int flag) 206 struct compat_stat64 __user * statbuf, int flag)
207{ 207{
208 struct kstat stat; 208 struct kstat stat;
209 int error = -EINVAL; 209 int error;
210
211 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
212 goto out;
213
214 if (flag & AT_SYMLINK_NOFOLLOW)
215 error = vfs_lstat_fd(dfd, filename, &stat);
216 else
217 error = vfs_stat_fd(dfd, filename, &stat);
218
219 if (!error)
220 error = cp_compat_stat64(&stat, statbuf);
221 210
222out: 211 error = vfs_fstatat(dfd, filename, &stat, flag);
223 return error; 212 if (error)
213 return error;
214 return cp_compat_stat64(&stat, statbuf);
224} 215}
225 216
226asmlinkage long compat_sys_sysfs(int option, u32 arg1, u32 arg2) 217asmlinkage long compat_sys_sysfs(int option, u32 arg1, u32 arg2)
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c
index db310aa00183..5c12e79b4bdf 100644
--- a/arch/sparc/kernel/time_64.c
+++ b/arch/sparc/kernel/time_64.c
@@ -814,6 +814,11 @@ void udelay(unsigned long usecs)
814} 814}
815EXPORT_SYMBOL(udelay); 815EXPORT_SYMBOL(udelay);
816 816
817static cycle_t clocksource_tick_read(struct clocksource *cs)
818{
819 return tick_ops->get_tick();
820}
821
817void __init time_init(void) 822void __init time_init(void)
818{ 823{
819 unsigned long freq = sparc64_init_timers(); 824 unsigned long freq = sparc64_init_timers();
@@ -827,7 +832,7 @@ void __init time_init(void)
827 clocksource_tick.mult = 832 clocksource_tick.mult =
828 clocksource_hz2mult(freq, 833 clocksource_hz2mult(freq,
829 clocksource_tick.shift); 834 clocksource_tick.shift);
830 clocksource_tick.read = tick_ops->get_tick; 835 clocksource_tick.read = clocksource_tick_read;
831 836
832 printk("clocksource: mult[%x] shift[%d]\n", 837 printk("clocksource: mult[%x] shift[%d]\n",
833 clocksource_tick.mult, clocksource_tick.shift); 838 clocksource_tick.mult, clocksource_tick.shift);
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index 76267085b13b..fcbbd000ec08 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -41,7 +41,7 @@ SECTIONS
41 .text TEXTSTART : 41 .text TEXTSTART :
42 { 42 {
43 _text = .; 43 _text = .;
44 *(.text.head) 44 HEAD_TEXT
45 TEXT_TEXT 45 TEXT_TEXT
46 SCHED_TEXT 46 SCHED_TEXT
47 LOCK_TEXT 47 LOCK_TEXT
diff --git a/arch/um/Kconfig.rest b/arch/um/Kconfig.rest
index 7b5cea75a6c4..0ccad0ff6d6e 100644
--- a/arch/um/Kconfig.rest
+++ b/arch/um/Kconfig.rest
@@ -36,7 +36,7 @@ source "drivers/leds/Kconfig"
36 36
37#This is just to shut up some Kconfig warnings, so no prompt. 37#This is just to shut up some Kconfig warnings, so no prompt.
38config INPUT 38config INPUT
39 bool 39 tristate
40 default n 40 default n
41 41
42source "arch/um/Kconfig.debug" 42source "arch/um/Kconfig.debug"
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c
index b13a87a3ec95..c8b9c469fcd7 100644
--- a/arch/um/kernel/time.c
+++ b/arch/um/kernel/time.c
@@ -65,7 +65,7 @@ static irqreturn_t um_timer(int irq, void *dev)
65 return IRQ_HANDLED; 65 return IRQ_HANDLED;
66} 66}
67 67
68static cycle_t itimer_read(void) 68static cycle_t itimer_read(struct clocksource *cs)
69{ 69{
70 return os_nsecs() / 1000; 70 return os_nsecs() / 1000;
71} 71}
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index bc25b9f5e4cd..df9e885eee14 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -277,6 +277,7 @@ config SPARSE_IRQ
277config NUMA_MIGRATE_IRQ_DESC 277config NUMA_MIGRATE_IRQ_DESC
278 bool "Move irq desc when changing irq smp_affinity" 278 bool "Move irq desc when changing irq smp_affinity"
279 depends on SPARSE_IRQ && NUMA 279 depends on SPARSE_IRQ && NUMA
280 depends on BROKEN
280 default n 281 default n
281 ---help--- 282 ---help---
282 This enables moving irq_desc to cpu/node that irq will use handled. 283 This enables moving irq_desc to cpu/node that irq will use handled.
@@ -353,6 +354,7 @@ config X86_UV
353 bool "SGI Ultraviolet" 354 bool "SGI Ultraviolet"
354 depends on X86_64 355 depends on X86_64
355 depends on X86_EXTENDED_PLATFORM 356 depends on X86_EXTENDED_PLATFORM
357 depends on NUMA
356 select X86_X2APIC 358 select X86_X2APIC
357 ---help--- 359 ---help---
358 This option is needed in order to support SGI Ultraviolet systems. 360 This option is needed in order to support SGI Ultraviolet systems.
@@ -663,6 +665,7 @@ config MAXSMP
663 665
664config NR_CPUS 666config NR_CPUS
665 int "Maximum number of CPUs" if SMP && !MAXSMP 667 int "Maximum number of CPUs" if SMP && !MAXSMP
668 range 2 8 if SMP && X86_32 && !X86_BIGSMP
666 range 2 512 if SMP && !MAXSMP 669 range 2 512 if SMP && !MAXSMP
667 default "1" if !SMP 670 default "1" if !SMP
668 default "4096" if MAXSMP 671 default "4096" if MAXSMP
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 924e156a85ab..8130334329c0 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -506,6 +506,7 @@ config X86_PTRACE_BTS
506 bool "Branch Trace Store" 506 bool "Branch Trace Store"
507 default y 507 default y
508 depends on X86_DEBUGCTLMSR 508 depends on X86_DEBUGCTLMSR
509 depends on BROKEN
509 ---help--- 510 ---help---
510 This adds a ptrace interface to the hardware's branch trace store. 511 This adds a ptrace interface to the hardware's branch trace store.
511 512
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f05d8c91d9e5..8c86b72afdc2 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -153,7 +153,7 @@ endif
153 153
154boot := arch/x86/boot 154boot := arch/x86/boot
155 155
156BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage install 156BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage
157 157
158PHONY += bzImage $(BOOT_TARGETS) 158PHONY += bzImage $(BOOT_TARGETS)
159 159
@@ -171,6 +171,10 @@ bzImage: vmlinux
171$(BOOT_TARGETS): vmlinux 171$(BOOT_TARGETS): vmlinux
172 $(Q)$(MAKE) $(build)=$(boot) $@ 172 $(Q)$(MAKE) $(build)=$(boot) $@
173 173
174PHONY += install
175install:
176 $(Q)$(MAKE) $(build)=$(boot) $@
177
174PHONY += vdso_install 178PHONY += vdso_install
175vdso_install: 179vdso_install:
176 $(Q)$(MAKE) $(build)=arch/x86/vdso $@ 180 $(Q)$(MAKE) $(build)=arch/x86/vdso $@
diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
index efac92fd1efb..085a8c35f149 100644
--- a/arch/x86/ia32/sys_ia32.c
+++ b/arch/x86/ia32/sys_ia32.c
@@ -129,21 +129,12 @@ asmlinkage long sys32_fstatat(unsigned int dfd, char __user *filename,
129 struct stat64 __user *statbuf, int flag) 129 struct stat64 __user *statbuf, int flag)
130{ 130{
131 struct kstat stat; 131 struct kstat stat;
132 int error = -EINVAL; 132 int error;
133 133
134 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) 134 error = vfs_fstatat(dfd, filename, &stat, flag);
135 goto out; 135 if (error)
136 136 return error;
137 if (flag & AT_SYMLINK_NOFOLLOW) 137 return cp_stat64(statbuf, &stat);
138 error = vfs_lstat_fd(dfd, filename, &stat);
139 else
140 error = vfs_stat_fd(dfd, filename, &stat);
141
142 if (!error)
143 error = cp_stat64(statbuf, &stat);
144
145out:
146 return error;
147} 138}
148 139
149/* 140/*
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index 5623c50d67b2..c45f415ce315 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -37,7 +37,7 @@ extern gate_desc idt_table[];
37struct gdt_page { 37struct gdt_page {
38 struct desc_struct gdt[GDT_ENTRIES]; 38 struct desc_struct gdt[GDT_ENTRIES];
39} __attribute__((aligned(PAGE_SIZE))); 39} __attribute__((aligned(PAGE_SIZE)));
40DECLARE_PER_CPU(struct gdt_page, gdt_page); 40DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
41 41
42static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) 42static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
43{ 43{
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h
index 039db6aa8e02..37555e52f980 100644
--- a/arch/x86/include/asm/hardirq.h
+++ b/arch/x86/include/asm/hardirq.h
@@ -26,7 +26,7 @@ typedef struct {
26#endif 26#endif
27} ____cacheline_aligned irq_cpustat_t; 27} ____cacheline_aligned irq_cpustat_t;
28 28
29DECLARE_PER_CPU(irq_cpustat_t, irq_stat); 29DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
30 30
31/* We can have at most NR_VECTORS irqs routed to a cpu at a time */ 31/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
32#define MAX_HARDIRQS_PER_CPU NR_VECTORS 32#define MAX_HARDIRQS_PER_CPU NR_VECTORS
diff --git a/arch/x86/include/asm/lguest_hcall.h b/arch/x86/include/asm/lguest_hcall.h
index 0f4ee7148afe..faae1996487b 100644
--- a/arch/x86/include/asm/lguest_hcall.h
+++ b/arch/x86/include/asm/lguest_hcall.h
@@ -5,7 +5,6 @@
5#define LHCALL_FLUSH_ASYNC 0 5#define LHCALL_FLUSH_ASYNC 0
6#define LHCALL_LGUEST_INIT 1 6#define LHCALL_LGUEST_INIT 1
7#define LHCALL_SHUTDOWN 2 7#define LHCALL_SHUTDOWN 2
8#define LHCALL_LOAD_GDT 3
9#define LHCALL_NEW_PGTABLE 4 8#define LHCALL_NEW_PGTABLE 4
10#define LHCALL_FLUSH_TLB 5 9#define LHCALL_FLUSH_TLB 5
11#define LHCALL_LOAD_IDT_ENTRY 6 10#define LHCALL_LOAD_IDT_ENTRY 6
@@ -17,6 +16,7 @@
17#define LHCALL_SET_PMD 15 16#define LHCALL_SET_PMD 15
18#define LHCALL_LOAD_TLS 16 17#define LHCALL_LOAD_TLS 16
19#define LHCALL_NOTIFY 17 18#define LHCALL_NOTIFY 17
19#define LHCALL_LOAD_GDT_ENTRY 18
20 20
21#define LGUEST_TRAP_ENTRY 0x1F 21#define LGUEST_TRAP_ENTRY 0x1F
22 22
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 563933e06a35..4f8c199584e7 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -137,6 +137,7 @@ DECLARE_PER_CPU(mce_banks_t, mce_poll_banks);
137enum mcp_flags { 137enum mcp_flags {
138 MCP_TIMESTAMP = (1 << 0), /* log time stamp */ 138 MCP_TIMESTAMP = (1 << 0), /* log time stamp */
139 MCP_UC = (1 << 1), /* log uncorrected errors */ 139 MCP_UC = (1 << 1), /* log uncorrected errors */
140 MCP_DONTLOG = (1 << 2), /* only clear, don't log */
140}; 141};
141extern void machine_check_poll(enum mcp_flags flags, mce_banks_t *b); 142extern void machine_check_poll(enum mcp_flags flags, mce_banks_t *b);
142 143
diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h
index 2cd07b9422f4..7af14e512f97 100644
--- a/arch/x86/include/asm/pat.h
+++ b/arch/x86/include/asm/pat.h
@@ -18,9 +18,5 @@ extern int free_memtype(u64 start, u64 end);
18 18
19extern int kernel_map_sync_memtype(u64 base, unsigned long size, 19extern int kernel_map_sync_memtype(u64 base, unsigned long size,
20 unsigned long flag); 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);
25 21
26#endif /* _ASM_X86_PAT_H */ 22#endif /* _ASM_X86_PAT_H */
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index fcf4d92e7e04..c2cceae709c8 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -138,7 +138,7 @@ extern struct tss_struct doublefault_tss;
138extern __u32 cleared_cpu_caps[NCAPINTS]; 138extern __u32 cleared_cpu_caps[NCAPINTS];
139 139
140#ifdef CONFIG_SMP 140#ifdef CONFIG_SMP
141DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); 141DECLARE_PER_CPU_SHARED_ALIGNED(struct cpuinfo_x86, cpu_info);
142#define cpu_data(cpu) per_cpu(cpu_info, cpu) 142#define cpu_data(cpu) per_cpu(cpu_info, cpu)
143#define current_cpu_data __get_cpu_var(cpu_info) 143#define current_cpu_data __get_cpu_var(cpu_info)
144#else 144#else
@@ -270,7 +270,7 @@ struct tss_struct {
270 270
271} ____cacheline_aligned; 271} ____cacheline_aligned;
272 272
273DECLARE_PER_CPU(struct tss_struct, init_tss); 273DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss);
274 274
275/* 275/*
276 * Save the original ist values for checking stack pointers during debugging 276 * Save the original ist values for checking stack pointers during debugging
@@ -393,7 +393,7 @@ union irq_stack_union {
393 }; 393 };
394}; 394};
395 395
396DECLARE_PER_CPU(union irq_stack_union, irq_stack_union); 396DECLARE_PER_CPU_FIRST(union irq_stack_union, irq_stack_union);
397DECLARE_INIT_PER_CPU(irq_stack_union); 397DECLARE_INIT_PER_CPU(irq_stack_union);
398 398
399DECLARE_PER_CPU(char *, irq_stack_ptr); 399DECLARE_PER_CPU(char *, irq_stack_ptr);
diff --git a/arch/x86/include/asm/required-features.h b/arch/x86/include/asm/required-features.h
index d5cd6c586881..a4737dddfd58 100644
--- a/arch/x86/include/asm/required-features.h
+++ b/arch/x86/include/asm/required-features.h
@@ -50,7 +50,7 @@
50#ifdef CONFIG_X86_64 50#ifdef CONFIG_X86_64
51#define NEED_PSE 0 51#define NEED_PSE 0
52#define NEED_MSR (1<<(X86_FEATURE_MSR & 31)) 52#define NEED_MSR (1<<(X86_FEATURE_MSR & 31))
53#define NEED_PGE (1<<(X86_FEATURE_PGE & 31)) 53#define NEED_PGE 0
54#define NEED_FXSR (1<<(X86_FEATURE_FXSR & 31)) 54#define NEED_FXSR (1<<(X86_FEATURE_FXSR & 31))
55#define NEED_XMM (1<<(X86_FEATURE_XMM & 31)) 55#define NEED_XMM (1<<(X86_FEATURE_XMM & 31))
56#define NEED_XMM2 (1<<(X86_FEATURE_XMM2 & 31)) 56#define NEED_XMM2 (1<<(X86_FEATURE_XMM2 & 31))
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
index d3539f998f88..16a5c84b0329 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -152,7 +152,7 @@ struct tlb_state {
152 struct mm_struct *active_mm; 152 struct mm_struct *active_mm;
153 int state; 153 int state;
154}; 154};
155DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate); 155DECLARE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate);
156 156
157static inline void reset_lazy_tlbstate(void) 157static inline void reset_lazy_tlbstate(void)
158{ 158{
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 892b119dba6f..f44b49abca49 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -200,7 +200,7 @@ static inline void arch_fix_phys_package_id(int num, u32 slot)
200} 200}
201 201
202struct pci_bus; 202struct pci_bus;
203void set_pci_bus_resources_arch_default(struct pci_bus *b); 203void x86_pci_root_bus_res_quirks(struct pci_bus *b);
204 204
205#ifdef CONFIG_SMP 205#ifdef CONFIG_SMP
206#define mc_capable() (cpumask_weight(cpu_core_mask(0)) != nr_cpu_ids) 206#define mc_capable() (cpumask_weight(cpu_core_mask(0)) != nr_cpu_ids)
diff --git a/arch/x86/include/asm/uv/uv_mmrs.h b/arch/x86/include/asm/uv/uv_mmrs.h
index db68ac8a5ac2..2cae46c7c8a2 100644
--- a/arch/x86/include/asm/uv/uv_mmrs.h
+++ b/arch/x86/include/asm/uv/uv_mmrs.h
@@ -17,6 +17,11 @@
17/* ========================================================================= */ 17/* ========================================================================= */
18/* UVH_BAU_DATA_CONFIG */ 18/* UVH_BAU_DATA_CONFIG */
19/* ========================================================================= */ 19/* ========================================================================= */
20#define UVH_LB_BAU_MISC_CONTROL 0x320170UL
21#define UV_ENABLE_INTD_SOFT_ACK_MODE_SHIFT 15
22#define UV_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHIFT 16
23#define UV_INTD_SOFT_ACK_TIMEOUT_PERIOD 0x000000000bUL
24/* 1011 timebase 7 (168millisec) * 3 ticks -> 500ms */
20#define UVH_BAU_DATA_CONFIG 0x61680UL 25#define UVH_BAU_DATA_CONFIG 0x61680UL
21#define UVH_BAU_DATA_CONFIG_32 0x0438 26#define UVH_BAU_DATA_CONFIG_32 0x0438
22 27
diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
index 1a918dde46b5..018a0a400799 100644
--- a/arch/x86/include/asm/xen/page.h
+++ b/arch/x86/include/asm/xen/page.h
@@ -124,7 +124,8 @@ static inline unsigned long mfn_to_local_pfn(unsigned long mfn)
124 124
125/* VIRT <-> MACHINE conversion */ 125/* VIRT <-> MACHINE conversion */
126#define virt_to_machine(v) (phys_to_machine(XPADDR(__pa(v)))) 126#define virt_to_machine(v) (phys_to_machine(XPADDR(__pa(v))))
127#define virt_to_mfn(v) (pfn_to_mfn(PFN_DOWN(__pa(v)))) 127#define virt_to_pfn(v) (PFN_DOWN(__pa(v)))
128#define virt_to_mfn(v) (pfn_to_mfn(virt_to_pfn(v)))
128#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT)) 129#define mfn_to_virt(m) (__va(mfn_to_pfn(m) << PAGE_SHIFT))
129 130
130static inline unsigned long pte_mfn(pte_t pte) 131static inline unsigned long pte_mfn(pte_t pte)
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 42c33cebf00f..8c0be0902dac 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -49,10 +49,10 @@
49#define IVHD_DEV_EXT_SELECT 0x46 49#define IVHD_DEV_EXT_SELECT 0x46
50#define IVHD_DEV_EXT_SELECT_RANGE 0x47 50#define IVHD_DEV_EXT_SELECT_RANGE 0x47
51 51
52#define IVHD_FLAG_HT_TUN_EN 0x00 52#define IVHD_FLAG_HT_TUN_EN_MASK 0x01
53#define IVHD_FLAG_PASSPW_EN 0x01 53#define IVHD_FLAG_PASSPW_EN_MASK 0x02
54#define IVHD_FLAG_RESPASSPW_EN 0x02 54#define IVHD_FLAG_RESPASSPW_EN_MASK 0x04
55#define IVHD_FLAG_ISOC_EN 0x03 55#define IVHD_FLAG_ISOC_EN_MASK 0x08
56 56
57#define IVMD_FLAG_EXCL_RANGE 0x08 57#define IVMD_FLAG_EXCL_RANGE 0x08
58#define IVMD_FLAG_UNITY_MAP 0x01 58#define IVMD_FLAG_UNITY_MAP 0x01
@@ -569,19 +569,19 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
569 * First set the recommended feature enable bits from ACPI 569 * First set the recommended feature enable bits from ACPI
570 * into the IOMMU control registers 570 * into the IOMMU control registers
571 */ 571 */
572 h->flags & IVHD_FLAG_HT_TUN_EN ? 572 h->flags & IVHD_FLAG_HT_TUN_EN_MASK ?
573 iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) : 573 iommu_feature_enable(iommu, CONTROL_HT_TUN_EN) :
574 iommu_feature_disable(iommu, CONTROL_HT_TUN_EN); 574 iommu_feature_disable(iommu, CONTROL_HT_TUN_EN);
575 575
576 h->flags & IVHD_FLAG_PASSPW_EN ? 576 h->flags & IVHD_FLAG_PASSPW_EN_MASK ?
577 iommu_feature_enable(iommu, CONTROL_PASSPW_EN) : 577 iommu_feature_enable(iommu, CONTROL_PASSPW_EN) :
578 iommu_feature_disable(iommu, CONTROL_PASSPW_EN); 578 iommu_feature_disable(iommu, CONTROL_PASSPW_EN);
579 579
580 h->flags & IVHD_FLAG_RESPASSPW_EN ? 580 h->flags & IVHD_FLAG_RESPASSPW_EN_MASK ?
581 iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) : 581 iommu_feature_enable(iommu, CONTROL_RESPASSPW_EN) :
582 iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN); 582 iommu_feature_disable(iommu, CONTROL_RESPASSPW_EN);
583 583
584 h->flags & IVHD_FLAG_ISOC_EN ? 584 h->flags & IVHD_FLAG_ISOC_EN_MASK ?
585 iommu_feature_enable(iommu, CONTROL_ISOC_EN) : 585 iommu_feature_enable(iommu, CONTROL_ISOC_EN) :
586 iommu_feature_disable(iommu, CONTROL_ISOC_EN); 586 iommu_feature_disable(iommu, CONTROL_ISOC_EN);
587 587
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index a2789e42e162..30da617d18e4 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3670,12 +3670,14 @@ int arch_setup_hpet_msi(unsigned int irq)
3670{ 3670{
3671 int ret; 3671 int ret;
3672 struct msi_msg msg; 3672 struct msi_msg msg;
3673 struct irq_desc *desc = irq_to_desc(irq);
3673 3674
3674 ret = msi_compose_msg(NULL, irq, &msg); 3675 ret = msi_compose_msg(NULL, irq, &msg);
3675 if (ret < 0) 3676 if (ret < 0)
3676 return ret; 3677 return ret;
3677 3678
3678 hpet_msi_write(irq, &msg); 3679 hpet_msi_write(irq, &msg);
3680 desc->status |= IRQ_MOVE_PCNTXT;
3679 set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq, 3681 set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq,
3680 "edge"); 3682 "edge");
3681 3683
diff --git a/arch/x86/kernel/apic/nmi.c b/arch/x86/kernel/apic/nmi.c
index d6bd62407152..ce4fbfa315a1 100644
--- a/arch/x86/kernel/apic/nmi.c
+++ b/arch/x86/kernel/apic/nmi.c
@@ -138,7 +138,7 @@ int __init check_nmi_watchdog(void)
138 if (!prev_nmi_count) 138 if (!prev_nmi_count)
139 goto error; 139 goto error;
140 140
141 alloc_cpumask_var(&backtrace_mask, GFP_KERNEL); 141 alloc_cpumask_var(&backtrace_mask, GFP_KERNEL|__GFP_ZERO);
142 printk(KERN_INFO "Testing NMI watchdog ... "); 142 printk(KERN_INFO "Testing NMI watchdog ... ");
143 143
144#ifdef CONFIG_SMP 144#ifdef CONFIG_SMP
@@ -414,7 +414,8 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
414 touched = 1; 414 touched = 1;
415 } 415 }
416 416
417 if (cpumask_test_cpu(cpu, backtrace_mask)) { 417 /* We can be called before check_nmi_watchdog, hence NULL check. */
418 if (backtrace_mask != NULL && cpumask_test_cpu(cpu, backtrace_mask)) {
418 static DEFINE_SPINLOCK(lock); /* Serialise the printks */ 419 static DEFINE_SPINLOCK(lock); /* Serialise the printks */
419 420
420 spin_lock(&lock); 421 spin_lock(&lock);
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index 1248318436e8..2bda69352976 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -19,6 +19,7 @@
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/cpu.h> 20#include <linux/cpu.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/io.h>
22 23
23#include <asm/uv/uv_mmrs.h> 24#include <asm/uv/uv_mmrs.h>
24#include <asm/uv/uv_hub.h> 25#include <asm/uv/uv_hub.h>
@@ -34,6 +35,17 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);
34 35
35static enum uv_system_type uv_system_type; 36static enum uv_system_type uv_system_type;
36 37
38static int early_get_nodeid(void)
39{
40 union uvh_node_id_u node_id;
41 unsigned long *mmr;
42
43 mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr));
44 node_id.v = *mmr;
45 early_iounmap(mmr, sizeof(*mmr));
46 return node_id.s.node_id;
47}
48
37static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 49static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
38{ 50{
39 if (!strcmp(oem_id, "SGI")) { 51 if (!strcmp(oem_id, "SGI")) {
@@ -42,6 +54,8 @@ static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
42 else if (!strcmp(oem_table_id, "UVX")) 54 else if (!strcmp(oem_table_id, "UVX"))
43 uv_system_type = UV_X2APIC; 55 uv_system_type = UV_X2APIC;
44 else if (!strcmp(oem_table_id, "UVH")) { 56 else if (!strcmp(oem_table_id, "UVH")) {
57 __get_cpu_var(x2apic_extra_bits) =
58 early_get_nodeid() << (UV_APIC_PNODE_SHIFT - 1);
45 uv_system_type = UV_NON_UNIQUE_APIC; 59 uv_system_type = UV_NON_UNIQUE_APIC;
46 return 1; 60 return 1;
47 } 61 }
@@ -549,7 +563,8 @@ void __init uv_system_init(void)
549 unsigned long gnode_upper, lowmem_redir_base, lowmem_redir_size; 563 unsigned long gnode_upper, lowmem_redir_base, lowmem_redir_size;
550 int bytes, nid, cpu, lcpu, pnode, blade, i, j, m_val, n_val; 564 int bytes, nid, cpu, lcpu, pnode, blade, i, j, m_val, n_val;
551 int max_pnode = 0; 565 int max_pnode = 0;
552 unsigned long mmr_base, present; 566 unsigned long mmr_base, present, paddr;
567 unsigned short pnode_mask;
553 568
554 map_low_mmrs(); 569 map_low_mmrs();
555 570
@@ -592,6 +607,7 @@ void __init uv_system_init(void)
592 } 607 }
593 } 608 }
594 609
610 pnode_mask = (1 << n_val) - 1;
595 node_id.v = uv_read_local_mmr(UVH_NODE_ID); 611 node_id.v = uv_read_local_mmr(UVH_NODE_ID);
596 gnode_upper = (((unsigned long)node_id.s.node_id) & 612 gnode_upper = (((unsigned long)node_id.s.node_id) &
597 ~((1 << n_val) - 1)) << m_val; 613 ~((1 << n_val) - 1)) << m_val;
@@ -615,7 +631,7 @@ void __init uv_system_init(void)
615 uv_cpu_hub_info(cpu)->numa_blade_id = blade; 631 uv_cpu_hub_info(cpu)->numa_blade_id = blade;
616 uv_cpu_hub_info(cpu)->blade_processor_id = lcpu; 632 uv_cpu_hub_info(cpu)->blade_processor_id = lcpu;
617 uv_cpu_hub_info(cpu)->pnode = pnode; 633 uv_cpu_hub_info(cpu)->pnode = pnode;
618 uv_cpu_hub_info(cpu)->pnode_mask = (1 << n_val) - 1; 634 uv_cpu_hub_info(cpu)->pnode_mask = pnode_mask;
619 uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1; 635 uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1;
620 uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper; 636 uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
621 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; 637 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
@@ -631,6 +647,17 @@ void __init uv_system_init(void)
631 lcpu, blade); 647 lcpu, blade);
632 } 648 }
633 649
650 /* Add blade/pnode info for nodes without cpus */
651 for_each_online_node(nid) {
652 if (uv_node_to_blade[nid] >= 0)
653 continue;
654 paddr = node_start_pfn(nid) << PAGE_SHIFT;
655 paddr = uv_soc_phys_ram_to_gpa(paddr);
656 pnode = (paddr >> m_val) & pnode_mask;
657 blade = boot_pnode_to_blade(pnode);
658 uv_node_to_blade[nid] = blade;
659 }
660
634 map_gru_high(max_pnode); 661 map_gru_high(max_pnode);
635 map_mmr_high(max_pnode); 662 map_mmr_high(max_pnode);
636 map_config_high(max_pnode); 663 map_config_high(max_pnode);
diff --git a/arch/x86/kernel/bios_uv.c b/arch/x86/kernel/bios_uv.c
index f63882728d91..63a88e1f987d 100644
--- a/arch/x86/kernel/bios_uv.c
+++ b/arch/x86/kernel/bios_uv.c
@@ -182,7 +182,8 @@ void uv_bios_init(void)
182 memcpy(&uv_systab, tab, sizeof(struct uv_systab)); 182 memcpy(&uv_systab, tab, sizeof(struct uv_systab));
183 iounmap(tab); 183 iounmap(tab);
184 184
185 printk(KERN_INFO "EFI UV System Table Revision %d\n", tab->revision); 185 printk(KERN_INFO "EFI UV System Table Revision %d\n",
186 uv_systab.revision);
186} 187}
187#else /* !CONFIG_EFI */ 188#else /* !CONFIG_EFI */
188 189
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index c4f667896c28..c1caefc82e62 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -1203,6 +1203,8 @@ void __cpuinit cpu_init(void)
1203 load_TR_desc(); 1203 load_TR_desc();
1204 load_LDT(&init_mm.context); 1204 load_LDT(&init_mm.context);
1205 1205
1206 t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
1207
1206#ifdef CONFIG_DOUBLEFAULT 1208#ifdef CONFIG_DOUBLEFAULT
1207 /* Set up doublefault TSS pointer in the GDT */ 1209 /* Set up doublefault TSS pointer in the GDT */
1208 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); 1210 __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index 3e3cd3db7a0c..208ecf6643df 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -65,14 +65,18 @@ enum {
65struct acpi_cpufreq_data { 65struct acpi_cpufreq_data {
66 struct acpi_processor_performance *acpi_data; 66 struct acpi_processor_performance *acpi_data;
67 struct cpufreq_frequency_table *freq_table; 67 struct cpufreq_frequency_table *freq_table;
68 unsigned int max_freq;
69 unsigned int resume; 68 unsigned int resume;
70 unsigned int cpu_feature; 69 unsigned int cpu_feature;
71 u64 saved_aperf, saved_mperf;
72}; 70};
73 71
74static DEFINE_PER_CPU(struct acpi_cpufreq_data *, drv_data); 72static DEFINE_PER_CPU(struct acpi_cpufreq_data *, drv_data);
75 73
74struct acpi_msr_data {
75 u64 saved_aperf, saved_mperf;
76};
77
78static DEFINE_PER_CPU(struct acpi_msr_data, msr_data);
79
76DEFINE_TRACE(power_mark); 80DEFINE_TRACE(power_mark);
77 81
78/* acpi_perf_data is a pointer to percpu data. */ 82/* acpi_perf_data is a pointer to percpu data. */
@@ -204,7 +208,13 @@ static void drv_read(struct drv_cmd *cmd)
204 208
205static void drv_write(struct drv_cmd *cmd) 209static void drv_write(struct drv_cmd *cmd)
206{ 210{
211 int this_cpu;
212
213 this_cpu = get_cpu();
214 if (cpumask_test_cpu(this_cpu, cmd->mask))
215 do_drv_write(cmd);
207 smp_call_function_many(cmd->mask, do_drv_write, cmd, 1); 216 smp_call_function_many(cmd->mask, do_drv_write, cmd, 1);
217 put_cpu();
208} 218}
209 219
210static u32 get_cur_val(const struct cpumask *mask) 220static u32 get_cur_val(const struct cpumask *mask)
@@ -277,15 +287,15 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
277 unsigned int perf_percent; 287 unsigned int perf_percent;
278 unsigned int retval; 288 unsigned int retval;
279 289
280 if (smp_call_function_single(cpu, read_measured_perf_ctrs, &cur, 1)) 290 if (smp_call_function_single(cpu, read_measured_perf_ctrs, &readin, 1))
281 return 0; 291 return 0;
282 292
283 cur.aperf.whole = readin.aperf.whole - 293 cur.aperf.whole = readin.aperf.whole -
284 per_cpu(drv_data, cpu)->saved_aperf; 294 per_cpu(msr_data, cpu).saved_aperf;
285 cur.mperf.whole = readin.mperf.whole - 295 cur.mperf.whole = readin.mperf.whole -
286 per_cpu(drv_data, cpu)->saved_mperf; 296 per_cpu(msr_data, cpu).saved_mperf;
287 per_cpu(drv_data, cpu)->saved_aperf = readin.aperf.whole; 297 per_cpu(msr_data, cpu).saved_aperf = readin.aperf.whole;
288 per_cpu(drv_data, cpu)->saved_mperf = readin.mperf.whole; 298 per_cpu(msr_data, cpu).saved_mperf = readin.mperf.whole;
289 299
290#ifdef __i386__ 300#ifdef __i386__
291 /* 301 /*
@@ -329,7 +339,7 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
329 339
330#endif 340#endif
331 341
332 retval = per_cpu(drv_data, policy->cpu)->max_freq * perf_percent / 100; 342 retval = (policy->cpuinfo.max_freq * perf_percent) / 100;
333 343
334 return retval; 344 return retval;
335} 345}
@@ -682,16 +692,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
682 /* Check for high latency (>20uS) from buggy BIOSes, like on T42 */ 692 /* Check for high latency (>20uS) from buggy BIOSes, like on T42 */
683 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE && 693 if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&
684 policy->cpuinfo.transition_latency > 20 * 1000) { 694 policy->cpuinfo.transition_latency > 20 * 1000) {
685 static int print_once;
686 policy->cpuinfo.transition_latency = 20 * 1000; 695 policy->cpuinfo.transition_latency = 20 * 1000;
687 if (!print_once) { 696 printk_once(KERN_INFO "Capping off P-state tranision"
688 print_once = 1; 697 " latency at 20 uS\n");
689 printk(KERN_INFO "Capping off P-state tranision latency"
690 " at 20 uS\n");
691 }
692 } 698 }
693 699
694 data->max_freq = perf->states[0].core_frequency * 1000;
695 /* table init */ 700 /* table init */
696 for (i = 0; i < perf->state_count; i++) { 701 for (i = 0; i < perf->state_count; i++) {
697 if (i > 0 && perf->states[i].core_frequency >= 702 if (i > 0 && perf->states[i].core_frequency >=
@@ -710,6 +715,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
710 if (result) 715 if (result)
711 goto err_freqfree; 716 goto err_freqfree;
712 717
718 if (perf->states[0].core_frequency * 1000 != policy->cpuinfo.max_freq)
719 printk(KERN_WARNING FW_WARN "P-state 0 is not max freq\n");
720
713 switch (perf->control_register.space_id) { 721 switch (perf->control_register.space_id) {
714 case ACPI_ADR_SPACE_SYSTEM_IO: 722 case ACPI_ADR_SPACE_SYSTEM_IO:
715 /* Current speed is unknown and not detectable by IO port */ 723 /* Current speed is unknown and not detectable by IO port */
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 863f89568b1a..6fb0b359d2a5 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -239,9 +239,10 @@ void machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
239 * Don't get the IP here because it's unlikely to 239 * Don't get the IP here because it's unlikely to
240 * have anything to do with the actual error location. 240 * have anything to do with the actual error location.
241 */ 241 */
242 242 if (!(flags & MCP_DONTLOG)) {
243 mce_log(&m); 243 mce_log(&m);
244 add_taint(TAINT_MACHINE_CHECK); 244 add_taint(TAINT_MACHINE_CHECK);
245 }
245 246
246 /* 247 /*
247 * Clear state for this bank. 248 * Clear state for this bank.
@@ -452,13 +453,14 @@ void mce_log_therm_throt_event(__u64 status)
452 */ 453 */
453 454
454static int check_interval = 5 * 60; /* 5 minutes */ 455static int check_interval = 5 * 60; /* 5 minutes */
455static int next_interval; /* in jiffies */ 456static DEFINE_PER_CPU(int, next_interval); /* in jiffies */
456static void mcheck_timer(unsigned long); 457static void mcheck_timer(unsigned long);
457static DEFINE_PER_CPU(struct timer_list, mce_timer); 458static DEFINE_PER_CPU(struct timer_list, mce_timer);
458 459
459static void mcheck_timer(unsigned long data) 460static void mcheck_timer(unsigned long data)
460{ 461{
461 struct timer_list *t = &per_cpu(mce_timer, data); 462 struct timer_list *t = &per_cpu(mce_timer, data);
463 int *n;
462 464
463 WARN_ON(smp_processor_id() != data); 465 WARN_ON(smp_processor_id() != data);
464 466
@@ -470,14 +472,14 @@ static void mcheck_timer(unsigned long data)
470 * Alert userspace if needed. If we logged an MCE, reduce the 472 * Alert userspace if needed. If we logged an MCE, reduce the
471 * polling interval, otherwise increase the polling interval. 473 * polling interval, otherwise increase the polling interval.
472 */ 474 */
475 n = &__get_cpu_var(next_interval);
473 if (mce_notify_user()) { 476 if (mce_notify_user()) {
474 next_interval = max(next_interval/2, HZ/100); 477 *n = max(*n/2, HZ/100);
475 } else { 478 } else {
476 next_interval = min(next_interval * 2, 479 *n = min(*n*2, (int)round_jiffies_relative(check_interval*HZ));
477 (int)round_jiffies_relative(check_interval*HZ));
478 } 480 }
479 481
480 t->expires = jiffies + next_interval; 482 t->expires = jiffies + *n;
481 add_timer(t); 483 add_timer(t);
482} 484}
483 485
@@ -584,7 +586,7 @@ static void mce_init(void *dummy)
584 * Log the machine checks left over from the previous reset. 586 * Log the machine checks left over from the previous reset.
585 */ 587 */
586 bitmap_fill(all_banks, MAX_NR_BANKS); 588 bitmap_fill(all_banks, MAX_NR_BANKS);
587 machine_check_poll(MCP_UC, &all_banks); 589 machine_check_poll(MCP_UC|(!mce_bootlog ? MCP_DONTLOG : 0), &all_banks);
588 590
589 set_in_cr4(X86_CR4_MCE); 591 set_in_cr4(X86_CR4_MCE);
590 592
@@ -632,14 +634,13 @@ static void mce_cpu_features(struct cpuinfo_x86 *c)
632static void mce_init_timer(void) 634static void mce_init_timer(void)
633{ 635{
634 struct timer_list *t = &__get_cpu_var(mce_timer); 636 struct timer_list *t = &__get_cpu_var(mce_timer);
637 int *n = &__get_cpu_var(next_interval);
635 638
636 /* data race harmless because everyone sets to the same value */ 639 *n = check_interval * HZ;
637 if (!next_interval) 640 if (!*n)
638 next_interval = check_interval * HZ;
639 if (!next_interval)
640 return; 641 return;
641 setup_timer(t, mcheck_timer, smp_processor_id()); 642 setup_timer(t, mcheck_timer, smp_processor_id());
642 t->expires = round_jiffies(jiffies + next_interval); 643 t->expires = round_jiffies(jiffies + *n);
643 add_timer(t); 644 add_timer(t);
644} 645}
645 646
@@ -907,7 +908,6 @@ static void mce_cpu_restart(void *data)
907/* Reinit MCEs after user configuration changes */ 908/* Reinit MCEs after user configuration changes */
908static void mce_restart(void) 909static void mce_restart(void)
909{ 910{
910 next_interval = check_interval * HZ;
911 on_each_cpu(mce_cpu_restart, NULL, 1); 911 on_each_cpu(mce_cpu_restart, NULL, 1);
912} 912}
913 913
@@ -1110,7 +1110,8 @@ static int __cpuinit mce_cpu_callback(struct notifier_block *nfb,
1110 break; 1110 break;
1111 case CPU_DOWN_FAILED: 1111 case CPU_DOWN_FAILED:
1112 case CPU_DOWN_FAILED_FROZEN: 1112 case CPU_DOWN_FAILED_FROZEN:
1113 t->expires = round_jiffies(jiffies + next_interval); 1113 t->expires = round_jiffies(jiffies +
1114 __get_cpu_var(next_interval));
1114 add_timer_on(t, cpu); 1115 add_timer_on(t, cpu);
1115 smp_call_function_single(cpu, mce_reenable_cpu, &action, 1); 1116 smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
1116 break; 1117 break;
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
index d6b72df89d69..cef3ee30744b 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
@@ -151,10 +151,11 @@ static void print_update(char *type, int *hdr, int num)
151static void cmci_discover(int banks, int boot) 151static void cmci_discover(int banks, int boot)
152{ 152{
153 unsigned long *owned = (void *)&__get_cpu_var(mce_banks_owned); 153 unsigned long *owned = (void *)&__get_cpu_var(mce_banks_owned);
154 unsigned long flags;
154 int hdr = 0; 155 int hdr = 0;
155 int i; 156 int i;
156 157
157 spin_lock(&cmci_discover_lock); 158 spin_lock_irqsave(&cmci_discover_lock, flags);
158 for (i = 0; i < banks; i++) { 159 for (i = 0; i < banks; i++) {
159 u64 val; 160 u64 val;
160 161
@@ -184,7 +185,7 @@ static void cmci_discover(int banks, int boot)
184 WARN_ON(!test_bit(i, __get_cpu_var(mce_poll_banks))); 185 WARN_ON(!test_bit(i, __get_cpu_var(mce_poll_banks)));
185 } 186 }
186 } 187 }
187 spin_unlock(&cmci_discover_lock); 188 spin_unlock_irqrestore(&cmci_discover_lock, flags);
188 if (hdr) 189 if (hdr)
189 printk(KERN_CONT "\n"); 190 printk(KERN_CONT "\n");
190} 191}
@@ -211,13 +212,14 @@ void cmci_recheck(void)
211 */ 212 */
212void cmci_clear(void) 213void cmci_clear(void)
213{ 214{
215 unsigned long flags;
214 int i; 216 int i;
215 int banks; 217 int banks;
216 u64 val; 218 u64 val;
217 219
218 if (!cmci_supported(&banks)) 220 if (!cmci_supported(&banks))
219 return; 221 return;
220 spin_lock(&cmci_discover_lock); 222 spin_lock_irqsave(&cmci_discover_lock, flags);
221 for (i = 0; i < banks; i++) { 223 for (i = 0; i < banks; i++) {
222 if (!test_bit(i, __get_cpu_var(mce_banks_owned))) 224 if (!test_bit(i, __get_cpu_var(mce_banks_owned)))
223 continue; 225 continue;
@@ -227,7 +229,7 @@ void cmci_clear(void)
227 wrmsrl(MSR_IA32_MC0_CTL2 + i, val); 229 wrmsrl(MSR_IA32_MC0_CTL2 + i, val);
228 __clear_bit(i, __get_cpu_var(mce_banks_owned)); 230 __clear_bit(i, __get_cpu_var(mce_banks_owned));
229 } 231 }
230 spin_unlock(&cmci_discover_lock); 232 spin_unlock_irqrestore(&cmci_discover_lock, flags);
231} 233}
232 234
233/* 235/*
diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
index f93047fed791..d5e30397246b 100644
--- a/arch/x86/kernel/cpu/proc.c
+++ b/arch/x86/kernel/cpu/proc.c
@@ -14,7 +14,7 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinfo_x86 *c,
14 if (c->x86_max_cores * smp_num_siblings > 1) { 14 if (c->x86_max_cores * smp_num_siblings > 1) {
15 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);
16 seq_printf(m, "siblings\t: %d\n", 16 seq_printf(m, "siblings\t: %d\n",
17 cpumask_weight(cpu_sibling_mask(cpu))); 17 cpumask_weight(cpu_core_mask(cpu)));
18 seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id); 18 seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
19 seq_printf(m, "cpu cores\t: %d\n", c->booted_cores); 19 seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
20 seq_printf(m, "apicid\t\t: %d\n", c->apicid); 20 seq_printf(m, "apicid\t\t: %d\n", c->apicid);
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index ef2c3563357d..006281302925 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1074,12 +1074,13 @@ u64 __init early_reserve_e820(u64 startt, u64 sizet, u64 align)
1074 u64 addr; 1074 u64 addr;
1075 u64 start; 1075 u64 start;
1076 1076
1077 start = startt; 1077 for (start = startt; ; start += size) {
1078 while (size < sizet && (start + 1))
1079 start = find_e820_area_size(start, &size, align); 1078 start = find_e820_area_size(start, &size, align);
1080 1079 if (!(start + 1))
1081 if (size < sizet) 1080 return 0;
1082 return 0; 1081 if (size >= sizet)
1082 break;
1083 }
1083 1084
1084#ifdef CONFIG_X86_32 1085#ifdef CONFIG_X86_32
1085 if (start >= MAXMEM) 1086 if (start >= MAXMEM)
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index a331ec38af9e..38946c6e8433 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -1410,7 +1410,10 @@ ENTRY(paranoid_exit)
1410paranoid_swapgs: 1410paranoid_swapgs:
1411 TRACE_IRQS_IRETQ 0 1411 TRACE_IRQS_IRETQ 0
1412 SWAPGS_UNSAFE_STACK 1412 SWAPGS_UNSAFE_STACK
1413 RESTORE_ALL 8
1414 jmp irq_return
1413paranoid_restore: 1415paranoid_restore:
1416 TRACE_IRQS_IRETQ 0
1414 RESTORE_ALL 8 1417 RESTORE_ALL 8
1415 jmp irq_return 1418 jmp irq_return
1416paranoid_userspace: 1419paranoid_userspace:
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 648b3a2a3a44..81408b93f887 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -236,6 +236,10 @@ static void hpet_stop_counter(void)
236 unsigned long cfg = hpet_readl(HPET_CFG); 236 unsigned long cfg = hpet_readl(HPET_CFG);
237 cfg &= ~HPET_CFG_ENABLE; 237 cfg &= ~HPET_CFG_ENABLE;
238 hpet_writel(cfg, HPET_CFG); 238 hpet_writel(cfg, HPET_CFG);
239}
240
241static void hpet_reset_counter(void)
242{
239 hpet_writel(0, HPET_COUNTER); 243 hpet_writel(0, HPET_COUNTER);
240 hpet_writel(0, HPET_COUNTER + 4); 244 hpet_writel(0, HPET_COUNTER + 4);
241} 245}
@@ -250,6 +254,7 @@ static void hpet_start_counter(void)
250static void hpet_restart_counter(void) 254static void hpet_restart_counter(void)
251{ 255{
252 hpet_stop_counter(); 256 hpet_stop_counter();
257 hpet_reset_counter();
253 hpet_start_counter(); 258 hpet_start_counter();
254} 259}
255 260
@@ -309,7 +314,7 @@ static int hpet_setup_msi_irq(unsigned int irq);
309static void hpet_set_mode(enum clock_event_mode mode, 314static void hpet_set_mode(enum clock_event_mode mode,
310 struct clock_event_device *evt, int timer) 315 struct clock_event_device *evt, int timer)
311{ 316{
312 unsigned long cfg; 317 unsigned long cfg, cmp, now;
313 uint64_t delta; 318 uint64_t delta;
314 319
315 switch (mode) { 320 switch (mode) {
@@ -317,12 +322,23 @@ static void hpet_set_mode(enum clock_event_mode mode,
317 hpet_stop_counter(); 322 hpet_stop_counter();
318 delta = ((uint64_t)(NSEC_PER_SEC/HZ)) * evt->mult; 323 delta = ((uint64_t)(NSEC_PER_SEC/HZ)) * evt->mult;
319 delta >>= evt->shift; 324 delta >>= evt->shift;
325 now = hpet_readl(HPET_COUNTER);
326 cmp = now + (unsigned long) delta;
320 cfg = hpet_readl(HPET_Tn_CFG(timer)); 327 cfg = hpet_readl(HPET_Tn_CFG(timer));
321 /* Make sure we use edge triggered interrupts */ 328 /* Make sure we use edge triggered interrupts */
322 cfg &= ~HPET_TN_LEVEL; 329 cfg &= ~HPET_TN_LEVEL;
323 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | 330 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC |
324 HPET_TN_SETVAL | HPET_TN_32BIT; 331 HPET_TN_SETVAL | HPET_TN_32BIT;
325 hpet_writel(cfg, HPET_Tn_CFG(timer)); 332 hpet_writel(cfg, HPET_Tn_CFG(timer));
333 hpet_writel(cmp, HPET_Tn_CMP(timer));
334 udelay(1);
335 /*
336 * HPET on AMD 81xx needs a second write (with HPET_TN_SETVAL
337 * cleared) to T0_CMP to set the period. The HPET_TN_SETVAL
338 * bit is automatically cleared after the first write.
339 * (See AMD-8111 HyperTransport I/O Hub Data Sheet,
340 * Publication # 24674)
341 */
326 hpet_writel((unsigned long) delta, HPET_Tn_CMP(timer)); 342 hpet_writel((unsigned long) delta, HPET_Tn_CMP(timer));
327 hpet_start_counter(); 343 hpet_start_counter();
328 hpet_print_config(); 344 hpet_print_config();
@@ -722,7 +738,7 @@ static int hpet_cpuhp_notify(struct notifier_block *n,
722/* 738/*
723 * Clock source related code 739 * Clock source related code
724 */ 740 */
725static cycle_t read_hpet(void) 741static cycle_t read_hpet(struct clocksource *cs)
726{ 742{
727 return (cycle_t)hpet_readl(HPET_COUNTER); 743 return (cycle_t)hpet_readl(HPET_COUNTER);
728} 744}
@@ -756,7 +772,7 @@ static int hpet_clocksource_register(void)
756 hpet_restart_counter(); 772 hpet_restart_counter();
757 773
758 /* Verify whether hpet counter works */ 774 /* Verify whether hpet counter works */
759 t1 = read_hpet(); 775 t1 = hpet_readl(HPET_COUNTER);
760 rdtscll(start); 776 rdtscll(start);
761 777
762 /* 778 /*
@@ -770,7 +786,7 @@ static int hpet_clocksource_register(void)
770 rdtscll(now); 786 rdtscll(now);
771 } while ((now - start) < 200000UL); 787 } while ((now - start) < 200000UL);
772 788
773 if (t1 == read_hpet()) { 789 if (t1 == hpet_readl(HPET_COUNTER)) {
774 printk(KERN_WARNING 790 printk(KERN_WARNING
775 "HPET counter not counting. HPET disabled\n"); 791 "HPET counter not counting. HPET disabled\n");
776 return -ENODEV; 792 return -ENODEV;
diff --git a/arch/x86/kernel/i8253.c b/arch/x86/kernel/i8253.c
index 3475440baa54..c2e0bb0890d4 100644
--- a/arch/x86/kernel/i8253.c
+++ b/arch/x86/kernel/i8253.c
@@ -129,7 +129,7 @@ void __init setup_pit_timer(void)
129 * to just read by itself. So use jiffies to emulate a free 129 * to just read by itself. So use jiffies to emulate a free
130 * running counter: 130 * running counter:
131 */ 131 */
132static cycle_t pit_read(void) 132static cycle_t pit_read(struct clocksource *cs)
133{ 133{
134 static int old_count; 134 static int old_count;
135 static u32 old_jifs; 135 static u32 old_jifs;
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index eedfaebe1063..b1f4dffb919e 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -88,6 +88,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
88 gdb_regs[GDB_SS] = __KERNEL_DS; 88 gdb_regs[GDB_SS] = __KERNEL_DS;
89 gdb_regs[GDB_FS] = 0xFFFF; 89 gdb_regs[GDB_FS] = 0xFFFF;
90 gdb_regs[GDB_GS] = 0xFFFF; 90 gdb_regs[GDB_GS] = 0xFFFF;
91 gdb_regs[GDB_SP] = (int)&regs->sp;
91#else 92#else
92 gdb_regs[GDB_R8] = regs->r8; 93 gdb_regs[GDB_R8] = regs->r8;
93 gdb_regs[GDB_R9] = regs->r9; 94 gdb_regs[GDB_R9] = regs->r9;
@@ -100,8 +101,8 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
100 gdb_regs32[GDB_PS] = regs->flags; 101 gdb_regs32[GDB_PS] = regs->flags;
101 gdb_regs32[GDB_CS] = regs->cs; 102 gdb_regs32[GDB_CS] = regs->cs;
102 gdb_regs32[GDB_SS] = regs->ss; 103 gdb_regs32[GDB_SS] = regs->ss;
103#endif
104 gdb_regs[GDB_SP] = regs->sp; 104 gdb_regs[GDB_SP] = regs->sp;
105#endif
105} 106}
106 107
107/** 108/**
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 137f2e8132df..223af43f1526 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -77,6 +77,11 @@ static cycle_t kvm_clock_read(void)
77 return ret; 77 return ret;
78} 78}
79 79
80static cycle_t kvm_clock_get_cycles(struct clocksource *cs)
81{
82 return kvm_clock_read();
83}
84
80/* 85/*
81 * If we don't do that, there is the possibility that the guest 86 * If we don't do that, there is the possibility that the guest
82 * will calibrate under heavy load - thus, getting a lower lpj - 87 * will calibrate under heavy load - thus, getting a lower lpj -
@@ -107,7 +112,7 @@ static void kvm_get_preset_lpj(void)
107 112
108static struct clocksource kvm_clock = { 113static struct clocksource kvm_clock = {
109 .name = "kvm-clock", 114 .name = "kvm-clock",
110 .read = kvm_clock_read, 115 .read = kvm_clock_get_cycles,
111 .rating = 400, 116 .rating = 400,
112 .mask = CLOCKSOURCE_MASK(64), 117 .mask = CLOCKSOURCE_MASK(64),
113 .mult = 1 << KVM_SCALE, 118 .mult = 1 << KVM_SCALE,
diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
index e7368c1da01d..c1c429d00130 100644
--- a/arch/x86/kernel/machine_kexec_32.c
+++ b/arch/x86/kernel/machine_kexec_32.c
@@ -194,7 +194,7 @@ void machine_kexec(struct kimage *image)
194 unsigned int preserve_context); 194 unsigned int preserve_context);
195 195
196#ifdef CONFIG_KEXEC_JUMP 196#ifdef CONFIG_KEXEC_JUMP
197 if (kexec_image->preserve_context) 197 if (image->preserve_context)
198 save_processor_state(); 198 save_processor_state();
199#endif 199#endif
200 200
@@ -253,7 +253,7 @@ void machine_kexec(struct kimage *image)
253 image->preserve_context); 253 image->preserve_context);
254 254
255#ifdef CONFIG_KEXEC_JUMP 255#ifdef CONFIG_KEXEC_JUMP
256 if (kexec_image->preserve_context) 256 if (image->preserve_context)
257 restore_processor_state(); 257 restore_processor_state();
258#endif 258#endif
259 259
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 89cea4d44679..84c3bf209e98 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -274,7 +274,7 @@ void machine_kexec(struct kimage *image)
274 int save_ftrace_enabled; 274 int save_ftrace_enabled;
275 275
276#ifdef CONFIG_KEXEC_JUMP 276#ifdef CONFIG_KEXEC_JUMP
277 if (kexec_image->preserve_context) 277 if (image->preserve_context)
278 save_processor_state(); 278 save_processor_state();
279#endif 279#endif
280 280
@@ -333,7 +333,7 @@ void machine_kexec(struct kimage *image)
333 image->preserve_context); 333 image->preserve_context);
334 334
335#ifdef CONFIG_KEXEC_JUMP 335#ifdef CONFIG_KEXEC_JUMP
336 if (kexec_image->preserve_context) 336 if (image->preserve_context)
337 restore_processor_state(); 337 restore_processor_state();
338#endif 338#endif
339 339
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
index a0f3851ef310..98c470c069d1 100644
--- a/arch/x86/kernel/microcode_core.c
+++ b/arch/x86/kernel/microcode_core.c
@@ -108,40 +108,29 @@ struct ucode_cpu_info ucode_cpu_info[NR_CPUS];
108EXPORT_SYMBOL_GPL(ucode_cpu_info); 108EXPORT_SYMBOL_GPL(ucode_cpu_info);
109 109
110#ifdef CONFIG_MICROCODE_OLD_INTERFACE 110#ifdef CONFIG_MICROCODE_OLD_INTERFACE
111struct update_for_cpu {
112 const void __user *buf;
113 size_t size;
114};
115
116static long update_for_cpu(void *_ufc)
117{
118 struct update_for_cpu *ufc = _ufc;
119 int error;
120
121 error = microcode_ops->request_microcode_user(smp_processor_id(),
122 ufc->buf, ufc->size);
123 if (error < 0)
124 return error;
125 if (!error)
126 microcode_ops->apply_microcode(smp_processor_id());
127 return error;
128}
129
130static int do_microcode_update(const void __user *buf, size_t size) 111static int do_microcode_update(const void __user *buf, size_t size)
131{ 112{
113 cpumask_t old;
132 int error = 0; 114 int error = 0;
133 int cpu; 115 int cpu;
134 struct update_for_cpu ufc = { .buf = buf, .size = size }; 116
117 old = current->cpus_allowed;
135 118
136 for_each_online_cpu(cpu) { 119 for_each_online_cpu(cpu) {
137 struct ucode_cpu_info *uci = ucode_cpu_info + cpu; 120 struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
138 121
139 if (!uci->valid) 122 if (!uci->valid)
140 continue; 123 continue;
141 error = work_on_cpu(cpu, update_for_cpu, &ufc); 124
125 set_cpus_allowed_ptr(current, &cpumask_of_cpu(cpu));
126 error = microcode_ops->request_microcode_user(cpu, buf, size);
142 if (error < 0) 127 if (error < 0)
143 break; 128 goto out;
129 if (!error)
130 microcode_ops->apply_microcode(cpu);
144 } 131 }
132out:
133 set_cpus_allowed_ptr(current, &old);
145 return error; 134 return error;
146} 135}
147 136
@@ -391,8 +380,6 @@ static int mc_sysdev_add(struct sys_device *sys_dev)
391 return err; 380 return err;
392 381
393 err = microcode_init_cpu(cpu); 382 err = microcode_init_cpu(cpu);
394 if (err)
395 sysfs_remove_group(&sys_dev->kobj, &mc_attr_group);
396 383
397 return err; 384 return err;
398} 385}
diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
index 34f12e9996ed..221a3853e268 100644
--- a/arch/x86/kernel/pci-swiotlb.c
+++ b/arch/x86/kernel/pci-swiotlb.c
@@ -50,7 +50,7 @@ static void *x86_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
50 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags); 50 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags);
51} 51}
52 52
53struct dma_map_ops swiotlb_dma_ops = { 53static struct dma_map_ops swiotlb_dma_ops = {
54 .mapping_error = swiotlb_dma_mapping_error, 54 .mapping_error = swiotlb_dma_mapping_error,
55 .alloc_coherent = x86_swiotlb_alloc_coherent, 55 .alloc_coherent = x86_swiotlb_alloc_coherent,
56 .free_coherent = swiotlb_free_coherent, 56 .free_coherent = swiotlb_free_coherent,
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index e95022e4f5d5..7563b31b4f03 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -261,8 +261,6 @@ static void old_ich_force_enable_hpet_user(struct pci_dev *dev)
261{ 261{
262 if (hpet_force_user) 262 if (hpet_force_user)
263 old_ich_force_enable_hpet(dev); 263 old_ich_force_enable_hpet(dev);
264 else
265 hpet_print_force_info();
266} 264}
267 265
268DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, 266DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1,
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index deb5ebb32c3b..ed0c33761e6d 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -25,6 +25,8 @@ static int uv_bau_retry_limit __read_mostly;
25 25
26/* position of pnode (which is nasid>>1): */ 26/* position of pnode (which is nasid>>1): */
27static int uv_nshift __read_mostly; 27static int uv_nshift __read_mostly;
28/* base pnode in this partition */
29static int uv_partition_base_pnode __read_mostly;
28 30
29static unsigned long uv_mmask __read_mostly; 31static unsigned long uv_mmask __read_mostly;
30 32
@@ -32,6 +34,34 @@ static DEFINE_PER_CPU(struct ptc_stats, ptcstats);
32static DEFINE_PER_CPU(struct bau_control, bau_control); 34static DEFINE_PER_CPU(struct bau_control, bau_control);
33 35
34/* 36/*
37 * Determine the first node on a blade.
38 */
39static int __init blade_to_first_node(int blade)
40{
41 int node, b;
42
43 for_each_online_node(node) {
44 b = uv_node_to_blade_id(node);
45 if (blade == b)
46 return node;
47 }
48 return -1; /* shouldn't happen */
49}
50
51/*
52 * Determine the apicid of the first cpu on a blade.
53 */
54static int __init blade_to_first_apicid(int blade)
55{
56 int cpu;
57
58 for_each_present_cpu(cpu)
59 if (blade == uv_cpu_to_blade_id(cpu))
60 return per_cpu(x86_cpu_to_apicid, cpu);
61 return -1;
62}
63
64/*
35 * Free a software acknowledge hardware resource by clearing its Pending 65 * Free a software acknowledge hardware resource by clearing its Pending
36 * bit. This will return a reply to the sender. 66 * bit. This will return a reply to the sender.
37 * If the message has timed out, a reply has already been sent by the 67 * If the message has timed out, a reply has already been sent by the
@@ -67,7 +97,7 @@ static void uv_bau_process_message(struct bau_payload_queue_entry *msg,
67 msp = __get_cpu_var(bau_control).msg_statuses + msg_slot; 97 msp = __get_cpu_var(bau_control).msg_statuses + msg_slot;
68 cpu = uv_blade_processor_id(); 98 cpu = uv_blade_processor_id();
69 msg->number_of_cpus = 99 msg->number_of_cpus =
70 uv_blade_nr_online_cpus(uv_node_to_blade_id(numa_node_id())); 100 uv_blade_nr_online_cpus(uv_node_to_blade_id(numa_node_id()));
71 this_cpu_mask = 1UL << cpu; 101 this_cpu_mask = 1UL << cpu;
72 if (msp->seen_by.bits & this_cpu_mask) 102 if (msp->seen_by.bits & this_cpu_mask)
73 return; 103 return;
@@ -215,14 +245,14 @@ static int uv_wait_completion(struct bau_desc *bau_desc,
215 * Returns @flush_mask if some remote flushing remains to be done. The 245 * Returns @flush_mask if some remote flushing remains to be done. The
216 * mask will have some bits still set. 246 * mask will have some bits still set.
217 */ 247 */
218const struct cpumask *uv_flush_send_and_wait(int cpu, int this_blade, 248const struct cpumask *uv_flush_send_and_wait(int cpu, int this_pnode,
219 struct bau_desc *bau_desc, 249 struct bau_desc *bau_desc,
220 struct cpumask *flush_mask) 250 struct cpumask *flush_mask)
221{ 251{
222 int completion_status = 0; 252 int completion_status = 0;
223 int right_shift; 253 int right_shift;
224 int tries = 0; 254 int tries = 0;
225 int blade; 255 int pnode;
226 int bit; 256 int bit;
227 unsigned long mmr_offset; 257 unsigned long mmr_offset;
228 unsigned long index; 258 unsigned long index;
@@ -265,8 +295,8 @@ const struct cpumask *uv_flush_send_and_wait(int cpu, int this_blade,
265 * use the IPI method of shootdown on them. 295 * use the IPI method of shootdown on them.
266 */ 296 */
267 for_each_cpu(bit, flush_mask) { 297 for_each_cpu(bit, flush_mask) {
268 blade = uv_cpu_to_blade_id(bit); 298 pnode = uv_cpu_to_pnode(bit);
269 if (blade == this_blade) 299 if (pnode == this_pnode)
270 continue; 300 continue;
271 cpumask_clear_cpu(bit, flush_mask); 301 cpumask_clear_cpu(bit, flush_mask);
272 } 302 }
@@ -309,16 +339,16 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
309 struct cpumask *flush_mask = __get_cpu_var(uv_flush_tlb_mask); 339 struct cpumask *flush_mask = __get_cpu_var(uv_flush_tlb_mask);
310 int i; 340 int i;
311 int bit; 341 int bit;
312 int blade; 342 int pnode;
313 int uv_cpu; 343 int uv_cpu;
314 int this_blade; 344 int this_pnode;
315 int locals = 0; 345 int locals = 0;
316 struct bau_desc *bau_desc; 346 struct bau_desc *bau_desc;
317 347
318 cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu)); 348 cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
319 349
320 uv_cpu = uv_blade_processor_id(); 350 uv_cpu = uv_blade_processor_id();
321 this_blade = uv_numa_blade_id(); 351 this_pnode = uv_hub_info->pnode;
322 bau_desc = __get_cpu_var(bau_control).descriptor_base; 352 bau_desc = __get_cpu_var(bau_control).descriptor_base;
323 bau_desc += UV_ITEMS_PER_DESCRIPTOR * uv_cpu; 353 bau_desc += UV_ITEMS_PER_DESCRIPTOR * uv_cpu;
324 354
@@ -326,13 +356,14 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
326 356
327 i = 0; 357 i = 0;
328 for_each_cpu(bit, flush_mask) { 358 for_each_cpu(bit, flush_mask) {
329 blade = uv_cpu_to_blade_id(bit); 359 pnode = uv_cpu_to_pnode(bit);
330 BUG_ON(blade > (UV_DISTRIBUTION_SIZE - 1)); 360 BUG_ON(pnode > (UV_DISTRIBUTION_SIZE - 1));
331 if (blade == this_blade) { 361 if (pnode == this_pnode) {
332 locals++; 362 locals++;
333 continue; 363 continue;
334 } 364 }
335 bau_node_set(blade, &bau_desc->distribution); 365 bau_node_set(pnode - uv_partition_base_pnode,
366 &bau_desc->distribution);
336 i++; 367 i++;
337 } 368 }
338 if (i == 0) { 369 if (i == 0) {
@@ -350,7 +381,7 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
350 bau_desc->payload.address = va; 381 bau_desc->payload.address = va;
351 bau_desc->payload.sending_cpu = cpu; 382 bau_desc->payload.sending_cpu = cpu;
352 383
353 return uv_flush_send_and_wait(uv_cpu, this_blade, bau_desc, flush_mask); 384 return uv_flush_send_and_wait(uv_cpu, this_pnode, bau_desc, flush_mask);
354} 385}
355 386
356/* 387/*
@@ -418,24 +449,58 @@ void uv_bau_message_interrupt(struct pt_regs *regs)
418 set_irq_regs(old_regs); 449 set_irq_regs(old_regs);
419} 450}
420 451
452/*
453 * uv_enable_timeouts
454 *
455 * Each target blade (i.e. blades that have cpu's) needs to have
456 * shootdown message timeouts enabled. The timeout does not cause
457 * an interrupt, but causes an error message to be returned to
458 * the sender.
459 */
421static void uv_enable_timeouts(void) 460static void uv_enable_timeouts(void)
422{ 461{
423 int i;
424 int blade; 462 int blade;
425 int last_blade; 463 int nblades;
426 int pnode; 464 int pnode;
427 int cur_cpu = 0; 465 unsigned long mmr_image;
428 unsigned long apicid;
429 466
430 last_blade = -1; 467 nblades = uv_num_possible_blades();
431 for_each_online_node(i) { 468
432 blade = uv_node_to_blade_id(i); 469 for (blade = 0; blade < nblades; blade++) {
433 if (blade == last_blade) 470 if (!uv_blade_nr_possible_cpus(blade))
434 continue; 471 continue;
435 last_blade = blade; 472
436 apicid = per_cpu(x86_cpu_to_apicid, cur_cpu);
437 pnode = uv_blade_to_pnode(blade); 473 pnode = uv_blade_to_pnode(blade);
438 cur_cpu += uv_blade_nr_possible_cpus(i); 474 mmr_image =
475 uv_read_global_mmr64(pnode, UVH_LB_BAU_MISC_CONTROL);
476 /*
477 * Set the timeout period and then lock it in, in three
478 * steps; captures and locks in the period.
479 *
480 * To program the period, the SOFT_ACK_MODE must be off.
481 */
482 mmr_image &= ~((unsigned long)1 <<
483 UV_ENABLE_INTD_SOFT_ACK_MODE_SHIFT);
484 uv_write_global_mmr64
485 (pnode, UVH_LB_BAU_MISC_CONTROL, mmr_image);
486 /*
487 * Set the 4-bit period.
488 */
489 mmr_image &= ~((unsigned long)0xf <<
490 UV_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHIFT);
491 mmr_image |= (UV_INTD_SOFT_ACK_TIMEOUT_PERIOD <<
492 UV_INTD_SOFT_ACK_TIMEOUT_PERIOD_SHIFT);
493 uv_write_global_mmr64
494 (pnode, UVH_LB_BAU_MISC_CONTROL, mmr_image);
495 /*
496 * Subsequent reversals of the timebase bit (3) cause an
497 * immediate timeout of one or all INTD resources as
498 * indicated in bits 2:0 (7 causes all of them to timeout).
499 */
500 mmr_image |= ((unsigned long)1 <<
501 UV_ENABLE_INTD_SOFT_ACK_MODE_SHIFT);
502 uv_write_global_mmr64
503 (pnode, UVH_LB_BAU_MISC_CONTROL, mmr_image);
439 } 504 }
440} 505}
441 506
@@ -482,8 +547,7 @@ static int uv_ptc_seq_show(struct seq_file *file, void *data)
482 stat->requestee, stat->onetlb, stat->alltlb, 547 stat->requestee, stat->onetlb, stat->alltlb,
483 stat->s_retry, stat->d_retry, stat->ptc_i); 548 stat->s_retry, stat->d_retry, stat->ptc_i);
484 seq_printf(file, "%lx %ld %ld %ld %ld %ld %ld\n", 549 seq_printf(file, "%lx %ld %ld %ld %ld %ld %ld\n",
485 uv_read_global_mmr64(uv_blade_to_pnode 550 uv_read_global_mmr64(uv_cpu_to_pnode(cpu),
486 (uv_cpu_to_blade_id(cpu)),
487 UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE), 551 UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE),
488 stat->sflush, stat->dflush, 552 stat->sflush, stat->dflush,
489 stat->retriesok, stat->nomsg, 553 stat->retriesok, stat->nomsg,
@@ -617,16 +681,18 @@ static struct bau_control * __init uv_table_bases_init(int blade, int node)
617 * finish the initialization of the per-blade control structures 681 * finish the initialization of the per-blade control structures
618 */ 682 */
619static void __init 683static void __init
620uv_table_bases_finish(int blade, int node, int cur_cpu, 684uv_table_bases_finish(int blade,
621 struct bau_control *bau_tablesp, 685 struct bau_control *bau_tablesp,
622 struct bau_desc *adp) 686 struct bau_desc *adp)
623{ 687{
624 struct bau_control *bcp; 688 struct bau_control *bcp;
625 int i; 689 int cpu;
626 690
627 for (i = cur_cpu; i < cur_cpu + uv_blade_nr_possible_cpus(blade); i++) { 691 for_each_present_cpu(cpu) {
628 bcp = (struct bau_control *)&per_cpu(bau_control, i); 692 if (blade != uv_cpu_to_blade_id(cpu))
693 continue;
629 694
695 bcp = (struct bau_control *)&per_cpu(bau_control, cpu);
630 bcp->bau_msg_head = bau_tablesp->va_queue_first; 696 bcp->bau_msg_head = bau_tablesp->va_queue_first;
631 bcp->va_queue_first = bau_tablesp->va_queue_first; 697 bcp->va_queue_first = bau_tablesp->va_queue_first;
632 bcp->va_queue_last = bau_tablesp->va_queue_last; 698 bcp->va_queue_last = bau_tablesp->va_queue_last;
@@ -649,11 +715,10 @@ uv_activation_descriptor_init(int node, int pnode)
649 struct bau_desc *adp; 715 struct bau_desc *adp;
650 struct bau_desc *ad2; 716 struct bau_desc *ad2;
651 717
652 adp = (struct bau_desc *) 718 adp = (struct bau_desc *)kmalloc_node(16384, GFP_KERNEL, node);
653 kmalloc_node(16384, GFP_KERNEL, node);
654 BUG_ON(!adp); 719 BUG_ON(!adp);
655 720
656 pa = __pa((unsigned long)adp); 721 pa = uv_gpa(adp); /* need the real nasid*/
657 n = pa >> uv_nshift; 722 n = pa >> uv_nshift;
658 m = pa & uv_mmask; 723 m = pa & uv_mmask;
659 724
@@ -667,8 +732,12 @@ uv_activation_descriptor_init(int node, int pnode)
667 for (i = 0, ad2 = adp; i < UV_ACTIVATION_DESCRIPTOR_SIZE; i++, ad2++) { 732 for (i = 0, ad2 = adp; i < UV_ACTIVATION_DESCRIPTOR_SIZE; i++, ad2++) {
668 memset(ad2, 0, sizeof(struct bau_desc)); 733 memset(ad2, 0, sizeof(struct bau_desc));
669 ad2->header.sw_ack_flag = 1; 734 ad2->header.sw_ack_flag = 1;
670 ad2->header.base_dest_nodeid = 735 /*
671 uv_blade_to_pnode(uv_cpu_to_blade_id(0)); 736 * base_dest_nodeid is the first node in the partition, so
737 * the bit map will indicate partition-relative node numbers.
738 * note that base_dest_nodeid is actually a nasid.
739 */
740 ad2->header.base_dest_nodeid = uv_partition_base_pnode << 1;
672 ad2->header.command = UV_NET_ENDPOINT_INTD; 741 ad2->header.command = UV_NET_ENDPOINT_INTD;
673 ad2->header.int_both = 1; 742 ad2->header.int_both = 1;
674 /* 743 /*
@@ -686,6 +755,8 @@ static struct bau_payload_queue_entry * __init
686uv_payload_queue_init(int node, int pnode, struct bau_control *bau_tablesp) 755uv_payload_queue_init(int node, int pnode, struct bau_control *bau_tablesp)
687{ 756{
688 struct bau_payload_queue_entry *pqp; 757 struct bau_payload_queue_entry *pqp;
758 unsigned long pa;
759 int pn;
689 char *cp; 760 char *cp;
690 761
691 pqp = (struct bau_payload_queue_entry *) kmalloc_node( 762 pqp = (struct bau_payload_queue_entry *) kmalloc_node(
@@ -696,10 +767,14 @@ uv_payload_queue_init(int node, int pnode, struct bau_control *bau_tablesp)
696 cp = (char *)pqp + 31; 767 cp = (char *)pqp + 31;
697 pqp = (struct bau_payload_queue_entry *)(((unsigned long)cp >> 5) << 5); 768 pqp = (struct bau_payload_queue_entry *)(((unsigned long)cp >> 5) << 5);
698 bau_tablesp->va_queue_first = pqp; 769 bau_tablesp->va_queue_first = pqp;
770 /*
771 * need the pnode of where the memory was really allocated
772 */
773 pa = uv_gpa(pqp);
774 pn = pa >> uv_nshift;
699 uv_write_global_mmr64(pnode, 775 uv_write_global_mmr64(pnode,
700 UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST, 776 UVH_LB_BAU_INTD_PAYLOAD_QUEUE_FIRST,
701 ((unsigned long)pnode << 777 ((unsigned long)pn << UV_PAYLOADQ_PNODE_SHIFT) |
702 UV_PAYLOADQ_PNODE_SHIFT) |
703 uv_physnodeaddr(pqp)); 778 uv_physnodeaddr(pqp));
704 uv_write_global_mmr64(pnode, UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL, 779 uv_write_global_mmr64(pnode, UVH_LB_BAU_INTD_PAYLOAD_QUEUE_TAIL,
705 uv_physnodeaddr(pqp)); 780 uv_physnodeaddr(pqp));
@@ -715,8 +790,9 @@ uv_payload_queue_init(int node, int pnode, struct bau_control *bau_tablesp)
715/* 790/*
716 * Initialization of each UV blade's structures 791 * Initialization of each UV blade's structures
717 */ 792 */
718static int __init uv_init_blade(int blade, int node, int cur_cpu) 793static int __init uv_init_blade(int blade)
719{ 794{
795 int node;
720 int pnode; 796 int pnode;
721 unsigned long pa; 797 unsigned long pa;
722 unsigned long apicid; 798 unsigned long apicid;
@@ -724,16 +800,17 @@ static int __init uv_init_blade(int blade, int node, int cur_cpu)
724 struct bau_payload_queue_entry *pqp; 800 struct bau_payload_queue_entry *pqp;
725 struct bau_control *bau_tablesp; 801 struct bau_control *bau_tablesp;
726 802
803 node = blade_to_first_node(blade);
727 bau_tablesp = uv_table_bases_init(blade, node); 804 bau_tablesp = uv_table_bases_init(blade, node);
728 pnode = uv_blade_to_pnode(blade); 805 pnode = uv_blade_to_pnode(blade);
729 adp = uv_activation_descriptor_init(node, pnode); 806 adp = uv_activation_descriptor_init(node, pnode);
730 pqp = uv_payload_queue_init(node, pnode, bau_tablesp); 807 pqp = uv_payload_queue_init(node, pnode, bau_tablesp);
731 uv_table_bases_finish(blade, node, cur_cpu, bau_tablesp, adp); 808 uv_table_bases_finish(blade, bau_tablesp, adp);
732 /* 809 /*
733 * the below initialization can't be in firmware because the 810 * the below initialization can't be in firmware because the
734 * messaging IRQ will be determined by the OS 811 * messaging IRQ will be determined by the OS
735 */ 812 */
736 apicid = per_cpu(x86_cpu_to_apicid, cur_cpu); 813 apicid = blade_to_first_apicid(blade);
737 pa = uv_read_global_mmr64(pnode, UVH_BAU_DATA_CONFIG); 814 pa = uv_read_global_mmr64(pnode, UVH_BAU_DATA_CONFIG);
738 if ((pa & 0xff) != UV_BAU_MESSAGE) { 815 if ((pa & 0xff) != UV_BAU_MESSAGE) {
739 uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG, 816 uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG,
@@ -748,9 +825,7 @@ static int __init uv_init_blade(int blade, int node, int cur_cpu)
748static int __init uv_bau_init(void) 825static int __init uv_bau_init(void)
749{ 826{
750 int blade; 827 int blade;
751 int node;
752 int nblades; 828 int nblades;
753 int last_blade;
754 int cur_cpu; 829 int cur_cpu;
755 830
756 if (!is_uv_system()) 831 if (!is_uv_system())
@@ -763,29 +838,21 @@ static int __init uv_bau_init(void)
763 uv_bau_retry_limit = 1; 838 uv_bau_retry_limit = 1;
764 uv_nshift = uv_hub_info->n_val; 839 uv_nshift = uv_hub_info->n_val;
765 uv_mmask = (1UL << uv_hub_info->n_val) - 1; 840 uv_mmask = (1UL << uv_hub_info->n_val) - 1;
766 nblades = 0; 841 nblades = uv_num_possible_blades();
767 last_blade = -1; 842
768 cur_cpu = 0;
769 for_each_online_node(node) {
770 blade = uv_node_to_blade_id(node);
771 if (blade == last_blade)
772 continue;
773 last_blade = blade;
774 nblades++;
775 }
776 uv_bau_table_bases = (struct bau_control **) 843 uv_bau_table_bases = (struct bau_control **)
777 kmalloc(nblades * sizeof(struct bau_control *), GFP_KERNEL); 844 kmalloc(nblades * sizeof(struct bau_control *), GFP_KERNEL);
778 BUG_ON(!uv_bau_table_bases); 845 BUG_ON(!uv_bau_table_bases);
779 846
780 last_blade = -1; 847 uv_partition_base_pnode = 0x7fffffff;
781 for_each_online_node(node) { 848 for (blade = 0; blade < nblades; blade++)
782 blade = uv_node_to_blade_id(node); 849 if (uv_blade_nr_possible_cpus(blade) &&
783 if (blade == last_blade) 850 (uv_blade_to_pnode(blade) < uv_partition_base_pnode))
784 continue; 851 uv_partition_base_pnode = uv_blade_to_pnode(blade);
785 last_blade = blade; 852 for (blade = 0; blade < nblades; blade++)
786 uv_init_blade(blade, node, cur_cpu); 853 if (uv_blade_nr_possible_cpus(blade))
787 cur_cpu += uv_blade_nr_possible_cpus(blade); 854 uv_init_blade(blade);
788 } 855
789 alloc_intr_gate(UV_BAU_MESSAGE, uv_bau_message_intr1); 856 alloc_intr_gate(UV_BAU_MESSAGE, uv_bau_message_intr1);
790 uv_enable_timeouts(); 857 uv_enable_timeouts();
791 858
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 7a567ebe6361..d57de05dc430 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -699,7 +699,7 @@ static struct clocksource clocksource_tsc;
699 * code, which is necessary to support wrapping clocksources like pm 699 * code, which is necessary to support wrapping clocksources like pm
700 * timer. 700 * timer.
701 */ 701 */
702static cycle_t read_tsc(void) 702static cycle_t read_tsc(struct clocksource *cs)
703{ 703{
704 cycle_t ret = (cycle_t)get_cycles(); 704 cycle_t ret = (cycle_t)get_cycles();
705 705
diff --git a/arch/x86/kernel/uv_sysfs.c b/arch/x86/kernel/uv_sysfs.c
index 67f9b9dbf800..36afb98675a4 100644
--- a/arch/x86/kernel/uv_sysfs.c
+++ b/arch/x86/kernel/uv_sysfs.c
@@ -21,6 +21,7 @@
21 21
22#include <linux/sysdev.h> 22#include <linux/sysdev.h>
23#include <asm/uv/bios.h> 23#include <asm/uv/bios.h>
24#include <asm/uv/uv.h>
24 25
25struct kobject *sgi_uv_kobj; 26struct kobject *sgi_uv_kobj;
26 27
@@ -47,6 +48,9 @@ static int __init sgi_uv_sysfs_init(void)
47{ 48{
48 unsigned long ret; 49 unsigned long ret;
49 50
51 if (!is_uv_system())
52 return -ENODEV;
53
50 if (!sgi_uv_kobj) 54 if (!sgi_uv_kobj)
51 sgi_uv_kobj = kobject_create_and_add("sgi_uv", firmware_kobj); 55 sgi_uv_kobj = kobject_create_and_add("sgi_uv", firmware_kobj);
52 if (!sgi_uv_kobj) { 56 if (!sgi_uv_kobj) {
diff --git a/arch/x86/kernel/uv_time.c b/arch/x86/kernel/uv_time.c
index 2ffb6c53326e..583f11d5c480 100644
--- a/arch/x86/kernel/uv_time.c
+++ b/arch/x86/kernel/uv_time.c
@@ -29,7 +29,7 @@
29 29
30#define RTC_NAME "sgi_rtc" 30#define RTC_NAME "sgi_rtc"
31 31
32static cycle_t uv_read_rtc(void); 32static cycle_t uv_read_rtc(struct clocksource *cs);
33static int uv_rtc_next_event(unsigned long, struct clock_event_device *); 33static int uv_rtc_next_event(unsigned long, struct clock_event_device *);
34static void uv_rtc_timer_setup(enum clock_event_mode, 34static void uv_rtc_timer_setup(enum clock_event_mode,
35 struct clock_event_device *); 35 struct clock_event_device *);
@@ -123,7 +123,7 @@ static int uv_setup_intr(int cpu, u64 expires)
123 /* Initialize comparator value */ 123 /* Initialize comparator value */
124 uv_write_global_mmr64(pnode, UVH_INT_CMPB, expires); 124 uv_write_global_mmr64(pnode, UVH_INT_CMPB, expires);
125 125
126 return (expires < uv_read_rtc() && !uv_intr_pending(pnode)); 126 return (expires < uv_read_rtc(NULL) && !uv_intr_pending(pnode));
127} 127}
128 128
129/* 129/*
@@ -256,7 +256,7 @@ static int uv_rtc_unset_timer(int cpu)
256 256
257 spin_lock_irqsave(&head->lock, flags); 257 spin_lock_irqsave(&head->lock, flags);
258 258
259 if (head->next_cpu == bcpu && uv_read_rtc() >= *t) 259 if (head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t)
260 rc = 1; 260 rc = 1;
261 261
262 *t = ULLONG_MAX; 262 *t = ULLONG_MAX;
@@ -278,7 +278,7 @@ static int uv_rtc_unset_timer(int cpu)
278/* 278/*
279 * Read the RTC. 279 * Read the RTC.
280 */ 280 */
281static cycle_t uv_read_rtc(void) 281static cycle_t uv_read_rtc(struct clocksource *cs)
282{ 282{
283 return (cycle_t)uv_read_local_mmr(UVH_RTC); 283 return (cycle_t)uv_read_local_mmr(UVH_RTC);
284} 284}
@@ -291,7 +291,7 @@ static int uv_rtc_next_event(unsigned long delta,
291{ 291{
292 int ced_cpu = cpumask_first(ced->cpumask); 292 int ced_cpu = cpumask_first(ced->cpumask);
293 293
294 return uv_rtc_set_timer(ced_cpu, delta + uv_read_rtc()); 294 return uv_rtc_set_timer(ced_cpu, delta + uv_read_rtc(NULL));
295} 295}
296 296
297/* 297/*
diff --git a/arch/x86/kernel/vmiclock_32.c b/arch/x86/kernel/vmiclock_32.c
index d303369a7bad..2b3eb82efeeb 100644
--- a/arch/x86/kernel/vmiclock_32.c
+++ b/arch/x86/kernel/vmiclock_32.c
@@ -283,7 +283,7 @@ void __devinit vmi_time_ap_init(void)
283/** vmi clocksource */ 283/** vmi clocksource */
284static struct clocksource clocksource_vmi; 284static struct clocksource clocksource_vmi;
285 285
286static cycle_t read_real_cycles(void) 286static cycle_t read_real_cycles(struct clocksource *cs)
287{ 287{
288 cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL); 288 cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL);
289 return max(ret, clocksource_vmi.cycle_last); 289 return max(ret, clocksource_vmi.cycle_last);
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
index 0a5b04aa98f1..c5ee17e8c6d9 100644
--- a/arch/x86/kernel/xsave.c
+++ b/arch/x86/kernel/xsave.c
@@ -89,7 +89,7 @@ int save_i387_xstate(void __user *buf)
89 89
90 if (!used_math()) 90 if (!used_math())
91 return 0; 91 return 0;
92 clear_used_math(); /* trigger finit */ 92
93 if (task_thread_info(tsk)->status & TS_USEDFPU) { 93 if (task_thread_info(tsk)->status & TS_USEDFPU) {
94 /* 94 /*
95 * Start with clearing the user buffer. This will present a 95 * Start with clearing the user buffer. This will present a
@@ -114,6 +114,8 @@ int save_i387_xstate(void __user *buf)
114 return -1; 114 return -1;
115 } 115 }
116 116
117 clear_used_math(); /* trigger finit */
118
117 if (task_thread_info(tsk)->status & TS_XSAVE) { 119 if (task_thread_info(tsk)->status & TS_XSAVE) {
118 struct _fpstate __user *fx = buf; 120 struct _fpstate __user *fx = buf;
119 struct _xstate __user *x = buf; 121 struct _xstate __user *x = buf;
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 2a36f7f7c4c7..b6caf1329b1b 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1248,7 +1248,7 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,
1248 pgprintk("%s: adding gfn %lx role %x\n", __func__, gfn, role.word); 1248 pgprintk("%s: adding gfn %lx role %x\n", __func__, gfn, role.word);
1249 sp->gfn = gfn; 1249 sp->gfn = gfn;
1250 sp->role = role; 1250 sp->role = role;
1251 sp->global = role.cr4_pge; 1251 sp->global = 0;
1252 hlist_add_head(&sp->hash_link, bucket); 1252 hlist_add_head(&sp->hash_link, bucket);
1253 if (!direct) { 1253 if (!direct) {
1254 if (rmap_write_protect(vcpu->kvm, gfn)) 1254 if (rmap_write_protect(vcpu->kvm, gfn))
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 1821c2078199..1f8510c51d6e 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -411,7 +411,6 @@ static __init int svm_hardware_setup(void)
411 411
412 iopm_va = page_address(iopm_pages); 412 iopm_va = page_address(iopm_pages);
413 memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER)); 413 memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER));
414 clear_bit(0x80, iopm_va); /* allow direct access to PC debug port */
415 iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; 414 iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT;
416 415
417 if (boot_cpu_has(X86_FEATURE_NX)) 416 if (boot_cpu_has(X86_FEATURE_NX))
@@ -796,6 +795,11 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
796 var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1; 795 var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1;
797 var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1; 796 var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1;
798 797
798 /* AMD's VMCB does not have an explicit unusable field, so emulate it
799 * for cross vendor migration purposes by "not present"
800 */
801 var->unusable = !var->present || (var->type == 0);
802
799 switch (seg) { 803 switch (seg) {
800 case VCPU_SREG_CS: 804 case VCPU_SREG_CS:
801 /* 805 /*
@@ -827,8 +831,6 @@ static void svm_get_segment(struct kvm_vcpu *vcpu,
827 var->type |= 0x1; 831 var->type |= 0x1;
828 break; 832 break;
829 } 833 }
830
831 var->unusable = !var->present;
832} 834}
833 835
834static int svm_get_cpl(struct kvm_vcpu *vcpu) 836static int svm_get_cpl(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 8ca100a9ecac..49079a46687b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1121,9 +1121,9 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
1121 1121
1122static int is_efer_nx(void) 1122static int is_efer_nx(void)
1123{ 1123{
1124 u64 efer; 1124 unsigned long long efer = 0;
1125 1125
1126 rdmsrl(MSR_EFER, efer); 1126 rdmsrl_safe(MSR_EFER, &efer);
1127 return efer & EFER_NX; 1127 return efer & EFER_NX;
1128} 1128}
1129 1129
@@ -1259,7 +1259,7 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,
1259 bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) | 1259 bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) |
1260 bit(X86_FEATURE_MMX) | bit(X86_FEATURE_FXSR) | 1260 bit(X86_FEATURE_MMX) | bit(X86_FEATURE_FXSR) |
1261 bit(X86_FEATURE_SYSCALL) | 1261 bit(X86_FEATURE_SYSCALL) |
1262 (bit(X86_FEATURE_NX) && is_efer_nx()) | 1262 (is_efer_nx() ? bit(X86_FEATURE_NX) : 0) |
1263#ifdef CONFIG_X86_64 1263#ifdef CONFIG_X86_64
1264 bit(X86_FEATURE_LM) | 1264 bit(X86_FEATURE_LM) |
1265#endif 1265#endif
@@ -2775,6 +2775,9 @@ out:
2775 2775
2776void kvm_arch_exit(void) 2776void kvm_arch_exit(void)
2777{ 2777{
2778 if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
2779 cpufreq_unregister_notifier(&kvmclock_cpufreq_notifier_block,
2780 CPUFREQ_TRANSITION_NOTIFIER);
2778 kvm_x86_ops = NULL; 2781 kvm_x86_ops = NULL;
2779 kvm_mmu_module_exit(); 2782 kvm_mmu_module_exit();
2780} 2783}
@@ -4159,6 +4162,11 @@ EXPORT_SYMBOL_GPL(kvm_put_guest_fpu);
4159 4162
4160void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu) 4163void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
4161{ 4164{
4165 if (vcpu->arch.time_page) {
4166 kvm_release_page_dirty(vcpu->arch.time_page);
4167 vcpu->arch.time_page = NULL;
4168 }
4169
4162 kvm_x86_ops->vcpu_free(vcpu); 4170 kvm_x86_ops->vcpu_free(vcpu);
4163} 4171}
4164 4172
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index e94a11e42f98..ca7ec44bafc3 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -273,15 +273,15 @@ static void lguest_load_idt(const struct desc_ptr *desc)
273 * controls the entire thing and the Guest asks it to make changes using the 273 * controls the entire thing and the Guest asks it to make changes using the
274 * LOAD_GDT hypercall. 274 * LOAD_GDT hypercall.
275 * 275 *
276 * This is the opposite of the IDT code where we have a LOAD_IDT_ENTRY 276 * This is the exactly like the IDT code.
277 * hypercall and use that repeatedly to load a new IDT. I don't think it
278 * really matters, but wouldn't it be nice if they were the same? Wouldn't
279 * it be even better if you were the one to send the patch to fix it?
280 */ 277 */
281static void lguest_load_gdt(const struct desc_ptr *desc) 278static void lguest_load_gdt(const struct desc_ptr *desc)
282{ 279{
283 BUG_ON((desc->size + 1) / 8 != GDT_ENTRIES); 280 unsigned int i;
284 kvm_hypercall2(LHCALL_LOAD_GDT, __pa(desc->address), GDT_ENTRIES); 281 struct desc_struct *gdt = (void *)desc->address;
282
283 for (i = 0; i < (desc->size+1)/8; i++)
284 kvm_hypercall3(LHCALL_LOAD_GDT_ENTRY, i, gdt[i].a, gdt[i].b);
285} 285}
286 286
287/* For a single GDT entry which changes, we do the lazy thing: alter our GDT, 287/* For a single GDT entry which changes, we do the lazy thing: alter our GDT,
@@ -291,7 +291,9 @@ static void lguest_write_gdt_entry(struct desc_struct *dt, int entrynum,
291 const void *desc, int type) 291 const void *desc, int type)
292{ 292{
293 native_write_gdt_entry(dt, entrynum, desc, type); 293 native_write_gdt_entry(dt, entrynum, desc, type);
294 kvm_hypercall2(LHCALL_LOAD_GDT, __pa(dt), GDT_ENTRIES); 294 /* Tell Host about this new entry. */
295 kvm_hypercall3(LHCALL_LOAD_GDT_ENTRY, entrynum,
296 dt[entrynum].a, dt[entrynum].b);
295} 297}
296 298
297/* OK, I lied. There are three "thread local storage" GDT entries which change 299/* OK, I lied. There are three "thread local storage" GDT entries which change
@@ -661,7 +663,7 @@ static unsigned long lguest_tsc_khz(void)
661 663
662/* If we can't use the TSC, the kernel falls back to our lower-priority 664/* If we can't use the TSC, the kernel falls back to our lower-priority
663 * "lguest_clock", where we read the time value given to us by the Host. */ 665 * "lguest_clock", where we read the time value given to us by the Host. */
664static cycle_t lguest_clock_read(void) 666static cycle_t lguest_clock_read(struct clocksource *cs)
665{ 667{
666 unsigned long sec, nsec; 668 unsigned long sec, nsec;
667 669
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index fd3da1dda1c9..ae4f7b5d7104 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -7,6 +7,7 @@
7#include <asm/page.h> 7#include <asm/page.h>
8#include <asm/page_types.h> 8#include <asm/page_types.h>
9#include <asm/sections.h> 9#include <asm/sections.h>
10#include <asm/setup.h>
10#include <asm/system.h> 11#include <asm/system.h>
11#include <asm/tlbflush.h> 12#include <asm/tlbflush.h>
12 13
@@ -304,8 +305,23 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
304#endif 305#endif
305 306
306#ifdef CONFIG_X86_64 307#ifdef CONFIG_X86_64
307 if (!after_bootmem) 308 if (!after_bootmem && !start) {
309 pud_t *pud;
310 pmd_t *pmd;
311
308 mmu_cr4_features = read_cr4(); 312 mmu_cr4_features = read_cr4();
313
314 /*
315 * _brk_end cannot change anymore, but it and _end may be
316 * located on different 2M pages. cleanup_highmap(), however,
317 * can only consider _end when it runs, so destroy any
318 * mappings beyond _brk_end here.
319 */
320 pud = pud_offset(pgd_offset_k(_brk_end), _brk_end);
321 pmd = pmd_offset(pud, _brk_end - 1);
322 while (++pmd <= pmd_offset(pud, (unsigned long)_end - 1))
323 pmd_clear(pmd);
324 }
309#endif 325#endif
310 __flush_tlb_all(); 326 __flush_tlb_all();
311 327
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 09daebfdb11c..8a450930834f 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -280,15 +280,16 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
280 return NULL; 280 return NULL;
281 area->phys_addr = phys_addr; 281 area->phys_addr = phys_addr;
282 vaddr = (unsigned long) area->addr; 282 vaddr = (unsigned long) area->addr;
283 if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) { 283
284 if (kernel_map_sync_memtype(phys_addr, size, prot_val)) {
284 free_memtype(phys_addr, phys_addr + size); 285 free_memtype(phys_addr, phys_addr + size);
285 free_vm_area(area); 286 free_vm_area(area);
286 return NULL; 287 return NULL;
287 } 288 }
288 289
289 if (ioremap_change_attr(vaddr, size, prot_val) < 0) { 290 if (ioremap_page_range(vaddr, vaddr + size, phys_addr, prot)) {
290 free_memtype(phys_addr, phys_addr + size); 291 free_memtype(phys_addr, phys_addr + size);
291 vunmap(area->addr); 292 free_vm_area(area);
292 return NULL; 293 return NULL;
293 } 294 }
294 295
@@ -374,7 +375,8 @@ static void __iomem *ioremap_default(resource_size_t phys_addr,
374 * - UC_MINUS for non-WB-able memory with no other conflicting mappings 375 * - UC_MINUS for non-WB-able memory with no other conflicting mappings
375 * - Inherit from confliting mappings otherwise 376 * - Inherit from confliting mappings otherwise
376 */ 377 */
377 err = reserve_memtype(phys_addr, phys_addr + size, -1, &flags); 378 err = reserve_memtype(phys_addr, phys_addr + size,
379 _PAGE_CACHE_WB, &flags);
378 if (err < 0) 380 if (err < 0)
379 return NULL; 381 return NULL;
380 382
diff --git a/arch/x86/mm/kmmio.c b/arch/x86/mm/kmmio.c
index 4f115e00486b..50dc802a1c46 100644
--- a/arch/x86/mm/kmmio.c
+++ b/arch/x86/mm/kmmio.c
@@ -87,7 +87,7 @@ static struct kmmio_probe *get_kmmio_probe(unsigned long addr)
87{ 87{
88 struct kmmio_probe *p; 88 struct kmmio_probe *p;
89 list_for_each_entry_rcu(p, &kmmio_probes, list) { 89 list_for_each_entry_rcu(p, &kmmio_probes, list) {
90 if (addr >= p->addr && addr <= (p->addr + p->len)) 90 if (addr >= p->addr && addr < (p->addr + p->len))
91 return p; 91 return p;
92 } 92 }
93 return NULL; 93 return NULL;
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 3daefa04ace5..d2530062fe00 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -257,7 +257,7 @@ void resume_map_numa_kva(pgd_t *pgd_base)
257} 257}
258#endif 258#endif
259 259
260static unsigned long calculate_numa_remap_pages(void) 260static __init unsigned long calculate_numa_remap_pages(void)
261{ 261{
262 int nid; 262 int nid;
263 unsigned long size, reserve_pages = 0; 263 unsigned long size, reserve_pages = 0;
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index d73aaa892371..2d05a12029dc 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -188,6 +188,9 @@ void __init setup_node_bootmem(int nodeid, unsigned long start,
188 const int pgdat_size = roundup(sizeof(pg_data_t), PAGE_SIZE); 188 const int pgdat_size = roundup(sizeof(pg_data_t), PAGE_SIZE);
189 int nid; 189 int nid;
190 190
191 if (!end)
192 return;
193
191 start = roundup(start, ZONE_ALIGN); 194 start = roundup(start, ZONE_ALIGN);
192 195
193 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid, 196 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid,
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index d71e1b636ce6..797f9f107cb6 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -945,71 +945,94 @@ int _set_memory_uc(unsigned long addr, int numpages)
945 945
946int set_memory_uc(unsigned long addr, int numpages) 946int set_memory_uc(unsigned long addr, int numpages)
947{ 947{
948 int ret;
949
948 /* 950 /*
949 * for now UC MINUS. see comments in ioremap_nocache() 951 * for now UC MINUS. see comments in ioremap_nocache()
950 */ 952 */
951 if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE, 953 ret = reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE,
952 _PAGE_CACHE_UC_MINUS, NULL)) 954 _PAGE_CACHE_UC_MINUS, NULL);
953 return -EINVAL; 955 if (ret)
956 goto out_err;
957
958 ret = _set_memory_uc(addr, numpages);
959 if (ret)
960 goto out_free;
954 961
955 return _set_memory_uc(addr, numpages); 962 return 0;
963
964out_free:
965 free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE);
966out_err:
967 return ret;
956} 968}
957EXPORT_SYMBOL(set_memory_uc); 969EXPORT_SYMBOL(set_memory_uc);
958 970
959int set_memory_array_uc(unsigned long *addr, int addrinarray) 971int set_memory_array_uc(unsigned long *addr, int addrinarray)
960{ 972{
961 unsigned long start; 973 int i, j;
962 unsigned long end; 974 int ret;
963 int i; 975
964 /* 976 /*
965 * for now UC MINUS. see comments in ioremap_nocache() 977 * for now UC MINUS. see comments in ioremap_nocache()
966 */ 978 */
967 for (i = 0; i < addrinarray; i++) { 979 for (i = 0; i < addrinarray; i++) {
968 start = __pa(addr[i]); 980 ret = reserve_memtype(__pa(addr[i]), __pa(addr[i]) + PAGE_SIZE,
969 for (end = start + PAGE_SIZE; i < addrinarray - 1; end += PAGE_SIZE) { 981 _PAGE_CACHE_UC_MINUS, NULL);
970 if (end != __pa(addr[i + 1])) 982 if (ret)
971 break; 983 goto out_free;
972 i++;
973 }
974 if (reserve_memtype(start, end, _PAGE_CACHE_UC_MINUS, NULL))
975 goto out;
976 } 984 }
977 985
978 return change_page_attr_set(addr, addrinarray, 986 ret = change_page_attr_set(addr, addrinarray,
979 __pgprot(_PAGE_CACHE_UC_MINUS), 1); 987 __pgprot(_PAGE_CACHE_UC_MINUS), 1);
980out: 988 if (ret)
981 for (i = 0; i < addrinarray; i++) { 989 goto out_free;
982 unsigned long tmp = __pa(addr[i]); 990
983 991 return 0;
984 if (tmp == start) 992
985 break; 993out_free:
986 for (end = tmp + PAGE_SIZE; i < addrinarray - 1; end += PAGE_SIZE) { 994 for (j = 0; j < i; j++)
987 if (end != __pa(addr[i + 1])) 995 free_memtype(__pa(addr[j]), __pa(addr[j]) + PAGE_SIZE);
988 break; 996
989 i++; 997 return ret;
990 }
991 free_memtype(tmp, end);
992 }
993 return -EINVAL;
994} 998}
995EXPORT_SYMBOL(set_memory_array_uc); 999EXPORT_SYMBOL(set_memory_array_uc);
996 1000
997int _set_memory_wc(unsigned long addr, int numpages) 1001int _set_memory_wc(unsigned long addr, int numpages)
998{ 1002{
999 return change_page_attr_set(&addr, numpages, 1003 int ret;
1004 ret = change_page_attr_set(&addr, numpages,
1005 __pgprot(_PAGE_CACHE_UC_MINUS), 0);
1006
1007 if (!ret) {
1008 ret = change_page_attr_set(&addr, numpages,
1000 __pgprot(_PAGE_CACHE_WC), 0); 1009 __pgprot(_PAGE_CACHE_WC), 0);
1010 }
1011 return ret;
1001} 1012}
1002 1013
1003int set_memory_wc(unsigned long addr, int numpages) 1014int set_memory_wc(unsigned long addr, int numpages)
1004{ 1015{
1016 int ret;
1017
1005 if (!pat_enabled) 1018 if (!pat_enabled)
1006 return set_memory_uc(addr, numpages); 1019 return set_memory_uc(addr, numpages);
1007 1020
1008 if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE, 1021 ret = reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE,
1009 _PAGE_CACHE_WC, NULL)) 1022 _PAGE_CACHE_WC, NULL);
1010 return -EINVAL; 1023 if (ret)
1024 goto out_err;
1025
1026 ret = _set_memory_wc(addr, numpages);
1027 if (ret)
1028 goto out_free;
1029
1030 return 0;
1011 1031
1012 return _set_memory_wc(addr, numpages); 1032out_free:
1033 free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE);
1034out_err:
1035 return ret;
1013} 1036}
1014EXPORT_SYMBOL(set_memory_wc); 1037EXPORT_SYMBOL(set_memory_wc);
1015 1038
@@ -1021,29 +1044,31 @@ int _set_memory_wb(unsigned long addr, int numpages)
1021 1044
1022int set_memory_wb(unsigned long addr, int numpages) 1045int set_memory_wb(unsigned long addr, int numpages)
1023{ 1046{
1024 free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE); 1047 int ret;
1048
1049 ret = _set_memory_wb(addr, numpages);
1050 if (ret)
1051 return ret;
1025 1052
1026 return _set_memory_wb(addr, numpages); 1053 free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE);
1054 return 0;
1027} 1055}
1028EXPORT_SYMBOL(set_memory_wb); 1056EXPORT_SYMBOL(set_memory_wb);
1029 1057
1030int set_memory_array_wb(unsigned long *addr, int addrinarray) 1058int set_memory_array_wb(unsigned long *addr, int addrinarray)
1031{ 1059{
1032 int i; 1060 int i;
1061 int ret;
1033 1062
1034 for (i = 0; i < addrinarray; i++) { 1063 ret = change_page_attr_clear(addr, addrinarray,
1035 unsigned long start = __pa(addr[i]);
1036 unsigned long end;
1037
1038 for (end = start + PAGE_SIZE; i < addrinarray - 1; end += PAGE_SIZE) {
1039 if (end != __pa(addr[i + 1]))
1040 break;
1041 i++;
1042 }
1043 free_memtype(start, end);
1044 }
1045 return change_page_attr_clear(addr, addrinarray,
1046 __pgprot(_PAGE_CACHE_MASK), 1); 1064 __pgprot(_PAGE_CACHE_MASK), 1);
1065 if (ret)
1066 return ret;
1067
1068 for (i = 0; i < addrinarray; i++)
1069 free_memtype(__pa(addr[i]), __pa(addr[i]) + PAGE_SIZE);
1070
1071 return 0;
1047} 1072}
1048EXPORT_SYMBOL(set_memory_array_wb); 1073EXPORT_SYMBOL(set_memory_array_wb);
1049 1074
@@ -1136,6 +1161,8 @@ int set_pages_array_wb(struct page **pages, int addrinarray)
1136 1161
1137 retval = cpa_clear_pages_array(pages, addrinarray, 1162 retval = cpa_clear_pages_array(pages, addrinarray,
1138 __pgprot(_PAGE_CACHE_MASK)); 1163 __pgprot(_PAGE_CACHE_MASK));
1164 if (retval)
1165 return retval;
1139 1166
1140 for (i = 0; i < addrinarray; i++) { 1167 for (i = 0; i < addrinarray; i++) {
1141 start = (unsigned long)page_address(pages[i]); 1168 start = (unsigned long)page_address(pages[i]);
@@ -1143,7 +1170,7 @@ int set_pages_array_wb(struct page **pages, int addrinarray)
1143 free_memtype(start, end); 1170 free_memtype(start, end);
1144 } 1171 }
1145 1172
1146 return retval; 1173 return 0;
1147} 1174}
1148EXPORT_SYMBOL(set_pages_array_wb); 1175EXPORT_SYMBOL(set_pages_array_wb);
1149 1176
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index c009a241d562..e6718bb28065 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -182,10 +182,10 @@ static unsigned long pat_x_mtrr_type(u64 start, u64 end, unsigned long req_type)
182 u8 mtrr_type; 182 u8 mtrr_type;
183 183
184 mtrr_type = mtrr_type_lookup(start, end); 184 mtrr_type = mtrr_type_lookup(start, end);
185 if (mtrr_type == MTRR_TYPE_UNCACHABLE) 185 if (mtrr_type != MTRR_TYPE_WRBACK)
186 return _PAGE_CACHE_UC; 186 return _PAGE_CACHE_UC_MINUS;
187 if (mtrr_type == MTRR_TYPE_WRCOMB) 187
188 return _PAGE_CACHE_WC; 188 return _PAGE_CACHE_WB;
189 } 189 }
190 190
191 return req_type; 191 return req_type;
@@ -352,23 +352,13 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
352 return 0; 352 return 0;
353 } 353 }
354 354
355 if (req_type == -1) { 355 /*
356 /* 356 * Call mtrr_lookup to get the type hint. This is an
357 * Call mtrr_lookup to get the type hint. This is an 357 * optimization for /dev/mem mmap'ers into WB memory (BIOS
358 * optimization for /dev/mem mmap'ers into WB memory (BIOS 358 * tools and ACPI tools). Use WB request for WB memory and use
359 * tools and ACPI tools). Use WB request for WB memory and use 359 * UC_MINUS otherwise.
360 * UC_MINUS otherwise. 360 */
361 */ 361 actual_type = pat_x_mtrr_type(start, end, req_type & _PAGE_CACHE_MASK);
362 u8 mtrr_type = mtrr_type_lookup(start, end);
363
364 if (mtrr_type == MTRR_TYPE_WRBACK)
365 actual_type = _PAGE_CACHE_WB;
366 else
367 actual_type = _PAGE_CACHE_UC_MINUS;
368 } else {
369 actual_type = pat_x_mtrr_type(start, end,
370 req_type & _PAGE_CACHE_MASK);
371 }
372 362
373 if (new_type) 363 if (new_type)
374 *new_type = actual_type; 364 *new_type = actual_type;
@@ -546,9 +536,7 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
546int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn, 536int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
547 unsigned long size, pgprot_t *vma_prot) 537 unsigned long size, pgprot_t *vma_prot)
548{ 538{
549 u64 offset = ((u64) pfn) << PAGE_SHIFT; 539 unsigned long flags = _PAGE_CACHE_WB;
550 unsigned long flags = -1;
551 int retval;
552 540
553 if (!range_is_allowed(pfn, size)) 541 if (!range_is_allowed(pfn, size))
554 return 0; 542 return 0;
@@ -576,64 +564,11 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
576 } 564 }
577#endif 565#endif
578 566
579 /*
580 * With O_SYNC, we can only take UC_MINUS mapping. Fail if we cannot.
581 *
582 * Without O_SYNC, we want to get
583 * - WB for WB-able memory and no other conflicting mappings
584 * - UC_MINUS for non-WB-able memory with no other conflicting mappings
585 * - Inherit from confliting mappings otherwise
586 */
587 if (flags != -1) {
588 retval = reserve_memtype(offset, offset + size, flags, NULL);
589 } else {
590 retval = reserve_memtype(offset, offset + size, -1, &flags);
591 }
592
593 if (retval < 0)
594 return 0;
595
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) {
599 free_memtype(offset, offset + size);
600 printk(KERN_INFO
601 "%s:%d /dev/mem ioremap_change_attr failed %s for %Lx-%Lx\n",
602 current->comm, current->pid,
603 cattr_name(flags),
604 offset, (unsigned long long)(offset + size));
605 return 0;
606 }
607
608 *vma_prot = __pgprot((pgprot_val(*vma_prot) & ~_PAGE_CACHE_MASK) | 567 *vma_prot = __pgprot((pgprot_val(*vma_prot) & ~_PAGE_CACHE_MASK) |
609 flags); 568 flags);
610 return 1; 569 return 1;
611} 570}
612 571
613void map_devmem(unsigned long pfn, unsigned long size, pgprot_t vma_prot)
614{
615 unsigned long want_flags = (pgprot_val(vma_prot) & _PAGE_CACHE_MASK);
616 u64 addr = (u64)pfn << PAGE_SHIFT;
617 unsigned long flags;
618
619 reserve_memtype(addr, addr + size, want_flags, &flags);
620 if (flags != want_flags) {
621 printk(KERN_INFO
622 "%s:%d /dev/mem expected mapping type %s for %Lx-%Lx, got %s\n",
623 current->comm, current->pid,
624 cattr_name(want_flags),
625 addr, (unsigned long long)(addr + size),
626 cattr_name(flags));
627 }
628}
629
630void unmap_devmem(unsigned long pfn, unsigned long size, pgprot_t vma_prot)
631{
632 u64 addr = (u64)pfn << PAGE_SHIFT;
633
634 free_memtype(addr, addr + size);
635}
636
637/* 572/*
638 * Change the memory type for the physial address range in kernel identity 573 * Change the memory type for the physial address range in kernel identity
639 * mapping space if that range is a part of identity map. 574 * mapping space if that range is a part of identity map.
@@ -671,8 +606,8 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
671{ 606{
672 int is_ram = 0; 607 int is_ram = 0;
673 int ret; 608 int ret;
674 unsigned long flags;
675 unsigned long want_flags = (pgprot_val(*vma_prot) & _PAGE_CACHE_MASK); 609 unsigned long want_flags = (pgprot_val(*vma_prot) & _PAGE_CACHE_MASK);
610 unsigned long flags = want_flags;
676 611
677 is_ram = pat_pagerange_is_ram(paddr, paddr + size); 612 is_ram = pat_pagerange_is_ram(paddr, paddr + size);
678 613
@@ -734,29 +669,28 @@ static void free_pfn_range(u64 paddr, unsigned long size)
734 * 669 *
735 * If the vma has a linear pfn mapping for the entire range, we get the prot 670 * If the vma has a linear pfn mapping for the entire range, we get the prot
736 * from pte and reserve the entire vma range with single reserve_pfn_range call. 671 * from pte and reserve the entire vma range with single reserve_pfn_range call.
737 * Otherwise, we reserve the entire vma range, my ging through the PTEs page
738 * by page to get physical address and protection.
739 */ 672 */
740int track_pfn_vma_copy(struct vm_area_struct *vma) 673int track_pfn_vma_copy(struct vm_area_struct *vma)
741{ 674{
742 int retval = 0;
743 unsigned long i, j;
744 resource_size_t paddr; 675 resource_size_t paddr;
745 unsigned long prot; 676 unsigned long prot;
746 unsigned long vma_start = vma->vm_start; 677 unsigned long vma_size = vma->vm_end - vma->vm_start;
747 unsigned long vma_end = vma->vm_end;
748 unsigned long vma_size = vma_end - vma_start;
749 pgprot_t pgprot; 678 pgprot_t pgprot;
750 679
751 if (!pat_enabled) 680 if (!pat_enabled)
752 return 0; 681 return 0;
753 682
683 /*
684 * For now, only handle remap_pfn_range() vmas where
685 * is_linear_pfn_mapping() == TRUE. Handling of
686 * vm_insert_pfn() is TBD.
687 */
754 if (is_linear_pfn_mapping(vma)) { 688 if (is_linear_pfn_mapping(vma)) {
755 /* 689 /*
756 * reserve the whole chunk covered by vma. We need the 690 * reserve the whole chunk covered by vma. We need the
757 * starting address and protection from pte. 691 * starting address and protection from pte.
758 */ 692 */
759 if (follow_phys(vma, vma_start, 0, &prot, &paddr)) { 693 if (follow_phys(vma, vma->vm_start, 0, &prot, &paddr)) {
760 WARN_ON_ONCE(1); 694 WARN_ON_ONCE(1);
761 return -EINVAL; 695 return -EINVAL;
762 } 696 }
@@ -764,28 +698,7 @@ int track_pfn_vma_copy(struct vm_area_struct *vma)
764 return reserve_pfn_range(paddr, vma_size, &pgprot, 1); 698 return reserve_pfn_range(paddr, vma_size, &pgprot, 1);
765 } 699 }
766 700
767 /* reserve entire vma page by page, using pfn and prot from pte */
768 for (i = 0; i < vma_size; i += PAGE_SIZE) {
769 if (follow_phys(vma, vma_start + i, 0, &prot, &paddr))
770 continue;
771
772 pgprot = __pgprot(prot);
773 retval = reserve_pfn_range(paddr, PAGE_SIZE, &pgprot, 1);
774 if (retval)
775 goto cleanup_ret;
776 }
777 return 0; 701 return 0;
778
779cleanup_ret:
780 /* Reserve error: Cleanup partial reservation and return error */
781 for (j = 0; j < i; j += PAGE_SIZE) {
782 if (follow_phys(vma, vma_start + j, 0, &prot, &paddr))
783 continue;
784
785 free_pfn_range(paddr, PAGE_SIZE);
786 }
787
788 return retval;
789} 702}
790 703
791/* 704/*
@@ -795,50 +708,28 @@ cleanup_ret:
795 * prot is passed in as a parameter for the new mapping. If the vma has a 708 * prot is passed in as a parameter for the new mapping. If the vma has a
796 * linear pfn mapping for the entire range reserve the entire vma range with 709 * linear pfn mapping for the entire range reserve the entire vma range with
797 * single reserve_pfn_range call. 710 * single reserve_pfn_range call.
798 * Otherwise, we look t the pfn and size and reserve only the specified range
799 * page by page.
800 *
801 * Note that this function can be called with caller trying to map only a
802 * subrange/page inside the vma.
803 */ 711 */
804int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot, 712int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
805 unsigned long pfn, unsigned long size) 713 unsigned long pfn, unsigned long size)
806{ 714{
807 int retval = 0;
808 unsigned long i, j;
809 resource_size_t base_paddr;
810 resource_size_t paddr; 715 resource_size_t paddr;
811 unsigned long vma_start = vma->vm_start; 716 unsigned long vma_size = vma->vm_end - vma->vm_start;
812 unsigned long vma_end = vma->vm_end;
813 unsigned long vma_size = vma_end - vma_start;
814 717
815 if (!pat_enabled) 718 if (!pat_enabled)
816 return 0; 719 return 0;
817 720
721 /*
722 * For now, only handle remap_pfn_range() vmas where
723 * is_linear_pfn_mapping() == TRUE. Handling of
724 * vm_insert_pfn() is TBD.
725 */
818 if (is_linear_pfn_mapping(vma)) { 726 if (is_linear_pfn_mapping(vma)) {
819 /* reserve the whole chunk starting from vm_pgoff */ 727 /* reserve the whole chunk starting from vm_pgoff */
820 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT; 728 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
821 return reserve_pfn_range(paddr, vma_size, prot, 0); 729 return reserve_pfn_range(paddr, vma_size, prot, 0);
822 } 730 }
823 731
824 /* reserve page by page using pfn and size */
825 base_paddr = (resource_size_t)pfn << PAGE_SHIFT;
826 for (i = 0; i < size; i += PAGE_SIZE) {
827 paddr = base_paddr + i;
828 retval = reserve_pfn_range(paddr, PAGE_SIZE, prot, 0);
829 if (retval)
830 goto cleanup_ret;
831 }
832 return 0; 732 return 0;
833
834cleanup_ret:
835 /* Reserve error: Cleanup partial reservation and return error */
836 for (j = 0; j < i; j += PAGE_SIZE) {
837 paddr = base_paddr + j;
838 free_pfn_range(paddr, PAGE_SIZE);
839 }
840
841 return retval;
842} 733}
843 734
844/* 735/*
@@ -849,39 +740,23 @@ cleanup_ret:
849void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn, 740void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
850 unsigned long size) 741 unsigned long size)
851{ 742{
852 unsigned long i;
853 resource_size_t paddr; 743 resource_size_t paddr;
854 unsigned long prot; 744 unsigned long vma_size = vma->vm_end - vma->vm_start;
855 unsigned long vma_start = vma->vm_start;
856 unsigned long vma_end = vma->vm_end;
857 unsigned long vma_size = vma_end - vma_start;
858 745
859 if (!pat_enabled) 746 if (!pat_enabled)
860 return; 747 return;
861 748
749 /*
750 * For now, only handle remap_pfn_range() vmas where
751 * is_linear_pfn_mapping() == TRUE. Handling of
752 * vm_insert_pfn() is TBD.
753 */
862 if (is_linear_pfn_mapping(vma)) { 754 if (is_linear_pfn_mapping(vma)) {
863 /* free the whole chunk starting from vm_pgoff */ 755 /* free the whole chunk starting from vm_pgoff */
864 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT; 756 paddr = (resource_size_t)vma->vm_pgoff << PAGE_SHIFT;
865 free_pfn_range(paddr, vma_size); 757 free_pfn_range(paddr, vma_size);
866 return; 758 return;
867 } 759 }
868
869 if (size != 0 && size != vma_size) {
870 /* free page by page, using pfn and size */
871 paddr = (resource_size_t)pfn << PAGE_SHIFT;
872 for (i = 0; i < size; i += PAGE_SIZE) {
873 paddr = paddr + i;
874 free_pfn_range(paddr, PAGE_SIZE);
875 }
876 } else {
877 /* free entire vma, page by page, using the pfn from pte */
878 for (i = 0; i < vma_size; i += PAGE_SIZE) {
879 if (follow_phys(vma, vma_start + i, 0, &prot, &paddr))
880 continue;
881
882 free_pfn_range(paddr, PAGE_SIZE);
883 }
884 }
885} 760}
886 761
887pgprot_t pgprot_writecombine(pgprot_t prot) 762pgprot_t pgprot_writecombine(pgprot_t prot)
diff --git a/arch/x86/mm/srat_32.c b/arch/x86/mm/srat_32.c
index 16ae70fc57e7..29a0e37114f8 100644
--- a/arch/x86/mm/srat_32.c
+++ b/arch/x86/mm/srat_32.c
@@ -216,7 +216,7 @@ int __init get_memcfg_from_srat(void)
216 216
217 if (num_memory_chunks == 0) { 217 if (num_memory_chunks == 0) {
218 printk(KERN_WARNING 218 printk(KERN_WARNING
219 "could not finy any ACPI SRAT memory areas.\n"); 219 "could not find any ACPI SRAT memory areas.\n");
220 goto out_fail; 220 goto out_fail;
221 } 221 }
222 222
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index c7d272b8574c..01765955baaf 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -28,6 +28,7 @@ int acpi_numa __initdata;
28static struct acpi_table_slit *acpi_slit; 28static struct acpi_table_slit *acpi_slit;
29 29
30static nodemask_t nodes_parsed __initdata; 30static nodemask_t nodes_parsed __initdata;
31static nodemask_t cpu_nodes_parsed __initdata;
31static struct bootnode nodes[MAX_NUMNODES] __initdata; 32static struct bootnode nodes[MAX_NUMNODES] __initdata;
32static struct bootnode nodes_add[MAX_NUMNODES]; 33static struct bootnode nodes_add[MAX_NUMNODES];
33static int found_add_area __initdata; 34static int found_add_area __initdata;
@@ -141,6 +142,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
141 142
142 apic_id = pa->apic_id; 143 apic_id = pa->apic_id;
143 apicid_to_node[apic_id] = node; 144 apicid_to_node[apic_id] = node;
145 node_set(node, cpu_nodes_parsed);
144 acpi_numa = 1; 146 acpi_numa = 1;
145 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n", 147 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
146 pxm, apic_id, node); 148 pxm, apic_id, node);
@@ -174,6 +176,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
174 else 176 else
175 apic_id = pa->apic_id; 177 apic_id = pa->apic_id;
176 apicid_to_node[apic_id] = node; 178 apicid_to_node[apic_id] = node;
179 node_set(node, cpu_nodes_parsed);
177 acpi_numa = 1; 180 acpi_numa = 1;
178 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n", 181 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
179 pxm, apic_id, node); 182 pxm, apic_id, node);
@@ -358,6 +361,7 @@ static void __init unparse_node(int node)
358{ 361{
359 int i; 362 int i;
360 node_clear(node, nodes_parsed); 363 node_clear(node, nodes_parsed);
364 node_clear(node, cpu_nodes_parsed);
361 for (i = 0; i < MAX_LOCAL_APIC; i++) { 365 for (i = 0; i < MAX_LOCAL_APIC; i++) {
362 if (apicid_to_node[i] == node) 366 if (apicid_to_node[i] == node)
363 apicid_to_node[i] = NUMA_NO_NODE; 367 apicid_to_node[i] = NUMA_NO_NODE;
@@ -402,7 +406,8 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
402 return -1; 406 return -1;
403 } 407 }
404 408
405 node_possible_map = nodes_parsed; 409 /* Account for nodes with cpus and no memory */
410 nodes_or(node_possible_map, nodes_parsed, cpu_nodes_parsed);
406 411
407 /* Finally register nodes */ 412 /* Finally register nodes */
408 for_each_node_mask(i, node_possible_map) 413 for_each_node_mask(i, node_possible_map)
diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
index 9bb09823b362..f893d6a6e803 100644
--- a/arch/x86/pci/amd_bus.c
+++ b/arch/x86/pci/amd_bus.c
@@ -94,12 +94,16 @@ struct pci_root_info {
94static int pci_root_num; 94static int pci_root_num;
95static struct pci_root_info pci_root_info[PCI_ROOT_NR]; 95static struct pci_root_info pci_root_info[PCI_ROOT_NR];
96 96
97void set_pci_bus_resources_arch_default(struct pci_bus *b) 97void x86_pci_root_bus_res_quirks(struct pci_bus *b)
98{ 98{
99 int i; 99 int i;
100 int j; 100 int j;
101 struct pci_root_info *info; 101 struct pci_root_info *info;
102 102
103 /* don't go for it if _CRS is used */
104 if (pci_probe & PCI_USE__CRS)
105 return;
106
103 /* if only one root bus, don't need to anything */ 107 /* if only one root bus, don't need to anything */
104 if (pci_root_num < 2) 108 if (pci_root_num < 2)
105 return; 109 return;
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 8c362b96b644..2202b6257b82 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -147,10 +147,13 @@ static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev)
147 * are examined. 147 * are examined.
148 */ 148 */
149 149
150void __devinit pcibios_fixup_bus(struct pci_bus *b) 150void __devinit pcibios_fixup_bus(struct pci_bus *b)
151{ 151{
152 struct pci_dev *dev; 152 struct pci_dev *dev;
153 153
154 /* root bus? */
155 if (!b->parent)
156 x86_pci_root_bus_res_quirks(b);
154 pci_read_bridge_bases(b); 157 pci_read_bridge_bases(b);
155 list_for_each_entry(dev, &b->devices, bus_list) 158 list_for_each_entry(dev, &b->devices, bus_list)
156 pcibios_fixup_device_resources(dev); 159 pcibios_fixup_device_resources(dev);
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index f1817f71e009..a85bef20a3b9 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -238,6 +238,10 @@ void __init pcibios_resource_survey(void)
238 */ 238 */
239fs_initcall(pcibios_assign_resources); 239fs_initcall(pcibios_assign_resources);
240 240
241void __weak x86_pci_root_bus_res_quirks(struct pci_bus *b)
242{
243}
244
241/* 245/*
242 * If we set up a device for bus mastering, we need to check the latency 246 * If we set up a device for bus mastering, we need to check the latency
243 * timer as certain crappy BIOSes forget to set it properly. 247 * timer as certain crappy BIOSes forget to set it properly.
diff --git a/arch/x86/pci/mmconfig-shared.c b/arch/x86/pci/mmconfig-shared.c
index 905bb526b133..5fa10bb9604f 100644
--- a/arch/x86/pci/mmconfig-shared.c
+++ b/arch/x86/pci/mmconfig-shared.c
@@ -375,7 +375,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res,
375 if (!fixmem32) 375 if (!fixmem32)
376 return AE_OK; 376 return AE_OK;
377 if ((mcfg_res->start >= fixmem32->address) && 377 if ((mcfg_res->start >= fixmem32->address) &&
378 (mcfg_res->end < (fixmem32->address + 378 (mcfg_res->end <= (fixmem32->address +
379 fixmem32->address_length))) { 379 fixmem32->address_length))) {
380 mcfg_res->flags = 1; 380 mcfg_res->flags = 1;
381 return AE_CTRL_TERMINATE; 381 return AE_CTRL_TERMINATE;
@@ -392,7 +392,7 @@ static acpi_status __init check_mcfg_resource(struct acpi_resource *res,
392 return AE_OK; 392 return AE_OK;
393 393
394 if ((mcfg_res->start >= address.minimum) && 394 if ((mcfg_res->start >= address.minimum) &&
395 (mcfg_res->end < (address.minimum + address.address_length))) { 395 (mcfg_res->end <= (address.minimum + address.address_length))) {
396 mcfg_res->flags = 1; 396 mcfg_res->flags = 1;
397 return AE_CTRL_TERMINATE; 397 return AE_CTRL_TERMINATE;
398 } 398 }
@@ -439,7 +439,7 @@ static int __init is_mmconf_reserved(check_reserved_t is_reserved,
439 u64 old_size = size; 439 u64 old_size = size;
440 int valid = 0; 440 int valid = 0;
441 441
442 while (!is_reserved(addr, addr + size - 1, E820_RESERVED)) { 442 while (!is_reserved(addr, addr + size, E820_RESERVED)) {
443 size >>= 1; 443 size >>= 1;
444 if (size < (16UL<<20)) 444 if (size < (16UL<<20))
445 break; 445 break;
diff --git a/arch/x86/vdso/vclock_gettime.c b/arch/x86/vdso/vclock_gettime.c
index d9d35824c56f..6a40b78b46aa 100644
--- a/arch/x86/vdso/vclock_gettime.c
+++ b/arch/x86/vdso/vclock_gettime.c
@@ -104,11 +104,13 @@ notrace int __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
104{ 104{
105 long ret; 105 long ret;
106 if (likely(gtod->sysctl_enabled && gtod->clock.vread)) { 106 if (likely(gtod->sysctl_enabled && gtod->clock.vread)) {
107 BUILD_BUG_ON(offsetof(struct timeval, tv_usec) != 107 if (likely(tv != NULL)) {
108 offsetof(struct timespec, tv_nsec) || 108 BUILD_BUG_ON(offsetof(struct timeval, tv_usec) !=
109 sizeof(*tv) != sizeof(struct timespec)); 109 offsetof(struct timespec, tv_nsec) ||
110 do_realtime((struct timespec *)tv); 110 sizeof(*tv) != sizeof(struct timespec));
111 tv->tv_usec /= 1000; 111 do_realtime((struct timespec *)tv);
112 tv->tv_usec /= 1000;
113 }
112 if (unlikely(tz != NULL)) { 114 if (unlikely(tz != NULL)) {
113 /* Avoid memcpy. Some old compilers fail to inline it */ 115 /* Avoid memcpy. Some old compilers fail to inline it */
114 tz->tz_minuteswest = gtod->sys_tz.tz_minuteswest; 116 tz->tz_minuteswest = gtod->sys_tz.tz_minuteswest;
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 82cd39a6cbd3..f09e8c36ee80 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -42,6 +42,7 @@
42#include <asm/xen/hypervisor.h> 42#include <asm/xen/hypervisor.h>
43#include <asm/fixmap.h> 43#include <asm/fixmap.h>
44#include <asm/processor.h> 44#include <asm/processor.h>
45#include <asm/proto.h>
45#include <asm/msr-index.h> 46#include <asm/msr-index.h>
46#include <asm/setup.h> 47#include <asm/setup.h>
47#include <asm/desc.h> 48#include <asm/desc.h>
@@ -168,21 +169,23 @@ static void __init xen_banner(void)
168 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : ""); 169 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
169} 170}
170 171
172static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0;
173static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0;
174
171static void xen_cpuid(unsigned int *ax, unsigned int *bx, 175static void xen_cpuid(unsigned int *ax, unsigned int *bx,
172 unsigned int *cx, unsigned int *dx) 176 unsigned int *cx, unsigned int *dx)
173{ 177{
178 unsigned maskecx = ~0;
174 unsigned maskedx = ~0; 179 unsigned maskedx = ~0;
175 180
176 /* 181 /*
177 * Mask out inconvenient features, to try and disable as many 182 * Mask out inconvenient features, to try and disable as many
178 * unsupported kernel subsystems as possible. 183 * unsupported kernel subsystems as possible.
179 */ 184 */
180 if (*ax == 1) 185 if (*ax == 1) {
181 maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */ 186 maskecx = cpuid_leaf1_ecx_mask;
182 (1 << X86_FEATURE_ACPI) | /* disable ACPI */ 187 maskedx = cpuid_leaf1_edx_mask;
183 (1 << X86_FEATURE_MCE) | /* disable MCE */ 188 }
184 (1 << X86_FEATURE_MCA) | /* disable MCA */
185 (1 << X86_FEATURE_ACC)); /* thermal monitoring */
186 189
187 asm(XEN_EMULATE_PREFIX "cpuid" 190 asm(XEN_EMULATE_PREFIX "cpuid"
188 : "=a" (*ax), 191 : "=a" (*ax),
@@ -190,9 +193,43 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
190 "=c" (*cx), 193 "=c" (*cx),
191 "=d" (*dx) 194 "=d" (*dx)
192 : "0" (*ax), "2" (*cx)); 195 : "0" (*ax), "2" (*cx));
196
197 *cx &= maskecx;
193 *dx &= maskedx; 198 *dx &= maskedx;
194} 199}
195 200
201static __init void xen_init_cpuid_mask(void)
202{
203 unsigned int ax, bx, cx, dx;
204
205 cpuid_leaf1_edx_mask =
206 ~((1 << X86_FEATURE_MCE) | /* disable MCE */
207 (1 << X86_FEATURE_MCA) | /* disable MCA */
208 (1 << X86_FEATURE_ACC)); /* thermal monitoring */
209
210 if (!xen_initial_domain())
211 cpuid_leaf1_edx_mask &=
212 ~((1 << X86_FEATURE_APIC) | /* disable local APIC */
213 (1 << X86_FEATURE_ACPI)); /* disable ACPI */
214
215 ax = 1;
216 xen_cpuid(&ax, &bx, &cx, &dx);
217
218 /* cpuid claims we support xsave; try enabling it to see what happens */
219 if (cx & (1 << (X86_FEATURE_XSAVE % 32))) {
220 unsigned long cr4;
221
222 set_in_cr4(X86_CR4_OSXSAVE);
223
224 cr4 = read_cr4();
225
226 if ((cr4 & X86_CR4_OSXSAVE) == 0)
227 cpuid_leaf1_ecx_mask &= ~(1 << (X86_FEATURE_XSAVE % 32));
228
229 clear_in_cr4(X86_CR4_OSXSAVE);
230 }
231}
232
196static void xen_set_debugreg(int reg, unsigned long val) 233static void xen_set_debugreg(int reg, unsigned long val)
197{ 234{
198 HYPERVISOR_set_debugreg(reg, val); 235 HYPERVISOR_set_debugreg(reg, val);
@@ -284,12 +321,11 @@ static void xen_set_ldt(const void *addr, unsigned entries)
284 321
285static void xen_load_gdt(const struct desc_ptr *dtr) 322static void xen_load_gdt(const struct desc_ptr *dtr)
286{ 323{
287 unsigned long *frames;
288 unsigned long va = dtr->address; 324 unsigned long va = dtr->address;
289 unsigned int size = dtr->size + 1; 325 unsigned int size = dtr->size + 1;
290 unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE; 326 unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
327 unsigned long frames[pages];
291 int f; 328 int f;
292 struct multicall_space mcs;
293 329
294 /* A GDT can be up to 64k in size, which corresponds to 8192 330 /* A GDT can be up to 64k in size, which corresponds to 8192
295 8-byte entries, or 16 4k pages.. */ 331 8-byte entries, or 16 4k pages.. */
@@ -297,19 +333,26 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
297 BUG_ON(size > 65536); 333 BUG_ON(size > 65536);
298 BUG_ON(va & ~PAGE_MASK); 334 BUG_ON(va & ~PAGE_MASK);
299 335
300 mcs = xen_mc_entry(sizeof(*frames) * pages);
301 frames = mcs.args;
302
303 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) { 336 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
304 frames[f] = arbitrary_virt_to_mfn((void *)va); 337 int level;
338 pte_t *ptep = lookup_address(va, &level);
339 unsigned long pfn, mfn;
340 void *virt;
341
342 BUG_ON(ptep == NULL);
343
344 pfn = pte_pfn(*ptep);
345 mfn = pfn_to_mfn(pfn);
346 virt = __va(PFN_PHYS(pfn));
347
348 frames[f] = mfn;
305 349
306 make_lowmem_page_readonly((void *)va); 350 make_lowmem_page_readonly((void *)va);
307 make_lowmem_page_readonly(mfn_to_virt(frames[f])); 351 make_lowmem_page_readonly(virt);
308 } 352 }
309 353
310 MULTI_set_gdt(mcs.mc, frames, size / sizeof(struct desc_struct)); 354 if (HYPERVISOR_set_gdt(frames, size / sizeof(struct desc_struct)))
311 355 BUG();
312 xen_mc_issue(PARAVIRT_LAZY_CPU);
313} 356}
314 357
315static void load_TLS_descriptor(struct thread_struct *t, 358static void load_TLS_descriptor(struct thread_struct *t,
@@ -385,7 +428,7 @@ static void xen_write_ldt_entry(struct desc_struct *dt, int entrynum,
385static int cvt_gate_to_trap(int vector, const gate_desc *val, 428static int cvt_gate_to_trap(int vector, const gate_desc *val,
386 struct trap_info *info) 429 struct trap_info *info)
387{ 430{
388 if (val->type != 0xf && val->type != 0xe) 431 if (val->type != GATE_TRAP && val->type != GATE_INTERRUPT)
389 return 0; 432 return 0;
390 433
391 info->vector = vector; 434 info->vector = vector;
@@ -393,8 +436,8 @@ static int cvt_gate_to_trap(int vector, const gate_desc *val,
393 info->cs = gate_segment(*val); 436 info->cs = gate_segment(*val);
394 info->flags = val->dpl; 437 info->flags = val->dpl;
395 /* interrupt gates clear IF */ 438 /* interrupt gates clear IF */
396 if (val->type == 0xe) 439 if (val->type == GATE_INTERRUPT)
397 info->flags |= 4; 440 info->flags |= 1 << 2;
398 441
399 return 1; 442 return 1;
400} 443}
@@ -872,7 +915,6 @@ static const struct machine_ops __initdata xen_machine_ops = {
872 .emergency_restart = xen_emergency_restart, 915 .emergency_restart = xen_emergency_restart,
873}; 916};
874 917
875
876/* First C function to be called on Xen boot */ 918/* First C function to be called on Xen boot */
877asmlinkage void __init xen_start_kernel(void) 919asmlinkage void __init xen_start_kernel(void)
878{ 920{
@@ -897,6 +939,8 @@ asmlinkage void __init xen_start_kernel(void)
897 939
898 xen_init_irq_ops(); 940 xen_init_irq_ops();
899 941
942 xen_init_cpuid_mask();
943
900#ifdef CONFIG_X86_LOCAL_APIC 944#ifdef CONFIG_X86_LOCAL_APIC
901 /* 945 /*
902 * set up the basic apic ops. 946 * set up the basic apic ops.
@@ -938,6 +982,11 @@ asmlinkage void __init xen_start_kernel(void)
938 if (!xen_initial_domain()) 982 if (!xen_initial_domain())
939 __supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD); 983 __supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD);
940 984
985#ifdef CONFIG_X86_64
986 /* Work out if we support NX */
987 check_efer();
988#endif
989
941 /* Don't do the full vcpu_info placement stuff until we have a 990 /* Don't do the full vcpu_info placement stuff until we have a
942 possible map and a non-dummy shared_info. */ 991 possible map and a non-dummy shared_info. */
943 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; 992 per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 2a81838a9ab7..e25a78e1113a 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -184,7 +184,7 @@ static inline unsigned p2m_index(unsigned long pfn)
184} 184}
185 185
186/* Build the parallel p2m_top_mfn structures */ 186/* Build the parallel p2m_top_mfn structures */
187void xen_setup_mfn_list_list(void) 187static void __init xen_build_mfn_list_list(void)
188{ 188{
189 unsigned pfn, idx; 189 unsigned pfn, idx;
190 190
@@ -198,7 +198,10 @@ void xen_setup_mfn_list_list(void)
198 unsigned topidx = idx * P2M_ENTRIES_PER_PAGE; 198 unsigned topidx = idx * P2M_ENTRIES_PER_PAGE;
199 p2m_top_mfn_list[idx] = virt_to_mfn(&p2m_top_mfn[topidx]); 199 p2m_top_mfn_list[idx] = virt_to_mfn(&p2m_top_mfn[topidx]);
200 } 200 }
201}
201 202
203void xen_setup_mfn_list_list(void)
204{
202 BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info); 205 BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info);
203 206
204 HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list = 207 HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list =
@@ -218,6 +221,8 @@ void __init xen_build_dynamic_phys_to_machine(void)
218 221
219 p2m_top[topidx] = &mfn_list[pfn]; 222 p2m_top[topidx] = &mfn_list[pfn];
220 } 223 }
224
225 xen_build_mfn_list_list();
221} 226}
222 227
223unsigned long get_phys_to_machine(unsigned long pfn) 228unsigned long get_phys_to_machine(unsigned long pfn)
@@ -233,47 +238,74 @@ unsigned long get_phys_to_machine(unsigned long pfn)
233} 238}
234EXPORT_SYMBOL_GPL(get_phys_to_machine); 239EXPORT_SYMBOL_GPL(get_phys_to_machine);
235 240
236static void alloc_p2m(unsigned long **pp, unsigned long *mfnp) 241/* install a new p2m_top page */
242bool install_p2mtop_page(unsigned long pfn, unsigned long *p)
237{ 243{
238 unsigned long *p; 244 unsigned topidx = p2m_top_index(pfn);
245 unsigned long **pfnp, *mfnp;
239 unsigned i; 246 unsigned i;
240 247
241 p = (void *)__get_free_page(GFP_KERNEL | __GFP_NOFAIL); 248 pfnp = &p2m_top[topidx];
242 BUG_ON(p == NULL); 249 mfnp = &p2m_top_mfn[topidx];
243 250
244 for (i = 0; i < P2M_ENTRIES_PER_PAGE; i++) 251 for (i = 0; i < P2M_ENTRIES_PER_PAGE; i++)
245 p[i] = INVALID_P2M_ENTRY; 252 p[i] = INVALID_P2M_ENTRY;
246 253
247 if (cmpxchg(pp, p2m_missing, p) != p2m_missing) 254 if (cmpxchg(pfnp, p2m_missing, p) == p2m_missing) {
248 free_page((unsigned long)p);
249 else
250 *mfnp = virt_to_mfn(p); 255 *mfnp = virt_to_mfn(p);
256 return true;
257 }
258
259 return false;
251} 260}
252 261
253void set_phys_to_machine(unsigned long pfn, unsigned long mfn) 262static void alloc_p2m(unsigned long pfn)
254{ 263{
255 unsigned topidx, idx; 264 unsigned long *p;
256 265
257 if (unlikely(xen_feature(XENFEAT_auto_translated_physmap))) { 266 p = (void *)__get_free_page(GFP_KERNEL | __GFP_NOFAIL);
258 BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY); 267 BUG_ON(p == NULL);
259 return; 268
260 } 269 if (!install_p2mtop_page(pfn, p))
270 free_page((unsigned long)p);
271}
272
273/* Try to install p2m mapping; fail if intermediate bits missing */
274bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
275{
276 unsigned topidx, idx;
261 277
262 if (unlikely(pfn >= MAX_DOMAIN_PAGES)) { 278 if (unlikely(pfn >= MAX_DOMAIN_PAGES)) {
263 BUG_ON(mfn != INVALID_P2M_ENTRY); 279 BUG_ON(mfn != INVALID_P2M_ENTRY);
264 return; 280 return true;
265 } 281 }
266 282
267 topidx = p2m_top_index(pfn); 283 topidx = p2m_top_index(pfn);
268 if (p2m_top[topidx] == p2m_missing) { 284 if (p2m_top[topidx] == p2m_missing) {
269 /* no need to allocate a page to store an invalid entry */
270 if (mfn == INVALID_P2M_ENTRY) 285 if (mfn == INVALID_P2M_ENTRY)
271 return; 286 return true;
272 alloc_p2m(&p2m_top[topidx], &p2m_top_mfn[topidx]); 287 return false;
273 } 288 }
274 289
275 idx = p2m_index(pfn); 290 idx = p2m_index(pfn);
276 p2m_top[topidx][idx] = mfn; 291 p2m_top[topidx][idx] = mfn;
292
293 return true;
294}
295
296void set_phys_to_machine(unsigned long pfn, unsigned long mfn)
297{
298 if (unlikely(xen_feature(XENFEAT_auto_translated_physmap))) {
299 BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
300 return;
301 }
302
303 if (unlikely(!__set_phys_to_machine(pfn, mfn))) {
304 alloc_p2m(pfn);
305
306 if (!__set_phys_to_machine(pfn, mfn))
307 BUG();
308 }
277} 309}
278 310
279unsigned long arbitrary_virt_to_mfn(void *vaddr) 311unsigned long arbitrary_virt_to_mfn(void *vaddr)
@@ -987,7 +1019,7 @@ static __init int xen_mark_pinned(struct mm_struct *mm, struct page *page,
987 return 0; 1019 return 0;
988} 1020}
989 1021
990void __init xen_mark_init_mm_pinned(void) 1022static void __init xen_mark_init_mm_pinned(void)
991{ 1023{
992 xen_pgd_walk(&init_mm, xen_mark_pinned, FIXADDR_TOP); 1024 xen_pgd_walk(&init_mm, xen_mark_pinned, FIXADDR_TOP);
993} 1025}
@@ -1270,8 +1302,8 @@ static void xen_flush_tlb_others(const struct cpumask *cpus,
1270 } *args; 1302 } *args;
1271 struct multicall_space mcs; 1303 struct multicall_space mcs;
1272 1304
1273 BUG_ON(cpumask_empty(cpus)); 1305 if (cpumask_empty(cpus))
1274 BUG_ON(!mm); 1306 return; /* nothing to do */
1275 1307
1276 mcs = xen_mc_entry(sizeof(*args)); 1308 mcs = xen_mc_entry(sizeof(*args));
1277 args = mcs.args; 1309 args = mcs.args;
@@ -1438,6 +1470,15 @@ static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
1438} 1470}
1439#endif 1471#endif
1440 1472
1473static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
1474{
1475 struct mmuext_op op;
1476 op.cmd = cmd;
1477 op.arg1.mfn = pfn_to_mfn(pfn);
1478 if (HYPERVISOR_mmuext_op(&op, 1, NULL, DOMID_SELF))
1479 BUG();
1480}
1481
1441/* Early in boot, while setting up the initial pagetable, assume 1482/* Early in boot, while setting up the initial pagetable, assume
1442 everything is pinned. */ 1483 everything is pinned. */
1443static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn) 1484static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
@@ -1446,22 +1487,29 @@ static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
1446 BUG_ON(mem_map); /* should only be used early */ 1487 BUG_ON(mem_map); /* should only be used early */
1447#endif 1488#endif
1448 make_lowmem_page_readonly(__va(PFN_PHYS(pfn))); 1489 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
1490 pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
1491}
1492
1493/* Used for pmd and pud */
1494static __init void xen_alloc_pmd_init(struct mm_struct *mm, unsigned long pfn)
1495{
1496#ifdef CONFIG_FLATMEM
1497 BUG_ON(mem_map); /* should only be used early */
1498#endif
1499 make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
1449} 1500}
1450 1501
1451/* Early release_pte assumes that all pts are pinned, since there's 1502/* Early release_pte assumes that all pts are pinned, since there's
1452 only init_mm and anything attached to that is pinned. */ 1503 only init_mm and anything attached to that is pinned. */
1453static void xen_release_pte_init(unsigned long pfn) 1504static __init void xen_release_pte_init(unsigned long pfn)
1454{ 1505{
1506 pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, pfn);
1455 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn))); 1507 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
1456} 1508}
1457 1509
1458static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn) 1510static __init void xen_release_pmd_init(unsigned long pfn)
1459{ 1511{
1460 struct mmuext_op op; 1512 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
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} 1513}
1466 1514
1467/* This needs to make sure the new pte page is pinned iff its being 1515/* This needs to make sure the new pte page is pinned iff its being
@@ -1746,6 +1794,11 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1746 1794
1747 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir))); 1795 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(swapper_pg_dir)));
1748 1796
1797 reserve_early(__pa(xen_start_info->pt_base),
1798 __pa(xen_start_info->pt_base +
1799 xen_start_info->nr_pt_frames * PAGE_SIZE),
1800 "XEN PAGETABLES");
1801
1749 return swapper_pg_dir; 1802 return swapper_pg_dir;
1750} 1803}
1751#endif /* CONFIG_X86_64 */ 1804#endif /* CONFIG_X86_64 */
@@ -1773,6 +1826,9 @@ static void xen_set_fixmap(unsigned idx, phys_addr_t phys, pgprot_t prot)
1773#ifdef CONFIG_X86_LOCAL_APIC 1826#ifdef CONFIG_X86_LOCAL_APIC
1774 case FIX_APIC_BASE: /* maps dummy local APIC */ 1827 case FIX_APIC_BASE: /* maps dummy local APIC */
1775#endif 1828#endif
1829 case FIX_TEXT_POKE0:
1830 case FIX_TEXT_POKE1:
1831 /* All local page mappings */
1776 pte = pfn_pte(phys, prot); 1832 pte = pfn_pte(phys, prot);
1777 break; 1833 break;
1778 1834
@@ -1819,7 +1875,6 @@ __init void xen_post_allocator_init(void)
1819 xen_mark_init_mm_pinned(); 1875 xen_mark_init_mm_pinned();
1820} 1876}
1821 1877
1822
1823const struct pv_mmu_ops xen_mmu_ops __initdata = { 1878const struct pv_mmu_ops xen_mmu_ops __initdata = {
1824 .pagetable_setup_start = xen_pagetable_setup_start, 1879 .pagetable_setup_start = xen_pagetable_setup_start,
1825 .pagetable_setup_done = xen_pagetable_setup_done, 1880 .pagetable_setup_done = xen_pagetable_setup_done,
@@ -1843,9 +1898,9 @@ const struct pv_mmu_ops xen_mmu_ops __initdata = {
1843 1898
1844 .alloc_pte = xen_alloc_pte_init, 1899 .alloc_pte = xen_alloc_pte_init,
1845 .release_pte = xen_release_pte_init, 1900 .release_pte = xen_release_pte_init,
1846 .alloc_pmd = xen_alloc_pte_init, 1901 .alloc_pmd = xen_alloc_pmd_init,
1847 .alloc_pmd_clone = paravirt_nop, 1902 .alloc_pmd_clone = paravirt_nop,
1848 .release_pmd = xen_release_pte_init, 1903 .release_pmd = xen_release_pmd_init,
1849 1904
1850#ifdef CONFIG_HIGHPTE 1905#ifdef CONFIG_HIGHPTE
1851 .kmap_atomic_pte = xen_kmap_atomic_pte, 1906 .kmap_atomic_pte = xen_kmap_atomic_pte,
@@ -1883,8 +1938,8 @@ const struct pv_mmu_ops xen_mmu_ops __initdata = {
1883 .make_pud = PV_CALLEE_SAVE(xen_make_pud), 1938 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
1884 .set_pgd = xen_set_pgd_hyper, 1939 .set_pgd = xen_set_pgd_hyper,
1885 1940
1886 .alloc_pud = xen_alloc_pte_init, 1941 .alloc_pud = xen_alloc_pmd_init,
1887 .release_pud = xen_release_pte_init, 1942 .release_pud = xen_release_pmd_init,
1888#endif /* PAGETABLE_LEVELS == 4 */ 1943#endif /* PAGETABLE_LEVELS == 4 */
1889 1944
1890 .activate_mm = xen_activate_mm, 1945 .activate_mm = xen_activate_mm,
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index 24d1b44a337d..da7302624897 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -11,6 +11,9 @@ enum pt_level {
11}; 11};
12 12
13 13
14bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
15bool install_p2mtop_page(unsigned long pfn, unsigned long *p);
16
14void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags); 17void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
15 18
16 19
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
index 585a6e330837..429834ec1687 100644
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -317,7 +317,7 @@ static int __cpuinit xen_cpu_up(unsigned int cpu)
317 BUG_ON(rc); 317 BUG_ON(rc);
318 318
319 while(per_cpu(cpu_state, cpu) != CPU_ONLINE) { 319 while(per_cpu(cpu_state, cpu) != CPU_ONLINE) {
320 HYPERVISOR_sched_op(SCHEDOP_yield, 0); 320 HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
321 barrier(); 321 barrier();
322 } 322 }
323 323
@@ -422,7 +422,7 @@ static void xen_smp_send_call_function_ipi(const struct cpumask *mask)
422 /* Make sure other vcpus get a chance to run if they need to. */ 422 /* Make sure other vcpus get a chance to run if they need to. */
423 for_each_cpu(cpu, mask) { 423 for_each_cpu(cpu, mask) {
424 if (xen_vcpu_stolen(cpu)) { 424 if (xen_vcpu_stolen(cpu)) {
425 HYPERVISOR_sched_op(SCHEDOP_yield, 0); 425 HYPERVISOR_sched_op(SCHEDOP_yield, NULL);
426 break; 426 break;
427 } 427 }
428 } 428 }
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 14f240623497..0a5aa44299a5 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -213,6 +213,11 @@ cycle_t xen_clocksource_read(void)
213 return ret; 213 return ret;
214} 214}
215 215
216static cycle_t xen_clocksource_get_cycles(struct clocksource *cs)
217{
218 return xen_clocksource_read();
219}
220
216static void xen_read_wallclock(struct timespec *ts) 221static void xen_read_wallclock(struct timespec *ts)
217{ 222{
218 struct shared_info *s = HYPERVISOR_shared_info; 223 struct shared_info *s = HYPERVISOR_shared_info;
@@ -241,7 +246,7 @@ int xen_set_wallclock(unsigned long now)
241static struct clocksource xen_clocksource __read_mostly = { 246static struct clocksource xen_clocksource __read_mostly = {
242 .name = "xen", 247 .name = "xen",
243 .rating = 400, 248 .rating = 400,
244 .read = xen_clocksource_read, 249 .read = xen_clocksource_get_cycles,
245 .mask = ~0, 250 .mask = ~0,
246 .mult = 1<<XEN_SHIFT, /* time directly in nanoseconds */ 251 .mult = 1<<XEN_SHIFT, /* time directly in nanoseconds */
247 .shift = XEN_SHIFT, 252 .shift = XEN_SHIFT,
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 2f5ef2632ea2..20139464943c 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -57,8 +57,6 @@ irqreturn_t xen_debug_interrupt(int irq, void *dev_id);
57 57
58bool xen_vcpu_stolen(int vcpu); 58bool xen_vcpu_stolen(int vcpu);
59 59
60void xen_mark_init_mm_pinned(void);
61
62void xen_setup_vcpu_info_placement(void); 60void xen_setup_vcpu_info_placement(void);
63 61
64#ifdef CONFIG_SMP 62#ifdef CONFIG_SMP
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index fa6dc4dd3b19..ebe228d02b08 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -80,6 +80,7 @@ config XTENSA_VARIANT_S6000
80 bool "s6000 - Stretch software configurable processor" 80 bool "s6000 - Stretch software configurable processor"
81 select VARIANT_IRQ_SWITCH 81 select VARIANT_IRQ_SWITCH
82 select ARCH_REQUIRE_GPIOLIB 82 select ARCH_REQUIRE_GPIOLIB
83 select XTENSA_CALIBRATE_CCOUNT
83endchoice 84endchoice
84 85
85config XTENSA_UNALIGNED_USER 86config XTENSA_UNALIGNED_USER
@@ -137,6 +138,8 @@ config PCI
137 138
138source "drivers/pci/Kconfig" 139source "drivers/pci/Kconfig"
139 140
141endmenu
142
140menu "Platform options" 143menu "Platform options"
141 144
142choice 145choice
@@ -153,8 +156,6 @@ config XTENSA_PLATFORM_ISS
153 156
154config XTENSA_PLATFORM_XT2000 157config XTENSA_PLATFORM_XT2000
155 bool "XT2000" 158 bool "XT2000"
156 select XTENSA_CALIBRATE_CCOUNT
157 select PCI
158 help 159 help
159 XT2000 is the name of Tensilica's feature-rich emulation platform. 160 XT2000 is the name of Tensilica's feature-rich emulation platform.
160 This hardware is capable of running a full Linux distribution. 161 This hardware is capable of running a full Linux distribution.
@@ -192,8 +193,6 @@ config CMDLINE
192 193
193source "mm/Kconfig" 194source "mm/Kconfig"
194 195
195endmenu
196
197config HOTPLUG 196config HOTPLUG
198 bool "Support for hot-pluggable devices" 197 bool "Support for hot-pluggable devices"
199 help 198 help
diff --git a/arch/xtensa/configs/s6105_defconfig b/arch/xtensa/configs/s6105_defconfig
index 6e1deff41590..768bee006037 100644
--- a/arch/xtensa/configs/s6105_defconfig
+++ b/arch/xtensa/configs/s6105_defconfig
@@ -115,7 +115,7 @@ CONFIG_XTENSA_VARIANT_S6000=y
115CONFIG_PREEMPT=y 115CONFIG_PREEMPT=y
116# CONFIG_MATH_EMULATION is not set 116# CONFIG_MATH_EMULATION is not set
117# CONFIG_HIGHMEM is not set 117# CONFIG_HIGHMEM is not set
118# CONFIG_XTENSA_CALIBRATE_CCOUNT is not set 118CONFIG_XTENSA_CALIBRATE_CCOUNT=y
119CONFIG_SERIAL_CONSOLE=y 119CONFIG_SERIAL_CONSOLE=y
120# CONFIG_XTENSA_ISS_NETWORK is not set 120# CONFIG_XTENSA_ISS_NETWORK is not set
121 121
@@ -131,7 +131,6 @@ CONFIG_SERIAL_CONSOLE=y
131# CONFIG_XTENSA_PLATFORM_ISS is not set 131# CONFIG_XTENSA_PLATFORM_ISS is not set
132# CONFIG_XTENSA_PLATFORM_XT2000 is not set 132# CONFIG_XTENSA_PLATFORM_XT2000 is not set
133CONFIG_XTENSA_PLATFORM_S6105=y 133CONFIG_XTENSA_PLATFORM_S6105=y
134CONFIG_XTENSA_CPU_CLOCK=300
135CONFIG_GENERIC_CALIBRATE_DELAY=y 134CONFIG_GENERIC_CALIBRATE_DELAY=y
136CONFIG_CMDLINE_BOOL=y 135CONFIG_CMDLINE_BOOL=y
137CONFIG_CMDLINE="console=ttyS1,38400 debug bootmem_debug loglevel=7" 136CONFIG_CMDLINE="console=ttyS1,38400 debug bootmem_debug loglevel=7"
diff --git a/arch/xtensa/include/asm/checksum.h b/arch/xtensa/include/asm/checksum.h
index f84d3f00774a..e4d831a30772 100644
--- a/arch/xtensa/include/asm/checksum.h
+++ b/arch/xtensa/include/asm/checksum.h
@@ -113,7 +113,8 @@ static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
113 are modified, we must also specify them as outputs, or gcc 113 are modified, we must also specify them as outputs, or gcc
114 will assume they contain their original values. */ 114 will assume they contain their original values. */
115 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), "=&r" (endaddr) 115 : "=r" (sum), "=r" (iph), "=r" (ihl), "=&r" (tmp), "=&r" (endaddr)
116 : "1" (iph), "2" (ihl)); 116 : "1" (iph), "2" (ihl)
117 : "memory");
117 118
118 return csum_fold(sum); 119 return csum_fold(sum);
119} 120}
@@ -227,7 +228,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
227 "1:\t" 228 "1:\t"
228 : "=r" (sum), "=&r" (__dummy) 229 : "=r" (sum), "=&r" (__dummy)
229 : "r" (saddr), "r" (daddr), 230 : "r" (saddr), "r" (daddr),
230 "r" (htonl(len)), "r" (htonl(proto)), "0" (sum)); 231 "r" (htonl(len)), "r" (htonl(proto)), "0" (sum)
232 : "memory");
231 233
232 return csum_fold(sum); 234 return csum_fold(sum);
233} 235}
diff --git a/arch/xtensa/include/asm/timex.h b/arch/xtensa/include/asm/timex.h
index b83a8181d448..053bc4272106 100644
--- a/arch/xtensa/include/asm/timex.h
+++ b/arch/xtensa/include/asm/timex.h
@@ -39,9 +39,9 @@
39 39
40#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT 40#ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT
41extern unsigned long ccount_per_jiffy; 41extern unsigned long ccount_per_jiffy;
42extern unsigned long ccount_nsec; 42extern unsigned long nsec_per_ccount;
43#define CCOUNT_PER_JIFFY ccount_per_jiffy 43#define CCOUNT_PER_JIFFY ccount_per_jiffy
44#define NSEC_PER_CCOUNT ccount_nsec 44#define NSEC_PER_CCOUNT nsec_per_ccount
45#else 45#else
46#define CCOUNT_PER_JIFFY (CONFIG_XTENSA_CPU_CLOCK*(1000000UL/HZ)) 46#define CCOUNT_PER_JIFFY (CONFIG_XTENSA_CPU_CLOCK*(1000000UL/HZ))
47#define NSEC_PER_CCOUNT (1000UL / CONFIG_XTENSA_CPU_CLOCK) 47#define NSEC_PER_CCOUNT (1000UL / CONFIG_XTENSA_CPU_CLOCK)
diff --git a/arch/xtensa/kernel/Makefile b/arch/xtensa/kernel/Makefile
index 7419dbccf027..fe3186de6a33 100644
--- a/arch/xtensa/kernel/Makefile
+++ b/arch/xtensa/kernel/Makefile
@@ -4,15 +4,30 @@
4 4
5extra-y := head.o vmlinux.lds 5extra-y := head.o vmlinux.lds
6 6
7
8obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \ 7obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \
9 setup.o signal.o syscall.o time.o traps.o vectors.o platform.o \ 8 setup.o signal.o syscall.o time.o traps.o vectors.o platform.o \
10 pci-dma.o init_task.o io.o 9 pci-dma.o init_task.o io.o
11 10
12## windowspill.o
13
14obj-$(CONFIG_KGDB) += xtensa-stub.o 11obj-$(CONFIG_KGDB) += xtensa-stub.o
15obj-$(CONFIG_PCI) += pci.o 12obj-$(CONFIG_PCI) += pci.o
16obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o 13obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o
17 14
15# In the Xtensa architecture, assembly generates literals which must always
16# precede the L32R instruction with a relative offset less than 256 kB.
17# Therefore, the .text and .literal section must be combined in parenthesis
18# in the linker script, such as: *(.literal .text).
19#
20# We need to post-process the generated vmlinux.lds scripts to convert
21# *(xxx.text) to *(xxx.literal xxx.text) for the following text sections:
22# .text .ref.text .*init.text .*exit.text .text.*
23#
24# Replicate rules in scripts/Makefile.build
25
26sed-y = -e 's/(\(\.[a-z]*it\|\.ref\|\)\.text)/(\1.literal \1.text)/g' \
27 -e 's/(\(\.text\.[a-z]*\))/(\1.literal \1)/g'
28
29quiet_cmd__cpp_lds_S = LDS $@
30 cmd__cpp_lds_S = $(CPP) $(cpp_flags) -D__ASSEMBLY__ $< | sed $(sed-y) >$@
18 31
32$(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE
33 $(call if_changed_dep,_cpp_lds_S)
diff --git a/arch/xtensa/kernel/head.S b/arch/xtensa/kernel/head.S
index 0817f9db836e..d9ddc1ba761c 100644
--- a/arch/xtensa/kernel/head.S
+++ b/arch/xtensa/kernel/head.S
@@ -19,6 +19,7 @@
19#include <asm/page.h> 19#include <asm/page.h>
20#include <asm/cacheasm.h> 20#include <asm/cacheasm.h>
21 21
22#include <linux/init.h>
22#include <linux/linkage.h> 23#include <linux/linkage.h>
23 24
24/* 25/*
@@ -45,7 +46,7 @@
45 * instruction. 46 * instruction.
46 */ 47 */
47 48
48 .section .head.text, "ax" 49 __HEAD
49 .globl _start 50 .globl _start
50_start: _j 2f 51_start: _j 2f
51 .align 4 52 .align 4
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index 9f0b71189e94..ba9ab9349782 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -369,6 +369,18 @@ void show_regs(struct pt_regs * regs)
369 regs->syscall); 369 regs->syscall);
370} 370}
371 371
372static __always_inline unsigned long *stack_pointer(struct task_struct *task)
373{
374 unsigned long *sp;
375
376 if (!task || task == current)
377 __asm__ __volatile__ ("mov %0, a1\n" : "=a"(sp));
378 else
379 sp = (unsigned long *)task->thread.sp;
380
381 return sp;
382}
383
372void show_trace(struct task_struct *task, unsigned long *sp) 384void show_trace(struct task_struct *task, unsigned long *sp)
373{ 385{
374 unsigned long a0, a1, pc; 386 unsigned long a0, a1, pc;
@@ -377,7 +389,7 @@ void show_trace(struct task_struct *task, unsigned long *sp)
377 if (sp) 389 if (sp)
378 a1 = (unsigned long)sp; 390 a1 = (unsigned long)sp;
379 else 391 else
380 a1 = task->thread.sp; 392 a1 = (unsigned long)stack_pointer(task);
381 393
382 sp_start = a1 & ~(THREAD_SIZE-1); 394 sp_start = a1 & ~(THREAD_SIZE-1);
383 sp_end = sp_start + THREAD_SIZE; 395 sp_end = sp_start + THREAD_SIZE;
@@ -420,7 +432,7 @@ void show_stack(struct task_struct *task, unsigned long *sp)
420 unsigned long *stack; 432 unsigned long *stack;
421 433
422 if (!sp) 434 if (!sp)
423 sp = (unsigned long *)task->thread.sp; 435 sp = stack_pointer(task);
424 stack = sp; 436 stack = sp;
425 437
426 printk("\nStack: "); 438 printk("\nStack: ");
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index c1be9a4a740c..41c159cd872f 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -85,9 +85,9 @@ SECTIONS
85 85
86 .text : 86 .text :
87 { 87 {
88 /* The .head.text section must be the first section! */ 88 /* The HEAD_TEXT section must be the first section! */
89 *(.head.text) 89 HEAD_TEXT
90 *(.literal .text) 90 TEXT_TEXT
91 VMLINUX_SYMBOL(__sched_text_start) = .; 91 VMLINUX_SYMBOL(__sched_text_start) = .;
92 *(.sched.literal .sched.text) 92 *(.sched.literal .sched.text)
93 VMLINUX_SYMBOL(__sched_text_end) = .; 93 VMLINUX_SYMBOL(__sched_text_end) = .;
@@ -139,8 +139,6 @@ SECTIONS
139 __init_begin = .; 139 __init_begin = .;
140 .init.text : { 140 .init.text : {
141 _sinittext = .; 141 _sinittext = .;
142 *(.init.literal) *(.cpuinit.literal)
143 *(.devinit.literal) *(.meminit.literal)
144 INIT_TEXT 142 INIT_TEXT
145 _einittext = .; 143 _einittext = .;
146 } 144 }
diff --git a/arch/xtensa/platforms/s6105/setup.c b/arch/xtensa/platforms/s6105/setup.c
index ae041d5027a2..855ddeadc43d 100644
--- a/arch/xtensa/platforms/s6105/setup.c
+++ b/arch/xtensa/platforms/s6105/setup.c
@@ -10,6 +10,8 @@
10#include <asm/bootparam.h> 10#include <asm/bootparam.h>
11 11
12#include <variant/hardware.h> 12#include <variant/hardware.h>
13#include <variant/gpio.h>
14
13#include <platform/gpio.h> 15#include <platform/gpio.h>
14 16
15void platform_halt(void) 17void platform_halt(void)
@@ -47,6 +49,7 @@ void __init platform_setup(char **cmdline)
47 49
48void __init platform_init(bp_tag_t *first) 50void __init platform_init(bp_tag_t *first)
49{ 51{
52 s6_gpio_init();
50 gpio_request(GPIO_LED1_NGREEN, "led1_green"); 53 gpio_request(GPIO_LED1_NGREEN, "led1_green");
51 gpio_request(GPIO_LED1_RED, "led1_red"); 54 gpio_request(GPIO_LED1_RED, "led1_red");
52 gpio_direction_output(GPIO_LED1_NGREEN, 1); 55 gpio_direction_output(GPIO_LED1_NGREEN, 1);
diff --git a/arch/xtensa/variants/s6000/Makefile b/arch/xtensa/variants/s6000/Makefile
index 03b3975468bd..d83f3805130c 100644
--- a/arch/xtensa/variants/s6000/Makefile
+++ b/arch/xtensa/variants/s6000/Makefile
@@ -1,3 +1,4 @@
1# s6000 Makefile 1# s6000 Makefile
2 2
3obj-y += irq.o gpio.o 3obj-y += irq.o gpio.o
4obj-$(CONFIG_XTENSA_CALIBRATE_CCOUNT) += delay.o
diff --git a/arch/xtensa/variants/s6000/delay.c b/arch/xtensa/variants/s6000/delay.c
new file mode 100644
index 000000000000..54b2b573f166
--- /dev/null
+++ b/arch/xtensa/variants/s6000/delay.c
@@ -0,0 +1,27 @@
1#include <asm/delay.h>
2#include <asm/timex.h>
3#include <asm/io.h>
4#include <variant/hardware.h>
5
6#define LOOPS 10
7void platform_calibrate_ccount(void)
8{
9 u32 uninitialized_var(a);
10 u32 uninitialized_var(u);
11 u32 b;
12 u32 tstamp = S6_REG_GREG1 + S6_GREG1_GLOBAL_TIMER;
13 int i = LOOPS+1;
14 do {
15 u32 t = u;
16 asm volatile(
17 "1: l32i %0, %2, 0 ;"
18 " beq %0, %1, 1b ;"
19 : "=&a"(u) : "a"(t), "a"(tstamp));
20 b = xtensa_get_ccount();
21 if (i == LOOPS)
22 a = b;
23 } while (--i >= 0);
24 b -= a;
25 nsec_per_ccount = (LOOPS * 10000) / b;
26 ccount_per_jiffy = b * (100000UL / (LOOPS * HZ));
27}
diff --git a/arch/xtensa/variants/s6000/gpio.c b/arch/xtensa/variants/s6000/gpio.c
index 33a8d952934c..79317fdcf14c 100644
--- a/arch/xtensa/variants/s6000/gpio.c
+++ b/arch/xtensa/variants/s6000/gpio.c
@@ -64,8 +64,7 @@ static struct gpio_chip gpiochip = {
64 .exported = 0, /* no exporting to userspace */ 64 .exported = 0, /* no exporting to userspace */
65}; 65};
66 66
67static int gpio_init(void) 67int s6_gpio_init(void)
68{ 68{
69 return gpiochip_add(&gpiochip); 69 return gpiochip_add(&gpiochip);
70} 70}
71device_initcall(gpio_init);
diff --git a/arch/xtensa/variants/s6000/include/variant/gpio.h b/arch/xtensa/variants/s6000/include/variant/gpio.h
new file mode 100644
index 000000000000..8327f62167eb
--- /dev/null
+++ b/arch/xtensa/variants/s6000/include/variant/gpio.h
@@ -0,0 +1,6 @@
1#ifndef _XTENSA_VARIANT_S6000_GPIO_H
2#define _XTENSA_VARIANT_S6000_GPIO_H
3
4extern int s6_gpio_init(void);
5
6#endif /* _XTENSA_VARIANT_S6000_GPIO_H */
diff --git a/block/as-iosched.c b/block/as-iosched.c
index 631f6f44460a..c48fa670d221 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -17,9 +17,6 @@
17#include <linux/rbtree.h> 17#include <linux/rbtree.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19 19
20#define REQ_SYNC 1
21#define REQ_ASYNC 0
22
23/* 20/*
24 * See Documentation/block/as-iosched.txt 21 * See Documentation/block/as-iosched.txt
25 */ 22 */
@@ -93,7 +90,7 @@ struct as_data {
93 struct list_head fifo_list[2]; 90 struct list_head fifo_list[2];
94 91
95 struct request *next_rq[2]; /* next in sort order */ 92 struct request *next_rq[2]; /* next in sort order */
96 sector_t last_sector[2]; /* last REQ_SYNC & REQ_ASYNC sectors */ 93 sector_t last_sector[2]; /* last SYNC & ASYNC sectors */
97 94
98 unsigned long exit_prob; /* probability a task will exit while 95 unsigned long exit_prob; /* probability a task will exit while
99 being waited on */ 96 being waited on */
@@ -109,7 +106,7 @@ struct as_data {
109 unsigned long last_check_fifo[2]; 106 unsigned long last_check_fifo[2];
110 int changed_batch; /* 1: waiting for old batch to end */ 107 int changed_batch; /* 1: waiting for old batch to end */
111 int new_batch; /* 1: waiting on first read complete */ 108 int new_batch; /* 1: waiting on first read complete */
112 int batch_data_dir; /* current batch REQ_SYNC / REQ_ASYNC */ 109 int batch_data_dir; /* current batch SYNC / ASYNC */
113 int write_batch_count; /* max # of reqs in a write batch */ 110 int write_batch_count; /* max # of reqs in a write batch */
114 int current_write_count; /* how many requests left this batch */ 111 int current_write_count; /* how many requests left this batch */
115 int write_batch_idled; /* has the write batch gone idle? */ 112 int write_batch_idled; /* has the write batch gone idle? */
@@ -554,7 +551,7 @@ static void as_update_iohist(struct as_data *ad, struct as_io_context *aic,
554 if (aic == NULL) 551 if (aic == NULL)
555 return; 552 return;
556 553
557 if (data_dir == REQ_SYNC) { 554 if (data_dir == BLK_RW_SYNC) {
558 unsigned long in_flight = atomic_read(&aic->nr_queued) 555 unsigned long in_flight = atomic_read(&aic->nr_queued)
559 + atomic_read(&aic->nr_dispatched); 556 + atomic_read(&aic->nr_dispatched);
560 spin_lock(&aic->lock); 557 spin_lock(&aic->lock);
@@ -811,7 +808,7 @@ static void as_update_rq(struct as_data *ad, struct request *rq)
811 */ 808 */
812static void update_write_batch(struct as_data *ad) 809static void update_write_batch(struct as_data *ad)
813{ 810{
814 unsigned long batch = ad->batch_expire[REQ_ASYNC]; 811 unsigned long batch = ad->batch_expire[BLK_RW_ASYNC];
815 long write_time; 812 long write_time;
816 813
817 write_time = (jiffies - ad->current_batch_expires) + batch; 814 write_time = (jiffies - ad->current_batch_expires) + batch;
@@ -855,7 +852,7 @@ static void as_completed_request(struct request_queue *q, struct request *rq)
855 kblockd_schedule_work(q, &ad->antic_work); 852 kblockd_schedule_work(q, &ad->antic_work);
856 ad->changed_batch = 0; 853 ad->changed_batch = 0;
857 854
858 if (ad->batch_data_dir == REQ_SYNC) 855 if (ad->batch_data_dir == BLK_RW_SYNC)
859 ad->new_batch = 1; 856 ad->new_batch = 1;
860 } 857 }
861 WARN_ON(ad->nr_dispatched == 0); 858 WARN_ON(ad->nr_dispatched == 0);
@@ -869,7 +866,7 @@ static void as_completed_request(struct request_queue *q, struct request *rq)
869 if (ad->new_batch && ad->batch_data_dir == rq_is_sync(rq)) { 866 if (ad->new_batch && ad->batch_data_dir == rq_is_sync(rq)) {
870 update_write_batch(ad); 867 update_write_batch(ad);
871 ad->current_batch_expires = jiffies + 868 ad->current_batch_expires = jiffies +
872 ad->batch_expire[REQ_SYNC]; 869 ad->batch_expire[BLK_RW_SYNC];
873 ad->new_batch = 0; 870 ad->new_batch = 0;
874 } 871 }
875 872
@@ -960,7 +957,7 @@ static inline int as_batch_expired(struct as_data *ad)
960 if (ad->changed_batch || ad->new_batch) 957 if (ad->changed_batch || ad->new_batch)
961 return 0; 958 return 0;
962 959
963 if (ad->batch_data_dir == REQ_SYNC) 960 if (ad->batch_data_dir == BLK_RW_SYNC)
964 /* TODO! add a check so a complete fifo gets written? */ 961 /* TODO! add a check so a complete fifo gets written? */
965 return time_after(jiffies, ad->current_batch_expires); 962 return time_after(jiffies, ad->current_batch_expires);
966 963
@@ -986,7 +983,7 @@ static void as_move_to_dispatch(struct as_data *ad, struct request *rq)
986 */ 983 */
987 ad->last_sector[data_dir] = rq->sector + rq->nr_sectors; 984 ad->last_sector[data_dir] = rq->sector + rq->nr_sectors;
988 985
989 if (data_dir == REQ_SYNC) { 986 if (data_dir == BLK_RW_SYNC) {
990 struct io_context *ioc = RQ_IOC(rq); 987 struct io_context *ioc = RQ_IOC(rq);
991 /* In case we have to anticipate after this */ 988 /* In case we have to anticipate after this */
992 copy_io_context(&ad->io_context, &ioc); 989 copy_io_context(&ad->io_context, &ioc);
@@ -1025,41 +1022,41 @@ static void as_move_to_dispatch(struct as_data *ad, struct request *rq)
1025static int as_dispatch_request(struct request_queue *q, int force) 1022static int as_dispatch_request(struct request_queue *q, int force)
1026{ 1023{
1027 struct as_data *ad = q->elevator->elevator_data; 1024 struct as_data *ad = q->elevator->elevator_data;
1028 const int reads = !list_empty(&ad->fifo_list[REQ_SYNC]); 1025 const int reads = !list_empty(&ad->fifo_list[BLK_RW_SYNC]);
1029 const int writes = !list_empty(&ad->fifo_list[REQ_ASYNC]); 1026 const int writes = !list_empty(&ad->fifo_list[BLK_RW_ASYNC]);
1030 struct request *rq; 1027 struct request *rq;
1031 1028
1032 if (unlikely(force)) { 1029 if (unlikely(force)) {
1033 /* 1030 /*
1034 * Forced dispatch, accounting is useless. Reset 1031 * Forced dispatch, accounting is useless. Reset
1035 * accounting states and dump fifo_lists. Note that 1032 * accounting states and dump fifo_lists. Note that
1036 * batch_data_dir is reset to REQ_SYNC to avoid 1033 * batch_data_dir is reset to BLK_RW_SYNC to avoid
1037 * screwing write batch accounting as write batch 1034 * screwing write batch accounting as write batch
1038 * accounting occurs on W->R transition. 1035 * accounting occurs on W->R transition.
1039 */ 1036 */
1040 int dispatched = 0; 1037 int dispatched = 0;
1041 1038
1042 ad->batch_data_dir = REQ_SYNC; 1039 ad->batch_data_dir = BLK_RW_SYNC;
1043 ad->changed_batch = 0; 1040 ad->changed_batch = 0;
1044 ad->new_batch = 0; 1041 ad->new_batch = 0;
1045 1042
1046 while (ad->next_rq[REQ_SYNC]) { 1043 while (ad->next_rq[BLK_RW_SYNC]) {
1047 as_move_to_dispatch(ad, ad->next_rq[REQ_SYNC]); 1044 as_move_to_dispatch(ad, ad->next_rq[BLK_RW_SYNC]);
1048 dispatched++; 1045 dispatched++;
1049 } 1046 }
1050 ad->last_check_fifo[REQ_SYNC] = jiffies; 1047 ad->last_check_fifo[BLK_RW_SYNC] = jiffies;
1051 1048
1052 while (ad->next_rq[REQ_ASYNC]) { 1049 while (ad->next_rq[BLK_RW_ASYNC]) {
1053 as_move_to_dispatch(ad, ad->next_rq[REQ_ASYNC]); 1050 as_move_to_dispatch(ad, ad->next_rq[BLK_RW_ASYNC]);
1054 dispatched++; 1051 dispatched++;
1055 } 1052 }
1056 ad->last_check_fifo[REQ_ASYNC] = jiffies; 1053 ad->last_check_fifo[BLK_RW_ASYNC] = jiffies;
1057 1054
1058 return dispatched; 1055 return dispatched;
1059 } 1056 }
1060 1057
1061 /* Signal that the write batch was uncontended, so we can't time it */ 1058 /* Signal that the write batch was uncontended, so we can't time it */
1062 if (ad->batch_data_dir == REQ_ASYNC && !reads) { 1059 if (ad->batch_data_dir == BLK_RW_ASYNC && !reads) {
1063 if (ad->current_write_count == 0 || !writes) 1060 if (ad->current_write_count == 0 || !writes)
1064 ad->write_batch_idled = 1; 1061 ad->write_batch_idled = 1;
1065 } 1062 }
@@ -1076,8 +1073,8 @@ static int as_dispatch_request(struct request_queue *q, int force)
1076 */ 1073 */
1077 rq = ad->next_rq[ad->batch_data_dir]; 1074 rq = ad->next_rq[ad->batch_data_dir];
1078 1075
1079 if (ad->batch_data_dir == REQ_SYNC && ad->antic_expire) { 1076 if (ad->batch_data_dir == BLK_RW_SYNC && ad->antic_expire) {
1080 if (as_fifo_expired(ad, REQ_SYNC)) 1077 if (as_fifo_expired(ad, BLK_RW_SYNC))
1081 goto fifo_expired; 1078 goto fifo_expired;
1082 1079
1083 if (as_can_anticipate(ad, rq)) { 1080 if (as_can_anticipate(ad, rq)) {
@@ -1090,7 +1087,7 @@ static int as_dispatch_request(struct request_queue *q, int force)
1090 /* we have a "next request" */ 1087 /* we have a "next request" */
1091 if (reads && !writes) 1088 if (reads && !writes)
1092 ad->current_batch_expires = 1089 ad->current_batch_expires =
1093 jiffies + ad->batch_expire[REQ_SYNC]; 1090 jiffies + ad->batch_expire[BLK_RW_SYNC];
1094 goto dispatch_request; 1091 goto dispatch_request;
1095 } 1092 }
1096 } 1093 }
@@ -1101,20 +1098,20 @@ static int as_dispatch_request(struct request_queue *q, int force)
1101 */ 1098 */
1102 1099
1103 if (reads) { 1100 if (reads) {
1104 BUG_ON(RB_EMPTY_ROOT(&ad->sort_list[REQ_SYNC])); 1101 BUG_ON(RB_EMPTY_ROOT(&ad->sort_list[BLK_RW_SYNC]));
1105 1102
1106 if (writes && ad->batch_data_dir == REQ_SYNC) 1103 if (writes && ad->batch_data_dir == BLK_RW_SYNC)
1107 /* 1104 /*
1108 * Last batch was a read, switch to writes 1105 * Last batch was a read, switch to writes
1109 */ 1106 */
1110 goto dispatch_writes; 1107 goto dispatch_writes;
1111 1108
1112 if (ad->batch_data_dir == REQ_ASYNC) { 1109 if (ad->batch_data_dir == BLK_RW_ASYNC) {
1113 WARN_ON(ad->new_batch); 1110 WARN_ON(ad->new_batch);
1114 ad->changed_batch = 1; 1111 ad->changed_batch = 1;
1115 } 1112 }
1116 ad->batch_data_dir = REQ_SYNC; 1113 ad->batch_data_dir = BLK_RW_SYNC;
1117 rq = rq_entry_fifo(ad->fifo_list[REQ_SYNC].next); 1114 rq = rq_entry_fifo(ad->fifo_list[BLK_RW_SYNC].next);
1118 ad->last_check_fifo[ad->batch_data_dir] = jiffies; 1115 ad->last_check_fifo[ad->batch_data_dir] = jiffies;
1119 goto dispatch_request; 1116 goto dispatch_request;
1120 } 1117 }
@@ -1125,9 +1122,9 @@ static int as_dispatch_request(struct request_queue *q, int force)
1125 1122
1126 if (writes) { 1123 if (writes) {
1127dispatch_writes: 1124dispatch_writes:
1128 BUG_ON(RB_EMPTY_ROOT(&ad->sort_list[REQ_ASYNC])); 1125 BUG_ON(RB_EMPTY_ROOT(&ad->sort_list[BLK_RW_ASYNC]));
1129 1126
1130 if (ad->batch_data_dir == REQ_SYNC) { 1127 if (ad->batch_data_dir == BLK_RW_SYNC) {
1131 ad->changed_batch = 1; 1128 ad->changed_batch = 1;
1132 1129
1133 /* 1130 /*
@@ -1137,11 +1134,11 @@ dispatch_writes:
1137 */ 1134 */
1138 ad->new_batch = 0; 1135 ad->new_batch = 0;
1139 } 1136 }
1140 ad->batch_data_dir = REQ_ASYNC; 1137 ad->batch_data_dir = BLK_RW_ASYNC;
1141 ad->current_write_count = ad->write_batch_count; 1138 ad->current_write_count = ad->write_batch_count;
1142 ad->write_batch_idled = 0; 1139 ad->write_batch_idled = 0;
1143 rq = rq_entry_fifo(ad->fifo_list[REQ_ASYNC].next); 1140 rq = rq_entry_fifo(ad->fifo_list[BLK_RW_ASYNC].next);
1144 ad->last_check_fifo[REQ_ASYNC] = jiffies; 1141 ad->last_check_fifo[BLK_RW_ASYNC] = jiffies;
1145 goto dispatch_request; 1142 goto dispatch_request;
1146 } 1143 }
1147 1144
@@ -1164,9 +1161,9 @@ fifo_expired:
1164 if (ad->nr_dispatched) 1161 if (ad->nr_dispatched)
1165 return 0; 1162 return 0;
1166 1163
1167 if (ad->batch_data_dir == REQ_ASYNC) 1164 if (ad->batch_data_dir == BLK_RW_ASYNC)
1168 ad->current_batch_expires = jiffies + 1165 ad->current_batch_expires = jiffies +
1169 ad->batch_expire[REQ_ASYNC]; 1166 ad->batch_expire[BLK_RW_ASYNC];
1170 else 1167 else
1171 ad->new_batch = 1; 1168 ad->new_batch = 1;
1172 1169
@@ -1238,8 +1235,8 @@ static int as_queue_empty(struct request_queue *q)
1238{ 1235{
1239 struct as_data *ad = q->elevator->elevator_data; 1236 struct as_data *ad = q->elevator->elevator_data;
1240 1237
1241 return list_empty(&ad->fifo_list[REQ_ASYNC]) 1238 return list_empty(&ad->fifo_list[BLK_RW_ASYNC])
1242 && list_empty(&ad->fifo_list[REQ_SYNC]); 1239 && list_empty(&ad->fifo_list[BLK_RW_SYNC]);
1243} 1240}
1244 1241
1245static int 1242static int
@@ -1346,8 +1343,8 @@ static void as_exit_queue(struct elevator_queue *e)
1346 del_timer_sync(&ad->antic_timer); 1343 del_timer_sync(&ad->antic_timer);
1347 cancel_work_sync(&ad->antic_work); 1344 cancel_work_sync(&ad->antic_work);
1348 1345
1349 BUG_ON(!list_empty(&ad->fifo_list[REQ_SYNC])); 1346 BUG_ON(!list_empty(&ad->fifo_list[BLK_RW_SYNC]));
1350 BUG_ON(!list_empty(&ad->fifo_list[REQ_ASYNC])); 1347 BUG_ON(!list_empty(&ad->fifo_list[BLK_RW_ASYNC]));
1351 1348
1352 put_io_context(ad->io_context); 1349 put_io_context(ad->io_context);
1353 kfree(ad); 1350 kfree(ad);
@@ -1372,18 +1369,18 @@ static void *as_init_queue(struct request_queue *q)
1372 init_timer(&ad->antic_timer); 1369 init_timer(&ad->antic_timer);
1373 INIT_WORK(&ad->antic_work, as_work_handler); 1370 INIT_WORK(&ad->antic_work, as_work_handler);
1374 1371
1375 INIT_LIST_HEAD(&ad->fifo_list[REQ_SYNC]); 1372 INIT_LIST_HEAD(&ad->fifo_list[BLK_RW_SYNC]);
1376 INIT_LIST_HEAD(&ad->fifo_list[REQ_ASYNC]); 1373 INIT_LIST_HEAD(&ad->fifo_list[BLK_RW_ASYNC]);
1377 ad->sort_list[REQ_SYNC] = RB_ROOT; 1374 ad->sort_list[BLK_RW_SYNC] = RB_ROOT;
1378 ad->sort_list[REQ_ASYNC] = RB_ROOT; 1375 ad->sort_list[BLK_RW_ASYNC] = RB_ROOT;
1379 ad->fifo_expire[REQ_SYNC] = default_read_expire; 1376 ad->fifo_expire[BLK_RW_SYNC] = default_read_expire;
1380 ad->fifo_expire[REQ_ASYNC] = default_write_expire; 1377 ad->fifo_expire[BLK_RW_ASYNC] = default_write_expire;
1381 ad->antic_expire = default_antic_expire; 1378 ad->antic_expire = default_antic_expire;
1382 ad->batch_expire[REQ_SYNC] = default_read_batch_expire; 1379 ad->batch_expire[BLK_RW_SYNC] = default_read_batch_expire;
1383 ad->batch_expire[REQ_ASYNC] = default_write_batch_expire; 1380 ad->batch_expire[BLK_RW_ASYNC] = default_write_batch_expire;
1384 1381
1385 ad->current_batch_expires = jiffies + ad->batch_expire[REQ_SYNC]; 1382 ad->current_batch_expires = jiffies + ad->batch_expire[BLK_RW_SYNC];
1386 ad->write_batch_count = ad->batch_expire[REQ_ASYNC] / 10; 1383 ad->write_batch_count = ad->batch_expire[BLK_RW_ASYNC] / 10;
1387 if (ad->write_batch_count < 2) 1384 if (ad->write_batch_count < 2)
1388 ad->write_batch_count = 2; 1385 ad->write_batch_count = 2;
1389 1386
@@ -1432,11 +1429,11 @@ static ssize_t __FUNC(struct elevator_queue *e, char *page) \
1432 struct as_data *ad = e->elevator_data; \ 1429 struct as_data *ad = e->elevator_data; \
1433 return as_var_show(jiffies_to_msecs((__VAR)), (page)); \ 1430 return as_var_show(jiffies_to_msecs((__VAR)), (page)); \
1434} 1431}
1435SHOW_FUNCTION(as_read_expire_show, ad->fifo_expire[REQ_SYNC]); 1432SHOW_FUNCTION(as_read_expire_show, ad->fifo_expire[BLK_RW_SYNC]);
1436SHOW_FUNCTION(as_write_expire_show, ad->fifo_expire[REQ_ASYNC]); 1433SHOW_FUNCTION(as_write_expire_show, ad->fifo_expire[BLK_RW_ASYNC]);
1437SHOW_FUNCTION(as_antic_expire_show, ad->antic_expire); 1434SHOW_FUNCTION(as_antic_expire_show, ad->antic_expire);
1438SHOW_FUNCTION(as_read_batch_expire_show, ad->batch_expire[REQ_SYNC]); 1435SHOW_FUNCTION(as_read_batch_expire_show, ad->batch_expire[BLK_RW_SYNC]);
1439SHOW_FUNCTION(as_write_batch_expire_show, ad->batch_expire[REQ_ASYNC]); 1436SHOW_FUNCTION(as_write_batch_expire_show, ad->batch_expire[BLK_RW_ASYNC]);
1440#undef SHOW_FUNCTION 1437#undef SHOW_FUNCTION
1441 1438
1442#define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX) \ 1439#define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX) \
@@ -1451,13 +1448,14 @@ static ssize_t __FUNC(struct elevator_queue *e, const char *page, size_t count)
1451 *(__PTR) = msecs_to_jiffies(*(__PTR)); \ 1448 *(__PTR) = msecs_to_jiffies(*(__PTR)); \
1452 return ret; \ 1449 return ret; \
1453} 1450}
1454STORE_FUNCTION(as_read_expire_store, &ad->fifo_expire[REQ_SYNC], 0, INT_MAX); 1451STORE_FUNCTION(as_read_expire_store, &ad->fifo_expire[BLK_RW_SYNC], 0, INT_MAX);
1455STORE_FUNCTION(as_write_expire_store, &ad->fifo_expire[REQ_ASYNC], 0, INT_MAX); 1452STORE_FUNCTION(as_write_expire_store,
1453 &ad->fifo_expire[BLK_RW_ASYNC], 0, INT_MAX);
1456STORE_FUNCTION(as_antic_expire_store, &ad->antic_expire, 0, INT_MAX); 1454STORE_FUNCTION(as_antic_expire_store, &ad->antic_expire, 0, INT_MAX);
1457STORE_FUNCTION(as_read_batch_expire_store, 1455STORE_FUNCTION(as_read_batch_expire_store,
1458 &ad->batch_expire[REQ_SYNC], 0, INT_MAX); 1456 &ad->batch_expire[BLK_RW_SYNC], 0, INT_MAX);
1459STORE_FUNCTION(as_write_batch_expire_store, 1457STORE_FUNCTION(as_write_batch_expire_store,
1460 &ad->batch_expire[REQ_ASYNC], 0, INT_MAX); 1458 &ad->batch_expire[BLK_RW_ASYNC], 0, INT_MAX);
1461#undef STORE_FUNCTION 1459#undef STORE_FUNCTION
1462 1460
1463#define AS_ATTR(name) \ 1461#define AS_ATTR(name) \
diff --git a/block/blk-barrier.c b/block/blk-barrier.c
index f7dae57e6cab..20b4111fa050 100644
--- a/block/blk-barrier.c
+++ b/block/blk-barrier.c
@@ -319,9 +319,6 @@ int blkdev_issue_flush(struct block_device *bdev, sector_t *error_sector)
319 return -ENXIO; 319 return -ENXIO;
320 320
321 bio = bio_alloc(GFP_KERNEL, 0); 321 bio = bio_alloc(GFP_KERNEL, 0);
322 if (!bio)
323 return -ENOMEM;
324
325 bio->bi_end_io = bio_end_empty_barrier; 322 bio->bi_end_io = bio_end_empty_barrier;
326 bio->bi_private = &wait; 323 bio->bi_private = &wait;
327 bio->bi_bdev = bdev; 324 bio->bi_bdev = bdev;
diff --git a/block/blk-core.c b/block/blk-core.c
index 07ab75403e1a..c89883be8737 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -643,7 +643,7 @@ static inline void blk_free_request(struct request_queue *q, struct request *rq)
643} 643}
644 644
645static struct request * 645static struct request *
646blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask) 646blk_alloc_request(struct request_queue *q, int flags, int priv, gfp_t gfp_mask)
647{ 647{
648 struct request *rq = mempool_alloc(q->rq.rq_pool, gfp_mask); 648 struct request *rq = mempool_alloc(q->rq.rq_pool, gfp_mask);
649 649
@@ -652,7 +652,7 @@ blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask)
652 652
653 blk_rq_init(q, rq); 653 blk_rq_init(q, rq);
654 654
655 rq->cmd_flags = rw | REQ_ALLOCED; 655 rq->cmd_flags = flags | REQ_ALLOCED;
656 656
657 if (priv) { 657 if (priv) {
658 if (unlikely(elv_set_request(q, rq, gfp_mask))) { 658 if (unlikely(elv_set_request(q, rq, gfp_mask))) {
@@ -792,6 +792,8 @@ static struct request *get_request(struct request_queue *q, int rw_flags,
792 if (priv) 792 if (priv)
793 rl->elvpriv++; 793 rl->elvpriv++;
794 794
795 if (blk_queue_io_stat(q))
796 rw_flags |= REQ_IO_STAT;
795 spin_unlock_irq(q->queue_lock); 797 spin_unlock_irq(q->queue_lock);
796 798
797 rq = blk_alloc_request(q, rw_flags, priv, gfp_mask); 799 rq = blk_alloc_request(q, rw_flags, priv, gfp_mask);
@@ -1766,10 +1768,10 @@ static int __end_that_request_first(struct request *req, int error,
1766 } else { 1768 } else {
1767 int idx = bio->bi_idx + next_idx; 1769 int idx = bio->bi_idx + next_idx;
1768 1770
1769 if (unlikely(bio->bi_idx >= bio->bi_vcnt)) { 1771 if (unlikely(idx >= bio->bi_vcnt)) {
1770 blk_dump_rq_flags(req, "__end_that"); 1772 blk_dump_rq_flags(req, "__end_that");
1771 printk(KERN_ERR "%s: bio idx %d >= vcnt %d\n", 1773 printk(KERN_ERR "%s: bio idx %d >= vcnt %d\n",
1772 __func__, bio->bi_idx, bio->bi_vcnt); 1774 __func__, idx, bio->bi_vcnt);
1773 break; 1775 break;
1774 } 1776 }
1775 1777
diff --git a/block/blk-merge.c b/block/blk-merge.c
index 63760ca3da0f..23d2a6fe34a3 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -402,7 +402,10 @@ static int attempt_merge(struct request_queue *q, struct request *req,
402 402
403 elv_merge_requests(q, req, next); 403 elv_merge_requests(q, req, next);
404 404
405 blk_account_io_merge(req); 405 /*
406 * 'next' is going away, so update stats accordingly
407 */
408 blk_account_io_merge(next);
406 409
407 req->ioprio = ioprio_best(req->ioprio, next->ioprio); 410 req->ioprio = ioprio_best(req->ioprio, next->ioprio);
408 if (blk_rq_cpu_valid(next)) 411 if (blk_rq_cpu_valid(next))
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 69c42adde52b..57af728d94bb 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -156,26 +156,28 @@ EXPORT_SYMBOL(blk_queue_make_request);
156 156
157/** 157/**
158 * blk_queue_bounce_limit - set bounce buffer limit for queue 158 * blk_queue_bounce_limit - set bounce buffer limit for queue
159 * @q: the request queue for the device 159 * @q: the request queue for the device
160 * @dma_addr: bus address limit 160 * @dma_mask: the maximum address the device can handle
161 * 161 *
162 * Description: 162 * Description:
163 * Different hardware can have different requirements as to what pages 163 * Different hardware can have different requirements as to what pages
164 * it can do I/O directly to. A low level driver can call 164 * it can do I/O directly to. A low level driver can call
165 * blk_queue_bounce_limit to have lower memory pages allocated as bounce 165 * blk_queue_bounce_limit to have lower memory pages allocated as bounce
166 * buffers for doing I/O to pages residing above @dma_addr. 166 * buffers for doing I/O to pages residing above @dma_mask.
167 **/ 167 **/
168void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr) 168void blk_queue_bounce_limit(struct request_queue *q, u64 dma_mask)
169{ 169{
170 unsigned long b_pfn = dma_addr >> PAGE_SHIFT; 170 unsigned long b_pfn = dma_mask >> PAGE_SHIFT;
171 int dma = 0; 171 int dma = 0;
172 172
173 q->bounce_gfp = GFP_NOIO; 173 q->bounce_gfp = GFP_NOIO;
174#if BITS_PER_LONG == 64 174#if BITS_PER_LONG == 64
175 /* Assume anything <= 4GB can be handled by IOMMU. 175 /*
176 Actually some IOMMUs can handle everything, but I don't 176 * Assume anything <= 4GB can be handled by IOMMU. Actually
177 know of a way to test this here. */ 177 * some IOMMUs can handle everything, but I don't know of a
178 if (b_pfn < (min_t(u64, 0x100000000UL, BLK_BOUNCE_HIGH) >> PAGE_SHIFT)) 178 * way to test this here.
179 */
180 if (b_pfn < (min_t(u64, 0xffffffffUL, BLK_BOUNCE_HIGH) >> PAGE_SHIFT))
179 dma = 1; 181 dma = 1;
180 q->bounce_pfn = max_low_pfn; 182 q->bounce_pfn = max_low_pfn;
181#else 183#else
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index 73f36beff5cd..3ff9bba3379a 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -209,14 +209,10 @@ static ssize_t queue_iostats_store(struct request_queue *q, const char *page,
209 ssize_t ret = queue_var_store(&stats, page, count); 209 ssize_t ret = queue_var_store(&stats, page, count);
210 210
211 spin_lock_irq(q->queue_lock); 211 spin_lock_irq(q->queue_lock);
212 elv_quisce_start(q);
213
214 if (stats) 212 if (stats)
215 queue_flag_set(QUEUE_FLAG_IO_STAT, q); 213 queue_flag_set(QUEUE_FLAG_IO_STAT, q);
216 else 214 else
217 queue_flag_clear(QUEUE_FLAG_IO_STAT, q); 215 queue_flag_clear(QUEUE_FLAG_IO_STAT, q);
218
219 elv_quisce_end(q);
220 spin_unlock_irq(q->queue_lock); 216 spin_unlock_irq(q->queue_lock);
221 217
222 return ret; 218 return ret;
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index bbbdc4b8ccf2..1ec0d503cacd 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -211,6 +211,12 @@ void blk_abort_queue(struct request_queue *q)
211 struct request *rq, *tmp; 211 struct request *rq, *tmp;
212 LIST_HEAD(list); 212 LIST_HEAD(list);
213 213
214 /*
215 * Not a request based block device, nothing to abort
216 */
217 if (!q->request_fn)
218 return;
219
214 spin_lock_irqsave(q->queue_lock, flags); 220 spin_lock_irqsave(q->queue_lock, flags);
215 221
216 elv_abort_queue(q); 222 elv_abort_queue(q);
@@ -224,6 +230,13 @@ void blk_abort_queue(struct request_queue *q)
224 list_for_each_entry_safe(rq, tmp, &list, timeout_list) 230 list_for_each_entry_safe(rq, tmp, &list, timeout_list)
225 blk_abort_request(rq); 231 blk_abort_request(rq);
226 232
233 /*
234 * Occasionally, blk_abort_request() will return without
235 * deleting the element from the list. Make sure we add those back
236 * instead of leaving them on the local stack list.
237 */
238 list_splice(&list, &q->timeout_list);
239
227 spin_unlock_irqrestore(q->queue_lock, flags); 240 spin_unlock_irqrestore(q->queue_lock, flags);
228 241
229} 242}
diff --git a/block/blk.h b/block/blk.h
index 24fcaeeaf620..79c85f7c9ff5 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -70,8 +70,8 @@ void blk_queue_congestion_threshold(struct request_queue *q);
70 70
71int blk_dev_init(void); 71int blk_dev_init(void);
72 72
73void elv_quisce_start(struct request_queue *q); 73void elv_quiesce_start(struct request_queue *q);
74void elv_quisce_end(struct request_queue *q); 74void elv_quiesce_end(struct request_queue *q);
75 75
76 76
77/* 77/*
@@ -114,12 +114,7 @@ static inline int blk_cpu_to_group(int cpu)
114 114
115static inline int blk_do_io_stat(struct request *rq) 115static inline int blk_do_io_stat(struct request *rq)
116{ 116{
117 struct gendisk *disk = rq->rq_disk; 117 return rq->rq_disk && blk_rq_io_stat(rq);
118
119 if (!disk || !disk->queue)
120 return 0;
121
122 return blk_queue_io_stat(disk->queue) && (rq->cmd_flags & REQ_ELVPRIV);
123} 118}
124 119
125#endif 120#endif
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index a4809de6fea6..a55a9bd75bd1 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -56,9 +56,6 @@ static DEFINE_SPINLOCK(ioc_gone_lock);
56#define cfq_class_idle(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_IDLE) 56#define cfq_class_idle(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_IDLE)
57#define cfq_class_rt(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_RT) 57#define cfq_class_rt(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_RT)
58 58
59#define ASYNC (0)
60#define SYNC (1)
61
62#define sample_valid(samples) ((samples) > 80) 59#define sample_valid(samples) ((samples) > 80)
63 60
64/* 61/*
@@ -83,6 +80,14 @@ struct cfq_data {
83 * rr list of queues with requests and the count of them 80 * rr list of queues with requests and the count of them
84 */ 81 */
85 struct cfq_rb_root service_tree; 82 struct cfq_rb_root service_tree;
83
84 /*
85 * Each priority tree is sorted by next_request position. These
86 * trees are used when determining if two or more queues are
87 * interleaving requests (see cfq_close_cooperator).
88 */
89 struct rb_root prio_trees[CFQ_PRIO_LISTS];
90
86 unsigned int busy_queues; 91 unsigned int busy_queues;
87 /* 92 /*
88 * Used to track any pending rt requests so we can pre-empt current 93 * Used to track any pending rt requests so we can pre-empt current
@@ -147,6 +152,10 @@ struct cfq_queue {
147 struct rb_node rb_node; 152 struct rb_node rb_node;
148 /* service_tree key */ 153 /* service_tree key */
149 unsigned long rb_key; 154 unsigned long rb_key;
155 /* prio tree member */
156 struct rb_node p_node;
157 /* prio tree root we belong to, if any */
158 struct rb_root *p_root;
150 /* sorted list of pending requests */ 159 /* sorted list of pending requests */
151 struct rb_root sort_list; 160 struct rb_root sort_list;
152 /* if fifo isn't expired, next request to serve */ 161 /* if fifo isn't expired, next request to serve */
@@ -185,6 +194,7 @@ enum cfqq_state_flags {
185 CFQ_CFQQ_FLAG_prio_changed, /* task priority has changed */ 194 CFQ_CFQQ_FLAG_prio_changed, /* task priority has changed */
186 CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */ 195 CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */
187 CFQ_CFQQ_FLAG_sync, /* synchronous queue */ 196 CFQ_CFQQ_FLAG_sync, /* synchronous queue */
197 CFQ_CFQQ_FLAG_coop, /* has done a coop jump of the queue */
188}; 198};
189 199
190#define CFQ_CFQQ_FNS(name) \ 200#define CFQ_CFQQ_FNS(name) \
@@ -211,6 +221,7 @@ CFQ_CFQQ_FNS(idle_window);
211CFQ_CFQQ_FNS(prio_changed); 221CFQ_CFQQ_FNS(prio_changed);
212CFQ_CFQQ_FNS(slice_new); 222CFQ_CFQQ_FNS(slice_new);
213CFQ_CFQQ_FNS(sync); 223CFQ_CFQQ_FNS(sync);
224CFQ_CFQQ_FNS(coop);
214#undef CFQ_CFQQ_FNS 225#undef CFQ_CFQQ_FNS
215 226
216#define cfq_log_cfqq(cfqd, cfqq, fmt, args...) \ 227#define cfq_log_cfqq(cfqd, cfqq, fmt, args...) \
@@ -419,13 +430,17 @@ static struct cfq_queue *cfq_rb_first(struct cfq_rb_root *root)
419 return NULL; 430 return NULL;
420} 431}
421 432
433static void rb_erase_init(struct rb_node *n, struct rb_root *root)
434{
435 rb_erase(n, root);
436 RB_CLEAR_NODE(n);
437}
438
422static void cfq_rb_erase(struct rb_node *n, struct cfq_rb_root *root) 439static void cfq_rb_erase(struct rb_node *n, struct cfq_rb_root *root)
423{ 440{
424 if (root->left == n) 441 if (root->left == n)
425 root->left = NULL; 442 root->left = NULL;
426 443 rb_erase_init(n, &root->rb);
427 rb_erase(n, &root->rb);
428 RB_CLEAR_NODE(n);
429} 444}
430 445
431/* 446/*
@@ -470,8 +485,8 @@ static unsigned long cfq_slice_offset(struct cfq_data *cfqd,
470 * requests waiting to be processed. It is sorted in the order that 485 * requests waiting to be processed. It is sorted in the order that
471 * we will service the queues. 486 * we will service the queues.
472 */ 487 */
473static void cfq_service_tree_add(struct cfq_data *cfqd, 488static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq,
474 struct cfq_queue *cfqq, int add_front) 489 int add_front)
475{ 490{
476 struct rb_node **p, *parent; 491 struct rb_node **p, *parent;
477 struct cfq_queue *__cfqq; 492 struct cfq_queue *__cfqq;
@@ -544,6 +559,67 @@ static void cfq_service_tree_add(struct cfq_data *cfqd,
544 rb_insert_color(&cfqq->rb_node, &cfqd->service_tree.rb); 559 rb_insert_color(&cfqq->rb_node, &cfqd->service_tree.rb);
545} 560}
546 561
562static struct cfq_queue *
563cfq_prio_tree_lookup(struct cfq_data *cfqd, struct rb_root *root,
564 sector_t sector, struct rb_node **ret_parent,
565 struct rb_node ***rb_link)
566{
567 struct rb_node **p, *parent;
568 struct cfq_queue *cfqq = NULL;
569
570 parent = NULL;
571 p = &root->rb_node;
572 while (*p) {
573 struct rb_node **n;
574
575 parent = *p;
576 cfqq = rb_entry(parent, struct cfq_queue, p_node);
577
578 /*
579 * Sort strictly based on sector. Smallest to the left,
580 * largest to the right.
581 */
582 if (sector > cfqq->next_rq->sector)
583 n = &(*p)->rb_right;
584 else if (sector < cfqq->next_rq->sector)
585 n = &(*p)->rb_left;
586 else
587 break;
588 p = n;
589 cfqq = NULL;
590 }
591
592 *ret_parent = parent;
593 if (rb_link)
594 *rb_link = p;
595 return cfqq;
596}
597
598static void cfq_prio_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq)
599{
600 struct rb_node **p, *parent;
601 struct cfq_queue *__cfqq;
602
603 if (cfqq->p_root) {
604 rb_erase(&cfqq->p_node, cfqq->p_root);
605 cfqq->p_root = NULL;
606 }
607
608 if (cfq_class_idle(cfqq))
609 return;
610 if (!cfqq->next_rq)
611 return;
612
613 cfqq->p_root = &cfqd->prio_trees[cfqq->org_ioprio];
614 __cfqq = cfq_prio_tree_lookup(cfqd, cfqq->p_root, cfqq->next_rq->sector,
615 &parent, &p);
616 if (!__cfqq) {
617 rb_link_node(&cfqq->p_node, parent, p);
618 rb_insert_color(&cfqq->p_node, cfqq->p_root);
619 } else
620 cfqq->p_root = NULL;
621}
622
547/* 623/*
548 * Update cfqq's position in the service tree. 624 * Update cfqq's position in the service tree.
549 */ 625 */
@@ -552,8 +628,10 @@ static void cfq_resort_rr_list(struct cfq_data *cfqd, struct cfq_queue *cfqq)
552 /* 628 /*
553 * Resorting requires the cfqq to be on the RR list already. 629 * Resorting requires the cfqq to be on the RR list already.
554 */ 630 */
555 if (cfq_cfqq_on_rr(cfqq)) 631 if (cfq_cfqq_on_rr(cfqq)) {
556 cfq_service_tree_add(cfqd, cfqq, 0); 632 cfq_service_tree_add(cfqd, cfqq, 0);
633 cfq_prio_tree_add(cfqd, cfqq);
634 }
557} 635}
558 636
559/* 637/*
@@ -584,6 +662,10 @@ static void cfq_del_cfqq_rr(struct cfq_data *cfqd, struct cfq_queue *cfqq)
584 662
585 if (!RB_EMPTY_NODE(&cfqq->rb_node)) 663 if (!RB_EMPTY_NODE(&cfqq->rb_node))
586 cfq_rb_erase(&cfqq->rb_node, &cfqd->service_tree); 664 cfq_rb_erase(&cfqq->rb_node, &cfqd->service_tree);
665 if (cfqq->p_root) {
666 rb_erase(&cfqq->p_node, cfqq->p_root);
667 cfqq->p_root = NULL;
668 }
587 669
588 BUG_ON(!cfqd->busy_queues); 670 BUG_ON(!cfqd->busy_queues);
589 cfqd->busy_queues--; 671 cfqd->busy_queues--;
@@ -613,7 +695,7 @@ static void cfq_add_rq_rb(struct request *rq)
613{ 695{
614 struct cfq_queue *cfqq = RQ_CFQQ(rq); 696 struct cfq_queue *cfqq = RQ_CFQQ(rq);
615 struct cfq_data *cfqd = cfqq->cfqd; 697 struct cfq_data *cfqd = cfqq->cfqd;
616 struct request *__alias; 698 struct request *__alias, *prev;
617 699
618 cfqq->queued[rq_is_sync(rq)]++; 700 cfqq->queued[rq_is_sync(rq)]++;
619 701
@@ -630,7 +712,15 @@ static void cfq_add_rq_rb(struct request *rq)
630 /* 712 /*
631 * check if this request is a better next-serve candidate 713 * check if this request is a better next-serve candidate
632 */ 714 */
715 prev = cfqq->next_rq;
633 cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq); 716 cfqq->next_rq = cfq_choose_req(cfqd, cfqq->next_rq, rq);
717
718 /*
719 * adjust priority tree position, if ->next_rq changes
720 */
721 if (prev != cfqq->next_rq)
722 cfq_prio_tree_add(cfqd, cfqq);
723
634 BUG_ON(!cfqq->next_rq); 724 BUG_ON(!cfqq->next_rq);
635} 725}
636 726
@@ -843,11 +933,15 @@ static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd)
843/* 933/*
844 * Get and set a new active queue for service. 934 * Get and set a new active queue for service.
845 */ 935 */
846static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd) 936static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd,
937 struct cfq_queue *cfqq)
847{ 938{
848 struct cfq_queue *cfqq; 939 if (!cfqq) {
940 cfqq = cfq_get_next_queue(cfqd);
941 if (cfqq)
942 cfq_clear_cfqq_coop(cfqq);
943 }
849 944
850 cfqq = cfq_get_next_queue(cfqd);
851 __cfq_set_active_queue(cfqd, cfqq); 945 __cfq_set_active_queue(cfqd, cfqq);
852 return cfqq; 946 return cfqq;
853} 947}
@@ -861,28 +955,100 @@ static inline sector_t cfq_dist_from_last(struct cfq_data *cfqd,
861 return cfqd->last_position - rq->sector; 955 return cfqd->last_position - rq->sector;
862} 956}
863 957
958#define CIC_SEEK_THR 8 * 1024
959#define CIC_SEEKY(cic) ((cic)->seek_mean > CIC_SEEK_THR)
960
864static inline int cfq_rq_close(struct cfq_data *cfqd, struct request *rq) 961static inline int cfq_rq_close(struct cfq_data *cfqd, struct request *rq)
865{ 962{
866 struct cfq_io_context *cic = cfqd->active_cic; 963 struct cfq_io_context *cic = cfqd->active_cic;
964 sector_t sdist = cic->seek_mean;
867 965
868 if (!sample_valid(cic->seek_samples)) 966 if (!sample_valid(cic->seek_samples))
869 return 0; 967 sdist = CIC_SEEK_THR;
968
969 return cfq_dist_from_last(cfqd, rq) <= sdist;
970}
971
972static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
973 struct cfq_queue *cur_cfqq)
974{
975 struct rb_root *root = &cfqd->prio_trees[cur_cfqq->org_ioprio];
976 struct rb_node *parent, *node;
977 struct cfq_queue *__cfqq;
978 sector_t sector = cfqd->last_position;
979
980 if (RB_EMPTY_ROOT(root))
981 return NULL;
982
983 /*
984 * First, if we find a request starting at the end of the last
985 * request, choose it.
986 */
987 __cfqq = cfq_prio_tree_lookup(cfqd, root, sector, &parent, NULL);
988 if (__cfqq)
989 return __cfqq;
990
991 /*
992 * If the exact sector wasn't found, the parent of the NULL leaf
993 * will contain the closest sector.
994 */
995 __cfqq = rb_entry(parent, struct cfq_queue, p_node);
996 if (cfq_rq_close(cfqd, __cfqq->next_rq))
997 return __cfqq;
998
999 if (__cfqq->next_rq->sector < sector)
1000 node = rb_next(&__cfqq->p_node);
1001 else
1002 node = rb_prev(&__cfqq->p_node);
1003 if (!node)
1004 return NULL;
870 1005
871 return cfq_dist_from_last(cfqd, rq) <= cic->seek_mean; 1006 __cfqq = rb_entry(node, struct cfq_queue, p_node);
1007 if (cfq_rq_close(cfqd, __cfqq->next_rq))
1008 return __cfqq;
1009
1010 return NULL;
872} 1011}
873 1012
874static int cfq_close_cooperator(struct cfq_data *cfq_data, 1013/*
875 struct cfq_queue *cfqq) 1014 * cfqd - obvious
1015 * cur_cfqq - passed in so that we don't decide that the current queue is
1016 * closely cooperating with itself.
1017 *
1018 * So, basically we're assuming that that cur_cfqq has dispatched at least
1019 * one request, and that cfqd->last_position reflects a position on the disk
1020 * associated with the I/O issued by cur_cfqq. I'm not sure this is a valid
1021 * assumption.
1022 */
1023static struct cfq_queue *cfq_close_cooperator(struct cfq_data *cfqd,
1024 struct cfq_queue *cur_cfqq,
1025 int probe)
876{ 1026{
1027 struct cfq_queue *cfqq;
1028
1029 /*
1030 * A valid cfq_io_context is necessary to compare requests against
1031 * the seek_mean of the current cfqq.
1032 */
1033 if (!cfqd->active_cic)
1034 return NULL;
1035
877 /* 1036 /*
878 * We should notice if some of the queues are cooperating, eg 1037 * We should notice if some of the queues are cooperating, eg
879 * working closely on the same area of the disk. In that case, 1038 * working closely on the same area of the disk. In that case,
880 * we can group them together and don't waste time idling. 1039 * we can group them together and don't waste time idling.
881 */ 1040 */
882 return 0; 1041 cfqq = cfqq_close(cfqd, cur_cfqq);
883} 1042 if (!cfqq)
1043 return NULL;
884 1044
885#define CIC_SEEKY(cic) ((cic)->seek_mean > (8 * 1024)) 1045 if (cfq_cfqq_coop(cfqq))
1046 return NULL;
1047
1048 if (!probe)
1049 cfq_mark_cfqq_coop(cfqq);
1050 return cfqq;
1051}
886 1052
887static void cfq_arm_slice_timer(struct cfq_data *cfqd) 1053static void cfq_arm_slice_timer(struct cfq_data *cfqd)
888{ 1054{
@@ -920,13 +1086,6 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
920 if (!cic || !atomic_read(&cic->ioc->nr_tasks)) 1086 if (!cic || !atomic_read(&cic->ioc->nr_tasks))
921 return; 1087 return;
922 1088
923 /*
924 * See if this prio level has a good candidate
925 */
926 if (cfq_close_cooperator(cfqd, cfqq) &&
927 (sample_valid(cic->ttime_samples) && cic->ttime_mean > 2))
928 return;
929
930 cfq_mark_cfqq_wait_request(cfqq); 1089 cfq_mark_cfqq_wait_request(cfqq);
931 1090
932 /* 1091 /*
@@ -939,7 +1098,7 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd)
939 sl = min(sl, msecs_to_jiffies(CFQ_MIN_TT)); 1098 sl = min(sl, msecs_to_jiffies(CFQ_MIN_TT));
940 1099
941 mod_timer(&cfqd->idle_slice_timer, jiffies + sl); 1100 mod_timer(&cfqd->idle_slice_timer, jiffies + sl);
942 cfq_log(cfqd, "arm_idle: %lu", sl); 1101 cfq_log_cfqq(cfqd, cfqq, "arm_idle: %lu", sl);
943} 1102}
944 1103
945/* 1104/*
@@ -1003,7 +1162,7 @@ cfq_prio_to_maxrq(struct cfq_data *cfqd, struct cfq_queue *cfqq)
1003 */ 1162 */
1004static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd) 1163static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
1005{ 1164{
1006 struct cfq_queue *cfqq; 1165 struct cfq_queue *cfqq, *new_cfqq = NULL;
1007 1166
1008 cfqq = cfqd->active_queue; 1167 cfqq = cfqd->active_queue;
1009 if (!cfqq) 1168 if (!cfqq)
@@ -1037,6 +1196,16 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
1037 goto keep_queue; 1196 goto keep_queue;
1038 1197
1039 /* 1198 /*
1199 * If another queue has a request waiting within our mean seek
1200 * distance, let it run. The expire code will check for close
1201 * cooperators and put the close queue at the front of the service
1202 * tree.
1203 */
1204 new_cfqq = cfq_close_cooperator(cfqd, cfqq, 0);
1205 if (new_cfqq)
1206 goto expire;
1207
1208 /*
1040 * No requests pending. If the active queue still has requests in 1209 * No requests pending. If the active queue still has requests in
1041 * flight or is idling for a new request, allow either of these 1210 * flight or is idling for a new request, allow either of these
1042 * conditions to happen (or time out) before selecting a new queue. 1211 * conditions to happen (or time out) before selecting a new queue.
@@ -1050,7 +1219,7 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
1050expire: 1219expire:
1051 cfq_slice_expired(cfqd, 0); 1220 cfq_slice_expired(cfqd, 0);
1052new_queue: 1221new_queue:
1053 cfqq = cfq_set_active_queue(cfqd); 1222 cfqq = cfq_set_active_queue(cfqd, new_cfqq);
1054keep_queue: 1223keep_queue:
1055 return cfqq; 1224 return cfqq;
1056} 1225}
@@ -1333,14 +1502,14 @@ static void __cfq_exit_single_io_context(struct cfq_data *cfqd,
1333 if (ioc->ioc_data == cic) 1502 if (ioc->ioc_data == cic)
1334 rcu_assign_pointer(ioc->ioc_data, NULL); 1503 rcu_assign_pointer(ioc->ioc_data, NULL);
1335 1504
1336 if (cic->cfqq[ASYNC]) { 1505 if (cic->cfqq[BLK_RW_ASYNC]) {
1337 cfq_exit_cfqq(cfqd, cic->cfqq[ASYNC]); 1506 cfq_exit_cfqq(cfqd, cic->cfqq[BLK_RW_ASYNC]);
1338 cic->cfqq[ASYNC] = NULL; 1507 cic->cfqq[BLK_RW_ASYNC] = NULL;
1339 } 1508 }
1340 1509
1341 if (cic->cfqq[SYNC]) { 1510 if (cic->cfqq[BLK_RW_SYNC]) {
1342 cfq_exit_cfqq(cfqd, cic->cfqq[SYNC]); 1511 cfq_exit_cfqq(cfqd, cic->cfqq[BLK_RW_SYNC]);
1343 cic->cfqq[SYNC] = NULL; 1512 cic->cfqq[BLK_RW_SYNC] = NULL;
1344 } 1513 }
1345} 1514}
1346 1515
@@ -1449,17 +1618,18 @@ static void changed_ioprio(struct io_context *ioc, struct cfq_io_context *cic)
1449 1618
1450 spin_lock_irqsave(cfqd->queue->queue_lock, flags); 1619 spin_lock_irqsave(cfqd->queue->queue_lock, flags);
1451 1620
1452 cfqq = cic->cfqq[ASYNC]; 1621 cfqq = cic->cfqq[BLK_RW_ASYNC];
1453 if (cfqq) { 1622 if (cfqq) {
1454 struct cfq_queue *new_cfqq; 1623 struct cfq_queue *new_cfqq;
1455 new_cfqq = cfq_get_queue(cfqd, ASYNC, cic->ioc, GFP_ATOMIC); 1624 new_cfqq = cfq_get_queue(cfqd, BLK_RW_ASYNC, cic->ioc,
1625 GFP_ATOMIC);
1456 if (new_cfqq) { 1626 if (new_cfqq) {
1457 cic->cfqq[ASYNC] = new_cfqq; 1627 cic->cfqq[BLK_RW_ASYNC] = new_cfqq;
1458 cfq_put_queue(cfqq); 1628 cfq_put_queue(cfqq);
1459 } 1629 }
1460 } 1630 }
1461 1631
1462 cfqq = cic->cfqq[SYNC]; 1632 cfqq = cic->cfqq[BLK_RW_SYNC];
1463 if (cfqq) 1633 if (cfqq)
1464 cfq_mark_cfqq_prio_changed(cfqq); 1634 cfq_mark_cfqq_prio_changed(cfqq);
1465 1635
@@ -1510,6 +1680,7 @@ retry:
1510 } 1680 }
1511 1681
1512 RB_CLEAR_NODE(&cfqq->rb_node); 1682 RB_CLEAR_NODE(&cfqq->rb_node);
1683 RB_CLEAR_NODE(&cfqq->p_node);
1513 INIT_LIST_HEAD(&cfqq->fifo); 1684 INIT_LIST_HEAD(&cfqq->fifo);
1514 1685
1515 atomic_set(&cfqq->ref, 0); 1686 atomic_set(&cfqq->ref, 0);
@@ -1745,7 +1916,9 @@ cfq_update_io_seektime(struct cfq_data *cfqd, struct cfq_io_context *cic,
1745 sector_t sdist; 1916 sector_t sdist;
1746 u64 total; 1917 u64 total;
1747 1918
1748 if (cic->last_request_pos < rq->sector) 1919 if (!cic->last_request_pos)
1920 sdist = 0;
1921 else if (cic->last_request_pos < rq->sector)
1749 sdist = rq->sector - cic->last_request_pos; 1922 sdist = rq->sector - cic->last_request_pos;
1750 else 1923 else
1751 sdist = cic->last_request_pos - rq->sector; 1924 sdist = cic->last_request_pos - rq->sector;
@@ -1905,10 +2078,20 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
1905 * Remember that we saw a request from this process, but 2078 * Remember that we saw a request from this process, but
1906 * don't start queuing just yet. Otherwise we risk seeing lots 2079 * don't start queuing just yet. Otherwise we risk seeing lots
1907 * of tiny requests, because we disrupt the normal plugging 2080 * of tiny requests, because we disrupt the normal plugging
1908 * and merging. 2081 * and merging. If the request is already larger than a single
2082 * page, let it rip immediately. For that case we assume that
2083 * merging is already done. Ditto for a busy system that
2084 * has other work pending, don't risk delaying until the
2085 * idle timer unplug to continue working.
1909 */ 2086 */
1910 if (cfq_cfqq_wait_request(cfqq)) 2087 if (cfq_cfqq_wait_request(cfqq)) {
2088 if (blk_rq_bytes(rq) > PAGE_CACHE_SIZE ||
2089 cfqd->busy_queues > 1) {
2090 del_timer(&cfqd->idle_slice_timer);
2091 blk_start_queueing(cfqd->queue);
2092 }
1911 cfq_mark_cfqq_must_dispatch(cfqq); 2093 cfq_mark_cfqq_must_dispatch(cfqq);
2094 }
1912 } else if (cfq_should_preempt(cfqd, cfqq, rq)) { 2095 } else if (cfq_should_preempt(cfqd, cfqq, rq)) {
1913 /* 2096 /*
1914 * not the active queue - expire current slice if it is 2097 * not the active queue - expire current slice if it is
@@ -1992,16 +2175,24 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
1992 * or if we want to idle in case it has no pending requests. 2175 * or if we want to idle in case it has no pending requests.
1993 */ 2176 */
1994 if (cfqd->active_queue == cfqq) { 2177 if (cfqd->active_queue == cfqq) {
2178 const bool cfqq_empty = RB_EMPTY_ROOT(&cfqq->sort_list);
2179
1995 if (cfq_cfqq_slice_new(cfqq)) { 2180 if (cfq_cfqq_slice_new(cfqq)) {
1996 cfq_set_prio_slice(cfqd, cfqq); 2181 cfq_set_prio_slice(cfqd, cfqq);
1997 cfq_clear_cfqq_slice_new(cfqq); 2182 cfq_clear_cfqq_slice_new(cfqq);
1998 } 2183 }
2184 /*
2185 * If there are no requests waiting in this queue, and
2186 * there are other queues ready to issue requests, AND
2187 * those other queues are issuing requests within our
2188 * mean seek distance, give them a chance to run instead
2189 * of idling.
2190 */
1999 if (cfq_slice_used(cfqq) || cfq_class_idle(cfqq)) 2191 if (cfq_slice_used(cfqq) || cfq_class_idle(cfqq))
2000 cfq_slice_expired(cfqd, 1); 2192 cfq_slice_expired(cfqd, 1);
2001 else if (sync && !rq_noidle(rq) && 2193 else if (cfqq_empty && !cfq_close_cooperator(cfqd, cfqq, 1) &&
2002 RB_EMPTY_ROOT(&cfqq->sort_list)) { 2194 sync && !rq_noidle(rq))
2003 cfq_arm_slice_timer(cfqd); 2195 cfq_arm_slice_timer(cfqd);
2004 }
2005 } 2196 }
2006 2197
2007 if (!cfqd->rq_in_driver) 2198 if (!cfqd->rq_in_driver)
@@ -2062,7 +2253,7 @@ static int cfq_may_queue(struct request_queue *q, int rw)
2062 if (!cic) 2253 if (!cic)
2063 return ELV_MQUEUE_MAY; 2254 return ELV_MQUEUE_MAY;
2064 2255
2065 cfqq = cic_to_cfqq(cic, rw & REQ_RW_SYNC); 2256 cfqq = cic_to_cfqq(cic, rw_is_sync(rw));
2066 if (cfqq) { 2257 if (cfqq) {
2067 cfq_init_prio_data(cfqq, cic->ioc); 2258 cfq_init_prio_data(cfqq, cic->ioc);
2068 cfq_prio_boost(cfqq); 2259 cfq_prio_boost(cfqq);
@@ -2152,11 +2343,10 @@ static void cfq_kick_queue(struct work_struct *work)
2152 struct cfq_data *cfqd = 2343 struct cfq_data *cfqd =
2153 container_of(work, struct cfq_data, unplug_work); 2344 container_of(work, struct cfq_data, unplug_work);
2154 struct request_queue *q = cfqd->queue; 2345 struct request_queue *q = cfqd->queue;
2155 unsigned long flags;
2156 2346
2157 spin_lock_irqsave(q->queue_lock, flags); 2347 spin_lock_irq(q->queue_lock);
2158 blk_start_queueing(q); 2348 blk_start_queueing(q);
2159 spin_unlock_irqrestore(q->queue_lock, flags); 2349 spin_unlock_irq(q->queue_lock);
2160} 2350}
2161 2351
2162/* 2352/*
@@ -2263,12 +2453,22 @@ static void cfq_exit_queue(struct elevator_queue *e)
2263static void *cfq_init_queue(struct request_queue *q) 2453static void *cfq_init_queue(struct request_queue *q)
2264{ 2454{
2265 struct cfq_data *cfqd; 2455 struct cfq_data *cfqd;
2456 int i;
2266 2457
2267 cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node); 2458 cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node);
2268 if (!cfqd) 2459 if (!cfqd)
2269 return NULL; 2460 return NULL;
2270 2461
2271 cfqd->service_tree = CFQ_RB_ROOT; 2462 cfqd->service_tree = CFQ_RB_ROOT;
2463
2464 /*
2465 * Not strictly needed (since RB_ROOT just clears the node and we
2466 * zeroed cfqd on alloc), but better be safe in case someone decides
2467 * to add magic to the rb code
2468 */
2469 for (i = 0; i < CFQ_PRIO_LISTS; i++)
2470 cfqd->prio_trees[i] = RB_ROOT;
2471
2272 INIT_LIST_HEAD(&cfqd->cic_list); 2472 INIT_LIST_HEAD(&cfqd->cic_list);
2273 2473
2274 cfqd->queue = q; 2474 cfqd->queue = q;
diff --git a/block/elevator.c b/block/elevator.c
index fb81bcc14a8c..7073a9072577 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -590,7 +590,7 @@ void elv_drain_elevator(struct request_queue *q)
590/* 590/*
591 * Call with queue lock held, interrupts disabled 591 * Call with queue lock held, interrupts disabled
592 */ 592 */
593void elv_quisce_start(struct request_queue *q) 593void elv_quiesce_start(struct request_queue *q)
594{ 594{
595 queue_flag_set(QUEUE_FLAG_ELVSWITCH, q); 595 queue_flag_set(QUEUE_FLAG_ELVSWITCH, q);
596 596
@@ -607,7 +607,7 @@ void elv_quisce_start(struct request_queue *q)
607 } 607 }
608} 608}
609 609
610void elv_quisce_end(struct request_queue *q) 610void elv_quiesce_end(struct request_queue *q)
611{ 611{
612 queue_flag_clear(QUEUE_FLAG_ELVSWITCH, q); 612 queue_flag_clear(QUEUE_FLAG_ELVSWITCH, q);
613} 613}
@@ -1126,7 +1126,7 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
1126 * Turn on BYPASS and drain all requests w/ elevator private data 1126 * Turn on BYPASS and drain all requests w/ elevator private data
1127 */ 1127 */
1128 spin_lock_irq(q->queue_lock); 1128 spin_lock_irq(q->queue_lock);
1129 elv_quisce_start(q); 1129 elv_quiesce_start(q);
1130 1130
1131 /* 1131 /*
1132 * Remember old elevator. 1132 * Remember old elevator.
@@ -1150,7 +1150,7 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
1150 */ 1150 */
1151 elevator_exit(old_elevator); 1151 elevator_exit(old_elevator);
1152 spin_lock_irq(q->queue_lock); 1152 spin_lock_irq(q->queue_lock);
1153 elv_quisce_end(q); 1153 elv_quiesce_end(q);
1154 spin_unlock_irq(q->queue_lock); 1154 spin_unlock_irq(q->queue_lock);
1155 1155
1156 blk_add_trace_msg(q, "elv switch: %s", e->elevator_type->elevator_name); 1156 blk_add_trace_msg(q, "elv switch: %s", e->elevator_type->elevator_name);
diff --git a/block/genhd.c b/block/genhd.c
index a9ec910974c1..1a4916e01732 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -98,7 +98,7 @@ void disk_part_iter_init(struct disk_part_iter *piter, struct gendisk *disk,
98 98
99 if (flags & DISK_PITER_REVERSE) 99 if (flags & DISK_PITER_REVERSE)
100 piter->idx = ptbl->len - 1; 100 piter->idx = ptbl->len - 1;
101 else if (flags & DISK_PITER_INCL_PART0) 101 else if (flags & (DISK_PITER_INCL_PART0 | DISK_PITER_INCL_EMPTY_PART0))
102 piter->idx = 0; 102 piter->idx = 0;
103 else 103 else
104 piter->idx = 1; 104 piter->idx = 1;
@@ -134,7 +134,8 @@ struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
134 /* determine iteration parameters */ 134 /* determine iteration parameters */
135 if (piter->flags & DISK_PITER_REVERSE) { 135 if (piter->flags & DISK_PITER_REVERSE) {
136 inc = -1; 136 inc = -1;
137 if (piter->flags & DISK_PITER_INCL_PART0) 137 if (piter->flags & (DISK_PITER_INCL_PART0 |
138 DISK_PITER_INCL_EMPTY_PART0))
138 end = -1; 139 end = -1;
139 else 140 else
140 end = 0; 141 end = 0;
@@ -150,7 +151,10 @@ struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
150 part = rcu_dereference(ptbl->part[piter->idx]); 151 part = rcu_dereference(ptbl->part[piter->idx]);
151 if (!part) 152 if (!part)
152 continue; 153 continue;
153 if (!(piter->flags & DISK_PITER_INCL_EMPTY) && !part->nr_sects) 154 if (!part->nr_sects &&
155 !(piter->flags & DISK_PITER_INCL_EMPTY) &&
156 !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 &&
157 piter->idx == 0))
154 continue; 158 continue;
155 159
156 get_device(part_to_dev(part)); 160 get_device(part_to_dev(part));
@@ -1011,7 +1015,7 @@ static int diskstats_show(struct seq_file *seqf, void *v)
1011 "\n\n"); 1015 "\n\n");
1012 */ 1016 */
1013 1017
1014 disk_part_iter_init(&piter, gp, DISK_PITER_INCL_PART0); 1018 disk_part_iter_init(&piter, gp, DISK_PITER_INCL_EMPTY_PART0);
1015 while ((hd = disk_part_iter_next(&piter))) { 1019 while ((hd = disk_part_iter_next(&piter))) {
1016 cpu = part_stat_lock(); 1020 cpu = part_stat_lock();
1017 part_round_stats(cpu, hd); 1021 part_round_stats(cpu, hd);
diff --git a/block/ioctl.c b/block/ioctl.c
index 0f22e629b13c..ad474d4bbcce 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -146,8 +146,6 @@ static int blk_ioctl_discard(struct block_device *bdev, uint64_t start,
146 struct bio *bio; 146 struct bio *bio;
147 147
148 bio = bio_alloc(GFP_KERNEL, 0); 148 bio = bio_alloc(GFP_KERNEL, 0);
149 if (!bio)
150 return -ENOMEM;
151 149
152 bio->bi_end_io = blk_ioc_discard_endio; 150 bio->bi_end_io = blk_ioc_discard_endio;
153 bio->bi_bdev = bdev; 151 bio->bi_bdev = bdev;
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index 626ee274c5c4..82a0ca2f6729 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -217,7 +217,7 @@ static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
217static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr, 217static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr,
218 struct bio *bio) 218 struct bio *bio)
219{ 219{
220 int ret = 0; 220 int r, ret = 0;
221 221
222 /* 222 /*
223 * fill in all the output members 223 * fill in all the output members
@@ -242,7 +242,9 @@ static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr,
242 ret = -EFAULT; 242 ret = -EFAULT;
243 } 243 }
244 244
245 blk_rq_unmap_user(bio); 245 r = blk_rq_unmap_user(bio);
246 if (!ret)
247 ret = r;
246 blk_put_request(rq); 248 blk_put_request(rq);
247 249
248 return ret; 250 return ret;
@@ -288,6 +290,7 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk,
288 290
289 if (hdr->iovec_count) { 291 if (hdr->iovec_count) {
290 const int size = sizeof(struct sg_iovec) * hdr->iovec_count; 292 const int size = sizeof(struct sg_iovec) * hdr->iovec_count;
293 size_t iov_data_len;
291 struct sg_iovec *iov; 294 struct sg_iovec *iov;
292 295
293 iov = kmalloc(size, GFP_KERNEL); 296 iov = kmalloc(size, GFP_KERNEL);
@@ -302,8 +305,18 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk,
302 goto out; 305 goto out;
303 } 306 }
304 307
308 /* SG_IO howto says that the shorter of the two wins */
309 iov_data_len = iov_length((struct iovec *)iov,
310 hdr->iovec_count);
311 if (hdr->dxfer_len < iov_data_len) {
312 hdr->iovec_count = iov_shorten((struct iovec *)iov,
313 hdr->iovec_count,
314 hdr->dxfer_len);
315 iov_data_len = hdr->dxfer_len;
316 }
317
305 ret = blk_rq_map_user_iov(q, rq, NULL, iov, hdr->iovec_count, 318 ret = blk_rq_map_user_iov(q, rq, NULL, iov, hdr->iovec_count,
306 hdr->dxfer_len, GFP_KERNEL); 319 iov_data_len, GFP_KERNEL);
307 kfree(iov); 320 kfree(iov);
308 } else if (hdr->dxfer_len) 321 } else if (hdr->dxfer_len)
309 ret = blk_rq_map_user(q, rq, NULL, hdr->dxferp, hdr->dxfer_len, 322 ret = blk_rq_map_user(q, rq, NULL, hdr->dxferp, hdr->dxfer_len,
diff --git a/drivers/Makefile b/drivers/Makefile
index 2618a6169a13..1266ead6ace0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -36,7 +36,7 @@ obj-$(CONFIG_FB_INTEL) += video/intelfb/
36 36
37obj-y += serial/ 37obj-y += serial/
38obj-$(CONFIG_PARPORT) += parport/ 38obj-$(CONFIG_PARPORT) += parport/
39obj-y += base/ block/ misc/ mfd/ media/ 39obj-y += base/ block/ misc/ mfd/
40obj-$(CONFIG_NUBUS) += nubus/ 40obj-$(CONFIG_NUBUS) += nubus/
41obj-y += macintosh/ 41obj-y += macintosh/
42obj-$(CONFIG_IDE) += ide/ 42obj-$(CONFIG_IDE) += ide/
@@ -71,7 +71,7 @@ obj-$(CONFIG_GAMEPORT) += input/gameport/
71obj-$(CONFIG_INPUT) += input/ 71obj-$(CONFIG_INPUT) += input/
72obj-$(CONFIG_I2O) += message/ 72obj-$(CONFIG_I2O) += message/
73obj-$(CONFIG_RTC_LIB) += rtc/ 73obj-$(CONFIG_RTC_LIB) += rtc/
74obj-y += i2c/ 74obj-y += i2c/ media/
75obj-$(CONFIG_W1) += w1/ 75obj-$(CONFIG_W1) += w1/
76obj-$(CONFIG_POWER_SUPPLY) += power/ 76obj-$(CONFIG_POWER_SUPPLY) += power/
77obj-$(CONFIG_HWMON) += hwmon/ 77obj-$(CONFIG_HWMON) += hwmon/
diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 17e50824a6f1..72ac28da14e3 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -5,40 +5,43 @@
5ccflags-y := -Os 5ccflags-y := -Os
6ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT 6ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
7 7
8obj-y := dsfield.o dsmthdat.o dsopcode.o dswexec.o dswscope.o \ 8# use acpi.o to put all files here into acpi.o modparam namespace
9obj-y += acpi.o
10
11acpi-y := dsfield.o dsmthdat.o dsopcode.o dswexec.o dswscope.o \
9 dsmethod.o dsobject.o dsutils.o dswload.o dswstate.o \ 12 dsmethod.o dsobject.o dsutils.o dswload.o dswstate.o \
10 dsinit.o 13 dsinit.o
11 14
12obj-y += evevent.o evregion.o evsci.o evxfevnt.o \ 15acpi-y += evevent.o evregion.o evsci.o evxfevnt.o \
13 evmisc.o evrgnini.o evxface.o evxfregn.o \ 16 evmisc.o evrgnini.o evxface.o evxfregn.o \
14 evgpe.o evgpeblk.o 17 evgpe.o evgpeblk.o
15 18
16obj-y += exconfig.o exfield.o exnames.o exoparg6.o exresolv.o exstorob.o\ 19acpi-y += exconfig.o exfield.o exnames.o exoparg6.o exresolv.o exstorob.o\
17 exconvrt.o exfldio.o exoparg1.o exprep.o exresop.o exsystem.o\ 20 exconvrt.o exfldio.o exoparg1.o exprep.o exresop.o exsystem.o\
18 excreate.o exmisc.o exoparg2.o exregion.o exstore.o exutils.o \ 21 excreate.o exmisc.o exoparg2.o exregion.o exstore.o exutils.o \
19 exdump.o exmutex.o exoparg3.o exresnte.o exstoren.o 22 exdump.o exmutex.o exoparg3.o exresnte.o exstoren.o
20 23
21obj-y += hwacpi.o hwgpe.o hwregs.o hwsleep.o hwxface.o hwvalid.o 24acpi-y += hwacpi.o hwgpe.o hwregs.o hwsleep.o hwxface.o hwvalid.o
22 25
23obj-$(ACPI_FUTURE_USAGE) += hwtimer.o 26acpi-$(ACPI_FUTURE_USAGE) += hwtimer.o
24 27
25obj-y += nsaccess.o nsload.o nssearch.o nsxfeval.o \ 28acpi-y += nsaccess.o nsload.o nssearch.o nsxfeval.o \
26 nsalloc.o nseval.o nsnames.o nsutils.o nsxfname.o \ 29 nsalloc.o nseval.o nsnames.o nsutils.o nsxfname.o \
27 nsdump.o nsinit.o nsobject.o nswalk.o nsxfobj.o \ 30 nsdump.o nsinit.o nsobject.o nswalk.o nsxfobj.o \
28 nsparse.o nspredef.o 31 nsparse.o nspredef.o
29 32
30obj-$(ACPI_FUTURE_USAGE) += nsdumpdv.o 33acpi-$(ACPI_FUTURE_USAGE) += nsdumpdv.o
31 34
32obj-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \ 35acpi-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \
33 psopcode.o psscope.o psutils.o psxface.o 36 psopcode.o psscope.o psutils.o psxface.o
34 37
35obj-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \ 38acpi-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \
36 rscalc.o rsirq.o rsmemory.o rsutils.o 39 rscalc.o rsirq.o rsmemory.o rsutils.o
37 40
38obj-$(ACPI_FUTURE_USAGE) += rsdump.o 41acpi-$(ACPI_FUTURE_USAGE) += rsdump.o
39 42
40obj-y += tbxface.o tbinstal.o tbutils.o tbfind.o tbfadt.o tbxfroot.o 43acpi-y += tbxface.o tbinstal.o tbutils.o tbfind.o tbfadt.o tbxfroot.o
41 44
42obj-y += utalloc.o utdebug.o uteval.o utinit.o utmisc.o utxface.o \ 45acpi-y += utalloc.o utdebug.o uteval.o utinit.o utmisc.o utxface.o \
43 utcopy.o utdelete.o utglobal.o utmath.o utobject.o \ 46 utcopy.o utdelete.o utglobal.o utmath.o utobject.o \
44 utstate.o utmutex.o utobject.o utresrc.o utlock.o 47 utstate.o utmutex.o utobject.o utresrc.o utlock.o
diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h
index 772ee5c4ccca..2ec394a328e9 100644
--- a/drivers/acpi/acpica/aclocal.h
+++ b/drivers/acpi/acpica/aclocal.h
@@ -787,7 +787,12 @@ struct acpi_bit_register_info {
787 787
788/* For control registers, both ignored and reserved bits must be preserved */ 788/* For control registers, both ignored and reserved bits must be preserved */
789 789
790#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0201 /* Bits 9, 0(SCI_EN) */ 790/*
791 * The ACPI spec says to ignore PM1_CTL.SCI_EN (bit 0)
792 * but we need to be able to write ACPI_BITREG_SCI_ENABLE directly
793 * as a BIOS workaround on some machines.
794 */
795#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0200 /* Bits 9 */
791#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */ 796#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */
792#define ACPI_PM1_CONTROL_PRESERVED_BITS \ 797#define ACPI_PM1_CONTROL_PRESERVED_BITS \
793 (ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS) 798 (ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS)
diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index baa5fc05e124..db307a356f08 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -211,6 +211,12 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
211 211
212ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep) 212ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
213 213
214static unsigned int gts, bfs;
215module_param(gts, uint, 0644);
216module_param(bfs, uint, 0644);
217MODULE_PARM_DESC(gts, "Enable evaluation of _GTS on suspend.");
218MODULE_PARM_DESC(bfs, "Enable evaluation of _BFS on resume".);
219
214/******************************************************************************* 220/*******************************************************************************
215 * 221 *
216 * FUNCTION: acpi_enter_sleep_state 222 * FUNCTION: acpi_enter_sleep_state
@@ -278,16 +284,18 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
278 return_ACPI_STATUS(status); 284 return_ACPI_STATUS(status);
279 } 285 }
280 286
281 /* Execute the _GTS method */ 287 if (gts) {
288 /* Execute the _GTS method */
282 289
283 arg_list.count = 1; 290 arg_list.count = 1;
284 arg_list.pointer = &arg; 291 arg_list.pointer = &arg;
285 arg.type = ACPI_TYPE_INTEGER; 292 arg.type = ACPI_TYPE_INTEGER;
286 arg.integer.value = sleep_state; 293 arg.integer.value = sleep_state;
287 294
288 status = acpi_evaluate_object(NULL, METHOD_NAME__GTS, &arg_list, NULL); 295 status = acpi_evaluate_object(NULL, METHOD_NAME__GTS, &arg_list, NULL);
289 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { 296 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
290 return_ACPI_STATUS(status); 297 return_ACPI_STATUS(status);
298 }
291 } 299 }
292 300
293 /* Get current value of PM1A control */ 301 /* Get current value of PM1A control */
@@ -513,18 +521,19 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
513 } 521 }
514 } 522 }
515 523
516 /* Execute the _BFS method */ 524 if (bfs) {
525 /* Execute the _BFS method */
517 526
518 arg_list.count = 1; 527 arg_list.count = 1;
519 arg_list.pointer = &arg; 528 arg_list.pointer = &arg;
520 arg.type = ACPI_TYPE_INTEGER; 529 arg.type = ACPI_TYPE_INTEGER;
521 arg.integer.value = sleep_state; 530 arg.integer.value = sleep_state;
522 531
523 status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL); 532 status = acpi_evaluate_object(NULL, METHOD_NAME__BFS, &arg_list, NULL);
524 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { 533 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
525 ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS")); 534 ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
535 }
526 } 536 }
527
528 return_ACPI_STATUS(status); 537 return_ACPI_STATUS(status);
529} 538}
530 539
diff --git a/drivers/acpi/acpica/hwvalid.c b/drivers/acpi/acpica/hwvalid.c
index 7737afb157c3..ec33f270c5b7 100644
--- a/drivers/acpi/acpica/hwvalid.c
+++ b/drivers/acpi/acpica/hwvalid.c
@@ -90,6 +90,7 @@ static const struct acpi_port_info acpi_protected_ports[] = {
90 {"PIT2", 0x0048, 0x004B, ACPI_OSI_WIN_XP}, 90 {"PIT2", 0x0048, 0x004B, ACPI_OSI_WIN_XP},
91 {"RTC", 0x0070, 0x0071, ACPI_OSI_WIN_XP}, 91 {"RTC", 0x0070, 0x0071, ACPI_OSI_WIN_XP},
92 {"CMOS", 0x0074, 0x0076, ACPI_OSI_WIN_XP}, 92 {"CMOS", 0x0074, 0x0076, ACPI_OSI_WIN_XP},
93 {"DMA1", 0x0081, 0x0083, ACPI_OSI_WIN_XP},
93 {"DMA1L", 0x0087, 0x0087, ACPI_OSI_WIN_XP}, 94 {"DMA1L", 0x0087, 0x0087, ACPI_OSI_WIN_XP},
94 {"DMA2", 0x0089, 0x008B, ACPI_OSI_WIN_XP}, 95 {"DMA2", 0x0089, 0x008B, ACPI_OSI_WIN_XP},
95 {"DMA2L", 0x008F, 0x008F, ACPI_OSI_WIN_XP}, 96 {"DMA2L", 0x008F, 0x008F, ACPI_OSI_WIN_XP},
@@ -151,7 +152,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
151 ACPI_ERROR((AE_INFO, 152 ACPI_ERROR((AE_INFO,
152 "Illegal I/O port address/length above 64K: 0x%p/%X", 153 "Illegal I/O port address/length above 64K: 0x%p/%X",
153 ACPI_CAST_PTR(void, address), byte_width)); 154 ACPI_CAST_PTR(void, address), byte_width));
154 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS); 155 return_ACPI_STATUS(AE_LIMIT);
155 } 156 }
156 157
157 /* Exit if requested address is not within the protected port table */ 158 /* Exit if requested address is not within the protected port table */
@@ -178,11 +179,12 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
178 /* Port illegality may depend on the _OSI calls made by the BIOS */ 179 /* Port illegality may depend on the _OSI calls made by the BIOS */
179 180
180 if (acpi_gbl_osi_data >= port_info->osi_dependency) { 181 if (acpi_gbl_osi_data >= port_info->osi_dependency) {
181 ACPI_ERROR((AE_INFO, 182 ACPI_DEBUG_PRINT((ACPI_DB_IO,
182 "Denied AML access to port 0x%p/%X (%s 0x%.4X-0x%.4X)", 183 "Denied AML access to port 0x%p/%X (%s 0x%.4X-0x%.4X)",
183 ACPI_CAST_PTR(void, address), 184 ACPI_CAST_PTR(void, address),
184 byte_width, port_info->name, 185 byte_width, port_info->name,
185 port_info->start, port_info->end)); 186 port_info->start,
187 port_info->end));
186 188
187 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS); 189 return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS);
188 } 190 }
@@ -206,7 +208,7 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
206 * Value Where value is placed 208 * Value Where value is placed
207 * Width Number of bits 209 * Width Number of bits
208 * 210 *
209 * RETURN: Value read from port 211 * RETURN: Status and value read from port
210 * 212 *
211 * DESCRIPTION: Read data from an I/O port or register. This is a front-end 213 * DESCRIPTION: Read data from an I/O port or register. This is a front-end
212 * to acpi_os_read_port that performs validation on both the port 214 * to acpi_os_read_port that performs validation on both the port
@@ -217,14 +219,43 @@ acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width)
217acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width) 219acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
218{ 220{
219 acpi_status status; 221 acpi_status status;
222 u32 one_byte;
223 u32 i;
224
225 /* Validate the entire request and perform the I/O */
220 226
221 status = acpi_hw_validate_io_request(address, width); 227 status = acpi_hw_validate_io_request(address, width);
222 if (ACPI_FAILURE(status)) { 228 if (ACPI_SUCCESS(status)) {
229 status = acpi_os_read_port(address, value, width);
223 return status; 230 return status;
224 } 231 }
225 232
226 status = acpi_os_read_port(address, value, width); 233 if (status != AE_AML_ILLEGAL_ADDRESS) {
227 return status; 234 return status;
235 }
236
237 /*
238 * There has been a protection violation within the request. Fall
239 * back to byte granularity port I/O and ignore the failing bytes.
240 * This provides Windows compatibility.
241 */
242 for (i = 0, *value = 0; i < width; i += 8) {
243
244 /* Validate and read one byte */
245
246 if (acpi_hw_validate_io_request(address, 8) == AE_OK) {
247 status = acpi_os_read_port(address, &one_byte, 8);
248 if (ACPI_FAILURE(status)) {
249 return status;
250 }
251
252 *value |= (one_byte << i);
253 }
254
255 address++;
256 }
257
258 return AE_OK;
228} 259}
229 260
230/****************************************************************************** 261/******************************************************************************
@@ -235,7 +266,7 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
235 * Value Value to write 266 * Value Value to write
236 * Width Number of bits 267 * Width Number of bits
237 * 268 *
238 * RETURN: None 269 * RETURN: Status
239 * 270 *
240 * DESCRIPTION: Write data to an I/O port or register. This is a front-end 271 * DESCRIPTION: Write data to an I/O port or register. This is a front-end
241 * to acpi_os_write_port that performs validation on both the port 272 * to acpi_os_write_port that performs validation on both the port
@@ -246,12 +277,39 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
246acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width) 277acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width)
247{ 278{
248 acpi_status status; 279 acpi_status status;
280 u32 i;
281
282 /* Validate the entire request and perform the I/O */
249 283
250 status = acpi_hw_validate_io_request(address, width); 284 status = acpi_hw_validate_io_request(address, width);
251 if (ACPI_FAILURE(status)) { 285 if (ACPI_SUCCESS(status)) {
286 status = acpi_os_write_port(address, value, width);
252 return status; 287 return status;
253 } 288 }
254 289
255 status = acpi_os_write_port(address, value, width); 290 if (status != AE_AML_ILLEGAL_ADDRESS) {
256 return status; 291 return status;
292 }
293
294 /*
295 * There has been a protection violation within the request. Fall
296 * back to byte granularity port I/O and ignore the failing bytes.
297 * This provides Windows compatibility.
298 */
299 for (i = 0; i < width; i += 8) {
300
301 /* Validate and write one byte */
302
303 if (acpi_hw_validate_io_request(address, 8) == AE_OK) {
304 status =
305 acpi_os_write_port(address, (value >> i) & 0xFF, 8);
306 if (ACPI_FAILURE(status)) {
307 return status;
308 }
309 }
310
311 address++;
312 }
313
314 return AE_OK;
257} 315}
diff --git a/drivers/acpi/acpica/rscalc.c b/drivers/acpi/acpica/rscalc.c
index b6667ff059e5..88b5a2c4814d 100644
--- a/drivers/acpi/acpica/rscalc.c
+++ b/drivers/acpi/acpica/rscalc.c
@@ -543,6 +543,13 @@ acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object,
543 543
544 package_element = *top_object_list; 544 package_element = *top_object_list;
545 545
546 /* We must have a valid Package object */
547
548 if (!package_element ||
549 (package_element->common.type != ACPI_TYPE_PACKAGE)) {
550 return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
551 }
552
546 /* 553 /*
547 * The sub_object_list will now point to an array of the 554 * The sub_object_list will now point to an array of the
548 * four IRQ elements: Address, Pin, Source and source_index 555 * four IRQ elements: Address, Pin, Source and source_index
diff --git a/drivers/acpi/acpica/rscreate.c b/drivers/acpi/acpica/rscreate.c
index 663f692fffcf..a3c23d686d5f 100644
--- a/drivers/acpi/acpica/rscreate.c
+++ b/drivers/acpi/acpica/rscreate.c
@@ -191,8 +191,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
191 user_prt = ACPI_CAST_PTR(struct acpi_pci_routing_table, buffer); 191 user_prt = ACPI_CAST_PTR(struct acpi_pci_routing_table, buffer);
192 192
193 for (index = 0; index < number_of_elements; index++) { 193 for (index = 0; index < number_of_elements; index++) {
194 int source_name_index = 2;
195 int source_index_index = 3;
196 194
197 /* 195 /*
198 * Point user_prt past this current structure 196 * Point user_prt past this current structure
@@ -261,27 +259,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
261 return_ACPI_STATUS(AE_BAD_DATA); 259 return_ACPI_STATUS(AE_BAD_DATA);
262 } 260 }
263 261
264 /*
265 * If BIOS erroneously reversed the _PRT source_name and source_index,
266 * then reverse them back.
267 */
268 if ((sub_object_list[3])->common.type !=
269 ACPI_TYPE_INTEGER) {
270 if (acpi_gbl_enable_interpreter_slack) {
271 source_name_index = 3;
272 source_index_index = 2;
273 printk(KERN_WARNING
274 "ACPI: Handling Garbled _PRT entry\n");
275 } else {
276 ACPI_ERROR((AE_INFO,
277 "(PRT[%X].source_index) Need Integer, found %s",
278 index,
279 acpi_ut_get_object_type_name
280 (sub_object_list[3])));
281 return_ACPI_STATUS(AE_BAD_DATA);
282 }
283 }
284
285 user_prt->pin = (u32) obj_desc->integer.value; 262 user_prt->pin = (u32) obj_desc->integer.value;
286 263
287 /* 264 /*
@@ -304,7 +281,7 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
304 * 3) Third subobject: Dereference the PRT.source_name 281 * 3) Third subobject: Dereference the PRT.source_name
305 * The name may be unresolved (slack mode), so allow a null object 282 * The name may be unresolved (slack mode), so allow a null object
306 */ 283 */
307 obj_desc = sub_object_list[source_name_index]; 284 obj_desc = sub_object_list[2];
308 if (obj_desc) { 285 if (obj_desc) {
309 switch (obj_desc->common.type) { 286 switch (obj_desc->common.type) {
310 case ACPI_TYPE_LOCAL_REFERENCE: 287 case ACPI_TYPE_LOCAL_REFERENCE:
@@ -378,7 +355,7 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,
378 355
379 /* 4) Fourth subobject: Dereference the PRT.source_index */ 356 /* 4) Fourth subobject: Dereference the PRT.source_index */
380 357
381 obj_desc = sub_object_list[source_index_index]; 358 obj_desc = sub_object_list[3];
382 if (obj_desc->common.type != ACPI_TYPE_INTEGER) { 359 if (obj_desc->common.type != ACPI_TYPE_INTEGER) {
383 ACPI_ERROR((AE_INFO, 360 ACPI_ERROR((AE_INFO,
384 "(PRT[%X].SourceIndex) Need Integer, found %s", 361 "(PRT[%X].SourceIndex) Need Integer, found %s",
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index e8f7b64e92da..ae862f1798dc 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -312,7 +312,7 @@ int acpi_bus_set_power(acpi_handle handle, int state)
312 end: 312 end:
313 if (result) 313 if (result)
314 printk(KERN_WARNING PREFIX 314 printk(KERN_WARNING PREFIX
315 "Transitioning device [%s] to D%d\n", 315 "Device [%s] failed to transition to D%d\n",
316 device->pnp.bus_id, state); 316 device->pnp.bus_id, state);
317 else { 317 else {
318 device->power.state = state; 318 device->power.state = state;
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index d73c94b8441d..9195deba9d94 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * acpi_button.c - ACPI Button Driver ($Revision: 30 $) 2 * button.c - ACPI Button Driver
3 * 3 *
4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com> 4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> 5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
@@ -41,17 +41,13 @@
41 41
42#define ACPI_BUTTON_SUBCLASS_POWER "power" 42#define ACPI_BUTTON_SUBCLASS_POWER "power"
43#define ACPI_BUTTON_HID_POWER "PNP0C0C" 43#define ACPI_BUTTON_HID_POWER "PNP0C0C"
44#define ACPI_BUTTON_DEVICE_NAME_POWER "Power Button (CM)" 44#define ACPI_BUTTON_DEVICE_NAME_POWER "Power Button"
45#define ACPI_BUTTON_DEVICE_NAME_POWERF "Power Button (FF)"
46#define ACPI_BUTTON_TYPE_POWER 0x01 45#define ACPI_BUTTON_TYPE_POWER 0x01
47#define ACPI_BUTTON_TYPE_POWERF 0x02
48 46
49#define ACPI_BUTTON_SUBCLASS_SLEEP "sleep" 47#define ACPI_BUTTON_SUBCLASS_SLEEP "sleep"
50#define ACPI_BUTTON_HID_SLEEP "PNP0C0E" 48#define ACPI_BUTTON_HID_SLEEP "PNP0C0E"
51#define ACPI_BUTTON_DEVICE_NAME_SLEEP "Sleep Button (CM)" 49#define ACPI_BUTTON_DEVICE_NAME_SLEEP "Sleep Button"
52#define ACPI_BUTTON_DEVICE_NAME_SLEEPF "Sleep Button (FF)"
53#define ACPI_BUTTON_TYPE_SLEEP 0x03 50#define ACPI_BUTTON_TYPE_SLEEP 0x03
54#define ACPI_BUTTON_TYPE_SLEEPF 0x04
55 51
56#define ACPI_BUTTON_SUBCLASS_LID "lid" 52#define ACPI_BUTTON_SUBCLASS_LID "lid"
57#define ACPI_BUTTON_HID_LID "PNP0C0D" 53#define ACPI_BUTTON_HID_LID "PNP0C0D"
@@ -95,7 +91,6 @@ static struct acpi_driver acpi_button_driver = {
95}; 91};
96 92
97struct acpi_button { 93struct acpi_button {
98 struct acpi_device *device; /* Fixed button kludge */
99 unsigned int type; 94 unsigned int type;
100 struct input_dev *input; 95 struct input_dev *input;
101 char phys[32]; /* for input device */ 96 char phys[32]; /* for input device */
@@ -126,14 +121,10 @@ static struct proc_dir_entry *acpi_button_dir;
126 121
127static int acpi_button_info_seq_show(struct seq_file *seq, void *offset) 122static int acpi_button_info_seq_show(struct seq_file *seq, void *offset)
128{ 123{
129 struct acpi_button *button = seq->private; 124 struct acpi_device *device = seq->private;
130
131 if (!button || !button->device)
132 return 0;
133 125
134 seq_printf(seq, "type: %s\n", 126 seq_printf(seq, "type: %s\n",
135 acpi_device_name(button->device)); 127 acpi_device_name(device));
136
137 return 0; 128 return 0;
138} 129}
139 130
@@ -144,14 +135,11 @@ static int acpi_button_info_open_fs(struct inode *inode, struct file *file)
144 135
145static int acpi_button_state_seq_show(struct seq_file *seq, void *offset) 136static int acpi_button_state_seq_show(struct seq_file *seq, void *offset)
146{ 137{
147 struct acpi_button *button = seq->private; 138 struct acpi_device *device = seq->private;
148 acpi_status status; 139 acpi_status status;
149 unsigned long long state; 140 unsigned long long state;
150 141
151 if (!button || !button->device) 142 status = acpi_evaluate_integer(device->handle, "_LID", NULL, &state);
152 return 0;
153
154 status = acpi_evaluate_integer(button->device->handle, "_LID", NULL, &state);
155 seq_printf(seq, "state: %s\n", 143 seq_printf(seq, "state: %s\n",
156 ACPI_FAILURE(status) ? "unsupported" : 144 ACPI_FAILURE(status) ? "unsupported" :
157 (state ? "open" : "closed")); 145 (state ? "open" : "closed"));
@@ -169,24 +157,17 @@ static struct proc_dir_entry *acpi_lid_dir;
169 157
170static int acpi_button_add_fs(struct acpi_device *device) 158static int acpi_button_add_fs(struct acpi_device *device)
171{ 159{
160 struct acpi_button *button = acpi_driver_data(device);
172 struct proc_dir_entry *entry = NULL; 161 struct proc_dir_entry *entry = NULL;
173 struct acpi_button *button;
174
175 if (!device || !acpi_driver_data(device))
176 return -EINVAL;
177
178 button = acpi_driver_data(device);
179 162
180 switch (button->type) { 163 switch (button->type) {
181 case ACPI_BUTTON_TYPE_POWER: 164 case ACPI_BUTTON_TYPE_POWER:
182 case ACPI_BUTTON_TYPE_POWERF:
183 if (!acpi_power_dir) 165 if (!acpi_power_dir)
184 acpi_power_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER, 166 acpi_power_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_POWER,
185 acpi_button_dir); 167 acpi_button_dir);
186 entry = acpi_power_dir; 168 entry = acpi_power_dir;
187 break; 169 break;
188 case ACPI_BUTTON_TYPE_SLEEP: 170 case ACPI_BUTTON_TYPE_SLEEP:
189 case ACPI_BUTTON_TYPE_SLEEPF:
190 if (!acpi_sleep_dir) 171 if (!acpi_sleep_dir)
191 acpi_sleep_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP, 172 acpi_sleep_dir = proc_mkdir(ACPI_BUTTON_SUBCLASS_SLEEP,
192 acpi_button_dir); 173 acpi_button_dir);
@@ -210,8 +191,7 @@ static int acpi_button_add_fs(struct acpi_device *device)
210 /* 'info' [R] */ 191 /* 'info' [R] */
211 entry = proc_create_data(ACPI_BUTTON_FILE_INFO, 192 entry = proc_create_data(ACPI_BUTTON_FILE_INFO,
212 S_IRUGO, acpi_device_dir(device), 193 S_IRUGO, acpi_device_dir(device),
213 &acpi_button_info_fops, 194 &acpi_button_info_fops, device);
214 acpi_driver_data(device));
215 if (!entry) 195 if (!entry)
216 return -ENODEV; 196 return -ENODEV;
217 197
@@ -219,8 +199,7 @@ static int acpi_button_add_fs(struct acpi_device *device)
219 if (button->type == ACPI_BUTTON_TYPE_LID) { 199 if (button->type == ACPI_BUTTON_TYPE_LID) {
220 entry = proc_create_data(ACPI_BUTTON_FILE_STATE, 200 entry = proc_create_data(ACPI_BUTTON_FILE_STATE,
221 S_IRUGO, acpi_device_dir(device), 201 S_IRUGO, acpi_device_dir(device),
222 &acpi_button_state_fops, 202 &acpi_button_state_fops, device);
223 acpi_driver_data(device));
224 if (!entry) 203 if (!entry)
225 return -ENODEV; 204 return -ENODEV;
226 } 205 }
@@ -250,15 +229,16 @@ static int acpi_button_remove_fs(struct acpi_device *device)
250/* -------------------------------------------------------------------------- 229/* --------------------------------------------------------------------------
251 Driver Interface 230 Driver Interface
252 -------------------------------------------------------------------------- */ 231 -------------------------------------------------------------------------- */
253static int acpi_lid_send_state(struct acpi_button *button) 232static int acpi_lid_send_state(struct acpi_device *device)
254{ 233{
234 struct acpi_button *button = acpi_driver_data(device);
255 unsigned long long state; 235 unsigned long long state;
256 acpi_status status; 236 acpi_status status;
257 237
258 status = acpi_evaluate_integer(button->device->handle, "_LID", NULL, 238 status = acpi_evaluate_integer(device->handle, "_LID", NULL, &state);
259 &state);
260 if (ACPI_FAILURE(status)) 239 if (ACPI_FAILURE(status))
261 return -ENODEV; 240 return -ENODEV;
241
262 /* input layer checks if event is redundant */ 242 /* input layer checks if event is redundant */
263 input_report_switch(button->input, SW_LID, !state); 243 input_report_switch(button->input, SW_LID, !state);
264 input_sync(button->input); 244 input_sync(button->input);
@@ -270,9 +250,6 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
270 struct acpi_button *button = acpi_driver_data(device); 250 struct acpi_button *button = acpi_driver_data(device);
271 struct input_dev *input; 251 struct input_dev *input;
272 252
273 if (!button || !button->device)
274 return;
275
276 switch (event) { 253 switch (event) {
277 case ACPI_FIXED_HARDWARE_EVENT: 254 case ACPI_FIXED_HARDWARE_EVENT:
278 event = ACPI_BUTTON_NOTIFY_STATUS; 255 event = ACPI_BUTTON_NOTIFY_STATUS;
@@ -280,7 +257,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
280 case ACPI_BUTTON_NOTIFY_STATUS: 257 case ACPI_BUTTON_NOTIFY_STATUS:
281 input = button->input; 258 input = button->input;
282 if (button->type == ACPI_BUTTON_TYPE_LID) { 259 if (button->type == ACPI_BUTTON_TYPE_LID) {
283 acpi_lid_send_state(button); 260 acpi_lid_send_state(device);
284 } else { 261 } else {
285 int keycode = test_bit(KEY_SLEEP, input->keybit) ? 262 int keycode = test_bit(KEY_SLEEP, input->keybit) ?
286 KEY_SLEEP : KEY_POWER; 263 KEY_SLEEP : KEY_POWER;
@@ -291,43 +268,35 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
291 input_sync(input); 268 input_sync(input);
292 } 269 }
293 270
294 acpi_bus_generate_proc_event(button->device, event, 271 acpi_bus_generate_proc_event(device, event, ++button->pushed);
295 ++button->pushed);
296 break; 272 break;
297 default: 273 default:
298 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 274 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
299 "Unsupported event [0x%x]\n", event)); 275 "Unsupported event [0x%x]\n", event));
300 break; 276 break;
301 } 277 }
302
303 return;
304} 278}
305 279
306static int acpi_button_resume(struct acpi_device *device) 280static int acpi_button_resume(struct acpi_device *device)
307{ 281{
308 struct acpi_button *button; 282 struct acpi_button *button = acpi_driver_data(device);
309 if (!device) 283
310 return -EINVAL; 284 if (button->type == ACPI_BUTTON_TYPE_LID)
311 button = acpi_driver_data(device); 285 return acpi_lid_send_state(device);
312 if (button && button->type == ACPI_BUTTON_TYPE_LID)
313 return acpi_lid_send_state(button);
314 return 0; 286 return 0;
315} 287}
316 288
317static int acpi_button_add(struct acpi_device *device) 289static int acpi_button_add(struct acpi_device *device)
318{ 290{
319 int error;
320 struct acpi_button *button; 291 struct acpi_button *button;
321 struct input_dev *input; 292 struct input_dev *input;
322 293 char *hid, *name, *class;
323 if (!device) 294 int error;
324 return -EINVAL;
325 295
326 button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL); 296 button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL);
327 if (!button) 297 if (!button)
328 return -ENOMEM; 298 return -ENOMEM;
329 299
330 button->device = device;
331 device->driver_data = button; 300 device->driver_data = button;
332 301
333 button->input = input = input_allocate_device(); 302 button->input = input = input_allocate_device();
@@ -336,40 +305,29 @@ static int acpi_button_add(struct acpi_device *device)
336 goto err_free_button; 305 goto err_free_button;
337 } 306 }
338 307
339 /* 308 hid = acpi_device_hid(device);
340 * Determine the button type (via hid), as fixed-feature buttons 309 name = acpi_device_name(device);
341 * need to be handled a bit differently than generic-space. 310 class = acpi_device_class(device);
342 */ 311
343 if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_POWER)) { 312 if (!strcmp(hid, ACPI_BUTTON_HID_POWER) ||
313 !strcmp(hid, ACPI_BUTTON_HID_POWERF)) {
344 button->type = ACPI_BUTTON_TYPE_POWER; 314 button->type = ACPI_BUTTON_TYPE_POWER;
345 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_POWER); 315 strcpy(name, ACPI_BUTTON_DEVICE_NAME_POWER);
346 sprintf(acpi_device_class(device), "%s/%s", 316 sprintf(class, "%s/%s",
347 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER);
348 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_POWERF)) {
349 button->type = ACPI_BUTTON_TYPE_POWERF;
350 strcpy(acpi_device_name(device),
351 ACPI_BUTTON_DEVICE_NAME_POWERF);
352 sprintf(acpi_device_class(device), "%s/%s",
353 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER); 317 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_POWER);
354 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_SLEEP)) { 318 } else if (!strcmp(hid, ACPI_BUTTON_HID_SLEEP) ||
319 !strcmp(hid, ACPI_BUTTON_HID_SLEEPF)) {
355 button->type = ACPI_BUTTON_TYPE_SLEEP; 320 button->type = ACPI_BUTTON_TYPE_SLEEP;
356 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_SLEEP); 321 strcpy(name, ACPI_BUTTON_DEVICE_NAME_SLEEP);
357 sprintf(acpi_device_class(device), "%s/%s", 322 sprintf(class, "%s/%s",
358 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP);
359 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_SLEEPF)) {
360 button->type = ACPI_BUTTON_TYPE_SLEEPF;
361 strcpy(acpi_device_name(device),
362 ACPI_BUTTON_DEVICE_NAME_SLEEPF);
363 sprintf(acpi_device_class(device), "%s/%s",
364 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP); 323 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_SLEEP);
365 } else if (!strcmp(acpi_device_hid(device), ACPI_BUTTON_HID_LID)) { 324 } else if (!strcmp(hid, ACPI_BUTTON_HID_LID)) {
366 button->type = ACPI_BUTTON_TYPE_LID; 325 button->type = ACPI_BUTTON_TYPE_LID;
367 strcpy(acpi_device_name(device), ACPI_BUTTON_DEVICE_NAME_LID); 326 strcpy(name, ACPI_BUTTON_DEVICE_NAME_LID);
368 sprintf(acpi_device_class(device), "%s/%s", 327 sprintf(class, "%s/%s",
369 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_LID); 328 ACPI_BUTTON_CLASS, ACPI_BUTTON_SUBCLASS_LID);
370 } else { 329 } else {
371 printk(KERN_ERR PREFIX "Unsupported hid [%s]\n", 330 printk(KERN_ERR PREFIX "Unsupported hid [%s]\n", hid);
372 acpi_device_hid(device));
373 error = -ENODEV; 331 error = -ENODEV;
374 goto err_free_input; 332 goto err_free_input;
375 } 333 }
@@ -378,10 +336,9 @@ static int acpi_button_add(struct acpi_device *device)
378 if (error) 336 if (error)
379 goto err_free_input; 337 goto err_free_input;
380 338
381 snprintf(button->phys, sizeof(button->phys), 339 snprintf(button->phys, sizeof(button->phys), "%s/button/input0", hid);
382 "%s/button/input0", acpi_device_hid(device));
383 340
384 input->name = acpi_device_name(device); 341 input->name = name;
385 input->phys = button->phys; 342 input->phys = button->phys;
386 input->id.bustype = BUS_HOST; 343 input->id.bustype = BUS_HOST;
387 input->id.product = button->type; 344 input->id.product = button->type;
@@ -389,13 +346,11 @@ static int acpi_button_add(struct acpi_device *device)
389 346
390 switch (button->type) { 347 switch (button->type) {
391 case ACPI_BUTTON_TYPE_POWER: 348 case ACPI_BUTTON_TYPE_POWER:
392 case ACPI_BUTTON_TYPE_POWERF:
393 input->evbit[0] = BIT_MASK(EV_KEY); 349 input->evbit[0] = BIT_MASK(EV_KEY);
394 set_bit(KEY_POWER, input->keybit); 350 set_bit(KEY_POWER, input->keybit);
395 break; 351 break;
396 352
397 case ACPI_BUTTON_TYPE_SLEEP: 353 case ACPI_BUTTON_TYPE_SLEEP:
398 case ACPI_BUTTON_TYPE_SLEEPF:
399 input->evbit[0] = BIT_MASK(EV_KEY); 354 input->evbit[0] = BIT_MASK(EV_KEY);
400 set_bit(KEY_SLEEP, input->keybit); 355 set_bit(KEY_SLEEP, input->keybit);
401 break; 356 break;
@@ -410,7 +365,7 @@ static int acpi_button_add(struct acpi_device *device)
410 if (error) 365 if (error)
411 goto err_remove_fs; 366 goto err_remove_fs;
412 if (button->type == ACPI_BUTTON_TYPE_LID) 367 if (button->type == ACPI_BUTTON_TYPE_LID)
413 acpi_lid_send_state(button); 368 acpi_lid_send_state(device);
414 369
415 if (device->wakeup.flags.valid) { 370 if (device->wakeup.flags.valid) {
416 /* Button's GPE is run-wake GPE */ 371 /* Button's GPE is run-wake GPE */
@@ -422,9 +377,7 @@ static int acpi_button_add(struct acpi_device *device)
422 device->wakeup.state.enabled = 1; 377 device->wakeup.state.enabled = 1;
423 } 378 }
424 379
425 printk(KERN_INFO PREFIX "%s [%s]\n", 380 printk(KERN_INFO PREFIX "%s [%s]\n", name, acpi_device_bid(device));
426 acpi_device_name(device), acpi_device_bid(device));
427
428 return 0; 381 return 0;
429 382
430 err_remove_fs: 383 err_remove_fs:
@@ -438,17 +391,11 @@ static int acpi_button_add(struct acpi_device *device)
438 391
439static int acpi_button_remove(struct acpi_device *device, int type) 392static int acpi_button_remove(struct acpi_device *device, int type)
440{ 393{
441 struct acpi_button *button; 394 struct acpi_button *button = acpi_driver_data(device);
442
443 if (!device || !acpi_driver_data(device))
444 return -EINVAL;
445
446 button = acpi_driver_data(device);
447 395
448 acpi_button_remove_fs(device); 396 acpi_button_remove_fs(device);
449 input_unregister_device(button->input); 397 input_unregister_device(button->input);
450 kfree(button); 398 kfree(button);
451
452 return 0; 399 return 0;
453} 400}
454 401
@@ -459,6 +406,7 @@ static int __init acpi_button_init(void)
459 acpi_button_dir = proc_mkdir(ACPI_BUTTON_CLASS, acpi_root_dir); 406 acpi_button_dir = proc_mkdir(ACPI_BUTTON_CLASS, acpi_root_dir);
460 if (!acpi_button_dir) 407 if (!acpi_button_dir)
461 return -ENODEV; 408 return -ENODEV;
409
462 result = acpi_bus_register_driver(&acpi_button_driver); 410 result = acpi_bus_register_driver(&acpi_button_driver);
463 if (result < 0) { 411 if (result < 0) {
464 remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); 412 remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir);
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 04e90443eff7..391f331674c7 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -1065,6 +1065,7 @@ static int acpi_ec_resume(struct acpi_device *device)
1065 struct acpi_ec *ec = acpi_driver_data(device); 1065 struct acpi_ec *ec = acpi_driver_data(device);
1066 /* Enable use of GPE back */ 1066 /* Enable use of GPE back */
1067 clear_bit(EC_FLAGS_NO_GPE, &ec->flags); 1067 clear_bit(EC_FLAGS_NO_GPE, &ec->flags);
1068 set_bit(EC_FLAGS_GPE_MODE, &ec->flags);
1068 acpi_enable_gpe(NULL, ec->gpe); 1069 acpi_enable_gpe(NULL, ec->gpe);
1069 return 0; 1070 return 0;
1070} 1071}
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index d59f08ecaf16..d916bea729f1 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -353,8 +353,10 @@ static irqreturn_t acpi_irq(int irq, void *dev_id)
353 if (handled) { 353 if (handled) {
354 acpi_irq_handled++; 354 acpi_irq_handled++;
355 return IRQ_HANDLED; 355 return IRQ_HANDLED;
356 } else 356 } else {
357 acpi_irq_not_handled++;
357 return IRQ_NONE; 358 return IRQ_NONE;
359 }
358} 360}
359 361
360acpi_status 362acpi_status
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 6fe121434ffb..72069ba5f1ed 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -202,21 +202,44 @@ static void acpi_state_timer_broadcast(struct acpi_processor *pr,
202 * Suspend / resume control 202 * Suspend / resume control
203 */ 203 */
204static int acpi_idle_suspend; 204static int acpi_idle_suspend;
205static u32 saved_bm_rld;
206
207static void acpi_idle_bm_rld_save(void)
208{
209 acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_RLD, &saved_bm_rld);
210}
211static void acpi_idle_bm_rld_restore(void)
212{
213 u32 resumed_bm_rld;
214
215 acpi_read_bit_register(ACPI_BITREG_BUS_MASTER_RLD, &resumed_bm_rld);
216
217 if (resumed_bm_rld != saved_bm_rld)
218 acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_RLD, saved_bm_rld);
219}
205 220
206int acpi_processor_suspend(struct acpi_device * device, pm_message_t state) 221int acpi_processor_suspend(struct acpi_device * device, pm_message_t state)
207{ 222{
223 if (acpi_idle_suspend == 1)
224 return 0;
225
226 acpi_idle_bm_rld_save();
208 acpi_idle_suspend = 1; 227 acpi_idle_suspend = 1;
209 return 0; 228 return 0;
210} 229}
211 230
212int acpi_processor_resume(struct acpi_device * device) 231int acpi_processor_resume(struct acpi_device * device)
213{ 232{
233 if (acpi_idle_suspend == 0)
234 return 0;
235
236 acpi_idle_bm_rld_restore();
214 acpi_idle_suspend = 0; 237 acpi_idle_suspend = 0;
215 return 0; 238 return 0;
216} 239}
217 240
218#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86) 241#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
219static int tsc_halts_in_c(int state) 242static void tsc_check_state(int state)
220{ 243{
221 switch (boot_cpu_data.x86_vendor) { 244 switch (boot_cpu_data.x86_vendor) {
222 case X86_VENDOR_AMD: 245 case X86_VENDOR_AMD:
@@ -226,13 +249,17 @@ static int tsc_halts_in_c(int state)
226 * C/P/S0/S1 states when this bit is set. 249 * C/P/S0/S1 states when this bit is set.
227 */ 250 */
228 if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) 251 if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
229 return 0; 252 return;
230 253
231 /*FALL THROUGH*/ 254 /*FALL THROUGH*/
232 default: 255 default:
233 return state > ACPI_STATE_C1; 256 /* TSC could halt in idle, so notify users */
257 if (state > ACPI_STATE_C1)
258 mark_tsc_unstable("TSC halts in idle");
234 } 259 }
235} 260}
261#else
262static void tsc_check_state(int state) { return; }
236#endif 263#endif
237 264
238static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr) 265static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
@@ -578,7 +605,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
578 605
579 pr->power.timer_broadcast_on_state = INT_MAX; 606 pr->power.timer_broadcast_on_state = INT_MAX;
580 607
581 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) { 608 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
582 struct acpi_processor_cx *cx = &pr->power.states[i]; 609 struct acpi_processor_cx *cx = &pr->power.states[i];
583 610
584 switch (cx->type) { 611 switch (cx->type) {
@@ -598,6 +625,8 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
598 acpi_timer_check_state(i, pr, cx); 625 acpi_timer_check_state(i, pr, cx);
599 break; 626 break;
600 } 627 }
628 if (cx->valid)
629 tsc_check_state(cx->type);
601 630
602 if (cx->valid) 631 if (cx->valid)
603 working++; 632 working++;
@@ -657,11 +686,9 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset)
657 686
658 seq_printf(seq, "active state: C%zd\n" 687 seq_printf(seq, "active state: C%zd\n"
659 "max_cstate: C%d\n" 688 "max_cstate: C%d\n"
660 "bus master activity: %08x\n"
661 "maximum allowed latency: %d usec\n", 689 "maximum allowed latency: %d usec\n",
662 pr->power.state ? pr->power.state - pr->power.states : 0, 690 pr->power.state ? pr->power.state - pr->power.states : 0,
663 max_cstate, (unsigned)pr->power.bm_activity, 691 max_cstate, pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
664 pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
665 692
666 seq_puts(seq, "states:\n"); 693 seq_puts(seq, "states:\n");
667 694
@@ -871,11 +898,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
871 kt2 = ktime_get_real(); 898 kt2 = ktime_get_real();
872 idle_time = ktime_to_us(ktime_sub(kt2, kt1)); 899 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
873 900
874#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
875 /* TSC could halt in idle, so notify users */
876 if (tsc_halts_in_c(cx->type))
877 mark_tsc_unstable("TSC halts in idle");;
878#endif
879 sleep_ticks = us_to_pm_timer_ticks(idle_time); 901 sleep_ticks = us_to_pm_timer_ticks(idle_time);
880 902
881 /* Tell the scheduler how much we idled: */ 903 /* Tell the scheduler how much we idled: */
@@ -955,6 +977,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
955 */ 977 */
956 acpi_state_timer_broadcast(pr, cx, 1); 978 acpi_state_timer_broadcast(pr, cx, 1);
957 979
980 kt1 = ktime_get_real();
958 /* 981 /*
959 * disable bus master 982 * disable bus master
960 * bm_check implies we need ARB_DIS 983 * bm_check implies we need ARB_DIS
@@ -976,10 +999,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
976 ACPI_FLUSH_CPU_CACHE(); 999 ACPI_FLUSH_CPU_CACHE();
977 } 1000 }
978 1001
979 kt1 = ktime_get_real();
980 acpi_idle_do_entry(cx); 1002 acpi_idle_do_entry(cx);
981 kt2 = ktime_get_real();
982 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
983 1003
984 /* Re-enable bus master arbitration */ 1004 /* Re-enable bus master arbitration */
985 if (pr->flags.bm_check && pr->flags.bm_control) { 1005 if (pr->flags.bm_check && pr->flags.bm_control) {
@@ -988,12 +1008,9 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
988 c3_cpu_count--; 1008 c3_cpu_count--;
989 spin_unlock(&c3_lock); 1009 spin_unlock(&c3_lock);
990 } 1010 }
1011 kt2 = ktime_get_real();
1012 idle_time = ktime_to_us(ktime_sub(kt2, kt1));
991 1013
992#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
993 /* TSC could halt in idle, so notify users */
994 if (tsc_halts_in_c(ACPI_STATE_C3))
995 mark_tsc_unstable("TSC halts in idle");
996#endif
997 sleep_ticks = us_to_pm_timer_ticks(idle_time); 1014 sleep_ticks = us_to_pm_timer_ticks(idle_time);
998 /* Tell the scheduler how much we idled: */ 1015 /* Tell the scheduler how much we idled: */
999 sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS); 1016 sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS);
@@ -1037,6 +1054,9 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
1037 dev->states[i].desc[0] = '\0'; 1054 dev->states[i].desc[0] = '\0';
1038 } 1055 }
1039 1056
1057 if (max_cstate == 0)
1058 max_cstate = 1;
1059
1040 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) { 1060 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
1041 cx = &pr->power.states[i]; 1061 cx = &pr->power.states[i];
1042 state = &dev->states[count]; 1062 state = &dev->states[count];
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index d0d1f4d50434..7f16f5f8e7d3 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -45,6 +45,14 @@
45#define _COMPONENT ACPI_PROCESSOR_COMPONENT 45#define _COMPONENT ACPI_PROCESSOR_COMPONENT
46ACPI_MODULE_NAME("processor_throttling"); 46ACPI_MODULE_NAME("processor_throttling");
47 47
48/* ignore_tpc:
49 * 0 -> acpi processor driver doesn't ignore _TPC values
50 * 1 -> acpi processor driver ignores _TPC values
51 */
52static int ignore_tpc;
53module_param(ignore_tpc, int, 0644);
54MODULE_PARM_DESC(ignore_tpc, "Disable broken BIOS _TPC throttling support");
55
48struct throttling_tstate { 56struct throttling_tstate {
49 unsigned int cpu; /* cpu nr */ 57 unsigned int cpu; /* cpu nr */
50 int target_state; /* target T-state */ 58 int target_state; /* target T-state */
@@ -283,6 +291,10 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
283 291
284 if (!pr) 292 if (!pr)
285 return -EINVAL; 293 return -EINVAL;
294
295 if (ignore_tpc)
296 goto end;
297
286 status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc); 298 status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
287 if (ACPI_FAILURE(status)) { 299 if (ACPI_FAILURE(status)) {
288 if (status != AE_NOT_FOUND) { 300 if (status != AE_NOT_FOUND) {
@@ -290,6 +302,8 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
290 } 302 }
291 return -ENODEV; 303 return -ENODEV;
292 } 304 }
305
306end:
293 pr->throttling_platform_limit = (int)tpc; 307 pr->throttling_platform_limit = (int)tpc;
294 return 0; 308 return 0;
295} 309}
@@ -302,6 +316,9 @@ int acpi_processor_tstate_has_changed(struct acpi_processor *pr)
302 struct acpi_processor_limit *limit; 316 struct acpi_processor_limit *limit;
303 int target_state; 317 int target_state;
304 318
319 if (ignore_tpc)
320 return 0;
321
305 result = acpi_processor_get_platform_limit(pr); 322 result = acpi_processor_get_platform_limit(pr);
306 if (result) { 323 if (result) {
307 /* Throttling Limit is unsupported */ 324 /* Throttling Limit is unsupported */
@@ -821,6 +838,14 @@ static int acpi_processor_get_throttling_ptc(struct acpi_processor *pr)
821 ret = acpi_read_throttling_status(pr, &value); 838 ret = acpi_read_throttling_status(pr, &value);
822 if (ret >= 0) { 839 if (ret >= 0) {
823 state = acpi_get_throttling_state(pr, value); 840 state = acpi_get_throttling_state(pr, value);
841 if (state == -1) {
842 ACPI_WARNING((AE_INFO,
843 "Invalid throttling state, reset\n"));
844 state = 0;
845 ret = acpi_processor_set_throttling(pr, state);
846 if (ret)
847 return ret;
848 }
824 pr->throttling.state = state; 849 pr->throttling.state = state;
825 } 850 }
826 851
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 779e4e500df4..01574a066534 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -300,9 +300,9 @@ static int acpi_suspend_state_valid(suspend_state_t pm_state)
300static struct platform_suspend_ops acpi_suspend_ops = { 300static struct platform_suspend_ops acpi_suspend_ops = {
301 .valid = acpi_suspend_state_valid, 301 .valid = acpi_suspend_state_valid,
302 .begin = acpi_suspend_begin, 302 .begin = acpi_suspend_begin,
303 .prepare = acpi_pm_prepare, 303 .prepare_late = acpi_pm_prepare,
304 .enter = acpi_suspend_enter, 304 .enter = acpi_suspend_enter,
305 .finish = acpi_pm_finish, 305 .wake = acpi_pm_finish,
306 .end = acpi_pm_end, 306 .end = acpi_pm_end,
307}; 307};
308 308
@@ -328,9 +328,9 @@ static int acpi_suspend_begin_old(suspend_state_t pm_state)
328static struct platform_suspend_ops acpi_suspend_ops_old = { 328static struct platform_suspend_ops acpi_suspend_ops_old = {
329 .valid = acpi_suspend_state_valid, 329 .valid = acpi_suspend_state_valid,
330 .begin = acpi_suspend_begin_old, 330 .begin = acpi_suspend_begin_old,
331 .prepare = acpi_pm_disable_gpes, 331 .prepare_late = acpi_pm_disable_gpes,
332 .enter = acpi_suspend_enter, 332 .enter = acpi_suspend_enter,
333 .finish = acpi_pm_finish, 333 .wake = acpi_pm_finish,
334 .end = acpi_pm_end, 334 .end = acpi_pm_end,
335 .recover = acpi_pm_finish, 335 .recover = acpi_pm_finish,
336}; 336};
@@ -713,6 +713,32 @@ static void acpi_power_off(void)
713 acpi_enter_sleep_state(ACPI_STATE_S5); 713 acpi_enter_sleep_state(ACPI_STATE_S5);
714} 714}
715 715
716/*
717 * ACPI 2.0 created the optional _GTS and _BFS,
718 * but industry adoption has been neither rapid nor broad.
719 *
720 * Linux gets into trouble when it executes poorly validated
721 * paths through the BIOS, so disable _GTS and _BFS by default,
722 * but do speak up and offer the option to enable them.
723 */
724void __init acpi_gts_bfs_check(void)
725{
726 acpi_handle dummy;
727
728 if (ACPI_SUCCESS(acpi_get_handle(ACPI_ROOT_OBJECT, METHOD_NAME__GTS, &dummy)))
729 {
730 printk(KERN_NOTICE PREFIX "BIOS offers _GTS\n");
731 printk(KERN_NOTICE PREFIX "If \"acpi.gts=1\" improves suspend, "
732 "please notify linux-acpi@vger.kernel.org\n");
733 }
734 if (ACPI_SUCCESS(acpi_get_handle(ACPI_ROOT_OBJECT, METHOD_NAME__BFS, &dummy)))
735 {
736 printk(KERN_NOTICE PREFIX "BIOS offers _BFS\n");
737 printk(KERN_NOTICE PREFIX "If \"acpi.bfs=1\" improves resume, "
738 "please notify linux-acpi@vger.kernel.org\n");
739 }
740}
741
716int __init acpi_sleep_init(void) 742int __init acpi_sleep_init(void)
717{ 743{
718 acpi_status status; 744 acpi_status status;
@@ -771,5 +797,6 @@ int __init acpi_sleep_init(void)
771 * object can also be evaluated when the system enters S5. 797 * object can also be evaluated when the system enters S5.
772 */ 798 */
773 register_reboot_notifier(&tts_notifier); 799 register_reboot_notifier(&tts_notifier);
800 acpi_gts_bfs_check();
774 return 0; 801 return 0;
775} 802}
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index da51f05ef8d8..0944daec064f 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -38,6 +38,7 @@ ACPI_MODULE_NAME("system");
38#define ACPI_SYSTEM_DEVICE_NAME "System" 38#define ACPI_SYSTEM_DEVICE_NAME "System"
39 39
40u32 acpi_irq_handled; 40u32 acpi_irq_handled;
41u32 acpi_irq_not_handled;
41 42
42/* 43/*
43 * Make ACPICA version work as module param 44 * Make ACPICA version work as module param
@@ -214,8 +215,9 @@ err:
214 215
215#define COUNT_GPE 0 216#define COUNT_GPE 0
216#define COUNT_SCI 1 /* acpi_irq_handled */ 217#define COUNT_SCI 1 /* acpi_irq_handled */
217#define COUNT_ERROR 2 /* other */ 218#define COUNT_SCI_NOT 2 /* acpi_irq_not_handled */
218#define NUM_COUNTERS_EXTRA 3 219#define COUNT_ERROR 3 /* other */
220#define NUM_COUNTERS_EXTRA 4
219 221
220struct event_counter { 222struct event_counter {
221 u32 count; 223 u32 count;
@@ -317,6 +319,8 @@ static ssize_t counter_show(struct kobject *kobj,
317 319
318 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI].count = 320 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI].count =
319 acpi_irq_handled; 321 acpi_irq_handled;
322 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI_NOT].count =
323 acpi_irq_not_handled;
320 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_GPE].count = 324 all_counters[num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_GPE].count =
321 acpi_gpe_count; 325 acpi_gpe_count;
322 326
@@ -363,6 +367,7 @@ static ssize_t counter_set(struct kobject *kobj,
363 all_counters[i].count = 0; 367 all_counters[i].count = 0;
364 acpi_gpe_count = 0; 368 acpi_gpe_count = 0;
365 acpi_irq_handled = 0; 369 acpi_irq_handled = 0;
370 acpi_irq_not_handled = 0;
366 goto end; 371 goto end;
367 } 372 }
368 373
@@ -456,6 +461,8 @@ void acpi_irq_stats_init(void)
456 sprintf(buffer, "gpe_all"); 461 sprintf(buffer, "gpe_all");
457 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI) 462 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI)
458 sprintf(buffer, "sci"); 463 sprintf(buffer, "sci");
464 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_SCI_NOT)
465 sprintf(buffer, "sci_not");
459 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_ERROR) 466 else if (i == num_gpes + ACPI_NUM_FIXED_EVENTS + COUNT_ERROR)
460 sprintf(buffer, "error"); 467 sprintf(buffer, "error");
461 else 468 else
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 9cd15e8c8932..564ea1424288 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -909,7 +909,7 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
909 thermal_zone_device_register("acpitz", trips, tz, 909 thermal_zone_device_register("acpitz", trips, tz,
910 &acpi_thermal_zone_ops, 910 &acpi_thermal_zone_ops,
911 0, 0, 0, 911 0, 0, 0,
912 tz->polling_frequency); 912 tz->polling_frequency*100);
913 if (IS_ERR(tz->thermal_zone)) 913 if (IS_ERR(tz->thermal_zone))
914 return -ENODEV; 914 return -ENODEV;
915 915
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index cd4fb7543a90..810cca90ca7f 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -538,6 +538,41 @@ acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level)
538 return -EINVAL; 538 return -EINVAL;
539} 539}
540 540
541/*
542 * For some buggy _BQC methods, we need to add a constant value to
543 * the _BQC return value to get the actual current brightness level
544 */
545
546static int bqc_offset_aml_bug_workaround;
547static int __init video_set_bqc_offset(const struct dmi_system_id *d)
548{
549 bqc_offset_aml_bug_workaround = 9;
550 return 0;
551}
552
553static struct dmi_system_id video_dmi_table[] __initdata = {
554 /*
555 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
556 */
557 {
558 .callback = video_set_bqc_offset,
559 .ident = "Acer Aspire 5720",
560 .matches = {
561 DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
562 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5720"),
563 },
564 },
565 {
566 .callback = video_set_bqc_offset,
567 .ident = "Acer Aspire 5710Z",
568 .matches = {
569 DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
570 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5710Z"),
571 },
572 },
573 {}
574};
575
541static int 576static int
542acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, 577acpi_video_device_lcd_get_level_current(struct acpi_video_device *device,
543 unsigned long long *level) 578 unsigned long long *level)
@@ -557,6 +592,7 @@ acpi_video_device_lcd_get_level_current(struct acpi_video_device *device,
557 *level = device->brightness->levels[*level + 2]; 592 *level = device->brightness->levels[*level + 2];
558 593
559 } 594 }
595 *level += bqc_offset_aml_bug_workaround;
560 device->brightness->curr = *level; 596 device->brightness->curr = *level;
561 return 0; 597 return 0;
562 } else { 598 } else {
@@ -770,10 +806,12 @@ acpi_video_init_brightness(struct acpi_video_device *device)
770 * In this case, the first two elements in _BCL packages 806 * In this case, the first two elements in _BCL packages
771 * are also supported brightness levels that OS should take care of. 807 * are also supported brightness levels that OS should take care of.
772 */ 808 */
773 for (i = 2; i < count; i++) 809 for (i = 2; i < count; i++) {
774 if (br->levels[i] == br->levels[0] || 810 if (br->levels[i] == br->levels[0])
775 br->levels[i] == br->levels[1]) 811 level_ac_battery++;
812 if (br->levels[i] == br->levels[1])
776 level_ac_battery++; 813 level_ac_battery++;
814 }
777 815
778 if (level_ac_battery < 2) { 816 if (level_ac_battery < 2) {
779 level_ac_battery = 2 - level_ac_battery; 817 level_ac_battery = 2 - level_ac_battery;
@@ -807,12 +845,19 @@ acpi_video_init_brightness(struct acpi_video_device *device)
807 br->flags._BCM_use_index = br->flags._BCL_use_index; 845 br->flags._BCM_use_index = br->flags._BCL_use_index;
808 846
809 /* _BQC uses INDEX while _BCL uses VALUE in some laptops */ 847 /* _BQC uses INDEX while _BCL uses VALUE in some laptops */
810 br->curr = max_level; 848 br->curr = level_old = max_level;
849
850 if (!device->cap._BQC)
851 goto set_level;
852
811 result = acpi_video_device_lcd_get_level_current(device, &level_old); 853 result = acpi_video_device_lcd_get_level_current(device, &level_old);
812 if (result) 854 if (result)
813 goto out_free_levels; 855 goto out_free_levels;
814 856
815 result = acpi_video_device_lcd_set_level(device, br->curr); 857 /*
858 * Set the level to maximum and check if _BQC uses indexed value
859 */
860 result = acpi_video_device_lcd_set_level(device, max_level);
816 if (result) 861 if (result)
817 goto out_free_levels; 862 goto out_free_levels;
818 863
@@ -820,25 +865,19 @@ acpi_video_init_brightness(struct acpi_video_device *device)
820 if (result) 865 if (result)
821 goto out_free_levels; 866 goto out_free_levels;
822 867
823 if ((level != level_old) && !br->flags._BCM_use_index) { 868 br->flags._BQC_use_index = (level == max_level ? 0 : 1);
824 /* Note: 869
825 * This piece of code does not work correctly if the current 870 if (!br->flags._BQC_use_index)
826 * brightness levels is 0. 871 goto set_level;
827 * But I guess boxes that boot with such a dark screen are rare 872
828 * and no more code is needed to cover this specifial case. 873 if (br->flags._BCL_reversed)
829 */ 874 level_old = (br->count - 1) - level_old;
830 875 level_old = br->levels[level_old];
831 if (level_ac_battery != 2) { 876
832 /* 877set_level:
833 * For now, we don't support the _BCL like this: 878 result = acpi_video_device_lcd_set_level(device, level_old);
834 * 16, 15, 0, 1, 2, 3, ..., 14, 15, 16 879 if (result)
835 * because we may mess up the index returned by _BQC. 880 goto out_free_levels;
836 * Plus: we have not got a box like this.
837 */
838 ACPI_ERROR((AE_INFO, "_BCL not supported\n"));
839 }
840 br->flags._BQC_use_index = 1;
841 }
842 881
843 ACPI_DEBUG_PRINT((ACPI_DB_INFO, 882 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
844 "found %d brightness levels\n", count - 2)); 883 "found %d brightness levels\n", count - 2));
@@ -2287,13 +2326,15 @@ EXPORT_SYMBOL(acpi_video_register);
2287 2326
2288static int __init acpi_video_init(void) 2327static int __init acpi_video_init(void)
2289{ 2328{
2329 dmi_check_system(video_dmi_table);
2330
2290 if (intel_opregion_present()) 2331 if (intel_opregion_present())
2291 return 0; 2332 return 0;
2292 2333
2293 return acpi_video_register(); 2334 return acpi_video_register();
2294} 2335}
2295 2336
2296static void __exit acpi_video_exit(void) 2337void __exit acpi_video_exit(void)
2297{ 2338{
2298 2339
2299 acpi_bus_unregister_driver(&acpi_video_bus); 2340 acpi_bus_unregister_driver(&acpi_video_bus);
@@ -2302,6 +2343,7 @@ static void __exit acpi_video_exit(void)
2302 2343
2303 return; 2344 return;
2304} 2345}
2346EXPORT_SYMBOL(acpi_video_exit);
2305 2347
2306module_init(acpi_video_init); 2348module_init(acpi_video_init);
2307module_exit(acpi_video_exit); 2349module_exit(acpi_video_exit);
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 942d14ac8792..d51a17c0f59b 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -72,6 +72,7 @@
72 * ICH2 spec c #20 - IDE PRD must not cross a 64K boundary 72 * ICH2 spec c #20 - IDE PRD must not cross a 64K boundary
73 * and must be dword aligned 73 * and must be dword aligned
74 * ICH2 spec c #24 - UDMA mode 4,5 t85/86 should be 6ns not 3.3 74 * ICH2 spec c #24 - UDMA mode 4,5 t85/86 should be 6ns not 3.3
75 * ICH7 errata #16 - MWDMA1 timings are incorrect
75 * 76 *
76 * Should have been BIOS fixed: 77 * Should have been BIOS fixed:
77 * 450NX: errata #19 - DMA hangs on old 450NX 78 * 450NX: errata #19 - DMA hangs on old 450NX
@@ -94,7 +95,7 @@
94#include <linux/dmi.h> 95#include <linux/dmi.h>
95 96
96#define DRV_NAME "ata_piix" 97#define DRV_NAME "ata_piix"
97#define DRV_VERSION "2.12" 98#define DRV_VERSION "2.13"
98 99
99enum { 100enum {
100 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ 101 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */
@@ -136,6 +137,7 @@ enum piix_controller_ids {
136 ich_pata_33, /* ICH up to UDMA 33 only */ 137 ich_pata_33, /* ICH up to UDMA 33 only */
137 ich_pata_66, /* ICH up to 66 Mhz */ 138 ich_pata_66, /* ICH up to 66 Mhz */
138 ich_pata_100, /* ICH up to UDMA 100 */ 139 ich_pata_100, /* ICH up to UDMA 100 */
140 ich_pata_100_nomwdma1, /* ICH up to UDMA 100 but with no MWDMA1*/
139 ich5_sata, 141 ich5_sata,
140 ich6_sata, 142 ich6_sata,
141 ich6m_sata, 143 ich6m_sata,
@@ -216,8 +218,8 @@ static const struct pci_device_id piix_pci_tbl[] = {
216 /* ICH6 (and 6) (i915) UDMA 100 */ 218 /* ICH6 (and 6) (i915) UDMA 100 */
217 { 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 219 { 0x8086, 0x266F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
218 /* ICH7/7-R (i945, i975) UDMA 100*/ 220 /* ICH7/7-R (i945, i975) UDMA 100*/
219 { 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 221 { 0x8086, 0x27DF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
220 { 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 222 { 0x8086, 0x269E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100_nomwdma1 },
221 /* ICH8 Mobile PATA Controller */ 223 /* ICH8 Mobile PATA Controller */
222 { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 }, 224 { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich_pata_100 },
223 225
@@ -487,6 +489,15 @@ static struct ata_port_info piix_port_info[] = {
487 .port_ops = &ich_pata_ops, 489 .port_ops = &ich_pata_ops,
488 }, 490 },
489 491
492 [ich_pata_100_nomwdma1] =
493 {
494 .flags = PIIX_PATA_FLAGS | PIIX_FLAG_CHECKINTR,
495 .pio_mask = ATA_PIO4,
496 .mwdma_mask = ATA_MWDMA2_ONLY,
497 .udma_mask = ATA_UDMA5,
498 .port_ops = &ich_pata_ops,
499 },
500
490 [ich5_sata] = 501 [ich5_sata] =
491 { 502 {
492 .flags = PIIX_SATA_FLAGS, 503 .flags = PIIX_SATA_FLAGS,
@@ -594,6 +605,7 @@ static const struct ich_laptop ich_laptop[] = {
594 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */ 605 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */
595 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */ 606 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */
596 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ 607 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */
608 { 0x27df, 0x104d, 0x900e }, /* ICH7 on Sony TZ-90 */
597 /* end marker */ 609 /* end marker */
598 { 0, } 610 { 0, }
599}; 611};
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 065507c46644..c9242301cfa1 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1231,6 +1231,9 @@ unsigned int ata_dev_classify(const struct ata_taskfile *tf)
1231 * 1231 *
1232 * We follow the current spec and consider that 0x69/0x96 1232 * We follow the current spec and consider that 0x69/0x96
1233 * identifies a port multiplier and 0x3c/0xc3 a SEMB device. 1233 * identifies a port multiplier and 0x3c/0xc3 a SEMB device.
1234 * Unfortunately, WDC WD1600JS-62MHB5 (a hard drive) reports
1235 * SEMB signature. This is worked around in
1236 * ata_dev_read_id().
1234 */ 1237 */
1235 if ((tf->lbam == 0) && (tf->lbah == 0)) { 1238 if ((tf->lbam == 0) && (tf->lbah == 0)) {
1236 DPRINTK("found ATA device by sig\n"); 1239 DPRINTK("found ATA device by sig\n");
@@ -1248,8 +1251,8 @@ unsigned int ata_dev_classify(const struct ata_taskfile *tf)
1248 } 1251 }
1249 1252
1250 if ((tf->lbam == 0x3c) && (tf->lbah == 0xc3)) { 1253 if ((tf->lbam == 0x3c) && (tf->lbah == 0xc3)) {
1251 printk(KERN_INFO "ata: SEMB device ignored\n"); 1254 DPRINTK("found SEMB device by sig (could be ATA device)\n");
1252 return ATA_DEV_SEMB_UNSUP; /* not yet */ 1255 return ATA_DEV_SEMB;
1253 } 1256 }
1254 1257
1255 DPRINTK("unknown device\n"); 1258 DPRINTK("unknown device\n");
@@ -1653,8 +1656,8 @@ unsigned long ata_id_xfermask(const u16 *id)
1653 /* 1656 /*
1654 * Process compact flash extended modes 1657 * Process compact flash extended modes
1655 */ 1658 */
1656 int pio = id[163] & 0x7; 1659 int pio = (id[ATA_ID_CFA_MODES] >> 0) & 0x7;
1657 int dma = (id[163] >> 3) & 7; 1660 int dma = (id[ATA_ID_CFA_MODES] >> 3) & 0x7;
1658 1661
1659 if (pio) 1662 if (pio)
1660 pio_mask |= (1 << 5); 1663 pio_mask |= (1 << 5);
@@ -2080,6 +2083,7 @@ int ata_dev_read_id(struct ata_device *dev, unsigned int *p_class,
2080 struct ata_taskfile tf; 2083 struct ata_taskfile tf;
2081 unsigned int err_mask = 0; 2084 unsigned int err_mask = 0;
2082 const char *reason; 2085 const char *reason;
2086 bool is_semb = class == ATA_DEV_SEMB;
2083 int may_fallback = 1, tried_spinup = 0; 2087 int may_fallback = 1, tried_spinup = 0;
2084 int rc; 2088 int rc;
2085 2089
@@ -2090,6 +2094,8 @@ retry:
2090 ata_tf_init(dev, &tf); 2094 ata_tf_init(dev, &tf);
2091 2095
2092 switch (class) { 2096 switch (class) {
2097 case ATA_DEV_SEMB:
2098 class = ATA_DEV_ATA; /* some hard drives report SEMB sig */
2093 case ATA_DEV_ATA: 2099 case ATA_DEV_ATA:
2094 tf.command = ATA_CMD_ID_ATA; 2100 tf.command = ATA_CMD_ID_ATA;
2095 break; 2101 break;
@@ -2126,6 +2132,14 @@ retry:
2126 return -ENOENT; 2132 return -ENOENT;
2127 } 2133 }
2128 2134
2135 if (is_semb) {
2136 ata_dev_printk(dev, KERN_INFO, "IDENTIFY failed on "
2137 "device w/ SEMB sig, disabled\n");
2138 /* SEMB is not supported yet */
2139 *p_class = ATA_DEV_SEMB_UNSUP;
2140 return 0;
2141 }
2142
2129 if ((err_mask == AC_ERR_DEV) && (tf.feature & ATA_ABORTED)) { 2143 if ((err_mask == AC_ERR_DEV) && (tf.feature & ATA_ABORTED)) {
2130 /* Device or controller might have reported 2144 /* Device or controller might have reported
2131 * the wrong device class. Give a shot at the 2145 * the wrong device class. Give a shot at the
@@ -2412,7 +2426,8 @@ int ata_dev_configure(struct ata_device *dev)
2412 /* ATA-specific feature tests */ 2426 /* ATA-specific feature tests */
2413 if (dev->class == ATA_DEV_ATA) { 2427 if (dev->class == ATA_DEV_ATA) {
2414 if (ata_id_is_cfa(id)) { 2428 if (ata_id_is_cfa(id)) {
2415 if (id[162] & 1) /* CPRM may make this media unusable */ 2429 /* CPRM may make this media unusable */
2430 if (id[ATA_ID_CFA_KEY_MGMT] & 1)
2416 ata_dev_printk(dev, KERN_WARNING, 2431 ata_dev_printk(dev, KERN_WARNING,
2417 "supports DRM functions and may " 2432 "supports DRM functions and may "
2418 "not be fully accessable.\n"); 2433 "not be fully accessable.\n");
@@ -4076,7 +4091,9 @@ int ata_dev_revalidate(struct ata_device *dev, unsigned int new_class,
4076 4091
4077 /* fail early if !ATA && !ATAPI to avoid issuing [P]IDENTIFY to PMP */ 4092 /* fail early if !ATA && !ATAPI to avoid issuing [P]IDENTIFY to PMP */
4078 if (ata_class_enabled(new_class) && 4093 if (ata_class_enabled(new_class) &&
4079 new_class != ATA_DEV_ATA && new_class != ATA_DEV_ATAPI) { 4094 new_class != ATA_DEV_ATA &&
4095 new_class != ATA_DEV_ATAPI &&
4096 new_class != ATA_DEV_SEMB) {
4080 ata_dev_printk(dev, KERN_INFO, "class mismatch %u != %u\n", 4097 ata_dev_printk(dev, KERN_INFO, "class mismatch %u != %u\n",
4081 dev->class, new_class); 4098 dev->class, new_class);
4082 rc = -ENODEV; 4099 rc = -ENODEV;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 01831312c360..94919ad03df1 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2783,6 +2783,12 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2783 } else if (dev->class == ATA_DEV_UNKNOWN && 2783 } else if (dev->class == ATA_DEV_UNKNOWN &&
2784 ehc->tries[dev->devno] && 2784 ehc->tries[dev->devno] &&
2785 ata_class_enabled(ehc->classes[dev->devno])) { 2785 ata_class_enabled(ehc->classes[dev->devno])) {
2786 /* Temporarily set dev->class, it will be
2787 * permanently set once all configurations are
2788 * complete. This is necessary because new
2789 * device configuration is done in two
2790 * separate loops.
2791 */
2786 dev->class = ehc->classes[dev->devno]; 2792 dev->class = ehc->classes[dev->devno];
2787 2793
2788 if (dev->class == ATA_DEV_PMP) 2794 if (dev->class == ATA_DEV_PMP)
@@ -2790,6 +2796,11 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2790 else 2796 else
2791 rc = ata_dev_read_id(dev, &dev->class, 2797 rc = ata_dev_read_id(dev, &dev->class,
2792 readid_flags, dev->id); 2798 readid_flags, dev->id);
2799
2800 /* read_id might have changed class, store and reset */
2801 ehc->classes[dev->devno] = dev->class;
2802 dev->class = ATA_DEV_UNKNOWN;
2803
2793 switch (rc) { 2804 switch (rc) {
2794 case 0: 2805 case 0:
2795 /* clear error info accumulated during probe */ 2806 /* clear error info accumulated during probe */
@@ -2799,13 +2810,11 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2799 case -ENOENT: 2810 case -ENOENT:
2800 /* IDENTIFY was issued to non-existent 2811 /* IDENTIFY was issued to non-existent
2801 * device. No need to reset. Just 2812 * device. No need to reset. Just
2802 * thaw and kill the device. 2813 * thaw and ignore the device.
2803 */ 2814 */
2804 ata_eh_thaw_port(ap); 2815 ata_eh_thaw_port(ap);
2805 dev->class = ATA_DEV_UNKNOWN;
2806 break; 2816 break;
2807 default: 2817 default:
2808 dev->class = ATA_DEV_UNKNOWN;
2809 goto err; 2818 goto err;
2810 } 2819 }
2811 } 2820 }
@@ -2826,11 +2835,15 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
2826 dev->class == ATA_DEV_PMP) 2835 dev->class == ATA_DEV_PMP)
2827 continue; 2836 continue;
2828 2837
2838 dev->class = ehc->classes[dev->devno];
2839
2829 ehc->i.flags |= ATA_EHI_PRINTINFO; 2840 ehc->i.flags |= ATA_EHI_PRINTINFO;
2830 rc = ata_dev_configure(dev); 2841 rc = ata_dev_configure(dev);
2831 ehc->i.flags &= ~ATA_EHI_PRINTINFO; 2842 ehc->i.flags &= ~ATA_EHI_PRINTINFO;
2832 if (rc) 2843 if (rc) {
2844 dev->class = ATA_DEV_UNKNOWN;
2833 goto err; 2845 goto err;
2846 }
2834 2847
2835 spin_lock_irqsave(ap->lock, flags); 2848 spin_lock_irqsave(ap->lock, flags);
2836 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG; 2849 ap->pflags |= ATA_PFLAG_SCSI_HOTPLUG;
@@ -3494,6 +3507,8 @@ static void ata_eh_handle_port_suspend(struct ata_port *ap)
3494 */ 3507 */
3495static void ata_eh_handle_port_resume(struct ata_port *ap) 3508static void ata_eh_handle_port_resume(struct ata_port *ap)
3496{ 3509{
3510 struct ata_link *link;
3511 struct ata_device *dev;
3497 unsigned long flags; 3512 unsigned long flags;
3498 int rc = 0; 3513 int rc = 0;
3499 3514
@@ -3508,6 +3523,17 @@ static void ata_eh_handle_port_resume(struct ata_port *ap)
3508 3523
3509 WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED)); 3524 WARN_ON(!(ap->pflags & ATA_PFLAG_SUSPENDED));
3510 3525
3526 /*
3527 * Error timestamps are in jiffies which doesn't run while
3528 * suspended and PHY events during resume isn't too uncommon.
3529 * When the two are combined, it can lead to unnecessary speed
3530 * downs if the machine is suspended and resumed repeatedly.
3531 * Clear error history.
3532 */
3533 ata_for_each_link(link, ap, HOST_FIRST)
3534 ata_for_each_dev(dev, link, ALL)
3535 ata_ering_clear(&dev->ering);
3536
3511 ata_acpi_set_state(ap, PMSG_ON); 3537 ata_acpi_set_state(ap, PMSG_ON);
3512 3538
3513 if (ap->ops->port_resume) 3539 if (ap->ops->port_resume)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index b9747fa59e54..342316064e9f 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -313,7 +313,7 @@ ata_scsi_em_message_show(struct device *dev, struct device_attribute *attr,
313 return ap->ops->em_show(ap, buf); 313 return ap->ops->em_show(ap, buf);
314 return -EINVAL; 314 return -EINVAL;
315} 315}
316DEVICE_ATTR(em_message, S_IRUGO | S_IWUGO, 316DEVICE_ATTR(em_message, S_IRUGO | S_IWUSR,
317 ata_scsi_em_message_show, ata_scsi_em_message_store); 317 ata_scsi_em_message_show, ata_scsi_em_message_store);
318EXPORT_SYMBOL_GPL(dev_attr_em_message); 318EXPORT_SYMBOL_GPL(dev_attr_em_message);
319 319
@@ -366,7 +366,7 @@ ata_scsi_activity_store(struct device *dev, struct device_attribute *attr,
366 } 366 }
367 return -EINVAL; 367 return -EINVAL;
368} 368}
369DEVICE_ATTR(sw_activity, S_IWUGO | S_IRUGO, ata_scsi_activity_show, 369DEVICE_ATTR(sw_activity, S_IWUSR | S_IRUGO, ata_scsi_activity_show,
370 ata_scsi_activity_store); 370 ata_scsi_activity_store);
371EXPORT_SYMBOL_GPL(dev_attr_sw_activity); 371EXPORT_SYMBOL_GPL(dev_attr_sw_activity);
372 372
@@ -647,23 +647,45 @@ int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
647 return rc; 647 return rc;
648} 648}
649 649
650static int ata_ioc32(struct ata_port *ap)
651{
652 if (ap->flags & ATA_FLAG_PIO_DMA)
653 return 1;
654 if (ap->pflags & ATA_PFLAG_PIO32)
655 return 1;
656 return 0;
657}
658
650int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev, 659int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *scsidev,
651 int cmd, void __user *arg) 660 int cmd, void __user *arg)
652{ 661{
653 int val = -EINVAL, rc = -EINVAL; 662 int val = -EINVAL, rc = -EINVAL;
663 unsigned long flags;
654 664
655 switch (cmd) { 665 switch (cmd) {
656 case ATA_IOC_GET_IO32: 666 case ATA_IOC_GET_IO32:
657 val = 0; 667 spin_lock_irqsave(ap->lock, flags);
668 val = ata_ioc32(ap);
669 spin_unlock_irqrestore(ap->lock, flags);
658 if (copy_to_user(arg, &val, 1)) 670 if (copy_to_user(arg, &val, 1))
659 return -EFAULT; 671 return -EFAULT;
660 return 0; 672 return 0;
661 673
662 case ATA_IOC_SET_IO32: 674 case ATA_IOC_SET_IO32:
663 val = (unsigned long) arg; 675 val = (unsigned long) arg;
664 if (val != 0) 676 rc = 0;
665 return -EINVAL; 677 spin_lock_irqsave(ap->lock, flags);
666 return 0; 678 if (ap->pflags & ATA_PFLAG_PIO32CHANGE) {
679 if (val)
680 ap->pflags |= ATA_PFLAG_PIO32;
681 else
682 ap->pflags &= ~ATA_PFLAG_PIO32;
683 } else {
684 if (val != ata_ioc32(ap))
685 rc = -EINVAL;
686 }
687 spin_unlock_irqrestore(ap->lock, flags);
688 return rc;
667 689
668 case HDIO_GET_IDENTITY: 690 case HDIO_GET_IDENTITY:
669 return ata_get_identity(ap, scsidev, arg); 691 return ata_get_identity(ap, scsidev, arg);
@@ -2120,13 +2142,14 @@ static unsigned int ata_scsiop_inq_89(struct ata_scsi_args *args, u8 *rbuf)
2120 2142
2121static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf) 2143static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf)
2122{ 2144{
2145 int form_factor = ata_id_form_factor(args->id);
2146 int media_rotation_rate = ata_id_rotation_rate(args->id);
2147
2123 rbuf[1] = 0xb1; 2148 rbuf[1] = 0xb1;
2124 rbuf[3] = 0x3c; 2149 rbuf[3] = 0x3c;
2125 if (ata_id_major_version(args->id) > 7) { 2150 rbuf[4] = media_rotation_rate >> 8;
2126 rbuf[4] = args->id[217] >> 8; 2151 rbuf[5] = media_rotation_rate;
2127 rbuf[5] = args->id[217]; 2152 rbuf[7] = form_factor;
2128 rbuf[7] = args->id[168] & 0xf;
2129 }
2130 2153
2131 return 0; 2154 return 0;
2132} 2155}
@@ -2354,7 +2377,23 @@ saving_not_supp:
2354 */ 2377 */
2355static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf) 2378static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf)
2356{ 2379{
2357 u64 last_lba = args->dev->n_sectors - 1; /* LBA of the last block */ 2380 struct ata_device *dev = args->dev;
2381 u64 last_lba = dev->n_sectors - 1; /* LBA of the last block */
2382 u8 log_per_phys = 0;
2383 u16 lowest_aligned = 0;
2384 u16 word_106 = dev->id[106];
2385 u16 word_209 = dev->id[209];
2386
2387 if ((word_106 & 0xc000) == 0x4000) {
2388 /* Number and offset of logical sectors per physical sector */
2389 if (word_106 & (1 << 13))
2390 log_per_phys = word_106 & 0xf;
2391 if ((word_209 & 0xc000) == 0x4000) {
2392 u16 first = dev->id[209] & 0x3fff;
2393 if (first > 0)
2394 lowest_aligned = (1 << log_per_phys) - first;
2395 }
2396 }
2358 2397
2359 VPRINTK("ENTER\n"); 2398 VPRINTK("ENTER\n");
2360 2399
@@ -2385,6 +2424,11 @@ static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf)
2385 /* sector size */ 2424 /* sector size */
2386 rbuf[10] = ATA_SECT_SIZE >> 8; 2425 rbuf[10] = ATA_SECT_SIZE >> 8;
2387 rbuf[11] = ATA_SECT_SIZE & 0xff; 2426 rbuf[11] = ATA_SECT_SIZE & 0xff;
2427
2428 rbuf[12] = 0;
2429 rbuf[13] = log_per_phys;
2430 rbuf[14] = (lowest_aligned >> 8) & 0x3f;
2431 rbuf[15] = lowest_aligned;
2388 } 2432 }
2389 2433
2390 return 0; 2434 return 0;
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 8332e97a9de3..bb18415d3d63 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -87,6 +87,7 @@ const struct ata_port_operations ata_bmdma32_port_ops = {
87 .inherits = &ata_bmdma_port_ops, 87 .inherits = &ata_bmdma_port_ops,
88 88
89 .sff_data_xfer = ata_sff_data_xfer32, 89 .sff_data_xfer = ata_sff_data_xfer32,
90 .port_start = ata_sff_port_start32,
90}; 91};
91EXPORT_SYMBOL_GPL(ata_bmdma32_port_ops); 92EXPORT_SYMBOL_GPL(ata_bmdma32_port_ops);
92 93
@@ -769,6 +770,9 @@ unsigned int ata_sff_data_xfer32(struct ata_device *dev, unsigned char *buf,
769 void __iomem *data_addr = ap->ioaddr.data_addr; 770 void __iomem *data_addr = ap->ioaddr.data_addr;
770 unsigned int words = buflen >> 2; 771 unsigned int words = buflen >> 2;
771 int slop = buflen & 3; 772 int slop = buflen & 3;
773
774 if (!(ap->pflags & ATA_PFLAG_PIO32))
775 return ata_sff_data_xfer(dev, buf, buflen, rw);
772 776
773 /* Transfer multiple of 4 bytes */ 777 /* Transfer multiple of 4 bytes */
774 if (rw == READ) 778 if (rw == READ)
@@ -2402,6 +2406,29 @@ int ata_sff_port_start(struct ata_port *ap)
2402EXPORT_SYMBOL_GPL(ata_sff_port_start); 2406EXPORT_SYMBOL_GPL(ata_sff_port_start);
2403 2407
2404/** 2408/**
2409 * ata_sff_port_start32 - Set port up for dma.
2410 * @ap: Port to initialize
2411 *
2412 * Called just after data structures for each port are
2413 * initialized. Allocates space for PRD table if the device
2414 * is DMA capable SFF.
2415 *
2416 * May be used as the port_start() entry in ata_port_operations for
2417 * devices that are capable of 32bit PIO.
2418 *
2419 * LOCKING:
2420 * Inherited from caller.
2421 */
2422int ata_sff_port_start32(struct ata_port *ap)
2423{
2424 ap->pflags |= ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE;
2425 if (ap->ioaddr.bmdma_addr)
2426 return ata_port_start(ap);
2427 return 0;
2428}
2429EXPORT_SYMBOL_GPL(ata_sff_port_start32);
2430
2431/**
2405 * ata_sff_std_ports - initialize ioaddr with standard port offsets. 2432 * ata_sff_std_ports - initialize ioaddr with standard port offsets.
2406 * @ioaddr: IO address structure to be initialized 2433 * @ioaddr: IO address structure to be initialized
2407 * 2434 *
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c
index 81ab57003aba..122c786449a9 100644
--- a/drivers/ata/pata_hpt37x.c
+++ b/drivers/ata/pata_hpt37x.c
@@ -8,7 +8,7 @@
8 * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> 8 * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org>
9 * Portions Copyright (C) 2001 Sun Microsystems, Inc. 9 * Portions Copyright (C) 2001 Sun Microsystems, Inc.
10 * Portions Copyright (C) 2003 Red Hat Inc 10 * Portions Copyright (C) 2003 Red Hat Inc
11 * Portions Copyright (C) 2005-2007 MontaVista Software, Inc. 11 * Portions Copyright (C) 2005-2009 MontaVista Software, Inc.
12 * 12 *
13 * TODO 13 * TODO
14 * Look into engine reset on timeout errors. Should not be required. 14 * Look into engine reset on timeout errors. Should not be required.
@@ -24,7 +24,7 @@
24#include <linux/libata.h> 24#include <linux/libata.h>
25 25
26#define DRV_NAME "pata_hpt37x" 26#define DRV_NAME "pata_hpt37x"
27#define DRV_VERSION "0.6.11" 27#define DRV_VERSION "0.6.12"
28 28
29struct hpt_clock { 29struct hpt_clock {
30 u8 xfer_speed; 30 u8 xfer_speed;
@@ -445,23 +445,6 @@ static void hpt370_set_dmamode(struct ata_port *ap, struct ata_device *adev)
445} 445}
446 446
447/** 447/**
448 * hpt370_bmdma_start - DMA engine begin
449 * @qc: ATA command
450 *
451 * The 370 and 370A want us to reset the DMA engine each time we
452 * use it. The 372 and later are fine.
453 */
454
455static void hpt370_bmdma_start(struct ata_queued_cmd *qc)
456{
457 struct ata_port *ap = qc->ap;
458 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
459 pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37);
460 udelay(10);
461 ata_bmdma_start(qc);
462}
463
464/**
465 * hpt370_bmdma_end - DMA engine stop 448 * hpt370_bmdma_end - DMA engine stop
466 * @qc: ATA command 449 * @qc: ATA command
467 * 450 *
@@ -598,7 +581,6 @@ static struct scsi_host_template hpt37x_sht = {
598static struct ata_port_operations hpt370_port_ops = { 581static struct ata_port_operations hpt370_port_ops = {
599 .inherits = &ata_bmdma_port_ops, 582 .inherits = &ata_bmdma_port_ops,
600 583
601 .bmdma_start = hpt370_bmdma_start,
602 .bmdma_stop = hpt370_bmdma_stop, 584 .bmdma_stop = hpt370_bmdma_stop,
603 585
604 .mode_filter = hpt370_filter, 586 .mode_filter = hpt370_filter,
diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
index 3f830f0fe2cc..f72c6c5b820f 100644
--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -108,6 +108,7 @@ struct legacy_controller {
108 struct ata_port_operations *ops; 108 struct ata_port_operations *ops;
109 unsigned int pio_mask; 109 unsigned int pio_mask;
110 unsigned int flags; 110 unsigned int flags;
111 unsigned int pflags;
111 int (*setup)(struct platform_device *, struct legacy_probe *probe, 112 int (*setup)(struct platform_device *, struct legacy_probe *probe,
112 struct legacy_data *data); 113 struct legacy_data *data);
113}; 114};
@@ -284,9 +285,11 @@ static unsigned int pdc_data_xfer_vlb(struct ata_device *dev,
284 unsigned char *buf, unsigned int buflen, int rw) 285 unsigned char *buf, unsigned int buflen, int rw)
285{ 286{
286 int slop = buflen & 3; 287 int slop = buflen & 3;
288 struct ata_port *ap = dev->link->ap;
289
287 /* 32bit I/O capable *and* we need to write a whole number of dwords */ 290 /* 32bit I/O capable *and* we need to write a whole number of dwords */
288 if (ata_id_has_dword_io(dev->id) && (slop == 0 || slop == 3)) { 291 if (ata_id_has_dword_io(dev->id) && (slop == 0 || slop == 3)
289 struct ata_port *ap = dev->link->ap; 292 && (ap->pflags & ATA_PFLAG_PIO32)) {
290 unsigned long flags; 293 unsigned long flags;
291 294
292 local_irq_save(flags); 295 local_irq_save(flags);
@@ -736,7 +739,8 @@ static unsigned int vlb32_data_xfer(struct ata_device *adev, unsigned char *buf,
736 struct ata_port *ap = adev->link->ap; 739 struct ata_port *ap = adev->link->ap;
737 int slop = buflen & 3; 740 int slop = buflen & 3;
738 741
739 if (ata_id_has_dword_io(adev->id) && (slop == 0 || slop == 3)) { 742 if (ata_id_has_dword_io(adev->id) && (slop == 0 || slop == 3)
743 && (ap->pflags & ATA_PFLAG_PIO32)) {
740 if (rw == WRITE) 744 if (rw == WRITE)
741 iowrite32_rep(ap->ioaddr.data_addr, buf, buflen >> 2); 745 iowrite32_rep(ap->ioaddr.data_addr, buf, buflen >> 2);
742 else 746 else
@@ -858,27 +862,30 @@ static struct ata_port_operations winbond_port_ops = {
858 862
859static struct legacy_controller controllers[] = { 863static struct legacy_controller controllers[] = {
860 {"BIOS", &legacy_port_ops, 0x1F, 864 {"BIOS", &legacy_port_ops, 0x1F,
861 ATA_FLAG_NO_IORDY, NULL }, 865 ATA_FLAG_NO_IORDY, 0, NULL },
862 {"Snooping", &simple_port_ops, 0x1F, 866 {"Snooping", &simple_port_ops, 0x1F,
863 0 , NULL }, 867 0, 0, NULL },
864 {"PDC20230", &pdc20230_port_ops, 0x7, 868 {"PDC20230", &pdc20230_port_ops, 0x7,
865 ATA_FLAG_NO_IORDY, NULL }, 869 ATA_FLAG_NO_IORDY,
870 ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, NULL },
866 {"HT6560A", &ht6560a_port_ops, 0x07, 871 {"HT6560A", &ht6560a_port_ops, 0x07,
867 ATA_FLAG_NO_IORDY, NULL }, 872 ATA_FLAG_NO_IORDY, 0, NULL },
868 {"HT6560B", &ht6560b_port_ops, 0x1F, 873 {"HT6560B", &ht6560b_port_ops, 0x1F,
869 ATA_FLAG_NO_IORDY, NULL }, 874 ATA_FLAG_NO_IORDY, 0, NULL },
870 {"OPTI82C611A", &opti82c611a_port_ops, 0x0F, 875 {"OPTI82C611A", &opti82c611a_port_ops, 0x0F,
871 0 , NULL }, 876 0, 0, NULL },
872 {"OPTI82C46X", &opti82c46x_port_ops, 0x0F, 877 {"OPTI82C46X", &opti82c46x_port_ops, 0x0F,
873 0 , NULL }, 878 0, 0, NULL },
874 {"QDI6500", &qdi6500_port_ops, 0x07, 879 {"QDI6500", &qdi6500_port_ops, 0x07,
875 ATA_FLAG_NO_IORDY, qdi_port }, 880 ATA_FLAG_NO_IORDY,
881 ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
876 {"QDI6580", &qdi6580_port_ops, 0x1F, 882 {"QDI6580", &qdi6580_port_ops, 0x1F,
877 0 , qdi_port }, 883 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
878 {"QDI6580DP", &qdi6580dp_port_ops, 0x1F, 884 {"QDI6580DP", &qdi6580dp_port_ops, 0x1F,
879 0 , qdi_port }, 885 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE, qdi_port },
880 {"W83759A", &winbond_port_ops, 0x1F, 886 {"W83759A", &winbond_port_ops, 0x1F,
881 0 , winbond_port } 887 0, ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE,
888 winbond_port }
882}; 889};
883 890
884/** 891/**
@@ -1008,6 +1015,7 @@ static __init int legacy_init_one(struct legacy_probe *probe)
1008 ap->ops = ops; 1015 ap->ops = ops;
1009 ap->pio_mask = pio_modes; 1016 ap->pio_mask = pio_modes;
1010 ap->flags |= ATA_FLAG_SLAVE_POSS | iordy; 1017 ap->flags |= ATA_FLAG_SLAVE_POSS | iordy;
1018 ap->pflags |= controller->pflags;
1011 ap->ioaddr.cmd_addr = io_addr; 1019 ap->ioaddr.cmd_addr = io_addr;
1012 ap->ioaddr.altstatus_addr = ctrl_addr; 1020 ap->ioaddr.altstatus_addr = ctrl_addr;
1013 ap->ioaddr.ctl_addr = ctrl_addr; 1021 ap->ioaddr.ctl_addr = ctrl_addr;
@@ -1032,6 +1040,7 @@ static __init int legacy_init_one(struct legacy_probe *probe)
1032 return 0; 1040 return 0;
1033 } 1041 }
1034 } 1042 }
1043 ata_host_detach(host);
1035fail: 1044fail:
1036 platform_device_unregister(pdev); 1045 platform_device_unregister(pdev);
1037 return ret; 1046 return ret;
diff --git a/drivers/ata/pata_ninja32.c b/drivers/ata/pata_ninja32.c
index 0fb6b1b1e634..dd53a66b19e3 100644
--- a/drivers/ata/pata_ninja32.c
+++ b/drivers/ata/pata_ninja32.c
@@ -44,7 +44,7 @@
44#include <linux/libata.h> 44#include <linux/libata.h>
45 45
46#define DRV_NAME "pata_ninja32" 46#define DRV_NAME "pata_ninja32"
47#define DRV_VERSION "0.1.3" 47#define DRV_VERSION "0.1.5"
48 48
49 49
50/** 50/**
@@ -86,6 +86,7 @@ static struct ata_port_operations ninja32_port_ops = {
86 .sff_dev_select = ninja32_dev_select, 86 .sff_dev_select = ninja32_dev_select,
87 .cable_detect = ata_cable_40wire, 87 .cable_detect = ata_cable_40wire,
88 .set_piomode = ninja32_set_piomode, 88 .set_piomode = ninja32_set_piomode,
89 .sff_data_xfer = ata_sff_data_xfer32
89}; 90};
90 91
91static void ninja32_program(void __iomem *base) 92static void ninja32_program(void __iomem *base)
@@ -144,6 +145,7 @@ static int ninja32_init_one(struct pci_dev *dev, const struct pci_device_id *id)
144 ap->ioaddr.altstatus_addr = base + 0x1E; 145 ap->ioaddr.altstatus_addr = base + 0x1E;
145 ap->ioaddr.bmdma_addr = base; 146 ap->ioaddr.bmdma_addr = base;
146 ata_sff_std_ports(&ap->ioaddr); 147 ata_sff_std_ports(&ap->ioaddr);
148 ap->pflags = ATA_PFLAG_PIO32 | ATA_PFLAG_PIO32CHANGE;
147 149
148 ninja32_program(base); 150 ninja32_program(base);
149 /* FIXME: Should we disable them at remove ? */ 151 /* FIXME: Should we disable them at remove ? */
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index 5fedb3d4032b..2f3c9bed63d9 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -2,7 +2,7 @@
2 * pata_pdc202xx_old.c - Promise PDC202xx PATA for new ATA layer 2 * pata_pdc202xx_old.c - Promise PDC202xx PATA for new ATA layer
3 * (C) 2005 Red Hat Inc 3 * (C) 2005 Red Hat Inc
4 * Alan Cox <alan@lxorguk.ukuu.org.uk> 4 * Alan Cox <alan@lxorguk.ukuu.org.uk>
5 * (C) 2007 Bartlomiej Zolnierkiewicz 5 * (C) 2007,2009 Bartlomiej Zolnierkiewicz
6 * 6 *
7 * Based in part on linux/drivers/ide/pci/pdc202xx_old.c 7 * Based in part on linux/drivers/ide/pci/pdc202xx_old.c
8 * 8 *
@@ -158,7 +158,7 @@ static void pdc2026x_bmdma_start(struct ata_queued_cmd *qc)
158 u32 len; 158 u32 len;
159 159
160 /* Check we keep host level locking here */ 160 /* Check we keep host level locking here */
161 if (adev->dma_mode >= XFER_UDMA_2) 161 if (adev->dma_mode > XFER_UDMA_2)
162 iowrite8(ioread8(clock) | sel66, clock); 162 iowrite8(ioread8(clock) | sel66, clock);
163 else 163 else
164 iowrite8(ioread8(clock) & ~sel66, clock); 164 iowrite8(ioread8(clock) & ~sel66, clock);
@@ -212,7 +212,7 @@ static void pdc2026x_bmdma_stop(struct ata_queued_cmd *qc)
212 iowrite8(ioread8(clock) & ~sel66, clock); 212 iowrite8(ioread8(clock) & ~sel66, clock);
213 } 213 }
214 /* Flip back to 33Mhz for PIO */ 214 /* Flip back to 33Mhz for PIO */
215 if (adev->dma_mode >= XFER_UDMA_2) 215 if (adev->dma_mode > XFER_UDMA_2)
216 iowrite8(ioread8(clock) & ~sel66, clock); 216 iowrite8(ioread8(clock) & ~sel66, clock);
217 ata_bmdma_stop(qc); 217 ata_bmdma_stop(qc);
218 pdc202xx_set_piomode(ap, adev); 218 pdc202xx_set_piomode(ap, adev);
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index b08e6e0f82b6..45657cacec43 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -62,7 +62,7 @@
62#include <linux/dmi.h> 62#include <linux/dmi.h>
63 63
64#define DRV_NAME "pata_via" 64#define DRV_NAME "pata_via"
65#define DRV_VERSION "0.3.3" 65#define DRV_VERSION "0.3.4"
66 66
67/* 67/*
68 * The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx 68 * The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx
@@ -136,6 +136,9 @@ static const struct via_isa_bridge {
136 { NULL } 136 { NULL }
137}; 137};
138 138
139struct via_port {
140 u8 cached_device;
141};
139 142
140/* 143/*
141 * Cable special cases 144 * Cable special cases
@@ -346,14 +349,70 @@ static void via_set_dmamode(struct ata_port *ap, struct ata_device *adev)
346 */ 349 */
347static void via_tf_load(struct ata_port *ap, const struct ata_taskfile *tf) 350static void via_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
348{ 351{
349 struct ata_taskfile tmp_tf; 352 struct ata_ioports *ioaddr = &ap->ioaddr;
353 struct via_port *vp = ap->private_data;
354 unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
355 int newctl = 0;
356
357 if (tf->ctl != ap->last_ctl) {
358 iowrite8(tf->ctl, ioaddr->ctl_addr);
359 ap->last_ctl = tf->ctl;
360 ata_wait_idle(ap);
361 newctl = 1;
362 }
363
364 if (tf->flags & ATA_TFLAG_DEVICE) {
365 iowrite8(tf->device, ioaddr->device_addr);
366 vp->cached_device = tf->device;
367 } else if (newctl)
368 iowrite8(vp->cached_device, ioaddr->device_addr);
369
370 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
371 WARN_ON_ONCE(!ioaddr->ctl_addr);
372 iowrite8(tf->hob_feature, ioaddr->feature_addr);
373 iowrite8(tf->hob_nsect, ioaddr->nsect_addr);
374 iowrite8(tf->hob_lbal, ioaddr->lbal_addr);
375 iowrite8(tf->hob_lbam, ioaddr->lbam_addr);
376 iowrite8(tf->hob_lbah, ioaddr->lbah_addr);
377 VPRINTK("hob: feat 0x%X nsect 0x%X, lba 0x%X 0x%X 0x%X\n",
378 tf->hob_feature,
379 tf->hob_nsect,
380 tf->hob_lbal,
381 tf->hob_lbam,
382 tf->hob_lbah);
383 }
350 384
351 if (ap->ctl != ap->last_ctl && !(tf->flags & ATA_TFLAG_DEVICE)) { 385 if (is_addr) {
352 tmp_tf = *tf; 386 iowrite8(tf->feature, ioaddr->feature_addr);
353 tmp_tf.flags |= ATA_TFLAG_DEVICE; 387 iowrite8(tf->nsect, ioaddr->nsect_addr);
354 tf = &tmp_tf; 388 iowrite8(tf->lbal, ioaddr->lbal_addr);
389 iowrite8(tf->lbam, ioaddr->lbam_addr);
390 iowrite8(tf->lbah, ioaddr->lbah_addr);
391 VPRINTK("feat 0x%X nsect 0x%X lba 0x%X 0x%X 0x%X\n",
392 tf->feature,
393 tf->nsect,
394 tf->lbal,
395 tf->lbam,
396 tf->lbah);
355 } 397 }
356 ata_sff_tf_load(ap, tf); 398
399 ata_wait_idle(ap);
400}
401
402static int via_port_start(struct ata_port *ap)
403{
404 struct via_port *vp;
405 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
406
407 int ret = ata_sff_port_start(ap);
408 if (ret < 0)
409 return ret;
410
411 vp = devm_kzalloc(&pdev->dev, sizeof(struct via_port), GFP_KERNEL);
412 if (vp == NULL)
413 return -ENOMEM;
414 ap->private_data = vp;
415 return 0;
357} 416}
358 417
359static struct scsi_host_template via_sht = { 418static struct scsi_host_template via_sht = {
@@ -367,6 +426,7 @@ static struct ata_port_operations via_port_ops = {
367 .set_dmamode = via_set_dmamode, 426 .set_dmamode = via_set_dmamode,
368 .prereset = via_pre_reset, 427 .prereset = via_pre_reset,
369 .sff_tf_load = via_tf_load, 428 .sff_tf_load = via_tf_load,
429 .port_start = via_port_start,
370}; 430};
371 431
372static struct ata_port_operations via_port_ops_noirq = { 432static struct ata_port_operations via_port_ops_noirq = {
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index c2e90e1fece0..36b8629203be 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -205,6 +205,7 @@ struct cmdhdr_tbl_entry {
205 * Description information bitdefs 205 * Description information bitdefs
206 */ 206 */
207enum { 207enum {
208 CMD_DESC_RES = (1 << 11),
208 VENDOR_SPECIFIC_BIST = (1 << 10), 209 VENDOR_SPECIFIC_BIST = (1 << 10),
209 CMD_DESC_SNOOP_ENABLE = (1 << 9), 210 CMD_DESC_SNOOP_ENABLE = (1 << 9),
210 FPDMA_QUEUED_CMD = (1 << 8), 211 FPDMA_QUEUED_CMD = (1 << 8),
@@ -332,13 +333,14 @@ static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
332 dma_addr_t sg_addr = sg_dma_address(sg); 333 dma_addr_t sg_addr = sg_dma_address(sg);
333 u32 sg_len = sg_dma_len(sg); 334 u32 sg_len = sg_dma_len(sg);
334 335
335 VPRINTK("SATA FSL : fill_sg, sg_addr = 0x%x, sg_len = %d\n", 336 VPRINTK("SATA FSL : fill_sg, sg_addr = 0x%llx, sg_len = %d\n",
336 sg_addr, sg_len); 337 (unsigned long long)sg_addr, sg_len);
337 338
338 /* warn if each s/g element is not dword aligned */ 339 /* warn if each s/g element is not dword aligned */
339 if (sg_addr & 0x03) 340 if (sg_addr & 0x03)
340 ata_port_printk(qc->ap, KERN_ERR, 341 ata_port_printk(qc->ap, KERN_ERR,
341 "s/g addr unaligned : 0x%x\n", sg_addr); 342 "s/g addr unaligned : 0x%llx\n",
343 (unsigned long long)sg_addr);
342 if (sg_len & 0x03) 344 if (sg_len & 0x03)
343 ata_port_printk(qc->ap, KERN_ERR, 345 ata_port_printk(qc->ap, KERN_ERR,
344 "s/g len unaligned : 0x%x\n", sg_len); 346 "s/g len unaligned : 0x%x\n", sg_len);
@@ -387,7 +389,7 @@ static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
387 void __iomem *hcr_base = host_priv->hcr_base; 389 void __iomem *hcr_base = host_priv->hcr_base;
388 unsigned int tag = sata_fsl_tag(qc->tag, hcr_base); 390 unsigned int tag = sata_fsl_tag(qc->tag, hcr_base);
389 struct command_desc *cd; 391 struct command_desc *cd;
390 u32 desc_info = CMD_DESC_SNOOP_ENABLE; 392 u32 desc_info = CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE;
391 u32 num_prde = 0; 393 u32 num_prde = 0;
392 u32 ttl_dwords = 0; 394 u32 ttl_dwords = 0;
393 dma_addr_t cd_paddr; 395 dma_addr_t cd_paddr;
@@ -840,7 +842,7 @@ issue_srst:
840 842
841 /* device reset/SRST is a control register update FIS, uses tag0 */ 843 /* device reset/SRST is a control register update FIS, uses tag0 */
842 sata_fsl_setup_cmd_hdr_entry(pp, 0, 844 sata_fsl_setup_cmd_hdr_entry(pp, 0,
843 SRST_CMD | CMD_DESC_SNOOP_ENABLE, 0, 0, 5); 845 SRST_CMD | CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE, 0, 0, 5);
844 846
845 tf.ctl |= ATA_SRST; /* setup SRST bit in taskfile control reg */ 847 tf.ctl |= ATA_SRST; /* setup SRST bit in taskfile control reg */
846 ata_tf_to_fis(&tf, pmp, 0, cfis); 848 ata_tf_to_fis(&tf, pmp, 0, cfis);
@@ -886,7 +888,8 @@ issue_srst:
886 * using ATA signature D2H register FIS to the host controller. 888 * using ATA signature D2H register FIS to the host controller.
887 */ 889 */
888 890
889 sata_fsl_setup_cmd_hdr_entry(pp, 0, CMD_DESC_SNOOP_ENABLE, 0, 0, 5); 891 sata_fsl_setup_cmd_hdr_entry(pp, 0, CMD_DESC_RES | CMD_DESC_SNOOP_ENABLE,
892 0, 0, 5);
890 893
891 tf.ctl &= ~ATA_SRST; /* 2nd H2D Ctl. register FIS */ 894 tf.ctl &= ~ATA_SRST; /* 2nd H2D Ctl. register FIS */
892 ata_tf_to_fis(&tf, pmp, 0, cfis); 895 ata_tf_to_fis(&tf, pmp, 0, cfis);
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 37ae5dc1070c..23714aefb825 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -293,6 +293,10 @@ enum {
293 FISCFG_WAIT_DEV_ERR = (1 << 8), /* wait for host on DevErr */ 293 FISCFG_WAIT_DEV_ERR = (1 << 8), /* wait for host on DevErr */
294 FISCFG_SINGLE_SYNC = (1 << 16), /* SYNC on DMA activation */ 294 FISCFG_SINGLE_SYNC = (1 << 16), /* SYNC on DMA activation */
295 295
296 PHY_MODE9_GEN2 = 0x398,
297 PHY_MODE9_GEN1 = 0x39c,
298 PHYCFG_OFS = 0x3a0, /* only in 65n devices */
299
296 MV5_PHY_MODE = 0x74, 300 MV5_PHY_MODE = 0x74,
297 MV5_LTMODE = 0x30, 301 MV5_LTMODE = 0x30,
298 MV5_PHY_CTL = 0x0C, 302 MV5_PHY_CTL = 0x0C,
@@ -609,6 +613,8 @@ static int mv_soc_reset_hc(struct mv_host_priv *hpriv,
609static void mv_soc_reset_flash(struct mv_host_priv *hpriv, 613static void mv_soc_reset_flash(struct mv_host_priv *hpriv,
610 void __iomem *mmio); 614 void __iomem *mmio);
611static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio); 615static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio);
616static void mv_soc_65n_phy_errata(struct mv_host_priv *hpriv,
617 void __iomem *mmio, unsigned int port);
612static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio); 618static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio);
613static void mv_reset_channel(struct mv_host_priv *hpriv, void __iomem *mmio, 619static void mv_reset_channel(struct mv_host_priv *hpriv, void __iomem *mmio,
614 unsigned int port_no); 620 unsigned int port_no);
@@ -807,6 +813,14 @@ static const struct mv_hw_ops mv_soc_ops = {
807 .reset_bus = mv_soc_reset_bus, 813 .reset_bus = mv_soc_reset_bus,
808}; 814};
809 815
816static const struct mv_hw_ops mv_soc_65n_ops = {
817 .phy_errata = mv_soc_65n_phy_errata,
818 .enable_leds = mv_soc_enable_leds,
819 .reset_hc = mv_soc_reset_hc,
820 .reset_flash = mv_soc_reset_flash,
821 .reset_bus = mv_soc_reset_bus,
822};
823
810/* 824/*
811 * Functions 825 * Functions
812 */ 826 */
@@ -1881,6 +1895,39 @@ static u8 mv_bmdma_status(struct ata_port *ap)
1881 return status; 1895 return status;
1882} 1896}
1883 1897
1898static void mv_rw_multi_errata_sata24(struct ata_queued_cmd *qc)
1899{
1900 struct ata_taskfile *tf = &qc->tf;
1901 /*
1902 * Workaround for 88SX60x1 FEr SATA#24.
1903 *
1904 * Chip may corrupt WRITEs if multi_count >= 4kB.
1905 * Note that READs are unaffected.
1906 *
1907 * It's not clear if this errata really means "4K bytes",
1908 * or if it always happens for multi_count > 7
1909 * regardless of device sector_size.
1910 *
1911 * So, for safety, any write with multi_count > 7
1912 * gets converted here into a regular PIO write instead:
1913 */
1914 if ((tf->flags & ATA_TFLAG_WRITE) && is_multi_taskfile(tf)) {
1915 if (qc->dev->multi_count > 7) {
1916 switch (tf->command) {
1917 case ATA_CMD_WRITE_MULTI:
1918 tf->command = ATA_CMD_PIO_WRITE;
1919 break;
1920 case ATA_CMD_WRITE_MULTI_FUA_EXT:
1921 tf->flags &= ~ATA_TFLAG_FUA; /* ugh */
1922 /* fall through */
1923 case ATA_CMD_WRITE_MULTI_EXT:
1924 tf->command = ATA_CMD_PIO_WRITE_EXT;
1925 break;
1926 }
1927 }
1928 }
1929}
1930
1884/** 1931/**
1885 * mv_qc_prep - Host specific command preparation. 1932 * mv_qc_prep - Host specific command preparation.
1886 * @qc: queued command to prepare 1933 * @qc: queued command to prepare
@@ -1898,17 +1945,24 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
1898 struct ata_port *ap = qc->ap; 1945 struct ata_port *ap = qc->ap;
1899 struct mv_port_priv *pp = ap->private_data; 1946 struct mv_port_priv *pp = ap->private_data;
1900 __le16 *cw; 1947 __le16 *cw;
1901 struct ata_taskfile *tf; 1948 struct ata_taskfile *tf = &qc->tf;
1902 u16 flags = 0; 1949 u16 flags = 0;
1903 unsigned in_index; 1950 unsigned in_index;
1904 1951
1905 if ((qc->tf.protocol != ATA_PROT_DMA) && 1952 switch (tf->protocol) {
1906 (qc->tf.protocol != ATA_PROT_NCQ)) 1953 case ATA_PROT_DMA:
1954 case ATA_PROT_NCQ:
1955 break; /* continue below */
1956 case ATA_PROT_PIO:
1957 mv_rw_multi_errata_sata24(qc);
1958 return;
1959 default:
1907 return; 1960 return;
1961 }
1908 1962
1909 /* Fill in command request block 1963 /* Fill in command request block
1910 */ 1964 */
1911 if (!(qc->tf.flags & ATA_TFLAG_WRITE)) 1965 if (!(tf->flags & ATA_TFLAG_WRITE))
1912 flags |= CRQB_FLAG_READ; 1966 flags |= CRQB_FLAG_READ;
1913 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag); 1967 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag);
1914 flags |= qc->tag << CRQB_TAG_SHIFT; 1968 flags |= qc->tag << CRQB_TAG_SHIFT;
@@ -1924,7 +1978,6 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
1924 pp->crqb[in_index].ctrl_flags = cpu_to_le16(flags); 1978 pp->crqb[in_index].ctrl_flags = cpu_to_le16(flags);
1925 1979
1926 cw = &pp->crqb[in_index].ata_cmd[0]; 1980 cw = &pp->crqb[in_index].ata_cmd[0];
1927 tf = &qc->tf;
1928 1981
1929 /* Sadly, the CRQB cannot accomodate all registers--there are 1982 /* Sadly, the CRQB cannot accomodate all registers--there are
1930 * only 11 bytes...so we must pick and choose required 1983 * only 11 bytes...so we must pick and choose required
@@ -1990,16 +2043,16 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
1990 struct ata_port *ap = qc->ap; 2043 struct ata_port *ap = qc->ap;
1991 struct mv_port_priv *pp = ap->private_data; 2044 struct mv_port_priv *pp = ap->private_data;
1992 struct mv_crqb_iie *crqb; 2045 struct mv_crqb_iie *crqb;
1993 struct ata_taskfile *tf; 2046 struct ata_taskfile *tf = &qc->tf;
1994 unsigned in_index; 2047 unsigned in_index;
1995 u32 flags = 0; 2048 u32 flags = 0;
1996 2049
1997 if ((qc->tf.protocol != ATA_PROT_DMA) && 2050 if ((tf->protocol != ATA_PROT_DMA) &&
1998 (qc->tf.protocol != ATA_PROT_NCQ)) 2051 (tf->protocol != ATA_PROT_NCQ))
1999 return; 2052 return;
2000 2053
2001 /* Fill in Gen IIE command request block */ 2054 /* Fill in Gen IIE command request block */
2002 if (!(qc->tf.flags & ATA_TFLAG_WRITE)) 2055 if (!(tf->flags & ATA_TFLAG_WRITE))
2003 flags |= CRQB_FLAG_READ; 2056 flags |= CRQB_FLAG_READ;
2004 2057
2005 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag); 2058 WARN_ON(MV_MAX_Q_DEPTH <= qc->tag);
@@ -2015,7 +2068,6 @@ static void mv_qc_prep_iie(struct ata_queued_cmd *qc)
2015 crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->tag] >> 16) >> 16); 2068 crqb->addr_hi = cpu_to_le32((pp->sg_tbl_dma[qc->tag] >> 16) >> 16);
2016 crqb->flags = cpu_to_le32(flags); 2069 crqb->flags = cpu_to_le32(flags);
2017 2070
2018 tf = &qc->tf;
2019 crqb->ata_cmd[0] = cpu_to_le32( 2071 crqb->ata_cmd[0] = cpu_to_le32(
2020 (tf->command << 16) | 2072 (tf->command << 16) |
2021 (tf->feature << 24) 2073 (tf->feature << 24)
@@ -3359,6 +3411,53 @@ static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio)
3359 return; 3411 return;
3360} 3412}
3361 3413
3414static void mv_soc_65n_phy_errata(struct mv_host_priv *hpriv,
3415 void __iomem *mmio, unsigned int port)
3416{
3417 void __iomem *port_mmio = mv_port_base(mmio, port);
3418 u32 reg;
3419
3420 reg = readl(port_mmio + PHY_MODE3);
3421 reg &= ~(0x3 << 27); /* SELMUPF (bits 28:27) to 1 */
3422 reg |= (0x1 << 27);
3423 reg &= ~(0x3 << 29); /* SELMUPI (bits 30:29) to 1 */
3424 reg |= (0x1 << 29);
3425 writel(reg, port_mmio + PHY_MODE3);
3426
3427 reg = readl(port_mmio + PHY_MODE4);
3428 reg &= ~0x1; /* SATU_OD8 (bit 0) to 0, reserved bit 16 must be set */
3429 reg |= (0x1 << 16);
3430 writel(reg, port_mmio + PHY_MODE4);
3431
3432 reg = readl(port_mmio + PHY_MODE9_GEN2);
3433 reg &= ~0xf; /* TXAMP[3:0] (bits 3:0) to 8 */
3434 reg |= 0x8;
3435 reg &= ~(0x1 << 14); /* TXAMP[4] (bit 14) to 0 */
3436 writel(reg, port_mmio + PHY_MODE9_GEN2);
3437
3438 reg = readl(port_mmio + PHY_MODE9_GEN1);
3439 reg &= ~0xf; /* TXAMP[3:0] (bits 3:0) to 8 */
3440 reg |= 0x8;
3441 reg &= ~(0x1 << 14); /* TXAMP[4] (bit 14) to 0 */
3442 writel(reg, port_mmio + PHY_MODE9_GEN1);
3443}
3444
3445/**
3446 * soc_is_65 - check if the soc is 65 nano device
3447 *
3448 * Detect the type of the SoC, this is done by reading the PHYCFG_OFS
3449 * register, this register should contain non-zero value and it exists only
3450 * in the 65 nano devices, when reading it from older devices we get 0.
3451 */
3452static bool soc_is_65n(struct mv_host_priv *hpriv)
3453{
3454 void __iomem *port0_mmio = mv_port_base(hpriv->base, 0);
3455
3456 if (readl(port0_mmio + PHYCFG_OFS))
3457 return true;
3458 return false;
3459}
3460
3362static void mv_setup_ifcfg(void __iomem *port_mmio, int want_gen2i) 3461static void mv_setup_ifcfg(void __iomem *port_mmio, int want_gen2i)
3363{ 3462{
3364 u32 ifcfg = readl(port_mmio + SATA_IFCFG); 3463 u32 ifcfg = readl(port_mmio + SATA_IFCFG);
@@ -3699,7 +3798,10 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
3699 } 3798 }
3700 break; 3799 break;
3701 case chip_soc: 3800 case chip_soc:
3702 hpriv->ops = &mv_soc_ops; 3801 if (soc_is_65n(hpriv))
3802 hpriv->ops = &mv_soc_65n_ops;
3803 else
3804 hpriv->ops = &mv_soc_ops;
3703 hp_flags |= MV_HP_FLAG_SOC | MV_HP_GEN_IIE | 3805 hp_flags |= MV_HP_FLAG_SOC | MV_HP_GEN_IIE |
3704 MV_HP_ERRATA_60X1C0; 3806 MV_HP_ERRATA_60X1C0;
3705 break; 3807 break;
@@ -3762,7 +3864,8 @@ static int mv_init_host(struct ata_host *host, unsigned int board_idx)
3762 n_hc = mv_get_hc_count(host->ports[0]->flags); 3864 n_hc = mv_get_hc_count(host->ports[0]->flags);
3763 3865
3764 for (port = 0; port < host->n_ports; port++) 3866 for (port = 0; port < host->n_ports; port++)
3765 hpriv->ops->read_preamp(hpriv, port, mmio); 3867 if (hpriv->ops->read_preamp)
3868 hpriv->ops->read_preamp(hpriv, port, mmio);
3766 3869
3767 rc = hpriv->ops->reset_hc(hpriv, mmio, n_hc); 3870 rc = hpriv->ops->reset_hc(hpriv, mmio, n_hc);
3768 if (rc) 3871 if (rc)
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index dce3dccced3f..eb05a3c82a9e 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -213,8 +213,9 @@ struct pdc_host_priv {
213 213
214 214
215static int pdc_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent); 215static int pdc_sata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
216static void pdc_eng_timeout(struct ata_port *ap); 216static void pdc_error_handler(struct ata_port *ap);
217static void pdc_20621_phy_reset(struct ata_port *ap); 217static void pdc_freeze(struct ata_port *ap);
218static void pdc_thaw(struct ata_port *ap);
218static int pdc_port_start(struct ata_port *ap); 219static int pdc_port_start(struct ata_port *ap);
219static void pdc20621_qc_prep(struct ata_queued_cmd *qc); 220static void pdc20621_qc_prep(struct ata_queued_cmd *qc);
220static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf); 221static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf);
@@ -233,6 +234,10 @@ static void pdc20621_put_to_dimm(struct ata_host *host,
233 void *psource, u32 offset, u32 size); 234 void *psource, u32 offset, u32 size);
234static void pdc20621_irq_clear(struct ata_port *ap); 235static void pdc20621_irq_clear(struct ata_port *ap);
235static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc); 236static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc);
237static int pdc_softreset(struct ata_link *link, unsigned int *class,
238 unsigned long deadline);
239static void pdc_post_internal_cmd(struct ata_queued_cmd *qc);
240static int pdc_check_atapi_dma(struct ata_queued_cmd *qc);
236 241
237 242
238static struct scsi_host_template pdc_sata_sht = { 243static struct scsi_host_template pdc_sata_sht = {
@@ -243,20 +248,24 @@ static struct scsi_host_template pdc_sata_sht = {
243 248
244/* TODO: inherit from base port_ops after converting to new EH */ 249/* TODO: inherit from base port_ops after converting to new EH */
245static struct ata_port_operations pdc_20621_ops = { 250static struct ata_port_operations pdc_20621_ops = {
246 .sff_tf_load = pdc_tf_load_mmio, 251 .inherits = &ata_sff_port_ops,
247 .sff_tf_read = ata_sff_tf_read, 252
248 .sff_check_status = ata_sff_check_status, 253 .check_atapi_dma = pdc_check_atapi_dma,
249 .sff_exec_command = pdc_exec_command_mmio,
250 .sff_dev_select = ata_sff_dev_select,
251 .phy_reset = pdc_20621_phy_reset,
252 .qc_prep = pdc20621_qc_prep, 254 .qc_prep = pdc20621_qc_prep,
253 .qc_issue = pdc20621_qc_issue, 255 .qc_issue = pdc20621_qc_issue,
254 .qc_fill_rtf = ata_sff_qc_fill_rtf, 256
255 .sff_data_xfer = ata_sff_data_xfer, 257 .freeze = pdc_freeze,
256 .eng_timeout = pdc_eng_timeout, 258 .thaw = pdc_thaw,
257 .sff_irq_clear = pdc20621_irq_clear, 259 .softreset = pdc_softreset,
258 .sff_irq_on = ata_sff_irq_on, 260 .error_handler = pdc_error_handler,
261 .lost_interrupt = ATA_OP_NULL,
262 .post_internal_cmd = pdc_post_internal_cmd,
263
259 .port_start = pdc_port_start, 264 .port_start = pdc_port_start,
265
266 .sff_tf_load = pdc_tf_load_mmio,
267 .sff_exec_command = pdc_exec_command_mmio,
268 .sff_irq_clear = pdc20621_irq_clear,
260}; 269};
261 270
262static const struct ata_port_info pdc_port_info[] = { 271static const struct ata_port_info pdc_port_info[] = {
@@ -310,14 +319,6 @@ static int pdc_port_start(struct ata_port *ap)
310 return 0; 319 return 0;
311} 320}
312 321
313static void pdc_20621_phy_reset(struct ata_port *ap)
314{
315 VPRINTK("ENTER\n");
316 ap->cbl = ATA_CBL_SATA;
317 ata_port_probe(ap);
318 ata_bus_reset(ap);
319}
320
321static inline void pdc20621_ata_sg(struct ata_taskfile *tf, u8 *buf, 322static inline void pdc20621_ata_sg(struct ata_taskfile *tf, u8 *buf,
322 unsigned int portno, 323 unsigned int portno,
323 unsigned int total_len) 324 unsigned int total_len)
@@ -686,8 +687,11 @@ static void pdc20621_packet_start(struct ata_queued_cmd *qc)
686static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc) 687static unsigned int pdc20621_qc_issue(struct ata_queued_cmd *qc)
687{ 688{
688 switch (qc->tf.protocol) { 689 switch (qc->tf.protocol) {
689 case ATA_PROT_DMA:
690 case ATA_PROT_NODATA: 690 case ATA_PROT_NODATA:
691 if (qc->tf.flags & ATA_TFLAG_POLLING)
692 break;
693 /*FALLTHROUGH*/
694 case ATA_PROT_DMA:
691 pdc20621_packet_start(qc); 695 pdc20621_packet_start(qc);
692 return 0; 696 return 0;
693 697
@@ -786,12 +790,7 @@ static inline unsigned int pdc20621_host_intr(struct ata_port *ap,
786 790
787static void pdc20621_irq_clear(struct ata_port *ap) 791static void pdc20621_irq_clear(struct ata_port *ap)
788{ 792{
789 struct ata_host *host = ap->host; 793 ioread8(ap->ioaddr.status_addr);
790 void __iomem *mmio = host->iomap[PDC_MMIO_BAR];
791
792 mmio += PDC_CHIP0_OFS;
793
794 readl(mmio + PDC_20621_SEQMASK);
795} 794}
796 795
797static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance) 796static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance)
@@ -859,46 +858,119 @@ static irqreturn_t pdc20621_interrupt(int irq, void *dev_instance)
859 return IRQ_RETVAL(handled); 858 return IRQ_RETVAL(handled);
860} 859}
861 860
862static void pdc_eng_timeout(struct ata_port *ap) 861static void pdc_freeze(struct ata_port *ap)
863{ 862{
864 u8 drv_stat; 863 void __iomem *mmio = ap->ioaddr.cmd_addr;
865 struct ata_host *host = ap->host; 864 u32 tmp;
866 struct ata_queued_cmd *qc;
867 unsigned long flags;
868 865
869 DPRINTK("ENTER\n"); 866 /* FIXME: if all 4 ATA engines are stopped, also stop HDMA engine */
870 867
871 spin_lock_irqsave(&host->lock, flags); 868 tmp = readl(mmio + PDC_CTLSTAT);
869 tmp |= PDC_MASK_INT;
870 tmp &= ~PDC_DMA_ENABLE;
871 writel(tmp, mmio + PDC_CTLSTAT);
872 readl(mmio + PDC_CTLSTAT); /* flush */
873}
872 874
873 qc = ata_qc_from_tag(ap, ap->link.active_tag); 875static void pdc_thaw(struct ata_port *ap)
876{
877 void __iomem *mmio = ap->ioaddr.cmd_addr;
878 u32 tmp;
874 879
875 switch (qc->tf.protocol) { 880 /* FIXME: start HDMA engine, if zero ATA engines running */
876 case ATA_PROT_DMA:
877 case ATA_PROT_NODATA:
878 ata_port_printk(ap, KERN_ERR, "command timeout\n");
879 qc->err_mask |= __ac_err_mask(ata_wait_idle(ap));
880 break;
881 881
882 default: 882 /* clear IRQ */
883 drv_stat = ata_sff_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000); 883 ioread8(ap->ioaddr.status_addr);
884 884
885 ata_port_printk(ap, KERN_ERR, 885 /* turn IRQ back on */
886 "unknown timeout, cmd 0x%x stat 0x%x\n", 886 tmp = readl(mmio + PDC_CTLSTAT);
887 qc->tf.command, drv_stat); 887 tmp &= ~PDC_MASK_INT;
888 writel(tmp, mmio + PDC_CTLSTAT);
889 readl(mmio + PDC_CTLSTAT); /* flush */
890}
888 891
889 qc->err_mask |= ac_err_mask(drv_stat); 892static void pdc_reset_port(struct ata_port *ap)
890 break; 893{
894 void __iomem *mmio = ap->ioaddr.cmd_addr + PDC_CTLSTAT;
895 unsigned int i;
896 u32 tmp;
897
898 /* FIXME: handle HDMA copy engine */
899
900 for (i = 11; i > 0; i--) {
901 tmp = readl(mmio);
902 if (tmp & PDC_RESET)
903 break;
904
905 udelay(100);
906
907 tmp |= PDC_RESET;
908 writel(tmp, mmio);
891 } 909 }
892 910
893 spin_unlock_irqrestore(&host->lock, flags); 911 tmp &= ~PDC_RESET;
894 ata_eh_qc_complete(qc); 912 writel(tmp, mmio);
895 DPRINTK("EXIT\n"); 913 readl(mmio); /* flush */
914}
915
916static int pdc_softreset(struct ata_link *link, unsigned int *class,
917 unsigned long deadline)
918{
919 pdc_reset_port(link->ap);
920 return ata_sff_softreset(link, class, deadline);
921}
922
923static void pdc_error_handler(struct ata_port *ap)
924{
925 if (!(ap->pflags & ATA_PFLAG_FROZEN))
926 pdc_reset_port(ap);
927
928 ata_std_error_handler(ap);
929}
930
931static void pdc_post_internal_cmd(struct ata_queued_cmd *qc)
932{
933 struct ata_port *ap = qc->ap;
934
935 /* make DMA engine forget about the failed command */
936 if (qc->flags & ATA_QCFLAG_FAILED)
937 pdc_reset_port(ap);
938}
939
940static int pdc_check_atapi_dma(struct ata_queued_cmd *qc)
941{
942 u8 *scsicmd = qc->scsicmd->cmnd;
943 int pio = 1; /* atapi dma off by default */
944
945 /* Whitelist commands that may use DMA. */
946 switch (scsicmd[0]) {
947 case WRITE_12:
948 case WRITE_10:
949 case WRITE_6:
950 case READ_12:
951 case READ_10:
952 case READ_6:
953 case 0xad: /* READ_DVD_STRUCTURE */
954 case 0xbe: /* READ_CD */
955 pio = 0;
956 }
957 /* -45150 (FFFF4FA2) to -1 (FFFFFFFF) shall use PIO mode */
958 if (scsicmd[0] == WRITE_10) {
959 unsigned int lba =
960 (scsicmd[2] << 24) |
961 (scsicmd[3] << 16) |
962 (scsicmd[4] << 8) |
963 scsicmd[5];
964 if (lba >= 0xFFFF4FA2)
965 pio = 1;
966 }
967 return pio;
896} 968}
897 969
898static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf) 970static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
899{ 971{
900 WARN_ON(tf->protocol == ATA_PROT_DMA || 972 WARN_ON(tf->protocol == ATA_PROT_DMA ||
901 tf->protocol == ATA_PROT_NODATA); 973 tf->protocol == ATAPI_PROT_DMA);
902 ata_sff_tf_load(ap, tf); 974 ata_sff_tf_load(ap, tf);
903} 975}
904 976
@@ -906,7 +978,7 @@ static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
906static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf) 978static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf)
907{ 979{
908 WARN_ON(tf->protocol == ATA_PROT_DMA || 980 WARN_ON(tf->protocol == ATA_PROT_DMA ||
909 tf->protocol == ATA_PROT_NODATA); 981 tf->protocol == ATAPI_PROT_DMA);
910 ata_sff_exec_command(ap, tf); 982 ata_sff_exec_command(ap, tf);
911} 983}
912 984
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index be204308cc1b..9359613addc5 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -1059,7 +1059,7 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
1059 goto out; 1059 goto out;
1060 } 1060 }
1061 1061
1062 err = pci_set_dma_mask(dev, DMA_32BIT_MASK); 1062 err = pci_set_dma_mask(dev, DMA_BIT_MASK(32));
1063 if (err) { 1063 if (err) {
1064 dev_warn(&dev->dev, "Failed to set 32-bit DMA mask\n"); 1064 dev_warn(&dev->dev, "Failed to set 32-bit DMA mask\n");
1065 goto out; 1065 goto out;
diff --git a/drivers/base/base.h b/drivers/base/base.h
index ddc97496db4a..b528145a078f 100644
--- a/drivers/base/base.h
+++ b/drivers/base/base.h
@@ -115,7 +115,7 @@ extern int driver_probe_device(struct device_driver *drv, struct device *dev);
115static inline int driver_match_device(struct device_driver *drv, 115static inline int driver_match_device(struct device_driver *drv,
116 struct device *dev) 116 struct device *dev)
117{ 117{
118 return drv->bus->match && drv->bus->match(dev, drv); 118 return drv->bus->match ? drv->bus->match(dev, drv) : 1;
119} 119}
120 120
121extern void sysdev_shutdown(void); 121extern void sysdev_shutdown(void);
diff --git a/drivers/base/core.c b/drivers/base/core.c
index e73c92d13a23..4aa527b8a913 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -891,7 +891,8 @@ int device_add(struct device *dev)
891 set_dev_node(dev, dev_to_node(parent)); 891 set_dev_node(dev, dev_to_node(parent));
892 892
893 /* first, register with generic layer. */ 893 /* first, register with generic layer. */
894 error = kobject_add(&dev->kobj, dev->kobj.parent, "%s", dev_name(dev)); 894 /* we require the name to be set before, and pass NULL */
895 error = kobject_add(&dev->kobj, dev->kobj.parent, NULL);
895 if (error) 896 if (error)
896 goto Error; 897 goto Error;
897 898
@@ -1142,6 +1143,9 @@ int device_for_each_child(struct device *parent, void *data,
1142 struct device *child; 1143 struct device *child;
1143 int error = 0; 1144 int error = 0;
1144 1145
1146 if (!parent->p)
1147 return 0;
1148
1145 klist_iter_init(&parent->p->klist_children, &i); 1149 klist_iter_init(&parent->p->klist_children, &i);
1146 while ((child = next_device(&i)) && !error) 1150 while ((child = next_device(&i)) && !error)
1147 error = fn(child, data); 1151 error = fn(child, data);
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index f17c3266a0e0..742cbe6b042b 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -179,6 +179,7 @@ void wait_for_device_probe(void)
179 wait_event(probe_waitqueue, atomic_read(&probe_count) == 0); 179 wait_event(probe_waitqueue, atomic_read(&probe_count) == 0);
180 async_synchronize_full(); 180 async_synchronize_full();
181} 181}
182EXPORT_SYMBOL_GPL(wait_for_device_probe);
182 183
183/** 184/**
184 * driver_probe_device - attempt to bind device & driver together 185 * driver_probe_device - attempt to bind device & driver together
diff --git a/drivers/base/iommu.c b/drivers/base/iommu.c
index 9f0e672f4be8..8ad4ffea6920 100644
--- a/drivers/base/iommu.c
+++ b/drivers/base/iommu.c
@@ -18,6 +18,8 @@
18 18
19#include <linux/bug.h> 19#include <linux/bug.h>
20#include <linux/types.h> 20#include <linux/types.h>
21#include <linux/module.h>
22#include <linux/slab.h>
21#include <linux/errno.h> 23#include <linux/errno.h>
22#include <linux/iommu.h> 24#include <linux/iommu.h>
23 25
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index d2198f64ad4e..8b4708e06244 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -217,7 +217,6 @@ int platform_device_add_data(struct platform_device *pdev, const void *data,
217 if (d) { 217 if (d) {
218 memcpy(d, data, size); 218 memcpy(d, data, size);
219 pdev->dev.platform_data = d; 219 pdev->dev.platform_data = d;
220 pdev->platform_data = d;
221 } 220 }
222 return d ? 0 : -ENOMEM; 221 return d ? 0 : -ENOMEM;
223} 222}
@@ -247,21 +246,6 @@ int platform_device_add(struct platform_device *pdev)
247 else 246 else
248 dev_set_name(&pdev->dev, pdev->name); 247 dev_set_name(&pdev->dev, pdev->name);
249 248
250 /* We will remove platform_data field from struct device
251 * if all platform devices pass its platform specific data
252 * from platform_device. The conversion is going to be a
253 * long time, so we allow the two cases coexist to make
254 * this kind of fix more easily*/
255 if (pdev->platform_data && pdev->dev.platform_data) {
256 printk(KERN_ERR
257 "%s: use which platform_data?\n",
258 dev_name(&pdev->dev));
259 } else if (pdev->platform_data) {
260 pdev->dev.platform_data = pdev->platform_data;
261 } else if (pdev->dev.platform_data) {
262 pdev->platform_data = pdev->dev.platform_data;
263 }
264
265 for (i = 0; i < pdev->num_resources; i++) { 249 for (i = 0; i < pdev->num_resources; i++) {
266 struct resource *p, *r = &pdev->resource[i]; 250 struct resource *p, *r = &pdev->resource[i];
267 251
@@ -990,6 +974,8 @@ int __init platform_bus_init(void)
990{ 974{
991 int error; 975 int error;
992 976
977 early_platform_cleanup();
978
993 error = device_register(&platform_bus); 979 error = device_register(&platform_bus);
994 if (error) 980 if (error)
995 return error; 981 return error;
@@ -1020,3 +1006,240 @@ u64 dma_get_required_mask(struct device *dev)
1020} 1006}
1021EXPORT_SYMBOL_GPL(dma_get_required_mask); 1007EXPORT_SYMBOL_GPL(dma_get_required_mask);
1022#endif 1008#endif
1009
1010static __initdata LIST_HEAD(early_platform_driver_list);
1011static __initdata LIST_HEAD(early_platform_device_list);
1012
1013/**
1014 * early_platform_driver_register
1015 * @epdrv: early_platform driver structure
1016 * @buf: string passed from early_param()
1017 */
1018int __init early_platform_driver_register(struct early_platform_driver *epdrv,
1019 char *buf)
1020{
1021 unsigned long index;
1022 int n;
1023
1024 /* Simply add the driver to the end of the global list.
1025 * Drivers will by default be put on the list in compiled-in order.
1026 */
1027 if (!epdrv->list.next) {
1028 INIT_LIST_HEAD(&epdrv->list);
1029 list_add_tail(&epdrv->list, &early_platform_driver_list);
1030 }
1031
1032 /* If the user has specified device then make sure the driver
1033 * gets prioritized. The driver of the last device specified on
1034 * command line will be put first on the list.
1035 */
1036 n = strlen(epdrv->pdrv->driver.name);
1037 if (buf && !strncmp(buf, epdrv->pdrv->driver.name, n)) {
1038 list_move(&epdrv->list, &early_platform_driver_list);
1039
1040 if (!strcmp(buf, epdrv->pdrv->driver.name))
1041 epdrv->requested_id = -1;
1042 else if (buf[n] == '.' && strict_strtoul(&buf[n + 1], 10,
1043 &index) == 0)
1044 epdrv->requested_id = index;
1045 else
1046 epdrv->requested_id = EARLY_PLATFORM_ID_ERROR;
1047 }
1048
1049 return 0;
1050}
1051
1052/**
1053 * early_platform_add_devices - add a numbers of early platform devices
1054 * @devs: array of early platform devices to add
1055 * @num: number of early platform devices in array
1056 */
1057void __init early_platform_add_devices(struct platform_device **devs, int num)
1058{
1059 struct device *dev;
1060 int i;
1061
1062 /* simply add the devices to list */
1063 for (i = 0; i < num; i++) {
1064 dev = &devs[i]->dev;
1065
1066 if (!dev->devres_head.next) {
1067 INIT_LIST_HEAD(&dev->devres_head);
1068 list_add_tail(&dev->devres_head,
1069 &early_platform_device_list);
1070 }
1071 }
1072}
1073
1074/**
1075 * early_platform_driver_register_all
1076 * @class_str: string to identify early platform driver class
1077 */
1078void __init early_platform_driver_register_all(char *class_str)
1079{
1080 /* The "class_str" parameter may or may not be present on the kernel
1081 * command line. If it is present then there may be more than one
1082 * matching parameter.
1083 *
1084 * Since we register our early platform drivers using early_param()
1085 * we need to make sure that they also get registered in the case
1086 * when the parameter is missing from the kernel command line.
1087 *
1088 * We use parse_early_options() to make sure the early_param() gets
1089 * called at least once. The early_param() may be called more than
1090 * once since the name of the preferred device may be specified on
1091 * the kernel command line. early_platform_driver_register() handles
1092 * this case for us.
1093 */
1094 parse_early_options(class_str);
1095}
1096
1097/**
1098 * early_platform_match
1099 * @epdrv: early platform driver structure
1100 * @id: id to match against
1101 */
1102static __init struct platform_device *
1103early_platform_match(struct early_platform_driver *epdrv, int id)
1104{
1105 struct platform_device *pd;
1106
1107 list_for_each_entry(pd, &early_platform_device_list, dev.devres_head)
1108 if (platform_match(&pd->dev, &epdrv->pdrv->driver))
1109 if (pd->id == id)
1110 return pd;
1111
1112 return NULL;
1113}
1114
1115/**
1116 * early_platform_left
1117 * @epdrv: early platform driver structure
1118 * @id: return true if id or above exists
1119 */
1120static __init int early_platform_left(struct early_platform_driver *epdrv,
1121 int id)
1122{
1123 struct platform_device *pd;
1124
1125 list_for_each_entry(pd, &early_platform_device_list, dev.devres_head)
1126 if (platform_match(&pd->dev, &epdrv->pdrv->driver))
1127 if (pd->id >= id)
1128 return 1;
1129
1130 return 0;
1131}
1132
1133/**
1134 * early_platform_driver_probe_id
1135 * @class_str: string to identify early platform driver class
1136 * @id: id to match against
1137 * @nr_probe: number of platform devices to successfully probe before exiting
1138 */
1139static int __init early_platform_driver_probe_id(char *class_str,
1140 int id,
1141 int nr_probe)
1142{
1143 struct early_platform_driver *epdrv;
1144 struct platform_device *match;
1145 int match_id;
1146 int n = 0;
1147 int left = 0;
1148
1149 list_for_each_entry(epdrv, &early_platform_driver_list, list) {
1150 /* only use drivers matching our class_str */
1151 if (strcmp(class_str, epdrv->class_str))
1152 continue;
1153
1154 if (id == -2) {
1155 match_id = epdrv->requested_id;
1156 left = 1;
1157
1158 } else {
1159 match_id = id;
1160 left += early_platform_left(epdrv, id);
1161
1162 /* skip requested id */
1163 switch (epdrv->requested_id) {
1164 case EARLY_PLATFORM_ID_ERROR:
1165 case EARLY_PLATFORM_ID_UNSET:
1166 break;
1167 default:
1168 if (epdrv->requested_id == id)
1169 match_id = EARLY_PLATFORM_ID_UNSET;
1170 }
1171 }
1172
1173 switch (match_id) {
1174 case EARLY_PLATFORM_ID_ERROR:
1175 pr_warning("%s: unable to parse %s parameter\n",
1176 class_str, epdrv->pdrv->driver.name);
1177 /* fall-through */
1178 case EARLY_PLATFORM_ID_UNSET:
1179 match = NULL;
1180 break;
1181 default:
1182 match = early_platform_match(epdrv, match_id);
1183 }
1184
1185 if (match) {
1186 if (epdrv->pdrv->probe(match))
1187 pr_warning("%s: unable to probe %s early.\n",
1188 class_str, match->name);
1189 else
1190 n++;
1191 }
1192
1193 if (n >= nr_probe)
1194 break;
1195 }
1196
1197 if (left)
1198 return n;
1199 else
1200 return -ENODEV;
1201}
1202
1203/**
1204 * early_platform_driver_probe
1205 * @class_str: string to identify early platform driver class
1206 * @nr_probe: number of platform devices to successfully probe before exiting
1207 * @user_only: only probe user specified early platform devices
1208 */
1209int __init early_platform_driver_probe(char *class_str,
1210 int nr_probe,
1211 int user_only)
1212{
1213 int k, n, i;
1214
1215 n = 0;
1216 for (i = -2; n < nr_probe; i++) {
1217 k = early_platform_driver_probe_id(class_str, i, nr_probe - n);
1218
1219 if (k < 0)
1220 break;
1221
1222 n += k;
1223
1224 if (user_only)
1225 break;
1226 }
1227
1228 return n;
1229}
1230
1231/**
1232 * early_platform_cleanup - clean up early platform code
1233 */
1234void __init early_platform_cleanup(void)
1235{
1236 struct platform_device *pd, *pd2;
1237
1238 /* clean up the devres list used to chain devices */
1239 list_for_each_entry_safe(pd, pd2, &early_platform_device_list,
1240 dev.devres_head) {
1241 list_del(&pd->dev.devres_head);
1242 memset(&pd->dev.devres_head, 0, sizeof(pd->dev.devres_head));
1243 }
1244}
1245
diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index bdd4f5f45575..5f7e64ba87e5 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -275,8 +275,10 @@ static int brd_do_bvec(struct brd_device *brd, struct page *page,
275 if (rw == READ) { 275 if (rw == READ) {
276 copy_from_brd(mem + off, brd, sector, len); 276 copy_from_brd(mem + off, brd, sector, len);
277 flush_dcache_page(page); 277 flush_dcache_page(page);
278 } else 278 } else {
279 flush_dcache_page(page);
279 copy_to_brd(brd, mem + off, sector, len); 280 copy_to_brd(brd, mem + off, sector, len);
281 }
280 kunmap_atomic(mem, KM_USER0); 282 kunmap_atomic(mem, KM_USER0);
281 283
282out: 284out:
@@ -436,6 +438,7 @@ static struct brd_device *brd_alloc(int i)
436 if (!brd->brd_queue) 438 if (!brd->brd_queue)
437 goto out_free_dev; 439 goto out_free_dev;
438 blk_queue_make_request(brd->brd_queue, brd_make_request); 440 blk_queue_make_request(brd->brd_queue, brd_make_request);
441 blk_queue_ordered(brd->brd_queue, QUEUE_ORDERED_TAG, NULL);
439 blk_queue_max_sectors(brd->brd_queue, 1024); 442 blk_queue_max_sectors(brd->brd_queue, 1024);
440 blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY); 443 blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY);
441 444
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 0ef6f08aa6ea..4d4d5e0d3fa6 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -3505,7 +3505,7 @@ static __devinit int cciss_message(struct pci_dev *pdev, unsigned char opcode, u
3505 /* The Inbound Post Queue only accepts 32-bit physical addresses for the 3505 /* The Inbound Post Queue only accepts 32-bit physical addresses for the
3506 CCISS commands, so they must be allocated from the lower 4GiB of 3506 CCISS commands, so they must be allocated from the lower 4GiB of
3507 memory. */ 3507 memory. */
3508 err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK); 3508 err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
3509 if (err) { 3509 if (err) {
3510 iounmap(vaddr); 3510 iounmap(vaddr);
3511 return -ENOMEM; 3511 return -ENOMEM;
diff --git a/drivers/block/hd.c b/drivers/block/hd.c
index 3c11f062a18c..baaa9e486e50 100644
--- a/drivers/block/hd.c
+++ b/drivers/block/hd.c
@@ -509,7 +509,6 @@ ok_to_write:
509 if (i > 0) { 509 if (i > 0) {
510 SET_HANDLER(&write_intr); 510 SET_HANDLER(&write_intr);
511 outsw(HD_DATA, req->buffer, 256); 511 outsw(HD_DATA, req->buffer, 256);
512 local_irq_enable();
513 } else { 512 } else {
514#if (HD_DELAY > 0) 513#if (HD_DELAY > 0)
515 last_req = read_timer(); 514 last_req = read_timer();
@@ -541,8 +540,7 @@ static void hd_times_out(unsigned long dummy)
541 if (!CURRENT) 540 if (!CURRENT)
542 return; 541 return;
543 542
544 disable_irq(HD_IRQ); 543 spin_lock_irq(hd_queue->queue_lock);
545 local_irq_enable();
546 reset = 1; 544 reset = 1;
547 name = CURRENT->rq_disk->disk_name; 545 name = CURRENT->rq_disk->disk_name;
548 printk("%s: timeout\n", name); 546 printk("%s: timeout\n", name);
@@ -552,9 +550,8 @@ static void hd_times_out(unsigned long dummy)
552#endif 550#endif
553 end_request(CURRENT, 0); 551 end_request(CURRENT, 0);
554 } 552 }
555 local_irq_disable();
556 hd_request(); 553 hd_request();
557 enable_irq(HD_IRQ); 554 spin_unlock_irq(hd_queue->queue_lock);
558} 555}
559 556
560static int do_special_op(struct hd_i_struct *disk, struct request *req) 557static int do_special_op(struct hd_i_struct *disk, struct request *req)
@@ -592,7 +589,6 @@ static void hd_request(void)
592 return; 589 return;
593repeat: 590repeat:
594 del_timer(&device_timer); 591 del_timer(&device_timer);
595 local_irq_enable();
596 592
597 req = CURRENT; 593 req = CURRENT;
598 if (!req) { 594 if (!req) {
@@ -601,7 +597,6 @@ repeat:
601 } 597 }
602 598
603 if (reset) { 599 if (reset) {
604 local_irq_disable();
605 reset_hd(); 600 reset_hd();
606 return; 601 return;
607 } 602 }
@@ -660,9 +655,7 @@ repeat:
660 655
661static void do_hd_request(struct request_queue *q) 656static void do_hd_request(struct request_queue *q)
662{ 657{
663 disable_irq(HD_IRQ);
664 hd_request(); 658 hd_request();
665 enable_irq(HD_IRQ);
666} 659}
667 660
668static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo) 661static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
@@ -684,12 +677,16 @@ static irqreturn_t hd_interrupt(int irq, void *dev_id)
684{ 677{
685 void (*handler)(void) = do_hd; 678 void (*handler)(void) = do_hd;
686 679
680 spin_lock(hd_queue->queue_lock);
681
687 do_hd = NULL; 682 do_hd = NULL;
688 del_timer(&device_timer); 683 del_timer(&device_timer);
689 if (!handler) 684 if (!handler)
690 handler = unexpected_hd_interrupt; 685 handler = unexpected_hd_interrupt;
691 handler(); 686 handler();
692 local_irq_enable(); 687
688 spin_unlock(hd_queue->queue_lock);
689
693 return IRQ_HANDLED; 690 return IRQ_HANDLED;
694} 691}
695 692
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c
index fb39d9aa3cdc..f3898353d0a8 100644
--- a/drivers/block/mg_disk.c
+++ b/drivers/block/mg_disk.c
@@ -79,7 +79,7 @@ static void mg_dump_status(const char *msg, unsigned int stat,
79 if (host->breq) { 79 if (host->breq) {
80 req = elv_next_request(host->breq); 80 req = elv_next_request(host->breq);
81 if (req) 81 if (req)
82 printk(", sector=%ld", req->sector); 82 printk(", sector=%u", (u32)req->sector);
83 } 83 }
84 84
85 } 85 }
@@ -160,11 +160,16 @@ static irqreturn_t mg_irq(int irq, void *dev_id)
160 struct mg_host *host = dev_id; 160 struct mg_host *host = dev_id;
161 void (*handler)(struct mg_host *) = host->mg_do_intr; 161 void (*handler)(struct mg_host *) = host->mg_do_intr;
162 162
163 host->mg_do_intr = 0; 163 spin_lock(&host->lock);
164
165 host->mg_do_intr = NULL;
164 del_timer(&host->timer); 166 del_timer(&host->timer);
165 if (!handler) 167 if (!handler)
166 handler = mg_unexpected_intr; 168 handler = mg_unexpected_intr;
167 handler(host); 169 handler(host);
170
171 spin_unlock(&host->lock);
172
168 return IRQ_HANDLED; 173 return IRQ_HANDLED;
169} 174}
170 175
@@ -319,7 +324,7 @@ static void mg_read(struct request *req)
319 324
320 remains = req->nr_sectors; 325 remains = req->nr_sectors;
321 326
322 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_RD, 0) != 327 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_RD, NULL) !=
323 MG_ERR_NONE) 328 MG_ERR_NONE)
324 mg_bad_rw_intr(host); 329 mg_bad_rw_intr(host);
325 330
@@ -363,7 +368,7 @@ static void mg_write(struct request *req)
363 368
364 remains = req->nr_sectors; 369 remains = req->nr_sectors;
365 370
366 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_WR, 0) != 371 if (mg_out(host, req->sector, req->nr_sectors, MG_CMD_WR, NULL) !=
367 MG_ERR_NONE) { 372 MG_ERR_NONE) {
368 mg_bad_rw_intr(host); 373 mg_bad_rw_intr(host);
369 return; 374 return;
@@ -521,9 +526,11 @@ void mg_times_out(unsigned long data)
521 char *name; 526 char *name;
522 struct request *req; 527 struct request *req;
523 528
529 spin_lock_irq(&host->lock);
530
524 req = elv_next_request(host->breq); 531 req = elv_next_request(host->breq);
525 if (!req) 532 if (!req)
526 return; 533 goto out_unlock;
527 534
528 host->mg_do_intr = NULL; 535 host->mg_do_intr = NULL;
529 536
@@ -534,6 +541,8 @@ void mg_times_out(unsigned long data)
534 mg_bad_rw_intr(host); 541 mg_bad_rw_intr(host);
535 542
536 mg_request(host->breq); 543 mg_request(host->breq);
544out_unlock:
545 spin_unlock_irq(&host->lock);
537} 546}
538 547
539static void mg_request_poll(struct request_queue *q) 548static void mg_request_poll(struct request_queue *q)
diff --git a/drivers/block/ub.c b/drivers/block/ub.c
index 69b7f8e77596..689cd27ac890 100644
--- a/drivers/block/ub.c
+++ b/drivers/block/ub.c
@@ -1025,6 +1025,7 @@ static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd)
1025{ 1025{
1026 struct urb *urb = &sc->work_urb; 1026 struct urb *urb = &sc->work_urb;
1027 struct bulk_cs_wrap *bcs; 1027 struct bulk_cs_wrap *bcs;
1028 int endp;
1028 int len; 1029 int len;
1029 int rc; 1030 int rc;
1030 1031
@@ -1033,6 +1034,10 @@ static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd)
1033 return; 1034 return;
1034 } 1035 }
1035 1036
1037 endp = usb_pipeendpoint(sc->last_pipe);
1038 if (usb_pipein(sc->last_pipe))
1039 endp |= USB_DIR_IN;
1040
1036 if (cmd->state == UB_CMDST_CLEAR) { 1041 if (cmd->state == UB_CMDST_CLEAR) {
1037 if (urb->status == -EPIPE) { 1042 if (urb->status == -EPIPE) {
1038 /* 1043 /*
@@ -1048,9 +1053,7 @@ static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd)
1048 * We ignore the result for the halt clear. 1053 * We ignore the result for the halt clear.
1049 */ 1054 */
1050 1055
1051 /* reset the endpoint toggle */ 1056 usb_reset_endpoint(sc->dev, endp);
1052 usb_settoggle(sc->dev, usb_pipeendpoint(sc->last_pipe),
1053 usb_pipeout(sc->last_pipe), 0);
1054 1057
1055 ub_state_sense(sc, cmd); 1058 ub_state_sense(sc, cmd);
1056 1059
@@ -1065,9 +1068,7 @@ static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd)
1065 * We ignore the result for the halt clear. 1068 * We ignore the result for the halt clear.
1066 */ 1069 */
1067 1070
1068 /* reset the endpoint toggle */ 1071 usb_reset_endpoint(sc->dev, endp);
1069 usb_settoggle(sc->dev, usb_pipeendpoint(sc->last_pipe),
1070 usb_pipeout(sc->last_pipe), 0);
1071 1072
1072 ub_state_stat(sc, cmd); 1073 ub_state_stat(sc, cmd);
1073 1074
@@ -1082,9 +1083,7 @@ static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd)
1082 * We ignore the result for the halt clear. 1083 * We ignore the result for the halt clear.
1083 */ 1084 */
1084 1085
1085 /* reset the endpoint toggle */ 1086 usb_reset_endpoint(sc->dev, endp);
1086 usb_settoggle(sc->dev, usb_pipeendpoint(sc->last_pipe),
1087 usb_pipeout(sc->last_pipe), 0);
1088 1087
1089 ub_state_stat_counted(sc, cmd); 1088 ub_state_stat_counted(sc, cmd);
1090 1089
@@ -2119,8 +2118,7 @@ static int ub_probe_clear_stall(struct ub_dev *sc, int stalled_pipe)
2119 del_timer_sync(&timer); 2118 del_timer_sync(&timer);
2120 usb_kill_urb(&sc->work_urb); 2119 usb_kill_urb(&sc->work_urb);
2121 2120
2122 /* reset the endpoint toggle */ 2121 usb_reset_endpoint(sc->dev, endp);
2123 usb_settoggle(sc->dev, endp, usb_pipeout(sc->last_pipe), 0);
2124 2122
2125 return 0; 2123 return 0;
2126} 2124}
diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index 9744d59a69f2..858c34dd032d 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -906,6 +906,7 @@ static int __devinit mm_pci_probe(struct pci_dev *dev,
906 goto failed_alloc; 906 goto failed_alloc;
907 907
908 blk_queue_make_request(card->queue, mm_make_request); 908 blk_queue_make_request(card->queue, mm_make_request);
909 card->queue->queue_lock = &card->lock;
909 card->queue->queuedata = card; 910 card->queue->queuedata = card;
910 card->queue->unplug_fn = mm_unplug_device; 911 card->queue->unplug_fn = mm_unplug_device;
911 912
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index 10d6cbd7c05e..2224b762b7fb 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -1226,7 +1226,7 @@ int agp_generic_alloc_pages(struct agp_bridge_data *bridge, struct agp_memory *m
1226 int i, ret = -ENOMEM; 1226 int i, ret = -ENOMEM;
1227 1227
1228 for (i = 0; i < num_pages; i++) { 1228 for (i = 0; i < num_pages; i++) {
1229 page = alloc_page(GFP_KERNEL | GFP_DMA32); 1229 page = alloc_page(GFP_KERNEL | GFP_DMA32 | __GFP_ZERO);
1230 /* agp_free_memory() needs gart address */ 1230 /* agp_free_memory() needs gart address */
1231 if (page == NULL) 1231 if (page == NULL)
1232 goto out; 1232 goto out;
@@ -1257,7 +1257,7 @@ void *agp_generic_alloc_page(struct agp_bridge_data *bridge)
1257{ 1257{
1258 struct page * page; 1258 struct page * page;
1259 1259
1260 page = alloc_page(GFP_KERNEL | GFP_DMA32); 1260 page = alloc_page(GFP_KERNEL | GFP_DMA32 | __GFP_ZERO);
1261 if (page == NULL) 1261 if (page == NULL)
1262 return NULL; 1262 return NULL;
1263 1263
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 9d9490e22e07..3686912427ba 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -2131,6 +2131,8 @@ static const struct intel_driver_description {
2131 { PCI_DEVICE_ID_INTEL_82845G_HB, PCI_DEVICE_ID_INTEL_82845G_IG, 0, "830M", 2131 { PCI_DEVICE_ID_INTEL_82845G_HB, PCI_DEVICE_ID_INTEL_82845G_IG, 0, "830M",
2132 &intel_845_driver, &intel_830_driver }, 2132 &intel_845_driver, &intel_830_driver },
2133 { PCI_DEVICE_ID_INTEL_82850_HB, 0, 0, "i850", &intel_850_driver, NULL }, 2133 { PCI_DEVICE_ID_INTEL_82850_HB, 0, 0, "i850", &intel_850_driver, NULL },
2134 { PCI_DEVICE_ID_INTEL_82854_HB, PCI_DEVICE_ID_INTEL_82854_IG, 0, "854",
2135 &intel_845_driver, &intel_830_driver },
2134 { PCI_DEVICE_ID_INTEL_82855PM_HB, 0, 0, "855PM", &intel_845_driver, NULL }, 2136 { PCI_DEVICE_ID_INTEL_82855PM_HB, 0, 0, "855PM", &intel_845_driver, NULL },
2135 { PCI_DEVICE_ID_INTEL_82855GM_HB, PCI_DEVICE_ID_INTEL_82855GM_IG, 0, "855GM", 2137 { PCI_DEVICE_ID_INTEL_82855GM_HB, PCI_DEVICE_ID_INTEL_82855GM_IG, 0, "855GM",
2136 &intel_845_driver, &intel_830_driver }, 2138 &intel_845_driver, &intel_830_driver },
@@ -2355,6 +2357,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
2355 ID(PCI_DEVICE_ID_INTEL_82845_HB), 2357 ID(PCI_DEVICE_ID_INTEL_82845_HB),
2356 ID(PCI_DEVICE_ID_INTEL_82845G_HB), 2358 ID(PCI_DEVICE_ID_INTEL_82845G_HB),
2357 ID(PCI_DEVICE_ID_INTEL_82850_HB), 2359 ID(PCI_DEVICE_ID_INTEL_82850_HB),
2360 ID(PCI_DEVICE_ID_INTEL_82854_HB),
2358 ID(PCI_DEVICE_ID_INTEL_82855PM_HB), 2361 ID(PCI_DEVICE_ID_INTEL_82855PM_HB),
2359 ID(PCI_DEVICE_ID_INTEL_82855GM_HB), 2362 ID(PCI_DEVICE_ID_INTEL_82855GM_HB),
2360 ID(PCI_DEVICE_ID_INTEL_82860_HB), 2363 ID(PCI_DEVICE_ID_INTEL_82860_HB),
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 50dfa3bc71ce..340ba4f9dc54 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -72,7 +72,7 @@ static u32 hpet_nhpet, hpet_max_freq = HPET_USER_FREQ;
72#ifdef CONFIG_IA64 72#ifdef CONFIG_IA64
73static void __iomem *hpet_mctr; 73static void __iomem *hpet_mctr;
74 74
75static cycle_t read_hpet(void) 75static cycle_t read_hpet(struct clocksource *cs)
76{ 76{
77 return (cycle_t)read_counter((void __iomem *)hpet_mctr); 77 return (cycle_t)read_counter((void __iomem *)hpet_mctr);
78} 78}
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
index d0e563e4fc39..86e83f883139 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -37,9 +37,9 @@ static void random_recv_done(struct virtqueue *vq)
37{ 37{
38 int len; 38 int len;
39 39
40 /* We never get spurious callbacks. */ 40 /* We can get spurious callbacks, e.g. shared IRQs + virtio_pci. */
41 if (!vq->vq_ops->get_buf(vq, &len)) 41 if (!vq->vq_ops->get_buf(vq, &len))
42 BUG(); 42 return;
43 43
44 data_left = len / sizeof(random_data[0]); 44 data_left = len / sizeof(random_data[0]);
45 complete(&have_data); 45 complete(&have_data);
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index e93fc8d22fb2..aa83a0865ec1 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -285,6 +285,11 @@ enum ipmi_stat_indexes {
285 /* Events that were received with the proper format. */ 285 /* Events that were received with the proper format. */
286 IPMI_STAT_events, 286 IPMI_STAT_events,
287 287
288 /* Retransmissions on IPMB that failed. */
289 IPMI_STAT_dropped_rexmit_ipmb_commands,
290
291 /* Retransmissions on LAN that failed. */
292 IPMI_STAT_dropped_rexmit_lan_commands,
288 293
289 /* This *must* remain last, add new values above this. */ 294 /* This *must* remain last, add new values above this. */
290 IPMI_NUM_STATS 295 IPMI_NUM_STATS
@@ -445,6 +450,20 @@ static DEFINE_MUTEX(smi_watchers_mutex);
445#define ipmi_get_stat(intf, stat) \ 450#define ipmi_get_stat(intf, stat) \
446 ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat])) 451 ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
447 452
453static int is_lan_addr(struct ipmi_addr *addr)
454{
455 return addr->addr_type == IPMI_LAN_ADDR_TYPE;
456}
457
458static int is_ipmb_addr(struct ipmi_addr *addr)
459{
460 return addr->addr_type == IPMI_IPMB_ADDR_TYPE;
461}
462
463static int is_ipmb_bcast_addr(struct ipmi_addr *addr)
464{
465 return addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE;
466}
448 467
449static void free_recv_msg_list(struct list_head *q) 468static void free_recv_msg_list(struct list_head *q)
450{ 469{
@@ -601,8 +620,7 @@ ipmi_addr_equal(struct ipmi_addr *addr1, struct ipmi_addr *addr2)
601 return (smi_addr1->lun == smi_addr2->lun); 620 return (smi_addr1->lun == smi_addr2->lun);
602 } 621 }
603 622
604 if ((addr1->addr_type == IPMI_IPMB_ADDR_TYPE) 623 if (is_ipmb_addr(addr1) || is_ipmb_bcast_addr(addr1)) {
605 || (addr1->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
606 struct ipmi_ipmb_addr *ipmb_addr1 624 struct ipmi_ipmb_addr *ipmb_addr1
607 = (struct ipmi_ipmb_addr *) addr1; 625 = (struct ipmi_ipmb_addr *) addr1;
608 struct ipmi_ipmb_addr *ipmb_addr2 626 struct ipmi_ipmb_addr *ipmb_addr2
@@ -612,7 +630,7 @@ ipmi_addr_equal(struct ipmi_addr *addr1, struct ipmi_addr *addr2)
612 && (ipmb_addr1->lun == ipmb_addr2->lun)); 630 && (ipmb_addr1->lun == ipmb_addr2->lun));
613 } 631 }
614 632
615 if (addr1->addr_type == IPMI_LAN_ADDR_TYPE) { 633 if (is_lan_addr(addr1)) {
616 struct ipmi_lan_addr *lan_addr1 634 struct ipmi_lan_addr *lan_addr1
617 = (struct ipmi_lan_addr *) addr1; 635 = (struct ipmi_lan_addr *) addr1;
618 struct ipmi_lan_addr *lan_addr2 636 struct ipmi_lan_addr *lan_addr2
@@ -644,14 +662,13 @@ int ipmi_validate_addr(struct ipmi_addr *addr, int len)
644 || (addr->channel < 0)) 662 || (addr->channel < 0))
645 return -EINVAL; 663 return -EINVAL;
646 664
647 if ((addr->addr_type == IPMI_IPMB_ADDR_TYPE) 665 if (is_ipmb_addr(addr) || is_ipmb_bcast_addr(addr)) {
648 || (addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
649 if (len < sizeof(struct ipmi_ipmb_addr)) 666 if (len < sizeof(struct ipmi_ipmb_addr))
650 return -EINVAL; 667 return -EINVAL;
651 return 0; 668 return 0;
652 } 669 }
653 670
654 if (addr->addr_type == IPMI_LAN_ADDR_TYPE) { 671 if (is_lan_addr(addr)) {
655 if (len < sizeof(struct ipmi_lan_addr)) 672 if (len < sizeof(struct ipmi_lan_addr))
656 return -EINVAL; 673 return -EINVAL;
657 return 0; 674 return 0;
@@ -1503,8 +1520,7 @@ static int i_ipmi_request(ipmi_user_t user,
1503 memcpy(&(smi_msg->data[2]), msg->data, msg->data_len); 1520 memcpy(&(smi_msg->data[2]), msg->data, msg->data_len);
1504 smi_msg->data_size = msg->data_len + 2; 1521 smi_msg->data_size = msg->data_len + 2;
1505 ipmi_inc_stat(intf, sent_local_commands); 1522 ipmi_inc_stat(intf, sent_local_commands);
1506 } else if ((addr->addr_type == IPMI_IPMB_ADDR_TYPE) 1523 } else if (is_ipmb_addr(addr) || is_ipmb_bcast_addr(addr)) {
1507 || (addr->addr_type == IPMI_IPMB_BROADCAST_ADDR_TYPE)) {
1508 struct ipmi_ipmb_addr *ipmb_addr; 1524 struct ipmi_ipmb_addr *ipmb_addr;
1509 unsigned char ipmb_seq; 1525 unsigned char ipmb_seq;
1510 long seqid; 1526 long seqid;
@@ -1583,8 +1599,6 @@ static int i_ipmi_request(ipmi_user_t user,
1583 1599
1584 spin_lock_irqsave(&(intf->seq_lock), flags); 1600 spin_lock_irqsave(&(intf->seq_lock), flags);
1585 1601
1586 ipmi_inc_stat(intf, sent_ipmb_commands);
1587
1588 /* 1602 /*
1589 * Create a sequence number with a 1 second 1603 * Create a sequence number with a 1 second
1590 * timeout and 4 retries. 1604 * timeout and 4 retries.
@@ -1606,6 +1620,8 @@ static int i_ipmi_request(ipmi_user_t user,
1606 goto out_err; 1620 goto out_err;
1607 } 1621 }
1608 1622
1623 ipmi_inc_stat(intf, sent_ipmb_commands);
1624
1609 /* 1625 /*
1610 * Store the sequence number in the message, 1626 * Store the sequence number in the message,
1611 * so that when the send message response 1627 * so that when the send message response
@@ -1635,7 +1651,7 @@ static int i_ipmi_request(ipmi_user_t user,
1635 */ 1651 */
1636 spin_unlock_irqrestore(&(intf->seq_lock), flags); 1652 spin_unlock_irqrestore(&(intf->seq_lock), flags);
1637 } 1653 }
1638 } else if (addr->addr_type == IPMI_LAN_ADDR_TYPE) { 1654 } else if (is_lan_addr(addr)) {
1639 struct ipmi_lan_addr *lan_addr; 1655 struct ipmi_lan_addr *lan_addr;
1640 unsigned char ipmb_seq; 1656 unsigned char ipmb_seq;
1641 long seqid; 1657 long seqid;
@@ -1696,8 +1712,6 @@ static int i_ipmi_request(ipmi_user_t user,
1696 1712
1697 spin_lock_irqsave(&(intf->seq_lock), flags); 1713 spin_lock_irqsave(&(intf->seq_lock), flags);
1698 1714
1699 ipmi_inc_stat(intf, sent_lan_commands);
1700
1701 /* 1715 /*
1702 * Create a sequence number with a 1 second 1716 * Create a sequence number with a 1 second
1703 * timeout and 4 retries. 1717 * timeout and 4 retries.
@@ -1719,6 +1733,8 @@ static int i_ipmi_request(ipmi_user_t user,
1719 goto out_err; 1733 goto out_err;
1720 } 1734 }
1721 1735
1736 ipmi_inc_stat(intf, sent_lan_commands);
1737
1722 /* 1738 /*
1723 * Store the sequence number in the message, 1739 * Store the sequence number in the message,
1724 * so that when the send message response 1740 * so that when the send message response
@@ -1937,6 +1953,10 @@ static int stat_file_read_proc(char *page, char **start, off_t off,
1937 ipmi_get_stat(intf, invalid_events)); 1953 ipmi_get_stat(intf, invalid_events));
1938 out += sprintf(out, "events: %u\n", 1954 out += sprintf(out, "events: %u\n",
1939 ipmi_get_stat(intf, events)); 1955 ipmi_get_stat(intf, events));
1956 out += sprintf(out, "failed rexmit LAN msgs: %u\n",
1957 ipmi_get_stat(intf, dropped_rexmit_lan_commands));
1958 out += sprintf(out, "failed rexmit IPMB msgs: %u\n",
1959 ipmi_get_stat(intf, dropped_rexmit_ipmb_commands));
1940 1960
1941 return (out - ((char *) page)); 1961 return (out - ((char *) page));
1942} 1962}
@@ -3264,6 +3284,114 @@ static int handle_lan_get_msg_cmd(ipmi_smi_t intf,
3264 return rv; 3284 return rv;
3265} 3285}
3266 3286
3287/*
3288 * This routine will handle "Get Message" command responses with
3289 * channels that use an OEM Medium. The message format belongs to
3290 * the OEM. See IPMI 2.0 specification, Chapter 6 and
3291 * Chapter 22, sections 22.6 and 22.24 for more details.
3292 */
3293static int handle_oem_get_msg_cmd(ipmi_smi_t intf,
3294 struct ipmi_smi_msg *msg)
3295{
3296 struct cmd_rcvr *rcvr;
3297 int rv = 0;
3298 unsigned char netfn;
3299 unsigned char cmd;
3300 unsigned char chan;
3301 ipmi_user_t user = NULL;
3302 struct ipmi_system_interface_addr *smi_addr;
3303 struct ipmi_recv_msg *recv_msg;
3304
3305 /*
3306 * We expect the OEM SW to perform error checking
3307 * so we just do some basic sanity checks
3308 */
3309 if (msg->rsp_size < 4) {
3310 /* Message not big enough, just ignore it. */
3311 ipmi_inc_stat(intf, invalid_commands);
3312 return 0;
3313 }
3314
3315 if (msg->rsp[2] != 0) {
3316 /* An error getting the response, just ignore it. */
3317 return 0;
3318 }
3319
3320 /*
3321 * This is an OEM Message so the OEM needs to know how
3322 * handle the message. We do no interpretation.
3323 */
3324 netfn = msg->rsp[0] >> 2;
3325 cmd = msg->rsp[1];
3326 chan = msg->rsp[3] & 0xf;
3327
3328 rcu_read_lock();
3329 rcvr = find_cmd_rcvr(intf, netfn, cmd, chan);
3330 if (rcvr) {
3331 user = rcvr->user;
3332 kref_get(&user->refcount);
3333 } else
3334 user = NULL;
3335 rcu_read_unlock();
3336
3337 if (user == NULL) {
3338 /* We didn't find a user, just give up. */
3339 ipmi_inc_stat(intf, unhandled_commands);
3340
3341 /*
3342 * Don't do anything with these messages, just allow
3343 * them to be freed.
3344 */
3345
3346 rv = 0;
3347 } else {
3348 /* Deliver the message to the user. */
3349 ipmi_inc_stat(intf, handled_commands);
3350
3351 recv_msg = ipmi_alloc_recv_msg();
3352 if (!recv_msg) {
3353 /*
3354 * We couldn't allocate memory for the
3355 * message, so requeue it for handling
3356 * later.
3357 */
3358 rv = 1;
3359 kref_put(&user->refcount, free_user);
3360 } else {
3361 /*
3362 * OEM Messages are expected to be delivered via
3363 * the system interface to SMS software. We might
3364 * need to visit this again depending on OEM
3365 * requirements
3366 */
3367 smi_addr = ((struct ipmi_system_interface_addr *)
3368 &(recv_msg->addr));
3369 smi_addr->addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
3370 smi_addr->channel = IPMI_BMC_CHANNEL;
3371 smi_addr->lun = msg->rsp[0] & 3;
3372
3373 recv_msg->user = user;
3374 recv_msg->user_msg_data = NULL;
3375 recv_msg->recv_type = IPMI_OEM_RECV_TYPE;
3376 recv_msg->msg.netfn = msg->rsp[0] >> 2;
3377 recv_msg->msg.cmd = msg->rsp[1];
3378 recv_msg->msg.data = recv_msg->msg_data;
3379
3380 /*
3381 * The message starts at byte 4 which follows the
3382 * the Channel Byte in the "GET MESSAGE" command
3383 */
3384 recv_msg->msg.data_len = msg->rsp_size - 4;
3385 memcpy(recv_msg->msg_data,
3386 &(msg->rsp[4]),
3387 msg->rsp_size - 4);
3388 deliver_response(recv_msg);
3389 }
3390 }
3391
3392 return rv;
3393}
3394
3267static void copy_event_into_recv_msg(struct ipmi_recv_msg *recv_msg, 3395static void copy_event_into_recv_msg(struct ipmi_recv_msg *recv_msg,
3268 struct ipmi_smi_msg *msg) 3396 struct ipmi_smi_msg *msg)
3269{ 3397{
@@ -3519,6 +3647,17 @@ static int handle_new_recv_msg(ipmi_smi_t intf,
3519 goto out; 3647 goto out;
3520 } 3648 }
3521 3649
3650 /*
3651 ** We need to make sure the channels have been initialized.
3652 ** The channel_handler routine will set the "curr_channel"
3653 ** equal to or greater than IPMI_MAX_CHANNELS when all the
3654 ** channels for this interface have been initialized.
3655 */
3656 if (intf->curr_channel < IPMI_MAX_CHANNELS) {
3657 requeue = 1; /* Just put the message back for now */
3658 goto out;
3659 }
3660
3522 switch (intf->channels[chan].medium) { 3661 switch (intf->channels[chan].medium) {
3523 case IPMI_CHANNEL_MEDIUM_IPMB: 3662 case IPMI_CHANNEL_MEDIUM_IPMB:
3524 if (msg->rsp[4] & 0x04) { 3663 if (msg->rsp[4] & 0x04) {
@@ -3554,11 +3693,20 @@ static int handle_new_recv_msg(ipmi_smi_t intf,
3554 break; 3693 break;
3555 3694
3556 default: 3695 default:
3557 /* 3696 /* Check for OEM Channels. Clients had better
3558 * We don't handle the channel type, so just 3697 register for these commands. */
3559 * free the message. 3698 if ((intf->channels[chan].medium
3560 */ 3699 >= IPMI_CHANNEL_MEDIUM_OEM_MIN)
3561 requeue = 0; 3700 && (intf->channels[chan].medium
3701 <= IPMI_CHANNEL_MEDIUM_OEM_MAX)) {
3702 requeue = handle_oem_get_msg_cmd(intf, msg);
3703 } else {
3704 /*
3705 * We don't handle the channel type, so just
3706 * free the message.
3707 */
3708 requeue = 0;
3709 }
3562 } 3710 }
3563 3711
3564 } else if ((msg->rsp[0] == ((IPMI_NETFN_APP_REQUEST|1) << 2)) 3712 } else if ((msg->rsp[0] == ((IPMI_NETFN_APP_REQUEST|1) << 2))
@@ -3730,7 +3878,7 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3730 list_add_tail(&msg->link, timeouts); 3878 list_add_tail(&msg->link, timeouts);
3731 if (ent->broadcast) 3879 if (ent->broadcast)
3732 ipmi_inc_stat(intf, timed_out_ipmb_broadcasts); 3880 ipmi_inc_stat(intf, timed_out_ipmb_broadcasts);
3733 else if (ent->recv_msg->addr.addr_type == IPMI_LAN_ADDR_TYPE) 3881 else if (is_lan_addr(&ent->recv_msg->addr))
3734 ipmi_inc_stat(intf, timed_out_lan_commands); 3882 ipmi_inc_stat(intf, timed_out_lan_commands);
3735 else 3883 else
3736 ipmi_inc_stat(intf, timed_out_ipmb_commands); 3884 ipmi_inc_stat(intf, timed_out_ipmb_commands);
@@ -3744,15 +3892,17 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3744 */ 3892 */
3745 ent->timeout = MAX_MSG_TIMEOUT; 3893 ent->timeout = MAX_MSG_TIMEOUT;
3746 ent->retries_left--; 3894 ent->retries_left--;
3747 if (ent->recv_msg->addr.addr_type == IPMI_LAN_ADDR_TYPE)
3748 ipmi_inc_stat(intf, retransmitted_lan_commands);
3749 else
3750 ipmi_inc_stat(intf, retransmitted_ipmb_commands);
3751
3752 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot, 3895 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot,
3753 ent->seqid); 3896 ent->seqid);
3754 if (!smi_msg) 3897 if (!smi_msg) {
3898 if (is_lan_addr(&ent->recv_msg->addr))
3899 ipmi_inc_stat(intf,
3900 dropped_rexmit_lan_commands);
3901 else
3902 ipmi_inc_stat(intf,
3903 dropped_rexmit_ipmb_commands);
3755 return; 3904 return;
3905 }
3756 3906
3757 spin_unlock_irqrestore(&intf->seq_lock, *flags); 3907 spin_unlock_irqrestore(&intf->seq_lock, *flags);
3758 3908
@@ -3764,10 +3914,17 @@ static void check_msg_timeout(ipmi_smi_t intf, struct seq_table *ent,
3764 * resent. 3914 * resent.
3765 */ 3915 */
3766 handlers = intf->handlers; 3916 handlers = intf->handlers;
3767 if (handlers) 3917 if (handlers) {
3918 if (is_lan_addr(&ent->recv_msg->addr))
3919 ipmi_inc_stat(intf,
3920 retransmitted_lan_commands);
3921 else
3922 ipmi_inc_stat(intf,
3923 retransmitted_ipmb_commands);
3924
3768 intf->handlers->sender(intf->send_info, 3925 intf->handlers->sender(intf->send_info,
3769 smi_msg, 0); 3926 smi_msg, 0);
3770 else 3927 } else
3771 ipmi_free_smi_msg(smi_msg); 3928 ipmi_free_smi_msg(smi_msg);
3772 3929
3773 spin_lock_irqsave(&intf->seq_lock, *flags); 3930 spin_lock_irqsave(&intf->seq_lock, *flags);
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index e58ea4cd55ce..259644646b82 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -82,12 +82,6 @@
82#define SI_SHORT_TIMEOUT_USEC 250 /* .25ms when the SM request a 82#define SI_SHORT_TIMEOUT_USEC 250 /* .25ms when the SM request a
83 short timeout */ 83 short timeout */
84 84
85/* Bit for BMC global enables. */
86#define IPMI_BMC_RCV_MSG_INTR 0x01
87#define IPMI_BMC_EVT_MSG_INTR 0x02
88#define IPMI_BMC_EVT_MSG_BUFF 0x04
89#define IPMI_BMC_SYS_LOG 0x08
90
91enum si_intf_state { 85enum si_intf_state {
92 SI_NORMAL, 86 SI_NORMAL,
93 SI_GETTING_FLAGS, 87 SI_GETTING_FLAGS,
@@ -220,6 +214,9 @@ struct smi_info {
220 OEM2_DATA_AVAIL) 214 OEM2_DATA_AVAIL)
221 unsigned char msg_flags; 215 unsigned char msg_flags;
222 216
217 /* Does the BMC have an event buffer? */
218 char has_event_buffer;
219
223 /* 220 /*
224 * If set to true, this will request events the next time the 221 * If set to true, this will request events the next time the
225 * state machine is idle. 222 * state machine is idle.
@@ -968,7 +965,8 @@ static void request_events(void *send_info)
968{ 965{
969 struct smi_info *smi_info = send_info; 966 struct smi_info *smi_info = send_info;
970 967
971 if (atomic_read(&smi_info->stop_operation)) 968 if (atomic_read(&smi_info->stop_operation) ||
969 !smi_info->has_event_buffer)
972 return; 970 return;
973 971
974 atomic_set(&smi_info->req_events, 1); 972 atomic_set(&smi_info->req_events, 1);
@@ -2407,26 +2405,9 @@ static struct of_platform_driver ipmi_of_platform_driver = {
2407}; 2405};
2408#endif /* CONFIG_PPC_OF */ 2406#endif /* CONFIG_PPC_OF */
2409 2407
2410 2408static int wait_for_msg_done(struct smi_info *smi_info)
2411static int try_get_dev_id(struct smi_info *smi_info)
2412{ 2409{
2413 unsigned char msg[2];
2414 unsigned char *resp;
2415 unsigned long resp_len;
2416 enum si_sm_result smi_result; 2410 enum si_sm_result smi_result;
2417 int rv = 0;
2418
2419 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2420 if (!resp)
2421 return -ENOMEM;
2422
2423 /*
2424 * Do a Get Device ID command, since it comes back with some
2425 * useful info.
2426 */
2427 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2428 msg[1] = IPMI_GET_DEVICE_ID_CMD;
2429 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2430 2411
2431 smi_result = smi_info->handlers->event(smi_info->si_sm, 0); 2412 smi_result = smi_info->handlers->event(smi_info->si_sm, 0);
2432 for (;;) { 2413 for (;;) {
@@ -2441,16 +2422,39 @@ static int try_get_dev_id(struct smi_info *smi_info)
2441 } else 2422 } else
2442 break; 2423 break;
2443 } 2424 }
2444 if (smi_result == SI_SM_HOSED) { 2425 if (smi_result == SI_SM_HOSED)
2445 /* 2426 /*
2446 * We couldn't get the state machine to run, so whatever's at 2427 * We couldn't get the state machine to run, so whatever's at
2447 * the port is probably not an IPMI SMI interface. 2428 * the port is probably not an IPMI SMI interface.
2448 */ 2429 */
2449 rv = -ENODEV; 2430 return -ENODEV;
2431
2432 return 0;
2433}
2434
2435static int try_get_dev_id(struct smi_info *smi_info)
2436{
2437 unsigned char msg[2];
2438 unsigned char *resp;
2439 unsigned long resp_len;
2440 int rv = 0;
2441
2442 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2443 if (!resp)
2444 return -ENOMEM;
2445
2446 /*
2447 * Do a Get Device ID command, since it comes back with some
2448 * useful info.
2449 */
2450 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2451 msg[1] = IPMI_GET_DEVICE_ID_CMD;
2452 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2453
2454 rv = wait_for_msg_done(smi_info);
2455 if (rv)
2450 goto out; 2456 goto out;
2451 }
2452 2457
2453 /* Otherwise, we got some data. */
2454 resp_len = smi_info->handlers->get_result(smi_info->si_sm, 2458 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2455 resp, IPMI_MAX_MSG_LENGTH); 2459 resp, IPMI_MAX_MSG_LENGTH);
2456 2460
@@ -2462,6 +2466,88 @@ static int try_get_dev_id(struct smi_info *smi_info)
2462 return rv; 2466 return rv;
2463} 2467}
2464 2468
2469static int try_enable_event_buffer(struct smi_info *smi_info)
2470{
2471 unsigned char msg[3];
2472 unsigned char *resp;
2473 unsigned long resp_len;
2474 int rv = 0;
2475
2476 resp = kmalloc(IPMI_MAX_MSG_LENGTH, GFP_KERNEL);
2477 if (!resp)
2478 return -ENOMEM;
2479
2480 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2481 msg[1] = IPMI_GET_BMC_GLOBAL_ENABLES_CMD;
2482 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 2);
2483
2484 rv = wait_for_msg_done(smi_info);
2485 if (rv) {
2486 printk(KERN_WARNING
2487 "ipmi_si: Error getting response from get global,"
2488 " enables command, the event buffer is not"
2489 " enabled.\n");
2490 goto out;
2491 }
2492
2493 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2494 resp, IPMI_MAX_MSG_LENGTH);
2495
2496 if (resp_len < 4 ||
2497 resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 ||
2498 resp[1] != IPMI_GET_BMC_GLOBAL_ENABLES_CMD ||
2499 resp[2] != 0) {
2500 printk(KERN_WARNING
2501 "ipmi_si: Invalid return from get global"
2502 " enables command, cannot enable the event"
2503 " buffer.\n");
2504 rv = -EINVAL;
2505 goto out;
2506 }
2507
2508 if (resp[3] & IPMI_BMC_EVT_MSG_BUFF)
2509 /* buffer is already enabled, nothing to do. */
2510 goto out;
2511
2512 msg[0] = IPMI_NETFN_APP_REQUEST << 2;
2513 msg[1] = IPMI_SET_BMC_GLOBAL_ENABLES_CMD;
2514 msg[2] = resp[3] | IPMI_BMC_EVT_MSG_BUFF;
2515 smi_info->handlers->start_transaction(smi_info->si_sm, msg, 3);
2516
2517 rv = wait_for_msg_done(smi_info);
2518 if (rv) {
2519 printk(KERN_WARNING
2520 "ipmi_si: Error getting response from set global,"
2521 " enables command, the event buffer is not"
2522 " enabled.\n");
2523 goto out;
2524 }
2525
2526 resp_len = smi_info->handlers->get_result(smi_info->si_sm,
2527 resp, IPMI_MAX_MSG_LENGTH);
2528
2529 if (resp_len < 3 ||
2530 resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 ||
2531 resp[1] != IPMI_SET_BMC_GLOBAL_ENABLES_CMD) {
2532 printk(KERN_WARNING
2533 "ipmi_si: Invalid return from get global,"
2534 "enables command, not enable the event"
2535 " buffer.\n");
2536 rv = -EINVAL;
2537 goto out;
2538 }
2539
2540 if (resp[2] != 0)
2541 /*
2542 * An error when setting the event buffer bit means
2543 * that the event buffer is not supported.
2544 */
2545 rv = -ENOENT;
2546 out:
2547 kfree(resp);
2548 return rv;
2549}
2550
2465static int type_file_read_proc(char *page, char **start, off_t off, 2551static int type_file_read_proc(char *page, char **start, off_t off,
2466 int count, int *eof, void *data) 2552 int count, int *eof, void *data)
2467{ 2553{
@@ -2847,6 +2933,10 @@ static int try_smi_init(struct smi_info *new_smi)
2847 new_smi->intf_num = smi_num; 2933 new_smi->intf_num = smi_num;
2848 smi_num++; 2934 smi_num++;
2849 2935
2936 rv = try_enable_event_buffer(new_smi);
2937 if (rv == 0)
2938 new_smi->has_event_buffer = 1;
2939
2850 /* 2940 /*
2851 * Start clearing the flags before we enable interrupts or the 2941 * Start clearing the flags before we enable interrupts or the
2852 * timer to avoid racing with the timer. 2942 * timer to avoid racing with the timer.
@@ -2863,7 +2953,7 @@ static int try_smi_init(struct smi_info *new_smi)
2863 */ 2953 */
2864 new_smi->pdev = platform_device_alloc("ipmi_si", 2954 new_smi->pdev = platform_device_alloc("ipmi_si",
2865 new_smi->intf_num); 2955 new_smi->intf_num);
2866 if (rv) { 2956 if (!new_smi->pdev) {
2867 printk(KERN_ERR 2957 printk(KERN_ERR
2868 "ipmi_si_intf:" 2958 "ipmi_si_intf:"
2869 " Unable to allocate platform device\n"); 2959 " Unable to allocate platform device\n");
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index 3586b3b3df3f..8f05c38c2f06 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -301,33 +301,7 @@ static inline int private_mapping_ok(struct vm_area_struct *vma)
301} 301}
302#endif 302#endif
303 303
304void __attribute__((weak))
305map_devmem(unsigned long pfn, unsigned long len, pgprot_t prot)
306{
307 /* nothing. architectures can override. */
308}
309
310void __attribute__((weak))
311unmap_devmem(unsigned long pfn, unsigned long len, pgprot_t prot)
312{
313 /* nothing. architectures can override. */
314}
315
316static void mmap_mem_open(struct vm_area_struct *vma)
317{
318 map_devmem(vma->vm_pgoff, vma->vm_end - vma->vm_start,
319 vma->vm_page_prot);
320}
321
322static void mmap_mem_close(struct vm_area_struct *vma)
323{
324 unmap_devmem(vma->vm_pgoff, vma->vm_end - vma->vm_start,
325 vma->vm_page_prot);
326}
327
328static struct vm_operations_struct mmap_mem_ops = { 304static struct vm_operations_struct mmap_mem_ops = {
329 .open = mmap_mem_open,
330 .close = mmap_mem_close,
331#ifdef CONFIG_HAVE_IOREMAP_PROT 305#ifdef CONFIG_HAVE_IOREMAP_PROT
332 .access = generic_access_phys 306 .access = generic_access_phys
333#endif 307#endif
@@ -362,7 +336,6 @@ static int mmap_mem(struct file * file, struct vm_area_struct * vma)
362 vma->vm_pgoff, 336 vma->vm_pgoff,
363 size, 337 size,
364 vma->vm_page_prot)) { 338 vma->vm_page_prot)) {
365 unmap_devmem(vma->vm_pgoff, size, vma->vm_page_prot);
366 return -EAGAIN; 339 return -EAGAIN;
367 } 340 }
368 return 0; 341 return 0;
diff --git a/drivers/char/random.c b/drivers/char/random.c
index f824ef8a9273..b2ced39d76b2 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1665,15 +1665,20 @@ EXPORT_SYMBOL(secure_dccp_sequence_number);
1665 * value is not cryptographically secure but for several uses the cost of 1665 * value is not cryptographically secure but for several uses the cost of
1666 * depleting entropy is too high 1666 * depleting entropy is too high
1667 */ 1667 */
1668DEFINE_PER_CPU(__u32 [4], get_random_int_hash);
1668unsigned int get_random_int(void) 1669unsigned int get_random_int(void)
1669{ 1670{
1670 /* 1671 struct keydata *keyptr;
1671 * Use IP's RNG. It suits our purpose perfectly: it re-keys itself 1672 __u32 *hash = get_cpu_var(get_random_int_hash);
1672 * every second, from the entropy pool (and thus creates a limited 1673 int ret;
1673 * drain on it), and uses halfMD4Transform within the second. We 1674
1674 * also mix it with jiffies and the PID: 1675 keyptr = get_keyptr();
1675 */ 1676 hash[0] += current->pid + jiffies + get_cycles() + (int)(long)&ret;
1676 return secure_ip_id((__force __be32)(current->pid + jiffies)); 1677
1678 ret = half_md4_transform(hash, keyptr->secret);
1679 put_cpu_var(get_random_int_hash);
1680
1681 return ret;
1677} 1682}
1678 1683
1679/* 1684/*
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 6de020d078e1..d6a807f4077d 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -35,7 +35,6 @@
35#include <linux/vt_kern.h> 35#include <linux/vt_kern.h>
36#include <linux/workqueue.h> 36#include <linux/workqueue.h>
37#include <linux/kexec.h> 37#include <linux/kexec.h>
38#include <linux/interrupt.h>
39#include <linux/hrtimer.h> 38#include <linux/hrtimer.h>
40#include <linux/oom.h> 39#include <linux/oom.h>
41 40
@@ -407,7 +406,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
407 &sysrq_showlocks_op, /* d */ 406 &sysrq_showlocks_op, /* d */
408 &sysrq_term_op, /* e */ 407 &sysrq_term_op, /* e */
409 &sysrq_moom_op, /* f */ 408 &sysrq_moom_op, /* f */
410 /* g: May be registered by ppc for kgdb */ 409 /* g: May be registered for the kernel debugger */
411 NULL, /* g */ 410 NULL, /* g */
412 NULL, /* h - reserved for help */ 411 NULL, /* h - reserved for help */
413 &sysrq_kill_op, /* i */ 412 &sysrq_kill_op, /* i */
@@ -432,7 +431,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
432 &sysrq_sync_op, /* s */ 431 &sysrq_sync_op, /* s */
433 &sysrq_showstate_op, /* t */ 432 &sysrq_showstate_op, /* t */
434 &sysrq_mountro_op, /* u */ 433 &sysrq_mountro_op, /* u */
435 /* v: May be registered at init time by SMP VOYAGER */ 434 /* v: May be registered for frame buffer console restore */
436 NULL, /* v */ 435 NULL, /* v */
437 &sysrq_showstate_blocked_op, /* w */ 436 &sysrq_showstate_blocked_op, /* w */
438 /* x: May be registered on ppc/powerpc for xmon */ 437 /* x: May be registered on ppc/powerpc for xmon */
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 2c1d133819b5..08151d4de489 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -2274,7 +2274,7 @@ rescan_last_byte:
2274 continue; /* nothing to display */ 2274 continue; /* nothing to display */
2275 } 2275 }
2276 /* Glyph not found */ 2276 /* Glyph not found */
2277 if ((!(vc->vc_utf && !vc->vc_disp_ctrl) && c < 128) && !(c & ~charmask)) { 2277 if ((!(vc->vc_utf && !vc->vc_disp_ctrl) || c < 128) && !(c & ~charmask)) {
2278 /* In legacy mode use the glyph we get by a 1:1 mapping. 2278 /* In legacy mode use the glyph we get by a 1:1 mapping.
2279 This would make absolutely no sense with Unicode in mind, 2279 This would make absolutely no sense with Unicode in mind,
2280 but do this for ASCII characters since a font may lack 2280 but do this for ASCII characters since a font may lack
diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c
index a2dee0eb6dad..e6ce632a393e 100644
--- a/drivers/char/vt_ioctl.c
+++ b/drivers/char/vt_ioctl.c
@@ -400,6 +400,9 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
400 case KIOCSOUND: 400 case KIOCSOUND:
401 if (!perm) 401 if (!perm)
402 goto eperm; 402 goto eperm;
403 /* FIXME: This is an old broken API but we need to keep it
404 supported and somehow separate the historic advertised
405 tick rate from any real one */
403 if (arg) 406 if (arg)
404 arg = CLOCK_TICK_RATE / arg; 407 arg = CLOCK_TICK_RATE / arg;
405 kd_mksound(arg, 0); 408 kd_mksound(arg, 0);
@@ -417,6 +420,9 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
417 */ 420 */
418 ticks = HZ * ((arg >> 16) & 0xffff) / 1000; 421 ticks = HZ * ((arg >> 16) & 0xffff) / 1000;
419 count = ticks ? (arg & 0xffff) : 0; 422 count = ticks ? (arg & 0xffff) : 0;
423 /* FIXME: This is an old broken API but we need to keep it
424 supported and somehow separate the historic advertised
425 tick rate from any real one */
420 if (count) 426 if (count)
421 count = CLOCK_TICK_RATE / count; 427 count = CLOCK_TICK_RATE / count;
422 kd_mksound(count, ticks); 428 kd_mksound(count, ticks);
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
index ee19b6e8fcb4..40bd8c61c7d7 100644
--- a/drivers/clocksource/acpi_pm.c
+++ b/drivers/clocksource/acpi_pm.c
@@ -57,7 +57,7 @@ u32 acpi_pm_read_verified(void)
57 return v2; 57 return v2;
58} 58}
59 59
60static cycle_t acpi_pm_read(void) 60static cycle_t acpi_pm_read(struct clocksource *cs)
61{ 61{
62 return (cycle_t)read_pmtmr(); 62 return (cycle_t)read_pmtmr();
63} 63}
@@ -83,7 +83,7 @@ static int __init acpi_pm_good_setup(char *__str)
83} 83}
84__setup("acpi_pm_good", acpi_pm_good_setup); 84__setup("acpi_pm_good", acpi_pm_good_setup);
85 85
86static cycle_t acpi_pm_read_slow(void) 86static cycle_t acpi_pm_read_slow(struct clocksource *cs)
87{ 87{
88 return (cycle_t)acpi_pm_read_verified(); 88 return (cycle_t)acpi_pm_read_verified();
89} 89}
@@ -156,9 +156,9 @@ static int verify_pmtmr_rate(void)
156 unsigned long count, delta; 156 unsigned long count, delta;
157 157
158 mach_prepare_counter(); 158 mach_prepare_counter();
159 value1 = clocksource_acpi_pm.read(); 159 value1 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
160 mach_countup(&count); 160 mach_countup(&count);
161 value2 = clocksource_acpi_pm.read(); 161 value2 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
162 delta = (value2 - value1) & ACPI_PM_MASK; 162 delta = (value2 - value1) & ACPI_PM_MASK;
163 163
164 /* Check that the PMTMR delta is within 5% of what we expect */ 164 /* Check that the PMTMR delta is within 5% of what we expect */
@@ -195,9 +195,9 @@ static int __init init_acpi_pm_clocksource(void)
195 /* "verify" this timing source: */ 195 /* "verify" this timing source: */
196 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) { 196 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) {
197 udelay(100 * j); 197 udelay(100 * j);
198 value1 = clocksource_acpi_pm.read(); 198 value1 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
199 for (i = 0; i < ACPI_PM_READ_CHECKS; i++) { 199 for (i = 0; i < ACPI_PM_READ_CHECKS; i++) {
200 value2 = clocksource_acpi_pm.read(); 200 value2 = clocksource_acpi_pm.read(&clocksource_acpi_pm);
201 if (value2 == value1) 201 if (value2 == value1)
202 continue; 202 continue;
203 if (value2 > value1) 203 if (value2 > value1)
diff --git a/drivers/clocksource/cyclone.c b/drivers/clocksource/cyclone.c
index 8615059a8729..64e528e8bfa6 100644
--- a/drivers/clocksource/cyclone.c
+++ b/drivers/clocksource/cyclone.c
@@ -19,7 +19,7 @@
19int use_cyclone = 0; 19int use_cyclone = 0;
20static void __iomem *cyclone_ptr; 20static void __iomem *cyclone_ptr;
21 21
22static cycle_t read_cyclone(void) 22static cycle_t read_cyclone(struct clocksource *cs)
23{ 23{
24 return (cycle_t)readl(cyclone_ptr); 24 return (cycle_t)readl(cyclone_ptr);
25} 25}
diff --git a/drivers/clocksource/scx200_hrt.c b/drivers/clocksource/scx200_hrt.c
index b92da677aa5d..27f4d9637b62 100644
--- a/drivers/clocksource/scx200_hrt.c
+++ b/drivers/clocksource/scx200_hrt.c
@@ -43,7 +43,7 @@ MODULE_PARM_DESC(ppm, "+-adjust to actual XO freq (ppm)");
43/* The base timer frequency, * 27 if selected */ 43/* The base timer frequency, * 27 if selected */
44#define HRT_FREQ 1000000 44#define HRT_FREQ 1000000
45 45
46static cycle_t read_hrt(void) 46static cycle_t read_hrt(struct clocksource *cs)
47{ 47{
48 /* Read the timer value */ 48 /* Read the timer value */
49 return (cycle_t) inl(scx200_cb_base + SCx200_TIMER_OFFSET); 49 return (cycle_t) inl(scx200_cb_base + SCx200_TIMER_OFFSET);
diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c
index 254f1064d973..01b886e68822 100644
--- a/drivers/clocksource/tcb_clksrc.c
+++ b/drivers/clocksource/tcb_clksrc.c
@@ -39,7 +39,7 @@
39 39
40static void __iomem *tcaddr; 40static void __iomem *tcaddr;
41 41
42static cycle_t tc_get_cycles(void) 42static cycle_t tc_get_cycles(struct clocksource *cs)
43{ 43{
44 unsigned long flags; 44 unsigned long flags;
45 u32 lower, upper; 45 u32 lower, upper;
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index 92438e9dacc3..5a87384ea4ff 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -804,11 +804,14 @@ dma_async_memcpy_buf_to_buf(struct dma_chan *chan, void *dest,
804 dma_addr_t dma_dest, dma_src; 804 dma_addr_t dma_dest, dma_src;
805 dma_cookie_t cookie; 805 dma_cookie_t cookie;
806 int cpu; 806 int cpu;
807 unsigned long flags;
807 808
808 dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE); 809 dma_src = dma_map_single(dev->dev, src, len, DMA_TO_DEVICE);
809 dma_dest = dma_map_single(dev->dev, dest, len, DMA_FROM_DEVICE); 810 dma_dest = dma_map_single(dev->dev, dest, len, DMA_FROM_DEVICE);
810 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 811 flags = DMA_CTRL_ACK |
811 DMA_CTRL_ACK); 812 DMA_COMPL_SRC_UNMAP_SINGLE |
813 DMA_COMPL_DEST_UNMAP_SINGLE;
814 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
812 815
813 if (!tx) { 816 if (!tx) {
814 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE); 817 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -850,11 +853,12 @@ dma_async_memcpy_buf_to_pg(struct dma_chan *chan, struct page *page,
850 dma_addr_t dma_dest, dma_src; 853 dma_addr_t dma_dest, dma_src;
851 dma_cookie_t cookie; 854 dma_cookie_t cookie;
852 int cpu; 855 int cpu;
856 unsigned long flags;
853 857
854 dma_src = dma_map_single(dev->dev, kdata, len, DMA_TO_DEVICE); 858 dma_src = dma_map_single(dev->dev, kdata, len, DMA_TO_DEVICE);
855 dma_dest = dma_map_page(dev->dev, page, offset, len, DMA_FROM_DEVICE); 859 dma_dest = dma_map_page(dev->dev, page, offset, len, DMA_FROM_DEVICE);
856 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 860 flags = DMA_CTRL_ACK | DMA_COMPL_SRC_UNMAP_SINGLE;
857 DMA_CTRL_ACK); 861 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
858 862
859 if (!tx) { 863 if (!tx) {
860 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE); 864 dma_unmap_single(dev->dev, dma_src, len, DMA_TO_DEVICE);
@@ -898,12 +902,13 @@ dma_async_memcpy_pg_to_pg(struct dma_chan *chan, struct page *dest_pg,
898 dma_addr_t dma_dest, dma_src; 902 dma_addr_t dma_dest, dma_src;
899 dma_cookie_t cookie; 903 dma_cookie_t cookie;
900 int cpu; 904 int cpu;
905 unsigned long flags;
901 906
902 dma_src = dma_map_page(dev->dev, src_pg, src_off, len, DMA_TO_DEVICE); 907 dma_src = dma_map_page(dev->dev, src_pg, src_off, len, DMA_TO_DEVICE);
903 dma_dest = dma_map_page(dev->dev, dest_pg, dest_off, len, 908 dma_dest = dma_map_page(dev->dev, dest_pg, dest_off, len,
904 DMA_FROM_DEVICE); 909 DMA_FROM_DEVICE);
905 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, 910 flags = DMA_CTRL_ACK;
906 DMA_CTRL_ACK); 911 tx = dev->device_prep_dma_memcpy(chan, dma_dest, dma_src, len, flags);
907 912
908 if (!tx) { 913 if (!tx) {
909 dma_unmap_page(dev->dev, dma_src, len, DMA_TO_DEVICE); 914 dma_unmap_page(dev->dev, dma_src, len, DMA_TO_DEVICE);
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c
index a27c0fb1bc11..fb7da5141e96 100644
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -531,9 +531,7 @@ static int __init dmatest_init(void)
531 chan = dma_request_channel(mask, filter, NULL); 531 chan = dma_request_channel(mask, filter, NULL);
532 if (chan) { 532 if (chan) {
533 err = dmatest_add_channel(chan); 533 err = dmatest_add_channel(chan);
534 if (err == 0) 534 if (err) {
535 continue;
536 else {
537 dma_release_channel(chan); 535 dma_release_channel(chan);
538 break; /* add_channel failed, punt */ 536 break; /* add_channel failed, punt */
539 } 537 }
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index e4fc33c1c32f..1955ee8d6d20 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -1063,22 +1063,31 @@ static void ioat_dma_cleanup_tasklet(unsigned long data)
1063static void 1063static void
1064ioat_dma_unmap(struct ioat_dma_chan *ioat_chan, struct ioat_desc_sw *desc) 1064ioat_dma_unmap(struct ioat_dma_chan *ioat_chan, struct ioat_desc_sw *desc)
1065{ 1065{
1066 /* 1066 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_DEST_UNMAP)) {
1067 * yes we are unmapping both _page and _single 1067 if (desc->async_tx.flags & DMA_COMPL_DEST_UNMAP_SINGLE)
1068 * alloc'd regions with unmap_page. Is this 1068 pci_unmap_single(ioat_chan->device->pdev,
1069 * *really* that bad? 1069 pci_unmap_addr(desc, dst),
1070 */ 1070 pci_unmap_len(desc, len),
1071 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_DEST_UNMAP)) 1071 PCI_DMA_FROMDEVICE);
1072 pci_unmap_page(ioat_chan->device->pdev, 1072 else
1073 pci_unmap_addr(desc, dst), 1073 pci_unmap_page(ioat_chan->device->pdev,
1074 pci_unmap_len(desc, len), 1074 pci_unmap_addr(desc, dst),
1075 PCI_DMA_FROMDEVICE); 1075 pci_unmap_len(desc, len),
1076 1076 PCI_DMA_FROMDEVICE);
1077 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_SRC_UNMAP)) 1077 }
1078 pci_unmap_page(ioat_chan->device->pdev, 1078
1079 pci_unmap_addr(desc, src), 1079 if (!(desc->async_tx.flags & DMA_COMPL_SKIP_SRC_UNMAP)) {
1080 pci_unmap_len(desc, len), 1080 if (desc->async_tx.flags & DMA_COMPL_SRC_UNMAP_SINGLE)
1081 PCI_DMA_TODEVICE); 1081 pci_unmap_single(ioat_chan->device->pdev,
1082 pci_unmap_addr(desc, src),
1083 pci_unmap_len(desc, len),
1084 PCI_DMA_TODEVICE);
1085 else
1086 pci_unmap_page(ioat_chan->device->pdev,
1087 pci_unmap_addr(desc, src),
1088 pci_unmap_len(desc, len),
1089 PCI_DMA_TODEVICE);
1090 }
1082} 1091}
1083 1092
1084/** 1093/**
@@ -1363,6 +1372,7 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
1363 int err = 0; 1372 int err = 0;
1364 struct completion cmp; 1373 struct completion cmp;
1365 unsigned long tmo; 1374 unsigned long tmo;
1375 unsigned long flags;
1366 1376
1367 src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL); 1377 src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL);
1368 if (!src) 1378 if (!src)
@@ -1392,8 +1402,9 @@ static int ioat_dma_self_test(struct ioatdma_device *device)
1392 DMA_TO_DEVICE); 1402 DMA_TO_DEVICE);
1393 dma_dest = dma_map_single(dma_chan->device->dev, dest, IOAT_TEST_SIZE, 1403 dma_dest = dma_map_single(dma_chan->device->dev, dest, IOAT_TEST_SIZE,
1394 DMA_FROM_DEVICE); 1404 DMA_FROM_DEVICE);
1405 flags = DMA_COMPL_SRC_UNMAP_SINGLE | DMA_COMPL_DEST_UNMAP_SINGLE;
1395 tx = device->common.device_prep_dma_memcpy(dma_chan, dma_dest, dma_src, 1406 tx = device->common.device_prep_dma_memcpy(dma_chan, dma_dest, dma_src,
1396 IOAT_TEST_SIZE, 0); 1407 IOAT_TEST_SIZE, flags);
1397 if (!tx) { 1408 if (!tx) {
1398 dev_err(&device->pdev->dev, 1409 dev_err(&device->pdev->dev,
1399 "Self-test prep failed, disabling\n"); 1410 "Self-test prep failed, disabling\n");
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c
index e202a6ce5573..9a5bc1a7389e 100644
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -1272,7 +1272,8 @@ static irqreturn_t idmac_interrupt(int irq, void *dev_id)
1272 /* Other interrupts do not interfere with this channel */ 1272 /* Other interrupts do not interfere with this channel */
1273 spin_lock(&ichan->lock); 1273 spin_lock(&ichan->lock);
1274 if (unlikely(chan_id != IDMAC_SDC_0 && chan_id != IDMAC_SDC_1 && 1274 if (unlikely(chan_id != IDMAC_SDC_0 && chan_id != IDMAC_SDC_1 &&
1275 ((curbuf >> chan_id) & 1) == ichan->active_buffer)) { 1275 ((curbuf >> chan_id) & 1) == ichan->active_buffer &&
1276 !list_is_last(ichan->queue.next, &ichan->queue))) {
1276 int i = 100; 1277 int i = 100;
1277 1278
1278 /* This doesn't help. See comment in ipu_disable_channel() */ 1279 /* This doesn't help. See comment in ipu_disable_channel() */
@@ -1547,7 +1548,7 @@ static irqreturn_t ic_sof_irq(int irq, void *dev_id)
1547 struct idmac_channel *ichan = dev_id; 1548 struct idmac_channel *ichan = dev_id;
1548 printk(KERN_DEBUG "Got SOF IRQ %d on Channel %d\n", 1549 printk(KERN_DEBUG "Got SOF IRQ %d on Channel %d\n",
1549 irq, ichan->dma_chan.chan_id); 1550 irq, ichan->dma_chan.chan_id);
1550 disable_irq(irq); 1551 disable_irq_nosync(irq);
1551 return IRQ_HANDLED; 1552 return IRQ_HANDLED;
1552} 1553}
1553 1554
@@ -1556,7 +1557,7 @@ static irqreturn_t ic_eof_irq(int irq, void *dev_id)
1556 struct idmac_channel *ichan = dev_id; 1557 struct idmac_channel *ichan = dev_id;
1557 printk(KERN_DEBUG "Got EOF IRQ %d on Channel %d\n", 1558 printk(KERN_DEBUG "Got EOF IRQ %d on Channel %d\n",
1558 irq, ichan->dma_chan.chan_id); 1559 irq, ichan->dma_chan.chan_id);
1559 disable_irq(irq); 1560 disable_irq_nosync(irq);
1560 return IRQ_HANDLED; 1561 return IRQ_HANDLED;
1561} 1562}
1562 1563
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h
index 28f2c3f959b5..6ad95c8d6363 100644
--- a/drivers/edac/edac_core.h
+++ b/drivers/edac/edac_core.h
@@ -767,11 +767,19 @@ static inline void pci_write_bits16(struct pci_dev *pdev, int offset,
767 pci_write_config_word(pdev, offset, value); 767 pci_write_config_word(pdev, offset, value);
768} 768}
769 769
770/* write all or some bits in a dword-register*/ 770/*
771 * pci_write_bits32
772 *
773 * edac local routine to do pci_write_config_dword, but adds
774 * a mask parameter. If mask is all ones, ignore the mask.
775 * Otherwise utilize the mask to isolate specified bits
776 *
777 * write all or some bits in a dword-register
778 */
771static inline void pci_write_bits32(struct pci_dev *pdev, int offset, 779static inline void pci_write_bits32(struct pci_dev *pdev, int offset,
772 u32 value, u32 mask) 780 u32 value, u32 mask)
773{ 781{
774 if (mask != 0xffff) { 782 if (mask != 0xffffffff) {
775 u32 buf; 783 u32 buf;
776 784
777 pci_read_config_dword(pdev, offset, &buf); 785 pci_read_config_dword(pdev, offset, &buf);
diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
index ca9113e1c106..a7d2c717d033 100644
--- a/drivers/edac/edac_device.c
+++ b/drivers/edac/edac_device.c
@@ -389,7 +389,7 @@ static void del_edac_device_from_global_list(struct edac_device_ctl_info
389 */ 389 */
390static void edac_device_workq_function(struct work_struct *work_req) 390static void edac_device_workq_function(struct work_struct *work_req)
391{ 391{
392 struct delayed_work *d_work = (struct delayed_work *)work_req; 392 struct delayed_work *d_work = to_delayed_work(work_req);
393 struct edac_device_ctl_info *edac_dev = to_edac_device_ctl_work(d_work); 393 struct edac_device_ctl_info *edac_dev = to_edac_device_ctl_work(d_work);
394 394
395 mutex_lock(&device_ctls_mutex); 395 mutex_lock(&device_ctls_mutex);
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 25d66940b4fa..335b7ebdb11c 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -260,7 +260,7 @@ static int edac_mc_assert_error_check_and_clear(void)
260 */ 260 */
261static void edac_mc_workq_function(struct work_struct *work_req) 261static void edac_mc_workq_function(struct work_struct *work_req)
262{ 262{
263 struct delayed_work *d_work = (struct delayed_work *)work_req; 263 struct delayed_work *d_work = to_delayed_work(work_req);
264 struct mem_ctl_info *mci = to_edac_mem_ctl_work(d_work); 264 struct mem_ctl_info *mci = to_edac_mem_ctl_work(d_work);
265 265
266 mutex_lock(&mem_ctls_mutex); 266 mutex_lock(&mem_ctls_mutex);
diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
index 5b150aea703a..30b585b1d60b 100644
--- a/drivers/edac/edac_pci.c
+++ b/drivers/edac/edac_pci.c
@@ -233,7 +233,7 @@ EXPORT_SYMBOL_GPL(edac_pci_find);
233 */ 233 */
234static void edac_pci_workq_function(struct work_struct *work_req) 234static void edac_pci_workq_function(struct work_struct *work_req)
235{ 235{
236 struct delayed_work *d_work = (struct delayed_work *)work_req; 236 struct delayed_work *d_work = to_delayed_work(work_req);
237 struct edac_pci_ctl_info *pci = to_edac_pci_ctl_work(d_work); 237 struct edac_pci_ctl_info *pci = to_edac_pci_ctl_work(d_work);
238 int msec; 238 int msec;
239 unsigned long delay; 239 unsigned long delay;
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 4637a4a757df..7c8c2d72916f 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -674,7 +674,7 @@ static void mpc85xx_mc_check(struct mem_ctl_info *mci)
674 int row_index; 674 int row_index;
675 675
676 err_detect = in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT); 676 err_detect = in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT);
677 if (err_detect) 677 if (!err_detect)
678 return; 678 return;
679 679
680 mpc85xx_mc_printk(mci, KERN_ERR, "Err Detect Register: %#8.8x\n", 680 mpc85xx_mc_printk(mci, KERN_ERR, "Err Detect Register: %#8.8x\n",
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c
index 7b7ddc2d51c9..420a96e7f2db 100644
--- a/drivers/firmware/iscsi_ibft.c
+++ b/drivers/firmware/iscsi_ibft.c
@@ -754,11 +754,11 @@ static int __init ibft_check_nic_for(struct ibft_nic *nic, int entry)
754 rc = 1; 754 rc = 1;
755 break; 755 break;
756 case ibft_eth_ip_addr: 756 case ibft_eth_ip_addr:
757 if (!memcmp(nic->dhcp, nulls, sizeof(nic->dhcp))) 757 if (memcmp(nic->ip_addr, nulls, sizeof(nic->ip_addr)))
758 rc = 1; 758 rc = 1;
759 break; 759 break;
760 case ibft_eth_subnet_mask: 760 case ibft_eth_subnet_mask:
761 if (!memcmp(nic->dhcp, nulls, sizeof(nic->dhcp))) 761 if (nic->subnet_mask_prefix)
762 rc = 1; 762 rc = 1;
763 break; 763 break;
764 case ibft_eth_origin: 764 case ibft_eth_origin:
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
index 3a22eb9be378..4cd35d8fd799 100644
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -71,6 +71,7 @@ config DRM_I915
71 select FB_CFB_COPYAREA 71 select FB_CFB_COPYAREA
72 select FB_CFB_IMAGEBLIT 72 select FB_CFB_IMAGEBLIT
73 select FB 73 select FB
74 select FRAMEBUFFER_CONSOLE if !EMBEDDED
74 tristate "i915 driver" 75 tristate "i915 driver"
75 help 76 help
76 Choose this option if you have a system that has Intel 830M, 845G, 77 Choose this option if you have a system that has Intel 830M, 845G,
@@ -83,6 +84,12 @@ config DRM_I915
83config DRM_I915_KMS 84config DRM_I915_KMS
84 bool "Enable modesetting on intel by default" 85 bool "Enable modesetting on intel by default"
85 depends on DRM_I915 86 depends on DRM_I915
87 # i915 KMS depends on ACPI_VIDEO when ACPI is enabled
88 # but for select to work, need to select ACPI_VIDEO's dependencies, ick
89 select VIDEO_OUTPUT_CONTROL if ACPI
90 select BACKLIGHT_CLASS_DEVICE if ACPI
91 select INPUT if ACPI
92 select ACPI_VIDEO if ACPI
86 help 93 help
87 Choose this option if you want kernel modesetting enabled by default, 94 Choose this option if you want kernel modesetting enabled by default,
88 and you have a new enough userspace to support this. Running old 95 and you have a new enough userspace to support this. Running old
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index a04639dc633d..45890447feec 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -561,7 +561,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
561 int saved_x, saved_y; 561 int saved_x, saved_y;
562 struct drm_encoder *encoder; 562 struct drm_encoder *encoder;
563 bool ret = true; 563 bool ret = true;
564 bool depth_changed, bpp_changed;
565 564
566 adjusted_mode = drm_mode_duplicate(dev, mode); 565 adjusted_mode = drm_mode_duplicate(dev, mode);
567 566
@@ -570,15 +569,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
570 if (!crtc->enabled) 569 if (!crtc->enabled)
571 return true; 570 return true;
572 571
573 if (old_fb && crtc->fb) {
574 depth_changed = (old_fb->depth != crtc->fb->depth);
575 bpp_changed = (old_fb->bits_per_pixel !=
576 crtc->fb->bits_per_pixel);
577 } else {
578 depth_changed = true;
579 bpp_changed = true;
580 }
581
582 saved_mode = crtc->mode; 572 saved_mode = crtc->mode;
583 saved_x = crtc->x; 573 saved_x = crtc->x;
584 saved_y = crtc->y; 574 saved_y = crtc->y;
@@ -590,15 +580,6 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
590 crtc->x = x; 580 crtc->x = x;
591 crtc->y = y; 581 crtc->y = y;
592 582
593 if (drm_mode_equal(&saved_mode, &crtc->mode)) {
594 if (saved_x != crtc->x || saved_y != crtc->y ||
595 depth_changed || bpp_changed) {
596 ret = !crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y,
597 old_fb);
598 goto done;
599 }
600 }
601
602 /* Pass our mode to the connectors and the CRTC to give them a chance to 583 /* Pass our mode to the connectors and the CRTC to give them a chance to
603 * adjust it according to limitations or connector properties, and also 584 * adjust it according to limitations or connector properties, and also
604 * a chance to reject the mode entirely. 585 * a chance to reject the mode entirely.
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index c4ada8b6295b..f01def16a669 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -456,7 +456,8 @@ int drm_ioctl(struct inode *inode, struct file *filp,
456 retcode = -EINVAL; 456 retcode = -EINVAL;
457 } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) || 457 } else if (((ioctl->flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)) ||
458 ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) || 458 ((ioctl->flags & DRM_AUTH) && !file_priv->authenticated) ||
459 ((ioctl->flags & DRM_MASTER) && !file_priv->is_master)) { 459 ((ioctl->flags & DRM_MASTER) && !file_priv->is_master) ||
460 (!(ioctl->flags & DRM_CONTROL_ALLOW) && (file_priv->minor->type == DRM_MINOR_CONTROL))) {
460 retcode = -EACCES; 461 retcode = -EACCES;
461 } else { 462 } else {
462 if (cmd & (IOC_IN | IOC_OUT)) { 463 if (cmd & (IOC_IN | IOC_OUT)) {
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index d009661781bc..b9631e3a1ea6 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -159,6 +159,9 @@ void drm_master_put(struct drm_master **master)
159int drm_setmaster_ioctl(struct drm_device *dev, void *data, 159int drm_setmaster_ioctl(struct drm_device *dev, void *data,
160 struct drm_file *file_priv) 160 struct drm_file *file_priv)
161{ 161{
162 if (file_priv->is_master)
163 return 0;
164
162 if (file_priv->minor->master && file_priv->minor->master != file_priv->master) 165 if (file_priv->minor->master && file_priv->minor->master != file_priv->master)
163 return -EINVAL; 166 return -EINVAL;
164 167
@@ -169,6 +172,7 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
169 file_priv->minor->master != file_priv->master) { 172 file_priv->minor->master != file_priv->master) {
170 mutex_lock(&dev->struct_mutex); 173 mutex_lock(&dev->struct_mutex);
171 file_priv->minor->master = drm_master_get(file_priv->master); 174 file_priv->minor->master = drm_master_get(file_priv->master);
175 file_priv->is_master = 1;
172 mutex_unlock(&dev->struct_mutex); 176 mutex_unlock(&dev->struct_mutex);
173 } 177 }
174 178
@@ -178,10 +182,15 @@ int drm_setmaster_ioctl(struct drm_device *dev, void *data,
178int drm_dropmaster_ioctl(struct drm_device *dev, void *data, 182int drm_dropmaster_ioctl(struct drm_device *dev, void *data,
179 struct drm_file *file_priv) 183 struct drm_file *file_priv)
180{ 184{
181 if (!file_priv->master) 185 if (!file_priv->is_master)
186 return -EINVAL;
187
188 if (!file_priv->minor->master)
182 return -EINVAL; 189 return -EINVAL;
190
183 mutex_lock(&dev->struct_mutex); 191 mutex_lock(&dev->struct_mutex);
184 drm_master_put(&file_priv->minor->master); 192 drm_master_put(&file_priv->minor->master);
193 file_priv->is_master = 0;
185 mutex_unlock(&dev->struct_mutex); 194 mutex_unlock(&dev->struct_mutex);
186 return 0; 195 return 0;
187} 196}
@@ -393,14 +402,14 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
393 if (dev->driver->load) { 402 if (dev->driver->load) {
394 ret = dev->driver->load(dev, ent->driver_data); 403 ret = dev->driver->load(dev, ent->driver_data);
395 if (ret) 404 if (ret)
396 goto err_g3; 405 goto err_g4;
397 } 406 }
398 407
399 /* setup the grouping for the legacy output */ 408 /* setup the grouping for the legacy output */
400 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 409 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
401 ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group); 410 ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
402 if (ret) 411 if (ret)
403 goto err_g3; 412 goto err_g4;
404 } 413 }
405 414
406 list_add_tail(&dev->driver_item, &driver->device_list); 415 list_add_tail(&dev->driver_item, &driver->device_list);
@@ -411,8 +420,11 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
411 420
412 return 0; 421 return 0;
413 422
414err_g3: 423err_g4:
415 drm_put_minor(&dev->primary); 424 drm_put_minor(&dev->primary);
425err_g3:
426 if (drm_core_check_feature(dev, DRIVER_MODESET))
427 drm_put_minor(&dev->control);
416err_g2: 428err_g2:
417 pci_disable_device(pdev); 429 pci_disable_device(pdev);
418err_g1: 430err_g1:
@@ -493,11 +505,11 @@ void drm_put_dev(struct drm_device *dev)
493 dev->agp = NULL; 505 dev->agp = NULL;
494 } 506 }
495 507
496 drm_ht_remove(&dev->map_hash);
497 drm_ctxbitmap_cleanup(dev);
498
499 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) 508 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
500 drm_rmmap(dev, r_list->map); 509 drm_rmmap(dev, r_list->map);
510 drm_ht_remove(&dev->map_hash);
511
512 drm_ctxbitmap_cleanup(dev);
501 513
502 if (drm_core_check_feature(dev, DRIVER_MODESET)) 514 if (drm_core_check_feature(dev, DRIVER_MODESET))
503 drm_put_minor(&dev->control); 515 drm_put_minor(&dev->control);
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index bc0c6849360c..8f9372921f82 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -132,6 +132,7 @@ void drm_sysfs_destroy(void)
132 */ 132 */
133static void drm_sysfs_device_release(struct device *dev) 133static void drm_sysfs_device_release(struct device *dev)
134{ 134{
135 memset(dev, 0, sizeof(struct device));
135 return; 136 return;
136} 137}
137 138
@@ -488,9 +489,7 @@ int drm_sysfs_device_add(struct drm_minor *minor)
488 489
489 return 0; 490 return 0;
490 491
491 device_unregister(&minor->kdev);
492err_out: 492err_out:
493
494 return err; 493 return err;
495} 494}
496 495
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index a000cf028826..53d544552625 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -713,18 +713,18 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
713 mutex_unlock(&dev->struct_mutex); 713 mutex_unlock(&dev->struct_mutex);
714 if (ret) { 714 if (ret) {
715 DRM_ERROR("i915_dispatch_cmdbuffer failed\n"); 715 DRM_ERROR("i915_dispatch_cmdbuffer failed\n");
716 goto fail_batch_free; 716 goto fail_clip_free;
717 } 717 }
718 718
719 if (sarea_priv) 719 if (sarea_priv)
720 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); 720 sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv);
721 721
722fail_batch_free:
723 drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);
724fail_clip_free: 722fail_clip_free:
725 drm_free(cliprects, 723 drm_free(cliprects,
726 cmdbuf->num_cliprects * sizeof(struct drm_clip_rect), 724 cmdbuf->num_cliprects * sizeof(struct drm_clip_rect),
727 DRM_MEM_DRIVER); 725 DRM_MEM_DRIVER);
726fail_batch_free:
727 drm_free(batch_data, cmdbuf->sz, DRM_MEM_DRIVER);
728 728
729 return ret; 729 return ret;
730} 730}
@@ -1011,8 +1011,16 @@ static int i915_load_modeset_init(struct drm_device *dev)
1011 /* Basic memrange allocator for stolen space (aka vram) */ 1011 /* Basic memrange allocator for stolen space (aka vram) */
1012 drm_mm_init(&dev_priv->vram, 0, prealloc_size); 1012 drm_mm_init(&dev_priv->vram, 0, prealloc_size);
1013 1013
1014 /* Let GEM Manage from end of prealloc space to end of aperture */ 1014 /* Let GEM Manage from end of prealloc space to end of aperture.
1015 i915_gem_do_init(dev, prealloc_size, agp_size); 1015 *
1016 * However, leave one page at the end still bound to the scratch page.
1017 * There are a number of places where the hardware apparently
1018 * prefetches past the end of the object, and we've seen multiple
1019 * hangs with the GPU head pointer stuck in a batchbuffer bound
1020 * at the last page of the aperture. One page should be enough to
1021 * keep any prefetching inside of the aperture.
1022 */
1023 i915_gem_do_init(dev, prealloc_size, agp_size - 4096);
1016 1024
1017 ret = i915_gem_init_ringbuffer(dev); 1025 ret = i915_gem_init_ringbuffer(dev);
1018 if (ret) 1026 if (ret)
@@ -1232,7 +1240,7 @@ int i915_driver_unload(struct drm_device *dev)
1232 if (dev_priv->regs != NULL) 1240 if (dev_priv->regs != NULL)
1233 iounmap(dev_priv->regs); 1241 iounmap(dev_priv->regs);
1234 1242
1235 intel_opregion_free(dev); 1243 intel_opregion_free(dev, 0);
1236 1244
1237 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 1245 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
1238 intel_modeset_cleanup(dev); 1246 intel_modeset_cleanup(dev);
@@ -1350,6 +1358,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
1350 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0), 1358 DRM_IOCTL_DEF(DRM_I915_GEM_SET_TILING, i915_gem_set_tiling, 0),
1351 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0), 1359 DRM_IOCTL_DEF(DRM_I915_GEM_GET_TILING, i915_gem_get_tiling, 0),
1352 DRM_IOCTL_DEF(DRM_I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, 0), 1360 DRM_IOCTL_DEF(DRM_I915_GEM_GET_APERTURE, i915_gem_get_aperture_ioctl, 0),
1361 DRM_IOCTL_DEF(DRM_I915_GET_PIPE_FROM_CRTC_ID, intel_get_pipe_from_crtc_id, 0),
1353}; 1362};
1354 1363
1355int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); 1364int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 6503e2210f65..98560e1e899a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -77,7 +77,7 @@ static int i915_suspend(struct drm_device *dev, pm_message_t state)
77 drm_irq_uninstall(dev); 77 drm_irq_uninstall(dev);
78 } 78 }
79 79
80 intel_opregion_free(dev); 80 intel_opregion_free(dev, 1);
81 81
82 if (state.event == PM_EVENT_SUSPEND) { 82 if (state.event == PM_EVENT_SUSPEND) {
83 /* Shut down the device */ 83 /* Shut down the device */
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 3750d8003048..9b149fe824c3 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -283,6 +283,7 @@ typedef struct drm_i915_private {
283 u8 saveAR[21]; 283 u8 saveAR[21];
284 u8 saveDACMASK; 284 u8 saveDACMASK;
285 u8 saveCR[37]; 285 u8 saveCR[37];
286 uint64_t saveFENCE[16];
286 287
287 struct { 288 struct {
288 struct drm_mm gtt_space; 289 struct drm_mm gtt_space;
@@ -446,6 +447,9 @@ struct drm_i915_gem_object {
446 uint32_t tiling_mode; 447 uint32_t tiling_mode;
447 uint32_t stride; 448 uint32_t stride;
448 449
450 /** Record of address bit 17 of each page at last unbind. */
451 long *bit_17;
452
449 /** AGP mapping type (AGP_USER_MEMORY or AGP_USER_CACHED_MEMORY */ 453 /** AGP mapping type (AGP_USER_MEMORY or AGP_USER_CACHED_MEMORY */
450 uint32_t agp_type; 454 uint32_t agp_type;
451 455
@@ -635,9 +639,13 @@ int i915_gem_attach_phys_object(struct drm_device *dev,
635void i915_gem_detach_phys_object(struct drm_device *dev, 639void i915_gem_detach_phys_object(struct drm_device *dev,
636 struct drm_gem_object *obj); 640 struct drm_gem_object *obj);
637void i915_gem_free_all_phys_object(struct drm_device *dev); 641void i915_gem_free_all_phys_object(struct drm_device *dev);
642int i915_gem_object_get_pages(struct drm_gem_object *obj);
643void i915_gem_object_put_pages(struct drm_gem_object *obj);
638 644
639/* i915_gem_tiling.c */ 645/* i915_gem_tiling.c */
640void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); 646void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);
647void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj);
648void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj);
641 649
642/* i915_gem_debug.c */ 650/* i915_gem_debug.c */
643void i915_gem_dump_object(struct drm_gem_object *obj, int len, 651void i915_gem_dump_object(struct drm_gem_object *obj, int len,
@@ -667,12 +675,12 @@ extern int i915_restore_state(struct drm_device *dev);
667#ifdef CONFIG_ACPI 675#ifdef CONFIG_ACPI
668/* i915_opregion.c */ 676/* i915_opregion.c */
669extern int intel_opregion_init(struct drm_device *dev, int resume); 677extern int intel_opregion_init(struct drm_device *dev, int resume);
670extern void intel_opregion_free(struct drm_device *dev); 678extern void intel_opregion_free(struct drm_device *dev, int suspend);
671extern void opregion_asle_intr(struct drm_device *dev); 679extern void opregion_asle_intr(struct drm_device *dev);
672extern void opregion_enable_asle(struct drm_device *dev); 680extern void opregion_enable_asle(struct drm_device *dev);
673#else 681#else
674static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; } 682static inline int intel_opregion_init(struct drm_device *dev, int resume) { return 0; }
675static inline void intel_opregion_free(struct drm_device *dev) { return; } 683static inline void intel_opregion_free(struct drm_device *dev, int suspend) { return; }
676static inline void opregion_asle_intr(struct drm_device *dev) { return; } 684static inline void opregion_asle_intr(struct drm_device *dev) { return; }
677static inline void opregion_enable_asle(struct drm_device *dev) { return; } 685static inline void opregion_enable_asle(struct drm_device *dev) { return; }
678#endif 686#endif
@@ -698,13 +706,8 @@ extern void intel_modeset_cleanup(struct drm_device *dev);
698#define I915_WRITE16(reg, val) writel(val, dev_priv->regs + (reg)) 706#define I915_WRITE16(reg, val) writel(val, dev_priv->regs + (reg))
699#define I915_READ8(reg) readb(dev_priv->regs + (reg)) 707#define I915_READ8(reg) readb(dev_priv->regs + (reg))
700#define I915_WRITE8(reg, val) writeb(val, dev_priv->regs + (reg)) 708#define I915_WRITE8(reg, val) writeb(val, dev_priv->regs + (reg))
701#ifdef writeq
702#define I915_WRITE64(reg, val) writeq(val, dev_priv->regs + (reg)) 709#define I915_WRITE64(reg, val) writeq(val, dev_priv->regs + (reg))
703#else 710#define I915_READ64(reg) readq(dev_priv->regs + (reg))
704#define I915_WRITE64(reg, val) (writel(val, dev_priv->regs + (reg)), \
705 writel(upper_32_bits(val), dev_priv->regs + \
706 (reg) + 4))
707#endif
708#define POSTING_READ(reg) (void)I915_READ(reg) 711#define POSTING_READ(reg) (void)I915_READ(reg)
709 712
710#define I915_VERBOSE 0 713#define I915_VERBOSE 0
@@ -780,15 +783,18 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
780 (dev)->pci_device == 0x2A42 || \ 783 (dev)->pci_device == 0x2A42 || \
781 (dev)->pci_device == 0x2E02 || \ 784 (dev)->pci_device == 0x2E02 || \
782 (dev)->pci_device == 0x2E12 || \ 785 (dev)->pci_device == 0x2E12 || \
783 (dev)->pci_device == 0x2E22) 786 (dev)->pci_device == 0x2E22 || \
787 (dev)->pci_device == 0x2E32)
784 788
785#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) 789#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \
790 (dev)->pci_device == 0x2A12)
786 791
787#define IS_GM45(dev) ((dev)->pci_device == 0x2A42) 792#define IS_GM45(dev) ((dev)->pci_device == 0x2A42)
788 793
789#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ 794#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
790 (dev)->pci_device == 0x2E12 || \ 795 (dev)->pci_device == 0x2E12 || \
791 (dev)->pci_device == 0x2E22 || \ 796 (dev)->pci_device == 0x2E22 || \
797 (dev)->pci_device == 0x2E32 || \
792 IS_GM45(dev)) 798 IS_GM45(dev))
793 799
794#define IS_IGDG(dev) ((dev)->pci_device == 0xa001) 800#define IS_IGDG(dev) ((dev)->pci_device == 0xa001)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 1449b452cc63..b189b49c7602 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -43,8 +43,6 @@ static int i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
43 uint64_t offset, 43 uint64_t offset,
44 uint64_t size); 44 uint64_t size);
45static void i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj); 45static void i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj);
46static int i915_gem_object_get_pages(struct drm_gem_object *obj);
47static void i915_gem_object_put_pages(struct drm_gem_object *obj);
48static int i915_gem_object_wait_rendering(struct drm_gem_object *obj); 46static int i915_gem_object_wait_rendering(struct drm_gem_object *obj);
49static int i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, 47static int i915_gem_object_bind_to_gtt(struct drm_gem_object *obj,
50 unsigned alignment); 48 unsigned alignment);
@@ -143,15 +141,27 @@ fast_shmem_read(struct page **pages,
143 int length) 141 int length)
144{ 142{
145 char __iomem *vaddr; 143 char __iomem *vaddr;
146 int ret; 144 int unwritten;
147 145
148 vaddr = kmap_atomic(pages[page_base >> PAGE_SHIFT], KM_USER0); 146 vaddr = kmap_atomic(pages[page_base >> PAGE_SHIFT], KM_USER0);
149 if (vaddr == NULL) 147 if (vaddr == NULL)
150 return -ENOMEM; 148 return -ENOMEM;
151 ret = __copy_to_user_inatomic(data, vaddr + page_offset, length); 149 unwritten = __copy_to_user_inatomic(data, vaddr + page_offset, length);
152 kunmap_atomic(vaddr, KM_USER0); 150 kunmap_atomic(vaddr, KM_USER0);
153 151
154 return ret; 152 if (unwritten)
153 return -EFAULT;
154
155 return 0;
156}
157
158static int i915_gem_object_needs_bit17_swizzle(struct drm_gem_object *obj)
159{
160 drm_i915_private_t *dev_priv = obj->dev->dev_private;
161 struct drm_i915_gem_object *obj_priv = obj->driver_private;
162
163 return dev_priv->mm.bit_6_swizzle_x == I915_BIT_6_SWIZZLE_9_10_17 &&
164 obj_priv->tiling_mode != I915_TILING_NONE;
155} 165}
156 166
157static inline int 167static inline int
@@ -181,6 +191,64 @@ slow_shmem_copy(struct page *dst_page,
181 return 0; 191 return 0;
182} 192}
183 193
194static inline int
195slow_shmem_bit17_copy(struct page *gpu_page,
196 int gpu_offset,
197 struct page *cpu_page,
198 int cpu_offset,
199 int length,
200 int is_read)
201{
202 char *gpu_vaddr, *cpu_vaddr;
203
204 /* Use the unswizzled path if this page isn't affected. */
205 if ((page_to_phys(gpu_page) & (1 << 17)) == 0) {
206 if (is_read)
207 return slow_shmem_copy(cpu_page, cpu_offset,
208 gpu_page, gpu_offset, length);
209 else
210 return slow_shmem_copy(gpu_page, gpu_offset,
211 cpu_page, cpu_offset, length);
212 }
213
214 gpu_vaddr = kmap_atomic(gpu_page, KM_USER0);
215 if (gpu_vaddr == NULL)
216 return -ENOMEM;
217
218 cpu_vaddr = kmap_atomic(cpu_page, KM_USER1);
219 if (cpu_vaddr == NULL) {
220 kunmap_atomic(gpu_vaddr, KM_USER0);
221 return -ENOMEM;
222 }
223
224 /* Copy the data, XORing A6 with A17 (1). The user already knows he's
225 * XORing with the other bits (A9 for Y, A9 and A10 for X)
226 */
227 while (length > 0) {
228 int cacheline_end = ALIGN(gpu_offset + 1, 64);
229 int this_length = min(cacheline_end - gpu_offset, length);
230 int swizzled_gpu_offset = gpu_offset ^ 64;
231
232 if (is_read) {
233 memcpy(cpu_vaddr + cpu_offset,
234 gpu_vaddr + swizzled_gpu_offset,
235 this_length);
236 } else {
237 memcpy(gpu_vaddr + swizzled_gpu_offset,
238 cpu_vaddr + cpu_offset,
239 this_length);
240 }
241 cpu_offset += this_length;
242 gpu_offset += this_length;
243 length -= this_length;
244 }
245
246 kunmap_atomic(cpu_vaddr, KM_USER1);
247 kunmap_atomic(gpu_vaddr, KM_USER0);
248
249 return 0;
250}
251
184/** 252/**
185 * This is the fast shmem pread path, which attempts to copy_from_user directly 253 * This is the fast shmem pread path, which attempts to copy_from_user directly
186 * from the backing pages of the object to the user's address space. On a 254 * from the backing pages of the object to the user's address space. On a
@@ -269,6 +337,7 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, struct drm_gem_object *obj,
269 int page_length; 337 int page_length;
270 int ret; 338 int ret;
271 uint64_t data_ptr = args->data_ptr; 339 uint64_t data_ptr = args->data_ptr;
340 int do_bit17_swizzling;
272 341
273 remain = args->size; 342 remain = args->size;
274 343
@@ -286,13 +355,15 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, struct drm_gem_object *obj,
286 355
287 down_read(&mm->mmap_sem); 356 down_read(&mm->mmap_sem);
288 pinned_pages = get_user_pages(current, mm, (uintptr_t)args->data_ptr, 357 pinned_pages = get_user_pages(current, mm, (uintptr_t)args->data_ptr,
289 num_pages, 0, 0, user_pages, NULL); 358 num_pages, 1, 0, user_pages, NULL);
290 up_read(&mm->mmap_sem); 359 up_read(&mm->mmap_sem);
291 if (pinned_pages < num_pages) { 360 if (pinned_pages < num_pages) {
292 ret = -EFAULT; 361 ret = -EFAULT;
293 goto fail_put_user_pages; 362 goto fail_put_user_pages;
294 } 363 }
295 364
365 do_bit17_swizzling = i915_gem_object_needs_bit17_swizzle(obj);
366
296 mutex_lock(&dev->struct_mutex); 367 mutex_lock(&dev->struct_mutex);
297 368
298 ret = i915_gem_object_get_pages(obj); 369 ret = i915_gem_object_get_pages(obj);
@@ -327,11 +398,20 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, struct drm_gem_object *obj,
327 if ((data_page_offset + page_length) > PAGE_SIZE) 398 if ((data_page_offset + page_length) > PAGE_SIZE)
328 page_length = PAGE_SIZE - data_page_offset; 399 page_length = PAGE_SIZE - data_page_offset;
329 400
330 ret = slow_shmem_copy(user_pages[data_page_index], 401 if (do_bit17_swizzling) {
331 data_page_offset, 402 ret = slow_shmem_bit17_copy(obj_priv->pages[shmem_page_index],
332 obj_priv->pages[shmem_page_index], 403 shmem_page_offset,
333 shmem_page_offset, 404 user_pages[data_page_index],
334 page_length); 405 data_page_offset,
406 page_length,
407 1);
408 } else {
409 ret = slow_shmem_copy(user_pages[data_page_index],
410 data_page_offset,
411 obj_priv->pages[shmem_page_index],
412 shmem_page_offset,
413 page_length);
414 }
335 if (ret) 415 if (ret)
336 goto fail_put_pages; 416 goto fail_put_pages;
337 417
@@ -383,9 +463,14 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
383 return -EINVAL; 463 return -EINVAL;
384 } 464 }
385 465
386 ret = i915_gem_shmem_pread_fast(dev, obj, args, file_priv); 466 if (i915_gem_object_needs_bit17_swizzle(obj)) {
387 if (ret != 0)
388 ret = i915_gem_shmem_pread_slow(dev, obj, args, file_priv); 467 ret = i915_gem_shmem_pread_slow(dev, obj, args, file_priv);
468 } else {
469 ret = i915_gem_shmem_pread_fast(dev, obj, args, file_priv);
470 if (ret != 0)
471 ret = i915_gem_shmem_pread_slow(dev, obj, args,
472 file_priv);
473 }
389 474
390 drm_gem_object_unreference(obj); 475 drm_gem_object_unreference(obj);
391 476
@@ -727,6 +812,7 @@ i915_gem_shmem_pwrite_slow(struct drm_device *dev, struct drm_gem_object *obj,
727 int page_length; 812 int page_length;
728 int ret; 813 int ret;
729 uint64_t data_ptr = args->data_ptr; 814 uint64_t data_ptr = args->data_ptr;
815 int do_bit17_swizzling;
730 816
731 remain = args->size; 817 remain = args->size;
732 818
@@ -751,6 +837,8 @@ i915_gem_shmem_pwrite_slow(struct drm_device *dev, struct drm_gem_object *obj,
751 goto fail_put_user_pages; 837 goto fail_put_user_pages;
752 } 838 }
753 839
840 do_bit17_swizzling = i915_gem_object_needs_bit17_swizzle(obj);
841
754 mutex_lock(&dev->struct_mutex); 842 mutex_lock(&dev->struct_mutex);
755 843
756 ret = i915_gem_object_get_pages(obj); 844 ret = i915_gem_object_get_pages(obj);
@@ -785,11 +873,20 @@ i915_gem_shmem_pwrite_slow(struct drm_device *dev, struct drm_gem_object *obj,
785 if ((data_page_offset + page_length) > PAGE_SIZE) 873 if ((data_page_offset + page_length) > PAGE_SIZE)
786 page_length = PAGE_SIZE - data_page_offset; 874 page_length = PAGE_SIZE - data_page_offset;
787 875
788 ret = slow_shmem_copy(obj_priv->pages[shmem_page_index], 876 if (do_bit17_swizzling) {
789 shmem_page_offset, 877 ret = slow_shmem_bit17_copy(obj_priv->pages[shmem_page_index],
790 user_pages[data_page_index], 878 shmem_page_offset,
791 data_page_offset, 879 user_pages[data_page_index],
792 page_length); 880 data_page_offset,
881 page_length,
882 0);
883 } else {
884 ret = slow_shmem_copy(obj_priv->pages[shmem_page_index],
885 shmem_page_offset,
886 user_pages[data_page_index],
887 data_page_offset,
888 page_length);
889 }
793 if (ret) 890 if (ret)
794 goto fail_put_pages; 891 goto fail_put_pages;
795 892
@@ -854,6 +951,8 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
854 ret = i915_gem_gtt_pwrite_slow(dev, obj, args, 951 ret = i915_gem_gtt_pwrite_slow(dev, obj, args,
855 file_priv); 952 file_priv);
856 } 953 }
954 } else if (i915_gem_object_needs_bit17_swizzle(obj)) {
955 ret = i915_gem_shmem_pwrite_slow(dev, obj, args, file_priv);
857 } else { 956 } else {
858 ret = i915_gem_shmem_pwrite_fast(dev, obj, args, file_priv); 957 ret = i915_gem_shmem_pwrite_fast(dev, obj, args, file_priv);
859 if (ret == -EFAULT) { 958 if (ret == -EFAULT) {
@@ -1285,7 +1384,7 @@ i915_gem_mmap_gtt_ioctl(struct drm_device *dev, void *data,
1285 return 0; 1384 return 0;
1286} 1385}
1287 1386
1288static void 1387void
1289i915_gem_object_put_pages(struct drm_gem_object *obj) 1388i915_gem_object_put_pages(struct drm_gem_object *obj)
1290{ 1389{
1291 struct drm_i915_gem_object *obj_priv = obj->driver_private; 1390 struct drm_i915_gem_object *obj_priv = obj->driver_private;
@@ -1297,6 +1396,9 @@ i915_gem_object_put_pages(struct drm_gem_object *obj)
1297 if (--obj_priv->pages_refcount != 0) 1396 if (--obj_priv->pages_refcount != 0)
1298 return; 1397 return;
1299 1398
1399 if (obj_priv->tiling_mode != I915_TILING_NONE)
1400 i915_gem_object_save_bit_17_swizzle(obj);
1401
1300 for (i = 0; i < page_count; i++) 1402 for (i = 0; i < page_count; i++)
1301 if (obj_priv->pages[i] != NULL) { 1403 if (obj_priv->pages[i] != NULL) {
1302 if (obj_priv->dirty) 1404 if (obj_priv->dirty)
@@ -1494,8 +1596,19 @@ i915_gem_retire_request(struct drm_device *dev,
1494 1596
1495 if (obj->write_domain != 0) 1597 if (obj->write_domain != 0)
1496 i915_gem_object_move_to_flushing(obj); 1598 i915_gem_object_move_to_flushing(obj);
1497 else 1599 else {
1600 /* Take a reference on the object so it won't be
1601 * freed while the spinlock is held. The list
1602 * protection for this spinlock is safe when breaking
1603 * the lock like this since the next thing we do
1604 * is just get the head of the list again.
1605 */
1606 drm_gem_object_reference(obj);
1498 i915_gem_object_move_to_inactive(obj); 1607 i915_gem_object_move_to_inactive(obj);
1608 spin_unlock(&dev_priv->mm.active_list_lock);
1609 drm_gem_object_unreference(obj);
1610 spin_lock(&dev_priv->mm.active_list_lock);
1611 }
1499 } 1612 }
1500out: 1613out:
1501 spin_unlock(&dev_priv->mm.active_list_lock); 1614 spin_unlock(&dev_priv->mm.active_list_lock);
@@ -1578,11 +1691,20 @@ static int
1578i915_wait_request(struct drm_device *dev, uint32_t seqno) 1691i915_wait_request(struct drm_device *dev, uint32_t seqno)
1579{ 1692{
1580 drm_i915_private_t *dev_priv = dev->dev_private; 1693 drm_i915_private_t *dev_priv = dev->dev_private;
1694 u32 ier;
1581 int ret = 0; 1695 int ret = 0;
1582 1696
1583 BUG_ON(seqno == 0); 1697 BUG_ON(seqno == 0);
1584 1698
1585 if (!i915_seqno_passed(i915_get_gem_seqno(dev), seqno)) { 1699 if (!i915_seqno_passed(i915_get_gem_seqno(dev), seqno)) {
1700 ier = I915_READ(IER);
1701 if (!ier) {
1702 DRM_ERROR("something (likely vbetool) disabled "
1703 "interrupts, re-enabling\n");
1704 i915_driver_irq_preinstall(dev);
1705 i915_driver_irq_postinstall(dev);
1706 }
1707
1586 dev_priv->mm.waiting_gem_seqno = seqno; 1708 dev_priv->mm.waiting_gem_seqno = seqno;
1587 i915_user_irq_get(dev); 1709 i915_user_irq_get(dev);
1588 ret = wait_event_interruptible(dev_priv->irq_queue, 1710 ret = wait_event_interruptible(dev_priv->irq_queue,
@@ -1884,7 +2006,7 @@ i915_gem_evict_everything(struct drm_device *dev)
1884 return ret; 2006 return ret;
1885} 2007}
1886 2008
1887static int 2009int
1888i915_gem_object_get_pages(struct drm_gem_object *obj) 2010i915_gem_object_get_pages(struct drm_gem_object *obj)
1889{ 2011{
1890 struct drm_i915_gem_object *obj_priv = obj->driver_private; 2012 struct drm_i915_gem_object *obj_priv = obj->driver_private;
@@ -1922,6 +2044,10 @@ i915_gem_object_get_pages(struct drm_gem_object *obj)
1922 } 2044 }
1923 obj_priv->pages[i] = page; 2045 obj_priv->pages[i] = page;
1924 } 2046 }
2047
2048 if (obj_priv->tiling_mode != I915_TILING_NONE)
2049 i915_gem_object_do_bit_17_swizzle(obj);
2050
1925 return 0; 2051 return 0;
1926} 2052}
1927 2053
@@ -3002,13 +3128,13 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list,
3002 drm_free(*relocs, reloc_count * sizeof(**relocs), 3128 drm_free(*relocs, reloc_count * sizeof(**relocs),
3003 DRM_MEM_DRIVER); 3129 DRM_MEM_DRIVER);
3004 *relocs = NULL; 3130 *relocs = NULL;
3005 return ret; 3131 return -EFAULT;
3006 } 3132 }
3007 3133
3008 reloc_index += exec_list[i].relocation_count; 3134 reloc_index += exec_list[i].relocation_count;
3009 } 3135 }
3010 3136
3011 return ret; 3137 return 0;
3012} 3138}
3013 3139
3014static int 3140static int
@@ -3017,23 +3143,28 @@ i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object *exec_list,
3017 struct drm_i915_gem_relocation_entry *relocs) 3143 struct drm_i915_gem_relocation_entry *relocs)
3018{ 3144{
3019 uint32_t reloc_count = 0, i; 3145 uint32_t reloc_count = 0, i;
3020 int ret; 3146 int ret = 0;
3021 3147
3022 for (i = 0; i < buffer_count; i++) { 3148 for (i = 0; i < buffer_count; i++) {
3023 struct drm_i915_gem_relocation_entry __user *user_relocs; 3149 struct drm_i915_gem_relocation_entry __user *user_relocs;
3150 int unwritten;
3024 3151
3025 user_relocs = (void __user *)(uintptr_t)exec_list[i].relocs_ptr; 3152 user_relocs = (void __user *)(uintptr_t)exec_list[i].relocs_ptr;
3026 3153
3027 if (ret == 0) { 3154 unwritten = copy_to_user(user_relocs,
3028 ret = copy_to_user(user_relocs, 3155 &relocs[reloc_count],
3029 &relocs[reloc_count], 3156 exec_list[i].relocation_count *
3030 exec_list[i].relocation_count * 3157 sizeof(*relocs));
3031 sizeof(*relocs)); 3158
3159 if (unwritten) {
3160 ret = -EFAULT;
3161 goto err;
3032 } 3162 }
3033 3163
3034 reloc_count += exec_list[i].relocation_count; 3164 reloc_count += exec_list[i].relocation_count;
3035 } 3165 }
3036 3166
3167err:
3037 drm_free(relocs, reloc_count * sizeof(*relocs), DRM_MEM_DRIVER); 3168 drm_free(relocs, reloc_count * sizeof(*relocs), DRM_MEM_DRIVER);
3038 3169
3039 return ret; 3170 return ret;
@@ -3243,7 +3374,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
3243 exec_offset = exec_list[args->buffer_count - 1].offset; 3374 exec_offset = exec_list[args->buffer_count - 1].offset;
3244 3375
3245#if WATCH_EXEC 3376#if WATCH_EXEC
3246 i915_gem_dump_object(object_list[args->buffer_count - 1], 3377 i915_gem_dump_object(batch_obj,
3247 args->batch_len, 3378 args->batch_len,
3248 __func__, 3379 __func__,
3249 ~0); 3380 ~0);
@@ -3308,10 +3439,12 @@ err:
3308 (uintptr_t) args->buffers_ptr, 3439 (uintptr_t) args->buffers_ptr,
3309 exec_list, 3440 exec_list,
3310 sizeof(*exec_list) * args->buffer_count); 3441 sizeof(*exec_list) * args->buffer_count);
3311 if (ret) 3442 if (ret) {
3443 ret = -EFAULT;
3312 DRM_ERROR("failed to copy %d exec entries " 3444 DRM_ERROR("failed to copy %d exec entries "
3313 "back to user (%d)\n", 3445 "back to user (%d)\n",
3314 args->buffer_count, ret); 3446 args->buffer_count, ret);
3447 }
3315 } 3448 }
3316 3449
3317 /* Copy the updated relocations out regardless of current error 3450 /* Copy the updated relocations out regardless of current error
@@ -3593,6 +3726,7 @@ void i915_gem_free_object(struct drm_gem_object *obj)
3593 i915_gem_free_mmap_offset(obj); 3726 i915_gem_free_mmap_offset(obj);
3594 3727
3595 drm_free(obj_priv->page_cpu_valid, 1, DRM_MEM_DRIVER); 3728 drm_free(obj_priv->page_cpu_valid, 1, DRM_MEM_DRIVER);
3729 kfree(obj_priv->bit_17);
3596 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER); 3730 drm_free(obj->driver_private, 1, DRM_MEM_DRIVER);
3597} 3731}
3598 3732
@@ -3962,8 +4096,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
3962 dev_priv->mm.suspended = 0; 4096 dev_priv->mm.suspended = 0;
3963 4097
3964 ret = i915_gem_init_ringbuffer(dev); 4098 ret = i915_gem_init_ringbuffer(dev);
3965 if (ret != 0) 4099 if (ret != 0) {
4100 mutex_unlock(&dev->struct_mutex);
3966 return ret; 4101 return ret;
4102 }
3967 4103
3968 spin_lock(&dev_priv->mm.active_list_lock); 4104 spin_lock(&dev_priv->mm.active_list_lock);
3969 BUG_ON(!list_empty(&dev_priv->mm.active_list)); 4105 BUG_ON(!list_empty(&dev_priv->mm.active_list));
diff --git a/drivers/gpu/drm/i915/i915_gem_debugfs.c b/drivers/gpu/drm/i915/i915_gem_debugfs.c
index a1ac0c5e7307..986f1082c596 100644
--- a/drivers/gpu/drm/i915/i915_gem_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_gem_debugfs.c
@@ -234,6 +234,96 @@ static int i915_hws_info(struct seq_file *m, void *data)
234 return 0; 234 return 0;
235} 235}
236 236
237static void i915_dump_pages(struct seq_file *m, struct page **pages, int page_count)
238{
239 int page, i;
240 uint32_t *mem;
241
242 for (page = 0; page < page_count; page++) {
243 mem = kmap(pages[page]);
244 for (i = 0; i < PAGE_SIZE; i += 4)
245 seq_printf(m, "%08x : %08x\n", i, mem[i / 4]);
246 kunmap(pages[page]);
247 }
248}
249
250static int i915_batchbuffer_info(struct seq_file *m, void *data)
251{
252 struct drm_info_node *node = (struct drm_info_node *) m->private;
253 struct drm_device *dev = node->minor->dev;
254 drm_i915_private_t *dev_priv = dev->dev_private;
255 struct drm_gem_object *obj;
256 struct drm_i915_gem_object *obj_priv;
257 int ret;
258
259 spin_lock(&dev_priv->mm.active_list_lock);
260
261 list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) {
262 obj = obj_priv->obj;
263 if (obj->read_domains & I915_GEM_DOMAIN_COMMAND) {
264 ret = i915_gem_object_get_pages(obj);
265 if (ret) {
266 DRM_ERROR("Failed to get pages: %d\n", ret);
267 spin_unlock(&dev_priv->mm.active_list_lock);
268 return ret;
269 }
270
271 seq_printf(m, "--- gtt_offset = 0x%08x\n", obj_priv->gtt_offset);
272 i915_dump_pages(m, obj_priv->pages, obj->size / PAGE_SIZE);
273
274 i915_gem_object_put_pages(obj);
275 }
276 }
277
278 spin_unlock(&dev_priv->mm.active_list_lock);
279
280 return 0;
281}
282
283static int i915_ringbuffer_data(struct seq_file *m, void *data)
284{
285 struct drm_info_node *node = (struct drm_info_node *) m->private;
286 struct drm_device *dev = node->minor->dev;
287 drm_i915_private_t *dev_priv = dev->dev_private;
288 u8 *virt;
289 uint32_t *ptr, off;
290
291 if (!dev_priv->ring.ring_obj) {
292 seq_printf(m, "No ringbuffer setup\n");
293 return 0;
294 }
295
296 virt = dev_priv->ring.virtual_start;
297
298 for (off = 0; off < dev_priv->ring.Size; off += 4) {
299 ptr = (uint32_t *)(virt + off);
300 seq_printf(m, "%08x : %08x\n", off, *ptr);
301 }
302
303 return 0;
304}
305
306static int i915_ringbuffer_info(struct seq_file *m, void *data)
307{
308 struct drm_info_node *node = (struct drm_info_node *) m->private;
309 struct drm_device *dev = node->minor->dev;
310 drm_i915_private_t *dev_priv = dev->dev_private;
311 unsigned int head, tail, mask;
312
313 head = I915_READ(PRB0_HEAD) & HEAD_ADDR;
314 tail = I915_READ(PRB0_TAIL) & TAIL_ADDR;
315 mask = dev_priv->ring.tail_mask;
316
317 seq_printf(m, "RingHead : %08x\n", head);
318 seq_printf(m, "RingTail : %08x\n", tail);
319 seq_printf(m, "RingMask : %08x\n", mask);
320 seq_printf(m, "RingSize : %08lx\n", dev_priv->ring.Size);
321 seq_printf(m, "Acthd : %08x\n", I915_READ(IS_I965G(dev) ? ACTHD_I965 : ACTHD));
322
323 return 0;
324}
325
326
237static struct drm_info_list i915_gem_debugfs_list[] = { 327static struct drm_info_list i915_gem_debugfs_list[] = {
238 {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, 328 {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST},
239 {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, 329 {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST},
@@ -243,6 +333,9 @@ static struct drm_info_list i915_gem_debugfs_list[] = {
243 {"i915_gem_fence_regs", i915_gem_fence_regs_info, 0}, 333 {"i915_gem_fence_regs", i915_gem_fence_regs_info, 0},
244 {"i915_gem_interrupt", i915_interrupt_info, 0}, 334 {"i915_gem_interrupt", i915_interrupt_info, 0},
245 {"i915_gem_hws", i915_hws_info, 0}, 335 {"i915_gem_hws", i915_hws_info, 0},
336 {"i915_ringbuffer_data", i915_ringbuffer_data, 0},
337 {"i915_ringbuffer_info", i915_ringbuffer_info, 0},
338 {"i915_batchbuffers", i915_batchbuffer_info, 0},
246}; 339};
247#define I915_GEM_DEBUGFS_ENTRIES ARRAY_SIZE(i915_gem_debugfs_list) 340#define I915_GEM_DEBUGFS_ENTRIES ARRAY_SIZE(i915_gem_debugfs_list)
248 341
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 6be3f927c86a..52a059354e83 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -25,6 +25,8 @@
25 * 25 *
26 */ 26 */
27 27
28#include "linux/string.h"
29#include "linux/bitops.h"
28#include "drmP.h" 30#include "drmP.h"
29#include "drm.h" 31#include "drm.h"
30#include "i915_drm.h" 32#include "i915_drm.h"
@@ -127,8 +129,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
127 swizzle_y = I915_BIT_6_SWIZZLE_9_11; 129 swizzle_y = I915_BIT_6_SWIZZLE_9_11;
128 } else { 130 } else {
129 /* Bit 17 swizzling by the CPU in addition. */ 131 /* Bit 17 swizzling by the CPU in addition. */
130 swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN; 132 swizzle_x = I915_BIT_6_SWIZZLE_9_10_17;
131 swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN; 133 swizzle_y = I915_BIT_6_SWIZZLE_9_17;
132 } 134 }
133 break; 135 break;
134 } 136 }
@@ -281,13 +283,25 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
281 mutex_lock(&dev->struct_mutex); 283 mutex_lock(&dev->struct_mutex);
282 284
283 if (args->tiling_mode == I915_TILING_NONE) { 285 if (args->tiling_mode == I915_TILING_NONE) {
284 obj_priv->tiling_mode = I915_TILING_NONE;
285 args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE; 286 args->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
286 } else { 287 } else {
287 if (args->tiling_mode == I915_TILING_X) 288 if (args->tiling_mode == I915_TILING_X)
288 args->swizzle_mode = dev_priv->mm.bit_6_swizzle_x; 289 args->swizzle_mode = dev_priv->mm.bit_6_swizzle_x;
289 else 290 else
290 args->swizzle_mode = dev_priv->mm.bit_6_swizzle_y; 291 args->swizzle_mode = dev_priv->mm.bit_6_swizzle_y;
292
293 /* Hide bit 17 swizzling from the user. This prevents old Mesa
294 * from aborting the application on sw fallbacks to bit 17,
295 * and we use the pread/pwrite bit17 paths to swizzle for it.
296 * If there was a user that was relying on the swizzle
297 * information for drm_intel_bo_map()ed reads/writes this would
298 * break it, but we don't have any of those.
299 */
300 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_17)
301 args->swizzle_mode = I915_BIT_6_SWIZZLE_9;
302 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_10_17)
303 args->swizzle_mode = I915_BIT_6_SWIZZLE_9_10;
304
291 /* If we can't handle the swizzling, make it untiled. */ 305 /* If we can't handle the swizzling, make it untiled. */
292 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_UNKNOWN) { 306 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_UNKNOWN) {
293 args->tiling_mode = I915_TILING_NONE; 307 args->tiling_mode = I915_TILING_NONE;
@@ -354,8 +368,100 @@ i915_gem_get_tiling(struct drm_device *dev, void *data,
354 DRM_ERROR("unknown tiling mode\n"); 368 DRM_ERROR("unknown tiling mode\n");
355 } 369 }
356 370
371 /* Hide bit 17 from the user -- see comment in i915_gem_set_tiling */
372 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_17)
373 args->swizzle_mode = I915_BIT_6_SWIZZLE_9;
374 if (args->swizzle_mode == I915_BIT_6_SWIZZLE_9_10_17)
375 args->swizzle_mode = I915_BIT_6_SWIZZLE_9_10;
376
357 drm_gem_object_unreference(obj); 377 drm_gem_object_unreference(obj);
358 mutex_unlock(&dev->struct_mutex); 378 mutex_unlock(&dev->struct_mutex);
359 379
360 return 0; 380 return 0;
361} 381}
382
383/**
384 * Swap every 64 bytes of this page around, to account for it having a new
385 * bit 17 of its physical address and therefore being interpreted differently
386 * by the GPU.
387 */
388static int
389i915_gem_swizzle_page(struct page *page)
390{
391 char *vaddr;
392 int i;
393 char temp[64];
394
395 vaddr = kmap(page);
396 if (vaddr == NULL)
397 return -ENOMEM;
398
399 for (i = 0; i < PAGE_SIZE; i += 128) {
400 memcpy(temp, &vaddr[i], 64);
401 memcpy(&vaddr[i], &vaddr[i + 64], 64);
402 memcpy(&vaddr[i + 64], temp, 64);
403 }
404
405 kunmap(page);
406
407 return 0;
408}
409
410void
411i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj)
412{
413 struct drm_device *dev = obj->dev;
414 drm_i915_private_t *dev_priv = dev->dev_private;
415 struct drm_i915_gem_object *obj_priv = obj->driver_private;
416 int page_count = obj->size >> PAGE_SHIFT;
417 int i;
418
419 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
420 return;
421
422 if (obj_priv->bit_17 == NULL)
423 return;
424
425 for (i = 0; i < page_count; i++) {
426 char new_bit_17 = page_to_phys(obj_priv->pages[i]) >> 17;
427 if ((new_bit_17 & 0x1) !=
428 (test_bit(i, obj_priv->bit_17) != 0)) {
429 int ret = i915_gem_swizzle_page(obj_priv->pages[i]);
430 if (ret != 0) {
431 DRM_ERROR("Failed to swizzle page\n");
432 return;
433 }
434 set_page_dirty(obj_priv->pages[i]);
435 }
436 }
437}
438
439void
440i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj)
441{
442 struct drm_device *dev = obj->dev;
443 drm_i915_private_t *dev_priv = dev->dev_private;
444 struct drm_i915_gem_object *obj_priv = obj->driver_private;
445 int page_count = obj->size >> PAGE_SHIFT;
446 int i;
447
448 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
449 return;
450
451 if (obj_priv->bit_17 == NULL) {
452 obj_priv->bit_17 = kmalloc(BITS_TO_LONGS(page_count) *
453 sizeof(long), GFP_KERNEL);
454 if (obj_priv->bit_17 == NULL) {
455 DRM_ERROR("Failed to allocate memory for bit 17 "
456 "record\n");
457 return;
458 }
459 }
460
461 for (i = 0; i < page_count; i++) {
462 if (page_to_phys(obj_priv->pages[i]) & (1 << 17))
463 __set_bit(i, obj_priv->bit_17);
464 else
465 __clear_bit(i, obj_priv->bit_17);
466 }
467}
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index ee7ce7b78cf7..98bb4c878c4e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -406,7 +406,7 @@ int i915_irq_emit(struct drm_device *dev, void *data,
406 drm_i915_irq_emit_t *emit = data; 406 drm_i915_irq_emit_t *emit = data;
407 int result; 407 int result;
408 408
409 if (!dev_priv) { 409 if (!dev_priv || !dev_priv->ring.virtual_start) {
410 DRM_ERROR("called with no initialization\n"); 410 DRM_ERROR("called with no initialization\n");
411 return -EINVAL; 411 return -EINVAL;
412 } 412 }
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 69427722d20e..dc425e74a268 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -370,11 +370,8 @@ int intel_opregion_init(struct drm_device *dev, int resume)
370 if (mboxes & MBOX_ACPI) { 370 if (mboxes & MBOX_ACPI) {
371 DRM_DEBUG("Public ACPI methods supported\n"); 371 DRM_DEBUG("Public ACPI methods supported\n");
372 opregion->acpi = base + OPREGION_ACPI_OFFSET; 372 opregion->acpi = base + OPREGION_ACPI_OFFSET;
373 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 373 if (drm_core_check_feature(dev, DRIVER_MODESET))
374 intel_didl_outputs(dev); 374 intel_didl_outputs(dev);
375 if (!resume)
376 acpi_video_register();
377 }
378 } else { 375 } else {
379 DRM_DEBUG("Public ACPI methods not supported\n"); 376 DRM_DEBUG("Public ACPI methods not supported\n");
380 err = -ENOTSUPP; 377 err = -ENOTSUPP;
@@ -389,8 +386,13 @@ int intel_opregion_init(struct drm_device *dev, int resume)
389 if (mboxes & MBOX_ASLE) { 386 if (mboxes & MBOX_ASLE) {
390 DRM_DEBUG("ASLE supported\n"); 387 DRM_DEBUG("ASLE supported\n");
391 opregion->asle = base + OPREGION_ASLE_OFFSET; 388 opregion->asle = base + OPREGION_ASLE_OFFSET;
389 opregion_enable_asle(dev);
392 } 390 }
393 391
392 if (!resume)
393 acpi_video_register();
394
395
394 /* Notify BIOS we are ready to handle ACPI video ext notifs. 396 /* Notify BIOS we are ready to handle ACPI video ext notifs.
395 * Right now, all the events are handled by the ACPI video module. 397 * Right now, all the events are handled by the ACPI video module.
396 * We don't actually need to do anything with them. */ 398 * We don't actually need to do anything with them. */
@@ -408,7 +410,7 @@ err_out:
408 return err; 410 return err;
409} 411}
410 412
411void intel_opregion_free(struct drm_device *dev) 413void intel_opregion_free(struct drm_device *dev, int suspend)
412{ 414{
413 struct drm_i915_private *dev_priv = dev->dev_private; 415 struct drm_i915_private *dev_priv = dev->dev_private;
414 struct intel_opregion *opregion = &dev_priv->opregion; 416 struct intel_opregion *opregion = &dev_priv->opregion;
@@ -416,6 +418,9 @@ void intel_opregion_free(struct drm_device *dev)
416 if (!opregion->enabled) 418 if (!opregion->enabled)
417 return; 419 return;
418 420
421 if (!suspend)
422 acpi_video_exit();
423
419 opregion->acpi->drdy = 0; 424 opregion->acpi->drdy = 0;
420 425
421 system_opregion = NULL; 426 system_opregion = NULL;
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index e805b590ae71..15da44cf21b1 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -526,6 +526,7 @@
526#define DPLLA_INPUT_BUFFER_ENABLE (1 << 0) 526#define DPLLA_INPUT_BUFFER_ENABLE (1 << 0)
527#define D_STATE 0x6104 527#define D_STATE 0x6104
528#define CG_2D_DIS 0x6200 528#define CG_2D_DIS 0x6200
529#define DPCUNIT_CLOCK_GATE_DISABLE (1 << 24)
529#define CG_3D_DIS 0x6204 530#define CG_3D_DIS 0x6204
530 531
531/* 532/*
@@ -1446,6 +1447,7 @@
1446#define DISPPLANE_NO_LINE_DOUBLE 0 1447#define DISPPLANE_NO_LINE_DOUBLE 0
1447#define DISPPLANE_STEREO_POLARITY_FIRST 0 1448#define DISPPLANE_STEREO_POLARITY_FIRST 0
1448#define DISPPLANE_STEREO_POLARITY_SECOND (1<<18) 1449#define DISPPLANE_STEREO_POLARITY_SECOND (1<<18)
1450#define DISPPLANE_TILED (1<<10)
1449#define DSPAADDR 0x70184 1451#define DSPAADDR 0x70184
1450#define DSPASTRIDE 0x70188 1452#define DSPASTRIDE 0x70188
1451#define DSPAPOS 0x7018C /* reserved */ 1453#define DSPAPOS 0x7018C /* reserved */
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index d669cc2b42c0..ce8a21344a71 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -349,6 +349,18 @@ int i915_save_state(struct drm_device *dev)
349 for (i = 0; i < 3; i++) 349 for (i = 0; i < 3; i++)
350 dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2)); 350 dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2));
351 351
352 /* Fences */
353 if (IS_I965G(dev)) {
354 for (i = 0; i < 16; i++)
355 dev_priv->saveFENCE[i] = I915_READ64(FENCE_REG_965_0 + (i * 8));
356 } else {
357 for (i = 0; i < 8; i++)
358 dev_priv->saveFENCE[i] = I915_READ(FENCE_REG_830_0 + (i * 4));
359
360 if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
361 for (i = 0; i < 8; i++)
362 dev_priv->saveFENCE[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4));
363 }
352 i915_save_vga(dev); 364 i915_save_vga(dev);
353 365
354 return 0; 366 return 0;
@@ -371,6 +383,18 @@ int i915_restore_state(struct drm_device *dev)
371 /* Display arbitration */ 383 /* Display arbitration */
372 I915_WRITE(DSPARB, dev_priv->saveDSPARB); 384 I915_WRITE(DSPARB, dev_priv->saveDSPARB);
373 385
386 /* Fences */
387 if (IS_I965G(dev)) {
388 for (i = 0; i < 16; i++)
389 I915_WRITE64(FENCE_REG_965_0 + (i * 8), dev_priv->saveFENCE[i]);
390 } else {
391 for (i = 0; i < 8; i++)
392 I915_WRITE(FENCE_REG_830_0 + (i * 4), dev_priv->saveFENCE[i]);
393 if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
394 for (i = 0; i < 8; i++)
395 I915_WRITE(FENCE_REG_945_8 + (i * 4), dev_priv->saveFENCE[i+8]);
396 }
397
374 /* Pipe & plane A info */ 398 /* Pipe & plane A info */
375 /* Prime the clock */ 399 /* Prime the clock */
376 if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) { 400 if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) {
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 9bdd959260a5..19148c3df637 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -161,7 +161,7 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
161 hotplug_en &= CRT_FORCE_HOTPLUG_MASK; 161 hotplug_en &= CRT_FORCE_HOTPLUG_MASK;
162 hotplug_en |= CRT_HOTPLUG_FORCE_DETECT; 162 hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
163 163
164 if (IS_GM45(dev)) 164 if (IS_G4X(dev))
165 hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64; 165 hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
166 166
167 hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50; 167 hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 64773ce52964..3387cf32f385 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -367,6 +367,7 @@ static const intel_limit_t intel_limits[] = {
367 .p1 = { .min = I9XX_P1_MIN, .max = I9XX_P1_MAX }, 367 .p1 = { .min = I9XX_P1_MIN, .max = I9XX_P1_MAX },
368 .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT, 368 .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT,
369 .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST }, 369 .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST },
370 .find_pll = intel_find_best_PLL,
370 }, 371 },
371 { /* INTEL_LIMIT_IGD_LVDS */ 372 { /* INTEL_LIMIT_IGD_LVDS */
372 .dot = { .min = I9XX_DOT_MIN, .max = I9XX_DOT_MAX }, 373 .dot = { .min = I9XX_DOT_MIN, .max = I9XX_DOT_MAX },
@@ -380,6 +381,7 @@ static const intel_limit_t intel_limits[] = {
380 /* IGD only supports single-channel mode. */ 381 /* IGD only supports single-channel mode. */
381 .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT, 382 .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT,
382 .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_SLOW }, 383 .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_SLOW },
384 .find_pll = intel_find_best_PLL,
383 }, 385 },
384 386
385}; 387};
@@ -655,6 +657,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
655 int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR); 657 int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR);
656 int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF); 658 int dspsurf = (pipe == 0 ? DSPASURF : DSPBSURF);
657 int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE; 659 int dspstride = (pipe == 0) ? DSPASTRIDE : DSPBSTRIDE;
660 int dsptileoff = (pipe == 0 ? DSPATILEOFF : DSPBTILEOFF);
658 int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR; 661 int dspcntr_reg = (pipe == 0) ? DSPACNTR : DSPBCNTR;
659 u32 dspcntr, alignment; 662 u32 dspcntr, alignment;
660 int ret; 663 int ret;
@@ -731,6 +734,13 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
731 mutex_unlock(&dev->struct_mutex); 734 mutex_unlock(&dev->struct_mutex);
732 return -EINVAL; 735 return -EINVAL;
733 } 736 }
737 if (IS_I965G(dev)) {
738 if (obj_priv->tiling_mode != I915_TILING_NONE)
739 dspcntr |= DISPPLANE_TILED;
740 else
741 dspcntr &= ~DISPPLANE_TILED;
742 }
743
734 I915_WRITE(dspcntr_reg, dspcntr); 744 I915_WRITE(dspcntr_reg, dspcntr);
735 745
736 Start = obj_priv->gtt_offset; 746 Start = obj_priv->gtt_offset;
@@ -743,6 +753,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
743 I915_READ(dspbase); 753 I915_READ(dspbase);
744 I915_WRITE(dspsurf, Start); 754 I915_WRITE(dspsurf, Start);
745 I915_READ(dspsurf); 755 I915_READ(dspsurf);
756 I915_WRITE(dsptileoff, (y << 16) | x);
746 } else { 757 } else {
747 I915_WRITE(dspbase, Start + Offset); 758 I915_WRITE(dspbase, Start + Offset);
748 I915_READ(dspbase); 759 I915_READ(dspbase);
@@ -1793,6 +1804,37 @@ static void intel_crtc_init(struct drm_device *dev, int pipe)
1793 } 1804 }
1794} 1805}
1795 1806
1807int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
1808 struct drm_file *file_priv)
1809{
1810 drm_i915_private_t *dev_priv = dev->dev_private;
1811 struct drm_i915_get_pipe_from_crtc_id *pipe_from_crtc_id = data;
1812 struct drm_crtc *crtc = NULL;
1813 int pipe = -1;
1814
1815 if (!dev_priv) {
1816 DRM_ERROR("called with no initialization\n");
1817 return -EINVAL;
1818 }
1819
1820 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
1821 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
1822 if (crtc->base.id == pipe_from_crtc_id->crtc_id) {
1823 pipe = intel_crtc->pipe;
1824 break;
1825 }
1826 }
1827
1828 if (pipe == -1) {
1829 DRM_ERROR("no such CRTC id\n");
1830 return -EINVAL;
1831 }
1832
1833 pipe_from_crtc_id->pipe = pipe;
1834
1835 return 0;
1836}
1837
1796struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe) 1838struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe)
1797{ 1839{
1798 struct drm_crtc *crtc = NULL; 1840 struct drm_crtc *crtc = NULL;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 957daef8edff..cd4b9c5f715e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -109,7 +109,7 @@ struct intel_i2c_chan *intel_i2c_create(struct drm_device *dev, const u32 reg,
109void intel_i2c_destroy(struct intel_i2c_chan *chan); 109void intel_i2c_destroy(struct intel_i2c_chan *chan);
110int intel_ddc_get_modes(struct intel_output *intel_output); 110int intel_ddc_get_modes(struct intel_output *intel_output);
111extern bool intel_ddc_probe(struct intel_output *intel_output); 111extern bool intel_ddc_probe(struct intel_output *intel_output);
112 112void intel_i2c_quirk_set(struct drm_device *dev, bool enable);
113extern void intel_crt_init(struct drm_device *dev); 113extern void intel_crt_init(struct drm_device *dev);
114extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg); 114extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg);
115extern bool intel_sdvo_init(struct drm_device *dev, int output_device); 115extern bool intel_sdvo_init(struct drm_device *dev, int output_device);
@@ -125,6 +125,8 @@ extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector);
125 125
126extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, 126extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev,
127 struct drm_crtc *crtc); 127 struct drm_crtc *crtc);
128int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
129 struct drm_file *file_priv);
128extern void intel_wait_for_vblank(struct drm_device *dev); 130extern void intel_wait_for_vblank(struct drm_device *dev);
129extern struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe); 131extern struct drm_crtc *intel_get_crtc_from_pipe(struct drm_device *dev, int pipe);
130extern struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output, 132extern struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output,
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
index b7f0ebe9f810..e4652dcdd9bb 100644
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -864,8 +864,8 @@ static void intelfb_sysrq(int dummy1, struct tty_struct *dummy3)
864 864
865static struct sysrq_key_op sysrq_intelfb_restore_op = { 865static struct sysrq_key_op sysrq_intelfb_restore_op = {
866 .handler = intelfb_sysrq, 866 .handler = intelfb_sysrq,
867 .help_msg = "force fb", 867 .help_msg = "force-fb(V)",
868 .action_msg = "force restore of fb console", 868 .action_msg = "Restore framebuffer console",
869}; 869};
870 870
871int intelfb_probe(struct drm_device *dev) 871int intelfb_probe(struct drm_device *dev)
@@ -898,7 +898,7 @@ int intelfb_probe(struct drm_device *dev)
898 ret = intelfb_single_fb_probe(dev); 898 ret = intelfb_single_fb_probe(dev);
899 } 899 }
900 900
901 register_sysrq_key('g', &sysrq_intelfb_restore_op); 901 register_sysrq_key('v', &sysrq_intelfb_restore_op);
902 902
903 return ret; 903 return ret;
904} 904}
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index b06a4a3ff08d..d0983bb93a18 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -38,7 +38,7 @@
38struct intel_hdmi_priv { 38struct intel_hdmi_priv {
39 u32 sdvox_reg; 39 u32 sdvox_reg;
40 u32 save_SDVOX; 40 u32 save_SDVOX;
41 int has_hdmi_sink; 41 bool has_hdmi_sink;
42}; 42};
43 43
44static void intel_hdmi_mode_set(struct drm_encoder *encoder, 44static void intel_hdmi_mode_set(struct drm_encoder *encoder,
@@ -128,6 +128,22 @@ static bool intel_hdmi_mode_fixup(struct drm_encoder *encoder,
128 return true; 128 return true;
129} 129}
130 130
131static void
132intel_hdmi_sink_detect(struct drm_connector *connector)
133{
134 struct intel_output *intel_output = to_intel_output(connector);
135 struct intel_hdmi_priv *hdmi_priv = intel_output->dev_priv;
136 struct edid *edid = NULL;
137
138 edid = drm_get_edid(&intel_output->base,
139 &intel_output->ddc_bus->adapter);
140 if (edid != NULL) {
141 hdmi_priv->has_hdmi_sink = drm_detect_hdmi_monitor(edid);
142 kfree(edid);
143 intel_output->base.display_info.raw_edid = NULL;
144 }
145}
146
131static enum drm_connector_status 147static enum drm_connector_status
132intel_hdmi_detect(struct drm_connector *connector) 148intel_hdmi_detect(struct drm_connector *connector)
133{ 149{
@@ -139,11 +155,18 @@ intel_hdmi_detect(struct drm_connector *connector)
139 155
140 temp = I915_READ(PORT_HOTPLUG_EN); 156 temp = I915_READ(PORT_HOTPLUG_EN);
141 157
142 I915_WRITE(PORT_HOTPLUG_EN, 158 switch (hdmi_priv->sdvox_reg) {
143 temp | 159 case SDVOB:
144 HDMIB_HOTPLUG_INT_EN | 160 temp |= HDMIB_HOTPLUG_INT_EN;
145 HDMIC_HOTPLUG_INT_EN | 161 break;
146 HDMID_HOTPLUG_INT_EN); 162 case SDVOC:
163 temp |= HDMIC_HOTPLUG_INT_EN;
164 break;
165 default:
166 return connector_status_unknown;
167 }
168
169 I915_WRITE(PORT_HOTPLUG_EN, temp);
147 170
148 POSTING_READ(PORT_HOTPLUG_EN); 171 POSTING_READ(PORT_HOTPLUG_EN);
149 172
@@ -158,9 +181,10 @@ intel_hdmi_detect(struct drm_connector *connector)
158 return connector_status_unknown; 181 return connector_status_unknown;
159 } 182 }
160 183
161 if ((I915_READ(PORT_HOTPLUG_STAT) & bit) != 0) 184 if ((I915_READ(PORT_HOTPLUG_STAT) & bit) != 0) {
185 intel_hdmi_sink_detect(connector);
162 return connector_status_connected; 186 return connector_status_connected;
163 else 187 } else
164 return connector_status_disconnected; 188 return connector_status_disconnected;
165} 189}
166 190
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
index 5ee9d4c25753..f7061f68d050 100644
--- a/drivers/gpu/drm/i915/intel_i2c.c
+++ b/drivers/gpu/drm/i915/intel_i2c.c
@@ -34,6 +34,21 @@
34#include "i915_drm.h" 34#include "i915_drm.h"
35#include "i915_drv.h" 35#include "i915_drv.h"
36 36
37void intel_i2c_quirk_set(struct drm_device *dev, bool enable)
38{
39 struct drm_i915_private *dev_priv = dev->dev_private;
40
41 /* When using bit bashing for I2C, this bit needs to be set to 1 */
42 if (!IS_IGD(dev))
43 return;
44 if (enable)
45 I915_WRITE(CG_2D_DIS,
46 I915_READ(CG_2D_DIS) | DPCUNIT_CLOCK_GATE_DISABLE);
47 else
48 I915_WRITE(CG_2D_DIS,
49 I915_READ(CG_2D_DIS) & (~DPCUNIT_CLOCK_GATE_DISABLE));
50}
51
37/* 52/*
38 * Intel GPIO access functions 53 * Intel GPIO access functions
39 */ 54 */
@@ -153,8 +168,10 @@ struct intel_i2c_chan *intel_i2c_create(struct drm_device *dev, const u32 reg,
153 goto out_free; 168 goto out_free;
154 169
155 /* JJJ: raise SCL and SDA? */ 170 /* JJJ: raise SCL and SDA? */
171 intel_i2c_quirk_set(dev, true);
156 set_data(chan, 1); 172 set_data(chan, 1);
157 set_clock(chan, 1); 173 set_clock(chan, 1);
174 intel_i2c_quirk_set(dev, false);
158 udelay(20); 175 udelay(20);
159 176
160 return chan; 177 return chan;
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6619f26e46a5..439a86514993 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -384,7 +384,51 @@ static const struct drm_encoder_funcs intel_lvds_enc_funcs = {
384 .destroy = intel_lvds_enc_destroy, 384 .destroy = intel_lvds_enc_destroy,
385}; 385};
386 386
387static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id)
388{
389 DRM_DEBUG("Skipping LVDS initialization for %s\n", id->ident);
390 return 1;
391}
387 392
393/* These systems claim to have LVDS, but really don't */
394static const struct dmi_system_id __initdata intel_no_lvds[] = {
395 {
396 .callback = intel_no_lvds_dmi_callback,
397 .ident = "Apple Mac Mini (Core series)",
398 .matches = {
399 DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
400 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
401 },
402 },
403 {
404 .callback = intel_no_lvds_dmi_callback,
405 .ident = "Apple Mac Mini (Core 2 series)",
406 .matches = {
407 DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
408 DMI_MATCH(DMI_PRODUCT_NAME, "Macmini2,1"),
409 },
410 },
411 {
412 .callback = intel_no_lvds_dmi_callback,
413 .ident = "MSI IM-945GSE-A",
414 .matches = {
415 DMI_MATCH(DMI_SYS_VENDOR, "MSI"),
416 DMI_MATCH(DMI_PRODUCT_NAME, "A9830IMS"),
417 },
418 },
419 {
420 .callback = intel_no_lvds_dmi_callback,
421 .ident = "Dell Studio Hybrid",
422 .matches = {
423 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
424 DMI_MATCH(DMI_PRODUCT_NAME, "Studio Hybrid 140g"),
425 },
426 },
427
428 /* FIXME: add a check for the Aopen Mini PC */
429
430 { } /* terminating entry */
431};
388 432
389/** 433/**
390 * intel_lvds_init - setup LVDS connectors on this device 434 * intel_lvds_init - setup LVDS connectors on this device
@@ -404,15 +448,9 @@ void intel_lvds_init(struct drm_device *dev)
404 u32 lvds; 448 u32 lvds;
405 int pipe; 449 int pipe;
406 450
407 /* Blacklist machines that we know falsely report LVDS. */ 451 /* Skip init on machines we know falsely report LVDS */
408 /* FIXME: add a check for the Aopen Mini PC */ 452 if (dmi_check_system(intel_no_lvds))
409
410 /* Apple Mac Mini Core Duo and Mac Mini Core 2 Duo */
411 if(dmi_match(DMI_PRODUCT_NAME, "Macmini1,1") ||
412 dmi_match(DMI_PRODUCT_NAME, "Macmini2,1")) {
413 DRM_DEBUG("Skipping LVDS initialization for Apple Mac Mini\n");
414 return; 453 return;
415 }
416 454
417 intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL); 455 intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
418 if (!intel_output) { 456 if (!intel_output) {
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
index 07d7ec976168..e0910fefce87 100644
--- a/drivers/gpu/drm/i915/intel_modes.c
+++ b/drivers/gpu/drm/i915/intel_modes.c
@@ -27,6 +27,7 @@
27#include <linux/fb.h> 27#include <linux/fb.h>
28#include "drmP.h" 28#include "drmP.h"
29#include "intel_drv.h" 29#include "intel_drv.h"
30#include "i915_drv.h"
30 31
31/** 32/**
32 * intel_ddc_probe 33 * intel_ddc_probe
@@ -52,7 +53,10 @@ bool intel_ddc_probe(struct intel_output *intel_output)
52 } 53 }
53 }; 54 };
54 55
56 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, true);
55 ret = i2c_transfer(&intel_output->ddc_bus->adapter, msgs, 2); 57 ret = i2c_transfer(&intel_output->ddc_bus->adapter, msgs, 2);
58 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, false);
59
56 if (ret == 2) 60 if (ret == 2)
57 return true; 61 return true;
58 62
@@ -70,8 +74,10 @@ int intel_ddc_get_modes(struct intel_output *intel_output)
70 struct edid *edid; 74 struct edid *edid;
71 int ret = 0; 75 int ret = 0;
72 76
77 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, true);
73 edid = drm_get_edid(&intel_output->base, 78 edid = drm_get_edid(&intel_output->base,
74 &intel_output->ddc_bus->adapter); 79 &intel_output->ddc_bus->adapter);
80 intel_i2c_quirk_set(intel_output->ddc_bus->drm_dev, false);
75 if (edid) { 81 if (edid) {
76 drm_mode_connector_update_edid_property(&intel_output->base, 82 drm_mode_connector_update_edid_property(&intel_output->base,
77 edid); 83 edid);
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 7b31f55f55c8..9913651c1e17 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -1357,6 +1357,23 @@ void intel_sdvo_set_hotplug(struct drm_connector *connector, int on)
1357 intel_sdvo_read_response(intel_output, &response, 2); 1357 intel_sdvo_read_response(intel_output, &response, 2);
1358} 1358}
1359 1359
1360static void
1361intel_sdvo_hdmi_sink_detect(struct drm_connector *connector)
1362{
1363 struct intel_output *intel_output = to_intel_output(connector);
1364 struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv;
1365 struct edid *edid = NULL;
1366
1367 intel_sdvo_set_control_bus_switch(intel_output, sdvo_priv->ddc_bus);
1368 edid = drm_get_edid(&intel_output->base,
1369 &intel_output->ddc_bus->adapter);
1370 if (edid != NULL) {
1371 sdvo_priv->is_hdmi = drm_detect_hdmi_monitor(edid);
1372 kfree(edid);
1373 intel_output->base.display_info.raw_edid = NULL;
1374 }
1375}
1376
1360static enum drm_connector_status intel_sdvo_detect(struct drm_connector *connector) 1377static enum drm_connector_status intel_sdvo_detect(struct drm_connector *connector)
1361{ 1378{
1362 u8 response[2]; 1379 u8 response[2];
@@ -1371,9 +1388,10 @@ static enum drm_connector_status intel_sdvo_detect(struct drm_connector *connect
1371 if (status != SDVO_CMD_STATUS_SUCCESS) 1388 if (status != SDVO_CMD_STATUS_SUCCESS)
1372 return connector_status_unknown; 1389 return connector_status_unknown;
1373 1390
1374 if ((response[0] != 0) || (response[1] != 0)) 1391 if ((response[0] != 0) || (response[1] != 0)) {
1392 intel_sdvo_hdmi_sink_detect(connector);
1375 return connector_status_connected; 1393 return connector_status_connected;
1376 else 1394 } else
1377 return connector_status_disconnected; 1395 return connector_status_disconnected;
1378} 1396}
1379 1397
diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
index 32de4cedc363..077c0455a6b9 100644
--- a/drivers/gpu/drm/r128/r128_cce.c
+++ b/drivers/gpu/drm/r128/r128_cce.c
@@ -511,9 +511,9 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init)
511 511
512#if __OS_HAS_AGP 512#if __OS_HAS_AGP
513 if (!dev_priv->is_pci) { 513 if (!dev_priv->is_pci) {
514 drm_core_ioremap(dev_priv->cce_ring, dev); 514 drm_core_ioremap_wc(dev_priv->cce_ring, dev);
515 drm_core_ioremap(dev_priv->ring_rptr, dev); 515 drm_core_ioremap_wc(dev_priv->ring_rptr, dev);
516 drm_core_ioremap(dev->agp_buffer_map, dev); 516 drm_core_ioremap_wc(dev->agp_buffer_map, dev);
517 if (!dev_priv->cce_ring->handle || 517 if (!dev_priv->cce_ring->handle ||
518 !dev_priv->ring_rptr->handle || 518 !dev_priv->ring_rptr->handle ||
519 !dev->agp_buffer_map->handle) { 519 !dev->agp_buffer_map->handle) {
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index ed4d27e6ee6f..8071d965f142 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -99,9 +99,10 @@
99 * 1.27- Add support for IGP GART 99 * 1.27- Add support for IGP GART
100 * 1.28- Add support for VBL on CRTC2 100 * 1.28- Add support for VBL on CRTC2
101 * 1.29- R500 3D cmd buffer support 101 * 1.29- R500 3D cmd buffer support
102 * 1.30- Add support for occlusion queries
102 */ 103 */
103#define DRIVER_MAJOR 1 104#define DRIVER_MAJOR 1
104#define DRIVER_MINOR 29 105#define DRIVER_MINOR 30
105#define DRIVER_PATCHLEVEL 0 106#define DRIVER_PATCHLEVEL 0
106 107
107/* 108/*
diff --git a/drivers/gpu/drm/via/via_dma.c b/drivers/gpu/drm/via/via_dma.c
index 7a339dba6a69..bfb92d283260 100644
--- a/drivers/gpu/drm/via/via_dma.c
+++ b/drivers/gpu/drm/via/via_dma.c
@@ -481,11 +481,13 @@ static int via_wait_idle(drm_via_private_t * dev_priv)
481{ 481{
482 int count = 10000000; 482 int count = 10000000;
483 483
484 while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && count--); 484 while (!(VIA_READ(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY) && --count)
485 ;
485 486
486 while (count-- && (VIA_READ(VIA_REG_STATUS) & 487 while (count && (VIA_READ(VIA_REG_STATUS) &
487 (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | 488 (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY |
488 VIA_3D_ENG_BUSY))) ; 489 VIA_3D_ENG_BUSY)))
490 --count;
489 return count; 491 return count;
490} 492}
491 493
@@ -705,7 +707,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file *
705 switch (d_siz->func) { 707 switch (d_siz->func) {
706 case VIA_CMDBUF_SPACE: 708 case VIA_CMDBUF_SPACE:
707 while (((tmp_size = via_cmdbuf_space(dev_priv)) < d_siz->size) 709 while (((tmp_size = via_cmdbuf_space(dev_priv)) < d_siz->size)
708 && count--) { 710 && --count) {
709 if (!d_siz->wait) { 711 if (!d_siz->wait) {
710 break; 712 break;
711 } 713 }
@@ -717,7 +719,7 @@ static int via_cmdbuf_size(struct drm_device *dev, void *data, struct drm_file *
717 break; 719 break;
718 case VIA_CMDBUF_LAG: 720 case VIA_CMDBUF_LAG:
719 while (((tmp_size = via_cmdbuf_lag(dev_priv)) > d_siz->size) 721 while (((tmp_size = via_cmdbuf_lag(dev_priv)) > d_siz->size)
720 && count--) { 722 && --count) {
721 if (!d_siz->wait) { 723 if (!d_siz->wait) {
722 break; 724 break;
723 } 725 }
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index 7359d9d88e46..acbce5745b0c 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -151,7 +151,7 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
151 if (fnmode) { 151 if (fnmode) {
152 int do_translate; 152 int do_translate;
153 153
154 trans = apple_find_translation((hid->product < 0x220 || 154 trans = apple_find_translation((hid->product < 0x21d ||
155 hid->product >= 0x300) ? 155 hid->product >= 0x300) ?
156 powerbook_fn_keys : apple_fn_keys, 156 powerbook_fn_keys : apple_fn_keys,
157 usage->code); 157 usage->code);
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 5746a5903bce..8551693d645f 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1293,6 +1293,7 @@ static const struct hid_device_id hid_blacklist[] = {
1293 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) }, 1293 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) },
1294 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) }, 1294 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) },
1295 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) }, 1295 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) },
1296 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
1296 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) }, 1297 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
1297 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) }, 1298 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) },
1298 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) }, 1299 { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) },
@@ -1824,6 +1825,9 @@ int hid_check_keys_pressed(struct hid_device *hid)
1824 struct hid_input *hidinput; 1825 struct hid_input *hidinput;
1825 int i; 1826 int i;
1826 1827
1828 if (!(hid->claimed & HID_CLAIMED_INPUT))
1829 return 0;
1830
1827 list_for_each_entry(hidinput, &hid->inputs, list) { 1831 list_for_each_entry(hidinput, &hid->inputs, list) {
1828 for (i = 0; i < BITS_TO_LONGS(KEY_MAX); i++) 1832 for (i = 0; i < BITS_TO_LONGS(KEY_MAX); i++)
1829 if (hidinput->input->key[i]) 1833 if (hidinput->input->key[i])
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index bdeda4c7cc13..4d5ee2bbc62b 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -113,6 +113,11 @@
113#define USB_VENDOR_ID_BERKSHIRE 0x0c98 113#define USB_VENDOR_ID_BERKSHIRE 0x0c98
114#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140 114#define USB_DEVICE_ID_BERKSHIRE_PCWD 0x1140
115 115
116#define USB_VENDOR_ID_CH 0x068e
117#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
118#define USB_DEVICE_ID_CH_COMBATSTICK 0x00f4
119#define USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE 0x00ff
120
116#define USB_VENDOR_ID_CHERRY 0x046a 121#define USB_VENDOR_ID_CHERRY 0x046a
117#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 122#define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023
118 123
@@ -292,6 +297,7 @@
292#define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO 0xc286 297#define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO 0xc286
293#define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294 298#define USB_DEVICE_ID_LOGITECH_WHEEL 0xc294
294#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL 0xc295 299#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL 0xc295
300#define USB_DEVICE_ID_LOGITECH_G25_WHEEL 0xc299
295#define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a 301#define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a
296#define USB_DEVICE_ID_S510_RECEIVER 0xc50c 302#define USB_DEVICE_ID_S510_RECEIVER 0xc50c
297#define USB_DEVICE_ID_S510_RECEIVER_2 0xc517 303#define USB_DEVICE_ID_S510_RECEIVER_2 0xc517
diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c
index 7b80cb694982..7afbaa0efd18 100644
--- a/drivers/hid/hid-lg.c
+++ b/drivers/hid/hid-lg.c
@@ -297,6 +297,8 @@ static const struct hid_device_id lg_devices[] = {
297 .driver_data = LG_FF }, 297 .driver_data = LG_FF },
298 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2), 298 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2),
299 .driver_data = LG_FF }, 299 .driver_data = LG_FF },
300 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL),
301 .driver_data = LG_FF },
300 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2), 302 { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2),
301 .driver_data = LG_FF2 }, 303 .driver_data = LG_FF2 },
302 { } 304 { }
diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index e263d4731179..00ccf4b1985d 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -285,8 +285,10 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd,
285 285
286 if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWNAME(0))) { 286 if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWNAME(0))) {
287 int len; 287 int len;
288 if (!hid->name) 288 if (!hid->name) {
289 return 0; 289 ret = 0;
290 break;
291 }
290 len = strlen(hid->name) + 1; 292 len = strlen(hid->name) + 1;
291 if (len > _IOC_SIZE(cmd)) 293 if (len > _IOC_SIZE(cmd))
292 len = _IOC_SIZE(cmd); 294 len = _IOC_SIZE(cmd);
@@ -297,8 +299,10 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd,
297 299
298 if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWPHYS(0))) { 300 if (_IOC_NR(cmd) == _IOC_NR(HIDIOCGRAWPHYS(0))) {
299 int len; 301 int len;
300 if (!hid->phys) 302 if (!hid->phys) {
301 return 0; 303 ret = 0;
304 break;
305 }
302 len = strlen(hid->phys) + 1; 306 len = strlen(hid->phys) + 1;
303 if (len > _IOC_SIZE(cmd)) 307 if (len > _IOC_SIZE(cmd))
304 len = _IOC_SIZE(cmd); 308 len = _IOC_SIZE(cmd);
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 4306cb1b8ce5..ac8049b5f1e9 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -662,8 +662,8 @@ void usbhid_close(struct hid_device *hid)
662 spin_lock_irq(&usbhid->lock); 662 spin_lock_irq(&usbhid->lock);
663 if (!--hid->open) { 663 if (!--hid->open) {
664 spin_unlock_irq(&usbhid->lock); 664 spin_unlock_irq(&usbhid->lock);
665 hid_cancel_delayed_stuff(usbhid);
665 usb_kill_urb(usbhid->urbin); 666 usb_kill_urb(usbhid->urbin);
666 flush_scheduled_work();
667 usbhid->intf->needs_remote_wakeup = 0; 667 usbhid->intf->needs_remote_wakeup = 0;
668 } else { 668 } else {
669 spin_unlock_irq(&usbhid->lock); 669 spin_unlock_irq(&usbhid->lock);
@@ -898,7 +898,7 @@ static int usbhid_parse(struct hid_device *hid)
898 goto err; 898 goto err;
899 } 899 }
900 900
901 hid->quirks = quirks; 901 hid->quirks |= quirks;
902 902
903 return 0; 903 return 0;
904err: 904err:
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 4391717d2519..d8f7423f363e 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -50,6 +50,9 @@ static const struct hid_blacklist {
50 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, 50 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
51 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, 51 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
52 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, 52 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
53 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET },
54 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE, HID_QUIRK_NOGET },
55 { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
53 { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, 56 { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
54 { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, 57 { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
55 { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, 58 { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 0e8a9185f676..d73f5f473e38 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -692,6 +692,16 @@ config SENSORS_PCF8591
692 These devices are hard to detect and rarely found on mainstream 692 These devices are hard to detect and rarely found on mainstream
693 hardware. If unsure, say N. 693 hardware. If unsure, say N.
694 694
695config SENSORS_SHT15
696 tristate "Sensiron humidity and temperature sensors. SHT15 and compat."
697 depends on GENERIC_GPIO
698 help
699 If you say yes here you get support for the Sensiron SHT10, SHT11,
700 SHT15, SHT71, SHT75 humidity and temperature sensors.
701
702 This driver can also be built as a module. If so, the module
703 will be called sht15.
704
695config SENSORS_SIS5595 705config SENSORS_SIS5595
696 tristate "Silicon Integrated Systems Corp. SiS5595" 706 tristate "Silicon Integrated Systems Corp. SiS5595"
697 depends on PCI 707 depends on PCI
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index 1d3757837b4f..0ae26984ba45 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -76,6 +76,7 @@ obj-$(CONFIG_SENSORS_MAX6650) += max6650.o
76obj-$(CONFIG_SENSORS_PC87360) += pc87360.o 76obj-$(CONFIG_SENSORS_PC87360) += pc87360.o
77obj-$(CONFIG_SENSORS_PC87427) += pc87427.o 77obj-$(CONFIG_SENSORS_PC87427) += pc87427.o
78obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o 78obj-$(CONFIG_SENSORS_PCF8591) += pcf8591.o
79obj-$(CONFIG_SENSORS_SHT15) += sht15.o
79obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o 80obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o
80obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o 81obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
81obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o 82obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
index 0897edef2574..bff0103610c1 100644
--- a/drivers/hwmon/asus_atk0110.c
+++ b/drivers/hwmon/asus_atk0110.c
@@ -348,6 +348,7 @@ static int validate_hwmon_pack(struct atk_data *data, union acpi_object *obj)
348 return 0; 348 return 0;
349} 349}
350 350
351#ifdef DEBUG
351static char const *atk_sensor_type(union acpi_object *flags) 352static char const *atk_sensor_type(union acpi_object *flags)
352{ 353{
353 u64 type = flags->integer.value & ATK_TYPE_MASK; 354 u64 type = flags->integer.value & ATK_TYPE_MASK;
@@ -370,6 +371,7 @@ static char const *atk_sensor_type(union acpi_object *flags)
370 371
371 return what; 372 return what;
372} 373}
374#endif
373 375
374static void atk_print_sensor(struct atk_data *data, union acpi_object *obj) 376static void atk_print_sensor(struct atk_data *data, union acpi_object *obj)
375{ 377{
diff --git a/drivers/hwmon/hp_accel.c b/drivers/hwmon/hp_accel.c
index 55d3dc565be6..abca7e9f953b 100644
--- a/drivers/hwmon/hp_accel.c
+++ b/drivers/hwmon/hp_accel.c
@@ -34,7 +34,6 @@
34#include <linux/wait.h> 34#include <linux/wait.h>
35#include <linux/poll.h> 35#include <linux/poll.h>
36#include <linux/freezer.h> 36#include <linux/freezer.h>
37#include <linux/version.h>
38#include <linux/uaccess.h> 37#include <linux/uaccess.h>
39#include <linux/leds.h> 38#include <linux/leds.h>
40#include <acpi/acpi_drivers.h> 39#include <acpi/acpi_drivers.h>
diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
new file mode 100644
index 000000000000..6cbdc2fea734
--- /dev/null
+++ b/drivers/hwmon/sht15.c
@@ -0,0 +1,692 @@
1/*
2 * sht15.c - support for the SHT15 Temperature and Humidity Sensor
3 *
4 * Copyright (c) 2009 Jonathan Cameron
5 *
6 * Copyright (c) 2007 Wouter Horre
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 * Currently ignoring checksum on readings.
13 * Default resolution only (14bit temp, 12bit humidity)
14 * Ignoring battery status.
15 * Heater not enabled.
16 * Timings are all conservative.
17 *
18 * Data sheet available (1/2009) at
19 * http://www.sensirion.ch/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf
20 *
21 * Regulator supply name = vcc
22 */
23
24#include <linux/interrupt.h>
25#include <linux/irq.h>
26#include <linux/gpio.h>
27#include <linux/module.h>
28#include <linux/init.h>
29#include <linux/hwmon.h>
30#include <linux/hwmon-sysfs.h>
31#include <linux/mutex.h>
32#include <linux/platform_device.h>
33#include <linux/delay.h>
34#include <linux/jiffies.h>
35#include <linux/err.h>
36#include <linux/sht15.h>
37#include <linux/regulator/consumer.h>
38#include <asm/atomic.h>
39
40#define SHT15_MEASURE_TEMP 3
41#define SHT15_MEASURE_RH 5
42
43#define SHT15_READING_NOTHING 0
44#define SHT15_READING_TEMP 1
45#define SHT15_READING_HUMID 2
46
47/* Min timings in nsecs */
48#define SHT15_TSCKL 100 /* clock low */
49#define SHT15_TSCKH 100 /* clock high */
50#define SHT15_TSU 150 /* data setup time */
51
52/**
53 * struct sht15_temppair - elements of voltage dependant temp calc
54 * @vdd: supply voltage in microvolts
55 * @d1: see data sheet
56 */
57struct sht15_temppair {
58 int vdd; /* microvolts */
59 int d1;
60};
61
62/* Table 9 from data sheet - relates temperature calculation
63 * to supply voltage.
64 */
65static const struct sht15_temppair temppoints[] = {
66 { 2500000, -39400 },
67 { 3000000, -39600 },
68 { 3500000, -39700 },
69 { 4000000, -39800 },
70 { 5000000, -40100 },
71};
72
73/**
74 * struct sht15_data - device instance specific data
75 * @pdata: platform data (gpio's etc)
76 * @read_work: bh of interrupt handler
77 * @wait_queue: wait queue for getting values from device
78 * @val_temp: last temperature value read from device
79 * @val_humid: last humidity value read from device
80 * @flag: status flag used to identify what the last request was
81 * @valid: are the current stored values valid (start condition)
82 * @last_updat: time of last update
83 * @read_lock: mutex to ensure only one read in progress
84 * at a time.
85 * @dev: associate device structure
86 * @hwmon_dev: device associated with hwmon subsystem
87 * @reg: associated regulator (if specified)
88 * @nb: notifier block to handle notifications of voltage changes
89 * @supply_uV: local copy of supply voltage used to allow
90 * use of regulator consumer if available
91 * @supply_uV_valid: indicates that an updated value has not yet
92 * been obtained from the regulator and so any calculations
93 * based upon it will be invalid.
94 * @update_supply_work: work struct that is used to update the supply_uV
95 * @interrupt_handled: flag used to indicate a hander has been scheduled
96 */
97struct sht15_data {
98 struct sht15_platform_data *pdata;
99 struct work_struct read_work;
100 wait_queue_head_t wait_queue;
101 uint16_t val_temp;
102 uint16_t val_humid;
103 u8 flag;
104 u8 valid;
105 unsigned long last_updat;
106 struct mutex read_lock;
107 struct device *dev;
108 struct device *hwmon_dev;
109 struct regulator *reg;
110 struct notifier_block nb;
111 int supply_uV;
112 int supply_uV_valid;
113 struct work_struct update_supply_work;
114 atomic_t interrupt_handled;
115};
116
117/**
118 * sht15_connection_reset() - reset the comms interface
119 * @data: sht15 specific data
120 *
121 * This implements section 3.4 of the data sheet
122 */
123static void sht15_connection_reset(struct sht15_data *data)
124{
125 int i;
126 gpio_direction_output(data->pdata->gpio_data, 1);
127 ndelay(SHT15_TSCKL);
128 gpio_set_value(data->pdata->gpio_sck, 0);
129 ndelay(SHT15_TSCKL);
130 for (i = 0; i < 9; ++i) {
131 gpio_set_value(data->pdata->gpio_sck, 1);
132 ndelay(SHT15_TSCKH);
133 gpio_set_value(data->pdata->gpio_sck, 0);
134 ndelay(SHT15_TSCKL);
135 }
136}
137/**
138 * sht15_send_bit() - send an individual bit to the device
139 * @data: device state data
140 * @val: value of bit to be sent
141 **/
142static inline void sht15_send_bit(struct sht15_data *data, int val)
143{
144
145 gpio_set_value(data->pdata->gpio_data, val);
146 ndelay(SHT15_TSU);
147 gpio_set_value(data->pdata->gpio_sck, 1);
148 ndelay(SHT15_TSCKH);
149 gpio_set_value(data->pdata->gpio_sck, 0);
150 ndelay(SHT15_TSCKL); /* clock low time */
151}
152
153/**
154 * sht15_transmission_start() - specific sequence for new transmission
155 *
156 * @data: device state data
157 * Timings for this are not documented on the data sheet, so very
158 * conservative ones used in implementation. This implements
159 * figure 12 on the data sheet.
160 **/
161static void sht15_transmission_start(struct sht15_data *data)
162{
163 /* ensure data is high and output */
164 gpio_direction_output(data->pdata->gpio_data, 1);
165 ndelay(SHT15_TSU);
166 gpio_set_value(data->pdata->gpio_sck, 0);
167 ndelay(SHT15_TSCKL);
168 gpio_set_value(data->pdata->gpio_sck, 1);
169 ndelay(SHT15_TSCKH);
170 gpio_set_value(data->pdata->gpio_data, 0);
171 ndelay(SHT15_TSU);
172 gpio_set_value(data->pdata->gpio_sck, 0);
173 ndelay(SHT15_TSCKL);
174 gpio_set_value(data->pdata->gpio_sck, 1);
175 ndelay(SHT15_TSCKH);
176 gpio_set_value(data->pdata->gpio_data, 1);
177 ndelay(SHT15_TSU);
178 gpio_set_value(data->pdata->gpio_sck, 0);
179 ndelay(SHT15_TSCKL);
180}
181/**
182 * sht15_send_byte() - send a single byte to the device
183 * @data: device state
184 * @byte: value to be sent
185 **/
186static void sht15_send_byte(struct sht15_data *data, u8 byte)
187{
188 int i;
189 for (i = 0; i < 8; i++) {
190 sht15_send_bit(data, !!(byte & 0x80));
191 byte <<= 1;
192 }
193}
194/**
195 * sht15_wait_for_response() - checks for ack from device
196 * @data: device state
197 **/
198static int sht15_wait_for_response(struct sht15_data *data)
199{
200 gpio_direction_input(data->pdata->gpio_data);
201 gpio_set_value(data->pdata->gpio_sck, 1);
202 ndelay(SHT15_TSCKH);
203 if (gpio_get_value(data->pdata->gpio_data)) {
204 gpio_set_value(data->pdata->gpio_sck, 0);
205 dev_err(data->dev, "Command not acknowledged\n");
206 sht15_connection_reset(data);
207 return -EIO;
208 }
209 gpio_set_value(data->pdata->gpio_sck, 0);
210 ndelay(SHT15_TSCKL);
211 return 0;
212}
213
214/**
215 * sht15_send_cmd() - Sends a command to the device.
216 * @data: device state
217 * @cmd: command byte to be sent
218 *
219 * On entry, sck is output low, data is output pull high
220 * and the interrupt disabled.
221 **/
222static int sht15_send_cmd(struct sht15_data *data, u8 cmd)
223{
224 int ret = 0;
225 sht15_transmission_start(data);
226 sht15_send_byte(data, cmd);
227 ret = sht15_wait_for_response(data);
228 return ret;
229}
230/**
231 * sht15_update_single_val() - get a new value from device
232 * @data: device instance specific data
233 * @command: command sent to request value
234 * @timeout_msecs: timeout after which comms are assumed
235 * to have failed are reset.
236 **/
237static inline int sht15_update_single_val(struct sht15_data *data,
238 int command,
239 int timeout_msecs)
240{
241 int ret;
242 ret = sht15_send_cmd(data, command);
243 if (ret)
244 return ret;
245
246 gpio_direction_input(data->pdata->gpio_data);
247 atomic_set(&data->interrupt_handled, 0);
248
249 enable_irq(gpio_to_irq(data->pdata->gpio_data));
250 if (gpio_get_value(data->pdata->gpio_data) == 0) {
251 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
252 /* Only relevant if the interrupt hasn't occured. */
253 if (!atomic_read(&data->interrupt_handled))
254 schedule_work(&data->read_work);
255 }
256 ret = wait_event_timeout(data->wait_queue,
257 (data->flag == SHT15_READING_NOTHING),
258 msecs_to_jiffies(timeout_msecs));
259 if (ret == 0) {/* timeout occurred */
260 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));;
261 sht15_connection_reset(data);
262 return -ETIME;
263 }
264 return 0;
265}
266
267/**
268 * sht15_update_vals() - get updated readings from device if too old
269 * @data: device state
270 **/
271static int sht15_update_vals(struct sht15_data *data)
272{
273 int ret = 0;
274 int timeout = HZ;
275
276 mutex_lock(&data->read_lock);
277 if (time_after(jiffies, data->last_updat + timeout)
278 || !data->valid) {
279 data->flag = SHT15_READING_HUMID;
280 ret = sht15_update_single_val(data, SHT15_MEASURE_RH, 160);
281 if (ret)
282 goto error_ret;
283 data->flag = SHT15_READING_TEMP;
284 ret = sht15_update_single_val(data, SHT15_MEASURE_TEMP, 400);
285 if (ret)
286 goto error_ret;
287 data->valid = 1;
288 data->last_updat = jiffies;
289 }
290error_ret:
291 mutex_unlock(&data->read_lock);
292
293 return ret;
294}
295
296/**
297 * sht15_calc_temp() - convert the raw reading to a temperature
298 * @data: device state
299 *
300 * As per section 4.3 of the data sheet.
301 **/
302static inline int sht15_calc_temp(struct sht15_data *data)
303{
304 int d1 = 0;
305 int i;
306
307 for (i = 1; i < ARRAY_SIZE(temppoints) - 1; i++)
308 /* Find pointer to interpolate */
309 if (data->supply_uV > temppoints[i - 1].vdd) {
310 d1 = (data->supply_uV/1000 - temppoints[i - 1].vdd)
311 * (temppoints[i].d1 - temppoints[i - 1].d1)
312 / (temppoints[i].vdd - temppoints[i - 1].vdd)
313 + temppoints[i - 1].d1;
314 break;
315 }
316
317 return data->val_temp*10 + d1;
318}
319
320/**
321 * sht15_calc_humid() - using last temperature convert raw to humid
322 * @data: device state
323 *
324 * This is the temperature compensated version as per section 4.2 of
325 * the data sheet.
326 **/
327static inline int sht15_calc_humid(struct sht15_data *data)
328{
329 int RHlinear; /* milli percent */
330 int temp = sht15_calc_temp(data);
331
332 const int c1 = -4;
333 const int c2 = 40500; /* x 10 ^ -6 */
334 const int c3 = 2800; /* x10 ^ -9 */
335
336 RHlinear = c1*1000
337 + c2 * data->val_humid/1000
338 + (data->val_humid * data->val_humid * c3)/1000000;
339 return (temp - 25000) * (10000 + 800 * data->val_humid)
340 / 1000000 + RHlinear;
341}
342
343static ssize_t sht15_show_temp(struct device *dev,
344 struct device_attribute *attr,
345 char *buf)
346{
347 int ret;
348 struct sht15_data *data = dev_get_drvdata(dev);
349
350 /* Technically no need to read humidity as well */
351 ret = sht15_update_vals(data);
352
353 return ret ? ret : sprintf(buf, "%d\n",
354 sht15_calc_temp(data));
355}
356
357static ssize_t sht15_show_humidity(struct device *dev,
358 struct device_attribute *attr,
359 char *buf)
360{
361 int ret;
362 struct sht15_data *data = dev_get_drvdata(dev);
363
364 ret = sht15_update_vals(data);
365
366 return ret ? ret : sprintf(buf, "%d\n", sht15_calc_humid(data));
367
368};
369static ssize_t show_name(struct device *dev,
370 struct device_attribute *attr,
371 char *buf)
372{
373 struct platform_device *pdev = to_platform_device(dev);
374 return sprintf(buf, "%s\n", pdev->name);
375}
376
377static SENSOR_DEVICE_ATTR(temp1_input,
378 S_IRUGO, sht15_show_temp,
379 NULL, 0);
380static SENSOR_DEVICE_ATTR(humidity1_input,
381 S_IRUGO, sht15_show_humidity,
382 NULL, 0);
383static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
384static struct attribute *sht15_attrs[] = {
385 &sensor_dev_attr_temp1_input.dev_attr.attr,
386 &sensor_dev_attr_humidity1_input.dev_attr.attr,
387 &dev_attr_name.attr,
388 NULL,
389};
390
391static const struct attribute_group sht15_attr_group = {
392 .attrs = sht15_attrs,
393};
394
395static irqreturn_t sht15_interrupt_fired(int irq, void *d)
396{
397 struct sht15_data *data = d;
398 /* First disable the interrupt */
399 disable_irq_nosync(irq);
400 atomic_inc(&data->interrupt_handled);
401 /* Then schedule a reading work struct */
402 if (data->flag != SHT15_READING_NOTHING)
403 schedule_work(&data->read_work);
404 return IRQ_HANDLED;
405}
406
407/* Each byte of data is acknowledged by pulling the data line
408 * low for one clock pulse.
409 */
410static void sht15_ack(struct sht15_data *data)
411{
412 gpio_direction_output(data->pdata->gpio_data, 0);
413 ndelay(SHT15_TSU);
414 gpio_set_value(data->pdata->gpio_sck, 1);
415 ndelay(SHT15_TSU);
416 gpio_set_value(data->pdata->gpio_sck, 0);
417 ndelay(SHT15_TSU);
418 gpio_set_value(data->pdata->gpio_data, 1);
419
420 gpio_direction_input(data->pdata->gpio_data);
421}
422/**
423 * sht15_end_transmission() - notify device of end of transmission
424 * @data: device state
425 *
426 * This is basically a NAK. (single clock pulse, data high)
427 **/
428static void sht15_end_transmission(struct sht15_data *data)
429{
430 gpio_direction_output(data->pdata->gpio_data, 1);
431 ndelay(SHT15_TSU);
432 gpio_set_value(data->pdata->gpio_sck, 1);
433 ndelay(SHT15_TSCKH);
434 gpio_set_value(data->pdata->gpio_sck, 0);
435 ndelay(SHT15_TSCKL);
436}
437
438static void sht15_bh_read_data(struct work_struct *work_s)
439{
440 int i;
441 uint16_t val = 0;
442 struct sht15_data *data
443 = container_of(work_s, struct sht15_data,
444 read_work);
445 /* Firstly, verify the line is low */
446 if (gpio_get_value(data->pdata->gpio_data)) {
447 /* If not, then start the interrupt again - care
448 here as could have gone low in meantime so verify
449 it hasn't!
450 */
451 atomic_set(&data->interrupt_handled, 0);
452 enable_irq(gpio_to_irq(data->pdata->gpio_data));
453 /* If still not occured or another handler has been scheduled */
454 if (gpio_get_value(data->pdata->gpio_data)
455 || atomic_read(&data->interrupt_handled))
456 return;
457 }
458 /* Read the data back from the device */
459 for (i = 0; i < 16; ++i) {
460 val <<= 1;
461 gpio_set_value(data->pdata->gpio_sck, 1);
462 ndelay(SHT15_TSCKH);
463 val |= !!gpio_get_value(data->pdata->gpio_data);
464 gpio_set_value(data->pdata->gpio_sck, 0);
465 ndelay(SHT15_TSCKL);
466 if (i == 7)
467 sht15_ack(data);
468 }
469 /* Tell the device we are done */
470 sht15_end_transmission(data);
471
472 switch (data->flag) {
473 case SHT15_READING_TEMP:
474 data->val_temp = val;
475 break;
476 case SHT15_READING_HUMID:
477 data->val_humid = val;
478 break;
479 }
480
481 data->flag = SHT15_READING_NOTHING;
482 wake_up(&data->wait_queue);
483}
484
485static void sht15_update_voltage(struct work_struct *work_s)
486{
487 struct sht15_data *data
488 = container_of(work_s, struct sht15_data,
489 update_supply_work);
490 data->supply_uV = regulator_get_voltage(data->reg);
491}
492
493/**
494 * sht15_invalidate_voltage() - mark supply voltage invalid when notified by reg
495 * @nb: associated notification structure
496 * @event: voltage regulator state change event code
497 * @ignored: function parameter - ignored here
498 *
499 * Note that as the notification code holds the regulator lock, we have
500 * to schedule an update of the supply voltage rather than getting it directly.
501 **/
502static int sht15_invalidate_voltage(struct notifier_block *nb,
503 unsigned long event,
504 void *ignored)
505{
506 struct sht15_data *data = container_of(nb, struct sht15_data, nb);
507
508 if (event == REGULATOR_EVENT_VOLTAGE_CHANGE)
509 data->supply_uV_valid = false;
510 schedule_work(&data->update_supply_work);
511
512 return NOTIFY_OK;
513}
514
515static int __devinit sht15_probe(struct platform_device *pdev)
516{
517 int ret = 0;
518 struct sht15_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
519
520 if (!data) {
521 ret = -ENOMEM;
522 dev_err(&pdev->dev, "kzalloc failed");
523 goto error_ret;
524 }
525
526 INIT_WORK(&data->read_work, sht15_bh_read_data);
527 INIT_WORK(&data->update_supply_work, sht15_update_voltage);
528 platform_set_drvdata(pdev, data);
529 mutex_init(&data->read_lock);
530 data->dev = &pdev->dev;
531 init_waitqueue_head(&data->wait_queue);
532
533 if (pdev->dev.platform_data == NULL) {
534 dev_err(&pdev->dev, "no platform data supplied");
535 goto err_free_data;
536 }
537 data->pdata = pdev->dev.platform_data;
538 data->supply_uV = data->pdata->supply_mv*1000;
539
540/* If a regulator is available, query what the supply voltage actually is!*/
541 data->reg = regulator_get(data->dev, "vcc");
542 if (!IS_ERR(data->reg)) {
543 data->supply_uV = regulator_get_voltage(data->reg);
544 regulator_enable(data->reg);
545 /* setup a notifier block to update this if another device
546 * causes the voltage to change */
547 data->nb.notifier_call = &sht15_invalidate_voltage;
548 ret = regulator_register_notifier(data->reg, &data->nb);
549 }
550/* Try requesting the GPIOs */
551 ret = gpio_request(data->pdata->gpio_sck, "SHT15 sck");
552 if (ret) {
553 dev_err(&pdev->dev, "gpio request failed");
554 goto err_free_data;
555 }
556 gpio_direction_output(data->pdata->gpio_sck, 0);
557 ret = gpio_request(data->pdata->gpio_data, "SHT15 data");
558 if (ret) {
559 dev_err(&pdev->dev, "gpio request failed");
560 goto err_release_gpio_sck;
561 }
562 ret = sysfs_create_group(&pdev->dev.kobj, &sht15_attr_group);
563 if (ret) {
564 dev_err(&pdev->dev, "sysfs create failed");
565 goto err_free_data;
566 }
567
568 ret = request_irq(gpio_to_irq(data->pdata->gpio_data),
569 sht15_interrupt_fired,
570 IRQF_TRIGGER_FALLING,
571 "sht15 data",
572 data);
573 if (ret) {
574 dev_err(&pdev->dev, "failed to get irq for data line");
575 goto err_release_gpio_data;
576 }
577 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
578 sht15_connection_reset(data);
579 sht15_send_cmd(data, 0x1E);
580
581 data->hwmon_dev = hwmon_device_register(data->dev);
582 if (IS_ERR(data->hwmon_dev)) {
583 ret = PTR_ERR(data->hwmon_dev);
584 goto err_release_gpio_data;
585 }
586 return 0;
587
588err_release_gpio_data:
589 gpio_free(data->pdata->gpio_data);
590err_release_gpio_sck:
591 gpio_free(data->pdata->gpio_sck);
592err_free_data:
593 kfree(data);
594error_ret:
595
596 return ret;
597}
598
599static int __devexit sht15_remove(struct platform_device *pdev)
600{
601 struct sht15_data *data = platform_get_drvdata(pdev);
602
603 /* Make sure any reads from the device are done and
604 * prevent new ones beginnning */
605 mutex_lock(&data->read_lock);
606 hwmon_device_unregister(data->hwmon_dev);
607 sysfs_remove_group(&pdev->dev.kobj, &sht15_attr_group);
608 if (!IS_ERR(data->reg)) {
609 regulator_unregister_notifier(data->reg, &data->nb);
610 regulator_disable(data->reg);
611 regulator_put(data->reg);
612 }
613
614 free_irq(gpio_to_irq(data->pdata->gpio_data), data);
615 gpio_free(data->pdata->gpio_data);
616 gpio_free(data->pdata->gpio_sck);
617 mutex_unlock(&data->read_lock);
618 kfree(data);
619 return 0;
620}
621
622
623static struct platform_driver sht_drivers[] = {
624 {
625 .driver = {
626 .name = "sht10",
627 .owner = THIS_MODULE,
628 },
629 .probe = sht15_probe,
630 .remove = sht15_remove,
631 }, {
632 .driver = {
633 .name = "sht11",
634 .owner = THIS_MODULE,
635 },
636 .probe = sht15_probe,
637 .remove = sht15_remove,
638 }, {
639 .driver = {
640 .name = "sht15",
641 .owner = THIS_MODULE,
642 },
643 .probe = sht15_probe,
644 .remove = sht15_remove,
645 }, {
646 .driver = {
647 .name = "sht71",
648 .owner = THIS_MODULE,
649 },
650 .probe = sht15_probe,
651 .remove = sht15_remove,
652 }, {
653 .driver = {
654 .name = "sht75",
655 .owner = THIS_MODULE,
656 },
657 .probe = sht15_probe,
658 .remove = sht15_remove,
659 },
660};
661
662
663static int __init sht15_init(void)
664{
665 int ret;
666 int i;
667
668 for (i = 0; i < ARRAY_SIZE(sht_drivers); i++) {
669 ret = platform_driver_register(&sht_drivers[i]);
670 if (ret)
671 goto error_unreg;
672 }
673
674 return 0;
675
676error_unreg:
677 while (--i >= 0)
678 platform_driver_unregister(&sht_drivers[i]);
679
680 return ret;
681}
682module_init(sht15_init);
683
684static void __exit sht15_exit(void)
685{
686 int i;
687 for (i = ARRAY_SIZE(sht_drivers) - 1; i >= 0; i--)
688 platform_driver_unregister(&sht_drivers[i]);
689}
690module_exit(sht15_exit);
691
692MODULE_LICENSE("GPL");
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c
index dbfb30c588d8..0bdab959b736 100644
--- a/drivers/hwmon/w83781d.c
+++ b/drivers/hwmon/w83781d.c
@@ -1462,7 +1462,8 @@ static struct w83781d_data *w83781d_update_device(struct device *dev)
1462 data->pwm[i] = 1462 data->pwm[i] =
1463 w83781d_read_value(data, 1463 w83781d_read_value(data,
1464 W83781D_REG_PWM[i]); 1464 W83781D_REG_PWM[i]);
1465 if ((data->type != w83782d || !client->driver) 1465 /* Only W83782D on SMBus has PWM3 and PWM4 */
1466 if ((data->type != w83782d || !client)
1466 && i == 1) 1467 && i == 1)
1467 break; 1468 break;
1468 } 1469 }
diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c
index d420cc5f5633..e25e13980af3 100644
--- a/drivers/i2c/algos/i2c-algo-bit.c
+++ b/drivers/i2c/algos/i2c-algo-bit.c
@@ -104,7 +104,7 @@ static int sclhi(struct i2c_algo_bit_data *adap)
104 * chips may hold it low ("clock stretching") while they 104 * chips may hold it low ("clock stretching") while they
105 * are processing data internally. 105 * are processing data internally.
106 */ 106 */
107 if (time_after_eq(jiffies, start + adap->timeout)) 107 if (time_after(jiffies, start + adap->timeout))
108 return -ETIMEDOUT; 108 return -ETIMEDOUT;
109 cond_resched(); 109 cond_resched();
110 } 110 }
diff --git a/drivers/i2c/algos/i2c-algo-pca.c b/drivers/i2c/algos/i2c-algo-pca.c
index 6318f7ddc1d4..78d42aae0089 100644
--- a/drivers/i2c/algos/i2c-algo-pca.c
+++ b/drivers/i2c/algos/i2c-algo-pca.c
@@ -287,10 +287,21 @@ static int pca_xfer(struct i2c_adapter *i2c_adap,
287 287
288 case 0x30: /* Data byte in I2CDAT has been transmitted; NOT ACK has been received */ 288 case 0x30: /* Data byte in I2CDAT has been transmitted; NOT ACK has been received */
289 DEB2("NOT ACK received after data byte\n"); 289 DEB2("NOT ACK received after data byte\n");
290 pca_stop(adap);
290 goto out; 291 goto out;
291 292
292 case 0x38: /* Arbitration lost during SLA+W, SLA+R or data bytes */ 293 case 0x38: /* Arbitration lost during SLA+W, SLA+R or data bytes */
293 DEB2("Arbitration lost\n"); 294 DEB2("Arbitration lost\n");
295 /*
296 * The PCA9564 data sheet (2006-09-01) says "A
297 * START condition will be transmitted when the
298 * bus becomes free (STOP or SCL and SDA high)"
299 * when the STA bit is set (p. 11).
300 *
301 * In case this won't work, try pca_reset()
302 * instead.
303 */
304 pca_start(adap);
294 goto out; 305 goto out;
295 306
296 case 0x58: /* Data byte has been received; NOT ACK has been returned */ 307 case 0x58: /* Data byte has been received; NOT ACK has been returned */
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index a48c8aee0218..f1c6ca7e2852 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -467,7 +467,7 @@ config I2C_PXA_SLAVE
467 467
468config I2C_S3C2410 468config I2C_S3C2410
469 tristate "S3C2410 I2C Driver" 469 tristate "S3C2410 I2C Driver"
470 depends on ARCH_S3C2410 470 depends on ARCH_S3C2410 || ARCH_S3C64XX
471 help 471 help
472 Say Y here to include support for I2C controller in the 472 Say Y here to include support for I2C controller in the
473 Samsung S3C2410 based System-on-Chip devices. 473 Samsung S3C2410 based System-on-Chip devices.
diff --git a/drivers/i2c/busses/i2c-ali1535.c b/drivers/i2c/busses/i2c-ali1535.c
index 981e080b32ae..d108450df064 100644
--- a/drivers/i2c/busses/i2c-ali1535.c
+++ b/drivers/i2c/busses/i2c-ali1535.c
@@ -284,7 +284,7 @@ static int ali1535_transaction(struct i2c_adapter *adap)
284 && (timeout++ < MAX_TIMEOUT)); 284 && (timeout++ < MAX_TIMEOUT));
285 285
286 /* If the SMBus is still busy, we give up */ 286 /* If the SMBus is still busy, we give up */
287 if (timeout >= MAX_TIMEOUT) { 287 if (timeout > MAX_TIMEOUT) {
288 result = -ETIMEDOUT; 288 result = -ETIMEDOUT;
289 dev_err(&adap->dev, "SMBus Timeout!\n"); 289 dev_err(&adap->dev, "SMBus Timeout!\n");
290 } 290 }
diff --git a/drivers/i2c/busses/i2c-ali15x3.c b/drivers/i2c/busses/i2c-ali15x3.c
index 39066dee46e3..d627fceb790b 100644
--- a/drivers/i2c/busses/i2c-ali15x3.c
+++ b/drivers/i2c/busses/i2c-ali15x3.c
@@ -306,7 +306,7 @@ static int ali15x3_transaction(struct i2c_adapter *adap)
306 && (timeout++ < MAX_TIMEOUT)); 306 && (timeout++ < MAX_TIMEOUT));
307 307
308 /* If the SMBus is still busy, we give up */ 308 /* If the SMBus is still busy, we give up */
309 if (timeout >= MAX_TIMEOUT) { 309 if (timeout > MAX_TIMEOUT) {
310 result = -ETIMEDOUT; 310 result = -ETIMEDOUT;
311 dev_err(&adap->dev, "SMBus Timeout!\n"); 311 dev_err(&adap->dev, "SMBus Timeout!\n");
312 } 312 }
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c
index 220f4a1eee1d..f7d6fe9c49ba 100644
--- a/drivers/i2c/busses/i2c-amd756.c
+++ b/drivers/i2c/busses/i2c-amd756.c
@@ -126,7 +126,7 @@ static int amd756_transaction(struct i2c_adapter *adap)
126 } while ((temp & (GS_HST_STS | GS_SMB_STS)) && 126 } while ((temp & (GS_HST_STS | GS_SMB_STS)) &&
127 (timeout++ < MAX_TIMEOUT)); 127 (timeout++ < MAX_TIMEOUT));
128 /* If the SMBus is still busy, we give up */ 128 /* If the SMBus is still busy, we give up */
129 if (timeout >= MAX_TIMEOUT) { 129 if (timeout > MAX_TIMEOUT) {
130 dev_dbg(&adap->dev, "Busy wait timeout (%04x)\n", temp); 130 dev_dbg(&adap->dev, "Busy wait timeout (%04x)\n", temp);
131 goto abort; 131 goto abort;
132 } 132 }
@@ -143,7 +143,7 @@ static int amd756_transaction(struct i2c_adapter *adap)
143 } while ((temp & GS_HST_STS) && (timeout++ < MAX_TIMEOUT)); 143 } while ((temp & GS_HST_STS) && (timeout++ < MAX_TIMEOUT));
144 144
145 /* If the SMBus is still busy, we give up */ 145 /* If the SMBus is still busy, we give up */
146 if (timeout >= MAX_TIMEOUT) { 146 if (timeout > MAX_TIMEOUT) {
147 dev_dbg(&adap->dev, "Completion timeout!\n"); 147 dev_dbg(&adap->dev, "Completion timeout!\n");
148 goto abort; 148 goto abort;
149 } 149 }
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 3fcf78e906db..b5db8b883615 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -531,16 +531,16 @@ static int __devinit cpm_i2c_setup(struct cpm_i2c *cpm)
531 rbdf = cpm->rbase; 531 rbdf = cpm->rbase;
532 532
533 for (i = 0; i < CPM_MAXBD; i++) { 533 for (i = 0; i < CPM_MAXBD; i++) {
534 cpm->rxbuf[i] = dma_alloc_coherent( 534 cpm->rxbuf[i] = dma_alloc_coherent(&cpm->ofdev->dev,
535 NULL, CPM_MAX_READ + 1, &cpm->rxdma[i], GFP_KERNEL); 535 CPM_MAX_READ + 1,
536 &cpm->rxdma[i], GFP_KERNEL);
536 if (!cpm->rxbuf[i]) { 537 if (!cpm->rxbuf[i]) {
537 ret = -ENOMEM; 538 ret = -ENOMEM;
538 goto out_muram; 539 goto out_muram;
539 } 540 }
540 out_be32(&rbdf[i].cbd_bufaddr, ((cpm->rxdma[i] + 1) & ~1)); 541 out_be32(&rbdf[i].cbd_bufaddr, ((cpm->rxdma[i] + 1) & ~1));
541 542
542 cpm->txbuf[i] = (unsigned char *)dma_alloc_coherent( 543 cpm->txbuf[i] = (unsigned char *)dma_alloc_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1, &cpm->txdma[i], GFP_KERNEL);
543 NULL, CPM_MAX_READ + 1, &cpm->txdma[i], GFP_KERNEL);
544 if (!cpm->txbuf[i]) { 544 if (!cpm->txbuf[i]) {
545 ret = -ENOMEM; 545 ret = -ENOMEM;
546 goto out_muram; 546 goto out_muram;
@@ -585,10 +585,10 @@ static int __devinit cpm_i2c_setup(struct cpm_i2c *cpm)
585out_muram: 585out_muram:
586 for (i = 0; i < CPM_MAXBD; i++) { 586 for (i = 0; i < CPM_MAXBD; i++) {
587 if (cpm->rxbuf[i]) 587 if (cpm->rxbuf[i])
588 dma_free_coherent(NULL, CPM_MAX_READ + 1, 588 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
589 cpm->rxbuf[i], cpm->rxdma[i]); 589 cpm->rxbuf[i], cpm->rxdma[i]);
590 if (cpm->txbuf[i]) 590 if (cpm->txbuf[i])
591 dma_free_coherent(NULL, CPM_MAX_READ + 1, 591 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
592 cpm->txbuf[i], cpm->txdma[i]); 592 cpm->txbuf[i], cpm->txdma[i]);
593 } 593 }
594 cpm_muram_free(cpm->dp_addr); 594 cpm_muram_free(cpm->dp_addr);
@@ -619,9 +619,9 @@ static void cpm_i2c_shutdown(struct cpm_i2c *cpm)
619 619
620 /* Free all memory */ 620 /* Free all memory */
621 for (i = 0; i < CPM_MAXBD; i++) { 621 for (i = 0; i < CPM_MAXBD; i++) {
622 dma_free_coherent(NULL, CPM_MAX_READ + 1, 622 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
623 cpm->rxbuf[i], cpm->rxdma[i]); 623 cpm->rxbuf[i], cpm->rxdma[i]);
624 dma_free_coherent(NULL, CPM_MAX_READ + 1, 624 dma_free_coherent(&cpm->ofdev->dev, CPM_MAX_READ + 1,
625 cpm->txbuf[i], cpm->txdma[i]); 625 cpm->txbuf[i], cpm->txdma[i]);
626 } 626 }
627 627
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 10411848fd70..9d2c5adf5d4f 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -237,7 +237,7 @@ static int i801_transaction(int xact)
237 status = inb_p(SMBHSTSTS); 237 status = inb_p(SMBHSTSTS);
238 } while ((status & SMBHSTSTS_HOST_BUSY) && (timeout++ < MAX_TIMEOUT)); 238 } while ((status & SMBHSTSTS_HOST_BUSY) && (timeout++ < MAX_TIMEOUT));
239 239
240 result = i801_check_post(status, timeout >= MAX_TIMEOUT); 240 result = i801_check_post(status, timeout > MAX_TIMEOUT);
241 if (result < 0) 241 if (result < 0)
242 return result; 242 return result;
243 243
@@ -257,9 +257,9 @@ static void i801_wait_hwpec(void)
257 } while ((!(status & SMBHSTSTS_INTR)) 257 } while ((!(status & SMBHSTSTS_INTR))
258 && (timeout++ < MAX_TIMEOUT)); 258 && (timeout++ < MAX_TIMEOUT));
259 259
260 if (timeout >= MAX_TIMEOUT) { 260 if (timeout > MAX_TIMEOUT)
261 dev_dbg(&I801_dev->dev, "PEC Timeout!\n"); 261 dev_dbg(&I801_dev->dev, "PEC Timeout!\n");
262 } 262
263 outb_p(status, SMBHSTSTS); 263 outb_p(status, SMBHSTSTS);
264} 264}
265 265
@@ -344,7 +344,7 @@ static int i801_block_transaction_byte_by_byte(union i2c_smbus_data *data,
344 while ((!(status & SMBHSTSTS_BYTE_DONE)) 344 while ((!(status & SMBHSTSTS_BYTE_DONE))
345 && (timeout++ < MAX_TIMEOUT)); 345 && (timeout++ < MAX_TIMEOUT));
346 346
347 result = i801_check_post(status, timeout >= MAX_TIMEOUT); 347 result = i801_check_post(status, timeout > MAX_TIMEOUT);
348 if (result < 0) 348 if (result < 0)
349 return result; 349 return result;
350 350
diff --git a/drivers/i2c/busses/i2c-isch.c b/drivers/i2c/busses/i2c-isch.c
index b9c01aa90036..9f6b8e0f8632 100644
--- a/drivers/i2c/busses/i2c-isch.c
+++ b/drivers/i2c/busses/i2c-isch.c
@@ -112,7 +112,7 @@ static int sch_transaction(void)
112 } while ((temp & 0x08) && (timeout++ < MAX_TIMEOUT)); 112 } while ((temp & 0x08) && (timeout++ < MAX_TIMEOUT));
113 113
114 /* If the SMBus is still busy, we give up */ 114 /* If the SMBus is still busy, we give up */
115 if (timeout >= MAX_TIMEOUT) { 115 if (timeout > MAX_TIMEOUT) {
116 dev_err(&sch_adapter.dev, "SMBus Timeout!\n"); 116 dev_err(&sch_adapter.dev, "SMBus Timeout!\n");
117 result = -ETIMEDOUT; 117 result = -ETIMEDOUT;
118 } 118 }
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 4af5c09f0e8f..dd778d7ae047 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -164,7 +164,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
164 return 0; 164 return 0;
165} 165}
166 166
167#ifdef CONFIG_PPC_52xx 167#ifdef CONFIG_PPC_MPC52xx
168static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = { 168static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
169 {20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23}, 169 {20, 0x20}, {22, 0x21}, {24, 0x22}, {26, 0x23},
170 {28, 0x24}, {30, 0x01}, {32, 0x25}, {34, 0x02}, 170 {28, 0x24}, {30, 0x01}, {32, 0x25}, {34, 0x02},
@@ -188,7 +188,7 @@ static const struct mpc_i2c_divider mpc_i2c_dividers_52xx[] = {
188 188
189int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler) 189int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler)
190{ 190{
191 const struct mpc52xx_i2c_divider *div = NULL; 191 const struct mpc_i2c_divider *div = NULL;
192 unsigned int pvr = mfspr(SPRN_PVR); 192 unsigned int pvr = mfspr(SPRN_PVR);
193 u32 divider; 193 u32 divider;
194 int i; 194 int i;
@@ -203,7 +203,7 @@ int mpc_i2c_get_fdr_52xx(struct device_node *node, u32 clock, int prescaler)
203 * We want to choose an FDR/DFSR that generates an I2C bus speed that 203 * We want to choose an FDR/DFSR that generates an I2C bus speed that
204 * is equal to or lower than the requested speed. 204 * is equal to or lower than the requested speed.
205 */ 205 */
206 for (i = 0; i < ARRAY_SIZE(mpc52xx_i2c_dividers); i++) { 206 for (i = 0; i < ARRAY_SIZE(mpc_i2c_dividers_52xx); i++) {
207 div = &mpc_i2c_dividers_52xx[i]; 207 div = &mpc_i2c_dividers_52xx[i];
208 /* Old MPC5200 rev A CPUs do not support the high bits */ 208 /* Old MPC5200 rev A CPUs do not support the high bits */
209 if (div->fdr & 0xc0 && pvr == 0x80822011) 209 if (div->fdr & 0xc0 && pvr == 0x80822011)
@@ -219,20 +219,23 @@ static void mpc_i2c_setclock_52xx(struct device_node *node,
219 struct mpc_i2c *i2c, 219 struct mpc_i2c *i2c,
220 u32 clock, u32 prescaler) 220 u32 clock, u32 prescaler)
221{ 221{
222 int fdr = mpc52xx_i2c_get_fdr(node, clock, prescaler); 222 int ret, fdr;
223
224 ret = mpc_i2c_get_fdr_52xx(node, clock, prescaler);
225 fdr = (ret >= 0) ? ret : 0x3f; /* backward compatibility */
223 226
224 if (fdr < 0)
225 fdr = 0x3f; /* backward compatibility */
226 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR); 227 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR);
227 dev_info(i2c->dev, "clock %d Hz (fdr=%d)\n", clock, fdr); 228
229 if (ret >= 0)
230 dev_info(i2c->dev, "clock %d Hz (fdr=%d)\n", clock, fdr);
228} 231}
229#else /* !CONFIG_PPC_52xx */ 232#else /* !CONFIG_PPC_MPC52xx */
230static void mpc_i2c_setclock_52xx(struct device_node *node, 233static void mpc_i2c_setclock_52xx(struct device_node *node,
231 struct mpc_i2c *i2c, 234 struct mpc_i2c *i2c,
232 u32 clock, u32 prescaler) 235 u32 clock, u32 prescaler)
233{ 236{
234} 237}
235#endif /* CONFIG_PPC_52xx*/ 238#endif /* CONFIG_PPC_MPC52xx*/
236 239
237#ifdef CONFIG_FSL_SOC 240#ifdef CONFIG_FSL_SOC
238static const struct mpc_i2c_divider mpc_i2c_dividers_8xxx[] = { 241static const struct mpc_i2c_divider mpc_i2c_dividers_8xxx[] = {
@@ -321,14 +324,17 @@ static void mpc_i2c_setclock_8xxx(struct device_node *node,
321 struct mpc_i2c *i2c, 324 struct mpc_i2c *i2c,
322 u32 clock, u32 prescaler) 325 u32 clock, u32 prescaler)
323{ 326{
324 int fdr = mpc_i2c_get_fdr_8xxx(node, clock, prescaler); 327 int ret, fdr;
328
329 ret = mpc_i2c_get_fdr_8xxx(node, clock, prescaler);
330 fdr = (ret >= 0) ? ret : 0x1031; /* backward compatibility */
325 331
326 if (fdr < 0)
327 fdr = 0x1031; /* backward compatibility */
328 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR); 332 writeb(fdr & 0xff, i2c->base + MPC_I2C_FDR);
329 writeb((fdr >> 8) & 0xff, i2c->base + MPC_I2C_DFSRR); 333 writeb((fdr >> 8) & 0xff, i2c->base + MPC_I2C_DFSRR);
330 dev_info(i2c->dev, "clock %d Hz (dfsrr=%d fdr=%d)\n", 334
331 clock, fdr >> 8, fdr & 0xff); 335 if (ret >= 0)
336 dev_info(i2c->dev, "clock %d Hz (dfsrr=%d fdr=%d)\n",
337 clock, fdr >> 8, fdr & 0xff);
332} 338}
333 339
334#else /* !CONFIG_FSL_SOC */ 340#else /* !CONFIG_FSL_SOC */
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
index 2ff4683703a8..ec11d1c4e77b 100644
--- a/drivers/i2c/busses/i2c-nforce2.c
+++ b/drivers/i2c/busses/i2c-nforce2.c
@@ -173,7 +173,7 @@ static int nforce2_check_status(struct i2c_adapter *adap)
173 temp = inb_p(NVIDIA_SMB_STS); 173 temp = inb_p(NVIDIA_SMB_STS);
174 } while ((!temp) && (timeout++ < MAX_TIMEOUT)); 174 } while ((!temp) && (timeout++ < MAX_TIMEOUT));
175 175
176 if (timeout >= MAX_TIMEOUT) { 176 if (timeout > MAX_TIMEOUT) {
177 dev_dbg(&adap->dev, "SMBus Timeout!\n"); 177 dev_dbg(&adap->dev, "SMBus Timeout!\n");
178 if (smbus->can_abort) 178 if (smbus->can_abort)
179 nforce2_abort(adap); 179 nforce2_abort(adap);
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index c1405c8f6ba5..acc7143d9655 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -265,10 +265,10 @@ static int i2c_pxa_wait_bus_not_busy(struct pxa_i2c *i2c)
265 show_state(i2c); 265 show_state(i2c);
266 } 266 }
267 267
268 if (timeout <= 0) 268 if (timeout < 0)
269 show_state(i2c); 269 show_state(i2c);
270 270
271 return timeout <= 0 ? I2C_RETRY : 0; 271 return timeout < 0 ? I2C_RETRY : 0;
272} 272}
273 273
274static int i2c_pxa_wait_master(struct pxa_i2c *i2c) 274static int i2c_pxa_wait_master(struct pxa_i2c *i2c)
@@ -612,7 +612,7 @@ static int i2c_pxa_pio_set_master(struct pxa_i2c *i2c)
612 show_state(i2c); 612 show_state(i2c);
613 } 613 }
614 614
615 if (timeout <= 0) { 615 if (timeout < 0) {
616 show_state(i2c); 616 show_state(i2c);
617 dev_err(&i2c->adap.dev, 617 dev_err(&i2c->adap.dev,
618 "i2c_pxa: timeout waiting for bus free\n"); 618 "i2c_pxa: timeout waiting for bus free\n");
diff --git a/drivers/i2c/busses/i2c-sis5595.c b/drivers/i2c/busses/i2c-sis5595.c
index f320ab27da46..139f0c7f12a4 100644
--- a/drivers/i2c/busses/i2c-sis5595.c
+++ b/drivers/i2c/busses/i2c-sis5595.c
@@ -256,7 +256,7 @@ static int sis5595_transaction(struct i2c_adapter *adap)
256 } while (!(temp & 0x40) && (timeout++ < MAX_TIMEOUT)); 256 } while (!(temp & 0x40) && (timeout++ < MAX_TIMEOUT));
257 257
258 /* If the SMBus is still busy, we give up */ 258 /* If the SMBus is still busy, we give up */
259 if (timeout >= MAX_TIMEOUT) { 259 if (timeout > MAX_TIMEOUT) {
260 dev_dbg(&adap->dev, "SMBus Timeout!\n"); 260 dev_dbg(&adap->dev, "SMBus Timeout!\n");
261 result = -ETIMEDOUT; 261 result = -ETIMEDOUT;
262 } 262 }
diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c
index 50c3610e6028..70ca41e90e58 100644
--- a/drivers/i2c/busses/i2c-sis630.c
+++ b/drivers/i2c/busses/i2c-sis630.c
@@ -173,7 +173,7 @@ static int sis630_transaction_wait(struct i2c_adapter *adap, int size)
173 } while (!(temp & 0x0e) && (timeout++ < MAX_TIMEOUT)); 173 } while (!(temp & 0x0e) && (timeout++ < MAX_TIMEOUT));
174 174
175 /* If the SMBus is still busy, we give up */ 175 /* If the SMBus is still busy, we give up */
176 if (timeout >= MAX_TIMEOUT) { 176 if (timeout > MAX_TIMEOUT) {
177 dev_dbg(&adap->dev, "SMBus Timeout!\n"); 177 dev_dbg(&adap->dev, "SMBus Timeout!\n");
178 result = -ETIMEDOUT; 178 result = -ETIMEDOUT;
179 } 179 }
diff --git a/drivers/i2c/busses/i2c-sis96x.c b/drivers/i2c/busses/i2c-sis96x.c
index 7e1594b40579..8295885b2fdb 100644
--- a/drivers/i2c/busses/i2c-sis96x.c
+++ b/drivers/i2c/busses/i2c-sis96x.c
@@ -132,7 +132,7 @@ static int sis96x_transaction(int size)
132 } while (!(temp & 0x0e) && (timeout++ < MAX_TIMEOUT)); 132 } while (!(temp & 0x0e) && (timeout++ < MAX_TIMEOUT));
133 133
134 /* If the SMBus is still busy, we give up */ 134 /* If the SMBus is still busy, we give up */
135 if (timeout >= MAX_TIMEOUT) { 135 if (timeout > MAX_TIMEOUT) {
136 dev_dbg(&sis96x_adapter.dev, "SMBus Timeout! (0x%02x)\n", temp); 136 dev_dbg(&sis96x_adapter.dev, "SMBus Timeout! (0x%02x)\n", temp);
137 result = -ETIMEDOUT; 137 result = -ETIMEDOUT;
138 } 138 }
diff --git a/drivers/ide/cs5536.c b/drivers/ide/cs5536.c
index 353a35bbba63..0332a95eefd4 100644
--- a/drivers/ide/cs5536.c
+++ b/drivers/ide/cs5536.c
@@ -236,6 +236,7 @@ static const struct ide_dma_ops cs5536_dma_ops = {
236 .dma_test_irq = ide_dma_test_irq, 236 .dma_test_irq = ide_dma_test_irq,
237 .dma_lost_irq = ide_dma_lost_irq, 237 .dma_lost_irq = ide_dma_lost_irq,
238 .dma_timer_expiry = ide_dma_sff_timer_expiry, 238 .dma_timer_expiry = ide_dma_sff_timer_expiry,
239 .dma_sff_read_status = ide_dma_sff_read_status,
239}; 240};
240 241
241static const struct ide_port_info cs5536_info = { 242static const struct ide_port_info cs5536_info = {
diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c
index a0eb87f59134..0feb66c720e1 100644
--- a/drivers/ide/hpt366.c
+++ b/drivers/ide/hpt366.c
@@ -3,7 +3,7 @@
3 * Portions Copyright (C) 2001 Sun Microsystems, Inc. 3 * Portions Copyright (C) 2001 Sun Microsystems, Inc.
4 * Portions Copyright (C) 2003 Red Hat Inc 4 * Portions Copyright (C) 2003 Red Hat Inc
5 * Portions Copyright (C) 2007 Bartlomiej Zolnierkiewicz 5 * Portions Copyright (C) 2007 Bartlomiej Zolnierkiewicz
6 * Portions Copyright (C) 2005-2008 MontaVista Software, Inc. 6 * Portions Copyright (C) 2005-2009 MontaVista Software, Inc.
7 * 7 *
8 * Thanks to HighPoint Technologies for their assistance, and hardware. 8 * Thanks to HighPoint Technologies for their assistance, and hardware.
9 * Special Thanks to Jon Burchmore in SanDiego for the deep pockets, his 9 * Special Thanks to Jon Burchmore in SanDiego for the deep pockets, his
@@ -114,6 +114,8 @@
114 * the register setting lists into the table indexed by the clock selected 114 * the register setting lists into the table indexed by the clock selected
115 * - set the correct hwif->ultra_mask for each individual chip 115 * - set the correct hwif->ultra_mask for each individual chip
116 * - add Ultra and MW DMA mode filtering for the HPT37[24] based SATA cards 116 * - add Ultra and MW DMA mode filtering for the HPT37[24] based SATA cards
117 * - stop resetting HPT370's state machine before each DMA transfer as that has
118 * caused more harm than good
117 * Sergei Shtylyov, <sshtylyov@ru.mvista.com> or <source@mvista.com> 119 * Sergei Shtylyov, <sshtylyov@ru.mvista.com> or <source@mvista.com>
118 */ 120 */
119 121
@@ -133,7 +135,7 @@
133#define DRV_NAME "hpt366" 135#define DRV_NAME "hpt366"
134 136
135/* various tuning parameters */ 137/* various tuning parameters */
136#define HPT_RESET_STATE_ENGINE 138#undef HPT_RESET_STATE_ENGINE
137#undef HPT_DELAY_INTERRUPT 139#undef HPT_DELAY_INTERRUPT
138 140
139static const char *quirk_drives[] = { 141static const char *quirk_drives[] = {
@@ -808,7 +810,7 @@ static void hpt370_irq_timeout(ide_drive_t *drive)
808 /* get DMA command mode */ 810 /* get DMA command mode */
809 dma_cmd = inb(hwif->dma_base + ATA_DMA_CMD); 811 dma_cmd = inb(hwif->dma_base + ATA_DMA_CMD);
810 /* stop DMA */ 812 /* stop DMA */
811 outb(dma_cmd & ~0x1, hwif->dma_base + ATA_DMA_CMD); 813 outb(dma_cmd & ~ATA_DMA_START, hwif->dma_base + ATA_DMA_CMD);
812 hpt370_clear_engine(drive); 814 hpt370_clear_engine(drive);
813} 815}
814 816
@@ -825,11 +827,11 @@ static int hpt370_dma_end(ide_drive_t *drive)
825 ide_hwif_t *hwif = drive->hwif; 827 ide_hwif_t *hwif = drive->hwif;
826 u8 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS); 828 u8 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS);
827 829
828 if (dma_stat & 0x01) { 830 if (dma_stat & ATA_DMA_ACTIVE) {
829 /* wait a little */ 831 /* wait a little */
830 udelay(20); 832 udelay(20);
831 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS); 833 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS);
832 if (dma_stat & 0x01) 834 if (dma_stat & ATA_DMA_ACTIVE)
833 hpt370_irq_timeout(drive); 835 hpt370_irq_timeout(drive);
834 } 836 }
835 return ide_dma_end(drive); 837 return ide_dma_end(drive);
@@ -851,7 +853,7 @@ static int hpt374_dma_test_irq(ide_drive_t *drive)
851 853
852 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS); 854 dma_stat = inb(hwif->dma_base + ATA_DMA_STATUS);
853 /* return 1 if INTR asserted */ 855 /* return 1 if INTR asserted */
854 if (dma_stat & 4) 856 if (dma_stat & ATA_DMA_INTR)
855 return 1; 857 return 1;
856 858
857 return 0; 859 return 0;
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
index 4e16ce68b063..36da913cc553 100644
--- a/drivers/ide/icside.c
+++ b/drivers/ide/icside.c
@@ -466,7 +466,7 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
466 struct ide_host *host; 466 struct ide_host *host;
467 unsigned int sel = 0; 467 unsigned int sel = 0;
468 int ret; 468 int ret;
469 hw_regs_t hw[2], *hws[] = { &hw[0], NULL, NULL, NULL }; 469 hw_regs_t hw[2], *hws[] = { &hw[0], &hw[1], NULL, NULL };
470 struct ide_port_info d = icside_v6_port_info; 470 struct ide_port_info d = icside_v6_port_info;
471 471
472 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0); 472 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 3aec19d1fdfc..925eb9e245d1 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -312,7 +312,6 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
312 ide_hwif_t *hwif = drive->hwif; 312 ide_hwif_t *hwif = drive->hwif;
313 struct request *rq = hwif->rq; 313 struct request *rq = hwif->rq;
314 int err, sense_key, do_end_request = 0; 314 int err, sense_key, do_end_request = 0;
315 u8 quiet = rq->cmd_flags & REQ_QUIET;
316 315
317 /* get the IDE error register */ 316 /* get the IDE error register */
318 err = ide_read_error(drive); 317 err = ide_read_error(drive);
@@ -347,7 +346,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
347 } else { 346 } else {
348 cdrom_saw_media_change(drive); 347 cdrom_saw_media_change(drive);
349 348
350 if (blk_fs_request(rq) && !quiet) 349 if (blk_fs_request(rq) && !blk_rq_quiet(rq))
351 printk(KERN_ERR PFX "%s: tray open\n", 350 printk(KERN_ERR PFX "%s: tray open\n",
352 drive->name); 351 drive->name);
353 } 352 }
@@ -382,7 +381,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
382 * No point in retrying after an illegal request or data 381 * No point in retrying after an illegal request or data
383 * protect error. 382 * protect error.
384 */ 383 */
385 if (!quiet) 384 if (!blk_rq_quiet(rq))
386 ide_dump_status(drive, "command error", stat); 385 ide_dump_status(drive, "command error", stat);
387 do_end_request = 1; 386 do_end_request = 1;
388 break; 387 break;
@@ -391,14 +390,14 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
391 * No point in re-trying a zillion times on a bad sector. 390 * No point in re-trying a zillion times on a bad sector.
392 * If we got here the error is not correctable. 391 * If we got here the error is not correctable.
393 */ 392 */
394 if (!quiet) 393 if (!blk_rq_quiet(rq))
395 ide_dump_status(drive, "media error " 394 ide_dump_status(drive, "media error "
396 "(bad sector)", stat); 395 "(bad sector)", stat);
397 do_end_request = 1; 396 do_end_request = 1;
398 break; 397 break;
399 case BLANK_CHECK: 398 case BLANK_CHECK:
400 /* disk appears blank? */ 399 /* disk appears blank? */
401 if (!quiet) 400 if (!blk_rq_quiet(rq))
402 ide_dump_status(drive, "media error (blank)", 401 ide_dump_status(drive, "media error (blank)",
403 stat); 402 stat);
404 do_end_request = 1; 403 do_end_request = 1;
@@ -609,7 +608,7 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
609 struct request *rq = hwif->rq; 608 struct request *rq = hwif->rq;
610 ide_expiry_t *expiry = NULL; 609 ide_expiry_t *expiry = NULL;
611 int dma_error = 0, dma, thislen, uptodate = 0; 610 int dma_error = 0, dma, thislen, uptodate = 0;
612 int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc, nsectors; 611 int write = (rq_data_dir(rq) == WRITE) ? 1 : 0, rc = 0, nsectors;
613 int sense = blk_sense_request(rq); 612 int sense = blk_sense_request(rq);
614 unsigned int timeout; 613 unsigned int timeout;
615 u16 len; 614 u16 len;
diff --git a/drivers/ide/ide-gd.c b/drivers/ide/ide-gd.c
index 1aebdf1a4f58..4b6b71e2cdf5 100644
--- a/drivers/ide/ide-gd.c
+++ b/drivers/ide/ide-gd.c
@@ -7,6 +7,7 @@
7#include <linux/mutex.h> 7#include <linux/mutex.h>
8#include <linux/ide.h> 8#include <linux/ide.h>
9#include <linux/hdreg.h> 9#include <linux/hdreg.h>
10#include <linux/dmi.h>
10 11
11#if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT) 12#if !defined(CONFIG_DEBUG_BLOCK_EXT_DEVT)
12#define IDE_DISK_MINORS (1 << PARTN_BITS) 13#define IDE_DISK_MINORS (1 << PARTN_BITS)
@@ -99,6 +100,19 @@ static void ide_gd_resume(ide_drive_t *drive)
99 (void)drive->disk_ops->get_capacity(drive); 100 (void)drive->disk_ops->get_capacity(drive);
100} 101}
101 102
103static const struct dmi_system_id ide_coldreboot_table[] = {
104 {
105 /* Acer TravelMate 66x cuts power during reboot */
106 .ident = "Acer TravelMate 660",
107 .matches = {
108 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
109 DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 660"),
110 },
111 },
112
113 { } /* terminate list */
114};
115
102static void ide_gd_shutdown(ide_drive_t *drive) 116static void ide_gd_shutdown(ide_drive_t *drive)
103{ 117{
104#ifdef CONFIG_ALPHA 118#ifdef CONFIG_ALPHA
@@ -115,7 +129,8 @@ static void ide_gd_shutdown(ide_drive_t *drive)
115 the disk to expire its write cache. */ 129 the disk to expire its write cache. */
116 if (system_state != SYSTEM_POWER_OFF) { 130 if (system_state != SYSTEM_POWER_OFF) {
117#else 131#else
118 if (system_state == SYSTEM_RESTART) { 132 if (system_state == SYSTEM_RESTART &&
133 !dmi_check_system(ide_coldreboot_table)) {
119#endif 134#endif
120 drive->disk_ops->flush(drive); 135 drive->disk_ops->flush(drive);
121 return; 136 return;
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 2ae02b8d7f8e..35dc38d3b2c5 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -102,11 +102,14 @@ void ide_complete_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 stat, u8 err)
102 drive->dev_flags |= IDE_DFLAG_PARKED; 102 drive->dev_flags |= IDE_DFLAG_PARKED;
103 } 103 }
104 104
105 if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) 105 if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
106 memcpy(rq->special, cmd, sizeof(*cmd)); 106 struct ide_cmd *orig_cmd = rq->special;
107 107
108 if (cmd->tf_flags & IDE_TFLAG_DYN) 108 if (cmd->tf_flags & IDE_TFLAG_DYN)
109 kfree(cmd); 109 kfree(orig_cmd);
110 else
111 memcpy(orig_cmd, cmd, sizeof(*cmd));
112 }
110} 113}
111 114
112/* obsolete, blk_rq_bytes() should be used instead */ 115/* obsolete, blk_rq_bytes() should be used instead */
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index cb942a9b580f..3a53e0834cf7 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -614,12 +614,6 @@ static ide_startstop_t ide_tape_issue_pc(ide_drive_t *drive,
614{ 614{
615 idetape_tape_t *tape = drive->driver_data; 615 idetape_tape_t *tape = drive->driver_data;
616 616
617 if (drive->pc->c[0] == REQUEST_SENSE &&
618 pc->c[0] == REQUEST_SENSE) {
619 printk(KERN_ERR "ide-tape: possible ide-tape.c bug - "
620 "Two request sense in serial were issued\n");
621 }
622
623 if (drive->failed_pc == NULL && pc->c[0] != REQUEST_SENSE) 617 if (drive->failed_pc == NULL && pc->c[0] != REQUEST_SENSE)
624 drive->failed_pc = pc; 618 drive->failed_pc = pc;
625 619
diff --git a/drivers/ide/palm_bk3710.c b/drivers/ide/palm_bk3710.c
index c7acca0b8733..09d813d313f4 100644
--- a/drivers/ide/palm_bk3710.c
+++ b/drivers/ide/palm_bk3710.c
@@ -39,27 +39,12 @@
39/* Primary Control Offset */ 39/* Primary Control Offset */
40#define IDE_PALM_ATA_PRI_CTL_OFFSET 0x3F6 40#define IDE_PALM_ATA_PRI_CTL_OFFSET 0x3F6
41 41
42/*
43 * PalmChip 3710 IDE Controller UDMA timing structure Definition
44 */
45struct palm_bk3710_udmatiming {
46 unsigned int rptime; /* Ready to pause time */
47 unsigned int cycletime; /* Cycle Time */
48};
49
50#define BK3710_BMICP 0x00 42#define BK3710_BMICP 0x00
51#define BK3710_BMISP 0x02 43#define BK3710_BMISP 0x02
52#define BK3710_BMIDTP 0x04 44#define BK3710_BMIDTP 0x04
53#define BK3710_BMICS 0x08
54#define BK3710_BMISS 0x0A
55#define BK3710_BMIDTS 0x0C
56#define BK3710_IDETIMP 0x40 45#define BK3710_IDETIMP 0x40
57#define BK3710_IDETIMS 0x42
58#define BK3710_SIDETIM 0x44
59#define BK3710_SLEWCTL 0x45
60#define BK3710_IDESTATUS 0x47 46#define BK3710_IDESTATUS 0x47
61#define BK3710_UDMACTL 0x48 47#define BK3710_UDMACTL 0x48
62#define BK3710_UDMATIM 0x4A
63#define BK3710_MISCCTL 0x50 48#define BK3710_MISCCTL 0x50
64#define BK3710_REGSTB 0x54 49#define BK3710_REGSTB 0x54
65#define BK3710_REGRCVR 0x58 50#define BK3710_REGRCVR 0x58
@@ -71,17 +56,22 @@ struct palm_bk3710_udmatiming {
71#define BK3710_UDMATRP 0x70 56#define BK3710_UDMATRP 0x70
72#define BK3710_UDMAENV 0x74 57#define BK3710_UDMAENV 0x74
73#define BK3710_IORDYTMP 0x78 58#define BK3710_IORDYTMP 0x78
74#define BK3710_IORDYTMS 0x7C
75 59
76static unsigned ideclk_period; /* in nanoseconds */ 60static unsigned ideclk_period; /* in nanoseconds */
77 61
62struct palm_bk3710_udmatiming {
63 unsigned int rptime; /* tRP -- Ready to pause time (nsec) */
64 unsigned int cycletime; /* tCYCTYP2/2 -- avg Cycle Time (nsec) */
65 /* tENV is always a minimum of 20 nsec */
66};
67
78static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = { 68static const struct palm_bk3710_udmatiming palm_bk3710_udmatimings[6] = {
79 {160, 240}, /* UDMA Mode 0 */ 69 { 160, 240 / 2 }, /* UDMA Mode 0 */
80 {125, 160}, /* UDMA Mode 1 */ 70 { 125, 160 / 2 }, /* UDMA Mode 1 */
81 {100, 120}, /* UDMA Mode 2 */ 71 { 100, 120 / 2 }, /* UDMA Mode 2 */
82 {100, 90}, /* UDMA Mode 3 */ 72 { 100, 90 / 2 }, /* UDMA Mode 3 */
83 {100, 60}, /* UDMA Mode 4 */ 73 { 100, 60 / 2 }, /* UDMA Mode 4 */
84 {85, 40}, /* UDMA Mode 5 */ 74 { 85, 40 / 2 }, /* UDMA Mode 5 */
85}; 75};
86 76
87static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev, 77static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev,
@@ -98,11 +88,6 @@ static void palm_bk3710_setudmamode(void __iomem *base, unsigned int dev,
98 trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime, 88 trp = DIV_ROUND_UP(palm_bk3710_udmatimings[mode].rptime,
99 ideclk_period) - 1; 89 ideclk_period) - 1;
100 90
101 /* udmatim Register */
102 val16 = readw(base + BK3710_UDMATIM) & (dev ? 0xFF0F : 0xFFF0);
103 val16 |= (mode << (dev ? 4 : 0));
104 writew(val16, base + BK3710_UDMATIM);
105
106 /* udmastb Ultra DMA Access Strobe Width */ 91 /* udmastb Ultra DMA Access Strobe Width */
107 val32 = readl(base + BK3710_UDMASTB) & (0xFF << (dev ? 0 : 8)); 92 val32 = readl(base + BK3710_UDMASTB) & (0xFF << (dev ? 0 : 8));
108 val32 |= (t0 << (dev ? 8 : 0)); 93 val32 |= (t0 << (dev ? 8 : 0));
@@ -163,10 +148,11 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate,
163 u32 val32; 148 u32 val32;
164 struct ide_timing *t; 149 struct ide_timing *t;
165 150
151 t = ide_timing_find_mode(XFER_PIO_0 + mode);
152
166 /* PIO Data Setup */ 153 /* PIO Data Setup */
167 t0 = DIV_ROUND_UP(cycletime, ideclk_period); 154 t0 = DIV_ROUND_UP(cycletime, ideclk_period);
168 t2 = DIV_ROUND_UP(ide_timing_find_mode(XFER_PIO_0 + mode)->active, 155 t2 = DIV_ROUND_UP(t->active, ideclk_period);
169 ideclk_period);
170 156
171 t2i = t0 - t2 - 1; 157 t2i = t0 - t2 - 1;
172 t2 -= 1; 158 t2 -= 1;
@@ -187,7 +173,6 @@ static void palm_bk3710_setpiomode(void __iomem *base, ide_drive_t *mate,
187 } 173 }
188 174
189 /* TASKFILE Setup */ 175 /* TASKFILE Setup */
190 t = ide_timing_find_mode(XFER_PIO_0 + mode);
191 t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period); 176 t0 = DIV_ROUND_UP(t->cyc8b, ideclk_period);
192 t2 = DIV_ROUND_UP(t->act8b, ideclk_period); 177 t2 = DIV_ROUND_UP(t->act8b, ideclk_period);
193 178
@@ -236,42 +221,23 @@ static void palm_bk3710_set_pio_mode(ide_drive_t *drive, u8 pio)
236static void __devinit palm_bk3710_chipinit(void __iomem *base) 221static void __devinit palm_bk3710_chipinit(void __iomem *base)
237{ 222{
238 /* 223 /*
239 * enable the reset_en of ATA controller so that when ata signals 224 * REVISIT: the ATA reset signal needs to be managed through a
240 * are brought out, by writing into device config. at that 225 * GPIO, which means it should come from platform_data. Until
241 * time por_n signal should not be 'Z' and have a stable value. 226 * we get and use such information, we have to trust that things
227 * have been reset before we get here.
242 */ 228 */
243 writel(0x0300, base + BK3710_MISCCTL);
244
245 /* wait for some time and deassert the reset of ATA Device. */
246 mdelay(100);
247
248 /* Deassert the Reset */
249 writel(0x0200, base + BK3710_MISCCTL);
250 229
251 /* 230 /*
252 * Program the IDETIMP Register Value based on the following assumptions 231 * Program the IDETIMP Register Value based on the following assumptions
253 * 232 *
254 * (ATA_IDETIMP_IDEEN , ENABLE ) | 233 * (ATA_IDETIMP_IDEEN , ENABLE ) |
255 * (ATA_IDETIMP_SLVTIMEN , DISABLE) |
256 * (ATA_IDETIMP_RDYSMPL , 70NS) |
257 * (ATA_IDETIMP_RDYRCVRY , 50NS) |
258 * (ATA_IDETIMP_DMAFTIM1 , PIOCOMP) |
259 * (ATA_IDETIMP_PREPOST1 , DISABLE) | 234 * (ATA_IDETIMP_PREPOST1 , DISABLE) |
260 * (ATA_IDETIMP_RDYSEN1 , DISABLE) |
261 * (ATA_IDETIMP_PIOFTIM1 , DISABLE) |
262 * (ATA_IDETIMP_DMAFTIM0 , PIOCOMP) |
263 * (ATA_IDETIMP_PREPOST0 , DISABLE) | 235 * (ATA_IDETIMP_PREPOST0 , DISABLE) |
264 * (ATA_IDETIMP_RDYSEN0 , DISABLE) | 236 *
265 * (ATA_IDETIMP_PIOFTIM0 , DISABLE) 237 * DM6446 silicon rev 2.1 and earlier have no observed net benefit
266 */ 238 * from enabling prefetch/postwrite.
267 writew(0xB388, base + BK3710_IDETIMP);
268
269 /*
270 * Configure SIDETIM Register
271 * (ATA_SIDETIM_RDYSMPS1 ,120NS ) |
272 * (ATA_SIDETIM_RDYRCYS1 ,120NS )
273 */ 239 */
274 writeb(0, base + BK3710_SIDETIM); 240 writew(BIT(15), base + BK3710_IDETIMP);
275 241
276 /* 242 /*
277 * UDMACTL Ultra-ATA DMA Control 243 * UDMACTL Ultra-ATA DMA Control
@@ -283,11 +249,11 @@ static void __devinit palm_bk3710_chipinit(void __iomem *base)
283 249
284 /* 250 /*
285 * MISCCTL Miscellaneous Conrol Register 251 * MISCCTL Miscellaneous Conrol Register
286 * (ATA_MISCCTL_RSTMODEP , 1) | 252 * (ATA_MISCCTL_HWNHLD1P , 1 cycle)
287 * (ATA_MISCCTL_RESETP , 0) | 253 * (ATA_MISCCTL_HWNHLD0P , 1 cycle)
288 * (ATA_MISCCTL_TIMORIDE , 1) 254 * (ATA_MISCCTL_TIMORIDE , 1)
289 */ 255 */
290 writel(0x201, base + BK3710_MISCCTL); 256 writel(0x001, base + BK3710_MISCCTL);
291 257
292 /* 258 /*
293 * IORDYTMP IORDY Timer for Primary Register 259 * IORDYTMP IORDY Timer for Primary Register
@@ -357,10 +323,9 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
357 323
358 clk_enable(clk); 324 clk_enable(clk);
359 rate = clk_get_rate(clk); 325 rate = clk_get_rate(clk);
360 ideclk_period = 1000000000UL / rate;
361 326
362 /* Register the IDE interface with Linux ATA Interface */ 327 /* NOTE: round *down* to meet minimum timings; we count in clocks */
363 memset(&hw, 0, sizeof(hw)); 328 ideclk_period = 1000000000UL / rate;
364 329
365 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 330 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
366 if (mem == NULL) { 331 if (mem == NULL) {
@@ -390,6 +355,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
390 /* Configure the Palm Chip controller */ 355 /* Configure the Palm Chip controller */
391 palm_bk3710_chipinit(base); 356 palm_bk3710_chipinit(base);
392 357
358 memset(&hw, 0, sizeof(hw));
393 for (i = 0; i < IDE_NR_PORTS - 2; i++) 359 for (i = 0; i < IDE_NR_PORTS - 2; i++)
394 hw.io_ports_array[i] = (unsigned long) 360 hw.io_ports_array[i] = (unsigned long)
395 (base + IDE_PALM_ATA_PRI_REG_OFFSET + i); 361 (base + IDE_PALM_ATA_PRI_REG_OFFSET + i);
@@ -402,6 +368,7 @@ static int __init palm_bk3710_probe(struct platform_device *pdev)
402 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 : 368 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 :
403 ATA_UDMA5; 369 ATA_UDMA5;
404 370
371 /* Register the IDE interface with Linux */
405 rc = ide_host_add(&palm_bk3710_port_info, hws, NULL); 372 rc = ide_host_add(&palm_bk3710_port_info, hws, NULL);
406 if (rc) 373 if (rc)
407 goto out; 374 goto out;
diff --git a/drivers/ide/piix.c b/drivers/ide/piix.c
index 2aa699933064..69860dea3820 100644
--- a/drivers/ide/piix.c
+++ b/drivers/ide/piix.c
@@ -263,6 +263,7 @@ static const struct ich_laptop ich_laptop[] = {
263 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */ 263 { 0x24CA, 0x1025, 0x003d }, /* ICH4 on ACER TM290 */
264 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */ 264 { 0x266F, 0x1025, 0x0066 }, /* ICH6 on ACER Aspire 1694WLMi */
265 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */ 265 { 0x2653, 0x1043, 0x82D8 }, /* ICH6M on Asus Eee 701 */
266 { 0x27df, 0x104d, 0x900e }, /* ICH7 on Sony TZ-90 */
266 /* end marker */ 267 /* end marker */
267 { 0, } 268 { 0, }
268}; 269};
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c
index 052b9bf1f8fb..f76e4e6b408f 100644
--- a/drivers/ide/pmac.c
+++ b/drivers/ide/pmac.c
@@ -1682,7 +1682,7 @@ static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
1682 * The +2 is +1 for the stop command and +1 to allow for 1682 * The +2 is +1 for the stop command and +1 to allow for
1683 * aligning the start address to a multiple of 16 bytes. 1683 * aligning the start address to a multiple of 16 bytes.
1684 */ 1684 */
1685 pmif->dma_table_cpu = (struct dbdma_cmd*)pci_alloc_consistent( 1685 pmif->dma_table_cpu = pci_alloc_consistent(
1686 dev, 1686 dev,
1687 (MAX_DCMDS + 2) * sizeof(struct dbdma_cmd), 1687 (MAX_DCMDS + 2) * sizeof(struct dbdma_cmd),
1688 &hwif->dmatable_dma); 1688 &hwif->dmatable_dma);
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 8d71086f5a1c..62f9cf2f94ec 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -410,6 +410,7 @@ int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
410 ptr = wq->sq_rptr + count; 410 ptr = wq->sq_rptr + count;
411 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); 411 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
412 while (ptr != wq->sq_wptr) { 412 while (ptr != wq->sq_wptr) {
413 sqp->signaled = 0;
413 insert_sq_cqe(wq, cq, sqp); 414 insert_sq_cqe(wq, cq, sqp);
414 ptr++; 415 ptr++;
415 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2); 416 sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index fef3f1ae7225..52d7bb0c2a12 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -1830,6 +1830,10 @@ int iwch_accept_cr(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
1830 ep->com.rpl_err = 0; 1830 ep->com.rpl_err = 0;
1831 ep->ird = conn_param->ird; 1831 ep->ird = conn_param->ird;
1832 ep->ord = conn_param->ord; 1832 ep->ord = conn_param->ord;
1833
1834 if (peer2peer && ep->ird == 0)
1835 ep->ird = 1;
1836
1833 PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord); 1837 PDBG("%s %d ird %d ord %d\n", __func__, __LINE__, ep->ird, ep->ord);
1834 1838
1835 get_ep(&ep->com); 1839 get_ep(&ep->com);
@@ -1915,6 +1919,10 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
1915 conn_param->private_data, ep->plen); 1919 conn_param->private_data, ep->plen);
1916 ep->ird = conn_param->ird; 1920 ep->ird = conn_param->ird;
1917 ep->ord = conn_param->ord; 1921 ep->ord = conn_param->ord;
1922
1923 if (peer2peer && ep->ord == 0)
1924 ep->ord = 1;
1925
1918 ep->com.tdev = h->rdev.t3cdev_p; 1926 ep->com.tdev = h->rdev.t3cdev_p;
1919 1927
1920 cm_id->add_ref(cm_id); 1928 cm_id->add_ref(cm_id);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 2f546a625330..27bbdc8e773a 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -1069,7 +1069,6 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
1069 goto out; 1069 goto out;
1070 } 1070 }
1071 qhp->attr.state = IWCH_QP_STATE_IDLE; 1071 qhp->attr.state = IWCH_QP_STATE_IDLE;
1072 memset(&qhp->attr, 0, sizeof(qhp->attr));
1073 break; 1072 break;
1074 case IWCH_QP_STATE_TERMINATE: 1073 case IWCH_QP_STATE_TERMINATE:
1075 if (!internal) { 1074 if (!internal) {
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c
index 8dc2bb781605..b3684060465e 100644
--- a/drivers/infiniband/hw/ipath/ipath_fs.c
+++ b/drivers/infiniband/hw/ipath/ipath_fs.c
@@ -347,7 +347,7 @@ static int ipathfs_fill_super(struct super_block *sb, void *data,
347 spin_unlock_irqrestore(&ipath_devs_lock, flags); 347 spin_unlock_irqrestore(&ipath_devs_lock, flags);
348 ret = create_device_files(sb, dd); 348 ret = create_device_files(sb, dd);
349 if (ret) { 349 if (ret) {
350 deactivate_super(sb); 350 deactivate_locked_super(sb);
351 goto bail; 351 goto bail;
352 } 352 }
353 spin_lock_irqsave(&ipath_devs_lock, flags); 353 spin_lock_irqsave(&ipath_devs_lock, flags);
diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
index 9974e886b8de..8a7dd6795fa0 100644
--- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
+++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
@@ -86,6 +86,7 @@ struct mlx4_ib_mr {
86 86
87struct mlx4_ib_fast_reg_page_list { 87struct mlx4_ib_fast_reg_page_list {
88 struct ib_fast_reg_page_list ibfrpl; 88 struct ib_fast_reg_page_list ibfrpl;
89 __be64 *mapped_page_list;
89 dma_addr_t map; 90 dma_addr_t map;
90}; 91};
91 92
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 8e4d26d56a95..8f3666b20ea4 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -231,7 +231,11 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
231 if (!mfrpl) 231 if (!mfrpl)
232 return ERR_PTR(-ENOMEM); 232 return ERR_PTR(-ENOMEM);
233 233
234 mfrpl->ibfrpl.page_list = dma_alloc_coherent(&dev->dev->pdev->dev, 234 mfrpl->ibfrpl.page_list = kmalloc(size, GFP_KERNEL);
235 if (!mfrpl->ibfrpl.page_list)
236 goto err_free;
237
238 mfrpl->mapped_page_list = dma_alloc_coherent(&dev->dev->pdev->dev,
235 size, &mfrpl->map, 239 size, &mfrpl->map,
236 GFP_KERNEL); 240 GFP_KERNEL);
237 if (!mfrpl->ibfrpl.page_list) 241 if (!mfrpl->ibfrpl.page_list)
@@ -242,6 +246,7 @@ struct ib_fast_reg_page_list *mlx4_ib_alloc_fast_reg_page_list(struct ib_device
242 return &mfrpl->ibfrpl; 246 return &mfrpl->ibfrpl;
243 247
244err_free: 248err_free:
249 kfree(mfrpl->ibfrpl.page_list);
245 kfree(mfrpl); 250 kfree(mfrpl);
246 return ERR_PTR(-ENOMEM); 251 return ERR_PTR(-ENOMEM);
247} 252}
@@ -252,8 +257,9 @@ void mlx4_ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list)
252 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(page_list); 257 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(page_list);
253 int size = page_list->max_page_list_len * sizeof (u64); 258 int size = page_list->max_page_list_len * sizeof (u64);
254 259
255 dma_free_coherent(&dev->dev->pdev->dev, size, page_list->page_list, 260 dma_free_coherent(&dev->dev->pdev->dev, size, mfrpl->mapped_page_list,
256 mfrpl->map); 261 mfrpl->map);
262 kfree(mfrpl->ibfrpl.page_list);
257 kfree(mfrpl); 263 kfree(mfrpl);
258} 264}
259 265
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f385a24d31d2..20724aee76f4 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1365,7 +1365,7 @@ static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
1365 int i; 1365 int i;
1366 1366
1367 for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i) 1367 for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
1368 wr->wr.fast_reg.page_list->page_list[i] = 1368 mfrpl->mapped_page_list[i] =
1369 cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] | 1369 cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
1370 MLX4_MTT_FLAG_PRESENT); 1370 MLX4_MTT_FLAG_PRESENT);
1371 1371
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
index c33e1c53c799..6d55f9d748f6 100644
--- a/drivers/infiniband/hw/mthca/mthca_cmd.c
+++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
@@ -157,13 +157,15 @@ enum {
157enum { 157enum {
158 CMD_TIME_CLASS_A = (HZ + 999) / 1000 + 1, 158 CMD_TIME_CLASS_A = (HZ + 999) / 1000 + 1,
159 CMD_TIME_CLASS_B = (HZ + 99) / 100 + 1, 159 CMD_TIME_CLASS_B = (HZ + 99) / 100 + 1,
160 CMD_TIME_CLASS_C = (HZ + 9) / 10 + 1 160 CMD_TIME_CLASS_C = (HZ + 9) / 10 + 1,
161 CMD_TIME_CLASS_D = 60 * HZ
161}; 162};
162#else 163#else
163enum { 164enum {
164 CMD_TIME_CLASS_A = 60 * HZ, 165 CMD_TIME_CLASS_A = 60 * HZ,
165 CMD_TIME_CLASS_B = 60 * HZ, 166 CMD_TIME_CLASS_B = 60 * HZ,
166 CMD_TIME_CLASS_C = 60 * HZ 167 CMD_TIME_CLASS_C = 60 * HZ,
168 CMD_TIME_CLASS_D = 60 * HZ
167}; 169};
168#endif 170#endif
169 171
@@ -598,7 +600,7 @@ int mthca_SYS_EN(struct mthca_dev *dev, u8 *status)
598 u64 out; 600 u64 out;
599 int ret; 601 int ret;
600 602
601 ret = mthca_cmd_imm(dev, 0, &out, 0, 0, CMD_SYS_EN, HZ, status); 603 ret = mthca_cmd_imm(dev, 0, &out, 0, 0, CMD_SYS_EN, CMD_TIME_CLASS_D, status);
602 604
603 if (*status == MTHCA_CMD_STAT_DDR_MEM_ERR) 605 if (*status == MTHCA_CMD_STAT_DDR_MEM_ERR)
604 mthca_warn(dev, "SYS_EN DDR error: syn=%x, sock=%d, " 606 mthca_warn(dev, "SYS_EN DDR error: syn=%x, sock=%d, "
@@ -611,7 +613,7 @@ int mthca_SYS_EN(struct mthca_dev *dev, u8 *status)
611 613
612int mthca_SYS_DIS(struct mthca_dev *dev, u8 *status) 614int mthca_SYS_DIS(struct mthca_dev *dev, u8 *status)
613{ 615{
614 return mthca_cmd(dev, 0, 0, 0, CMD_SYS_DIS, HZ, status); 616 return mthca_cmd(dev, 0, 0, 0, CMD_SYS_DIS, CMD_TIME_CLASS_C, status);
615} 617}
616 618
617static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm, 619static int mthca_map_cmd(struct mthca_dev *dev, u16 op, struct mthca_icm *icm,
@@ -1390,7 +1392,7 @@ int mthca_INIT_HCA(struct mthca_dev *dev,
1390 MTHCA_PUT(inbox, param->uarc_base, INIT_HCA_UAR_CTX_BASE_OFFSET); 1392 MTHCA_PUT(inbox, param->uarc_base, INIT_HCA_UAR_CTX_BASE_OFFSET);
1391 } 1393 }
1392 1394
1393 err = mthca_cmd(dev, mailbox->dma, 0, 0, CMD_INIT_HCA, HZ, status); 1395 err = mthca_cmd(dev, mailbox->dma, 0, 0, CMD_INIT_HCA, CMD_TIME_CLASS_D, status);
1394 1396
1395 mthca_free_mailbox(dev, mailbox); 1397 mthca_free_mailbox(dev, mailbox);
1396 return err; 1398 return err;
@@ -1450,12 +1452,12 @@ int mthca_INIT_IB(struct mthca_dev *dev,
1450 1452
1451int mthca_CLOSE_IB(struct mthca_dev *dev, int port, u8 *status) 1453int mthca_CLOSE_IB(struct mthca_dev *dev, int port, u8 *status)
1452{ 1454{
1453 return mthca_cmd(dev, 0, port, 0, CMD_CLOSE_IB, HZ, status); 1455 return mthca_cmd(dev, 0, port, 0, CMD_CLOSE_IB, CMD_TIME_CLASS_A, status);
1454} 1456}
1455 1457
1456int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic, u8 *status) 1458int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic, u8 *status)
1457{ 1459{
1458 return mthca_cmd(dev, 0, 0, panic, CMD_CLOSE_HCA, HZ, status); 1460 return mthca_cmd(dev, 0, 0, panic, CMD_CLOSE_HCA, CMD_TIME_CLASS_C, status);
1459} 1461}
1460 1462
1461int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param, 1463int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param,
diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
index 17621de54a9f..bf1720f7f35f 100644
--- a/drivers/infiniband/hw/nes/nes.h
+++ b/drivers/infiniband/hw/nes/nes.h
@@ -56,10 +56,8 @@
56 56
57#define QUEUE_DISCONNECTS 57#define QUEUE_DISCONNECTS
58 58
59#define DRV_BUILD "1"
60
61#define DRV_NAME "iw_nes" 59#define DRV_NAME "iw_nes"
62#define DRV_VERSION "1.0 KO Build " DRV_BUILD 60#define DRV_VERSION "1.5.0.0"
63#define PFX DRV_NAME ": " 61#define PFX DRV_NAME ": "
64 62
65/* 63/*
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index dbd9a75474e3..11c7d6642014 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -56,6 +56,7 @@
56#include <net/neighbour.h> 56#include <net/neighbour.h>
57#include <net/route.h> 57#include <net/route.h>
58#include <net/ip_fib.h> 58#include <net/ip_fib.h>
59#include <net/tcp.h>
59 60
60#include "nes.h" 61#include "nes.h"
61 62
@@ -540,6 +541,7 @@ static void nes_cm_timer_tick(unsigned long pass)
540 struct list_head *list_node; 541 struct list_head *list_node;
541 struct nes_cm_core *cm_core = g_cm_core; 542 struct nes_cm_core *cm_core = g_cm_core;
542 u32 settimer = 0; 543 u32 settimer = 0;
544 unsigned long timetosend;
543 int ret = NETDEV_TX_OK; 545 int ret = NETDEV_TX_OK;
544 546
545 struct list_head timer_list; 547 struct list_head timer_list;
@@ -644,8 +646,11 @@ static void nes_cm_timer_tick(unsigned long pass)
644 send_entry->retrycount); 646 send_entry->retrycount);
645 if (send_entry->send_retrans) { 647 if (send_entry->send_retrans) {
646 send_entry->retranscount--; 648 send_entry->retranscount--;
649 timetosend = (NES_RETRY_TIMEOUT <<
650 (NES_DEFAULT_RETRANS - send_entry->retranscount));
651
647 send_entry->timetosend = jiffies + 652 send_entry->timetosend = jiffies +
648 NES_RETRY_TIMEOUT; 653 min(timetosend, NES_MAX_TIMEOUT);
649 if (nexttimeout > send_entry->timetosend || 654 if (nexttimeout > send_entry->timetosend ||
650 !settimer) { 655 !settimer) {
651 nexttimeout = send_entry->timetosend; 656 nexttimeout = send_entry->timetosend;
@@ -854,7 +859,6 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
854{ 859{
855 unsigned long flags; 860 unsigned long flags;
856 struct nes_cm_listener *listen_node; 861 struct nes_cm_listener *listen_node;
857 __be32 tmp_addr = cpu_to_be32(dst_addr);
858 862
859 /* walk list and find cm_node associated with this session ID */ 863 /* walk list and find cm_node associated with this session ID */
860 spin_lock_irqsave(&cm_core->listen_list_lock, flags); 864 spin_lock_irqsave(&cm_core->listen_list_lock, flags);
@@ -871,9 +875,6 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
871 } 875 }
872 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); 876 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
873 877
874 nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n",
875 &tmp_addr, dst_port);
876
877 /* no listener */ 878 /* no listener */
878 return NULL; 879 return NULL;
879} 880}
@@ -1325,18 +1326,20 @@ static void handle_fin_pkt(struct nes_cm_node *cm_node)
1325 nes_debug(NES_DBG_CM, "Received FIN, cm_node = %p, state = %u. " 1326 nes_debug(NES_DBG_CM, "Received FIN, cm_node = %p, state = %u. "
1326 "refcnt=%d\n", cm_node, cm_node->state, 1327 "refcnt=%d\n", cm_node, cm_node->state,
1327 atomic_read(&cm_node->ref_count)); 1328 atomic_read(&cm_node->ref_count));
1328 cm_node->tcp_cntxt.rcv_nxt++;
1329 cleanup_retrans_entry(cm_node);
1330 switch (cm_node->state) { 1329 switch (cm_node->state) {
1331 case NES_CM_STATE_SYN_RCVD: 1330 case NES_CM_STATE_SYN_RCVD:
1332 case NES_CM_STATE_SYN_SENT: 1331 case NES_CM_STATE_SYN_SENT:
1333 case NES_CM_STATE_ESTABLISHED: 1332 case NES_CM_STATE_ESTABLISHED:
1334 case NES_CM_STATE_MPAREQ_SENT: 1333 case NES_CM_STATE_MPAREQ_SENT:
1335 case NES_CM_STATE_MPAREJ_RCVD: 1334 case NES_CM_STATE_MPAREJ_RCVD:
1335 cm_node->tcp_cntxt.rcv_nxt++;
1336 cleanup_retrans_entry(cm_node);
1336 cm_node->state = NES_CM_STATE_LAST_ACK; 1337 cm_node->state = NES_CM_STATE_LAST_ACK;
1337 send_fin(cm_node, NULL); 1338 send_fin(cm_node, NULL);
1338 break; 1339 break;
1339 case NES_CM_STATE_FIN_WAIT1: 1340 case NES_CM_STATE_FIN_WAIT1:
1341 cm_node->tcp_cntxt.rcv_nxt++;
1342 cleanup_retrans_entry(cm_node);
1340 cm_node->state = NES_CM_STATE_CLOSING; 1343 cm_node->state = NES_CM_STATE_CLOSING;
1341 send_ack(cm_node, NULL); 1344 send_ack(cm_node, NULL);
1342 /* Wait for ACK as this is simultanous close.. 1345 /* Wait for ACK as this is simultanous close..
@@ -1344,11 +1347,15 @@ static void handle_fin_pkt(struct nes_cm_node *cm_node)
1344 * Just rm the node.. Done.. */ 1347 * Just rm the node.. Done.. */
1345 break; 1348 break;
1346 case NES_CM_STATE_FIN_WAIT2: 1349 case NES_CM_STATE_FIN_WAIT2:
1350 cm_node->tcp_cntxt.rcv_nxt++;
1351 cleanup_retrans_entry(cm_node);
1347 cm_node->state = NES_CM_STATE_TIME_WAIT; 1352 cm_node->state = NES_CM_STATE_TIME_WAIT;
1348 send_ack(cm_node, NULL); 1353 send_ack(cm_node, NULL);
1349 schedule_nes_timer(cm_node, NULL, NES_TIMER_TYPE_CLOSE, 1, 0); 1354 schedule_nes_timer(cm_node, NULL, NES_TIMER_TYPE_CLOSE, 1, 0);
1350 break; 1355 break;
1351 case NES_CM_STATE_TIME_WAIT: 1356 case NES_CM_STATE_TIME_WAIT:
1357 cm_node->tcp_cntxt.rcv_nxt++;
1358 cleanup_retrans_entry(cm_node);
1352 cm_node->state = NES_CM_STATE_CLOSED; 1359 cm_node->state = NES_CM_STATE_CLOSED;
1353 rem_ref_cm_node(cm_node->cm_core, cm_node); 1360 rem_ref_cm_node(cm_node->cm_core, cm_node);
1354 break; 1361 break;
@@ -1384,7 +1391,6 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1384 passive_state = atomic_add_return(1, &cm_node->passive_state); 1391 passive_state = atomic_add_return(1, &cm_node->passive_state);
1385 if (passive_state == NES_SEND_RESET_EVENT) 1392 if (passive_state == NES_SEND_RESET_EVENT)
1386 create_event(cm_node, NES_CM_EVENT_RESET); 1393 create_event(cm_node, NES_CM_EVENT_RESET);
1387 cleanup_retrans_entry(cm_node);
1388 cm_node->state = NES_CM_STATE_CLOSED; 1394 cm_node->state = NES_CM_STATE_CLOSED;
1389 dev_kfree_skb_any(skb); 1395 dev_kfree_skb_any(skb);
1390 break; 1396 break;
@@ -1398,17 +1404,16 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1398 active_open_err(cm_node, skb, reset); 1404 active_open_err(cm_node, skb, reset);
1399 break; 1405 break;
1400 case NES_CM_STATE_CLOSED: 1406 case NES_CM_STATE_CLOSED:
1401 cleanup_retrans_entry(cm_node);
1402 drop_packet(skb); 1407 drop_packet(skb);
1403 break; 1408 break;
1409 case NES_CM_STATE_LAST_ACK:
1410 cm_node->cm_id->rem_ref(cm_node->cm_id);
1404 case NES_CM_STATE_TIME_WAIT: 1411 case NES_CM_STATE_TIME_WAIT:
1405 cleanup_retrans_entry(cm_node);
1406 cm_node->state = NES_CM_STATE_CLOSED; 1412 cm_node->state = NES_CM_STATE_CLOSED;
1407 rem_ref_cm_node(cm_node->cm_core, cm_node); 1413 rem_ref_cm_node(cm_node->cm_core, cm_node);
1408 drop_packet(skb); 1414 drop_packet(skb);
1409 break; 1415 break;
1410 case NES_CM_STATE_FIN_WAIT1: 1416 case NES_CM_STATE_FIN_WAIT1:
1411 cleanup_retrans_entry(cm_node);
1412 nes_debug(NES_DBG_CM, "Bad state %s[%u]\n", __func__, __LINE__); 1417 nes_debug(NES_DBG_CM, "Bad state %s[%u]\n", __func__, __LINE__);
1413 default: 1418 default:
1414 drop_packet(skb); 1419 drop_packet(skb);
@@ -1455,6 +1460,7 @@ static void handle_rcv_mpa(struct nes_cm_node *cm_node, struct sk_buff *skb)
1455 NES_PASSIVE_STATE_INDICATED); 1460 NES_PASSIVE_STATE_INDICATED);
1456 break; 1461 break;
1457 case NES_CM_STATE_MPAREQ_SENT: 1462 case NES_CM_STATE_MPAREQ_SENT:
1463 cleanup_retrans_entry(cm_node);
1458 if (res_type == NES_MPA_REQUEST_REJECT) { 1464 if (res_type == NES_MPA_REQUEST_REJECT) {
1459 type = NES_CM_EVENT_MPA_REJECT; 1465 type = NES_CM_EVENT_MPA_REJECT;
1460 cm_node->state = NES_CM_STATE_MPAREJ_RCVD; 1466 cm_node->state = NES_CM_STATE_MPAREJ_RCVD;
@@ -1518,7 +1524,7 @@ static int check_seq(struct nes_cm_node *cm_node, struct tcphdr *tcph,
1518 rcv_wnd = cm_node->tcp_cntxt.rcv_wnd; 1524 rcv_wnd = cm_node->tcp_cntxt.rcv_wnd;
1519 if (ack_seq != loc_seq_num) 1525 if (ack_seq != loc_seq_num)
1520 err = 1; 1526 err = 1;
1521 else if ((seq + rcv_wnd) < rcv_nxt) 1527 else if (!between(seq, rcv_nxt, (rcv_nxt+rcv_wnd)))
1522 err = 1; 1528 err = 1;
1523 if (err) { 1529 if (err) {
1524 nes_debug(NES_DBG_CM, "%s[%u] create abort for cm_node=%p " 1530 nes_debug(NES_DBG_CM, "%s[%u] create abort for cm_node=%p "
@@ -1652,49 +1658,39 @@ static void handle_synack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1652 } 1658 }
1653} 1659}
1654 1660
1655static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb, 1661static int handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1656 struct tcphdr *tcph) 1662 struct tcphdr *tcph)
1657{ 1663{
1658 int datasize = 0; 1664 int datasize = 0;
1659 u32 inc_sequence; 1665 u32 inc_sequence;
1660 u32 rem_seq_ack; 1666 u32 rem_seq_ack;
1661 u32 rem_seq; 1667 u32 rem_seq;
1662 int ret; 1668 int ret = 0;
1663 int optionsize; 1669 int optionsize;
1664 optionsize = (tcph->doff << 2) - sizeof(struct tcphdr); 1670 optionsize = (tcph->doff << 2) - sizeof(struct tcphdr);
1665 1671
1666 if (check_seq(cm_node, tcph, skb)) 1672 if (check_seq(cm_node, tcph, skb))
1667 return; 1673 return -EINVAL;
1668 1674
1669 skb_pull(skb, tcph->doff << 2); 1675 skb_pull(skb, tcph->doff << 2);
1670 inc_sequence = ntohl(tcph->seq); 1676 inc_sequence = ntohl(tcph->seq);
1671 rem_seq = ntohl(tcph->seq); 1677 rem_seq = ntohl(tcph->seq);
1672 rem_seq_ack = ntohl(tcph->ack_seq); 1678 rem_seq_ack = ntohl(tcph->ack_seq);
1673 datasize = skb->len; 1679 datasize = skb->len;
1674 cleanup_retrans_entry(cm_node);
1675 switch (cm_node->state) { 1680 switch (cm_node->state) {
1676 case NES_CM_STATE_SYN_RCVD: 1681 case NES_CM_STATE_SYN_RCVD:
1677 /* Passive OPEN */ 1682 /* Passive OPEN */
1683 cleanup_retrans_entry(cm_node);
1678 ret = handle_tcp_options(cm_node, tcph, skb, optionsize, 1); 1684 ret = handle_tcp_options(cm_node, tcph, skb, optionsize, 1);
1679 if (ret) 1685 if (ret)
1680 break; 1686 break;
1681 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq); 1687 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq);
1682 if (cm_node->tcp_cntxt.rem_ack_num !=
1683 cm_node->tcp_cntxt.loc_seq_num) {
1684 nes_debug(NES_DBG_CM, "rem_ack_num != loc_seq_num\n");
1685 cleanup_retrans_entry(cm_node);
1686 send_reset(cm_node, skb);
1687 return;
1688 }
1689 cm_node->state = NES_CM_STATE_ESTABLISHED; 1688 cm_node->state = NES_CM_STATE_ESTABLISHED;
1690 cleanup_retrans_entry(cm_node);
1691 if (datasize) { 1689 if (datasize) {
1692 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize; 1690 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize;
1693 handle_rcv_mpa(cm_node, skb); 1691 handle_rcv_mpa(cm_node, skb);
1694 } else { /* rcvd ACK only */ 1692 } else /* rcvd ACK only */
1695 dev_kfree_skb_any(skb); 1693 dev_kfree_skb_any(skb);
1696 cleanup_retrans_entry(cm_node);
1697 }
1698 break; 1694 break;
1699 case NES_CM_STATE_ESTABLISHED: 1695 case NES_CM_STATE_ESTABLISHED:
1700 /* Passive OPEN */ 1696 /* Passive OPEN */
@@ -1706,15 +1702,12 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1706 drop_packet(skb); 1702 drop_packet(skb);
1707 break; 1703 break;
1708 case NES_CM_STATE_MPAREQ_SENT: 1704 case NES_CM_STATE_MPAREQ_SENT:
1709 cleanup_retrans_entry(cm_node);
1710 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq); 1705 cm_node->tcp_cntxt.rem_ack_num = ntohl(tcph->ack_seq);
1711 if (datasize) { 1706 if (datasize) {
1712 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize; 1707 cm_node->tcp_cntxt.rcv_nxt = inc_sequence + datasize;
1713 handle_rcv_mpa(cm_node, skb); 1708 handle_rcv_mpa(cm_node, skb);
1714 } else { /* Could be just an ack pkt.. */ 1709 } else /* Could be just an ack pkt.. */
1715 cleanup_retrans_entry(cm_node);
1716 dev_kfree_skb_any(skb); 1710 dev_kfree_skb_any(skb);
1717 }
1718 break; 1711 break;
1719 case NES_CM_STATE_LISTENING: 1712 case NES_CM_STATE_LISTENING:
1720 case NES_CM_STATE_CLOSED: 1713 case NES_CM_STATE_CLOSED:
@@ -1722,11 +1715,10 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1722 send_reset(cm_node, skb); 1715 send_reset(cm_node, skb);
1723 break; 1716 break;
1724 case NES_CM_STATE_LAST_ACK: 1717 case NES_CM_STATE_LAST_ACK:
1718 case NES_CM_STATE_CLOSING:
1725 cleanup_retrans_entry(cm_node); 1719 cleanup_retrans_entry(cm_node);
1726 cm_node->state = NES_CM_STATE_CLOSED; 1720 cm_node->state = NES_CM_STATE_CLOSED;
1727 cm_node->cm_id->rem_ref(cm_node->cm_id); 1721 cm_node->cm_id->rem_ref(cm_node->cm_id);
1728 case NES_CM_STATE_CLOSING:
1729 cleanup_retrans_entry(cm_node);
1730 rem_ref_cm_node(cm_node->cm_core, cm_node); 1722 rem_ref_cm_node(cm_node->cm_core, cm_node);
1731 drop_packet(skb); 1723 drop_packet(skb);
1732 break; 1724 break;
@@ -1741,9 +1733,11 @@ static void handle_ack_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
1741 case NES_CM_STATE_MPAREQ_RCVD: 1733 case NES_CM_STATE_MPAREQ_RCVD:
1742 case NES_CM_STATE_UNKNOWN: 1734 case NES_CM_STATE_UNKNOWN:
1743 default: 1735 default:
1736 cleanup_retrans_entry(cm_node);
1744 drop_packet(skb); 1737 drop_packet(skb);
1745 break; 1738 break;
1746 } 1739 }
1740 return ret;
1747} 1741}
1748 1742
1749 1743
@@ -1849,6 +1843,7 @@ static void process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
1849 enum nes_tcpip_pkt_type pkt_type = NES_PKT_TYPE_UNKNOWN; 1843 enum nes_tcpip_pkt_type pkt_type = NES_PKT_TYPE_UNKNOWN;
1850 struct tcphdr *tcph = tcp_hdr(skb); 1844 struct tcphdr *tcph = tcp_hdr(skb);
1851 u32 fin_set = 0; 1845 u32 fin_set = 0;
1846 int ret = 0;
1852 skb_pull(skb, ip_hdr(skb)->ihl << 2); 1847 skb_pull(skb, ip_hdr(skb)->ihl << 2);
1853 1848
1854 nes_debug(NES_DBG_CM, "process_packet: cm_node=%p state =%d syn=%d " 1849 nes_debug(NES_DBG_CM, "process_packet: cm_node=%p state =%d syn=%d "
@@ -1874,17 +1869,17 @@ static void process_packet(struct nes_cm_node *cm_node, struct sk_buff *skb,
1874 handle_synack_pkt(cm_node, skb, tcph); 1869 handle_synack_pkt(cm_node, skb, tcph);
1875 break; 1870 break;
1876 case NES_PKT_TYPE_ACK: 1871 case NES_PKT_TYPE_ACK:
1877 handle_ack_pkt(cm_node, skb, tcph); 1872 ret = handle_ack_pkt(cm_node, skb, tcph);
1878 if (fin_set) 1873 if (fin_set && !ret)
1879 handle_fin_pkt(cm_node); 1874 handle_fin_pkt(cm_node);
1880 break; 1875 break;
1881 case NES_PKT_TYPE_RST: 1876 case NES_PKT_TYPE_RST:
1882 handle_rst_pkt(cm_node, skb, tcph); 1877 handle_rst_pkt(cm_node, skb, tcph);
1883 break; 1878 break;
1884 default: 1879 default:
1885 drop_packet(skb); 1880 if ((fin_set) && (!check_seq(cm_node, tcph, skb)))
1886 if (fin_set)
1887 handle_fin_pkt(cm_node); 1881 handle_fin_pkt(cm_node);
1882 drop_packet(skb);
1888 break; 1883 break;
1889 } 1884 }
1890} 1885}
@@ -2710,7 +2705,6 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2710 /* associate the node with the QP */ 2705 /* associate the node with the QP */
2711 nesqp->cm_node = (void *)cm_node; 2706 nesqp->cm_node = (void *)cm_node;
2712 cm_node->nesqp = nesqp; 2707 cm_node->nesqp = nesqp;
2713 nes_add_ref(&nesqp->ibqp);
2714 2708
2715 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n", 2709 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
2716 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener); 2710 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
@@ -2763,6 +2757,9 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2763 nes_debug(NES_DBG_CM, "Unable to register memory region" 2757 nes_debug(NES_DBG_CM, "Unable to register memory region"
2764 "for lSMM for cm_node = %p \n", 2758 "for lSMM for cm_node = %p \n",
2765 cm_node); 2759 cm_node);
2760 pci_free_consistent(nesdev->pcidev,
2761 nesqp->private_data_len+sizeof(struct ietf_mpa_frame),
2762 nesqp->ietf_frame, nesqp->ietf_frame_pbase);
2766 return -ENOMEM; 2763 return -ENOMEM;
2767 } 2764 }
2768 2765
@@ -2879,6 +2876,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2879 2876
2880 /* notify OF layer that accept event was successful */ 2877 /* notify OF layer that accept event was successful */
2881 cm_id->add_ref(cm_id); 2878 cm_id->add_ref(cm_id);
2879 nes_add_ref(&nesqp->ibqp);
2882 2880
2883 cm_event.event = IW_CM_EVENT_ESTABLISHED; 2881 cm_event.event = IW_CM_EVENT_ESTABLISHED;
2884 cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED; 2882 cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED;
@@ -2959,6 +2957,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2959 struct nes_device *nesdev; 2957 struct nes_device *nesdev;
2960 struct nes_cm_node *cm_node; 2958 struct nes_cm_node *cm_node;
2961 struct nes_cm_info cm_info; 2959 struct nes_cm_info cm_info;
2960 int apbvt_set = 0;
2962 2961
2963 ibqp = nes_get_qp(cm_id->device, conn_param->qpn); 2962 ibqp = nes_get_qp(cm_id->device, conn_param->qpn);
2964 if (!ibqp) 2963 if (!ibqp)
@@ -2996,9 +2995,11 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2996 conn_param->private_data_len); 2995 conn_param->private_data_len);
2997 2996
2998 if (cm_id->local_addr.sin_addr.s_addr != 2997 if (cm_id->local_addr.sin_addr.s_addr !=
2999 cm_id->remote_addr.sin_addr.s_addr) 2998 cm_id->remote_addr.sin_addr.s_addr) {
3000 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port), 2999 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port),
3001 PCI_FUNC(nesdev->pcidev->devfn), NES_MANAGE_APBVT_ADD); 3000 PCI_FUNC(nesdev->pcidev->devfn), NES_MANAGE_APBVT_ADD);
3001 apbvt_set = 1;
3002 }
3002 3003
3003 /* set up the connection params for the node */ 3004 /* set up the connection params for the node */
3004 cm_info.loc_addr = htonl(cm_id->local_addr.sin_addr.s_addr); 3005 cm_info.loc_addr = htonl(cm_id->local_addr.sin_addr.s_addr);
@@ -3015,8 +3016,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
3015 conn_param->private_data_len, (void *)conn_param->private_data, 3016 conn_param->private_data_len, (void *)conn_param->private_data,
3016 &cm_info); 3017 &cm_info);
3017 if (!cm_node) { 3018 if (!cm_node) {
3018 if (cm_id->local_addr.sin_addr.s_addr != 3019 if (apbvt_set)
3019 cm_id->remote_addr.sin_addr.s_addr)
3020 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port), 3020 nes_manage_apbvt(nesvnic, ntohs(cm_id->local_addr.sin_port),
3021 PCI_FUNC(nesdev->pcidev->devfn), 3021 PCI_FUNC(nesdev->pcidev->devfn),
3022 NES_MANAGE_APBVT_DEL); 3022 NES_MANAGE_APBVT_DEL);
@@ -3025,7 +3025,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
3025 return -ENOMEM; 3025 return -ENOMEM;
3026 } 3026 }
3027 3027
3028 cm_node->apbvt_set = 1; 3028 cm_node->apbvt_set = apbvt_set;
3029 nesqp->cm_node = cm_node; 3029 nesqp->cm_node = cm_node;
3030 cm_node->nesqp = nesqp; 3030 cm_node->nesqp = nesqp;
3031 nes_add_ref(&nesqp->ibqp); 3031 nes_add_ref(&nesqp->ibqp);
diff --git a/drivers/infiniband/hw/nes/nes_cm.h b/drivers/infiniband/hw/nes/nes_cm.h
index 80bba1892571..8b7e7c0e496e 100644
--- a/drivers/infiniband/hw/nes/nes_cm.h
+++ b/drivers/infiniband/hw/nes/nes_cm.h
@@ -149,6 +149,7 @@ struct nes_timer_entry {
149#endif 149#endif
150#define NES_SHORT_TIME (10) 150#define NES_SHORT_TIME (10)
151#define NES_LONG_TIME (2000*HZ/1000) 151#define NES_LONG_TIME (2000*HZ/1000)
152#define NES_MAX_TIMEOUT ((unsigned long) (12*HZ))
152 153
153#define NES_CM_HASHTABLE_SIZE 1024 154#define NES_CM_HASHTABLE_SIZE 1024
154#define NES_CM_TCP_TIMER_INTERVAL 3000 155#define NES_CM_TCP_TIMER_INTERVAL 3000
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
index d6fc9ae44062..b832a7b814a2 100644
--- a/drivers/infiniband/hw/nes/nes_hw.c
+++ b/drivers/infiniband/hw/nes/nes_hw.c
@@ -550,11 +550,8 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
550 msleep(1); 550 msleep(1);
551 } 551 }
552 if (int_cnt > 1) { 552 if (int_cnt > 1) {
553 u32 sds;
554 spin_lock_irqsave(&nesadapter->phy_lock, flags); 553 spin_lock_irqsave(&nesadapter->phy_lock, flags);
555 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1); 554 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, 0x0000F0C8);
556 sds |= 0x00000040;
557 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
558 mh_detected++; 555 mh_detected++;
559 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET); 556 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET);
560 reset_value |= 0x0000003d; 557 reset_value |= 0x0000003d;
@@ -579,7 +576,7 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
579 if (++ext_cnt > int_cnt) { 576 if (++ext_cnt > int_cnt) {
580 spin_lock_irqsave(&nesadapter->phy_lock, flags); 577 spin_lock_irqsave(&nesadapter->phy_lock, flags);
581 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, 578 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1,
582 0x0000F0C8); 579 0x0000F088);
583 mh_detected++; 580 mh_detected++;
584 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET); 581 reset_value = nes_read32(nesdev->regs+NES_SOFTWARE_RESET);
585 reset_value |= 0x0000003d; 582 reset_value |= 0x0000003d;
@@ -764,6 +761,9 @@ static int nes_init_serdes(struct nes_device *nesdev, u8 hw_rev, u8 port_count,
764 return 0; 761 return 0;
765 762
766 /* init serdes 1 */ 763 /* init serdes 1 */
764 if (!(OneG_Mode && (nesadapter->phy_type[1] != NES_PHY_TYPE_PUMA_1G)))
765 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000000FF);
766
767 switch (nesadapter->phy_type[1]) { 767 switch (nesadapter->phy_type[1]) {
768 case NES_PHY_TYPE_ARGUS: 768 case NES_PHY_TYPE_ARGUS:
769 case NES_PHY_TYPE_SFP_D: 769 case NES_PHY_TYPE_SFP_D:
@@ -771,21 +771,20 @@ static int nes_init_serdes(struct nes_device *nesdev, u8 hw_rev, u8 port_count,
771 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_EMP1, 0x00000000); 771 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_EMP1, 0x00000000);
772 break; 772 break;
773 case NES_PHY_TYPE_CX4: 773 case NES_PHY_TYPE_CX4:
774 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
775 sds &= 0xFFFFFFBF;
776 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
777 if (wide_ppm_offset) 774 if (wide_ppm_offset)
778 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000FFFAA); 775 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000FFFAA);
779 else
780 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_CDR_CONTROL1, 0x000000FF);
781 break; 776 break;
782 case NES_PHY_TYPE_PUMA_1G: 777 case NES_PHY_TYPE_PUMA_1G:
783 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1); 778 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
784 sds |= 0x000000100; 779 sds |= 0x000000100;
785 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds); 780 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
786 } 781 }
787 if (!OneG_Mode) 782 if (!OneG_Mode) {
788 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_HIGHZ_LANE_MODE1, 0x11110000); 783 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_TX_HIGHZ_LANE_MODE1, 0x11110000);
784 sds = nes_read_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1);
785 sds &= 0xFFFFFFBF;
786 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL1, sds);
787 }
789 } else { 788 } else {
790 /* init serdes 0 */ 789 /* init serdes 0 */
791 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL0, 0x00000008); 790 nes_write_indexed(nesdev, NES_IDX_ETH_SERDES_COMMON_CONTROL0, 0x00000008);
@@ -913,6 +912,12 @@ static void nes_init_csr_ne020(struct nes_device *nesdev, u8 hw_rev, u8 port_cou
913 u32temp &= 0x7fffffff; 912 u32temp &= 0x7fffffff;
914 u32temp |= 0x7fff0010; 913 u32temp |= 0x7fff0010;
915 nes_write_indexed(nesdev, 0x000021f8, u32temp); 914 nes_write_indexed(nesdev, 0x000021f8, u32temp);
915 if (port_count > 1) {
916 u32temp = nes_read_indexed(nesdev, 0x000023f8);
917 u32temp &= 0x7fffffff;
918 u32temp |= 0x7fff0010;
919 nes_write_indexed(nesdev, 0x000023f8, u32temp);
920 }
916 } 921 }
917} 922}
918 923
@@ -1366,13 +1371,14 @@ int nes_init_phy(struct nes_device *nesdev)
1366 if (phy_type == NES_PHY_TYPE_ARGUS) { 1371 if (phy_type == NES_PHY_TYPE_ARGUS) {
1367 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x000C); 1372 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x000C);
1368 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0008); 1373 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0008);
1374 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0001);
1369 } else { 1375 } else {
1370 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x0004); 1376 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc302, 0x0004);
1371 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0038); 1377 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc319, 0x0038);
1378 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0013);
1372 } 1379 }
1373 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc31a, 0x0098); 1380 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xc31a, 0x0098);
1374 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0026, 0x0E00); 1381 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0026, 0x0E00);
1375 nes_write_10G_phy_reg(nesdev, phy_index, 0x3, 0x0027, 0x0001);
1376 1382
1377 /* setup LEDs */ 1383 /* setup LEDs */
1378 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xd006, 0x0007); 1384 nes_write_10G_phy_reg(nesdev, phy_index, 0x1, 0xd006, 0x0007);
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 7e5b5ba13a74..64d5cfd8f380 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -1627,6 +1627,7 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1627 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff; 1627 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff;
1628 else 1628 else
1629 nescq->hw_cq.cq_number = nesvnic->mcrq_qp_id + nes_ucontext->mcrqf-1; 1629 nescq->hw_cq.cq_number = nesvnic->mcrq_qp_id + nes_ucontext->mcrqf-1;
1630 nescq->mcrqf = nes_ucontext->mcrqf;
1630 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1631 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1631 } 1632 }
1632 nes_debug(NES_DBG_CQ, "CQ Virtual Address = %08lX, size = %u.\n", 1633 nes_debug(NES_DBG_CQ, "CQ Virtual Address = %08lX, size = %u.\n",
@@ -1682,6 +1683,12 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1682 if (!context) 1683 if (!context)
1683 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1684 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1684 nescq->hw_cq.cq_pbase); 1685 nescq->hw_cq.cq_pbase);
1686 else {
1687 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1688 nespbl->pbl_vbase, nespbl->pbl_pbase);
1689 kfree(nespbl);
1690 }
1691
1685 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1692 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1686 kfree(nescq); 1693 kfree(nescq);
1687 return ERR_PTR(-ENOMEM); 1694 return ERR_PTR(-ENOMEM);
@@ -1705,6 +1712,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1705 if (!context) 1712 if (!context)
1706 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1713 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1707 nescq->hw_cq.cq_pbase); 1714 nescq->hw_cq.cq_pbase);
1715 else {
1716 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1717 nespbl->pbl_vbase, nespbl->pbl_pbase);
1718 kfree(nespbl);
1719 }
1708 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1720 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1709 kfree(nescq); 1721 kfree(nescq);
1710 return ERR_PTR(-ENOMEM); 1722 return ERR_PTR(-ENOMEM);
@@ -1722,6 +1734,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1722 if (!context) 1734 if (!context)
1723 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1735 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1724 nescq->hw_cq.cq_pbase); 1736 nescq->hw_cq.cq_pbase);
1737 else {
1738 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1739 nespbl->pbl_vbase, nespbl->pbl_pbase);
1740 kfree(nespbl);
1741 }
1725 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1742 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1726 kfree(nescq); 1743 kfree(nescq);
1727 return ERR_PTR(-ENOMEM); 1744 return ERR_PTR(-ENOMEM);
@@ -1774,6 +1791,11 @@ static struct ib_cq *nes_create_cq(struct ib_device *ibdev, int entries,
1774 if (!context) 1791 if (!context)
1775 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, 1792 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem,
1776 nescq->hw_cq.cq_pbase); 1793 nescq->hw_cq.cq_pbase);
1794 else {
1795 pci_free_consistent(nesdev->pcidev, nespbl->pbl_size,
1796 nespbl->pbl_vbase, nespbl->pbl_pbase);
1797 kfree(nespbl);
1798 }
1777 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num); 1799 nes_free_resource(nesadapter, nesadapter->allocated_cqs, cq_num);
1778 kfree(nescq); 1800 kfree(nescq);
1779 return ERR_PTR(-EIO); 1801 return ERR_PTR(-EIO);
@@ -1855,7 +1877,9 @@ static int nes_destroy_cq(struct ib_cq *ib_cq)
1855 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_OPCODE_IDX, opcode); 1877 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_OPCODE_IDX, opcode);
1856 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, 1878 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX,
1857 (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 16))); 1879 (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 16)));
1858 nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq->hw_cq.cq_number); 1880 if (!nescq->mcrqf)
1881 nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq->hw_cq.cq_number);
1882
1859 atomic_set(&cqp_request->refcount, 2); 1883 atomic_set(&cqp_request->refcount, 2);
1860 nes_post_cqp_request(nesdev, cqp_request); 1884 nes_post_cqp_request(nesdev, cqp_request);
1861 1885
@@ -1895,8 +1919,7 @@ static int nes_destroy_cq(struct ib_cq *ib_cq)
1895static u32 root_256(struct nes_device *nesdev, 1919static u32 root_256(struct nes_device *nesdev,
1896 struct nes_root_vpbl *root_vpbl, 1920 struct nes_root_vpbl *root_vpbl,
1897 struct nes_root_vpbl *new_root, 1921 struct nes_root_vpbl *new_root,
1898 u16 pbl_count_4k, 1922 u16 pbl_count_4k)
1899 u16 pbl_count_256)
1900{ 1923{
1901 u64 leaf_pbl; 1924 u64 leaf_pbl;
1902 int i, j, k; 1925 int i, j, k;
@@ -1952,7 +1975,7 @@ static int nes_reg_mr(struct nes_device *nesdev, struct nes_pd *nespd,
1952 int ret; 1975 int ret;
1953 struct nes_adapter *nesadapter = nesdev->nesadapter; 1976 struct nes_adapter *nesadapter = nesdev->nesadapter;
1954 uint pg_cnt = 0; 1977 uint pg_cnt = 0;
1955 u16 pbl_count_256; 1978 u16 pbl_count_256 = 0;
1956 u16 pbl_count = 0; 1979 u16 pbl_count = 0;
1957 u8 use_256_pbls = 0; 1980 u8 use_256_pbls = 0;
1958 u8 use_4k_pbls = 0; 1981 u8 use_4k_pbls = 0;
@@ -2012,7 +2035,7 @@ static int nes_reg_mr(struct nes_device *nesdev, struct nes_pd *nespd,
2012 } 2035 }
2013 2036
2014 if (use_256_pbls && use_two_level) { 2037 if (use_256_pbls && use_two_level) {
2015 if (root_256(nesdev, root_vpbl, &new_root, pbl_count_4k, pbl_count_256) == 1) { 2038 if (root_256(nesdev, root_vpbl, &new_root, pbl_count_4k) == 1) {
2016 if (new_root.pbl_pbase != 0) 2039 if (new_root.pbl_pbase != 0)
2017 root_vpbl = &new_root; 2040 root_vpbl = &new_root;
2018 } else { 2041 } else {
@@ -2122,6 +2145,7 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2122 struct nes_root_vpbl root_vpbl; 2145 struct nes_root_vpbl root_vpbl;
2123 u32 stag; 2146 u32 stag;
2124 u32 i; 2147 u32 i;
2148 unsigned long mask;
2125 u32 stag_index = 0; 2149 u32 stag_index = 0;
2126 u32 next_stag_index = 0; 2150 u32 next_stag_index = 0;
2127 u32 driver_key = 0; 2151 u32 driver_key = 0;
@@ -2150,6 +2174,9 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2150 return ERR_PTR(-E2BIG); 2174 return ERR_PTR(-E2BIG);
2151 } 2175 }
2152 2176
2177 if ((buffer_list[0].addr ^ *iova_start) & ~PAGE_MASK)
2178 return ERR_PTR(-EINVAL);
2179
2153 err = nes_alloc_resource(nesadapter, nesadapter->allocated_mrs, nesadapter->max_mr, 2180 err = nes_alloc_resource(nesadapter, nesadapter->allocated_mrs, nesadapter->max_mr,
2154 &stag_index, &next_stag_index); 2181 &stag_index, &next_stag_index);
2155 if (err) { 2182 if (err) {
@@ -2215,19 +2242,16 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2215 root_pbl_index++; 2242 root_pbl_index++;
2216 cur_pbl_index = 0; 2243 cur_pbl_index = 0;
2217 } 2244 }
2218 if (buffer_list[i].addr & ~PAGE_MASK) {
2219 /* TODO: Unwind allocated buffers */
2220 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index);
2221 nes_debug(NES_DBG_MR, "Unaligned Memory Buffer: 0x%x\n",
2222 (unsigned int) buffer_list[i].addr);
2223 ibmr = ERR_PTR(-EINVAL);
2224 kfree(nesmr);
2225 goto reg_phys_err;
2226 }
2227 2245
2228 if (!buffer_list[i].size) { 2246 mask = !buffer_list[i].size;
2247 if (i != 0)
2248 mask |= buffer_list[i].addr;
2249 if (i != num_phys_buf - 1)
2250 mask |= buffer_list[i].addr + buffer_list[i].size;
2251
2252 if (mask & ~PAGE_MASK) {
2229 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index); 2253 nes_free_resource(nesadapter, nesadapter->allocated_mrs, stag_index);
2230 nes_debug(NES_DBG_MR, "Invalid Buffer Size\n"); 2254 nes_debug(NES_DBG_MR, "Invalid buffer addr or size\n");
2231 ibmr = ERR_PTR(-EINVAL); 2255 ibmr = ERR_PTR(-EINVAL);
2232 kfree(nesmr); 2256 kfree(nesmr);
2233 goto reg_phys_err; 2257 goto reg_phys_err;
@@ -2238,7 +2262,7 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2238 if ((buffer_list[i-1].addr+PAGE_SIZE) != buffer_list[i].addr) 2262 if ((buffer_list[i-1].addr+PAGE_SIZE) != buffer_list[i].addr)
2239 single_page = 0; 2263 single_page = 0;
2240 } 2264 }
2241 vpbl.pbl_vbase[cur_pbl_index].pa_low = cpu_to_le32((u32)buffer_list[i].addr); 2265 vpbl.pbl_vbase[cur_pbl_index].pa_low = cpu_to_le32((u32)buffer_list[i].addr & PAGE_MASK);
2242 vpbl.pbl_vbase[cur_pbl_index++].pa_high = 2266 vpbl.pbl_vbase[cur_pbl_index++].pa_high =
2243 cpu_to_le32((u32)((((u64)buffer_list[i].addr) >> 32))); 2267 cpu_to_le32((u32)((((u64)buffer_list[i].addr) >> 32)));
2244 } 2268 }
@@ -2251,8 +2275,6 @@ static struct ib_mr *nes_reg_phys_mr(struct ib_pd *ib_pd,
2251 " length = 0x%016lX, index = 0x%08X\n", 2275 " length = 0x%016lX, index = 0x%08X\n",
2252 stag, (unsigned long)*iova_start, (unsigned long)region_length, stag_index); 2276 stag, (unsigned long)*iova_start, (unsigned long)region_length, stag_index);
2253 2277
2254 region_length -= (*iova_start)&PAGE_MASK;
2255
2256 /* Make the leaf PBL the root if only one PBL */ 2278 /* Make the leaf PBL the root if only one PBL */
2257 if (root_pbl_index == 1) { 2279 if (root_pbl_index == 1) {
2258 root_vpbl.pbl_pbase = vpbl.pbl_pbase; 2280 root_vpbl.pbl_pbase = vpbl.pbl_pbase;
@@ -2786,10 +2808,9 @@ static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr,
2786 struct nes_vnic *nesvnic = nesibdev->nesvnic; 2808 struct nes_vnic *nesvnic = nesibdev->nesvnic;
2787 2809
2788 nes_debug(NES_DBG_INIT, "\n"); 2810 nes_debug(NES_DBG_INIT, "\n");
2789 return sprintf(buf, "%x.%x.%x\n", 2811 return sprintf(buf, "%u.%u\n",
2790 (int)(nesvnic->nesdev->nesadapter->fw_ver >> 32), 2812 (nesvnic->nesdev->nesadapter->firmware_version >> 16),
2791 (int)(nesvnic->nesdev->nesadapter->fw_ver >> 16) & 0xffff, 2813 (nesvnic->nesdev->nesadapter->firmware_version & 0x000000ff));
2792 (int)(nesvnic->nesdev->nesadapter->fw_ver & 0xffff));
2793} 2814}
2794 2815
2795 2816
diff --git a/drivers/infiniband/hw/nes/nes_verbs.h b/drivers/infiniband/hw/nes/nes_verbs.h
index 5e48f67fbe8d..41c07f29f7c9 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.h
+++ b/drivers/infiniband/hw/nes/nes_verbs.h
@@ -112,6 +112,7 @@ struct nes_cq {
112 spinlock_t lock; 112 spinlock_t lock;
113 u8 virtual_cq; 113 u8 virtual_cq;
114 u8 pad[3]; 114 u8 pad[3];
115 u32 mcrqf;
115}; 116};
116 117
117struct nes_wq { 118struct nes_wq {
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index da6082739839..e7e5adf84e84 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -685,7 +685,8 @@ int ipoib_ib_dev_open(struct net_device *dev)
685 queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task, 685 queue_delayed_work(ipoib_workqueue, &priv->ah_reap_task,
686 round_jiffies_relative(HZ)); 686 round_jiffies_relative(HZ));
687 687
688 set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags); 688 if (!test_and_set_bit(IPOIB_FLAG_INITIALIZED, &priv->flags))
689 napi_enable(&priv->napi);
689 690
690 return 0; 691 return 0;
691} 692}
@@ -804,7 +805,8 @@ int ipoib_ib_dev_stop(struct net_device *dev, int flush)
804 struct ipoib_tx_buf *tx_req; 805 struct ipoib_tx_buf *tx_req;
805 int i; 806 int i;
806 807
807 clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags); 808 if (test_and_clear_bit(IPOIB_FLAG_INITIALIZED, &priv->flags))
809 napi_disable(&priv->napi);
808 810
809 ipoib_cm_dev_stop(dev); 811 ipoib_cm_dev_stop(dev);
810 812
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 421a6640c9bd..ab2c192c76bc 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -106,8 +106,7 @@ int ipoib_open(struct net_device *dev)
106 106
107 ipoib_dbg(priv, "bringing up interface\n"); 107 ipoib_dbg(priv, "bringing up interface\n");
108 108
109 if (!test_and_set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)) 109 set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
110 napi_enable(&priv->napi);
111 110
112 if (ipoib_pkey_dev_delay_open(dev)) 111 if (ipoib_pkey_dev_delay_open(dev))
113 return 0; 112 return 0;
@@ -143,7 +142,6 @@ err_stop:
143 ipoib_ib_dev_stop(dev, 1); 142 ipoib_ib_dev_stop(dev, 1);
144 143
145err_disable: 144err_disable:
146 napi_disable(&priv->napi);
147 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 145 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
148 146
149 return -EINVAL; 147 return -EINVAL;
@@ -156,7 +154,6 @@ static int ipoib_stop(struct net_device *dev)
156 ipoib_dbg(priv, "stopping interface\n"); 154 ipoib_dbg(priv, "stopping interface\n");
157 155
158 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); 156 clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags);
159 napi_disable(&priv->napi);
160 157
161 netif_stop_queue(dev); 158 netif_stop_queue(dev);
162 159
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 13d7674b293d..75223f50de58 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -599,6 +599,7 @@ static struct scsi_host_template iscsi_iser_sht = {
599 .eh_abort_handler = iscsi_eh_abort, 599 .eh_abort_handler = iscsi_eh_abort,
600 .eh_device_reset_handler= iscsi_eh_device_reset, 600 .eh_device_reset_handler= iscsi_eh_device_reset,
601 .eh_target_reset_handler= iscsi_eh_target_reset, 601 .eh_target_reset_handler= iscsi_eh_target_reset,
602 .target_alloc = iscsi_target_alloc,
602 .use_clustering = DISABLE_CLUSTERING, 603 .use_clustering = DISABLE_CLUSTERING,
603 .proc_name = "iscsi_iser", 604 .proc_name = "iscsi_iser",
604 .this_id = -1, 605 .this_id = -1,
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index bc4e40f3ede7..2d1415e16834 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -226,7 +226,7 @@ static int get_compatible_type(struct ff_device *ff, int effect_type)
226 */ 226 */
227static void ml_combine_effects(struct ff_effect *effect, 227static void ml_combine_effects(struct ff_effect *effect,
228 struct ml_effect_state *state, 228 struct ml_effect_state *state,
229 int gain) 229 unsigned int gain)
230{ 230{
231 struct ff_effect *new = state->effect; 231 struct ff_effect *new = state->effect;
232 unsigned int strong, weak, i; 232 unsigned int strong, weak, i;
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
index ebf4be5b7c4e..2d175b5928ff 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -50,9 +50,8 @@ static LIST_HEAD(gameport_list);
50 50
51static struct bus_type gameport_bus; 51static struct bus_type gameport_bus;
52 52
53static void gameport_add_driver(struct gameport_driver *drv);
54static void gameport_add_port(struct gameport *gameport); 53static void gameport_add_port(struct gameport *gameport);
55static void gameport_destroy_port(struct gameport *gameport); 54static void gameport_attach_driver(struct gameport_driver *drv);
56static void gameport_reconnect_port(struct gameport *gameport); 55static void gameport_reconnect_port(struct gameport *gameport);
57static void gameport_disconnect_port(struct gameport *gameport); 56static void gameport_disconnect_port(struct gameport *gameport);
58 57
@@ -230,7 +229,6 @@ static void gameport_find_driver(struct gameport *gameport)
230 229
231enum gameport_event_type { 230enum gameport_event_type {
232 GAMEPORT_REGISTER_PORT, 231 GAMEPORT_REGISTER_PORT,
233 GAMEPORT_REGISTER_DRIVER,
234 GAMEPORT_ATTACH_DRIVER, 232 GAMEPORT_ATTACH_DRIVER,
235}; 233};
236 234
@@ -374,8 +372,8 @@ static void gameport_handle_event(void)
374 gameport_add_port(event->object); 372 gameport_add_port(event->object);
375 break; 373 break;
376 374
377 case GAMEPORT_REGISTER_DRIVER: 375 case GAMEPORT_ATTACH_DRIVER:
378 gameport_add_driver(event->object); 376 gameport_attach_driver(event->object);
379 break; 377 break;
380 378
381 default: 379 default:
@@ -706,14 +704,14 @@ static int gameport_driver_remove(struct device *dev)
706 return 0; 704 return 0;
707} 705}
708 706
709static void gameport_add_driver(struct gameport_driver *drv) 707static void gameport_attach_driver(struct gameport_driver *drv)
710{ 708{
711 int error; 709 int error;
712 710
713 error = driver_register(&drv->driver); 711 error = driver_attach(&drv->driver);
714 if (error) 712 if (error)
715 printk(KERN_ERR 713 printk(KERN_ERR
716 "gameport: driver_register() failed for %s, error: %d\n", 714 "gameport: driver_attach() failed for %s, error: %d\n",
717 drv->driver.name, error); 715 drv->driver.name, error);
718} 716}
719 717
diff --git a/drivers/input/input.c b/drivers/input/input.c
index d44065d2e662..e54e002665b0 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -29,6 +29,23 @@ MODULE_LICENSE("GPL");
29 29
30#define INPUT_DEVICES 256 30#define INPUT_DEVICES 256
31 31
32/*
33 * EV_ABS events which should not be cached are listed here.
34 */
35static unsigned int input_abs_bypass_init_data[] __initdata = {
36 ABS_MT_TOUCH_MAJOR,
37 ABS_MT_TOUCH_MINOR,
38 ABS_MT_WIDTH_MAJOR,
39 ABS_MT_WIDTH_MINOR,
40 ABS_MT_ORIENTATION,
41 ABS_MT_POSITION_X,
42 ABS_MT_POSITION_Y,
43 ABS_MT_TOOL_TYPE,
44 ABS_MT_BLOB_ID,
45 0
46};
47static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)];
48
32static LIST_HEAD(input_dev_list); 49static LIST_HEAD(input_dev_list);
33static LIST_HEAD(input_handler_list); 50static LIST_HEAD(input_handler_list);
34 51
@@ -161,6 +178,10 @@ static void input_handle_event(struct input_dev *dev,
161 disposition = INPUT_PASS_TO_HANDLERS; 178 disposition = INPUT_PASS_TO_HANDLERS;
162 } 179 }
163 break; 180 break;
181 case SYN_MT_REPORT:
182 dev->sync = 0;
183 disposition = INPUT_PASS_TO_HANDLERS;
184 break;
164 } 185 }
165 break; 186 break;
166 187
@@ -192,6 +213,11 @@ static void input_handle_event(struct input_dev *dev,
192 case EV_ABS: 213 case EV_ABS:
193 if (is_event_supported(code, dev->absbit, ABS_MAX)) { 214 if (is_event_supported(code, dev->absbit, ABS_MAX)) {
194 215
216 if (test_bit(code, input_abs_bypass)) {
217 disposition = INPUT_PASS_TO_HANDLERS;
218 break;
219 }
220
195 value = input_defuzz_abs_event(value, 221 value = input_defuzz_abs_event(value,
196 dev->abs[code], dev->absfuzz[code]); 222 dev->abs[code], dev->absfuzz[code]);
197 223
@@ -1549,7 +1575,6 @@ int input_register_handle(struct input_handle *handle)
1549 return error; 1575 return error;
1550 list_add_tail_rcu(&handle->d_node, &dev->h_list); 1576 list_add_tail_rcu(&handle->d_node, &dev->h_list);
1551 mutex_unlock(&dev->mutex); 1577 mutex_unlock(&dev->mutex);
1552 synchronize_rcu();
1553 1578
1554 /* 1579 /*
1555 * Since we are supposed to be called from ->connect() 1580 * Since we are supposed to be called from ->connect()
@@ -1635,10 +1660,20 @@ static const struct file_operations input_fops = {
1635 .open = input_open_file, 1660 .open = input_open_file,
1636}; 1661};
1637 1662
1663static void __init input_init_abs_bypass(void)
1664{
1665 const unsigned int *p;
1666
1667 for (p = input_abs_bypass_init_data; *p; p++)
1668 input_abs_bypass[BIT_WORD(*p)] |= BIT_MASK(*p);
1669}
1670
1638static int __init input_init(void) 1671static int __init input_init(void)
1639{ 1672{
1640 int err; 1673 int err;
1641 1674
1675 input_init_abs_bypass();
1676
1642 err = class_register(&input_class); 1677 err = class_register(&input_class);
1643 if (err) { 1678 if (err) {
1644 printk(KERN_ERR "input: unable to register input_dev class\n"); 1679 printk(KERN_ERR "input: unable to register input_dev class\n");
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index 4224f0112849..012a5e753991 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -843,7 +843,13 @@ static const struct input_device_id joydev_blacklist[] = {
843 INPUT_DEVICE_ID_MATCH_KEYBIT, 843 INPUT_DEVICE_ID_MATCH_KEYBIT,
844 .evbit = { BIT_MASK(EV_KEY) }, 844 .evbit = { BIT_MASK(EV_KEY) },
845 .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) }, 845 .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) },
846 }, /* Avoid itouchpads, touchscreens and tablets */ 846 }, /* Avoid itouchpads and touchscreens */
847 {
848 .flags = INPUT_DEVICE_ID_MATCH_EVBIT |
849 INPUT_DEVICE_ID_MATCH_KEYBIT,
850 .evbit = { BIT_MASK(EV_KEY) },
851 .keybit = { [BIT_WORD(BTN_DIGI)] = BIT_MASK(BTN_DIGI) },
852 }, /* Avoid tablets, digitisers and similar devices */
847 { } /* Terminating entry */ 853 { } /* Terminating entry */
848}; 854};
849 855
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index f999dc60c3b8..df3f8aa68115 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -880,7 +880,7 @@ static unsigned int atkbd_hp_zv6100_forced_release_keys[] = {
880}; 880};
881 881
882/* 882/*
883 * Samsung NC10 with Fn+F? key release not working 883 * Samsung NC10,NC20 with Fn+F? key release not working
884 */ 884 */
885static unsigned int atkbd_samsung_forced_release_keys[] = { 885static unsigned int atkbd_samsung_forced_release_keys[] = {
886 0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xb3, 0xf7, 0xf9, -1U 886 0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xb3, 0xf7, 0xf9, -1U
@@ -895,6 +895,13 @@ static unsigned int atkbd_amilo_pa1510_forced_release_keys[] = {
895}; 895};
896 896
897/* 897/*
898 * Amilo Xi 3650 key release for light touch bar not working
899 */
900static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = {
901 0x67, 0xed, 0x90, 0xa2, 0x99, 0xa4, 0xae, 0xb0, -1U
902};
903
904/*
898 * atkbd_set_keycode_table() initializes keyboard's keycode table 905 * atkbd_set_keycode_table() initializes keyboard's keycode table
899 * according to the selected scancode set 906 * according to the selected scancode set
900 */ 907 */
@@ -1534,6 +1541,24 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1534 .driver_data = atkbd_samsung_forced_release_keys, 1541 .driver_data = atkbd_samsung_forced_release_keys,
1535 }, 1542 },
1536 { 1543 {
1544 .ident = "Samsung NC20",
1545 .matches = {
1546 DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
1547 DMI_MATCH(DMI_PRODUCT_NAME, "NC20"),
1548 },
1549 .callback = atkbd_setup_forced_release,
1550 .driver_data = atkbd_samsung_forced_release_keys,
1551 },
1552 {
1553 .ident = "Samsung SQ45S70S",
1554 .matches = {
1555 DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
1556 DMI_MATCH(DMI_PRODUCT_NAME, "SQ45S70S"),
1557 },
1558 .callback = atkbd_setup_forced_release,
1559 .driver_data = atkbd_samsung_forced_release_keys,
1560 },
1561 {
1537 .ident = "Fujitsu Amilo PA 1510", 1562 .ident = "Fujitsu Amilo PA 1510",
1538 .matches = { 1563 .matches = {
1539 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), 1564 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
@@ -1542,6 +1567,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = {
1542 .callback = atkbd_setup_forced_release, 1567 .callback = atkbd_setup_forced_release,
1543 .driver_data = atkbd_amilo_pa1510_forced_release_keys, 1568 .driver_data = atkbd_amilo_pa1510_forced_release_keys,
1544 }, 1569 },
1570 {
1571 .ident = "Fujitsu Amilo Xi 3650",
1572 .matches = {
1573 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
1574 DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 3650"),
1575 },
1576 .callback = atkbd_setup_forced_release,
1577 .driver_data = atkbd_amilo_xi3650_forced_release_keys,
1578 },
1545 { } 1579 { }
1546}; 1580};
1547 1581
diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
index e94b7d735aca..d427f322e207 100644
--- a/drivers/input/keyboard/bf54x-keys.c
+++ b/drivers/input/keyboard/bf54x-keys.c
@@ -252,7 +252,7 @@ static int __devinit bfin_kpad_probe(struct platform_device *pdev)
252 } 252 }
253 253
254 error = request_irq(bf54x_kpad->irq, bfin_kpad_isr, 254 error = request_irq(bf54x_kpad->irq, bfin_kpad_isr,
255 IRQF_SAMPLE_RANDOM, DRV_NAME, pdev); 255 0, DRV_NAME, pdev);
256 if (error) { 256 if (error) {
257 printk(KERN_ERR DRV_NAME 257 printk(KERN_ERR DRV_NAME
258 ": unable to claim irq %d; error %d\n", 258 ": unable to claim irq %d; error %d\n",
diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
index 058fa8b02c21..87ec7b18ac69 100644
--- a/drivers/input/keyboard/omap-keypad.c
+++ b/drivers/input/keyboard/omap-keypad.c
@@ -100,8 +100,20 @@ static irqreturn_t omap_kp_interrupt(int irq, void *dev_id)
100 /* disable keyboard interrupt and schedule for handling */ 100 /* disable keyboard interrupt and schedule for handling */
101 if (cpu_is_omap24xx()) { 101 if (cpu_is_omap24xx()) {
102 int i; 102 int i;
103 for (i = 0; i < omap_kp->rows; i++) 103
104 disable_irq(gpio_to_irq(row_gpios[i])); 104 for (i = 0; i < omap_kp->rows; i++) {
105 int gpio_irq = gpio_to_irq(row_gpios[i]);
106 /*
107 * The interrupt which we're currently handling should
108 * be disabled _nosync() to avoid deadlocks waiting
109 * for this handler to complete. All others should
110 * be disabled the regular way for SMP safety.
111 */
112 if (gpio_irq == irq)
113 disable_irq_nosync(gpio_irq);
114 else
115 disable_irq(gpio_irq);
116 }
105 } else 117 } else
106 /* disable keyboard interrupt and schedule for handling */ 118 /* disable keyboard interrupt and schedule for handling */
107 omap_writew(1, OMAP_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT); 119 omap_writew(1, OMAP_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT);
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 203abac1e23e..5c0a631d1455 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -214,7 +214,7 @@ config INPUT_SGI_BTNS
214 214
215config HP_SDC_RTC 215config HP_SDC_RTC
216 tristate "HP SDC Real Time Clock" 216 tristate "HP SDC Real Time Clock"
217 depends on GSC || HP300 217 depends on (GSC || HP300) && SERIO
218 select HP_SDC 218 select HP_SDC
219 help 219 help
220 Say Y here if you want to support the built-in real time clock 220 Say Y here if you want to support the built-in real time clock
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index cbedf957cc58..daecc75c72e6 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -37,6 +37,7 @@
37#define ALPS_FW_BK_2 0x40 37#define ALPS_FW_BK_2 0x40
38 38
39static const struct alps_model_info alps_model_data[] = { 39static const struct alps_model_info alps_model_data[] = {
40 { { 0x32, 0x02, 0x14 }, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT }, /* Toshiba Salellite Pro M10 */
40 { { 0x33, 0x02, 0x0a }, 0x88, 0xf8, ALPS_OLDPROTO }, /* UMAX-530T */ 41 { { 0x33, 0x02, 0x0a }, 0x88, 0xf8, ALPS_OLDPROTO }, /* UMAX-530T */
41 { { 0x53, 0x02, 0x0a }, 0xf8, 0xf8, 0 }, 42 { { 0x53, 0x02, 0x0a }, 0xf8, 0xf8, 0 },
42 { { 0x53, 0x02, 0x14 }, 0xf8, 0xf8, 0 }, 43 { { 0x53, 0x02, 0x14 }, 0xf8, 0xf8, 0 },
diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c
index 454b96112f03..e0140fdc02a5 100644
--- a/drivers/input/mouse/appletouch.c
+++ b/drivers/input/mouse/appletouch.c
@@ -255,15 +255,22 @@ MODULE_PARM_DESC(debug, "Activate debugging output");
255 */ 255 */
256static int atp_geyser_init(struct usb_device *udev) 256static int atp_geyser_init(struct usb_device *udev)
257{ 257{
258 char data[8]; 258 char *data;
259 int size; 259 int size;
260 int i; 260 int i;
261 int ret;
262
263 data = kmalloc(8, GFP_KERNEL);
264 if (!data) {
265 err("Out of memory");
266 return -ENOMEM;
267 }
261 268
262 size = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), 269 size = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
263 ATP_GEYSER_MODE_READ_REQUEST_ID, 270 ATP_GEYSER_MODE_READ_REQUEST_ID,
264 USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 271 USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
265 ATP_GEYSER_MODE_REQUEST_VALUE, 272 ATP_GEYSER_MODE_REQUEST_VALUE,
266 ATP_GEYSER_MODE_REQUEST_INDEX, &data, 8, 5000); 273 ATP_GEYSER_MODE_REQUEST_INDEX, data, 8, 5000);
267 274
268 if (size != 8) { 275 if (size != 8) {
269 dprintk("atp_geyser_init: read error\n"); 276 dprintk("atp_geyser_init: read error\n");
@@ -271,7 +278,8 @@ static int atp_geyser_init(struct usb_device *udev)
271 dprintk("appletouch[%d]: %d\n", i, data[i]); 278 dprintk("appletouch[%d]: %d\n", i, data[i]);
272 279
273 err("Failed to read mode from device."); 280 err("Failed to read mode from device.");
274 return -EIO; 281 ret = -EIO;
282 goto out_free;
275 } 283 }
276 284
277 /* Apply the mode switch */ 285 /* Apply the mode switch */
@@ -281,7 +289,7 @@ static int atp_geyser_init(struct usb_device *udev)
281 ATP_GEYSER_MODE_WRITE_REQUEST_ID, 289 ATP_GEYSER_MODE_WRITE_REQUEST_ID,
282 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, 290 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
283 ATP_GEYSER_MODE_REQUEST_VALUE, 291 ATP_GEYSER_MODE_REQUEST_VALUE,
284 ATP_GEYSER_MODE_REQUEST_INDEX, &data, 8, 5000); 292 ATP_GEYSER_MODE_REQUEST_INDEX, data, 8, 5000);
285 293
286 if (size != 8) { 294 if (size != 8) {
287 dprintk("atp_geyser_init: write error\n"); 295 dprintk("atp_geyser_init: write error\n");
@@ -289,9 +297,13 @@ static int atp_geyser_init(struct usb_device *udev)
289 dprintk("appletouch[%d]: %d\n", i, data[i]); 297 dprintk("appletouch[%d]: %d\n", i, data[i]);
290 298
291 err("Failed to request geyser raw mode"); 299 err("Failed to request geyser raw mode");
292 return -EIO; 300 ret = -EIO;
301 goto out_free;
293 } 302 }
294 return 0; 303 ret = 0;
304out_free:
305 kfree(data);
306 return ret;
295} 307}
296 308
297/* 309/*
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index 2998a6ac9ae4..2d8fc0bf6923 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -51,6 +51,10 @@
51#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230 51#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230
52#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231 52#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231
53#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232 53#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232
54/* Macbook5,1 (unibody), aka wellspring3 */
55#define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236
56#define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237
57#define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238
54 58
55#define BCM5974_DEVICE(prod) { \ 59#define BCM5974_DEVICE(prod) { \
56 .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \ 60 .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \
@@ -72,6 +76,10 @@ static const struct usb_device_id bcm5974_table[] = {
72 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI), 76 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI),
73 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ISO), 77 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_ISO),
74 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_JIS), 78 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING2_JIS),
79 /* Macbook5,1 */
80 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI),
81 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_ISO),
82 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING3_JIS),
75 /* Terminating entry */ 83 /* Terminating entry */
76 {} 84 {}
77}; 85};
@@ -96,14 +104,23 @@ struct bt_data {
96 u8 rel_y; /* relative y coordinate */ 104 u8 rel_y; /* relative y coordinate */
97}; 105};
98 106
99/* trackpad header structure */ 107/* trackpad header types */
100struct tp_header { 108enum tp_type {
101 u8 unknown1[16]; /* constants, timers, etc */ 109 TYPE1, /* plain trackpad */
102 u8 fingers; /* number of fingers on trackpad */ 110 TYPE2 /* button integrated in trackpad */
103 u8 unknown2[9]; /* constants, timers, etc */
104}; 111};
105 112
106/* trackpad finger structure */ 113/* trackpad finger data offsets, le16-aligned */
114#define FINGER_TYPE1 (13 * sizeof(__le16))
115#define FINGER_TYPE2 (15 * sizeof(__le16))
116
117/* trackpad button data offsets */
118#define BUTTON_TYPE2 15
119
120/* list of device capability bits */
121#define HAS_INTEGRATED_BUTTON 1
122
123/* trackpad finger structure, le16-aligned */
107struct tp_finger { 124struct tp_finger {
108 __le16 origin; /* zero when switching track finger */ 125 __le16 origin; /* zero when switching track finger */
109 __le16 abs_x; /* absolute x coodinate */ 126 __le16 abs_x; /* absolute x coodinate */
@@ -117,13 +134,11 @@ struct tp_finger {
117 __le16 force_minor; /* trackpad force, minor axis? */ 134 __le16 force_minor; /* trackpad force, minor axis? */
118 __le16 unused[3]; /* zeros */ 135 __le16 unused[3]; /* zeros */
119 __le16 multi; /* one finger: varies, more fingers: constant */ 136 __le16 multi; /* one finger: varies, more fingers: constant */
120}; 137} __attribute__((packed,aligned(2)));
121 138
122/* trackpad data structure, empirically at least ten fingers */ 139/* trackpad finger data size, empirically at least ten fingers */
123struct tp_data { 140#define SIZEOF_FINGER sizeof(struct tp_finger)
124 struct tp_header header; 141#define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER)
125 struct tp_finger finger[16];
126};
127 142
128/* device-specific parameters */ 143/* device-specific parameters */
129struct bcm5974_param { 144struct bcm5974_param {
@@ -136,9 +151,12 @@ struct bcm5974_param {
136/* device-specific configuration */ 151/* device-specific configuration */
137struct bcm5974_config { 152struct bcm5974_config {
138 int ansi, iso, jis; /* the product id of this device */ 153 int ansi, iso, jis; /* the product id of this device */
154 int caps; /* device capability bitmask */
139 int bt_ep; /* the endpoint of the button interface */ 155 int bt_ep; /* the endpoint of the button interface */
140 int bt_datalen; /* data length of the button interface */ 156 int bt_datalen; /* data length of the button interface */
141 int tp_ep; /* the endpoint of the trackpad interface */ 157 int tp_ep; /* the endpoint of the trackpad interface */
158 enum tp_type tp_type; /* type of trackpad interface */
159 int tp_offset; /* offset to trackpad finger data */
142 int tp_datalen; /* data length of the trackpad interface */ 160 int tp_datalen; /* data length of the trackpad interface */
143 struct bcm5974_param p; /* finger pressure limits */ 161 struct bcm5974_param p; /* finger pressure limits */
144 struct bcm5974_param w; /* finger width limits */ 162 struct bcm5974_param w; /* finger width limits */
@@ -158,7 +176,7 @@ struct bcm5974 {
158 struct urb *bt_urb; /* button usb request block */ 176 struct urb *bt_urb; /* button usb request block */
159 struct bt_data *bt_data; /* button transferred data */ 177 struct bt_data *bt_data; /* button transferred data */
160 struct urb *tp_urb; /* trackpad usb request block */ 178 struct urb *tp_urb; /* trackpad usb request block */
161 struct tp_data *tp_data; /* trackpad transferred data */ 179 u8 *tp_data; /* trackpad transferred data */
162 int fingers; /* number of fingers on trackpad */ 180 int fingers; /* number of fingers on trackpad */
163}; 181};
164 182
@@ -183,8 +201,9 @@ static const struct bcm5974_config bcm5974_config_table[] = {
183 USB_DEVICE_ID_APPLE_WELLSPRING_ANSI, 201 USB_DEVICE_ID_APPLE_WELLSPRING_ANSI,
184 USB_DEVICE_ID_APPLE_WELLSPRING_ISO, 202 USB_DEVICE_ID_APPLE_WELLSPRING_ISO,
185 USB_DEVICE_ID_APPLE_WELLSPRING_JIS, 203 USB_DEVICE_ID_APPLE_WELLSPRING_JIS,
204 0,
186 0x84, sizeof(struct bt_data), 205 0x84, sizeof(struct bt_data),
187 0x81, sizeof(struct tp_data), 206 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS,
188 { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 }, 207 { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 },
189 { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, 208 { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
190 { DIM_X, DIM_X / SN_COORD, -4824, 5342 }, 209 { DIM_X, DIM_X / SN_COORD, -4824, 5342 },
@@ -194,13 +213,26 @@ static const struct bcm5974_config bcm5974_config_table[] = {
194 USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI, 213 USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI,
195 USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, 214 USB_DEVICE_ID_APPLE_WELLSPRING2_ISO,
196 USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, 215 USB_DEVICE_ID_APPLE_WELLSPRING2_JIS,
216 0,
197 0x84, sizeof(struct bt_data), 217 0x84, sizeof(struct bt_data),
198 0x81, sizeof(struct tp_data), 218 0x81, TYPE1, FINGER_TYPE1, FINGER_TYPE1 + SIZEOF_ALL_FINGERS,
199 { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 }, 219 { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 256 },
200 { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, 220 { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
201 { DIM_X, DIM_X / SN_COORD, -4824, 4824 }, 221 { DIM_X, DIM_X / SN_COORD, -4824, 4824 },
202 { DIM_Y, DIM_Y / SN_COORD, -172, 4290 } 222 { DIM_Y, DIM_Y / SN_COORD, -172, 4290 }
203 }, 223 },
224 {
225 USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI,
226 USB_DEVICE_ID_APPLE_WELLSPRING3_ISO,
227 USB_DEVICE_ID_APPLE_WELLSPRING3_JIS,
228 HAS_INTEGRATED_BUTTON,
229 0x84, sizeof(struct bt_data),
230 0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS,
231 { DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 },
232 { DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
233 { DIM_X, DIM_X / SN_COORD, -4460, 5166 },
234 { DIM_Y, DIM_Y / SN_COORD, -75, 6700 }
235 },
204 {} 236 {}
205}; 237};
206 238
@@ -257,6 +289,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
257 __set_bit(BTN_TOOL_FINGER, input_dev->keybit); 289 __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
258 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); 290 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
259 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); 291 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
292 __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit);
260 __set_bit(BTN_LEFT, input_dev->keybit); 293 __set_bit(BTN_LEFT, input_dev->keybit);
261} 294}
262 295
@@ -266,6 +299,11 @@ static int report_bt_state(struct bcm5974 *dev, int size)
266 if (size != sizeof(struct bt_data)) 299 if (size != sizeof(struct bt_data))
267 return -EIO; 300 return -EIO;
268 301
302 dprintk(7,
303 "bcm5974: button data: %x %x %x %x\n",
304 dev->bt_data->unknown1, dev->bt_data->button,
305 dev->bt_data->rel_x, dev->bt_data->rel_y);
306
269 input_report_key(dev->input, BTN_LEFT, dev->bt_data->button); 307 input_report_key(dev->input, BTN_LEFT, dev->bt_data->button);
270 input_sync(dev->input); 308 input_sync(dev->input);
271 309
@@ -276,29 +314,37 @@ static int report_bt_state(struct bcm5974 *dev, int size)
276static int report_tp_state(struct bcm5974 *dev, int size) 314static int report_tp_state(struct bcm5974 *dev, int size)
277{ 315{
278 const struct bcm5974_config *c = &dev->cfg; 316 const struct bcm5974_config *c = &dev->cfg;
279 const struct tp_finger *f = dev->tp_data->finger; 317 const struct tp_finger *f;
280 struct input_dev *input = dev->input; 318 struct input_dev *input = dev->input;
281 const int fingers = (size - 26) / 28; 319 int raw_p, raw_w, raw_x, raw_y, raw_n;
282 int raw_p, raw_w, raw_x, raw_y; 320 int ptest = 0, origin = 0, ibt = 0, nmin = 0, nmax = 0;
283 int ptest = 0, origin = 0, nmin = 0, nmax = 0;
284 int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0; 321 int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
285 322
286 if (size < 26 || (size - 26) % 28 != 0) 323 if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0)
287 return -EIO; 324 return -EIO;
288 325
326 /* finger data, le16-aligned */
327 f = (const struct tp_finger *)(dev->tp_data + c->tp_offset);
328 raw_n = (size - c->tp_offset) / SIZEOF_FINGER;
329
289 /* always track the first finger; when detached, start over */ 330 /* always track the first finger; when detached, start over */
290 if (fingers) { 331 if (raw_n) {
291 raw_p = raw2int(f->force_major); 332 raw_p = raw2int(f->force_major);
292 raw_w = raw2int(f->size_major); 333 raw_w = raw2int(f->size_major);
293 raw_x = raw2int(f->abs_x); 334 raw_x = raw2int(f->abs_x);
294 raw_y = raw2int(f->abs_y); 335 raw_y = raw2int(f->abs_y);
295 336
296 dprintk(9, 337 dprintk(9,
297 "bcm5974: raw: p: %+05d w: %+05d x: %+05d y: %+05d\n", 338 "bcm5974: "
298 raw_p, raw_w, raw_x, raw_y); 339 "raw: p: %+05d w: %+05d x: %+05d y: %+05d n: %d\n",
340 raw_p, raw_w, raw_x, raw_y, raw_n);
299 341
300 ptest = int2bound(&c->p, raw_p); 342 ptest = int2bound(&c->p, raw_p);
301 origin = raw2int(f->origin); 343 origin = raw2int(f->origin);
344
345 /* set the integrated button if applicable */
346 if (c->tp_type == TYPE2)
347 ibt = raw2int(dev->tp_data[BUTTON_TYPE2]);
302 } 348 }
303 349
304 /* while tracking finger still valid, count all fingers */ 350 /* while tracking finger still valid, count all fingers */
@@ -307,12 +353,13 @@ static int report_tp_state(struct bcm5974 *dev, int size)
307 abs_w = int2bound(&c->w, raw_w); 353 abs_w = int2bound(&c->w, raw_w);
308 abs_x = int2bound(&c->x, raw_x - c->x.devmin); 354 abs_x = int2bound(&c->x, raw_x - c->x.devmin);
309 abs_y = int2bound(&c->y, c->y.devmax - raw_y); 355 abs_y = int2bound(&c->y, c->y.devmax - raw_y);
310 for (; f != dev->tp_data->finger + fingers; f++) { 356 while (raw_n--) {
311 ptest = int2bound(&c->p, raw2int(f->force_major)); 357 ptest = int2bound(&c->p, raw2int(f->force_major));
312 if (ptest > PRESSURE_LOW) 358 if (ptest > PRESSURE_LOW)
313 nmax++; 359 nmax++;
314 if (ptest > PRESSURE_HIGH) 360 if (ptest > PRESSURE_HIGH)
315 nmin++; 361 nmin++;
362 f++;
316 } 363 }
317 } 364 }
318 365
@@ -324,7 +371,8 @@ static int report_tp_state(struct bcm5974 *dev, int size)
324 input_report_key(input, BTN_TOUCH, dev->fingers > 0); 371 input_report_key(input, BTN_TOUCH, dev->fingers > 0);
325 input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1); 372 input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
326 input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2); 373 input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
327 input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2); 374 input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers == 3);
375 input_report_key(input, BTN_TOOL_QUADTAP, dev->fingers > 3);
328 376
329 input_report_abs(input, ABS_PRESSURE, abs_p); 377 input_report_abs(input, ABS_PRESSURE, abs_p);
330 input_report_abs(input, ABS_TOOL_WIDTH, abs_w); 378 input_report_abs(input, ABS_TOOL_WIDTH, abs_w);
@@ -335,11 +383,15 @@ static int report_tp_state(struct bcm5974 *dev, int size)
335 383
336 dprintk(8, 384 dprintk(8,
337 "bcm5974: abs: p: %+05d w: %+05d x: %+05d y: %+05d " 385 "bcm5974: abs: p: %+05d w: %+05d x: %+05d y: %+05d "
338 "nmin: %d nmax: %d n: %d\n", 386 "nmin: %d nmax: %d n: %d ibt: %d\n", abs_p, abs_w,
339 abs_p, abs_w, abs_x, abs_y, nmin, nmax, dev->fingers); 387 abs_x, abs_y, nmin, nmax, dev->fingers, ibt);
340 388
341 } 389 }
342 390
391 /* type 2 reports button events via ibt only */
392 if (c->tp_type == TYPE2)
393 input_report_key(input, BTN_LEFT, ibt);
394
343 input_sync(input); 395 input_sync(input);
344 396
345 return 0; 397 return 0;
@@ -649,6 +701,8 @@ static int bcm5974_probe(struct usb_interface *iface,
649 input_dev->name = "bcm5974"; 701 input_dev->name = "bcm5974";
650 input_dev->phys = dev->phys; 702 input_dev->phys = dev->phys;
651 usb_to_input_id(dev->udev, &input_dev->id); 703 usb_to_input_id(dev->udev, &input_dev->id);
704 /* report driver capabilities via the version field */
705 input_dev->id.version = cfg->caps;
652 input_dev->dev.parent = &iface->dev; 706 input_dev->dev.parent = &iface->dev;
653 707
654 input_set_drvdata(input_dev, dev); 708 input_set_drvdata(input_dev, dev);
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 6ab0eb1ada1c..4bc78892ba91 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Elantech Touchpad driver (v5) 2 * Elantech Touchpad driver (v6)
3 * 3 *
4 * Copyright (C) 2007-2008 Arjan Opmeer <arjan@opmeer.net> 4 * Copyright (C) 2007-2009 Arjan Opmeer <arjan@opmeer.net>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published 7 * under the terms of the GNU General Public License version 2 as published
@@ -178,6 +178,7 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
178 struct elantech_data *etd = psmouse->private; 178 struct elantech_data *etd = psmouse->private;
179 unsigned char *packet = psmouse->packet; 179 unsigned char *packet = psmouse->packet;
180 int fingers; 180 int fingers;
181 static int old_fingers;
181 182
182 if (etd->fw_version_maj == 0x01) { 183 if (etd->fw_version_maj == 0x01) {
183 /* byte 0: D U p1 p2 1 p3 R L 184 /* byte 0: D U p1 p2 1 p3 R L
@@ -190,6 +191,14 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
190 fingers = (packet[0] & 0xc0) >> 6; 191 fingers = (packet[0] & 0xc0) >> 6;
191 } 192 }
192 193
194 if (etd->jumpy_cursor) {
195 /* Discard packets that are likely to have bogus coordinates */
196 if (fingers > old_fingers) {
197 elantech_debug("elantech.c: discarding packet\n");
198 goto discard_packet_v1;
199 }
200 }
201
193 input_report_key(dev, BTN_TOUCH, fingers != 0); 202 input_report_key(dev, BTN_TOUCH, fingers != 0);
194 203
195 /* byte 2: x7 x6 x5 x4 x3 x2 x1 x0 204 /* byte 2: x7 x6 x5 x4 x3 x2 x1 x0
@@ -216,6 +225,9 @@ static void elantech_report_absolute_v1(struct psmouse *psmouse)
216 } 225 }
217 226
218 input_sync(dev); 227 input_sync(dev);
228
229 discard_packet_v1:
230 old_fingers = fingers;
219} 231}
220 232
221/* 233/*
@@ -363,9 +375,14 @@ static int elantech_set_absolute_mode(struct psmouse *psmouse)
363 rc = -1; 375 rc = -1;
364 break; 376 break;
365 } 377 }
378 }
379
380 if (rc == 0) {
366 /* 381 /*
367 * Read back reg 0x10. The touchpad is probably initalising 382 * Read back reg 0x10. For hardware version 1 we must make
368 * and not ready until we read back the value we just wrote. 383 * sure the absolute mode bit is set. For hardware version 2
384 * the touchpad is probably initalising and not ready until
385 * we read back the value we just wrote.
369 */ 386 */
370 do { 387 do {
371 rc = elantech_read_reg(psmouse, 0x10, &val); 388 rc = elantech_read_reg(psmouse, 0x10, &val);
@@ -373,12 +390,18 @@ static int elantech_set_absolute_mode(struct psmouse *psmouse)
373 break; 390 break;
374 tries--; 391 tries--;
375 elantech_debug("elantech.c: retrying read (%d).\n", 392 elantech_debug("elantech.c: retrying read (%d).\n",
376 tries); 393 tries);
377 msleep(ETP_READ_BACK_DELAY); 394 msleep(ETP_READ_BACK_DELAY);
378 } while (tries > 0); 395 } while (tries > 0);
379 if (rc) 396
397 if (rc) {
380 pr_err("elantech.c: failed to read back register 0x10.\n"); 398 pr_err("elantech.c: failed to read back register 0x10.\n");
381 break; 399 } else if (etd->hw_version == 1 &&
400 !(val & ETP_R10_ABSOLUTE_MODE)) {
401 pr_err("elantech.c: touchpad refuses "
402 "to switch to absolute mode.\n");
403 rc = -1;
404 }
382 } 405 }
383 406
384 if (rc) 407 if (rc)
@@ -662,6 +685,17 @@ int elantech_init(struct psmouse *psmouse)
662 param[0], param[1], param[2]); 685 param[0], param[1], param[2]);
663 etd->capabilities = param[0]; 686 etd->capabilities = param[0];
664 687
688 /*
689 * This firmware seems to suffer from misreporting coordinates when
690 * a touch action starts causing the mouse cursor or scrolled page
691 * to jump. Enable a workaround.
692 */
693 if (etd->fw_version_maj == 0x02 && etd->fw_version_min == 0x22) {
694 pr_info("elantech.c: firmware version 2.34 detected, "
695 "enabling jumpy cursor workaround\n");
696 etd->jumpy_cursor = 1;
697 }
698
665 if (elantech_set_absolute_mode(psmouse)) { 699 if (elantech_set_absolute_mode(psmouse)) {
666 pr_err("elantech.c: failed to put touchpad into absolute mode.\n"); 700 pr_err("elantech.c: failed to put touchpad into absolute mode.\n");
667 goto init_fail; 701 goto init_fail;
diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h
index bee282b540bc..ed848cc80814 100644
--- a/drivers/input/mouse/elantech.h
+++ b/drivers/input/mouse/elantech.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Elantech Touchpad driver (v5) 2 * Elantech Touchpad driver (v6)
3 * 3 *
4 * Copyright (C) 2007-2008 Arjan Opmeer <arjan@opmeer.net> 4 * Copyright (C) 2007-2009 Arjan Opmeer <arjan@opmeer.net>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 as published 7 * under the terms of the GNU General Public License version 2 as published
@@ -104,6 +104,7 @@ struct elantech_data {
104 unsigned char fw_version_min; 104 unsigned char fw_version_min;
105 unsigned char hw_version; 105 unsigned char hw_version;
106 unsigned char paritycheck; 106 unsigned char paritycheck;
107 unsigned char jumpy_cursor;
107 unsigned char parity[256]; 108 unsigned char parity[256];
108}; 109};
109 110
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c
index df81b0aaa9f8..15ac3205ac05 100644
--- a/drivers/input/mouse/lifebook.c
+++ b/drivers/input/mouse/lifebook.c
@@ -61,6 +61,12 @@ static const struct dmi_system_id lifebook_dmi_table[] = {
61 }, 61 },
62 }, 62 },
63 { 63 {
64 .ident = "Lifebook B-2130",
65 .matches = {
66 DMI_MATCH(DMI_BOARD_NAME, "ZEPHYR"),
67 },
68 },
69 {
64 .ident = "Lifebook B213x/B2150", 70 .ident = "Lifebook B213x/B2150",
65 .matches = { 71 .matches = {
66 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B2131/B2133/B2150"), 72 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B2131/B2133/B2150"),
diff --git a/drivers/input/mouse/maplemouse.c b/drivers/input/mouse/maplemouse.c
index d196abfb68bc..5f278176eb9b 100644
--- a/drivers/input/mouse/maplemouse.c
+++ b/drivers/input/mouse/maplemouse.c
@@ -2,8 +2,8 @@
2 * SEGA Dreamcast mouse driver 2 * SEGA Dreamcast mouse driver
3 * Based on drivers/usb/usbmouse.c 3 * Based on drivers/usb/usbmouse.c
4 * 4 *
5 * Copyright Yaegashi Takeshi, 2001 5 * Copyright (c) Yaegashi Takeshi, 2001
6 * Adrian McMenamin, 2008 6 * Copyright (c) Adrian McMenamin, 2008 - 2009
7 */ 7 */
8 8
9#include <linux/kernel.h> 9#include <linux/kernel.h>
@@ -29,7 +29,7 @@ static void dc_mouse_callback(struct mapleq *mq)
29 struct maple_device *mapledev = mq->dev; 29 struct maple_device *mapledev = mq->dev;
30 struct dc_mouse *mse = maple_get_drvdata(mapledev); 30 struct dc_mouse *mse = maple_get_drvdata(mapledev);
31 struct input_dev *dev = mse->dev; 31 struct input_dev *dev = mse->dev;
32 unsigned char *res = mq->recvbuf; 32 unsigned char *res = mq->recvbuf->buf;
33 33
34 buttons = ~res[8]; 34 buttons = ~res[8];
35 relx = *(unsigned short *)(res + 12) - 512; 35 relx = *(unsigned short *)(res + 12) - 512;
@@ -47,7 +47,7 @@ static void dc_mouse_callback(struct mapleq *mq)
47 47
48static int dc_mouse_open(struct input_dev *dev) 48static int dc_mouse_open(struct input_dev *dev)
49{ 49{
50 struct dc_mouse *mse = dev->dev.platform_data; 50 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
51 51
52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50, 52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50,
53 MAPLE_FUNC_MOUSE); 53 MAPLE_FUNC_MOUSE);
@@ -57,29 +57,33 @@ static int dc_mouse_open(struct input_dev *dev)
57 57
58static void dc_mouse_close(struct input_dev *dev) 58static void dc_mouse_close(struct input_dev *dev)
59{ 59{
60 struct dc_mouse *mse = dev->dev.platform_data; 60 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
61 61
62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0, 62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0,
63 MAPLE_FUNC_MOUSE); 63 MAPLE_FUNC_MOUSE);
64} 64}
65 65
66 66/* allow the mouse to be used */
67static int __devinit probe_maple_mouse(struct device *dev) 67static int __devinit probe_maple_mouse(struct device *dev)
68{ 68{
69 struct maple_device *mdev = to_maple_dev(dev); 69 struct maple_device *mdev = to_maple_dev(dev);
70 struct maple_driver *mdrv = to_maple_driver(dev->driver); 70 struct maple_driver *mdrv = to_maple_driver(dev->driver);
71 int error;
71 struct input_dev *input_dev; 72 struct input_dev *input_dev;
72 struct dc_mouse *mse; 73 struct dc_mouse *mse;
73 int error;
74 74
75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL); 75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL);
76 input_dev = input_allocate_device(); 76 if (!mse) {
77
78 if (!mse || !input_dev) {
79 error = -ENOMEM; 77 error = -ENOMEM;
80 goto fail; 78 goto fail;
81 } 79 }
82 80
81 input_dev = input_allocate_device();
82 if (!input_dev) {
83 error = -ENOMEM;
84 goto fail_nomem;
85 }
86
83 mse->dev = input_dev; 87 mse->dev = input_dev;
84 mse->mdev = mdev; 88 mse->mdev = mdev;
85 89
@@ -89,25 +93,24 @@ static int __devinit probe_maple_mouse(struct device *dev)
89 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); 93 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
90 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) | 94 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) |
91 BIT_MASK(REL_WHEEL); 95 BIT_MASK(REL_WHEEL);
92 input_dev->name = mdev->product_name;
93 input_dev->id.bustype = BUS_HOST;
94 input_dev->open = dc_mouse_open; 96 input_dev->open = dc_mouse_open;
95 input_dev->close = dc_mouse_close; 97 input_dev->close = dc_mouse_close;
98 input_dev->name = mdev->product_name;
99 input_dev->id.bustype = BUS_HOST;
100 error = input_register_device(input_dev);
101 if (error)
102 goto fail_register;
96 103
97 mdev->driver = mdrv; 104 mdev->driver = mdrv;
98 maple_set_drvdata(mdev, mse); 105 maple_set_drvdata(mdev, mse);
99 106
100 error = input_register_device(input_dev); 107 return error;
101 if (error)
102 goto fail;
103
104 return 0;
105 108
106fail: 109fail_register:
107 input_free_device(input_dev); 110 input_free_device(input_dev);
108 maple_set_drvdata(mdev, NULL); 111fail_nomem:
109 kfree(mse); 112 kfree(mse);
110 mdev->driver = NULL; 113fail:
111 return error; 114 return error;
112} 115}
113 116
diff --git a/drivers/input/mouse/pc110pad.c b/drivers/input/mouse/pc110pad.c
index f63995f854ff..3941f97cfa60 100644
--- a/drivers/input/mouse/pc110pad.c
+++ b/drivers/input/mouse/pc110pad.c
@@ -108,7 +108,6 @@ static int pc110pad_open(struct input_dev *dev)
108 */ 108 */
109static int __init pc110pad_init(void) 109static int __init pc110pad_init(void)
110{ 110{
111 struct pci_dev *dev;
112 int err; 111 int err;
113 112
114 if (!no_pci_devices()) 113 if (!no_pci_devices())
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index bfe49243f38b..1c9410d1822c 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -819,6 +819,7 @@ static const struct parisc_device_id hp_sdc_tbl[] = {
819MODULE_DEVICE_TABLE(parisc, hp_sdc_tbl); 819MODULE_DEVICE_TABLE(parisc, hp_sdc_tbl);
820 820
821static int __init hp_sdc_init_hppa(struct parisc_device *d); 821static int __init hp_sdc_init_hppa(struct parisc_device *d);
822static struct delayed_work moduleloader_work;
822 823
823static struct parisc_driver hp_sdc_driver = { 824static struct parisc_driver hp_sdc_driver = {
824 .name = "hp_sdc", 825 .name = "hp_sdc",
@@ -930,8 +931,15 @@ static int __init hp_sdc_init(void)
930 931
931#if defined(__hppa__) 932#if defined(__hppa__)
932 933
934static void request_module_delayed(struct work_struct *work)
935{
936 request_module("hp_sdc_mlc");
937}
938
933static int __init hp_sdc_init_hppa(struct parisc_device *d) 939static int __init hp_sdc_init_hppa(struct parisc_device *d)
934{ 940{
941 int ret;
942
935 if (!d) 943 if (!d)
936 return 1; 944 return 1;
937 if (hp_sdc.dev != NULL) 945 if (hp_sdc.dev != NULL)
@@ -944,13 +952,26 @@ static int __init hp_sdc_init_hppa(struct parisc_device *d)
944 hp_sdc.data_io = d->hpa.start + 0x800; 952 hp_sdc.data_io = d->hpa.start + 0x800;
945 hp_sdc.status_io = d->hpa.start + 0x801; 953 hp_sdc.status_io = d->hpa.start + 0x801;
946 954
947 return hp_sdc_init(); 955 INIT_DELAYED_WORK(&moduleloader_work, request_module_delayed);
956
957 ret = hp_sdc_init();
958 /* after sucessfull initialization give SDC some time to settle
959 * and then load the hp_sdc_mlc upper layer driver */
960 if (!ret)
961 schedule_delayed_work(&moduleloader_work,
962 msecs_to_jiffies(2000));
963
964 return ret;
948} 965}
949 966
950#endif /* __hppa__ */ 967#endif /* __hppa__ */
951 968
952static void hp_sdc_exit(void) 969static void hp_sdc_exit(void)
953{ 970{
971 /* do nothing if we don't have a SDC */
972 if (!hp_sdc.dev)
973 return;
974
954 write_lock_irq(&hp_sdc.lock); 975 write_lock_irq(&hp_sdc.lock);
955 976
956 /* Turn off all maskable "sub-function" irq's. */ 977 /* Turn off all maskable "sub-function" irq's. */
@@ -969,6 +990,7 @@ static void hp_sdc_exit(void)
969 tasklet_kill(&hp_sdc.task); 990 tasklet_kill(&hp_sdc.task);
970 991
971#if defined(__hppa__) 992#if defined(__hppa__)
993 cancel_delayed_work_sync(&moduleloader_work);
972 if (unregister_parisc_driver(&hp_sdc_driver)) 994 if (unregister_parisc_driver(&hp_sdc_driver))
973 printk(KERN_WARNING PREFIX "Error unregistering HP SDC"); 995 printk(KERN_WARNING PREFIX "Error unregistering HP SDC");
974#endif 996#endif
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 83ed2d56b924..fb8a3cd3ffd0 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -377,6 +377,24 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
377 { } 377 { }
378}; 378};
379 379
380static struct dmi_system_id __initdata i8042_dmi_reset_table[] = {
381 {
382 .ident = "MSI Wind U-100",
383 .matches = {
384 DMI_MATCH(DMI_BOARD_NAME, "U-100"),
385 DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
386 },
387 },
388 {
389 .ident = "LG Electronics X110",
390 .matches = {
391 DMI_MATCH(DMI_BOARD_NAME, "X110"),
392 DMI_MATCH(DMI_BOARD_VENDOR, "LG Electronics Inc."),
393 },
394 },
395 { }
396};
397
380#ifdef CONFIG_PNP 398#ifdef CONFIG_PNP
381static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { 399static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = {
382 { 400 {
@@ -386,6 +404,13 @@ static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = {
386 DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), 404 DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
387 }, 405 },
388 }, 406 },
407 {
408 .ident = "MSI Wind U-100",
409 .matches = {
410 DMI_MATCH(DMI_BOARD_NAME, "U-100"),
411 DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
412 },
413 },
389 { } 414 { }
390}; 415};
391#endif 416#endif
@@ -698,6 +723,9 @@ static int __init i8042_platform_init(void)
698#endif 723#endif
699 724
700#ifdef CONFIG_X86 725#ifdef CONFIG_X86
726 if (dmi_check_system(i8042_dmi_reset_table))
727 i8042_reset = 1;
728
701 if (dmi_check_system(i8042_dmi_noloop_table)) 729 if (dmi_check_system(i8042_dmi_noloop_table))
702 i8042_noloop = 1; 730 i8042_noloop = 1;
703 731
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index 170f71ee5772..3cffb704e374 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -712,22 +712,43 @@ static int i8042_controller_check(void)
712static int i8042_controller_selftest(void) 712static int i8042_controller_selftest(void)
713{ 713{
714 unsigned char param; 714 unsigned char param;
715 int i = 0;
715 716
716 if (!i8042_reset) 717 if (!i8042_reset)
717 return 0; 718 return 0;
718 719
719 if (i8042_command(&param, I8042_CMD_CTL_TEST)) { 720 /*
720 printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n"); 721 * We try this 5 times; on some really fragile systems this does not
721 return -ENODEV; 722 * take the first time...
722 } 723 */
724 do {
725
726 if (i8042_command(&param, I8042_CMD_CTL_TEST)) {
727 printk(KERN_ERR "i8042.c: i8042 controller self test timeout.\n");
728 return -ENODEV;
729 }
730
731 if (param == I8042_RET_CTL_TEST)
732 return 0;
723 733
724 if (param != I8042_RET_CTL_TEST) {
725 printk(KERN_ERR "i8042.c: i8042 controller selftest failed. (%#x != %#x)\n", 734 printk(KERN_ERR "i8042.c: i8042 controller selftest failed. (%#x != %#x)\n",
726 param, I8042_RET_CTL_TEST); 735 param, I8042_RET_CTL_TEST);
727 return -EIO; 736 msleep(50);
728 } 737 } while (i++ < 5);
729 738
739#ifdef CONFIG_X86
740 /*
741 * On x86, we don't fail entire i8042 initialization if controller
742 * reset fails in hopes that keyboard port will still be functional
743 * and user will still get a working keyboard. This is especially
744 * important on netbooks. On other arches we trust hardware more.
745 */
746 printk(KERN_INFO
747 "i8042: giving up on controller selftest, continuing anyway...\n");
730 return 0; 748 return 0;
749#else
750 return -EIO;
751#endif
731} 752}
732 753
733/* 754/*
diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c
index 57953c0eb82f..f412c69478a8 100644
--- a/drivers/input/serio/sa1111ps2.c
+++ b/drivers/input/serio/sa1111ps2.c
@@ -77,7 +77,7 @@ static irqreturn_t ps2_txint(int irq, void *dev_id)
77 spin_lock(&ps2if->lock); 77 spin_lock(&ps2if->lock);
78 status = sa1111_readl(ps2if->base + SA1111_PS2STAT); 78 status = sa1111_readl(ps2if->base + SA1111_PS2STAT);
79 if (ps2if->head == ps2if->tail) { 79 if (ps2if->head == ps2if->tail) {
80 disable_irq(irq); 80 disable_irq_nosync(irq);
81 /* done */ 81 /* done */
82 } else if (status & PS2STAT_TXE) { 82 } else if (status & PS2STAT_TXE) {
83 sa1111_writel(ps2if->buf[ps2if->tail], ps2if->base + SA1111_PS2DATA); 83 sa1111_writel(ps2if->buf[ps2if->tail], ps2if->base + SA1111_PS2DATA);
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h
index 677680e9f54f..9710bfd49cf9 100644
--- a/drivers/input/tablet/wacom.h
+++ b/drivers/input/tablet/wacom.h
@@ -11,7 +11,7 @@
11 * Copyright (c) 2000 Daniel Egger <egger@suse.de> 11 * Copyright (c) 2000 Daniel Egger <egger@suse.de>
12 * Copyright (c) 2001 Frederic Lepied <flepied@mandrakesoft.com> 12 * Copyright (c) 2001 Frederic Lepied <flepied@mandrakesoft.com>
13 * Copyright (c) 2004 Panagiotis Issaris <panagiotis.issaris@mech.kuleuven.ac.be> 13 * Copyright (c) 2004 Panagiotis Issaris <panagiotis.issaris@mech.kuleuven.ac.be>
14 * Copyright (c) 2002-2008 Ping Cheng <pingc@wacom.com> 14 * Copyright (c) 2002-2009 Ping Cheng <pingc@wacom.com>
15 * 15 *
16 * ChangeLog: 16 * ChangeLog:
17 * v0.1 (vp) - Initial release 17 * v0.1 (vp) - Initial release
@@ -67,6 +67,7 @@
67 * v1.47 (pc) - Added support for Bamboo 67 * v1.47 (pc) - Added support for Bamboo
68 * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX 68 * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX
69 * v1.49 (pc) - Added support for USB Tablet PC (0x90, 0x93, and 0x9A) 69 * v1.49 (pc) - Added support for USB Tablet PC (0x90, 0x93, and 0x9A)
70 * v1.50 (pc) - Fixed a TabletPC touch bug in 2.6.28
70 */ 71 */
71 72
72/* 73/*
@@ -87,7 +88,7 @@
87/* 88/*
88 * Version Information 89 * Version Information
89 */ 90 */
90#define DRIVER_VERSION "v1.49" 91#define DRIVER_VERSION "v1.50"
91#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" 92#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>"
92#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" 93#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver"
93#define DRIVER_LICENSE "GPL" 94#define DRIVER_LICENSE "GPL"
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
index 484496daa0f3..b8624f27abf9 100644
--- a/drivers/input/tablet/wacom_sys.c
+++ b/drivers/input/tablet/wacom_sys.c
@@ -289,6 +289,7 @@ static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hi
289 5000); /* 5 secs */ 289 5000); /* 5 secs */
290 } while (result < 0 && limit++ < 5); 290 } while (result < 0 && limit++ < 5);
291 291
292 /* No need to parse the Descriptor. It isn't an error though */
292 if (result < 0) 293 if (result < 0)
293 goto out; 294 goto out;
294 295
@@ -368,9 +369,8 @@ static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hi
368 } 369 }
369 } 370 }
370 371
371 result = 0;
372
373 out: 372 out:
373 result = 0;
374 kfree(report); 374 kfree(report);
375 return result; 375 return result;
376} 376}
@@ -425,6 +425,15 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
425 425
426 endpoint = &intf->cur_altsetting->endpoint[0].desc; 426 endpoint = &intf->cur_altsetting->endpoint[0].desc;
427 427
428 /* Initialize touch_x_max and touch_y_max in case it is not defined */
429 if (wacom_wac->features->type == TABLETPC) {
430 features->touch_x_max = 1023;
431 features->touch_y_max = 1023;
432 } else {
433 features->touch_x_max = 0;
434 features->touch_y_max = 0;
435 }
436
428 /* TabletPC need to retrieve the physical and logical maximum from report descriptor */ 437 /* TabletPC need to retrieve the physical and logical maximum from report descriptor */
429 if (wacom_wac->features->type == TABLETPC) { 438 if (wacom_wac->features->type == TABLETPC) {
430 if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) { 439 if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) {
diff --git a/drivers/input/touchscreen/ad7877.c b/drivers/input/touchscreen/ad7877.c
index e4728a28f492..ecaeb7e8e75e 100644
--- a/drivers/input/touchscreen/ad7877.c
+++ b/drivers/input/touchscreen/ad7877.c
@@ -736,8 +736,8 @@ static int __devinit ad7877_probe(struct spi_device *spi)
736 736
737 /* Request AD7877 /DAV GPIO interrupt */ 737 /* Request AD7877 /DAV GPIO interrupt */
738 738
739 err = request_irq(spi->irq, ad7877_irq, IRQF_TRIGGER_FALLING | 739 err = request_irq(spi->irq, ad7877_irq, IRQF_TRIGGER_FALLING,
740 IRQF_SAMPLE_RANDOM, spi->dev.driver->name, ts); 740 spi->dev.driver->name, ts);
741 if (err) { 741 if (err) {
742 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); 742 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
743 goto err_free_mem; 743 goto err_free_mem;
diff --git a/drivers/input/touchscreen/ad7879.c b/drivers/input/touchscreen/ad7879.c
index ea4c61d68683..5d8a70398807 100644
--- a/drivers/input/touchscreen/ad7879.c
+++ b/drivers/input/touchscreen/ad7879.c
@@ -448,8 +448,7 @@ static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts)
448 ad7879_setup(ts); 448 ad7879_setup(ts);
449 449
450 err = request_irq(bus->irq, ad7879_irq, 450 err = request_irq(bus->irq, ad7879_irq,
451 IRQF_TRIGGER_FALLING | IRQF_SAMPLE_RANDOM, 451 IRQF_TRIGGER_FALLING, bus->dev.driver->name, ts);
452 bus->dev.driver->name, ts);
453 452
454 if (err) { 453 if (err) {
455 dev_err(&bus->dev, "irq %d busy?\n", bus->irq); 454 dev_err(&bus->dev, "irq %d busy?\n", bus->irq);
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 056ac77e2cf0..2b01e56568f8 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -127,6 +127,8 @@ struct ads7846 {
127 void (*filter_cleanup)(void *data); 127 void (*filter_cleanup)(void *data);
128 int (*get_pendown_state)(void); 128 int (*get_pendown_state)(void);
129 int gpio_pendown; 129 int gpio_pendown;
130
131 void (*wait_for_sync)(void);
130}; 132};
131 133
132/* leave chip selected when we're done, for quicker re-select? */ 134/* leave chip selected when we're done, for quicker re-select? */
@@ -511,6 +513,10 @@ static int get_pendown_state(struct ads7846 *ts)
511 return !gpio_get_value(ts->gpio_pendown); 513 return !gpio_get_value(ts->gpio_pendown);
512} 514}
513 515
516static void null_wait_for_sync(void)
517{
518}
519
514/* 520/*
515 * PENIRQ only kicks the timer. The timer only reissues the SPI transfer, 521 * PENIRQ only kicks the timer. The timer only reissues the SPI transfer,
516 * to retrieve touchscreen status. 522 * to retrieve touchscreen status.
@@ -686,6 +692,7 @@ static void ads7846_rx_val(void *ads)
686 default: 692 default:
687 BUG(); 693 BUG();
688 } 694 }
695 ts->wait_for_sync();
689 status = spi_async(ts->spi, m); 696 status = spi_async(ts->spi, m);
690 if (status) 697 if (status)
691 dev_err(&ts->spi->dev, "spi_async --> %d\n", 698 dev_err(&ts->spi->dev, "spi_async --> %d\n",
@@ -723,6 +730,7 @@ static enum hrtimer_restart ads7846_timer(struct hrtimer *handle)
723 } else { 730 } else {
724 /* pen is still down, continue with the measurement */ 731 /* pen is still down, continue with the measurement */
725 ts->msg_idx = 0; 732 ts->msg_idx = 0;
733 ts->wait_for_sync();
726 status = spi_async(ts->spi, &ts->msg[0]); 734 status = spi_async(ts->spi, &ts->msg[0]);
727 if (status) 735 if (status)
728 dev_err(&ts->spi->dev, "spi_async --> %d\n", status); 736 dev_err(&ts->spi->dev, "spi_async --> %d\n", status);
@@ -746,7 +754,7 @@ static irqreturn_t ads7846_irq(int irq, void *handle)
746 * that here. (The "generic irq" framework may help...) 754 * that here. (The "generic irq" framework may help...)
747 */ 755 */
748 ts->irq_disabled = 1; 756 ts->irq_disabled = 1;
749 disable_irq(ts->spi->irq); 757 disable_irq_nosync(ts->spi->irq);
750 ts->pending = 1; 758 ts->pending = 1;
751 hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY), 759 hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY),
752 HRTIMER_MODE_REL); 760 HRTIMER_MODE_REL);
@@ -947,6 +955,8 @@ static int __devinit ads7846_probe(struct spi_device *spi)
947 ts->penirq_recheck_delay_usecs = 955 ts->penirq_recheck_delay_usecs =
948 pdata->penirq_recheck_delay_usecs; 956 pdata->penirq_recheck_delay_usecs;
949 957
958 ts->wait_for_sync = pdata->wait_for_sync ? : null_wait_for_sync;
959
950 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev)); 960 snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&spi->dev));
951 961
952 input_dev->name = "ADS784x Touchscreen"; 962 input_dev->name = "ADS784x Touchscreen";
diff --git a/drivers/input/touchscreen/da9034-ts.c b/drivers/input/touchscreen/da9034-ts.c
index fa67d782c3c3..3ffd4c4b170c 100644
--- a/drivers/input/touchscreen/da9034-ts.c
+++ b/drivers/input/touchscreen/da9034-ts.c
@@ -3,6 +3,7 @@
3 * 3 *
4 * Copyright (C) 2006-2008 Marvell International Ltd. 4 * Copyright (C) 2006-2008 Marvell International Ltd.
5 * Fengwei Yin <fengwei.yin@marvell.com> 5 * Fengwei Yin <fengwei.yin@marvell.com>
6 * Bin Yang <bin.yang@marvell.com>
6 * Eric Miao <eric.miao@marvell.com> 7 * Eric Miao <eric.miao@marvell.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
@@ -175,6 +176,16 @@ static void da9034_event_handler(struct da9034_touch *touch, int event)
175 goto err_reset; 176 goto err_reset;
176 177
177 touch->state = STATE_STOP; 178 touch->state = STATE_STOP;
179
180 /* FIXME: PEN_{UP/DOWN} events are expected to be
181 * available by stopping TSI, but this is found not
182 * always true, delay and simulate such an event
183 * here is more reliable
184 */
185 mdelay(1);
186 da9034_event_handler(touch,
187 is_pen_down(touch) ? EVENT_PEN_DOWN :
188 EVENT_PEN_UP);
178 break; 189 break;
179 190
180 case STATE_STOP: 191 case STATE_STOP:
@@ -189,8 +200,6 @@ static void da9034_event_handler(struct da9034_touch *touch, int event)
189 report_pen_up(touch); 200 report_pen_up(touch);
190 touch->state = STATE_IDLE; 201 touch->state = STATE_IDLE;
191 } 202 }
192
193 input_sync(touch->input_dev);
194 break; 203 break;
195 204
196 case STATE_WAIT: 205 case STATE_WAIT:
@@ -200,8 +209,10 @@ static void da9034_event_handler(struct da9034_touch *touch, int event)
200 if (is_pen_down(touch)) { 209 if (is_pen_down(touch)) {
201 start_tsi(touch); 210 start_tsi(touch);
202 touch->state = STATE_BUSY; 211 touch->state = STATE_BUSY;
203 } else 212 } else {
213 report_pen_up(touch);
204 touch->state = STATE_IDLE; 214 touch->state = STATE_IDLE;
215 }
205 break; 216 break;
206 } 217 }
207 return; 218 return;
@@ -226,16 +237,12 @@ static int da9034_touch_notifier(struct notifier_block *nb,
226 struct da9034_touch *touch = 237 struct da9034_touch *touch =
227 container_of(nb, struct da9034_touch, notifier); 238 container_of(nb, struct da9034_touch, notifier);
228 239
229 if (event & DA9034_EVENT_PEN_DOWN) {
230 if (is_pen_down(touch))
231 da9034_event_handler(touch, EVENT_PEN_DOWN);
232 else
233 da9034_event_handler(touch, EVENT_PEN_UP);
234 }
235
236 if (event & DA9034_EVENT_TSI_READY) 240 if (event & DA9034_EVENT_TSI_READY)
237 da9034_event_handler(touch, EVENT_TSI_READY); 241 da9034_event_handler(touch, EVENT_TSI_READY);
238 242
243 if ((event & DA9034_EVENT_PEN_DOWN) && touch->state == STATE_IDLE)
244 da9034_event_handler(touch, EVENT_PEN_DOWN);
245
239 return 0; 246 return 0;
240} 247}
241 248
@@ -385,6 +392,6 @@ static void __exit da9034_touch_exit(void)
385module_exit(da9034_touch_exit); 392module_exit(da9034_touch_exit);
386 393
387MODULE_DESCRIPTION("Touchscreen driver for Dialog Semiconductor DA9034"); 394MODULE_DESCRIPTION("Touchscreen driver for Dialog Semiconductor DA9034");
388MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>"); 395MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>, Bin Yang <bin.yang@marvell.com>");
389MODULE_LICENSE("GPL"); 396MODULE_LICENSE("GPL");
390MODULE_ALIAS("platform:da9034-touch"); 397MODULE_ALIAS("platform:da9034-touch");
diff --git a/drivers/input/touchscreen/mainstone-wm97xx.c b/drivers/input/touchscreen/mainstone-wm97xx.c
index dfa6a84ab50a..4cc047a5116e 100644
--- a/drivers/input/touchscreen/mainstone-wm97xx.c
+++ b/drivers/input/touchscreen/mainstone-wm97xx.c
@@ -111,13 +111,12 @@ static void wm97xx_acc_pen_up(struct wm97xx *wm)
111#else 111#else
112static void wm97xx_acc_pen_up(struct wm97xx *wm) 112static void wm97xx_acc_pen_up(struct wm97xx *wm)
113{ 113{
114 int count = 16; 114 unsigned int count;
115
115 schedule_timeout_uninterruptible(1); 116 schedule_timeout_uninterruptible(1);
116 117
117 while (count < 16) { 118 for (count = 0; count < 16; count++)
118 MODR; 119 MODR;
119 count--;
120 }
121} 120}
122#endif 121#endif
123 122
diff --git a/drivers/input/touchscreen/tsc2007.c b/drivers/input/touchscreen/tsc2007.c
index 4ab070246892..948e167557f1 100644
--- a/drivers/input/touchscreen/tsc2007.c
+++ b/drivers/input/touchscreen/tsc2007.c
@@ -200,8 +200,9 @@ static int tsc2007_read_values(struct tsc2007 *tsc)
200static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle) 200static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
201{ 201{
202 struct tsc2007 *ts = container_of(handle, struct tsc2007, timer); 202 struct tsc2007 *ts = container_of(handle, struct tsc2007, timer);
203 unsigned long flags;
203 204
204 spin_lock_irq(&ts->lock); 205 spin_lock_irqsave(&ts->lock, flags);
205 206
206 if (unlikely(!ts->get_pendown_state() && ts->pendown)) { 207 if (unlikely(!ts->get_pendown_state() && ts->pendown)) {
207 struct input_dev *input = ts->input; 208 struct input_dev *input = ts->input;
@@ -222,7 +223,7 @@ static enum hrtimer_restart tsc2007_timer(struct hrtimer *handle)
222 tsc2007_send_event(ts); 223 tsc2007_send_event(ts);
223 } 224 }
224 225
225 spin_unlock_irq(&ts->lock); 226 spin_unlock_irqrestore(&ts->lock, flags);
226 227
227 return HRTIMER_NORESTART; 228 return HRTIMER_NORESTART;
228} 229}
@@ -235,7 +236,7 @@ static irqreturn_t tsc2007_irq(int irq, void *handle)
235 spin_lock_irqsave(&ts->lock, flags); 236 spin_lock_irqsave(&ts->lock, flags);
236 237
237 if (likely(ts->get_pendown_state())) { 238 if (likely(ts->get_pendown_state())) {
238 disable_irq(ts->irq); 239 disable_irq_nosync(ts->irq);
239 hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY), 240 hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY),
240 HRTIMER_MODE_REL); 241 HRTIMER_MODE_REL);
241 } 242 }
diff --git a/drivers/input/touchscreen/ucb1400_ts.c b/drivers/input/touchscreen/ucb1400_ts.c
index e868264fe799..f100c7f4c1db 100644
--- a/drivers/input/touchscreen/ucb1400_ts.c
+++ b/drivers/input/touchscreen/ucb1400_ts.c
@@ -256,7 +256,7 @@ static irqreturn_t ucb1400_hard_irq(int irqnr, void *devid)
256 struct ucb1400_ts *ucb = devid; 256 struct ucb1400_ts *ucb = devid;
257 257
258 if (irqnr == ucb->irq) { 258 if (irqnr == ucb->irq) {
259 disable_irq(ucb->irq); 259 disable_irq_nosync(ucb->irq);
260 ucb->irq_pending = 1; 260 ucb->irq_pending = 1;
261 wake_up(&ucb->ts_wait); 261 wake_up(&ucb->ts_wait);
262 return IRQ_HANDLED; 262 return IRQ_HANDLED;
diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c
index cec480bffe38..69af8385ab14 100644
--- a/drivers/input/touchscreen/wm97xx-core.c
+++ b/drivers/input/touchscreen/wm97xx-core.c
@@ -370,8 +370,7 @@ static int wm97xx_init_pen_irq(struct wm97xx *wm)
370 * provided. */ 370 * provided. */
371 BUG_ON(!wm->mach_ops->irq_enable); 371 BUG_ON(!wm->mach_ops->irq_enable);
372 372
373 if (request_irq(wm->pen_irq, wm97xx_pen_interrupt, 373 if (request_irq(wm->pen_irq, wm97xx_pen_interrupt, IRQF_SHARED,
374 IRQF_SHARED | IRQF_SAMPLE_RANDOM,
375 "wm97xx-pen", wm)) { 374 "wm97xx-pen", wm)) {
376 dev_err(wm->dev, 375 dev_err(wm->dev,
377 "Failed to register pen down interrupt, polling"); 376 "Failed to register pen down interrupt, polling");
diff --git a/drivers/isdn/capi/capifs.c b/drivers/isdn/capi/capifs.c
index b129409925af..bff72d81f263 100644
--- a/drivers/isdn/capi/capifs.c
+++ b/drivers/isdn/capi/capifs.c
@@ -75,15 +75,17 @@ static int capifs_remount(struct super_block *s, int *flags, char *data)
75 } 75 }
76 } 76 }
77 77
78 kfree(s->s_options); 78 mutex_lock(&s->s_root->d_inode->i_mutex);
79 s->s_options = new_opt;
80 79
80 replace_mount_options(s, new_opt);
81 config.setuid = setuid; 81 config.setuid = setuid;
82 config.setgid = setgid; 82 config.setgid = setgid;
83 config.uid = uid; 83 config.uid = uid;
84 config.gid = gid; 84 config.gid = gid;
85 config.mode = mode; 85 config.mode = mode;
86 86
87 mutex_unlock(&s->s_root->d_inode->i_mutex);
88
87 return 0; 89 return 0;
88} 90}
89 91
@@ -154,13 +156,16 @@ void capifs_new_ncci(unsigned int number, dev_t device)
154 if (!inode) 156 if (!inode)
155 return; 157 return;
156 inode->i_ino = number+2; 158 inode->i_ino = number+2;
159
160 dentry = get_node(number);
161
162 /* config contents is protected by root's i_mutex */
157 inode->i_uid = config.setuid ? config.uid : current_fsuid(); 163 inode->i_uid = config.setuid ? config.uid : current_fsuid();
158 inode->i_gid = config.setgid ? config.gid : current_fsgid(); 164 inode->i_gid = config.setgid ? config.gid : current_fsgid();
159 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 165 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
160 init_special_inode(inode, S_IFCHR|config.mode, device); 166 init_special_inode(inode, S_IFCHR|config.mode, device);
161 //inode->i_op = &capifs_file_inode_operations; 167 //inode->i_op = &capifs_file_inode_operations;
162 168
163 dentry = get_node(number);
164 if (!IS_ERR(dentry) && !dentry->d_inode) 169 if (!IS_ERR(dentry) && !dentry->d_inode)
165 d_instantiate(dentry, inode); 170 d_instantiate(dentry, inode);
166 mutex_unlock(&capifs_root->d_inode->i_mutex); 171 mutex_unlock(&capifs_root->d_inode->i_mutex);
diff --git a/drivers/isdn/hisax/st5481_usb.c b/drivers/isdn/hisax/st5481_usb.c
index ec3c0e507669..2b3a055059ea 100644
--- a/drivers/isdn/hisax/st5481_usb.c
+++ b/drivers/isdn/hisax/st5481_usb.c
@@ -149,14 +149,7 @@ static void usb_ctrl_complete(struct urb *urb)
149 if (ctrl_msg->dr.bRequest == USB_REQ_CLEAR_FEATURE) { 149 if (ctrl_msg->dr.bRequest == USB_REQ_CLEAR_FEATURE) {
150 /* Special case handling for pipe reset */ 150 /* Special case handling for pipe reset */
151 le16_to_cpus(&ctrl_msg->dr.wIndex); 151 le16_to_cpus(&ctrl_msg->dr.wIndex);
152 152 usb_reset_endpoint(adapter->usb_dev, ctrl_msg->dr.wIndex);
153 /* toggle is reset on clear */
154 usb_settoggle(adapter->usb_dev,
155 ctrl_msg->dr.wIndex & ~USB_DIR_IN,
156 (ctrl_msg->dr.wIndex & USB_DIR_IN) == 0,
157 0);
158
159
160 } 153 }
161 154
162 if (ctrl_msg->complete) 155 if (ctrl_msg->complete)
diff --git a/drivers/lguest/lg.h b/drivers/lguest/lg.h
index ac8a4a3741b8..af92a176697f 100644
--- a/drivers/lguest/lg.h
+++ b/drivers/lguest/lg.h
@@ -158,7 +158,8 @@ void free_interrupts(void);
158/* segments.c: */ 158/* segments.c: */
159void setup_default_gdt_entries(struct lguest_ro_state *state); 159void setup_default_gdt_entries(struct lguest_ro_state *state);
160void setup_guest_gdt(struct lg_cpu *cpu); 160void setup_guest_gdt(struct lg_cpu *cpu);
161void load_guest_gdt(struct lg_cpu *cpu, unsigned long table, u32 num); 161void load_guest_gdt_entry(struct lg_cpu *cpu, unsigned int i,
162 u32 low, u32 hi);
162void guest_load_tls(struct lg_cpu *cpu, unsigned long tls_array); 163void guest_load_tls(struct lg_cpu *cpu, unsigned long tls_array);
163void copy_gdt(const struct lg_cpu *cpu, struct desc_struct *gdt); 164void copy_gdt(const struct lg_cpu *cpu, struct desc_struct *gdt);
164void copy_gdt_tls(const struct lg_cpu *cpu, struct desc_struct *gdt); 165void copy_gdt_tls(const struct lg_cpu *cpu, struct desc_struct *gdt);
diff --git a/drivers/lguest/segments.c b/drivers/lguest/segments.c
index 4f15439b7f12..7ede64ffeef9 100644
--- a/drivers/lguest/segments.c
+++ b/drivers/lguest/segments.c
@@ -144,18 +144,19 @@ void copy_gdt(const struct lg_cpu *cpu, struct desc_struct *gdt)
144 gdt[i] = cpu->arch.gdt[i]; 144 gdt[i] = cpu->arch.gdt[i];
145} 145}
146 146
147/*H:620 This is where the Guest asks us to load a new GDT (LHCALL_LOAD_GDT). 147/*H:620 This is where the Guest asks us to load a new GDT entry
148 * We copy it from the Guest and tweak the entries. */ 148 * (LHCALL_LOAD_GDT_ENTRY). We tweak the entry and copy it in. */
149void load_guest_gdt(struct lg_cpu *cpu, unsigned long table, u32 num) 149void load_guest_gdt_entry(struct lg_cpu *cpu, u32 num, u32 lo, u32 hi)
150{ 150{
151 /* We assume the Guest has the same number of GDT entries as the 151 /* We assume the Guest has the same number of GDT entries as the
152 * Host, otherwise we'd have to dynamically allocate the Guest GDT. */ 152 * Host, otherwise we'd have to dynamically allocate the Guest GDT. */
153 if (num > ARRAY_SIZE(cpu->arch.gdt)) 153 if (num > ARRAY_SIZE(cpu->arch.gdt))
154 kill_guest(cpu, "too many gdt entries %i", num); 154 kill_guest(cpu, "too many gdt entries %i", num);
155 155
156 /* We read the whole thing in, then fix it up. */ 156 /* Set it up, then fix it. */
157 __lgread(cpu, cpu->arch.gdt, table, num * sizeof(cpu->arch.gdt[0])); 157 cpu->arch.gdt[num].a = lo;
158 fixup_gdt_table(cpu, 0, ARRAY_SIZE(cpu->arch.gdt)); 158 cpu->arch.gdt[num].b = hi;
159 fixup_gdt_table(cpu, num, num+1);
159 /* Mark that the GDT changed so the core knows it has to copy it again, 160 /* Mark that the GDT changed so the core knows it has to copy it again,
160 * even if the Guest is run on the same CPU. */ 161 * even if the Guest is run on the same CPU. */
161 cpu->changed |= CHANGED_GDT; 162 cpu->changed |= CHANGED_GDT;
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index a6b717644be0..1a83910f674f 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -324,6 +324,11 @@ static void rewrite_hypercall(struct lg_cpu *cpu)
324 u8 insn[3] = {0xcd, 0x1f, 0x90}; 324 u8 insn[3] = {0xcd, 0x1f, 0x90};
325 325
326 __lgwrite(cpu, guest_pa(cpu, cpu->regs->eip), insn, sizeof(insn)); 326 __lgwrite(cpu, guest_pa(cpu, cpu->regs->eip), insn, sizeof(insn));
327 /* The above write might have caused a copy of that page to be made
328 * (if it was read-only). We need to make sure the Guest has
329 * up-to-date pagetables. As this doesn't happen often, we can just
330 * drop them all. */
331 guest_pagetable_clear_all(cpu);
327} 332}
328 333
329static bool is_hypercall(struct lg_cpu *cpu) 334static bool is_hypercall(struct lg_cpu *cpu)
@@ -563,8 +568,8 @@ void __exit lguest_arch_host_fini(void)
563int lguest_arch_do_hcall(struct lg_cpu *cpu, struct hcall_args *args) 568int lguest_arch_do_hcall(struct lg_cpu *cpu, struct hcall_args *args)
564{ 569{
565 switch (args->arg0) { 570 switch (args->arg0) {
566 case LHCALL_LOAD_GDT: 571 case LHCALL_LOAD_GDT_ENTRY:
567 load_guest_gdt(cpu, args->arg1, args->arg2); 572 load_guest_gdt_entry(cpu, args->arg1, args->arg2, args->arg3);
568 break; 573 break;
569 case LHCALL_LOAD_IDT_ENTRY: 574 case LHCALL_LOAD_IDT_ENTRY:
570 load_guest_idt_entry(cpu, args->arg1, args->arg2, args->arg3); 575 load_guest_idt_entry(cpu, args->arg1, args->arg2, args->arg3);
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig
index 173cf55c64d0..3d906833948d 100644
--- a/drivers/macintosh/Kconfig
+++ b/drivers/macintosh/Kconfig
@@ -123,7 +123,7 @@ config PMAC_APM_EMU
123 123
124config PMAC_MEDIABAY 124config PMAC_MEDIABAY
125 bool "Support PowerBook hotswap media bay" 125 bool "Support PowerBook hotswap media bay"
126 depends on PPC_PMAC && PPC32 126 depends on PPC_PMAC && PPC32 && BLOCK
127 help 127 help
128 This option adds support for older PowerBook's hotswap media bay 128 This option adds support for older PowerBook's hotswap media bay
129 that can contains batteries, floppy drives, or IDE devices. PCI 129 that can contains batteries, floppy drives, or IDE devices. PCI
diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c
index d7e46d345d9e..029ad8ce8a7e 100644
--- a/drivers/macintosh/mediabay.c
+++ b/drivers/macintosh/mediabay.c
@@ -18,7 +18,6 @@
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/stddef.h> 19#include <linux/stddef.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/ide.h>
22#include <linux/kthread.h> 21#include <linux/kthread.h>
23#include <linux/mutex.h> 22#include <linux/mutex.h>
24#include <asm/prom.h> 23#include <asm/prom.h>
@@ -447,6 +446,7 @@ int check_media_bay_by_base(unsigned long base, int what)
447 446
448 return -ENODEV; 447 return -ENODEV;
449} 448}
449EXPORT_SYMBOL_GPL(check_media_bay_by_base);
450 450
451int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base, 451int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base,
452 int irq, ide_hwif_t *hwif) 452 int irq, ide_hwif_t *hwif)
@@ -486,6 +486,7 @@ int media_bay_set_ide_infos(struct device_node* which_bay, unsigned long base,
486 486
487 return -ENODEV; 487 return -ENODEV;
488} 488}
489EXPORT_SYMBOL_GPL(media_bay_set_ide_infos);
489#endif /* CONFIG_BLK_DEV_IDE_PMAC */ 490#endif /* CONFIG_BLK_DEV_IDE_PMAC */
490 491
491static void media_bay_step(int i) 492static void media_bay_step(int i)
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index f8a9f7ab2cb8..47c68bc75a17 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -986,6 +986,9 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
986 oldindex = index; 986 oldindex = index;
987 oldpage = page; 987 oldpage = page;
988 988
989 bitmap->filemap[bitmap->file_pages++] = page;
990 bitmap->last_page_size = count;
991
989 if (outofdate) { 992 if (outofdate) {
990 /* 993 /*
991 * if bitmap is out of date, dirty the 994 * if bitmap is out of date, dirty the
@@ -998,15 +1001,9 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
998 write_page(bitmap, page, 1); 1001 write_page(bitmap, page, 1);
999 1002
1000 ret = -EIO; 1003 ret = -EIO;
1001 if (bitmap->flags & BITMAP_WRITE_ERROR) { 1004 if (bitmap->flags & BITMAP_WRITE_ERROR)
1002 /* release, page not in filemap yet */
1003 put_page(page);
1004 goto err; 1005 goto err;
1005 }
1006 } 1006 }
1007
1008 bitmap->filemap[bitmap->file_pages++] = page;
1009 bitmap->last_page_size = count;
1010 } 1007 }
1011 paddr = kmap_atomic(page, KM_USER0); 1008 paddr = kmap_atomic(page, KM_USER0);
1012 if (bitmap->flags & BITMAP_HOSTENDIAN) 1009 if (bitmap->flags & BITMAP_HOSTENDIAN)
@@ -1016,9 +1013,11 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
1016 kunmap_atomic(paddr, KM_USER0); 1013 kunmap_atomic(paddr, KM_USER0);
1017 if (b) { 1014 if (b) {
1018 /* if the disk bit is set, set the memory bit */ 1015 /* if the disk bit is set, set the memory bit */
1019 bitmap_set_memory_bits(bitmap, i << CHUNK_BLOCK_SHIFT(bitmap), 1016 int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap))
1020 ((i+1) << (CHUNK_BLOCK_SHIFT(bitmap)) >= start) 1017 >= start);
1021 ); 1018 bitmap_set_memory_bits(bitmap,
1019 (sector_t)i << CHUNK_BLOCK_SHIFT(bitmap),
1020 needed);
1022 bit_cnt++; 1021 bit_cnt++;
1023 set_page_attr(bitmap, page, BITMAP_PAGE_CLEAN); 1022 set_page_attr(bitmap, page, BITMAP_PAGE_CLEAN);
1024 } 1023 }
@@ -1154,8 +1153,9 @@ void bitmap_daemon_work(struct bitmap *bitmap)
1154 spin_lock_irqsave(&bitmap->lock, flags); 1153 spin_lock_irqsave(&bitmap->lock, flags);
1155 clear_page_attr(bitmap, page, BITMAP_PAGE_CLEAN); 1154 clear_page_attr(bitmap, page, BITMAP_PAGE_CLEAN);
1156 } 1155 }
1157 bmc = bitmap_get_counter(bitmap, j << CHUNK_BLOCK_SHIFT(bitmap), 1156 bmc = bitmap_get_counter(bitmap,
1158 &blocks, 0); 1157 (sector_t)j << CHUNK_BLOCK_SHIFT(bitmap),
1158 &blocks, 0);
1159 if (bmc) { 1159 if (bmc) {
1160/* 1160/*
1161 if (j < 100) printk("bitmap: j=%lu, *bmc = 0x%x\n", j, *bmc); 1161 if (j < 100) printk("bitmap: j=%lu, *bmc = 0x%x\n", j, *bmc);
@@ -1169,7 +1169,8 @@ void bitmap_daemon_work(struct bitmap *bitmap)
1169 } else if (*bmc == 1) { 1169 } else if (*bmc == 1) {
1170 /* we can clear the bit */ 1170 /* we can clear the bit */
1171 *bmc = 0; 1171 *bmc = 0;
1172 bitmap_count_page(bitmap, j << CHUNK_BLOCK_SHIFT(bitmap), 1172 bitmap_count_page(bitmap,
1173 (sector_t)j << CHUNK_BLOCK_SHIFT(bitmap),
1173 -1); 1174 -1);
1174 1175
1175 /* clear the bit */ 1176 /* clear the bit */
@@ -1479,6 +1480,7 @@ void bitmap_cond_end_sync(struct bitmap *bitmap, sector_t sector)
1479 s += blocks; 1480 s += blocks;
1480 } 1481 }
1481 bitmap->last_end_sync = jiffies; 1482 bitmap->last_end_sync = jiffies;
1483 sysfs_notify(&bitmap->mddev->kobj, NULL, "sync_completed");
1482} 1484}
1483 1485
1484static void bitmap_set_memory_bits(struct bitmap *bitmap, sector_t offset, int needed) 1486static void bitmap_set_memory_bits(struct bitmap *bitmap, sector_t offset, int needed)
@@ -1513,7 +1515,7 @@ void bitmap_dirty_bits(struct bitmap *bitmap, unsigned long s, unsigned long e)
1513 unsigned long chunk; 1515 unsigned long chunk;
1514 1516
1515 for (chunk = s; chunk <= e; chunk++) { 1517 for (chunk = s; chunk <= e; chunk++) {
1516 sector_t sec = chunk << CHUNK_BLOCK_SHIFT(bitmap); 1518 sector_t sec = (sector_t)chunk << CHUNK_BLOCK_SHIFT(bitmap);
1517 bitmap_set_memory_bits(bitmap, sec, 1); 1519 bitmap_set_memory_bits(bitmap, sec, 1);
1518 bitmap_file_set_bit(bitmap, sec); 1520 bitmap_file_set_bit(bitmap, sec);
1519 } 1521 }
@@ -1589,7 +1591,7 @@ void bitmap_destroy(mddev_t *mddev)
1589int bitmap_create(mddev_t *mddev) 1591int bitmap_create(mddev_t *mddev)
1590{ 1592{
1591 struct bitmap *bitmap; 1593 struct bitmap *bitmap;
1592 unsigned long blocks = mddev->resync_max_sectors; 1594 sector_t blocks = mddev->resync_max_sectors;
1593 unsigned long chunks; 1595 unsigned long chunks;
1594 unsigned long pages; 1596 unsigned long pages;
1595 struct file *file = mddev->bitmap_file; 1597 struct file *file = mddev->bitmap_file;
@@ -1631,8 +1633,8 @@ int bitmap_create(mddev_t *mddev)
1631 bitmap->chunkshift = ffz(~bitmap->chunksize); 1633 bitmap->chunkshift = ffz(~bitmap->chunksize);
1632 1634
1633 /* now that chunksize and chunkshift are set, we can use these macros */ 1635 /* now that chunksize and chunkshift are set, we can use these macros */
1634 chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) / 1636 chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) >>
1635 CHUNK_BLOCK_RATIO(bitmap); 1637 CHUNK_BLOCK_SHIFT(bitmap);
1636 pages = (chunks + PAGE_COUNTER_RATIO - 1) / PAGE_COUNTER_RATIO; 1638 pages = (chunks + PAGE_COUNTER_RATIO - 1) / PAGE_COUNTER_RATIO;
1637 1639
1638 BUG_ON(!pages); 1640 BUG_ON(!pages);
diff --git a/drivers/md/dm-bio-list.h b/drivers/md/dm-bio-list.h
deleted file mode 100644
index 345098b4ca77..000000000000
--- a/drivers/md/dm-bio-list.h
+++ /dev/null
@@ -1,117 +0,0 @@
1/*
2 * Copyright (C) 2004 Red Hat UK Ltd.
3 *
4 * This file is released under the GPL.
5 */
6
7#ifndef DM_BIO_LIST_H
8#define DM_BIO_LIST_H
9
10#include <linux/bio.h>
11
12#ifdef CONFIG_BLOCK
13
14struct bio_list {
15 struct bio *head;
16 struct bio *tail;
17};
18
19static inline int bio_list_empty(const struct bio_list *bl)
20{
21 return bl->head == NULL;
22}
23
24static inline void bio_list_init(struct bio_list *bl)
25{
26 bl->head = bl->tail = NULL;
27}
28
29#define bio_list_for_each(bio, bl) \
30 for (bio = (bl)->head; bio; bio = bio->bi_next)
31
32static inline unsigned bio_list_size(const struct bio_list *bl)
33{
34 unsigned sz = 0;
35 struct bio *bio;
36
37 bio_list_for_each(bio, bl)
38 sz++;
39
40 return sz;
41}
42
43static inline void bio_list_add(struct bio_list *bl, struct bio *bio)
44{
45 bio->bi_next = NULL;
46
47 if (bl->tail)
48 bl->tail->bi_next = bio;
49 else
50 bl->head = bio;
51
52 bl->tail = bio;
53}
54
55static inline void bio_list_add_head(struct bio_list *bl, struct bio *bio)
56{
57 bio->bi_next = bl->head;
58
59 bl->head = bio;
60
61 if (!bl->tail)
62 bl->tail = bio;
63}
64
65static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
66{
67 if (!bl2->head)
68 return;
69
70 if (bl->tail)
71 bl->tail->bi_next = bl2->head;
72 else
73 bl->head = bl2->head;
74
75 bl->tail = bl2->tail;
76}
77
78static inline void bio_list_merge_head(struct bio_list *bl,
79 struct bio_list *bl2)
80{
81 if (!bl2->head)
82 return;
83
84 if (bl->head)
85 bl2->tail->bi_next = bl->head;
86 else
87 bl->tail = bl2->tail;
88
89 bl->head = bl2->head;
90}
91
92static inline struct bio *bio_list_pop(struct bio_list *bl)
93{
94 struct bio *bio = bl->head;
95
96 if (bio) {
97 bl->head = bl->head->bi_next;
98 if (!bl->head)
99 bl->tail = NULL;
100
101 bio->bi_next = NULL;
102 }
103
104 return bio;
105}
106
107static inline struct bio *bio_list_get(struct bio_list *bl)
108{
109 struct bio *bio = bl->head;
110
111 bl->head = bl->tail = NULL;
112
113 return bio;
114}
115
116#endif /* CONFIG_BLOCK */
117#endif
diff --git a/drivers/md/dm-delay.c b/drivers/md/dm-delay.c
index 59ee1b015d2d..559dbb52bc85 100644
--- a/drivers/md/dm-delay.c
+++ b/drivers/md/dm-delay.c
@@ -15,8 +15,6 @@
15 15
16#include <linux/device-mapper.h> 16#include <linux/device-mapper.h>
17 17
18#include "dm-bio-list.h"
19
20#define DM_MSG_PREFIX "delay" 18#define DM_MSG_PREFIX "delay"
21 19
22struct delay_c { 20struct delay_c {
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index 095f77bf9681..6a386ab4f7eb 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -8,7 +8,6 @@
8#include <linux/device-mapper.h> 8#include <linux/device-mapper.h>
9 9
10#include "dm-path-selector.h" 10#include "dm-path-selector.h"
11#include "dm-bio-list.h"
12#include "dm-bio-record.h" 11#include "dm-bio-record.h"
13#include "dm-uevent.h" 12#include "dm-uevent.h"
14 13
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
index 536ef0bef154..076fbb4e967a 100644
--- a/drivers/md/dm-raid1.c
+++ b/drivers/md/dm-raid1.c
@@ -5,7 +5,6 @@
5 * This file is released under the GPL. 5 * This file is released under the GPL.
6 */ 6 */
7 7
8#include "dm-bio-list.h"
9#include "dm-bio-record.h" 8#include "dm-bio-record.h"
10 9
11#include <linux/init.h> 10#include <linux/init.h>
diff --git a/drivers/md/dm-region-hash.c b/drivers/md/dm-region-hash.c
index 59f8d9df9e1a..7b899be0b087 100644
--- a/drivers/md/dm-region-hash.c
+++ b/drivers/md/dm-region-hash.c
@@ -14,7 +14,6 @@
14#include <linux/vmalloc.h> 14#include <linux/vmalloc.h>
15 15
16#include "dm.h" 16#include "dm.h"
17#include "dm-bio-list.h"
18 17
19#define DM_MSG_PREFIX "region hash" 18#define DM_MSG_PREFIX "region hash"
20 19
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index 981a0413068f..d73f17fc7778 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -22,7 +22,6 @@
22#include <linux/workqueue.h> 22#include <linux/workqueue.h>
23 23
24#include "dm-exception-store.h" 24#include "dm-exception-store.h"
25#include "dm-bio-list.h"
26 25
27#define DM_MSG_PREFIX "snapshots" 26#define DM_MSG_PREFIX "snapshots"
28 27
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 8a994be035ba..424f7b048c30 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -6,7 +6,6 @@
6 */ 6 */
7 7
8#include "dm.h" 8#include "dm.h"
9#include "dm-bio-list.h"
10#include "dm-uevent.h" 9#include "dm-uevent.h"
11 10
12#include <linux/init.h> 11#include <linux/init.h>
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ed5727c089a9..fccc8343a250 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2017,6 +2017,8 @@ repeat:
2017 clear_bit(MD_CHANGE_PENDING, &mddev->flags); 2017 clear_bit(MD_CHANGE_PENDING, &mddev->flags);
2018 spin_unlock_irq(&mddev->write_lock); 2018 spin_unlock_irq(&mddev->write_lock);
2019 wake_up(&mddev->sb_wait); 2019 wake_up(&mddev->sb_wait);
2020 if (test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
2021 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
2020 2022
2021} 2023}
2022 2024
@@ -2086,6 +2088,7 @@ state_store(mdk_rdev_t *rdev, const char *buf, size_t len)
2086 * -writemostly - clears write_mostly 2088 * -writemostly - clears write_mostly
2087 * blocked - sets the Blocked flag 2089 * blocked - sets the Blocked flag
2088 * -blocked - clears the Blocked flag 2090 * -blocked - clears the Blocked flag
2091 * insync - sets Insync providing device isn't active
2089 */ 2092 */
2090 int err = -EINVAL; 2093 int err = -EINVAL;
2091 if (cmd_match(buf, "faulty") && rdev->mddev->pers) { 2094 if (cmd_match(buf, "faulty") && rdev->mddev->pers) {
@@ -2118,6 +2121,9 @@ state_store(mdk_rdev_t *rdev, const char *buf, size_t len)
2118 md_wakeup_thread(rdev->mddev->thread); 2121 md_wakeup_thread(rdev->mddev->thread);
2119 2122
2120 err = 0; 2123 err = 0;
2124 } else if (cmd_match(buf, "insync") && rdev->raid_disk == -1) {
2125 set_bit(In_sync, &rdev->flags);
2126 err = 0;
2121 } 2127 }
2122 if (!err && rdev->sysfs_state) 2128 if (!err && rdev->sysfs_state)
2123 sysfs_notify_dirent(rdev->sysfs_state); 2129 sysfs_notify_dirent(rdev->sysfs_state);
@@ -2190,7 +2196,7 @@ slot_store(mdk_rdev_t *rdev, const char *buf, size_t len)
2190 } else if (rdev->mddev->pers) { 2196 } else if (rdev->mddev->pers) {
2191 mdk_rdev_t *rdev2; 2197 mdk_rdev_t *rdev2;
2192 /* Activating a spare .. or possibly reactivating 2198 /* Activating a spare .. or possibly reactivating
2193 * if we every get bitmaps working here. 2199 * if we ever get bitmaps working here.
2194 */ 2200 */
2195 2201
2196 if (rdev->raid_disk != -1) 2202 if (rdev->raid_disk != -1)
@@ -3060,11 +3066,8 @@ array_state_store(mddev_t *mddev, const char *buf, size_t len)
3060 } else 3066 } else
3061 err = -EBUSY; 3067 err = -EBUSY;
3062 spin_unlock_irq(&mddev->write_lock); 3068 spin_unlock_irq(&mddev->write_lock);
3063 } else { 3069 } else
3064 mddev->ro = 0; 3070 err = -EINVAL;
3065 mddev->recovery_cp = MaxSector;
3066 err = do_md_run(mddev);
3067 }
3068 break; 3071 break;
3069 case active: 3072 case active:
3070 if (mddev->pers) { 3073 if (mddev->pers) {
@@ -3482,12 +3485,15 @@ sync_completed_show(mddev_t *mddev, char *page)
3482{ 3485{
3483 unsigned long max_sectors, resync; 3486 unsigned long max_sectors, resync;
3484 3487
3488 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
3489 return sprintf(page, "none\n");
3490
3485 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) 3491 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery))
3486 max_sectors = mddev->resync_max_sectors; 3492 max_sectors = mddev->resync_max_sectors;
3487 else 3493 else
3488 max_sectors = mddev->dev_sectors; 3494 max_sectors = mddev->dev_sectors;
3489 3495
3490 resync = (mddev->curr_resync - atomic_read(&mddev->recovery_active)); 3496 resync = mddev->curr_resync_completed;
3491 return sprintf(page, "%lu / %lu\n", resync, max_sectors); 3497 return sprintf(page, "%lu / %lu\n", resync, max_sectors);
3492} 3498}
3493 3499
@@ -4288,6 +4294,7 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
4288{ 4294{
4289 int err = 0; 4295 int err = 0;
4290 struct gendisk *disk = mddev->gendisk; 4296 struct gendisk *disk = mddev->gendisk;
4297 mdk_rdev_t *rdev;
4291 4298
4292 if (atomic_read(&mddev->openers) > is_open) { 4299 if (atomic_read(&mddev->openers) > is_open) {
4293 printk("md: %s still in use.\n",mdname(mddev)); 4300 printk("md: %s still in use.\n",mdname(mddev));
@@ -4330,6 +4337,13 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
4330 /* tell userspace to handle 'inactive' */ 4337 /* tell userspace to handle 'inactive' */
4331 sysfs_notify_dirent(mddev->sysfs_state); 4338 sysfs_notify_dirent(mddev->sysfs_state);
4332 4339
4340 list_for_each_entry(rdev, &mddev->disks, same_set)
4341 if (rdev->raid_disk >= 0) {
4342 char nm[20];
4343 sprintf(nm, "rd%d", rdev->raid_disk);
4344 sysfs_remove_link(&mddev->kobj, nm);
4345 }
4346
4333 set_capacity(disk, 0); 4347 set_capacity(disk, 0);
4334 mddev->changed = 1; 4348 mddev->changed = 1;
4335 4349
@@ -4350,7 +4364,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
4350 * Free resources if final stop 4364 * Free resources if final stop
4351 */ 4365 */
4352 if (mode == 0) { 4366 if (mode == 0) {
4353 mdk_rdev_t *rdev;
4354 4367
4355 printk(KERN_INFO "md: %s stopped.\n", mdname(mddev)); 4368 printk(KERN_INFO "md: %s stopped.\n", mdname(mddev));
4356 4369
@@ -4362,13 +4375,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
4362 } 4375 }
4363 mddev->bitmap_offset = 0; 4376 mddev->bitmap_offset = 0;
4364 4377
4365 list_for_each_entry(rdev, &mddev->disks, same_set)
4366 if (rdev->raid_disk >= 0) {
4367 char nm[20];
4368 sprintf(nm, "rd%d", rdev->raid_disk);
4369 sysfs_remove_link(&mddev->kobj, nm);
4370 }
4371
4372 /* make sure all md_delayed_delete calls have finished */ 4378 /* make sure all md_delayed_delete calls have finished */
4373 flush_scheduled_work(); 4379 flush_scheduled_work();
4374 4380
@@ -5696,37 +5702,38 @@ static void status_unused(struct seq_file *seq)
5696 5702
5697static void status_resync(struct seq_file *seq, mddev_t * mddev) 5703static void status_resync(struct seq_file *seq, mddev_t * mddev)
5698{ 5704{
5699 sector_t max_blocks, resync, res; 5705 sector_t max_sectors, resync, res;
5700 unsigned long dt, db, rt; 5706 unsigned long dt, db;
5707 sector_t rt;
5701 int scale; 5708 int scale;
5702 unsigned int per_milli; 5709 unsigned int per_milli;
5703 5710
5704 resync = (mddev->curr_resync - atomic_read(&mddev->recovery_active))/2; 5711 resync = mddev->curr_resync - atomic_read(&mddev->recovery_active);
5705 5712
5706 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) 5713 if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery))
5707 max_blocks = mddev->resync_max_sectors >> 1; 5714 max_sectors = mddev->resync_max_sectors;
5708 else 5715 else
5709 max_blocks = mddev->dev_sectors / 2; 5716 max_sectors = mddev->dev_sectors;
5710 5717
5711 /* 5718 /*
5712 * Should not happen. 5719 * Should not happen.
5713 */ 5720 */
5714 if (!max_blocks) { 5721 if (!max_sectors) {
5715 MD_BUG(); 5722 MD_BUG();
5716 return; 5723 return;
5717 } 5724 }
5718 /* Pick 'scale' such that (resync>>scale)*1000 will fit 5725 /* Pick 'scale' such that (resync>>scale)*1000 will fit
5719 * in a sector_t, and (max_blocks>>scale) will fit in a 5726 * in a sector_t, and (max_sectors>>scale) will fit in a
5720 * u32, as those are the requirements for sector_div. 5727 * u32, as those are the requirements for sector_div.
5721 * Thus 'scale' must be at least 10 5728 * Thus 'scale' must be at least 10
5722 */ 5729 */
5723 scale = 10; 5730 scale = 10;
5724 if (sizeof(sector_t) > sizeof(unsigned long)) { 5731 if (sizeof(sector_t) > sizeof(unsigned long)) {
5725 while ( max_blocks/2 > (1ULL<<(scale+32))) 5732 while ( max_sectors/2 > (1ULL<<(scale+32)))
5726 scale++; 5733 scale++;
5727 } 5734 }
5728 res = (resync>>scale)*1000; 5735 res = (resync>>scale)*1000;
5729 sector_div(res, (u32)((max_blocks>>scale)+1)); 5736 sector_div(res, (u32)((max_sectors>>scale)+1));
5730 5737
5731 per_milli = res; 5738 per_milli = res;
5732 { 5739 {
@@ -5747,25 +5754,35 @@ static void status_resync(struct seq_file *seq, mddev_t * mddev)
5747 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ? 5754 (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ?
5748 "resync" : "recovery"))), 5755 "resync" : "recovery"))),
5749 per_milli/10, per_milli % 10, 5756 per_milli/10, per_milli % 10,
5750 (unsigned long long) resync, 5757 (unsigned long long) resync/2,
5751 (unsigned long long) max_blocks); 5758 (unsigned long long) max_sectors/2);
5752 5759
5753 /* 5760 /*
5754 * We do not want to overflow, so the order of operands and
5755 * the * 100 / 100 trick are important. We do a +1 to be
5756 * safe against division by zero. We only estimate anyway.
5757 *
5758 * dt: time from mark until now 5761 * dt: time from mark until now
5759 * db: blocks written from mark until now 5762 * db: blocks written from mark until now
5760 * rt: remaining time 5763 * rt: remaining time
5764 *
5765 * rt is a sector_t, so could be 32bit or 64bit.
5766 * So we divide before multiply in case it is 32bit and close
5767 * to the limit.
5768 * We scale the divisor (db) by 32 to avoid loosing precision
5769 * near the end of resync when the number of remaining sectors
5770 * is close to 'db'.
5771 * We then divide rt by 32 after multiplying by db to compensate.
5772 * The '+1' avoids division by zero if db is very small.
5761 */ 5773 */
5762 dt = ((jiffies - mddev->resync_mark) / HZ); 5774 dt = ((jiffies - mddev->resync_mark) / HZ);
5763 if (!dt) dt++; 5775 if (!dt) dt++;
5764 db = (mddev->curr_mark_cnt - atomic_read(&mddev->recovery_active)) 5776 db = (mddev->curr_mark_cnt - atomic_read(&mddev->recovery_active))
5765 - mddev->resync_mark_cnt; 5777 - mddev->resync_mark_cnt;
5766 rt = (dt * ((unsigned long)(max_blocks-resync) / (db/2/100+1)))/100;
5767 5778
5768 seq_printf(seq, " finish=%lu.%lumin", rt / 60, (rt % 60)/6); 5779 rt = max_sectors - resync; /* number of remaining sectors */
5780 sector_div(rt, db/32+1);
5781 rt *= dt;
5782 rt >>= 5;
5783
5784 seq_printf(seq, " finish=%lu.%lumin", (unsigned long)rt / 60,
5785 ((unsigned long)rt % 60)/6);
5769 5786
5770 seq_printf(seq, " speed=%ldK/sec", db/2/dt); 5787 seq_printf(seq, " speed=%ldK/sec", db/2/dt);
5771} 5788}
@@ -5956,7 +5973,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
5956 return 0; 5973 return 0;
5957} 5974}
5958 5975
5959static struct seq_operations md_seq_ops = { 5976static const struct seq_operations md_seq_ops = {
5960 .start = md_seq_start, 5977 .start = md_seq_start,
5961 .next = md_seq_next, 5978 .next = md_seq_next,
5962 .stop = md_seq_stop, 5979 .stop = md_seq_stop,
@@ -6334,18 +6351,13 @@ void md_do_sync(mddev_t *mddev)
6334 sector_t sectors; 6351 sector_t sectors;
6335 6352
6336 skipped = 0; 6353 skipped = 0;
6337 if (j >= mddev->resync_max) {
6338 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
6339 wait_event(mddev->recovery_wait,
6340 mddev->resync_max > j
6341 || kthread_should_stop());
6342 }
6343 if (kthread_should_stop())
6344 goto interrupted;
6345 6354
6346 if (mddev->curr_resync > mddev->curr_resync_completed && 6355 if ((mddev->curr_resync > mddev->curr_resync_completed &&
6347 (mddev->curr_resync - mddev->curr_resync_completed) 6356 (mddev->curr_resync - mddev->curr_resync_completed)
6348 > (max_sectors >> 4)) { 6357 > (max_sectors >> 4)) ||
6358 (j - mddev->curr_resync_completed)*2
6359 >= mddev->resync_max - mddev->curr_resync_completed
6360 ) {
6349 /* time to update curr_resync_completed */ 6361 /* time to update curr_resync_completed */
6350 blk_unplug(mddev->queue); 6362 blk_unplug(mddev->queue);
6351 wait_event(mddev->recovery_wait, 6363 wait_event(mddev->recovery_wait,
@@ -6353,7 +6365,17 @@ void md_do_sync(mddev_t *mddev)
6353 mddev->curr_resync_completed = 6365 mddev->curr_resync_completed =
6354 mddev->curr_resync; 6366 mddev->curr_resync;
6355 set_bit(MD_CHANGE_CLEAN, &mddev->flags); 6367 set_bit(MD_CHANGE_CLEAN, &mddev->flags);
6368 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
6356 } 6369 }
6370
6371 if (j >= mddev->resync_max)
6372 wait_event(mddev->recovery_wait,
6373 mddev->resync_max > j
6374 || kthread_should_stop());
6375
6376 if (kthread_should_stop())
6377 goto interrupted;
6378
6357 sectors = mddev->pers->sync_request(mddev, j, &skipped, 6379 sectors = mddev->pers->sync_request(mddev, j, &skipped,
6358 currspeed < speed_min(mddev)); 6380 currspeed < speed_min(mddev));
6359 if (sectors == 0) { 6381 if (sectors == 0) {
@@ -6461,6 +6483,7 @@ void md_do_sync(mddev_t *mddev)
6461 6483
6462 skip: 6484 skip:
6463 mddev->curr_resync = 0; 6485 mddev->curr_resync = 0;
6486 mddev->curr_resync_completed = 0;
6464 mddev->resync_min = 0; 6487 mddev->resync_min = 0;
6465 mddev->resync_max = MaxSector; 6488 mddev->resync_max = MaxSector;
6466 sysfs_notify(&mddev->kobj, NULL, "sync_completed"); 6489 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
diff --git a/drivers/md/md.h b/drivers/md/md.h
index e9b7f54c24d6..8227ab909d44 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -12,10 +12,17 @@
12 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 12 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
13*/ 13*/
14 14
15#ifndef _MD_K_H 15#ifndef _MD_MD_H
16#define _MD_K_H 16#define _MD_MD_H
17 17
18#ifdef CONFIG_BLOCK 18#include <linux/blkdev.h>
19#include <linux/kobject.h>
20#include <linux/list.h>
21#include <linux/mm.h>
22#include <linux/mutex.h>
23#include <linux/timer.h>
24#include <linux/wait.h>
25#include <linux/workqueue.h>
19 26
20#define MaxSector (~(sector_t)0) 27#define MaxSector (~(sector_t)0)
21 28
@@ -408,10 +415,6 @@ static inline void safe_put_page(struct page *p)
408 if (p) put_page(p); 415 if (p) put_page(p);
409} 416}
410 417
411#endif /* CONFIG_BLOCK */
412#endif
413
414
415extern int register_md_personality(struct mdk_personality *p); 418extern int register_md_personality(struct mdk_personality *p);
416extern int unregister_md_personality(struct mdk_personality *p); 419extern int unregister_md_personality(struct mdk_personality *p);
417extern mdk_thread_t * md_register_thread(void (*run) (mddev_t *mddev), 420extern mdk_thread_t * md_register_thread(void (*run) (mddev_t *mddev),
@@ -434,3 +437,5 @@ extern void md_new_event(mddev_t *mddev);
434extern int md_allow_write(mddev_t *mddev); 437extern int md_allow_write(mddev_t *mddev);
435extern void md_wait_for_blocked_rdev(mdk_rdev_t *rdev, mddev_t *mddev); 438extern void md_wait_for_blocked_rdev(mdk_rdev_t *rdev, mddev_t *mddev);
436extern void md_set_array_sectors(mddev_t *mddev, sector_t array_sectors); 439extern void md_set_array_sectors(mddev_t *mddev, sector_t array_sectors);
440
441#endif /* _MD_MD_H */
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 274b491a11c1..36df9109cde1 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -35,7 +35,6 @@
35#include <linux/blkdev.h> 35#include <linux/blkdev.h>
36#include <linux/seq_file.h> 36#include <linux/seq_file.h>
37#include "md.h" 37#include "md.h"
38#include "dm-bio-list.h"
39#include "raid1.h" 38#include "raid1.h"
40#include "bitmap.h" 39#include "bitmap.h"
41 40
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index e293d92641ac..499620afb44b 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -22,7 +22,6 @@
22#include <linux/blkdev.h> 22#include <linux/blkdev.h>
23#include <linux/seq_file.h> 23#include <linux/seq_file.h>
24#include "md.h" 24#include "md.h"
25#include "dm-bio-list.h"
26#include "raid10.h" 25#include "raid10.h"
27#include "bitmap.h" 26#include "bitmap.h"
28 27
@@ -1810,17 +1809,17 @@ static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i
1810 r10_bio->sector = sect; 1809 r10_bio->sector = sect;
1811 1810
1812 raid10_find_phys(conf, r10_bio); 1811 raid10_find_phys(conf, r10_bio);
1813 /* Need to check if this section will still be 1812
1813 /* Need to check if the array will still be
1814 * degraded 1814 * degraded
1815 */ 1815 */
1816 for (j=0; j<conf->copies;j++) { 1816 for (j=0; j<conf->raid_disks; j++)
1817 int d = r10_bio->devs[j].devnum; 1817 if (conf->mirrors[j].rdev == NULL ||
1818 if (conf->mirrors[d].rdev == NULL || 1818 test_bit(Faulty, &conf->mirrors[j].rdev->flags)) {
1819 test_bit(Faulty, &conf->mirrors[d].rdev->flags)) {
1820 still_degraded = 1; 1819 still_degraded = 1;
1821 break; 1820 break;
1822 } 1821 }
1823 } 1822
1824 must_sync = bitmap_start_sync(mddev->bitmap, sect, 1823 must_sync = bitmap_start_sync(mddev->bitmap, sect,
1825 &sync_blocks, still_degraded); 1824 &sync_blocks, still_degraded);
1826 1825
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 3bbc6d647044..4616bc3a6e71 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -3845,6 +3845,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3845 wait_event(conf->wait_for_overlap, 3845 wait_event(conf->wait_for_overlap,
3846 atomic_read(&conf->reshape_stripes)==0); 3846 atomic_read(&conf->reshape_stripes)==0);
3847 mddev->reshape_position = conf->reshape_progress; 3847 mddev->reshape_position = conf->reshape_progress;
3848 mddev->curr_resync_completed = mddev->curr_resync;
3848 conf->reshape_checkpoint = jiffies; 3849 conf->reshape_checkpoint = jiffies;
3849 set_bit(MD_CHANGE_DEVS, &mddev->flags); 3850 set_bit(MD_CHANGE_DEVS, &mddev->flags);
3850 md_wakeup_thread(mddev->thread); 3851 md_wakeup_thread(mddev->thread);
@@ -3854,6 +3855,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3854 conf->reshape_safe = mddev->reshape_position; 3855 conf->reshape_safe = mddev->reshape_position;
3855 spin_unlock_irq(&conf->device_lock); 3856 spin_unlock_irq(&conf->device_lock);
3856 wake_up(&conf->wait_for_overlap); 3857 wake_up(&conf->wait_for_overlap);
3858 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
3857 } 3859 }
3858 3860
3859 if (mddev->delta_disks < 0) { 3861 if (mddev->delta_disks < 0) {
@@ -3938,11 +3940,13 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3938 * then we need to write out the superblock. 3940 * then we need to write out the superblock.
3939 */ 3941 */
3940 sector_nr += reshape_sectors; 3942 sector_nr += reshape_sectors;
3941 if (sector_nr >= mddev->resync_max) { 3943 if ((sector_nr - mddev->curr_resync_completed) * 2
3944 >= mddev->resync_max - mddev->curr_resync_completed) {
3942 /* Cannot proceed until we've updated the superblock... */ 3945 /* Cannot proceed until we've updated the superblock... */
3943 wait_event(conf->wait_for_overlap, 3946 wait_event(conf->wait_for_overlap,
3944 atomic_read(&conf->reshape_stripes) == 0); 3947 atomic_read(&conf->reshape_stripes) == 0);
3945 mddev->reshape_position = conf->reshape_progress; 3948 mddev->reshape_position = conf->reshape_progress;
3949 mddev->curr_resync_completed = mddev->curr_resync;
3946 conf->reshape_checkpoint = jiffies; 3950 conf->reshape_checkpoint = jiffies;
3947 set_bit(MD_CHANGE_DEVS, &mddev->flags); 3951 set_bit(MD_CHANGE_DEVS, &mddev->flags);
3948 md_wakeup_thread(mddev->thread); 3952 md_wakeup_thread(mddev->thread);
@@ -3953,6 +3957,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
3953 conf->reshape_safe = mddev->reshape_position; 3957 conf->reshape_safe = mddev->reshape_position;
3954 spin_unlock_irq(&conf->device_lock); 3958 spin_unlock_irq(&conf->device_lock);
3955 wake_up(&conf->wait_for_overlap); 3959 wake_up(&conf->wait_for_overlap);
3960 sysfs_notify(&mddev->kobj, NULL, "sync_completed");
3956 } 3961 }
3957 return reshape_sectors; 3962 return reshape_sectors;
3958} 3963}
diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c
index 1dba8f0832a0..5cf6c45b91fe 100644
--- a/drivers/media/radio/radio-sf16fmi.c
+++ b/drivers/media/radio/radio-sf16fmi.c
@@ -153,7 +153,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
153 mult = (fmi->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000; 153 mult = (fmi->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000;
154 v->rangelow = RSF16_MINFREQ / mult; 154 v->rangelow = RSF16_MINFREQ / mult;
155 v->rangehigh = RSF16_MAXFREQ / mult; 155 v->rangehigh = RSF16_MAXFREQ / mult;
156 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_MODE_STEREO; 156 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO;
157 v->capability = fmi->flags & V4L2_TUNER_CAP_LOW; 157 v->capability = fmi->flags & V4L2_TUNER_CAP_LOW;
158 v->audmode = V4L2_TUNER_MODE_STEREO; 158 v->audmode = V4L2_TUNER_MODE_STEREO;
159 v->signal = fmi_getsigstr(fmi); 159 v->signal = fmi_getsigstr(fmi);
diff --git a/drivers/media/radio/radio-sf16fmr2.c b/drivers/media/radio/radio-sf16fmr2.c
index c09ca8600ea1..935ff9bcdfcc 100644
--- a/drivers/media/radio/radio-sf16fmr2.c
+++ b/drivers/media/radio/radio-sf16fmr2.c
@@ -233,7 +233,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
233 mult = (fmr2->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000; 233 mult = (fmr2->flags & V4L2_TUNER_CAP_LOW) ? 1 : 1000;
234 v->rangelow = RSF16_MINFREQ / mult; 234 v->rangelow = RSF16_MINFREQ / mult;
235 v->rangehigh = RSF16_MAXFREQ / mult; 235 v->rangehigh = RSF16_MAXFREQ / mult;
236 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_MODE_STEREO; 236 v->rxsubchans = V4L2_TUNER_SUB_MONO | V4L2_TUNER_SUB_STEREO;
237 v->capability = fmr2->flags&V4L2_TUNER_CAP_LOW; 237 v->capability = fmr2->flags&V4L2_TUNER_CAP_LOW;
238 v->audmode = fmr2->stereo ? V4L2_TUNER_MODE_STEREO: 238 v->audmode = fmr2->stereo ? V4L2_TUNER_MODE_STEREO:
239 V4L2_TUNER_MODE_MONO; 239 V4L2_TUNER_MODE_MONO;
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c
index 92c297796a9f..bd945d04dc90 100644
--- a/drivers/media/radio/radio-si470x.c
+++ b/drivers/media/radio/radio-si470x.c
@@ -1200,7 +1200,7 @@ static int si470x_fops_release(struct file *file)
1200 video_unregister_device(radio->videodev); 1200 video_unregister_device(radio->videodev);
1201 kfree(radio->buffer); 1201 kfree(radio->buffer);
1202 kfree(radio); 1202 kfree(radio);
1203 goto unlock; 1203 goto done;
1204 } 1204 }
1205 1205
1206 /* stop rds reception */ 1206 /* stop rds reception */
diff --git a/drivers/media/video/au0828/au0828-core.c b/drivers/media/video/au0828/au0828-core.c
index 4cee0b92eeee..a1e4c0d769a6 100644
--- a/drivers/media/video/au0828/au0828-core.c
+++ b/drivers/media/video/au0828/au0828-core.c
@@ -192,8 +192,6 @@ static int au0828_usb_probe(struct usb_interface *interface,
192 dev->usbdev = usbdev; 192 dev->usbdev = usbdev;
193 dev->boardnr = id->driver_info; 193 dev->boardnr = id->driver_info;
194 194
195 usb_set_intfdata(interface, dev);
196
197 /* Create the v4l2_device */ 195 /* Create the v4l2_device */
198 retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev); 196 retval = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
199 if (retval) { 197 if (retval) {
@@ -222,6 +220,10 @@ static int au0828_usb_probe(struct usb_interface *interface,
222 /* Digital TV */ 220 /* Digital TV */
223 au0828_dvb_register(dev); 221 au0828_dvb_register(dev);
224 222
223 /* Store the pointer to the au0828_dev so it can be accessed in
224 au0828_usb_disconnect */
225 usb_set_intfdata(interface, dev);
226
225 printk(KERN_INFO "Registered device AU0828 [%s]\n", 227 printk(KERN_INFO "Registered device AU0828 [%s]\n",
226 dev->board.name == NULL ? "Unset" : dev->board.name); 228 dev->board.name == NULL ? "Unset" : dev->board.name);
227 229
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c
index 5f582726985d..c4d181dde1ca 100644
--- a/drivers/media/video/cafe_ccic.c
+++ b/drivers/media/video/cafe_ccic.c
@@ -774,6 +774,7 @@ static int cafe_cam_init(struct cafe_camera *cam)
774 ret = __cafe_cam_reset(cam); 774 ret = __cafe_cam_reset(cam);
775 if (ret) 775 if (ret)
776 goto out; 776 goto out;
777 chip.ident = V4L2_IDENT_NONE;
777 chip.match.type = V4L2_CHIP_MATCH_I2C_ADDR; 778 chip.match.type = V4L2_CHIP_MATCH_I2C_ADDR;
778 chip.match.addr = cam->sensor_addr; 779 chip.match.addr = cam->sensor_addr;
779 ret = sensor_call(cam, core, g_chip_ident, &chip); 780 ret = sensor_call(cam, core, g_chip_ident, &chip);
diff --git a/drivers/media/video/cx18/cx18-audio.c b/drivers/media/video/cx18/cx18-audio.c
index 1519e91c677a..7a8ad5963de8 100644
--- a/drivers/media/video/cx18/cx18-audio.c
+++ b/drivers/media/video/cx18/cx18-audio.c
@@ -44,7 +44,7 @@ int cx18_audio_set_io(struct cx18 *cx)
44 44
45 /* handle muxer chips */ 45 /* handle muxer chips */
46 v4l2_subdev_call(cx->sd_extmux, audio, s_routing, 46 v4l2_subdev_call(cx->sd_extmux, audio, s_routing,
47 in->audio_input, 0, 0); 47 (u32) in->muxer_input, 0, 0);
48 48
49 err = cx18_call_hw_err(cx, cx->card->hw_audio_ctrl, 49 err = cx18_call_hw_err(cx, cx->card->hw_audio_ctrl,
50 audio, s_routing, in->audio_input, 0, 0); 50 audio, s_routing, in->audio_input, 0, 0);
diff --git a/drivers/media/video/cx18/cx18-i2c.c b/drivers/media/video/cx18/cx18-i2c.c
index b9b7064a2be8..8591e4fc359f 100644
--- a/drivers/media/video/cx18/cx18-i2c.c
+++ b/drivers/media/video/cx18/cx18-i2c.c
@@ -211,7 +211,7 @@ static struct i2c_algo_bit_data cx18_i2c_algo_template = {
211/* init + register i2c algo-bit adapter */ 211/* init + register i2c algo-bit adapter */
212int init_cx18_i2c(struct cx18 *cx) 212int init_cx18_i2c(struct cx18 *cx)
213{ 213{
214 int i; 214 int i, err;
215 CX18_DEBUG_I2C("i2c init\n"); 215 CX18_DEBUG_I2C("i2c init\n");
216 216
217 for (i = 0; i < 2; i++) { 217 for (i = 0; i < 2; i++) {
@@ -268,8 +268,18 @@ int init_cx18_i2c(struct cx18 *cx)
268 cx18_call_hw(cx, CX18_HW_GPIO_RESET_CTRL, 268 cx18_call_hw(cx, CX18_HW_GPIO_RESET_CTRL,
269 core, reset, (u32) CX18_GPIO_RESET_I2C); 269 core, reset, (u32) CX18_GPIO_RESET_I2C);
270 270
271 return i2c_bit_add_bus(&cx->i2c_adap[0]) || 271 err = i2c_bit_add_bus(&cx->i2c_adap[0]);
272 i2c_bit_add_bus(&cx->i2c_adap[1]); 272 if (err)
273 goto err;
274 err = i2c_bit_add_bus(&cx->i2c_adap[1]);
275 if (err)
276 goto err_del_bus_0;
277 return 0;
278
279 err_del_bus_0:
280 i2c_del_adapter(&cx->i2c_adap[0]);
281 err:
282 return err;
273} 283}
274 284
275void exit_cx18_i2c(struct cx18 *cx) 285void exit_cx18_i2c(struct cx18 *cx)
diff --git a/drivers/media/video/cx231xx/Kconfig b/drivers/media/video/cx231xx/Kconfig
index 91156546a07a..477d4ab5e9ac 100644
--- a/drivers/media/video/cx231xx/Kconfig
+++ b/drivers/media/video/cx231xx/Kconfig
@@ -1,12 +1,11 @@
1config VIDEO_CX231XX 1config VIDEO_CX231XX
2 tristate "Conexant cx231xx USB video capture support" 2 tristate "Conexant cx231xx USB video capture support"
3 depends on VIDEO_DEV && I2C && INPUT 3 depends on VIDEO_DEV && I2C && INPUT
4 select VIDEO_TUNER 4 select VIDEO_TUNER
5 select VIDEO_TVEEPROM 5 select VIDEO_TVEEPROM
6 select VIDEO_IR 6 select VIDEO_IR
7 select VIDEOBUF_VMALLOC 7 select VIDEOBUF_VMALLOC
8 select VIDEO_CX25840 8 select VIDEO_CX25840
9 select VIDEO_CX231XX_ALSA
10 9
11 ---help--- 10 ---help---
12 This is a video4linux driver for Conexant 231xx USB based TV cards. 11 This is a video4linux driver for Conexant 231xx USB based TV cards.
@@ -15,21 +14,22 @@ config VIDEO_CX231XX
15 module will be called cx231xx 14 module will be called cx231xx
16 15
17config VIDEO_CX231XX_ALSA 16config VIDEO_CX231XX_ALSA
18 tristate "Conexant Cx231xx ALSA audio module" 17 tristate "Conexant Cx231xx ALSA audio module"
19 depends on VIDEO_CX231XX && SND 18 depends on VIDEO_CX231XX && SND
20 select SND_PCM 19 select SND_PCM
21 20
22 ---help--- 21 ---help---
23 This is an ALSA driver for Cx231xx USB based TV cards. 22 This is an ALSA driver for Cx231xx USB based TV cards.
24 23
25 To compile this driver as a module, choose M here: the 24 To compile this driver as a module, choose M here: the
26 module will be called cx231xx-alsa 25 module will be called cx231xx-alsa
27 26
28config VIDEO_CX231XX_DVB 27config VIDEO_CX231XX_DVB
29 tristate "DVB/ATSC Support for Cx231xx based TV cards" 28 tristate "DVB/ATSC Support for Cx231xx based TV cards"
30 depends on VIDEO_CX231XX && DVB_CORE 29 depends on VIDEO_CX231XX && DVB_CORE
31 select VIDEOBUF_DVB 30 select VIDEOBUF_DVB
32 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE 31 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMISE
33 ---help--- 32
34 This adds support for DVB cards based on the 33 ---help---
35 Conexant cx231xx chips. 34 This adds support for DVB cards based on the
35 Conexant cx231xx chips.
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index a3c0565be1a9..6d6293f7d428 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -441,9 +441,9 @@ int cx23885_tuner_callback(void *priv, int component, int command, int arg)
441 case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP: 441 case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
442 /* Two identical tuners on two different i2c buses, 442 /* Two identical tuners on two different i2c buses,
443 * we need to reset the correct gpio. */ 443 * we need to reset the correct gpio. */
444 if (port->nr == 0) 444 if (port->nr == 1)
445 bitmask = 0x01; 445 bitmask = 0x01;
446 else if (port->nr == 1) 446 else if (port->nr == 2)
447 bitmask = 0x04; 447 bitmask = 0x04;
448 break; 448 break;
449 } 449 }
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index f48454ab3900..1dc070da8652 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -314,6 +314,7 @@ static struct zl10353_config dvico_fusionhdtv_xc3028 = {
314 .demod_address = 0x0f, 314 .demod_address = 0x0f,
315 .if2 = 45600, 315 .if2 = 45600,
316 .no_tuner = 1, 316 .no_tuner = 1,
317 .disable_i2c_gate_ctrl = 1,
317}; 318};
318 319
319static struct stv0900_config netup_stv0900_config = { 320static struct stv0900_config netup_stv0900_config = {
@@ -471,7 +472,7 @@ static int dvb_register(struct cx23885_tsport *port)
471 static struct xc2028_ctrl ctl = { 472 static struct xc2028_ctrl ctl = {
472 .fname = XC2028_DEFAULT_FIRMWARE, 473 .fname = XC2028_DEFAULT_FIRMWARE,
473 .max_len = 64, 474 .max_len = 64,
474 .scode_table = XC3028_FE_OREN538, 475 .demod = XC3028_FE_OREN538,
475 }; 476 };
476 477
477 fe = dvb_attach(xc2028_attach, 478 fe = dvb_attach(xc2028_attach,
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index b0195e8ee4d1..db2ac9a99acd 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -305,14 +305,17 @@ int ivtv_waitq(wait_queue_head_t *waitq)
305/* Generic utility functions */ 305/* Generic utility functions */
306int ivtv_msleep_timeout(unsigned int msecs, int intr) 306int ivtv_msleep_timeout(unsigned int msecs, int intr)
307{ 307{
308 int ret;
309 int timeout = msecs_to_jiffies(msecs); 308 int timeout = msecs_to_jiffies(msecs);
310 309
311 do { 310 do {
312 set_current_state(intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE); 311 set_current_state(intr ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
313 timeout = schedule_timeout(timeout); 312 timeout = schedule_timeout(timeout);
314 if (intr && (ret = signal_pending(current))) 313 if (intr) {
315 return ret; 314 int ret = signal_pending(current);
315
316 if (ret)
317 return ret;
318 }
316 } while (timeout); 319 } while (timeout);
317 return 0; 320 return 0;
318} 321}
diff --git a/drivers/media/video/ivtv/ivtv-gpio.c b/drivers/media/video/ivtv/ivtv-gpio.c
index ceb05bdcaf62..85ac707228e7 100644
--- a/drivers/media/video/ivtv/ivtv-gpio.c
+++ b/drivers/media/video/ivtv/ivtv-gpio.c
@@ -190,8 +190,8 @@ static int subdev_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt)
190 190
191 mask = itv->card->gpio_audio_detect.mask; 191 mask = itv->card->gpio_audio_detect.mask;
192 if (mask == 0 || (read_reg(IVTV_REG_GPIO_IN) & mask)) 192 if (mask == 0 || (read_reg(IVTV_REG_GPIO_IN) & mask))
193 vt->rxsubchans = V4L2_TUNER_MODE_STEREO | 193 vt->rxsubchans = V4L2_TUNER_SUB_STEREO |
194 V4L2_TUNER_MODE_LANG1 | V4L2_TUNER_MODE_LANG2; 194 V4L2_TUNER_SUB_LANG1 | V4L2_TUNER_SUB_LANG2;
195 else 195 else
196 vt->rxsubchans = V4L2_TUNER_SUB_MONO; 196 vt->rxsubchans = V4L2_TUNER_SUB_MONO;
197 return 0; 197 return 0;
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c
index 4a2d464f055e..c342a9fe983e 100644
--- a/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -180,7 +180,7 @@ int ivtv_set_speed(struct ivtv *itv, int speed)
180 180
181 /* Wait for any DMA to finish */ 181 /* Wait for any DMA to finish */
182 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 182 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
183 while (itv->i_flags & IVTV_F_I_DMA) { 183 while (test_bit(IVTV_F_I_DMA, &itv->i_flags)) {
184 got_sig = signal_pending(current); 184 got_sig = signal_pending(current);
185 if (got_sig) 185 if (got_sig)
186 break; 186 break;
@@ -1710,7 +1710,8 @@ static int ivtv_decoder_ioctls(struct file *filp, unsigned int cmd, void *arg)
1710 we are waiting unlock first and later lock again. */ 1710 we are waiting unlock first and later lock again. */
1711 mutex_unlock(&itv->serialize_lock); 1711 mutex_unlock(&itv->serialize_lock);
1712 prepare_to_wait(&itv->event_waitq, &wait, TASK_INTERRUPTIBLE); 1712 prepare_to_wait(&itv->event_waitq, &wait, TASK_INTERRUPTIBLE);
1713 if ((itv->i_flags & (IVTV_F_I_EV_DEC_STOPPED|IVTV_F_I_EV_VSYNC)) == 0) 1713 if (!test_bit(IVTV_F_I_EV_DEC_STOPPED, &itv->i_flags) &&
1714 !test_bit(IVTV_F_I_EV_VSYNC, &itv->i_flags))
1714 schedule(); 1715 schedule();
1715 finish_wait(&itv->event_waitq, &wait); 1716 finish_wait(&itv->event_waitq, &wait);
1716 mutex_lock(&itv->serialize_lock); 1717 mutex_lock(&itv->serialize_lock);
diff --git a/drivers/media/video/ivtv/ivtv-irq.c b/drivers/media/video/ivtv/ivtv-irq.c
index 01c14d2b381a..cd9db0bf33bf 100644
--- a/drivers/media/video/ivtv/ivtv-irq.c
+++ b/drivers/media/video/ivtv/ivtv-irq.c
@@ -196,7 +196,7 @@ static int stream_enc_dma_append(struct ivtv_stream *s, u32 data[CX2341X_MBOX_MA
196 bytes_needed, s->name); 196 bytes_needed, s->name);
197 return -1; 197 return -1;
198 } 198 }
199 if (rc && !s->buffers_stolen && (s->s_flags & IVTV_F_S_APPL_IO)) { 199 if (rc && !s->buffers_stolen && test_bit(IVTV_F_S_APPL_IO, &s->s_flags)) {
200 IVTV_WARN("All %s stream buffers are full. Dropping data.\n", s->name); 200 IVTV_WARN("All %s stream buffers are full. Dropping data.\n", s->name);
201 IVTV_WARN("Cause: the application is not reading fast enough.\n"); 201 IVTV_WARN("Cause: the application is not reading fast enough.\n");
202 } 202 }
diff --git a/drivers/media/video/ivtv/ivtv-yuv.c b/drivers/media/video/ivtv/ivtv-yuv.c
index 7912ed6b72ee..c0875378acc2 100644
--- a/drivers/media/video/ivtv/ivtv-yuv.c
+++ b/drivers/media/video/ivtv/ivtv-yuv.c
@@ -1063,7 +1063,8 @@ static int ivtv_yuv_udma_frame(struct ivtv *itv, struct ivtv_dma_frame *args)
1063 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 1063 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
1064 /* if no UDMA is pending and no UDMA is in progress, then the DMA 1064 /* if no UDMA is pending and no UDMA is in progress, then the DMA
1065 is finished */ 1065 is finished */
1066 while (itv->i_flags & (IVTV_F_I_UDMA_PENDING | IVTV_F_I_UDMA)) { 1066 while (test_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags) ||
1067 test_bit(IVTV_F_I_UDMA, &itv->i_flags)) {
1067 /* don't interrupt if the DMA is in progress but break off 1068 /* don't interrupt if the DMA is in progress but break off
1068 a still pending DMA. */ 1069 a still pending DMA. */
1069 got_sig = signal_pending(current); 1070 got_sig = signal_pending(current);
diff --git a/drivers/media/video/ivtv/ivtvfb.c b/drivers/media/video/ivtv/ivtvfb.c
index 66e6eb513076..fa6bb85cb4b0 100644
--- a/drivers/media/video/ivtv/ivtvfb.c
+++ b/drivers/media/video/ivtv/ivtvfb.c
@@ -298,7 +298,8 @@ static int ivtvfb_prep_dec_dma_to_device(struct ivtv *itv,
298 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE); 298 prepare_to_wait(&itv->dma_waitq, &wait, TASK_INTERRUPTIBLE);
299 /* if no UDMA is pending and no UDMA is in progress, then the DMA 299 /* if no UDMA is pending and no UDMA is in progress, then the DMA
300 is finished */ 300 is finished */
301 while (itv->i_flags & (IVTV_F_I_UDMA_PENDING | IVTV_F_I_UDMA)) { 301 while (test_bit(IVTV_F_I_UDMA_PENDING, &itv->i_flags) ||
302 test_bit(IVTV_F_I_UDMA, &itv->i_flags)) {
302 /* don't interrupt if the DMA is in progress but break off 303 /* don't interrupt if the DMA is in progress but break off
303 a still pending DMA. */ 304 a still pending DMA. */
304 got_sig = signal_pending(current); 305 got_sig = signal_pending(current);
diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
index c462b811e994..2d0781118eb0 100644
--- a/drivers/media/video/mx3_camera.c
+++ b/drivers/media/video/mx3_camera.c
@@ -1063,10 +1063,6 @@ static struct soc_camera_host_ops mx3_soc_camera_host_ops = {
1063 .owner = THIS_MODULE, 1063 .owner = THIS_MODULE,
1064 .add = mx3_camera_add_device, 1064 .add = mx3_camera_add_device,
1065 .remove = mx3_camera_remove_device, 1065 .remove = mx3_camera_remove_device,
1066#ifdef CONFIG_PM
1067 .suspend = mx3_camera_suspend,
1068 .resume = mx3_camera_resume,
1069#endif
1070 .set_crop = mx3_camera_set_crop, 1066 .set_crop = mx3_camera_set_crop,
1071 .set_fmt = mx3_camera_set_fmt, 1067 .set_fmt = mx3_camera_set_fmt,
1072 .try_fmt = mx3_camera_try_fmt, 1068 .try_fmt = mx3_camera_try_fmt,
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index d9d974a8f52a..add3395d3248 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1461,7 +1461,6 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
1461 return ret; 1461 return ret;
1462 } 1462 }
1463 1463
1464 usb_settoggle(hdw->usb_dev, 0 & 0xf, !(0 & USB_DIR_IN), 0);
1465 usb_clear_halt(hdw->usb_dev, usb_sndbulkpipe(hdw->usb_dev, 0 & 0x7f)); 1464 usb_clear_halt(hdw->usb_dev, usb_sndbulkpipe(hdw->usb_dev, 0 & 0x7f));
1466 1465
1467 pipe = usb_sndctrlpipe(hdw->usb_dev, 0); 1466 pipe = usb_sndctrlpipe(hdw->usb_dev, 0);
diff --git a/drivers/media/video/pwc/pwc-ctrl.c b/drivers/media/video/pwc/pwc-ctrl.c
index f9fbe02e0f69..50b415e07eda 100644
--- a/drivers/media/video/pwc/pwc-ctrl.c
+++ b/drivers/media/video/pwc/pwc-ctrl.c
@@ -159,35 +159,67 @@ static void pwc_set_image_buffer_size(struct pwc_device *pdev);
159 159
160/****************************************************************************/ 160/****************************************************************************/
161 161
162static int _send_control_msg(struct pwc_device *pdev,
163 u8 request, u16 value, int index, void *buf, int buflen, int timeout)
164{
165 int rc;
166 void *kbuf = NULL;
167
168 if (buflen) {
169 kbuf = kmalloc(buflen, GFP_KERNEL); /* not allowed on stack */
170 if (kbuf == NULL)
171 return -ENOMEM;
172 memcpy(kbuf, buf, buflen);
173 }
162 174
163#define SendControlMsg(request, value, buflen) \ 175 rc = usb_control_msg(pdev->udev, usb_sndctrlpipe(pdev->udev, 0),
164 usb_control_msg(pdev->udev, usb_sndctrlpipe(pdev->udev, 0), \ 176 request,
165 request, \ 177 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
166 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, \ 178 value,
167 value, \ 179 index,
168 pdev->vcinterface, \ 180 kbuf, buflen, timeout);
169 &buf, buflen, 500)
170 181
171#define RecvControlMsg(request, value, buflen) \ 182 kfree(kbuf);
172 usb_control_msg(pdev->udev, usb_rcvctrlpipe(pdev->udev, 0), \ 183 return rc;
173 request, \ 184}
174 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, \
175 value, \
176 pdev->vcinterface, \
177 &buf, buflen, 500)
178 185
186static int recv_control_msg(struct pwc_device *pdev,
187 u8 request, u16 value, void *buf, int buflen)
188{
189 int rc;
190 void *kbuf = kmalloc(buflen, GFP_KERNEL); /* not allowed on stack */
191
192 if (kbuf == NULL)
193 return -ENOMEM;
194
195 rc = usb_control_msg(pdev->udev, usb_rcvctrlpipe(pdev->udev, 0),
196 request,
197 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
198 value,
199 pdev->vcinterface,
200 kbuf, buflen, 500);
201 memcpy(buf, kbuf, buflen);
202 kfree(kbuf);
203 return rc;
204}
179 205
180static int send_video_command(struct usb_device *udev, int index, void *buf, int buflen) 206static inline int send_video_command(struct pwc_device *pdev,
207 int index, void *buf, int buflen)
181{ 208{
182 return usb_control_msg(udev, 209 return _send_control_msg(pdev,
183 usb_sndctrlpipe(udev, 0),
184 SET_EP_STREAM_CTL, 210 SET_EP_STREAM_CTL,
185 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
186 VIDEO_OUTPUT_CONTROL_FORMATTER, 211 VIDEO_OUTPUT_CONTROL_FORMATTER,
187 index, 212 index,
188 buf, buflen, 1000); 213 buf, buflen, 1000);
189} 214}
190 215
216static inline int send_control_msg(struct pwc_device *pdev,
217 u8 request, u16 value, void *buf, int buflen)
218{
219 return _send_control_msg(pdev,
220 request, value, pdev->vcinterface, buf, buflen, 500);
221}
222
191 223
192 224
193static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames) 225static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames)
@@ -224,7 +256,7 @@ static int set_video_mode_Nala(struct pwc_device *pdev, int size, int frames)
224 return -EINVAL; 256 return -EINVAL;
225 257
226 memcpy(buf, pEntry->mode, 3); 258 memcpy(buf, pEntry->mode, 3);
227 ret = send_video_command(pdev->udev, pdev->vendpoint, buf, 3); 259 ret = send_video_command(pdev, pdev->vendpoint, buf, 3);
228 if (ret < 0) { 260 if (ret < 0) {
229 PWC_DEBUG_MODULE("Failed to send video command... %d\n", ret); 261 PWC_DEBUG_MODULE("Failed to send video command... %d\n", ret);
230 return ret; 262 return ret;
@@ -285,7 +317,7 @@ static int set_video_mode_Timon(struct pwc_device *pdev, int size, int frames, i
285 memcpy(buf, pChoose->mode, 13); 317 memcpy(buf, pChoose->mode, 13);
286 if (snapshot) 318 if (snapshot)
287 buf[0] |= 0x80; 319 buf[0] |= 0x80;
288 ret = send_video_command(pdev->udev, pdev->vendpoint, buf, 13); 320 ret = send_video_command(pdev, pdev->vendpoint, buf, 13);
289 if (ret < 0) 321 if (ret < 0)
290 return ret; 322 return ret;
291 323
@@ -358,7 +390,7 @@ static int set_video_mode_Kiara(struct pwc_device *pdev, int size, int frames, i
358 buf[0] |= 0x80; 390 buf[0] |= 0x80;
359 391
360 /* Firmware bug: video endpoint is 5, but commands are sent to endpoint 4 */ 392 /* Firmware bug: video endpoint is 5, but commands are sent to endpoint 4 */
361 ret = send_video_command(pdev->udev, 4 /* pdev->vendpoint */, buf, 12); 393 ret = send_video_command(pdev, 4 /* pdev->vendpoint */, buf, 12);
362 if (ret < 0) 394 if (ret < 0)
363 return ret; 395 return ret;
364 396
@@ -530,7 +562,8 @@ int pwc_get_brightness(struct pwc_device *pdev)
530 char buf; 562 char buf;
531 int ret; 563 int ret;
532 564
533 ret = RecvControlMsg(GET_LUM_CTL, BRIGHTNESS_FORMATTER, 1); 565 ret = recv_control_msg(pdev,
566 GET_LUM_CTL, BRIGHTNESS_FORMATTER, &buf, sizeof(buf));
534 if (ret < 0) 567 if (ret < 0)
535 return ret; 568 return ret;
536 return buf; 569 return buf;
@@ -545,7 +578,8 @@ int pwc_set_brightness(struct pwc_device *pdev, int value)
545 if (value > 0xffff) 578 if (value > 0xffff)
546 value = 0xffff; 579 value = 0xffff;
547 buf = (value >> 9) & 0x7f; 580 buf = (value >> 9) & 0x7f;
548 return SendControlMsg(SET_LUM_CTL, BRIGHTNESS_FORMATTER, 1); 581 return send_control_msg(pdev,
582 SET_LUM_CTL, BRIGHTNESS_FORMATTER, &buf, sizeof(buf));
549} 583}
550 584
551/* CONTRAST */ 585/* CONTRAST */
@@ -555,7 +589,8 @@ int pwc_get_contrast(struct pwc_device *pdev)
555 char buf; 589 char buf;
556 int ret; 590 int ret;
557 591
558 ret = RecvControlMsg(GET_LUM_CTL, CONTRAST_FORMATTER, 1); 592 ret = recv_control_msg(pdev,
593 GET_LUM_CTL, CONTRAST_FORMATTER, &buf, sizeof(buf));
559 if (ret < 0) 594 if (ret < 0)
560 return ret; 595 return ret;
561 return buf; 596 return buf;
@@ -570,7 +605,8 @@ int pwc_set_contrast(struct pwc_device *pdev, int value)
570 if (value > 0xffff) 605 if (value > 0xffff)
571 value = 0xffff; 606 value = 0xffff;
572 buf = (value >> 10) & 0x3f; 607 buf = (value >> 10) & 0x3f;
573 return SendControlMsg(SET_LUM_CTL, CONTRAST_FORMATTER, 1); 608 return send_control_msg(pdev,
609 SET_LUM_CTL, CONTRAST_FORMATTER, &buf, sizeof(buf));
574} 610}
575 611
576/* GAMMA */ 612/* GAMMA */
@@ -580,7 +616,8 @@ int pwc_get_gamma(struct pwc_device *pdev)
580 char buf; 616 char buf;
581 int ret; 617 int ret;
582 618
583 ret = RecvControlMsg(GET_LUM_CTL, GAMMA_FORMATTER, 1); 619 ret = recv_control_msg(pdev,
620 GET_LUM_CTL, GAMMA_FORMATTER, &buf, sizeof(buf));
584 if (ret < 0) 621 if (ret < 0)
585 return ret; 622 return ret;
586 return buf; 623 return buf;
@@ -595,7 +632,8 @@ int pwc_set_gamma(struct pwc_device *pdev, int value)
595 if (value > 0xffff) 632 if (value > 0xffff)
596 value = 0xffff; 633 value = 0xffff;
597 buf = (value >> 11) & 0x1f; 634 buf = (value >> 11) & 0x1f;
598 return SendControlMsg(SET_LUM_CTL, GAMMA_FORMATTER, 1); 635 return send_control_msg(pdev,
636 SET_LUM_CTL, GAMMA_FORMATTER, &buf, sizeof(buf));
599} 637}
600 638
601 639
@@ -613,7 +651,8 @@ int pwc_get_saturation(struct pwc_device *pdev, int *value)
613 saturation_register = SATURATION_MODE_FORMATTER2; 651 saturation_register = SATURATION_MODE_FORMATTER2;
614 else 652 else
615 saturation_register = SATURATION_MODE_FORMATTER1; 653 saturation_register = SATURATION_MODE_FORMATTER1;
616 ret = RecvControlMsg(GET_CHROM_CTL, saturation_register, 1); 654 ret = recv_control_msg(pdev,
655 GET_CHROM_CTL, saturation_register, &buf, sizeof(buf));
617 if (ret < 0) 656 if (ret < 0)
618 return ret; 657 return ret;
619 *value = (signed)buf; 658 *value = (signed)buf;
@@ -636,7 +675,8 @@ int pwc_set_saturation(struct pwc_device *pdev, int value)
636 saturation_register = SATURATION_MODE_FORMATTER2; 675 saturation_register = SATURATION_MODE_FORMATTER2;
637 else 676 else
638 saturation_register = SATURATION_MODE_FORMATTER1; 677 saturation_register = SATURATION_MODE_FORMATTER1;
639 return SendControlMsg(SET_CHROM_CTL, saturation_register, 1); 678 return send_control_msg(pdev,
679 SET_CHROM_CTL, saturation_register, &buf, sizeof(buf));
640} 680}
641 681
642/* AGC */ 682/* AGC */
@@ -651,7 +691,8 @@ int pwc_set_agc(struct pwc_device *pdev, int mode, int value)
651 else 691 else
652 buf = 0xff; /* fixed */ 692 buf = 0xff; /* fixed */
653 693
654 ret = SendControlMsg(SET_LUM_CTL, AGC_MODE_FORMATTER, 1); 694 ret = send_control_msg(pdev,
695 SET_LUM_CTL, AGC_MODE_FORMATTER, &buf, sizeof(buf));
655 696
656 if (!mode && ret >= 0) { 697 if (!mode && ret >= 0) {
657 if (value < 0) 698 if (value < 0)
@@ -659,7 +700,8 @@ int pwc_set_agc(struct pwc_device *pdev, int mode, int value)
659 if (value > 0xffff) 700 if (value > 0xffff)
660 value = 0xffff; 701 value = 0xffff;
661 buf = (value >> 10) & 0x3F; 702 buf = (value >> 10) & 0x3F;
662 ret = SendControlMsg(SET_LUM_CTL, PRESET_AGC_FORMATTER, 1); 703 ret = send_control_msg(pdev,
704 SET_LUM_CTL, PRESET_AGC_FORMATTER, &buf, sizeof(buf));
663 } 705 }
664 if (ret < 0) 706 if (ret < 0)
665 return ret; 707 return ret;
@@ -671,12 +713,14 @@ int pwc_get_agc(struct pwc_device *pdev, int *value)
671 unsigned char buf; 713 unsigned char buf;
672 int ret; 714 int ret;
673 715
674 ret = RecvControlMsg(GET_LUM_CTL, AGC_MODE_FORMATTER, 1); 716 ret = recv_control_msg(pdev,
717 GET_LUM_CTL, AGC_MODE_FORMATTER, &buf, sizeof(buf));
675 if (ret < 0) 718 if (ret < 0)
676 return ret; 719 return ret;
677 720
678 if (buf != 0) { /* fixed */ 721 if (buf != 0) { /* fixed */
679 ret = RecvControlMsg(GET_LUM_CTL, PRESET_AGC_FORMATTER, 1); 722 ret = recv_control_msg(pdev,
723 GET_LUM_CTL, PRESET_AGC_FORMATTER, &buf, sizeof(buf));
680 if (ret < 0) 724 if (ret < 0)
681 return ret; 725 return ret;
682 if (buf > 0x3F) 726 if (buf > 0x3F)
@@ -684,7 +728,8 @@ int pwc_get_agc(struct pwc_device *pdev, int *value)
684 *value = (buf << 10); 728 *value = (buf << 10);
685 } 729 }
686 else { /* auto */ 730 else { /* auto */
687 ret = RecvControlMsg(GET_STATUS_CTL, READ_AGC_FORMATTER, 1); 731 ret = recv_control_msg(pdev,
732 GET_STATUS_CTL, READ_AGC_FORMATTER, &buf, sizeof(buf));
688 if (ret < 0) 733 if (ret < 0)
689 return ret; 734 return ret;
690 /* Gah... this value ranges from 0x00 ... 0x9F */ 735 /* Gah... this value ranges from 0x00 ... 0x9F */
@@ -707,7 +752,8 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value)
707 else 752 else
708 buf[0] = 0xff; /* fixed */ 753 buf[0] = 0xff; /* fixed */
709 754
710 ret = SendControlMsg(SET_LUM_CTL, SHUTTER_MODE_FORMATTER, 1); 755 ret = send_control_msg(pdev,
756 SET_LUM_CTL, SHUTTER_MODE_FORMATTER, &buf, sizeof(buf));
711 757
712 if (!mode && ret >= 0) { 758 if (!mode && ret >= 0) {
713 if (value < 0) 759 if (value < 0)
@@ -726,7 +772,9 @@ int pwc_set_shutter_speed(struct pwc_device *pdev, int mode, int value)
726 buf[0] = value >> 8; 772 buf[0] = value >> 8;
727 } 773 }
728 774
729 ret = SendControlMsg(SET_LUM_CTL, PRESET_SHUTTER_FORMATTER, 2); 775 ret = send_control_msg(pdev,
776 SET_LUM_CTL, PRESET_SHUTTER_FORMATTER,
777 &buf, sizeof(buf));
730 } 778 }
731 return ret; 779 return ret;
732} 780}
@@ -737,7 +785,8 @@ int pwc_get_shutter_speed(struct pwc_device *pdev, int *value)
737 unsigned char buf[2]; 785 unsigned char buf[2];
738 int ret; 786 int ret;
739 787
740 ret = RecvControlMsg(GET_STATUS_CTL, READ_SHUTTER_FORMATTER, 2); 788 ret = recv_control_msg(pdev,
789 GET_STATUS_CTL, READ_SHUTTER_FORMATTER, &buf, sizeof(buf));
741 if (ret < 0) 790 if (ret < 0)
742 return ret; 791 return ret;
743 *value = buf[0] + (buf[1] << 8); 792 *value = buf[0] + (buf[1] << 8);
@@ -764,7 +813,9 @@ int pwc_camera_power(struct pwc_device *pdev, int power)
764 buf = 0x00; /* active */ 813 buf = 0x00; /* active */
765 else 814 else
766 buf = 0xFF; /* power save */ 815 buf = 0xFF; /* power save */
767 return SendControlMsg(SET_STATUS_CTL, SET_POWER_SAVE_MODE_FORMATTER, 1); 816 return send_control_msg(pdev,
817 SET_STATUS_CTL, SET_POWER_SAVE_MODE_FORMATTER,
818 &buf, sizeof(buf));
768} 819}
769 820
770 821
@@ -773,20 +824,20 @@ int pwc_camera_power(struct pwc_device *pdev, int power)
773 824
774int pwc_restore_user(struct pwc_device *pdev) 825int pwc_restore_user(struct pwc_device *pdev)
775{ 826{
776 char buf; /* dummy */ 827 return send_control_msg(pdev,
777 return SendControlMsg(SET_STATUS_CTL, RESTORE_USER_DEFAULTS_FORMATTER, 0); 828 SET_STATUS_CTL, RESTORE_USER_DEFAULTS_FORMATTER, NULL, 0);
778} 829}
779 830
780int pwc_save_user(struct pwc_device *pdev) 831int pwc_save_user(struct pwc_device *pdev)
781{ 832{
782 char buf; /* dummy */ 833 return send_control_msg(pdev,
783 return SendControlMsg(SET_STATUS_CTL, SAVE_USER_DEFAULTS_FORMATTER, 0); 834 SET_STATUS_CTL, SAVE_USER_DEFAULTS_FORMATTER, NULL, 0);
784} 835}
785 836
786int pwc_restore_factory(struct pwc_device *pdev) 837int pwc_restore_factory(struct pwc_device *pdev)
787{ 838{
788 char buf; /* dummy */ 839 return send_control_msg(pdev,
789 return SendControlMsg(SET_STATUS_CTL, RESTORE_FACTORY_DEFAULTS_FORMATTER, 0); 840 SET_STATUS_CTL, RESTORE_FACTORY_DEFAULTS_FORMATTER, NULL, 0);
790} 841}
791 842
792 /* ************************************************* */ 843 /* ************************************************* */
@@ -814,7 +865,8 @@ int pwc_set_awb(struct pwc_device *pdev, int mode)
814 865
815 buf = mode & 0x07; /* just the lowest three bits */ 866 buf = mode & 0x07; /* just the lowest three bits */
816 867
817 ret = SendControlMsg(SET_CHROM_CTL, WB_MODE_FORMATTER, 1); 868 ret = send_control_msg(pdev,
869 SET_CHROM_CTL, WB_MODE_FORMATTER, &buf, sizeof(buf));
818 870
819 if (ret < 0) 871 if (ret < 0)
820 return ret; 872 return ret;
@@ -826,7 +878,8 @@ int pwc_get_awb(struct pwc_device *pdev)
826 unsigned char buf; 878 unsigned char buf;
827 int ret; 879 int ret;
828 880
829 ret = RecvControlMsg(GET_CHROM_CTL, WB_MODE_FORMATTER, 1); 881 ret = recv_control_msg(pdev,
882 GET_CHROM_CTL, WB_MODE_FORMATTER, &buf, sizeof(buf));
830 883
831 if (ret < 0) 884 if (ret < 0)
832 return ret; 885 return ret;
@@ -843,7 +896,9 @@ int pwc_set_red_gain(struct pwc_device *pdev, int value)
843 value = 0xffff; 896 value = 0xffff;
844 /* only the msb is considered */ 897 /* only the msb is considered */
845 buf = value >> 8; 898 buf = value >> 8;
846 return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1); 899 return send_control_msg(pdev,
900 SET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER,
901 &buf, sizeof(buf));
847} 902}
848 903
849int pwc_get_red_gain(struct pwc_device *pdev, int *value) 904int pwc_get_red_gain(struct pwc_device *pdev, int *value)
@@ -851,7 +906,9 @@ int pwc_get_red_gain(struct pwc_device *pdev, int *value)
851 unsigned char buf; 906 unsigned char buf;
852 int ret; 907 int ret;
853 908
854 ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER, 1); 909 ret = recv_control_msg(pdev,
910 GET_CHROM_CTL, PRESET_MANUAL_RED_GAIN_FORMATTER,
911 &buf, sizeof(buf));
855 if (ret < 0) 912 if (ret < 0)
856 return ret; 913 return ret;
857 *value = buf << 8; 914 *value = buf << 8;
@@ -869,7 +926,9 @@ int pwc_set_blue_gain(struct pwc_device *pdev, int value)
869 value = 0xffff; 926 value = 0xffff;
870 /* only the msb is considered */ 927 /* only the msb is considered */
871 buf = value >> 8; 928 buf = value >> 8;
872 return SendControlMsg(SET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1); 929 return send_control_msg(pdev,
930 SET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER,
931 &buf, sizeof(buf));
873} 932}
874 933
875int pwc_get_blue_gain(struct pwc_device *pdev, int *value) 934int pwc_get_blue_gain(struct pwc_device *pdev, int *value)
@@ -877,7 +936,9 @@ int pwc_get_blue_gain(struct pwc_device *pdev, int *value)
877 unsigned char buf; 936 unsigned char buf;
878 int ret; 937 int ret;
879 938
880 ret = RecvControlMsg(GET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER, 1); 939 ret = recv_control_msg(pdev,
940 GET_CHROM_CTL, PRESET_MANUAL_BLUE_GAIN_FORMATTER,
941 &buf, sizeof(buf));
881 if (ret < 0) 942 if (ret < 0)
882 return ret; 943 return ret;
883 *value = buf << 8; 944 *value = buf << 8;
@@ -894,7 +955,8 @@ static int pwc_read_red_gain(struct pwc_device *pdev, int *value)
894 unsigned char buf; 955 unsigned char buf;
895 int ret; 956 int ret;
896 957
897 ret = RecvControlMsg(GET_STATUS_CTL, READ_RED_GAIN_FORMATTER, 1); 958 ret = recv_control_msg(pdev,
959 GET_STATUS_CTL, READ_RED_GAIN_FORMATTER, &buf, sizeof(buf));
898 if (ret < 0) 960 if (ret < 0)
899 return ret; 961 return ret;
900 *value = buf << 8; 962 *value = buf << 8;
@@ -906,7 +968,8 @@ static int pwc_read_blue_gain(struct pwc_device *pdev, int *value)
906 unsigned char buf; 968 unsigned char buf;
907 int ret; 969 int ret;
908 970
909 ret = RecvControlMsg(GET_STATUS_CTL, READ_BLUE_GAIN_FORMATTER, 1); 971 ret = recv_control_msg(pdev,
972 GET_STATUS_CTL, READ_BLUE_GAIN_FORMATTER, &buf, sizeof(buf));
910 if (ret < 0) 973 if (ret < 0)
911 return ret; 974 return ret;
912 *value = buf << 8; 975 *value = buf << 8;
@@ -920,7 +983,8 @@ static int pwc_set_wb_speed(struct pwc_device *pdev, int speed)
920 983
921 /* useful range is 0x01..0x20 */ 984 /* useful range is 0x01..0x20 */
922 buf = speed / 0x7f0; 985 buf = speed / 0x7f0;
923 return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1); 986 return send_control_msg(pdev,
987 SET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, &buf, sizeof(buf));
924} 988}
925 989
926static int pwc_get_wb_speed(struct pwc_device *pdev, int *value) 990static int pwc_get_wb_speed(struct pwc_device *pdev, int *value)
@@ -928,7 +992,8 @@ static int pwc_get_wb_speed(struct pwc_device *pdev, int *value)
928 unsigned char buf; 992 unsigned char buf;
929 int ret; 993 int ret;
930 994
931 ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, 1); 995 ret = recv_control_msg(pdev,
996 GET_CHROM_CTL, AWB_CONTROL_SPEED_FORMATTER, &buf, sizeof(buf));
932 if (ret < 0) 997 if (ret < 0)
933 return ret; 998 return ret;
934 *value = buf * 0x7f0; 999 *value = buf * 0x7f0;
@@ -942,7 +1007,8 @@ static int pwc_set_wb_delay(struct pwc_device *pdev, int delay)
942 1007
943 /* useful range is 0x01..0x3F */ 1008 /* useful range is 0x01..0x3F */
944 buf = (delay >> 10); 1009 buf = (delay >> 10);
945 return SendControlMsg(SET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1); 1010 return send_control_msg(pdev,
1011 SET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, &buf, sizeof(buf));
946} 1012}
947 1013
948static int pwc_get_wb_delay(struct pwc_device *pdev, int *value) 1014static int pwc_get_wb_delay(struct pwc_device *pdev, int *value)
@@ -950,7 +1016,8 @@ static int pwc_get_wb_delay(struct pwc_device *pdev, int *value)
950 unsigned char buf; 1016 unsigned char buf;
951 int ret; 1017 int ret;
952 1018
953 ret = RecvControlMsg(GET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, 1); 1019 ret = recv_control_msg(pdev,
1020 GET_CHROM_CTL, AWB_CONTROL_DELAY_FORMATTER, &buf, sizeof(buf));
954 if (ret < 0) 1021 if (ret < 0)
955 return ret; 1022 return ret;
956 *value = buf << 10; 1023 *value = buf << 10;
@@ -978,7 +1045,8 @@ int pwc_set_leds(struct pwc_device *pdev, int on_value, int off_value)
978 buf[0] = on_value; 1045 buf[0] = on_value;
979 buf[1] = off_value; 1046 buf[1] = off_value;
980 1047
981 return SendControlMsg(SET_STATUS_CTL, LED_FORMATTER, 2); 1048 return send_control_msg(pdev,
1049 SET_STATUS_CTL, LED_FORMATTER, &buf, sizeof(buf));
982} 1050}
983 1051
984static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value) 1052static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
@@ -992,7 +1060,8 @@ static int pwc_get_leds(struct pwc_device *pdev, int *on_value, int *off_value)
992 return 0; 1060 return 0;
993 } 1061 }
994 1062
995 ret = RecvControlMsg(GET_STATUS_CTL, LED_FORMATTER, 2); 1063 ret = recv_control_msg(pdev,
1064 GET_STATUS_CTL, LED_FORMATTER, &buf, sizeof(buf));
996 if (ret < 0) 1065 if (ret < 0)
997 return ret; 1066 return ret;
998 *on_value = buf[0] * 100; 1067 *on_value = buf[0] * 100;
@@ -1009,7 +1078,8 @@ int pwc_set_contour(struct pwc_device *pdev, int contour)
1009 buf = 0xff; /* auto contour on */ 1078 buf = 0xff; /* auto contour on */
1010 else 1079 else
1011 buf = 0x0; /* auto contour off */ 1080 buf = 0x0; /* auto contour off */
1012 ret = SendControlMsg(SET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1); 1081 ret = send_control_msg(pdev,
1082 SET_LUM_CTL, AUTO_CONTOUR_FORMATTER, &buf, sizeof(buf));
1013 if (ret < 0) 1083 if (ret < 0)
1014 return ret; 1084 return ret;
1015 1085
@@ -1019,7 +1089,8 @@ int pwc_set_contour(struct pwc_device *pdev, int contour)
1019 contour = 0xffff; 1089 contour = 0xffff;
1020 1090
1021 buf = (contour >> 10); /* contour preset is [0..3f] */ 1091 buf = (contour >> 10); /* contour preset is [0..3f] */
1022 ret = SendControlMsg(SET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1); 1092 ret = send_control_msg(pdev,
1093 SET_LUM_CTL, PRESET_CONTOUR_FORMATTER, &buf, sizeof(buf));
1023 if (ret < 0) 1094 if (ret < 0)
1024 return ret; 1095 return ret;
1025 return 0; 1096 return 0;
@@ -1030,13 +1101,16 @@ int pwc_get_contour(struct pwc_device *pdev, int *contour)
1030 unsigned char buf; 1101 unsigned char buf;
1031 int ret; 1102 int ret;
1032 1103
1033 ret = RecvControlMsg(GET_LUM_CTL, AUTO_CONTOUR_FORMATTER, 1); 1104 ret = recv_control_msg(pdev,
1105 GET_LUM_CTL, AUTO_CONTOUR_FORMATTER, &buf, sizeof(buf));
1034 if (ret < 0) 1106 if (ret < 0)
1035 return ret; 1107 return ret;
1036 1108
1037 if (buf == 0) { 1109 if (buf == 0) {
1038 /* auto mode off, query current preset value */ 1110 /* auto mode off, query current preset value */
1039 ret = RecvControlMsg(GET_LUM_CTL, PRESET_CONTOUR_FORMATTER, 1); 1111 ret = recv_control_msg(pdev,
1112 GET_LUM_CTL, PRESET_CONTOUR_FORMATTER,
1113 &buf, sizeof(buf));
1040 if (ret < 0) 1114 if (ret < 0)
1041 return ret; 1115 return ret;
1042 *contour = buf << 10; 1116 *contour = buf << 10;
@@ -1055,7 +1129,9 @@ int pwc_set_backlight(struct pwc_device *pdev, int backlight)
1055 buf = 0xff; 1129 buf = 0xff;
1056 else 1130 else
1057 buf = 0x0; 1131 buf = 0x0;
1058 return SendControlMsg(SET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1); 1132 return send_control_msg(pdev,
1133 SET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER,
1134 &buf, sizeof(buf));
1059} 1135}
1060 1136
1061int pwc_get_backlight(struct pwc_device *pdev, int *backlight) 1137int pwc_get_backlight(struct pwc_device *pdev, int *backlight)
@@ -1063,7 +1139,9 @@ int pwc_get_backlight(struct pwc_device *pdev, int *backlight)
1063 int ret; 1139 int ret;
1064 unsigned char buf; 1140 unsigned char buf;
1065 1141
1066 ret = RecvControlMsg(GET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER, 1); 1142 ret = recv_control_msg(pdev,
1143 GET_LUM_CTL, BACK_LIGHT_COMPENSATION_FORMATTER,
1144 &buf, sizeof(buf));
1067 if (ret < 0) 1145 if (ret < 0)
1068 return ret; 1146 return ret;
1069 *backlight = !!buf; 1147 *backlight = !!buf;
@@ -1078,7 +1156,8 @@ int pwc_set_colour_mode(struct pwc_device *pdev, int colour)
1078 buf = 0xff; 1156 buf = 0xff;
1079 else 1157 else
1080 buf = 0x0; 1158 buf = 0x0;
1081 return SendControlMsg(SET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1); 1159 return send_control_msg(pdev,
1160 SET_CHROM_CTL, COLOUR_MODE_FORMATTER, &buf, sizeof(buf));
1082} 1161}
1083 1162
1084int pwc_get_colour_mode(struct pwc_device *pdev, int *colour) 1163int pwc_get_colour_mode(struct pwc_device *pdev, int *colour)
@@ -1086,7 +1165,8 @@ int pwc_get_colour_mode(struct pwc_device *pdev, int *colour)
1086 int ret; 1165 int ret;
1087 unsigned char buf; 1166 unsigned char buf;
1088 1167
1089 ret = RecvControlMsg(GET_CHROM_CTL, COLOUR_MODE_FORMATTER, 1); 1168 ret = recv_control_msg(pdev,
1169 GET_CHROM_CTL, COLOUR_MODE_FORMATTER, &buf, sizeof(buf));
1090 if (ret < 0) 1170 if (ret < 0)
1091 return ret; 1171 return ret;
1092 *colour = !!buf; 1172 *colour = !!buf;
@@ -1102,7 +1182,8 @@ int pwc_set_flicker(struct pwc_device *pdev, int flicker)
1102 buf = 0xff; 1182 buf = 0xff;
1103 else 1183 else
1104 buf = 0x0; 1184 buf = 0x0;
1105 return SendControlMsg(SET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1); 1185 return send_control_msg(pdev,
1186 SET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, &buf, sizeof(buf));
1106} 1187}
1107 1188
1108int pwc_get_flicker(struct pwc_device *pdev, int *flicker) 1189int pwc_get_flicker(struct pwc_device *pdev, int *flicker)
@@ -1110,7 +1191,8 @@ int pwc_get_flicker(struct pwc_device *pdev, int *flicker)
1110 int ret; 1191 int ret;
1111 unsigned char buf; 1192 unsigned char buf;
1112 1193
1113 ret = RecvControlMsg(GET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, 1); 1194 ret = recv_control_msg(pdev,
1195 GET_LUM_CTL, FLICKERLESS_MODE_FORMATTER, &buf, sizeof(buf));
1114 if (ret < 0) 1196 if (ret < 0)
1115 return ret; 1197 return ret;
1116 *flicker = !!buf; 1198 *flicker = !!buf;
@@ -1126,7 +1208,9 @@ int pwc_set_dynamic_noise(struct pwc_device *pdev, int noise)
1126 if (noise > 3) 1208 if (noise > 3)
1127 noise = 3; 1209 noise = 3;
1128 buf = noise; 1210 buf = noise;
1129 return SendControlMsg(SET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1); 1211 return send_control_msg(pdev,
1212 SET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER,
1213 &buf, sizeof(buf));
1130} 1214}
1131 1215
1132int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise) 1216int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise)
@@ -1134,7 +1218,9 @@ int pwc_get_dynamic_noise(struct pwc_device *pdev, int *noise)
1134 int ret; 1218 int ret;
1135 unsigned char buf; 1219 unsigned char buf;
1136 1220
1137 ret = RecvControlMsg(GET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER, 1); 1221 ret = recv_control_msg(pdev,
1222 GET_LUM_CTL, DYNAMIC_NOISE_CONTROL_FORMATTER,
1223 &buf, sizeof(buf));
1138 if (ret < 0) 1224 if (ret < 0)
1139 return ret; 1225 return ret;
1140 *noise = buf; 1226 *noise = buf;
@@ -1146,7 +1232,8 @@ static int _pwc_mpt_reset(struct pwc_device *pdev, int flags)
1146 unsigned char buf; 1232 unsigned char buf;
1147 1233
1148 buf = flags & 0x03; // only lower two bits are currently used 1234 buf = flags & 0x03; // only lower two bits are currently used
1149 return SendControlMsg(SET_MPT_CTL, PT_RESET_CONTROL_FORMATTER, 1); 1235 return send_control_msg(pdev,
1236 SET_MPT_CTL, PT_RESET_CONTROL_FORMATTER, &buf, sizeof(buf));
1150} 1237}
1151 1238
1152int pwc_mpt_reset(struct pwc_device *pdev, int flags) 1239int pwc_mpt_reset(struct pwc_device *pdev, int flags)
@@ -1175,7 +1262,8 @@ static int _pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt)
1175 buf[1] = (pan >> 8) & 0xFF; 1262 buf[1] = (pan >> 8) & 0xFF;
1176 buf[2] = tilt & 0xFF; 1263 buf[2] = tilt & 0xFF;
1177 buf[3] = (tilt >> 8) & 0xFF; 1264 buf[3] = (tilt >> 8) & 0xFF;
1178 return SendControlMsg(SET_MPT_CTL, PT_RELATIVE_CONTROL_FORMATTER, 4); 1265 return send_control_msg(pdev,
1266 SET_MPT_CTL, PT_RELATIVE_CONTROL_FORMATTER, &buf, sizeof(buf));
1179} 1267}
1180 1268
1181int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt) 1269int pwc_mpt_set_angle(struct pwc_device *pdev, int pan, int tilt)
@@ -1211,7 +1299,8 @@ static int pwc_mpt_get_status(struct pwc_device *pdev, struct pwc_mpt_status *st
1211 int ret; 1299 int ret;
1212 unsigned char buf[5]; 1300 unsigned char buf[5];
1213 1301
1214 ret = RecvControlMsg(GET_MPT_CTL, PT_STATUS_FORMATTER, 5); 1302 ret = recv_control_msg(pdev,
1303 GET_MPT_CTL, PT_STATUS_FORMATTER, &buf, sizeof(buf));
1215 if (ret < 0) 1304 if (ret < 0)
1216 return ret; 1305 return ret;
1217 status->status = buf[0] & 0x7; // 3 bits are used for reporting 1306 status->status = buf[0] & 0x7; // 3 bits are used for reporting
@@ -1233,7 +1322,8 @@ int pwc_get_cmos_sensor(struct pwc_device *pdev, int *sensor)
1233 else 1322 else
1234 request = SENSOR_TYPE_FORMATTER2; 1323 request = SENSOR_TYPE_FORMATTER2;
1235 1324
1236 ret = RecvControlMsg(GET_STATUS_CTL, request, 1); 1325 ret = recv_control_msg(pdev,
1326 GET_STATUS_CTL, request, &buf, sizeof(buf));
1237 if (ret < 0) 1327 if (ret < 0)
1238 return ret; 1328 return ret;
1239 if (pdev->type < 675) 1329 if (pdev->type < 675)
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c
index 5202cadb2aae..30f4698be90a 100644
--- a/drivers/media/video/s2255drv.c
+++ b/drivers/media/video/s2255drv.c
@@ -1237,6 +1237,7 @@ static int s2255_set_mode(struct s2255_dev *dev, unsigned long chn,
1237 buffer[1] = (u32) chn_rev; 1237 buffer[1] = (u32) chn_rev;
1238 buffer[2] = CMD_SET_MODE; 1238 buffer[2] = CMD_SET_MODE;
1239 memcpy(&buffer[3], &dev->mode[chn], sizeof(struct s2255_mode)); 1239 memcpy(&buffer[3], &dev->mode[chn], sizeof(struct s2255_mode));
1240 dev->setmode_ready[chn] = 0;
1240 res = s2255_write_config(dev->udev, (unsigned char *)buffer, 512); 1241 res = s2255_write_config(dev->udev, (unsigned char *)buffer, 512);
1241 if (debug) 1242 if (debug)
1242 dump_verify_mode(dev, mode); 1243 dump_verify_mode(dev, mode);
@@ -1245,7 +1246,6 @@ static int s2255_set_mode(struct s2255_dev *dev, unsigned long chn,
1245 1246
1246 /* wait at least 3 frames before continuing */ 1247 /* wait at least 3 frames before continuing */
1247 if (mode->restart) { 1248 if (mode->restart) {
1248 dev->setmode_ready[chn] = 0;
1249 wait_event_timeout(dev->wait_setmode[chn], 1249 wait_event_timeout(dev->wait_setmode[chn],
1250 (dev->setmode_ready[chn] != 0), 1250 (dev->setmode_ready[chn] != 0),
1251 msecs_to_jiffies(S2255_SETMODE_TIMEOUT)); 1251 msecs_to_jiffies(S2255_SETMODE_TIMEOUT));
diff --git a/drivers/media/video/saa5246a.c b/drivers/media/video/saa5246a.c
index da47b2f05288..155804b061e9 100644
--- a/drivers/media/video/saa5246a.c
+++ b/drivers/media/video/saa5246a.c
@@ -1092,9 +1092,8 @@ static int saa5246a_probe(struct i2c_client *client,
1092 /* Register it */ 1092 /* Register it */
1093 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1); 1093 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1);
1094 if (err < 0) { 1094 if (err < 0) {
1095 kfree(t);
1096 video_device_release(t->vdev); 1095 video_device_release(t->vdev);
1097 t->vdev = NULL; 1096 kfree(t);
1098 return err; 1097 return err;
1099 } 1098 }
1100 return 0; 1099 return 0;
diff --git a/drivers/media/video/saa5249.c b/drivers/media/video/saa5249.c
index 48b27fe48087..271d6e931b75 100644
--- a/drivers/media/video/saa5249.c
+++ b/drivers/media/video/saa5249.c
@@ -598,6 +598,7 @@ static int saa5249_probe(struct i2c_client *client,
598 /* Now create a video4linux device */ 598 /* Now create a video4linux device */
599 t->vdev = video_device_alloc(); 599 t->vdev = video_device_alloc();
600 if (t->vdev == NULL) { 600 if (t->vdev == NULL) {
601 kfree(t);
601 kfree(client); 602 kfree(client);
602 return -ENOMEM; 603 return -ENOMEM;
603 } 604 }
@@ -617,9 +618,8 @@ static int saa5249_probe(struct i2c_client *client,
617 /* Register it */ 618 /* Register it */
618 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1); 619 err = video_register_device(t->vdev, VFL_TYPE_VTX, -1);
619 if (err < 0) { 620 if (err < 0) {
620 kfree(t);
621 video_device_release(t->vdev); 621 video_device_release(t->vdev);
622 t->vdev = NULL; 622 kfree(t);
623 return err; 623 return err;
624 } 624 }
625 return 0; 625 return 0;
diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
index 399412d7f020..507dc85646b2 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -1726,14 +1726,17 @@ static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
1726static int __uvc_resume(struct usb_interface *intf, int reset) 1726static int __uvc_resume(struct usb_interface *intf, int reset)
1727{ 1727{
1728 struct uvc_device *dev = usb_get_intfdata(intf); 1728 struct uvc_device *dev = usb_get_intfdata(intf);
1729 int ret;
1730 1729
1731 uvc_trace(UVC_TRACE_SUSPEND, "Resuming interface %u\n", 1730 uvc_trace(UVC_TRACE_SUSPEND, "Resuming interface %u\n",
1732 intf->cur_altsetting->desc.bInterfaceNumber); 1731 intf->cur_altsetting->desc.bInterfaceNumber);
1733 1732
1734 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) { 1733 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) {
1735 if (reset && (ret = uvc_ctrl_resume_device(dev)) < 0) 1734 if (reset) {
1736 return ret; 1735 int ret = uvc_ctrl_resume_device(dev);
1736
1737 if (ret < 0)
1738 return ret;
1739 }
1737 1740
1738 return uvc_status_resume(dev); 1741 return uvc_status_resume(dev);
1739 } 1742 }
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
index a95e17329c5b..6ce974d7362f 100644
--- a/drivers/media/video/uvc/uvc_video.c
+++ b/drivers/media/video/uvc/uvc_video.c
@@ -742,7 +742,7 @@ static int uvc_alloc_urb_buffers(struct uvc_video_device *video,
742 742
743 /* Buffers are already allocated, bail out. */ 743 /* Buffers are already allocated, bail out. */
744 if (video->urb_size) 744 if (video->urb_size)
745 return 0; 745 return video->urb_size / psize;
746 746
747 /* Compute the number of packets. Bulk endpoints might transfer UVC 747 /* Compute the number of packets. Bulk endpoints might transfer UVC
748 * payloads accross multiple URBs. 748 * payloads accross multiple URBs.
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index 88f10d6cbc92..be64a502ea27 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -42,6 +42,12 @@
42 printk(KERN_DEBUG "%s: " fmt, vfd->name, ## arg);\ 42 printk(KERN_DEBUG "%s: " fmt, vfd->name, ## arg);\
43 } while (0) 43 } while (0)
44 44
45/* Zero out the end of the struct pointed to by p. Everthing after, but
46 * not including, the specified field is cleared. */
47#define CLEAR_AFTER_FIELD(p, field) \
48 memset((u8 *)(p) + offsetof(typeof(*(p)), field) + sizeof((p)->field), \
49 0, sizeof(*(p)) - offsetof(typeof(*(p)), field) - sizeof((p)->field))
50
45struct std_descr { 51struct std_descr {
46 v4l2_std_id std; 52 v4l2_std_id std;
47 const char *descr; 53 const char *descr;
@@ -544,39 +550,39 @@ static int check_fmt(const struct v4l2_ioctl_ops *ops, enum v4l2_buf_type type)
544 550
545 switch (type) { 551 switch (type) {
546 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 552 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
547 if (ops->vidioc_try_fmt_vid_cap) 553 if (ops->vidioc_g_fmt_vid_cap)
548 return 0; 554 return 0;
549 break; 555 break;
550 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 556 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
551 if (ops->vidioc_try_fmt_vid_overlay) 557 if (ops->vidioc_g_fmt_vid_overlay)
552 return 0; 558 return 0;
553 break; 559 break;
554 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 560 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
555 if (ops->vidioc_try_fmt_vid_out) 561 if (ops->vidioc_g_fmt_vid_out)
556 return 0; 562 return 0;
557 break; 563 break;
558 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 564 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
559 if (ops->vidioc_try_fmt_vid_out_overlay) 565 if (ops->vidioc_g_fmt_vid_out_overlay)
560 return 0; 566 return 0;
561 break; 567 break;
562 case V4L2_BUF_TYPE_VBI_CAPTURE: 568 case V4L2_BUF_TYPE_VBI_CAPTURE:
563 if (ops->vidioc_try_fmt_vbi_cap) 569 if (ops->vidioc_g_fmt_vbi_cap)
564 return 0; 570 return 0;
565 break; 571 break;
566 case V4L2_BUF_TYPE_VBI_OUTPUT: 572 case V4L2_BUF_TYPE_VBI_OUTPUT:
567 if (ops->vidioc_try_fmt_vbi_out) 573 if (ops->vidioc_g_fmt_vbi_out)
568 return 0; 574 return 0;
569 break; 575 break;
570 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 576 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
571 if (ops->vidioc_try_fmt_sliced_vbi_cap) 577 if (ops->vidioc_g_fmt_sliced_vbi_cap)
572 return 0; 578 return 0;
573 break; 579 break;
574 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 580 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
575 if (ops->vidioc_try_fmt_sliced_vbi_out) 581 if (ops->vidioc_g_fmt_sliced_vbi_out)
576 return 0; 582 return 0;
577 break; 583 break;
578 case V4L2_BUF_TYPE_PRIVATE: 584 case V4L2_BUF_TYPE_PRIVATE:
579 if (ops->vidioc_try_fmt_type_private) 585 if (ops->vidioc_g_fmt_type_private)
580 return 0; 586 return 0;
581 break; 587 break;
582 } 588 }
@@ -782,44 +788,53 @@ static long __video_do_ioctl(struct file *file,
782 788
783 switch (f->type) { 789 switch (f->type) {
784 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 790 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
791 CLEAR_AFTER_FIELD(f, fmt.pix);
785 v4l_print_pix_fmt(vfd, &f->fmt.pix); 792 v4l_print_pix_fmt(vfd, &f->fmt.pix);
786 if (ops->vidioc_s_fmt_vid_cap) 793 if (ops->vidioc_s_fmt_vid_cap)
787 ret = ops->vidioc_s_fmt_vid_cap(file, fh, f); 794 ret = ops->vidioc_s_fmt_vid_cap(file, fh, f);
788 break; 795 break;
789 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 796 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
797 CLEAR_AFTER_FIELD(f, fmt.win);
790 if (ops->vidioc_s_fmt_vid_overlay) 798 if (ops->vidioc_s_fmt_vid_overlay)
791 ret = ops->vidioc_s_fmt_vid_overlay(file, 799 ret = ops->vidioc_s_fmt_vid_overlay(file,
792 fh, f); 800 fh, f);
793 break; 801 break;
794 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 802 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
803 CLEAR_AFTER_FIELD(f, fmt.pix);
795 v4l_print_pix_fmt(vfd, &f->fmt.pix); 804 v4l_print_pix_fmt(vfd, &f->fmt.pix);
796 if (ops->vidioc_s_fmt_vid_out) 805 if (ops->vidioc_s_fmt_vid_out)
797 ret = ops->vidioc_s_fmt_vid_out(file, fh, f); 806 ret = ops->vidioc_s_fmt_vid_out(file, fh, f);
798 break; 807 break;
799 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 808 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
809 CLEAR_AFTER_FIELD(f, fmt.win);
800 if (ops->vidioc_s_fmt_vid_out_overlay) 810 if (ops->vidioc_s_fmt_vid_out_overlay)
801 ret = ops->vidioc_s_fmt_vid_out_overlay(file, 811 ret = ops->vidioc_s_fmt_vid_out_overlay(file,
802 fh, f); 812 fh, f);
803 break; 813 break;
804 case V4L2_BUF_TYPE_VBI_CAPTURE: 814 case V4L2_BUF_TYPE_VBI_CAPTURE:
815 CLEAR_AFTER_FIELD(f, fmt.vbi);
805 if (ops->vidioc_s_fmt_vbi_cap) 816 if (ops->vidioc_s_fmt_vbi_cap)
806 ret = ops->vidioc_s_fmt_vbi_cap(file, fh, f); 817 ret = ops->vidioc_s_fmt_vbi_cap(file, fh, f);
807 break; 818 break;
808 case V4L2_BUF_TYPE_VBI_OUTPUT: 819 case V4L2_BUF_TYPE_VBI_OUTPUT:
820 CLEAR_AFTER_FIELD(f, fmt.vbi);
809 if (ops->vidioc_s_fmt_vbi_out) 821 if (ops->vidioc_s_fmt_vbi_out)
810 ret = ops->vidioc_s_fmt_vbi_out(file, fh, f); 822 ret = ops->vidioc_s_fmt_vbi_out(file, fh, f);
811 break; 823 break;
812 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 824 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
825 CLEAR_AFTER_FIELD(f, fmt.sliced);
813 if (ops->vidioc_s_fmt_sliced_vbi_cap) 826 if (ops->vidioc_s_fmt_sliced_vbi_cap)
814 ret = ops->vidioc_s_fmt_sliced_vbi_cap(file, 827 ret = ops->vidioc_s_fmt_sliced_vbi_cap(file,
815 fh, f); 828 fh, f);
816 break; 829 break;
817 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 830 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
831 CLEAR_AFTER_FIELD(f, fmt.sliced);
818 if (ops->vidioc_s_fmt_sliced_vbi_out) 832 if (ops->vidioc_s_fmt_sliced_vbi_out)
819 ret = ops->vidioc_s_fmt_sliced_vbi_out(file, 833 ret = ops->vidioc_s_fmt_sliced_vbi_out(file,
820 fh, f); 834 fh, f);
821 break; 835 break;
822 case V4L2_BUF_TYPE_PRIVATE: 836 case V4L2_BUF_TYPE_PRIVATE:
837 /* CLEAR_AFTER_FIELD(f, fmt.raw_data); <- does nothing */
823 if (ops->vidioc_s_fmt_type_private) 838 if (ops->vidioc_s_fmt_type_private)
824 ret = ops->vidioc_s_fmt_type_private(file, 839 ret = ops->vidioc_s_fmt_type_private(file,
825 fh, f); 840 fh, f);
@@ -836,46 +851,55 @@ static long __video_do_ioctl(struct file *file,
836 v4l2_type_names)); 851 v4l2_type_names));
837 switch (f->type) { 852 switch (f->type) {
838 case V4L2_BUF_TYPE_VIDEO_CAPTURE: 853 case V4L2_BUF_TYPE_VIDEO_CAPTURE:
854 CLEAR_AFTER_FIELD(f, fmt.pix);
839 if (ops->vidioc_try_fmt_vid_cap) 855 if (ops->vidioc_try_fmt_vid_cap)
840 ret = ops->vidioc_try_fmt_vid_cap(file, fh, f); 856 ret = ops->vidioc_try_fmt_vid_cap(file, fh, f);
841 if (!ret) 857 if (!ret)
842 v4l_print_pix_fmt(vfd, &f->fmt.pix); 858 v4l_print_pix_fmt(vfd, &f->fmt.pix);
843 break; 859 break;
844 case V4L2_BUF_TYPE_VIDEO_OVERLAY: 860 case V4L2_BUF_TYPE_VIDEO_OVERLAY:
861 CLEAR_AFTER_FIELD(f, fmt.win);
845 if (ops->vidioc_try_fmt_vid_overlay) 862 if (ops->vidioc_try_fmt_vid_overlay)
846 ret = ops->vidioc_try_fmt_vid_overlay(file, 863 ret = ops->vidioc_try_fmt_vid_overlay(file,
847 fh, f); 864 fh, f);
848 break; 865 break;
849 case V4L2_BUF_TYPE_VIDEO_OUTPUT: 866 case V4L2_BUF_TYPE_VIDEO_OUTPUT:
867 CLEAR_AFTER_FIELD(f, fmt.pix);
850 if (ops->vidioc_try_fmt_vid_out) 868 if (ops->vidioc_try_fmt_vid_out)
851 ret = ops->vidioc_try_fmt_vid_out(file, fh, f); 869 ret = ops->vidioc_try_fmt_vid_out(file, fh, f);
852 if (!ret) 870 if (!ret)
853 v4l_print_pix_fmt(vfd, &f->fmt.pix); 871 v4l_print_pix_fmt(vfd, &f->fmt.pix);
854 break; 872 break;
855 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: 873 case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY:
874 CLEAR_AFTER_FIELD(f, fmt.win);
856 if (ops->vidioc_try_fmt_vid_out_overlay) 875 if (ops->vidioc_try_fmt_vid_out_overlay)
857 ret = ops->vidioc_try_fmt_vid_out_overlay(file, 876 ret = ops->vidioc_try_fmt_vid_out_overlay(file,
858 fh, f); 877 fh, f);
859 break; 878 break;
860 case V4L2_BUF_TYPE_VBI_CAPTURE: 879 case V4L2_BUF_TYPE_VBI_CAPTURE:
880 CLEAR_AFTER_FIELD(f, fmt.vbi);
861 if (ops->vidioc_try_fmt_vbi_cap) 881 if (ops->vidioc_try_fmt_vbi_cap)
862 ret = ops->vidioc_try_fmt_vbi_cap(file, fh, f); 882 ret = ops->vidioc_try_fmt_vbi_cap(file, fh, f);
863 break; 883 break;
864 case V4L2_BUF_TYPE_VBI_OUTPUT: 884 case V4L2_BUF_TYPE_VBI_OUTPUT:
885 CLEAR_AFTER_FIELD(f, fmt.vbi);
865 if (ops->vidioc_try_fmt_vbi_out) 886 if (ops->vidioc_try_fmt_vbi_out)
866 ret = ops->vidioc_try_fmt_vbi_out(file, fh, f); 887 ret = ops->vidioc_try_fmt_vbi_out(file, fh, f);
867 break; 888 break;
868 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE: 889 case V4L2_BUF_TYPE_SLICED_VBI_CAPTURE:
890 CLEAR_AFTER_FIELD(f, fmt.sliced);
869 if (ops->vidioc_try_fmt_sliced_vbi_cap) 891 if (ops->vidioc_try_fmt_sliced_vbi_cap)
870 ret = ops->vidioc_try_fmt_sliced_vbi_cap(file, 892 ret = ops->vidioc_try_fmt_sliced_vbi_cap(file,
871 fh, f); 893 fh, f);
872 break; 894 break;
873 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT: 895 case V4L2_BUF_TYPE_SLICED_VBI_OUTPUT:
896 CLEAR_AFTER_FIELD(f, fmt.sliced);
874 if (ops->vidioc_try_fmt_sliced_vbi_out) 897 if (ops->vidioc_try_fmt_sliced_vbi_out)
875 ret = ops->vidioc_try_fmt_sliced_vbi_out(file, 898 ret = ops->vidioc_try_fmt_sliced_vbi_out(file,
876 fh, f); 899 fh, f);
877 break; 900 break;
878 case V4L2_BUF_TYPE_PRIVATE: 901 case V4L2_BUF_TYPE_PRIVATE:
902 /* CLEAR_AFTER_FIELD(f, fmt.raw_data); <- does nothing */
879 if (ops->vidioc_try_fmt_type_private) 903 if (ops->vidioc_try_fmt_type_private)
880 ret = ops->vidioc_try_fmt_type_private(file, 904 ret = ops->vidioc_try_fmt_type_private(file,
881 fh, f); 905 fh, f);
@@ -898,6 +922,9 @@ static long __video_do_ioctl(struct file *file,
898 if (ret) 922 if (ret)
899 break; 923 break;
900 924
925 if (p->type < V4L2_BUF_TYPE_PRIVATE)
926 CLEAR_AFTER_FIELD(p, memory);
927
901 ret = ops->vidioc_reqbufs(file, fh, p); 928 ret = ops->vidioc_reqbufs(file, fh, p);
902 dbgarg(cmd, "count=%d, type=%s, memory=%s\n", 929 dbgarg(cmd, "count=%d, type=%s, memory=%s\n",
903 p->count, 930 p->count,
diff --git a/drivers/media/video/zoran/zoran_driver.c b/drivers/media/video/zoran/zoran_driver.c
index 092333b1c34f..643cccaa1aab 100644
--- a/drivers/media/video/zoran/zoran_driver.c
+++ b/drivers/media/video/zoran/zoran_driver.c
@@ -1863,22 +1863,20 @@ static int zoran_querycap(struct file *file, void *__fh, struct v4l2_capability
1863 1863
1864static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag) 1864static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag)
1865{ 1865{
1866 int num = -1, i; 1866 unsigned int num, i;
1867 1867
1868 for (i = 0; i < NUM_FORMATS; i++) { 1868 for (num = i = 0; i < NUM_FORMATS; i++) {
1869 if (zoran_formats[i].flags & flag) 1869 if (zoran_formats[i].flags & flag && num++ == fmt->index) {
1870 num++; 1870 strncpy(fmt->description, zoran_formats[i].name,
1871 if (num == fmt->index) 1871 sizeof(fmt->description) - 1);
1872 break; 1872 /* fmt struct pre-zeroed, so adding '\0' not neeed */
1873 fmt->pixelformat = zoran_formats[i].fourcc;
1874 if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED)
1875 fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
1876 return 0;
1877 }
1873 } 1878 }
1874 if (fmt->index < 0 /* late, but not too late */ || i == NUM_FORMATS) 1879 return -EINVAL;
1875 return -EINVAL;
1876
1877 strncpy(fmt->description, zoran_formats[i].name, sizeof(fmt->description)-1);
1878 fmt->pixelformat = zoran_formats[i].fourcc;
1879 if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED)
1880 fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
1881 return 0;
1882} 1880}
1883 1881
1884static int zoran_enum_fmt_vid_cap(struct file *file, void *__fh, 1882static int zoran_enum_fmt_vid_cap(struct file *file, void *__fh,
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index d0d126c69354..5d496a99e034 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -5934,7 +5934,7 @@ mpt_config(MPT_ADAPTER *ioc, CONFIGPARMS *pCfg)
5934 5934
5935 /* Initalize the timer 5935 /* Initalize the timer
5936 */ 5936 */
5937 init_timer(&pCfg->timer); 5937 init_timer_on_stack(&pCfg->timer);
5938 pCfg->timer.data = (unsigned long) ioc; 5938 pCfg->timer.data = (unsigned long) ioc;
5939 pCfg->timer.function = mpt_timer_expired; 5939 pCfg->timer.function = mpt_timer_expired;
5940 pCfg->wait_done = 0; 5940 pCfg->wait_done = 0;
diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index d184dfab9631..db39f4a52f53 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -278,7 +278,7 @@ static ssize_t at24_bin_read(struct kobject *kobj, struct bin_attribute *attr,
278 * We only use page mode writes; the alternative is sloooow. This routine 278 * We only use page mode writes; the alternative is sloooow. This routine
279 * writes at most one page. 279 * writes at most one page.
280 */ 280 */
281static ssize_t at24_eeprom_write(struct at24_data *at24, char *buf, 281static ssize_t at24_eeprom_write(struct at24_data *at24, const char *buf,
282 unsigned offset, size_t count) 282 unsigned offset, size_t count)
283{ 283{
284 struct i2c_client *client; 284 struct i2c_client *client;
@@ -347,8 +347,8 @@ static ssize_t at24_eeprom_write(struct at24_data *at24, char *buf,
347 return -ETIMEDOUT; 347 return -ETIMEDOUT;
348} 348}
349 349
350static ssize_t at24_write(struct at24_data *at24, 350static ssize_t at24_write(struct at24_data *at24, const char *buf, loff_t off,
351 char *buf, loff_t off, size_t count) 351 size_t count)
352{ 352{
353 ssize_t retval = 0; 353 ssize_t retval = 0;
354 354
@@ -406,7 +406,7 @@ static ssize_t at24_macc_read(struct memory_accessor *macc, char *buf,
406 return at24_read(at24, buf, offset, count); 406 return at24_read(at24, buf, offset, count);
407} 407}
408 408
409static ssize_t at24_macc_write(struct memory_accessor *macc, char *buf, 409static ssize_t at24_macc_write(struct memory_accessor *macc, const char *buf,
410 off_t offset, size_t count) 410 off_t offset, size_t count)
411{ 411{
412 struct at24_data *at24 = container_of(macc, struct at24_data, macc); 412 struct at24_data *at24 = container_of(macc, struct at24_data, macc);
diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index 6bc0dac5c1e8..b34cb5f79eea 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -140,7 +140,8 @@ at25_bin_read(struct kobject *kobj, struct bin_attribute *bin_attr,
140 140
141 141
142static ssize_t 142static ssize_t
143at25_ee_write(struct at25_data *at25, char *buf, loff_t off, size_t count) 143at25_ee_write(struct at25_data *at25, const char *buf, loff_t off,
144 size_t count)
144{ 145{
145 ssize_t status = 0; 146 ssize_t status = 0;
146 unsigned written = 0; 147 unsigned written = 0;
@@ -276,7 +277,7 @@ static ssize_t at25_mem_read(struct memory_accessor *mem, char *buf,
276 return at25_ee_read(at25, buf, offset, count); 277 return at25_ee_read(at25, buf, offset, count);
277} 278}
278 279
279static ssize_t at25_mem_write(struct memory_accessor *mem, char *buf, 280static ssize_t at25_mem_write(struct memory_accessor *mem, const char *buf,
280 off_t offset, size_t count) 281 off_t offset, size_t count)
281{ 282{
282 struct at25_data *at25 = container_of(mem, struct at25_data, mem); 283 struct at25_data *at25 = container_of(mem, struct at25_data, mem);
diff --git a/drivers/misc/isl29003.c b/drivers/misc/isl29003.c
index 2e2a5923d4c2..a71e245801ee 100644
--- a/drivers/misc/isl29003.c
+++ b/drivers/misc/isl29003.c
@@ -64,6 +64,7 @@ struct isl29003_data {
64 struct i2c_client *client; 64 struct i2c_client *client;
65 struct mutex lock; 65 struct mutex lock;
66 u8 reg_cache[ISL29003_NUM_CACHABLE_REGS]; 66 u8 reg_cache[ISL29003_NUM_CACHABLE_REGS];
67 u8 power_state_before_suspend;
67}; 68};
68 69
69static int gain_range[] = { 70static int gain_range[] = {
@@ -411,6 +412,9 @@ static int __devexit isl29003_remove(struct i2c_client *client)
411#ifdef CONFIG_PM 412#ifdef CONFIG_PM
412static int isl29003_suspend(struct i2c_client *client, pm_message_t mesg) 413static int isl29003_suspend(struct i2c_client *client, pm_message_t mesg)
413{ 414{
415 struct isl29003_data *data = i2c_get_clientdata(client);
416
417 data->power_state_before_suspend = isl29003_get_power_state(client);
414 return isl29003_set_power_state(client, 0); 418 return isl29003_set_power_state(client, 0);
415} 419}
416 420
@@ -421,10 +425,11 @@ static int isl29003_resume(struct i2c_client *client)
421 425
422 /* restore registers from cache */ 426 /* restore registers from cache */
423 for (i = 0; i < ARRAY_SIZE(data->reg_cache); i++) 427 for (i = 0; i < ARRAY_SIZE(data->reg_cache); i++)
424 if (!i2c_smbus_write_byte_data(client, i, data->reg_cache[i])) 428 if (i2c_smbus_write_byte_data(client, i, data->reg_cache[i]))
425 return -EIO; 429 return -EIO;
426 430
427 return 0; 431 return isl29003_set_power_state(client,
432 data->power_state_before_suspend);
428} 433}
429 434
430#else 435#else
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c
index 3e6e42d2f01b..bbefe77c67a9 100644
--- a/drivers/misc/sgi-gru/grufile.c
+++ b/drivers/misc/sgi-gru/grufile.c
@@ -375,7 +375,7 @@ static int __init gru_init(void)
375 void *gru_start_vaddr; 375 void *gru_start_vaddr;
376 376
377 if (!is_uv_system()) 377 if (!is_uv_system())
378 return -ENODEV; 378 return 0;
379 379
380#if defined CONFIG_IA64 380#if defined CONFIG_IA64
381 gru_start_paddr = 0xd000000000UL; /* ZZZZZZZZZZZZZZZZZZZ fixme */ 381 gru_start_paddr = 0xd000000000UL; /* ZZZZZZZZZZZZZZZZZZZ fixme */
diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
index 16f8dcab2da4..7896849b16dc 100644
--- a/drivers/misc/sgi-xp/xp_main.c
+++ b/drivers/misc/sgi-xp/xp_main.c
@@ -248,19 +248,19 @@ xp_init(void)
248 enum xp_retval ret; 248 enum xp_retval ret;
249 int ch_number; 249 int ch_number;
250 250
251 /* initialize the connection registration mutex */
252 for (ch_number = 0; ch_number < XPC_MAX_NCHANNELS; ch_number++)
253 mutex_init(&xpc_registrations[ch_number].mutex);
254
251 if (is_shub()) 255 if (is_shub())
252 ret = xp_init_sn2(); 256 ret = xp_init_sn2();
253 else if (is_uv()) 257 else if (is_uv())
254 ret = xp_init_uv(); 258 ret = xp_init_uv();
255 else 259 else
256 ret = xpUnsupported; 260 ret = 0;
257 261
258 if (ret != xpSuccess) 262 if (ret != xpSuccess)
259 return -ENODEV; 263 return ret;
260
261 /* initialize the connection registration mutex */
262 for (ch_number = 0; ch_number < XPC_MAX_NCHANNELS; ch_number++)
263 mutex_init(&xpc_registrations[ch_number].mutex);
264 264
265 return 0; 265 return 0;
266} 266}
diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
index 114444cfd496..b94d5f767703 100644
--- a/drivers/misc/sgi-xp/xpc.h
+++ b/drivers/misc/sgi-xp/xpc.h
@@ -90,18 +90,21 @@ struct xpc_rsvd_page {
90 short max_npartitions; /* value of XPC_MAX_PARTITIONS */ 90 short max_npartitions; /* value of XPC_MAX_PARTITIONS */
91 u8 version; 91 u8 version;
92 u8 pad1[3]; /* align to next u64 in 1st 64-byte cacheline */ 92 u8 pad1[3]; /* align to next u64 in 1st 64-byte cacheline */
93 unsigned long ts_jiffies; /* timestamp when rsvd pg was setup by XPC */
93 union { 94 union {
94 unsigned long vars_pa; /* phys address of struct xpc_vars */ 95 struct {
95 unsigned long activate_gru_mq_desc_gpa; /* phys addr of */ 96 unsigned long vars_pa; /* phys addr */
96 /* activate mq's */ 97 } sn2;
97 /* gru mq descriptor */ 98 struct {
99 unsigned long heartbeat_gpa; /* phys addr */
100 unsigned long activate_gru_mq_desc_gpa; /* phys addr */
101 } uv;
98 } sn; 102 } sn;
99 unsigned long ts_jiffies; /* timestamp when rsvd pg was setup by XPC */ 103 u64 pad2[9]; /* align to last u64 in 2nd 64-byte cacheline */
100 u64 pad2[10]; /* align to last u64 in 2nd 64-byte cacheline */
101 u64 SAL_nasids_size; /* SAL: size of each nasid mask in bytes */ 104 u64 SAL_nasids_size; /* SAL: size of each nasid mask in bytes */
102}; 105};
103 106
104#define XPC_RP_VERSION _XPC_VERSION(2, 0) /* version 2.0 of the reserved page */ 107#define XPC_RP_VERSION _XPC_VERSION(3, 0) /* version 3.0 of the reserved page */
105 108
106/* 109/*
107 * Define the structures by which XPC variables can be exported to other 110 * Define the structures by which XPC variables can be exported to other
@@ -182,6 +185,17 @@ struct xpc_vars_part_sn2 {
182 (XPC_RP_MACH_NASIDS(_rp) + \ 185 (XPC_RP_MACH_NASIDS(_rp) + \
183 xpc_nasid_mask_nlongs)) 186 xpc_nasid_mask_nlongs))
184 187
188
189/*
190 * The following structure describes the partition's heartbeat info which
191 * will be periodically read by other partitions to determine whether this
192 * XPC is still 'alive'.
193 */
194struct xpc_heartbeat_uv {
195 unsigned long value;
196 unsigned long offline; /* if 0, heartbeat should be changing */
197};
198
185/* 199/*
186 * Info pertinent to a GRU message queue using a watch list for irq generation. 200 * Info pertinent to a GRU message queue using a watch list for irq generation.
187 */ 201 */
@@ -198,7 +212,7 @@ struct xpc_gru_mq_uv {
198 212
199/* 213/*
200 * The activate_mq is used to send/receive GRU messages that affect XPC's 214 * The activate_mq is used to send/receive GRU messages that affect XPC's
201 * heartbeat, partition active state, and channel state. This is UV only. 215 * partition active state and channel state. This is uv only.
202 */ 216 */
203struct xpc_activate_mq_msghdr_uv { 217struct xpc_activate_mq_msghdr_uv {
204 unsigned int gru_msg_hdr; /* FOR GRU INTERNAL USE ONLY */ 218 unsigned int gru_msg_hdr; /* FOR GRU INTERNAL USE ONLY */
@@ -210,33 +224,27 @@ struct xpc_activate_mq_msghdr_uv {
210 224
211/* activate_mq defined message types */ 225/* activate_mq defined message types */
212#define XPC_ACTIVATE_MQ_MSG_SYNC_ACT_STATE_UV 0 226#define XPC_ACTIVATE_MQ_MSG_SYNC_ACT_STATE_UV 0
213#define XPC_ACTIVATE_MQ_MSG_INC_HEARTBEAT_UV 1
214#define XPC_ACTIVATE_MQ_MSG_OFFLINE_HEARTBEAT_UV 2
215#define XPC_ACTIVATE_MQ_MSG_ONLINE_HEARTBEAT_UV 3
216 227
217#define XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV 4 228#define XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV 1
218#define XPC_ACTIVATE_MQ_MSG_DEACTIVATE_REQ_UV 5 229#define XPC_ACTIVATE_MQ_MSG_DEACTIVATE_REQ_UV 2
219 230
220#define XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREQUEST_UV 6 231#define XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREQUEST_UV 3
221#define XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREPLY_UV 7 232#define XPC_ACTIVATE_MQ_MSG_CHCTL_CLOSEREPLY_UV 4
222#define XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREQUEST_UV 8 233#define XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREQUEST_UV 5
223#define XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREPLY_UV 9 234#define XPC_ACTIVATE_MQ_MSG_CHCTL_OPENREPLY_UV 6
235#define XPC_ACTIVATE_MQ_MSG_CHCTL_OPENCOMPLETE_UV 7
224 236
225#define XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV 10 237#define XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV 8
226#define XPC_ACTIVATE_MQ_MSG_MARK_DISENGAGED_UV 11 238#define XPC_ACTIVATE_MQ_MSG_MARK_DISENGAGED_UV 9
227 239
228struct xpc_activate_mq_msg_uv { 240struct xpc_activate_mq_msg_uv {
229 struct xpc_activate_mq_msghdr_uv hdr; 241 struct xpc_activate_mq_msghdr_uv hdr;
230}; 242};
231 243
232struct xpc_activate_mq_msg_heartbeat_req_uv {
233 struct xpc_activate_mq_msghdr_uv hdr;
234 u64 heartbeat;
235};
236
237struct xpc_activate_mq_msg_activate_req_uv { 244struct xpc_activate_mq_msg_activate_req_uv {
238 struct xpc_activate_mq_msghdr_uv hdr; 245 struct xpc_activate_mq_msghdr_uv hdr;
239 unsigned long rp_gpa; 246 unsigned long rp_gpa;
247 unsigned long heartbeat_gpa;
240 unsigned long activate_gru_mq_desc_gpa; 248 unsigned long activate_gru_mq_desc_gpa;
241}; 249};
242 250
@@ -271,6 +279,11 @@ struct xpc_activate_mq_msg_chctl_openreply_uv {
271 unsigned long notify_gru_mq_desc_gpa; 279 unsigned long notify_gru_mq_desc_gpa;
272}; 280};
273 281
282struct xpc_activate_mq_msg_chctl_opencomplete_uv {
283 struct xpc_activate_mq_msghdr_uv hdr;
284 short ch_number;
285};
286
274/* 287/*
275 * Functions registered by add_timer() or called by kernel_thread() only 288 * Functions registered by add_timer() or called by kernel_thread() only
276 * allow for a single 64-bit argument. The following macros can be used to 289 * allow for a single 64-bit argument. The following macros can be used to
@@ -576,30 +589,32 @@ struct xpc_channel {
576 589
577#define XPC_C_WASCONNECTED 0x00000001 /* channel was connected */ 590#define XPC_C_WASCONNECTED 0x00000001 /* channel was connected */
578 591
579#define XPC_C_ROPENREPLY 0x00000002 /* remote open channel reply */ 592#define XPC_C_ROPENCOMPLETE 0x00000002 /* remote open channel complete */
580#define XPC_C_OPENREPLY 0x00000004 /* local open channel reply */ 593#define XPC_C_OPENCOMPLETE 0x00000004 /* local open channel complete */
581#define XPC_C_ROPENREQUEST 0x00000008 /* remote open channel request */ 594#define XPC_C_ROPENREPLY 0x00000008 /* remote open channel reply */
582#define XPC_C_OPENREQUEST 0x00000010 /* local open channel request */ 595#define XPC_C_OPENREPLY 0x00000010 /* local open channel reply */
596#define XPC_C_ROPENREQUEST 0x00000020 /* remote open channel request */
597#define XPC_C_OPENREQUEST 0x00000040 /* local open channel request */
583 598
584#define XPC_C_SETUP 0x00000020 /* channel's msgqueues are alloc'd */ 599#define XPC_C_SETUP 0x00000080 /* channel's msgqueues are alloc'd */
585#define XPC_C_CONNECTEDCALLOUT 0x00000040 /* connected callout initiated */ 600#define XPC_C_CONNECTEDCALLOUT 0x00000100 /* connected callout initiated */
586#define XPC_C_CONNECTEDCALLOUT_MADE \ 601#define XPC_C_CONNECTEDCALLOUT_MADE \
587 0x00000080 /* connected callout completed */ 602 0x00000200 /* connected callout completed */
588#define XPC_C_CONNECTED 0x00000100 /* local channel is connected */ 603#define XPC_C_CONNECTED 0x00000400 /* local channel is connected */
589#define XPC_C_CONNECTING 0x00000200 /* channel is being connected */ 604#define XPC_C_CONNECTING 0x00000800 /* channel is being connected */
590 605
591#define XPC_C_RCLOSEREPLY 0x00000400 /* remote close channel reply */ 606#define XPC_C_RCLOSEREPLY 0x00001000 /* remote close channel reply */
592#define XPC_C_CLOSEREPLY 0x00000800 /* local close channel reply */ 607#define XPC_C_CLOSEREPLY 0x00002000 /* local close channel reply */
593#define XPC_C_RCLOSEREQUEST 0x00001000 /* remote close channel request */ 608#define XPC_C_RCLOSEREQUEST 0x00004000 /* remote close channel request */
594#define XPC_C_CLOSEREQUEST 0x00002000 /* local close channel request */ 609#define XPC_C_CLOSEREQUEST 0x00008000 /* local close channel request */
595 610
596#define XPC_C_DISCONNECTED 0x00004000 /* channel is disconnected */ 611#define XPC_C_DISCONNECTED 0x00010000 /* channel is disconnected */
597#define XPC_C_DISCONNECTING 0x00008000 /* channel is being disconnected */ 612#define XPC_C_DISCONNECTING 0x00020000 /* channel is being disconnected */
598#define XPC_C_DISCONNECTINGCALLOUT \ 613#define XPC_C_DISCONNECTINGCALLOUT \
599 0x00010000 /* disconnecting callout initiated */ 614 0x00040000 /* disconnecting callout initiated */
600#define XPC_C_DISCONNECTINGCALLOUT_MADE \ 615#define XPC_C_DISCONNECTINGCALLOUT_MADE \
601 0x00020000 /* disconnecting callout completed */ 616 0x00080000 /* disconnecting callout completed */
602#define XPC_C_WDISCONNECT 0x00040000 /* waiting for channel disconnect */ 617#define XPC_C_WDISCONNECT 0x00100000 /* waiting for channel disconnect */
603 618
604/* 619/*
605 * The channel control flags (chctl) union consists of a 64-bit variable which 620 * The channel control flags (chctl) union consists of a 64-bit variable which
@@ -618,11 +633,13 @@ union xpc_channel_ctl_flags {
618#define XPC_CHCTL_CLOSEREPLY 0x02 633#define XPC_CHCTL_CLOSEREPLY 0x02
619#define XPC_CHCTL_OPENREQUEST 0x04 634#define XPC_CHCTL_OPENREQUEST 0x04
620#define XPC_CHCTL_OPENREPLY 0x08 635#define XPC_CHCTL_OPENREPLY 0x08
621#define XPC_CHCTL_MSGREQUEST 0x10 636#define XPC_CHCTL_OPENCOMPLETE 0x10
637#define XPC_CHCTL_MSGREQUEST 0x20
622 638
623#define XPC_OPENCLOSE_CHCTL_FLAGS \ 639#define XPC_OPENCLOSE_CHCTL_FLAGS \
624 (XPC_CHCTL_CLOSEREQUEST | XPC_CHCTL_CLOSEREPLY | \ 640 (XPC_CHCTL_CLOSEREQUEST | XPC_CHCTL_CLOSEREPLY | \
625 XPC_CHCTL_OPENREQUEST | XPC_CHCTL_OPENREPLY) 641 XPC_CHCTL_OPENREQUEST | XPC_CHCTL_OPENREPLY | \
642 XPC_CHCTL_OPENCOMPLETE)
626#define XPC_MSG_CHCTL_FLAGS XPC_CHCTL_MSGREQUEST 643#define XPC_MSG_CHCTL_FLAGS XPC_CHCTL_MSGREQUEST
627 644
628static inline int 645static inline int
@@ -687,6 +704,9 @@ struct xpc_partition_sn2 {
687}; 704};
688 705
689struct xpc_partition_uv { 706struct xpc_partition_uv {
707 unsigned long heartbeat_gpa; /* phys addr of partition's heartbeat */
708 struct xpc_heartbeat_uv cached_heartbeat; /* cached copy of */
709 /* partition's heartbeat */
690 unsigned long activate_gru_mq_desc_gpa; /* phys addr of parititon's */ 710 unsigned long activate_gru_mq_desc_gpa; /* phys addr of parititon's */
691 /* activate mq's gru mq */ 711 /* activate mq's gru mq */
692 /* descriptor */ 712 /* descriptor */
@@ -698,14 +718,12 @@ struct xpc_partition_uv {
698 u8 remote_act_state; /* remote partition's act_state */ 718 u8 remote_act_state; /* remote partition's act_state */
699 u8 act_state_req; /* act_state request from remote partition */ 719 u8 act_state_req; /* act_state request from remote partition */
700 enum xp_retval reason; /* reason for deactivate act_state request */ 720 enum xp_retval reason; /* reason for deactivate act_state request */
701 u64 heartbeat; /* incremented by remote partition */
702}; 721};
703 722
704/* struct xpc_partition_uv flags */ 723/* struct xpc_partition_uv flags */
705 724
706#define XPC_P_HEARTBEAT_OFFLINE_UV 0x00000001 725#define XPC_P_CACHED_ACTIVATE_GRU_MQ_DESC_UV 0x00000001
707#define XPC_P_ENGAGED_UV 0x00000002 726#define XPC_P_ENGAGED_UV 0x00000002
708#define XPC_P_CACHED_ACTIVATE_GRU_MQ_DESC_UV 0x00000004
709 727
710/* struct xpc_partition_uv act_state change requests */ 728/* struct xpc_partition_uv act_state change requests */
711 729
@@ -762,6 +780,62 @@ struct xpc_partition {
762 780
763} ____cacheline_aligned; 781} ____cacheline_aligned;
764 782
783struct xpc_arch_operations {
784 int (*setup_partitions) (void);
785 void (*teardown_partitions) (void);
786 void (*process_activate_IRQ_rcvd) (void);
787 enum xp_retval (*get_partition_rsvd_page_pa)
788 (void *, u64 *, unsigned long *, size_t *);
789 int (*setup_rsvd_page) (struct xpc_rsvd_page *);
790
791 void (*allow_hb) (short);
792 void (*disallow_hb) (short);
793 void (*disallow_all_hbs) (void);
794 void (*increment_heartbeat) (void);
795 void (*offline_heartbeat) (void);
796 void (*online_heartbeat) (void);
797 void (*heartbeat_init) (void);
798 void (*heartbeat_exit) (void);
799 enum xp_retval (*get_remote_heartbeat) (struct xpc_partition *);
800
801 void (*request_partition_activation) (struct xpc_rsvd_page *,
802 unsigned long, int);
803 void (*request_partition_reactivation) (struct xpc_partition *);
804 void (*request_partition_deactivation) (struct xpc_partition *);
805 void (*cancel_partition_deactivation_request) (struct xpc_partition *);
806 enum xp_retval (*setup_ch_structures) (struct xpc_partition *);
807 void (*teardown_ch_structures) (struct xpc_partition *);
808
809 enum xp_retval (*make_first_contact) (struct xpc_partition *);
810
811 u64 (*get_chctl_all_flags) (struct xpc_partition *);
812 void (*send_chctl_closerequest) (struct xpc_channel *, unsigned long *);
813 void (*send_chctl_closereply) (struct xpc_channel *, unsigned long *);
814 void (*send_chctl_openrequest) (struct xpc_channel *, unsigned long *);
815 void (*send_chctl_openreply) (struct xpc_channel *, unsigned long *);
816 void (*send_chctl_opencomplete) (struct xpc_channel *, unsigned long *);
817 void (*process_msg_chctl_flags) (struct xpc_partition *, int);
818
819 enum xp_retval (*save_remote_msgqueue_pa) (struct xpc_channel *,
820 unsigned long);
821
822 enum xp_retval (*setup_msg_structures) (struct xpc_channel *);
823 void (*teardown_msg_structures) (struct xpc_channel *);
824
825 void (*indicate_partition_engaged) (struct xpc_partition *);
826 void (*indicate_partition_disengaged) (struct xpc_partition *);
827 void (*assume_partition_disengaged) (short);
828 int (*partition_engaged) (short);
829 int (*any_partition_engaged) (void);
830
831 int (*n_of_deliverable_payloads) (struct xpc_channel *);
832 enum xp_retval (*send_payload) (struct xpc_channel *, u32, void *,
833 u16, u8, xpc_notify_func, void *);
834 void *(*get_deliverable_payload) (struct xpc_channel *);
835 void (*received_payload) (struct xpc_channel *, void *);
836 void (*notify_senders_of_disconnect) (struct xpc_channel *);
837};
838
765/* struct xpc_partition act_state values (for XPC HB) */ 839/* struct xpc_partition act_state values (for XPC HB) */
766 840
767#define XPC_P_AS_INACTIVE 0x00 /* partition is not active */ 841#define XPC_P_AS_INACTIVE 0x00 /* partition is not active */
@@ -802,67 +876,17 @@ extern struct xpc_registration xpc_registrations[];
802/* found in xpc_main.c */ 876/* found in xpc_main.c */
803extern struct device *xpc_part; 877extern struct device *xpc_part;
804extern struct device *xpc_chan; 878extern struct device *xpc_chan;
879extern struct xpc_arch_operations xpc_arch_ops;
805extern int xpc_disengage_timelimit; 880extern int xpc_disengage_timelimit;
806extern int xpc_disengage_timedout; 881extern int xpc_disengage_timedout;
807extern int xpc_activate_IRQ_rcvd; 882extern int xpc_activate_IRQ_rcvd;
808extern spinlock_t xpc_activate_IRQ_rcvd_lock; 883extern spinlock_t xpc_activate_IRQ_rcvd_lock;
809extern wait_queue_head_t xpc_activate_IRQ_wq; 884extern wait_queue_head_t xpc_activate_IRQ_wq;
810extern void *xpc_heartbeating_to_mask;
811extern void *xpc_kzalloc_cacheline_aligned(size_t, gfp_t, void **); 885extern void *xpc_kzalloc_cacheline_aligned(size_t, gfp_t, void **);
812extern void xpc_activate_partition(struct xpc_partition *); 886extern void xpc_activate_partition(struct xpc_partition *);
813extern void xpc_activate_kthreads(struct xpc_channel *, int); 887extern void xpc_activate_kthreads(struct xpc_channel *, int);
814extern void xpc_create_kthreads(struct xpc_channel *, int, int); 888extern void xpc_create_kthreads(struct xpc_channel *, int, int);
815extern void xpc_disconnect_wait(int); 889extern void xpc_disconnect_wait(int);
816extern int (*xpc_setup_partitions_sn) (void);
817extern void (*xpc_teardown_partitions_sn) (void);
818extern enum xp_retval (*xpc_get_partition_rsvd_page_pa) (void *, u64 *,
819 unsigned long *,
820 size_t *);
821extern int (*xpc_setup_rsvd_page_sn) (struct xpc_rsvd_page *);
822extern void (*xpc_heartbeat_init) (void);
823extern void (*xpc_heartbeat_exit) (void);
824extern void (*xpc_increment_heartbeat) (void);
825extern void (*xpc_offline_heartbeat) (void);
826extern void (*xpc_online_heartbeat) (void);
827extern enum xp_retval (*xpc_get_remote_heartbeat) (struct xpc_partition *);
828extern enum xp_retval (*xpc_make_first_contact) (struct xpc_partition *);
829extern u64 (*xpc_get_chctl_all_flags) (struct xpc_partition *);
830extern enum xp_retval (*xpc_setup_msg_structures) (struct xpc_channel *);
831extern void (*xpc_teardown_msg_structures) (struct xpc_channel *);
832extern void (*xpc_notify_senders_of_disconnect) (struct xpc_channel *);
833extern void (*xpc_process_msg_chctl_flags) (struct xpc_partition *, int);
834extern int (*xpc_n_of_deliverable_payloads) (struct xpc_channel *);
835extern void *(*xpc_get_deliverable_payload) (struct xpc_channel *);
836extern void (*xpc_request_partition_activation) (struct xpc_rsvd_page *,
837 unsigned long, int);
838extern void (*xpc_request_partition_reactivation) (struct xpc_partition *);
839extern void (*xpc_request_partition_deactivation) (struct xpc_partition *);
840extern void (*xpc_cancel_partition_deactivation_request) (
841 struct xpc_partition *);
842extern void (*xpc_process_activate_IRQ_rcvd) (void);
843extern enum xp_retval (*xpc_setup_ch_structures_sn) (struct xpc_partition *);
844extern void (*xpc_teardown_ch_structures_sn) (struct xpc_partition *);
845
846extern void (*xpc_indicate_partition_engaged) (struct xpc_partition *);
847extern int (*xpc_partition_engaged) (short);
848extern int (*xpc_any_partition_engaged) (void);
849extern void (*xpc_indicate_partition_disengaged) (struct xpc_partition *);
850extern void (*xpc_assume_partition_disengaged) (short);
851
852extern void (*xpc_send_chctl_closerequest) (struct xpc_channel *,
853 unsigned long *);
854extern void (*xpc_send_chctl_closereply) (struct xpc_channel *,
855 unsigned long *);
856extern void (*xpc_send_chctl_openrequest) (struct xpc_channel *,
857 unsigned long *);
858extern void (*xpc_send_chctl_openreply) (struct xpc_channel *, unsigned long *);
859
860extern enum xp_retval (*xpc_save_remote_msgqueue_pa) (struct xpc_channel *,
861 unsigned long);
862
863extern enum xp_retval (*xpc_send_payload) (struct xpc_channel *, u32, void *,
864 u16, u8, xpc_notify_func, void *);
865extern void (*xpc_received_payload) (struct xpc_channel *, void *);
866 890
867/* found in xpc_sn2.c */ 891/* found in xpc_sn2.c */
868extern int xpc_init_sn2(void); 892extern int xpc_init_sn2(void);
@@ -909,40 +933,6 @@ extern void xpc_disconnect_channel(const int, struct xpc_channel *,
909extern void xpc_disconnect_callout(struct xpc_channel *, enum xp_retval); 933extern void xpc_disconnect_callout(struct xpc_channel *, enum xp_retval);
910extern void xpc_partition_going_down(struct xpc_partition *, enum xp_retval); 934extern void xpc_partition_going_down(struct xpc_partition *, enum xp_retval);
911 935
912static inline int
913xpc_hb_allowed(short partid, void *heartbeating_to_mask)
914{
915 return test_bit(partid, heartbeating_to_mask);
916}
917
918static inline int
919xpc_any_hbs_allowed(void)
920{
921 DBUG_ON(xpc_heartbeating_to_mask == NULL);
922 return !bitmap_empty(xpc_heartbeating_to_mask, xp_max_npartitions);
923}
924
925static inline void
926xpc_allow_hb(short partid)
927{
928 DBUG_ON(xpc_heartbeating_to_mask == NULL);
929 set_bit(partid, xpc_heartbeating_to_mask);
930}
931
932static inline void
933xpc_disallow_hb(short partid)
934{
935 DBUG_ON(xpc_heartbeating_to_mask == NULL);
936 clear_bit(partid, xpc_heartbeating_to_mask);
937}
938
939static inline void
940xpc_disallow_all_hbs(void)
941{
942 DBUG_ON(xpc_heartbeating_to_mask == NULL);
943 bitmap_zero(xpc_heartbeating_to_mask, xp_max_npartitions);
944}
945
946static inline void 936static inline void
947xpc_wakeup_channel_mgr(struct xpc_partition *part) 937xpc_wakeup_channel_mgr(struct xpc_partition *part)
948{ 938{
diff --git a/drivers/misc/sgi-xp/xpc_channel.c b/drivers/misc/sgi-xp/xpc_channel.c
index 99a2534c38a1..652593fc486d 100644
--- a/drivers/misc/sgi-xp/xpc_channel.c
+++ b/drivers/misc/sgi-xp/xpc_channel.c
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (c) 2004-2008 Silicon Graphics, Inc. All Rights Reserved. 6 * Copyright (c) 2004-2009 Silicon Graphics, Inc. All Rights Reserved.
7 */ 7 */
8 8
9/* 9/*
@@ -39,34 +39,38 @@ xpc_process_connect(struct xpc_channel *ch, unsigned long *irq_flags)
39 39
40 if (!(ch->flags & XPC_C_SETUP)) { 40 if (!(ch->flags & XPC_C_SETUP)) {
41 spin_unlock_irqrestore(&ch->lock, *irq_flags); 41 spin_unlock_irqrestore(&ch->lock, *irq_flags);
42 ret = xpc_setup_msg_structures(ch); 42 ret = xpc_arch_ops.setup_msg_structures(ch);
43 spin_lock_irqsave(&ch->lock, *irq_flags); 43 spin_lock_irqsave(&ch->lock, *irq_flags);
44 44
45 if (ret != xpSuccess) 45 if (ret != xpSuccess)
46 XPC_DISCONNECT_CHANNEL(ch, ret, irq_flags); 46 XPC_DISCONNECT_CHANNEL(ch, ret, irq_flags);
47 else
48 ch->flags |= XPC_C_SETUP;
47 49
48 ch->flags |= XPC_C_SETUP; 50 if (ch->flags & XPC_C_DISCONNECTING)
49
50 if (ch->flags & (XPC_C_CONNECTED | XPC_C_DISCONNECTING))
51 return; 51 return;
52 } 52 }
53 53
54 if (!(ch->flags & XPC_C_OPENREPLY)) { 54 if (!(ch->flags & XPC_C_OPENREPLY)) {
55 ch->flags |= XPC_C_OPENREPLY; 55 ch->flags |= XPC_C_OPENREPLY;
56 xpc_send_chctl_openreply(ch, irq_flags); 56 xpc_arch_ops.send_chctl_openreply(ch, irq_flags);
57 } 57 }
58 58
59 if (!(ch->flags & XPC_C_ROPENREPLY)) 59 if (!(ch->flags & XPC_C_ROPENREPLY))
60 return; 60 return;
61 61
62 ch->flags = (XPC_C_CONNECTED | XPC_C_SETUP); /* clear all else */ 62 if (!(ch->flags & XPC_C_OPENCOMPLETE)) {
63 ch->flags |= (XPC_C_OPENCOMPLETE | XPC_C_CONNECTED);
64 xpc_arch_ops.send_chctl_opencomplete(ch, irq_flags);
65 }
66
67 if (!(ch->flags & XPC_C_ROPENCOMPLETE))
68 return;
63 69
64 dev_info(xpc_chan, "channel %d to partition %d connected\n", 70 dev_info(xpc_chan, "channel %d to partition %d connected\n",
65 ch->number, ch->partid); 71 ch->number, ch->partid);
66 72
67 spin_unlock_irqrestore(&ch->lock, *irq_flags); 73 ch->flags = (XPC_C_CONNECTED | XPC_C_SETUP); /* clear all else */
68 xpc_create_kthreads(ch, 1, 0);
69 spin_lock_irqsave(&ch->lock, *irq_flags);
70} 74}
71 75
72/* 76/*
@@ -96,7 +100,7 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags)
96 100
97 if (part->act_state == XPC_P_AS_DEACTIVATING) { 101 if (part->act_state == XPC_P_AS_DEACTIVATING) {
98 /* can't proceed until the other side disengages from us */ 102 /* can't proceed until the other side disengages from us */
99 if (xpc_partition_engaged(ch->partid)) 103 if (xpc_arch_ops.partition_engaged(ch->partid))
100 return; 104 return;
101 105
102 } else { 106 } else {
@@ -108,7 +112,7 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags)
108 112
109 if (!(ch->flags & XPC_C_CLOSEREPLY)) { 113 if (!(ch->flags & XPC_C_CLOSEREPLY)) {
110 ch->flags |= XPC_C_CLOSEREPLY; 114 ch->flags |= XPC_C_CLOSEREPLY;
111 xpc_send_chctl_closereply(ch, irq_flags); 115 xpc_arch_ops.send_chctl_closereply(ch, irq_flags);
112 } 116 }
113 117
114 if (!(ch->flags & XPC_C_RCLOSEREPLY)) 118 if (!(ch->flags & XPC_C_RCLOSEREPLY))
@@ -118,7 +122,7 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags)
118 /* wake those waiting for notify completion */ 122 /* wake those waiting for notify completion */
119 if (atomic_read(&ch->n_to_notify) > 0) { 123 if (atomic_read(&ch->n_to_notify) > 0) {
120 /* we do callout while holding ch->lock, callout can't block */ 124 /* we do callout while holding ch->lock, callout can't block */
121 xpc_notify_senders_of_disconnect(ch); 125 xpc_arch_ops.notify_senders_of_disconnect(ch);
122 } 126 }
123 127
124 /* both sides are disconnected now */ 128 /* both sides are disconnected now */
@@ -132,7 +136,7 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags)
132 DBUG_ON(atomic_read(&ch->n_to_notify) != 0); 136 DBUG_ON(atomic_read(&ch->n_to_notify) != 0);
133 137
134 /* it's now safe to free the channel's message queues */ 138 /* it's now safe to free the channel's message queues */
135 xpc_teardown_msg_structures(ch); 139 xpc_arch_ops.teardown_msg_structures(ch);
136 140
137 ch->func = NULL; 141 ch->func = NULL;
138 ch->key = NULL; 142 ch->key = NULL;
@@ -144,8 +148,9 @@ xpc_process_disconnect(struct xpc_channel *ch, unsigned long *irq_flags)
144 148
145 /* 149 /*
146 * Mark the channel disconnected and clear all other flags, including 150 * Mark the channel disconnected and clear all other flags, including
147 * XPC_C_SETUP (because of call to xpc_teardown_msg_structures()) but 151 * XPC_C_SETUP (because of call to
148 * not including XPC_C_WDISCONNECT (if it was set). 152 * xpc_arch_ops.teardown_msg_structures()) but not including
153 * XPC_C_WDISCONNECT (if it was set).
149 */ 154 */
150 ch->flags = (XPC_C_DISCONNECTED | (ch->flags & XPC_C_WDISCONNECT)); 155 ch->flags = (XPC_C_DISCONNECTED | (ch->flags & XPC_C_WDISCONNECT));
151 156
@@ -184,6 +189,7 @@ xpc_process_openclose_chctl_flags(struct xpc_partition *part, int ch_number,
184 struct xpc_channel *ch = &part->channels[ch_number]; 189 struct xpc_channel *ch = &part->channels[ch_number];
185 enum xp_retval reason; 190 enum xp_retval reason;
186 enum xp_retval ret; 191 enum xp_retval ret;
192 int create_kthread = 0;
187 193
188 spin_lock_irqsave(&ch->lock, irq_flags); 194 spin_lock_irqsave(&ch->lock, irq_flags);
189 195
@@ -196,8 +202,7 @@ again:
196 * has had a chance to see that the channel is disconnected. 202 * has had a chance to see that the channel is disconnected.
197 */ 203 */
198 ch->delayed_chctl_flags |= chctl_flags; 204 ch->delayed_chctl_flags |= chctl_flags;
199 spin_unlock_irqrestore(&ch->lock, irq_flags); 205 goto out;
200 return;
201 } 206 }
202 207
203 if (chctl_flags & XPC_CHCTL_CLOSEREQUEST) { 208 if (chctl_flags & XPC_CHCTL_CLOSEREQUEST) {
@@ -239,8 +244,7 @@ again:
239 XPC_CHCTL_CLOSEREQUEST; 244 XPC_CHCTL_CLOSEREQUEST;
240 spin_unlock(&part->chctl_lock); 245 spin_unlock(&part->chctl_lock);
241 } 246 }
242 spin_unlock_irqrestore(&ch->lock, irq_flags); 247 goto out;
243 return;
244 } 248 }
245 249
246 XPC_SET_REASON(ch, 0, 0); 250 XPC_SET_REASON(ch, 0, 0);
@@ -250,7 +254,8 @@ again:
250 ch->flags |= (XPC_C_CONNECTING | XPC_C_ROPENREQUEST); 254 ch->flags |= (XPC_C_CONNECTING | XPC_C_ROPENREQUEST);
251 } 255 }
252 256
253 chctl_flags &= ~(XPC_CHCTL_OPENREQUEST | XPC_CHCTL_OPENREPLY); 257 chctl_flags &= ~(XPC_CHCTL_OPENREQUEST | XPC_CHCTL_OPENREPLY |
258 XPC_CHCTL_OPENCOMPLETE);
254 259
255 /* 260 /*
256 * The meaningful CLOSEREQUEST connection state fields are: 261 * The meaningful CLOSEREQUEST connection state fields are:
@@ -269,8 +274,7 @@ again:
269 XPC_DISCONNECT_CHANNEL(ch, reason, &irq_flags); 274 XPC_DISCONNECT_CHANNEL(ch, reason, &irq_flags);
270 275
271 DBUG_ON(chctl_flags & XPC_CHCTL_CLOSEREPLY); 276 DBUG_ON(chctl_flags & XPC_CHCTL_CLOSEREPLY);
272 spin_unlock_irqrestore(&ch->lock, irq_flags); 277 goto out;
273 return;
274 } 278 }
275 279
276 xpc_process_disconnect(ch, &irq_flags); 280 xpc_process_disconnect(ch, &irq_flags);
@@ -283,8 +287,7 @@ again:
283 287
284 if (ch->flags & XPC_C_DISCONNECTED) { 288 if (ch->flags & XPC_C_DISCONNECTED) {
285 DBUG_ON(part->act_state != XPC_P_AS_DEACTIVATING); 289 DBUG_ON(part->act_state != XPC_P_AS_DEACTIVATING);
286 spin_unlock_irqrestore(&ch->lock, irq_flags); 290 goto out;
287 return;
288 } 291 }
289 292
290 DBUG_ON(!(ch->flags & XPC_C_CLOSEREQUEST)); 293 DBUG_ON(!(ch->flags & XPC_C_CLOSEREQUEST));
@@ -299,8 +302,7 @@ again:
299 XPC_CHCTL_CLOSEREPLY; 302 XPC_CHCTL_CLOSEREPLY;
300 spin_unlock(&part->chctl_lock); 303 spin_unlock(&part->chctl_lock);
301 } 304 }
302 spin_unlock_irqrestore(&ch->lock, irq_flags); 305 goto out;
303 return;
304 } 306 }
305 307
306 ch->flags |= XPC_C_RCLOSEREPLY; 308 ch->flags |= XPC_C_RCLOSEREPLY;
@@ -320,14 +322,12 @@ again:
320 322
321 if (part->act_state == XPC_P_AS_DEACTIVATING || 323 if (part->act_state == XPC_P_AS_DEACTIVATING ||
322 (ch->flags & XPC_C_ROPENREQUEST)) { 324 (ch->flags & XPC_C_ROPENREQUEST)) {
323 spin_unlock_irqrestore(&ch->lock, irq_flags); 325 goto out;
324 return;
325 } 326 }
326 327
327 if (ch->flags & (XPC_C_DISCONNECTING | XPC_C_WDISCONNECT)) { 328 if (ch->flags & (XPC_C_DISCONNECTING | XPC_C_WDISCONNECT)) {
328 ch->delayed_chctl_flags |= XPC_CHCTL_OPENREQUEST; 329 ch->delayed_chctl_flags |= XPC_CHCTL_OPENREQUEST;
329 spin_unlock_irqrestore(&ch->lock, irq_flags); 330 goto out;
330 return;
331 } 331 }
332 DBUG_ON(!(ch->flags & (XPC_C_DISCONNECTED | 332 DBUG_ON(!(ch->flags & (XPC_C_DISCONNECTED |
333 XPC_C_OPENREQUEST))); 333 XPC_C_OPENREQUEST)));
@@ -341,8 +341,7 @@ again:
341 */ 341 */
342 if (args->entry_size == 0 || args->local_nentries == 0) { 342 if (args->entry_size == 0 || args->local_nentries == 0) {
343 /* assume OPENREQUEST was delayed by mistake */ 343 /* assume OPENREQUEST was delayed by mistake */
344 spin_unlock_irqrestore(&ch->lock, irq_flags); 344 goto out;
345 return;
346 } 345 }
347 346
348 ch->flags |= (XPC_C_ROPENREQUEST | XPC_C_CONNECTING); 347 ch->flags |= (XPC_C_ROPENREQUEST | XPC_C_CONNECTING);
@@ -352,8 +351,7 @@ again:
352 if (args->entry_size != ch->entry_size) { 351 if (args->entry_size != ch->entry_size) {
353 XPC_DISCONNECT_CHANNEL(ch, xpUnequalMsgSizes, 352 XPC_DISCONNECT_CHANNEL(ch, xpUnequalMsgSizes,
354 &irq_flags); 353 &irq_flags);
355 spin_unlock_irqrestore(&ch->lock, irq_flags); 354 goto out;
356 return;
357 } 355 }
358 } else { 356 } else {
359 ch->entry_size = args->entry_size; 357 ch->entry_size = args->entry_size;
@@ -375,15 +373,13 @@ again:
375 args->local_msgqueue_pa, args->local_nentries, 373 args->local_msgqueue_pa, args->local_nentries,
376 args->remote_nentries, ch->partid, ch->number); 374 args->remote_nentries, ch->partid, ch->number);
377 375
378 if (ch->flags & (XPC_C_DISCONNECTING | XPC_C_DISCONNECTED)) { 376 if (ch->flags & (XPC_C_DISCONNECTING | XPC_C_DISCONNECTED))
379 spin_unlock_irqrestore(&ch->lock, irq_flags); 377 goto out;
380 return; 378
381 }
382 if (!(ch->flags & XPC_C_OPENREQUEST)) { 379 if (!(ch->flags & XPC_C_OPENREQUEST)) {
383 XPC_DISCONNECT_CHANNEL(ch, xpOpenCloseError, 380 XPC_DISCONNECT_CHANNEL(ch, xpOpenCloseError,
384 &irq_flags); 381 &irq_flags);
385 spin_unlock_irqrestore(&ch->lock, irq_flags); 382 goto out;
386 return;
387 } 383 }
388 384
389 DBUG_ON(!(ch->flags & XPC_C_ROPENREQUEST)); 385 DBUG_ON(!(ch->flags & XPC_C_ROPENREQUEST));
@@ -400,11 +396,11 @@ again:
400 DBUG_ON(args->local_nentries == 0); 396 DBUG_ON(args->local_nentries == 0);
401 DBUG_ON(args->remote_nentries == 0); 397 DBUG_ON(args->remote_nentries == 0);
402 398
403 ret = xpc_save_remote_msgqueue_pa(ch, args->local_msgqueue_pa); 399 ret = xpc_arch_ops.save_remote_msgqueue_pa(ch,
400 args->local_msgqueue_pa);
404 if (ret != xpSuccess) { 401 if (ret != xpSuccess) {
405 XPC_DISCONNECT_CHANNEL(ch, ret, &irq_flags); 402 XPC_DISCONNECT_CHANNEL(ch, ret, &irq_flags);
406 spin_unlock_irqrestore(&ch->lock, irq_flags); 403 goto out;
407 return;
408 } 404 }
409 ch->flags |= XPC_C_ROPENREPLY; 405 ch->flags |= XPC_C_ROPENREPLY;
410 406
@@ -430,7 +426,36 @@ again:
430 xpc_process_connect(ch, &irq_flags); 426 xpc_process_connect(ch, &irq_flags);
431 } 427 }
432 428
429 if (chctl_flags & XPC_CHCTL_OPENCOMPLETE) {
430
431 dev_dbg(xpc_chan, "XPC_CHCTL_OPENCOMPLETE received from "
432 "partid=%d, channel=%d\n", ch->partid, ch->number);
433
434 if (ch->flags & (XPC_C_DISCONNECTING | XPC_C_DISCONNECTED))
435 goto out;
436
437 if (!(ch->flags & XPC_C_OPENREQUEST) ||
438 !(ch->flags & XPC_C_OPENREPLY)) {
439 XPC_DISCONNECT_CHANNEL(ch, xpOpenCloseError,
440 &irq_flags);
441 goto out;
442 }
443
444 DBUG_ON(!(ch->flags & XPC_C_ROPENREQUEST));
445 DBUG_ON(!(ch->flags & XPC_C_ROPENREPLY));
446 DBUG_ON(!(ch->flags & XPC_C_CONNECTED));
447
448 ch->flags |= XPC_C_ROPENCOMPLETE;
449
450 xpc_process_connect(ch, &irq_flags);
451 create_kthread = 1;
452 }
453
454out:
433 spin_unlock_irqrestore(&ch->lock, irq_flags); 455 spin_unlock_irqrestore(&ch->lock, irq_flags);
456
457 if (create_kthread)
458 xpc_create_kthreads(ch, 1, 0);
434} 459}
435 460
436/* 461/*
@@ -508,7 +533,7 @@ xpc_connect_channel(struct xpc_channel *ch)
508 /* initiate the connection */ 533 /* initiate the connection */
509 534
510 ch->flags |= (XPC_C_OPENREQUEST | XPC_C_CONNECTING); 535 ch->flags |= (XPC_C_OPENREQUEST | XPC_C_CONNECTING);
511 xpc_send_chctl_openrequest(ch, &irq_flags); 536 xpc_arch_ops.send_chctl_openrequest(ch, &irq_flags);
512 537
513 xpc_process_connect(ch, &irq_flags); 538 xpc_process_connect(ch, &irq_flags);
514 539
@@ -526,7 +551,7 @@ xpc_process_sent_chctl_flags(struct xpc_partition *part)
526 int ch_number; 551 int ch_number;
527 u32 ch_flags; 552 u32 ch_flags;
528 553
529 chctl.all_flags = xpc_get_chctl_all_flags(part); 554 chctl.all_flags = xpc_arch_ops.get_chctl_all_flags(part);
530 555
531 /* 556 /*
532 * Initiate channel connections for registered channels. 557 * Initiate channel connections for registered channels.
@@ -564,10 +589,6 @@ xpc_process_sent_chctl_flags(struct xpc_partition *part)
564 if (!(ch_flags & XPC_C_OPENREQUEST)) { 589 if (!(ch_flags & XPC_C_OPENREQUEST)) {
565 DBUG_ON(ch_flags & XPC_C_SETUP); 590 DBUG_ON(ch_flags & XPC_C_SETUP);
566 (void)xpc_connect_channel(ch); 591 (void)xpc_connect_channel(ch);
567 } else {
568 spin_lock_irqsave(&ch->lock, irq_flags);
569 xpc_process_connect(ch, &irq_flags);
570 spin_unlock_irqrestore(&ch->lock, irq_flags);
571 } 592 }
572 continue; 593 continue;
573 } 594 }
@@ -579,7 +600,7 @@ xpc_process_sent_chctl_flags(struct xpc_partition *part)
579 */ 600 */
580 601
581 if (chctl.flags[ch_number] & XPC_MSG_CHCTL_FLAGS) 602 if (chctl.flags[ch_number] & XPC_MSG_CHCTL_FLAGS)
582 xpc_process_msg_chctl_flags(part, ch_number); 603 xpc_arch_ops.process_msg_chctl_flags(part, ch_number);
583 } 604 }
584} 605}
585 606
@@ -755,7 +776,7 @@ xpc_disconnect_channel(const int line, struct xpc_channel *ch,
755 XPC_C_ROPENREQUEST | XPC_C_ROPENREPLY | 776 XPC_C_ROPENREQUEST | XPC_C_ROPENREPLY |
756 XPC_C_CONNECTING | XPC_C_CONNECTED); 777 XPC_C_CONNECTING | XPC_C_CONNECTED);
757 778
758 xpc_send_chctl_closerequest(ch, irq_flags); 779 xpc_arch_ops.send_chctl_closerequest(ch, irq_flags);
759 780
760 if (channel_was_connected) 781 if (channel_was_connected)
761 ch->flags |= XPC_C_WASCONNECTED; 782 ch->flags |= XPC_C_WASCONNECTED;
@@ -862,8 +883,8 @@ xpc_initiate_send(short partid, int ch_number, u32 flags, void *payload,
862 DBUG_ON(payload == NULL); 883 DBUG_ON(payload == NULL);
863 884
864 if (xpc_part_ref(part)) { 885 if (xpc_part_ref(part)) {
865 ret = xpc_send_payload(&part->channels[ch_number], flags, 886 ret = xpc_arch_ops.send_payload(&part->channels[ch_number],
866 payload, payload_size, 0, NULL, NULL); 887 flags, payload, payload_size, 0, NULL, NULL);
867 xpc_part_deref(part); 888 xpc_part_deref(part);
868 } 889 }
869 890
@@ -914,9 +935,8 @@ xpc_initiate_send_notify(short partid, int ch_number, u32 flags, void *payload,
914 DBUG_ON(func == NULL); 935 DBUG_ON(func == NULL);
915 936
916 if (xpc_part_ref(part)) { 937 if (xpc_part_ref(part)) {
917 ret = xpc_send_payload(&part->channels[ch_number], flags, 938 ret = xpc_arch_ops.send_payload(&part->channels[ch_number],
918 payload, payload_size, XPC_N_CALL, func, 939 flags, payload, payload_size, XPC_N_CALL, func, key);
919 key);
920 xpc_part_deref(part); 940 xpc_part_deref(part);
921 } 941 }
922 return ret; 942 return ret;
@@ -930,7 +950,7 @@ xpc_deliver_payload(struct xpc_channel *ch)
930{ 950{
931 void *payload; 951 void *payload;
932 952
933 payload = xpc_get_deliverable_payload(ch); 953 payload = xpc_arch_ops.get_deliverable_payload(ch);
934 if (payload != NULL) { 954 if (payload != NULL) {
935 955
936 /* 956 /*
@@ -984,7 +1004,7 @@ xpc_initiate_received(short partid, int ch_number, void *payload)
984 DBUG_ON(ch_number < 0 || ch_number >= part->nchannels); 1004 DBUG_ON(ch_number < 0 || ch_number >= part->nchannels);
985 1005
986 ch = &part->channels[ch_number]; 1006 ch = &part->channels[ch_number];
987 xpc_received_payload(ch, payload); 1007 xpc_arch_ops.received_payload(ch, payload);
988 1008
989 /* the call to xpc_msgqueue_ref() was done by xpc_deliver_payload() */ 1009 /* the call to xpc_msgqueue_ref() was done by xpc_deliver_payload() */
990 xpc_msgqueue_deref(ch); 1010 xpc_msgqueue_deref(ch);
diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
index 1ab9fda87fab..fd3688a3e23f 100644
--- a/drivers/misc/sgi-xp/xpc_main.c
+++ b/drivers/misc/sgi-xp/xpc_main.c
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (c) 2004-2008 Silicon Graphics, Inc. All Rights Reserved. 6 * Copyright (c) 2004-2009 Silicon Graphics, Inc. All Rights Reserved.
7 */ 7 */
8 8
9/* 9/*
@@ -150,7 +150,6 @@ DECLARE_WAIT_QUEUE_HEAD(xpc_activate_IRQ_wq);
150 150
151static unsigned long xpc_hb_check_timeout; 151static unsigned long xpc_hb_check_timeout;
152static struct timer_list xpc_hb_timer; 152static struct timer_list xpc_hb_timer;
153void *xpc_heartbeating_to_mask;
154 153
155/* notification that the xpc_hb_checker thread has exited */ 154/* notification that the xpc_hb_checker thread has exited */
156static DECLARE_COMPLETION(xpc_hb_checker_exited); 155static DECLARE_COMPLETION(xpc_hb_checker_exited);
@@ -170,62 +169,7 @@ static struct notifier_block xpc_die_notifier = {
170 .notifier_call = xpc_system_die, 169 .notifier_call = xpc_system_die,
171}; 170};
172 171
173int (*xpc_setup_partitions_sn) (void); 172struct xpc_arch_operations xpc_arch_ops;
174void (*xpc_teardown_partitions_sn) (void);
175enum xp_retval (*xpc_get_partition_rsvd_page_pa) (void *buf, u64 *cookie,
176 unsigned long *rp_pa,
177 size_t *len);
178int (*xpc_setup_rsvd_page_sn) (struct xpc_rsvd_page *rp);
179void (*xpc_heartbeat_init) (void);
180void (*xpc_heartbeat_exit) (void);
181void (*xpc_increment_heartbeat) (void);
182void (*xpc_offline_heartbeat) (void);
183void (*xpc_online_heartbeat) (void);
184enum xp_retval (*xpc_get_remote_heartbeat) (struct xpc_partition *part);
185
186enum xp_retval (*xpc_make_first_contact) (struct xpc_partition *part);
187void (*xpc_notify_senders_of_disconnect) (struct xpc_channel *ch);
188u64 (*xpc_get_chctl_all_flags) (struct xpc_partition *part);
189enum xp_retval (*xpc_setup_msg_structures) (struct xpc_channel *ch);
190void (*xpc_teardown_msg_structures) (struct xpc_channel *ch);
191void (*xpc_process_msg_chctl_flags) (struct xpc_partition *part, int ch_number);
192int (*xpc_n_of_deliverable_payloads) (struct xpc_channel *ch);
193void *(*xpc_get_deliverable_payload) (struct xpc_channel *ch);
194
195void (*xpc_request_partition_activation) (struct xpc_rsvd_page *remote_rp,
196 unsigned long remote_rp_pa,
197 int nasid);
198void (*xpc_request_partition_reactivation) (struct xpc_partition *part);
199void (*xpc_request_partition_deactivation) (struct xpc_partition *part);
200void (*xpc_cancel_partition_deactivation_request) (struct xpc_partition *part);
201
202void (*xpc_process_activate_IRQ_rcvd) (void);
203enum xp_retval (*xpc_setup_ch_structures_sn) (struct xpc_partition *part);
204void (*xpc_teardown_ch_structures_sn) (struct xpc_partition *part);
205
206void (*xpc_indicate_partition_engaged) (struct xpc_partition *part);
207int (*xpc_partition_engaged) (short partid);
208int (*xpc_any_partition_engaged) (void);
209void (*xpc_indicate_partition_disengaged) (struct xpc_partition *part);
210void (*xpc_assume_partition_disengaged) (short partid);
211
212void (*xpc_send_chctl_closerequest) (struct xpc_channel *ch,
213 unsigned long *irq_flags);
214void (*xpc_send_chctl_closereply) (struct xpc_channel *ch,
215 unsigned long *irq_flags);
216void (*xpc_send_chctl_openrequest) (struct xpc_channel *ch,
217 unsigned long *irq_flags);
218void (*xpc_send_chctl_openreply) (struct xpc_channel *ch,
219 unsigned long *irq_flags);
220
221enum xp_retval (*xpc_save_remote_msgqueue_pa) (struct xpc_channel *ch,
222 unsigned long msgqueue_pa);
223
224enum xp_retval (*xpc_send_payload) (struct xpc_channel *ch, u32 flags,
225 void *payload, u16 payload_size,
226 u8 notify_type, xpc_notify_func func,
227 void *key);
228void (*xpc_received_payload) (struct xpc_channel *ch, void *payload);
229 173
230/* 174/*
231 * Timer function to enforce the timelimit on the partition disengage. 175 * Timer function to enforce the timelimit on the partition disengage.
@@ -240,7 +184,7 @@ xpc_timeout_partition_disengage(unsigned long data)
240 (void)xpc_partition_disengaged(part); 184 (void)xpc_partition_disengaged(part);
241 185
242 DBUG_ON(part->disengage_timeout != 0); 186 DBUG_ON(part->disengage_timeout != 0);
243 DBUG_ON(xpc_partition_engaged(XPC_PARTID(part))); 187 DBUG_ON(xpc_arch_ops.partition_engaged(XPC_PARTID(part)));
244} 188}
245 189
246/* 190/*
@@ -251,7 +195,7 @@ xpc_timeout_partition_disengage(unsigned long data)
251static void 195static void
252xpc_hb_beater(unsigned long dummy) 196xpc_hb_beater(unsigned long dummy)
253{ 197{
254 xpc_increment_heartbeat(); 198 xpc_arch_ops.increment_heartbeat();
255 199
256 if (time_is_before_eq_jiffies(xpc_hb_check_timeout)) 200 if (time_is_before_eq_jiffies(xpc_hb_check_timeout))
257 wake_up_interruptible(&xpc_activate_IRQ_wq); 201 wake_up_interruptible(&xpc_activate_IRQ_wq);
@@ -263,7 +207,7 @@ xpc_hb_beater(unsigned long dummy)
263static void 207static void
264xpc_start_hb_beater(void) 208xpc_start_hb_beater(void)
265{ 209{
266 xpc_heartbeat_init(); 210 xpc_arch_ops.heartbeat_init();
267 init_timer(&xpc_hb_timer); 211 init_timer(&xpc_hb_timer);
268 xpc_hb_timer.function = xpc_hb_beater; 212 xpc_hb_timer.function = xpc_hb_beater;
269 xpc_hb_beater(0); 213 xpc_hb_beater(0);
@@ -273,7 +217,7 @@ static void
273xpc_stop_hb_beater(void) 217xpc_stop_hb_beater(void)
274{ 218{
275 del_timer_sync(&xpc_hb_timer); 219 del_timer_sync(&xpc_hb_timer);
276 xpc_heartbeat_exit(); 220 xpc_arch_ops.heartbeat_exit();
277} 221}
278 222
279/* 223/*
@@ -302,7 +246,7 @@ xpc_check_remote_hb(void)
302 continue; 246 continue;
303 } 247 }
304 248
305 ret = xpc_get_remote_heartbeat(part); 249 ret = xpc_arch_ops.get_remote_heartbeat(part);
306 if (ret != xpSuccess) 250 if (ret != xpSuccess)
307 XPC_DEACTIVATE_PARTITION(part, ret); 251 XPC_DEACTIVATE_PARTITION(part, ret);
308 } 252 }
@@ -353,7 +297,7 @@ xpc_hb_checker(void *ignore)
353 force_IRQ = 0; 297 force_IRQ = 0;
354 dev_dbg(xpc_part, "processing activate IRQs " 298 dev_dbg(xpc_part, "processing activate IRQs "
355 "received\n"); 299 "received\n");
356 xpc_process_activate_IRQ_rcvd(); 300 xpc_arch_ops.process_activate_IRQ_rcvd();
357 } 301 }
358 302
359 /* wait for IRQ or timeout */ 303 /* wait for IRQ or timeout */
@@ -528,7 +472,7 @@ xpc_setup_ch_structures(struct xpc_partition *part)
528 init_waitqueue_head(&ch->idle_wq); 472 init_waitqueue_head(&ch->idle_wq);
529 } 473 }
530 474
531 ret = xpc_setup_ch_structures_sn(part); 475 ret = xpc_arch_ops.setup_ch_structures(part);
532 if (ret != xpSuccess) 476 if (ret != xpSuccess)
533 goto out_2; 477 goto out_2;
534 478
@@ -572,7 +516,7 @@ xpc_teardown_ch_structures(struct xpc_partition *part)
572 516
573 /* now we can begin tearing down the infrastructure */ 517 /* now we can begin tearing down the infrastructure */
574 518
575 xpc_teardown_ch_structures_sn(part); 519 xpc_arch_ops.teardown_ch_structures(part);
576 520
577 kfree(part->remote_openclose_args_base); 521 kfree(part->remote_openclose_args_base);
578 part->remote_openclose_args = NULL; 522 part->remote_openclose_args = NULL;
@@ -620,12 +564,12 @@ xpc_activating(void *__partid)
620 564
621 dev_dbg(xpc_part, "activating partition %d\n", partid); 565 dev_dbg(xpc_part, "activating partition %d\n", partid);
622 566
623 xpc_allow_hb(partid); 567 xpc_arch_ops.allow_hb(partid);
624 568
625 if (xpc_setup_ch_structures(part) == xpSuccess) { 569 if (xpc_setup_ch_structures(part) == xpSuccess) {
626 (void)xpc_part_ref(part); /* this will always succeed */ 570 (void)xpc_part_ref(part); /* this will always succeed */
627 571
628 if (xpc_make_first_contact(part) == xpSuccess) { 572 if (xpc_arch_ops.make_first_contact(part) == xpSuccess) {
629 xpc_mark_partition_active(part); 573 xpc_mark_partition_active(part);
630 xpc_channel_mgr(part); 574 xpc_channel_mgr(part);
631 /* won't return until partition is deactivating */ 575 /* won't return until partition is deactivating */
@@ -635,12 +579,12 @@ xpc_activating(void *__partid)
635 xpc_teardown_ch_structures(part); 579 xpc_teardown_ch_structures(part);
636 } 580 }
637 581
638 xpc_disallow_hb(partid); 582 xpc_arch_ops.disallow_hb(partid);
639 xpc_mark_partition_inactive(part); 583 xpc_mark_partition_inactive(part);
640 584
641 if (part->reason == xpReactivating) { 585 if (part->reason == xpReactivating) {
642 /* interrupting ourselves results in activating partition */ 586 /* interrupting ourselves results in activating partition */
643 xpc_request_partition_reactivation(part); 587 xpc_arch_ops.request_partition_reactivation(part);
644 } 588 }
645 589
646 return 0; 590 return 0;
@@ -713,10 +657,13 @@ xpc_activate_kthreads(struct xpc_channel *ch, int needed)
713static void 657static void
714xpc_kthread_waitmsgs(struct xpc_partition *part, struct xpc_channel *ch) 658xpc_kthread_waitmsgs(struct xpc_partition *part, struct xpc_channel *ch)
715{ 659{
660 int (*n_of_deliverable_payloads) (struct xpc_channel *) =
661 xpc_arch_ops.n_of_deliverable_payloads;
662
716 do { 663 do {
717 /* deliver messages to their intended recipients */ 664 /* deliver messages to their intended recipients */
718 665
719 while (xpc_n_of_deliverable_payloads(ch) > 0 && 666 while (n_of_deliverable_payloads(ch) > 0 &&
720 !(ch->flags & XPC_C_DISCONNECTING)) { 667 !(ch->flags & XPC_C_DISCONNECTING)) {
721 xpc_deliver_payload(ch); 668 xpc_deliver_payload(ch);
722 } 669 }
@@ -732,7 +679,7 @@ xpc_kthread_waitmsgs(struct xpc_partition *part, struct xpc_channel *ch)
732 "wait_event_interruptible_exclusive()\n"); 679 "wait_event_interruptible_exclusive()\n");
733 680
734 (void)wait_event_interruptible_exclusive(ch->idle_wq, 681 (void)wait_event_interruptible_exclusive(ch->idle_wq,
735 (xpc_n_of_deliverable_payloads(ch) > 0 || 682 (n_of_deliverable_payloads(ch) > 0 ||
736 (ch->flags & XPC_C_DISCONNECTING))); 683 (ch->flags & XPC_C_DISCONNECTING)));
737 684
738 atomic_dec(&ch->kthreads_idle); 685 atomic_dec(&ch->kthreads_idle);
@@ -749,6 +696,8 @@ xpc_kthread_start(void *args)
749 struct xpc_channel *ch; 696 struct xpc_channel *ch;
750 int n_needed; 697 int n_needed;
751 unsigned long irq_flags; 698 unsigned long irq_flags;
699 int (*n_of_deliverable_payloads) (struct xpc_channel *) =
700 xpc_arch_ops.n_of_deliverable_payloads;
752 701
753 dev_dbg(xpc_chan, "kthread starting, partid=%d, channel=%d\n", 702 dev_dbg(xpc_chan, "kthread starting, partid=%d, channel=%d\n",
754 partid, ch_number); 703 partid, ch_number);
@@ -777,7 +726,7 @@ xpc_kthread_start(void *args)
777 * additional kthreads to help deliver them. We only 726 * additional kthreads to help deliver them. We only
778 * need one less than total #of messages to deliver. 727 * need one less than total #of messages to deliver.
779 */ 728 */
780 n_needed = xpc_n_of_deliverable_payloads(ch) - 1; 729 n_needed = n_of_deliverable_payloads(ch) - 1;
781 if (n_needed > 0 && !(ch->flags & XPC_C_DISCONNECTING)) 730 if (n_needed > 0 && !(ch->flags & XPC_C_DISCONNECTING))
782 xpc_activate_kthreads(ch, n_needed); 731 xpc_activate_kthreads(ch, n_needed);
783 732
@@ -805,7 +754,7 @@ xpc_kthread_start(void *args)
805 754
806 if (atomic_dec_return(&ch->kthreads_assigned) == 0 && 755 if (atomic_dec_return(&ch->kthreads_assigned) == 0 &&
807 atomic_dec_return(&part->nchannels_engaged) == 0) { 756 atomic_dec_return(&part->nchannels_engaged) == 0) {
808 xpc_indicate_partition_disengaged(part); 757 xpc_arch_ops.indicate_partition_disengaged(part);
809 } 758 }
810 759
811 xpc_msgqueue_deref(ch); 760 xpc_msgqueue_deref(ch);
@@ -837,6 +786,8 @@ xpc_create_kthreads(struct xpc_channel *ch, int needed,
837 u64 args = XPC_PACK_ARGS(ch->partid, ch->number); 786 u64 args = XPC_PACK_ARGS(ch->partid, ch->number);
838 struct xpc_partition *part = &xpc_partitions[ch->partid]; 787 struct xpc_partition *part = &xpc_partitions[ch->partid];
839 struct task_struct *kthread; 788 struct task_struct *kthread;
789 void (*indicate_partition_disengaged) (struct xpc_partition *) =
790 xpc_arch_ops.indicate_partition_disengaged;
840 791
841 while (needed-- > 0) { 792 while (needed-- > 0) {
842 793
@@ -858,7 +809,7 @@ xpc_create_kthreads(struct xpc_channel *ch, int needed,
858 809
859 } else if (atomic_inc_return(&ch->kthreads_assigned) == 1 && 810 } else if (atomic_inc_return(&ch->kthreads_assigned) == 1 &&
860 atomic_inc_return(&part->nchannels_engaged) == 1) { 811 atomic_inc_return(&part->nchannels_engaged) == 1) {
861 xpc_indicate_partition_engaged(part); 812 xpc_arch_ops.indicate_partition_engaged(part);
862 } 813 }
863 (void)xpc_part_ref(part); 814 (void)xpc_part_ref(part);
864 xpc_msgqueue_ref(ch); 815 xpc_msgqueue_ref(ch);
@@ -880,7 +831,7 @@ xpc_create_kthreads(struct xpc_channel *ch, int needed,
880 831
881 if (atomic_dec_return(&ch->kthreads_assigned) == 0 && 832 if (atomic_dec_return(&ch->kthreads_assigned) == 0 &&
882 atomic_dec_return(&part->nchannels_engaged) == 0) { 833 atomic_dec_return(&part->nchannels_engaged) == 0) {
883 xpc_indicate_partition_disengaged(part); 834 indicate_partition_disengaged(part);
884 } 835 }
885 xpc_msgqueue_deref(ch); 836 xpc_msgqueue_deref(ch);
886 xpc_part_deref(part); 837 xpc_part_deref(part);
@@ -993,13 +944,13 @@ xpc_setup_partitions(void)
993 atomic_set(&part->references, 0); 944 atomic_set(&part->references, 0);
994 } 945 }
995 946
996 return xpc_setup_partitions_sn(); 947 return xpc_arch_ops.setup_partitions();
997} 948}
998 949
999static void 950static void
1000xpc_teardown_partitions(void) 951xpc_teardown_partitions(void)
1001{ 952{
1002 xpc_teardown_partitions_sn(); 953 xpc_arch_ops.teardown_partitions();
1003 kfree(xpc_partitions); 954 kfree(xpc_partitions);
1004} 955}
1005 956
@@ -1055,7 +1006,7 @@ xpc_do_exit(enum xp_retval reason)
1055 disengage_timeout = part->disengage_timeout; 1006 disengage_timeout = part->disengage_timeout;
1056 } 1007 }
1057 1008
1058 if (xpc_any_partition_engaged()) { 1009 if (xpc_arch_ops.any_partition_engaged()) {
1059 if (time_is_before_jiffies(printmsg_time)) { 1010 if (time_is_before_jiffies(printmsg_time)) {
1060 dev_info(xpc_part, "waiting for remote " 1011 dev_info(xpc_part, "waiting for remote "
1061 "partitions to deactivate, timeout in " 1012 "partitions to deactivate, timeout in "
@@ -1086,8 +1037,7 @@ xpc_do_exit(enum xp_retval reason)
1086 1037
1087 } while (1); 1038 } while (1);
1088 1039
1089 DBUG_ON(xpc_any_partition_engaged()); 1040 DBUG_ON(xpc_arch_ops.any_partition_engaged());
1090 DBUG_ON(xpc_any_hbs_allowed() != 0);
1091 1041
1092 xpc_teardown_rsvd_page(); 1042 xpc_teardown_rsvd_page();
1093 1043
@@ -1152,15 +1102,15 @@ xpc_die_deactivate(void)
1152 /* keep xpc_hb_checker thread from doing anything (just in case) */ 1102 /* keep xpc_hb_checker thread from doing anything (just in case) */
1153 xpc_exiting = 1; 1103 xpc_exiting = 1;
1154 1104
1155 xpc_disallow_all_hbs(); /*indicate we're deactivated */ 1105 xpc_arch_ops.disallow_all_hbs(); /*indicate we're deactivated */
1156 1106
1157 for (partid = 0; partid < xp_max_npartitions; partid++) { 1107 for (partid = 0; partid < xp_max_npartitions; partid++) {
1158 part = &xpc_partitions[partid]; 1108 part = &xpc_partitions[partid];
1159 1109
1160 if (xpc_partition_engaged(partid) || 1110 if (xpc_arch_ops.partition_engaged(partid) ||
1161 part->act_state != XPC_P_AS_INACTIVE) { 1111 part->act_state != XPC_P_AS_INACTIVE) {
1162 xpc_request_partition_deactivation(part); 1112 xpc_arch_ops.request_partition_deactivation(part);
1163 xpc_indicate_partition_disengaged(part); 1113 xpc_arch_ops.indicate_partition_disengaged(part);
1164 } 1114 }
1165 } 1115 }
1166 1116
@@ -1177,7 +1127,7 @@ xpc_die_deactivate(void)
1177 wait_to_print = XPC_DEACTIVATE_PRINTMSG_INTERVAL * 1000 * 5; 1127 wait_to_print = XPC_DEACTIVATE_PRINTMSG_INTERVAL * 1000 * 5;
1178 1128
1179 while (1) { 1129 while (1) {
1180 any_engaged = xpc_any_partition_engaged(); 1130 any_engaged = xpc_arch_ops.any_partition_engaged();
1181 if (!any_engaged) { 1131 if (!any_engaged) {
1182 dev_info(xpc_part, "all partitions have deactivated\n"); 1132 dev_info(xpc_part, "all partitions have deactivated\n");
1183 break; 1133 break;
@@ -1186,7 +1136,7 @@ xpc_die_deactivate(void)
1186 if (!keep_waiting--) { 1136 if (!keep_waiting--) {
1187 for (partid = 0; partid < xp_max_npartitions; 1137 for (partid = 0; partid < xp_max_npartitions;
1188 partid++) { 1138 partid++) {
1189 if (xpc_partition_engaged(partid)) { 1139 if (xpc_arch_ops.partition_engaged(partid)) {
1190 dev_info(xpc_part, "deactivate from " 1140 dev_info(xpc_part, "deactivate from "
1191 "remote partition %d timed " 1141 "remote partition %d timed "
1192 "out\n", partid); 1142 "out\n", partid);
@@ -1233,7 +1183,7 @@ xpc_system_die(struct notifier_block *nb, unsigned long event, void *unused)
1233 /* fall through */ 1183 /* fall through */
1234 case DIE_MCA_MONARCH_ENTER: 1184 case DIE_MCA_MONARCH_ENTER:
1235 case DIE_INIT_MONARCH_ENTER: 1185 case DIE_INIT_MONARCH_ENTER:
1236 xpc_offline_heartbeat(); 1186 xpc_arch_ops.offline_heartbeat();
1237 break; 1187 break;
1238 1188
1239 case DIE_KDEBUG_LEAVE: 1189 case DIE_KDEBUG_LEAVE:
@@ -1244,7 +1194,7 @@ xpc_system_die(struct notifier_block *nb, unsigned long event, void *unused)
1244 /* fall through */ 1194 /* fall through */
1245 case DIE_MCA_MONARCH_LEAVE: 1195 case DIE_MCA_MONARCH_LEAVE:
1246 case DIE_INIT_MONARCH_LEAVE: 1196 case DIE_INIT_MONARCH_LEAVE:
1247 xpc_online_heartbeat(); 1197 xpc_arch_ops.online_heartbeat();
1248 break; 1198 break;
1249 } 1199 }
1250#else 1200#else
diff --git a/drivers/misc/sgi-xp/xpc_partition.c b/drivers/misc/sgi-xp/xpc_partition.c
index 6722f6fe4dc7..65877bc5edaa 100644
--- a/drivers/misc/sgi-xp/xpc_partition.c
+++ b/drivers/misc/sgi-xp/xpc_partition.c
@@ -70,6 +70,9 @@ xpc_get_rsvd_page_pa(int nasid)
70 size_t buf_len = 0; 70 size_t buf_len = 0;
71 void *buf = buf; 71 void *buf = buf;
72 void *buf_base = NULL; 72 void *buf_base = NULL;
73 enum xp_retval (*get_partition_rsvd_page_pa)
74 (void *, u64 *, unsigned long *, size_t *) =
75 xpc_arch_ops.get_partition_rsvd_page_pa;
73 76
74 while (1) { 77 while (1) {
75 78
@@ -79,8 +82,7 @@ xpc_get_rsvd_page_pa(int nasid)
79 * ??? function or have two versions? Rename rp_pa for UV to 82 * ??? function or have two versions? Rename rp_pa for UV to
80 * ??? rp_gpa? 83 * ??? rp_gpa?
81 */ 84 */
82 ret = xpc_get_partition_rsvd_page_pa(buf, &cookie, &rp_pa, 85 ret = get_partition_rsvd_page_pa(buf, &cookie, &rp_pa, &len);
83 &len);
84 86
85 dev_dbg(xpc_part, "SAL returned with ret=%d, cookie=0x%016lx, " 87 dev_dbg(xpc_part, "SAL returned with ret=%d, cookie=0x%016lx, "
86 "address=0x%016lx, len=0x%016lx\n", ret, 88 "address=0x%016lx, len=0x%016lx\n", ret,
@@ -172,7 +174,7 @@ xpc_setup_rsvd_page(void)
172 xpc_part_nasids = XPC_RP_PART_NASIDS(rp); 174 xpc_part_nasids = XPC_RP_PART_NASIDS(rp);
173 xpc_mach_nasids = XPC_RP_MACH_NASIDS(rp); 175 xpc_mach_nasids = XPC_RP_MACH_NASIDS(rp);
174 176
175 ret = xpc_setup_rsvd_page_sn(rp); 177 ret = xpc_arch_ops.setup_rsvd_page(rp);
176 if (ret != 0) 178 if (ret != 0)
177 return ret; 179 return ret;
178 180
@@ -264,7 +266,7 @@ xpc_partition_disengaged(struct xpc_partition *part)
264 short partid = XPC_PARTID(part); 266 short partid = XPC_PARTID(part);
265 int disengaged; 267 int disengaged;
266 268
267 disengaged = !xpc_partition_engaged(partid); 269 disengaged = !xpc_arch_ops.partition_engaged(partid);
268 if (part->disengage_timeout) { 270 if (part->disengage_timeout) {
269 if (!disengaged) { 271 if (!disengaged) {
270 if (time_is_after_jiffies(part->disengage_timeout)) { 272 if (time_is_after_jiffies(part->disengage_timeout)) {
@@ -280,7 +282,7 @@ xpc_partition_disengaged(struct xpc_partition *part)
280 dev_info(xpc_part, "deactivate request to remote " 282 dev_info(xpc_part, "deactivate request to remote "
281 "partition %d timed out\n", partid); 283 "partition %d timed out\n", partid);
282 xpc_disengage_timedout = 1; 284 xpc_disengage_timedout = 1;
283 xpc_assume_partition_disengaged(partid); 285 xpc_arch_ops.assume_partition_disengaged(partid);
284 disengaged = 1; 286 disengaged = 1;
285 } 287 }
286 part->disengage_timeout = 0; 288 part->disengage_timeout = 0;
@@ -294,7 +296,7 @@ xpc_partition_disengaged(struct xpc_partition *part)
294 if (part->act_state != XPC_P_AS_INACTIVE) 296 if (part->act_state != XPC_P_AS_INACTIVE)
295 xpc_wakeup_channel_mgr(part); 297 xpc_wakeup_channel_mgr(part);
296 298
297 xpc_cancel_partition_deactivation_request(part); 299 xpc_arch_ops.cancel_partition_deactivation_request(part);
298 } 300 }
299 return disengaged; 301 return disengaged;
300} 302}
@@ -339,7 +341,7 @@ xpc_deactivate_partition(const int line, struct xpc_partition *part,
339 spin_unlock_irqrestore(&part->act_lock, irq_flags); 341 spin_unlock_irqrestore(&part->act_lock, irq_flags);
340 if (reason == xpReactivating) { 342 if (reason == xpReactivating) {
341 /* we interrupt ourselves to reactivate partition */ 343 /* we interrupt ourselves to reactivate partition */
342 xpc_request_partition_reactivation(part); 344 xpc_arch_ops.request_partition_reactivation(part);
343 } 345 }
344 return; 346 return;
345 } 347 }
@@ -358,7 +360,7 @@ xpc_deactivate_partition(const int line, struct xpc_partition *part,
358 spin_unlock_irqrestore(&part->act_lock, irq_flags); 360 spin_unlock_irqrestore(&part->act_lock, irq_flags);
359 361
360 /* ask remote partition to deactivate with regard to us */ 362 /* ask remote partition to deactivate with regard to us */
361 xpc_request_partition_deactivation(part); 363 xpc_arch_ops.request_partition_deactivation(part);
362 364
363 /* set a timelimit on the disengage phase of the deactivation request */ 365 /* set a timelimit on the disengage phase of the deactivation request */
364 part->disengage_timeout = jiffies + (xpc_disengage_timelimit * HZ); 366 part->disengage_timeout = jiffies + (xpc_disengage_timelimit * HZ);
@@ -496,7 +498,7 @@ xpc_discovery(void)
496 continue; 498 continue;
497 } 499 }
498 500
499 xpc_request_partition_activation(remote_rp, 501 xpc_arch_ops.request_partition_activation(remote_rp,
500 remote_rp_pa, nasid); 502 remote_rp_pa, nasid);
501 } 503 }
502 } 504 }
diff --git a/drivers/misc/sgi-xp/xpc_sn2.c b/drivers/misc/sgi-xp/xpc_sn2.c
index eaaa964942de..915a3b495da5 100644
--- a/drivers/misc/sgi-xp/xpc_sn2.c
+++ b/drivers/misc/sgi-xp/xpc_sn2.c
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. 6 * Copyright (c) 2008-2009 Silicon Graphics, Inc. All Rights Reserved.
7 */ 7 */
8 8
9/* 9/*
@@ -60,14 +60,14 @@ static struct xpc_vars_sn2 *xpc_vars_sn2;
60static struct xpc_vars_part_sn2 *xpc_vars_part_sn2; 60static struct xpc_vars_part_sn2 *xpc_vars_part_sn2;
61 61
62static int 62static int
63xpc_setup_partitions_sn_sn2(void) 63xpc_setup_partitions_sn2(void)
64{ 64{
65 /* nothing needs to be done */ 65 /* nothing needs to be done */
66 return 0; 66 return 0;
67} 67}
68 68
69static void 69static void
70xpc_teardown_partitions_sn_sn2(void) 70xpc_teardown_partitions_sn2(void)
71{ 71{
72 /* nothing needs to be done */ 72 /* nothing needs to be done */
73} 73}
@@ -431,6 +431,13 @@ xpc_send_chctl_openreply_sn2(struct xpc_channel *ch, unsigned long *irq_flags)
431} 431}
432 432
433static void 433static void
434xpc_send_chctl_opencomplete_sn2(struct xpc_channel *ch,
435 unsigned long *irq_flags)
436{
437 XPC_SEND_NOTIFY_IRQ_SN2(ch, XPC_CHCTL_OPENCOMPLETE, irq_flags);
438}
439
440static void
434xpc_send_chctl_msgrequest_sn2(struct xpc_channel *ch) 441xpc_send_chctl_msgrequest_sn2(struct xpc_channel *ch)
435{ 442{
436 XPC_SEND_NOTIFY_IRQ_SN2(ch, XPC_CHCTL_MSGREQUEST, NULL); 443 XPC_SEND_NOTIFY_IRQ_SN2(ch, XPC_CHCTL_MSGREQUEST, NULL);
@@ -621,7 +628,7 @@ xpc_get_partition_rsvd_page_pa_sn2(void *buf, u64 *cookie, unsigned long *rp_pa,
621 628
622 629
623static int 630static int
624xpc_setup_rsvd_page_sn_sn2(struct xpc_rsvd_page *rp) 631xpc_setup_rsvd_page_sn2(struct xpc_rsvd_page *rp)
625{ 632{
626 struct amo *amos_page; 633 struct amo *amos_page;
627 int i; 634 int i;
@@ -629,7 +636,7 @@ xpc_setup_rsvd_page_sn_sn2(struct xpc_rsvd_page *rp)
629 636
630 xpc_vars_sn2 = XPC_RP_VARS(rp); 637 xpc_vars_sn2 = XPC_RP_VARS(rp);
631 638
632 rp->sn.vars_pa = xp_pa(xpc_vars_sn2); 639 rp->sn.sn2.vars_pa = xp_pa(xpc_vars_sn2);
633 640
634 /* vars_part array follows immediately after vars */ 641 /* vars_part array follows immediately after vars */
635 xpc_vars_part_sn2 = (struct xpc_vars_part_sn2 *)((u8 *)XPC_RP_VARS(rp) + 642 xpc_vars_part_sn2 = (struct xpc_vars_part_sn2 *)((u8 *)XPC_RP_VARS(rp) +
@@ -693,6 +700,33 @@ xpc_setup_rsvd_page_sn_sn2(struct xpc_rsvd_page *rp)
693 return 0; 700 return 0;
694} 701}
695 702
703static int
704xpc_hb_allowed_sn2(short partid, void *heartbeating_to_mask)
705{
706 return test_bit(partid, heartbeating_to_mask);
707}
708
709static void
710xpc_allow_hb_sn2(short partid)
711{
712 DBUG_ON(xpc_vars_sn2 == NULL);
713 set_bit(partid, xpc_vars_sn2->heartbeating_to_mask);
714}
715
716static void
717xpc_disallow_hb_sn2(short partid)
718{
719 DBUG_ON(xpc_vars_sn2 == NULL);
720 clear_bit(partid, xpc_vars_sn2->heartbeating_to_mask);
721}
722
723static void
724xpc_disallow_all_hbs_sn2(void)
725{
726 DBUG_ON(xpc_vars_sn2 == NULL);
727 bitmap_zero(xpc_vars_sn2->heartbeating_to_mask, xp_max_npartitions);
728}
729
696static void 730static void
697xpc_increment_heartbeat_sn2(void) 731xpc_increment_heartbeat_sn2(void)
698{ 732{
@@ -719,7 +753,6 @@ xpc_heartbeat_init_sn2(void)
719 DBUG_ON(xpc_vars_sn2 == NULL); 753 DBUG_ON(xpc_vars_sn2 == NULL);
720 754
721 bitmap_zero(xpc_vars_sn2->heartbeating_to_mask, XP_MAX_NPARTITIONS_SN2); 755 bitmap_zero(xpc_vars_sn2->heartbeating_to_mask, XP_MAX_NPARTITIONS_SN2);
722 xpc_heartbeating_to_mask = &xpc_vars_sn2->heartbeating_to_mask[0];
723 xpc_online_heartbeat_sn2(); 756 xpc_online_heartbeat_sn2();
724} 757}
725 758
@@ -751,9 +784,9 @@ xpc_get_remote_heartbeat_sn2(struct xpc_partition *part)
751 remote_vars->heartbeating_to_mask[0]); 784 remote_vars->heartbeating_to_mask[0]);
752 785
753 if ((remote_vars->heartbeat == part->last_heartbeat && 786 if ((remote_vars->heartbeat == part->last_heartbeat &&
754 remote_vars->heartbeat_offline == 0) || 787 !remote_vars->heartbeat_offline) ||
755 !xpc_hb_allowed(sn_partition_id, 788 !xpc_hb_allowed_sn2(sn_partition_id,
756 &remote_vars->heartbeating_to_mask)) { 789 remote_vars->heartbeating_to_mask)) {
757 ret = xpNoHeartbeat; 790 ret = xpNoHeartbeat;
758 } else { 791 } else {
759 part->last_heartbeat = remote_vars->heartbeat; 792 part->last_heartbeat = remote_vars->heartbeat;
@@ -972,7 +1005,7 @@ xpc_identify_activate_IRQ_req_sn2(int nasid)
972 return; 1005 return;
973 } 1006 }
974 1007
975 remote_vars_pa = remote_rp->sn.vars_pa; 1008 remote_vars_pa = remote_rp->sn.sn2.vars_pa;
976 remote_rp_version = remote_rp->version; 1009 remote_rp_version = remote_rp->version;
977 remote_rp_ts_jiffies = remote_rp->ts_jiffies; 1010 remote_rp_ts_jiffies = remote_rp->ts_jiffies;
978 1011
@@ -1129,7 +1162,7 @@ xpc_process_activate_IRQ_rcvd_sn2(void)
1129 * Setup the channel structures that are sn2 specific. 1162 * Setup the channel structures that are sn2 specific.
1130 */ 1163 */
1131static enum xp_retval 1164static enum xp_retval
1132xpc_setup_ch_structures_sn_sn2(struct xpc_partition *part) 1165xpc_setup_ch_structures_sn2(struct xpc_partition *part)
1133{ 1166{
1134 struct xpc_partition_sn2 *part_sn2 = &part->sn.sn2; 1167 struct xpc_partition_sn2 *part_sn2 = &part->sn.sn2;
1135 struct xpc_channel_sn2 *ch_sn2; 1168 struct xpc_channel_sn2 *ch_sn2;
@@ -1251,7 +1284,7 @@ out_1:
1251 * Teardown the channel structures that are sn2 specific. 1284 * Teardown the channel structures that are sn2 specific.
1252 */ 1285 */
1253static void 1286static void
1254xpc_teardown_ch_structures_sn_sn2(struct xpc_partition *part) 1287xpc_teardown_ch_structures_sn2(struct xpc_partition *part)
1255{ 1288{
1256 struct xpc_partition_sn2 *part_sn2 = &part->sn.sn2; 1289 struct xpc_partition_sn2 *part_sn2 = &part->sn.sn2;
1257 short partid = XPC_PARTID(part); 1290 short partid = XPC_PARTID(part);
@@ -2315,61 +2348,70 @@ xpc_received_payload_sn2(struct xpc_channel *ch, void *payload)
2315 xpc_acknowledge_msgs_sn2(ch, get, msg->flags); 2348 xpc_acknowledge_msgs_sn2(ch, get, msg->flags);
2316} 2349}
2317 2350
2351static struct xpc_arch_operations xpc_arch_ops_sn2 = {
2352 .setup_partitions = xpc_setup_partitions_sn2,
2353 .teardown_partitions = xpc_teardown_partitions_sn2,
2354 .process_activate_IRQ_rcvd = xpc_process_activate_IRQ_rcvd_sn2,
2355 .get_partition_rsvd_page_pa = xpc_get_partition_rsvd_page_pa_sn2,
2356 .setup_rsvd_page = xpc_setup_rsvd_page_sn2,
2357
2358 .allow_hb = xpc_allow_hb_sn2,
2359 .disallow_hb = xpc_disallow_hb_sn2,
2360 .disallow_all_hbs = xpc_disallow_all_hbs_sn2,
2361 .increment_heartbeat = xpc_increment_heartbeat_sn2,
2362 .offline_heartbeat = xpc_offline_heartbeat_sn2,
2363 .online_heartbeat = xpc_online_heartbeat_sn2,
2364 .heartbeat_init = xpc_heartbeat_init_sn2,
2365 .heartbeat_exit = xpc_heartbeat_exit_sn2,
2366 .get_remote_heartbeat = xpc_get_remote_heartbeat_sn2,
2367
2368 .request_partition_activation =
2369 xpc_request_partition_activation_sn2,
2370 .request_partition_reactivation =
2371 xpc_request_partition_reactivation_sn2,
2372 .request_partition_deactivation =
2373 xpc_request_partition_deactivation_sn2,
2374 .cancel_partition_deactivation_request =
2375 xpc_cancel_partition_deactivation_request_sn2,
2376
2377 .setup_ch_structures = xpc_setup_ch_structures_sn2,
2378 .teardown_ch_structures = xpc_teardown_ch_structures_sn2,
2379
2380 .make_first_contact = xpc_make_first_contact_sn2,
2381
2382 .get_chctl_all_flags = xpc_get_chctl_all_flags_sn2,
2383 .send_chctl_closerequest = xpc_send_chctl_closerequest_sn2,
2384 .send_chctl_closereply = xpc_send_chctl_closereply_sn2,
2385 .send_chctl_openrequest = xpc_send_chctl_openrequest_sn2,
2386 .send_chctl_openreply = xpc_send_chctl_openreply_sn2,
2387 .send_chctl_opencomplete = xpc_send_chctl_opencomplete_sn2,
2388 .process_msg_chctl_flags = xpc_process_msg_chctl_flags_sn2,
2389
2390 .save_remote_msgqueue_pa = xpc_save_remote_msgqueue_pa_sn2,
2391
2392 .setup_msg_structures = xpc_setup_msg_structures_sn2,
2393 .teardown_msg_structures = xpc_teardown_msg_structures_sn2,
2394
2395 .indicate_partition_engaged = xpc_indicate_partition_engaged_sn2,
2396 .indicate_partition_disengaged = xpc_indicate_partition_disengaged_sn2,
2397 .partition_engaged = xpc_partition_engaged_sn2,
2398 .any_partition_engaged = xpc_any_partition_engaged_sn2,
2399 .assume_partition_disengaged = xpc_assume_partition_disengaged_sn2,
2400
2401 .n_of_deliverable_payloads = xpc_n_of_deliverable_payloads_sn2,
2402 .send_payload = xpc_send_payload_sn2,
2403 .get_deliverable_payload = xpc_get_deliverable_payload_sn2,
2404 .received_payload = xpc_received_payload_sn2,
2405 .notify_senders_of_disconnect = xpc_notify_senders_of_disconnect_sn2,
2406};
2407
2318int 2408int
2319xpc_init_sn2(void) 2409xpc_init_sn2(void)
2320{ 2410{
2321 int ret; 2411 int ret;
2322 size_t buf_size; 2412 size_t buf_size;
2323 2413
2324 xpc_setup_partitions_sn = xpc_setup_partitions_sn_sn2; 2414 xpc_arch_ops = xpc_arch_ops_sn2;
2325 xpc_teardown_partitions_sn = xpc_teardown_partitions_sn_sn2;
2326 xpc_get_partition_rsvd_page_pa = xpc_get_partition_rsvd_page_pa_sn2;
2327 xpc_setup_rsvd_page_sn = xpc_setup_rsvd_page_sn_sn2;
2328 xpc_increment_heartbeat = xpc_increment_heartbeat_sn2;
2329 xpc_offline_heartbeat = xpc_offline_heartbeat_sn2;
2330 xpc_online_heartbeat = xpc_online_heartbeat_sn2;
2331 xpc_heartbeat_init = xpc_heartbeat_init_sn2;
2332 xpc_heartbeat_exit = xpc_heartbeat_exit_sn2;
2333 xpc_get_remote_heartbeat = xpc_get_remote_heartbeat_sn2;
2334
2335 xpc_request_partition_activation = xpc_request_partition_activation_sn2;
2336 xpc_request_partition_reactivation =
2337 xpc_request_partition_reactivation_sn2;
2338 xpc_request_partition_deactivation =
2339 xpc_request_partition_deactivation_sn2;
2340 xpc_cancel_partition_deactivation_request =
2341 xpc_cancel_partition_deactivation_request_sn2;
2342
2343 xpc_process_activate_IRQ_rcvd = xpc_process_activate_IRQ_rcvd_sn2;
2344 xpc_setup_ch_structures_sn = xpc_setup_ch_structures_sn_sn2;
2345 xpc_teardown_ch_structures_sn = xpc_teardown_ch_structures_sn_sn2;
2346 xpc_make_first_contact = xpc_make_first_contact_sn2;
2347
2348 xpc_get_chctl_all_flags = xpc_get_chctl_all_flags_sn2;
2349 xpc_send_chctl_closerequest = xpc_send_chctl_closerequest_sn2;
2350 xpc_send_chctl_closereply = xpc_send_chctl_closereply_sn2;
2351 xpc_send_chctl_openrequest = xpc_send_chctl_openrequest_sn2;
2352 xpc_send_chctl_openreply = xpc_send_chctl_openreply_sn2;
2353
2354 xpc_save_remote_msgqueue_pa = xpc_save_remote_msgqueue_pa_sn2;
2355
2356 xpc_setup_msg_structures = xpc_setup_msg_structures_sn2;
2357 xpc_teardown_msg_structures = xpc_teardown_msg_structures_sn2;
2358
2359 xpc_notify_senders_of_disconnect = xpc_notify_senders_of_disconnect_sn2;
2360 xpc_process_msg_chctl_flags = xpc_process_msg_chctl_flags_sn2;
2361 xpc_n_of_deliverable_payloads = xpc_n_of_deliverable_payloads_sn2;
2362 xpc_get_deliverable_payload = xpc_get_deliverable_payload_sn2;
2363
2364 xpc_indicate_partition_engaged = xpc_indicate_partition_engaged_sn2;
2365 xpc_indicate_partition_disengaged =
2366 xpc_indicate_partition_disengaged_sn2;
2367 xpc_partition_engaged = xpc_partition_engaged_sn2;
2368 xpc_any_partition_engaged = xpc_any_partition_engaged_sn2;
2369 xpc_assume_partition_disengaged = xpc_assume_partition_disengaged_sn2;
2370
2371 xpc_send_payload = xpc_send_payload_sn2;
2372 xpc_received_payload = xpc_received_payload_sn2;
2373 2415
2374 if (offsetof(struct xpc_msg_sn2, payload) > XPC_MSG_HDR_MAX_SIZE) { 2416 if (offsetof(struct xpc_msg_sn2, payload) > XPC_MSG_HDR_MAX_SIZE) {
2375 dev_err(xpc_part, "header portion of struct xpc_msg_sn2 is " 2417 dev_err(xpc_part, "header portion of struct xpc_msg_sn2 is "
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c
index f7fff4727edb..9172fcdee4e2 100644
--- a/drivers/misc/sgi-xp/xpc_uv.c
+++ b/drivers/misc/sgi-xp/xpc_uv.c
@@ -46,8 +46,7 @@ struct uv_IO_APIC_route_entry {
46}; 46};
47#endif 47#endif
48 48
49static atomic64_t xpc_heartbeat_uv; 49static struct xpc_heartbeat_uv *xpc_heartbeat_uv;
50static DECLARE_BITMAP(xpc_heartbeating_to_mask_uv, XP_MAX_NPARTITIONS_UV);
51 50
52#define XPC_ACTIVATE_MSG_SIZE_UV (1 * GRU_CACHE_LINE_BYTES) 51#define XPC_ACTIVATE_MSG_SIZE_UV (1 * GRU_CACHE_LINE_BYTES)
53#define XPC_ACTIVATE_MQ_SIZE_UV (4 * XP_MAX_NPARTITIONS_UV * \ 52#define XPC_ACTIVATE_MQ_SIZE_UV (4 * XP_MAX_NPARTITIONS_UV * \
@@ -63,7 +62,7 @@ static struct xpc_gru_mq_uv *xpc_activate_mq_uv;
63static struct xpc_gru_mq_uv *xpc_notify_mq_uv; 62static struct xpc_gru_mq_uv *xpc_notify_mq_uv;
64 63
65static int 64static int
66xpc_setup_partitions_sn_uv(void) 65xpc_setup_partitions_uv(void)
67{ 66{
68 short partid; 67 short partid;
69 struct xpc_partition_uv *part_uv; 68 struct xpc_partition_uv *part_uv;
@@ -79,7 +78,7 @@ xpc_setup_partitions_sn_uv(void)
79} 78}
80 79
81static void 80static void
82xpc_teardown_partitions_sn_uv(void) 81xpc_teardown_partitions_uv(void)
83{ 82{
84 short partid; 83 short partid;
85 struct xpc_partition_uv *part_uv; 84 struct xpc_partition_uv *part_uv;
@@ -423,41 +422,6 @@ xpc_handle_activate_mq_msg_uv(struct xpc_partition *part,
423 /* syncing of remote_act_state was just done above */ 422 /* syncing of remote_act_state was just done above */
424 break; 423 break;
425 424
426 case XPC_ACTIVATE_MQ_MSG_INC_HEARTBEAT_UV: {
427 struct xpc_activate_mq_msg_heartbeat_req_uv *msg;
428
429 msg = container_of(msg_hdr,
430 struct xpc_activate_mq_msg_heartbeat_req_uv,
431 hdr);
432 part_uv->heartbeat = msg->heartbeat;
433 break;
434 }
435 case XPC_ACTIVATE_MQ_MSG_OFFLINE_HEARTBEAT_UV: {
436 struct xpc_activate_mq_msg_heartbeat_req_uv *msg;
437
438 msg = container_of(msg_hdr,
439 struct xpc_activate_mq_msg_heartbeat_req_uv,
440 hdr);
441 part_uv->heartbeat = msg->heartbeat;
442
443 spin_lock_irqsave(&part_uv->flags_lock, irq_flags);
444 part_uv->flags |= XPC_P_HEARTBEAT_OFFLINE_UV;
445 spin_unlock_irqrestore(&part_uv->flags_lock, irq_flags);
446 break;
447 }
448 case XPC_ACTIVATE_MQ_MSG_ONLINE_HEARTBEAT_UV: {
449 struct xpc_activate_mq_msg_heartbeat_req_uv *msg;
450
451 msg = container_of(msg_hdr,
452 struct xpc_activate_mq_msg_heartbeat_req_uv,
453 hdr);
454 part_uv->heartbeat = msg->heartbeat;
455
456 spin_lock_irqsave(&part_uv->flags_lock, irq_flags);
457 part_uv->flags &= ~XPC_P_HEARTBEAT_OFFLINE_UV;
458 spin_unlock_irqrestore(&part_uv->flags_lock, irq_flags);
459 break;
460 }
461 case XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV: { 425 case XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV: {
462 struct xpc_activate_mq_msg_activate_req_uv *msg; 426 struct xpc_activate_mq_msg_activate_req_uv *msg;
463 427
@@ -475,6 +439,7 @@ xpc_handle_activate_mq_msg_uv(struct xpc_partition *part,
475 part_uv->act_state_req = XPC_P_ASR_ACTIVATE_UV; 439 part_uv->act_state_req = XPC_P_ASR_ACTIVATE_UV;
476 part->remote_rp_pa = msg->rp_gpa; /* !!! _pa is _gpa */ 440 part->remote_rp_pa = msg->rp_gpa; /* !!! _pa is _gpa */
477 part->remote_rp_ts_jiffies = msg_hdr->rp_ts_jiffies; 441 part->remote_rp_ts_jiffies = msg_hdr->rp_ts_jiffies;
442 part_uv->heartbeat_gpa = msg->heartbeat_gpa;
478 443
479 if (msg->activate_gru_mq_desc_gpa != 444 if (msg->activate_gru_mq_desc_gpa !=
480 part_uv->activate_gru_mq_desc_gpa) { 445 part_uv->activate_gru_mq_desc_gpa) {
@@ -569,6 +534,17 @@ xpc_handle_activate_mq_msg_uv(struct xpc_partition *part,
569 xpc_wakeup_channel_mgr(part); 534 xpc_wakeup_channel_mgr(part);
570 break; 535 break;
571 } 536 }
537 case XPC_ACTIVATE_MQ_MSG_CHCTL_OPENCOMPLETE_UV: {
538 struct xpc_activate_mq_msg_chctl_opencomplete_uv *msg;
539
540 msg = container_of(msg_hdr, struct
541 xpc_activate_mq_msg_chctl_opencomplete_uv, hdr);
542 spin_lock_irqsave(&part->chctl_lock, irq_flags);
543 part->chctl.flags[msg->ch_number] |= XPC_CHCTL_OPENCOMPLETE;
544 spin_unlock_irqrestore(&part->chctl_lock, irq_flags);
545
546 xpc_wakeup_channel_mgr(part);
547 }
572 case XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV: 548 case XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV:
573 spin_lock_irqsave(&part_uv->flags_lock, irq_flags); 549 spin_lock_irqsave(&part_uv->flags_lock, irq_flags);
574 part_uv->flags |= XPC_P_ENGAGED_UV; 550 part_uv->flags |= XPC_P_ENGAGED_UV;
@@ -759,7 +735,7 @@ xpc_send_local_activate_IRQ_uv(struct xpc_partition *part, int act_state_req)
759 735
760 /* 736 /*
761 * !!! Make our side think that the remote partition sent an activate 737 * !!! Make our side think that the remote partition sent an activate
762 * !!! message our way by doing what the activate IRQ handler would 738 * !!! mq message our way by doing what the activate IRQ handler would
763 * !!! do had one really been sent. 739 * !!! do had one really been sent.
764 */ 740 */
765 741
@@ -806,90 +782,82 @@ xpc_get_partition_rsvd_page_pa_uv(void *buf, u64 *cookie, unsigned long *rp_pa,
806} 782}
807 783
808static int 784static int
809xpc_setup_rsvd_page_sn_uv(struct xpc_rsvd_page *rp) 785xpc_setup_rsvd_page_uv(struct xpc_rsvd_page *rp)
810{ 786{
811 rp->sn.activate_gru_mq_desc_gpa = 787 xpc_heartbeat_uv =
788 &xpc_partitions[sn_partition_id].sn.uv.cached_heartbeat;
789 rp->sn.uv.heartbeat_gpa = uv_gpa(xpc_heartbeat_uv);
790 rp->sn.uv.activate_gru_mq_desc_gpa =
812 uv_gpa(xpc_activate_mq_uv->gru_mq_desc); 791 uv_gpa(xpc_activate_mq_uv->gru_mq_desc);
813 return 0; 792 return 0;
814} 793}
815 794
816static void 795static void
817xpc_send_heartbeat_uv(int msg_type) 796xpc_allow_hb_uv(short partid)
818{ 797{
819 short partid; 798}
820 struct xpc_partition *part;
821 struct xpc_activate_mq_msg_heartbeat_req_uv msg;
822
823 /*
824 * !!! On uv we're broadcasting a heartbeat message every 5 seconds.
825 * !!! Whereas on sn2 we're bte_copy'ng the heartbeat info every 20
826 * !!! seconds. This is an increase in numalink traffic.
827 * ??? Is this good?
828 */
829
830 msg.heartbeat = atomic64_inc_return(&xpc_heartbeat_uv);
831
832 partid = find_first_bit(xpc_heartbeating_to_mask_uv,
833 XP_MAX_NPARTITIONS_UV);
834
835 while (partid < XP_MAX_NPARTITIONS_UV) {
836 part = &xpc_partitions[partid];
837 799
838 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), 800static void
839 msg_type); 801xpc_disallow_hb_uv(short partid)
802{
803}
840 804
841 partid = find_next_bit(xpc_heartbeating_to_mask_uv, 805static void
842 XP_MAX_NPARTITIONS_UV, partid + 1); 806xpc_disallow_all_hbs_uv(void)
843 } 807{
844} 808}
845 809
846static void 810static void
847xpc_increment_heartbeat_uv(void) 811xpc_increment_heartbeat_uv(void)
848{ 812{
849 xpc_send_heartbeat_uv(XPC_ACTIVATE_MQ_MSG_INC_HEARTBEAT_UV); 813 xpc_heartbeat_uv->value++;
850} 814}
851 815
852static void 816static void
853xpc_offline_heartbeat_uv(void) 817xpc_offline_heartbeat_uv(void)
854{ 818{
855 xpc_send_heartbeat_uv(XPC_ACTIVATE_MQ_MSG_OFFLINE_HEARTBEAT_UV); 819 xpc_increment_heartbeat_uv();
820 xpc_heartbeat_uv->offline = 1;
856} 821}
857 822
858static void 823static void
859xpc_online_heartbeat_uv(void) 824xpc_online_heartbeat_uv(void)
860{ 825{
861 xpc_send_heartbeat_uv(XPC_ACTIVATE_MQ_MSG_ONLINE_HEARTBEAT_UV); 826 xpc_increment_heartbeat_uv();
827 xpc_heartbeat_uv->offline = 0;
862} 828}
863 829
864static void 830static void
865xpc_heartbeat_init_uv(void) 831xpc_heartbeat_init_uv(void)
866{ 832{
867 atomic64_set(&xpc_heartbeat_uv, 0); 833 xpc_heartbeat_uv->value = 1;
868 bitmap_zero(xpc_heartbeating_to_mask_uv, XP_MAX_NPARTITIONS_UV); 834 xpc_heartbeat_uv->offline = 0;
869 xpc_heartbeating_to_mask = &xpc_heartbeating_to_mask_uv[0];
870} 835}
871 836
872static void 837static void
873xpc_heartbeat_exit_uv(void) 838xpc_heartbeat_exit_uv(void)
874{ 839{
875 xpc_send_heartbeat_uv(XPC_ACTIVATE_MQ_MSG_OFFLINE_HEARTBEAT_UV); 840 xpc_offline_heartbeat_uv();
876} 841}
877 842
878static enum xp_retval 843static enum xp_retval
879xpc_get_remote_heartbeat_uv(struct xpc_partition *part) 844xpc_get_remote_heartbeat_uv(struct xpc_partition *part)
880{ 845{
881 struct xpc_partition_uv *part_uv = &part->sn.uv; 846 struct xpc_partition_uv *part_uv = &part->sn.uv;
882 enum xp_retval ret = xpNoHeartbeat; 847 enum xp_retval ret;
883 848
884 if (part_uv->remote_act_state != XPC_P_AS_INACTIVE && 849 ret = xp_remote_memcpy(uv_gpa(&part_uv->cached_heartbeat),
885 part_uv->remote_act_state != XPC_P_AS_DEACTIVATING) { 850 part_uv->heartbeat_gpa,
851 sizeof(struct xpc_heartbeat_uv));
852 if (ret != xpSuccess)
853 return ret;
886 854
887 if (part_uv->heartbeat != part->last_heartbeat || 855 if (part_uv->cached_heartbeat.value == part->last_heartbeat &&
888 (part_uv->flags & XPC_P_HEARTBEAT_OFFLINE_UV)) { 856 !part_uv->cached_heartbeat.offline) {
889 857
890 part->last_heartbeat = part_uv->heartbeat; 858 ret = xpNoHeartbeat;
891 ret = xpSuccess; 859 } else {
892 } 860 part->last_heartbeat = part_uv->cached_heartbeat.value;
893 } 861 }
894 return ret; 862 return ret;
895} 863}
@@ -904,8 +872,9 @@ xpc_request_partition_activation_uv(struct xpc_rsvd_page *remote_rp,
904 872
905 part->remote_rp_pa = remote_rp_gpa; /* !!! _pa here is really _gpa */ 873 part->remote_rp_pa = remote_rp_gpa; /* !!! _pa here is really _gpa */
906 part->remote_rp_ts_jiffies = remote_rp->ts_jiffies; 874 part->remote_rp_ts_jiffies = remote_rp->ts_jiffies;
875 part->sn.uv.heartbeat_gpa = remote_rp->sn.uv.heartbeat_gpa;
907 part->sn.uv.activate_gru_mq_desc_gpa = 876 part->sn.uv.activate_gru_mq_desc_gpa =
908 remote_rp->sn.activate_gru_mq_desc_gpa; 877 remote_rp->sn.uv.activate_gru_mq_desc_gpa;
909 878
910 /* 879 /*
911 * ??? Is it a good idea to make this conditional on what is 880 * ??? Is it a good idea to make this conditional on what is
@@ -913,8 +882,9 @@ xpc_request_partition_activation_uv(struct xpc_rsvd_page *remote_rp,
913 */ 882 */
914 if (part->sn.uv.remote_act_state == XPC_P_AS_INACTIVE) { 883 if (part->sn.uv.remote_act_state == XPC_P_AS_INACTIVE) {
915 msg.rp_gpa = uv_gpa(xpc_rsvd_page); 884 msg.rp_gpa = uv_gpa(xpc_rsvd_page);
885 msg.heartbeat_gpa = xpc_rsvd_page->sn.uv.heartbeat_gpa;
916 msg.activate_gru_mq_desc_gpa = 886 msg.activate_gru_mq_desc_gpa =
917 xpc_rsvd_page->sn.activate_gru_mq_desc_gpa; 887 xpc_rsvd_page->sn.uv.activate_gru_mq_desc_gpa;
918 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg), 888 xpc_send_activate_IRQ_part_uv(part, &msg, sizeof(msg),
919 XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV); 889 XPC_ACTIVATE_MQ_MSG_ACTIVATE_REQ_UV);
920 } 890 }
@@ -1010,7 +980,7 @@ xpc_n_of_fifo_entries_uv(struct xpc_fifo_head_uv *head)
1010 * Setup the channel structures that are uv specific. 980 * Setup the channel structures that are uv specific.
1011 */ 981 */
1012static enum xp_retval 982static enum xp_retval
1013xpc_setup_ch_structures_sn_uv(struct xpc_partition *part) 983xpc_setup_ch_structures_uv(struct xpc_partition *part)
1014{ 984{
1015 struct xpc_channel_uv *ch_uv; 985 struct xpc_channel_uv *ch_uv;
1016 int ch_number; 986 int ch_number;
@@ -1029,7 +999,7 @@ xpc_setup_ch_structures_sn_uv(struct xpc_partition *part)
1029 * Teardown the channel structures that are uv specific. 999 * Teardown the channel structures that are uv specific.
1030 */ 1000 */
1031static void 1001static void
1032xpc_teardown_ch_structures_sn_uv(struct xpc_partition *part) 1002xpc_teardown_ch_structures_uv(struct xpc_partition *part)
1033{ 1003{
1034 /* nothing needs to be done */ 1004 /* nothing needs to be done */
1035 return; 1005 return;
@@ -1243,6 +1213,16 @@ xpc_send_chctl_openreply_uv(struct xpc_channel *ch, unsigned long *irq_flags)
1243} 1213}
1244 1214
1245static void 1215static void
1216xpc_send_chctl_opencomplete_uv(struct xpc_channel *ch, unsigned long *irq_flags)
1217{
1218 struct xpc_activate_mq_msg_chctl_opencomplete_uv msg;
1219
1220 msg.ch_number = ch->number;
1221 xpc_send_activate_IRQ_ch_uv(ch, irq_flags, &msg, sizeof(msg),
1222 XPC_ACTIVATE_MQ_MSG_CHCTL_OPENCOMPLETE_UV);
1223}
1224
1225static void
1246xpc_send_chctl_local_msgrequest_uv(struct xpc_partition *part, int ch_number) 1226xpc_send_chctl_local_msgrequest_uv(struct xpc_partition *part, int ch_number)
1247{ 1227{
1248 unsigned long irq_flags; 1228 unsigned long irq_flags;
@@ -1669,58 +1649,67 @@ xpc_received_payload_uv(struct xpc_channel *ch, void *payload)
1669 msg->hdr.msg_slot_number += ch->remote_nentries; 1649 msg->hdr.msg_slot_number += ch->remote_nentries;
1670} 1650}
1671 1651
1652static struct xpc_arch_operations xpc_arch_ops_uv = {
1653 .setup_partitions = xpc_setup_partitions_uv,
1654 .teardown_partitions = xpc_teardown_partitions_uv,
1655 .process_activate_IRQ_rcvd = xpc_process_activate_IRQ_rcvd_uv,
1656 .get_partition_rsvd_page_pa = xpc_get_partition_rsvd_page_pa_uv,
1657 .setup_rsvd_page = xpc_setup_rsvd_page_uv,
1658
1659 .allow_hb = xpc_allow_hb_uv,
1660 .disallow_hb = xpc_disallow_hb_uv,
1661 .disallow_all_hbs = xpc_disallow_all_hbs_uv,
1662 .increment_heartbeat = xpc_increment_heartbeat_uv,
1663 .offline_heartbeat = xpc_offline_heartbeat_uv,
1664 .online_heartbeat = xpc_online_heartbeat_uv,
1665 .heartbeat_init = xpc_heartbeat_init_uv,
1666 .heartbeat_exit = xpc_heartbeat_exit_uv,
1667 .get_remote_heartbeat = xpc_get_remote_heartbeat_uv,
1668
1669 .request_partition_activation =
1670 xpc_request_partition_activation_uv,
1671 .request_partition_reactivation =
1672 xpc_request_partition_reactivation_uv,
1673 .request_partition_deactivation =
1674 xpc_request_partition_deactivation_uv,
1675 .cancel_partition_deactivation_request =
1676 xpc_cancel_partition_deactivation_request_uv,
1677
1678 .setup_ch_structures = xpc_setup_ch_structures_uv,
1679 .teardown_ch_structures = xpc_teardown_ch_structures_uv,
1680
1681 .make_first_contact = xpc_make_first_contact_uv,
1682
1683 .get_chctl_all_flags = xpc_get_chctl_all_flags_uv,
1684 .send_chctl_closerequest = xpc_send_chctl_closerequest_uv,
1685 .send_chctl_closereply = xpc_send_chctl_closereply_uv,
1686 .send_chctl_openrequest = xpc_send_chctl_openrequest_uv,
1687 .send_chctl_openreply = xpc_send_chctl_openreply_uv,
1688 .send_chctl_opencomplete = xpc_send_chctl_opencomplete_uv,
1689 .process_msg_chctl_flags = xpc_process_msg_chctl_flags_uv,
1690
1691 .save_remote_msgqueue_pa = xpc_save_remote_msgqueue_pa_uv,
1692
1693 .setup_msg_structures = xpc_setup_msg_structures_uv,
1694 .teardown_msg_structures = xpc_teardown_msg_structures_uv,
1695
1696 .indicate_partition_engaged = xpc_indicate_partition_engaged_uv,
1697 .indicate_partition_disengaged = xpc_indicate_partition_disengaged_uv,
1698 .assume_partition_disengaged = xpc_assume_partition_disengaged_uv,
1699 .partition_engaged = xpc_partition_engaged_uv,
1700 .any_partition_engaged = xpc_any_partition_engaged_uv,
1701
1702 .n_of_deliverable_payloads = xpc_n_of_deliverable_payloads_uv,
1703 .send_payload = xpc_send_payload_uv,
1704 .get_deliverable_payload = xpc_get_deliverable_payload_uv,
1705 .received_payload = xpc_received_payload_uv,
1706 .notify_senders_of_disconnect = xpc_notify_senders_of_disconnect_uv,
1707};
1708
1672int 1709int
1673xpc_init_uv(void) 1710xpc_init_uv(void)
1674{ 1711{
1675 xpc_setup_partitions_sn = xpc_setup_partitions_sn_uv; 1712 xpc_arch_ops = xpc_arch_ops_uv;
1676 xpc_teardown_partitions_sn = xpc_teardown_partitions_sn_uv;
1677 xpc_process_activate_IRQ_rcvd = xpc_process_activate_IRQ_rcvd_uv;
1678 xpc_get_partition_rsvd_page_pa = xpc_get_partition_rsvd_page_pa_uv;
1679 xpc_setup_rsvd_page_sn = xpc_setup_rsvd_page_sn_uv;
1680 xpc_increment_heartbeat = xpc_increment_heartbeat_uv;
1681 xpc_offline_heartbeat = xpc_offline_heartbeat_uv;
1682 xpc_online_heartbeat = xpc_online_heartbeat_uv;
1683 xpc_heartbeat_init = xpc_heartbeat_init_uv;
1684 xpc_heartbeat_exit = xpc_heartbeat_exit_uv;
1685 xpc_get_remote_heartbeat = xpc_get_remote_heartbeat_uv;
1686
1687 xpc_request_partition_activation = xpc_request_partition_activation_uv;
1688 xpc_request_partition_reactivation =
1689 xpc_request_partition_reactivation_uv;
1690 xpc_request_partition_deactivation =
1691 xpc_request_partition_deactivation_uv;
1692 xpc_cancel_partition_deactivation_request =
1693 xpc_cancel_partition_deactivation_request_uv;
1694
1695 xpc_setup_ch_structures_sn = xpc_setup_ch_structures_sn_uv;
1696 xpc_teardown_ch_structures_sn = xpc_teardown_ch_structures_sn_uv;
1697
1698 xpc_make_first_contact = xpc_make_first_contact_uv;
1699
1700 xpc_get_chctl_all_flags = xpc_get_chctl_all_flags_uv;
1701 xpc_send_chctl_closerequest = xpc_send_chctl_closerequest_uv;
1702 xpc_send_chctl_closereply = xpc_send_chctl_closereply_uv;
1703 xpc_send_chctl_openrequest = xpc_send_chctl_openrequest_uv;
1704 xpc_send_chctl_openreply = xpc_send_chctl_openreply_uv;
1705
1706 xpc_save_remote_msgqueue_pa = xpc_save_remote_msgqueue_pa_uv;
1707
1708 xpc_setup_msg_structures = xpc_setup_msg_structures_uv;
1709 xpc_teardown_msg_structures = xpc_teardown_msg_structures_uv;
1710
1711 xpc_indicate_partition_engaged = xpc_indicate_partition_engaged_uv;
1712 xpc_indicate_partition_disengaged =
1713 xpc_indicate_partition_disengaged_uv;
1714 xpc_assume_partition_disengaged = xpc_assume_partition_disengaged_uv;
1715 xpc_partition_engaged = xpc_partition_engaged_uv;
1716 xpc_any_partition_engaged = xpc_any_partition_engaged_uv;
1717
1718 xpc_n_of_deliverable_payloads = xpc_n_of_deliverable_payloads_uv;
1719 xpc_process_msg_chctl_flags = xpc_process_msg_chctl_flags_uv;
1720 xpc_send_payload = xpc_send_payload_uv;
1721 xpc_notify_senders_of_disconnect = xpc_notify_senders_of_disconnect_uv;
1722 xpc_get_deliverable_payload = xpc_get_deliverable_payload_uv;
1723 xpc_received_payload = xpc_received_payload_uv;
1724 1713
1725 if (sizeof(struct xpc_notify_mq_msghdr_uv) > XPC_MSG_HDR_MAX_SIZE) { 1714 if (sizeof(struct xpc_notify_mq_msghdr_uv) > XPC_MSG_HDR_MAX_SIZE) {
1726 dev_err(xpc_part, "xpc_notify_mq_msghdr_uv is larger than %d\n", 1715 dev_err(xpc_part, "xpc_notify_mq_msghdr_uv is larger than %d\n",
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index fe8041e619ea..b25e9b6516ae 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -254,6 +254,14 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
254 brq.data.blocks = req->nr_sectors; 254 brq.data.blocks = req->nr_sectors;
255 255
256 /* 256 /*
257 * The block layer doesn't support all sector count
258 * restrictions, so we need to be prepared for too big
259 * requests.
260 */
261 if (brq.data.blocks > card->host->max_blk_count)
262 brq.data.blocks = card->host->max_blk_count;
263
264 /*
257 * After a read error, we redo the request one sector at a time 265 * After a read error, we redo the request one sector at a time
258 * in order to accurately determine which sectors can be read 266 * in order to accurately determine which sectors can be read
259 * successfully. 267 * successfully.
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index fa073ab3fa34..264911732756 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -706,7 +706,7 @@ static void mmc_power_up(struct mmc_host *host)
706 * This delay should be sufficient to allow the power supply 706 * This delay should be sufficient to allow the power supply
707 * to reach the minimum voltage. 707 * to reach the minimum voltage.
708 */ 708 */
709 mmc_delay(2); 709 mmc_delay(10);
710 710
711 host->ios.clock = host->f_min; 711 host->ios.clock = host->f_min;
712 host->ios.power_mode = MMC_POWER_ON; 712 host->ios.power_mode = MMC_POWER_ON;
@@ -716,7 +716,7 @@ static void mmc_power_up(struct mmc_host *host)
716 * This delay must be at least 74 clock sizes, or 1 ms, or the 716 * This delay must be at least 74 clock sizes, or 1 ms, or the
717 * time required to reach a stable voltage. 717 * time required to reach a stable voltage.
718 */ 718 */
719 mmc_delay(2); 719 mmc_delay(10);
720} 720}
721 721
722static void mmc_power_off(struct mmc_host *host) 722static void mmc_power_off(struct mmc_host *host)
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index a663429b3d55..36875dcfa492 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -514,6 +514,7 @@ static int __devinit mmci_probe(struct amba_device *dev, void *id)
514 } 514 }
515 515
516 host = mmc_priv(mmc); 516 host = mmc_priv(mmc);
517 host->mmc = mmc;
517 /* Bits 12 thru 19 is the designer */ 518 /* Bits 12 thru 19 is the designer */
518 host->hw_designer = (dev->periphid >> 12) & 0xff; 519 host->hw_designer = (dev->periphid >> 12) & 0xff;
519 /* Bits 20 thru 23 is the revison */ 520 /* Bits 20 thru 23 is the revison */
@@ -545,7 +546,6 @@ static int __devinit mmci_probe(struct amba_device *dev, void *id)
545 host->mclk = clk_get_rate(host->clk); 546 host->mclk = clk_get_rate(host->clk);
546 DBG(host, "eventual mclk rate: %u Hz\n", host->mclk); 547 DBG(host, "eventual mclk rate: %u Hz\n", host->mclk);
547 } 548 }
548 host->mmc = mmc;
549 host->base = ioremap(dev->res.start, SZ_4K); 549 host->base = ioremap(dev->res.start, SZ_4K);
550 if (!host->base) { 550 if (!host->base) {
551 ret = -ENOMEM; 551 ret = -ENOMEM;
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index b5c375d94ab3..c643d0fe118f 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -825,24 +825,23 @@ static int __exit mvsd_remove(struct platform_device *pdev)
825} 825}
826 826
827#ifdef CONFIG_PM 827#ifdef CONFIG_PM
828static int mvsd_suspend(struct platform_device *dev, pm_message_t state, 828static int mvsd_suspend(struct platform_device *dev, pm_message_t state)
829 u32 level)
830{ 829{
831 struct mmc_host *mmc = platform_get_drvdata(dev); 830 struct mmc_host *mmc = platform_get_drvdata(dev);
832 int ret = 0; 831 int ret = 0;
833 832
834 if (mmc && level == SUSPEND_DISABLE) 833 if (mmc)
835 ret = mmc_suspend_host(mmc, state); 834 ret = mmc_suspend_host(mmc, state);
836 835
837 return ret; 836 return ret;
838} 837}
839 838
840static int mvsd_resume(struct platform_device *dev, u32 level) 839static int mvsd_resume(struct platform_device *dev)
841{ 840{
842 struct mmc_host *mmc = platform_dev_get_drvdata(dev); 841 struct mmc_host *mmc = platform_get_drvdata(dev);
843 int ret = 0; 842 int ret = 0;
844 843
845 if (mmc && level == RESUME_ENABLE) 844 if (mmc)
846 ret = mmc_resume_host(mmc); 845 ret = mmc_resume_host(mmc);
847 846
848 return ret; 847 return ret;
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index 5570849188cc..bfa25c01c872 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -157,8 +157,6 @@ struct mmc_omap_host {
157 struct timer_list dma_timer; 157 struct timer_list dma_timer;
158 unsigned dma_len; 158 unsigned dma_len;
159 159
160 short power_pin;
161
162 struct mmc_omap_slot *slots[OMAP_MMC_MAX_SLOTS]; 160 struct mmc_omap_slot *slots[OMAP_MMC_MAX_SLOTS];
163 struct mmc_omap_slot *current_slot; 161 struct mmc_omap_slot *current_slot;
164 spinlock_t slot_lock; 162 spinlock_t slot_lock;
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index cd37962ec44f..65be27995d5c 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -522,8 +522,8 @@ static struct sdhci_pci_slot * __devinit sdhci_pci_probe_slot(
522 522
523 host = sdhci_alloc_host(&pdev->dev, sizeof(struct sdhci_pci_slot)); 523 host = sdhci_alloc_host(&pdev->dev, sizeof(struct sdhci_pci_slot));
524 if (IS_ERR(host)) { 524 if (IS_ERR(host)) {
525 ret = PTR_ERR(host); 525 dev_err(&pdev->dev, "cannot allocate host\n");
526 goto unmap; 526 return ERR_PTR(PTR_ERR(host));
527 } 527 }
528 528
529 slot = sdhci_priv(host); 529 slot = sdhci_priv(host);
@@ -541,7 +541,7 @@ static struct sdhci_pci_slot * __devinit sdhci_pci_probe_slot(
541 ret = pci_request_region(pdev, bar, mmc_hostname(host->mmc)); 541 ret = pci_request_region(pdev, bar, mmc_hostname(host->mmc));
542 if (ret) { 542 if (ret) {
543 dev_err(&pdev->dev, "cannot request region\n"); 543 dev_err(&pdev->dev, "cannot request region\n");
544 return ERR_PTR(ret); 544 goto free;
545 } 545 }
546 546
547 addr = pci_resource_start(pdev, bar); 547 addr = pci_resource_start(pdev, bar);
@@ -572,6 +572,8 @@ unmap:
572 572
573release: 573release:
574 pci_release_region(pdev, bar); 574 pci_release_region(pdev, bar);
575
576free:
575 sdhci_free_host(host); 577 sdhci_free_host(host);
576 578
577 return ERR_PTR(ret); 579 return ERR_PTR(ret);
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index f20a834f4309..65c6f996bbd3 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -125,7 +125,7 @@
125#define SDHCI_INT_DATA_MASK (SDHCI_INT_DATA_END | SDHCI_INT_DMA_END | \ 125#define SDHCI_INT_DATA_MASK (SDHCI_INT_DATA_END | SDHCI_INT_DMA_END | \
126 SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \ 126 SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \
127 SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \ 127 SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \
128 SDHCI_INT_DATA_END_BIT) 128 SDHCI_INT_DATA_END_BIT | SDHCI_ADMA_ERROR)
129#define SDHCI_INT_ALL_MASK ((unsigned int)-1) 129#define SDHCI_INT_ALL_MASK ((unsigned int)-1)
130 130
131#define SDHCI_ACMD12_ERR 0x3C 131#define SDHCI_ACMD12_ERR 0x3C
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 8185b1f3e5e6..cc6369ea67dd 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -54,7 +54,7 @@
54#define SR_SRWD 0x80 /* SR write protect */ 54#define SR_SRWD 0x80 /* SR write protect */
55 55
56/* Define max times to check status register before we give up. */ 56/* Define max times to check status register before we give up. */
57#define MAX_READY_WAIT_COUNT 100000 57#define MAX_READY_WAIT_JIFFIES (10 * HZ) /* eg. M25P128 specs 6s max sector erase */
58#define CMD_SIZE 4 58#define CMD_SIZE 4
59 59
60#ifdef CONFIG_M25PXX_USE_FAST_READ 60#ifdef CONFIG_M25PXX_USE_FAST_READ
@@ -139,20 +139,20 @@ static inline int write_enable(struct m25p *flash)
139 */ 139 */
140static int wait_till_ready(struct m25p *flash) 140static int wait_till_ready(struct m25p *flash)
141{ 141{
142 int count; 142 unsigned long deadline;
143 int sr; 143 int sr;
144 144
145 /* one chip guarantees max 5 msec wait here after page writes, 145 deadline = jiffies + MAX_READY_WAIT_JIFFIES;
146 * but potentially three seconds (!) after page erase. 146
147 */ 147 do {
148 for (count = 0; count < MAX_READY_WAIT_COUNT; count++) {
149 if ((sr = read_sr(flash)) < 0) 148 if ((sr = read_sr(flash)) < 0)
150 break; 149 break;
151 else if (!(sr & SR_WIP)) 150 else if (!(sr & SR_WIP))
152 return 0; 151 return 0;
153 152
154 /* REVISIT sometimes sleeping would be best */ 153 cond_resched();
155 } 154
155 } while (!time_after_eq(jiffies, deadline));
156 156
157 return 1; 157 return 1;
158} 158}
@@ -246,10 +246,12 @@ static int m25p80_erase(struct mtd_info *mtd, struct erase_info *instr)
246 mutex_lock(&flash->lock); 246 mutex_lock(&flash->lock);
247 247
248 /* whole-chip erase? */ 248 /* whole-chip erase? */
249 if (len == flash->mtd.size && erase_chip(flash)) { 249 if (len == flash->mtd.size) {
250 instr->state = MTD_ERASE_FAILED; 250 if (erase_chip(flash)) {
251 mutex_unlock(&flash->lock); 251 instr->state = MTD_ERASE_FAILED;
252 return -EIO; 252 mutex_unlock(&flash->lock);
253 return -EIO;
254 }
253 255
254 /* REVISIT in some cases we could speed up erasing large regions 256 /* REVISIT in some cases we could speed up erasing large regions
255 * by using OPCODE_SE instead of OPCODE_BE_4K. We may have set up 257 * by using OPCODE_SE instead of OPCODE_BE_4K. We may have set up
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index fdd6ae859397..bccb4b1ffc46 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -48,11 +48,11 @@ static LIST_HEAD(mtd_notifiers);
48 */ 48 */
49static void mtd_release(struct device *dev) 49static void mtd_release(struct device *dev)
50{ 50{
51 struct mtd_info *mtd = dev_to_mtd(dev); 51 dev_t index = MTD_DEVT(dev_to_mtd(dev)->index);
52 52
53 /* remove /dev/mtdXro node if needed */ 53 /* remove /dev/mtdXro node if needed */
54 if (MTD_DEVT(mtd->index)) 54 if (index)
55 device_destroy(mtd_class, MTD_DEVT(mtd->index) + 1); 55 device_destroy(mtd_class, index + 1);
56} 56}
57 57
58static ssize_t mtd_type_show(struct device *dev, 58static ssize_t mtd_type_show(struct device *dev,
@@ -132,6 +132,17 @@ static ssize_t mtd_writesize_show(struct device *dev,
132} 132}
133static DEVICE_ATTR(writesize, S_IRUGO, mtd_writesize_show, NULL); 133static DEVICE_ATTR(writesize, S_IRUGO, mtd_writesize_show, NULL);
134 134
135static ssize_t mtd_subpagesize_show(struct device *dev,
136 struct device_attribute *attr, char *buf)
137{
138 struct mtd_info *mtd = dev_to_mtd(dev);
139 unsigned int subpagesize = mtd->writesize >> mtd->subpage_sft;
140
141 return snprintf(buf, PAGE_SIZE, "%u\n", subpagesize);
142
143}
144static DEVICE_ATTR(subpagesize, S_IRUGO, mtd_subpagesize_show, NULL);
145
135static ssize_t mtd_oobsize_show(struct device *dev, 146static ssize_t mtd_oobsize_show(struct device *dev,
136 struct device_attribute *attr, char *buf) 147 struct device_attribute *attr, char *buf)
137{ 148{
@@ -169,6 +180,7 @@ static struct attribute *mtd_attrs[] = {
169 &dev_attr_size.attr, 180 &dev_attr_size.attr,
170 &dev_attr_erasesize.attr, 181 &dev_attr_erasesize.attr,
171 &dev_attr_writesize.attr, 182 &dev_attr_writesize.attr,
183 &dev_attr_subpagesize.attr,
172 &dev_attr_oobsize.attr, 184 &dev_attr_oobsize.attr,
173 &dev_attr_numeraseregions.attr, 185 &dev_attr_numeraseregions.attr,
174 &dev_attr_name.attr, 186 &dev_attr_name.attr,
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c
index 92285d0089c2..af8b42e0a55b 100644
--- a/drivers/mtd/mtdsuper.c
+++ b/drivers/mtd/mtdsuper.c
@@ -74,8 +74,7 @@ static int get_sb_mtd_aux(struct file_system_type *fs_type, int flags,
74 74
75 ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); 75 ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0);
76 if (ret < 0) { 76 if (ret < 0) {
77 up_write(&sb->s_umount); 77 deactivate_locked_super(sb);
78 deactivate_super(sb);
79 return ret; 78 return ret;
80 } 79 }
81 80
diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c
index 7c5b257ce8e4..29acd06b1c39 100644
--- a/drivers/mtd/nand/cafe_nand.c
+++ b/drivers/mtd/nand/cafe_nand.c
@@ -332,7 +332,7 @@ static void cafe_select_chip(struct mtd_info *mtd, int chipnr)
332 cafe->ctl1 &= ~CTRL1_CHIPSELECT; 332 cafe->ctl1 &= ~CTRL1_CHIPSELECT;
333} 333}
334 334
335static int cafe_nand_interrupt(int irq, void *id) 335static irqreturn_t cafe_nand_interrupt(int irq, void *id)
336{ 336{
337 struct mtd_info *mtd = id; 337 struct mtd_info *mtd = id;
338 struct cafe_priv *cafe = mtd->priv; 338 struct cafe_priv *cafe = mtd->priv;
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index 41736772c1dd..b72b3d639f6e 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -153,7 +153,7 @@ struct ep93xx_descs
153struct ep93xx_priv 153struct ep93xx_priv
154{ 154{
155 struct resource *res; 155 struct resource *res;
156 void *base_addr; 156 void __iomem *base_addr;
157 int irq; 157 int irq;
158 158
159 struct ep93xx_descs *descs; 159 struct ep93xx_descs *descs;
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index 448487e22fa3..a740053d3af3 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -338,12 +338,12 @@ static int ixp4xx_mdio_register(void)
338 if (cpu_is_ixp43x()) { 338 if (cpu_is_ixp43x()) {
339 /* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */ 339 /* IXP43x lacks NPE-B and uses NPE-C for MII PHY access */
340 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH)) 340 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEC_ETH))
341 return -ENOSYS; 341 return -ENODEV;
342 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT; 342 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthC_BASE_VIRT;
343 } else { 343 } else {
344 /* All MII PHY accesses use NPE-B Ethernet registers */ 344 /* All MII PHY accesses use NPE-B Ethernet registers */
345 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0)) 345 if (!(ixp4xx_read_feature_bits() & IXP4XX_FEATURE_NPEB_ETH0))
346 return -ENOSYS; 346 return -ENODEV;
347 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT; 347 mdio_regs = (struct eth_regs __iomem *)IXP4XX_EthB_BASE_VIRT;
348 } 348 }
349 349
@@ -1174,7 +1174,7 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1174 regs_phys = IXP4XX_EthC_BASE_PHYS; 1174 regs_phys = IXP4XX_EthC_BASE_PHYS;
1175 break; 1175 break;
1176 default: 1176 default:
1177 err = -ENOSYS; 1177 err = -ENODEV;
1178 goto err_free; 1178 goto err_free;
1179 } 1179 }
1180 1180
@@ -1189,15 +1189,10 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1189 goto err_free; 1189 goto err_free;
1190 } 1190 }
1191 1191
1192 if (register_netdev(dev)) {
1193 err = -EIO;
1194 goto err_npe_rel;
1195 }
1196
1197 port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name); 1192 port->mem_res = request_mem_region(regs_phys, REGS_SIZE, dev->name);
1198 if (!port->mem_res) { 1193 if (!port->mem_res) {
1199 err = -EBUSY; 1194 err = -EBUSY;
1200 goto err_unreg; 1195 goto err_npe_rel;
1201 } 1196 }
1202 1197
1203 port->plat = plat; 1198 port->plat = plat;
@@ -1215,20 +1210,25 @@ static int __devinit eth_init_one(struct platform_device *pdev)
1215 snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy); 1210 snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, "0", plat->phy);
1216 port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0, 1211 port->phydev = phy_connect(dev, phy_id, &ixp4xx_adjust_link, 0,
1217 PHY_INTERFACE_MODE_MII); 1212 PHY_INTERFACE_MODE_MII);
1218 if (IS_ERR(port->phydev)) { 1213 if ((err = IS_ERR(port->phydev)))
1219 printk(KERN_ERR "%s: Could not attach to PHY\n", dev->name); 1214 goto err_free_mem;
1220 return PTR_ERR(port->phydev);
1221 }
1222 1215
1223 port->phydev->irq = PHY_POLL; 1216 port->phydev->irq = PHY_POLL;
1224 1217
1218 if ((err = register_netdev(dev)))
1219 goto err_phy_dis;
1220
1225 printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy, 1221 printk(KERN_INFO "%s: MII PHY %i on %s\n", dev->name, plat->phy,
1226 npe_name(port->npe)); 1222 npe_name(port->npe));
1227 1223
1228 return 0; 1224 return 0;
1229 1225
1230err_unreg: 1226err_phy_dis:
1231 unregister_netdev(dev); 1227 phy_disconnect(port->phydev);
1228err_free_mem:
1229 npe_port_tab[NPE_ID(port->id)] = NULL;
1230 platform_set_drvdata(pdev, NULL);
1231 release_resource(port->mem_res);
1232err_npe_rel: 1232err_npe_rel:
1233 npe_release(port->npe); 1233 npe_release(port->npe);
1234err_free: 1234err_free:
@@ -1242,6 +1242,7 @@ static int __devexit eth_remove_one(struct platform_device *pdev)
1242 struct port *port = netdev_priv(dev); 1242 struct port *port = netdev_priv(dev);
1243 1243
1244 unregister_netdev(dev); 1244 unregister_netdev(dev);
1245 phy_disconnect(port->phydev);
1245 npe_port_tab[NPE_ID(port->id)] = NULL; 1246 npe_port_tab[NPE_ID(port->id)] = NULL;
1246 platform_set_drvdata(pdev, NULL); 1247 platform_set_drvdata(pdev, NULL);
1247 npe_release(port->npe); 1248 npe_release(port->npe);
diff --git a/drivers/net/atl1c/atl1c_main.c b/drivers/net/atl1c/atl1c_main.c
index 8b17278c4a58..fc1092b835d2 100644
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
@@ -2522,8 +2522,8 @@ static int __devinit atl1c_probe(struct pci_dev *pdev,
2522 * various kernel subsystems to support the mechanics required by a 2522 * various kernel subsystems to support the mechanics required by a
2523 * fixed-high-32-bit system. 2523 * fixed-high-32-bit system.
2524 */ 2524 */
2525 if ((pci_set_dma_mask(pdev, DMA_32BIT_MASK) != 0) || 2525 if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) ||
2526 (pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK) != 0)) { 2526 (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)) != 0)) {
2527 dev_err(&pdev->dev, "No usable DMA configuration,aborting\n"); 2527 dev_err(&pdev->dev, "No usable DMA configuration,aborting\n");
2528 goto err_dma; 2528 goto err_dma;
2529 } 2529 }
diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h
index c49ddd08b2aa..b4bb06fdf307 100644
--- a/drivers/net/benet/be.h
+++ b/drivers/net/benet/be.h
@@ -35,8 +35,22 @@
35#define DRV_VER "2.0.348" 35#define DRV_VER "2.0.348"
36#define DRV_NAME "be2net" 36#define DRV_NAME "be2net"
37#define BE_NAME "ServerEngines BladeEngine2 10Gbps NIC" 37#define BE_NAME "ServerEngines BladeEngine2 10Gbps NIC"
38#define OC_NAME "Emulex OneConnect 10Gbps NIC"
38#define DRV_DESC BE_NAME "Driver" 39#define DRV_DESC BE_NAME "Driver"
39 40
41#define BE_VENDOR_ID 0x19a2
42#define BE_DEVICE_ID1 0x211
43#define OC_DEVICE_ID1 0x700
44#define OC_DEVICE_ID2 0x701
45
46static inline char *nic_name(struct pci_dev *pdev)
47{
48 if (pdev->device == OC_DEVICE_ID1 || pdev->device == OC_DEVICE_ID2)
49 return OC_NAME;
50 else
51 return BE_NAME;
52}
53
40/* Number of bytes of an RX frame that are copied to skb->data */ 54/* Number of bytes of an RX frame that are copied to skb->data */
41#define BE_HDR_LEN 64 55#define BE_HDR_LEN 64
42#define BE_MAX_JUMBO_FRAME_SIZE 9018 56#define BE_MAX_JUMBO_FRAME_SIZE 9018
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 8994b03d80ac..ae2f6b58ba25 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -28,10 +28,10 @@ static unsigned int rx_frag_size = 2048;
28module_param(rx_frag_size, uint, S_IRUGO); 28module_param(rx_frag_size, uint, S_IRUGO);
29MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data."); 29MODULE_PARM_DESC(rx_frag_size, "Size of a fragment that holds rcvd data.");
30 30
31#define BE_VENDOR_ID 0x19a2
32#define BE2_DEVICE_ID_1 0x0211
33static DEFINE_PCI_DEVICE_TABLE(be_dev_ids) = { 31static DEFINE_PCI_DEVICE_TABLE(be_dev_ids) = {
34 { PCI_DEVICE(BE_VENDOR_ID, BE2_DEVICE_ID_1) }, 32 { PCI_DEVICE(BE_VENDOR_ID, BE_DEVICE_ID1) },
33 { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID1) },
34 { PCI_DEVICE(BE_VENDOR_ID, OC_DEVICE_ID2) },
35 { 0 } 35 { 0 }
36}; 36};
37MODULE_DEVICE_TABLE(pci, be_dev_ids); 37MODULE_DEVICE_TABLE(pci, be_dev_ids);
@@ -1837,11 +1837,11 @@ static int __devinit be_probe(struct pci_dev *pdev,
1837 1837
1838 be_msix_enable(adapter); 1838 be_msix_enable(adapter);
1839 1839
1840 status = pci_set_dma_mask(pdev, DMA_64BIT_MASK); 1840 status = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
1841 if (!status) { 1841 if (!status) {
1842 netdev->features |= NETIF_F_HIGHDMA; 1842 netdev->features |= NETIF_F_HIGHDMA;
1843 } else { 1843 } else {
1844 status = pci_set_dma_mask(pdev, DMA_32BIT_MASK); 1844 status = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
1845 if (status) { 1845 if (status) {
1846 dev_err(&pdev->dev, "Could not set PCI DMA Mask\n"); 1846 dev_err(&pdev->dev, "Could not set PCI DMA Mask\n");
1847 goto free_netdev; 1847 goto free_netdev;
@@ -1875,7 +1875,7 @@ static int __devinit be_probe(struct pci_dev *pdev,
1875 if (status != 0) 1875 if (status != 0)
1876 goto stats_clean; 1876 goto stats_clean;
1877 1877
1878 dev_info(&pdev->dev, BE_NAME " port %d\n", adapter->port_num); 1878 dev_info(&pdev->dev, "%s port %d\n", nic_name(pdev), adapter->port_num);
1879 return 0; 1879 return 0;
1880 1880
1881stats_clean: 1881stats_clean:
@@ -1889,7 +1889,7 @@ rel_reg:
1889disable_dev: 1889disable_dev:
1890 pci_disable_device(pdev); 1890 pci_disable_device(pdev);
1891do_none: 1891do_none:
1892 dev_warn(&pdev->dev, BE_NAME " initialization failed\n"); 1892 dev_err(&pdev->dev, "%s initialization failed\n", nic_name(pdev));
1893 return status; 1893 return status;
1894} 1894}
1895 1895
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 06009dc50b19..d4b570886c6e 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1465,6 +1465,12 @@ static struct aggregator *ad_agg_selection_test(struct aggregator *best,
1465 return best; 1465 return best;
1466} 1466}
1467 1467
1468static int agg_device_up(const struct aggregator *agg)
1469{
1470 return (netif_running(agg->slave->dev) &&
1471 netif_carrier_ok(agg->slave->dev));
1472}
1473
1468/** 1474/**
1469 * ad_agg_selection_logic - select an aggregation group for a team 1475 * ad_agg_selection_logic - select an aggregation group for a team
1470 * @aggregator: the aggregator we're looking at 1476 * @aggregator: the aggregator we're looking at
@@ -1496,14 +1502,13 @@ static void ad_agg_selection_logic(struct aggregator *agg)
1496 struct port *port; 1502 struct port *port;
1497 1503
1498 origin = agg; 1504 origin = agg;
1499
1500 active = __get_active_agg(agg); 1505 active = __get_active_agg(agg);
1501 best = active; 1506 best = (active && agg_device_up(active)) ? active : NULL;
1502 1507
1503 do { 1508 do {
1504 agg->is_active = 0; 1509 agg->is_active = 0;
1505 1510
1506 if (agg->num_of_ports) 1511 if (agg->num_of_ports && agg_device_up(agg))
1507 best = ad_agg_selection_test(best, agg); 1512 best = ad_agg_selection_test(best, agg);
1508 1513
1509 } while ((agg = __get_next_agg(agg))); 1514 } while ((agg = __get_next_agg(agg)));
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 30b9ea6d62b0..96d7689995cd 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -5199,7 +5199,6 @@ static int __init bonding_init(void)
5199{ 5199{
5200 int i; 5200 int i;
5201 int res; 5201 int res;
5202 struct bonding *bond;
5203 5202
5204 printk(KERN_INFO "%s", version); 5203 printk(KERN_INFO "%s", version);
5205 5204
@@ -5228,13 +5227,6 @@ static int __init bonding_init(void)
5228 5227
5229 goto out; 5228 goto out;
5230err: 5229err:
5231 list_for_each_entry(bond, &bond_dev_list, bond_list) {
5232 bond_work_cancel_all(bond);
5233 destroy_workqueue(bond->wq);
5234 }
5235
5236 bond_destroy_sysfs();
5237
5238 rtnl_lock(); 5230 rtnl_lock();
5239 bond_free_all(); 5231 bond_free_all();
5240 rtnl_unlock(); 5232 rtnl_unlock();
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index ece35040288c..621a7c0c46ba 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -2591,13 +2591,13 @@ static int
2591jme_pci_dma64(struct pci_dev *pdev) 2591jme_pci_dma64(struct pci_dev *pdev)
2592{ 2592{
2593 if (pdev->device == PCI_DEVICE_ID_JMICRON_JMC250 && 2593 if (pdev->device == PCI_DEVICE_ID_JMICRON_JMC250 &&
2594 !pci_set_dma_mask(pdev, DMA_64BIT_MASK)) 2594 !pci_set_dma_mask(pdev, DMA_BIT_MASK(64)))
2595 if (!pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) 2595 if (!pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
2596 return 1; 2596 return 1;
2597 2597
2598 if (pdev->device == PCI_DEVICE_ID_JMICRON_JMC250 && 2598 if (pdev->device == PCI_DEVICE_ID_JMICRON_JMC250 &&
2599 !pci_set_dma_mask(pdev, DMA_40BIT_MASK)) 2599 !pci_set_dma_mask(pdev, DMA_BIT_MASK(40)))
2600 if (!pci_set_consistent_dma_mask(pdev, DMA_40BIT_MASK)) 2600 if (!pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(40)))
2601 return 1; 2601 return 1;
2602 2602
2603 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) 2603 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index 46ffdb464ac4..5d04d94f2a21 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -127,11 +127,11 @@ static unsigned long mdio_read(struct meth_private *priv, unsigned long phyreg)
127static int mdio_probe(struct meth_private *priv) 127static int mdio_probe(struct meth_private *priv)
128{ 128{
129 int i; 129 int i;
130 unsigned long p2, p3; 130 unsigned long p2, p3, flags;
131 /* check if phy is detected already */ 131 /* check if phy is detected already */
132 if(priv->phy_addr>=0&&priv->phy_addr<32) 132 if(priv->phy_addr>=0&&priv->phy_addr<32)
133 return 0; 133 return 0;
134 spin_lock(&priv->meth_lock); 134 spin_lock_irqsave(&priv->meth_lock, flags);
135 for (i=0;i<32;++i){ 135 for (i=0;i<32;++i){
136 priv->phy_addr=i; 136 priv->phy_addr=i;
137 p2=mdio_read(priv,2); 137 p2=mdio_read(priv,2);
@@ -157,7 +157,7 @@ static int mdio_probe(struct meth_private *priv)
157 break; 157 break;
158 } 158 }
159 } 159 }
160 spin_unlock(&priv->meth_lock); 160 spin_unlock_irqrestore(&priv->meth_lock, flags);
161 if(priv->phy_addr<32) { 161 if(priv->phy_addr<32) {
162 return 0; 162 return 0;
163 } 163 }
@@ -373,14 +373,14 @@ static int meth_release(struct net_device *dev)
373static void meth_rx(struct net_device* dev, unsigned long int_status) 373static void meth_rx(struct net_device* dev, unsigned long int_status)
374{ 374{
375 struct sk_buff *skb; 375 struct sk_buff *skb;
376 unsigned long status; 376 unsigned long status, flags;
377 struct meth_private *priv = netdev_priv(dev); 377 struct meth_private *priv = netdev_priv(dev);
378 unsigned long fifo_rptr = (int_status & METH_INT_RX_RPTR_MASK) >> 8; 378 unsigned long fifo_rptr = (int_status & METH_INT_RX_RPTR_MASK) >> 8;
379 379
380 spin_lock(&priv->meth_lock); 380 spin_lock_irqsave(&priv->meth_lock, flags);
381 priv->dma_ctrl &= ~METH_DMA_RX_INT_EN; 381 priv->dma_ctrl &= ~METH_DMA_RX_INT_EN;
382 mace->eth.dma_ctrl = priv->dma_ctrl; 382 mace->eth.dma_ctrl = priv->dma_ctrl;
383 spin_unlock(&priv->meth_lock); 383 spin_unlock_irqrestore(&priv->meth_lock, flags);
384 384
385 if (int_status & METH_INT_RX_UNDERFLOW) { 385 if (int_status & METH_INT_RX_UNDERFLOW) {
386 fifo_rptr = (fifo_rptr - 1) & 0x0f; 386 fifo_rptr = (fifo_rptr - 1) & 0x0f;
@@ -452,12 +452,12 @@ static void meth_rx(struct net_device* dev, unsigned long int_status)
452 mace->eth.rx_fifo = priv->rx_ring_dmas[priv->rx_write]; 452 mace->eth.rx_fifo = priv->rx_ring_dmas[priv->rx_write];
453 ADVANCE_RX_PTR(priv->rx_write); 453 ADVANCE_RX_PTR(priv->rx_write);
454 } 454 }
455 spin_lock(&priv->meth_lock); 455 spin_lock_irqsave(&priv->meth_lock, flags);
456 /* In case there was underflow, and Rx DMA was disabled */ 456 /* In case there was underflow, and Rx DMA was disabled */
457 priv->dma_ctrl |= METH_DMA_RX_INT_EN | METH_DMA_RX_EN; 457 priv->dma_ctrl |= METH_DMA_RX_INT_EN | METH_DMA_RX_EN;
458 mace->eth.dma_ctrl = priv->dma_ctrl; 458 mace->eth.dma_ctrl = priv->dma_ctrl;
459 mace->eth.int_stat = METH_INT_RX_THRESHOLD; 459 mace->eth.int_stat = METH_INT_RX_THRESHOLD;
460 spin_unlock(&priv->meth_lock); 460 spin_unlock_irqrestore(&priv->meth_lock, flags);
461} 461}
462 462
463static int meth_tx_full(struct net_device *dev) 463static int meth_tx_full(struct net_device *dev)
@@ -470,11 +470,11 @@ static int meth_tx_full(struct net_device *dev)
470static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status) 470static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status)
471{ 471{
472 struct meth_private *priv = netdev_priv(dev); 472 struct meth_private *priv = netdev_priv(dev);
473 unsigned long status; 473 unsigned long status, flags;
474 struct sk_buff *skb; 474 struct sk_buff *skb;
475 unsigned long rptr = (int_status&TX_INFO_RPTR) >> 16; 475 unsigned long rptr = (int_status&TX_INFO_RPTR) >> 16;
476 476
477 spin_lock(&priv->meth_lock); 477 spin_lock_irqsave(&priv->meth_lock, flags);
478 478
479 /* Stop DMA notification */ 479 /* Stop DMA notification */
480 priv->dma_ctrl &= ~(METH_DMA_TX_INT_EN); 480 priv->dma_ctrl &= ~(METH_DMA_TX_INT_EN);
@@ -527,12 +527,13 @@ static void meth_tx_cleanup(struct net_device* dev, unsigned long int_status)
527 } 527 }
528 528
529 mace->eth.int_stat = METH_INT_TX_EMPTY | METH_INT_TX_PKT; 529 mace->eth.int_stat = METH_INT_TX_EMPTY | METH_INT_TX_PKT;
530 spin_unlock(&priv->meth_lock); 530 spin_unlock_irqrestore(&priv->meth_lock, flags);
531} 531}
532 532
533static void meth_error(struct net_device* dev, unsigned status) 533static void meth_error(struct net_device* dev, unsigned status)
534{ 534{
535 struct meth_private *priv = netdev_priv(dev); 535 struct meth_private *priv = netdev_priv(dev);
536 unsigned long flags;
536 537
537 printk(KERN_WARNING "meth: error status: 0x%08x\n",status); 538 printk(KERN_WARNING "meth: error status: 0x%08x\n",status);
538 /* check for errors too... */ 539 /* check for errors too... */
@@ -547,7 +548,7 @@ static void meth_error(struct net_device* dev, unsigned status)
547 printk(KERN_WARNING "meth: Rx overflow\n"); 548 printk(KERN_WARNING "meth: Rx overflow\n");
548 if (status & (METH_INT_RX_UNDERFLOW)) { 549 if (status & (METH_INT_RX_UNDERFLOW)) {
549 printk(KERN_WARNING "meth: Rx underflow\n"); 550 printk(KERN_WARNING "meth: Rx underflow\n");
550 spin_lock(&priv->meth_lock); 551 spin_lock_irqsave(&priv->meth_lock, flags);
551 mace->eth.int_stat = METH_INT_RX_UNDERFLOW; 552 mace->eth.int_stat = METH_INT_RX_UNDERFLOW;
552 /* more underflow interrupts will be delivered, 553 /* more underflow interrupts will be delivered,
553 * effectively throwing us into an infinite loop. 554 * effectively throwing us into an infinite loop.
@@ -555,7 +556,7 @@ static void meth_error(struct net_device* dev, unsigned status)
555 priv->dma_ctrl &= ~METH_DMA_RX_EN; 556 priv->dma_ctrl &= ~METH_DMA_RX_EN;
556 mace->eth.dma_ctrl = priv->dma_ctrl; 557 mace->eth.dma_ctrl = priv->dma_ctrl;
557 DPRINTK("Disabled meth Rx DMA temporarily\n"); 558 DPRINTK("Disabled meth Rx DMA temporarily\n");
558 spin_unlock(&priv->meth_lock); 559 spin_unlock_irqrestore(&priv->meth_lock, flags);
559 } 560 }
560 mace->eth.int_stat = METH_INT_ERROR; 561 mace->eth.int_stat = METH_INT_ERROR;
561} 562}
diff --git a/drivers/net/mlx4/en_cq.c b/drivers/net/mlx4/en_cq.c
index 91f50de84be9..a276125b709b 100644
--- a/drivers/net/mlx4/en_cq.c
+++ b/drivers/net/mlx4/en_cq.c
@@ -125,8 +125,10 @@ void mlx4_en_deactivate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
125 125
126 if (cq->is_tx) 126 if (cq->is_tx)
127 del_timer(&cq->timer); 127 del_timer(&cq->timer);
128 else 128 else {
129 napi_disable(&cq->napi); 129 napi_disable(&cq->napi);
130 netif_napi_del(&cq->napi);
131 }
130 132
131 mlx4_cq_free(mdev->dev, &cq->mcq); 133 mlx4_cq_free(mdev->dev, &cq->mcq);
132} 134}
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 7942c4d3cd88..9ee873e872b3 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -951,7 +951,6 @@ static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv,
951 if (err) { 951 if (err) {
952 mlx4_err(mdev, "Failed to allocate qp #%d\n", qpn); 952 mlx4_err(mdev, "Failed to allocate qp #%d\n", qpn);
953 goto out; 953 goto out;
954 return err;
955 } 954 }
956 qp->event = mlx4_en_sqp_event; 955 qp->event = mlx4_en_sqp_event;
957 956
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
index 102bac90a302..30bea9689694 100644
--- a/drivers/net/mlx4/main.c
+++ b/drivers/net/mlx4/main.c
@@ -976,7 +976,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
976 nreq = err; 976 nreq = err;
977 goto retry; 977 goto retry;
978 } 978 }
979 979 kfree(entries);
980 goto no_msi; 980 goto no_msi;
981 } 981 }
982 982
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index d5838528791f..1361ddc8d31f 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -571,7 +571,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
571 if (rxq->rx_curr_desc == rxq->rx_ring_size) 571 if (rxq->rx_curr_desc == rxq->rx_ring_size)
572 rxq->rx_curr_desc = 0; 572 rxq->rx_curr_desc = 0;
573 573
574 dma_unmap_single(NULL, rx_desc->buf_ptr, 574 dma_unmap_single(mp->dev->dev.parent, rx_desc->buf_ptr,
575 rx_desc->buf_size, DMA_FROM_DEVICE); 575 rx_desc->buf_size, DMA_FROM_DEVICE);
576 rxq->rx_desc_count--; 576 rxq->rx_desc_count--;
577 rx++; 577 rx++;
@@ -677,8 +677,9 @@ static int rxq_refill(struct rx_queue *rxq, int budget)
677 677
678 rx_desc = rxq->rx_desc_area + rx; 678 rx_desc = rxq->rx_desc_area + rx;
679 679
680 rx_desc->buf_ptr = dma_map_single(NULL, skb->data, 680 rx_desc->buf_ptr = dma_map_single(mp->dev->dev.parent,
681 mp->skb_size, DMA_FROM_DEVICE); 681 skb->data, mp->skb_size,
682 DMA_FROM_DEVICE);
682 rx_desc->buf_size = mp->skb_size; 683 rx_desc->buf_size = mp->skb_size;
683 rxq->rx_skb[rx] = skb; 684 rxq->rx_skb[rx] = skb;
684 wmb(); 685 wmb();
@@ -717,6 +718,7 @@ static inline unsigned int has_tiny_unaligned_frags(struct sk_buff *skb)
717 718
718static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb) 719static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)
719{ 720{
721 struct mv643xx_eth_private *mp = txq_to_mp(txq);
720 int nr_frags = skb_shinfo(skb)->nr_frags; 722 int nr_frags = skb_shinfo(skb)->nr_frags;
721 int frag; 723 int frag;
722 724
@@ -745,10 +747,10 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)
745 747
746 desc->l4i_chk = 0; 748 desc->l4i_chk = 0;
747 desc->byte_cnt = this_frag->size; 749 desc->byte_cnt = this_frag->size;
748 desc->buf_ptr = dma_map_page(NULL, this_frag->page, 750 desc->buf_ptr = dma_map_page(mp->dev->dev.parent,
749 this_frag->page_offset, 751 this_frag->page,
750 this_frag->size, 752 this_frag->page_offset,
751 DMA_TO_DEVICE); 753 this_frag->size, DMA_TO_DEVICE);
752 } 754 }
753} 755}
754 756
@@ -825,7 +827,8 @@ no_csum:
825 827
826 desc->l4i_chk = l4i_chk; 828 desc->l4i_chk = l4i_chk;
827 desc->byte_cnt = length; 829 desc->byte_cnt = length;
828 desc->buf_ptr = dma_map_single(NULL, skb->data, length, DMA_TO_DEVICE); 830 desc->buf_ptr = dma_map_single(mp->dev->dev.parent, skb->data,
831 length, DMA_TO_DEVICE);
829 832
830 __skb_queue_tail(&txq->tx_skb, skb); 833 __skb_queue_tail(&txq->tx_skb, skb);
831 834
@@ -955,10 +958,10 @@ static int txq_reclaim(struct tx_queue *txq, int budget, int force)
955 } 958 }
956 959
957 if (cmd_sts & TX_FIRST_DESC) { 960 if (cmd_sts & TX_FIRST_DESC) {
958 dma_unmap_single(NULL, desc->buf_ptr, 961 dma_unmap_single(mp->dev->dev.parent, desc->buf_ptr,
959 desc->byte_cnt, DMA_TO_DEVICE); 962 desc->byte_cnt, DMA_TO_DEVICE);
960 } else { 963 } else {
961 dma_unmap_page(NULL, desc->buf_ptr, 964 dma_unmap_page(mp->dev->dev.parent, desc->buf_ptr,
962 desc->byte_cnt, DMA_TO_DEVICE); 965 desc->byte_cnt, DMA_TO_DEVICE);
963 } 966 }
964 967
@@ -1891,9 +1894,9 @@ static int rxq_init(struct mv643xx_eth_private *mp, int index)
1891 mp->rx_desc_sram_size); 1894 mp->rx_desc_sram_size);
1892 rxq->rx_desc_dma = mp->rx_desc_sram_addr; 1895 rxq->rx_desc_dma = mp->rx_desc_sram_addr;
1893 } else { 1896 } else {
1894 rxq->rx_desc_area = dma_alloc_coherent(NULL, size, 1897 rxq->rx_desc_area = dma_alloc_coherent(mp->dev->dev.parent,
1895 &rxq->rx_desc_dma, 1898 size, &rxq->rx_desc_dma,
1896 GFP_KERNEL); 1899 GFP_KERNEL);
1897 } 1900 }
1898 1901
1899 if (rxq->rx_desc_area == NULL) { 1902 if (rxq->rx_desc_area == NULL) {
@@ -1944,7 +1947,7 @@ out_free:
1944 if (index == 0 && size <= mp->rx_desc_sram_size) 1947 if (index == 0 && size <= mp->rx_desc_sram_size)
1945 iounmap(rxq->rx_desc_area); 1948 iounmap(rxq->rx_desc_area);
1946 else 1949 else
1947 dma_free_coherent(NULL, size, 1950 dma_free_coherent(mp->dev->dev.parent, size,
1948 rxq->rx_desc_area, 1951 rxq->rx_desc_area,
1949 rxq->rx_desc_dma); 1952 rxq->rx_desc_dma);
1950 1953
@@ -1976,7 +1979,7 @@ static void rxq_deinit(struct rx_queue *rxq)
1976 rxq->rx_desc_area_size <= mp->rx_desc_sram_size) 1979 rxq->rx_desc_area_size <= mp->rx_desc_sram_size)
1977 iounmap(rxq->rx_desc_area); 1980 iounmap(rxq->rx_desc_area);
1978 else 1981 else
1979 dma_free_coherent(NULL, rxq->rx_desc_area_size, 1982 dma_free_coherent(mp->dev->dev.parent, rxq->rx_desc_area_size,
1980 rxq->rx_desc_area, rxq->rx_desc_dma); 1983 rxq->rx_desc_area, rxq->rx_desc_dma);
1981 1984
1982 kfree(rxq->rx_skb); 1985 kfree(rxq->rx_skb);
@@ -2004,9 +2007,9 @@ static int txq_init(struct mv643xx_eth_private *mp, int index)
2004 mp->tx_desc_sram_size); 2007 mp->tx_desc_sram_size);
2005 txq->tx_desc_dma = mp->tx_desc_sram_addr; 2008 txq->tx_desc_dma = mp->tx_desc_sram_addr;
2006 } else { 2009 } else {
2007 txq->tx_desc_area = dma_alloc_coherent(NULL, size, 2010 txq->tx_desc_area = dma_alloc_coherent(mp->dev->dev.parent,
2008 &txq->tx_desc_dma, 2011 size, &txq->tx_desc_dma,
2009 GFP_KERNEL); 2012 GFP_KERNEL);
2010 } 2013 }
2011 2014
2012 if (txq->tx_desc_area == NULL) { 2015 if (txq->tx_desc_area == NULL) {
@@ -2050,7 +2053,7 @@ static void txq_deinit(struct tx_queue *txq)
2050 txq->tx_desc_area_size <= mp->tx_desc_sram_size) 2053 txq->tx_desc_area_size <= mp->tx_desc_sram_size)
2051 iounmap(txq->tx_desc_area); 2054 iounmap(txq->tx_desc_area);
2052 else 2055 else
2053 dma_free_coherent(NULL, txq->tx_desc_area_size, 2056 dma_free_coherent(mp->dev->dev.parent, txq->tx_desc_area_size,
2054 txq->tx_desc_area, txq->tx_desc_dma); 2057 txq->tx_desc_area, txq->tx_desc_dma);
2055} 2058}
2056 2059
diff --git a/drivers/net/vxge/vxge-traffic.c b/drivers/net/vxge/vxge-traffic.c
index 506625b180ac..370f55cbbad7 100644
--- a/drivers/net/vxge/vxge-traffic.c
+++ b/drivers/net/vxge/vxge-traffic.c
@@ -115,7 +115,7 @@ enum vxge_hw_status vxge_hw_vpath_intr_enable(struct __vxge_hw_vpath_handle *vp)
115 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_POISON| 115 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_POISON|
116 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_POISON| 116 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_POISON|
117 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR| 117 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR|
118 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR), 0, 32), 118 VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_DMA_ERR), 0, 32),
119 &vp_reg->kdfcctl_errors_mask); 119 &vp_reg->kdfcctl_errors_mask);
120 120
121 __vxge_hw_pio_mem_write32_upper(0, &vp_reg->vpath_ppif_int_mask); 121 __vxge_hw_pio_mem_write32_upper(0, &vp_reg->vpath_ppif_int_mask);
diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
index 3bf7d3f447db..765a7f5d6aa4 100644
--- a/drivers/net/wan/ixp4xx_hss.c
+++ b/drivers/net/wan/ixp4xx_hss.c
@@ -1249,7 +1249,7 @@ static int __devinit hss_init_one(struct platform_device *pdev)
1249 return -ENOMEM; 1249 return -ENOMEM;
1250 1250
1251 if ((port->npe = npe_request(0)) == NULL) { 1251 if ((port->npe = npe_request(0)) == NULL) {
1252 err = -ENOSYS; 1252 err = -ENODEV;
1253 goto err_free; 1253 goto err_free;
1254 } 1254 }
1255 1255
@@ -1311,7 +1311,7 @@ static int __init hss_init_module(void)
1311 if ((ixp4xx_read_feature_bits() & 1311 if ((ixp4xx_read_feature_bits() &
1312 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) != 1312 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) !=
1313 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS)) 1313 (IXP4XX_FEATURE_HDLC | IXP4XX_FEATURE_HSS))
1314 return -ENOSYS; 1314 return -ENODEV;
1315 1315
1316 spin_lock_init(&npe_lock); 1316 spin_lock_init(&npe_lock);
1317 1317
diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
index 02419bfd64b5..f9fc38902322 100644
--- a/drivers/net/wimax/i2400m/rx.c
+++ b/drivers/net/wimax/i2400m/rx.c
@@ -819,10 +819,9 @@ void i2400m_roq_queue_update_ws(struct i2400m *i2400m, struct i2400m_roq *roq,
819 roq_data = (struct i2400m_roq_data *) &skb->cb; 819 roq_data = (struct i2400m_roq_data *) &skb->cb;
820 i2400m_net_erx(i2400m, skb, roq_data->cs); 820 i2400m_net_erx(i2400m, skb, roq_data->cs);
821 } 821 }
822 else { 822 else
823 __i2400m_roq_queue(i2400m, roq, skb, sn, nsn); 823 __i2400m_roq_queue(i2400m, roq, skb, sn, nsn);
824 __i2400m_roq_update_ws(i2400m, roq, sn + 1); 824 __i2400m_roq_update_ws(i2400m, roq, sn + 1);
825 }
826 i2400m_roq_log_add(i2400m, roq, I2400M_RO_TYPE_PACKET_WS, 825 i2400m_roq_log_add(i2400m, roq, I2400M_RO_TYPE_PACKET_WS,
827 old_ws, len, sn, nsn, roq->ws); 826 old_ws, len, sn, nsn, roq->ws);
828 } 827 }
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index c36d3a3d655f..d73475739127 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -6501,7 +6501,10 @@ static int airo_get_encode(struct net_device *dev,
6501 6501
6502 /* Copy the key to the user buffer */ 6502 /* Copy the key to the user buffer */
6503 dwrq->length = get_wep_key(local, index, &buf[0], sizeof(buf)); 6503 dwrq->length = get_wep_key(local, index, &buf[0], sizeof(buf));
6504 memcpy(extra, buf, dwrq->length); 6504 if (dwrq->length != -1)
6505 memcpy(extra, buf, dwrq->length);
6506 else
6507 dwrq->length = 0;
6505 6508
6506 return 0; 6509 return 0;
6507} 6510}
@@ -6659,7 +6662,10 @@ static int airo_get_encodeext(struct net_device *dev,
6659 6662
6660 /* Copy the key to the user buffer */ 6663 /* Copy the key to the user buffer */
6661 ext->key_len = get_wep_key(local, idx, &buf[0], sizeof(buf)); 6664 ext->key_len = get_wep_key(local, idx, &buf[0], sizeof(buf));
6662 memcpy(extra, buf, ext->key_len); 6665 if (ext->key_len != -1)
6666 memcpy(extra, buf, ext->key_len);
6667 else
6668 ext->key_len = 0;
6663 6669
6664 return 0; 6670 return 0;
6665} 6671}
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 6789c5dfcc76..dbfe9f45050e 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -218,7 +218,7 @@ static struct pci_driver ath5k_pci_driver = {
218 * Prototypes - MAC 802.11 stack related functions 218 * Prototypes - MAC 802.11 stack related functions
219 */ 219 */
220static int ath5k_tx(struct ieee80211_hw *hw, struct sk_buff *skb); 220static int ath5k_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
221static int ath5k_reset(struct ath5k_softc *sc, bool stop, bool change_channel); 221static int ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan);
222static int ath5k_reset_wake(struct ath5k_softc *sc); 222static int ath5k_reset_wake(struct ath5k_softc *sc);
223static int ath5k_start(struct ieee80211_hw *hw); 223static int ath5k_start(struct ieee80211_hw *hw);
224static void ath5k_stop(struct ieee80211_hw *hw); 224static void ath5k_stop(struct ieee80211_hw *hw);
@@ -1076,16 +1076,13 @@ ath5k_chan_set(struct ath5k_softc *sc, struct ieee80211_channel *chan)
1076 if (chan->center_freq != sc->curchan->center_freq || 1076 if (chan->center_freq != sc->curchan->center_freq ||
1077 chan->hw_value != sc->curchan->hw_value) { 1077 chan->hw_value != sc->curchan->hw_value) {
1078 1078
1079 sc->curchan = chan;
1080 sc->curband = &sc->sbands[chan->band];
1081
1082 /* 1079 /*
1083 * To switch channels clear any pending DMA operations; 1080 * To switch channels clear any pending DMA operations;
1084 * wait long enough for the RX fifo to drain, reset the 1081 * wait long enough for the RX fifo to drain, reset the
1085 * hardware at the new frequency, and then re-enable 1082 * hardware at the new frequency, and then re-enable
1086 * the relevant bits of the h/w. 1083 * the relevant bits of the h/w.
1087 */ 1084 */
1088 return ath5k_reset(sc, true, true); 1085 return ath5k_reset(sc, chan);
1089 } 1086 }
1090 1087
1091 return 0; 1088 return 0;
@@ -2350,7 +2347,7 @@ ath5k_init(struct ath5k_softc *sc)
2350 sc->imask = AR5K_INT_RXOK | AR5K_INT_RXERR | AR5K_INT_RXEOL | 2347 sc->imask = AR5K_INT_RXOK | AR5K_INT_RXERR | AR5K_INT_RXEOL |
2351 AR5K_INT_RXORN | AR5K_INT_TXDESC | AR5K_INT_TXEOL | 2348 AR5K_INT_RXORN | AR5K_INT_TXDESC | AR5K_INT_TXEOL |
2352 AR5K_INT_FATAL | AR5K_INT_GLOBAL; 2349 AR5K_INT_FATAL | AR5K_INT_GLOBAL;
2353 ret = ath5k_reset(sc, false, false); 2350 ret = ath5k_reset(sc, NULL);
2354 if (ret) 2351 if (ret)
2355 goto done; 2352 goto done;
2356 2353
@@ -2635,18 +2632,25 @@ drop_packet:
2635 return NETDEV_TX_OK; 2632 return NETDEV_TX_OK;
2636} 2633}
2637 2634
2635/*
2636 * Reset the hardware. If chan is not NULL, then also pause rx/tx
2637 * and change to the given channel.
2638 */
2638static int 2639static int
2639ath5k_reset(struct ath5k_softc *sc, bool stop, bool change_channel) 2640ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan)
2640{ 2641{
2641 struct ath5k_hw *ah = sc->ah; 2642 struct ath5k_hw *ah = sc->ah;
2642 int ret; 2643 int ret;
2643 2644
2644 ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n"); 2645 ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "resetting\n");
2645 2646
2646 if (stop) { 2647 if (chan) {
2647 ath5k_hw_set_imr(ah, 0); 2648 ath5k_hw_set_imr(ah, 0);
2648 ath5k_txq_cleanup(sc); 2649 ath5k_txq_cleanup(sc);
2649 ath5k_rx_stop(sc); 2650 ath5k_rx_stop(sc);
2651
2652 sc->curchan = chan;
2653 sc->curband = &sc->sbands[chan->band];
2650 } 2654 }
2651 ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, true); 2655 ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, true);
2652 if (ret) { 2656 if (ret) {
@@ -2684,7 +2688,7 @@ ath5k_reset_wake(struct ath5k_softc *sc)
2684{ 2688{
2685 int ret; 2689 int ret;
2686 2690
2687 ret = ath5k_reset(sc, true, true); 2691 ret = ath5k_reset(sc, sc->curchan);
2688 if (!ret) 2692 if (!ret)
2689 ieee80211_wake_queues(sc->hw); 2693 ieee80211_wake_queues(sc->hw);
2690 2694
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index 6dbc58580abb..168411d322a2 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -93,14 +93,14 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
93 if (pci_enable_device(pdev)) 93 if (pci_enable_device(pdev))
94 return -EIO; 94 return -EIO;
95 95
96 ret = pci_set_dma_mask(pdev, DMA_32BIT_MASK); 96 ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
97 97
98 if (ret) { 98 if (ret) {
99 printk(KERN_ERR "ath9k: 32-bit DMA not available\n"); 99 printk(KERN_ERR "ath9k: 32-bit DMA not available\n");
100 goto bad; 100 goto bad;
101 } 101 }
102 102
103 ret = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK); 103 ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
104 104
105 if (ret) { 105 if (ret) {
106 printk(KERN_ERR "ath9k: 32-bit DMA consistent " 106 printk(KERN_ERR "ath9k: 32-bit DMA consistent "
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index ee271d7f6120..7236382aeaa6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -102,8 +102,8 @@ struct iwl_cfg iwl6000_2agn_cfg = {
102 .eeprom_ver = EEPROM_5000_EEPROM_VERSION, 102 .eeprom_ver = EEPROM_5000_EEPROM_VERSION,
103 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, 103 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
104 .mod_params = &iwl50_mod_params, 104 .mod_params = &iwl50_mod_params,
105 .valid_tx_ant = ANT_BC, 105 .valid_tx_ant = ANT_AB,
106 .valid_rx_ant = ANT_BC, 106 .valid_rx_ant = ANT_AB,
107 .need_pll_cfg = false, 107 .need_pll_cfg = false,
108}; 108};
109 109
@@ -118,8 +118,8 @@ struct iwl_cfg iwl6050_2agn_cfg = {
118 .eeprom_ver = EEPROM_5000_EEPROM_VERSION, 118 .eeprom_ver = EEPROM_5000_EEPROM_VERSION,
119 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION, 119 .eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
120 .mod_params = &iwl50_mod_params, 120 .mod_params = &iwl50_mod_params,
121 .valid_tx_ant = ANT_BC, 121 .valid_tx_ant = ANT_AB,
122 .valid_rx_ant = ANT_BC, 122 .valid_rx_ant = ANT_AB,
123 .need_pll_cfg = false, 123 .need_pll_cfg = false,
124}; 124};
125 125
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 3ebf6cf53a51..596977d71c94 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2944,7 +2944,9 @@ static struct pci_device_id iwl_hw_card_ids[] = {
2944 {IWL_PCI_DEVICE(0x0085, 0x1112, iwl6000_2ag_cfg)}, 2944 {IWL_PCI_DEVICE(0x0085, 0x1112, iwl6000_2ag_cfg)},
2945 {IWL_PCI_DEVICE(0x0082, 0x1122, iwl6000_2ag_cfg)}, 2945 {IWL_PCI_DEVICE(0x0082, 0x1122, iwl6000_2ag_cfg)},
2946 {IWL_PCI_DEVICE(0x422B, PCI_ANY_ID, iwl6000_3agn_cfg)}, 2946 {IWL_PCI_DEVICE(0x422B, PCI_ANY_ID, iwl6000_3agn_cfg)},
2947 {IWL_PCI_DEVICE(0x422C, PCI_ANY_ID, iwl6000_2agn_cfg)},
2947 {IWL_PCI_DEVICE(0x4238, PCI_ANY_ID, iwl6000_3agn_cfg)}, 2948 {IWL_PCI_DEVICE(0x4238, PCI_ANY_ID, iwl6000_3agn_cfg)},
2949 {IWL_PCI_DEVICE(0x4239, PCI_ANY_ID, iwl6000_2agn_cfg)},
2948 {IWL_PCI_DEVICE(0x0082, PCI_ANY_ID, iwl6000_2agn_cfg)}, 2950 {IWL_PCI_DEVICE(0x0082, PCI_ANY_ID, iwl6000_2agn_cfg)},
2949 {IWL_PCI_DEVICE(0x0085, PCI_ANY_ID, iwl6000_3agn_cfg)}, 2951 {IWL_PCI_DEVICE(0x0085, PCI_ANY_ID, iwl6000_3agn_cfg)},
2950 {IWL_PCI_DEVICE(0x0086, PCI_ANY_ID, iwl6050_3agn_cfg)}, 2952 {IWL_PCI_DEVICE(0x0086, PCI_ANY_ID, iwl6050_3agn_cfg)},
diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
index e3569a0a952d..b1610ea4bb3d 100644
--- a/drivers/net/wireless/p54/p54pci.c
+++ b/drivers/net/wireless/p54/p54pci.c
@@ -492,8 +492,8 @@ static int __devinit p54p_probe(struct pci_dev *pdev,
492 goto err_disable_dev; 492 goto err_disable_dev;
493 } 493 }
494 494
495 if (pci_set_dma_mask(pdev, DMA_32BIT_MASK) || 495 if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) ||
496 pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) { 496 pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
497 dev_err(&pdev->dev, "No suitable DMA available\n"); 497 dev_err(&pdev->dev, "No suitable DMA available\n");
498 goto err_free_reg; 498 goto err_free_reg;
499 } 499 }
diff --git a/drivers/net/wireless/rtl818x/rtl8187.h b/drivers/net/wireless/rtl818x/rtl8187.h
index 622196dc078e..c09bfefc70f3 100644
--- a/drivers/net/wireless/rtl818x/rtl8187.h
+++ b/drivers/net/wireless/rtl818x/rtl8187.h
@@ -127,6 +127,12 @@ struct rtl8187_priv {
127 __le64 buf; 127 __le64 buf;
128 struct sk_buff_head queue; 128 struct sk_buff_head queue;
129 } b_tx_status; /* This queue is used by both -b and non-b devices */ 129 } b_tx_status; /* This queue is used by both -b and non-b devices */
130 struct mutex io_mutex;
131 union {
132 u8 bits8;
133 __le16 bits16;
134 __le32 bits32;
135 } *io_dmabuf;
130}; 136};
131 137
132void rtl8187_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data); 138void rtl8187_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data);
@@ -136,10 +142,14 @@ static inline u8 rtl818x_ioread8_idx(struct rtl8187_priv *priv,
136{ 142{
137 u8 val; 143 u8 val;
138 144
145 mutex_lock(&priv->io_mutex);
139 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 146 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
140 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 147 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
141 (unsigned long)addr, idx & 0x03, &val, 148 (unsigned long)addr, idx & 0x03,
142 sizeof(val), HZ / 2); 149 &priv->io_dmabuf->bits8, sizeof(val), HZ / 2);
150
151 val = priv->io_dmabuf->bits8;
152 mutex_unlock(&priv->io_mutex);
143 153
144 return val; 154 return val;
145} 155}
@@ -154,10 +164,14 @@ static inline u16 rtl818x_ioread16_idx(struct rtl8187_priv *priv,
154{ 164{
155 __le16 val; 165 __le16 val;
156 166
167 mutex_lock(&priv->io_mutex);
157 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 168 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
158 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 169 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
159 (unsigned long)addr, idx & 0x03, &val, 170 (unsigned long)addr, idx & 0x03,
160 sizeof(val), HZ / 2); 171 &priv->io_dmabuf->bits16, sizeof(val), HZ / 2);
172
173 val = priv->io_dmabuf->bits16;
174 mutex_unlock(&priv->io_mutex);
161 175
162 return le16_to_cpu(val); 176 return le16_to_cpu(val);
163} 177}
@@ -172,10 +186,14 @@ static inline u32 rtl818x_ioread32_idx(struct rtl8187_priv *priv,
172{ 186{
173 __le32 val; 187 __le32 val;
174 188
189 mutex_lock(&priv->io_mutex);
175 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0), 190 usb_control_msg(priv->udev, usb_rcvctrlpipe(priv->udev, 0),
176 RTL8187_REQ_GET_REG, RTL8187_REQT_READ, 191 RTL8187_REQ_GET_REG, RTL8187_REQT_READ,
177 (unsigned long)addr, idx & 0x03, &val, 192 (unsigned long)addr, idx & 0x03,
178 sizeof(val), HZ / 2); 193 &priv->io_dmabuf->bits32, sizeof(val), HZ / 2);
194
195 val = priv->io_dmabuf->bits32;
196 mutex_unlock(&priv->io_mutex);
179 197
180 return le32_to_cpu(val); 198 return le32_to_cpu(val);
181} 199}
@@ -188,10 +206,15 @@ static inline u32 rtl818x_ioread32(struct rtl8187_priv *priv, __le32 *addr)
188static inline void rtl818x_iowrite8_idx(struct rtl8187_priv *priv, 206static inline void rtl818x_iowrite8_idx(struct rtl8187_priv *priv,
189 u8 *addr, u8 val, u8 idx) 207 u8 *addr, u8 val, u8 idx)
190{ 208{
209 mutex_lock(&priv->io_mutex);
210
211 priv->io_dmabuf->bits8 = val;
191 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 212 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
192 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 213 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
193 (unsigned long)addr, idx & 0x03, &val, 214 (unsigned long)addr, idx & 0x03,
194 sizeof(val), HZ / 2); 215 &priv->io_dmabuf->bits8, sizeof(val), HZ / 2);
216
217 mutex_unlock(&priv->io_mutex);
195} 218}
196 219
197static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val) 220static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val)
@@ -202,12 +225,15 @@ static inline void rtl818x_iowrite8(struct rtl8187_priv *priv, u8 *addr, u8 val)
202static inline void rtl818x_iowrite16_idx(struct rtl8187_priv *priv, 225static inline void rtl818x_iowrite16_idx(struct rtl8187_priv *priv,
203 __le16 *addr, u16 val, u8 idx) 226 __le16 *addr, u16 val, u8 idx)
204{ 227{
205 __le16 buf = cpu_to_le16(val); 228 mutex_lock(&priv->io_mutex);
206 229
230 priv->io_dmabuf->bits16 = cpu_to_le16(val);
207 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 231 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
208 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 232 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
209 (unsigned long)addr, idx & 0x03, &buf, sizeof(buf), 233 (unsigned long)addr, idx & 0x03,
210 HZ / 2); 234 &priv->io_dmabuf->bits16, sizeof(val), HZ / 2);
235
236 mutex_unlock(&priv->io_mutex);
211} 237}
212 238
213static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr, 239static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr,
@@ -219,12 +245,15 @@ static inline void rtl818x_iowrite16(struct rtl8187_priv *priv, __le16 *addr,
219static inline void rtl818x_iowrite32_idx(struct rtl8187_priv *priv, 245static inline void rtl818x_iowrite32_idx(struct rtl8187_priv *priv,
220 __le32 *addr, u32 val, u8 idx) 246 __le32 *addr, u32 val, u8 idx)
221{ 247{
222 __le32 buf = cpu_to_le32(val); 248 mutex_lock(&priv->io_mutex);
223 249
250 priv->io_dmabuf->bits32 = cpu_to_le32(val);
224 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 251 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
225 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 252 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
226 (unsigned long)addr, idx & 0x03, &buf, sizeof(buf), 253 (unsigned long)addr, idx & 0x03,
227 HZ / 2); 254 &priv->io_dmabuf->bits32, sizeof(val), HZ / 2);
255
256 mutex_unlock(&priv->io_mutex);
228} 257}
229 258
230static inline void rtl818x_iowrite32(struct rtl8187_priv *priv, __le32 *addr, 259static inline void rtl818x_iowrite32(struct rtl8187_priv *priv, __le32 *addr,
diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index 158827e50c55..6499ccc34c94 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -1326,6 +1326,14 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1326 priv = dev->priv; 1326 priv = dev->priv;
1327 priv->is_rtl8187b = (id->driver_info == DEVICE_RTL8187B); 1327 priv->is_rtl8187b = (id->driver_info == DEVICE_RTL8187B);
1328 1328
1329 /* allocate "DMA aware" buffer for register accesses */
1330 priv->io_dmabuf = kmalloc(sizeof(*priv->io_dmabuf), GFP_KERNEL);
1331 if (!priv->io_dmabuf) {
1332 err = -ENOMEM;
1333 goto err_free_dev;
1334 }
1335 mutex_init(&priv->io_mutex);
1336
1329 SET_IEEE80211_DEV(dev, &intf->dev); 1337 SET_IEEE80211_DEV(dev, &intf->dev);
1330 usb_set_intfdata(intf, dev); 1338 usb_set_intfdata(intf, dev);
1331 priv->udev = udev; 1339 priv->udev = udev;
@@ -1489,7 +1497,7 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1489 err = ieee80211_register_hw(dev); 1497 err = ieee80211_register_hw(dev);
1490 if (err) { 1498 if (err) {
1491 printk(KERN_ERR "rtl8187: Cannot register device\n"); 1499 printk(KERN_ERR "rtl8187: Cannot register device\n");
1492 goto err_free_dev; 1500 goto err_free_dmabuf;
1493 } 1501 }
1494 mutex_init(&priv->conf_mutex); 1502 mutex_init(&priv->conf_mutex);
1495 skb_queue_head_init(&priv->b_tx_status.queue); 1503 skb_queue_head_init(&priv->b_tx_status.queue);
@@ -1506,6 +1514,8 @@ static int __devinit rtl8187_probe(struct usb_interface *intf,
1506 1514
1507 return 0; 1515 return 0;
1508 1516
1517 err_free_dmabuf:
1518 kfree(priv->io_dmabuf);
1509 err_free_dev: 1519 err_free_dev:
1510 ieee80211_free_hw(dev); 1520 ieee80211_free_hw(dev);
1511 usb_set_intfdata(intf, NULL); 1521 usb_set_intfdata(intf, NULL);
@@ -1529,6 +1539,7 @@ static void __devexit rtl8187_disconnect(struct usb_interface *intf)
1529 priv = dev->priv; 1539 priv = dev->priv;
1530 usb_reset_device(priv->udev); 1540 usb_reset_device(priv->udev);
1531 usb_put_dev(interface_to_usbdev(intf)); 1541 usb_put_dev(interface_to_usbdev(intf));
1542 kfree(priv->io_dmabuf);
1532 ieee80211_free_hw(dev); 1543 ieee80211_free_hw(dev);
1533} 1544}
1534 1545
diff --git a/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c b/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
index 78df281b297a..a09819386a1e 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_rtl8225.c
@@ -88,9 +88,15 @@ static void rtl8225_write_8051(struct ieee80211_hw *dev, u8 addr, __le16 data)
88 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80); 88 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80);
89 udelay(10); 89 udelay(10);
90 90
91 mutex_lock(&priv->io_mutex);
92
93 priv->io_dmabuf->bits16 = data;
91 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0), 94 usb_control_msg(priv->udev, usb_sndctrlpipe(priv->udev, 0),
92 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE, 95 RTL8187_REQ_SET_REG, RTL8187_REQT_WRITE,
93 addr, 0x8225, &data, sizeof(data), HZ / 2); 96 addr, 0x8225, &priv->io_dmabuf->bits16, sizeof(data),
97 HZ / 2);
98
99 mutex_unlock(&priv->io_mutex);
94 100
95 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80 | (1 << 2)); 101 rtl818x_iowrite16(priv, &priv->map->RFPinsOutput, reg80 | (1 << 2));
96 udelay(10); 102 udelay(10);
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index 4fa3bb2ddfe4..33e5ade774ca 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -434,7 +434,8 @@ static void __init superio_parport_init(void)
434 0 /*base_hi*/, 434 0 /*base_hi*/,
435 PAR_IRQ, 435 PAR_IRQ,
436 PARPORT_DMA_NONE /* dma */, 436 PARPORT_DMA_NONE /* dma */,
437 NULL /*struct pci_dev* */) ) 437 NULL /*struct pci_dev* */),
438 0 /* shared irq flags */ )
438 439
439 printk(KERN_WARNING PFX "Probing parallel port failed.\n"); 440 printk(KERN_WARNING PFX "Probing parallel port failed.\n");
440#endif /* CONFIG_PARPORT_PC */ 441#endif /* CONFIG_PARPORT_PC */
diff --git a/drivers/pci/access.c b/drivers/pci/access.c
index 64dd7df90e62..0f3706512686 100644
--- a/drivers/pci/access.c
+++ b/drivers/pci/access.c
@@ -87,8 +87,8 @@ EXPORT_SYMBOL(pci_read_vpd);
87 * pci_write_vpd - Write entry to Vital Product Data 87 * pci_write_vpd - Write entry to Vital Product Data
88 * @dev: pci device struct 88 * @dev: pci device struct
89 * @pos: offset in vpd space 89 * @pos: offset in vpd space
90 * @count: number of bytes to read 90 * @count: number of bytes to write
91 * @val: value to write 91 * @buf: buffer containing write data
92 * 92 *
93 */ 93 */
94ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf) 94ssize_t pci_write_vpd(struct pci_dev *dev, loff_t pos, size_t count, const void *buf)
diff --git a/drivers/pci/htirq.c b/drivers/pci/htirq.c
index bf7d6ce9bbb3..6808d8333ecc 100644
--- a/drivers/pci/htirq.c
+++ b/drivers/pci/htirq.c
@@ -158,6 +158,7 @@ int ht_create_irq(struct pci_dev *dev, int idx)
158 158
159/** 159/**
160 * ht_destroy_irq - destroy an irq created with ht_create_irq 160 * ht_destroy_irq - destroy an irq created with ht_create_irq
161 * @irq: irq to be destroyed
161 * 162 *
162 * This reverses ht_create_irq removing the specified irq from 163 * This reverses ht_create_irq removing the specified irq from
163 * existence. The irq should be free before this happens. 164 * existence. The irq should be free before this happens.
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 001b328adf80..a563fbe559d0 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -59,6 +59,10 @@
59#define DMA_32BIT_PFN IOVA_PFN(DMA_BIT_MASK(32)) 59#define DMA_32BIT_PFN IOVA_PFN(DMA_BIT_MASK(32))
60#define DMA_64BIT_PFN IOVA_PFN(DMA_BIT_MASK(64)) 60#define DMA_64BIT_PFN IOVA_PFN(DMA_BIT_MASK(64))
61 61
62#ifndef PHYSICAL_PAGE_MASK
63#define PHYSICAL_PAGE_MASK PAGE_MASK
64#endif
65
62/* global iommu list, set NULL for ignored DMAR units */ 66/* global iommu list, set NULL for ignored DMAR units */
63static struct intel_iommu **g_iommus; 67static struct intel_iommu **g_iommus;
64 68
@@ -1216,7 +1220,7 @@ static void dmar_init_reserved_ranges(void)
1216 if (!r->flags || !(r->flags & IORESOURCE_MEM)) 1220 if (!r->flags || !(r->flags & IORESOURCE_MEM))
1217 continue; 1221 continue;
1218 addr = r->start; 1222 addr = r->start;
1219 addr &= PAGE_MASK; 1223 addr &= PHYSICAL_PAGE_MASK;
1220 size = r->end - addr; 1224 size = r->end - addr;
1221 size = PAGE_ALIGN(size); 1225 size = PAGE_ALIGN(size);
1222 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(addr), 1226 iova = reserve_iova(&reserved_iova_list, IOVA_PFN(addr),
@@ -2173,7 +2177,8 @@ static dma_addr_t __intel_map_single(struct device *hwdev, phys_addr_t paddr,
2173 * is not a big problem 2177 * is not a big problem
2174 */ 2178 */
2175 ret = domain_page_mapping(domain, start_paddr, 2179 ret = domain_page_mapping(domain, start_paddr,
2176 ((u64)paddr) & PAGE_MASK, size, prot); 2180 ((u64)paddr) & PHYSICAL_PAGE_MASK,
2181 size, prot);
2177 if (ret) 2182 if (ret)
2178 goto error; 2183 goto error;
2179 2184
@@ -2463,8 +2468,8 @@ static int intel_map_sg(struct device *hwdev, struct scatterlist *sglist, int ne
2463 addr = page_to_phys(sg_page(sg)) + sg->offset; 2468 addr = page_to_phys(sg_page(sg)) + sg->offset;
2464 size = aligned_size((u64)addr, sg->length); 2469 size = aligned_size((u64)addr, sg->length);
2465 ret = domain_page_mapping(domain, start_addr + offset, 2470 ret = domain_page_mapping(domain, start_addr + offset,
2466 ((u64)addr) & PAGE_MASK, 2471 ((u64)addr) & PHYSICAL_PAGE_MASK,
2467 size, prot); 2472 size, prot);
2468 if (ret) { 2473 if (ret) {
2469 /* clear the page */ 2474 /* clear the page */
2470 dma_pte_clear_range(domain, start_addr, 2475 dma_pte_clear_range(domain, start_addr,
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 6f2e6295e773..362773247fbf 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -455,8 +455,6 @@ static int msix_capability_init(struct pci_dev *dev,
455 entry->msi_attrib.default_irq = dev->irq; 455 entry->msi_attrib.default_irq = dev->irq;
456 entry->msi_attrib.pos = pos; 456 entry->msi_attrib.pos = pos;
457 entry->mask_base = base; 457 entry->mask_base = base;
458 entry->masked = readl(base + j * PCI_MSIX_ENTRY_SIZE +
459 PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
460 msix_mask_irq(entry, 1); 458 msix_mask_irq(entry, 1);
461 459
462 list_add_tail(&entry->list, &dev->msi_list); 460 list_add_tail(&entry->list, &dev->msi_list);
@@ -493,6 +491,12 @@ static int msix_capability_init(struct pci_dev *dev,
493 msix_set_enable(dev, 1); 491 msix_set_enable(dev, 1);
494 dev->msix_enabled = 1; 492 dev->msix_enabled = 1;
495 493
494 list_for_each_entry(entry, &dev->msi_list, list) {
495 int vector = entry->msi_attrib.entry_nr;
496 entry->masked = readl(base + vector * PCI_MSIX_ENTRY_SIZE +
497 PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET);
498 }
499
496 return 0; 500 return 0;
497} 501}
498 502
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index a7eb1b46a5a8..85ebd02a64a7 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -492,6 +492,7 @@ write_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr,
492/** 492/**
493 * pci_read_legacy_io - read byte(s) from legacy I/O port space 493 * pci_read_legacy_io - read byte(s) from legacy I/O port space
494 * @kobj: kobject corresponding to file to read from 494 * @kobj: kobject corresponding to file to read from
495 * @bin_attr: struct bin_attribute for this file
495 * @buf: buffer to store results 496 * @buf: buffer to store results
496 * @off: offset into legacy I/O port space 497 * @off: offset into legacy I/O port space
497 * @count: number of bytes to read 498 * @count: number of bytes to read
@@ -517,6 +518,7 @@ pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr,
517/** 518/**
518 * pci_write_legacy_io - write byte(s) to legacy I/O port space 519 * pci_write_legacy_io - write byte(s) to legacy I/O port space
519 * @kobj: kobject corresponding to file to read from 520 * @kobj: kobject corresponding to file to read from
521 * @bin_attr: struct bin_attribute for this file
520 * @buf: buffer containing value to be written 522 * @buf: buffer containing value to be written
521 * @off: offset into legacy I/O port space 523 * @off: offset into legacy I/O port space
522 * @count: number of bytes to write 524 * @count: number of bytes to write
@@ -733,9 +735,9 @@ pci_mmap_resource_wc(struct kobject *kobj, struct bin_attribute *attr,
733 735
734/** 736/**
735 * pci_remove_resource_files - cleanup resource files 737 * pci_remove_resource_files - cleanup resource files
736 * @dev: dev to cleanup 738 * @pdev: dev to cleanup
737 * 739 *
738 * If we created resource files for @dev, remove them from sysfs and 740 * If we created resource files for @pdev, remove them from sysfs and
739 * free their resources. 741 * free their resources.
740 */ 742 */
741static void 743static void
@@ -793,9 +795,9 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
793 795
794/** 796/**
795 * pci_create_resource_files - create resource files in sysfs for @dev 797 * pci_create_resource_files - create resource files in sysfs for @dev
796 * @dev: dev in question 798 * @pdev: dev in question
797 * 799 *
798 * Walk the resources in @dev creating files for each resource available. 800 * Walk the resources in @pdev creating files for each resource available.
799 */ 801 */
800static int pci_create_resource_files(struct pci_dev *pdev) 802static int pci_create_resource_files(struct pci_dev *pdev)
801{ 803{
@@ -829,6 +831,7 @@ void __weak pci_remove_resource_files(struct pci_dev *dev) { return; }
829/** 831/**
830 * pci_write_rom - used to enable access to the PCI ROM display 832 * pci_write_rom - used to enable access to the PCI ROM display
831 * @kobj: kernel object handle 833 * @kobj: kernel object handle
834 * @bin_attr: struct bin_attribute for this file
832 * @buf: user input 835 * @buf: user input
833 * @off: file offset 836 * @off: file offset
834 * @count: number of byte in input 837 * @count: number of byte in input
@@ -852,6 +855,7 @@ pci_write_rom(struct kobject *kobj, struct bin_attribute *bin_attr,
852/** 855/**
853 * pci_read_rom - read a PCI ROM 856 * pci_read_rom - read a PCI ROM
854 * @kobj: kernel object handle 857 * @kobj: kernel object handle
858 * @bin_attr: struct bin_attribute for this file
855 * @buf: where to put the data we read from the ROM 859 * @buf: where to put the data we read from the ROM
856 * @off: file offset 860 * @off: file offset
857 * @count: number of bytes to read 861 * @count: number of bytes to read
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 16fd0d4c3166..34bf0fdf5047 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -681,11 +681,34 @@ EXPORT_SYMBOL(pci_choose_state);
681 681
682#define PCI_EXP_SAVE_REGS 7 682#define PCI_EXP_SAVE_REGS 7
683 683
684#define pcie_cap_has_devctl(type, flags) 1
685#define pcie_cap_has_lnkctl(type, flags) \
686 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
687 (type == PCI_EXP_TYPE_ROOT_PORT || \
688 type == PCI_EXP_TYPE_ENDPOINT || \
689 type == PCI_EXP_TYPE_LEG_END))
690#define pcie_cap_has_sltctl(type, flags) \
691 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
692 ((type == PCI_EXP_TYPE_ROOT_PORT) || \
693 (type == PCI_EXP_TYPE_DOWNSTREAM && \
694 (flags & PCI_EXP_FLAGS_SLOT))))
695#define pcie_cap_has_rtctl(type, flags) \
696 ((flags & PCI_EXP_FLAGS_VERS) > 1 || \
697 (type == PCI_EXP_TYPE_ROOT_PORT || \
698 type == PCI_EXP_TYPE_RC_EC))
699#define pcie_cap_has_devctl2(type, flags) \
700 ((flags & PCI_EXP_FLAGS_VERS) > 1)
701#define pcie_cap_has_lnkctl2(type, flags) \
702 ((flags & PCI_EXP_FLAGS_VERS) > 1)
703#define pcie_cap_has_sltctl2(type, flags) \
704 ((flags & PCI_EXP_FLAGS_VERS) > 1)
705
684static int pci_save_pcie_state(struct pci_dev *dev) 706static int pci_save_pcie_state(struct pci_dev *dev)
685{ 707{
686 int pos, i = 0; 708 int pos, i = 0;
687 struct pci_cap_saved_state *save_state; 709 struct pci_cap_saved_state *save_state;
688 u16 *cap; 710 u16 *cap;
711 u16 flags;
689 712
690 pos = pci_find_capability(dev, PCI_CAP_ID_EXP); 713 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
691 if (pos <= 0) 714 if (pos <= 0)
@@ -698,13 +721,22 @@ static int pci_save_pcie_state(struct pci_dev *dev)
698 } 721 }
699 cap = (u16 *)&save_state->data[0]; 722 cap = (u16 *)&save_state->data[0];
700 723
701 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &cap[i++]); 724 pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
702 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &cap[i++]); 725
703 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL, &cap[i++]); 726 if (pcie_cap_has_devctl(dev->pcie_type, flags))
704 pci_read_config_word(dev, pos + PCI_EXP_RTCTL, &cap[i++]); 727 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &cap[i++]);
705 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL2, &cap[i++]); 728 if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
706 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL2, &cap[i++]); 729 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &cap[i++]);
707 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL2, &cap[i++]); 730 if (pcie_cap_has_sltctl(dev->pcie_type, flags))
731 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL, &cap[i++]);
732 if (pcie_cap_has_rtctl(dev->pcie_type, flags))
733 pci_read_config_word(dev, pos + PCI_EXP_RTCTL, &cap[i++]);
734 if (pcie_cap_has_devctl2(dev->pcie_type, flags))
735 pci_read_config_word(dev, pos + PCI_EXP_DEVCTL2, &cap[i++]);
736 if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
737 pci_read_config_word(dev, pos + PCI_EXP_LNKCTL2, &cap[i++]);
738 if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
739 pci_read_config_word(dev, pos + PCI_EXP_SLTCTL2, &cap[i++]);
708 740
709 return 0; 741 return 0;
710} 742}
@@ -714,6 +746,7 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
714 int i = 0, pos; 746 int i = 0, pos;
715 struct pci_cap_saved_state *save_state; 747 struct pci_cap_saved_state *save_state;
716 u16 *cap; 748 u16 *cap;
749 u16 flags;
717 750
718 save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP); 751 save_state = pci_find_saved_cap(dev, PCI_CAP_ID_EXP);
719 pos = pci_find_capability(dev, PCI_CAP_ID_EXP); 752 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
@@ -721,13 +754,22 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
721 return; 754 return;
722 cap = (u16 *)&save_state->data[0]; 755 cap = (u16 *)&save_state->data[0];
723 756
724 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, cap[i++]); 757 pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
725 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]); 758
726 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]); 759 if (pcie_cap_has_devctl(dev->pcie_type, flags))
727 pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]); 760 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, cap[i++]);
728 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL2, cap[i++]); 761 if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
729 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL2, cap[i++]); 762 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]);
730 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL2, cap[i++]); 763 if (pcie_cap_has_sltctl(dev->pcie_type, flags))
764 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
765 if (pcie_cap_has_rtctl(dev->pcie_type, flags))
766 pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
767 if (pcie_cap_has_devctl2(dev->pcie_type, flags))
768 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL2, cap[i++]);
769 if (pcie_cap_has_lnkctl2(dev->pcie_type, flags))
770 pci_write_config_word(dev, pos + PCI_EXP_LNKCTL2, cap[i++]);
771 if (pcie_cap_has_sltctl2(dev->pcie_type, flags))
772 pci_write_config_word(dev, pos + PCI_EXP_SLTCTL2, cap[i++]);
731} 773}
732 774
733 775
diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h
index c7ad68b6c6d6..aa14482a4779 100644
--- a/drivers/pci/pcie/aer/aerdrv.h
+++ b/drivers/pci/pcie/aer/aerdrv.h
@@ -95,6 +95,9 @@ struct aer_broadcast_data {
95static inline pci_ers_result_t merge_result(enum pci_ers_result orig, 95static inline pci_ers_result_t merge_result(enum pci_ers_result orig,
96 enum pci_ers_result new) 96 enum pci_ers_result new)
97{ 97{
98 if (new == PCI_ERS_RESULT_NONE)
99 return orig;
100
98 switch (orig) { 101 switch (orig) {
99 case PCI_ERS_RESULT_CAN_RECOVER: 102 case PCI_ERS_RESULT_CAN_RECOVER:
100 case PCI_ERS_RESULT_RECOVERED: 103 case PCI_ERS_RESULT_RECOVERED:
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
index b924e2463f85..091ce70051e0 100644
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -200,7 +200,7 @@ static int slot_reset_iter(struct device *device, void *data)
200 200
201static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev) 201static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)
202{ 202{
203 pci_ers_result_t status = PCI_ERS_RESULT_NONE; 203 pci_ers_result_t status = PCI_ERS_RESULT_RECOVERED;
204 int retval; 204 int retval;
205 205
206 /* If fatal, restore cfg space for possible link reset at upstream */ 206 /* If fatal, restore cfg space for possible link reset at upstream */
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 8eb50dffb78a..e3c3e081b834 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1118,10 +1118,6 @@ unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus)
1118 return max; 1118 return max;
1119} 1119}
1120 1120
1121void __attribute__((weak)) set_pci_bus_resources_arch_default(struct pci_bus *b)
1122{
1123}
1124
1125struct pci_bus * pci_create_bus(struct device *parent, 1121struct pci_bus * pci_create_bus(struct device *parent,
1126 int bus, struct pci_ops *ops, void *sysdata) 1122 int bus, struct pci_ops *ops, void *sysdata)
1127{ 1123{
@@ -1180,8 +1176,6 @@ struct pci_bus * pci_create_bus(struct device *parent,
1180 b->resource[0] = &ioport_resource; 1176 b->resource[0] = &ioport_resource;
1181 b->resource[1] = &iomem_resource; 1177 b->resource[1] = &iomem_resource;
1182 1178
1183 set_pci_bus_resources_arch_default(b);
1184
1185 return b; 1179 return b;
1186 1180
1187dev_create_file_err: 1181dev_create_file_err:
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index c01c1196d45e..bd4253f93d5a 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2033,6 +2033,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_di
2033DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); 2033DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
2034DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disable_all_msi); 2034DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3336, quirk_disable_all_msi);
2035DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); 2035DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
2036DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
2036 2037
2037/* Disable MSI on chipsets that are known to not support it */ 2038/* Disable MSI on chipsets that are known to not support it */
2038static void __devinit quirk_disable_msi(struct pci_dev *dev) 2039static void __devinit quirk_disable_msi(struct pci_dev *dev)
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 8d9da9d30a61..a00f85471b6e 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -536,11 +536,13 @@ static void pci_bus_dump_res(struct pci_bus *bus)
536 536
537 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { 537 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
538 struct resource *res = bus->resource[i]; 538 struct resource *res = bus->resource[i];
539 if (!res) 539 if (!res || !res->end)
540 continue; 540 continue;
541 541
542 dev_printk(KERN_DEBUG, &bus->dev, "resource %d %s %pR\n", i, 542 dev_printk(KERN_DEBUG, &bus->dev, "resource %d %s %pR\n", i,
543 (res->flags & IORESOURCE_IO) ? "io: " : "mem:", res); 543 (res->flags & IORESOURCE_IO) ? "io: " :
544 ((res->flags & IORESOURCE_PREFETCH)? "pref mem":"mem:"),
545 res);
544 } 546 }
545} 547}
546 548
diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index 21189447e545..fe95ce20bcbd 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -264,8 +264,8 @@ EXPORT_SYMBOL_GPL(pci_create_slot);
264 264
265/** 265/**
266 * pci_renumber_slot - update %struct pci_slot -> number 266 * pci_renumber_slot - update %struct pci_slot -> number
267 * @slot - %struct pci_slot to update 267 * @slot: &struct pci_slot to update
268 * @slot_nr - new number for slot 268 * @slot_nr: new number for slot
269 * 269 *
270 * The primary purpose of this interface is to allow callers who earlier 270 * The primary purpose of this interface is to allow callers who earlier
271 * created a placeholder slot in pci_create_slot() by passing a -1 as 271 * created a placeholder slot in pci_create_slot() by passing a -1 as
diff --git a/drivers/pcmcia/pxa2xx_sharpsl.c b/drivers/pcmcia/pxa2xx_sharpsl.c
index 1cd02f5a23a0..bc43f78f6f0b 100644
--- a/drivers/pcmcia/pxa2xx_sharpsl.c
+++ b/drivers/pcmcia/pxa2xx_sharpsl.c
@@ -255,6 +255,9 @@ static int __init sharpsl_pcmcia_init(void)
255{ 255{
256 int ret; 256 int ret;
257 257
258 if (!platform_scoop_config)
259 return -ENODEV;
260
258 sharpsl_pcmcia_ops.nr = platform_scoop_config->num_devs; 261 sharpsl_pcmcia_ops.nr = platform_scoop_config->num_devs;
259 sharpsl_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); 262 sharpsl_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
260 263
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index eeafc6c0160d..bfc1a8892a32 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -269,16 +269,16 @@ static struct key_entry asus_keymap[] = {
269 {KE_KEY, 0x34, KEY_SWITCHVIDEOMODE}, 269 {KE_KEY, 0x34, KEY_SWITCHVIDEOMODE},
270 {KE_KEY, 0x40, KEY_PREVIOUSSONG}, 270 {KE_KEY, 0x40, KEY_PREVIOUSSONG},
271 {KE_KEY, 0x41, KEY_NEXTSONG}, 271 {KE_KEY, 0x41, KEY_NEXTSONG},
272 {KE_KEY, 0x43, KEY_STOP}, 272 {KE_KEY, 0x43, KEY_STOPCD},
273 {KE_KEY, 0x45, KEY_PLAYPAUSE}, 273 {KE_KEY, 0x45, KEY_PLAYPAUSE},
274 {KE_KEY, 0x50, KEY_EMAIL}, 274 {KE_KEY, 0x50, KEY_EMAIL},
275 {KE_KEY, 0x51, KEY_WWW}, 275 {KE_KEY, 0x51, KEY_WWW},
276 {KE_KEY, 0x5C, BTN_EXTRA}, /* Performance */ 276 {KE_KEY, 0x5C, KEY_SCREENLOCK}, /* Screenlock */
277 {KE_KEY, 0x5D, KEY_WLAN}, 277 {KE_KEY, 0x5D, KEY_WLAN},
278 {KE_KEY, 0x61, KEY_SWITCHVIDEOMODE}, 278 {KE_KEY, 0x61, KEY_SWITCHVIDEOMODE},
279 {KE_KEY, 0x6B, BTN_TOUCH}, /* Lock Mouse */ 279 {KE_KEY, 0x6B, BTN_TOUCH}, /* Lock Mouse */
280 {KE_KEY, 0x82, KEY_CAMERA}, 280 {KE_KEY, 0x82, KEY_CAMERA},
281 {KE_KEY, 0x8A, KEY_TV}, 281 {KE_KEY, 0x8A, KEY_PROG1},
282 {KE_KEY, 0x95, KEY_MEDIA}, 282 {KE_KEY, 0x95, KEY_MEDIA},
283 {KE_KEY, 0x99, KEY_PHONE}, 283 {KE_KEY, 0x99, KEY_PHONE},
284 {KE_END, 0}, 284 {KE_END, 0},
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 6f54fd1757cd..353a898c3693 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -158,6 +158,7 @@ enum { KE_KEY, KE_END };
158static struct key_entry eeepc_keymap[] = { 158static struct key_entry eeepc_keymap[] = {
159 /* Sleep already handled via generic ACPI code */ 159 /* Sleep already handled via generic ACPI code */
160 {KE_KEY, 0x10, KEY_WLAN }, 160 {KE_KEY, 0x10, KEY_WLAN },
161 {KE_KEY, 0x11, KEY_WLAN },
161 {KE_KEY, 0x12, KEY_PROG1 }, 162 {KE_KEY, 0x12, KEY_PROG1 },
162 {KE_KEY, 0x13, KEY_MUTE }, 163 {KE_KEY, 0x13, KEY_MUTE },
163 {KE_KEY, 0x14, KEY_VOLUMEDOWN }, 164 {KE_KEY, 0x14, KEY_VOLUMEDOWN },
@@ -166,6 +167,8 @@ static struct key_entry eeepc_keymap[] = {
166 {KE_KEY, 0x1b, KEY_ZOOM }, 167 {KE_KEY, 0x1b, KEY_ZOOM },
167 {KE_KEY, 0x1c, KEY_PROG2 }, 168 {KE_KEY, 0x1c, KEY_PROG2 },
168 {KE_KEY, 0x1d, KEY_PROG3 }, 169 {KE_KEY, 0x1d, KEY_PROG3 },
170 {KE_KEY, NOTIFY_BRN_MIN, KEY_BRIGHTNESSDOWN },
171 {KE_KEY, NOTIFY_BRN_MIN + 2, KEY_BRIGHTNESSUP },
169 {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE }, 172 {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE },
170 {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE }, 173 {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE },
171 {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE }, 174 {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE },
@@ -381,11 +384,13 @@ static ssize_t show_sys_acpi(int cm, char *buf)
381EEEPC_CREATE_DEVICE_ATTR(camera, CM_ASL_CAMERA); 384EEEPC_CREATE_DEVICE_ATTR(camera, CM_ASL_CAMERA);
382EEEPC_CREATE_DEVICE_ATTR(cardr, CM_ASL_CARDREADER); 385EEEPC_CREATE_DEVICE_ATTR(cardr, CM_ASL_CARDREADER);
383EEEPC_CREATE_DEVICE_ATTR(disp, CM_ASL_DISPLAYSWITCH); 386EEEPC_CREATE_DEVICE_ATTR(disp, CM_ASL_DISPLAYSWITCH);
387EEEPC_CREATE_DEVICE_ATTR(cpufv, CM_ASL_CPUFV);
384 388
385static struct attribute *platform_attributes[] = { 389static struct attribute *platform_attributes[] = {
386 &dev_attr_camera.attr, 390 &dev_attr_camera.attr,
387 &dev_attr_cardr.attr, 391 &dev_attr_cardr.attr,
388 &dev_attr_disp.attr, 392 &dev_attr_disp.attr,
393 &dev_attr_cpufv.attr,
389 NULL 394 NULL
390}; 395};
391 396
@@ -512,15 +517,21 @@ static int eeepc_hotk_check(void)
512 return 0; 517 return 0;
513} 518}
514 519
515static void notify_brn(void) 520static int notify_brn(void)
516{ 521{
522 /* returns the *previous* brightness, or -1 */
517 struct backlight_device *bd = eeepc_backlight_device; 523 struct backlight_device *bd = eeepc_backlight_device;
518 if (bd) 524 if (bd) {
525 int old = bd->props.brightness;
519 bd->props.brightness = read_brightness(bd); 526 bd->props.brightness = read_brightness(bd);
527 return old;
528 }
529 return -1;
520} 530}
521 531
522static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data) 532static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
523{ 533{
534 enum rfkill_state state;
524 struct pci_dev *dev; 535 struct pci_dev *dev;
525 struct pci_bus *bus = pci_find_bus(0, 1); 536 struct pci_bus *bus = pci_find_bus(0, 1);
526 537
@@ -532,7 +543,9 @@ static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
532 return; 543 return;
533 } 544 }
534 545
535 if (get_acpi(CM_ASL_WLAN) == 1) { 546 eeepc_wlan_rfkill_state(ehotk->eeepc_wlan_rfkill, &state);
547
548 if (state == RFKILL_STATE_UNBLOCKED) {
536 dev = pci_get_slot(bus, 0); 549 dev = pci_get_slot(bus, 0);
537 if (dev) { 550 if (dev) {
538 /* Device already present */ 551 /* Device already present */
@@ -552,23 +565,41 @@ static void eeepc_rfkill_notify(acpi_handle handle, u32 event, void *data)
552 pci_dev_put(dev); 565 pci_dev_put(dev);
553 } 566 }
554 } 567 }
568
569 rfkill_force_state(ehotk->eeepc_wlan_rfkill, state);
555} 570}
556 571
557static void eeepc_hotk_notify(acpi_handle handle, u32 event, void *data) 572static void eeepc_hotk_notify(acpi_handle handle, u32 event, void *data)
558{ 573{
559 static struct key_entry *key; 574 static struct key_entry *key;
560 u16 count; 575 u16 count;
576 int brn = -ENODEV;
561 577
562 if (!ehotk) 578 if (!ehotk)
563 return; 579 return;
564 if (event >= NOTIFY_BRN_MIN && event <= NOTIFY_BRN_MAX) 580 if (event >= NOTIFY_BRN_MIN && event <= NOTIFY_BRN_MAX)
565 notify_brn(); 581 brn = notify_brn();
566 count = ehotk->event_count[event % 128]++; 582 count = ehotk->event_count[event % 128]++;
567 acpi_bus_generate_proc_event(ehotk->device, event, count); 583 acpi_bus_generate_proc_event(ehotk->device, event, count);
568 acpi_bus_generate_netlink_event(ehotk->device->pnp.device_class, 584 acpi_bus_generate_netlink_event(ehotk->device->pnp.device_class,
569 dev_name(&ehotk->device->dev), event, 585 dev_name(&ehotk->device->dev), event,
570 count); 586 count);
571 if (ehotk->inputdev) { 587 if (ehotk->inputdev) {
588 if (brn != -ENODEV) {
589 /* brightness-change events need special
590 * handling for conversion to key events
591 */
592 if (brn < 0)
593 brn = event;
594 else
595 brn += NOTIFY_BRN_MIN;
596 if (event < brn)
597 event = NOTIFY_BRN_MIN; /* brightness down */
598 else if (event > brn)
599 event = NOTIFY_BRN_MIN + 2; /* ... up */
600 else
601 event = NOTIFY_BRN_MIN + 1; /* ... unchanged */
602 }
572 key = eepc_get_entry_by_scancode(event); 603 key = eepc_get_entry_by_scancode(event);
573 if (key) { 604 if (key) {
574 switch (key->type) { 605 switch (key->type) {
@@ -649,6 +680,9 @@ static int eeepc_hotk_add(struct acpi_device *device)
649 if (ACPI_FAILURE(status)) 680 if (ACPI_FAILURE(status))
650 printk(EEEPC_ERR "Error installing notify handler\n"); 681 printk(EEEPC_ERR "Error installing notify handler\n");
651 682
683 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
684 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");
685
652 if (get_acpi(CM_ASL_WLAN) != -1) { 686 if (get_acpi(CM_ASL_WLAN) != -1) {
653 ehotk->eeepc_wlan_rfkill = rfkill_allocate(&device->dev, 687 ehotk->eeepc_wlan_rfkill = rfkill_allocate(&device->dev,
654 RFKILL_TYPE_WLAN); 688 RFKILL_TYPE_WLAN);
@@ -704,9 +738,6 @@ static int eeepc_hotk_add(struct acpi_device *device)
704 goto bluetooth_fail; 738 goto bluetooth_fail;
705 } 739 }
706 740
707 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
708 eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");
709
710 return 0; 741 return 0;
711 742
712 bluetooth_fail: 743 bluetooth_fail:
@@ -717,6 +748,8 @@ static int eeepc_hotk_add(struct acpi_device *device)
717 wlan_fail: 748 wlan_fail:
718 if (ehotk->eeepc_wlan_rfkill) 749 if (ehotk->eeepc_wlan_rfkill)
719 rfkill_free(ehotk->eeepc_wlan_rfkill); 750 rfkill_free(ehotk->eeepc_wlan_rfkill);
751 eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P6");
752 eeepc_unregister_rfkill_notifier("\\_SB.PCI0.P0P7");
720 ehotk_fail: 753 ehotk_fail:
721 kfree(ehotk); 754 kfree(ehotk);
722 ehotk = NULL; 755 ehotk = NULL;
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 184e99e72684..f1963b05175b 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -317,7 +317,8 @@ static void sony_laptop_report_input_event(u8 event)
317 struct input_dev *key_dev = sony_laptop_input.key_dev; 317 struct input_dev *key_dev = sony_laptop_input.key_dev;
318 struct sony_laptop_keypress kp = { NULL }; 318 struct sony_laptop_keypress kp = { NULL };
319 319
320 if (event == SONYPI_EVENT_FNKEY_RELEASED) { 320 if (event == SONYPI_EVENT_FNKEY_RELEASED ||
321 event == SONYPI_EVENT_ANYBUTTON_RELEASED) {
321 /* Nothing, not all VAIOs generate this event */ 322 /* Nothing, not all VAIOs generate this event */
322 return; 323 return;
323 } 324 }
@@ -905,7 +906,6 @@ static struct sony_nc_event sony_127_events[] = {
905 { 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED }, 906 { 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED },
906 { 0x86, SONYPI_EVENT_PKEY_P5 }, 907 { 0x86, SONYPI_EVENT_PKEY_P5 },
907 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED }, 908 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
908 { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
909 { 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED }, 909 { 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED },
910 { 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED }, 910 { 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED },
911 { 0, 0 }, 911 { 0, 0 },
@@ -1004,6 +1004,7 @@ static int sony_nc_function_setup(struct acpi_device *device)
1004 sony_call_snc_handle(0x0100, 0, &result); 1004 sony_call_snc_handle(0x0100, 0, &result);
1005 sony_call_snc_handle(0x0101, 0, &result); 1005 sony_call_snc_handle(0x0101, 0, &result);
1006 sony_call_snc_handle(0x0102, 0x100, &result); 1006 sony_call_snc_handle(0x0102, 0x100, &result);
1007 sony_call_snc_handle(0x0127, 0, &result);
1007 1008
1008 return 0; 1009 return 0;
1009} 1010}
@@ -1040,7 +1041,7 @@ static int sony_nc_resume(struct acpi_device *device)
1040 1041
1041 /* set the last requested brightness level */ 1042 /* set the last requested brightness level */
1042 if (sony_backlight_device && 1043 if (sony_backlight_device &&
1043 !sony_backlight_update_status(sony_backlight_device)) 1044 sony_backlight_update_status(sony_backlight_device) < 0)
1044 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n"); 1045 printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n");
1045 1046
1046 return 0; 1047 return 0;
@@ -1101,8 +1102,11 @@ static int sony_nc_setup_wifi_rfkill(struct acpi_device *device)
1101 err = rfkill_register(sony_wifi_rfkill); 1102 err = rfkill_register(sony_wifi_rfkill);
1102 if (err) 1103 if (err)
1103 rfkill_free(sony_wifi_rfkill); 1104 rfkill_free(sony_wifi_rfkill);
1104 else 1105 else {
1105 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill; 1106 sony_rfkill_devices[SONY_WIFI] = sony_wifi_rfkill;
1107 sony_nc_rfkill_set(sony_wifi_rfkill->data,
1108 RFKILL_STATE_UNBLOCKED);
1109 }
1106 return err; 1110 return err;
1107} 1111}
1108 1112
@@ -1122,8 +1126,11 @@ static int sony_nc_setup_bluetooth_rfkill(struct acpi_device *device)
1122 err = rfkill_register(sony_bluetooth_rfkill); 1126 err = rfkill_register(sony_bluetooth_rfkill);
1123 if (err) 1127 if (err)
1124 rfkill_free(sony_bluetooth_rfkill); 1128 rfkill_free(sony_bluetooth_rfkill);
1125 else 1129 else {
1126 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill; 1130 sony_rfkill_devices[SONY_BLUETOOTH] = sony_bluetooth_rfkill;
1131 sony_nc_rfkill_set(sony_bluetooth_rfkill->data,
1132 RFKILL_STATE_UNBLOCKED);
1133 }
1127 return err; 1134 return err;
1128} 1135}
1129 1136
@@ -1142,8 +1149,11 @@ static int sony_nc_setup_wwan_rfkill(struct acpi_device *device)
1142 err = rfkill_register(sony_wwan_rfkill); 1149 err = rfkill_register(sony_wwan_rfkill);
1143 if (err) 1150 if (err)
1144 rfkill_free(sony_wwan_rfkill); 1151 rfkill_free(sony_wwan_rfkill);
1145 else 1152 else {
1146 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill; 1153 sony_rfkill_devices[SONY_WWAN] = sony_wwan_rfkill;
1154 sony_nc_rfkill_set(sony_wwan_rfkill->data,
1155 RFKILL_STATE_UNBLOCKED);
1156 }
1147 return err; 1157 return err;
1148} 1158}
1149 1159
@@ -1162,8 +1172,11 @@ static int sony_nc_setup_wimax_rfkill(struct acpi_device *device)
1162 err = rfkill_register(sony_wimax_rfkill); 1172 err = rfkill_register(sony_wimax_rfkill);
1163 if (err) 1173 if (err)
1164 rfkill_free(sony_wimax_rfkill); 1174 rfkill_free(sony_wimax_rfkill);
1165 else 1175 else {
1166 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill; 1176 sony_rfkill_devices[SONY_WIMAX] = sony_wimax_rfkill;
1177 sony_nc_rfkill_set(sony_wimax_rfkill->data,
1178 RFKILL_STATE_UNBLOCKED);
1179 }
1167 return err; 1180 return err;
1168} 1181}
1169 1182
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index a40b075743d9..912be65b6261 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -21,7 +21,7 @@
21 * 02110-1301, USA. 21 * 02110-1301, USA.
22 */ 22 */
23 23
24#define TPACPI_VERSION "0.22" 24#define TPACPI_VERSION "0.23"
25#define TPACPI_SYSFS_VERSION 0x020300 25#define TPACPI_SYSFS_VERSION 0x020300
26 26
27/* 27/*
@@ -303,11 +303,17 @@ static u32 dbg_level;
303 303
304static struct workqueue_struct *tpacpi_wq; 304static struct workqueue_struct *tpacpi_wq;
305 305
306enum led_status_t {
307 TPACPI_LED_OFF = 0,
308 TPACPI_LED_ON,
309 TPACPI_LED_BLINK,
310};
311
306/* Special LED class that can defer work */ 312/* Special LED class that can defer work */
307struct tpacpi_led_classdev { 313struct tpacpi_led_classdev {
308 struct led_classdev led_classdev; 314 struct led_classdev led_classdev;
309 struct work_struct work; 315 struct work_struct work;
310 enum led_brightness new_brightness; 316 enum led_status_t new_state;
311 unsigned int led; 317 unsigned int led;
312}; 318};
313 319
@@ -2946,12 +2952,18 @@ static int hotkey_read(char *p)
2946 return len; 2952 return len;
2947} 2953}
2948 2954
2949static void hotkey_enabledisable_warn(void) 2955static void hotkey_enabledisable_warn(bool enable)
2950{ 2956{
2951 tpacpi_log_usertask("procfs hotkey enable/disable"); 2957 tpacpi_log_usertask("procfs hotkey enable/disable");
2952 WARN(1, TPACPI_WARN 2958 if (!WARN((tpacpi_lifecycle == TPACPI_LIFE_RUNNING || !enable),
2953 "hotkey enable/disable functionality has been " 2959 TPACPI_WARN
2954 "removed from the driver. Hotkeys are always enabled.\n"); 2960 "hotkey enable/disable functionality has been "
2961 "removed from the driver. Hotkeys are always "
2962 "enabled\n"))
2963 printk(TPACPI_ERR
2964 "Please remove the hotkey=enable module "
2965 "parameter, it is deprecated. Hotkeys are always "
2966 "enabled\n");
2955} 2967}
2956 2968
2957static int hotkey_write(char *buf) 2969static int hotkey_write(char *buf)
@@ -2971,9 +2983,9 @@ static int hotkey_write(char *buf)
2971 res = 0; 2983 res = 0;
2972 while ((cmd = next_cmd(&buf))) { 2984 while ((cmd = next_cmd(&buf))) {
2973 if (strlencmp(cmd, "enable") == 0) { 2985 if (strlencmp(cmd, "enable") == 0) {
2974 hotkey_enabledisable_warn(); 2986 hotkey_enabledisable_warn(1);
2975 } else if (strlencmp(cmd, "disable") == 0) { 2987 } else if (strlencmp(cmd, "disable") == 0) {
2976 hotkey_enabledisable_warn(); 2988 hotkey_enabledisable_warn(0);
2977 res = -EPERM; 2989 res = -EPERM;
2978 } else if (strlencmp(cmd, "reset") == 0) { 2990 } else if (strlencmp(cmd, "reset") == 0) {
2979 mask = hotkey_orig_mask; 2991 mask = hotkey_orig_mask;
@@ -4207,7 +4219,7 @@ static void light_set_status_worker(struct work_struct *work)
4207 container_of(work, struct tpacpi_led_classdev, work); 4219 container_of(work, struct tpacpi_led_classdev, work);
4208 4220
4209 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) 4221 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
4210 light_set_status((data->new_brightness != LED_OFF)); 4222 light_set_status((data->new_state != TPACPI_LED_OFF));
4211} 4223}
4212 4224
4213static void light_sysfs_set(struct led_classdev *led_cdev, 4225static void light_sysfs_set(struct led_classdev *led_cdev,
@@ -4217,7 +4229,8 @@ static void light_sysfs_set(struct led_classdev *led_cdev,
4217 container_of(led_cdev, 4229 container_of(led_cdev,
4218 struct tpacpi_led_classdev, 4230 struct tpacpi_led_classdev,
4219 led_classdev); 4231 led_classdev);
4220 data->new_brightness = brightness; 4232 data->new_state = (brightness != LED_OFF) ?
4233 TPACPI_LED_ON : TPACPI_LED_OFF;
4221 queue_work(tpacpi_wq, &data->work); 4234 queue_work(tpacpi_wq, &data->work);
4222} 4235}
4223 4236
@@ -4724,12 +4737,6 @@ enum { /* For TPACPI_LED_OLD */
4724 TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */ 4737 TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */
4725}; 4738};
4726 4739
4727enum led_status_t {
4728 TPACPI_LED_OFF = 0,
4729 TPACPI_LED_ON,
4730 TPACPI_LED_BLINK,
4731};
4732
4733static enum led_access_mode led_supported; 4740static enum led_access_mode led_supported;
4734 4741
4735TPACPI_HANDLE(led, ec, "SLED", /* 570 */ 4742TPACPI_HANDLE(led, ec, "SLED", /* 570 */
@@ -4841,23 +4848,13 @@ static int led_set_status(const unsigned int led,
4841 return rc; 4848 return rc;
4842} 4849}
4843 4850
4844static void led_sysfs_set_status(unsigned int led,
4845 enum led_brightness brightness)
4846{
4847 led_set_status(led,
4848 (brightness == LED_OFF) ?
4849 TPACPI_LED_OFF :
4850 (tpacpi_led_state_cache[led] == TPACPI_LED_BLINK) ?
4851 TPACPI_LED_BLINK : TPACPI_LED_ON);
4852}
4853
4854static void led_set_status_worker(struct work_struct *work) 4851static void led_set_status_worker(struct work_struct *work)
4855{ 4852{
4856 struct tpacpi_led_classdev *data = 4853 struct tpacpi_led_classdev *data =
4857 container_of(work, struct tpacpi_led_classdev, work); 4854 container_of(work, struct tpacpi_led_classdev, work);
4858 4855
4859 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) 4856 if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
4860 led_sysfs_set_status(data->led, data->new_brightness); 4857 led_set_status(data->led, data->new_state);
4861} 4858}
4862 4859
4863static void led_sysfs_set(struct led_classdev *led_cdev, 4860static void led_sysfs_set(struct led_classdev *led_cdev,
@@ -4866,7 +4863,13 @@ static void led_sysfs_set(struct led_classdev *led_cdev,
4866 struct tpacpi_led_classdev *data = container_of(led_cdev, 4863 struct tpacpi_led_classdev *data = container_of(led_cdev,
4867 struct tpacpi_led_classdev, led_classdev); 4864 struct tpacpi_led_classdev, led_classdev);
4868 4865
4869 data->new_brightness = brightness; 4866 if (brightness == LED_OFF)
4867 data->new_state = TPACPI_LED_OFF;
4868 else if (tpacpi_led_state_cache[data->led] != TPACPI_LED_BLINK)
4869 data->new_state = TPACPI_LED_ON;
4870 else
4871 data->new_state = TPACPI_LED_BLINK;
4872
4870 queue_work(tpacpi_wq, &data->work); 4873 queue_work(tpacpi_wq, &data->work);
4871} 4874}
4872 4875
@@ -4884,7 +4887,7 @@ static int led_sysfs_blink_set(struct led_classdev *led_cdev,
4884 } else if ((*delay_on != 500) || (*delay_off != 500)) 4887 } else if ((*delay_on != 500) || (*delay_off != 500))
4885 return -EINVAL; 4888 return -EINVAL;
4886 4889
4887 data->new_brightness = TPACPI_LED_BLINK; 4890 data->new_state = TPACPI_LED_BLINK;
4888 queue_work(tpacpi_wq, &data->work); 4891 queue_work(tpacpi_wq, &data->work);
4889 4892
4890 return 0; 4893 return 0;
@@ -7858,6 +7861,15 @@ static int __init thinkpad_acpi_module_init(void)
7858MODULE_ALIAS(TPACPI_DRVR_SHORTNAME); 7861MODULE_ALIAS(TPACPI_DRVR_SHORTNAME);
7859 7862
7860/* 7863/*
7864 * This will autoload the driver in almost every ThinkPad
7865 * in widespread use.
7866 *
7867 * Only _VERY_ old models, like the 240, 240x and 570 lack
7868 * the HKEY event interface.
7869 */
7870MODULE_DEVICE_TABLE(acpi, ibm_htk_device_ids);
7871
7872/*
7861 * DMI matching for module autoloading 7873 * DMI matching for module autoloading
7862 * 7874 *
7863 * See http://thinkwiki.org/wiki/List_of_DMI_IDs 7875 * See http://thinkwiki.org/wiki/List_of_DMI_IDs
@@ -7869,18 +7881,13 @@ MODULE_ALIAS(TPACPI_DRVR_SHORTNAME);
7869#define IBM_BIOS_MODULE_ALIAS(__type) \ 7881#define IBM_BIOS_MODULE_ALIAS(__type) \
7870 MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") 7882 MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*")
7871 7883
7872/* Non-ancient thinkpads */
7873MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*");
7874MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*");
7875
7876/* Ancient thinkpad BIOSes have to be identified by 7884/* Ancient thinkpad BIOSes have to be identified by
7877 * BIOS type or model number, and there are far less 7885 * BIOS type or model number, and there are far less
7878 * BIOS types than model numbers... */ 7886 * BIOS types than model numbers... */
7879IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]"); 7887IBM_BIOS_MODULE_ALIAS("I[MU]"); /* 570, 570e */
7880IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]");
7881IBM_BIOS_MODULE_ALIAS("K[UX-Z]");
7882 7888
7883MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh"); 7889MODULE_AUTHOR("Borislav Deianov <borislav@users.sf.net>");
7890MODULE_AUTHOR("Henrique de Moraes Holschuh <hmh@hmh.eng.br>");
7884MODULE_DESCRIPTION(TPACPI_DESC); 7891MODULE_DESCRIPTION(TPACPI_DESC);
7885MODULE_VERSION(TPACPI_VERSION); 7892MODULE_VERSION(TPACPI_VERSION);
7886MODULE_LICENSE("GPL"); 7893MODULE_LICENSE("GPL");
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
index 9a3a682c6981..9496494f340e 100644
--- a/drivers/pnp/pnpacpi/core.c
+++ b/drivers/pnp/pnpacpi/core.c
@@ -110,11 +110,9 @@ static int pnpacpi_disable_resources(struct pnp_dev *dev)
110 110
111 /* acpi_unregister_gsi(pnp_irq(dev, 0)); */ 111 /* acpi_unregister_gsi(pnp_irq(dev, 0)); */
112 ret = 0; 112 ret = 0;
113 if (acpi_bus_power_manageable(handle)) { 113 if (acpi_bus_power_manageable(handle))
114 ret = acpi_bus_set_power(handle, ACPI_STATE_D3); 114 acpi_bus_set_power(handle, ACPI_STATE_D3);
115 if (ret) 115 /* continue even if acpi_bus_set_power() fails */
116 return ret;
117 }
118 if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL))) 116 if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL)))
119 ret = -ENODEV; 117 ret = -ENODEV;
120 return ret; 118 return ret;
diff --git a/drivers/regulator/bq24022.c b/drivers/regulator/bq24022.c
index 7ecb820ceebc..d08cd9b66c6d 100644
--- a/drivers/regulator/bq24022.c
+++ b/drivers/regulator/bq24022.c
@@ -61,8 +61,7 @@ static int bq24022_disable(struct regulator_dev *rdev)
61 61
62static int bq24022_is_enabled(struct regulator_dev *rdev) 62static int bq24022_is_enabled(struct regulator_dev *rdev)
63{ 63{
64 struct platform_device *pdev = rdev_get_drvdata(rdev); 64 struct bq24022_mach_info *pdata = rdev_get_drvdata(rdev);
65 struct bq24022_mach_info *pdata = pdev->dev.platform_data;
66 65
67 return !gpio_get_value(pdata->gpio_nce); 66 return !gpio_get_value(pdata->gpio_nce);
68} 67}
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 01f7702a805d..98c3a74e9949 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -540,8 +540,8 @@ static void drms_uA_update(struct regulator_dev *rdev)
540 540
541 err = regulator_check_drms(rdev); 541 err = regulator_check_drms(rdev);
542 if (err < 0 || !rdev->desc->ops->get_optimum_mode || 542 if (err < 0 || !rdev->desc->ops->get_optimum_mode ||
543 !rdev->desc->ops->get_voltage || !rdev->desc->ops->set_mode); 543 !rdev->desc->ops->get_voltage || !rdev->desc->ops->set_mode)
544 return; 544 return;
545 545
546 /* get output voltage */ 546 /* get output voltage */
547 output_uV = rdev->desc->ops->get_voltage(rdev); 547 output_uV = rdev->desc->ops->get_voltage(rdev);
@@ -703,10 +703,13 @@ static int set_machine_constraints(struct regulator_dev *rdev,
703 int cmin = constraints->min_uV; 703 int cmin = constraints->min_uV;
704 int cmax = constraints->max_uV; 704 int cmax = constraints->max_uV;
705 705
706 /* it's safe to autoconfigure fixed-voltage supplies */ 706 /* it's safe to autoconfigure fixed-voltage supplies
707 and the constraints are used by list_voltage. */
707 if (count == 1 && !cmin) { 708 if (count == 1 && !cmin) {
708 cmin = INT_MIN; 709 cmin = 1;
709 cmax = INT_MAX; 710 cmax = INT_MAX;
711 constraints->min_uV = cmin;
712 constraints->max_uV = cmax;
710 } 713 }
711 714
712 /* voltage constraints are optional */ 715 /* voltage constraints are optional */
@@ -2001,8 +2004,8 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
2001 if (regulator_desc->name == NULL || regulator_desc->ops == NULL) 2004 if (regulator_desc->name == NULL || regulator_desc->ops == NULL)
2002 return ERR_PTR(-EINVAL); 2005 return ERR_PTR(-EINVAL);
2003 2006
2004 if (!regulator_desc->type == REGULATOR_VOLTAGE && 2007 if (regulator_desc->type != REGULATOR_VOLTAGE &&
2005 !regulator_desc->type == REGULATOR_CURRENT) 2008 regulator_desc->type != REGULATOR_CURRENT)
2006 return ERR_PTR(-EINVAL); 2009 return ERR_PTR(-EINVAL);
2007 2010
2008 if (!init_data) 2011 if (!init_data)
@@ -2080,6 +2083,10 @@ out:
2080 2083
2081scrub: 2084scrub:
2082 device_unregister(&rdev->dev); 2085 device_unregister(&rdev->dev);
2086 /* device core frees rdev */
2087 rdev = ERR_PTR(ret);
2088 goto out;
2089
2083clean: 2090clean:
2084 kfree(rdev); 2091 kfree(rdev);
2085 rdev = ERR_PTR(ret); 2092 rdev = ERR_PTR(ret);
diff --git a/drivers/regulator/virtual.c b/drivers/regulator/virtual.c
index 3d08348584e1..71403fa3ffa1 100644
--- a/drivers/regulator/virtual.c
+++ b/drivers/regulator/virtual.c
@@ -230,13 +230,13 @@ static ssize_t set_mode(struct device *dev, struct device_attribute *attr,
230 * sysfs_streq() doesn't need the \n's, but we add them so the strings 230 * sysfs_streq() doesn't need the \n's, but we add them so the strings
231 * will be shared with show_mode(), above. 231 * will be shared with show_mode(), above.
232 */ 232 */
233 if (sysfs_streq(buf, "fast\n") == 0) 233 if (sysfs_streq(buf, "fast\n"))
234 mode = REGULATOR_MODE_FAST; 234 mode = REGULATOR_MODE_FAST;
235 else if (sysfs_streq(buf, "normal\n") == 0) 235 else if (sysfs_streq(buf, "normal\n"))
236 mode = REGULATOR_MODE_NORMAL; 236 mode = REGULATOR_MODE_NORMAL;
237 else if (sysfs_streq(buf, "idle\n") == 0) 237 else if (sysfs_streq(buf, "idle\n"))
238 mode = REGULATOR_MODE_IDLE; 238 mode = REGULATOR_MODE_IDLE;
239 else if (sysfs_streq(buf, "standby\n") == 0) 239 else if (sysfs_streq(buf, "standby\n"))
240 mode = REGULATOR_MODE_STANDBY; 240 mode = REGULATOR_MODE_STANDBY;
241 else { 241 else {
242 dev_err(dev, "Configuring invalid mode\n"); 242 dev_err(dev, "Configuring invalid mode\n");
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index ffe34a12f446..4e9851fc1746 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -573,7 +573,7 @@ config RTC_DRV_SA1100
573 573
574config RTC_DRV_SH 574config RTC_DRV_SH
575 tristate "SuperH On-Chip RTC" 575 tristate "SuperH On-Chip RTC"
576 depends on RTC_CLASS && SUPERH 576 depends on RTC_CLASS && SUPERH && HAVE_CLK
577 help 577 help
578 Say Y here to enable support for the on-chip RTC found in 578 Say Y here to enable support for the on-chip RTC found in
579 most SuperH processors. 579 most SuperH processors.
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b6d35f50e404..23e10b6263d6 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -797,17 +797,15 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
797 goto cleanup2; 797 goto cleanup2;
798 } 798 }
799 799
800 pr_info("%s: alarms up to one %s%s, %zd bytes nvram%s\n", 800 pr_info("%s: %s%s, %zd bytes nvram%s\n",
801 dev_name(&cmos_rtc.rtc->dev), 801 dev_name(&cmos_rtc.rtc->dev),
802 is_valid_irq(rtc_irq) 802 !is_valid_irq(rtc_irq) ? "no alarms" :
803 ? (cmos_rtc.mon_alrm 803 cmos_rtc.mon_alrm ? "alarms up to one year" :
804 ? "year" 804 cmos_rtc.day_alrm ? "alarms up to one month" :
805 : (cmos_rtc.day_alrm 805 "alarms up to one day",
806 ? "month" : "day")) 806 cmos_rtc.century ? ", y3k" : "",
807 : "no", 807 nvram.size,
808 cmos_rtc.century ? ", y3k" : "", 808 is_hpet_enabled() ? ", hpet irqs" : "");
809 nvram.size,
810 is_hpet_enabled() ? ", hpet irqs" : "");
811 809
812 return 0; 810 return 0;
813 811
diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c
index 9b1ff12bf947..d7310adb7152 100644
--- a/drivers/rtc/rtc-sh.c
+++ b/drivers/rtc/rtc-sh.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * SuperH On-Chip RTC Support 2 * SuperH On-Chip RTC Support
3 * 3 *
4 * Copyright (C) 2006, 2007, 2008 Paul Mundt 4 * Copyright (C) 2006 - 2009 Paul Mundt
5 * Copyright (C) 2006 Jamie Lenehan 5 * Copyright (C) 2006 Jamie Lenehan
6 * Copyright (C) 2008 Angelo Castello 6 * Copyright (C) 2008 Angelo Castello
7 * 7 *
@@ -25,10 +25,11 @@
25#include <linux/spinlock.h> 25#include <linux/spinlock.h>
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/log2.h> 27#include <linux/log2.h>
28#include <linux/clk.h>
28#include <asm/rtc.h> 29#include <asm/rtc.h>
29 30
30#define DRV_NAME "sh-rtc" 31#define DRV_NAME "sh-rtc"
31#define DRV_VERSION "0.2.1" 32#define DRV_VERSION "0.2.2"
32 33
33#define RTC_REG(r) ((r) * rtc_reg_size) 34#define RTC_REG(r) ((r) * rtc_reg_size)
34 35
@@ -87,16 +88,17 @@
87#define RCR2_START 0x01 /* Start bit */ 88#define RCR2_START 0x01 /* Start bit */
88 89
89struct sh_rtc { 90struct sh_rtc {
90 void __iomem *regbase; 91 void __iomem *regbase;
91 unsigned long regsize; 92 unsigned long regsize;
92 struct resource *res; 93 struct resource *res;
93 int alarm_irq; 94 int alarm_irq;
94 int periodic_irq; 95 int periodic_irq;
95 int carry_irq; 96 int carry_irq;
96 struct rtc_device *rtc_dev; 97 struct clk *clk;
97 spinlock_t lock; 98 struct rtc_device *rtc_dev;
98 unsigned long capabilities; /* See asm-sh/rtc.h for cap bits */ 99 spinlock_t lock;
99 unsigned short periodic_freq; 100 unsigned long capabilities; /* See asm/rtc.h for cap bits */
101 unsigned short periodic_freq;
100}; 102};
101 103
102static int __sh_rtc_interrupt(struct sh_rtc *rtc) 104static int __sh_rtc_interrupt(struct sh_rtc *rtc)
@@ -294,10 +296,10 @@ static inline void sh_rtc_setaie(struct device *dev, unsigned int enable)
294 296
295 tmp = readb(rtc->regbase + RCR1); 297 tmp = readb(rtc->regbase + RCR1);
296 298
297 if (!enable) 299 if (enable)
298 tmp &= ~RCR1_AIE;
299 else
300 tmp |= RCR1_AIE; 300 tmp |= RCR1_AIE;
301 else
302 tmp &= ~RCR1_AIE;
301 303
302 writeb(tmp, rtc->regbase + RCR1); 304 writeb(tmp, rtc->regbase + RCR1);
303 305
@@ -618,6 +620,7 @@ static int sh_rtc_irq_set_freq(struct device *dev, int freq)
618{ 620{
619 if (!is_power_of_2(freq)) 621 if (!is_power_of_2(freq))
620 return -EINVAL; 622 return -EINVAL;
623
621 return sh_rtc_ioctl(dev, RTC_IRQP_SET, freq); 624 return sh_rtc_ioctl(dev, RTC_IRQP_SET, freq);
622} 625}
623 626
@@ -637,7 +640,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
637 struct sh_rtc *rtc; 640 struct sh_rtc *rtc;
638 struct resource *res; 641 struct resource *res;
639 struct rtc_time r; 642 struct rtc_time r;
640 int ret; 643 char clk_name[6];
644 int clk_id, ret;
641 645
642 rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL); 646 rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL);
643 if (unlikely(!rtc)) 647 if (unlikely(!rtc))
@@ -652,6 +656,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
652 dev_err(&pdev->dev, "No IRQ resource\n"); 656 dev_err(&pdev->dev, "No IRQ resource\n");
653 goto err_badres; 657 goto err_badres;
654 } 658 }
659
655 rtc->periodic_irq = ret; 660 rtc->periodic_irq = ret;
656 rtc->carry_irq = platform_get_irq(pdev, 1); 661 rtc->carry_irq = platform_get_irq(pdev, 1);
657 rtc->alarm_irq = platform_get_irq(pdev, 2); 662 rtc->alarm_irq = platform_get_irq(pdev, 2);
@@ -663,7 +668,7 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
663 goto err_badres; 668 goto err_badres;
664 } 669 }
665 670
666 rtc->regsize = res->end - res->start + 1; 671 rtc->regsize = resource_size(res);
667 672
668 rtc->res = request_mem_region(res->start, rtc->regsize, pdev->name); 673 rtc->res = request_mem_region(res->start, rtc->regsize, pdev->name);
669 if (unlikely(!rtc->res)) { 674 if (unlikely(!rtc->res)) {
@@ -677,6 +682,26 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
677 goto err_badmap; 682 goto err_badmap;
678 } 683 }
679 684
685 clk_id = pdev->id;
686 /* With a single device, the clock id is still "rtc0" */
687 if (clk_id < 0)
688 clk_id = 0;
689
690 snprintf(clk_name, sizeof(clk_name), "rtc%d", clk_id);
691
692 rtc->clk = clk_get(&pdev->dev, clk_name);
693 if (IS_ERR(rtc->clk)) {
694 /*
695 * No error handling for rtc->clk intentionally, not all
696 * platforms will have a unique clock for the RTC, and
697 * the clk API can handle the struct clk pointer being
698 * NULL.
699 */
700 rtc->clk = NULL;
701 }
702
703 clk_enable(rtc->clk);
704
680 rtc->rtc_dev = rtc_device_register("sh", &pdev->dev, 705 rtc->rtc_dev = rtc_device_register("sh", &pdev->dev,
681 &sh_rtc_ops, THIS_MODULE); 706 &sh_rtc_ops, THIS_MODULE);
682 if (IS_ERR(rtc->rtc_dev)) { 707 if (IS_ERR(rtc->rtc_dev)) {
@@ -759,6 +784,8 @@ static int __devinit sh_rtc_probe(struct platform_device *pdev)
759 return 0; 784 return 0;
760 785
761err_unmap: 786err_unmap:
787 clk_disable(rtc->clk);
788 clk_put(rtc->clk);
762 iounmap(rtc->regbase); 789 iounmap(rtc->regbase);
763err_badmap: 790err_badmap:
764 release_resource(rtc->res); 791 release_resource(rtc->res);
@@ -780,6 +807,7 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev)
780 sh_rtc_setcie(&pdev->dev, 0); 807 sh_rtc_setcie(&pdev->dev, 0);
781 808
782 free_irq(rtc->periodic_irq, rtc); 809 free_irq(rtc->periodic_irq, rtc);
810
783 if (rtc->carry_irq > 0) { 811 if (rtc->carry_irq > 0) {
784 free_irq(rtc->carry_irq, rtc); 812 free_irq(rtc->carry_irq, rtc);
785 free_irq(rtc->alarm_irq, rtc); 813 free_irq(rtc->alarm_irq, rtc);
@@ -789,6 +817,9 @@ static int __devexit sh_rtc_remove(struct platform_device *pdev)
789 817
790 iounmap(rtc->regbase); 818 iounmap(rtc->regbase);
791 819
820 clk_disable(rtc->clk);
821 clk_put(rtc->clk);
822
792 platform_set_drvdata(pdev, NULL); 823 platform_set_drvdata(pdev, NULL);
793 824
794 kfree(rtc); 825 kfree(rtc);
@@ -802,11 +833,11 @@ static void sh_rtc_set_irq_wake(struct device *dev, int enabled)
802 struct sh_rtc *rtc = platform_get_drvdata(pdev); 833 struct sh_rtc *rtc = platform_get_drvdata(pdev);
803 834
804 set_irq_wake(rtc->periodic_irq, enabled); 835 set_irq_wake(rtc->periodic_irq, enabled);
836
805 if (rtc->carry_irq > 0) { 837 if (rtc->carry_irq > 0) {
806 set_irq_wake(rtc->carry_irq, enabled); 838 set_irq_wake(rtc->carry_irq, enabled);
807 set_irq_wake(rtc->alarm_irq, enabled); 839 set_irq_wake(rtc->alarm_irq, enabled);
808 } 840 }
809
810} 841}
811 842
812static int sh_rtc_suspend(struct device *dev) 843static int sh_rtc_suspend(struct device *dev)
diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
index a6341e4f9a0f..9c8c70c497dc 100644
--- a/drivers/rtc/rtc-twl4030.c
+++ b/drivers/rtc/rtc-twl4030.c
@@ -495,9 +495,7 @@ static int twl4030_rtc_suspend(struct platform_device *pdev, pm_message_t state)
495{ 495{
496 irqstat = rtc_irq_bits; 496 irqstat = rtc_irq_bits;
497 497
498 /* REVISIT alarm may need to wake us from sleep */ 498 mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M);
499 mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M |
500 BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);
501 return 0; 499 return 0;
502} 500}
503 501
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 0570794ccf1c..d1815272c435 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -20,6 +20,7 @@
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/buffer_head.h> 21#include <linux/buffer_head.h>
22#include <linux/hdreg.h> 22#include <linux/hdreg.h>
23#include <linux/async.h>
23 24
24#include <asm/ccwdev.h> 25#include <asm/ccwdev.h>
25#include <asm/ebcdic.h> 26#include <asm/ebcdic.h>
@@ -480,8 +481,10 @@ static void dasd_change_state(struct dasd_device *device)
480 if (rc && rc != -EAGAIN) 481 if (rc && rc != -EAGAIN)
481 device->target = device->state; 482 device->target = device->state;
482 483
483 if (device->state == device->target) 484 if (device->state == device->target) {
484 wake_up(&dasd_init_waitq); 485 wake_up(&dasd_init_waitq);
486 dasd_put_device(device);
487 }
485 488
486 /* let user-space know that the device status changed */ 489 /* let user-space know that the device status changed */
487 kobject_uevent(&device->cdev->dev.kobj, KOBJ_CHANGE); 490 kobject_uevent(&device->cdev->dev.kobj, KOBJ_CHANGE);
@@ -513,12 +516,15 @@ void dasd_kick_device(struct dasd_device *device)
513 */ 516 */
514void dasd_set_target_state(struct dasd_device *device, int target) 517void dasd_set_target_state(struct dasd_device *device, int target)
515{ 518{
519 dasd_get_device(device);
516 /* If we are in probeonly mode stop at DASD_STATE_READY. */ 520 /* If we are in probeonly mode stop at DASD_STATE_READY. */
517 if (dasd_probeonly && target > DASD_STATE_READY) 521 if (dasd_probeonly && target > DASD_STATE_READY)
518 target = DASD_STATE_READY; 522 target = DASD_STATE_READY;
519 if (device->target != target) { 523 if (device->target != target) {
520 if (device->state == target) 524 if (device->state == target) {
521 wake_up(&dasd_init_waitq); 525 wake_up(&dasd_init_waitq);
526 dasd_put_device(device);
527 }
522 device->target = target; 528 device->target = target;
523 } 529 }
524 if (device->state != device->target) 530 if (device->state != device->target)
@@ -2148,6 +2154,22 @@ dasd_exit(void)
2148 * SECTION: common functions for ccw_driver use 2154 * SECTION: common functions for ccw_driver use
2149 */ 2155 */
2150 2156
2157static void dasd_generic_auto_online(void *data, async_cookie_t cookie)
2158{
2159 struct ccw_device *cdev = data;
2160 int ret;
2161
2162 ret = ccw_device_set_online(cdev);
2163 if (ret)
2164 pr_warning("%s: Setting the DASD online failed with rc=%d\n",
2165 dev_name(&cdev->dev), ret);
2166 else {
2167 struct dasd_device *device = dasd_device_from_cdev(cdev);
2168 wait_event(dasd_init_waitq, _wait_for_device(device));
2169 dasd_put_device(device);
2170 }
2171}
2172
2151/* 2173/*
2152 * Initial attempt at a probe function. this can be simplified once 2174 * Initial attempt at a probe function. this can be simplified once
2153 * the other detection code is gone. 2175 * the other detection code is gone.
@@ -2180,10 +2202,7 @@ int dasd_generic_probe(struct ccw_device *cdev,
2180 */ 2202 */
2181 if ((dasd_get_feature(cdev, DASD_FEATURE_INITIAL_ONLINE) > 0 ) || 2203 if ((dasd_get_feature(cdev, DASD_FEATURE_INITIAL_ONLINE) > 0 ) ||
2182 (dasd_autodetect && dasd_busid_known(dev_name(&cdev->dev)) != 0)) 2204 (dasd_autodetect && dasd_busid_known(dev_name(&cdev->dev)) != 0))
2183 ret = ccw_device_set_online(cdev); 2205 async_schedule(dasd_generic_auto_online, cdev);
2184 if (ret)
2185 pr_warning("%s: Setting the DASD online failed with rc=%d\n",
2186 dev_name(&cdev->dev), ret);
2187 return 0; 2206 return 0;
2188} 2207}
2189 2208
@@ -2290,13 +2309,7 @@ int dasd_generic_set_online(struct ccw_device *cdev,
2290 } else 2309 } else
2291 pr_debug("dasd_generic device %s found\n", 2310 pr_debug("dasd_generic device %s found\n",
2292 dev_name(&cdev->dev)); 2311 dev_name(&cdev->dev));
2293
2294 /* FIXME: we have to wait for the root device but we don't want
2295 * to wait for each single device but for all at once. */
2296 wait_event(dasd_init_waitq, _wait_for_device(device));
2297
2298 dasd_put_device(device); 2312 dasd_put_device(device);
2299
2300 return rc; 2313 return rc;
2301} 2314}
2302 2315
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
index 21254793c604..cb52da033f06 100644
--- a/drivers/s390/block/dasd_eckd.c
+++ b/drivers/s390/block/dasd_eckd.c
@@ -2019,15 +2019,23 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_cmd_track(
2019 ccw++; 2019 ccw++;
2020 recid += count; 2020 recid += count;
2021 new_track = 0; 2021 new_track = 0;
2022 /* first idaw for a ccw may start anywhere */
2023 if (!idaw_dst)
2024 idaw_dst = dst;
2022 } 2025 }
2023 /* If we start a new idaw, everything is fine and the 2026 /* If we start a new idaw, we must make sure that it
2024 * start of the new idaw is the start of this segment. 2027 * starts on an IDA_BLOCK_SIZE boundary.
2025 * If we continue an idaw, we must make sure that the 2028 * If we continue an idaw, we must make sure that the
2026 * current segment begins where the so far accumulated 2029 * current segment begins where the so far accumulated
2027 * idaw ends 2030 * idaw ends
2028 */ 2031 */
2029 if (!idaw_dst) 2032 if (!idaw_dst) {
2030 idaw_dst = dst; 2033 if (__pa(dst) & (IDA_BLOCK_SIZE-1)) {
2034 dasd_sfree_request(cqr, startdev);
2035 return ERR_PTR(-ERANGE);
2036 } else
2037 idaw_dst = dst;
2038 }
2031 if ((idaw_dst + idaw_len) != dst) { 2039 if ((idaw_dst + idaw_len) != dst) {
2032 dasd_sfree_request(cqr, startdev); 2040 dasd_sfree_request(cqr, startdev);
2033 return ERR_PTR(-ERANGE); 2041 return ERR_PTR(-ERANGE);
diff --git a/drivers/s390/char/tape.h b/drivers/s390/char/tape.h
index c07809c8016a..5469e099597e 100644
--- a/drivers/s390/char/tape.h
+++ b/drivers/s390/char/tape.h
@@ -285,7 +285,7 @@ extern int tape_mtop(struct tape_device *, int, int);
285extern void tape_state_set(struct tape_device *, enum tape_state); 285extern void tape_state_set(struct tape_device *, enum tape_state);
286 286
287extern int tape_generic_online(struct tape_device *, struct tape_discipline *); 287extern int tape_generic_online(struct tape_device *, struct tape_discipline *);
288extern int tape_generic_offline(struct tape_device *device); 288extern int tape_generic_offline(struct ccw_device *);
289 289
290/* Externals from tape_devmap.c */ 290/* Externals from tape_devmap.c */
291extern int tape_generic_probe(struct ccw_device *); 291extern int tape_generic_probe(struct ccw_device *);
diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c
index 807ded5eb049..5f8e8ef43dd3 100644
--- a/drivers/s390/char/tape_34xx.c
+++ b/drivers/s390/char/tape_34xx.c
@@ -1294,12 +1294,6 @@ tape_34xx_online(struct ccw_device *cdev)
1294 ); 1294 );
1295} 1295}
1296 1296
1297static int
1298tape_34xx_offline(struct ccw_device *cdev)
1299{
1300 return tape_generic_offline(cdev->dev.driver_data);
1301}
1302
1303static struct ccw_driver tape_34xx_driver = { 1297static struct ccw_driver tape_34xx_driver = {
1304 .name = "tape_34xx", 1298 .name = "tape_34xx",
1305 .owner = THIS_MODULE, 1299 .owner = THIS_MODULE,
@@ -1307,7 +1301,7 @@ static struct ccw_driver tape_34xx_driver = {
1307 .probe = tape_generic_probe, 1301 .probe = tape_generic_probe,
1308 .remove = tape_generic_remove, 1302 .remove = tape_generic_remove,
1309 .set_online = tape_34xx_online, 1303 .set_online = tape_34xx_online,
1310 .set_offline = tape_34xx_offline, 1304 .set_offline = tape_generic_offline,
1311}; 1305};
1312 1306
1313static int 1307static int
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c
index fc1d91294143..823b05bd0dd7 100644
--- a/drivers/s390/char/tape_3590.c
+++ b/drivers/s390/char/tape_3590.c
@@ -1707,19 +1707,13 @@ tape_3590_online(struct ccw_device *cdev)
1707 &tape_discipline_3590); 1707 &tape_discipline_3590);
1708} 1708}
1709 1709
1710static int
1711tape_3590_offline(struct ccw_device *cdev)
1712{
1713 return tape_generic_offline(cdev->dev.driver_data);
1714}
1715
1716static struct ccw_driver tape_3590_driver = { 1710static struct ccw_driver tape_3590_driver = {
1717 .name = "tape_3590", 1711 .name = "tape_3590",
1718 .owner = THIS_MODULE, 1712 .owner = THIS_MODULE,
1719 .ids = tape_3590_ids, 1713 .ids = tape_3590_ids,
1720 .probe = tape_generic_probe, 1714 .probe = tape_generic_probe,
1721 .remove = tape_generic_remove, 1715 .remove = tape_generic_remove,
1722 .set_offline = tape_3590_offline, 1716 .set_offline = tape_generic_offline,
1723 .set_online = tape_3590_online, 1717 .set_online = tape_3590_online,
1724}; 1718};
1725 1719
diff --git a/drivers/s390/char/tape_core.c b/drivers/s390/char/tape_core.c
index 08c09d3503cf..8a109f3b69c6 100644
--- a/drivers/s390/char/tape_core.c
+++ b/drivers/s390/char/tape_core.c
@@ -387,8 +387,11 @@ tape_cleanup_device(struct tape_device *device)
387 * Manual offline is only allowed while the drive is not in use. 387 * Manual offline is only allowed while the drive is not in use.
388 */ 388 */
389int 389int
390tape_generic_offline(struct tape_device *device) 390tape_generic_offline(struct ccw_device *cdev)
391{ 391{
392 struct tape_device *device;
393
394 device = cdev->dev.driver_data;
392 if (!device) { 395 if (!device) {
393 return -ENODEV; 396 return -ENODEV;
394 } 397 }
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index 9e8a2914259b..accd957454e7 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -881,42 +881,6 @@ no_handler:
881 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED); 881 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED);
882} 882}
883 883
884static void qdio_call_shutdown(struct work_struct *work)
885{
886 struct ccw_device_private *priv;
887 struct ccw_device *cdev;
888
889 priv = container_of(work, struct ccw_device_private, kick_work);
890 cdev = priv->cdev;
891 qdio_shutdown(cdev, QDIO_FLAG_CLEANUP_USING_CLEAR);
892 put_device(&cdev->dev);
893}
894
895static void qdio_int_error(struct ccw_device *cdev)
896{
897 struct qdio_irq *irq_ptr = cdev->private->qdio_data;
898
899 switch (irq_ptr->state) {
900 case QDIO_IRQ_STATE_INACTIVE:
901 case QDIO_IRQ_STATE_CLEANUP:
902 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ERR);
903 break;
904 case QDIO_IRQ_STATE_ESTABLISHED:
905 case QDIO_IRQ_STATE_ACTIVE:
906 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_STOPPED);
907 if (get_device(&cdev->dev)) {
908 /* Can't call shutdown from interrupt context. */
909 PREPARE_WORK(&cdev->private->kick_work,
910 qdio_call_shutdown);
911 queue_work(ccw_device_work, &cdev->private->kick_work);
912 }
913 break;
914 default:
915 WARN_ON(1);
916 }
917 wake_up(&cdev->private->wait_q);
918}
919
920static int qdio_establish_check_errors(struct ccw_device *cdev, int cstat, 884static int qdio_establish_check_errors(struct ccw_device *cdev, int cstat,
921 int dstat) 885 int dstat)
922{ 886{
@@ -973,10 +937,8 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
973 switch (PTR_ERR(irb)) { 937 switch (PTR_ERR(irb)) {
974 case -EIO: 938 case -EIO:
975 DBF_ERROR("%4x IO error", irq_ptr->schid.sch_no); 939 DBF_ERROR("%4x IO error", irq_ptr->schid.sch_no);
976 return; 940 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_ERR);
977 case -ETIMEDOUT: 941 wake_up(&cdev->private->wait_q);
978 DBF_ERROR("%4x IO timeout", irq_ptr->schid.sch_no);
979 qdio_int_error(cdev);
980 return; 942 return;
981 default: 943 default:
982 WARN_ON(1); 944 WARN_ON(1);
@@ -1001,7 +963,6 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
1001 case QDIO_IRQ_STATE_ACTIVE: 963 case QDIO_IRQ_STATE_ACTIVE:
1002 if (cstat & SCHN_STAT_PCI) { 964 if (cstat & SCHN_STAT_PCI) {
1003 qdio_int_handler_pci(irq_ptr); 965 qdio_int_handler_pci(irq_ptr);
1004 /* no state change so no need to wake up wait_q */
1005 return; 966 return;
1006 } 967 }
1007 if ((cstat & ~SCHN_STAT_PCI) || dstat) { 968 if ((cstat & ~SCHN_STAT_PCI) || dstat) {
diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c
index 616c60ffcf2c..3ac27ee47396 100644
--- a/drivers/s390/scsi/zfcp_aux.c
+++ b/drivers/s390/scsi/zfcp_aux.c
@@ -97,9 +97,7 @@ static void __init zfcp_init_device_configure(char *busid, u64 wwpn, u64 lun)
97 ccw_device_set_online(adapter->ccw_device); 97 ccw_device_set_online(adapter->ccw_device);
98 98
99 zfcp_erp_wait(adapter); 99 zfcp_erp_wait(adapter);
100 wait_event(adapter->erp_done_wqh, 100 flush_work(&unit->scsi_work);
101 !(atomic_read(&unit->status) &
102 ZFCP_STATUS_UNIT_SCSI_WORK_PENDING));
103 101
104 down(&zfcp_data.config_sema); 102 down(&zfcp_data.config_sema);
105 zfcp_unit_put(unit); 103 zfcp_unit_put(unit);
@@ -279,6 +277,7 @@ struct zfcp_unit *zfcp_unit_enqueue(struct zfcp_port *port, u64 fcp_lun)
279 277
280 atomic_set(&unit->refcount, 0); 278 atomic_set(&unit->refcount, 0);
281 init_waitqueue_head(&unit->remove_wq); 279 init_waitqueue_head(&unit->remove_wq);
280 INIT_WORK(&unit->scsi_work, zfcp_scsi_scan);
282 281
283 unit->port = port; 282 unit->port = port;
284 unit->fcp_lun = fcp_lun; 283 unit->fcp_lun = fcp_lun;
@@ -525,6 +524,8 @@ int zfcp_adapter_enqueue(struct ccw_device *ccw_device)
525 524
526 atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status); 525 atomic_clear_mask(ZFCP_STATUS_COMMON_REMOVE, &adapter->status);
527 526
527 zfcp_fc_nameserver_init(adapter);
528
528 if (!zfcp_adapter_scsi_register(adapter)) 529 if (!zfcp_adapter_scsi_register(adapter))
529 return 0; 530 return 0;
530 531
@@ -553,7 +554,6 @@ void zfcp_adapter_dequeue(struct zfcp_adapter *adapter)
553 554
554 cancel_work_sync(&adapter->scan_work); 555 cancel_work_sync(&adapter->scan_work);
555 cancel_work_sync(&adapter->stat_work); 556 cancel_work_sync(&adapter->stat_work);
556 cancel_delayed_work_sync(&adapter->nsp.work);
557 zfcp_adapter_scsi_unregister(adapter); 557 zfcp_adapter_scsi_unregister(adapter);
558 sysfs_remove_group(&adapter->ccw_device->dev.kobj, 558 sysfs_remove_group(&adapter->ccw_device->dev.kobj,
559 &zfcp_sysfs_adapter_attrs); 559 &zfcp_sysfs_adapter_attrs);
@@ -671,8 +671,7 @@ void zfcp_port_dequeue(struct zfcp_port *port)
671 list_del(&port->list); 671 list_del(&port->list);
672 write_unlock_irq(&zfcp_data.config_lock); 672 write_unlock_irq(&zfcp_data.config_lock);
673 if (port->rport) 673 if (port->rport)
674 fc_remote_port_delete(port->rport); 674 port->rport->dd_data = NULL;
675 port->rport = NULL;
676 zfcp_adapter_put(port->adapter); 675 zfcp_adapter_put(port->adapter);
677 sysfs_remove_group(&port->sysfs_device.kobj, &zfcp_sysfs_port_attrs); 676 sysfs_remove_group(&port->sysfs_device.kobj, &zfcp_sysfs_port_attrs);
678 device_unregister(&port->sysfs_device); 677 device_unregister(&port->sysfs_device);
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index cfb0dcb6e3ff..733fe3bf6285 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -108,7 +108,6 @@ static int zfcp_ccw_set_online(struct ccw_device *ccw_device)
108 /* initialize request counter */ 108 /* initialize request counter */
109 BUG_ON(!zfcp_reqlist_isempty(adapter)); 109 BUG_ON(!zfcp_reqlist_isempty(adapter));
110 adapter->req_no = 0; 110 adapter->req_no = 0;
111 zfcp_fc_nameserver_init(adapter);
112 111
113 zfcp_erp_modify_adapter_status(adapter, "ccsonl1", NULL, 112 zfcp_erp_modify_adapter_status(adapter, "ccsonl1", NULL,
114 ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET); 113 ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET);
diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c
index 10cbfd172a28..8305c874e86f 100644
--- a/drivers/s390/scsi/zfcp_cfdc.c
+++ b/drivers/s390/scsi/zfcp_cfdc.c
@@ -4,7 +4,7 @@
4 * Userspace interface for accessing the 4 * Userspace interface for accessing the
5 * Access Control Lists / Control File Data Channel 5 * Access Control Lists / Control File Data Channel
6 * 6 *
7 * Copyright IBM Corporation 2008 7 * Copyright IBM Corporation 2008, 2009
8 */ 8 */
9 9
10#define KMSG_COMPONENT "zfcp" 10#define KMSG_COMPONENT "zfcp"
@@ -197,6 +197,7 @@ static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command,
197 retval = -ENXIO; 197 retval = -ENXIO;
198 goto free_buffer; 198 goto free_buffer;
199 } 199 }
200 zfcp_adapter_get(adapter);
200 201
201 retval = zfcp_cfdc_sg_setup(data->command, fsf_cfdc->sg, 202 retval = zfcp_cfdc_sg_setup(data->command, fsf_cfdc->sg,
202 data_user->control_file); 203 data_user->control_file);
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h
index a0318630f047..4c362a9069f0 100644
--- a/drivers/s390/scsi/zfcp_def.h
+++ b/drivers/s390/scsi/zfcp_def.h
@@ -255,7 +255,6 @@ enum zfcp_wka_status {
255/* logical unit status */ 255/* logical unit status */
256#define ZFCP_STATUS_UNIT_SHARED 0x00000004 256#define ZFCP_STATUS_UNIT_SHARED 0x00000004
257#define ZFCP_STATUS_UNIT_READONLY 0x00000008 257#define ZFCP_STATUS_UNIT_READONLY 0x00000008
258#define ZFCP_STATUS_UNIT_SCSI_WORK_PENDING 0x00000020
259 258
260/* FSF request status (this does not have a common part) */ 259/* FSF request status (this does not have a common part) */
261#define ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT 0x00000002 260#define ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT 0x00000002
@@ -530,6 +529,7 @@ struct zfcp_unit {
530 struct zfcp_erp_action erp_action; /* pending error recovery */ 529 struct zfcp_erp_action erp_action; /* pending error recovery */
531 atomic_t erp_counter; 530 atomic_t erp_counter;
532 struct zfcp_latencies latencies; 531 struct zfcp_latencies latencies;
532 struct work_struct scsi_work;
533}; 533};
534 534
535/* FSF request */ 535/* FSF request */
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 631bdb1dfd6c..fdc9b4352a64 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -719,6 +719,7 @@ static void zfcp_erp_adapter_strategy_close(struct zfcp_erp_action *act)
719 zfcp_qdio_close(adapter); 719 zfcp_qdio_close(adapter);
720 zfcp_fsf_req_dismiss_all(adapter); 720 zfcp_fsf_req_dismiss_all(adapter);
721 adapter->fsf_req_seq_no = 0; 721 adapter->fsf_req_seq_no = 0;
722 zfcp_fc_wka_port_force_offline(&adapter->nsp);
722 /* all ports and units are closed */ 723 /* all ports and units are closed */
723 zfcp_erp_modify_adapter_status(adapter, "erascl1", NULL, 724 zfcp_erp_modify_adapter_status(adapter, "erascl1", NULL,
724 ZFCP_STATUS_COMMON_OPEN, ZFCP_CLEAR); 725 ZFCP_STATUS_COMMON_OPEN, ZFCP_CLEAR);
@@ -1176,48 +1177,6 @@ static void zfcp_erp_action_dequeue(struct zfcp_erp_action *erp_action)
1176 } 1177 }
1177} 1178}
1178 1179
1179struct zfcp_erp_add_work {
1180 struct zfcp_unit *unit;
1181 struct work_struct work;
1182};
1183
1184static void zfcp_erp_scsi_scan(struct work_struct *work)
1185{
1186 struct zfcp_erp_add_work *p =
1187 container_of(work, struct zfcp_erp_add_work, work);
1188 struct zfcp_unit *unit = p->unit;
1189 struct fc_rport *rport = unit->port->rport;
1190
1191 if (rport && rport->port_state == FC_PORTSTATE_ONLINE)
1192 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id,
1193 scsilun_to_int((struct scsi_lun *)&unit->fcp_lun), 0);
1194 atomic_clear_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status);
1195 zfcp_unit_put(unit);
1196 wake_up(&unit->port->adapter->erp_done_wqh);
1197 kfree(p);
1198}
1199
1200static void zfcp_erp_schedule_work(struct zfcp_unit *unit)
1201{
1202 struct zfcp_erp_add_work *p;
1203
1204 p = kzalloc(sizeof(*p), GFP_KERNEL);
1205 if (!p) {
1206 dev_err(&unit->port->adapter->ccw_device->dev,
1207 "Registering unit 0x%016Lx on port 0x%016Lx failed\n",
1208 (unsigned long long)unit->fcp_lun,
1209 (unsigned long long)unit->port->wwpn);
1210 return;
1211 }
1212
1213 zfcp_unit_get(unit);
1214 atomic_set_mask(ZFCP_STATUS_UNIT_SCSI_WORK_PENDING, &unit->status);
1215 INIT_WORK(&p->work, zfcp_erp_scsi_scan);
1216 p->unit = unit;
1217 if (!queue_work(zfcp_data.work_queue, &p->work))
1218 zfcp_unit_put(unit);
1219}
1220
1221static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result) 1180static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result)
1222{ 1181{
1223 struct zfcp_adapter *adapter = act->adapter; 1182 struct zfcp_adapter *adapter = act->adapter;
@@ -1226,11 +1185,11 @@ static void zfcp_erp_action_cleanup(struct zfcp_erp_action *act, int result)
1226 1185
1227 switch (act->action) { 1186 switch (act->action) {
1228 case ZFCP_ERP_ACTION_REOPEN_UNIT: 1187 case ZFCP_ERP_ACTION_REOPEN_UNIT:
1229 flush_work(&port->rport_work);
1230 if ((result == ZFCP_ERP_SUCCEEDED) && !unit->device) { 1188 if ((result == ZFCP_ERP_SUCCEEDED) && !unit->device) {
1231 if (!(atomic_read(&unit->status) & 1189 zfcp_unit_get(unit);
1232 ZFCP_STATUS_UNIT_SCSI_WORK_PENDING)) 1190 if (scsi_queue_work(unit->port->adapter->scsi_host,
1233 zfcp_erp_schedule_work(unit); 1191 &unit->scsi_work) <= 0)
1192 zfcp_unit_put(unit);
1234 } 1193 }
1235 zfcp_unit_put(unit); 1194 zfcp_unit_put(unit);
1236 break; 1195 break;
@@ -1352,6 +1311,11 @@ static int zfcp_erp_thread(void *data)
1352 1311
1353 while (!(atomic_read(&adapter->status) & 1312 while (!(atomic_read(&adapter->status) &
1354 ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL)) { 1313 ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL)) {
1314
1315 zfcp_rec_dbf_event_thread_lock("erthrd1", adapter);
1316 ignore = down_interruptible(&adapter->erp_ready_sem);
1317 zfcp_rec_dbf_event_thread_lock("erthrd2", adapter);
1318
1355 write_lock_irqsave(&adapter->erp_lock, flags); 1319 write_lock_irqsave(&adapter->erp_lock, flags);
1356 next = adapter->erp_ready_head.next; 1320 next = adapter->erp_ready_head.next;
1357 write_unlock_irqrestore(&adapter->erp_lock, flags); 1321 write_unlock_irqrestore(&adapter->erp_lock, flags);
@@ -1363,10 +1327,6 @@ static int zfcp_erp_thread(void *data)
1363 if (zfcp_erp_strategy(act) != ZFCP_ERP_DISMISSED) 1327 if (zfcp_erp_strategy(act) != ZFCP_ERP_DISMISSED)
1364 zfcp_erp_wakeup(adapter); 1328 zfcp_erp_wakeup(adapter);
1365 } 1329 }
1366
1367 zfcp_rec_dbf_event_thread_lock("erthrd1", adapter);
1368 ignore = down_interruptible(&adapter->erp_ready_sem);
1369 zfcp_rec_dbf_event_thread_lock("erthrd2", adapter);
1370 } 1330 }
1371 1331
1372 atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status); 1332 atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status);
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h
index f6399ca97bcb..2e31b536548c 100644
--- a/drivers/s390/scsi/zfcp_ext.h
+++ b/drivers/s390/scsi/zfcp_ext.h
@@ -106,6 +106,7 @@ extern void zfcp_fc_plogi_evaluate(struct zfcp_port *, struct fsf_plogi *);
106extern void zfcp_test_link(struct zfcp_port *); 106extern void zfcp_test_link(struct zfcp_port *);
107extern void zfcp_fc_link_test_work(struct work_struct *); 107extern void zfcp_fc_link_test_work(struct work_struct *);
108extern void zfcp_fc_nameserver_init(struct zfcp_adapter *); 108extern void zfcp_fc_nameserver_init(struct zfcp_adapter *);
109extern void zfcp_fc_wka_port_force_offline(struct zfcp_wka_port *);
109 110
110/* zfcp_fsf.c */ 111/* zfcp_fsf.c */
111extern int zfcp_fsf_open_port(struct zfcp_erp_action *); 112extern int zfcp_fsf_open_port(struct zfcp_erp_action *);
@@ -158,6 +159,7 @@ extern void zfcp_scsi_rport_work(struct work_struct *);
158extern void zfcp_scsi_schedule_rport_register(struct zfcp_port *); 159extern void zfcp_scsi_schedule_rport_register(struct zfcp_port *);
159extern void zfcp_scsi_schedule_rport_block(struct zfcp_port *); 160extern void zfcp_scsi_schedule_rport_block(struct zfcp_port *);
160extern void zfcp_scsi_schedule_rports_block(struct zfcp_adapter *); 161extern void zfcp_scsi_schedule_rports_block(struct zfcp_adapter *);
162extern void zfcp_scsi_scan(struct work_struct *);
161 163
162/* zfcp_sysfs.c */ 164/* zfcp_sysfs.c */
163extern struct attribute_group zfcp_sysfs_unit_attrs; 165extern struct attribute_group zfcp_sysfs_unit_attrs;
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index e8d032b9dfbd..19ae0842047c 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -98,13 +98,6 @@ static void zfcp_wka_port_offline(struct work_struct *work)
98 struct zfcp_wka_port *wka_port = 98 struct zfcp_wka_port *wka_port =
99 container_of(dw, struct zfcp_wka_port, work); 99 container_of(dw, struct zfcp_wka_port, work);
100 100
101 /* Don't wait forvever. If the wka_port is too busy take it offline
102 through a new call later */
103 if (!wait_event_timeout(wka_port->completion_wq,
104 atomic_read(&wka_port->refcount) == 0,
105 HZ >> 1))
106 return;
107
108 mutex_lock(&wka_port->mutex); 101 mutex_lock(&wka_port->mutex);
109 if ((atomic_read(&wka_port->refcount) != 0) || 102 if ((atomic_read(&wka_port->refcount) != 0) ||
110 (wka_port->status != ZFCP_WKA_PORT_ONLINE)) 103 (wka_port->status != ZFCP_WKA_PORT_ONLINE))
@@ -142,6 +135,14 @@ void zfcp_fc_nameserver_init(struct zfcp_adapter *adapter)
142 INIT_DELAYED_WORK(&wka_port->work, zfcp_wka_port_offline); 135 INIT_DELAYED_WORK(&wka_port->work, zfcp_wka_port_offline);
143} 136}
144 137
138void zfcp_fc_wka_port_force_offline(struct zfcp_wka_port *wka)
139{
140 cancel_delayed_work_sync(&wka->work);
141 mutex_lock(&wka->mutex);
142 wka->status = ZFCP_WKA_PORT_OFFLINE;
143 mutex_unlock(&wka->mutex);
144}
145
145static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range, 146static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range,
146 struct fcp_rscn_element *elem) 147 struct fcp_rscn_element *elem)
147{ 148{
@@ -372,7 +373,8 @@ static void zfcp_fc_adisc_handler(unsigned long data)
372 373
373 if (adisc->els.status) { 374 if (adisc->els.status) {
374 /* request rejected or timed out */ 375 /* request rejected or timed out */
375 zfcp_erp_port_forced_reopen(port, 0, "fcadh_1", NULL); 376 zfcp_erp_port_forced_reopen(port, ZFCP_STATUS_COMMON_ERP_FAILED,
377 "fcadh_1", NULL);
376 goto out; 378 goto out;
377 } 379 }
378 380
@@ -431,11 +433,6 @@ void zfcp_fc_link_test_work(struct work_struct *work)
431 container_of(work, struct zfcp_port, test_link_work); 433 container_of(work, struct zfcp_port, test_link_work);
432 int retval; 434 int retval;
433 435
434 if (!(atomic_read(&port->status) & ZFCP_STATUS_COMMON_UNBLOCKED)) {
435 zfcp_port_put(port);
436 return; /* port erp is running and will update rport status */
437 }
438
439 zfcp_port_get(port); 436 zfcp_port_get(port);
440 port->rport_task = RPORT_DEL; 437 port->rport_task = RPORT_DEL;
441 zfcp_scsi_rport_work(&port->rport_work); 438 zfcp_scsi_rport_work(&port->rport_work);
@@ -542,6 +539,9 @@ static void zfcp_validate_port(struct zfcp_port *port)
542{ 539{
543 struct zfcp_adapter *adapter = port->adapter; 540 struct zfcp_adapter *adapter = port->adapter;
544 541
542 if (!(atomic_read(&port->status) & ZFCP_STATUS_COMMON_NOESC))
543 return;
544
545 atomic_clear_mask(ZFCP_STATUS_COMMON_NOESC, &port->status); 545 atomic_clear_mask(ZFCP_STATUS_COMMON_NOESC, &port->status);
546 546
547 if ((port->supported_classes != 0) || 547 if ((port->supported_classes != 0) ||
@@ -602,10 +602,8 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft, int max_entries)
602 if (acc->wwpn == fc_host_port_name(adapter->scsi_host)) 602 if (acc->wwpn == fc_host_port_name(adapter->scsi_host))
603 continue; 603 continue;
604 port = zfcp_get_port_by_wwpn(adapter, acc->wwpn); 604 port = zfcp_get_port_by_wwpn(adapter, acc->wwpn);
605 if (port) { 605 if (port)
606 zfcp_port_get(port);
607 continue; 606 continue;
608 }
609 607
610 port = zfcp_port_enqueue(adapter, acc->wwpn, 608 port = zfcp_port_enqueue(adapter, acc->wwpn,
611 ZFCP_STATUS_COMMON_NOESC, d_id); 609 ZFCP_STATUS_COMMON_NOESC, d_id);
@@ -637,7 +635,8 @@ int zfcp_scan_ports(struct zfcp_adapter *adapter)
637 max_entries = chain ? ZFCP_GPN_FT_MAX_ENTRIES : ZFCP_GPN_FT_ENTRIES; 635 max_entries = chain ? ZFCP_GPN_FT_MAX_ENTRIES : ZFCP_GPN_FT_ENTRIES;
638 max_bytes = chain ? ZFCP_GPN_FT_MAX_SIZE : ZFCP_CT_SIZE_ONE_PAGE; 636 max_bytes = chain ? ZFCP_GPN_FT_MAX_SIZE : ZFCP_CT_SIZE_ONE_PAGE;
639 637
640 if (fc_host_port_type(adapter->scsi_host) != FC_PORTTYPE_NPORT) 638 if (fc_host_port_type(adapter->scsi_host) != FC_PORTTYPE_NPORT &&
639 fc_host_port_type(adapter->scsi_host) != FC_PORTTYPE_NPIV)
641 return 0; 640 return 0;
642 641
643 ret = zfcp_wka_port_get(&adapter->nsp); 642 ret = zfcp_wka_port_get(&adapter->nsp);
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index b29f3121b666..74dee32afba8 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -172,12 +172,16 @@ static void zfcp_fsf_link_down_info_eval(struct zfcp_fsf_req *req, char *id,
172 struct fsf_link_down_info *link_down) 172 struct fsf_link_down_info *link_down)
173{ 173{
174 struct zfcp_adapter *adapter = req->adapter; 174 struct zfcp_adapter *adapter = req->adapter;
175 unsigned long flags;
175 176
176 if (atomic_read(&adapter->status) & ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED) 177 if (atomic_read(&adapter->status) & ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED)
177 return; 178 return;
178 179
179 atomic_set_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, &adapter->status); 180 atomic_set_mask(ZFCP_STATUS_ADAPTER_LINK_UNPLUGGED, &adapter->status);
181
182 read_lock_irqsave(&zfcp_data.config_lock, flags);
180 zfcp_scsi_schedule_rports_block(adapter); 183 zfcp_scsi_schedule_rports_block(adapter);
184 read_unlock_irqrestore(&zfcp_data.config_lock, flags);
181 185
182 if (!link_down) 186 if (!link_down)
183 goto out; 187 goto out;
@@ -645,30 +649,30 @@ static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
645 } 649 }
646} 650}
647 651
648static int zfcp_fsf_req_sbal_get(struct zfcp_adapter *adapter) 652static int zfcp_fsf_sbal_check(struct zfcp_adapter *adapter)
649 __releases(&adapter->req_q_lock)
650 __acquires(&adapter->req_q_lock)
651{ 653{
652 struct zfcp_qdio_queue *req_q = &adapter->req_q; 654 struct zfcp_qdio_queue *req_q = &adapter->req_q;
653 long ret;
654 655
655 if (atomic_read(&req_q->count) <= -REQUEST_LIST_SIZE) 656 spin_lock_bh(&adapter->req_q_lock);
656 return -EIO; 657 if (atomic_read(&req_q->count))
657 if (atomic_read(&req_q->count) > 0) 658 return 1;
658 return 0; 659 spin_unlock_bh(&adapter->req_q_lock);
660 return 0;
661}
662
663static int zfcp_fsf_req_sbal_get(struct zfcp_adapter *adapter)
664{
665 long ret;
659 666
660 atomic_dec(&req_q->count);
661 spin_unlock_bh(&adapter->req_q_lock); 667 spin_unlock_bh(&adapter->req_q_lock);
662 ret = wait_event_interruptible_timeout(adapter->request_wq, 668 ret = wait_event_interruptible_timeout(adapter->request_wq,
663 atomic_read(&req_q->count) >= 0, 669 zfcp_fsf_sbal_check(adapter), 5 * HZ);
664 5 * HZ);
665 spin_lock_bh(&adapter->req_q_lock);
666 atomic_inc(&req_q->count);
667
668 if (ret > 0) 670 if (ret > 0)
669 return 0; 671 return 0;
670 if (!ret) 672 if (!ret)
671 atomic_inc(&adapter->qdio_outb_full); 673 atomic_inc(&adapter->qdio_outb_full);
674
675 spin_lock_bh(&adapter->req_q_lock);
672 return -EIO; 676 return -EIO;
673} 677}
674 678
@@ -766,8 +770,9 @@ static struct zfcp_fsf_req *zfcp_fsf_req_create(struct zfcp_adapter *adapter,
766static int zfcp_fsf_req_send(struct zfcp_fsf_req *req) 770static int zfcp_fsf_req_send(struct zfcp_fsf_req *req)
767{ 771{
768 struct zfcp_adapter *adapter = req->adapter; 772 struct zfcp_adapter *adapter = req->adapter;
769 unsigned long flags; 773 unsigned long flags;
770 int idx; 774 int idx;
775 int with_qtcb = (req->qtcb != NULL);
771 776
772 /* put allocated FSF request into hash table */ 777 /* put allocated FSF request into hash table */
773 spin_lock_irqsave(&adapter->req_list_lock, flags); 778 spin_lock_irqsave(&adapter->req_list_lock, flags);
@@ -789,7 +794,7 @@ static int zfcp_fsf_req_send(struct zfcp_fsf_req *req)
789 } 794 }
790 795
791 /* Don't increase for unsolicited status */ 796 /* Don't increase for unsolicited status */
792 if (req->qtcb) 797 if (with_qtcb)
793 adapter->fsf_req_seq_no++; 798 adapter->fsf_req_seq_no++;
794 adapter->req_no++; 799 adapter->req_no++;
795 800
@@ -1253,13 +1258,13 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1253 1258
1254 spin_lock_bh(&adapter->req_q_lock); 1259 spin_lock_bh(&adapter->req_q_lock);
1255 if (zfcp_fsf_req_sbal_get(adapter)) 1260 if (zfcp_fsf_req_sbal_get(adapter))
1256 goto out; 1261 goto out_unlock;
1257 1262
1258 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, 1263 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA,
1259 0, NULL); 1264 0, NULL);
1260 if (IS_ERR(req)) { 1265 if (IS_ERR(req)) {
1261 retval = PTR_ERR(req); 1266 retval = PTR_ERR(req);
1262 goto out; 1267 goto out_unlock;
1263 } 1268 }
1264 1269
1265 sbale = zfcp_qdio_sbale_req(req); 1270 sbale = zfcp_qdio_sbale_req(req);
@@ -1278,14 +1283,16 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1278 1283
1279 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1284 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1280 retval = zfcp_fsf_req_send(req); 1285 retval = zfcp_fsf_req_send(req);
1281out:
1282 spin_unlock_bh(&adapter->req_q_lock); 1286 spin_unlock_bh(&adapter->req_q_lock);
1283 if (!retval) 1287 if (!retval)
1284 wait_event(req->completion_wq, 1288 wait_event(req->completion_wq,
1285 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1289 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
1286 1290
1287 zfcp_fsf_req_free(req); 1291 zfcp_fsf_req_free(req);
1292 return retval;
1288 1293
1294out_unlock:
1295 spin_unlock_bh(&adapter->req_q_lock);
1289 return retval; 1296 return retval;
1290} 1297}
1291 1298
@@ -1352,13 +1359,13 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1352 1359
1353 spin_lock_bh(&adapter->req_q_lock); 1360 spin_lock_bh(&adapter->req_q_lock);
1354 if (zfcp_fsf_req_sbal_get(adapter)) 1361 if (zfcp_fsf_req_sbal_get(adapter))
1355 goto out; 1362 goto out_unlock;
1356 1363
1357 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0, 1364 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
1358 NULL); 1365 NULL);
1359 if (IS_ERR(req)) { 1366 if (IS_ERR(req)) {
1360 retval = PTR_ERR(req); 1367 retval = PTR_ERR(req);
1361 goto out; 1368 goto out_unlock;
1362 } 1369 }
1363 1370
1364 if (data) 1371 if (data)
@@ -1371,14 +1378,18 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1371 req->handler = zfcp_fsf_exchange_port_data_handler; 1378 req->handler = zfcp_fsf_exchange_port_data_handler;
1372 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1379 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1373 retval = zfcp_fsf_req_send(req); 1380 retval = zfcp_fsf_req_send(req);
1374out:
1375 spin_unlock_bh(&adapter->req_q_lock); 1381 spin_unlock_bh(&adapter->req_q_lock);
1382
1376 if (!retval) 1383 if (!retval)
1377 wait_event(req->completion_wq, 1384 wait_event(req->completion_wq,
1378 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1385 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
1379 zfcp_fsf_req_free(req); 1386 zfcp_fsf_req_free(req);
1380 1387
1381 return retval; 1388 return retval;
1389
1390out_unlock:
1391 spin_unlock_bh(&adapter->req_q_lock);
1392 return retval;
1382} 1393}
1383 1394
1384static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req) 1395static void zfcp_fsf_open_port_handler(struct zfcp_fsf_req *req)
@@ -2472,8 +2483,6 @@ out:
2472 2483
2473static void zfcp_fsf_control_file_handler(struct zfcp_fsf_req *req) 2484static void zfcp_fsf_control_file_handler(struct zfcp_fsf_req *req)
2474{ 2485{
2475 if (req->qtcb->header.fsf_status != FSF_GOOD)
2476 req->status |= ZFCP_STATUS_FSFREQ_ERROR;
2477} 2486}
2478 2487
2479/** 2488/**
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 58201e1ae478..e8fbeaeb5fbf 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -171,7 +171,7 @@ static int zfcp_scsi_eh_abort_handler(struct scsi_cmnd *scpnt)
171 write_unlock_irqrestore(&adapter->abort_lock, flags); 171 write_unlock_irqrestore(&adapter->abort_lock, flags);
172 zfcp_scsi_dbf_event_abort("lte1", adapter, scpnt, NULL, 172 zfcp_scsi_dbf_event_abort("lte1", adapter, scpnt, NULL,
173 old_req_id); 173 old_req_id);
174 return SUCCESS; 174 return FAILED; /* completion could be in progress */
175 } 175 }
176 old_req->data = NULL; 176 old_req->data = NULL;
177 177
@@ -486,10 +486,12 @@ static void zfcp_set_rport_dev_loss_tmo(struct fc_rport *rport, u32 timeout)
486 */ 486 */
487static void zfcp_scsi_dev_loss_tmo_callbk(struct fc_rport *rport) 487static void zfcp_scsi_dev_loss_tmo_callbk(struct fc_rport *rport)
488{ 488{
489 struct zfcp_port *port = rport->dd_data; 489 struct zfcp_port *port;
490 490
491 write_lock_irq(&zfcp_data.config_lock); 491 write_lock_irq(&zfcp_data.config_lock);
492 port->rport = NULL; 492 port = rport->dd_data;
493 if (port)
494 port->rport = NULL;
493 write_unlock_irq(&zfcp_data.config_lock); 495 write_unlock_irq(&zfcp_data.config_lock);
494} 496}
495 497
@@ -503,9 +505,18 @@ static void zfcp_scsi_dev_loss_tmo_callbk(struct fc_rport *rport)
503 */ 505 */
504static void zfcp_scsi_terminate_rport_io(struct fc_rport *rport) 506static void zfcp_scsi_terminate_rport_io(struct fc_rport *rport)
505{ 507{
506 struct zfcp_port *port = rport->dd_data; 508 struct zfcp_port *port;
509
510 write_lock_irq(&zfcp_data.config_lock);
511 port = rport->dd_data;
512 if (port)
513 zfcp_port_get(port);
514 write_unlock_irq(&zfcp_data.config_lock);
507 515
508 zfcp_erp_port_reopen(port, 0, "sctrpi1", NULL); 516 if (port) {
517 zfcp_erp_port_reopen(port, 0, "sctrpi1", NULL);
518 zfcp_port_put(port);
519 }
509} 520}
510 521
511static void zfcp_scsi_rport_register(struct zfcp_port *port) 522static void zfcp_scsi_rport_register(struct zfcp_port *port)
@@ -534,8 +545,10 @@ static void zfcp_scsi_rport_register(struct zfcp_port *port)
534 545
535static void zfcp_scsi_rport_block(struct zfcp_port *port) 546static void zfcp_scsi_rport_block(struct zfcp_port *port)
536{ 547{
537 if (port->rport) 548 struct fc_rport *rport = port->rport;
538 fc_remote_port_delete(port->rport); 549
550 if (rport)
551 fc_remote_port_delete(rport);
539} 552}
540 553
541void zfcp_scsi_schedule_rport_register(struct zfcp_port *port) 554void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)
@@ -583,6 +596,23 @@ void zfcp_scsi_rport_work(struct work_struct *work)
583} 596}
584 597
585 598
599void zfcp_scsi_scan(struct work_struct *work)
600{
601 struct zfcp_unit *unit = container_of(work, struct zfcp_unit,
602 scsi_work);
603 struct fc_rport *rport;
604
605 flush_work(&unit->port->rport_work);
606 rport = unit->port->rport;
607
608 if (rport && rport->port_state == FC_PORTSTATE_ONLINE)
609 scsi_scan_target(&rport->dev, 0, rport->scsi_target_id,
610 scsilun_to_int((struct scsi_lun *)
611 &unit->fcp_lun), 0);
612
613 zfcp_unit_put(unit);
614}
615
586struct fc_function_template zfcp_transport_functions = { 616struct fc_function_template zfcp_transport_functions = {
587 .show_starget_port_id = 1, 617 .show_starget_port_id = 1,
588 .show_starget_port_name = 1, 618 .show_starget_port_name = 1,
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c
index 9a3b8e261c0a..3e51e64d1108 100644
--- a/drivers/s390/scsi/zfcp_sysfs.c
+++ b/drivers/s390/scsi/zfcp_sysfs.c
@@ -254,12 +254,21 @@ static ssize_t zfcp_sysfs_unit_remove_store(struct device *dev,
254 254
255 write_lock_irq(&zfcp_data.config_lock); 255 write_lock_irq(&zfcp_data.config_lock);
256 unit = zfcp_get_unit_by_lun(port, fcp_lun); 256 unit = zfcp_get_unit_by_lun(port, fcp_lun);
257 if (unit && (atomic_read(&unit->refcount) == 0)) { 257 if (unit) {
258 zfcp_unit_get(unit); 258 write_unlock_irq(&zfcp_data.config_lock);
259 atomic_set_mask(ZFCP_STATUS_COMMON_REMOVE, &unit->status); 259 /* wait for possible timeout during SCSI probe */
260 list_move(&unit->list, &unit_remove_lh); 260 flush_work(&unit->scsi_work);
261 } else 261 write_lock_irq(&zfcp_data.config_lock);
262 unit = NULL; 262
263 if (atomic_read(&unit->refcount) == 0) {
264 zfcp_unit_get(unit);
265 atomic_set_mask(ZFCP_STATUS_COMMON_REMOVE,
266 &unit->status);
267 list_move(&unit->list, &unit_remove_lh);
268 } else {
269 unit = NULL;
270 }
271 }
263 272
264 write_unlock_irq(&zfcp_data.config_lock); 273 write_unlock_irq(&zfcp_data.config_lock);
265 274
diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c
index e6d1fc8c54f1..a85ad05e8548 100644
--- a/drivers/sbus/char/jsflash.c
+++ b/drivers/sbus/char/jsflash.c
@@ -383,18 +383,22 @@ static int jsf_ioctl_program(void __user *arg)
383 return 0; 383 return 0;
384} 384}
385 385
386static int jsf_ioctl(struct inode *inode, struct file *f, unsigned int cmd, 386static long jsf_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
387 unsigned long arg)
388{ 387{
388 lock_kernel();
389 int error = -ENOTTY; 389 int error = -ENOTTY;
390 void __user *argp = (void __user *)arg; 390 void __user *argp = (void __user *)arg;
391 391
392 if (!capable(CAP_SYS_ADMIN)) 392 if (!capable(CAP_SYS_ADMIN)) {
393 unlock_kernel();
393 return -EPERM; 394 return -EPERM;
395 }
394 switch (cmd) { 396 switch (cmd) {
395 case JSFLASH_IDENT: 397 case JSFLASH_IDENT:
396 if (copy_to_user(argp, &jsf0.id, JSFIDSZ)) 398 if (copy_to_user(argp, &jsf0.id, JSFIDSZ)) {
399 unlock_kernel();
397 return -EFAULT; 400 return -EFAULT;
401 }
398 break; 402 break;
399 case JSFLASH_ERASE: 403 case JSFLASH_ERASE:
400 error = jsf_ioctl_erase(arg); 404 error = jsf_ioctl_erase(arg);
@@ -404,6 +408,7 @@ static int jsf_ioctl(struct inode *inode, struct file *f, unsigned int cmd,
404 break; 408 break;
405 } 409 }
406 410
411 unlock_kernel();
407 return error; 412 return error;
408} 413}
409 414
@@ -439,7 +444,7 @@ static const struct file_operations jsf_fops = {
439 .llseek = jsf_lseek, 444 .llseek = jsf_lseek,
440 .read = jsf_read, 445 .read = jsf_read,
441 .write = jsf_write, 446 .write = jsf_write,
442 .ioctl = jsf_ioctl, 447 .unlocked_ioctl = jsf_ioctl,
443 .mmap = jsf_mmap, 448 .mmap = jsf_mmap,
444 .open = jsf_open, 449 .open = jsf_open,
445 .release = jsf_release, 450 .release = jsf_release,
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index 27993c37775d..2c56fd56ec63 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -197,9 +197,8 @@ static struct uctrl_driver {
197static void uctrl_get_event_status(struct uctrl_driver *); 197static void uctrl_get_event_status(struct uctrl_driver *);
198static void uctrl_get_external_status(struct uctrl_driver *); 198static void uctrl_get_external_status(struct uctrl_driver *);
199 199
200static int 200static long
201uctrl_ioctl(struct inode *inode, struct file *file, 201uctrl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
202 unsigned int cmd, unsigned long arg)
203{ 202{
204 switch (cmd) { 203 switch (cmd) {
205 default: 204 default:
@@ -226,7 +225,7 @@ static irqreturn_t uctrl_interrupt(int irq, void *dev_id)
226static const struct file_operations uctrl_fops = { 225static const struct file_operations uctrl_fops = {
227 .owner = THIS_MODULE, 226 .owner = THIS_MODULE,
228 .llseek = no_llseek, 227 .llseek = no_llseek,
229 .ioctl = uctrl_ioctl, 228 .unlocked_ioctl = uctrl_ioctl,
230 .open = uctrl_open, 229 .open = uctrl_open,
231}; 230};
232 231
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index fdb14ec4fd47..8b7983aba8f7 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -2234,10 +2234,10 @@ static int twa_resume(struct pci_dev *pdev)
2234 pci_set_master(pdev); 2234 pci_set_master(pdev);
2235 pci_try_set_mwi(pdev); 2235 pci_try_set_mwi(pdev);
2236 2236
2237 if (pci_set_dma_mask(pdev, DMA_64BIT_MASK) 2237 if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
2238 || pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) 2238 || pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
2239 if (pci_set_dma_mask(pdev, DMA_32BIT_MASK) 2239 if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
2240 || pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) { 2240 || pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
2241 TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume"); 2241 TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume");
2242 retval = -ENODEV; 2242 retval = -ENODEV;
2243 goto out_disable_device; 2243 goto out_disable_device;
diff --git a/drivers/scsi/a4000t.c b/drivers/scsi/a4000t.c
index 61af3d91ac8a..e3519fa5a3ba 100644
--- a/drivers/scsi/a4000t.c
+++ b/drivers/scsi/a4000t.c
@@ -129,7 +129,7 @@ static int __init a4000t_scsi_init(void)
129 a4000t_scsi_device = platform_device_register_simple("a4000t-scsi", 129 a4000t_scsi_device = platform_device_register_simple("a4000t-scsi",
130 -1, NULL, 0); 130 -1, NULL, 0);
131 if (IS_ERR(a4000t_scsi_device)) { 131 if (IS_ERR(a4000t_scsi_device)) {
132 platform_driver_register(&a4000t_scsi_driver); 132 platform_driver_unregister(&a4000t_scsi_driver);
133 return PTR_ERR(a4000t_scsi_device); 133 return PTR_ERR(a4000t_scsi_device);
134 } 134 }
135 135
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 280261c451d6..2a889853a106 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -1378,7 +1378,7 @@ int aac_get_adapter_info(struct aac_dev* dev)
1378 if (dev->nondasd_support && !dev->in_reset) 1378 if (dev->nondasd_support && !dev->in_reset)
1379 printk(KERN_INFO "%s%d: Non-DASD support enabled.\n",dev->name, dev->id); 1379 printk(KERN_INFO "%s%d: Non-DASD support enabled.\n",dev->name, dev->id);
1380 1380
1381 if (dma_get_required_mask(&dev->pdev->dev) > DMA_32BIT_MASK) 1381 if (dma_get_required_mask(&dev->pdev->dev) > DMA_BIT_MASK(32))
1382 dev->needs_dac = 1; 1382 dev->needs_dac = 1;
1383 dev->dac_support = 0; 1383 dev->dac_support = 0;
1384 if ((sizeof(dma_addr_t) > 4) && dev->needs_dac && 1384 if ((sizeof(dma_addr_t) > 4) && dev->needs_dac &&
diff --git a/drivers/scsi/cxgb3i/cxgb3i.h b/drivers/scsi/cxgb3i/cxgb3i.h
index d362860e7504..59b0958d2d11 100644
--- a/drivers/scsi/cxgb3i/cxgb3i.h
+++ b/drivers/scsi/cxgb3i/cxgb3i.h
@@ -34,7 +34,7 @@
34#include "cxgb3i_offload.h" 34#include "cxgb3i_offload.h"
35#include "cxgb3i_ddp.h" 35#include "cxgb3i_ddp.h"
36 36
37#define CXGB3I_SCSI_QDEPTH_DFLT 128 37#define CXGB3I_SCSI_HOST_QDEPTH 1024
38#define CXGB3I_MAX_TARGET CXGB3I_MAX_CONN 38#define CXGB3I_MAX_TARGET CXGB3I_MAX_CONN
39#define CXGB3I_MAX_LUN 512 39#define CXGB3I_MAX_LUN 512
40#define ISCSI_PDU_NONPAYLOAD_MAX \ 40#define ISCSI_PDU_NONPAYLOAD_MAX \
diff --git a/drivers/scsi/cxgb3i/cxgb3i_ddp.c b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
index d06a661c209f..99c912547902 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_ddp.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
@@ -120,20 +120,26 @@ static void clear_ddp_map(struct cxgb3i_ddp_info *ddp, unsigned int tag,
120} 120}
121 121
122static inline int ddp_find_unused_entries(struct cxgb3i_ddp_info *ddp, 122static inline int ddp_find_unused_entries(struct cxgb3i_ddp_info *ddp,
123 int start, int max, int count, 123 unsigned int start, unsigned int max,
124 unsigned int count,
124 struct cxgb3i_gather_list *gl) 125 struct cxgb3i_gather_list *gl)
125{ 126{
126 unsigned int i, j; 127 unsigned int i, j, k;
127 128
129 /* not enough entries */
130 if ((max - start) < count)
131 return -EBUSY;
132
133 max -= count;
128 spin_lock(&ddp->map_lock); 134 spin_lock(&ddp->map_lock);
129 for (i = start; i <= max;) { 135 for (i = start; i < max;) {
130 for (j = 0; j < count; j++) { 136 for (j = 0, k = i; j < count; j++, k++) {
131 if (ddp->gl_map[i + j]) 137 if (ddp->gl_map[k])
132 break; 138 break;
133 } 139 }
134 if (j == count) { 140 if (j == count) {
135 for (j = 0; j < count; j++) 141 for (j = 0, k = i; j < count; j++, k++)
136 ddp->gl_map[i + j] = gl; 142 ddp->gl_map[k] = gl;
137 spin_unlock(&ddp->map_lock); 143 spin_unlock(&ddp->map_lock);
138 return i; 144 return i;
139 } 145 }
@@ -354,7 +360,7 @@ int cxgb3i_ddp_tag_reserve(struct t3cdev *tdev, unsigned int tid,
354 struct cxgb3i_ddp_info *ddp = tdev->ulp_iscsi; 360 struct cxgb3i_ddp_info *ddp = tdev->ulp_iscsi;
355 struct pagepod_hdr hdr; 361 struct pagepod_hdr hdr;
356 unsigned int npods; 362 unsigned int npods;
357 int idx = -1, idx_max; 363 int idx = -1;
358 int err = -ENOMEM; 364 int err = -ENOMEM;
359 u32 sw_tag = *tagp; 365 u32 sw_tag = *tagp;
360 u32 tag; 366 u32 tag;
@@ -367,17 +373,17 @@ int cxgb3i_ddp_tag_reserve(struct t3cdev *tdev, unsigned int tid,
367 } 373 }
368 374
369 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT; 375 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT;
370 idx_max = ddp->nppods - npods + 1;
371 376
372 if (ddp->idx_last == ddp->nppods) 377 if (ddp->idx_last == ddp->nppods)
373 idx = ddp_find_unused_entries(ddp, 0, idx_max, npods, gl); 378 idx = ddp_find_unused_entries(ddp, 0, ddp->nppods, npods, gl);
374 else { 379 else {
375 idx = ddp_find_unused_entries(ddp, ddp->idx_last + 1, 380 idx = ddp_find_unused_entries(ddp, ddp->idx_last + 1,
376 idx_max, npods, gl); 381 ddp->nppods, npods, gl);
377 if (idx < 0 && ddp->idx_last >= npods) 382 if (idx < 0 && ddp->idx_last >= npods) {
378 idx = ddp_find_unused_entries(ddp, 0, 383 idx = ddp_find_unused_entries(ddp, 0,
379 ddp->idx_last - npods + 1, 384 min(ddp->idx_last + npods, ddp->nppods),
380 npods, gl); 385 npods, gl);
386 }
381 } 387 }
382 if (idx < 0) { 388 if (idx < 0) {
383 ddp_log_debug("xferlen %u, gl %u, npods %u NO DDP.\n", 389 ddp_log_debug("xferlen %u, gl %u, npods %u NO DDP.\n",
diff --git a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
index fff8e4327644..9212400b9b13 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
@@ -876,13 +876,14 @@ static struct scsi_host_template cxgb3i_host_template = {
876 .proc_name = "cxgb3i", 876 .proc_name = "cxgb3i",
877 .queuecommand = iscsi_queuecommand, 877 .queuecommand = iscsi_queuecommand,
878 .change_queue_depth = iscsi_change_queue_depth, 878 .change_queue_depth = iscsi_change_queue_depth,
879 .can_queue = CXGB3I_SCSI_QDEPTH_DFLT - 1, 879 .can_queue = CXGB3I_SCSI_HOST_QDEPTH,
880 .sg_tablesize = SG_ALL, 880 .sg_tablesize = SG_ALL,
881 .max_sectors = 0xFFFF, 881 .max_sectors = 0xFFFF,
882 .cmd_per_lun = CXGB3I_SCSI_QDEPTH_DFLT, 882 .cmd_per_lun = ISCSI_DEF_CMD_PER_LUN,
883 .eh_abort_handler = iscsi_eh_abort, 883 .eh_abort_handler = iscsi_eh_abort,
884 .eh_device_reset_handler = iscsi_eh_device_reset, 884 .eh_device_reset_handler = iscsi_eh_device_reset,
885 .eh_target_reset_handler = iscsi_eh_target_reset, 885 .eh_target_reset_handler = iscsi_eh_target_reset,
886 .target_alloc = iscsi_target_alloc,
886 .use_clustering = DISABLE_CLUSTERING, 887 .use_clustering = DISABLE_CLUSTERING,
887 .this_id = -1, 888 .this_id = -1,
888}; 889};
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c
index 4d8654cdbdae..e11c9c180f39 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c
@@ -1737,7 +1737,7 @@ int cxgb3i_c3cn_send_pdus(struct s3_conn *c3cn, struct sk_buff *skb)
1737 c3cn_tx_debug("c3cn 0x%p, snd %u - %u > %u.\n", 1737 c3cn_tx_debug("c3cn 0x%p, snd %u - %u > %u.\n",
1738 c3cn, c3cn->write_seq, c3cn->snd_una, 1738 c3cn, c3cn->write_seq, c3cn->snd_una,
1739 cxgb3_snd_win); 1739 cxgb3_snd_win);
1740 err = -EAGAIN; 1740 err = -ENOBUFS;
1741 goto out_err; 1741 goto out_err;
1742 } 1742 }
1743 1743
@@ -1775,6 +1775,8 @@ done:
1775out_err: 1775out_err:
1776 if (copied == 0 && err == -EPIPE) 1776 if (copied == 0 && err == -EPIPE)
1777 copied = c3cn->err ? c3cn->err : -EPIPE; 1777 copied = c3cn->err ? c3cn->err : -EPIPE;
1778 else
1779 copied = err;
1778 goto done; 1780 goto done;
1779} 1781}
1780 1782
diff --git a/drivers/scsi/cxgb3i/cxgb3i_pdu.c b/drivers/scsi/cxgb3i/cxgb3i_pdu.c
index 7eebc9a7cb35..709105071177 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_pdu.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_pdu.c
@@ -400,17 +400,18 @@ int cxgb3i_conn_xmit_pdu(struct iscsi_task *task)
400 return 0; 400 return 0;
401 } 401 }
402 402
403 if (err < 0 && err != -EAGAIN) { 403 if (err == -EAGAIN || err == -ENOBUFS) {
404 kfree_skb(skb); 404 /* reset skb to send when we are called again */
405 cxgb3i_tx_debug("itt 0x%x, skb 0x%p, len %u/%u, xmit err %d.\n", 405 tdata->skb = skb;
406 task->itt, skb, skb->len, skb->data_len, err);
407 iscsi_conn_printk(KERN_ERR, task->conn, "xmit err %d.\n", err);
408 iscsi_conn_failure(task->conn, ISCSI_ERR_XMIT_FAILED);
409 return err; 406 return err;
410 } 407 }
411 /* reset skb to send when we are called again */ 408
412 tdata->skb = skb; 409 kfree_skb(skb);
413 return -EAGAIN; 410 cxgb3i_tx_debug("itt 0x%x, skb 0x%p, len %u/%u, xmit err %d.\n",
411 task->itt, skb, skb->len, skb->data_len, err);
412 iscsi_conn_printk(KERN_ERR, task->conn, "xmit err %d.\n", err);
413 iscsi_conn_failure(task->conn, ISCSI_ERR_XMIT_FAILED);
414 return err;
414} 415}
415 416
416int cxgb3i_pdu_init(void) 417int cxgb3i_pdu_init(void)
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index f2d16127bd0a..ce33f107b0a0 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -57,7 +57,7 @@ DEFINE_RWLOCK(fcoe_hostlist_lock);
57DEFINE_TIMER(fcoe_timer, NULL, 0, 0); 57DEFINE_TIMER(fcoe_timer, NULL, 0, 0);
58DEFINE_PER_CPU(struct fcoe_percpu_s, fcoe_percpu); 58DEFINE_PER_CPU(struct fcoe_percpu_s, fcoe_percpu);
59 59
60/* Function Prototyes */ 60/* Function Prototypes */
61static int fcoe_reset(struct Scsi_Host *shost); 61static int fcoe_reset(struct Scsi_Host *shost);
62static int fcoe_xmit(struct fc_lport *, struct fc_frame *); 62static int fcoe_xmit(struct fc_lport *, struct fc_frame *);
63static int fcoe_rcv(struct sk_buff *, struct net_device *, 63static int fcoe_rcv(struct sk_buff *, struct net_device *,
@@ -190,7 +190,6 @@ static void fcoe_update_src_mac(struct fcoe_ctlr *fip, u8 *old, u8 *new)
190/** 190/**
191 * fcoe_lport_config() - sets up the fc_lport 191 * fcoe_lport_config() - sets up the fc_lport
192 * @lp: ptr to the fc_lport 192 * @lp: ptr to the fc_lport
193 * @shost: ptr to the parent scsi host
194 * 193 *
195 * Returns: 0 for success 194 * Returns: 0 for success
196 */ 195 */
@@ -351,6 +350,7 @@ static int fcoe_netdev_config(struct fc_lport *lp, struct net_device *netdev)
351 dev_unicast_add(fc->real_dev, flogi_maddr, ETH_ALEN); 350 dev_unicast_add(fc->real_dev, flogi_maddr, ETH_ALEN);
352 if (fc->ctlr.spma) 351 if (fc->ctlr.spma)
353 dev_unicast_add(fc->real_dev, fc->ctlr.ctl_src_addr, ETH_ALEN); 352 dev_unicast_add(fc->real_dev, fc->ctlr.ctl_src_addr, ETH_ALEN);
353 dev_mc_add(fc->real_dev, FIP_ALL_ENODE_MACS, ETH_ALEN, 0);
354 rtnl_unlock(); 354 rtnl_unlock();
355 355
356 /* 356 /*
@@ -470,7 +470,7 @@ static int fcoe_if_destroy(struct net_device *netdev)
470 if (lp->emp) 470 if (lp->emp)
471 fc_exch_mgr_free(lp->emp); 471 fc_exch_mgr_free(lp->emp);
472 472
473 /* Free the per-CPU revieve threads */ 473 /* Free the per-CPU receive threads */
474 fcoe_percpu_clean(lp); 474 fcoe_percpu_clean(lp);
475 475
476 /* Free existing skbs */ 476 /* Free existing skbs */
@@ -755,7 +755,7 @@ static void fcoe_percpu_thread_destroy(unsigned int cpu)
755 } 755 }
756#else 756#else
757 /* 757 /*
758 * This a non-SMP scenario where the singluar Rx thread is 758 * This a non-SMP scenario where the singular Rx thread is
759 * being removed. Free all skbs and stop the thread. 759 * being removed. Free all skbs and stop the thread.
760 */ 760 */
761 spin_lock_bh(&p->fcoe_rx_list.lock); 761 spin_lock_bh(&p->fcoe_rx_list.lock);
@@ -812,7 +812,7 @@ static struct notifier_block fcoe_cpu_notifier = {
812 * @skb: the receive skb 812 * @skb: the receive skb
813 * @dev: associated net device 813 * @dev: associated net device
814 * @ptype: context 814 * @ptype: context
815 * @odldev: last device 815 * @olddev: last device
816 * 816 *
817 * this function will receive the packet and build fc frame and pass it up 817 * this function will receive the packet and build fc frame and pass it up
818 * 818 *
@@ -919,7 +919,6 @@ err2:
919 kfree_skb(skb); 919 kfree_skb(skb);
920 return -1; 920 return -1;
921} 921}
922EXPORT_SYMBOL_GPL(fcoe_rcv);
923 922
924/** 923/**
925 * fcoe_start_io() - pass to netdev to start xmit for fcoe 924 * fcoe_start_io() - pass to netdev to start xmit for fcoe
@@ -940,7 +939,7 @@ static inline int fcoe_start_io(struct sk_buff *skb)
940} 939}
941 940
942/** 941/**
943 * fcoe_get_paged_crc_eof() - in case we need alloc a page for crc_eof 942 * fcoe_get_paged_crc_eof() - in case we need to alloc a page for crc_eof
944 * @skb: the skb to be xmitted 943 * @skb: the skb to be xmitted
945 * @tlen: total len 944 * @tlen: total len
946 * 945 *
@@ -982,7 +981,7 @@ static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen)
982 981
983/** 982/**
984 * fcoe_fc_crc() - calculates FC CRC in this fcoe skb 983 * fcoe_fc_crc() - calculates FC CRC in this fcoe skb
985 * @fp: the fc_frame containg data to be checksummed 984 * @fp: the fc_frame containing data to be checksummed
986 * 985 *
987 * This uses crc32() to calculate the crc for fc frame 986 * This uses crc32() to calculate the crc for fc frame
988 * Return : 32 bit crc 987 * Return : 32 bit crc
@@ -1046,7 +1045,7 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp)
1046 wlen = skb->len / FCOE_WORD_TO_BYTE; 1045 wlen = skb->len / FCOE_WORD_TO_BYTE;
1047 1046
1048 if (!lp->link_up) { 1047 if (!lp->link_up) {
1049 kfree(skb); 1048 kfree_skb(skb);
1050 return 0; 1049 return 0;
1051 } 1050 }
1052 1051
@@ -1097,7 +1096,7 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp)
1097 cp = NULL; 1096 cp = NULL;
1098 } 1097 }
1099 1098
1100 /* adjust skb netowrk/transport offsets to match mac/fcoe/fc */ 1099 /* adjust skb network/transport offsets to match mac/fcoe/fc */
1101 skb_push(skb, elen + hlen); 1100 skb_push(skb, elen + hlen);
1102 skb_reset_mac_header(skb); 1101 skb_reset_mac_header(skb);
1103 skb_reset_network_header(skb); 1102 skb_reset_network_header(skb);
@@ -1158,7 +1157,6 @@ int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp)
1158 1157
1159 return 0; 1158 return 0;
1160} 1159}
1161EXPORT_SYMBOL_GPL(fcoe_xmit);
1162 1160
1163/** 1161/**
1164 * fcoe_percpu_receive_thread() - recv thread per cpu 1162 * fcoe_percpu_receive_thread() - recv thread per cpu
@@ -1331,17 +1329,16 @@ void fcoe_watchdog(ulong vp)
1331 1329
1332 1330
1333/** 1331/**
1334 * fcoe_check_wait_queue() - put the skb into fcoe pending xmit queue 1332 * fcoe_check_wait_queue() - attempt to clear the transmit backlog
1335 * @lp: the fc_port for this skb 1333 * @lp: the fc_lport
1336 * @skb: the associated skb to be xmitted
1337 * 1334 *
1338 * This empties the wait_queue, dequeue the head of the wait_queue queue 1335 * This empties the wait_queue, dequeue the head of the wait_queue queue
1339 * and calls fcoe_start_io() for each packet, if all skb have been 1336 * and calls fcoe_start_io() for each packet, if all skb have been
1340 * transmitted, return qlen or -1 if a error occurs, then restore 1337 * transmitted, return qlen or -1 if a error occurs, then restore
1341 * wait_queue and try again later. 1338 * wait_queue and try again later.
1342 * 1339 *
1343 * The wait_queue is used when the skb transmit fails. skb will go 1340 * The wait_queue is used when the skb transmit fails. skb will go
1344 * in the wait_queue which will be emptied by the time function OR 1341 * in the wait_queue which will be emptied by the timer function or
1345 * by the next skb transmit. 1342 * by the next skb transmit.
1346 * 1343 *
1347 * Returns: 0 for success 1344 * Returns: 0 for success
@@ -1390,10 +1387,6 @@ out:
1390 */ 1387 */
1391static void fcoe_dev_setup() 1388static void fcoe_dev_setup()
1392{ 1389{
1393 /*
1394 * here setup a interface specific wd time to
1395 * monitor the link state
1396 */
1397 register_netdevice_notifier(&fcoe_notifier); 1390 register_netdevice_notifier(&fcoe_notifier);
1398} 1391}
1399 1392
@@ -1472,10 +1465,9 @@ out:
1472 1465
1473/** 1466/**
1474 * fcoe_if_to_netdev() - parse a name buffer to get netdev 1467 * fcoe_if_to_netdev() - parse a name buffer to get netdev
1475 * @ifname: fixed array for output parsed ifname
1476 * @buffer: incoming buffer to be copied 1468 * @buffer: incoming buffer to be copied
1477 * 1469 *
1478 * Returns: NULL or ptr to netdeive 1470 * Returns: NULL or ptr to net_device
1479 */ 1471 */
1480static struct net_device *fcoe_if_to_netdev(const char *buffer) 1472static struct net_device *fcoe_if_to_netdev(const char *buffer)
1481{ 1473{
@@ -1493,7 +1485,7 @@ static struct net_device *fcoe_if_to_netdev(const char *buffer)
1493} 1485}
1494 1486
1495/** 1487/**
1496 * fcoe_netdev_to_module_owner() - finds out the nic drive moddule of the netdev 1488 * fcoe_netdev_to_module_owner() - finds out the driver module of the netdev
1497 * @netdev: the target netdev 1489 * @netdev: the target netdev
1498 * 1490 *
1499 * Returns: ptr to the struct module, NULL for failure 1491 * Returns: ptr to the struct module, NULL for failure
@@ -1523,7 +1515,7 @@ fcoe_netdev_to_module_owner(const struct net_device *netdev)
1523 * Holds the Ethernet driver module by try_module_get() for 1515 * Holds the Ethernet driver module by try_module_get() for
1524 * the corresponding netdev. 1516 * the corresponding netdev.
1525 * 1517 *
1526 * Returns: 0 for succsss 1518 * Returns: 0 for success
1527 */ 1519 */
1528static int fcoe_ethdrv_get(const struct net_device *netdev) 1520static int fcoe_ethdrv_get(const struct net_device *netdev)
1529{ 1521{
@@ -1545,7 +1537,7 @@ static int fcoe_ethdrv_get(const struct net_device *netdev)
1545 * Releases the Ethernet driver module by module_put for 1537 * Releases the Ethernet driver module by module_put for
1546 * the corresponding netdev. 1538 * the corresponding netdev.
1547 * 1539 *
1548 * Returns: 0 for succsss 1540 * Returns: 0 for success
1549 */ 1541 */
1550static int fcoe_ethdrv_put(const struct net_device *netdev) 1542static int fcoe_ethdrv_put(const struct net_device *netdev)
1551{ 1543{
@@ -1563,7 +1555,7 @@ static int fcoe_ethdrv_put(const struct net_device *netdev)
1563 1555
1564/** 1556/**
1565 * fcoe_destroy() - handles the destroy from sysfs 1557 * fcoe_destroy() - handles the destroy from sysfs
1566 * @buffer: expcted to be a eth if name 1558 * @buffer: expected to be an eth if name
1567 * @kp: associated kernel param 1559 * @kp: associated kernel param
1568 * 1560 *
1569 * Returns: 0 for success 1561 * Returns: 0 for success
@@ -1600,7 +1592,7 @@ out_nodev:
1600 1592
1601/** 1593/**
1602 * fcoe_create() - Handles the create call from sysfs 1594 * fcoe_create() - Handles the create call from sysfs
1603 * @buffer: expcted to be a eth if name 1595 * @buffer: expected to be an eth if name
1604 * @kp: associated kernel param 1596 * @kp: associated kernel param
1605 * 1597 *
1606 * Returns: 0 for success 1598 * Returns: 0 for success
@@ -1687,7 +1679,6 @@ int fcoe_link_ok(struct fc_lport *lp)
1687 1679
1688 return rc; 1680 return rc;
1689} 1681}
1690EXPORT_SYMBOL_GPL(fcoe_link_ok);
1691 1682
1692/** 1683/**
1693 * fcoe_percpu_clean() - Clear the pending skbs for an lport 1684 * fcoe_percpu_clean() - Clear the pending skbs for an lport
@@ -1719,7 +1710,6 @@ void fcoe_percpu_clean(struct fc_lport *lp)
1719 spin_unlock_bh(&pp->fcoe_rx_list.lock); 1710 spin_unlock_bh(&pp->fcoe_rx_list.lock);
1720 } 1711 }
1721} 1712}
1722EXPORT_SYMBOL_GPL(fcoe_percpu_clean);
1723 1713
1724/** 1714/**
1725 * fcoe_clean_pending_queue() - Dequeue a skb and free it 1715 * fcoe_clean_pending_queue() - Dequeue a skb and free it
@@ -1740,7 +1730,6 @@ void fcoe_clean_pending_queue(struct fc_lport *lp)
1740 } 1730 }
1741 spin_unlock_bh(&fc->fcoe_pending_queue.lock); 1731 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1742} 1732}
1743EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue);
1744 1733
1745/** 1734/**
1746 * fcoe_reset() - Resets the fcoe 1735 * fcoe_reset() - Resets the fcoe
@@ -1754,11 +1743,10 @@ int fcoe_reset(struct Scsi_Host *shost)
1754 fc_lport_reset(lport); 1743 fc_lport_reset(lport);
1755 return 0; 1744 return 0;
1756} 1745}
1757EXPORT_SYMBOL_GPL(fcoe_reset);
1758 1746
1759/** 1747/**
1760 * fcoe_hostlist_lookup_softc() - find the corresponding lport by a given device 1748 * fcoe_hostlist_lookup_softc() - find the corresponding lport by a given device
1761 * @device: this is currently ptr to net_device 1749 * @dev: this is currently ptr to net_device
1762 * 1750 *
1763 * Returns: NULL or the located fcoe_softc 1751 * Returns: NULL or the located fcoe_softc
1764 */ 1752 */
@@ -1792,11 +1780,10 @@ struct fc_lport *fcoe_hostlist_lookup(const struct net_device *netdev)
1792 1780
1793 return (fc) ? fc->ctlr.lp : NULL; 1781 return (fc) ? fc->ctlr.lp : NULL;
1794} 1782}
1795EXPORT_SYMBOL_GPL(fcoe_hostlist_lookup);
1796 1783
1797/** 1784/**
1798 * fcoe_hostlist_add() - Add a lport to lports list 1785 * fcoe_hostlist_add() - Add a lport to lports list
1799 * @lp: ptr to the fc_lport to badded 1786 * @lp: ptr to the fc_lport to be added
1800 * 1787 *
1801 * Returns: 0 for success 1788 * Returns: 0 for success
1802 */ 1789 */
@@ -1813,11 +1800,10 @@ int fcoe_hostlist_add(const struct fc_lport *lp)
1813 } 1800 }
1814 return 0; 1801 return 0;
1815} 1802}
1816EXPORT_SYMBOL_GPL(fcoe_hostlist_add);
1817 1803
1818/** 1804/**
1819 * fcoe_hostlist_remove() - remove a lport from lports list 1805 * fcoe_hostlist_remove() - remove a lport from lports list
1820 * @lp: ptr to the fc_lport to badded 1806 * @lp: ptr to the fc_lport to be removed
1821 * 1807 *
1822 * Returns: 0 for success 1808 * Returns: 0 for success
1823 */ 1809 */
@@ -1833,7 +1819,6 @@ int fcoe_hostlist_remove(const struct fc_lport *lp)
1833 1819
1834 return 0; 1820 return 0;
1835} 1821}
1836EXPORT_SYMBOL_GPL(fcoe_hostlist_remove);
1837 1822
1838/** 1823/**
1839 * fcoe_init() - fcoe module loading initialization 1824 * fcoe_init() - fcoe module loading initialization
diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c
index 444a06bdb70b..b9aa280100b0 100644
--- a/drivers/scsi/fcoe/libfcoe.c
+++ b/drivers/scsi/fcoe/libfcoe.c
@@ -122,7 +122,7 @@ static void fcoe_ctlr_reset_fcfs(struct fcoe_ctlr *fip)
122} 122}
123 123
124/** 124/**
125 * fcoe_ctrl_destroy() - Disable and tear-down the FCoE controller. 125 * fcoe_ctlr_destroy() - Disable and tear-down the FCoE controller.
126 * @fip: FCoE controller. 126 * @fip: FCoE controller.
127 * 127 *
128 * This is called by FCoE drivers before freeing the &fcoe_ctlr. 128 * This is called by FCoE drivers before freeing the &fcoe_ctlr.
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index c09d77591f92..dd689ded8609 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -3654,6 +3654,7 @@ static int ipr_slave_configure(struct scsi_device *sdev)
3654{ 3654{
3655 struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; 3655 struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata;
3656 struct ipr_resource_entry *res; 3656 struct ipr_resource_entry *res;
3657 struct ata_port *ap = NULL;
3657 unsigned long lock_flags = 0; 3658 unsigned long lock_flags = 0;
3658 3659
3659 spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); 3660 spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
@@ -3672,12 +3673,16 @@ static int ipr_slave_configure(struct scsi_device *sdev)
3672 } 3673 }
3673 if (ipr_is_vset_device(res) || ipr_is_scsi_disk(res)) 3674 if (ipr_is_vset_device(res) || ipr_is_scsi_disk(res))
3674 sdev->allow_restart = 1; 3675 sdev->allow_restart = 1;
3675 if (ipr_is_gata(res) && res->sata_port) { 3676 if (ipr_is_gata(res) && res->sata_port)
3677 ap = res->sata_port->ap;
3678 spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
3679
3680 if (ap) {
3676 scsi_adjust_queue_depth(sdev, 0, IPR_MAX_CMD_PER_ATA_LUN); 3681 scsi_adjust_queue_depth(sdev, 0, IPR_MAX_CMD_PER_ATA_LUN);
3677 ata_sas_slave_configure(sdev, res->sata_port->ap); 3682 ata_sas_slave_configure(sdev, ap);
3678 } else { 3683 } else
3679 scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun); 3684 scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
3680 } 3685 return 0;
3681 } 3686 }
3682 spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); 3687 spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
3683 return 0; 3688 return 0;
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index b3e5e08e44ab..b7c092d63bbe 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -463,7 +463,7 @@ static int iscsi_sw_tcp_pdu_init(struct iscsi_task *task,
463 } 463 }
464 464
465 if (err) { 465 if (err) {
466 iscsi_conn_failure(conn, err); 466 /* got invalid offset/len */
467 return -EIO; 467 return -EIO;
468 } 468 }
469 return 0; 469 return 0;
@@ -851,6 +851,7 @@ static struct scsi_host_template iscsi_sw_tcp_sht = {
851 .use_clustering = DISABLE_CLUSTERING, 851 .use_clustering = DISABLE_CLUSTERING,
852 .slave_alloc = iscsi_sw_tcp_slave_alloc, 852 .slave_alloc = iscsi_sw_tcp_slave_alloc,
853 .slave_configure = iscsi_sw_tcp_slave_configure, 853 .slave_configure = iscsi_sw_tcp_slave_configure,
854 .target_alloc = iscsi_target_alloc,
854 .proc_name = "iscsi_tcp", 855 .proc_name = "iscsi_tcp",
855 .this_id = -1, 856 .this_id = -1,
856}; 857};
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
index e57556ea5b48..4c880656990b 100644
--- a/drivers/scsi/libfc/fc_disc.c
+++ b/drivers/scsi/libfc/fc_disc.c
@@ -113,6 +113,11 @@ void fc_disc_stop_rports(struct fc_disc *disc)
113 lport->tt.rport_logoff(rport); 113 lport->tt.rport_logoff(rport);
114 } 114 }
115 115
116 list_for_each_entry_safe(rdata, next, &disc->rogue_rports, peers) {
117 rport = PRIV_TO_RPORT(rdata);
118 lport->tt.rport_logoff(rport);
119 }
120
116 mutex_unlock(&disc->disc_mutex); 121 mutex_unlock(&disc->disc_mutex);
117} 122}
118 123
@@ -131,23 +136,32 @@ static void fc_disc_rport_callback(struct fc_lport *lport,
131{ 136{
132 struct fc_rport_libfc_priv *rdata = rport->dd_data; 137 struct fc_rport_libfc_priv *rdata = rport->dd_data;
133 struct fc_disc *disc = &lport->disc; 138 struct fc_disc *disc = &lport->disc;
134 int found = 0;
135 139
136 FC_DEBUG_DISC("Received a %d event for port (%6x)\n", event, 140 FC_DEBUG_DISC("Received a %d event for port (%6x)\n", event,
137 rport->port_id); 141 rport->port_id);
138 142
139 if (event == RPORT_EV_CREATED) { 143 switch (event) {
144 case RPORT_EV_CREATED:
140 if (disc) { 145 if (disc) {
141 found = 1;
142 mutex_lock(&disc->disc_mutex); 146 mutex_lock(&disc->disc_mutex);
143 list_add_tail(&rdata->peers, &disc->rports); 147 list_add_tail(&rdata->peers, &disc->rports);
144 mutex_unlock(&disc->disc_mutex); 148 mutex_unlock(&disc->disc_mutex);
145 } 149 }
150 break;
151 case RPORT_EV_LOGO:
152 case RPORT_EV_FAILED:
153 case RPORT_EV_STOP:
154 mutex_lock(&disc->disc_mutex);
155 mutex_lock(&rdata->rp_mutex);
156 if (rdata->trans_state == FC_PORTSTATE_ROGUE)
157 list_del(&rdata->peers);
158 mutex_unlock(&rdata->rp_mutex);
159 mutex_unlock(&disc->disc_mutex);
160 break;
161 default:
162 break;
146 } 163 }
147 164
148 if (!found)
149 FC_DEBUG_DISC("The rport (%6x) is not maintained "
150 "by the discovery layer\n", rport->port_id);
151} 165}
152 166
153/** 167/**
@@ -439,6 +453,7 @@ static int fc_disc_new_target(struct fc_disc *disc,
439 rdata = rport->dd_data; 453 rdata = rport->dd_data;
440 rdata->ops = &fc_disc_rport_ops; 454 rdata->ops = &fc_disc_rport_ops;
441 rdata->rp_state = RPORT_ST_INIT; 455 rdata->rp_state = RPORT_ST_INIT;
456 list_add_tail(&rdata->peers, &disc->rogue_rports);
442 lport->tt.rport_login(rport); 457 lport->tt.rport_login(rport);
443 } 458 }
444 } 459 }
@@ -461,21 +476,29 @@ static void fc_disc_del_target(struct fc_disc *disc, struct fc_rport *rport)
461/** 476/**
462 * fc_disc_done() - Discovery has been completed 477 * fc_disc_done() - Discovery has been completed
463 * @disc: FC discovery context 478 * @disc: FC discovery context
479 * Locking Note: This function expects that the disc mutex is locked before
480 * it is called. The discovery callback is then made with the lock released,
481 * and the lock is re-taken before returning from this function
464 */ 482 */
465static void fc_disc_done(struct fc_disc *disc) 483static void fc_disc_done(struct fc_disc *disc)
466{ 484{
467 struct fc_lport *lport = disc->lport; 485 struct fc_lport *lport = disc->lport;
486 enum fc_disc_event event;
468 487
469 FC_DEBUG_DISC("Discovery complete for port (%6x)\n", 488 FC_DEBUG_DISC("Discovery complete for port (%6x)\n",
470 fc_host_port_id(lport->host)); 489 fc_host_port_id(lport->host));
471 490
472 disc->disc_callback(lport, disc->event); 491 event = disc->event;
473 disc->event = DISC_EV_NONE; 492 disc->event = DISC_EV_NONE;
474 493
475 if (disc->requested) 494 if (disc->requested)
476 fc_disc_gpn_ft_req(disc); 495 fc_disc_gpn_ft_req(disc);
477 else 496 else
478 disc->pending = 0; 497 disc->pending = 0;
498
499 mutex_unlock(&disc->disc_mutex);
500 disc->disc_callback(lport, event);
501 mutex_lock(&disc->disc_mutex);
479} 502}
480 503
481/** 504/**
@@ -622,6 +645,8 @@ static int fc_disc_gpn_ft_parse(struct fc_disc *disc, void *buf, size_t len)
622 rdata = rport->dd_data; 645 rdata = rport->dd_data;
623 rdata->ops = &fc_disc_rport_ops; 646 rdata->ops = &fc_disc_rport_ops;
624 rdata->local_port = lport; 647 rdata->local_port = lport;
648 list_add_tail(&rdata->peers,
649 &disc->rogue_rports);
625 lport->tt.rport_login(rport); 650 lport->tt.rport_login(rport);
626 } else 651 } else
627 FC_DBG("Failed to allocate memory for " 652 FC_DBG("Failed to allocate memory for "
@@ -681,8 +706,8 @@ static void fc_disc_timeout(struct work_struct *work)
681 * @fp: response frame 706 * @fp: response frame
682 * @lp_arg: Fibre Channel host port instance 707 * @lp_arg: Fibre Channel host port instance
683 * 708 *
684 * Locking Note: This function expects that the disc_mutex is locked 709 * Locking Note: This function is called without disc mutex held, and
685 * before it is called. 710 * should do all its processing with the mutex held
686 */ 711 */
687static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp, 712static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp,
688 void *disc_arg) 713 void *disc_arg)
@@ -695,11 +720,13 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp,
695 unsigned int len; 720 unsigned int len;
696 int error; 721 int error;
697 722
723 mutex_lock(&disc->disc_mutex);
698 FC_DEBUG_DISC("Received a GPN_FT response on port (%6x)\n", 724 FC_DEBUG_DISC("Received a GPN_FT response on port (%6x)\n",
699 fc_host_port_id(disc->lport->host)); 725 fc_host_port_id(disc->lport->host));
700 726
701 if (IS_ERR(fp)) { 727 if (IS_ERR(fp)) {
702 fc_disc_error(disc, fp); 728 fc_disc_error(disc, fp);
729 mutex_unlock(&disc->disc_mutex);
703 return; 730 return;
704 } 731 }
705 732
@@ -744,6 +771,8 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp,
744 disc->seq_count++; 771 disc->seq_count++;
745 } 772 }
746 fc_frame_free(fp); 773 fc_frame_free(fp);
774
775 mutex_unlock(&disc->disc_mutex);
747} 776}
748 777
749/** 778/**
@@ -757,7 +786,6 @@ static void fc_disc_gpn_ft_resp(struct fc_seq *sp, struct fc_frame *fp,
757static void fc_disc_single(struct fc_disc *disc, struct fc_disc_port *dp) 786static void fc_disc_single(struct fc_disc *disc, struct fc_disc_port *dp)
758{ 787{
759 struct fc_lport *lport; 788 struct fc_lport *lport;
760 struct fc_rport *rport;
761 struct fc_rport *new_rport; 789 struct fc_rport *new_rport;
762 struct fc_rport_libfc_priv *rdata; 790 struct fc_rport_libfc_priv *rdata;
763 791
@@ -766,15 +794,12 @@ static void fc_disc_single(struct fc_disc *disc, struct fc_disc_port *dp)
766 if (dp->ids.port_id == fc_host_port_id(lport->host)) 794 if (dp->ids.port_id == fc_host_port_id(lport->host))
767 goto out; 795 goto out;
768 796
769 rport = lport->tt.rport_lookup(lport, dp->ids.port_id);
770 if (rport)
771 fc_disc_del_target(disc, rport);
772
773 new_rport = lport->tt.rport_create(dp); 797 new_rport = lport->tt.rport_create(dp);
774 if (new_rport) { 798 if (new_rport) {
775 rdata = new_rport->dd_data; 799 rdata = new_rport->dd_data;
776 rdata->ops = &fc_disc_rport_ops; 800 rdata->ops = &fc_disc_rport_ops;
777 kfree(dp); 801 kfree(dp);
802 list_add_tail(&rdata->peers, &disc->rogue_rports);
778 lport->tt.rport_login(new_rport); 803 lport->tt.rport_login(new_rport);
779 } 804 }
780 return; 805 return;
@@ -836,6 +861,7 @@ int fc_disc_init(struct fc_lport *lport)
836 INIT_DELAYED_WORK(&disc->disc_work, fc_disc_timeout); 861 INIT_DELAYED_WORK(&disc->disc_work, fc_disc_timeout);
837 mutex_init(&disc->disc_mutex); 862 mutex_init(&disc->disc_mutex);
838 INIT_LIST_HEAD(&disc->rports); 863 INIT_LIST_HEAD(&disc->rports);
864 INIT_LIST_HEAD(&disc->rogue_rports);
839 865
840 disc->lport = lport; 866 disc->lport = lport;
841 disc->delay = FC_DISC_DELAY; 867 disc->delay = FC_DISC_DELAY;
diff --git a/drivers/scsi/libfc/fc_elsct.c b/drivers/scsi/libfc/fc_elsct.c
index dd47fe619d1e..5878b34bff18 100644
--- a/drivers/scsi/libfc/fc_elsct.c
+++ b/drivers/scsi/libfc/fc_elsct.c
@@ -41,7 +41,7 @@ static struct fc_seq *fc_elsct_send(struct fc_lport *lport,
41 void *arg, u32 timer_msec) 41 void *arg, u32 timer_msec)
42{ 42{
43 enum fc_rctl r_ctl; 43 enum fc_rctl r_ctl;
44 u32 did; 44 u32 did = FC_FID_NONE;
45 enum fc_fh_type fh_type; 45 enum fc_fh_type fh_type;
46 int rc; 46 int rc;
47 47
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
index f555ae99ad40..521f996f9b13 100644
--- a/drivers/scsi/libfc/fc_fcp.c
+++ b/drivers/scsi/libfc/fc_fcp.c
@@ -713,7 +713,7 @@ done:
713static void fc_fcp_recv(struct fc_seq *seq, struct fc_frame *fp, void *arg) 713static void fc_fcp_recv(struct fc_seq *seq, struct fc_frame *fp, void *arg)
714{ 714{
715 struct fc_fcp_pkt *fsp = (struct fc_fcp_pkt *)arg; 715 struct fc_fcp_pkt *fsp = (struct fc_fcp_pkt *)arg;
716 struct fc_lport *lp; 716 struct fc_lport *lport = fsp->lp;
717 struct fc_frame_header *fh; 717 struct fc_frame_header *fh;
718 struct fcp_txrdy *dd; 718 struct fcp_txrdy *dd;
719 u8 r_ctl; 719 u8 r_ctl;
@@ -724,9 +724,8 @@ static void fc_fcp_recv(struct fc_seq *seq, struct fc_frame *fp, void *arg)
724 724
725 fh = fc_frame_header_get(fp); 725 fh = fc_frame_header_get(fp);
726 r_ctl = fh->fh_r_ctl; 726 r_ctl = fh->fh_r_ctl;
727 lp = fsp->lp;
728 727
729 if (!(lp->state & LPORT_ST_READY)) 728 if (!(lport->state & LPORT_ST_READY))
730 goto out; 729 goto out;
731 if (fc_fcp_lock_pkt(fsp)) 730 if (fc_fcp_lock_pkt(fsp))
732 goto out; 731 goto out;
@@ -779,7 +778,7 @@ errout:
779 if (IS_ERR(fp)) 778 if (IS_ERR(fp))
780 fc_fcp_error(fsp, fp); 779 fc_fcp_error(fsp, fp);
781 else if (rc == -ENOMEM) 780 else if (rc == -ENOMEM)
782 fc_fcp_reduce_can_queue(lp); 781 fc_fcp_reduce_can_queue(lport);
783} 782}
784 783
785static void fc_fcp_resp(struct fc_fcp_pkt *fsp, struct fc_frame *fp) 784static void fc_fcp_resp(struct fc_fcp_pkt *fsp, struct fc_frame *fp)
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index b8178ef398d7..e0c247724d2b 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -618,6 +618,11 @@ int fc_fabric_logoff(struct fc_lport *lport)
618{ 618{
619 lport->tt.disc_stop_final(lport); 619 lport->tt.disc_stop_final(lport);
620 mutex_lock(&lport->lp_mutex); 620 mutex_lock(&lport->lp_mutex);
621 if (lport->dns_rp)
622 lport->tt.rport_logoff(lport->dns_rp);
623 mutex_unlock(&lport->lp_mutex);
624 lport->tt.rport_flush_queue();
625 mutex_lock(&lport->lp_mutex);
621 fc_lport_enter_logo(lport); 626 fc_lport_enter_logo(lport);
622 mutex_unlock(&lport->lp_mutex); 627 mutex_unlock(&lport->lp_mutex);
623 cancel_delayed_work_sync(&lport->retry_work); 628 cancel_delayed_work_sync(&lport->retry_work);
@@ -639,7 +644,12 @@ EXPORT_SYMBOL(fc_fabric_logoff);
639 */ 644 */
640int fc_lport_destroy(struct fc_lport *lport) 645int fc_lport_destroy(struct fc_lport *lport)
641{ 646{
647 mutex_lock(&lport->lp_mutex);
648 lport->state = LPORT_ST_NONE;
649 lport->link_up = 0;
642 lport->tt.frame_send = fc_frame_drop; 650 lport->tt.frame_send = fc_frame_drop;
651 mutex_unlock(&lport->lp_mutex);
652
643 lport->tt.fcp_abort_io(lport); 653 lport->tt.fcp_abort_io(lport);
644 lport->tt.exch_mgr_reset(lport, 0, 0); 654 lport->tt.exch_mgr_reset(lport, 0, 0);
645 return 0; 655 return 0;
@@ -1032,17 +1042,19 @@ static void fc_lport_rft_id_resp(struct fc_seq *sp, struct fc_frame *fp,
1032 1042
1033 FC_DEBUG_LPORT("Received a RFT_ID response\n"); 1043 FC_DEBUG_LPORT("Received a RFT_ID response\n");
1034 1044
1035 if (IS_ERR(fp)) {
1036 fc_lport_error(lport, fp);
1037 goto err;
1038 }
1039
1040 if (lport->state != LPORT_ST_RFT_ID) { 1045 if (lport->state != LPORT_ST_RFT_ID) {
1041 FC_DBG("Received a RFT_ID response, but in state %s\n", 1046 FC_DBG("Received a RFT_ID response, but in state %s\n",
1042 fc_lport_state(lport)); 1047 fc_lport_state(lport));
1048 if (IS_ERR(fp))
1049 goto err;
1043 goto out; 1050 goto out;
1044 } 1051 }
1045 1052
1053 if (IS_ERR(fp)) {
1054 fc_lport_error(lport, fp);
1055 goto err;
1056 }
1057
1046 fh = fc_frame_header_get(fp); 1058 fh = fc_frame_header_get(fp);
1047 ct = fc_frame_payload_get(fp, sizeof(*ct)); 1059 ct = fc_frame_payload_get(fp, sizeof(*ct));
1048 1060
@@ -1084,17 +1096,19 @@ static void fc_lport_rpn_id_resp(struct fc_seq *sp, struct fc_frame *fp,
1084 1096
1085 FC_DEBUG_LPORT("Received a RPN_ID response\n"); 1097 FC_DEBUG_LPORT("Received a RPN_ID response\n");
1086 1098
1087 if (IS_ERR(fp)) {
1088 fc_lport_error(lport, fp);
1089 goto err;
1090 }
1091
1092 if (lport->state != LPORT_ST_RPN_ID) { 1099 if (lport->state != LPORT_ST_RPN_ID) {
1093 FC_DBG("Received a RPN_ID response, but in state %s\n", 1100 FC_DBG("Received a RPN_ID response, but in state %s\n",
1094 fc_lport_state(lport)); 1101 fc_lport_state(lport));
1102 if (IS_ERR(fp))
1103 goto err;
1095 goto out; 1104 goto out;
1096 } 1105 }
1097 1106
1107 if (IS_ERR(fp)) {
1108 fc_lport_error(lport, fp);
1109 goto err;
1110 }
1111
1098 fh = fc_frame_header_get(fp); 1112 fh = fc_frame_header_get(fp);
1099 ct = fc_frame_payload_get(fp, sizeof(*ct)); 1113 ct = fc_frame_payload_get(fp, sizeof(*ct));
1100 if (fh && ct && fh->fh_type == FC_TYPE_CT && 1114 if (fh && ct && fh->fh_type == FC_TYPE_CT &&
@@ -1134,17 +1148,19 @@ static void fc_lport_scr_resp(struct fc_seq *sp, struct fc_frame *fp,
1134 1148
1135 FC_DEBUG_LPORT("Received a SCR response\n"); 1149 FC_DEBUG_LPORT("Received a SCR response\n");
1136 1150
1137 if (IS_ERR(fp)) {
1138 fc_lport_error(lport, fp);
1139 goto err;
1140 }
1141
1142 if (lport->state != LPORT_ST_SCR) { 1151 if (lport->state != LPORT_ST_SCR) {
1143 FC_DBG("Received a SCR response, but in state %s\n", 1152 FC_DBG("Received a SCR response, but in state %s\n",
1144 fc_lport_state(lport)); 1153 fc_lport_state(lport));
1154 if (IS_ERR(fp))
1155 goto err;
1145 goto out; 1156 goto out;
1146 } 1157 }
1147 1158
1159 if (IS_ERR(fp)) {
1160 fc_lport_error(lport, fp);
1161 goto err;
1162 }
1163
1148 op = fc_frame_payload_op(fp); 1164 op = fc_frame_payload_op(fp);
1149 if (op == ELS_LS_ACC) 1165 if (op == ELS_LS_ACC)
1150 fc_lport_enter_ready(lport); 1166 fc_lport_enter_ready(lport);
@@ -1360,17 +1376,19 @@ static void fc_lport_logo_resp(struct fc_seq *sp, struct fc_frame *fp,
1360 1376
1361 FC_DEBUG_LPORT("Received a LOGO response\n"); 1377 FC_DEBUG_LPORT("Received a LOGO response\n");
1362 1378
1363 if (IS_ERR(fp)) {
1364 fc_lport_error(lport, fp);
1365 goto err;
1366 }
1367
1368 if (lport->state != LPORT_ST_LOGO) { 1379 if (lport->state != LPORT_ST_LOGO) {
1369 FC_DBG("Received a LOGO response, but in state %s\n", 1380 FC_DBG("Received a LOGO response, but in state %s\n",
1370 fc_lport_state(lport)); 1381 fc_lport_state(lport));
1382 if (IS_ERR(fp))
1383 goto err;
1371 goto out; 1384 goto out;
1372 } 1385 }
1373 1386
1387 if (IS_ERR(fp)) {
1388 fc_lport_error(lport, fp);
1389 goto err;
1390 }
1391
1374 op = fc_frame_payload_op(fp); 1392 op = fc_frame_payload_op(fp);
1375 if (op == ELS_LS_ACC) 1393 if (op == ELS_LS_ACC)
1376 fc_lport_enter_reset(lport); 1394 fc_lport_enter_reset(lport);
@@ -1400,10 +1418,6 @@ static void fc_lport_enter_logo(struct fc_lport *lport)
1400 1418
1401 fc_lport_state_enter(lport, LPORT_ST_LOGO); 1419 fc_lport_state_enter(lport, LPORT_ST_LOGO);
1402 1420
1403 /* DNS session should be closed so we can release it here */
1404 if (lport->dns_rp)
1405 lport->tt.rport_logoff(lport->dns_rp);
1406
1407 fp = fc_frame_alloc(lport, sizeof(*logo)); 1421 fp = fc_frame_alloc(lport, sizeof(*logo));
1408 if (!fp) { 1422 if (!fp) {
1409 fc_lport_error(lport, fp); 1423 fc_lport_error(lport, fp);
@@ -1444,17 +1458,19 @@ static void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp,
1444 1458
1445 FC_DEBUG_LPORT("Received a FLOGI response\n"); 1459 FC_DEBUG_LPORT("Received a FLOGI response\n");
1446 1460
1447 if (IS_ERR(fp)) {
1448 fc_lport_error(lport, fp);
1449 goto err;
1450 }
1451
1452 if (lport->state != LPORT_ST_FLOGI) { 1461 if (lport->state != LPORT_ST_FLOGI) {
1453 FC_DBG("Received a FLOGI response, but in state %s\n", 1462 FC_DBG("Received a FLOGI response, but in state %s\n",
1454 fc_lport_state(lport)); 1463 fc_lport_state(lport));
1464 if (IS_ERR(fp))
1465 goto err;
1455 goto out; 1466 goto out;
1456 } 1467 }
1457 1468
1469 if (IS_ERR(fp)) {
1470 fc_lport_error(lport, fp);
1471 goto err;
1472 }
1473
1458 fh = fc_frame_header_get(fp); 1474 fh = fc_frame_header_get(fp);
1459 did = ntoh24(fh->fh_d_id); 1475 did = ntoh24(fh->fh_d_id);
1460 if (fc_frame_payload_op(fp) == ELS_LS_ACC && did != 0) { 1476 if (fc_frame_payload_op(fp) == ELS_LS_ACC && did != 0) {
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
index 0472bb73221e..747d73c5c8af 100644
--- a/drivers/scsi/libfc/fc_rport.c
+++ b/drivers/scsi/libfc/fc_rport.c
@@ -267,6 +267,10 @@ static void fc_rport_work(struct work_struct *work)
267 "(%6x).\n", ids.port_id); 267 "(%6x).\n", ids.port_id);
268 event = RPORT_EV_FAILED; 268 event = RPORT_EV_FAILED;
269 } 269 }
270 if (rport->port_id != FC_FID_DIR_SERV)
271 if (rport_ops->event_callback)
272 rport_ops->event_callback(lport, rport,
273 RPORT_EV_FAILED);
270 put_device(&rport->dev); 274 put_device(&rport->dev);
271 rport = new_rport; 275 rport = new_rport;
272 rdata = new_rport->dd_data; 276 rdata = new_rport->dd_data;
@@ -325,11 +329,20 @@ int fc_rport_login(struct fc_rport *rport)
325int fc_rport_logoff(struct fc_rport *rport) 329int fc_rport_logoff(struct fc_rport *rport)
326{ 330{
327 struct fc_rport_libfc_priv *rdata = rport->dd_data; 331 struct fc_rport_libfc_priv *rdata = rport->dd_data;
332 struct fc_lport *lport = rdata->local_port;
328 333
329 mutex_lock(&rdata->rp_mutex); 334 mutex_lock(&rdata->rp_mutex);
330 335
331 FC_DEBUG_RPORT("Remove port (%6x)\n", rport->port_id); 336 FC_DEBUG_RPORT("Remove port (%6x)\n", rport->port_id);
332 337
338 if (rdata->rp_state == RPORT_ST_NONE) {
339 FC_DEBUG_RPORT("(%6x): Port (%6x) in NONE state,"
340 " not removing", fc_host_port_id(lport->host),
341 rport->port_id);
342 mutex_unlock(&rdata->rp_mutex);
343 goto out;
344 }
345
333 fc_rport_enter_logo(rport); 346 fc_rport_enter_logo(rport);
334 347
335 /* 348 /*
@@ -349,6 +362,7 @@ int fc_rport_logoff(struct fc_rport *rport)
349 362
350 mutex_unlock(&rdata->rp_mutex); 363 mutex_unlock(&rdata->rp_mutex);
351 364
365out:
352 return 0; 366 return 0;
353} 367}
354 368
@@ -430,6 +444,7 @@ static void fc_rport_error(struct fc_rport *rport, struct fc_frame *fp)
430 case RPORT_ST_PRLI: 444 case RPORT_ST_PRLI:
431 case RPORT_ST_LOGO: 445 case RPORT_ST_LOGO:
432 rdata->event = RPORT_EV_FAILED; 446 rdata->event = RPORT_EV_FAILED;
447 fc_rport_state_enter(rport, RPORT_ST_NONE);
433 queue_work(rport_event_queue, 448 queue_work(rport_event_queue,
434 &rdata->event_work); 449 &rdata->event_work);
435 break; 450 break;
@@ -494,7 +509,7 @@ static void fc_rport_plogi_resp(struct fc_seq *sp, struct fc_frame *fp,
494 struct fc_rport *rport = rp_arg; 509 struct fc_rport *rport = rp_arg;
495 struct fc_rport_libfc_priv *rdata = rport->dd_data; 510 struct fc_rport_libfc_priv *rdata = rport->dd_data;
496 struct fc_lport *lport = rdata->local_port; 511 struct fc_lport *lport = rdata->local_port;
497 struct fc_els_flogi *plp; 512 struct fc_els_flogi *plp = NULL;
498 unsigned int tov; 513 unsigned int tov;
499 u16 csp_seq; 514 u16 csp_seq;
500 u16 cssp_seq; 515 u16 cssp_seq;
@@ -505,17 +520,19 @@ static void fc_rport_plogi_resp(struct fc_seq *sp, struct fc_frame *fp,
505 FC_DEBUG_RPORT("Received a PLOGI response from port (%6x)\n", 520 FC_DEBUG_RPORT("Received a PLOGI response from port (%6x)\n",
506 rport->port_id); 521 rport->port_id);
507 522
508 if (IS_ERR(fp)) {
509 fc_rport_error_retry(rport, fp);
510 goto err;
511 }
512
513 if (rdata->rp_state != RPORT_ST_PLOGI) { 523 if (rdata->rp_state != RPORT_ST_PLOGI) {
514 FC_DBG("Received a PLOGI response, but in state %s\n", 524 FC_DBG("Received a PLOGI response, but in state %s\n",
515 fc_rport_state(rport)); 525 fc_rport_state(rport));
526 if (IS_ERR(fp))
527 goto err;
516 goto out; 528 goto out;
517 } 529 }
518 530
531 if (IS_ERR(fp)) {
532 fc_rport_error_retry(rport, fp);
533 goto err;
534 }
535
519 op = fc_frame_payload_op(fp); 536 op = fc_frame_payload_op(fp);
520 if (op == ELS_LS_ACC && 537 if (op == ELS_LS_ACC &&
521 (plp = fc_frame_payload_get(fp, sizeof(*plp))) != NULL) { 538 (plp = fc_frame_payload_get(fp, sizeof(*plp))) != NULL) {
@@ -614,17 +631,19 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
614 FC_DEBUG_RPORT("Received a PRLI response from port (%6x)\n", 631 FC_DEBUG_RPORT("Received a PRLI response from port (%6x)\n",
615 rport->port_id); 632 rport->port_id);
616 633
617 if (IS_ERR(fp)) {
618 fc_rport_error_retry(rport, fp);
619 goto err;
620 }
621
622 if (rdata->rp_state != RPORT_ST_PRLI) { 634 if (rdata->rp_state != RPORT_ST_PRLI) {
623 FC_DBG("Received a PRLI response, but in state %s\n", 635 FC_DBG("Received a PRLI response, but in state %s\n",
624 fc_rport_state(rport)); 636 fc_rport_state(rport));
637 if (IS_ERR(fp))
638 goto err;
625 goto out; 639 goto out;
626 } 640 }
627 641
642 if (IS_ERR(fp)) {
643 fc_rport_error_retry(rport, fp);
644 goto err;
645 }
646
628 op = fc_frame_payload_op(fp); 647 op = fc_frame_payload_op(fp);
629 if (op == ELS_LS_ACC) { 648 if (op == ELS_LS_ACC) {
630 pp = fc_frame_payload_get(fp, sizeof(*pp)); 649 pp = fc_frame_payload_get(fp, sizeof(*pp));
@@ -646,6 +665,7 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
646 } else { 665 } else {
647 FC_DBG("Bad ELS response\n"); 666 FC_DBG("Bad ELS response\n");
648 rdata->event = RPORT_EV_FAILED; 667 rdata->event = RPORT_EV_FAILED;
668 fc_rport_state_enter(rport, RPORT_ST_NONE);
649 queue_work(rport_event_queue, &rdata->event_work); 669 queue_work(rport_event_queue, &rdata->event_work);
650 } 670 }
651 671
@@ -678,23 +698,26 @@ static void fc_rport_logo_resp(struct fc_seq *sp, struct fc_frame *fp,
678 FC_DEBUG_RPORT("Received a LOGO response from port (%6x)\n", 698 FC_DEBUG_RPORT("Received a LOGO response from port (%6x)\n",
679 rport->port_id); 699 rport->port_id);
680 700
681 if (IS_ERR(fp)) {
682 fc_rport_error_retry(rport, fp);
683 goto err;
684 }
685
686 if (rdata->rp_state != RPORT_ST_LOGO) { 701 if (rdata->rp_state != RPORT_ST_LOGO) {
687 FC_DEBUG_RPORT("Received a LOGO response, but in state %s\n", 702 FC_DEBUG_RPORT("Received a LOGO response, but in state %s\n",
688 fc_rport_state(rport)); 703 fc_rport_state(rport));
704 if (IS_ERR(fp))
705 goto err;
689 goto out; 706 goto out;
690 } 707 }
691 708
709 if (IS_ERR(fp)) {
710 fc_rport_error_retry(rport, fp);
711 goto err;
712 }
713
692 op = fc_frame_payload_op(fp); 714 op = fc_frame_payload_op(fp);
693 if (op == ELS_LS_ACC) { 715 if (op == ELS_LS_ACC) {
694 fc_rport_enter_rtv(rport); 716 fc_rport_enter_rtv(rport);
695 } else { 717 } else {
696 FC_DBG("Bad ELS response\n"); 718 FC_DBG("Bad ELS response\n");
697 rdata->event = RPORT_EV_LOGO; 719 rdata->event = RPORT_EV_LOGO;
720 fc_rport_state_enter(rport, RPORT_ST_NONE);
698 queue_work(rport_event_queue, &rdata->event_work); 721 queue_work(rport_event_queue, &rdata->event_work);
699 } 722 }
700 723
@@ -764,17 +787,19 @@ static void fc_rport_rtv_resp(struct fc_seq *sp, struct fc_frame *fp,
764 FC_DEBUG_RPORT("Received a RTV response from port (%6x)\n", 787 FC_DEBUG_RPORT("Received a RTV response from port (%6x)\n",
765 rport->port_id); 788 rport->port_id);
766 789
767 if (IS_ERR(fp)) {
768 fc_rport_error(rport, fp);
769 goto err;
770 }
771
772 if (rdata->rp_state != RPORT_ST_RTV) { 790 if (rdata->rp_state != RPORT_ST_RTV) {
773 FC_DBG("Received a RTV response, but in state %s\n", 791 FC_DBG("Received a RTV response, but in state %s\n",
774 fc_rport_state(rport)); 792 fc_rport_state(rport));
793 if (IS_ERR(fp))
794 goto err;
775 goto out; 795 goto out;
776 } 796 }
777 797
798 if (IS_ERR(fp)) {
799 fc_rport_error(rport, fp);
800 goto err;
801 }
802
778 op = fc_frame_payload_op(fp); 803 op = fc_frame_payload_op(fp);
779 if (op == ELS_LS_ACC) { 804 if (op == ELS_LS_ACC) {
780 struct fc_els_rtv_acc *rtv; 805 struct fc_els_rtv_acc *rtv;
@@ -1007,6 +1032,8 @@ static void fc_rport_recv_plogi_req(struct fc_rport *rport,
1007 default: 1032 default:
1008 FC_DEBUG_RPORT("incoming PLOGI from %x in unexpected " 1033 FC_DEBUG_RPORT("incoming PLOGI from %x in unexpected "
1009 "state %d\n", sid, rdata->rp_state); 1034 "state %d\n", sid, rdata->rp_state);
1035 fc_frame_free(fp);
1036 return;
1010 break; 1037 break;
1011 } 1038 }
1012 1039
@@ -1098,6 +1125,8 @@ static void fc_rport_recv_prli_req(struct fc_rport *rport,
1098 reason = ELS_RJT_NONE; 1125 reason = ELS_RJT_NONE;
1099 break; 1126 break;
1100 default: 1127 default:
1128 fc_frame_free(rx_fp);
1129 return;
1101 break; 1130 break;
1102 } 1131 }
1103 len = fr_len(rx_fp) - sizeof(*fh); 1132 len = fr_len(rx_fp) - sizeof(*fh);
@@ -1227,6 +1256,11 @@ static void fc_rport_recv_prlo_req(struct fc_rport *rport, struct fc_seq *sp,
1227 "while in state %s\n", ntoh24(fh->fh_s_id), 1256 "while in state %s\n", ntoh24(fh->fh_s_id),
1228 fc_rport_state(rport)); 1257 fc_rport_state(rport));
1229 1258
1259 if (rdata->rp_state == RPORT_ST_NONE) {
1260 fc_frame_free(fp);
1261 return;
1262 }
1263
1230 rjt_data.fp = NULL; 1264 rjt_data.fp = NULL;
1231 rjt_data.reason = ELS_RJT_UNAB; 1265 rjt_data.reason = ELS_RJT_UNAB;
1232 rjt_data.explan = ELS_EXPL_NONE; 1266 rjt_data.explan = ELS_EXPL_NONE;
@@ -1256,7 +1290,13 @@ static void fc_rport_recv_logo_req(struct fc_rport *rport, struct fc_seq *sp,
1256 "while in state %s\n", ntoh24(fh->fh_s_id), 1290 "while in state %s\n", ntoh24(fh->fh_s_id),
1257 fc_rport_state(rport)); 1291 fc_rport_state(rport));
1258 1292
1293 if (rdata->rp_state == RPORT_ST_NONE) {
1294 fc_frame_free(fp);
1295 return;
1296 }
1297
1259 rdata->event = RPORT_EV_LOGO; 1298 rdata->event = RPORT_EV_LOGO;
1299 fc_rport_state_enter(rport, RPORT_ST_NONE);
1260 queue_work(rport_event_queue, &rdata->event_work); 1300 queue_work(rport_event_queue, &rdata->event_work);
1261 1301
1262 lport->tt.seq_els_rsp_send(sp, ELS_LS_ACC, NULL); 1302 lport->tt.seq_els_rsp_send(sp, ELS_LS_ACC, NULL);
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 689628359169..e72b4ad47d35 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1463,6 +1463,16 @@ int iscsi_change_queue_depth(struct scsi_device *sdev, int depth)
1463} 1463}
1464EXPORT_SYMBOL_GPL(iscsi_change_queue_depth); 1464EXPORT_SYMBOL_GPL(iscsi_change_queue_depth);
1465 1465
1466int iscsi_target_alloc(struct scsi_target *starget)
1467{
1468 struct iscsi_cls_session *cls_session = starget_to_session(starget);
1469 struct iscsi_session *session = cls_session->dd_data;
1470
1471 starget->can_queue = session->scsi_cmds_max;
1472 return 0;
1473}
1474EXPORT_SYMBOL_GPL(iscsi_target_alloc);
1475
1466void iscsi_session_recovery_timedout(struct iscsi_cls_session *cls_session) 1476void iscsi_session_recovery_timedout(struct iscsi_cls_session *cls_session)
1467{ 1477{
1468 struct iscsi_session *session = cls_session->dd_data; 1478 struct iscsi_session *session = cls_session->dd_data;
diff --git a/drivers/scsi/libiscsi_tcp.c b/drivers/scsi/libiscsi_tcp.c
index 91f8ce4d8d08..b579ca9f4836 100644
--- a/drivers/scsi/libiscsi_tcp.c
+++ b/drivers/scsi/libiscsi_tcp.c
@@ -1036,8 +1036,11 @@ flush:
1036 1036
1037 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent, 1037 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent,
1038 r2t->data_count); 1038 r2t->data_count);
1039 if (rc) 1039 if (rc) {
1040 iscsi_conn_failure(conn, ISCSI_ERR_XMIT_FAILED);
1040 return rc; 1041 return rc;
1042 }
1043
1041 r2t->sent += r2t->data_count; 1044 r2t->sent += r2t->data_count;
1042 goto flush; 1045 goto flush;
1043} 1046}
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index dcba267db711..1105f9a111ba 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -443,6 +443,7 @@ struct lpfc_hba {
443 uint32_t hba_flag; /* hba generic flags */ 443 uint32_t hba_flag; /* hba generic flags */
444#define HBA_ERATT_HANDLED 0x1 /* This flag is set when eratt handled */ 444#define HBA_ERATT_HANDLED 0x1 /* This flag is set when eratt handled */
445 445
446#define DEFER_ERATT 0x4 /* Deferred error attention in progress */
446 struct lpfc_dmabuf slim2p; 447 struct lpfc_dmabuf slim2p;
447 448
448 MAILBOX_t *mbox; 449 MAILBOX_t *mbox;
@@ -723,4 +724,3 @@ lpfc_sli_read_hs(struct lpfc_hba *phba)
723 724
724 return; 725 return;
725} 726}
726
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 40cf0f4f327f..c14f0cbdb125 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -51,7 +51,7 @@
51#define LPFC_LINK_SPEED_STRING "0, 1, 2, 4, 8" 51#define LPFC_LINK_SPEED_STRING "0, 1, 2, 4, 8"
52 52
53/** 53/**
54 * lpfc_jedec_to_ascii: Hex to ascii convertor according to JEDEC rules. 54 * lpfc_jedec_to_ascii - Hex to ascii convertor according to JEDEC rules
55 * @incr: integer to convert. 55 * @incr: integer to convert.
56 * @hdw: ascii string holding converted integer plus a string terminator. 56 * @hdw: ascii string holding converted integer plus a string terminator.
57 * 57 *
@@ -82,7 +82,7 @@ lpfc_jedec_to_ascii(int incr, char hdw[])
82} 82}
83 83
84/** 84/**
85 * lpfc_drvr_version_show: Return the Emulex driver string with version number. 85 * lpfc_drvr_version_show - Return the Emulex driver string with version number
86 * @dev: class unused variable. 86 * @dev: class unused variable.
87 * @attr: device attribute, not used. 87 * @attr: device attribute, not used.
88 * @buf: on return contains the module description text. 88 * @buf: on return contains the module description text.
@@ -152,7 +152,7 @@ lpfc_bg_reftag_err_show(struct device *dev, struct device_attribute *attr,
152} 152}
153 153
154/** 154/**
155 * lpfc_info_show: Return some pci info about the host in ascii. 155 * lpfc_info_show - Return some pci info about the host in ascii
156 * @dev: class converted to a Scsi_host structure. 156 * @dev: class converted to a Scsi_host structure.
157 * @attr: device attribute, not used. 157 * @attr: device attribute, not used.
158 * @buf: on return contains the formatted text from lpfc_info(). 158 * @buf: on return contains the formatted text from lpfc_info().
@@ -169,7 +169,7 @@ lpfc_info_show(struct device *dev, struct device_attribute *attr,
169} 169}
170 170
171/** 171/**
172 * lpfc_serialnum_show: Return the hba serial number in ascii. 172 * lpfc_serialnum_show - Return the hba serial number in ascii
173 * @dev: class converted to a Scsi_host structure. 173 * @dev: class converted to a Scsi_host structure.
174 * @attr: device attribute, not used. 174 * @attr: device attribute, not used.
175 * @buf: on return contains the formatted text serial number. 175 * @buf: on return contains the formatted text serial number.
@@ -188,7 +188,7 @@ lpfc_serialnum_show(struct device *dev, struct device_attribute *attr,
188} 188}
189 189
190/** 190/**
191 * lpfc_temp_sensor_show: Return the temperature sensor level. 191 * lpfc_temp_sensor_show - Return the temperature sensor level
192 * @dev: class converted to a Scsi_host structure. 192 * @dev: class converted to a Scsi_host structure.
193 * @attr: device attribute, not used. 193 * @attr: device attribute, not used.
194 * @buf: on return contains the formatted support level. 194 * @buf: on return contains the formatted support level.
@@ -210,7 +210,7 @@ lpfc_temp_sensor_show(struct device *dev, struct device_attribute *attr,
210} 210}
211 211
212/** 212/**
213 * lpfc_modeldesc_show: Return the model description of the hba. 213 * lpfc_modeldesc_show - Return the model description of the hba
214 * @dev: class converted to a Scsi_host structure. 214 * @dev: class converted to a Scsi_host structure.
215 * @attr: device attribute, not used. 215 * @attr: device attribute, not used.
216 * @buf: on return contains the scsi vpd model description. 216 * @buf: on return contains the scsi vpd model description.
@@ -229,7 +229,7 @@ lpfc_modeldesc_show(struct device *dev, struct device_attribute *attr,
229} 229}
230 230
231/** 231/**
232 * lpfc_modelname_show: Return the model name of the hba. 232 * lpfc_modelname_show - Return the model name of the hba
233 * @dev: class converted to a Scsi_host structure. 233 * @dev: class converted to a Scsi_host structure.
234 * @attr: device attribute, not used. 234 * @attr: device attribute, not used.
235 * @buf: on return contains the scsi vpd model name. 235 * @buf: on return contains the scsi vpd model name.
@@ -248,7 +248,7 @@ lpfc_modelname_show(struct device *dev, struct device_attribute *attr,
248} 248}
249 249
250/** 250/**
251 * lpfc_programtype_show: Return the program type of the hba. 251 * lpfc_programtype_show - Return the program type of the hba
252 * @dev: class converted to a Scsi_host structure. 252 * @dev: class converted to a Scsi_host structure.
253 * @attr: device attribute, not used. 253 * @attr: device attribute, not used.
254 * @buf: on return contains the scsi vpd program type. 254 * @buf: on return contains the scsi vpd program type.
@@ -267,7 +267,7 @@ lpfc_programtype_show(struct device *dev, struct device_attribute *attr,
267} 267}
268 268
269/** 269/**
270 * lpfc_mlomgmt_show: Return the Menlo Maintenance sli flag. 270 * lpfc_mlomgmt_show - Return the Menlo Maintenance sli flag
271 * @dev: class converted to a Scsi_host structure. 271 * @dev: class converted to a Scsi_host structure.
272 * @attr: device attribute, not used. 272 * @attr: device attribute, not used.
273 * @buf: on return contains the Menlo Maintenance sli flag. 273 * @buf: on return contains the Menlo Maintenance sli flag.
@@ -286,7 +286,7 @@ lpfc_mlomgmt_show(struct device *dev, struct device_attribute *attr, char *buf)
286} 286}
287 287
288/** 288/**
289 * lpfc_vportnum_show: Return the port number in ascii of the hba. 289 * lpfc_vportnum_show - Return the port number in ascii of the hba
290 * @dev: class converted to a Scsi_host structure. 290 * @dev: class converted to a Scsi_host structure.
291 * @attr: device attribute, not used. 291 * @attr: device attribute, not used.
292 * @buf: on return contains scsi vpd program type. 292 * @buf: on return contains scsi vpd program type.
@@ -305,7 +305,7 @@ lpfc_vportnum_show(struct device *dev, struct device_attribute *attr,
305} 305}
306 306
307/** 307/**
308 * lpfc_fwrev_show: Return the firmware rev running in the hba. 308 * lpfc_fwrev_show - Return the firmware rev running in the hba
309 * @dev: class converted to a Scsi_host structure. 309 * @dev: class converted to a Scsi_host structure.
310 * @attr: device attribute, not used. 310 * @attr: device attribute, not used.
311 * @buf: on return contains the scsi vpd program type. 311 * @buf: on return contains the scsi vpd program type.
@@ -326,7 +326,7 @@ lpfc_fwrev_show(struct device *dev, struct device_attribute *attr,
326} 326}
327 327
328/** 328/**
329 * lpfc_hdw_show: Return the jedec information about the hba. 329 * lpfc_hdw_show - Return the jedec information about the hba
330 * @dev: class converted to a Scsi_host structure. 330 * @dev: class converted to a Scsi_host structure.
331 * @attr: device attribute, not used. 331 * @attr: device attribute, not used.
332 * @buf: on return contains the scsi vpd program type. 332 * @buf: on return contains the scsi vpd program type.
@@ -347,7 +347,7 @@ lpfc_hdw_show(struct device *dev, struct device_attribute *attr, char *buf)
347} 347}
348 348
349/** 349/**
350 * lpfc_option_rom_version_show: Return the adapter ROM FCode version. 350 * lpfc_option_rom_version_show - Return the adapter ROM FCode version
351 * @dev: class converted to a Scsi_host structure. 351 * @dev: class converted to a Scsi_host structure.
352 * @attr: device attribute, not used. 352 * @attr: device attribute, not used.
353 * @buf: on return contains the ROM and FCode ascii strings. 353 * @buf: on return contains the ROM and FCode ascii strings.
@@ -366,7 +366,7 @@ lpfc_option_rom_version_show(struct device *dev, struct device_attribute *attr,
366} 366}
367 367
368/** 368/**
369 * lpfc_state_show: Return the link state of the port. 369 * lpfc_state_show - Return the link state of the port
370 * @dev: class converted to a Scsi_host structure. 370 * @dev: class converted to a Scsi_host structure.
371 * @attr: device attribute, not used. 371 * @attr: device attribute, not used.
372 * @buf: on return contains text describing the state of the link. 372 * @buf: on return contains text describing the state of the link.
@@ -451,7 +451,7 @@ lpfc_link_state_show(struct device *dev, struct device_attribute *attr,
451} 451}
452 452
453/** 453/**
454 * lpfc_num_discovered_ports_show: Return sum of mapped and unmapped vports. 454 * lpfc_num_discovered_ports_show - Return sum of mapped and unmapped vports
455 * @dev: class device that is converted into a Scsi_host. 455 * @dev: class device that is converted into a Scsi_host.
456 * @attr: device attribute, not used. 456 * @attr: device attribute, not used.
457 * @buf: on return contains the sum of fc mapped and unmapped. 457 * @buf: on return contains the sum of fc mapped and unmapped.
@@ -474,7 +474,7 @@ lpfc_num_discovered_ports_show(struct device *dev,
474} 474}
475 475
476/** 476/**
477 * lpfc_issue_lip: Misnomer, name carried over from long ago. 477 * lpfc_issue_lip - Misnomer, name carried over from long ago
478 * @shost: Scsi_Host pointer. 478 * @shost: Scsi_Host pointer.
479 * 479 *
480 * Description: 480 * Description:
@@ -529,7 +529,7 @@ lpfc_issue_lip(struct Scsi_Host *shost)
529} 529}
530 530
531/** 531/**
532 * lpfc_do_offline: Issues a mailbox command to bring the link down. 532 * lpfc_do_offline - Issues a mailbox command to bring the link down
533 * @phba: lpfc_hba pointer. 533 * @phba: lpfc_hba pointer.
534 * @type: LPFC_EVT_OFFLINE, LPFC_EVT_WARM_START, LPFC_EVT_KILL. 534 * @type: LPFC_EVT_OFFLINE, LPFC_EVT_WARM_START, LPFC_EVT_KILL.
535 * 535 *
@@ -537,7 +537,7 @@ lpfc_issue_lip(struct Scsi_Host *shost)
537 * Assumes any error from lpfc_do_offline() will be negative. 537 * Assumes any error from lpfc_do_offline() will be negative.
538 * Can wait up to 5 seconds for the port ring buffers count 538 * Can wait up to 5 seconds for the port ring buffers count
539 * to reach zero, prints a warning if it is not zero and continues. 539 * to reach zero, prints a warning if it is not zero and continues.
540 * lpfc_workq_post_event() returns a non-zero return coce if call fails. 540 * lpfc_workq_post_event() returns a non-zero return code if call fails.
541 * 541 *
542 * Returns: 542 * Returns:
543 * -EIO error posting the event 543 * -EIO error posting the event
@@ -591,7 +591,7 @@ lpfc_do_offline(struct lpfc_hba *phba, uint32_t type)
591} 591}
592 592
593/** 593/**
594 * lpfc_selective_reset: Offline then onlines the port. 594 * lpfc_selective_reset - Offline then onlines the port
595 * @phba: lpfc_hba pointer. 595 * @phba: lpfc_hba pointer.
596 * 596 *
597 * Description: 597 * Description:
@@ -632,7 +632,7 @@ lpfc_selective_reset(struct lpfc_hba *phba)
632} 632}
633 633
634/** 634/**
635 * lpfc_issue_reset: Selectively resets an adapter. 635 * lpfc_issue_reset - Selectively resets an adapter
636 * @dev: class device that is converted into a Scsi_host. 636 * @dev: class device that is converted into a Scsi_host.
637 * @attr: device attribute, not used. 637 * @attr: device attribute, not used.
638 * @buf: containing the string "selective". 638 * @buf: containing the string "selective".
@@ -672,7 +672,7 @@ lpfc_issue_reset(struct device *dev, struct device_attribute *attr,
672} 672}
673 673
674/** 674/**
675 * lpfc_nport_evt_cnt_show: Return the number of nport events. 675 * lpfc_nport_evt_cnt_show - Return the number of nport events
676 * @dev: class device that is converted into a Scsi_host. 676 * @dev: class device that is converted into a Scsi_host.
677 * @attr: device attribute, not used. 677 * @attr: device attribute, not used.
678 * @buf: on return contains the ascii number of nport events. 678 * @buf: on return contains the ascii number of nport events.
@@ -691,7 +691,7 @@ lpfc_nport_evt_cnt_show(struct device *dev, struct device_attribute *attr,
691} 691}
692 692
693/** 693/**
694 * lpfc_board_mode_show: Return the state of the board. 694 * lpfc_board_mode_show - Return the state of the board
695 * @dev: class device that is converted into a Scsi_host. 695 * @dev: class device that is converted into a Scsi_host.
696 * @attr: device attribute, not used. 696 * @attr: device attribute, not used.
697 * @buf: on return contains the state of the adapter. 697 * @buf: on return contains the state of the adapter.
@@ -720,7 +720,7 @@ lpfc_board_mode_show(struct device *dev, struct device_attribute *attr,
720} 720}
721 721
722/** 722/**
723 * lpfc_board_mode_store: Puts the hba in online, offline, warm or error state. 723 * lpfc_board_mode_store - Puts the hba in online, offline, warm or error state
724 * @dev: class device that is converted into a Scsi_host. 724 * @dev: class device that is converted into a Scsi_host.
725 * @attr: device attribute, not used. 725 * @attr: device attribute, not used.
726 * @buf: containing one of the strings "online", "offline", "warm" or "error". 726 * @buf: containing one of the strings "online", "offline", "warm" or "error".
@@ -766,14 +766,14 @@ lpfc_board_mode_store(struct device *dev, struct device_attribute *attr,
766} 766}
767 767
768/** 768/**
769 * lpfc_get_hba_info: Return various bits of informaton about the adapter. 769 * lpfc_get_hba_info - Return various bits of informaton about the adapter
770 * @phba: pointer to the adapter structure. 770 * @phba: pointer to the adapter structure.
771 * @mxri max xri count. 771 * @mxri: max xri count.
772 * @axri available xri count. 772 * @axri: available xri count.
773 * @mrpi max rpi count. 773 * @mrpi: max rpi count.
774 * @arpi available rpi count. 774 * @arpi: available rpi count.
775 * @mvpi max vpi count. 775 * @mvpi: max vpi count.
776 * @avpi available vpi count. 776 * @avpi: available vpi count.
777 * 777 *
778 * Description: 778 * Description:
779 * If an integer pointer for an count is not null then the value for the 779 * If an integer pointer for an count is not null then the value for the
@@ -846,7 +846,7 @@ lpfc_get_hba_info(struct lpfc_hba *phba,
846} 846}
847 847
848/** 848/**
849 * lpfc_max_rpi_show: Return maximum rpi. 849 * lpfc_max_rpi_show - Return maximum rpi
850 * @dev: class device that is converted into a Scsi_host. 850 * @dev: class device that is converted into a Scsi_host.
851 * @attr: device attribute, not used. 851 * @attr: device attribute, not used.
852 * @buf: on return contains the maximum rpi count in decimal or "Unknown". 852 * @buf: on return contains the maximum rpi count in decimal or "Unknown".
@@ -874,7 +874,7 @@ lpfc_max_rpi_show(struct device *dev, struct device_attribute *attr,
874} 874}
875 875
876/** 876/**
877 * lpfc_used_rpi_show: Return maximum rpi minus available rpi. 877 * lpfc_used_rpi_show - Return maximum rpi minus available rpi
878 * @dev: class device that is converted into a Scsi_host. 878 * @dev: class device that is converted into a Scsi_host.
879 * @attr: device attribute, not used. 879 * @attr: device attribute, not used.
880 * @buf: containing the used rpi count in decimal or "Unknown". 880 * @buf: containing the used rpi count in decimal or "Unknown".
@@ -902,7 +902,7 @@ lpfc_used_rpi_show(struct device *dev, struct device_attribute *attr,
902} 902}
903 903
904/** 904/**
905 * lpfc_max_xri_show: Return maximum xri. 905 * lpfc_max_xri_show - Return maximum xri
906 * @dev: class device that is converted into a Scsi_host. 906 * @dev: class device that is converted into a Scsi_host.
907 * @attr: device attribute, not used. 907 * @attr: device attribute, not used.
908 * @buf: on return contains the maximum xri count in decimal or "Unknown". 908 * @buf: on return contains the maximum xri count in decimal or "Unknown".
@@ -930,7 +930,7 @@ lpfc_max_xri_show(struct device *dev, struct device_attribute *attr,
930} 930}
931 931
932/** 932/**
933 * lpfc_used_xri_show: Return maximum xpi minus the available xpi. 933 * lpfc_used_xri_show - Return maximum xpi minus the available xpi
934 * @dev: class device that is converted into a Scsi_host. 934 * @dev: class device that is converted into a Scsi_host.
935 * @attr: device attribute, not used. 935 * @attr: device attribute, not used.
936 * @buf: on return contains the used xri count in decimal or "Unknown". 936 * @buf: on return contains the used xri count in decimal or "Unknown".
@@ -958,7 +958,7 @@ lpfc_used_xri_show(struct device *dev, struct device_attribute *attr,
958} 958}
959 959
960/** 960/**
961 * lpfc_max_vpi_show: Return maximum vpi. 961 * lpfc_max_vpi_show - Return maximum vpi
962 * @dev: class device that is converted into a Scsi_host. 962 * @dev: class device that is converted into a Scsi_host.
963 * @attr: device attribute, not used. 963 * @attr: device attribute, not used.
964 * @buf: on return contains the maximum vpi count in decimal or "Unknown". 964 * @buf: on return contains the maximum vpi count in decimal or "Unknown".
@@ -986,7 +986,7 @@ lpfc_max_vpi_show(struct device *dev, struct device_attribute *attr,
986} 986}
987 987
988/** 988/**
989 * lpfc_used_vpi_show: Return maximum vpi minus the available vpi. 989 * lpfc_used_vpi_show - Return maximum vpi minus the available vpi
990 * @dev: class device that is converted into a Scsi_host. 990 * @dev: class device that is converted into a Scsi_host.
991 * @attr: device attribute, not used. 991 * @attr: device attribute, not used.
992 * @buf: on return contains the used vpi count in decimal or "Unknown". 992 * @buf: on return contains the used vpi count in decimal or "Unknown".
@@ -1014,7 +1014,7 @@ lpfc_used_vpi_show(struct device *dev, struct device_attribute *attr,
1014} 1014}
1015 1015
1016/** 1016/**
1017 * lpfc_npiv_info_show: Return text about NPIV support for the adapter. 1017 * lpfc_npiv_info_show - Return text about NPIV support for the adapter
1018 * @dev: class device that is converted into a Scsi_host. 1018 * @dev: class device that is converted into a Scsi_host.
1019 * @attr: device attribute, not used. 1019 * @attr: device attribute, not used.
1020 * @buf: text that must be interpreted to determine if npiv is supported. 1020 * @buf: text that must be interpreted to determine if npiv is supported.
@@ -1042,7 +1042,7 @@ lpfc_npiv_info_show(struct device *dev, struct device_attribute *attr,
1042} 1042}
1043 1043
1044/** 1044/**
1045 * lpfc_poll_show: Return text about poll support for the adapter. 1045 * lpfc_poll_show - Return text about poll support for the adapter
1046 * @dev: class device that is converted into a Scsi_host. 1046 * @dev: class device that is converted into a Scsi_host.
1047 * @attr: device attribute, not used. 1047 * @attr: device attribute, not used.
1048 * @buf: on return contains the cfg_poll in hex. 1048 * @buf: on return contains the cfg_poll in hex.
@@ -1064,7 +1064,7 @@ lpfc_poll_show(struct device *dev, struct device_attribute *attr,
1064} 1064}
1065 1065
1066/** 1066/**
1067 * lpfc_poll_store: Set the value of cfg_poll for the adapter. 1067 * lpfc_poll_store - Set the value of cfg_poll for the adapter
1068 * @dev: class device that is converted into a Scsi_host. 1068 * @dev: class device that is converted into a Scsi_host.
1069 * @attr: device attribute, not used. 1069 * @attr: device attribute, not used.
1070 * @buf: one or more lpfc_polling_flags values. 1070 * @buf: one or more lpfc_polling_flags values.
@@ -1136,7 +1136,7 @@ lpfc_poll_store(struct device *dev, struct device_attribute *attr,
1136} 1136}
1137 1137
1138/** 1138/**
1139 * lpfc_param_show: Return a cfg attribute value in decimal. 1139 * lpfc_param_show - Return a cfg attribute value in decimal
1140 * 1140 *
1141 * Description: 1141 * Description:
1142 * Macro that given an attr e.g. hba_queue_depth expands 1142 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1164,7 +1164,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \
1164} 1164}
1165 1165
1166/** 1166/**
1167 * lpfc_param_hex_show: Return a cfg attribute value in hex. 1167 * lpfc_param_hex_show - Return a cfg attribute value in hex
1168 * 1168 *
1169 * Description: 1169 * Description:
1170 * Macro that given an attr e.g. hba_queue_depth expands 1170 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1173,7 +1173,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \
1173 * lpfc_##attr##_show: Return the hex value of an adapters cfg_xxx field. 1173 * lpfc_##attr##_show: Return the hex value of an adapters cfg_xxx field.
1174 * @dev: class device that is converted into a Scsi_host. 1174 * @dev: class device that is converted into a Scsi_host.
1175 * @attr: device attribute, not used. 1175 * @attr: device attribute, not used.
1176 * @buf: on return contains the attribute value in hexidecimal. 1176 * @buf: on return contains the attribute value in hexadecimal.
1177 * 1177 *
1178 * Returns: size of formatted string. 1178 * Returns: size of formatted string.
1179 **/ 1179 **/
@@ -1192,7 +1192,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \
1192} 1192}
1193 1193
1194/** 1194/**
1195 * lpfc_param_init: Intializes a cfg attribute. 1195 * lpfc_param_init - Intializes a cfg attribute
1196 * 1196 *
1197 * Description: 1197 * Description:
1198 * Macro that given an attr e.g. hba_queue_depth expands 1198 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1226,7 +1226,7 @@ lpfc_##attr##_init(struct lpfc_hba *phba, int val) \
1226} 1226}
1227 1227
1228/** 1228/**
1229 * lpfc_param_set: Set a cfg attribute value. 1229 * lpfc_param_set - Set a cfg attribute value
1230 * 1230 *
1231 * Description: 1231 * Description:
1232 * Macro that given an attr e.g. hba_queue_depth expands 1232 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1260,7 +1260,7 @@ lpfc_##attr##_set(struct lpfc_hba *phba, int val) \
1260} 1260}
1261 1261
1262/** 1262/**
1263 * lpfc_param_store: Set a vport attribute value. 1263 * lpfc_param_store - Set a vport attribute value
1264 * 1264 *
1265 * Description: 1265 * Description:
1266 * Macro that given an attr e.g. hba_queue_depth expands 1266 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1300,7 +1300,7 @@ lpfc_##attr##_store(struct device *dev, struct device_attribute *attr, \
1300} 1300}
1301 1301
1302/** 1302/**
1303 * lpfc_vport_param_show: Return decimal formatted cfg attribute value. 1303 * lpfc_vport_param_show - Return decimal formatted cfg attribute value
1304 * 1304 *
1305 * Description: 1305 * Description:
1306 * Macro that given an attr e.g. hba_queue_depth expands 1306 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1326,17 +1326,17 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \
1326} 1326}
1327 1327
1328/** 1328/**
1329 * lpfc_vport_param_hex_show: Return hex formatted attribute value. 1329 * lpfc_vport_param_hex_show - Return hex formatted attribute value
1330 * 1330 *
1331 * Description: 1331 * Description:
1332 * Macro that given an attr e.g. 1332 * Macro that given an attr e.g.
1333 * hba_queue_depth expands into a function with the name 1333 * hba_queue_depth expands into a function with the name
1334 * lpfc_hba_queue_depth_show 1334 * lpfc_hba_queue_depth_show
1335 * 1335 *
1336 * lpfc_##attr##_show: prints the attribute value in hexidecimal. 1336 * lpfc_##attr##_show: prints the attribute value in hexadecimal.
1337 * @dev: class device that is converted into a Scsi_host. 1337 * @dev: class device that is converted into a Scsi_host.
1338 * @attr: device attribute, not used. 1338 * @attr: device attribute, not used.
1339 * @buf: on return contains the attribute value in hexidecimal. 1339 * @buf: on return contains the attribute value in hexadecimal.
1340 * 1340 *
1341 * Returns: length of formatted string. 1341 * Returns: length of formatted string.
1342 **/ 1342 **/
@@ -1353,7 +1353,7 @@ lpfc_##attr##_show(struct device *dev, struct device_attribute *attr, \
1353} 1353}
1354 1354
1355/** 1355/**
1356 * lpfc_vport_param_init: Initialize a vport cfg attribute. 1356 * lpfc_vport_param_init - Initialize a vport cfg attribute
1357 * 1357 *
1358 * Description: 1358 * Description:
1359 * Macro that given an attr e.g. hba_queue_depth expands 1359 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1386,7 +1386,7 @@ lpfc_##attr##_init(struct lpfc_vport *vport, int val) \
1386} 1386}
1387 1387
1388/** 1388/**
1389 * lpfc_vport_param_set: Set a vport cfg attribute. 1389 * lpfc_vport_param_set - Set a vport cfg attribute
1390 * 1390 *
1391 * Description: 1391 * Description:
1392 * Macro that given an attr e.g. hba_queue_depth expands 1392 * Macro that given an attr e.g. hba_queue_depth expands
@@ -1417,7 +1417,7 @@ lpfc_##attr##_set(struct lpfc_vport *vport, int val) \
1417} 1417}
1418 1418
1419/** 1419/**
1420 * lpfc_vport_param_store: Set a vport attribute. 1420 * lpfc_vport_param_store - Set a vport attribute
1421 * 1421 *
1422 * Description: 1422 * Description:
1423 * Macro that given an attr e.g. hba_queue_depth 1423 * Macro that given an attr e.g. hba_queue_depth
@@ -1576,7 +1576,7 @@ static DEVICE_ATTR(lpfc_temp_sensor, S_IRUGO, lpfc_temp_sensor_show, NULL);
1576static char *lpfc_soft_wwn_key = "C99G71SL8032A"; 1576static char *lpfc_soft_wwn_key = "C99G71SL8032A";
1577 1577
1578/** 1578/**
1579 * lpfc_soft_wwn_enable_store: Allows setting of the wwn if the key is valid. 1579 * lpfc_soft_wwn_enable_store - Allows setting of the wwn if the key is valid
1580 * @dev: class device that is converted into a Scsi_host. 1580 * @dev: class device that is converted into a Scsi_host.
1581 * @attr: device attribute, not used. 1581 * @attr: device attribute, not used.
1582 * @buf: containing the string lpfc_soft_wwn_key. 1582 * @buf: containing the string lpfc_soft_wwn_key.
@@ -1623,10 +1623,10 @@ static DEVICE_ATTR(lpfc_soft_wwn_enable, S_IWUSR, NULL,
1623 lpfc_soft_wwn_enable_store); 1623 lpfc_soft_wwn_enable_store);
1624 1624
1625/** 1625/**
1626 * lpfc_soft_wwpn_show: Return the cfg soft ww port name of the adapter. 1626 * lpfc_soft_wwpn_show - Return the cfg soft ww port name of the adapter
1627 * @dev: class device that is converted into a Scsi_host. 1627 * @dev: class device that is converted into a Scsi_host.
1628 * @attr: device attribute, not used. 1628 * @attr: device attribute, not used.
1629 * @buf: on return contains the wwpn in hexidecimal. 1629 * @buf: on return contains the wwpn in hexadecimal.
1630 * 1630 *
1631 * Returns: size of formatted string. 1631 * Returns: size of formatted string.
1632 **/ 1632 **/
@@ -1643,10 +1643,10 @@ lpfc_soft_wwpn_show(struct device *dev, struct device_attribute *attr,
1643} 1643}
1644 1644
1645/** 1645/**
1646 * lpfc_soft_wwpn_store: Set the ww port name of the adapter. 1646 * lpfc_soft_wwpn_store - Set the ww port name of the adapter
1647 * @dev class device that is converted into a Scsi_host. 1647 * @dev class device that is converted into a Scsi_host.
1648 * @attr: device attribute, not used. 1648 * @attr: device attribute, not used.
1649 * @buf: contains the wwpn in hexidecimal. 1649 * @buf: contains the wwpn in hexadecimal.
1650 * @count: number of wwpn bytes in buf 1650 * @count: number of wwpn bytes in buf
1651 * 1651 *
1652 * Returns: 1652 * Returns:
@@ -1729,10 +1729,10 @@ static DEVICE_ATTR(lpfc_soft_wwpn, S_IRUGO | S_IWUSR,\
1729 lpfc_soft_wwpn_show, lpfc_soft_wwpn_store); 1729 lpfc_soft_wwpn_show, lpfc_soft_wwpn_store);
1730 1730
1731/** 1731/**
1732 * lpfc_soft_wwnn_show: Return the cfg soft ww node name for the adapter. 1732 * lpfc_soft_wwnn_show - Return the cfg soft ww node name for the adapter
1733 * @dev: class device that is converted into a Scsi_host. 1733 * @dev: class device that is converted into a Scsi_host.
1734 * @attr: device attribute, not used. 1734 * @attr: device attribute, not used.
1735 * @buf: on return contains the wwnn in hexidecimal. 1735 * @buf: on return contains the wwnn in hexadecimal.
1736 * 1736 *
1737 * Returns: size of formatted string. 1737 * Returns: size of formatted string.
1738 **/ 1738 **/
@@ -1747,9 +1747,9 @@ lpfc_soft_wwnn_show(struct device *dev, struct device_attribute *attr,
1747} 1747}
1748 1748
1749/** 1749/**
1750 * lpfc_soft_wwnn_store: sets the ww node name of the adapter. 1750 * lpfc_soft_wwnn_store - sets the ww node name of the adapter
1751 * @cdev: class device that is converted into a Scsi_host. 1751 * @cdev: class device that is converted into a Scsi_host.
1752 * @buf: contains the ww node name in hexidecimal. 1752 * @buf: contains the ww node name in hexadecimal.
1753 * @count: number of wwnn bytes in buf. 1753 * @count: number of wwnn bytes in buf.
1754 * 1754 *
1755 * Returns: 1755 * Returns:
@@ -1845,7 +1845,7 @@ MODULE_PARM_DESC(lpfc_nodev_tmo,
1845 "for a device to come back"); 1845 "for a device to come back");
1846 1846
1847/** 1847/**
1848 * lpfc_nodev_tmo_show: Return the hba dev loss timeout value. 1848 * lpfc_nodev_tmo_show - Return the hba dev loss timeout value
1849 * @dev: class converted to a Scsi_host structure. 1849 * @dev: class converted to a Scsi_host structure.
1850 * @attr: device attribute, not used. 1850 * @attr: device attribute, not used.
1851 * @buf: on return contains the dev loss timeout in decimal. 1851 * @buf: on return contains the dev loss timeout in decimal.
@@ -1864,7 +1864,7 @@ lpfc_nodev_tmo_show(struct device *dev, struct device_attribute *attr,
1864} 1864}
1865 1865
1866/** 1866/**
1867 * lpfc_nodev_tmo_init: Set the hba nodev timeout value. 1867 * lpfc_nodev_tmo_init - Set the hba nodev timeout value
1868 * @vport: lpfc vport structure pointer. 1868 * @vport: lpfc vport structure pointer.
1869 * @val: contains the nodev timeout value. 1869 * @val: contains the nodev timeout value.
1870 * 1870 *
@@ -1905,7 +1905,7 @@ lpfc_nodev_tmo_init(struct lpfc_vport *vport, int val)
1905} 1905}
1906 1906
1907/** 1907/**
1908 * lpfc_update_rport_devloss_tmo: Update dev loss tmo value. 1908 * lpfc_update_rport_devloss_tmo - Update dev loss tmo value
1909 * @vport: lpfc vport structure pointer. 1909 * @vport: lpfc vport structure pointer.
1910 * 1910 *
1911 * Description: 1911 * Description:
@@ -1926,7 +1926,7 @@ lpfc_update_rport_devloss_tmo(struct lpfc_vport *vport)
1926} 1926}
1927 1927
1928/** 1928/**
1929 * lpfc_nodev_tmo_set: Set the vport nodev tmo and devloss tmo values. 1929 * lpfc_nodev_tmo_set - Set the vport nodev tmo and devloss tmo values
1930 * @vport: lpfc vport structure pointer. 1930 * @vport: lpfc vport structure pointer.
1931 * @val: contains the tmo value. 1931 * @val: contains the tmo value.
1932 * 1932 *
@@ -1982,7 +1982,7 @@ lpfc_vport_param_init(devloss_tmo, LPFC_DEF_DEVLOSS_TMO,
1982lpfc_vport_param_show(devloss_tmo) 1982lpfc_vport_param_show(devloss_tmo)
1983 1983
1984/** 1984/**
1985 * lpfc_devloss_tmo_set: Sets vport nodev tmo, devloss tmo values, changed bit. 1985 * lpfc_devloss_tmo_set - Sets vport nodev tmo, devloss tmo values, changed bit
1986 * @vport: lpfc vport structure pointer. 1986 * @vport: lpfc vport structure pointer.
1987 * @val: contains the tmo value. 1987 * @val: contains the tmo value.
1988 * 1988 *
@@ -2094,7 +2094,7 @@ MODULE_PARM_DESC(lpfc_restrict_login,
2094lpfc_vport_param_show(restrict_login); 2094lpfc_vport_param_show(restrict_login);
2095 2095
2096/** 2096/**
2097 * lpfc_restrict_login_init: Set the vport restrict login flag. 2097 * lpfc_restrict_login_init - Set the vport restrict login flag
2098 * @vport: lpfc vport structure pointer. 2098 * @vport: lpfc vport structure pointer.
2099 * @val: contains the restrict login value. 2099 * @val: contains the restrict login value.
2100 * 2100 *
@@ -2128,7 +2128,7 @@ lpfc_restrict_login_init(struct lpfc_vport *vport, int val)
2128} 2128}
2129 2129
2130/** 2130/**
2131 * lpfc_restrict_login_set: Set the vport restrict login flag. 2131 * lpfc_restrict_login_set - Set the vport restrict login flag
2132 * @vport: lpfc vport structure pointer. 2132 * @vport: lpfc vport structure pointer.
2133 * @val: contains the restrict login value. 2133 * @val: contains the restrict login value.
2134 * 2134 *
@@ -2201,7 +2201,7 @@ LPFC_VPORT_ATTR_R(scan_down, 1, 0, 1,
2201*/ 2201*/
2202 2202
2203/** 2203/**
2204 * lpfc_topology_set: Set the adapters topology field. 2204 * lpfc_topology_set - Set the adapters topology field
2205 * @phba: lpfc_hba pointer. 2205 * @phba: lpfc_hba pointer.
2206 * @val: topology value. 2206 * @val: topology value.
2207 * 2207 *
@@ -2216,18 +2216,41 @@ LPFC_VPORT_ATTR_R(scan_down, 1, 0, 1,
2216 * non-zero return value from lpfc_issue_lip() 2216 * non-zero return value from lpfc_issue_lip()
2217 * -EINVAL val out of range 2217 * -EINVAL val out of range
2218 **/ 2218 **/
2219static int 2219static ssize_t
2220lpfc_topology_set(struct lpfc_hba *phba, int val) 2220lpfc_topology_store(struct device *dev, struct device_attribute *attr,
2221 const char *buf, size_t count)
2221{ 2222{
2223 struct Scsi_Host *shost = class_to_shost(dev);
2224 struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
2225 struct lpfc_hba *phba = vport->phba;
2226 int val = 0;
2227 int nolip = 0;
2228 const char *val_buf = buf;
2222 int err; 2229 int err;
2223 uint32_t prev_val; 2230 uint32_t prev_val;
2231
2232 if (!strncmp(buf, "nolip ", strlen("nolip "))) {
2233 nolip = 1;
2234 val_buf = &buf[strlen("nolip ")];
2235 }
2236
2237 if (!isdigit(val_buf[0]))
2238 return -EINVAL;
2239 if (sscanf(val_buf, "%i", &val) != 1)
2240 return -EINVAL;
2241
2224 if (val >= 0 && val <= 6) { 2242 if (val >= 0 && val <= 6) {
2225 prev_val = phba->cfg_topology; 2243 prev_val = phba->cfg_topology;
2226 phba->cfg_topology = val; 2244 phba->cfg_topology = val;
2245 if (nolip)
2246 return strlen(buf);
2247
2227 err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport)); 2248 err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport));
2228 if (err) 2249 if (err) {
2229 phba->cfg_topology = prev_val; 2250 phba->cfg_topology = prev_val;
2230 return err; 2251 return -EINVAL;
2252 } else
2253 return strlen(buf);
2231 } 2254 }
2232 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2255 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
2233 "%d:0467 lpfc_topology attribute cannot be set to %d, " 2256 "%d:0467 lpfc_topology attribute cannot be set to %d, "
@@ -2240,14 +2263,12 @@ module_param(lpfc_topology, int, 0);
2240MODULE_PARM_DESC(lpfc_topology, "Select Fibre Channel topology"); 2263MODULE_PARM_DESC(lpfc_topology, "Select Fibre Channel topology");
2241lpfc_param_show(topology) 2264lpfc_param_show(topology)
2242lpfc_param_init(topology, 0, 0, 6) 2265lpfc_param_init(topology, 0, 0, 6)
2243lpfc_param_store(topology)
2244static DEVICE_ATTR(lpfc_topology, S_IRUGO | S_IWUSR, 2266static DEVICE_ATTR(lpfc_topology, S_IRUGO | S_IWUSR,
2245 lpfc_topology_show, lpfc_topology_store); 2267 lpfc_topology_show, lpfc_topology_store);
2246 2268
2247 2269
2248/** 2270/**
2249 * lpfc_stat_data_ctrl_store: write call back for lpfc_stat_data_ctrl 2271 * lpfc_stat_data_ctrl_store - write call back for lpfc_stat_data_ctrl sysfs file
2250 * sysfs file.
2251 * @dev: Pointer to class device. 2272 * @dev: Pointer to class device.
2252 * @buf: Data buffer. 2273 * @buf: Data buffer.
2253 * @count: Size of the data buffer. 2274 * @count: Size of the data buffer.
@@ -2282,7 +2303,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
2282 unsigned long base, step, bucket_type; 2303 unsigned long base, step, bucket_type;
2283 2304
2284 if (!strncmp(buf, "setbucket", strlen("setbucket"))) { 2305 if (!strncmp(buf, "setbucket", strlen("setbucket"))) {
2285 if (strlen(buf) > LPFC_MAX_DATA_CTRL_LEN) 2306 if (strlen(buf) > (LPFC_MAX_DATA_CTRL_LEN - 1))
2286 return -EINVAL; 2307 return -EINVAL;
2287 2308
2288 strcpy(bucket_data, buf); 2309 strcpy(bucket_data, buf);
@@ -2411,8 +2432,7 @@ lpfc_stat_data_ctrl_store(struct device *dev, struct device_attribute *attr,
2411 2432
2412 2433
2413/** 2434/**
2414 * lpfc_stat_data_ctrl_show: Read callback function for 2435 * lpfc_stat_data_ctrl_show - Read function for lpfc_stat_data_ctrl sysfs file
2415 * lpfc_stat_data_ctrl sysfs file.
2416 * @dev: Pointer to class device object. 2436 * @dev: Pointer to class device object.
2417 * @buf: Data buffer. 2437 * @buf: Data buffer.
2418 * 2438 *
@@ -2489,8 +2509,7 @@ static DEVICE_ATTR(lpfc_stat_data_ctrl, S_IRUGO | S_IWUSR,
2489 2509
2490 2510
2491/** 2511/**
2492 * sysfs_drvr_stat_data_read: Read callback function for lpfc_drvr_stat_data 2512 * sysfs_drvr_stat_data_read - Read function for lpfc_drvr_stat_data attribute
2493 * sysfs attribute.
2494 * @kobj: Pointer to the kernel object 2513 * @kobj: Pointer to the kernel object
2495 * @bin_attr: Attribute object 2514 * @bin_attr: Attribute object
2496 * @buff: Buffer pointer 2515 * @buff: Buffer pointer
@@ -2585,7 +2604,7 @@ static struct bin_attribute sysfs_drvr_stat_data_attr = {
2585*/ 2604*/
2586 2605
2587/** 2606/**
2588 * lpfc_link_speed_set: Set the adapters link speed. 2607 * lpfc_link_speed_set - Set the adapters link speed
2589 * @phba: lpfc_hba pointer. 2608 * @phba: lpfc_hba pointer.
2590 * @val: link speed value. 2609 * @val: link speed value.
2591 * 2610 *
@@ -2601,12 +2620,29 @@ static struct bin_attribute sysfs_drvr_stat_data_attr = {
2601 * non-zero return value from lpfc_issue_lip() 2620 * non-zero return value from lpfc_issue_lip()
2602 * -EINVAL val out of range 2621 * -EINVAL val out of range
2603 **/ 2622 **/
2604static int 2623static ssize_t
2605lpfc_link_speed_set(struct lpfc_hba *phba, int val) 2624lpfc_link_speed_store(struct device *dev, struct device_attribute *attr,
2625 const char *buf, size_t count)
2606{ 2626{
2627 struct Scsi_Host *shost = class_to_shost(dev);
2628 struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
2629 struct lpfc_hba *phba = vport->phba;
2630 int val = 0;
2631 int nolip = 0;
2632 const char *val_buf = buf;
2607 int err; 2633 int err;
2608 uint32_t prev_val; 2634 uint32_t prev_val;
2609 2635
2636 if (!strncmp(buf, "nolip ", strlen("nolip "))) {
2637 nolip = 1;
2638 val_buf = &buf[strlen("nolip ")];
2639 }
2640
2641 if (!isdigit(val_buf[0]))
2642 return -EINVAL;
2643 if (sscanf(val_buf, "%i", &val) != 1)
2644 return -EINVAL;
2645
2610 if (((val == LINK_SPEED_1G) && !(phba->lmt & LMT_1Gb)) || 2646 if (((val == LINK_SPEED_1G) && !(phba->lmt & LMT_1Gb)) ||
2611 ((val == LINK_SPEED_2G) && !(phba->lmt & LMT_2Gb)) || 2647 ((val == LINK_SPEED_2G) && !(phba->lmt & LMT_2Gb)) ||
2612 ((val == LINK_SPEED_4G) && !(phba->lmt & LMT_4Gb)) || 2648 ((val == LINK_SPEED_4G) && !(phba->lmt & LMT_4Gb)) ||
@@ -2614,14 +2650,19 @@ lpfc_link_speed_set(struct lpfc_hba *phba, int val)
2614 ((val == LINK_SPEED_10G) && !(phba->lmt & LMT_10Gb))) 2650 ((val == LINK_SPEED_10G) && !(phba->lmt & LMT_10Gb)))
2615 return -EINVAL; 2651 return -EINVAL;
2616 2652
2617 if ((val >= 0 && val <= LPFC_MAX_LINK_SPEED) 2653 if ((val >= 0 && val <= 8)
2618 && (LPFC_LINK_SPEED_BITMAP & (1 << val))) { 2654 && (LPFC_LINK_SPEED_BITMAP & (1 << val))) {
2619 prev_val = phba->cfg_link_speed; 2655 prev_val = phba->cfg_link_speed;
2620 phba->cfg_link_speed = val; 2656 phba->cfg_link_speed = val;
2657 if (nolip)
2658 return strlen(buf);
2659
2621 err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport)); 2660 err = lpfc_issue_lip(lpfc_shost_from_vport(phba->pport));
2622 if (err) 2661 if (err) {
2623 phba->cfg_link_speed = prev_val; 2662 phba->cfg_link_speed = prev_val;
2624 return err; 2663 return -EINVAL;
2664 } else
2665 return strlen(buf);
2625 } 2666 }
2626 2667
2627 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 2668 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
@@ -2637,7 +2678,7 @@ MODULE_PARM_DESC(lpfc_link_speed, "Select link speed");
2637lpfc_param_show(link_speed) 2678lpfc_param_show(link_speed)
2638 2679
2639/** 2680/**
2640 * lpfc_link_speed_init: Set the adapters link speed. 2681 * lpfc_link_speed_init - Set the adapters link speed
2641 * @phba: lpfc_hba pointer. 2682 * @phba: lpfc_hba pointer.
2642 * @val: link speed value. 2683 * @val: link speed value.
2643 * 2684 *
@@ -2668,7 +2709,6 @@ lpfc_link_speed_init(struct lpfc_hba *phba, int val)
2668 return -EINVAL; 2709 return -EINVAL;
2669} 2710}
2670 2711
2671lpfc_param_store(link_speed)
2672static DEVICE_ATTR(lpfc_link_speed, S_IRUGO | S_IWUSR, 2712static DEVICE_ATTR(lpfc_link_speed, S_IRUGO | S_IWUSR,
2673 lpfc_link_speed_show, lpfc_link_speed_store); 2713 lpfc_link_speed_show, lpfc_link_speed_store);
2674 2714
@@ -2865,7 +2905,7 @@ MODULE_PARM_DESC(lpfc_prot_guard, "host protection guard type");
2865 2905
2866 2906
2867/* 2907/*
2868 * lpfc_sg_seg_cnt: Initial Maximum DMA Segment Count 2908 * lpfc_sg_seg_cnt - Initial Maximum DMA Segment Count
2869 * This value can be set to values between 64 and 256. The default value is 2909 * This value can be set to values between 64 and 256. The default value is
2870 * 64, but may be increased to allow for larger Max I/O sizes. The scsi layer 2910 * 64, but may be increased to allow for larger Max I/O sizes. The scsi layer
2871 * will be allowed to request I/Os of sizes up to (MAX_SEG_COUNT * SEG_SIZE). 2911 * will be allowed to request I/Os of sizes up to (MAX_SEG_COUNT * SEG_SIZE).
@@ -2967,7 +3007,7 @@ struct device_attribute *lpfc_vport_attrs[] = {
2967}; 3007};
2968 3008
2969/** 3009/**
2970 * sysfs_ctlreg_write: Write method for writing to ctlreg. 3010 * sysfs_ctlreg_write - Write method for writing to ctlreg
2971 * @kobj: kernel kobject that contains the kernel class device. 3011 * @kobj: kernel kobject that contains the kernel class device.
2972 * @bin_attr: kernel attributes passed to us. 3012 * @bin_attr: kernel attributes passed to us.
2973 * @buf: contains the data to be written to the adapter IOREG space. 3013 * @buf: contains the data to be written to the adapter IOREG space.
@@ -3017,7 +3057,7 @@ sysfs_ctlreg_write(struct kobject *kobj, struct bin_attribute *bin_attr,
3017} 3057}
3018 3058
3019/** 3059/**
3020 * sysfs_ctlreg_read: Read method for reading from ctlreg. 3060 * sysfs_ctlreg_read - Read method for reading from ctlreg
3021 * @kobj: kernel kobject that contains the kernel class device. 3061 * @kobj: kernel kobject that contains the kernel class device.
3022 * @bin_attr: kernel attributes passed to us. 3062 * @bin_attr: kernel attributes passed to us.
3023 * @buf: if succesful contains the data from the adapter IOREG space. 3063 * @buf: if succesful contains the data from the adapter IOREG space.
@@ -3078,7 +3118,7 @@ static struct bin_attribute sysfs_ctlreg_attr = {
3078}; 3118};
3079 3119
3080/** 3120/**
3081 * sysfs_mbox_idle: frees the sysfs mailbox. 3121 * sysfs_mbox_idle - frees the sysfs mailbox
3082 * @phba: lpfc_hba pointer 3122 * @phba: lpfc_hba pointer
3083 **/ 3123 **/
3084static void 3124static void
@@ -3095,7 +3135,7 @@ sysfs_mbox_idle(struct lpfc_hba *phba)
3095} 3135}
3096 3136
3097/** 3137/**
3098 * sysfs_mbox_write: Write method for writing information via mbox. 3138 * sysfs_mbox_write - Write method for writing information via mbox
3099 * @kobj: kernel kobject that contains the kernel class device. 3139 * @kobj: kernel kobject that contains the kernel class device.
3100 * @bin_attr: kernel attributes passed to us. 3140 * @bin_attr: kernel attributes passed to us.
3101 * @buf: contains the data to be written to sysfs mbox. 3141 * @buf: contains the data to be written to sysfs mbox.
@@ -3170,7 +3210,7 @@ sysfs_mbox_write(struct kobject *kobj, struct bin_attribute *bin_attr,
3170} 3210}
3171 3211
3172/** 3212/**
3173 * sysfs_mbox_read: Read method for reading information via mbox. 3213 * sysfs_mbox_read - Read method for reading information via mbox
3174 * @kobj: kernel kobject that contains the kernel class device. 3214 * @kobj: kernel kobject that contains the kernel class device.
3175 * @bin_attr: kernel attributes passed to us. 3215 * @bin_attr: kernel attributes passed to us.
3176 * @buf: contains the data to be read from sysfs mbox. 3216 * @buf: contains the data to be read from sysfs mbox.
@@ -3374,7 +3414,7 @@ static struct bin_attribute sysfs_mbox_attr = {
3374}; 3414};
3375 3415
3376/** 3416/**
3377 * lpfc_alloc_sysfs_attr: Creates the ctlreg and mbox entries. 3417 * lpfc_alloc_sysfs_attr - Creates the ctlreg and mbox entries
3378 * @vport: address of lpfc vport structure. 3418 * @vport: address of lpfc vport structure.
3379 * 3419 *
3380 * Return codes: 3420 * Return codes:
@@ -3415,7 +3455,7 @@ out:
3415} 3455}
3416 3456
3417/** 3457/**
3418 * lpfc_free_sysfs_attr: Removes the ctlreg and mbox entries. 3458 * lpfc_free_sysfs_attr - Removes the ctlreg and mbox entries
3419 * @vport: address of lpfc vport structure. 3459 * @vport: address of lpfc vport structure.
3420 **/ 3460 **/
3421void 3461void
@@ -3437,7 +3477,7 @@ lpfc_free_sysfs_attr(struct lpfc_vport *vport)
3437 */ 3477 */
3438 3478
3439/** 3479/**
3440 * lpfc_get_host_port_id: Copy the vport DID into the scsi host port id. 3480 * lpfc_get_host_port_id - Copy the vport DID into the scsi host port id
3441 * @shost: kernel scsi host pointer. 3481 * @shost: kernel scsi host pointer.
3442 **/ 3482 **/
3443static void 3483static void
@@ -3450,7 +3490,7 @@ lpfc_get_host_port_id(struct Scsi_Host *shost)
3450} 3490}
3451 3491
3452/** 3492/**
3453 * lpfc_get_host_port_type: Set the value of the scsi host port type. 3493 * lpfc_get_host_port_type - Set the value of the scsi host port type
3454 * @shost: kernel scsi host pointer. 3494 * @shost: kernel scsi host pointer.
3455 **/ 3495 **/
3456static void 3496static void
@@ -3482,7 +3522,7 @@ lpfc_get_host_port_type(struct Scsi_Host *shost)
3482} 3522}
3483 3523
3484/** 3524/**
3485 * lpfc_get_host_port_state: Set the value of the scsi host port state. 3525 * lpfc_get_host_port_state - Set the value of the scsi host port state
3486 * @shost: kernel scsi host pointer. 3526 * @shost: kernel scsi host pointer.
3487 **/ 3527 **/
3488static void 3528static void
@@ -3520,7 +3560,7 @@ lpfc_get_host_port_state(struct Scsi_Host *shost)
3520} 3560}
3521 3561
3522/** 3562/**
3523 * lpfc_get_host_speed: Set the value of the scsi host speed. 3563 * lpfc_get_host_speed - Set the value of the scsi host speed
3524 * @shost: kernel scsi host pointer. 3564 * @shost: kernel scsi host pointer.
3525 **/ 3565 **/
3526static void 3566static void
@@ -3556,7 +3596,7 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
3556} 3596}
3557 3597
3558/** 3598/**
3559 * lpfc_get_host_fabric_name: Set the value of the scsi host fabric name. 3599 * lpfc_get_host_fabric_name - Set the value of the scsi host fabric name
3560 * @shost: kernel scsi host pointer. 3600 * @shost: kernel scsi host pointer.
3561 **/ 3601 **/
3562static void 3602static void
@@ -3582,7 +3622,7 @@ lpfc_get_host_fabric_name (struct Scsi_Host *shost)
3582} 3622}
3583 3623
3584/** 3624/**
3585 * lpfc_get_stats: Return statistical information about the adapter. 3625 * lpfc_get_stats - Return statistical information about the adapter
3586 * @shost: kernel scsi host pointer. 3626 * @shost: kernel scsi host pointer.
3587 * 3627 *
3588 * Notes: 3628 * Notes:
@@ -3707,7 +3747,7 @@ lpfc_get_stats(struct Scsi_Host *shost)
3707} 3747}
3708 3748
3709/** 3749/**
3710 * lpfc_reset_stats: Copy the adapter link stats information. 3750 * lpfc_reset_stats - Copy the adapter link stats information
3711 * @shost: kernel scsi host pointer. 3751 * @shost: kernel scsi host pointer.
3712 **/ 3752 **/
3713static void 3753static void
@@ -3788,7 +3828,7 @@ lpfc_reset_stats(struct Scsi_Host *shost)
3788 */ 3828 */
3789 3829
3790/** 3830/**
3791 * lpfc_get_node_by_target: Return the nodelist for a target. 3831 * lpfc_get_node_by_target - Return the nodelist for a target
3792 * @starget: kernel scsi target pointer. 3832 * @starget: kernel scsi target pointer.
3793 * 3833 *
3794 * Returns: 3834 * Returns:
@@ -3817,7 +3857,7 @@ lpfc_get_node_by_target(struct scsi_target *starget)
3817} 3857}
3818 3858
3819/** 3859/**
3820 * lpfc_get_starget_port_id: Set the target port id to the ndlp DID or -1. 3860 * lpfc_get_starget_port_id - Set the target port id to the ndlp DID or -1
3821 * @starget: kernel scsi target pointer. 3861 * @starget: kernel scsi target pointer.
3822 **/ 3862 **/
3823static void 3863static void
@@ -3829,7 +3869,7 @@ lpfc_get_starget_port_id(struct scsi_target *starget)
3829} 3869}
3830 3870
3831/** 3871/**
3832 * lpfc_get_starget_node_name: Set the target node name. 3872 * lpfc_get_starget_node_name - Set the target node name
3833 * @starget: kernel scsi target pointer. 3873 * @starget: kernel scsi target pointer.
3834 * 3874 *
3835 * Description: Set the target node name to the ndlp node name wwn or zero. 3875 * Description: Set the target node name to the ndlp node name wwn or zero.
@@ -3844,7 +3884,7 @@ lpfc_get_starget_node_name(struct scsi_target *starget)
3844} 3884}
3845 3885
3846/** 3886/**
3847 * lpfc_get_starget_port_name: Set the target port name. 3887 * lpfc_get_starget_port_name - Set the target port name
3848 * @starget: kernel scsi target pointer. 3888 * @starget: kernel scsi target pointer.
3849 * 3889 *
3850 * Description: set the target port name to the ndlp port name wwn or zero. 3890 * Description: set the target port name to the ndlp port name wwn or zero.
@@ -3859,7 +3899,7 @@ lpfc_get_starget_port_name(struct scsi_target *starget)
3859} 3899}
3860 3900
3861/** 3901/**
3862 * lpfc_set_rport_loss_tmo: Set the rport dev loss tmo. 3902 * lpfc_set_rport_loss_tmo - Set the rport dev loss tmo
3863 * @rport: fc rport address. 3903 * @rport: fc rport address.
3864 * @timeout: new value for dev loss tmo. 3904 * @timeout: new value for dev loss tmo.
3865 * 3905 *
@@ -3877,7 +3917,7 @@ lpfc_set_rport_loss_tmo(struct fc_rport *rport, uint32_t timeout)
3877} 3917}
3878 3918
3879/** 3919/**
3880 * lpfc_rport_show_function: Return rport target information. 3920 * lpfc_rport_show_function - Return rport target information
3881 * 3921 *
3882 * Description: 3922 * Description:
3883 * Macro that uses field to generate a function with the name lpfc_show_rport_ 3923 * Macro that uses field to generate a function with the name lpfc_show_rport_
@@ -3905,7 +3945,7 @@ lpfc_show_rport_##field (struct device *dev, \
3905static FC_RPORT_ATTR(field, S_IRUGO, lpfc_show_rport_##field, NULL) 3945static FC_RPORT_ATTR(field, S_IRUGO, lpfc_show_rport_##field, NULL)
3906 3946
3907/** 3947/**
3908 * lpfc_set_vport_symbolic_name: Set the vport's symbolic name. 3948 * lpfc_set_vport_symbolic_name - Set the vport's symbolic name
3909 * @fc_vport: The fc_vport who's symbolic name has been changed. 3949 * @fc_vport: The fc_vport who's symbolic name has been changed.
3910 * 3950 *
3911 * Description: 3951 * Description:
@@ -4048,7 +4088,7 @@ struct fc_function_template lpfc_vport_transport_functions = {
4048}; 4088};
4049 4089
4050/** 4090/**
4051 * lpfc_get_cfgparam: Used during probe_one to init the adapter structure. 4091 * lpfc_get_cfgparam - Used during probe_one to init the adapter structure
4052 * @phba: lpfc_hba pointer. 4092 * @phba: lpfc_hba pointer.
4053 **/ 4093 **/
4054void 4094void
@@ -4097,7 +4137,7 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
4097} 4137}
4098 4138
4099/** 4139/**
4100 * lpfc_get_vport_cfgparam: Used during port create, init the vport structure. 4140 * lpfc_get_vport_cfgparam - Used during port create, init the vport structure
4101 * @vport: lpfc_vport pointer. 4141 * @vport: lpfc_vport pointer.
4102 **/ 4142 **/
4103void 4143void
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h
index 07f4976319a5..f88ce3f26190 100644
--- a/drivers/scsi/lpfc/lpfc_crtn.h
+++ b/drivers/scsi/lpfc/lpfc_crtn.h
@@ -184,6 +184,8 @@ void lpfc_sli_poll_fcp_ring(struct lpfc_hba *);
184struct lpfc_iocbq * lpfc_sli_get_iocbq(struct lpfc_hba *); 184struct lpfc_iocbq * lpfc_sli_get_iocbq(struct lpfc_hba *);
185void lpfc_sli_release_iocbq(struct lpfc_hba *, struct lpfc_iocbq *); 185void lpfc_sli_release_iocbq(struct lpfc_hba *, struct lpfc_iocbq *);
186uint16_t lpfc_sli_next_iotag(struct lpfc_hba *, struct lpfc_iocbq *); 186uint16_t lpfc_sli_next_iotag(struct lpfc_hba *, struct lpfc_iocbq *);
187void lpfc_sli_cancel_iocbs(struct lpfc_hba *, struct list_head *, uint32_t,
188 uint32_t);
187 189
188void lpfc_reset_barrier(struct lpfc_hba * phba); 190void lpfc_reset_barrier(struct lpfc_hba * phba);
189int lpfc_sli_brdready(struct lpfc_hba *, uint32_t); 191int lpfc_sli_brdready(struct lpfc_hba *, uint32_t);
diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
index 81cdcf46c471..52be5644e07a 100644
--- a/drivers/scsi/lpfc/lpfc_debugfs.c
+++ b/drivers/scsi/lpfc/lpfc_debugfs.c
@@ -47,7 +47,7 @@
47#include "lpfc_debugfs.h" 47#include "lpfc_debugfs.h"
48 48
49#ifdef CONFIG_SCSI_LPFC_DEBUG_FS 49#ifdef CONFIG_SCSI_LPFC_DEBUG_FS
50/** 50/*
51 * debugfs interface 51 * debugfs interface
52 * 52 *
53 * To access this interface the user should: 53 * To access this interface the user should:
@@ -95,7 +95,7 @@ module_param(lpfc_debugfs_max_slow_ring_trc, int, 0);
95MODULE_PARM_DESC(lpfc_debugfs_max_slow_ring_trc, 95MODULE_PARM_DESC(lpfc_debugfs_max_slow_ring_trc,
96 "Set debugfs slow ring trace depth"); 96 "Set debugfs slow ring trace depth");
97 97
98int lpfc_debugfs_mask_disc_trc; 98static int lpfc_debugfs_mask_disc_trc;
99module_param(lpfc_debugfs_mask_disc_trc, int, 0); 99module_param(lpfc_debugfs_mask_disc_trc, int, 0);
100MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc, 100MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
101 "Set debugfs discovery trace mask"); 101 "Set debugfs discovery trace mask");
@@ -127,7 +127,7 @@ static atomic_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
127static unsigned long lpfc_debugfs_start_time = 0L; 127static unsigned long lpfc_debugfs_start_time = 0L;
128 128
129/** 129/**
130 * lpfc_debugfs_disc_trc_data - Dump discovery logging to a buffer. 130 * lpfc_debugfs_disc_trc_data - Dump discovery logging to a buffer
131 * @vport: The vport to gather the log info from. 131 * @vport: The vport to gather the log info from.
132 * @buf: The buffer to dump log into. 132 * @buf: The buffer to dump log into.
133 * @size: The maximum amount of data to process. 133 * @size: The maximum amount of data to process.
@@ -187,7 +187,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
187} 187}
188 188
189/** 189/**
190 * lpfc_debugfs_slow_ring_trc_data - Dump slow ring logging to a buffer. 190 * lpfc_debugfs_slow_ring_trc_data - Dump slow ring logging to a buffer
191 * @phba: The HBA to gather the log info from. 191 * @phba: The HBA to gather the log info from.
192 * @buf: The buffer to dump log into. 192 * @buf: The buffer to dump log into.
193 * @size: The maximum amount of data to process. 193 * @size: The maximum amount of data to process.
@@ -250,7 +250,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
250static int lpfc_debugfs_last_hbq = -1; 250static int lpfc_debugfs_last_hbq = -1;
251 251
252/** 252/**
253 * lpfc_debugfs_hbqinfo_data - Dump host buffer queue info to a buffer. 253 * lpfc_debugfs_hbqinfo_data - Dump host buffer queue info to a buffer
254 * @phba: The HBA to gather host buffer info from. 254 * @phba: The HBA to gather host buffer info from.
255 * @buf: The buffer to dump log into. 255 * @buf: The buffer to dump log into.
256 * @size: The maximum amount of data to process. 256 * @size: The maximum amount of data to process.
@@ -369,7 +369,7 @@ skipit:
369static int lpfc_debugfs_last_hba_slim_off; 369static int lpfc_debugfs_last_hba_slim_off;
370 370
371/** 371/**
372 * lpfc_debugfs_dumpHBASlim_data - Dump HBA SLIM info to a buffer. 372 * lpfc_debugfs_dumpHBASlim_data - Dump HBA SLIM info to a buffer
373 * @phba: The HBA to gather SLIM info from. 373 * @phba: The HBA to gather SLIM info from.
374 * @buf: The buffer to dump log into. 374 * @buf: The buffer to dump log into.
375 * @size: The maximum amount of data to process. 375 * @size: The maximum amount of data to process.
@@ -399,8 +399,7 @@ lpfc_debugfs_dumpHBASlim_data(struct lpfc_hba *phba, char *buf, int size)
399 399
400 len += snprintf(buf+len, size-len, "HBA SLIM\n"); 400 len += snprintf(buf+len, size-len, "HBA SLIM\n");
401 lpfc_memcpy_from_slim(buffer, 401 lpfc_memcpy_from_slim(buffer,
402 ((uint8_t *)phba->MBslimaddr) + lpfc_debugfs_last_hba_slim_off, 402 phba->MBslimaddr + lpfc_debugfs_last_hba_slim_off, 1024);
403 1024);
404 403
405 ptr = (uint32_t *)&buffer[0]; 404 ptr = (uint32_t *)&buffer[0];
406 off = lpfc_debugfs_last_hba_slim_off; 405 off = lpfc_debugfs_last_hba_slim_off;
@@ -426,7 +425,7 @@ lpfc_debugfs_dumpHBASlim_data(struct lpfc_hba *phba, char *buf, int size)
426} 425}
427 426
428/** 427/**
429 * lpfc_debugfs_dumpHostSlim_data - Dump host SLIM info to a buffer. 428 * lpfc_debugfs_dumpHostSlim_data - Dump host SLIM info to a buffer
430 * @phba: The HBA to gather Host SLIM info from. 429 * @phba: The HBA to gather Host SLIM info from.
431 * @buf: The buffer to dump log into. 430 * @buf: The buffer to dump log into.
432 * @size: The maximum amount of data to process. 431 * @size: The maximum amount of data to process.
@@ -501,7 +500,7 @@ lpfc_debugfs_dumpHostSlim_data(struct lpfc_hba *phba, char *buf, int size)
501} 500}
502 501
503/** 502/**
504 * lpfc_debugfs_nodelist_data - Dump target node list to a buffer. 503 * lpfc_debugfs_nodelist_data - Dump target node list to a buffer
505 * @vport: The vport to gather target node info from. 504 * @vport: The vport to gather target node info from.
506 * @buf: The buffer to dump log into. 505 * @buf: The buffer to dump log into.
507 * @size: The maximum amount of data to process. 506 * @size: The maximum amount of data to process.
@@ -599,7 +598,7 @@ lpfc_debugfs_nodelist_data(struct lpfc_vport *vport, char *buf, int size)
599#endif 598#endif
600 599
601/** 600/**
602 * lpfc_debugfs_disc_trc - Store discovery trace log. 601 * lpfc_debugfs_disc_trc - Store discovery trace log
603 * @vport: The vport to associate this trace string with for retrieval. 602 * @vport: The vport to associate this trace string with for retrieval.
604 * @mask: Log entry classification. 603 * @mask: Log entry classification.
605 * @fmt: Format string to be displayed when dumping the log. 604 * @fmt: Format string to be displayed when dumping the log.
@@ -643,7 +642,7 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
643} 642}
644 643
645/** 644/**
646 * lpfc_debugfs_slow_ring_trc - Store slow ring trace log. 645 * lpfc_debugfs_slow_ring_trc - Store slow ring trace log
647 * @phba: The phba to associate this trace string with for retrieval. 646 * @phba: The phba to associate this trace string with for retrieval.
648 * @fmt: Format string to be displayed when dumping the log. 647 * @fmt: Format string to be displayed when dumping the log.
649 * @data1: 1st data parameter to be applied to @fmt. 648 * @data1: 1st data parameter to be applied to @fmt.
@@ -682,7 +681,7 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
682 681
683#ifdef CONFIG_SCSI_LPFC_DEBUG_FS 682#ifdef CONFIG_SCSI_LPFC_DEBUG_FS
684/** 683/**
685 * lpfc_debugfs_disc_trc_open - Open the discovery trace log. 684 * lpfc_debugfs_disc_trc_open - Open the discovery trace log
686 * @inode: The inode pointer that contains a vport pointer. 685 * @inode: The inode pointer that contains a vport pointer.
687 * @file: The file pointer to attach the log output. 686 * @file: The file pointer to attach the log output.
688 * 687 *
@@ -732,7 +731,7 @@ out:
732} 731}
733 732
734/** 733/**
735 * lpfc_debugfs_slow_ring_trc_open - Open the Slow Ring trace log. 734 * lpfc_debugfs_slow_ring_trc_open - Open the Slow Ring trace log
736 * @inode: The inode pointer that contains a vport pointer. 735 * @inode: The inode pointer that contains a vport pointer.
737 * @file: The file pointer to attach the log output. 736 * @file: The file pointer to attach the log output.
738 * 737 *
@@ -782,7 +781,7 @@ out:
782} 781}
783 782
784/** 783/**
785 * lpfc_debugfs_hbqinfo_open - Open the hbqinfo debugfs buffer. 784 * lpfc_debugfs_hbqinfo_open - Open the hbqinfo debugfs buffer
786 * @inode: The inode pointer that contains a vport pointer. 785 * @inode: The inode pointer that contains a vport pointer.
787 * @file: The file pointer to attach the log output. 786 * @file: The file pointer to attach the log output.
788 * 787 *
@@ -824,7 +823,7 @@ out:
824} 823}
825 824
826/** 825/**
827 * lpfc_debugfs_dumpHBASlim_open - Open the Dump HBA SLIM debugfs buffer. 826 * lpfc_debugfs_dumpHBASlim_open - Open the Dump HBA SLIM debugfs buffer
828 * @inode: The inode pointer that contains a vport pointer. 827 * @inode: The inode pointer that contains a vport pointer.
829 * @file: The file pointer to attach the log output. 828 * @file: The file pointer to attach the log output.
830 * 829 *
@@ -866,7 +865,7 @@ out:
866} 865}
867 866
868/** 867/**
869 * lpfc_debugfs_dumpHostSlim_open - Open the Dump Host SLIM debugfs buffer. 868 * lpfc_debugfs_dumpHostSlim_open - Open the Dump Host SLIM debugfs buffer
870 * @inode: The inode pointer that contains a vport pointer. 869 * @inode: The inode pointer that contains a vport pointer.
871 * @file: The file pointer to attach the log output. 870 * @file: The file pointer to attach the log output.
872 * 871 *
@@ -993,7 +992,7 @@ lpfc_debugfs_dumpDataDif_write(struct file *file, const char __user *buf,
993 992
994 993
995/** 994/**
996 * lpfc_debugfs_nodelist_open - Open the nodelist debugfs file. 995 * lpfc_debugfs_nodelist_open - Open the nodelist debugfs file
997 * @inode: The inode pointer that contains a vport pointer. 996 * @inode: The inode pointer that contains a vport pointer.
998 * @file: The file pointer to attach the log output. 997 * @file: The file pointer to attach the log output.
999 * 998 *
@@ -1035,7 +1034,7 @@ out:
1035} 1034}
1036 1035
1037/** 1036/**
1038 * lpfc_debugfs_lseek - Seek through a debugfs file. 1037 * lpfc_debugfs_lseek - Seek through a debugfs file
1039 * @file: The file pointer to seek through. 1038 * @file: The file pointer to seek through.
1040 * @off: The offset to seek to or the amount to seek by. 1039 * @off: The offset to seek to or the amount to seek by.
1041 * @whence: Indicates how to seek. 1040 * @whence: Indicates how to seek.
@@ -1073,7 +1072,7 @@ lpfc_debugfs_lseek(struct file *file, loff_t off, int whence)
1073} 1072}
1074 1073
1075/** 1074/**
1076 * lpfc_debugfs_read - Read a debugfs file. 1075 * lpfc_debugfs_read - Read a debugfs file
1077 * @file: The file pointer to read from. 1076 * @file: The file pointer to read from.
1078 * @buf: The buffer to copy the data to. 1077 * @buf: The buffer to copy the data to.
1079 * @nbytes: The number of bytes to read. 1078 * @nbytes: The number of bytes to read.
@@ -1098,7 +1097,7 @@ lpfc_debugfs_read(struct file *file, char __user *buf,
1098} 1097}
1099 1098
1100/** 1099/**
1101 * lpfc_debugfs_release - Release the buffer used to store debugfs file data. 1100 * lpfc_debugfs_release - Release the buffer used to store debugfs file data
1102 * @inode: The inode pointer that contains a vport pointer. (unused) 1101 * @inode: The inode pointer that contains a vport pointer. (unused)
1103 * @file: The file pointer that contains the buffer to release. 1102 * @file: The file pointer that contains the buffer to release.
1104 * 1103 *
@@ -1210,7 +1209,7 @@ static atomic_t lpfc_debugfs_hba_count;
1210#endif 1209#endif
1211 1210
1212/** 1211/**
1213 * lpfc_debugfs_initialize - Initialize debugfs for a vport. 1212 * lpfc_debugfs_initialize - Initialize debugfs for a vport
1214 * @vport: The vport pointer to initialize. 1213 * @vport: The vport pointer to initialize.
1215 * 1214 *
1216 * Description: 1215 * Description:
@@ -1434,7 +1433,7 @@ debug_failed:
1434} 1433}
1435 1434
1436/** 1435/**
1437 * lpfc_debugfs_terminate - Tear down debugfs infrastructure for this vport. 1436 * lpfc_debugfs_terminate - Tear down debugfs infrastructure for this vport
1438 * @vport: The vport pointer to remove from debugfs. 1437 * @vport: The vport pointer to remove from debugfs.
1439 * 1438 *
1440 * Description: 1439 * Description:
diff --git a/drivers/scsi/lpfc/lpfc_disc.h b/drivers/scsi/lpfc/lpfc_disc.h
index f29e548a90d1..ffd108972072 100644
--- a/drivers/scsi/lpfc/lpfc_disc.h
+++ b/drivers/scsi/lpfc/lpfc_disc.h
@@ -99,6 +99,7 @@ struct lpfc_nodelist {
99#define NLP_USG_FREE_ACK_BIT 0x8 /* Indicate ndlp memory free invoked */ 99#define NLP_USG_FREE_ACK_BIT 0x8 /* Indicate ndlp memory free invoked */
100 100
101 struct timer_list nlp_delayfunc; /* Used for delayed ELS cmds */ 101 struct timer_list nlp_delayfunc; /* Used for delayed ELS cmds */
102 struct lpfc_hba *phba;
102 struct fc_rport *rport; /* Corresponding FC transport 103 struct fc_rport *rport; /* Corresponding FC transport
103 port structure */ 104 port structure */
104 struct lpfc_vport *vport; 105 struct lpfc_vport *vport;
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index a7302480bc4a..b8b34cf5c3d2 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -55,7 +55,7 @@ static void lpfc_register_new_vport(struct lpfc_hba *phba,
55static int lpfc_max_els_tries = 3; 55static int lpfc_max_els_tries = 3;
56 56
57/** 57/**
58 * lpfc_els_chk_latt: Check host link attention event for a vport. 58 * lpfc_els_chk_latt - Check host link attention event for a vport
59 * @vport: pointer to a host virtual N_Port data structure. 59 * @vport: pointer to a host virtual N_Port data structure.
60 * 60 *
61 * This routine checks whether there is an outstanding host link 61 * This routine checks whether there is an outstanding host link
@@ -116,7 +116,7 @@ lpfc_els_chk_latt(struct lpfc_vport *vport)
116} 116}
117 117
118/** 118/**
119 * lpfc_prep_els_iocb: Allocate and prepare a lpfc iocb data structure. 119 * lpfc_prep_els_iocb - Allocate and prepare a lpfc iocb data structure
120 * @vport: pointer to a host virtual N_Port data structure. 120 * @vport: pointer to a host virtual N_Port data structure.
121 * @expectRsp: flag indicating whether response is expected. 121 * @expectRsp: flag indicating whether response is expected.
122 * @cmdSize: size of the ELS command. 122 * @cmdSize: size of the ELS command.
@@ -290,7 +290,7 @@ els_iocb_free_pcmb_exit:
290} 290}
291 291
292/** 292/**
293 * lpfc_issue_fabric_reglogin: Issue fabric registration login for a vport. 293 * lpfc_issue_fabric_reglogin - Issue fabric registration login for a vport
294 * @vport: pointer to a host virtual N_Port data structure. 294 * @vport: pointer to a host virtual N_Port data structure.
295 * 295 *
296 * This routine issues a fabric registration login for a @vport. An 296 * This routine issues a fabric registration login for a @vport. An
@@ -386,7 +386,7 @@ fail:
386} 386}
387 387
388/** 388/**
389 * lpfc_cmpl_els_flogi_fabric: Completion function for flogi to a fabric port. 389 * lpfc_cmpl_els_flogi_fabric - Completion function for flogi to a fabric port
390 * @vport: pointer to a host virtual N_Port data structure. 390 * @vport: pointer to a host virtual N_Port data structure.
391 * @ndlp: pointer to a node-list data structure. 391 * @ndlp: pointer to a node-list data structure.
392 * @sp: pointer to service parameter data structure. 392 * @sp: pointer to service parameter data structure.
@@ -509,7 +509,7 @@ lpfc_cmpl_els_flogi_fabric(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
509} 509}
510 510
511/** 511/**
512 * lpfc_cmpl_els_flogi_nport: Completion function for flogi to an N_Port. 512 * lpfc_cmpl_els_flogi_nport - Completion function for flogi to an N_Port
513 * @vport: pointer to a host virtual N_Port data structure. 513 * @vport: pointer to a host virtual N_Port data structure.
514 * @ndlp: pointer to a node-list data structure. 514 * @ndlp: pointer to a node-list data structure.
515 * @sp: pointer to service parameter data structure. 515 * @sp: pointer to service parameter data structure.
@@ -626,7 +626,7 @@ fail:
626} 626}
627 627
628/** 628/**
629 * lpfc_cmpl_els_flogi: Completion callback function for flogi. 629 * lpfc_cmpl_els_flogi - Completion callback function for flogi
630 * @phba: pointer to lpfc hba data structure. 630 * @phba: pointer to lpfc hba data structure.
631 * @cmdiocb: pointer to lpfc command iocb data structure. 631 * @cmdiocb: pointer to lpfc command iocb data structure.
632 * @rspiocb: pointer to lpfc response iocb data structure. 632 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -751,7 +751,7 @@ out:
751} 751}
752 752
753/** 753/**
754 * lpfc_issue_els_flogi: Issue an flogi iocb command for a vport. 754 * lpfc_issue_els_flogi - Issue an flogi iocb command for a vport
755 * @vport: pointer to a host virtual N_Port data structure. 755 * @vport: pointer to a host virtual N_Port data structure.
756 * @ndlp: pointer to a node-list data structure. 756 * @ndlp: pointer to a node-list data structure.
757 * @retry: number of retries to the command IOCB. 757 * @retry: number of retries to the command IOCB.
@@ -849,7 +849,7 @@ lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
849} 849}
850 850
851/** 851/**
852 * lpfc_els_abort_flogi: Abort all outstanding flogi iocbs. 852 * lpfc_els_abort_flogi - Abort all outstanding flogi iocbs
853 * @phba: pointer to lpfc hba data structure. 853 * @phba: pointer to lpfc hba data structure.
854 * 854 *
855 * This routine aborts all the outstanding Fabric Login (FLOGI) IOCBs 855 * This routine aborts all the outstanding Fabric Login (FLOGI) IOCBs
@@ -898,7 +898,7 @@ lpfc_els_abort_flogi(struct lpfc_hba *phba)
898} 898}
899 899
900/** 900/**
901 * lpfc_initial_flogi: Issue an initial fabric login for a vport. 901 * lpfc_initial_flogi - Issue an initial fabric login for a vport
902 * @vport: pointer to a host virtual N_Port data structure. 902 * @vport: pointer to a host virtual N_Port data structure.
903 * 903 *
904 * This routine issues an initial Fabric Login (FLOGI) for the @vport 904 * This routine issues an initial Fabric Login (FLOGI) for the @vport
@@ -949,7 +949,7 @@ lpfc_initial_flogi(struct lpfc_vport *vport)
949} 949}
950 950
951/** 951/**
952 * lpfc_initial_fdisc: Issue an initial fabric discovery for a vport. 952 * lpfc_initial_fdisc - Issue an initial fabric discovery for a vport
953 * @vport: pointer to a host virtual N_Port data structure. 953 * @vport: pointer to a host virtual N_Port data structure.
954 * 954 *
955 * This routine issues an initial Fabric Discover (FDISC) for the @vport 955 * This routine issues an initial Fabric Discover (FDISC) for the @vport
@@ -998,7 +998,7 @@ lpfc_initial_fdisc(struct lpfc_vport *vport)
998} 998}
999 999
1000/** 1000/**
1001 * lpfc_more_plogi: Check and issue remaining plogis for a vport. 1001 * lpfc_more_plogi - Check and issue remaining plogis for a vport
1002 * @vport: pointer to a host virtual N_Port data structure. 1002 * @vport: pointer to a host virtual N_Port data structure.
1003 * 1003 *
1004 * This routine checks whether there are more remaining Port Logins 1004 * This routine checks whether there are more remaining Port Logins
@@ -1031,7 +1031,7 @@ lpfc_more_plogi(struct lpfc_vport *vport)
1031} 1031}
1032 1032
1033/** 1033/**
1034 * lpfc_plogi_confirm_nport: Confirm pologi wwpn matches stored ndlp. 1034 * lpfc_plogi_confirm_nport - Confirm pologi wwpn matches stored ndlp
1035 * @phba: pointer to lpfc hba data structure. 1035 * @phba: pointer to lpfc hba data structure.
1036 * @prsp: pointer to response IOCB payload. 1036 * @prsp: pointer to response IOCB payload.
1037 * @ndlp: pointer to a node-list data structure. 1037 * @ndlp: pointer to a node-list data structure.
@@ -1165,7 +1165,7 @@ lpfc_plogi_confirm_nport(struct lpfc_hba *phba, uint32_t *prsp,
1165} 1165}
1166 1166
1167/** 1167/**
1168 * lpfc_end_rscn: Check and handle more rscn for a vport. 1168 * lpfc_end_rscn - Check and handle more rscn for a vport
1169 * @vport: pointer to a host virtual N_Port data structure. 1169 * @vport: pointer to a host virtual N_Port data structure.
1170 * 1170 *
1171 * This routine checks whether more Registration State Change 1171 * This routine checks whether more Registration State Change
@@ -1197,7 +1197,7 @@ lpfc_end_rscn(struct lpfc_vport *vport)
1197} 1197}
1198 1198
1199/** 1199/**
1200 * lpfc_cmpl_els_plogi: Completion callback function for plogi. 1200 * lpfc_cmpl_els_plogi - Completion callback function for plogi
1201 * @phba: pointer to lpfc hba data structure. 1201 * @phba: pointer to lpfc hba data structure.
1202 * @cmdiocb: pointer to lpfc command iocb data structure. 1202 * @cmdiocb: pointer to lpfc command iocb data structure.
1203 * @rspiocb: pointer to lpfc response iocb data structure. 1203 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -1322,7 +1322,7 @@ out:
1322} 1322}
1323 1323
1324/** 1324/**
1325 * lpfc_issue_els_plogi: Issue an plogi iocb command for a vport. 1325 * lpfc_issue_els_plogi - Issue an plogi iocb command for a vport
1326 * @vport: pointer to a host virtual N_Port data structure. 1326 * @vport: pointer to a host virtual N_Port data structure.
1327 * @did: destination port identifier. 1327 * @did: destination port identifier.
1328 * @retry: number of retries to the command IOCB. 1328 * @retry: number of retries to the command IOCB.
@@ -1401,7 +1401,7 @@ lpfc_issue_els_plogi(struct lpfc_vport *vport, uint32_t did, uint8_t retry)
1401} 1401}
1402 1402
1403/** 1403/**
1404 * lpfc_cmpl_els_prli: Completion callback function for prli. 1404 * lpfc_cmpl_els_prli - Completion callback function for prli
1405 * @phba: pointer to lpfc hba data structure. 1405 * @phba: pointer to lpfc hba data structure.
1406 * @cmdiocb: pointer to lpfc command iocb data structure. 1406 * @cmdiocb: pointer to lpfc command iocb data structure.
1407 * @rspiocb: pointer to lpfc response iocb data structure. 1407 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -1472,7 +1472,7 @@ out:
1472} 1472}
1473 1473
1474/** 1474/**
1475 * lpfc_issue_els_prli: Issue a prli iocb command for a vport. 1475 * lpfc_issue_els_prli - Issue a prli iocb command for a vport
1476 * @vport: pointer to a host virtual N_Port data structure. 1476 * @vport: pointer to a host virtual N_Port data structure.
1477 * @ndlp: pointer to a node-list data structure. 1477 * @ndlp: pointer to a node-list data structure.
1478 * @retry: number of retries to the command IOCB. 1478 * @retry: number of retries to the command IOCB.
@@ -1562,7 +1562,7 @@ lpfc_issue_els_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1562} 1562}
1563 1563
1564/** 1564/**
1565 * lpfc_rscn_disc: Perform rscn discovery for a vport. 1565 * lpfc_rscn_disc - Perform rscn discovery for a vport
1566 * @vport: pointer to a host virtual N_Port data structure. 1566 * @vport: pointer to a host virtual N_Port data structure.
1567 * 1567 *
1568 * This routine performs Registration State Change Notification (RSCN) 1568 * This routine performs Registration State Change Notification (RSCN)
@@ -1588,7 +1588,7 @@ lpfc_rscn_disc(struct lpfc_vport *vport)
1588} 1588}
1589 1589
1590/** 1590/**
1591 * lpfc_adisc_done: Complete the adisc phase of discovery. 1591 * lpfc_adisc_done - Complete the adisc phase of discovery
1592 * @vport: pointer to lpfc_vport hba data structure that finished all ADISCs. 1592 * @vport: pointer to lpfc_vport hba data structure that finished all ADISCs.
1593 * 1593 *
1594 * This function is called when the final ADISC is completed during discovery. 1594 * This function is called when the final ADISC is completed during discovery.
@@ -1639,7 +1639,7 @@ lpfc_adisc_done(struct lpfc_vport *vport)
1639} 1639}
1640 1640
1641/** 1641/**
1642 * lpfc_more_adisc: Issue more adisc as needed. 1642 * lpfc_more_adisc - Issue more adisc as needed
1643 * @vport: pointer to a host virtual N_Port data structure. 1643 * @vport: pointer to a host virtual N_Port data structure.
1644 * 1644 *
1645 * This routine determines whether there are more ndlps on a @vport 1645 * This routine determines whether there are more ndlps on a @vport
@@ -1672,7 +1672,7 @@ lpfc_more_adisc(struct lpfc_vport *vport)
1672} 1672}
1673 1673
1674/** 1674/**
1675 * lpfc_cmpl_els_adisc: Completion callback function for adisc. 1675 * lpfc_cmpl_els_adisc - Completion callback function for adisc
1676 * @phba: pointer to lpfc hba data structure. 1676 * @phba: pointer to lpfc hba data structure.
1677 * @cmdiocb: pointer to lpfc command iocb data structure. 1677 * @cmdiocb: pointer to lpfc command iocb data structure.
1678 * @rspiocb: pointer to lpfc response iocb data structure. 1678 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -1760,7 +1760,7 @@ out:
1760} 1760}
1761 1761
1762/** 1762/**
1763 * lpfc_issue_els_adisc: Issue an address discover iocb to an node on a vport. 1763 * lpfc_issue_els_adisc - Issue an address discover iocb to an node on a vport
1764 * @vport: pointer to a virtual N_Port data structure. 1764 * @vport: pointer to a virtual N_Port data structure.
1765 * @ndlp: pointer to a node-list data structure. 1765 * @ndlp: pointer to a node-list data structure.
1766 * @retry: number of retries to the command IOCB. 1766 * @retry: number of retries to the command IOCB.
@@ -1833,7 +1833,7 @@ lpfc_issue_els_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1833} 1833}
1834 1834
1835/** 1835/**
1836 * lpfc_cmpl_els_logo: Completion callback function for logo. 1836 * lpfc_cmpl_els_logo - Completion callback function for logo
1837 * @phba: pointer to lpfc hba data structure. 1837 * @phba: pointer to lpfc hba data structure.
1838 * @cmdiocb: pointer to lpfc command iocb data structure. 1838 * @cmdiocb: pointer to lpfc command iocb data structure.
1839 * @rspiocb: pointer to lpfc response iocb data structure. 1839 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -1910,7 +1910,7 @@ out:
1910} 1910}
1911 1911
1912/** 1912/**
1913 * lpfc_issue_els_logo: Issue a logo to an node on a vport. 1913 * lpfc_issue_els_logo - Issue a logo to an node on a vport
1914 * @vport: pointer to a virtual N_Port data structure. 1914 * @vport: pointer to a virtual N_Port data structure.
1915 * @ndlp: pointer to a node-list data structure. 1915 * @ndlp: pointer to a node-list data structure.
1916 * @retry: number of retries to the command IOCB. 1916 * @retry: number of retries to the command IOCB.
@@ -1991,7 +1991,7 @@ lpfc_issue_els_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1991} 1991}
1992 1992
1993/** 1993/**
1994 * lpfc_cmpl_els_cmd: Completion callback function for generic els command. 1994 * lpfc_cmpl_els_cmd - Completion callback function for generic els command
1995 * @phba: pointer to lpfc hba data structure. 1995 * @phba: pointer to lpfc hba data structure.
1996 * @cmdiocb: pointer to lpfc command iocb data structure. 1996 * @cmdiocb: pointer to lpfc command iocb data structure.
1997 * @rspiocb: pointer to lpfc response iocb data structure. 1997 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -2031,7 +2031,7 @@ lpfc_cmpl_els_cmd(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
2031} 2031}
2032 2032
2033/** 2033/**
2034 * lpfc_issue_els_scr: Issue a scr to an node on a vport. 2034 * lpfc_issue_els_scr - Issue a scr to an node on a vport
2035 * @vport: pointer to a host virtual N_Port data structure. 2035 * @vport: pointer to a host virtual N_Port data structure.
2036 * @nportid: N_Port identifier to the remote node. 2036 * @nportid: N_Port identifier to the remote node.
2037 * @retry: number of retries to the command IOCB. 2037 * @retry: number of retries to the command IOCB.
@@ -2125,7 +2125,7 @@ lpfc_issue_els_scr(struct lpfc_vport *vport, uint32_t nportid, uint8_t retry)
2125} 2125}
2126 2126
2127/** 2127/**
2128 * lpfc_issue_els_farpr: Issue a farp to an node on a vport. 2128 * lpfc_issue_els_farpr - Issue a farp to an node on a vport
2129 * @vport: pointer to a host virtual N_Port data structure. 2129 * @vport: pointer to a host virtual N_Port data structure.
2130 * @nportid: N_Port identifier to the remote node. 2130 * @nportid: N_Port identifier to the remote node.
2131 * @retry: number of retries to the command IOCB. 2131 * @retry: number of retries to the command IOCB.
@@ -2236,7 +2236,7 @@ lpfc_issue_els_farpr(struct lpfc_vport *vport, uint32_t nportid, uint8_t retry)
2236} 2236}
2237 2237
2238/** 2238/**
2239 * lpfc_cancel_retry_delay_tmo: Cancel the timer with delayed iocb-cmd retry. 2239 * lpfc_cancel_retry_delay_tmo - Cancel the timer with delayed iocb-cmd retry
2240 * @vport: pointer to a host virtual N_Port data structure. 2240 * @vport: pointer to a host virtual N_Port data structure.
2241 * @nlp: pointer to a node-list data structure. 2241 * @nlp: pointer to a node-list data structure.
2242 * 2242 *
@@ -2291,7 +2291,7 @@ lpfc_cancel_retry_delay_tmo(struct lpfc_vport *vport, struct lpfc_nodelist *nlp)
2291} 2291}
2292 2292
2293/** 2293/**
2294 * lpfc_els_retry_delay: Timer function with a ndlp delayed function timer. 2294 * lpfc_els_retry_delay - Timer function with a ndlp delayed function timer
2295 * @ptr: holder for the pointer to the timer function associated data (ndlp). 2295 * @ptr: holder for the pointer to the timer function associated data (ndlp).
2296 * 2296 *
2297 * This routine is invoked by the ndlp delayed-function timer to check 2297 * This routine is invoked by the ndlp delayed-function timer to check
@@ -2333,7 +2333,7 @@ lpfc_els_retry_delay(unsigned long ptr)
2333} 2333}
2334 2334
2335/** 2335/**
2336 * lpfc_els_retry_delay_handler: Work thread handler for ndlp delayed function. 2336 * lpfc_els_retry_delay_handler - Work thread handler for ndlp delayed function
2337 * @ndlp: pointer to a node-list data structure. 2337 * @ndlp: pointer to a node-list data structure.
2338 * 2338 *
2339 * This routine is the worker-thread handler for processing the @ndlp delayed 2339 * This routine is the worker-thread handler for processing the @ndlp delayed
@@ -2404,7 +2404,7 @@ lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp)
2404} 2404}
2405 2405
2406/** 2406/**
2407 * lpfc_els_retry: Make retry decision on an els command iocb. 2407 * lpfc_els_retry - Make retry decision on an els command iocb
2408 * @phba: pointer to lpfc hba data structure. 2408 * @phba: pointer to lpfc hba data structure.
2409 * @cmdiocb: pointer to lpfc command iocb data structure. 2409 * @cmdiocb: pointer to lpfc command iocb data structure.
2410 * @rspiocb: pointer to lpfc response iocb data structure. 2410 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -2732,7 +2732,7 @@ lpfc_els_retry(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
2732} 2732}
2733 2733
2734/** 2734/**
2735 * lpfc_els_free_data: Free lpfc dma buffer and data structure with an iocb. 2735 * lpfc_els_free_data - Free lpfc dma buffer and data structure with an iocb
2736 * @phba: pointer to lpfc hba data structure. 2736 * @phba: pointer to lpfc hba data structure.
2737 * @buf_ptr1: pointer to the lpfc DMA buffer data structure. 2737 * @buf_ptr1: pointer to the lpfc DMA buffer data structure.
2738 * 2738 *
@@ -2764,7 +2764,7 @@ lpfc_els_free_data(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr1)
2764} 2764}
2765 2765
2766/** 2766/**
2767 * lpfc_els_free_bpl: Free lpfc dma buffer and data structure with bpl. 2767 * lpfc_els_free_bpl - Free lpfc dma buffer and data structure with bpl
2768 * @phba: pointer to lpfc hba data structure. 2768 * @phba: pointer to lpfc hba data structure.
2769 * @buf_ptr: pointer to the lpfc dma buffer data structure. 2769 * @buf_ptr: pointer to the lpfc dma buffer data structure.
2770 * 2770 *
@@ -2784,7 +2784,7 @@ lpfc_els_free_bpl(struct lpfc_hba *phba, struct lpfc_dmabuf *buf_ptr)
2784} 2784}
2785 2785
2786/** 2786/**
2787 * lpfc_els_free_iocb: Free a command iocb and its associated resources. 2787 * lpfc_els_free_iocb - Free a command iocb and its associated resources
2788 * @phba: pointer to lpfc hba data structure. 2788 * @phba: pointer to lpfc hba data structure.
2789 * @elsiocb: pointer to lpfc els command iocb data structure. 2789 * @elsiocb: pointer to lpfc els command iocb data structure.
2790 * 2790 *
@@ -2877,7 +2877,7 @@ lpfc_els_free_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *elsiocb)
2877} 2877}
2878 2878
2879/** 2879/**
2880 * lpfc_cmpl_els_logo_acc: Completion callback function to logo acc response. 2880 * lpfc_cmpl_els_logo_acc - Completion callback function to logo acc response
2881 * @phba: pointer to lpfc hba data structure. 2881 * @phba: pointer to lpfc hba data structure.
2882 * @cmdiocb: pointer to lpfc command iocb data structure. 2882 * @cmdiocb: pointer to lpfc command iocb data structure.
2883 * @rspiocb: pointer to lpfc response iocb data structure. 2883 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -2931,7 +2931,7 @@ lpfc_cmpl_els_logo_acc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
2931} 2931}
2932 2932
2933/** 2933/**
2934 * lpfc_mbx_cmpl_dflt_rpi: Completion callbk func for unreg dflt rpi mbox cmd. 2934 * lpfc_mbx_cmpl_dflt_rpi - Completion callbk func for unreg dflt rpi mbox cmd
2935 * @phba: pointer to lpfc hba data structure. 2935 * @phba: pointer to lpfc hba data structure.
2936 * @pmb: pointer to the driver internal queue element for mailbox command. 2936 * @pmb: pointer to the driver internal queue element for mailbox command.
2937 * 2937 *
@@ -2965,7 +2965,7 @@ lpfc_mbx_cmpl_dflt_rpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
2965} 2965}
2966 2966
2967/** 2967/**
2968 * lpfc_cmpl_els_rsp: Completion callback function for els response iocb cmd. 2968 * lpfc_cmpl_els_rsp - Completion callback function for els response iocb cmd
2969 * @phba: pointer to lpfc hba data structure. 2969 * @phba: pointer to lpfc hba data structure.
2970 * @cmdiocb: pointer to lpfc command iocb data structure. 2970 * @cmdiocb: pointer to lpfc command iocb data structure.
2971 * @rspiocb: pointer to lpfc response iocb data structure. 2971 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -3136,7 +3136,7 @@ out:
3136} 3136}
3137 3137
3138/** 3138/**
3139 * lpfc_els_rsp_acc: Prepare and issue an acc response iocb command. 3139 * lpfc_els_rsp_acc - Prepare and issue an acc response iocb command
3140 * @vport: pointer to a host virtual N_Port data structure. 3140 * @vport: pointer to a host virtual N_Port data structure.
3141 * @flag: the els command code to be accepted. 3141 * @flag: the els command code to be accepted.
3142 * @oldiocb: pointer to the original lpfc command iocb data structure. 3142 * @oldiocb: pointer to the original lpfc command iocb data structure.
@@ -3275,7 +3275,7 @@ lpfc_els_rsp_acc(struct lpfc_vport *vport, uint32_t flag,
3275} 3275}
3276 3276
3277/** 3277/**
3278 * lpfc_els_rsp_reject: Propare and issue a rjt response iocb command. 3278 * lpfc_els_rsp_reject - Propare and issue a rjt response iocb command
3279 * @vport: pointer to a virtual N_Port data structure. 3279 * @vport: pointer to a virtual N_Port data structure.
3280 * @rejectError: 3280 * @rejectError:
3281 * @oldiocb: pointer to the original lpfc command iocb data structure. 3281 * @oldiocb: pointer to the original lpfc command iocb data structure.
@@ -3356,7 +3356,7 @@ lpfc_els_rsp_reject(struct lpfc_vport *vport, uint32_t rejectError,
3356} 3356}
3357 3357
3358/** 3358/**
3359 * lpfc_els_rsp_adisc_acc: Prepare and issue acc response to adisc iocb cmd. 3359 * lpfc_els_rsp_adisc_acc - Prepare and issue acc response to adisc iocb cmd
3360 * @vport: pointer to a virtual N_Port data structure. 3360 * @vport: pointer to a virtual N_Port data structure.
3361 * @oldiocb: pointer to the original lpfc command iocb data structure. 3361 * @oldiocb: pointer to the original lpfc command iocb data structure.
3362 * @ndlp: pointer to a node-list data structure. 3362 * @ndlp: pointer to a node-list data structure.
@@ -3431,7 +3431,7 @@ lpfc_els_rsp_adisc_acc(struct lpfc_vport *vport, struct lpfc_iocbq *oldiocb,
3431} 3431}
3432 3432
3433/** 3433/**
3434 * lpfc_els_rsp_prli_acc: Prepare and issue acc response to prli iocb cmd. 3434 * lpfc_els_rsp_prli_acc - Prepare and issue acc response to prli iocb cmd
3435 * @vport: pointer to a virtual N_Port data structure. 3435 * @vport: pointer to a virtual N_Port data structure.
3436 * @oldiocb: pointer to the original lpfc command iocb data structure. 3436 * @oldiocb: pointer to the original lpfc command iocb data structure.
3437 * @ndlp: pointer to a node-list data structure. 3437 * @ndlp: pointer to a node-list data structure.
@@ -3529,7 +3529,7 @@ lpfc_els_rsp_prli_acc(struct lpfc_vport *vport, struct lpfc_iocbq *oldiocb,
3529} 3529}
3530 3530
3531/** 3531/**
3532 * lpfc_els_rsp_rnid_acc: Issue rnid acc response iocb command. 3532 * lpfc_els_rsp_rnid_acc - Issue rnid acc response iocb command
3533 * @vport: pointer to a virtual N_Port data structure. 3533 * @vport: pointer to a virtual N_Port data structure.
3534 * @format: rnid command format. 3534 * @format: rnid command format.
3535 * @oldiocb: pointer to the original lpfc command iocb data structure. 3535 * @oldiocb: pointer to the original lpfc command iocb data structure.
@@ -3635,7 +3635,7 @@ lpfc_els_rsp_rnid_acc(struct lpfc_vport *vport, uint8_t format,
3635} 3635}
3636 3636
3637/** 3637/**
3638 * lpfc_els_disc_adisc: Issue remaining adisc iocbs to npr nodes of a vport. 3638 * lpfc_els_disc_adisc - Issue remaining adisc iocbs to npr nodes of a vport
3639 * @vport: pointer to a host virtual N_Port data structure. 3639 * @vport: pointer to a host virtual N_Port data structure.
3640 * 3640 *
3641 * This routine issues Address Discover (ADISC) ELS commands to those 3641 * This routine issues Address Discover (ADISC) ELS commands to those
@@ -3693,7 +3693,7 @@ lpfc_els_disc_adisc(struct lpfc_vport *vport)
3693} 3693}
3694 3694
3695/** 3695/**
3696 * lpfc_els_disc_plogi: Issue plogi for all npr nodes of a vport before adisc. 3696 * lpfc_els_disc_plogi - Issue plogi for all npr nodes of a vport before adisc
3697 * @vport: pointer to a host virtual N_Port data structure. 3697 * @vport: pointer to a host virtual N_Port data structure.
3698 * 3698 *
3699 * This routine issues Port Login (PLOGI) ELS commands to all the N_Ports 3699 * This routine issues Port Login (PLOGI) ELS commands to all the N_Ports
@@ -3752,7 +3752,7 @@ lpfc_els_disc_plogi(struct lpfc_vport *vport)
3752} 3752}
3753 3753
3754/** 3754/**
3755 * lpfc_els_flush_rscn: Clean up any rscn activities with a vport. 3755 * lpfc_els_flush_rscn - Clean up any rscn activities with a vport
3756 * @vport: pointer to a host virtual N_Port data structure. 3756 * @vport: pointer to a host virtual N_Port data structure.
3757 * 3757 *
3758 * This routine cleans up any Registration State Change Notification 3758 * This routine cleans up any Registration State Change Notification
@@ -3791,7 +3791,7 @@ lpfc_els_flush_rscn(struct lpfc_vport *vport)
3791} 3791}
3792 3792
3793/** 3793/**
3794 * lpfc_rscn_payload_check: Check whether there is a pending rscn to a did. 3794 * lpfc_rscn_payload_check - Check whether there is a pending rscn to a did
3795 * @vport: pointer to a host virtual N_Port data structure. 3795 * @vport: pointer to a host virtual N_Port data structure.
3796 * @did: remote destination port identifier. 3796 * @did: remote destination port identifier.
3797 * 3797 *
@@ -3866,7 +3866,7 @@ return_did_out:
3866} 3866}
3867 3867
3868/** 3868/**
3869 * lpfc_rscn_recovery_check: Send recovery event to vport nodes matching rscn 3869 * lpfc_rscn_recovery_check - Send recovery event to vport nodes matching rscn
3870 * @vport: pointer to a host virtual N_Port data structure. 3870 * @vport: pointer to a host virtual N_Port data structure.
3871 * 3871 *
3872 * This routine sends recovery (NLP_EVT_DEVICE_RECOVERY) event to the 3872 * This routine sends recovery (NLP_EVT_DEVICE_RECOVERY) event to the
@@ -3895,7 +3895,7 @@ lpfc_rscn_recovery_check(struct lpfc_vport *vport)
3895} 3895}
3896 3896
3897/** 3897/**
3898 * lpfc_send_rscn_event: Send an RSCN event to management application. 3898 * lpfc_send_rscn_event - Send an RSCN event to management application
3899 * @vport: pointer to a host virtual N_Port data structure. 3899 * @vport: pointer to a host virtual N_Port data structure.
3900 * @cmdiocb: pointer to lpfc command iocb data structure. 3900 * @cmdiocb: pointer to lpfc command iocb data structure.
3901 * 3901 *
@@ -3938,7 +3938,7 @@ lpfc_send_rscn_event(struct lpfc_vport *vport,
3938} 3938}
3939 3939
3940/** 3940/**
3941 * lpfc_els_rcv_rscn: Process an unsolicited rscn iocb. 3941 * lpfc_els_rcv_rscn - Process an unsolicited rscn iocb
3942 * @vport: pointer to a host virtual N_Port data structure. 3942 * @vport: pointer to a host virtual N_Port data structure.
3943 * @cmdiocb: pointer to lpfc command iocb data structure. 3943 * @cmdiocb: pointer to lpfc command iocb data structure.
3944 * @ndlp: pointer to a node-list data structure. 3944 * @ndlp: pointer to a node-list data structure.
@@ -4134,7 +4134,7 @@ lpfc_els_rcv_rscn(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4134} 4134}
4135 4135
4136/** 4136/**
4137 * lpfc_els_handle_rscn: Handle rscn for a vport. 4137 * lpfc_els_handle_rscn - Handle rscn for a vport
4138 * @vport: pointer to a host virtual N_Port data structure. 4138 * @vport: pointer to a host virtual N_Port data structure.
4139 * 4139 *
4140 * This routine handles the Registration State Configuration Notification 4140 * This routine handles the Registration State Configuration Notification
@@ -4222,7 +4222,7 @@ lpfc_els_handle_rscn(struct lpfc_vport *vport)
4222} 4222}
4223 4223
4224/** 4224/**
4225 * lpfc_els_rcv_flogi: Process an unsolicited flogi iocb. 4225 * lpfc_els_rcv_flogi - Process an unsolicited flogi iocb
4226 * @vport: pointer to a host virtual N_Port data structure. 4226 * @vport: pointer to a host virtual N_Port data structure.
4227 * @cmdiocb: pointer to lpfc command iocb data structure. 4227 * @cmdiocb: pointer to lpfc command iocb data structure.
4228 * @ndlp: pointer to a node-list data structure. 4228 * @ndlp: pointer to a node-list data structure.
@@ -4336,7 +4336,7 @@ lpfc_els_rcv_flogi(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4336} 4336}
4337 4337
4338/** 4338/**
4339 * lpfc_els_rcv_rnid: Process an unsolicited rnid iocb. 4339 * lpfc_els_rcv_rnid - Process an unsolicited rnid iocb
4340 * @vport: pointer to a host virtual N_Port data structure. 4340 * @vport: pointer to a host virtual N_Port data structure.
4341 * @cmdiocb: pointer to lpfc command iocb data structure. 4341 * @cmdiocb: pointer to lpfc command iocb data structure.
4342 * @ndlp: pointer to a node-list data structure. 4342 * @ndlp: pointer to a node-list data structure.
@@ -4391,7 +4391,7 @@ lpfc_els_rcv_rnid(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4391} 4391}
4392 4392
4393/** 4393/**
4394 * lpfc_els_rcv_lirr: Process an unsolicited lirr iocb. 4394 * lpfc_els_rcv_lirr - Process an unsolicited lirr iocb
4395 * @vport: pointer to a host virtual N_Port data structure. 4395 * @vport: pointer to a host virtual N_Port data structure.
4396 * @cmdiocb: pointer to lpfc command iocb data structure. 4396 * @cmdiocb: pointer to lpfc command iocb data structure.
4397 * @ndlp: pointer to a node-list data structure. 4397 * @ndlp: pointer to a node-list data structure.
@@ -4419,7 +4419,7 @@ lpfc_els_rcv_lirr(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4419} 4419}
4420 4420
4421/** 4421/**
4422 * lpfc_els_rsp_rps_acc: Completion callbk func for MBX_READ_LNK_STAT mbox cmd. 4422 * lpfc_els_rsp_rps_acc - Completion callbk func for MBX_READ_LNK_STAT mbox cmd
4423 * @phba: pointer to lpfc hba data structure. 4423 * @phba: pointer to lpfc hba data structure.
4424 * @pmb: pointer to the driver internal queue element for mailbox command. 4424 * @pmb: pointer to the driver internal queue element for mailbox command.
4425 * 4425 *
@@ -4513,7 +4513,7 @@ lpfc_els_rsp_rps_acc(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
4513} 4513}
4514 4514
4515/** 4515/**
4516 * lpfc_els_rcv_rps: Process an unsolicited rps iocb. 4516 * lpfc_els_rcv_rps - Process an unsolicited rps iocb
4517 * @vport: pointer to a host virtual N_Port data structure. 4517 * @vport: pointer to a host virtual N_Port data structure.
4518 * @cmdiocb: pointer to lpfc command iocb data structure. 4518 * @cmdiocb: pointer to lpfc command iocb data structure.
4519 * @ndlp: pointer to a node-list data structure. 4519 * @ndlp: pointer to a node-list data structure.
@@ -4590,7 +4590,7 @@ reject_out:
4590} 4590}
4591 4591
4592/** 4592/**
4593 * lpfc_els_rsp_rpl_acc: Issue an accept rpl els command. 4593 * lpfc_els_rsp_rpl_acc - Issue an accept rpl els command
4594 * @vport: pointer to a host virtual N_Port data structure. 4594 * @vport: pointer to a host virtual N_Port data structure.
4595 * @cmdsize: size of the ELS command. 4595 * @cmdsize: size of the ELS command.
4596 * @oldiocb: pointer to the original lpfc command iocb data structure. 4596 * @oldiocb: pointer to the original lpfc command iocb data structure.
@@ -4662,7 +4662,7 @@ lpfc_els_rsp_rpl_acc(struct lpfc_vport *vport, uint16_t cmdsize,
4662} 4662}
4663 4663
4664/** 4664/**
4665 * lpfc_els_rcv_rpl: Process an unsolicited rpl iocb. 4665 * lpfc_els_rcv_rpl - Process an unsolicited rpl iocb
4666 * @vport: pointer to a host virtual N_Port data structure. 4666 * @vport: pointer to a host virtual N_Port data structure.
4667 * @cmdiocb: pointer to lpfc command iocb data structure. 4667 * @cmdiocb: pointer to lpfc command iocb data structure.
4668 * @ndlp: pointer to a node-list data structure. 4668 * @ndlp: pointer to a node-list data structure.
@@ -4721,7 +4721,7 @@ lpfc_els_rcv_rpl(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4721} 4721}
4722 4722
4723/** 4723/**
4724 * lpfc_els_rcv_farp: Process an unsolicited farp request els command. 4724 * lpfc_els_rcv_farp - Process an unsolicited farp request els command
4725 * @vport: pointer to a virtual N_Port data structure. 4725 * @vport: pointer to a virtual N_Port data structure.
4726 * @cmdiocb: pointer to lpfc command iocb data structure. 4726 * @cmdiocb: pointer to lpfc command iocb data structure.
4727 * @ndlp: pointer to a node-list data structure. 4727 * @ndlp: pointer to a node-list data structure.
@@ -4804,7 +4804,7 @@ lpfc_els_rcv_farp(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4804} 4804}
4805 4805
4806/** 4806/**
4807 * lpfc_els_rcv_farpr: Process an unsolicited farp response iocb. 4807 * lpfc_els_rcv_farpr - Process an unsolicited farp response iocb
4808 * @vport: pointer to a host virtual N_Port data structure. 4808 * @vport: pointer to a host virtual N_Port data structure.
4809 * @cmdiocb: pointer to lpfc command iocb data structure. 4809 * @cmdiocb: pointer to lpfc command iocb data structure.
4810 * @ndlp: pointer to a node-list data structure. 4810 * @ndlp: pointer to a node-list data structure.
@@ -4842,7 +4842,7 @@ lpfc_els_rcv_farpr(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4842} 4842}
4843 4843
4844/** 4844/**
4845 * lpfc_els_rcv_fan: Process an unsolicited fan iocb command. 4845 * lpfc_els_rcv_fan - Process an unsolicited fan iocb command
4846 * @vport: pointer to a host virtual N_Port data structure. 4846 * @vport: pointer to a host virtual N_Port data structure.
4847 * @cmdiocb: pointer to lpfc command iocb data structure. 4847 * @cmdiocb: pointer to lpfc command iocb data structure.
4848 * @fan_ndlp: pointer to a node-list data structure. 4848 * @fan_ndlp: pointer to a node-list data structure.
@@ -4890,7 +4890,7 @@ lpfc_els_rcv_fan(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4890} 4890}
4891 4891
4892/** 4892/**
4893 * lpfc_els_timeout: Handler funciton to the els timer. 4893 * lpfc_els_timeout - Handler funciton to the els timer
4894 * @ptr: holder for the timer function associated data. 4894 * @ptr: holder for the timer function associated data.
4895 * 4895 *
4896 * This routine is invoked by the ELS timer after timeout. It posts the ELS 4896 * This routine is invoked by the ELS timer after timeout. It posts the ELS
@@ -4919,7 +4919,7 @@ lpfc_els_timeout(unsigned long ptr)
4919} 4919}
4920 4920
4921/** 4921/**
4922 * lpfc_els_timeout_handler: Process an els timeout event. 4922 * lpfc_els_timeout_handler - Process an els timeout event
4923 * @vport: pointer to a virtual N_Port data structure. 4923 * @vport: pointer to a virtual N_Port data structure.
4924 * 4924 *
4925 * This routine is the actual handler function that processes an ELS timeout 4925 * This routine is the actual handler function that processes an ELS timeout
@@ -4994,7 +4994,7 @@ lpfc_els_timeout_handler(struct lpfc_vport *vport)
4994} 4994}
4995 4995
4996/** 4996/**
4997 * lpfc_els_flush_cmd: Clean up the outstanding els commands to a vport. 4997 * lpfc_els_flush_cmd - Clean up the outstanding els commands to a vport
4998 * @vport: pointer to a host virtual N_Port data structure. 4998 * @vport: pointer to a host virtual N_Port data structure.
4999 * 4999 *
5000 * This routine is used to clean up all the outstanding ELS commands on a 5000 * This routine is used to clean up all the outstanding ELS commands on a
@@ -5058,25 +5058,15 @@ lpfc_els_flush_cmd(struct lpfc_vport *vport)
5058 } 5058 }
5059 spin_unlock_irq(&phba->hbalock); 5059 spin_unlock_irq(&phba->hbalock);
5060 5060
5061 while (!list_empty(&completions)) { 5061 /* Cancell all the IOCBs from the completions list */
5062 piocb = list_get_first(&completions, struct lpfc_iocbq, list); 5062 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
5063 cmd = &piocb->iocb; 5063 IOERR_SLI_ABORTED);
5064 list_del_init(&piocb->list);
5065
5066 if (!piocb->iocb_cmpl)
5067 lpfc_sli_release_iocbq(phba, piocb);
5068 else {
5069 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
5070 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
5071 (piocb->iocb_cmpl) (phba, piocb, piocb);
5072 }
5073 }
5074 5064
5075 return; 5065 return;
5076} 5066}
5077 5067
5078/** 5068/**
5079 * lpfc_els_flush_all_cmd: Clean up all the outstanding els commands to a HBA. 5069 * lpfc_els_flush_all_cmd - Clean up all the outstanding els commands to a HBA
5080 * @phba: pointer to lpfc hba data structure. 5070 * @phba: pointer to lpfc hba data structure.
5081 * 5071 *
5082 * This routine is used to clean up all the outstanding ELS commands on a 5072 * This routine is used to clean up all the outstanding ELS commands on a
@@ -5121,23 +5111,16 @@ lpfc_els_flush_all_cmd(struct lpfc_hba *phba)
5121 lpfc_sli_issue_abort_iotag(phba, pring, piocb); 5111 lpfc_sli_issue_abort_iotag(phba, pring, piocb);
5122 } 5112 }
5123 spin_unlock_irq(&phba->hbalock); 5113 spin_unlock_irq(&phba->hbalock);
5124 while (!list_empty(&completions)) { 5114
5125 piocb = list_get_first(&completions, struct lpfc_iocbq, list); 5115 /* Cancel all the IOCBs from the completions list */
5126 cmd = &piocb->iocb; 5116 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
5127 list_del_init(&piocb->list); 5117 IOERR_SLI_ABORTED);
5128 if (!piocb->iocb_cmpl) 5118
5129 lpfc_sli_release_iocbq(phba, piocb);
5130 else {
5131 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
5132 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
5133 (piocb->iocb_cmpl) (phba, piocb, piocb);
5134 }
5135 }
5136 return; 5119 return;
5137} 5120}
5138 5121
5139/** 5122/**
5140 * lpfc_send_els_failure_event: Posts an ELS command failure event. 5123 * lpfc_send_els_failure_event - Posts an ELS command failure event
5141 * @phba: Pointer to hba context object. 5124 * @phba: Pointer to hba context object.
5142 * @cmdiocbp: Pointer to command iocb which reported error. 5125 * @cmdiocbp: Pointer to command iocb which reported error.
5143 * @rspiocbp: Pointer to response iocb which reported error. 5126 * @rspiocbp: Pointer to response iocb which reported error.
@@ -5204,7 +5187,7 @@ lpfc_send_els_failure_event(struct lpfc_hba *phba,
5204} 5187}
5205 5188
5206/** 5189/**
5207 * lpfc_send_els_event: Posts unsolicited els event. 5190 * lpfc_send_els_event - Posts unsolicited els event
5208 * @vport: Pointer to vport object. 5191 * @vport: Pointer to vport object.
5209 * @ndlp: Pointer FC node object. 5192 * @ndlp: Pointer FC node object.
5210 * @cmd: ELS command code. 5193 * @cmd: ELS command code.
@@ -5284,7 +5267,7 @@ lpfc_send_els_event(struct lpfc_vport *vport,
5284 5267
5285 5268
5286/** 5269/**
5287 * lpfc_els_unsol_buffer: Process an unsolicited event data buffer. 5270 * lpfc_els_unsol_buffer - Process an unsolicited event data buffer
5288 * @phba: pointer to lpfc hba data structure. 5271 * @phba: pointer to lpfc hba data structure.
5289 * @pring: pointer to a SLI ring. 5272 * @pring: pointer to a SLI ring.
5290 * @vport: pointer to a host virtual N_Port data structure. 5273 * @vport: pointer to a host virtual N_Port data structure.
@@ -5592,7 +5575,7 @@ dropit:
5592} 5575}
5593 5576
5594/** 5577/**
5595 * lpfc_find_vport_by_vpid: Find a vport on a HBA through vport identifier. 5578 * lpfc_find_vport_by_vpid - Find a vport on a HBA through vport identifier
5596 * @phba: pointer to lpfc hba data structure. 5579 * @phba: pointer to lpfc hba data structure.
5597 * @vpi: host virtual N_Port identifier. 5580 * @vpi: host virtual N_Port identifier.
5598 * 5581 *
@@ -5622,7 +5605,7 @@ lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi)
5622} 5605}
5623 5606
5624/** 5607/**
5625 * lpfc_els_unsol_event: Process an unsolicited event from an els sli ring. 5608 * lpfc_els_unsol_event - Process an unsolicited event from an els sli ring
5626 * @phba: pointer to lpfc hba data structure. 5609 * @phba: pointer to lpfc hba data structure.
5627 * @pring: pointer to a SLI ring. 5610 * @pring: pointer to a SLI ring.
5628 * @elsiocb: pointer to lpfc els iocb data structure. 5611 * @elsiocb: pointer to lpfc els iocb data structure.
@@ -5710,7 +5693,7 @@ lpfc_els_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
5710} 5693}
5711 5694
5712/** 5695/**
5713 * lpfc_do_scr_ns_plogi: Issue a plogi to the name server for scr. 5696 * lpfc_do_scr_ns_plogi - Issue a plogi to the name server for scr
5714 * @phba: pointer to lpfc hba data structure. 5697 * @phba: pointer to lpfc hba data structure.
5715 * @vport: pointer to a virtual N_Port data structure. 5698 * @vport: pointer to a virtual N_Port data structure.
5716 * 5699 *
@@ -5781,7 +5764,7 @@ lpfc_do_scr_ns_plogi(struct lpfc_hba *phba, struct lpfc_vport *vport)
5781} 5764}
5782 5765
5783/** 5766/**
5784 * lpfc_cmpl_reg_new_vport: Completion callback function to register new vport. 5767 * lpfc_cmpl_reg_new_vport - Completion callback function to register new vport
5785 * @phba: pointer to lpfc hba data structure. 5768 * @phba: pointer to lpfc hba data structure.
5786 * @pmb: pointer to the driver internal queue element for mailbox command. 5769 * @pmb: pointer to the driver internal queue element for mailbox command.
5787 * 5770 *
@@ -5850,7 +5833,7 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
5850} 5833}
5851 5834
5852/** 5835/**
5853 * lpfc_register_new_vport: Register a new vport with a HBA. 5836 * lpfc_register_new_vport - Register a new vport with a HBA
5854 * @phba: pointer to lpfc hba data structure. 5837 * @phba: pointer to lpfc hba data structure.
5855 * @vport: pointer to a host virtual N_Port data structure. 5838 * @vport: pointer to a host virtual N_Port data structure.
5856 * @ndlp: pointer to a node-list data structure. 5839 * @ndlp: pointer to a node-list data structure.
@@ -5899,7 +5882,7 @@ mbox_err_exit:
5899} 5882}
5900 5883
5901/** 5884/**
5902 * lpfc_cmpl_els_fdisc: Completion function for fdisc iocb command. 5885 * lpfc_cmpl_els_fdisc - Completion function for fdisc iocb command
5903 * @phba: pointer to lpfc hba data structure. 5886 * @phba: pointer to lpfc hba data structure.
5904 * @cmdiocb: pointer to lpfc command iocb data structure. 5887 * @cmdiocb: pointer to lpfc command iocb data structure.
5905 * @rspiocb: pointer to lpfc response iocb data structure. 5888 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -6007,7 +5990,7 @@ out:
6007} 5990}
6008 5991
6009/** 5992/**
6010 * lpfc_issue_els_fdisc: Issue a fdisc iocb command. 5993 * lpfc_issue_els_fdisc - Issue a fdisc iocb command
6011 * @vport: pointer to a virtual N_Port data structure. 5994 * @vport: pointer to a virtual N_Port data structure.
6012 * @ndlp: pointer to a node-list data structure. 5995 * @ndlp: pointer to a node-list data structure.
6013 * @retry: number of retries to the command IOCB. 5996 * @retry: number of retries to the command IOCB.
@@ -6101,7 +6084,7 @@ lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
6101} 6084}
6102 6085
6103/** 6086/**
6104 * lpfc_cmpl_els_npiv_logo: Completion function with vport logo. 6087 * lpfc_cmpl_els_npiv_logo - Completion function with vport logo
6105 * @phba: pointer to lpfc hba data structure. 6088 * @phba: pointer to lpfc hba data structure.
6106 * @cmdiocb: pointer to lpfc command iocb data structure. 6089 * @cmdiocb: pointer to lpfc command iocb data structure.
6107 * @rspiocb: pointer to lpfc response iocb data structure. 6090 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -6136,7 +6119,7 @@ lpfc_cmpl_els_npiv_logo(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
6136} 6119}
6137 6120
6138/** 6121/**
6139 * lpfc_issue_els_npiv_logo: Issue a logo off a vport. 6122 * lpfc_issue_els_npiv_logo - Issue a logo off a vport
6140 * @vport: pointer to a virtual N_Port data structure. 6123 * @vport: pointer to a virtual N_Port data structure.
6141 * @ndlp: pointer to a node-list data structure. 6124 * @ndlp: pointer to a node-list data structure.
6142 * 6125 *
@@ -6197,7 +6180,7 @@ lpfc_issue_els_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
6197} 6180}
6198 6181
6199/** 6182/**
6200 * lpfc_fabric_block_timeout: Handler function to the fabric block timer. 6183 * lpfc_fabric_block_timeout - Handler function to the fabric block timer
6201 * @ptr: holder for the timer function associated data. 6184 * @ptr: holder for the timer function associated data.
6202 * 6185 *
6203 * This routine is invoked by the fabric iocb block timer after 6186 * This routine is invoked by the fabric iocb block timer after
@@ -6226,7 +6209,7 @@ lpfc_fabric_block_timeout(unsigned long ptr)
6226} 6209}
6227 6210
6228/** 6211/**
6229 * lpfc_resume_fabric_iocbs: Issue a fabric iocb from driver internal list. 6212 * lpfc_resume_fabric_iocbs - Issue a fabric iocb from driver internal list
6230 * @phba: pointer to lpfc hba data structure. 6213 * @phba: pointer to lpfc hba data structure.
6231 * 6214 *
6232 * This routine issues one fabric iocb from the driver internal list to 6215 * This routine issues one fabric iocb from the driver internal list to
@@ -6285,7 +6268,7 @@ repeat:
6285} 6268}
6286 6269
6287/** 6270/**
6288 * lpfc_unblock_fabric_iocbs: Unblock issuing fabric iocb command. 6271 * lpfc_unblock_fabric_iocbs - Unblock issuing fabric iocb command
6289 * @phba: pointer to lpfc hba data structure. 6272 * @phba: pointer to lpfc hba data structure.
6290 * 6273 *
6291 * This routine unblocks the issuing fabric iocb command. The function 6274 * This routine unblocks the issuing fabric iocb command. The function
@@ -6303,7 +6286,7 @@ lpfc_unblock_fabric_iocbs(struct lpfc_hba *phba)
6303} 6286}
6304 6287
6305/** 6288/**
6306 * lpfc_block_fabric_iocbs: Block issuing fabric iocb command. 6289 * lpfc_block_fabric_iocbs - Block issuing fabric iocb command
6307 * @phba: pointer to lpfc hba data structure. 6290 * @phba: pointer to lpfc hba data structure.
6308 * 6291 *
6309 * This routine blocks the issuing fabric iocb for a specified amount of 6292 * This routine blocks the issuing fabric iocb for a specified amount of
@@ -6325,7 +6308,7 @@ lpfc_block_fabric_iocbs(struct lpfc_hba *phba)
6325} 6308}
6326 6309
6327/** 6310/**
6328 * lpfc_cmpl_fabric_iocb: Completion callback function for fabric iocb. 6311 * lpfc_cmpl_fabric_iocb - Completion callback function for fabric iocb
6329 * @phba: pointer to lpfc hba data structure. 6312 * @phba: pointer to lpfc hba data structure.
6330 * @cmdiocb: pointer to lpfc command iocb data structure. 6313 * @cmdiocb: pointer to lpfc command iocb data structure.
6331 * @rspiocb: pointer to lpfc response iocb data structure. 6314 * @rspiocb: pointer to lpfc response iocb data structure.
@@ -6384,7 +6367,7 @@ lpfc_cmpl_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
6384} 6367}
6385 6368
6386/** 6369/**
6387 * lpfc_issue_fabric_iocb: Issue a fabric iocb command. 6370 * lpfc_issue_fabric_iocb - Issue a fabric iocb command
6388 * @phba: pointer to lpfc hba data structure. 6371 * @phba: pointer to lpfc hba data structure.
6389 * @iocb: pointer to lpfc command iocb data structure. 6372 * @iocb: pointer to lpfc command iocb data structure.
6390 * 6373 *
@@ -6453,7 +6436,7 @@ lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb)
6453} 6436}
6454 6437
6455/** 6438/**
6456 * lpfc_fabric_abort_vport: Abort a vport's iocbs from driver fabric iocb list. 6439 * lpfc_fabric_abort_vport - Abort a vport's iocbs from driver fabric iocb list
6457 * @vport: pointer to a virtual N_Port data structure. 6440 * @vport: pointer to a virtual N_Port data structure.
6458 * 6441 *
6459 * This routine aborts all the IOCBs associated with a @vport from the 6442 * This routine aborts all the IOCBs associated with a @vport from the
@@ -6468,7 +6451,6 @@ static void lpfc_fabric_abort_vport(struct lpfc_vport *vport)
6468 LIST_HEAD(completions); 6451 LIST_HEAD(completions);
6469 struct lpfc_hba *phba = vport->phba; 6452 struct lpfc_hba *phba = vport->phba;
6470 struct lpfc_iocbq *tmp_iocb, *piocb; 6453 struct lpfc_iocbq *tmp_iocb, *piocb;
6471 IOCB_t *cmd;
6472 6454
6473 spin_lock_irq(&phba->hbalock); 6455 spin_lock_irq(&phba->hbalock);
6474 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, 6456 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list,
@@ -6481,19 +6463,13 @@ static void lpfc_fabric_abort_vport(struct lpfc_vport *vport)
6481 } 6463 }
6482 spin_unlock_irq(&phba->hbalock); 6464 spin_unlock_irq(&phba->hbalock);
6483 6465
6484 while (!list_empty(&completions)) { 6466 /* Cancel all the IOCBs from the completions list */
6485 piocb = list_get_first(&completions, struct lpfc_iocbq, list); 6467 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
6486 list_del_init(&piocb->list); 6468 IOERR_SLI_ABORTED);
6487
6488 cmd = &piocb->iocb;
6489 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
6490 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
6491 (piocb->iocb_cmpl) (phba, piocb, piocb);
6492 }
6493} 6469}
6494 6470
6495/** 6471/**
6496 * lpfc_fabric_abort_nport: Abort a ndlp's iocbs from driver fabric iocb list. 6472 * lpfc_fabric_abort_nport - Abort a ndlp's iocbs from driver fabric iocb list
6497 * @ndlp: pointer to a node-list data structure. 6473 * @ndlp: pointer to a node-list data structure.
6498 * 6474 *
6499 * This routine aborts all the IOCBs associated with an @ndlp from the 6475 * This routine aborts all the IOCBs associated with an @ndlp from the
@@ -6506,10 +6482,9 @@ static void lpfc_fabric_abort_vport(struct lpfc_vport *vport)
6506void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp) 6482void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp)
6507{ 6483{
6508 LIST_HEAD(completions); 6484 LIST_HEAD(completions);
6509 struct lpfc_hba *phba = ndlp->vport->phba; 6485 struct lpfc_hba *phba = ndlp->phba;
6510 struct lpfc_iocbq *tmp_iocb, *piocb; 6486 struct lpfc_iocbq *tmp_iocb, *piocb;
6511 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; 6487 struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING];
6512 IOCB_t *cmd;
6513 6488
6514 spin_lock_irq(&phba->hbalock); 6489 spin_lock_irq(&phba->hbalock);
6515 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list, 6490 list_for_each_entry_safe(piocb, tmp_iocb, &phba->fabric_iocb_list,
@@ -6521,19 +6496,13 @@ void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp)
6521 } 6496 }
6522 spin_unlock_irq(&phba->hbalock); 6497 spin_unlock_irq(&phba->hbalock);
6523 6498
6524 while (!list_empty(&completions)) { 6499 /* Cancel all the IOCBs from the completions list */
6525 piocb = list_get_first(&completions, struct lpfc_iocbq, list); 6500 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
6526 list_del_init(&piocb->list); 6501 IOERR_SLI_ABORTED);
6527
6528 cmd = &piocb->iocb;
6529 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
6530 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
6531 (piocb->iocb_cmpl) (phba, piocb, piocb);
6532 }
6533} 6502}
6534 6503
6535/** 6504/**
6536 * lpfc_fabric_abort_hba: Abort all iocbs on driver fabric iocb list. 6505 * lpfc_fabric_abort_hba - Abort all iocbs on driver fabric iocb list
6537 * @phba: pointer to lpfc hba data structure. 6506 * @phba: pointer to lpfc hba data structure.
6538 * 6507 *
6539 * This routine aborts all the IOCBs currently on the driver internal 6508 * This routine aborts all the IOCBs currently on the driver internal
@@ -6546,20 +6515,12 @@ void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp)
6546void lpfc_fabric_abort_hba(struct lpfc_hba *phba) 6515void lpfc_fabric_abort_hba(struct lpfc_hba *phba)
6547{ 6516{
6548 LIST_HEAD(completions); 6517 LIST_HEAD(completions);
6549 struct lpfc_iocbq *piocb;
6550 IOCB_t *cmd;
6551 6518
6552 spin_lock_irq(&phba->hbalock); 6519 spin_lock_irq(&phba->hbalock);
6553 list_splice_init(&phba->fabric_iocb_list, &completions); 6520 list_splice_init(&phba->fabric_iocb_list, &completions);
6554 spin_unlock_irq(&phba->hbalock); 6521 spin_unlock_irq(&phba->hbalock);
6555 6522
6556 while (!list_empty(&completions)) { 6523 /* Cancel all the IOCBs from the completions list */
6557 piocb = list_get_first(&completions, struct lpfc_iocbq, list); 6524 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
6558 list_del_init(&piocb->list); 6525 IOERR_SLI_ABORTED);
6559
6560 cmd = &piocb->iocb;
6561 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
6562 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
6563 (piocb->iocb_cmpl) (phba, piocb, piocb);
6564 }
6565} 6526}
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 311ed6dea726..e764ce0bf704 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -78,7 +78,7 @@ lpfc_terminate_rport_io(struct fc_rport *rport)
78 return; 78 return;
79 } 79 }
80 80
81 phba = ndlp->vport->phba; 81 phba = ndlp->phba;
82 82
83 lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_RPORT, 83 lpfc_debugfs_disc_trc(ndlp->vport, LPFC_DISC_TRC_RPORT,
84 "rport terminate: sid:x%x did:x%x flg:x%x", 84 "rport terminate: sid:x%x did:x%x flg:x%x",
@@ -276,7 +276,7 @@ lpfc_dev_loss_tmo_handler(struct lpfc_nodelist *ndlp)
276} 276}
277 277
278/** 278/**
279 * lpfc_alloc_fast_evt: Allocates data structure for posting event. 279 * lpfc_alloc_fast_evt - Allocates data structure for posting event
280 * @phba: Pointer to hba context object. 280 * @phba: Pointer to hba context object.
281 * 281 *
282 * This function is called from the functions which need to post 282 * This function is called from the functions which need to post
@@ -303,7 +303,7 @@ lpfc_alloc_fast_evt(struct lpfc_hba *phba) {
303} 303}
304 304
305/** 305/**
306 * lpfc_free_fast_evt: Frees event data structure. 306 * lpfc_free_fast_evt - Frees event data structure
307 * @phba: Pointer to hba context object. 307 * @phba: Pointer to hba context object.
308 * @evt: Event object which need to be freed. 308 * @evt: Event object which need to be freed.
309 * 309 *
@@ -319,7 +319,7 @@ lpfc_free_fast_evt(struct lpfc_hba *phba,
319} 319}
320 320
321/** 321/**
322 * lpfc_send_fastpath_evt: Posts events generated from fast path. 322 * lpfc_send_fastpath_evt - Posts events generated from fast path
323 * @phba: Pointer to hba context object. 323 * @phba: Pointer to hba context object.
324 * @evtp: Event data structure. 324 * @evtp: Event data structure.
325 * 325 *
@@ -1858,13 +1858,18 @@ lpfc_disable_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
1858 NLP_STE_UNUSED_NODE); 1858 NLP_STE_UNUSED_NODE);
1859} 1859}
1860/** 1860/**
1861 * lpfc_initialize_node: Initialize all fields of node object. 1861 * lpfc_initialize_node - Initialize all fields of node object
1862 * @vport: Pointer to Virtual Port object. 1862 * @vport: Pointer to Virtual Port object.
1863 * @ndlp: Pointer to FC node object. 1863 * @ndlp: Pointer to FC node object.
1864 * @did: FC_ID of the node. 1864 * @did: FC_ID of the node.
1865 * This function is always called when node object need to 1865 *
1866 * be initialized. It initializes all the fields of the node 1866 * This function is always called when node object need to be initialized.
1867 * object. 1867 * It initializes all the fields of the node object. Although the reference
1868 * to phba from @ndlp can be obtained indirectly through it's reference to
1869 * @vport, a direct reference to phba is taken here by @ndlp. This is due
1870 * to the life-span of the @ndlp might go beyond the existence of @vport as
1871 * the final release of ndlp is determined by its reference count. And, the
1872 * operation on @ndlp needs the reference to phba.
1868 **/ 1873 **/
1869static inline void 1874static inline void
1870lpfc_initialize_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, 1875lpfc_initialize_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
@@ -1877,6 +1882,7 @@ lpfc_initialize_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1877 ndlp->nlp_delayfunc.data = (unsigned long)ndlp; 1882 ndlp->nlp_delayfunc.data = (unsigned long)ndlp;
1878 ndlp->nlp_DID = did; 1883 ndlp->nlp_DID = did;
1879 ndlp->vport = vport; 1884 ndlp->vport = vport;
1885 ndlp->phba = vport->phba;
1880 ndlp->nlp_sid = NLP_NO_SID; 1886 ndlp->nlp_sid = NLP_NO_SID;
1881 kref_init(&ndlp->kref); 1887 kref_init(&ndlp->kref);
1882 NLP_INT_NODE_ACT(ndlp); 1888 NLP_INT_NODE_ACT(ndlp);
@@ -2086,7 +2092,6 @@ lpfc_no_rpi(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
2086 struct lpfc_sli *psli; 2092 struct lpfc_sli *psli;
2087 struct lpfc_sli_ring *pring; 2093 struct lpfc_sli_ring *pring;
2088 struct lpfc_iocbq *iocb, *next_iocb; 2094 struct lpfc_iocbq *iocb, *next_iocb;
2089 IOCB_t *icmd;
2090 uint32_t rpi, i; 2095 uint32_t rpi, i;
2091 2096
2092 lpfc_fabric_abort_nport(ndlp); 2097 lpfc_fabric_abort_nport(ndlp);
@@ -2122,19 +2127,9 @@ lpfc_no_rpi(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
2122 } 2127 }
2123 } 2128 }
2124 2129
2125 while (!list_empty(&completions)) { 2130 /* Cancel all the IOCBs from the completions list */
2126 iocb = list_get_first(&completions, struct lpfc_iocbq, list); 2131 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
2127 list_del_init(&iocb->list); 2132 IOERR_SLI_ABORTED);
2128
2129 if (!iocb->iocb_cmpl)
2130 lpfc_sli_release_iocbq(phba, iocb);
2131 else {
2132 icmd = &iocb->iocb;
2133 icmd->ulpStatus = IOSTAT_LOCAL_REJECT;
2134 icmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
2135 (iocb->iocb_cmpl)(phba, iocb, iocb);
2136 }
2137 }
2138 2133
2139 return 0; 2134 return 0;
2140} 2135}
@@ -2186,9 +2181,13 @@ lpfc_unreg_all_rpis(struct lpfc_vport *vport)
2186 mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; 2181 mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
2187 mbox->context1 = NULL; 2182 mbox->context1 = NULL;
2188 rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); 2183 rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO);
2189 if (rc == MBX_NOT_FINISHED) { 2184 if (rc != MBX_TIMEOUT)
2190 mempool_free(mbox, phba->mbox_mem_pool); 2185 mempool_free(mbox, phba->mbox_mem_pool);
2191 } 2186
2187 if ((rc == MBX_TIMEOUT) || (rc == MBX_NOT_FINISHED))
2188 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX | LOG_VPORT,
2189 "1836 Could not issue "
2190 "unreg_login(all_rpis) status %d\n", rc);
2192 } 2191 }
2193} 2192}
2194 2193
@@ -2206,12 +2205,14 @@ lpfc_unreg_default_rpis(struct lpfc_vport *vport)
2206 mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl; 2205 mbox->mbox_cmpl = lpfc_sli_def_mbox_cmpl;
2207 mbox->context1 = NULL; 2206 mbox->context1 = NULL;
2208 rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO); 2207 rc = lpfc_sli_issue_mbox_wait(phba, mbox, LPFC_MBOX_TMO);
2209 if (rc == MBX_NOT_FINISHED) { 2208 if (rc != MBX_TIMEOUT)
2209 mempool_free(mbox, phba->mbox_mem_pool);
2210
2211 if ((rc == MBX_TIMEOUT) || (rc == MBX_NOT_FINISHED))
2210 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX | LOG_VPORT, 2212 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX | LOG_VPORT,
2211 "1815 Could not issue " 2213 "1815 Could not issue "
2212 "unreg_did (default rpis)\n"); 2214 "unreg_did (default rpis) status %d\n",
2213 mempool_free(mbox, phba->mbox_mem_pool); 2215 rc);
2214 }
2215 } 2216 }
2216} 2217}
2217 2218
@@ -2470,14 +2471,13 @@ lpfc_setup_disc_node(struct lpfc_vport *vport, uint32_t did)
2470 if (ndlp->nlp_flag & NLP_RCV_PLOGI) 2471 if (ndlp->nlp_flag & NLP_RCV_PLOGI)
2471 return NULL; 2472 return NULL;
2472 2473
2473 spin_lock_irq(shost->host_lock);
2474 ndlp->nlp_flag |= NLP_NPR_2B_DISC;
2475 spin_unlock_irq(shost->host_lock);
2476
2477 /* Since this node is marked for discovery, 2474 /* Since this node is marked for discovery,
2478 * delay timeout is not needed. 2475 * delay timeout is not needed.
2479 */ 2476 */
2480 lpfc_cancel_retry_delay_tmo(vport, ndlp); 2477 lpfc_cancel_retry_delay_tmo(vport, ndlp);
2478 spin_lock_irq(shost->host_lock);
2479 ndlp->nlp_flag |= NLP_NPR_2B_DISC;
2480 spin_unlock_irq(shost->host_lock);
2481 } else 2481 } else
2482 ndlp = NULL; 2482 ndlp = NULL;
2483 } else { 2483 } else {
@@ -2740,19 +2740,9 @@ lpfc_free_tx(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
2740 } 2740 }
2741 spin_unlock_irq(&phba->hbalock); 2741 spin_unlock_irq(&phba->hbalock);
2742 2742
2743 while (!list_empty(&completions)) { 2743 /* Cancel all the IOCBs from the completions list */
2744 iocb = list_get_first(&completions, struct lpfc_iocbq, list); 2744 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
2745 list_del_init(&iocb->list); 2745 IOERR_SLI_ABORTED);
2746
2747 if (!iocb->iocb_cmpl)
2748 lpfc_sli_release_iocbq(phba, iocb);
2749 else {
2750 icmd = &iocb->iocb;
2751 icmd->ulpStatus = IOSTAT_LOCAL_REJECT;
2752 icmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
2753 (iocb->iocb_cmpl) (phba, iocb, iocb);
2754 }
2755 }
2756} 2746}
2757 2747
2758static void 2748static void
@@ -3173,7 +3163,7 @@ lpfc_nlp_release(struct kref *kref)
3173 lpfc_nlp_remove(ndlp->vport, ndlp); 3163 lpfc_nlp_remove(ndlp->vport, ndlp);
3174 3164
3175 /* clear the ndlp active flag for all release cases */ 3165 /* clear the ndlp active flag for all release cases */
3176 phba = ndlp->vport->phba; 3166 phba = ndlp->phba;
3177 spin_lock_irqsave(&phba->ndlp_lock, flags); 3167 spin_lock_irqsave(&phba->ndlp_lock, flags);
3178 NLP_CLR_NODE_ACT(ndlp); 3168 NLP_CLR_NODE_ACT(ndlp);
3179 spin_unlock_irqrestore(&phba->ndlp_lock, flags); 3169 spin_unlock_irqrestore(&phba->ndlp_lock, flags);
@@ -3181,7 +3171,7 @@ lpfc_nlp_release(struct kref *kref)
3181 /* free ndlp memory for final ndlp release */ 3171 /* free ndlp memory for final ndlp release */
3182 if (NLP_CHK_FREE_REQ(ndlp)) { 3172 if (NLP_CHK_FREE_REQ(ndlp)) {
3183 kfree(ndlp->lat_data); 3173 kfree(ndlp->lat_data);
3184 mempool_free(ndlp, ndlp->vport->phba->nlp_mem_pool); 3174 mempool_free(ndlp, ndlp->phba->nlp_mem_pool);
3185 } 3175 }
3186} 3176}
3187 3177
@@ -3204,7 +3194,7 @@ lpfc_nlp_get(struct lpfc_nodelist *ndlp)
3204 * ndlp reference count that is in the process of being 3194 * ndlp reference count that is in the process of being
3205 * released. 3195 * released.
3206 */ 3196 */
3207 phba = ndlp->vport->phba; 3197 phba = ndlp->phba;
3208 spin_lock_irqsave(&phba->ndlp_lock, flags); 3198 spin_lock_irqsave(&phba->ndlp_lock, flags);
3209 if (!NLP_CHK_NODE_ACT(ndlp) || NLP_CHK_FREE_ACK(ndlp)) { 3199 if (!NLP_CHK_NODE_ACT(ndlp) || NLP_CHK_FREE_ACK(ndlp)) {
3210 spin_unlock_irqrestore(&phba->ndlp_lock, flags); 3200 spin_unlock_irqrestore(&phba->ndlp_lock, flags);
@@ -3240,7 +3230,7 @@ lpfc_nlp_put(struct lpfc_nodelist *ndlp)
3240 "node put: did:x%x flg:x%x refcnt:x%x", 3230 "node put: did:x%x flg:x%x refcnt:x%x",
3241 ndlp->nlp_DID, ndlp->nlp_flag, 3231 ndlp->nlp_DID, ndlp->nlp_flag,
3242 atomic_read(&ndlp->kref.refcount)); 3232 atomic_read(&ndlp->kref.refcount));
3243 phba = ndlp->vport->phba; 3233 phba = ndlp->phba;
3244 spin_lock_irqsave(&phba->ndlp_lock, flags); 3234 spin_lock_irqsave(&phba->ndlp_lock, flags);
3245 /* Check the ndlp memory free acknowledge flag to avoid the 3235 /* Check the ndlp memory free acknowledge flag to avoid the
3246 * possible race condition that kref_put got invoked again 3236 * possible race condition that kref_put got invoked again
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 06874e6009ea..86d1bdcbf2d8 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -60,7 +60,7 @@ static struct scsi_transport_template *lpfc_vport_transport_template = NULL;
60static DEFINE_IDR(lpfc_hba_index); 60static DEFINE_IDR(lpfc_hba_index);
61 61
62/** 62/**
63 * lpfc_config_port_prep: Perform lpfc initialization prior to config port. 63 * lpfc_config_port_prep - Perform lpfc initialization prior to config port
64 * @phba: pointer to lpfc hba data structure. 64 * @phba: pointer to lpfc hba data structure.
65 * 65 *
66 * This routine will do LPFC initialization prior to issuing the CONFIG_PORT 66 * This routine will do LPFC initialization prior to issuing the CONFIG_PORT
@@ -221,7 +221,7 @@ out_free_mbox:
221} 221}
222 222
223/** 223/**
224 * lpfc_config_async_cmpl: Completion handler for config async event mbox cmd. 224 * lpfc_config_async_cmpl - Completion handler for config async event mbox cmd
225 * @phba: pointer to lpfc hba data structure. 225 * @phba: pointer to lpfc hba data structure.
226 * @pmboxq: pointer to the driver internal queue element for mailbox command. 226 * @pmboxq: pointer to the driver internal queue element for mailbox command.
227 * 227 *
@@ -242,8 +242,7 @@ lpfc_config_async_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq)
242} 242}
243 243
244/** 244/**
245 * lpfc_dump_wakeup_param_cmpl: Completion handler for dump memory mailbox 245 * lpfc_dump_wakeup_param_cmpl - dump memory mailbox command completion handler
246 * command used for getting wake up parameters.
247 * @phba: pointer to lpfc hba data structure. 246 * @phba: pointer to lpfc hba data structure.
248 * @pmboxq: pointer to the driver internal queue element for mailbox command. 247 * @pmboxq: pointer to the driver internal queue element for mailbox command.
249 * 248 *
@@ -287,7 +286,7 @@ lpfc_dump_wakeup_param_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq)
287} 286}
288 287
289/** 288/**
290 * lpfc_config_port_post: Perform lpfc initialization after config port. 289 * lpfc_config_port_post - Perform lpfc initialization after config port
291 * @phba: pointer to lpfc hba data structure. 290 * @phba: pointer to lpfc hba data structure.
292 * 291 *
293 * This routine will do LPFC initialization after the CONFIG_PORT mailbox 292 * This routine will do LPFC initialization after the CONFIG_PORT mailbox
@@ -303,6 +302,7 @@ int
303lpfc_config_port_post(struct lpfc_hba *phba) 302lpfc_config_port_post(struct lpfc_hba *phba)
304{ 303{
305 struct lpfc_vport *vport = phba->pport; 304 struct lpfc_vport *vport = phba->pport;
305 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
306 LPFC_MBOXQ_t *pmb; 306 LPFC_MBOXQ_t *pmb;
307 MAILBOX_t *mb; 307 MAILBOX_t *mb;
308 struct lpfc_dmabuf *mp; 308 struct lpfc_dmabuf *mp;
@@ -360,6 +360,11 @@ lpfc_config_port_post(struct lpfc_hba *phba)
360 sizeof (struct lpfc_name)); 360 sizeof (struct lpfc_name));
361 memcpy(&vport->fc_portname, &vport->fc_sparam.portName, 361 memcpy(&vport->fc_portname, &vport->fc_sparam.portName,
362 sizeof (struct lpfc_name)); 362 sizeof (struct lpfc_name));
363
364 /* Update the fc_host data structures with new wwn. */
365 fc_host_node_name(shost) = wwn_to_u64(vport->fc_nodename.u.wwn);
366 fc_host_port_name(shost) = wwn_to_u64(vport->fc_portname.u.wwn);
367
363 /* If no serial number in VPD data, use low 6 bytes of WWNN */ 368 /* If no serial number in VPD data, use low 6 bytes of WWNN */
364 /* This should be consolidated into parse_vpd ? - mr */ 369 /* This should be consolidated into parse_vpd ? - mr */
365 if (phba->SerialNumber[0] == 0) { 370 if (phba->SerialNumber[0] == 0) {
@@ -551,7 +556,7 @@ lpfc_config_port_post(struct lpfc_hba *phba)
551} 556}
552 557
553/** 558/**
554 * lpfc_hba_down_prep: Perform lpfc uninitialization prior to HBA reset. 559 * lpfc_hba_down_prep - Perform lpfc uninitialization prior to HBA reset
555 * @phba: pointer to lpfc HBA data structure. 560 * @phba: pointer to lpfc HBA data structure.
556 * 561 *
557 * This routine will do LPFC uninitialization before the HBA is reset when 562 * This routine will do LPFC uninitialization before the HBA is reset when
@@ -583,7 +588,7 @@ lpfc_hba_down_prep(struct lpfc_hba *phba)
583} 588}
584 589
585/** 590/**
586 * lpfc_hba_down_post: Perform lpfc uninitialization after HBA reset. 591 * lpfc_hba_down_post - Perform lpfc uninitialization after HBA reset
587 * @phba: pointer to lpfc HBA data structure. 592 * @phba: pointer to lpfc HBA data structure.
588 * 593 *
589 * This routine will do uninitialization after the HBA is reset when bring 594 * This routine will do uninitialization after the HBA is reset when bring
@@ -599,8 +604,6 @@ lpfc_hba_down_post(struct lpfc_hba *phba)
599 struct lpfc_sli *psli = &phba->sli; 604 struct lpfc_sli *psli = &phba->sli;
600 struct lpfc_sli_ring *pring; 605 struct lpfc_sli_ring *pring;
601 struct lpfc_dmabuf *mp, *next_mp; 606 struct lpfc_dmabuf *mp, *next_mp;
602 struct lpfc_iocbq *iocb;
603 IOCB_t *cmd = NULL;
604 LIST_HEAD(completions); 607 LIST_HEAD(completions);
605 int i; 608 int i;
606 609
@@ -628,20 +631,9 @@ lpfc_hba_down_post(struct lpfc_hba *phba)
628 pring->txcmplq_cnt = 0; 631 pring->txcmplq_cnt = 0;
629 spin_unlock_irq(&phba->hbalock); 632 spin_unlock_irq(&phba->hbalock);
630 633
631 while (!list_empty(&completions)) { 634 /* Cancel all the IOCBs from the completions list */
632 iocb = list_get_first(&completions, struct lpfc_iocbq, 635 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
633 list); 636 IOERR_SLI_ABORTED);
634 cmd = &iocb->iocb;
635 list_del_init(&iocb->list);
636
637 if (!iocb->iocb_cmpl)
638 lpfc_sli_release_iocbq(phba, iocb);
639 else {
640 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
641 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
642 (iocb->iocb_cmpl) (phba, iocb, iocb);
643 }
644 }
645 637
646 lpfc_sli_abort_iocb_ring(phba, pring); 638 lpfc_sli_abort_iocb_ring(phba, pring);
647 spin_lock_irq(&phba->hbalock); 639 spin_lock_irq(&phba->hbalock);
@@ -652,7 +644,7 @@ lpfc_hba_down_post(struct lpfc_hba *phba)
652} 644}
653 645
654/** 646/**
655 * lpfc_hb_timeout: The HBA-timer timeout handler. 647 * lpfc_hb_timeout - The HBA-timer timeout handler
656 * @ptr: unsigned long holds the pointer to lpfc hba data structure. 648 * @ptr: unsigned long holds the pointer to lpfc hba data structure.
657 * 649 *
658 * This is the HBA-timer timeout handler registered to the lpfc driver. When 650 * This is the HBA-timer timeout handler registered to the lpfc driver. When
@@ -686,7 +678,7 @@ lpfc_hb_timeout(unsigned long ptr)
686} 678}
687 679
688/** 680/**
689 * lpfc_hb_mbox_cmpl: The lpfc heart-beat mailbox command callback function. 681 * lpfc_hb_mbox_cmpl - The lpfc heart-beat mailbox command callback function
690 * @phba: pointer to lpfc hba data structure. 682 * @phba: pointer to lpfc hba data structure.
691 * @pmboxq: pointer to the driver internal queue element for mailbox command. 683 * @pmboxq: pointer to the driver internal queue element for mailbox command.
692 * 684 *
@@ -721,7 +713,7 @@ lpfc_hb_mbox_cmpl(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq)
721} 713}
722 714
723/** 715/**
724 * lpfc_hb_timeout_handler: The HBA-timer timeout handler. 716 * lpfc_hb_timeout_handler - The HBA-timer timeout handler
725 * @phba: pointer to lpfc hba data structure. 717 * @phba: pointer to lpfc hba data structure.
726 * 718 *
727 * This is the actual HBA-timer timeout handler to be invoked by the worker 719 * This is the actual HBA-timer timeout handler to be invoked by the worker
@@ -830,7 +822,7 @@ lpfc_hb_timeout_handler(struct lpfc_hba *phba)
830} 822}
831 823
832/** 824/**
833 * lpfc_offline_eratt: Bring lpfc offline on hardware error attention. 825 * lpfc_offline_eratt - Bring lpfc offline on hardware error attention
834 * @phba: pointer to lpfc hba data structure. 826 * @phba: pointer to lpfc hba data structure.
835 * 827 *
836 * This routine is called to bring the HBA offline when HBA hardware error 828 * This routine is called to bring the HBA offline when HBA hardware error
@@ -857,7 +849,73 @@ lpfc_offline_eratt(struct lpfc_hba *phba)
857} 849}
858 850
859/** 851/**
860 * lpfc_handle_eratt: The HBA hardware error handler. 852 * lpfc_handle_deferred_eratt - The HBA hardware deferred error handler
853 * @phba: pointer to lpfc hba data structure.
854 *
855 * This routine is invoked to handle the deferred HBA hardware error
856 * conditions. This type of error is indicated by HBA by setting ER1
857 * and another ER bit in the host status register. The driver will
858 * wait until the ER1 bit clears before handling the error condition.
859 **/
860static void
861lpfc_handle_deferred_eratt(struct lpfc_hba *phba)
862{
863 uint32_t old_host_status = phba->work_hs;
864 struct lpfc_sli_ring *pring;
865 struct lpfc_sli *psli = &phba->sli;
866
867 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
868 "0479 Deferred Adapter Hardware Error "
869 "Data: x%x x%x x%x\n",
870 phba->work_hs,
871 phba->work_status[0], phba->work_status[1]);
872
873 spin_lock_irq(&phba->hbalock);
874 psli->sli_flag &= ~LPFC_SLI2_ACTIVE;
875 spin_unlock_irq(&phba->hbalock);
876
877
878 /*
879 * Firmware stops when it triggred erratt. That could cause the I/Os
880 * dropped by the firmware. Error iocb (I/O) on txcmplq and let the
881 * SCSI layer retry it after re-establishing link.
882 */
883 pring = &psli->ring[psli->fcp_ring];
884 lpfc_sli_abort_iocb_ring(phba, pring);
885
886 /*
887 * There was a firmware error. Take the hba offline and then
888 * attempt to restart it.
889 */
890 lpfc_offline_prep(phba);
891 lpfc_offline(phba);
892
893 /* Wait for the ER1 bit to clear.*/
894 while (phba->work_hs & HS_FFER1) {
895 msleep(100);
896 phba->work_hs = readl(phba->HSregaddr);
897 /* If driver is unloading let the worker thread continue */
898 if (phba->pport->load_flag & FC_UNLOADING) {
899 phba->work_hs = 0;
900 break;
901 }
902 }
903
904 /*
905 * This is to ptrotect against a race condition in which
906 * first write to the host attention register clear the
907 * host status register.
908 */
909 if ((!phba->work_hs) && (!(phba->pport->load_flag & FC_UNLOADING)))
910 phba->work_hs = old_host_status & ~HS_FFER1;
911
912 phba->hba_flag &= ~DEFER_ERATT;
913 phba->work_status[0] = readl(phba->MBslimaddr + 0xa8);
914 phba->work_status[1] = readl(phba->MBslimaddr + 0xac);
915}
916
917/**
918 * lpfc_handle_eratt - The HBA hardware error handler
861 * @phba: pointer to lpfc hba data structure. 919 * @phba: pointer to lpfc hba data structure.
862 * 920 *
863 * This routine is invoked to handle the following HBA hardware error 921 * This routine is invoked to handle the following HBA hardware error
@@ -895,6 +953,9 @@ lpfc_handle_eratt(struct lpfc_hba *phba)
895 (char *) &board_event, 953 (char *) &board_event,
896 LPFC_NL_VENDOR_ID); 954 LPFC_NL_VENDOR_ID);
897 955
956 if (phba->hba_flag & DEFER_ERATT)
957 lpfc_handle_deferred_eratt(phba);
958
898 if (phba->work_hs & HS_FFER6) { 959 if (phba->work_hs & HS_FFER6) {
899 /* Re-establishing Link */ 960 /* Re-establishing Link */
900 lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT, 961 lpfc_printf_log(phba, KERN_INFO, LOG_LINK_EVENT,
@@ -976,7 +1037,7 @@ lpfc_handle_eratt(struct lpfc_hba *phba)
976} 1037}
977 1038
978/** 1039/**
979 * lpfc_handle_latt: The HBA link event handler. 1040 * lpfc_handle_latt - The HBA link event handler
980 * @phba: pointer to lpfc hba data structure. 1041 * @phba: pointer to lpfc hba data structure.
981 * 1042 *
982 * This routine is invoked from the worker thread to handle a HBA host 1043 * This routine is invoked from the worker thread to handle a HBA host
@@ -1063,7 +1124,7 @@ lpfc_handle_latt_err_exit:
1063} 1124}
1064 1125
1065/** 1126/**
1066 * lpfc_parse_vpd: Parse VPD (Vital Product Data). 1127 * lpfc_parse_vpd - Parse VPD (Vital Product Data)
1067 * @phba: pointer to lpfc hba data structure. 1128 * @phba: pointer to lpfc hba data structure.
1068 * @vpd: pointer to the vital product data. 1129 * @vpd: pointer to the vital product data.
1069 * @len: length of the vital product data in bytes. 1130 * @len: length of the vital product data in bytes.
@@ -1213,7 +1274,7 @@ lpfc_parse_vpd(struct lpfc_hba *phba, uint8_t *vpd, int len)
1213} 1274}
1214 1275
1215/** 1276/**
1216 * lpfc_get_hba_model_desc: Retrieve HBA device model name and description. 1277 * lpfc_get_hba_model_desc - Retrieve HBA device model name and description
1217 * @phba: pointer to lpfc hba data structure. 1278 * @phba: pointer to lpfc hba data structure.
1218 * @mdp: pointer to the data structure to hold the derived model name. 1279 * @mdp: pointer to the data structure to hold the derived model name.
1219 * @descp: pointer to the data structure to hold the derived description. 1280 * @descp: pointer to the data structure to hold the derived description.
@@ -1322,7 +1383,8 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
1322 m = (typeof(m)){"LPe11000", max_speed, "PCIe"}; 1383 m = (typeof(m)){"LPe11000", max_speed, "PCIe"};
1323 break; 1384 break;
1324 case PCI_DEVICE_ID_ZEPHYR_DCSP: 1385 case PCI_DEVICE_ID_ZEPHYR_DCSP:
1325 m = (typeof(m)){"LPe11002-SP", max_speed, "PCIe"}; 1386 m = (typeof(m)){"LP2105", max_speed, "PCIe"};
1387 GE = 1;
1326 break; 1388 break;
1327 case PCI_DEVICE_ID_ZMID: 1389 case PCI_DEVICE_ID_ZMID:
1328 m = (typeof(m)){"LPe1150", max_speed, "PCIe"}; 1390 m = (typeof(m)){"LPe1150", max_speed, "PCIe"};
@@ -1392,7 +1454,7 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
1392} 1454}
1393 1455
1394/** 1456/**
1395 * lpfc_post_buffer: Post IOCB(s) with DMA buffer descriptor(s) to a IOCB ring. 1457 * lpfc_post_buffer - Post IOCB(s) with DMA buffer descriptor(s) to a IOCB ring
1396 * @phba: pointer to lpfc hba data structure. 1458 * @phba: pointer to lpfc hba data structure.
1397 * @pring: pointer to a IOCB ring. 1459 * @pring: pointer to a IOCB ring.
1398 * @cnt: the number of IOCBs to be posted to the IOCB ring. 1460 * @cnt: the number of IOCBs to be posted to the IOCB ring.
@@ -1493,7 +1555,7 @@ lpfc_post_buffer(struct lpfc_hba *phba, struct lpfc_sli_ring *pring, int cnt)
1493} 1555}
1494 1556
1495/** 1557/**
1496 * lpfc_post_rcv_buf: Post the initial receive IOCB buffers to ELS ring. 1558 * lpfc_post_rcv_buf - Post the initial receive IOCB buffers to ELS ring
1497 * @phba: pointer to lpfc hba data structure. 1559 * @phba: pointer to lpfc hba data structure.
1498 * 1560 *
1499 * This routine posts initial receive IOCB buffers to the ELS ring. The 1561 * This routine posts initial receive IOCB buffers to the ELS ring. The
@@ -1518,7 +1580,7 @@ lpfc_post_rcv_buf(struct lpfc_hba *phba)
1518#define S(N,V) (((V)<<(N))|((V)>>(32-(N)))) 1580#define S(N,V) (((V)<<(N))|((V)>>(32-(N))))
1519 1581
1520/** 1582/**
1521 * lpfc_sha_init: Set up initial array of hash table entries. 1583 * lpfc_sha_init - Set up initial array of hash table entries
1522 * @HashResultPointer: pointer to an array as hash table. 1584 * @HashResultPointer: pointer to an array as hash table.
1523 * 1585 *
1524 * This routine sets up the initial values to the array of hash table entries 1586 * This routine sets up the initial values to the array of hash table entries
@@ -1535,7 +1597,7 @@ lpfc_sha_init(uint32_t * HashResultPointer)
1535} 1597}
1536 1598
1537/** 1599/**
1538 * lpfc_sha_iterate: Iterate initial hash table with the working hash table. 1600 * lpfc_sha_iterate - Iterate initial hash table with the working hash table
1539 * @HashResultPointer: pointer to an initial/result hash table. 1601 * @HashResultPointer: pointer to an initial/result hash table.
1540 * @HashWorkingPointer: pointer to an working hash table. 1602 * @HashWorkingPointer: pointer to an working hash table.
1541 * 1603 *
@@ -1592,7 +1654,7 @@ lpfc_sha_iterate(uint32_t * HashResultPointer, uint32_t * HashWorkingPointer)
1592} 1654}
1593 1655
1594/** 1656/**
1595 * lpfc_challenge_key: Create challenge key based on WWPN of the HBA. 1657 * lpfc_challenge_key - Create challenge key based on WWPN of the HBA
1596 * @RandomChallenge: pointer to the entry of host challenge random number array. 1658 * @RandomChallenge: pointer to the entry of host challenge random number array.
1597 * @HashWorking: pointer to the entry of the working hash array. 1659 * @HashWorking: pointer to the entry of the working hash array.
1598 * 1660 *
@@ -1608,7 +1670,7 @@ lpfc_challenge_key(uint32_t * RandomChallenge, uint32_t * HashWorking)
1608} 1670}
1609 1671
1610/** 1672/**
1611 * lpfc_hba_init: Perform special handling for LC HBA initialization. 1673 * lpfc_hba_init - Perform special handling for LC HBA initialization
1612 * @phba: pointer to lpfc hba data structure. 1674 * @phba: pointer to lpfc hba data structure.
1613 * @hbainit: pointer to an array of unsigned 32-bit integers. 1675 * @hbainit: pointer to an array of unsigned 32-bit integers.
1614 * 1676 *
@@ -1637,7 +1699,7 @@ lpfc_hba_init(struct lpfc_hba *phba, uint32_t *hbainit)
1637} 1699}
1638 1700
1639/** 1701/**
1640 * lpfc_cleanup: Performs vport cleanups before deleting a vport. 1702 * lpfc_cleanup - Performs vport cleanups before deleting a vport
1641 * @vport: pointer to a virtual N_Port data structure. 1703 * @vport: pointer to a virtual N_Port data structure.
1642 * 1704 *
1643 * This routine performs the necessary cleanups before deleting the @vport. 1705 * This routine performs the necessary cleanups before deleting the @vport.
@@ -1724,7 +1786,7 @@ lpfc_cleanup(struct lpfc_vport *vport)
1724} 1786}
1725 1787
1726/** 1788/**
1727 * lpfc_stop_vport_timers: Stop all the timers associated with a vport. 1789 * lpfc_stop_vport_timers - Stop all the timers associated with a vport
1728 * @vport: pointer to a virtual N_Port data structure. 1790 * @vport: pointer to a virtual N_Port data structure.
1729 * 1791 *
1730 * This routine stops all the timers associated with a @vport. This function 1792 * This routine stops all the timers associated with a @vport. This function
@@ -1741,7 +1803,7 @@ lpfc_stop_vport_timers(struct lpfc_vport *vport)
1741} 1803}
1742 1804
1743/** 1805/**
1744 * lpfc_stop_phba_timers: Stop all the timers associated with an HBA. 1806 * lpfc_stop_phba_timers - Stop all the timers associated with an HBA
1745 * @phba: pointer to lpfc hba data structure. 1807 * @phba: pointer to lpfc hba data structure.
1746 * 1808 *
1747 * This routine stops all the timers associated with a HBA. This function is 1809 * This routine stops all the timers associated with a HBA. This function is
@@ -1761,7 +1823,7 @@ lpfc_stop_phba_timers(struct lpfc_hba *phba)
1761} 1823}
1762 1824
1763/** 1825/**
1764 * lpfc_block_mgmt_io: Mark a HBA's management interface as blocked. 1826 * lpfc_block_mgmt_io - Mark a HBA's management interface as blocked
1765 * @phba: pointer to lpfc hba data structure. 1827 * @phba: pointer to lpfc hba data structure.
1766 * 1828 *
1767 * This routine marks a HBA's management interface as blocked. Once the HBA's 1829 * This routine marks a HBA's management interface as blocked. Once the HBA's
@@ -1781,7 +1843,7 @@ lpfc_block_mgmt_io(struct lpfc_hba * phba)
1781} 1843}
1782 1844
1783/** 1845/**
1784 * lpfc_online: Initialize and bring a HBA online. 1846 * lpfc_online - Initialize and bring a HBA online
1785 * @phba: pointer to lpfc hba data structure. 1847 * @phba: pointer to lpfc hba data structure.
1786 * 1848 *
1787 * This routine initializes the HBA and brings a HBA online. During this 1849 * This routine initializes the HBA and brings a HBA online. During this
@@ -1839,7 +1901,7 @@ lpfc_online(struct lpfc_hba *phba)
1839} 1901}
1840 1902
1841/** 1903/**
1842 * lpfc_unblock_mgmt_io: Mark a HBA's management interface to be not blocked. 1904 * lpfc_unblock_mgmt_io - Mark a HBA's management interface to be not blocked
1843 * @phba: pointer to lpfc hba data structure. 1905 * @phba: pointer to lpfc hba data structure.
1844 * 1906 *
1845 * This routine marks a HBA's management interface as not blocked. Once the 1907 * This routine marks a HBA's management interface as not blocked. Once the
@@ -1860,7 +1922,7 @@ lpfc_unblock_mgmt_io(struct lpfc_hba * phba)
1860} 1922}
1861 1923
1862/** 1924/**
1863 * lpfc_offline_prep: Prepare a HBA to be brought offline. 1925 * lpfc_offline_prep - Prepare a HBA to be brought offline
1864 * @phba: pointer to lpfc hba data structure. 1926 * @phba: pointer to lpfc hba data structure.
1865 * 1927 *
1866 * This routine is invoked to prepare a HBA to be brought offline. It performs 1928 * This routine is invoked to prepare a HBA to be brought offline. It performs
@@ -1917,7 +1979,7 @@ lpfc_offline_prep(struct lpfc_hba * phba)
1917} 1979}
1918 1980
1919/** 1981/**
1920 * lpfc_offline: Bring a HBA offline. 1982 * lpfc_offline - Bring a HBA offline
1921 * @phba: pointer to lpfc hba data structure. 1983 * @phba: pointer to lpfc hba data structure.
1922 * 1984 *
1923 * This routine actually brings a HBA offline. It stops all the timers 1985 * This routine actually brings a HBA offline. It stops all the timers
@@ -1962,7 +2024,7 @@ lpfc_offline(struct lpfc_hba *phba)
1962} 2024}
1963 2025
1964/** 2026/**
1965 * lpfc_scsi_free: Free all the SCSI buffers and IOCBs from driver lists. 2027 * lpfc_scsi_free - Free all the SCSI buffers and IOCBs from driver lists
1966 * @phba: pointer to lpfc hba data structure. 2028 * @phba: pointer to lpfc hba data structure.
1967 * 2029 *
1968 * This routine is to free all the SCSI buffers and IOCBs from the driver 2030 * This routine is to free all the SCSI buffers and IOCBs from the driver
@@ -2001,7 +2063,7 @@ lpfc_scsi_free(struct lpfc_hba *phba)
2001} 2063}
2002 2064
2003/** 2065/**
2004 * lpfc_create_port: Create an FC port. 2066 * lpfc_create_port - Create an FC port
2005 * @phba: pointer to lpfc hba data structure. 2067 * @phba: pointer to lpfc hba data structure.
2006 * @instance: a unique integer ID to this FC port. 2068 * @instance: a unique integer ID to this FC port.
2007 * @dev: pointer to the device data structure. 2069 * @dev: pointer to the device data structure.
@@ -2091,7 +2153,7 @@ out:
2091} 2153}
2092 2154
2093/** 2155/**
2094 * destroy_port: Destroy an FC port. 2156 * destroy_port - destroy an FC port
2095 * @vport: pointer to an lpfc virtual N_Port data structure. 2157 * @vport: pointer to an lpfc virtual N_Port data structure.
2096 * 2158 *
2097 * This routine destroys a FC port from the upper layer protocol. All the 2159 * This routine destroys a FC port from the upper layer protocol. All the
@@ -2116,7 +2178,7 @@ destroy_port(struct lpfc_vport *vport)
2116} 2178}
2117 2179
2118/** 2180/**
2119 * lpfc_get_instance: Get a unique integer ID. 2181 * lpfc_get_instance - Get a unique integer ID
2120 * 2182 *
2121 * This routine allocates a unique integer ID from lpfc_hba_index pool. It 2183 * This routine allocates a unique integer ID from lpfc_hba_index pool. It
2122 * uses the kernel idr facility to perform the task. 2184 * uses the kernel idr facility to perform the task.
@@ -2139,7 +2201,7 @@ lpfc_get_instance(void)
2139} 2201}
2140 2202
2141/** 2203/**
2142 * lpfc_scan_finished: method for SCSI layer to detect whether scan is done. 2204 * lpfc_scan_finished - method for SCSI layer to detect whether scan is done
2143 * @shost: pointer to SCSI host data structure. 2205 * @shost: pointer to SCSI host data structure.
2144 * @time: elapsed time of the scan in jiffies. 2206 * @time: elapsed time of the scan in jiffies.
2145 * 2207 *
@@ -2197,7 +2259,7 @@ finished:
2197} 2259}
2198 2260
2199/** 2261/**
2200 * lpfc_host_attrib_init: Initialize SCSI host attributes on a FC port. 2262 * lpfc_host_attrib_init - Initialize SCSI host attributes on a FC port
2201 * @shost: pointer to SCSI host data structure. 2263 * @shost: pointer to SCSI host data structure.
2202 * 2264 *
2203 * This routine initializes a given SCSI host attributes on a FC port. The 2265 * This routine initializes a given SCSI host attributes on a FC port. The
@@ -2252,7 +2314,7 @@ void lpfc_host_attrib_init(struct Scsi_Host *shost)
2252} 2314}
2253 2315
2254/** 2316/**
2255 * lpfc_enable_msix: Enable MSI-X interrupt mode. 2317 * lpfc_enable_msix - Enable MSI-X interrupt mode
2256 * @phba: pointer to lpfc hba data structure. 2318 * @phba: pointer to lpfc hba data structure.
2257 * 2319 *
2258 * This routine is invoked to enable the MSI-X interrupt vectors. The kernel 2320 * This routine is invoked to enable the MSI-X interrupt vectors. The kernel
@@ -2366,7 +2428,7 @@ msi_fail_out:
2366} 2428}
2367 2429
2368/** 2430/**
2369 * lpfc_disable_msix: Disable MSI-X interrupt mode. 2431 * lpfc_disable_msix - Disable MSI-X interrupt mode
2370 * @phba: pointer to lpfc hba data structure. 2432 * @phba: pointer to lpfc hba data structure.
2371 * 2433 *
2372 * This routine is invoked to release the MSI-X vectors and then disable the 2434 * This routine is invoked to release the MSI-X vectors and then disable the
@@ -2385,7 +2447,7 @@ lpfc_disable_msix(struct lpfc_hba *phba)
2385} 2447}
2386 2448
2387/** 2449/**
2388 * lpfc_enable_msi: Enable MSI interrupt mode. 2450 * lpfc_enable_msi - Enable MSI interrupt mode
2389 * @phba: pointer to lpfc hba data structure. 2451 * @phba: pointer to lpfc hba data structure.
2390 * 2452 *
2391 * This routine is invoked to enable the MSI interrupt mode. The kernel 2453 * This routine is invoked to enable the MSI interrupt mode. The kernel
@@ -2423,7 +2485,7 @@ lpfc_enable_msi(struct lpfc_hba *phba)
2423} 2485}
2424 2486
2425/** 2487/**
2426 * lpfc_disable_msi: Disable MSI interrupt mode. 2488 * lpfc_disable_msi - Disable MSI interrupt mode
2427 * @phba: pointer to lpfc hba data structure. 2489 * @phba: pointer to lpfc hba data structure.
2428 * 2490 *
2429 * This routine is invoked to disable the MSI interrupt mode. The driver 2491 * This routine is invoked to disable the MSI interrupt mode. The driver
@@ -2441,7 +2503,7 @@ lpfc_disable_msi(struct lpfc_hba *phba)
2441} 2503}
2442 2504
2443/** 2505/**
2444 * lpfc_log_intr_mode: Log the active interrupt mode 2506 * lpfc_log_intr_mode - Log the active interrupt mode
2445 * @phba: pointer to lpfc hba data structure. 2507 * @phba: pointer to lpfc hba data structure.
2446 * @intr_mode: active interrupt mode adopted. 2508 * @intr_mode: active interrupt mode adopted.
2447 * 2509 *
@@ -2490,7 +2552,7 @@ lpfc_stop_port(struct lpfc_hba *phba)
2490} 2552}
2491 2553
2492/** 2554/**
2493 * lpfc_enable_intr: Enable device interrupt. 2555 * lpfc_enable_intr - Enable device interrupt
2494 * @phba: pointer to lpfc hba data structure. 2556 * @phba: pointer to lpfc hba data structure.
2495 * 2557 *
2496 * This routine is invoked to enable device interrupt and associate driver's 2558 * This routine is invoked to enable device interrupt and associate driver's
@@ -2547,7 +2609,7 @@ lpfc_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode)
2547} 2609}
2548 2610
2549/** 2611/**
2550 * lpfc_disable_intr: Disable device interrupt. 2612 * lpfc_disable_intr - Disable device interrupt
2551 * @phba: pointer to lpfc hba data structure. 2613 * @phba: pointer to lpfc hba data structure.
2552 * 2614 *
2553 * This routine is invoked to disable device interrupt and disassociate the 2615 * This routine is invoked to disable device interrupt and disassociate the
@@ -2574,7 +2636,7 @@ lpfc_disable_intr(struct lpfc_hba *phba)
2574} 2636}
2575 2637
2576/** 2638/**
2577 * lpfc_pci_probe_one: lpfc PCI probe func to register device to PCI subsystem. 2639 * lpfc_pci_probe_one - lpfc PCI probe func to register device to PCI subsystem
2578 * @pdev: pointer to PCI device 2640 * @pdev: pointer to PCI device
2579 * @pid: pointer to PCI device identifier 2641 * @pid: pointer to PCI device identifier
2580 * 2642 *
@@ -3010,7 +3072,7 @@ out:
3010} 3072}
3011 3073
3012/** 3074/**
3013 * lpfc_pci_remove_one: lpfc PCI func to unregister device from PCI subsystem. 3075 * lpfc_pci_remove_one - lpfc PCI func to unregister device from PCI subsystem
3014 * @pdev: pointer to PCI device 3076 * @pdev: pointer to PCI device
3015 * 3077 *
3016 * This routine is to be registered to the kernel's PCI subsystem. When an 3078 * This routine is to be registered to the kernel's PCI subsystem. When an
@@ -3033,8 +3095,6 @@ lpfc_pci_remove_one(struct pci_dev *pdev)
3033 3095
3034 lpfc_free_sysfs_attr(vport); 3096 lpfc_free_sysfs_attr(vport);
3035 3097
3036 kthread_stop(phba->worker_thread);
3037
3038 /* Release all the vports against this physical port */ 3098 /* Release all the vports against this physical port */
3039 vports = lpfc_create_vport_work_array(phba); 3099 vports = lpfc_create_vport_work_array(phba);
3040 if (vports != NULL) 3100 if (vports != NULL)
@@ -3052,7 +3112,12 @@ lpfc_pci_remove_one(struct pci_dev *pdev)
3052 * clears the rings, discards all mailbox commands, and resets 3112 * clears the rings, discards all mailbox commands, and resets
3053 * the HBA. 3113 * the HBA.
3054 */ 3114 */
3115
3116 /* HBA interrupt will be diabled after this call */
3055 lpfc_sli_hba_down(phba); 3117 lpfc_sli_hba_down(phba);
3118 /* Stop kthread signal shall trigger work_done one more time */
3119 kthread_stop(phba->worker_thread);
3120 /* Final cleanup of txcmplq and reset the HBA */
3056 lpfc_sli_brdrestart(phba); 3121 lpfc_sli_brdrestart(phba);
3057 3122
3058 lpfc_stop_phba_timers(phba); 3123 lpfc_stop_phba_timers(phba);
@@ -3095,7 +3160,7 @@ lpfc_pci_remove_one(struct pci_dev *pdev)
3095} 3160}
3096 3161
3097/** 3162/**
3098 * lpfc_pci_suspend_one: lpfc PCI func to suspend device for power management. 3163 * lpfc_pci_suspend_one - lpfc PCI func to suspend device for power management
3099 * @pdev: pointer to PCI device 3164 * @pdev: pointer to PCI device
3100 * @msg: power management message 3165 * @msg: power management message
3101 * 3166 *
@@ -3139,7 +3204,7 @@ lpfc_pci_suspend_one(struct pci_dev *pdev, pm_message_t msg)
3139} 3204}
3140 3205
3141/** 3206/**
3142 * lpfc_pci_resume_one: lpfc PCI func to resume device for power management. 3207 * lpfc_pci_resume_one - lpfc PCI func to resume device for power management
3143 * @pdev: pointer to PCI device 3208 * @pdev: pointer to PCI device
3144 * 3209 *
3145 * This routine is to be registered to the kernel's PCI subsystem to support 3210 * This routine is to be registered to the kernel's PCI subsystem to support
@@ -3204,7 +3269,7 @@ lpfc_pci_resume_one(struct pci_dev *pdev)
3204} 3269}
3205 3270
3206/** 3271/**
3207 * lpfc_io_error_detected: Driver method for handling PCI I/O error detected. 3272 * lpfc_io_error_detected - Driver method for handling PCI I/O error detected
3208 * @pdev: pointer to PCI device. 3273 * @pdev: pointer to PCI device.
3209 * @state: the current PCI connection state. 3274 * @state: the current PCI connection state.
3210 * 3275 *
@@ -3254,7 +3319,7 @@ static pci_ers_result_t lpfc_io_error_detected(struct pci_dev *pdev,
3254} 3319}
3255 3320
3256/** 3321/**
3257 * lpfc_io_slot_reset: Restart a PCI device from scratch. 3322 * lpfc_io_slot_reset - Restart a PCI device from scratch
3258 * @pdev: pointer to PCI device. 3323 * @pdev: pointer to PCI device.
3259 * 3324 *
3260 * This routine is registered to the PCI subsystem for error handling. This is 3325 * This routine is registered to the PCI subsystem for error handling. This is
@@ -3313,7 +3378,7 @@ static pci_ers_result_t lpfc_io_slot_reset(struct pci_dev *pdev)
3313} 3378}
3314 3379
3315/** 3380/**
3316 * lpfc_io_resume: Resume PCI I/O operation. 3381 * lpfc_io_resume - Resume PCI I/O operation
3317 * @pdev: pointer to PCI device 3382 * @pdev: pointer to PCI device
3318 * 3383 *
3319 * This routine is registered to the PCI subsystem for error handling. It is 3384 * This routine is registered to the PCI subsystem for error handling. It is
@@ -3426,7 +3491,7 @@ static struct pci_driver lpfc_driver = {
3426}; 3491};
3427 3492
3428/** 3493/**
3429 * lpfc_init: lpfc module initialization routine. 3494 * lpfc_init - lpfc module initialization routine
3430 * 3495 *
3431 * This routine is to be invoked when the lpfc module is loaded into the 3496 * This routine is to be invoked when the lpfc module is loaded into the
3432 * kernel. The special kernel macro module_init() is used to indicate the 3497 * kernel. The special kernel macro module_init() is used to indicate the
@@ -3472,7 +3537,7 @@ lpfc_init(void)
3472} 3537}
3473 3538
3474/** 3539/**
3475 * lpfc_exit: lpfc module removal routine. 3540 * lpfc_exit - lpfc module removal routine
3476 * 3541 *
3477 * This routine is invoked when the lpfc module is removed from the kernel. 3542 * This routine is invoked when the lpfc module is removed from the kernel.
3478 * The special kernel macro module_exit() is used to indicate the role of 3543 * The special kernel macro module_exit() is used to indicate the role of
diff --git a/drivers/scsi/lpfc/lpfc_logmsg.h b/drivers/scsi/lpfc/lpfc_logmsg.h
index a85b7c196bbc..1aa85709b012 100644
--- a/drivers/scsi/lpfc/lpfc_logmsg.h
+++ b/drivers/scsi/lpfc/lpfc_logmsg.h
@@ -27,7 +27,7 @@
27#define LOG_FCP 0x40 /* FCP traffic history */ 27#define LOG_FCP 0x40 /* FCP traffic history */
28#define LOG_NODE 0x80 /* Node table events */ 28#define LOG_NODE 0x80 /* Node table events */
29#define LOG_TEMP 0x100 /* Temperature sensor events */ 29#define LOG_TEMP 0x100 /* Temperature sensor events */
30#define LOG_BG 0x200 /* BlockBuard events */ 30#define LOG_BG 0x200 /* BlockGuard events */
31#define LOG_MISC 0x400 /* Miscellaneous events */ 31#define LOG_MISC 0x400 /* Miscellaneous events */
32#define LOG_SLI 0x800 /* SLI events */ 32#define LOG_SLI 0x800 /* SLI events */
33#define LOG_FCP_ERROR 0x1000 /* log errors, not underruns */ 33#define LOG_FCP_ERROR 0x1000 /* log errors, not underruns */
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c
index 34eeb086a667..134fc7fc2127 100644
--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
@@ -39,7 +39,7 @@
39#include "lpfc_compat.h" 39#include "lpfc_compat.h"
40 40
41/** 41/**
42 * lpfc_dump_mem: Prepare a mailbox command for retrieving HBA's VPD memory. 42 * lpfc_dump_mem - Prepare a mailbox command for retrieving HBA's VPD memory
43 * @phba: pointer to lpfc hba data structure. 43 * @phba: pointer to lpfc hba data structure.
44 * @pmb: pointer to the driver internal queue element for mailbox command. 44 * @pmb: pointer to the driver internal queue element for mailbox command.
45 * @offset: offset for dumping VPD memory mailbox command. 45 * @offset: offset for dumping VPD memory mailbox command.
@@ -77,9 +77,10 @@ lpfc_dump_mem(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb, uint16_t offset)
77} 77}
78 78
79/** 79/**
80 * lpfc_dump_mem: Prepare a mailbox command for retrieving wakeup params. 80 * lpfc_dump_wakeup_param - Prepare mailbox command for retrieving wakeup params
81 * @phba: pointer to lpfc hba data structure. 81 * @phba: pointer to lpfc hba data structure.
82 * @pmb: pointer to the driver internal queue element for mailbox command. 82 * @pmb: pointer to the driver internal queue element for mailbox command.
83 *
83 * This function create a dump memory mailbox command to dump wake up 84 * This function create a dump memory mailbox command to dump wake up
84 * parameters. 85 * parameters.
85 */ 86 */
@@ -109,7 +110,7 @@ lpfc_dump_wakeup_param(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
109} 110}
110 111
111/** 112/**
112 * lpfc_read_nv: Prepare a mailbox command for reading HBA's NVRAM param. 113 * lpfc_read_nv - Prepare a mailbox command for reading HBA's NVRAM param
113 * @phba: pointer to lpfc hba data structure. 114 * @phba: pointer to lpfc hba data structure.
114 * @pmb: pointer to the driver internal queue element for mailbox command. 115 * @pmb: pointer to the driver internal queue element for mailbox command.
115 * 116 *
@@ -132,7 +133,7 @@ lpfc_read_nv(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
132} 133}
133 134
134/** 135/**
135 * lpfc_config_async: Prepare a mailbox command for enabling HBA async event. 136 * lpfc_config_async - Prepare a mailbox command for enabling HBA async event
136 * @phba: pointer to lpfc hba data structure. 137 * @phba: pointer to lpfc hba data structure.
137 * @pmb: pointer to the driver internal queue element for mailbox command. 138 * @pmb: pointer to the driver internal queue element for mailbox command.
138 * @ring: ring number for the asynchronous event to be configured. 139 * @ring: ring number for the asynchronous event to be configured.
@@ -159,7 +160,7 @@ lpfc_config_async(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb,
159} 160}
160 161
161/** 162/**
162 * lpfc_heart_beat: Prepare a mailbox command for heart beat. 163 * lpfc_heart_beat - Prepare a mailbox command for heart beat
163 * @phba: pointer to lpfc hba data structure. 164 * @phba: pointer to lpfc hba data structure.
164 * @pmb: pointer to the driver internal queue element for mailbox command. 165 * @pmb: pointer to the driver internal queue element for mailbox command.
165 * 166 *
@@ -184,7 +185,7 @@ lpfc_heart_beat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
184} 185}
185 186
186/** 187/**
187 * lpfc_read_la: Prepare a mailbox command for reading HBA link attention. 188 * lpfc_read_la - Prepare a mailbox command for reading HBA link attention
188 * @phba: pointer to lpfc hba data structure. 189 * @phba: pointer to lpfc hba data structure.
189 * @pmb: pointer to the driver internal queue element for mailbox command. 190 * @pmb: pointer to the driver internal queue element for mailbox command.
190 * @mp: DMA buffer memory for reading the link attention information into. 191 * @mp: DMA buffer memory for reading the link attention information into.
@@ -228,7 +229,7 @@ lpfc_read_la(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb, struct lpfc_dmabuf *mp)
228} 229}
229 230
230/** 231/**
231 * lpfc_clear_la: Prepare a mailbox command for clearing HBA link attention. 232 * lpfc_clear_la - Prepare a mailbox command for clearing HBA link attention
232 * @phba: pointer to lpfc hba data structure. 233 * @phba: pointer to lpfc hba data structure.
233 * @pmb: pointer to the driver internal queue element for mailbox command. 234 * @pmb: pointer to the driver internal queue element for mailbox command.
234 * 235 *
@@ -257,7 +258,7 @@ lpfc_clear_la(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
257} 258}
258 259
259/** 260/**
260 * lpfc_config_link: Prepare a mailbox command for configuring link on a HBA. 261 * lpfc_config_link - Prepare a mailbox command for configuring link on a HBA
261 * @phba: pointer to lpfc hba data structure. 262 * @phba: pointer to lpfc hba data structure.
262 * @pmb: pointer to the driver internal queue element for mailbox command. 263 * @pmb: pointer to the driver internal queue element for mailbox command.
263 * 264 *
@@ -305,7 +306,7 @@ lpfc_config_link(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
305} 306}
306 307
307/** 308/**
308 * lpfc_config_msi: Prepare a mailbox command for configuring msi-x. 309 * lpfc_config_msi - Prepare a mailbox command for configuring msi-x
309 * @phba: pointer to lpfc hba data structure. 310 * @phba: pointer to lpfc hba data structure.
310 * @pmb: pointer to the driver internal queue element for mailbox command. 311 * @pmb: pointer to the driver internal queue element for mailbox command.
311 * 312 *
@@ -383,7 +384,7 @@ lpfc_config_msi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
383} 384}
384 385
385/** 386/**
386 * lpfc_init_link: Prepare a mailbox command for initialize link on a HBA. 387 * lpfc_init_link - Prepare a mailbox command for initialize link on a HBA
387 * @phba: pointer to lpfc hba data structure. 388 * @phba: pointer to lpfc hba data structure.
388 * @pmb: pointer to the driver internal queue element for mailbox command. 389 * @pmb: pointer to the driver internal queue element for mailbox command.
389 * @topology: the link topology for the link to be initialized to. 390 * @topology: the link topology for the link to be initialized to.
@@ -463,7 +464,7 @@ lpfc_init_link(struct lpfc_hba * phba,
463} 464}
464 465
465/** 466/**
466 * lpfc_read_sparam: Prepare a mailbox command for reading HBA parameters. 467 * lpfc_read_sparam - Prepare a mailbox command for reading HBA parameters
467 * @phba: pointer to lpfc hba data structure. 468 * @phba: pointer to lpfc hba data structure.
468 * @pmb: pointer to the driver internal queue element for mailbox command. 469 * @pmb: pointer to the driver internal queue element for mailbox command.
469 * @vpi: virtual N_Port identifier. 470 * @vpi: virtual N_Port identifier.
@@ -523,7 +524,7 @@ lpfc_read_sparam(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb, int vpi)
523} 524}
524 525
525/** 526/**
526 * lpfc_unreg_did: Prepare a mailbox command for unregistering DID. 527 * lpfc_unreg_did - Prepare a mailbox command for unregistering DID
527 * @phba: pointer to lpfc hba data structure. 528 * @phba: pointer to lpfc hba data structure.
528 * @vpi: virtual N_Port identifier. 529 * @vpi: virtual N_Port identifier.
529 * @did: remote port identifier. 530 * @did: remote port identifier.
@@ -555,7 +556,7 @@ lpfc_unreg_did(struct lpfc_hba * phba, uint16_t vpi, uint32_t did,
555} 556}
556 557
557/** 558/**
558 * lpfc_read_config: Prepare a mailbox command for reading HBA configuration. 559 * lpfc_read_config - Prepare a mailbox command for reading HBA configuration
559 * @phba: pointer to lpfc hba data structure. 560 * @phba: pointer to lpfc hba data structure.
560 * @pmb: pointer to the driver internal queue element for mailbox command. 561 * @pmb: pointer to the driver internal queue element for mailbox command.
561 * 562 *
@@ -581,7 +582,7 @@ lpfc_read_config(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
581} 582}
582 583
583/** 584/**
584 * lpfc_read_lnk_stat: Prepare a mailbox command for reading HBA link stats. 585 * lpfc_read_lnk_stat - Prepare a mailbox command for reading HBA link stats
585 * @phba: pointer to lpfc hba data structure. 586 * @phba: pointer to lpfc hba data structure.
586 * @pmb: pointer to the driver internal queue element for mailbox command. 587 * @pmb: pointer to the driver internal queue element for mailbox command.
587 * 588 *
@@ -606,7 +607,7 @@ lpfc_read_lnk_stat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
606} 607}
607 608
608/** 609/**
609 * lpfc_reg_login: Prepare a mailbox command for registering remote login. 610 * lpfc_reg_login - Prepare a mailbox command for registering remote login
610 * @phba: pointer to lpfc hba data structure. 611 * @phba: pointer to lpfc hba data structure.
611 * @vpi: virtual N_Port identifier. 612 * @vpi: virtual N_Port identifier.
612 * @did: remote port identifier. 613 * @did: remote port identifier.
@@ -677,7 +678,7 @@ lpfc_reg_login(struct lpfc_hba *phba, uint16_t vpi, uint32_t did,
677} 678}
678 679
679/** 680/**
680 * lpfc_unreg_login: Prepare a mailbox command for unregistering remote login. 681 * lpfc_unreg_login - Prepare a mailbox command for unregistering remote login
681 * @phba: pointer to lpfc hba data structure. 682 * @phba: pointer to lpfc hba data structure.
682 * @vpi: virtual N_Port identifier. 683 * @vpi: virtual N_Port identifier.
683 * @rpi: remote port identifier 684 * @rpi: remote port identifier
@@ -709,7 +710,7 @@ lpfc_unreg_login(struct lpfc_hba *phba, uint16_t vpi, uint32_t rpi,
709} 710}
710 711
711/** 712/**
712 * lpfc_reg_vpi: Prepare a mailbox command for registering vport identifier. 713 * lpfc_reg_vpi - Prepare a mailbox command for registering vport identifier
713 * @phba: pointer to lpfc hba data structure. 714 * @phba: pointer to lpfc hba data structure.
714 * @vpi: virtual N_Port identifier. 715 * @vpi: virtual N_Port identifier.
715 * @sid: Fibre Channel S_ID (N_Port_ID assigned to a virtual N_Port). 716 * @sid: Fibre Channel S_ID (N_Port_ID assigned to a virtual N_Port).
@@ -741,7 +742,7 @@ lpfc_reg_vpi(struct lpfc_hba *phba, uint16_t vpi, uint32_t sid,
741} 742}
742 743
743/** 744/**
744 * lpfc_unreg_vpi: Prepare a mailbox command for unregistering vport id. 745 * lpfc_unreg_vpi - Prepare a mailbox command for unregistering vport id
745 * @phba: pointer to lpfc hba data structure. 746 * @phba: pointer to lpfc hba data structure.
746 * @vpi: virtual N_Port identifier. 747 * @vpi: virtual N_Port identifier.
747 * @pmb: pointer to the driver internal queue element for mailbox command. 748 * @pmb: pointer to the driver internal queue element for mailbox command.
@@ -771,7 +772,7 @@ lpfc_unreg_vpi(struct lpfc_hba *phba, uint16_t vpi, LPFC_MBOXQ_t *pmb)
771} 772}
772 773
773/** 774/**
774 * lpfc_config_pcb_setup: Set up IOCB rings in the Port Control Block (PCB) 775 * lpfc_config_pcb_setup - Set up IOCB rings in the Port Control Block (PCB)
775 * @phba: pointer to lpfc hba data structure. 776 * @phba: pointer to lpfc hba data structure.
776 * 777 *
777 * This routine sets up and initializes the IOCB rings in the Port Control 778 * This routine sets up and initializes the IOCB rings in the Port Control
@@ -835,7 +836,7 @@ lpfc_config_pcb_setup(struct lpfc_hba * phba)
835} 836}
836 837
837/** 838/**
838 * lpfc_read_rev: Prepare a mailbox command for reading HBA revision. 839 * lpfc_read_rev - Prepare a mailbox command for reading HBA revision
839 * @phba: pointer to lpfc hba data structure. 840 * @phba: pointer to lpfc hba data structure.
840 * @pmb: pointer to the driver internal queue element for mailbox command. 841 * @pmb: pointer to the driver internal queue element for mailbox command.
841 * 842 *
@@ -861,7 +862,7 @@ lpfc_read_rev(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
861} 862}
862 863
863/** 864/**
864 * lpfc_build_hbq_profile2: Set up the HBQ Selection Profile 2. 865 * lpfc_build_hbq_profile2 - Set up the HBQ Selection Profile 2
865 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command. 866 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command.
866 * @hbq_desc: pointer to the HBQ selection profile descriptor. 867 * @hbq_desc: pointer to the HBQ selection profile descriptor.
867 * 868 *
@@ -880,7 +881,7 @@ lpfc_build_hbq_profile2(struct config_hbq_var *hbqmb,
880} 881}
881 882
882/** 883/**
883 * lpfc_build_hbq_profile3: Set up the HBQ Selection Profile 3. 884 * lpfc_build_hbq_profile3 - Set up the HBQ Selection Profile 3
884 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command. 885 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command.
885 * @hbq_desc: pointer to the HBQ selection profile descriptor. 886 * @hbq_desc: pointer to the HBQ selection profile descriptor.
886 * 887 *
@@ -902,7 +903,7 @@ lpfc_build_hbq_profile3(struct config_hbq_var *hbqmb,
902} 903}
903 904
904/** 905/**
905 * lpfc_build_hbq_profile5: Set up the HBQ Selection Profile 5. 906 * lpfc_build_hbq_profile5 - Set up the HBQ Selection Profile 5
906 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command. 907 * @hbqmb: pointer to the HBQ configuration data structure in mailbox command.
907 * @hbq_desc: pointer to the HBQ selection profile descriptor. 908 * @hbq_desc: pointer to the HBQ selection profile descriptor.
908 * 909 *
@@ -925,7 +926,7 @@ lpfc_build_hbq_profile5(struct config_hbq_var *hbqmb,
925} 926}
926 927
927/** 928/**
928 * lpfc_config_hbq: Prepare a mailbox command for configuring an HBQ. 929 * lpfc_config_hbq - Prepare a mailbox command for configuring an HBQ
929 * @phba: pointer to lpfc hba data structure. 930 * @phba: pointer to lpfc hba data structure.
930 * @id: HBQ identifier. 931 * @id: HBQ identifier.
931 * @hbq_desc: pointer to the HBA descriptor data structure. 932 * @hbq_desc: pointer to the HBA descriptor data structure.
@@ -999,7 +1000,7 @@ lpfc_config_hbq(struct lpfc_hba *phba, uint32_t id,
999} 1000}
1000 1001
1001/** 1002/**
1002 * lpfc_config_ring: Prepare a mailbox command for configuring an IOCB ring. 1003 * lpfc_config_ring - Prepare a mailbox command for configuring an IOCB ring
1003 * @phba: pointer to lpfc hba data structure. 1004 * @phba: pointer to lpfc hba data structure.
1004 * @ring: 1005 * @ring:
1005 * @pmb: pointer to the driver internal queue element for mailbox command. 1006 * @pmb: pointer to the driver internal queue element for mailbox command.
@@ -1057,7 +1058,7 @@ lpfc_config_ring(struct lpfc_hba * phba, int ring, LPFC_MBOXQ_t * pmb)
1057} 1058}
1058 1059
1059/** 1060/**
1060 * lpfc_config_port: Prepare a mailbox command for configuring port. 1061 * lpfc_config_port - Prepare a mailbox command for configuring port
1061 * @phba: pointer to lpfc hba data structure. 1062 * @phba: pointer to lpfc hba data structure.
1062 * @pmb: pointer to the driver internal queue element for mailbox command. 1063 * @pmb: pointer to the driver internal queue element for mailbox command.
1063 * 1064 *
@@ -1227,7 +1228,7 @@ lpfc_config_port(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
1227} 1228}
1228 1229
1229/** 1230/**
1230 * lpfc_kill_board: Prepare a mailbox command for killing board. 1231 * lpfc_kill_board - Prepare a mailbox command for killing board
1231 * @phba: pointer to lpfc hba data structure. 1232 * @phba: pointer to lpfc hba data structure.
1232 * @pmb: pointer to the driver internal queue element for mailbox command. 1233 * @pmb: pointer to the driver internal queue element for mailbox command.
1233 * 1234 *
@@ -1253,7 +1254,7 @@ lpfc_kill_board(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb)
1253} 1254}
1254 1255
1255/** 1256/**
1256 * lpfc_mbox_put: Put a mailbox cmd into the tail of driver's mailbox queue. 1257 * lpfc_mbox_put - Put a mailbox cmd into the tail of driver's mailbox queue
1257 * @phba: pointer to lpfc hba data structure. 1258 * @phba: pointer to lpfc hba data structure.
1258 * @mbq: pointer to the driver internal queue element for mailbox command. 1259 * @mbq: pointer to the driver internal queue element for mailbox command.
1259 * 1260 *
@@ -1277,7 +1278,7 @@ lpfc_mbox_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq)
1277} 1278}
1278 1279
1279/** 1280/**
1280 * lpfc_mbox_get: Remove a mailbox cmd from the head of driver's mailbox queue. 1281 * lpfc_mbox_get - Remove a mailbox cmd from the head of driver's mailbox queue
1281 * @phba: pointer to lpfc hba data structure. 1282 * @phba: pointer to lpfc hba data structure.
1282 * 1283 *
1283 * Driver maintains a internal mailbox command queue implemented as a linked 1284 * Driver maintains a internal mailbox command queue implemented as a linked
@@ -1304,7 +1305,7 @@ lpfc_mbox_get(struct lpfc_hba * phba)
1304} 1305}
1305 1306
1306/** 1307/**
1307 * lpfc_mbox_cmpl_put: Put mailbox command into mailbox command complete list. 1308 * lpfc_mbox_cmpl_put - Put mailbox command into mailbox command complete list
1308 * @phba: pointer to lpfc hba data structure. 1309 * @phba: pointer to lpfc hba data structure.
1309 * @mbq: pointer to the driver internal queue element for mailbox command. 1310 * @mbq: pointer to the driver internal queue element for mailbox command.
1310 * 1311 *
@@ -1327,7 +1328,7 @@ lpfc_mbox_cmpl_put(struct lpfc_hba * phba, LPFC_MBOXQ_t * mbq)
1327} 1328}
1328 1329
1329/** 1330/**
1330 * lpfc_mbox_tmo_val: Retrieve mailbox command timeout value. 1331 * lpfc_mbox_tmo_val - Retrieve mailbox command timeout value
1331 * @phba: pointer to lpfc hba data structure. 1332 * @phba: pointer to lpfc hba data structure.
1332 * @cmd: mailbox command code. 1333 * @cmd: mailbox command code.
1333 * 1334 *
diff --git a/drivers/scsi/lpfc/lpfc_mem.c b/drivers/scsi/lpfc/lpfc_mem.c
index a4bba2069248..35a976733398 100644
--- a/drivers/scsi/lpfc/lpfc_mem.c
+++ b/drivers/scsi/lpfc/lpfc_mem.c
@@ -41,7 +41,7 @@
41 41
42 42
43/** 43/**
44 * lpfc_mem_alloc: create and allocate all PCI and memory pools 44 * lpfc_mem_alloc - create and allocate all PCI and memory pools
45 * @phba: HBA to allocate pools for 45 * @phba: HBA to allocate pools for
46 * 46 *
47 * Description: Creates and allocates PCI pools lpfc_scsi_dma_buf_pool, 47 * Description: Creates and allocates PCI pools lpfc_scsi_dma_buf_pool,
@@ -136,12 +136,12 @@ lpfc_mem_alloc(struct lpfc_hba * phba)
136} 136}
137 137
138/** 138/**
139 * lpfc_mem_free: Frees all PCI and memory allocated by lpfc_mem_alloc 139 * lpfc_mem_free - Frees all PCI and memory allocated by lpfc_mem_alloc
140 * @phba: HBA to free memory for 140 * @phba: HBA to free memory for
141 * 141 *
142 * Description: Frees PCI pools lpfc_scsi_dma_buf_pool, lpfc_mbuf_pool, 142 * Description: Frees PCI pools lpfc_scsi_dma_buf_pool, lpfc_mbuf_pool,
143 * lpfc_hbq_pool. Frees kmalloc-backed mempools for LPFC_MBOXQ_t and 143 * lpfc_hbq_pool. Frees kmalloc-backed mempools for LPFC_MBOXQ_t and
144 * lpfc_nodelist. Also frees the VPI bitmask. 144 * lpfc_nodelist. Also frees the VPI bitmask
145 * 145 *
146 * Returns: None 146 * Returns: None
147 **/ 147 **/
@@ -212,7 +212,7 @@ lpfc_mem_free(struct lpfc_hba * phba)
212} 212}
213 213
214/** 214/**
215 * lpfc_mbuf_alloc: Allocate an mbuf from the lpfc_mbuf_pool PCI pool 215 * lpfc_mbuf_alloc - Allocate an mbuf from the lpfc_mbuf_pool PCI pool
216 * @phba: HBA which owns the pool to allocate from 216 * @phba: HBA which owns the pool to allocate from
217 * @mem_flags: indicates if this is a priority (MEM_PRI) allocation 217 * @mem_flags: indicates if this is a priority (MEM_PRI) allocation
218 * @handle: used to return the DMA-mapped address of the mbuf 218 * @handle: used to return the DMA-mapped address of the mbuf
@@ -249,7 +249,7 @@ lpfc_mbuf_alloc(struct lpfc_hba *phba, int mem_flags, dma_addr_t *handle)
249} 249}
250 250
251/** 251/**
252 * __lpfc_mem_free: Free an mbuf from the lpfc_mbuf_pool PCI pool (locked) 252 * __lpfc_mbuf_free - Free an mbuf from the lpfc_mbuf_pool PCI pool (locked)
253 * @phba: HBA which owns the pool to return to 253 * @phba: HBA which owns the pool to return to
254 * @virt: mbuf to free 254 * @virt: mbuf to free
255 * @dma: the DMA-mapped address of the lpfc_mbuf_pool to be freed 255 * @dma: the DMA-mapped address of the lpfc_mbuf_pool to be freed
@@ -278,7 +278,7 @@ __lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma)
278} 278}
279 279
280/** 280/**
281 * lpfc_mem_free: Free an mbuf from the lpfc_mbuf_pool PCI pool (unlocked) 281 * lpfc_mbuf_free - Free an mbuf from the lpfc_mbuf_pool PCI pool (unlocked)
282 * @phba: HBA which owns the pool to return to 282 * @phba: HBA which owns the pool to return to
283 * @virt: mbuf to free 283 * @virt: mbuf to free
284 * @dma: the DMA-mapped address of the lpfc_mbuf_pool to be freed 284 * @dma: the DMA-mapped address of the lpfc_mbuf_pool to be freed
@@ -291,7 +291,6 @@ __lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma)
291 * Returns: None 291 * Returns: None
292 **/ 292 **/
293void 293void
294
295lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma) 294lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma)
296{ 295{
297 unsigned long iflags; 296 unsigned long iflags;
@@ -303,7 +302,7 @@ lpfc_mbuf_free(struct lpfc_hba * phba, void *virt, dma_addr_t dma)
303} 302}
304 303
305/** 304/**
306 * lpfc_els_hbq_alloc: Allocate an HBQ buffer 305 * lpfc_els_hbq_alloc - Allocate an HBQ buffer
307 * @phba: HBA to allocate HBQ buffer for 306 * @phba: HBA to allocate HBQ buffer for
308 * 307 *
309 * Description: Allocates a DMA-mapped HBQ buffer from the lpfc_hbq_pool PCI 308 * Description: Allocates a DMA-mapped HBQ buffer from the lpfc_hbq_pool PCI
@@ -335,7 +334,7 @@ lpfc_els_hbq_alloc(struct lpfc_hba *phba)
335} 334}
336 335
337/** 336/**
338 * lpfc_mem_hbq_free: Frees an HBQ buffer allocated with lpfc_els_hbq_alloc 337 * lpfc_mem_hbq_free - Frees an HBQ buffer allocated with lpfc_els_hbq_alloc
339 * @phba: HBA buffer was allocated for 338 * @phba: HBA buffer was allocated for
340 * @hbqbp: HBQ container returned by lpfc_els_hbq_alloc 339 * @hbqbp: HBQ container returned by lpfc_els_hbq_alloc
341 * 340 *
@@ -355,7 +354,7 @@ lpfc_els_hbq_free(struct lpfc_hba *phba, struct hbq_dmabuf *hbqbp)
355} 354}
356 355
357/** 356/**
358 * lpfc_in_buf_free: Free a DMA buffer 357 * lpfc_in_buf_free - Free a DMA buffer
359 * @phba: HBA buffer is associated with 358 * @phba: HBA buffer is associated with
360 * @mp: Buffer to free 359 * @mp: Buffer to free
361 * 360 *
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 8f548adae9cc..08cdc77af41c 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -192,7 +192,6 @@ lpfc_els_abort(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
192 struct lpfc_sli *psli = &phba->sli; 192 struct lpfc_sli *psli = &phba->sli;
193 struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING]; 193 struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING];
194 struct lpfc_iocbq *iocb, *next_iocb; 194 struct lpfc_iocbq *iocb, *next_iocb;
195 IOCB_t *cmd;
196 195
197 /* Abort outstanding I/O on NPort <nlp_DID> */ 196 /* Abort outstanding I/O on NPort <nlp_DID> */
198 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_DISCOVERY, 197 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_DISCOVERY,
@@ -223,19 +222,10 @@ lpfc_els_abort(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
223 } 222 }
224 spin_unlock_irq(&phba->hbalock); 223 spin_unlock_irq(&phba->hbalock);
225 224
226 while (!list_empty(&completions)) { 225 /* Cancel all the IOCBs from the completions list */
227 iocb = list_get_first(&completions, struct lpfc_iocbq, list); 226 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
228 cmd = &iocb->iocb; 227 IOERR_SLI_ABORTED);
229 list_del_init(&iocb->list); 228
230
231 if (!iocb->iocb_cmpl)
232 lpfc_sli_release_iocbq(phba, iocb);
233 else {
234 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
235 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
236 (iocb->iocb_cmpl) (phba, iocb, iocb);
237 }
238 }
239 lpfc_cancel_retry_delay_tmo(phba->pport, ndlp); 229 lpfc_cancel_retry_delay_tmo(phba->pport, ndlp);
240 return 0; 230 return 0;
241} 231}
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index b1bd3fc7bae8..167b66dd34c7 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -112,7 +112,7 @@ lpfc_debug_save_dif(struct scsi_cmnd *cmnd)
112} 112}
113 113
114/** 114/**
115 * lpfc_update_stats: Update statistical data for the command completion. 115 * lpfc_update_stats - Update statistical data for the command completion
116 * @phba: Pointer to HBA object. 116 * @phba: Pointer to HBA object.
117 * @lpfc_cmd: lpfc scsi command object pointer. 117 * @lpfc_cmd: lpfc scsi command object pointer.
118 * 118 *
@@ -165,8 +165,7 @@ lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
165} 165}
166 166
167/** 167/**
168 * lpfc_send_sdev_queuedepth_change_event: Posts a queuedepth change 168 * lpfc_send_sdev_queuedepth_change_event - Posts a queuedepth change event
169 * event.
170 * @phba: Pointer to HBA context object. 169 * @phba: Pointer to HBA context object.
171 * @vport: Pointer to vport object. 170 * @vport: Pointer to vport object.
172 * @ndlp: Pointer to FC node associated with the target. 171 * @ndlp: Pointer to FC node associated with the target.
@@ -220,7 +219,7 @@ lpfc_send_sdev_queuedepth_change_event(struct lpfc_hba *phba,
220} 219}
221 220
222/** 221/**
223 * lpfc_rampdown_queue_depth: Post RAMP_DOWN_QUEUE event to worker thread. 222 * lpfc_rampdown_queue_depth - Post RAMP_DOWN_QUEUE event to worker thread
224 * @phba: The Hba for which this call is being executed. 223 * @phba: The Hba for which this call is being executed.
225 * 224 *
226 * This routine is called when there is resource error in driver or firmware. 225 * This routine is called when there is resource error in driver or firmware.
@@ -261,7 +260,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
261} 260}
262 261
263/** 262/**
264 * lpfc_rampup_queue_depth: Post RAMP_UP_QUEUE event for worker thread. 263 * lpfc_rampup_queue_depth - Post RAMP_UP_QUEUE event for worker thread
265 * @phba: The Hba for which this call is being executed. 264 * @phba: The Hba for which this call is being executed.
266 * 265 *
267 * This routine post WORKER_RAMP_UP_QUEUE event for @phba vport. This routine 266 * This routine post WORKER_RAMP_UP_QUEUE event for @phba vport. This routine
@@ -273,14 +272,14 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
273 **/ 272 **/
274static inline void 273static inline void
275lpfc_rampup_queue_depth(struct lpfc_vport *vport, 274lpfc_rampup_queue_depth(struct lpfc_vport *vport,
276 struct scsi_device *sdev) 275 uint32_t queue_depth)
277{ 276{
278 unsigned long flags; 277 unsigned long flags;
279 struct lpfc_hba *phba = vport->phba; 278 struct lpfc_hba *phba = vport->phba;
280 uint32_t evt_posted; 279 uint32_t evt_posted;
281 atomic_inc(&phba->num_cmd_success); 280 atomic_inc(&phba->num_cmd_success);
282 281
283 if (vport->cfg_lun_queue_depth <= sdev->queue_depth) 282 if (vport->cfg_lun_queue_depth <= queue_depth)
284 return; 283 return;
285 spin_lock_irqsave(&phba->hbalock, flags); 284 spin_lock_irqsave(&phba->hbalock, flags);
286 if (((phba->last_ramp_up_time + QUEUE_RAMP_UP_INTERVAL) > jiffies) || 285 if (((phba->last_ramp_up_time + QUEUE_RAMP_UP_INTERVAL) > jiffies) ||
@@ -303,7 +302,7 @@ lpfc_rampup_queue_depth(struct lpfc_vport *vport,
303} 302}
304 303
305/** 304/**
306 * lpfc_ramp_down_queue_handler: WORKER_RAMP_DOWN_QUEUE event handler. 305 * lpfc_ramp_down_queue_handler - WORKER_RAMP_DOWN_QUEUE event handler
307 * @phba: The Hba for which this call is being executed. 306 * @phba: The Hba for which this call is being executed.
308 * 307 *
309 * This routine is called to process WORKER_RAMP_DOWN_QUEUE event for worker 308 * This routine is called to process WORKER_RAMP_DOWN_QUEUE event for worker
@@ -361,7 +360,7 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
361} 360}
362 361
363/** 362/**
364 * lpfc_ramp_up_queue_handler: WORKER_RAMP_UP_QUEUE event handler. 363 * lpfc_ramp_up_queue_handler - WORKER_RAMP_UP_QUEUE event handler
365 * @phba: The Hba for which this call is being executed. 364 * @phba: The Hba for which this call is being executed.
366 * 365 *
367 * This routine is called to process WORKER_RAMP_UP_QUEUE event for worker 366 * This routine is called to process WORKER_RAMP_UP_QUEUE event for worker
@@ -410,7 +409,7 @@ lpfc_ramp_up_queue_handler(struct lpfc_hba *phba)
410} 409}
411 410
412/** 411/**
413 * lpfc_scsi_dev_block: set all scsi hosts to block state. 412 * lpfc_scsi_dev_block - set all scsi hosts to block state
414 * @phba: Pointer to HBA context object. 413 * @phba: Pointer to HBA context object.
415 * 414 *
416 * This function walks vport list and set each SCSI host to block state 415 * This function walks vport list and set each SCSI host to block state
@@ -439,7 +438,7 @@ lpfc_scsi_dev_block(struct lpfc_hba *phba)
439} 438}
440 439
441/** 440/**
442 * lpfc_new_scsi_buf: Scsi buffer allocator. 441 * lpfc_new_scsi_buf - Scsi buffer allocator
443 * @vport: The virtual port for which this call being executed. 442 * @vport: The virtual port for which this call being executed.
444 * 443 *
445 * This routine allocates a scsi buffer, which contains all the necessary 444 * This routine allocates a scsi buffer, which contains all the necessary
@@ -563,7 +562,7 @@ lpfc_new_scsi_buf(struct lpfc_vport *vport)
563} 562}
564 563
565/** 564/**
566 * lpfc_get_scsi_buf: Get a scsi buffer from lpfc_scsi_buf_list list of Hba. 565 * lpfc_get_scsi_buf - Get a scsi buffer from lpfc_scsi_buf_list list of Hba
567 * @phba: The Hba for which this call is being executed. 566 * @phba: The Hba for which this call is being executed.
568 * 567 *
569 * This routine removes a scsi buffer from head of @phba lpfc_scsi_buf_list list 568 * This routine removes a scsi buffer from head of @phba lpfc_scsi_buf_list list
@@ -592,7 +591,7 @@ lpfc_get_scsi_buf(struct lpfc_hba * phba)
592} 591}
593 592
594/** 593/**
595 * lpfc_release_scsi_buf: Return a scsi buffer back to hba lpfc_scsi_buf_list list. 594 * lpfc_release_scsi_buf - Return a scsi buffer back to hba's lpfc_scsi_buf_list
596 * @phba: The Hba for which this call is being executed. 595 * @phba: The Hba for which this call is being executed.
597 * @psb: The scsi buffer which is being released. 596 * @psb: The scsi buffer which is being released.
598 * 597 *
@@ -611,7 +610,7 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
611} 610}
612 611
613/** 612/**
614 * lpfc_scsi_prep_dma_buf: Routine to do DMA mapping for scsi buffer. 613 * lpfc_scsi_prep_dma_buf - Routine to do DMA mapping for scsi buffer
615 * @phba: The Hba for which this call is being executed. 614 * @phba: The Hba for which this call is being executed.
616 * @lpfc_cmd: The scsi buffer which is going to be mapped. 615 * @lpfc_cmd: The scsi buffer which is going to be mapped.
617 * 616 *
@@ -738,7 +737,7 @@ lpfc_scsi_prep_dma_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
738 * Due to difference in data length between DIF/non-DIF paths, 737 * Due to difference in data length between DIF/non-DIF paths,
739 * we need to set word 4 of IOCB here 738 * we need to set word 4 of IOCB here
740 */ 739 */
741 iocb_cmd->un.fcpi.fcpi_parm = le32_to_cpu(scsi_bufflen(scsi_cmnd)); 740 iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
742 return 0; 741 return 0;
743} 742}
744 743
@@ -823,9 +822,9 @@ lpfc_cmd_blksize(struct scsi_cmnd *sc)
823/** 822/**
824 * lpfc_get_cmd_dif_parms - Extract DIF parameters from SCSI command 823 * lpfc_get_cmd_dif_parms - Extract DIF parameters from SCSI command
825 * @sc: in: SCSI command 824 * @sc: in: SCSI command
826 * @apptagmask out: app tag mask 825 * @apptagmask: out: app tag mask
827 * @apptagval out: app tag value 826 * @apptagval: out: app tag value
828 * @reftag out: ref tag (reference tag) 827 * @reftag: out: ref tag (reference tag)
829 * 828 *
830 * Description: 829 * Description:
831 * Extract DIF paramters from the command if possible. Otherwise, 830 * Extract DIF paramters from the command if possible. Otherwise,
@@ -1394,7 +1393,7 @@ lpfc_parse_bg_err(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd,
1394 */ 1393 */
1395 cmd->sense_buffer[8] = 0; /* Information */ 1394 cmd->sense_buffer[8] = 0; /* Information */
1396 cmd->sense_buffer[9] = 0xa; /* Add. length */ 1395 cmd->sense_buffer[9] = 0xa; /* Add. length */
1397 do_div(bghm, cmd->device->sector_size); 1396 bghm /= cmd->device->sector_size;
1398 1397
1399 failing_sector = scsi_get_lba(cmd); 1398 failing_sector = scsi_get_lba(cmd);
1400 failing_sector += bghm; 1399 failing_sector += bghm;
@@ -1413,7 +1412,7 @@ out:
1413} 1412}
1414 1413
1415/** 1414/**
1416 * lpfc_send_scsi_error_event: Posts an event when there is SCSI error. 1415 * lpfc_send_scsi_error_event - Posts an event when there is SCSI error
1417 * @phba: Pointer to hba context object. 1416 * @phba: Pointer to hba context object.
1418 * @vport: Pointer to vport object. 1417 * @vport: Pointer to vport object.
1419 * @lpfc_cmd: Pointer to lpfc scsi command which reported the error. 1418 * @lpfc_cmd: Pointer to lpfc scsi command which reported the error.
@@ -1505,7 +1504,7 @@ lpfc_send_scsi_error_event(struct lpfc_hba *phba, struct lpfc_vport *vport,
1505} 1504}
1506 1505
1507/** 1506/**
1508 * lpfc_scsi_unprep_dma_buf: Routine to un-map DMA mapping of scatter gather. 1507 * lpfc_scsi_unprep_dma_buf - Routine to un-map DMA mapping of scatter gather
1509 * @phba: The Hba for which this call is being executed. 1508 * @phba: The Hba for which this call is being executed.
1510 * @psb: The scsi buffer which is going to be un-mapped. 1509 * @psb: The scsi buffer which is going to be un-mapped.
1511 * 1510 *
@@ -1530,7 +1529,7 @@ lpfc_scsi_unprep_dma_buf(struct lpfc_hba * phba, struct lpfc_scsi_buf * psb)
1530} 1529}
1531 1530
1532/** 1531/**
1533 * lpfc_handler_fcp_err: FCP response handler. 1532 * lpfc_handler_fcp_err - FCP response handler
1534 * @vport: The virtual port for which this call is being executed. 1533 * @vport: The virtual port for which this call is being executed.
1535 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure. 1534 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure.
1536 * @rsp_iocb: The response IOCB which contains FCP error. 1535 * @rsp_iocb: The response IOCB which contains FCP error.
@@ -1674,7 +1673,7 @@ lpfc_handle_fcp_err(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
1674} 1673}
1675 1674
1676/** 1675/**
1677 * lpfc_scsi_cmd_iocb_cmpl: Scsi cmnd IOCB completion routine. 1676 * lpfc_scsi_cmd_iocb_cmpl - Scsi cmnd IOCB completion routine
1678 * @phba: The Hba for which this call is being executed. 1677 * @phba: The Hba for which this call is being executed.
1679 * @pIocbIn: The command IOCBQ for the scsi cmnd. 1678 * @pIocbIn: The command IOCBQ for the scsi cmnd.
1680 * @pIocbOut: The response IOCBQ for the scsi cmnd . 1679 * @pIocbOut: The response IOCBQ for the scsi cmnd .
@@ -1694,10 +1693,12 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1694 struct lpfc_nodelist *pnode = rdata->pnode; 1693 struct lpfc_nodelist *pnode = rdata->pnode;
1695 struct scsi_cmnd *cmd = lpfc_cmd->pCmd; 1694 struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
1696 int result; 1695 int result;
1697 struct scsi_device *sdev, *tmp_sdev; 1696 struct scsi_device *tmp_sdev;
1698 int depth = 0; 1697 int depth = 0;
1699 unsigned long flags; 1698 unsigned long flags;
1700 struct lpfc_fast_path_event *fast_path_evt; 1699 struct lpfc_fast_path_event *fast_path_evt;
1700 struct Scsi_Host *shost = cmd->device->host;
1701 uint32_t queue_depth, scsi_id;
1701 1702
1702 lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4]; 1703 lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4];
1703 lpfc_cmd->status = pIocbOut->iocb.ulpStatus; 1704 lpfc_cmd->status = pIocbOut->iocb.ulpStatus;
@@ -1808,11 +1809,10 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1808 1809
1809 lpfc_update_stats(phba, lpfc_cmd); 1810 lpfc_update_stats(phba, lpfc_cmd);
1810 result = cmd->result; 1811 result = cmd->result;
1811 sdev = cmd->device;
1812 if (vport->cfg_max_scsicmpl_time && 1812 if (vport->cfg_max_scsicmpl_time &&
1813 time_after(jiffies, lpfc_cmd->start_time + 1813 time_after(jiffies, lpfc_cmd->start_time +
1814 msecs_to_jiffies(vport->cfg_max_scsicmpl_time))) { 1814 msecs_to_jiffies(vport->cfg_max_scsicmpl_time))) {
1815 spin_lock_irqsave(sdev->host->host_lock, flags); 1815 spin_lock_irqsave(shost->host_lock, flags);
1816 if (pnode && NLP_CHK_NODE_ACT(pnode)) { 1816 if (pnode && NLP_CHK_NODE_ACT(pnode)) {
1817 if (pnode->cmd_qdepth > 1817 if (pnode->cmd_qdepth >
1818 atomic_read(&pnode->cmd_pending) && 1818 atomic_read(&pnode->cmd_pending) &&
@@ -1825,22 +1825,26 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1825 1825
1826 pnode->last_change_time = jiffies; 1826 pnode->last_change_time = jiffies;
1827 } 1827 }
1828 spin_unlock_irqrestore(sdev->host->host_lock, flags); 1828 spin_unlock_irqrestore(shost->host_lock, flags);
1829 } else if (pnode && NLP_CHK_NODE_ACT(pnode)) { 1829 } else if (pnode && NLP_CHK_NODE_ACT(pnode)) {
1830 if ((pnode->cmd_qdepth < LPFC_MAX_TGT_QDEPTH) && 1830 if ((pnode->cmd_qdepth < LPFC_MAX_TGT_QDEPTH) &&
1831 time_after(jiffies, pnode->last_change_time + 1831 time_after(jiffies, pnode->last_change_time +
1832 msecs_to_jiffies(LPFC_TGTQ_INTERVAL))) { 1832 msecs_to_jiffies(LPFC_TGTQ_INTERVAL))) {
1833 spin_lock_irqsave(sdev->host->host_lock, flags); 1833 spin_lock_irqsave(shost->host_lock, flags);
1834 pnode->cmd_qdepth += pnode->cmd_qdepth * 1834 pnode->cmd_qdepth += pnode->cmd_qdepth *
1835 LPFC_TGTQ_RAMPUP_PCENT / 100; 1835 LPFC_TGTQ_RAMPUP_PCENT / 100;
1836 if (pnode->cmd_qdepth > LPFC_MAX_TGT_QDEPTH) 1836 if (pnode->cmd_qdepth > LPFC_MAX_TGT_QDEPTH)
1837 pnode->cmd_qdepth = LPFC_MAX_TGT_QDEPTH; 1837 pnode->cmd_qdepth = LPFC_MAX_TGT_QDEPTH;
1838 pnode->last_change_time = jiffies; 1838 pnode->last_change_time = jiffies;
1839 spin_unlock_irqrestore(sdev->host->host_lock, flags); 1839 spin_unlock_irqrestore(shost->host_lock, flags);
1840 } 1840 }
1841 } 1841 }
1842 1842
1843 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd); 1843 lpfc_scsi_unprep_dma_buf(phba, lpfc_cmd);
1844
1845 /* The sdev is not guaranteed to be valid post scsi_done upcall. */
1846 queue_depth = cmd->device->queue_depth;
1847 scsi_id = cmd->device->id;
1844 cmd->scsi_done(cmd); 1848 cmd->scsi_done(cmd);
1845 1849
1846 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) { 1850 if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
@@ -1848,28 +1852,28 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1848 * If there is a thread waiting for command completion 1852 * If there is a thread waiting for command completion
1849 * wake up the thread. 1853 * wake up the thread.
1850 */ 1854 */
1851 spin_lock_irqsave(sdev->host->host_lock, flags); 1855 spin_lock_irqsave(shost->host_lock, flags);
1852 lpfc_cmd->pCmd = NULL; 1856 lpfc_cmd->pCmd = NULL;
1853 if (lpfc_cmd->waitq) 1857 if (lpfc_cmd->waitq)
1854 wake_up(lpfc_cmd->waitq); 1858 wake_up(lpfc_cmd->waitq);
1855 spin_unlock_irqrestore(sdev->host->host_lock, flags); 1859 spin_unlock_irqrestore(shost->host_lock, flags);
1856 lpfc_release_scsi_buf(phba, lpfc_cmd); 1860 lpfc_release_scsi_buf(phba, lpfc_cmd);
1857 return; 1861 return;
1858 } 1862 }
1859 1863
1860 1864
1861 if (!result) 1865 if (!result)
1862 lpfc_rampup_queue_depth(vport, sdev); 1866 lpfc_rampup_queue_depth(vport, queue_depth);
1863 1867
1864 if (!result && pnode && NLP_CHK_NODE_ACT(pnode) && 1868 if (!result && pnode && NLP_CHK_NODE_ACT(pnode) &&
1865 ((jiffies - pnode->last_ramp_up_time) > 1869 ((jiffies - pnode->last_ramp_up_time) >
1866 LPFC_Q_RAMP_UP_INTERVAL * HZ) && 1870 LPFC_Q_RAMP_UP_INTERVAL * HZ) &&
1867 ((jiffies - pnode->last_q_full_time) > 1871 ((jiffies - pnode->last_q_full_time) >
1868 LPFC_Q_RAMP_UP_INTERVAL * HZ) && 1872 LPFC_Q_RAMP_UP_INTERVAL * HZ) &&
1869 (vport->cfg_lun_queue_depth > sdev->queue_depth)) { 1873 (vport->cfg_lun_queue_depth > queue_depth)) {
1870 shost_for_each_device(tmp_sdev, sdev->host) { 1874 shost_for_each_device(tmp_sdev, shost) {
1871 if (vport->cfg_lun_queue_depth > tmp_sdev->queue_depth){ 1875 if (vport->cfg_lun_queue_depth > tmp_sdev->queue_depth){
1872 if (tmp_sdev->id != sdev->id) 1876 if (tmp_sdev->id != scsi_id)
1873 continue; 1877 continue;
1874 if (tmp_sdev->ordered_tags) 1878 if (tmp_sdev->ordered_tags)
1875 scsi_adjust_queue_depth(tmp_sdev, 1879 scsi_adjust_queue_depth(tmp_sdev,
@@ -1885,7 +1889,7 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1885 } 1889 }
1886 lpfc_send_sdev_queuedepth_change_event(phba, vport, pnode, 1890 lpfc_send_sdev_queuedepth_change_event(phba, vport, pnode,
1887 0xFFFFFFFF, 1891 0xFFFFFFFF,
1888 sdev->queue_depth - 1, sdev->queue_depth); 1892 queue_depth , queue_depth + 1);
1889 } 1893 }
1890 1894
1891 /* 1895 /*
@@ -1896,8 +1900,8 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1896 NLP_CHK_NODE_ACT(pnode)) { 1900 NLP_CHK_NODE_ACT(pnode)) {
1897 pnode->last_q_full_time = jiffies; 1901 pnode->last_q_full_time = jiffies;
1898 1902
1899 shost_for_each_device(tmp_sdev, sdev->host) { 1903 shost_for_each_device(tmp_sdev, shost) {
1900 if (tmp_sdev->id != sdev->id) 1904 if (tmp_sdev->id != scsi_id)
1901 continue; 1905 continue;
1902 depth = scsi_track_queue_full(tmp_sdev, 1906 depth = scsi_track_queue_full(tmp_sdev,
1903 tmp_sdev->queue_depth - 1); 1907 tmp_sdev->queue_depth - 1);
@@ -1909,7 +1913,7 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1909 * scsi_track_queue_full. 1913 * scsi_track_queue_full.
1910 */ 1914 */
1911 if (depth == -1) 1915 if (depth == -1)
1912 depth = sdev->host->cmd_per_lun; 1916 depth = shost->cmd_per_lun;
1913 1917
1914 if (depth) { 1918 if (depth) {
1915 lpfc_printf_vlog(vport, KERN_WARNING, LOG_FCP, 1919 lpfc_printf_vlog(vport, KERN_WARNING, LOG_FCP,
@@ -1925,17 +1929,17 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
1925 * If there is a thread waiting for command completion 1929 * If there is a thread waiting for command completion
1926 * wake up the thread. 1930 * wake up the thread.
1927 */ 1931 */
1928 spin_lock_irqsave(sdev->host->host_lock, flags); 1932 spin_lock_irqsave(shost->host_lock, flags);
1929 lpfc_cmd->pCmd = NULL; 1933 lpfc_cmd->pCmd = NULL;
1930 if (lpfc_cmd->waitq) 1934 if (lpfc_cmd->waitq)
1931 wake_up(lpfc_cmd->waitq); 1935 wake_up(lpfc_cmd->waitq);
1932 spin_unlock_irqrestore(sdev->host->host_lock, flags); 1936 spin_unlock_irqrestore(shost->host_lock, flags);
1933 1937
1934 lpfc_release_scsi_buf(phba, lpfc_cmd); 1938 lpfc_release_scsi_buf(phba, lpfc_cmd);
1935} 1939}
1936 1940
1937/** 1941/**
1938 * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB. 1942 * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
1939 * @data: A pointer to the immediate command data portion of the IOCB. 1943 * @data: A pointer to the immediate command data portion of the IOCB.
1940 * @fcp_cmnd: The FCP Command that is provided by the SCSI layer. 1944 * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
1941 * 1945 *
@@ -1953,7 +1957,7 @@ lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
1953} 1957}
1954 1958
1955/** 1959/**
1956 * lpfc_scsi_prep_cmnd: Routine to convert scsi cmnd to FCP information unit. 1960 * lpfc_scsi_prep_cmnd - Routine to convert scsi cmnd to FCP information unit
1957 * @vport: The virtual port for which this call is being executed. 1961 * @vport: The virtual port for which this call is being executed.
1958 * @lpfc_cmd: The scsi command which needs to send. 1962 * @lpfc_cmd: The scsi command which needs to send.
1959 * @pnode: Pointer to lpfc_nodelist. 1963 * @pnode: Pointer to lpfc_nodelist.
@@ -2047,7 +2051,7 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
2047} 2051}
2048 2052
2049/** 2053/**
2050 * lpfc_scsi_prep_task_mgmt_cmnd: Convert scsi TM cmnd to FCP information unit. 2054 * lpfc_scsi_prep_task_mgmt_cmnd - Convert scsi TM cmnd to FCP information unit
2051 * @vport: The virtual port for which this call is being executed. 2055 * @vport: The virtual port for which this call is being executed.
2052 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure. 2056 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure.
2053 * @lun: Logical unit number. 2057 * @lun: Logical unit number.
@@ -2110,7 +2114,7 @@ lpfc_scsi_prep_task_mgmt_cmd(struct lpfc_vport *vport,
2110} 2114}
2111 2115
2112/** 2116/**
2113 * lpc_taskmgmt_def_cmpl: IOCB completion routine for task management command. 2117 * lpfc_taskmgmt_def_cmpl - IOCB completion routine for task management command
2114 * @phba: The Hba for which this call is being executed. 2118 * @phba: The Hba for which this call is being executed.
2115 * @cmdiocbq: Pointer to lpfc_iocbq data structure. 2119 * @cmdiocbq: Pointer to lpfc_iocbq data structure.
2116 * @rspiocbq: Pointer to lpfc_iocbq data structure. 2120 * @rspiocbq: Pointer to lpfc_iocbq data structure.
@@ -2131,7 +2135,7 @@ lpfc_tskmgmt_def_cmpl(struct lpfc_hba *phba,
2131} 2135}
2132 2136
2133/** 2137/**
2134 * lpfc_scsi_tgt_reset: Target reset handler. 2138 * lpfc_scsi_tgt_reset - Target reset handler
2135 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure 2139 * @lpfc_cmd: Pointer to lpfc_scsi_buf data structure
2136 * @vport: The virtual port for which this call is being executed. 2140 * @vport: The virtual port for which this call is being executed.
2137 * @tgt_id: Target ID. 2141 * @tgt_id: Target ID.
@@ -2198,7 +2202,7 @@ lpfc_scsi_tgt_reset(struct lpfc_scsi_buf *lpfc_cmd, struct lpfc_vport *vport,
2198} 2202}
2199 2203
2200/** 2204/**
2201 * lpfc_info: Info entry point of scsi_host_template data structure. 2205 * lpfc_info - Info entry point of scsi_host_template data structure
2202 * @host: The scsi host for which this call is being executed. 2206 * @host: The scsi host for which this call is being executed.
2203 * 2207 *
2204 * This routine provides module information about hba. 2208 * This routine provides module information about hba.
@@ -2236,7 +2240,7 @@ lpfc_info(struct Scsi_Host *host)
2236} 2240}
2237 2241
2238/** 2242/**
2239 * lpfc_poll_rearm_time: Routine to modify fcp_poll timer of hba. 2243 * lpfc_poll_rearm_time - Routine to modify fcp_poll timer of hba
2240 * @phba: The Hba for which this call is being executed. 2244 * @phba: The Hba for which this call is being executed.
2241 * 2245 *
2242 * This routine modifies fcp_poll_timer field of @phba by cfg_poll_tmo. 2246 * This routine modifies fcp_poll_timer field of @phba by cfg_poll_tmo.
@@ -2253,7 +2257,7 @@ static __inline__ void lpfc_poll_rearm_timer(struct lpfc_hba * phba)
2253} 2257}
2254 2258
2255/** 2259/**
2256 * lpfc_poll_start_timer: Routine to start fcp_poll_timer of HBA. 2260 * lpfc_poll_start_timer - Routine to start fcp_poll_timer of HBA
2257 * @phba: The Hba for which this call is being executed. 2261 * @phba: The Hba for which this call is being executed.
2258 * 2262 *
2259 * This routine starts the fcp_poll_timer of @phba. 2263 * This routine starts the fcp_poll_timer of @phba.
@@ -2264,7 +2268,7 @@ void lpfc_poll_start_timer(struct lpfc_hba * phba)
2264} 2268}
2265 2269
2266/** 2270/**
2267 * lpfc_poll_timeout: Restart polling timer. 2271 * lpfc_poll_timeout - Restart polling timer
2268 * @ptr: Map to lpfc_hba data structure pointer. 2272 * @ptr: Map to lpfc_hba data structure pointer.
2269 * 2273 *
2270 * This routine restarts fcp_poll timer, when FCP ring polling is enable 2274 * This routine restarts fcp_poll timer, when FCP ring polling is enable
@@ -2283,8 +2287,7 @@ void lpfc_poll_timeout(unsigned long ptr)
2283} 2287}
2284 2288
2285/** 2289/**
2286 * lpfc_queuecommand: Queuecommand entry point of Scsi Host Templater data 2290 * lpfc_queuecommand - scsi_host_template queuecommand entry point
2287 * structure.
2288 * @cmnd: Pointer to scsi_cmnd data structure. 2291 * @cmnd: Pointer to scsi_cmnd data structure.
2289 * @done: Pointer to done routine. 2292 * @done: Pointer to done routine.
2290 * 2293 *
@@ -2450,7 +2453,7 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
2450} 2453}
2451 2454
2452/** 2455/**
2453 * lpfc_block_error_handler: Routine to block error handler. 2456 * lpfc_block_error_handler - Routine to block error handler
2454 * @cmnd: Pointer to scsi_cmnd data structure. 2457 * @cmnd: Pointer to scsi_cmnd data structure.
2455 * 2458 *
2456 * This routine blocks execution till fc_rport state is not FC_PORSTAT_BLCOEKD. 2459 * This routine blocks execution till fc_rport state is not FC_PORSTAT_BLCOEKD.
@@ -2472,8 +2475,7 @@ lpfc_block_error_handler(struct scsi_cmnd *cmnd)
2472} 2475}
2473 2476
2474/** 2477/**
2475 * lpfc_abort_handler: Eh_abort_handler entry point of Scsi Host Template data 2478 * lpfc_abort_handler - scsi_host_template eh_abort_handler entry point
2476 *structure.
2477 * @cmnd: Pointer to scsi_cmnd data structure. 2479 * @cmnd: Pointer to scsi_cmnd data structure.
2478 * 2480 *
2479 * This routine aborts @cmnd pending in base driver. 2481 * This routine aborts @cmnd pending in base driver.
@@ -2578,8 +2580,7 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd)
2578} 2580}
2579 2581
2580/** 2582/**
2581 * lpfc_device_reset_handler: eh_device_reset entry point of Scsi Host Template 2583 * lpfc_device_reset_handler - scsi_host_template eh_device_reset entry point
2582 *data structure.
2583 * @cmnd: Pointer to scsi_cmnd data structure. 2584 * @cmnd: Pointer to scsi_cmnd data structure.
2584 * 2585 *
2585 * This routine does a device reset by sending a TARGET_RESET task management 2586 * This routine does a device reset by sending a TARGET_RESET task management
@@ -2587,7 +2588,7 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd)
2587 * 2588 *
2588 * Return code : 2589 * Return code :
2589 * 0x2003 - Error 2590 * 0x2003 - Error
2590 * 0ex2002 - Success 2591 * 0x2002 - Success
2591 **/ 2592 **/
2592static int 2593static int
2593lpfc_device_reset_handler(struct scsi_cmnd *cmnd) 2594lpfc_device_reset_handler(struct scsi_cmnd *cmnd)
@@ -2707,8 +2708,7 @@ lpfc_device_reset_handler(struct scsi_cmnd *cmnd)
2707} 2708}
2708 2709
2709/** 2710/**
2710 * lpfc_bus_reset_handler: eh_bus_reset_handler entry point of Scsi Host 2711 * lpfc_bus_reset_handler - scsi_host_template eh_bus_reset_handler entry point
2711 * Template data structure.
2712 * @cmnd: Pointer to scsi_cmnd data structure. 2712 * @cmnd: Pointer to scsi_cmnd data structure.
2713 * 2713 *
2714 * This routine does target reset to all target on @cmnd->device->host. 2714 * This routine does target reset to all target on @cmnd->device->host.
@@ -2808,8 +2808,7 @@ lpfc_bus_reset_handler(struct scsi_cmnd *cmnd)
2808} 2808}
2809 2809
2810/** 2810/**
2811 * lpfc_slave_alloc: slave_alloc entry point of Scsi Host Template data 2811 * lpfc_slave_alloc - scsi_host_template slave_alloc entry point
2812 * structure.
2813 * @sdev: Pointer to scsi_device. 2812 * @sdev: Pointer to scsi_device.
2814 * 2813 *
2815 * This routine populates the cmds_per_lun count + 2 scsi_bufs into this host's 2814 * This routine populates the cmds_per_lun count + 2 scsi_bufs into this host's
@@ -2883,8 +2882,7 @@ lpfc_slave_alloc(struct scsi_device *sdev)
2883} 2882}
2884 2883
2885/** 2884/**
2886 * lpfc_slave_configure: slave_configure entry point of Scsi Host Templater data 2885 * lpfc_slave_configure - scsi_host_template slave_configure entry point
2887 * structure.
2888 * @sdev: Pointer to scsi_device. 2886 * @sdev: Pointer to scsi_device.
2889 * 2887 *
2890 * This routine configures following items 2888 * This routine configures following items
@@ -2925,7 +2923,7 @@ lpfc_slave_configure(struct scsi_device *sdev)
2925} 2923}
2926 2924
2927/** 2925/**
2928 * lpfc_slave_destroy: slave_destroy entry point of SHT data structure. 2926 * lpfc_slave_destroy - slave_destroy entry point of SHT data structure
2929 * @sdev: Pointer to scsi_device. 2927 * @sdev: Pointer to scsi_device.
2930 * 2928 *
2931 * This routine sets @sdev hostatdata filed to null. 2929 * This routine sets @sdev hostatdata filed to null.
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index a36a120561e2..eb5c75c45ba4 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -68,7 +68,7 @@ typedef enum _lpfc_iocb_type {
68} lpfc_iocb_type; 68} lpfc_iocb_type;
69 69
70/** 70/**
71 * lpfc_cmd_iocb: Get next command iocb entry in the ring. 71 * lpfc_cmd_iocb - Get next command iocb entry in the ring
72 * @phba: Pointer to HBA context object. 72 * @phba: Pointer to HBA context object.
73 * @pring: Pointer to driver SLI ring object. 73 * @pring: Pointer to driver SLI ring object.
74 * 74 *
@@ -85,7 +85,7 @@ lpfc_cmd_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
85} 85}
86 86
87/** 87/**
88 * lpfc_resp_iocb: Get next response iocb entry in the ring. 88 * lpfc_resp_iocb - Get next response iocb entry in the ring
89 * @phba: Pointer to HBA context object. 89 * @phba: Pointer to HBA context object.
90 * @pring: Pointer to driver SLI ring object. 90 * @pring: Pointer to driver SLI ring object.
91 * 91 *
@@ -102,7 +102,7 @@ lpfc_resp_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
102} 102}
103 103
104/** 104/**
105 * __lpfc_sli_get_iocbq: Allocates an iocb object from iocb pool. 105 * __lpfc_sli_get_iocbq - Allocates an iocb object from iocb pool
106 * @phba: Pointer to HBA context object. 106 * @phba: Pointer to HBA context object.
107 * 107 *
108 * This function is called with hbalock held. This function 108 * This function is called with hbalock held. This function
@@ -121,7 +121,7 @@ __lpfc_sli_get_iocbq(struct lpfc_hba *phba)
121} 121}
122 122
123/** 123/**
124 * lpfc_sli_get_iocbq: Allocates an iocb object from iocb pool. 124 * lpfc_sli_get_iocbq - Allocates an iocb object from iocb pool
125 * @phba: Pointer to HBA context object. 125 * @phba: Pointer to HBA context object.
126 * 126 *
127 * This function is called with no lock held. This function 127 * This function is called with no lock held. This function
@@ -142,7 +142,7 @@ lpfc_sli_get_iocbq(struct lpfc_hba *phba)
142} 142}
143 143
144/** 144/**
145 * __lpfc_sli_release_iocbq: Release iocb to the iocb pool. 145 * __lpfc_sli_release_iocbq - Release iocb to the iocb pool
146 * @phba: Pointer to HBA context object. 146 * @phba: Pointer to HBA context object.
147 * @iocbq: Pointer to driver iocb object. 147 * @iocbq: Pointer to driver iocb object.
148 * 148 *
@@ -164,7 +164,7 @@ __lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
164} 164}
165 165
166/** 166/**
167 * lpfc_sli_release_iocbq: Release iocb to the iocb pool. 167 * lpfc_sli_release_iocbq - Release iocb to the iocb pool
168 * @phba: Pointer to HBA context object. 168 * @phba: Pointer to HBA context object.
169 * @iocbq: Pointer to driver iocb object. 169 * @iocbq: Pointer to driver iocb object.
170 * 170 *
@@ -185,8 +185,40 @@ lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
185} 185}
186 186
187/** 187/**
188 * lpfc_sli_iocb_cmd_type: Get the iocb type. 188 * lpfc_sli_cancel_iocbs - Cancel all iocbs from a list.
189 * @iocb_cmnd : iocb command code. 189 * @phba: Pointer to HBA context object.
190 * @iocblist: List of IOCBs.
191 * @ulpstatus: ULP status in IOCB command field.
192 * @ulpWord4: ULP word-4 in IOCB command field.
193 *
194 * This function is called with a list of IOCBs to cancel. It cancels the IOCB
195 * on the list by invoking the complete callback function associated with the
196 * IOCB with the provided @ulpstatus and @ulpword4 set to the IOCB commond
197 * fields.
198 **/
199void
200lpfc_sli_cancel_iocbs(struct lpfc_hba *phba, struct list_head *iocblist,
201 uint32_t ulpstatus, uint32_t ulpWord4)
202{
203 struct lpfc_iocbq *piocb;
204
205 while (!list_empty(iocblist)) {
206 list_remove_head(iocblist, piocb, struct lpfc_iocbq, list);
207
208 if (!piocb->iocb_cmpl)
209 lpfc_sli_release_iocbq(phba, piocb);
210 else {
211 piocb->iocb.ulpStatus = ulpstatus;
212 piocb->iocb.un.ulpWord[4] = ulpWord4;
213 (piocb->iocb_cmpl) (phba, piocb, piocb);
214 }
215 }
216 return;
217}
218
219/**
220 * lpfc_sli_iocb_cmd_type - Get the iocb type
221 * @iocb_cmnd: iocb command code.
190 * 222 *
191 * This function is called by ring event handler function to get the iocb type. 223 * This function is called by ring event handler function to get the iocb type.
192 * This function translates the iocb command to an iocb command type used to 224 * This function translates the iocb command to an iocb command type used to
@@ -295,7 +327,7 @@ lpfc_sli_iocb_cmd_type(uint8_t iocb_cmnd)
295} 327}
296 328
297/** 329/**
298 * lpfc_sli_ring_map: Issue config_ring mbox for all rings. 330 * lpfc_sli_ring_map - Issue config_ring mbox for all rings
299 * @phba: Pointer to HBA context object. 331 * @phba: Pointer to HBA context object.
300 * 332 *
301 * This function is called from SLI initialization code 333 * This function is called from SLI initialization code
@@ -338,7 +370,7 @@ lpfc_sli_ring_map(struct lpfc_hba *phba)
338} 370}
339 371
340/** 372/**
341 * lpfc_sli_ringtxcmpl_put: Adds new iocb to the txcmplq. 373 * lpfc_sli_ringtxcmpl_put - Adds new iocb to the txcmplq
342 * @phba: Pointer to HBA context object. 374 * @phba: Pointer to HBA context object.
343 * @pring: Pointer to driver SLI ring object. 375 * @pring: Pointer to driver SLI ring object.
344 * @piocb: Pointer to the driver iocb object. 376 * @piocb: Pointer to the driver iocb object.
@@ -370,7 +402,7 @@ lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
370} 402}
371 403
372/** 404/**
373 * lpfc_sli_ringtx_get: Get first element of the txq. 405 * lpfc_sli_ringtx_get - Get first element of the txq
374 * @phba: Pointer to HBA context object. 406 * @phba: Pointer to HBA context object.
375 * @pring: Pointer to driver SLI ring object. 407 * @pring: Pointer to driver SLI ring object.
376 * 408 *
@@ -391,7 +423,7 @@ lpfc_sli_ringtx_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
391} 423}
392 424
393/** 425/**
394 * lpfc_sli_next_iocb_slot: Get next iocb slot in the ring. 426 * lpfc_sli_next_iocb_slot - Get next iocb slot in the ring
395 * @phba: Pointer to HBA context object. 427 * @phba: Pointer to HBA context object.
396 * @pring: Pointer to driver SLI ring object. 428 * @pring: Pointer to driver SLI ring object.
397 * 429 *
@@ -445,7 +477,7 @@ lpfc_sli_next_iocb_slot (struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
445} 477}
446 478
447/** 479/**
448 * lpfc_sli_next_iotag: Get an iotag for the iocb. 480 * lpfc_sli_next_iotag - Get an iotag for the iocb
449 * @phba: Pointer to HBA context object. 481 * @phba: Pointer to HBA context object.
450 * @iocbq: Pointer to driver iocb object. 482 * @iocbq: Pointer to driver iocb object.
451 * 483 *
@@ -520,7 +552,7 @@ lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
520} 552}
521 553
522/** 554/**
523 * lpfc_sli_submit_iocb: Submit an iocb to the firmware. 555 * lpfc_sli_submit_iocb - Submit an iocb to the firmware
524 * @phba: Pointer to HBA context object. 556 * @phba: Pointer to HBA context object.
525 * @pring: Pointer to driver SLI ring object. 557 * @pring: Pointer to driver SLI ring object.
526 * @iocb: Pointer to iocb slot in the ring. 558 * @iocb: Pointer to iocb slot in the ring.
@@ -577,7 +609,7 @@ lpfc_sli_submit_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
577} 609}
578 610
579/** 611/**
580 * lpfc_sli_update_full_ring: Update the chip attention register. 612 * lpfc_sli_update_full_ring - Update the chip attention register
581 * @phba: Pointer to HBA context object. 613 * @phba: Pointer to HBA context object.
582 * @pring: Pointer to driver SLI ring object. 614 * @pring: Pointer to driver SLI ring object.
583 * 615 *
@@ -608,7 +640,7 @@ lpfc_sli_update_full_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
608} 640}
609 641
610/** 642/**
611 * lpfc_sli_update_ring: Update chip attention register. 643 * lpfc_sli_update_ring - Update chip attention register
612 * @phba: Pointer to HBA context object. 644 * @phba: Pointer to HBA context object.
613 * @pring: Pointer to driver SLI ring object. 645 * @pring: Pointer to driver SLI ring object.
614 * 646 *
@@ -632,7 +664,7 @@ lpfc_sli_update_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
632} 664}
633 665
634/** 666/**
635 * lpfc_sli_resume_iocb: Process iocbs in the txq. 667 * lpfc_sli_resume_iocb - Process iocbs in the txq
636 * @phba: Pointer to HBA context object. 668 * @phba: Pointer to HBA context object.
637 * @pring: Pointer to driver SLI ring object. 669 * @pring: Pointer to driver SLI ring object.
638 * 670 *
@@ -672,7 +704,7 @@ lpfc_sli_resume_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
672} 704}
673 705
674/** 706/**
675 * lpfc_sli_next_hbq_slot: Get next hbq entry for the HBQ. 707 * lpfc_sli_next_hbq_slot - Get next hbq entry for the HBQ
676 * @phba: Pointer to HBA context object. 708 * @phba: Pointer to HBA context object.
677 * @hbqno: HBQ number. 709 * @hbqno: HBQ number.
678 * 710 *
@@ -717,7 +749,7 @@ lpfc_sli_next_hbq_slot(struct lpfc_hba *phba, uint32_t hbqno)
717} 749}
718 750
719/** 751/**
720 * lpfc_sli_hbqbuf_free_all: Free all the hbq buffers. 752 * lpfc_sli_hbqbuf_free_all - Free all the hbq buffers
721 * @phba: Pointer to HBA context object. 753 * @phba: Pointer to HBA context object.
722 * 754 *
723 * This function is called with no lock held to free all the 755 * This function is called with no lock held to free all the
@@ -771,7 +803,7 @@ lpfc_sli_hbqbuf_free_all(struct lpfc_hba *phba)
771} 803}
772 804
773/** 805/**
774 * lpfc_sli_hbq_to_firmware: Post the hbq buffer to firmware. 806 * lpfc_sli_hbq_to_firmware - Post the hbq buffer to firmware
775 * @phba: Pointer to HBA context object. 807 * @phba: Pointer to HBA context object.
776 * @hbqno: HBQ number. 808 * @hbqno: HBQ number.
777 * @hbq_buf: Pointer to HBQ buffer. 809 * @hbq_buf: Pointer to HBQ buffer.
@@ -818,8 +850,8 @@ static struct lpfc_hbq_init lpfc_els_hbq = {
818 .profile = 0, 850 .profile = 0,
819 .ring_mask = (1 << LPFC_ELS_RING), 851 .ring_mask = (1 << LPFC_ELS_RING),
820 .buffer_count = 0, 852 .buffer_count = 0,
821 .init_count = 20, 853 .init_count = 40,
822 .add_count = 5, 854 .add_count = 40,
823}; 855};
824 856
825/* HBQ for the extra ring if needed */ 857/* HBQ for the extra ring if needed */
@@ -841,7 +873,7 @@ struct lpfc_hbq_init *lpfc_hbq_defs[] = {
841}; 873};
842 874
843/** 875/**
844 * lpfc_sli_hbqbuf_fill_hbqs: Post more hbq buffers to HBQ. 876 * lpfc_sli_hbqbuf_fill_hbqs - Post more hbq buffers to HBQ
845 * @phba: Pointer to HBA context object. 877 * @phba: Pointer to HBA context object.
846 * @hbqno: HBQ number. 878 * @hbqno: HBQ number.
847 * @count: Number of HBQ buffers to be posted. 879 * @count: Number of HBQ buffers to be posted.
@@ -901,7 +933,7 @@ err:
901} 933}
902 934
903/** 935/**
904 * lpfc_sli_hbqbuf_add_hbqs: Post more HBQ buffers to firmware. 936 * lpfc_sli_hbqbuf_add_hbqs - Post more HBQ buffers to firmware
905 * @phba: Pointer to HBA context object. 937 * @phba: Pointer to HBA context object.
906 * @qno: HBQ number. 938 * @qno: HBQ number.
907 * 939 *
@@ -917,7 +949,7 @@ lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno)
917} 949}
918 950
919/** 951/**
920 * lpfc_sli_hbqbuf_init_hbqs: Post initial buffers to the HBQ. 952 * lpfc_sli_hbqbuf_init_hbqs - Post initial buffers to the HBQ
921 * @phba: Pointer to HBA context object. 953 * @phba: Pointer to HBA context object.
922 * @qno: HBQ queue number. 954 * @qno: HBQ queue number.
923 * 955 *
@@ -933,7 +965,7 @@ lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno)
933} 965}
934 966
935/** 967/**
936 * lpfc_sli_hbqbuf_find: Find the hbq buffer associated with a tag. 968 * lpfc_sli_hbqbuf_find - Find the hbq buffer associated with a tag
937 * @phba: Pointer to HBA context object. 969 * @phba: Pointer to HBA context object.
938 * @tag: Tag of the hbq buffer. 970 * @tag: Tag of the hbq buffer.
939 * 971 *
@@ -966,7 +998,7 @@ lpfc_sli_hbqbuf_find(struct lpfc_hba *phba, uint32_t tag)
966} 998}
967 999
968/** 1000/**
969 * lpfc_sli_free_hbq: Give back the hbq buffer to firmware. 1001 * lpfc_sli_free_hbq - Give back the hbq buffer to firmware
970 * @phba: Pointer to HBA context object. 1002 * @phba: Pointer to HBA context object.
971 * @hbq_buffer: Pointer to HBQ buffer. 1003 * @hbq_buffer: Pointer to HBQ buffer.
972 * 1004 *
@@ -988,7 +1020,7 @@ lpfc_sli_free_hbq(struct lpfc_hba *phba, struct hbq_dmabuf *hbq_buffer)
988} 1020}
989 1021
990/** 1022/**
991 * lpfc_sli_chk_mbx_command: Check if the mailbox is a legitimate mailbox. 1023 * lpfc_sli_chk_mbx_command - Check if the mailbox is a legitimate mailbox
992 * @mbxCommand: mailbox command code. 1024 * @mbxCommand: mailbox command code.
993 * 1025 *
994 * This function is called by the mailbox event handler function to verify 1026 * This function is called by the mailbox event handler function to verify
@@ -1064,8 +1096,7 @@ lpfc_sli_chk_mbx_command(uint8_t mbxCommand)
1064} 1096}
1065 1097
1066/** 1098/**
1067 * lpfc_sli_wake_mbox_wait: Completion handler for mbox issued from 1099 * lpfc_sli_wake_mbox_wait - lpfc_sli_issue_mbox_wait mbox completion handler
1068 * lpfc_sli_issue_mbox_wait.
1069 * @phba: Pointer to HBA context object. 1100 * @phba: Pointer to HBA context object.
1070 * @pmboxq: Pointer to mailbox command. 1101 * @pmboxq: Pointer to mailbox command.
1071 * 1102 *
@@ -1096,7 +1127,7 @@ lpfc_sli_wake_mbox_wait(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq)
1096 1127
1097 1128
1098/** 1129/**
1099 * lpfc_sli_def_mbox_cmpl: Default mailbox completion handler. 1130 * lpfc_sli_def_mbox_cmpl - Default mailbox completion handler
1100 * @phba: Pointer to HBA context object. 1131 * @phba: Pointer to HBA context object.
1101 * @pmb: Pointer to mailbox object. 1132 * @pmb: Pointer to mailbox object.
1102 * 1133 *
@@ -1140,7 +1171,7 @@ lpfc_sli_def_mbox_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
1140} 1171}
1141 1172
1142/** 1173/**
1143 * lpfc_sli_handle_mb_event: Handle mailbox completions from firmware. 1174 * lpfc_sli_handle_mb_event - Handle mailbox completions from firmware
1144 * @phba: Pointer to HBA context object. 1175 * @phba: Pointer to HBA context object.
1145 * 1176 *
1146 * This function is called with no lock held. This function processes all 1177 * This function is called with no lock held. This function processes all
@@ -1260,7 +1291,7 @@ lpfc_sli_handle_mb_event(struct lpfc_hba *phba)
1260} 1291}
1261 1292
1262/** 1293/**
1263 * lpfc_sli_get_buff: Get the buffer associated with the buffer tag. 1294 * lpfc_sli_get_buff - Get the buffer associated with the buffer tag
1264 * @phba: Pointer to HBA context object. 1295 * @phba: Pointer to HBA context object.
1265 * @pring: Pointer to driver SLI ring object. 1296 * @pring: Pointer to driver SLI ring object.
1266 * @tag: buffer tag. 1297 * @tag: buffer tag.
@@ -1288,7 +1319,7 @@ lpfc_sli_get_buff(struct lpfc_hba *phba,
1288 1319
1289 1320
1290/** 1321/**
1291 * lpfc_sli_process_unsol_iocb: Unsolicited iocb handler. 1322 * lpfc_sli_process_unsol_iocb - Unsolicited iocb handler
1292 * @phba: Pointer to HBA context object. 1323 * @phba: Pointer to HBA context object.
1293 * @pring: Pointer to driver SLI ring object. 1324 * @pring: Pointer to driver SLI ring object.
1294 * @saveq: Pointer to the unsolicited iocb. 1325 * @saveq: Pointer to the unsolicited iocb.
@@ -1484,7 +1515,7 @@ lpfc_sli_process_unsol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
1484} 1515}
1485 1516
1486/** 1517/**
1487 * lpfc_sli_iocbq_lookup: Find command iocb for the given response iocb. 1518 * lpfc_sli_iocbq_lookup - Find command iocb for the given response iocb
1488 * @phba: Pointer to HBA context object. 1519 * @phba: Pointer to HBA context object.
1489 * @pring: Pointer to driver SLI ring object. 1520 * @pring: Pointer to driver SLI ring object.
1490 * @prspiocb: Pointer to response iocb object. 1521 * @prspiocb: Pointer to response iocb object.
@@ -1521,7 +1552,7 @@ lpfc_sli_iocbq_lookup(struct lpfc_hba *phba,
1521} 1552}
1522 1553
1523/** 1554/**
1524 * lpfc_sli_process_sol_iocb: process solicited iocb completion. 1555 * lpfc_sli_process_sol_iocb - process solicited iocb completion
1525 * @phba: Pointer to HBA context object. 1556 * @phba: Pointer to HBA context object.
1526 * @pring: Pointer to driver SLI ring object. 1557 * @pring: Pointer to driver SLI ring object.
1527 * @saveq: Pointer to the response iocb to be processed. 1558 * @saveq: Pointer to the response iocb to be processed.
@@ -1597,7 +1628,7 @@ lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
1597 * Ring <ringno> handler: unexpected completion IoTag 1628 * Ring <ringno> handler: unexpected completion IoTag
1598 * <IoTag> 1629 * <IoTag>
1599 */ 1630 */
1600 lpfc_printf_vlog(cmdiocbp->vport, KERN_WARNING, LOG_SLI, 1631 lpfc_printf_log(phba, KERN_WARNING, LOG_SLI,
1601 "0322 Ring %d handler: " 1632 "0322 Ring %d handler: "
1602 "unexpected completion IoTag x%x " 1633 "unexpected completion IoTag x%x "
1603 "Data: x%x x%x x%x x%x\n", 1634 "Data: x%x x%x x%x x%x\n",
@@ -1614,7 +1645,7 @@ lpfc_sli_process_sol_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
1614} 1645}
1615 1646
1616/** 1647/**
1617 * lpfc_sli_rsp_pointers_error: Response ring pointer error handler. 1648 * lpfc_sli_rsp_pointers_error - Response ring pointer error handler
1618 * @phba: Pointer to HBA context object. 1649 * @phba: Pointer to HBA context object.
1619 * @pring: Pointer to driver SLI ring object. 1650 * @pring: Pointer to driver SLI ring object.
1620 * 1651 *
@@ -1652,7 +1683,7 @@ lpfc_sli_rsp_pointers_error(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
1652} 1683}
1653 1684
1654/** 1685/**
1655 * lpfc_poll_eratt: Error attention polling timer timeout handler. 1686 * lpfc_poll_eratt - Error attention polling timer timeout handler
1656 * @ptr: Pointer to address of HBA context object. 1687 * @ptr: Pointer to address of HBA context object.
1657 * 1688 *
1658 * This function is invoked by the Error Attention polling timer when the 1689 * This function is invoked by the Error Attention polling timer when the
@@ -1682,7 +1713,7 @@ void lpfc_poll_eratt(unsigned long ptr)
1682} 1713}
1683 1714
1684/** 1715/**
1685 * lpfc_sli_poll_fcp_ring: Handle FCP ring completion in polling mode. 1716 * lpfc_sli_poll_fcp_ring - Handle FCP ring completion in polling mode
1686 * @phba: Pointer to HBA context object. 1717 * @phba: Pointer to HBA context object.
1687 * 1718 *
1688 * This function is called from lpfc_queuecommand, lpfc_poll_timeout, 1719 * This function is called from lpfc_queuecommand, lpfc_poll_timeout,
@@ -1845,7 +1876,7 @@ void lpfc_sli_poll_fcp_ring(struct lpfc_hba *phba)
1845} 1876}
1846 1877
1847/** 1878/**
1848 * lpfc_sli_handle_fast_ring_event: Handle ring events on FCP ring. 1879 * lpfc_sli_handle_fast_ring_event - Handle ring events on FCP ring
1849 * @phba: Pointer to HBA context object. 1880 * @phba: Pointer to HBA context object.
1850 * @pring: Pointer to driver SLI ring object. 1881 * @pring: Pointer to driver SLI ring object.
1851 * @mask: Host attention register mask for this ring. 1882 * @mask: Host attention register mask for this ring.
@@ -2037,7 +2068,7 @@ lpfc_sli_handle_fast_ring_event(struct lpfc_hba *phba,
2037} 2068}
2038 2069
2039/** 2070/**
2040 * lpfc_sli_handle_slow_ring_event: Handle ring events for non-FCP rings. 2071 * lpfc_sli_handle_slow_ring_event - Handle ring events for non-FCP rings
2041 * @phba: Pointer to HBA context object. 2072 * @phba: Pointer to HBA context object.
2042 * @pring: Pointer to driver SLI ring object. 2073 * @pring: Pointer to driver SLI ring object.
2043 * @mask: Host attention register mask for this ring. 2074 * @mask: Host attention register mask for this ring.
@@ -2311,7 +2342,7 @@ lpfc_sli_handle_slow_ring_event(struct lpfc_hba *phba,
2311} 2342}
2312 2343
2313/** 2344/**
2314 * lpfc_sli_abort_iocb_ring: Abort all iocbs in the ring. 2345 * lpfc_sli_abort_iocb_ring - Abort all iocbs in the ring
2315 * @phba: Pointer to HBA context object. 2346 * @phba: Pointer to HBA context object.
2316 * @pring: Pointer to driver SLI ring object. 2347 * @pring: Pointer to driver SLI ring object.
2317 * 2348 *
@@ -2325,7 +2356,6 @@ lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
2325{ 2356{
2326 LIST_HEAD(completions); 2357 LIST_HEAD(completions);
2327 struct lpfc_iocbq *iocb, *next_iocb; 2358 struct lpfc_iocbq *iocb, *next_iocb;
2328 IOCB_t *cmd = NULL;
2329 2359
2330 if (pring->ringno == LPFC_ELS_RING) { 2360 if (pring->ringno == LPFC_ELS_RING) {
2331 lpfc_fabric_abort_hba(phba); 2361 lpfc_fabric_abort_hba(phba);
@@ -2344,23 +2374,13 @@ lpfc_sli_abort_iocb_ring(struct lpfc_hba *phba, struct lpfc_sli_ring *pring)
2344 2374
2345 spin_unlock_irq(&phba->hbalock); 2375 spin_unlock_irq(&phba->hbalock);
2346 2376
2347 while (!list_empty(&completions)) { 2377 /* Cancel all the IOCBs from the completions list */
2348 iocb = list_get_first(&completions, struct lpfc_iocbq, list); 2378 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
2349 cmd = &iocb->iocb; 2379 IOERR_SLI_ABORTED);
2350 list_del_init(&iocb->list);
2351
2352 if (!iocb->iocb_cmpl)
2353 lpfc_sli_release_iocbq(phba, iocb);
2354 else {
2355 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
2356 cmd->un.ulpWord[4] = IOERR_SLI_ABORTED;
2357 (iocb->iocb_cmpl) (phba, iocb, iocb);
2358 }
2359 }
2360} 2380}
2361 2381
2362/** 2382/**
2363 * lpfc_sli_flush_fcp_rings: flush all iocbs in the fcp ring. 2383 * lpfc_sli_flush_fcp_rings - flush all iocbs in the fcp ring
2364 * @phba: Pointer to HBA context object. 2384 * @phba: Pointer to HBA context object.
2365 * 2385 *
2366 * This function flushes all iocbs in the fcp ring and frees all the iocb 2386 * This function flushes all iocbs in the fcp ring and frees all the iocb
@@ -2374,8 +2394,6 @@ lpfc_sli_flush_fcp_rings(struct lpfc_hba *phba)
2374{ 2394{
2375 LIST_HEAD(txq); 2395 LIST_HEAD(txq);
2376 LIST_HEAD(txcmplq); 2396 LIST_HEAD(txcmplq);
2377 struct lpfc_iocbq *iocb;
2378 IOCB_t *cmd = NULL;
2379 struct lpfc_sli *psli = &phba->sli; 2397 struct lpfc_sli *psli = &phba->sli;
2380 struct lpfc_sli_ring *pring; 2398 struct lpfc_sli_ring *pring;
2381 2399
@@ -2393,38 +2411,16 @@ lpfc_sli_flush_fcp_rings(struct lpfc_hba *phba)
2393 spin_unlock_irq(&phba->hbalock); 2411 spin_unlock_irq(&phba->hbalock);
2394 2412
2395 /* Flush the txq */ 2413 /* Flush the txq */
2396 while (!list_empty(&txq)) { 2414 lpfc_sli_cancel_iocbs(phba, &txq, IOSTAT_LOCAL_REJECT,
2397 iocb = list_get_first(&txq, struct lpfc_iocbq, list); 2415 IOERR_SLI_DOWN);
2398 cmd = &iocb->iocb;
2399 list_del_init(&iocb->list);
2400
2401 if (!iocb->iocb_cmpl)
2402 lpfc_sli_release_iocbq(phba, iocb);
2403 else {
2404 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
2405 cmd->un.ulpWord[4] = IOERR_SLI_DOWN;
2406 (iocb->iocb_cmpl) (phba, iocb, iocb);
2407 }
2408 }
2409 2416
2410 /* Flush the txcmpq */ 2417 /* Flush the txcmpq */
2411 while (!list_empty(&txcmplq)) { 2418 lpfc_sli_cancel_iocbs(phba, &txcmplq, IOSTAT_LOCAL_REJECT,
2412 iocb = list_get_first(&txcmplq, struct lpfc_iocbq, list); 2419 IOERR_SLI_DOWN);
2413 cmd = &iocb->iocb;
2414 list_del_init(&iocb->list);
2415
2416 if (!iocb->iocb_cmpl)
2417 lpfc_sli_release_iocbq(phba, iocb);
2418 else {
2419 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
2420 cmd->un.ulpWord[4] = IOERR_SLI_DOWN;
2421 (iocb->iocb_cmpl) (phba, iocb, iocb);
2422 }
2423 }
2424} 2420}
2425 2421
2426/** 2422/**
2427 * lpfc_sli_brdready: Check for host status bits. 2423 * lpfc_sli_brdready - Check for host status bits
2428 * @phba: Pointer to HBA context object. 2424 * @phba: Pointer to HBA context object.
2429 * @mask: Bit mask to be checked. 2425 * @mask: Bit mask to be checked.
2430 * 2426 *
@@ -2484,7 +2480,7 @@ lpfc_sli_brdready(struct lpfc_hba *phba, uint32_t mask)
2484#define BARRIER_TEST_PATTERN (0xdeadbeef) 2480#define BARRIER_TEST_PATTERN (0xdeadbeef)
2485 2481
2486/** 2482/**
2487 * lpfc_reset_barrier: Make HBA ready for HBA reset. 2483 * lpfc_reset_barrier - Make HBA ready for HBA reset
2488 * @phba: Pointer to HBA context object. 2484 * @phba: Pointer to HBA context object.
2489 * 2485 *
2490 * This function is called before resetting an HBA. This 2486 * This function is called before resetting an HBA. This
@@ -2564,7 +2560,7 @@ restore_hc:
2564} 2560}
2565 2561
2566/** 2562/**
2567 * lpfc_sli_brdkill: Issue a kill_board mailbox command. 2563 * lpfc_sli_brdkill - Issue a kill_board mailbox command
2568 * @phba: Pointer to HBA context object. 2564 * @phba: Pointer to HBA context object.
2569 * 2565 *
2570 * This function issues a kill_board mailbox command and waits for 2566 * This function issues a kill_board mailbox command and waits for
@@ -2651,7 +2647,7 @@ lpfc_sli_brdkill(struct lpfc_hba *phba)
2651} 2647}
2652 2648
2653/** 2649/**
2654 * lpfc_sli_brdreset: Reset the HBA. 2650 * lpfc_sli_brdreset - Reset the HBA
2655 * @phba: Pointer to HBA context object. 2651 * @phba: Pointer to HBA context object.
2656 * 2652 *
2657 * This function resets the HBA by writing HC_INITFF to the control 2653 * This function resets the HBA by writing HC_INITFF to the control
@@ -2714,7 +2710,7 @@ lpfc_sli_brdreset(struct lpfc_hba *phba)
2714} 2710}
2715 2711
2716/** 2712/**
2717 * lpfc_sli_brdrestart: Restart the HBA. 2713 * lpfc_sli_brdrestart - Restart the HBA
2718 * @phba: Pointer to HBA context object. 2714 * @phba: Pointer to HBA context object.
2719 * 2715 *
2720 * This function is called in the SLI initialization code path to 2716 * This function is called in the SLI initialization code path to
@@ -2781,7 +2777,7 @@ lpfc_sli_brdrestart(struct lpfc_hba *phba)
2781} 2777}
2782 2778
2783/** 2779/**
2784 * lpfc_sli_chipset_init: Wait for the restart of the HBA after a restart. 2780 * lpfc_sli_chipset_init - Wait for the restart of the HBA after a restart
2785 * @phba: Pointer to HBA context object. 2781 * @phba: Pointer to HBA context object.
2786 * 2782 *
2787 * This function is called after a HBA restart to wait for successful 2783 * This function is called after a HBA restart to wait for successful
@@ -2876,7 +2872,7 @@ lpfc_sli_chipset_init(struct lpfc_hba *phba)
2876} 2872}
2877 2873
2878/** 2874/**
2879 * lpfc_sli_hbq_count: Get the number of HBQs to be configured. 2875 * lpfc_sli_hbq_count - Get the number of HBQs to be configured
2880 * 2876 *
2881 * This function calculates and returns the number of HBQs required to be 2877 * This function calculates and returns the number of HBQs required to be
2882 * configured. 2878 * configured.
@@ -2888,7 +2884,7 @@ lpfc_sli_hbq_count(void)
2888} 2884}
2889 2885
2890/** 2886/**
2891 * lpfc_sli_hbq_entry_count: Calculate total number of hbq entries. 2887 * lpfc_sli_hbq_entry_count - Calculate total number of hbq entries
2892 * 2888 *
2893 * This function adds the number of hbq entries in every HBQ to get 2889 * This function adds the number of hbq entries in every HBQ to get
2894 * the total number of hbq entries required for the HBA and returns 2890 * the total number of hbq entries required for the HBA and returns
@@ -2907,7 +2903,7 @@ lpfc_sli_hbq_entry_count(void)
2907} 2903}
2908 2904
2909/** 2905/**
2910 * lpfc_sli_hbq_size: Calculate memory required for all hbq entries. 2906 * lpfc_sli_hbq_size - Calculate memory required for all hbq entries
2911 * 2907 *
2912 * This function calculates amount of memory required for all hbq entries 2908 * This function calculates amount of memory required for all hbq entries
2913 * to be configured and returns the total memory required. 2909 * to be configured and returns the total memory required.
@@ -2919,7 +2915,7 @@ lpfc_sli_hbq_size(void)
2919} 2915}
2920 2916
2921/** 2917/**
2922 * lpfc_sli_hbq_setup: configure and initialize HBQs. 2918 * lpfc_sli_hbq_setup - configure and initialize HBQs
2923 * @phba: Pointer to HBA context object. 2919 * @phba: Pointer to HBA context object.
2924 * 2920 *
2925 * This function is called during the SLI initialization to configure 2921 * This function is called during the SLI initialization to configure
@@ -2988,7 +2984,7 @@ lpfc_sli_hbq_setup(struct lpfc_hba *phba)
2988} 2984}
2989 2985
2990/** 2986/**
2991 * lpfc_sli_config_port: Issue config port mailbox command. 2987 * lpfc_sli_config_port - Issue config port mailbox command
2992 * @phba: Pointer to HBA context object. 2988 * @phba: Pointer to HBA context object.
2993 * @sli_mode: sli mode - 2/3 2989 * @sli_mode: sli mode - 2/3
2994 * 2990 *
@@ -3114,7 +3110,7 @@ do_prep_failed:
3114 3110
3115 3111
3116/** 3112/**
3117 * lpfc_sli_hba_setup: SLI intialization function. 3113 * lpfc_sli_hba_setup - SLI intialization function
3118 * @phba: Pointer to HBA context object. 3114 * @phba: Pointer to HBA context object.
3119 * 3115 *
3120 * This function is the main SLI intialization function. This function 3116 * This function is the main SLI intialization function. This function
@@ -3206,7 +3202,7 @@ lpfc_sli_hba_setup_error:
3206 3202
3207 3203
3208/** 3204/**
3209 * lpfc_mbox_timeout: Timeout call back function for mbox timer. 3205 * lpfc_mbox_timeout - Timeout call back function for mbox timer
3210 * @ptr: context object - pointer to hba structure. 3206 * @ptr: context object - pointer to hba structure.
3211 * 3207 *
3212 * This is the callback function for mailbox timer. The mailbox 3208 * This is the callback function for mailbox timer. The mailbox
@@ -3237,7 +3233,7 @@ lpfc_mbox_timeout(unsigned long ptr)
3237 3233
3238 3234
3239/** 3235/**
3240 * lpfc_mbox_timeout_handler: Worker thread function to handle mailbox timeout. 3236 * lpfc_mbox_timeout_handler - Worker thread function to handle mailbox timeout
3241 * @phba: Pointer to HBA context object. 3237 * @phba: Pointer to HBA context object.
3242 * 3238 *
3243 * This function is called from worker thread when a mailbox command times out. 3239 * This function is called from worker thread when a mailbox command times out.
@@ -3252,6 +3248,21 @@ lpfc_mbox_timeout_handler(struct lpfc_hba *phba)
3252 struct lpfc_sli *psli = &phba->sli; 3248 struct lpfc_sli *psli = &phba->sli;
3253 struct lpfc_sli_ring *pring; 3249 struct lpfc_sli_ring *pring;
3254 3250
3251 /* Check the pmbox pointer first. There is a race condition
3252 * between the mbox timeout handler getting executed in the
3253 * worklist and the mailbox actually completing. When this
3254 * race condition occurs, the mbox_active will be NULL.
3255 */
3256 spin_lock_irq(&phba->hbalock);
3257 if (pmbox == NULL) {
3258 lpfc_printf_log(phba, KERN_WARNING,
3259 LOG_MBOX | LOG_SLI,
3260 "0353 Active Mailbox cleared - mailbox timeout "
3261 "exiting\n");
3262 spin_unlock_irq(&phba->hbalock);
3263 return;
3264 }
3265
3255 /* Mbox cmd <mbxCommand> timeout */ 3266 /* Mbox cmd <mbxCommand> timeout */
3256 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI, 3267 lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
3257 "0310 Mailbox command x%x timeout Data: x%x x%x x%p\n", 3268 "0310 Mailbox command x%x timeout Data: x%x x%x x%p\n",
@@ -3259,6 +3270,7 @@ lpfc_mbox_timeout_handler(struct lpfc_hba *phba)
3259 phba->pport->port_state, 3270 phba->pport->port_state,
3260 phba->sli.sli_flag, 3271 phba->sli.sli_flag,
3261 phba->sli.mbox_active); 3272 phba->sli.mbox_active);
3273 spin_unlock_irq(&phba->hbalock);
3262 3274
3263 /* Setting state unknown so lpfc_sli_abort_iocb_ring 3275 /* Setting state unknown so lpfc_sli_abort_iocb_ring
3264 * would get IOCB_ERROR from lpfc_sli_issue_iocb, allowing 3276 * would get IOCB_ERROR from lpfc_sli_issue_iocb, allowing
@@ -3295,7 +3307,7 @@ lpfc_mbox_timeout_handler(struct lpfc_hba *phba)
3295} 3307}
3296 3308
3297/** 3309/**
3298 * lpfc_sli_issue_mbox: Issue a mailbox command to firmware. 3310 * lpfc_sli_issue_mbox - Issue a mailbox command to firmware
3299 * @phba: Pointer to HBA context object. 3311 * @phba: Pointer to HBA context object.
3300 * @pmbox: Pointer to mailbox object. 3312 * @pmbox: Pointer to mailbox object.
3301 * @flag: Flag indicating how the mailbox need to be processed. 3313 * @flag: Flag indicating how the mailbox need to be processed.
@@ -3365,6 +3377,12 @@ lpfc_sli_issue_mbox(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmbox, uint32_t flag)
3365 goto out_not_finished; 3377 goto out_not_finished;
3366 } 3378 }
3367 3379
3380 /* If HBA has a deferred error attention, fail the iocb. */
3381 if (unlikely(phba->hba_flag & DEFER_ERATT)) {
3382 spin_unlock_irqrestore(&phba->hbalock, drvr_flag);
3383 goto out_not_finished;
3384 }
3385
3368 psli = &phba->sli; 3386 psli = &phba->sli;
3369 3387
3370 mb = &pmbox->mb; 3388 mb = &pmbox->mb;
@@ -3632,7 +3650,7 @@ out_not_finished:
3632} 3650}
3633 3651
3634/** 3652/**
3635 * __lpfc_sli_ringtx_put: Add an iocb to the txq. 3653 * __lpfc_sli_ringtx_put - Add an iocb to the txq
3636 * @phba: Pointer to HBA context object. 3654 * @phba: Pointer to HBA context object.
3637 * @pring: Pointer to driver SLI ring object. 3655 * @pring: Pointer to driver SLI ring object.
3638 * @piocb: Pointer to address of newly added command iocb. 3656 * @piocb: Pointer to address of newly added command iocb.
@@ -3651,7 +3669,7 @@ __lpfc_sli_ringtx_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3651} 3669}
3652 3670
3653/** 3671/**
3654 * lpfc_sli_next_iocb: Get the next iocb in the txq. 3672 * lpfc_sli_next_iocb - Get the next iocb in the txq
3655 * @phba: Pointer to HBA context object. 3673 * @phba: Pointer to HBA context object.
3656 * @pring: Pointer to driver SLI ring object. 3674 * @pring: Pointer to driver SLI ring object.
3657 * @piocb: Pointer to address of newly added command iocb. 3675 * @piocb: Pointer to address of newly added command iocb.
@@ -3683,7 +3701,7 @@ lpfc_sli_next_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3683} 3701}
3684 3702
3685/** 3703/**
3686 * __lpfc_sli_issue_iocb: Lockless version of lpfc_sli_issue_iocb. 3704 * __lpfc_sli_issue_iocb - Lockless version of lpfc_sli_issue_iocb
3687 * @phba: Pointer to HBA context object. 3705 * @phba: Pointer to HBA context object.
3688 * @pring: Pointer to driver SLI ring object. 3706 * @pring: Pointer to driver SLI ring object.
3689 * @piocb: Pointer to command iocb. 3707 * @piocb: Pointer to command iocb.
@@ -3729,6 +3747,10 @@ __lpfc_sli_issue_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3729 if (unlikely(pci_channel_offline(phba->pcidev))) 3747 if (unlikely(pci_channel_offline(phba->pcidev)))
3730 return IOCB_ERROR; 3748 return IOCB_ERROR;
3731 3749
3750 /* If HBA has a deferred error attention, fail the iocb. */
3751 if (unlikely(phba->hba_flag & DEFER_ERATT))
3752 return IOCB_ERROR;
3753
3732 /* 3754 /*
3733 * We should never get an IOCB if we are in a < LINK_DOWN state 3755 * We should never get an IOCB if we are in a < LINK_DOWN state
3734 */ 3756 */
@@ -3813,7 +3835,7 @@ __lpfc_sli_issue_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3813 3835
3814 3836
3815/** 3837/**
3816 * lpfc_sli_issue_iocb: Wrapper function for __lpfc_sli_issue_iocb. 3838 * lpfc_sli_issue_iocb - Wrapper function for __lpfc_sli_issue_iocb
3817 * @phba: Pointer to HBA context object. 3839 * @phba: Pointer to HBA context object.
3818 * @pring: Pointer to driver SLI ring object. 3840 * @pring: Pointer to driver SLI ring object.
3819 * @piocb: Pointer to command iocb. 3841 * @piocb: Pointer to command iocb.
@@ -3840,7 +3862,7 @@ lpfc_sli_issue_iocb(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
3840} 3862}
3841 3863
3842/** 3864/**
3843 * lpfc_extra_ring_setup: Extra ring setup function. 3865 * lpfc_extra_ring_setup - Extra ring setup function
3844 * @phba: Pointer to HBA context object. 3866 * @phba: Pointer to HBA context object.
3845 * 3867 *
3846 * This function is called while driver attaches with the 3868 * This function is called while driver attaches with the
@@ -3886,7 +3908,7 @@ lpfc_extra_ring_setup( struct lpfc_hba *phba)
3886} 3908}
3887 3909
3888/** 3910/**
3889 * lpfc_sli_async_event_handler: ASYNC iocb handler function. 3911 * lpfc_sli_async_event_handler - ASYNC iocb handler function
3890 * @phba: Pointer to HBA context object. 3912 * @phba: Pointer to HBA context object.
3891 * @pring: Pointer to driver SLI ring object. 3913 * @pring: Pointer to driver SLI ring object.
3892 * @iocbq: Pointer to iocb object. 3914 * @iocbq: Pointer to iocb object.
@@ -3907,6 +3929,7 @@ lpfc_sli_async_event_handler(struct lpfc_hba * phba,
3907 uint16_t temp; 3929 uint16_t temp;
3908 struct temp_event temp_event_data; 3930 struct temp_event temp_event_data;
3909 struct Scsi_Host *shost; 3931 struct Scsi_Host *shost;
3932 uint32_t *iocb_w;
3910 3933
3911 icmd = &iocbq->iocb; 3934 icmd = &iocbq->iocb;
3912 evt_code = icmd->un.asyncstat.evt_code; 3935 evt_code = icmd->un.asyncstat.evt_code;
@@ -3914,13 +3937,23 @@ lpfc_sli_async_event_handler(struct lpfc_hba * phba,
3914 3937
3915 if ((evt_code != ASYNC_TEMP_WARN) && 3938 if ((evt_code != ASYNC_TEMP_WARN) &&
3916 (evt_code != ASYNC_TEMP_SAFE)) { 3939 (evt_code != ASYNC_TEMP_SAFE)) {
3940 iocb_w = (uint32_t *) icmd;
3917 lpfc_printf_log(phba, 3941 lpfc_printf_log(phba,
3918 KERN_ERR, 3942 KERN_ERR,
3919 LOG_SLI, 3943 LOG_SLI,
3920 "0346 Ring %d handler: unexpected ASYNC_STATUS" 3944 "0346 Ring %d handler: unexpected ASYNC_STATUS"
3921 " evt_code 0x%x\n", 3945 " evt_code 0x%x \n"
3946 "W0 0x%08x W1 0x%08x W2 0x%08x W3 0x%08x\n"
3947 "W4 0x%08x W5 0x%08x W6 0x%08x W7 0x%08x\n"
3948 "W8 0x%08x W9 0x%08x W10 0x%08x W11 0x%08x\n"
3949 "W12 0x%08x W13 0x%08x W14 0x%08x W15 0x%08x\n",
3922 pring->ringno, 3950 pring->ringno,
3923 icmd->un.asyncstat.evt_code); 3951 icmd->un.asyncstat.evt_code,
3952 iocb_w[0], iocb_w[1], iocb_w[2], iocb_w[3],
3953 iocb_w[4], iocb_w[5], iocb_w[6], iocb_w[7],
3954 iocb_w[8], iocb_w[9], iocb_w[10], iocb_w[11],
3955 iocb_w[12], iocb_w[13], iocb_w[14], iocb_w[15]);
3956
3924 return; 3957 return;
3925 } 3958 }
3926 temp_event_data.data = (uint32_t)temp; 3959 temp_event_data.data = (uint32_t)temp;
@@ -3954,7 +3987,7 @@ lpfc_sli_async_event_handler(struct lpfc_hba * phba,
3954 3987
3955 3988
3956/** 3989/**
3957 * lpfc_sli_setup: SLI ring setup function. 3990 * lpfc_sli_setup - SLI ring setup function
3958 * @phba: Pointer to HBA context object. 3991 * @phba: Pointer to HBA context object.
3959 * 3992 *
3960 * lpfc_sli_setup sets up rings of the SLI interface with 3993 * lpfc_sli_setup sets up rings of the SLI interface with
@@ -4076,7 +4109,7 @@ lpfc_sli_setup(struct lpfc_hba *phba)
4076} 4109}
4077 4110
4078/** 4111/**
4079 * lpfc_sli_queue_setup: Queue initialization function. 4112 * lpfc_sli_queue_setup - Queue initialization function
4080 * @phba: Pointer to HBA context object. 4113 * @phba: Pointer to HBA context object.
4081 * 4114 *
4082 * lpfc_sli_queue_setup sets up mailbox queues and iocb queues for each 4115 * lpfc_sli_queue_setup sets up mailbox queues and iocb queues for each
@@ -4115,7 +4148,7 @@ lpfc_sli_queue_setup(struct lpfc_hba *phba)
4115} 4148}
4116 4149
4117/** 4150/**
4118 * lpfc_sli_host_down: Vport cleanup function. 4151 * lpfc_sli_host_down - Vport cleanup function
4119 * @vport: Pointer to virtual port object. 4152 * @vport: Pointer to virtual port object.
4120 * 4153 *
4121 * lpfc_sli_host_down is called to clean up the resources 4154 * lpfc_sli_host_down is called to clean up the resources
@@ -4179,22 +4212,14 @@ lpfc_sli_host_down(struct lpfc_vport *vport)
4179 4212
4180 spin_unlock_irqrestore(&phba->hbalock, flags); 4213 spin_unlock_irqrestore(&phba->hbalock, flags);
4181 4214
4182 while (!list_empty(&completions)) { 4215 /* Cancel all the IOCBs from the completions list */
4183 list_remove_head(&completions, iocb, struct lpfc_iocbq, list); 4216 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
4184 4217 IOERR_SLI_DOWN);
4185 if (!iocb->iocb_cmpl)
4186 lpfc_sli_release_iocbq(phba, iocb);
4187 else {
4188 iocb->iocb.ulpStatus = IOSTAT_LOCAL_REJECT;
4189 iocb->iocb.un.ulpWord[4] = IOERR_SLI_DOWN;
4190 (iocb->iocb_cmpl) (phba, iocb, iocb);
4191 }
4192 }
4193 return 1; 4218 return 1;
4194} 4219}
4195 4220
4196/** 4221/**
4197 * lpfc_sli_hba_down: Resource cleanup function for the HBA. 4222 * lpfc_sli_hba_down - Resource cleanup function for the HBA
4198 * @phba: Pointer to HBA context object. 4223 * @phba: Pointer to HBA context object.
4199 * 4224 *
4200 * This function cleans up all iocb, buffers, mailbox commands 4225 * This function cleans up all iocb, buffers, mailbox commands
@@ -4216,8 +4241,6 @@ lpfc_sli_hba_down(struct lpfc_hba *phba)
4216 struct lpfc_sli_ring *pring; 4241 struct lpfc_sli_ring *pring;
4217 struct lpfc_dmabuf *buf_ptr; 4242 struct lpfc_dmabuf *buf_ptr;
4218 LPFC_MBOXQ_t *pmb; 4243 LPFC_MBOXQ_t *pmb;
4219 struct lpfc_iocbq *iocb;
4220 IOCB_t *cmd = NULL;
4221 int i; 4244 int i;
4222 unsigned long flags = 0; 4245 unsigned long flags = 0;
4223 4246
@@ -4245,18 +4268,9 @@ lpfc_sli_hba_down(struct lpfc_hba *phba)
4245 } 4268 }
4246 spin_unlock_irqrestore(&phba->hbalock, flags); 4269 spin_unlock_irqrestore(&phba->hbalock, flags);
4247 4270
4248 while (!list_empty(&completions)) { 4271 /* Cancel all the IOCBs from the completions list */
4249 list_remove_head(&completions, iocb, struct lpfc_iocbq, list); 4272 lpfc_sli_cancel_iocbs(phba, &completions, IOSTAT_LOCAL_REJECT,
4250 cmd = &iocb->iocb; 4273 IOERR_SLI_DOWN);
4251
4252 if (!iocb->iocb_cmpl)
4253 lpfc_sli_release_iocbq(phba, iocb);
4254 else {
4255 cmd->ulpStatus = IOSTAT_LOCAL_REJECT;
4256 cmd->un.ulpWord[4] = IOERR_SLI_DOWN;
4257 (iocb->iocb_cmpl) (phba, iocb, iocb);
4258 }
4259 }
4260 4274
4261 spin_lock_irqsave(&phba->hbalock, flags); 4275 spin_lock_irqsave(&phba->hbalock, flags);
4262 list_splice_init(&phba->elsbuf, &completions); 4276 list_splice_init(&phba->elsbuf, &completions);
@@ -4299,7 +4313,7 @@ lpfc_sli_hba_down(struct lpfc_hba *phba)
4299} 4313}
4300 4314
4301/** 4315/**
4302 * lpfc_sli_pcimem_bcopy: SLI memory copy function. 4316 * lpfc_sli_pcimem_bcopy - SLI memory copy function
4303 * @srcp: Source memory pointer. 4317 * @srcp: Source memory pointer.
4304 * @destp: Destination memory pointer. 4318 * @destp: Destination memory pointer.
4305 * @cnt: Number of words required to be copied. 4319 * @cnt: Number of words required to be copied.
@@ -4329,7 +4343,7 @@ lpfc_sli_pcimem_bcopy(void *srcp, void *destp, uint32_t cnt)
4329 4343
4330 4344
4331/** 4345/**
4332 * lpfc_sli_ringpostbuf_put: Function to add a buffer to postbufq. 4346 * lpfc_sli_ringpostbuf_put - Function to add a buffer to postbufq
4333 * @phba: Pointer to HBA context object. 4347 * @phba: Pointer to HBA context object.
4334 * @pring: Pointer to driver SLI ring object. 4348 * @pring: Pointer to driver SLI ring object.
4335 * @mp: Pointer to driver buffer object. 4349 * @mp: Pointer to driver buffer object.
@@ -4352,8 +4366,7 @@ lpfc_sli_ringpostbuf_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
4352} 4366}
4353 4367
4354/** 4368/**
4355 * lpfc_sli_get_buffer_tag: Tag allocation function for a buffer posted 4369 * lpfc_sli_get_buffer_tag - allocates a tag for a CMD_QUE_XRI64_CX buffer
4356 * using CMD_QUE_XRI64_CX iocb.
4357 * @phba: Pointer to HBA context object. 4370 * @phba: Pointer to HBA context object.
4358 * 4371 *
4359 * When HBQ is enabled, buffers are searched based on tags. This function 4372 * When HBQ is enabled, buffers are searched based on tags. This function
@@ -4378,8 +4391,7 @@ lpfc_sli_get_buffer_tag(struct lpfc_hba *phba)
4378} 4391}
4379 4392
4380/** 4393/**
4381 * lpfc_sli_ring_taggedbuf_get: Search HBQ buffer associated with 4394 * lpfc_sli_ring_taggedbuf_get - find HBQ buffer associated with given tag
4382 * posted using CMD_QUE_XRI64_CX iocb.
4383 * @phba: Pointer to HBA context object. 4395 * @phba: Pointer to HBA context object.
4384 * @pring: Pointer to driver SLI ring object. 4396 * @pring: Pointer to driver SLI ring object.
4385 * @tag: Buffer tag. 4397 * @tag: Buffer tag.
@@ -4422,8 +4434,7 @@ lpfc_sli_ring_taggedbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
4422} 4434}
4423 4435
4424/** 4436/**
4425 * lpfc_sli_ringpostbuf_get: SLI2 buffer search function for 4437 * lpfc_sli_ringpostbuf_get - search buffers for unsolicited CT and ELS events
4426 * unsolicited ct and els events.
4427 * @phba: Pointer to HBA context object. 4438 * @phba: Pointer to HBA context object.
4428 * @pring: Pointer to driver SLI ring object. 4439 * @pring: Pointer to driver SLI ring object.
4429 * @phys: DMA address of the buffer. 4440 * @phys: DMA address of the buffer.
@@ -4466,7 +4477,7 @@ lpfc_sli_ringpostbuf_get(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
4466} 4477}
4467 4478
4468/** 4479/**
4469 * lpfc_sli_abort_els_cmpl: Completion handler for the els abort iocbs. 4480 * lpfc_sli_abort_els_cmpl - Completion handler for the els abort iocbs
4470 * @phba: Pointer to HBA context object. 4481 * @phba: Pointer to HBA context object.
4471 * @cmdiocb: Pointer to driver command iocb object. 4482 * @cmdiocb: Pointer to driver command iocb object.
4472 * @rspiocb: Pointer to driver response iocb object. 4483 * @rspiocb: Pointer to driver response iocb object.
@@ -4542,7 +4553,7 @@ lpfc_sli_abort_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
4542} 4553}
4543 4554
4544/** 4555/**
4545 * lpfc_ignore_els_cmpl: Completion handler for aborted ELS command. 4556 * lpfc_ignore_els_cmpl - Completion handler for aborted ELS command
4546 * @phba: Pointer to HBA context object. 4557 * @phba: Pointer to HBA context object.
4547 * @cmdiocb: Pointer to driver command iocb object. 4558 * @cmdiocb: Pointer to driver command iocb object.
4548 * @rspiocb: Pointer to driver response iocb object. 4559 * @rspiocb: Pointer to driver response iocb object.
@@ -4572,7 +4583,7 @@ lpfc_ignore_els_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
4572} 4583}
4573 4584
4574/** 4585/**
4575 * lpfc_sli_issue_abort_iotag: Abort function for a command iocb. 4586 * lpfc_sli_issue_abort_iotag - Abort function for a command iocb
4576 * @phba: Pointer to HBA context object. 4587 * @phba: Pointer to HBA context object.
4577 * @pring: Pointer to driver SLI ring object. 4588 * @pring: Pointer to driver SLI ring object.
4578 * @cmdiocb: Pointer to driver command iocb object. 4589 * @cmdiocb: Pointer to driver command iocb object.
@@ -4658,15 +4669,14 @@ abort_iotag_exit:
4658} 4669}
4659 4670
4660/** 4671/**
4661 * lpfc_sli_validate_fcp_iocb: Filtering function, used to find commands 4672 * lpfc_sli_validate_fcp_iocb - find commands associated with a vport or LUN
4662 * associated with a vport/SCSI target/lun.
4663 * @iocbq: Pointer to driver iocb object. 4673 * @iocbq: Pointer to driver iocb object.
4664 * @vport: Pointer to driver virtual port object. 4674 * @vport: Pointer to driver virtual port object.
4665 * @tgt_id: SCSI ID of the target. 4675 * @tgt_id: SCSI ID of the target.
4666 * @lun_id: LUN ID of the scsi device. 4676 * @lun_id: LUN ID of the scsi device.
4667 * @ctx_cmd: LPFC_CTX_LUN/LPFC_CTX_TGT/LPFC_CTX_HOST 4677 * @ctx_cmd: LPFC_CTX_LUN/LPFC_CTX_TGT/LPFC_CTX_HOST
4668 * 4678 *
4669 * This function acts as iocb filter for functions which abort or count 4679 * This function acts as an iocb filter for functions which abort or count
4670 * all FCP iocbs pending on a lun/SCSI target/SCSI host. It will return 4680 * all FCP iocbs pending on a lun/SCSI target/SCSI host. It will return
4671 * 0 if the filtering criteria is met for the given iocb and will return 4681 * 0 if the filtering criteria is met for the given iocb and will return
4672 * 1 if the filtering criteria is not met. 4682 * 1 if the filtering criteria is not met.
@@ -4724,7 +4734,7 @@ lpfc_sli_validate_fcp_iocb(struct lpfc_iocbq *iocbq, struct lpfc_vport *vport,
4724} 4734}
4725 4735
4726/** 4736/**
4727 * lpfc_sli_sum_iocb: Function to count the number of FCP iocbs pending. 4737 * lpfc_sli_sum_iocb - Function to count the number of FCP iocbs pending
4728 * @vport: Pointer to virtual port. 4738 * @vport: Pointer to virtual port.
4729 * @tgt_id: SCSI ID of the target. 4739 * @tgt_id: SCSI ID of the target.
4730 * @lun_id: LUN ID of the scsi device. 4740 * @lun_id: LUN ID of the scsi device.
@@ -4762,8 +4772,7 @@ lpfc_sli_sum_iocb(struct lpfc_vport *vport, uint16_t tgt_id, uint64_t lun_id,
4762} 4772}
4763 4773
4764/** 4774/**
4765 * lpfc_sli_abort_fcp_cmpl: Completion handler function for an aborted 4775 * lpfc_sli_abort_fcp_cmpl - Completion handler function for aborted FCP IOCBs
4766 * FCP iocb.
4767 * @phba: Pointer to HBA context object 4776 * @phba: Pointer to HBA context object
4768 * @cmdiocb: Pointer to command iocb object. 4777 * @cmdiocb: Pointer to command iocb object.
4769 * @rspiocb: Pointer to response iocb object. 4778 * @rspiocb: Pointer to response iocb object.
@@ -4781,8 +4790,7 @@ lpfc_sli_abort_fcp_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
4781} 4790}
4782 4791
4783/** 4792/**
4784 * lpfc_sli_abort_iocb: This function issue abort for all SCSI commands 4793 * lpfc_sli_abort_iocb - issue abort for all commands on a host/target/LUN
4785 * pending on a SCSI host(vport)/target/lun.
4786 * @vport: Pointer to virtual port. 4794 * @vport: Pointer to virtual port.
4787 * @pring: Pointer to driver SLI ring object. 4795 * @pring: Pointer to driver SLI ring object.
4788 * @tgt_id: SCSI ID of the target. 4796 * @tgt_id: SCSI ID of the target.
@@ -4854,8 +4862,7 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring,
4854} 4862}
4855 4863
4856/** 4864/**
4857 * lpfc_sli_wake_iocb_wait: iocb completion handler for iocb issued using 4865 * lpfc_sli_wake_iocb_wait - lpfc_sli_issue_iocb_wait's completion handler
4858 * lpfc_sli_issue_iocb_wait.
4859 * @phba: Pointer to HBA context object. 4866 * @phba: Pointer to HBA context object.
4860 * @cmdiocbq: Pointer to command iocb. 4867 * @cmdiocbq: Pointer to command iocb.
4861 * @rspiocbq: Pointer to response iocb. 4868 * @rspiocbq: Pointer to response iocb.
@@ -4893,7 +4900,7 @@ lpfc_sli_wake_iocb_wait(struct lpfc_hba *phba,
4893} 4900}
4894 4901
4895/** 4902/**
4896 * lpfc_sli_issue_iocb_wait: Synchronous function to issue iocb commands. 4903 * lpfc_sli_issue_iocb_wait - Synchronous function to issue iocb commands
4897 * @phba: Pointer to HBA context object.. 4904 * @phba: Pointer to HBA context object..
4898 * @pring: Pointer to sli ring. 4905 * @pring: Pointer to sli ring.
4899 * @piocb: Pointer to command iocb. 4906 * @piocb: Pointer to command iocb.
@@ -5000,7 +5007,7 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba *phba,
5000} 5007}
5001 5008
5002/** 5009/**
5003 * lpfc_sli_issue_mbox_wait: Synchronous function to issue mailbox. 5010 * lpfc_sli_issue_mbox_wait - Synchronous function to issue mailbox
5004 * @phba: Pointer to HBA context object. 5011 * @phba: Pointer to HBA context object.
5005 * @pmboxq: Pointer to driver mailbox object. 5012 * @pmboxq: Pointer to driver mailbox object.
5006 * @timeout: Timeout in number of seconds. 5013 * @timeout: Timeout in number of seconds.
@@ -5070,7 +5077,7 @@ lpfc_sli_issue_mbox_wait(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmboxq,
5070} 5077}
5071 5078
5072/** 5079/**
5073 * lpfc_sli_flush_mbox_queue: mailbox queue cleanup function. 5080 * lpfc_sli_flush_mbox_queue - mailbox queue cleanup function
5074 * @phba: Pointer to HBA context. 5081 * @phba: Pointer to HBA context.
5075 * 5082 *
5076 * This function is called to cleanup any pending mailbox 5083 * This function is called to cleanup any pending mailbox
@@ -5113,7 +5120,7 @@ lpfc_sli_flush_mbox_queue(struct lpfc_hba * phba)
5113} 5120}
5114 5121
5115/** 5122/**
5116 * lpfc_sli_check_eratt: check error attention events 5123 * lpfc_sli_check_eratt - check error attention events
5117 * @phba: Pointer to HBA context. 5124 * @phba: Pointer to HBA context.
5118 * 5125 *
5119 * This function is called form timer soft interrupt context to check HBA's 5126 * This function is called form timer soft interrupt context to check HBA's
@@ -5145,11 +5152,31 @@ lpfc_sli_check_eratt(struct lpfc_hba *phba)
5145 return 0; 5152 return 0;
5146 } 5153 }
5147 5154
5155 /*
5156 * If there is deferred error attention, do not check for error
5157 * attention
5158 */
5159 if (unlikely(phba->hba_flag & DEFER_ERATT)) {
5160 spin_unlock_irq(&phba->hbalock);
5161 return 0;
5162 }
5163
5148 /* Read chip Host Attention (HA) register */ 5164 /* Read chip Host Attention (HA) register */
5149 ha_copy = readl(phba->HAregaddr); 5165 ha_copy = readl(phba->HAregaddr);
5150 if (ha_copy & HA_ERATT) { 5166 if (ha_copy & HA_ERATT) {
5151 /* Read host status register to retrieve error event */ 5167 /* Read host status register to retrieve error event */
5152 lpfc_sli_read_hs(phba); 5168 lpfc_sli_read_hs(phba);
5169
5170 /* Check if there is a deferred error condition is active */
5171 if ((HS_FFER1 & phba->work_hs) &&
5172 ((HS_FFER2 | HS_FFER3 | HS_FFER4 | HS_FFER5 |
5173 HS_FFER6 | HS_FFER7) & phba->work_hs)) {
5174 phba->hba_flag |= DEFER_ERATT;
5175 /* Clear all interrupt enable conditions */
5176 writel(0, phba->HCregaddr);
5177 readl(phba->HCregaddr);
5178 }
5179
5153 /* Set the driver HA work bitmap */ 5180 /* Set the driver HA work bitmap */
5154 phba->work_ha |= HA_ERATT; 5181 phba->work_ha |= HA_ERATT;
5155 /* Indicate polling handles this ERATT */ 5182 /* Indicate polling handles this ERATT */
@@ -5162,7 +5189,7 @@ lpfc_sli_check_eratt(struct lpfc_hba *phba)
5162} 5189}
5163 5190
5164/** 5191/**
5165 * lpfc_sp_intr_handler: The slow-path interrupt handler of lpfc driver. 5192 * lpfc_sp_intr_handler - The slow-path interrupt handler of lpfc driver
5166 * @irq: Interrupt number. 5193 * @irq: Interrupt number.
5167 * @dev_id: The device context pointer. 5194 * @dev_id: The device context pointer.
5168 * 5195 *
@@ -5238,6 +5265,16 @@ lpfc_sp_intr_handler(int irq, void *dev_id)
5238 /* Indicate interrupt handler handles ERATT */ 5265 /* Indicate interrupt handler handles ERATT */
5239 phba->hba_flag |= HBA_ERATT_HANDLED; 5266 phba->hba_flag |= HBA_ERATT_HANDLED;
5240 } 5267 }
5268
5269 /*
5270 * If there is deferred error attention, do not check for any
5271 * interrupt.
5272 */
5273 if (unlikely(phba->hba_flag & DEFER_ERATT)) {
5274 spin_unlock_irq(&phba->hbalock);
5275 return IRQ_NONE;
5276 }
5277
5241 /* Clear up only attention source related to slow-path */ 5278 /* Clear up only attention source related to slow-path */
5242 writel((ha_copy & (HA_MBATT | HA_R2_CLR_MSK)), 5279 writel((ha_copy & (HA_MBATT | HA_R2_CLR_MSK)),
5243 phba->HAregaddr); 5280 phba->HAregaddr);
@@ -5309,8 +5346,22 @@ lpfc_sp_intr_handler(int irq, void *dev_id)
5309 } 5346 }
5310 } 5347 }
5311 spin_lock_irqsave(&phba->hbalock, iflag); 5348 spin_lock_irqsave(&phba->hbalock, iflag);
5312 if (work_ha_copy & HA_ERATT) 5349 if (work_ha_copy & HA_ERATT) {
5313 lpfc_sli_read_hs(phba); 5350 lpfc_sli_read_hs(phba);
5351 /*
5352 * Check if there is a deferred error condition
5353 * is active
5354 */
5355 if ((HS_FFER1 & phba->work_hs) &&
5356 ((HS_FFER2 | HS_FFER3 | HS_FFER4 | HS_FFER5 |
5357 HS_FFER6 | HS_FFER7) & phba->work_hs)) {
5358 phba->hba_flag |= DEFER_ERATT;
5359 /* Clear all interrupt enable conditions */
5360 writel(0, phba->HCregaddr);
5361 readl(phba->HCregaddr);
5362 }
5363 }
5364
5314 if ((work_ha_copy & HA_MBATT) && (phba->sli.mbox_active)) { 5365 if ((work_ha_copy & HA_MBATT) && (phba->sli.mbox_active)) {
5315 pmb = phba->sli.mbox_active; 5366 pmb = phba->sli.mbox_active;
5316 pmbox = &pmb->mb; 5367 pmbox = &pmb->mb;
@@ -5423,7 +5474,7 @@ send_current_mbox:
5423} /* lpfc_sp_intr_handler */ 5474} /* lpfc_sp_intr_handler */
5424 5475
5425/** 5476/**
5426 * lpfc_fp_intr_handler: The fast-path interrupt handler of lpfc driver. 5477 * lpfc_fp_intr_handler - The fast-path interrupt handler of lpfc driver
5427 * @irq: Interrupt number. 5478 * @irq: Interrupt number.
5428 * @dev_id: The device context pointer. 5479 * @dev_id: The device context pointer.
5429 * 5480 *
@@ -5474,6 +5525,14 @@ lpfc_fp_intr_handler(int irq, void *dev_id)
5474 ha_copy = readl(phba->HAregaddr); 5525 ha_copy = readl(phba->HAregaddr);
5475 /* Clear up only attention source related to fast-path */ 5526 /* Clear up only attention source related to fast-path */
5476 spin_lock_irqsave(&phba->hbalock, iflag); 5527 spin_lock_irqsave(&phba->hbalock, iflag);
5528 /*
5529 * If there is deferred error attention, do not check for
5530 * any interrupt.
5531 */
5532 if (unlikely(phba->hba_flag & DEFER_ERATT)) {
5533 spin_unlock_irq(&phba->hbalock);
5534 return IRQ_NONE;
5535 }
5477 writel((ha_copy & (HA_R0_CLR_MSK | HA_R1_CLR_MSK)), 5536 writel((ha_copy & (HA_R0_CLR_MSK | HA_R1_CLR_MSK)),
5478 phba->HAregaddr); 5537 phba->HAregaddr);
5479 readl(phba->HAregaddr); /* flush */ 5538 readl(phba->HAregaddr); /* flush */
@@ -5510,7 +5569,7 @@ lpfc_fp_intr_handler(int irq, void *dev_id)
5510} /* lpfc_fp_intr_handler */ 5569} /* lpfc_fp_intr_handler */
5511 5570
5512/** 5571/**
5513 * lpfc_intr_handler: The device-level interrupt handler of lpfc driver. 5572 * lpfc_intr_handler - The device-level interrupt handler of lpfc driver
5514 * @irq: Interrupt number. 5573 * @irq: Interrupt number.
5515 * @dev_id: The device context pointer. 5574 * @dev_id: The device context pointer.
5516 * 5575 *
@@ -5566,6 +5625,14 @@ lpfc_intr_handler(int irq, void *dev_id)
5566 phba->hba_flag |= HBA_ERATT_HANDLED; 5625 phba->hba_flag |= HBA_ERATT_HANDLED;
5567 } 5626 }
5568 5627
5628 /*
5629 * If there is deferred error attention, do not check for any interrupt.
5630 */
5631 if (unlikely(phba->hba_flag & DEFER_ERATT)) {
5632 spin_unlock_irq(&phba->hbalock);
5633 return IRQ_NONE;
5634 }
5635
5569 /* Clear attention sources except link and error attentions */ 5636 /* Clear attention sources except link and error attentions */
5570 writel((phba->ha_copy & ~(HA_LATT | HA_ERATT)), phba->HAregaddr); 5637 writel((phba->ha_copy & ~(HA_LATT | HA_ERATT)), phba->HAregaddr);
5571 readl(phba->HAregaddr); /* flush */ 5638 readl(phba->HAregaddr); /* flush */
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h
index 7e32e95c5392..e599519e3078 100644
--- a/drivers/scsi/lpfc/lpfc_version.h
+++ b/drivers/scsi/lpfc/lpfc_version.h
@@ -1,7 +1,7 @@
1/******************************************************************* 1/*******************************************************************
2 * This file is part of the Emulex Linux Device Driver for * 2 * This file is part of the Emulex Linux Device Driver for *
3 * Fibre Channel Host Bus Adapters. * 3 * Fibre Channel Host Bus Adapters. *
4 * Copyright (C) 2004-2008 Emulex. All rights reserved. * 4 * Copyright (C) 2004-2009 Emulex. All rights reserved. *
5 * EMULEX and SLI are trademarks of Emulex. * 5 * EMULEX and SLI are trademarks of Emulex. *
6 * www.emulex.com * 6 * www.emulex.com *
7 * * 7 * *
@@ -18,7 +18,7 @@
18 * included with this package. * 18 * included with this package. *
19 *******************************************************************/ 19 *******************************************************************/
20 20
21#define LPFC_DRIVER_VERSION "8.3.0" 21#define LPFC_DRIVER_VERSION "8.3.1"
22 22
23#define LPFC_DRIVER_NAME "lpfc" 23#define LPFC_DRIVER_NAME "lpfc"
24#define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp" 24#define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp"
@@ -26,4 +26,4 @@
26 26
27#define LPFC_MODULE_DESC "Emulex LightPulse Fibre Channel SCSI driver " \ 27#define LPFC_MODULE_DESC "Emulex LightPulse Fibre Channel SCSI driver " \
28 LPFC_DRIVER_VERSION 28 LPFC_DRIVER_VERSION
29#define LPFC_COPYRIGHT "Copyright(c) 2004-2008 Emulex. All rights reserved." 29#define LPFC_COPYRIGHT "Copyright(c) 2004-2009 Emulex. All rights reserved."
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index 63b54c66756c..917ad56b0aff 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -206,7 +206,7 @@ lpfc_unique_wwpn(struct lpfc_hba *phba, struct lpfc_vport *new_vport)
206} 206}
207 207
208/** 208/**
209 * lpfc_discovery_wait: Wait for driver discovery to quiesce. 209 * lpfc_discovery_wait - Wait for driver discovery to quiesce
210 * @vport: The virtual port for which this call is being executed. 210 * @vport: The virtual port for which this call is being executed.
211 * 211 *
212 * This driver calls this routine specifically from lpfc_vport_delete 212 * This driver calls this routine specifically from lpfc_vport_delete
@@ -741,7 +741,7 @@ lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports)
741 741
742 742
743/** 743/**
744 * lpfc_vport_reset_stat_data: Reset the statistical data for the vport. 744 * lpfc_vport_reset_stat_data - Reset the statistical data for the vport
745 * @vport: Pointer to vport object. 745 * @vport: Pointer to vport object.
746 * 746 *
747 * This function resets the statistical data for the vport. This function 747 * This function resets the statistical data for the vport. This function
@@ -763,8 +763,7 @@ lpfc_vport_reset_stat_data(struct lpfc_vport *vport)
763 763
764 764
765/** 765/**
766 * lpfc_alloc_bucket: Allocate data buffer required for collecting 766 * lpfc_alloc_bucket - Allocate data buffer required for statistical data
767 * statistical data.
768 * @vport: Pointer to vport object. 767 * @vport: Pointer to vport object.
769 * 768 *
770 * This function allocates data buffer required for all the FC 769 * This function allocates data buffer required for all the FC
@@ -797,8 +796,7 @@ lpfc_alloc_bucket(struct lpfc_vport *vport)
797} 796}
798 797
799/** 798/**
800 * lpfc_free_bucket: Free data buffer required for collecting 799 * lpfc_free_bucket - Free data buffer required for statistical data
801 * statistical data.
802 * @vport: Pointer to vport object. 800 * @vport: Pointer to vport object.
803 * 801 *
804 * Th function frees statistical data buffer of all the FC 802 * Th function frees statistical data buffer of all the FC
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index 52427a8324f5..f3da592f7bcc 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -636,6 +636,14 @@ _base_unmask_interrupts(struct MPT2SAS_ADAPTER *ioc)
636static irqreturn_t 636static irqreturn_t
637_base_interrupt(int irq, void *bus_id) 637_base_interrupt(int irq, void *bus_id)
638{ 638{
639 union reply_descriptor {
640 u64 word;
641 struct {
642 u32 low;
643 u32 high;
644 } u;
645 };
646 union reply_descriptor rd;
639 u32 post_index, post_index_next, completed_cmds; 647 u32 post_index, post_index_next, completed_cmds;
640 u8 request_desript_type; 648 u8 request_desript_type;
641 u16 smid; 649 u16 smid;
@@ -656,7 +664,8 @@ _base_interrupt(int irq, void *bus_id)
656 664
657 completed_cmds = 0; 665 completed_cmds = 0;
658 do { 666 do {
659 if (ioc->reply_post_free[post_index].Words == ~0ULL) 667 rd.word = ioc->reply_post_free[post_index].Words;
668 if (rd.u.low == UINT_MAX || rd.u.high == UINT_MAX)
660 goto out; 669 goto out;
661 reply = 0; 670 reply = 0;
662 cb_idx = 0xFF; 671 cb_idx = 0xFF;
@@ -721,7 +730,7 @@ _base_interrupt(int irq, void *bus_id)
721 for (i = 0 ; i < completed_cmds; i++) { 730 for (i = 0 ; i < completed_cmds; i++) {
722 post_index = post_index_next; 731 post_index = post_index_next;
723 /* poison the reply post descriptor */ 732 /* poison the reply post descriptor */
724 ioc->reply_post_free[post_index_next].Words = ~0ULL; 733 ioc->reply_post_free[post_index_next].Words = ULLONG_MAX;
725 post_index_next = (post_index == 734 post_index_next = (post_index ==
726 (ioc->reply_post_queue_depth - 1)) 735 (ioc->reply_post_queue_depth - 1))
727 ? 0 : post_index + 1; 736 ? 0 : post_index + 1;
@@ -855,9 +864,9 @@ _base_config_dma_addressing(struct MPT2SAS_ADAPTER *ioc, struct pci_dev *pdev)
855 if (sizeof(dma_addr_t) > 4) { 864 if (sizeof(dma_addr_t) > 4) {
856 const uint64_t required_mask = 865 const uint64_t required_mask =
857 dma_get_required_mask(&pdev->dev); 866 dma_get_required_mask(&pdev->dev);
858 if ((required_mask > DMA_32BIT_MASK) && !pci_set_dma_mask(pdev, 867 if ((required_mask > DMA_BIT_MASK(32)) && !pci_set_dma_mask(pdev,
859 DMA_64BIT_MASK) && !pci_set_consistent_dma_mask(pdev, 868 DMA_BIT_MASK(64)) && !pci_set_consistent_dma_mask(pdev,
860 DMA_64BIT_MASK)) { 869 DMA_BIT_MASK(64))) {
861 ioc->base_add_sg_single = &_base_add_sg_single_64; 870 ioc->base_add_sg_single = &_base_add_sg_single_64;
862 ioc->sge_size = sizeof(Mpi2SGESimple64_t); 871 ioc->sge_size = sizeof(Mpi2SGESimple64_t);
863 desc = "64"; 872 desc = "64";
@@ -865,8 +874,8 @@ _base_config_dma_addressing(struct MPT2SAS_ADAPTER *ioc, struct pci_dev *pdev)
865 } 874 }
866 } 875 }
867 876
868 if (!pci_set_dma_mask(pdev, DMA_32BIT_MASK) 877 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
869 && !pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) { 878 && !pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
870 ioc->base_add_sg_single = &_base_add_sg_single_32; 879 ioc->base_add_sg_single = &_base_add_sg_single_32;
871 ioc->sge_size = sizeof(Mpi2SGESimple32_t); 880 ioc->sge_size = sizeof(Mpi2SGESimple32_t);
872 desc = "32"; 881 desc = "32";
@@ -1387,6 +1396,64 @@ mpt2sas_base_put_smid_target_assist(struct MPT2SAS_ADAPTER *ioc, u16 smid,
1387} 1396}
1388 1397
1389/** 1398/**
1399 * _base_display_dell_branding - Disply branding string
1400 * @ioc: per adapter object
1401 *
1402 * Return nothing.
1403 */
1404static void
1405_base_display_dell_branding(struct MPT2SAS_ADAPTER *ioc)
1406{
1407 char dell_branding[MPT2SAS_DELL_BRANDING_SIZE];
1408
1409 if (ioc->pdev->subsystem_vendor != PCI_VENDOR_ID_DELL)
1410 return;
1411
1412 memset(dell_branding, 0, MPT2SAS_DELL_BRANDING_SIZE);
1413 switch (ioc->pdev->subsystem_device) {
1414 case MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID:
1415 strncpy(dell_branding, MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING,
1416 MPT2SAS_DELL_BRANDING_SIZE - 1);
1417 break;
1418 case MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID:
1419 strncpy(dell_branding, MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING,
1420 MPT2SAS_DELL_BRANDING_SIZE - 1);
1421 break;
1422 case MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID:
1423 strncpy(dell_branding,
1424 MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING,
1425 MPT2SAS_DELL_BRANDING_SIZE - 1);
1426 break;
1427 case MPT2SAS_DELL_PERC_H200_MODULAR_SSDID:
1428 strncpy(dell_branding,
1429 MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING,
1430 MPT2SAS_DELL_BRANDING_SIZE - 1);
1431 break;
1432 case MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID:
1433 strncpy(dell_branding,
1434 MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING,
1435 MPT2SAS_DELL_BRANDING_SIZE - 1);
1436 break;
1437 case MPT2SAS_DELL_PERC_H200_SSDID:
1438 strncpy(dell_branding, MPT2SAS_DELL_PERC_H200_BRANDING,
1439 MPT2SAS_DELL_BRANDING_SIZE - 1);
1440 break;
1441 case MPT2SAS_DELL_6GBPS_SAS_SSDID:
1442 strncpy(dell_branding, MPT2SAS_DELL_6GBPS_SAS_BRANDING,
1443 MPT2SAS_DELL_BRANDING_SIZE - 1);
1444 break;
1445 default:
1446 sprintf(dell_branding, "0x%4X", ioc->pdev->subsystem_device);
1447 break;
1448 }
1449
1450 printk(MPT2SAS_INFO_FMT "%s: Vendor(0x%04X), Device(0x%04X),"
1451 " SSVID(0x%04X), SSDID(0x%04X)\n", ioc->name, dell_branding,
1452 ioc->pdev->vendor, ioc->pdev->device, ioc->pdev->subsystem_vendor,
1453 ioc->pdev->subsystem_device);
1454}
1455
1456/**
1390 * _base_display_ioc_capabilities - Disply IOC's capabilities. 1457 * _base_display_ioc_capabilities - Disply IOC's capabilities.
1391 * @ioc: per adapter object 1458 * @ioc: per adapter object
1392 * 1459 *
@@ -1427,6 +1494,8 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc)
1427 i++; 1494 i++;
1428 } 1495 }
1429 1496
1497 _base_display_dell_branding(ioc);
1498
1430 i = 0; 1499 i = 0;
1431 printk("), "); 1500 printk("), ");
1432 printk("Capabilities=("); 1501 printk("Capabilities=(");
@@ -3068,7 +3137,7 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, u8 VF_ID,
3068 3137
3069 /* initialize Reply Post Free Queue */ 3138 /* initialize Reply Post Free Queue */
3070 for (i = 0; i < ioc->reply_post_queue_depth; i++) 3139 for (i = 0; i < ioc->reply_post_queue_depth; i++)
3071 ioc->reply_post_free[i].Words = ~0ULL; 3140 ioc->reply_post_free[i].Words = ULLONG_MAX;
3072 3141
3073 r = _base_send_ioc_init(ioc, VF_ID, sleep_flag); 3142 r = _base_send_ioc_init(ioc, VF_ID, sleep_flag);
3074 if (r) 3143 if (r)
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index 6945ff4d382e..babd4cc0cb25 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -68,11 +68,11 @@
68#define MPT2SAS_DRIVER_NAME "mpt2sas" 68#define MPT2SAS_DRIVER_NAME "mpt2sas"
69#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>" 69#define MPT2SAS_AUTHOR "LSI Corporation <DL-MPTFusionLinux@lsi.com>"
70#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver" 70#define MPT2SAS_DESCRIPTION "LSI MPT Fusion SAS 2.0 Device Driver"
71#define MPT2SAS_DRIVER_VERSION "00.100.11.16" 71#define MPT2SAS_DRIVER_VERSION "01.100.02.00"
72#define MPT2SAS_MAJOR_VERSION 00 72#define MPT2SAS_MAJOR_VERSION 00
73#define MPT2SAS_MINOR_VERSION 100 73#define MPT2SAS_MINOR_VERSION 100
74#define MPT2SAS_BUILD_VERSION 11 74#define MPT2SAS_BUILD_VERSION 02
75#define MPT2SAS_RELEASE_VERSION 16 75#define MPT2SAS_RELEASE_VERSION 00
76 76
77/* 77/*
78 * Set MPT2SAS_SG_DEPTH value based on user input. 78 * Set MPT2SAS_SG_DEPTH value based on user input.
@@ -130,6 +130,30 @@
130#define MPT2SAS_ERR_FMT KERN_ERR MPT2SAS_FMT 130#define MPT2SAS_ERR_FMT KERN_ERR MPT2SAS_FMT
131 131
132/* 132/*
133 * Dell HBA branding
134 */
135#define MPT2SAS_DELL_BRANDING_SIZE 32
136
137#define MPT2SAS_DELL_6GBPS_SAS_HBA_BRANDING "Dell 6Gbps SAS HBA"
138#define MPT2SAS_DELL_PERC_H200_ADAPTER_BRANDING "Dell PERC H200 Adapter"
139#define MPT2SAS_DELL_PERC_H200_INTEGRATED_BRANDING "Dell PERC H200 Integrated"
140#define MPT2SAS_DELL_PERC_H200_MODULAR_BRANDING "Dell PERC H200 Modular"
141#define MPT2SAS_DELL_PERC_H200_EMBEDDED_BRANDING "Dell PERC H200 Embedded"
142#define MPT2SAS_DELL_PERC_H200_BRANDING "Dell PERC H200"
143#define MPT2SAS_DELL_6GBPS_SAS_BRANDING "Dell 6Gbps SAS"
144
145/*
146 * Dell HBA SSDIDs
147 */
148#define MPT2SAS_DELL_6GBPS_SAS_HBA_SSDID 0x1F1C
149#define MPT2SAS_DELL_PERC_H200_ADAPTER_SSDID 0x1F1D
150#define MPT2SAS_DELL_PERC_H200_INTEGRATED_SSDID 0x1F1E
151#define MPT2SAS_DELL_PERC_H200_MODULAR_SSDID 0x1F1F
152#define MPT2SAS_DELL_PERC_H200_EMBEDDED_SSDID 0x1F20
153#define MPT2SAS_DELL_PERC_H200_SSDID 0x1F21
154#define MPT2SAS_DELL_6GBPS_SAS_SSDID 0x1F22
155
156/*
133 * per target private data 157 * per target private data
134 */ 158 */
135#define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01 159#define MPT_TARGET_FLAGS_RAID_COMPONENT 0x01
diff --git a/drivers/scsi/mpt2sas/mpt2sas_ctl.c b/drivers/scsi/mpt2sas/mpt2sas_ctl.c
index 2d4f85c9d7a1..ba6ab170bdf0 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_ctl.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_ctl.c
@@ -64,6 +64,9 @@
64static struct fasync_struct *async_queue; 64static struct fasync_struct *async_queue;
65static DECLARE_WAIT_QUEUE_HEAD(ctl_poll_wait); 65static DECLARE_WAIT_QUEUE_HEAD(ctl_poll_wait);
66 66
67static int _ctl_send_release(struct MPT2SAS_ADAPTER *ioc, u8 buffer_type,
68 u8 *issue_reset);
69
67/** 70/**
68 * enum block_state - blocking state 71 * enum block_state - blocking state
69 * @NON_BLOCKING: non blocking 72 * @NON_BLOCKING: non blocking
@@ -378,10 +381,22 @@ _ctl_verify_adapter(int ioc_number, struct MPT2SAS_ADAPTER **iocpp)
378void 381void
379mpt2sas_ctl_reset_handler(struct MPT2SAS_ADAPTER *ioc, int reset_phase) 382mpt2sas_ctl_reset_handler(struct MPT2SAS_ADAPTER *ioc, int reset_phase)
380{ 383{
384 int i;
385 u8 issue_reset;
386
381 switch (reset_phase) { 387 switch (reset_phase) {
382 case MPT2_IOC_PRE_RESET: 388 case MPT2_IOC_PRE_RESET:
383 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: " 389 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: "
384 "MPT2_IOC_PRE_RESET\n", ioc->name, __func__)); 390 "MPT2_IOC_PRE_RESET\n", ioc->name, __func__));
391 for (i = 0; i < MPI2_DIAG_BUF_TYPE_COUNT; i++) {
392 if (!(ioc->diag_buffer_status[i] &
393 MPT2_DIAG_BUFFER_IS_REGISTERED))
394 continue;
395 if ((ioc->diag_buffer_status[i] &
396 MPT2_DIAG_BUFFER_IS_RELEASED))
397 continue;
398 _ctl_send_release(ioc, i, &issue_reset);
399 }
385 break; 400 break;
386 case MPT2_IOC_AFTER_RESET: 401 case MPT2_IOC_AFTER_RESET:
387 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: " 402 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: "
@@ -395,6 +410,17 @@ mpt2sas_ctl_reset_handler(struct MPT2SAS_ADAPTER *ioc, int reset_phase)
395 case MPT2_IOC_DONE_RESET: 410 case MPT2_IOC_DONE_RESET:
396 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: " 411 dtmprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: "
397 "MPT2_IOC_DONE_RESET\n", ioc->name, __func__)); 412 "MPT2_IOC_DONE_RESET\n", ioc->name, __func__));
413
414 for (i = 0; i < MPI2_DIAG_BUF_TYPE_COUNT; i++) {
415 if (!(ioc->diag_buffer_status[i] &
416 MPT2_DIAG_BUFFER_IS_REGISTERED))
417 continue;
418 if ((ioc->diag_buffer_status[i] &
419 MPT2_DIAG_BUFFER_IS_RELEASED))
420 continue;
421 ioc->diag_buffer_status[i] |=
422 MPT2_DIAG_BUFFER_IS_DIAG_RESET;
423 }
398 break; 424 break;
399 } 425 }
400} 426}
@@ -714,8 +740,10 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc,
714 740
715 if (tm_request->TaskType == 741 if (tm_request->TaskType ==
716 MPI2_SCSITASKMGMT_TASKTYPE_ABORT_TASK) { 742 MPI2_SCSITASKMGMT_TASKTYPE_ABORT_TASK) {
717 if (_ctl_do_task_abort(ioc, &karg, tm_request)) 743 if (_ctl_do_task_abort(ioc, &karg, tm_request)) {
744 mpt2sas_base_free_smid(ioc, smid);
718 goto out; 745 goto out;
746 }
719 } 747 }
720 748
721 mutex_lock(&ioc->tm_cmds.mutex); 749 mutex_lock(&ioc->tm_cmds.mutex);
@@ -915,9 +943,9 @@ _ctl_getiocinfo(void __user *arg)
915 karg.pci_information.u.bits.function = PCI_FUNC(ioc->pdev->devfn); 943 karg.pci_information.u.bits.function = PCI_FUNC(ioc->pdev->devfn);
916 karg.pci_information.segment_id = pci_domain_nr(ioc->pdev->bus); 944 karg.pci_information.segment_id = pci_domain_nr(ioc->pdev->bus);
917 karg.firmware_version = ioc->facts.FWVersion.Word; 945 karg.firmware_version = ioc->facts.FWVersion.Word;
918 strncpy(karg.driver_version, MPT2SAS_DRIVER_VERSION, 946 strcpy(karg.driver_version, MPT2SAS_DRIVER_NAME);
919 MPT2_IOCTL_VERSION_LENGTH); 947 strcat(karg.driver_version, "-");
920 karg.driver_version[MPT2_IOCTL_VERSION_LENGTH - 1] = '\0'; 948 strcat(karg.driver_version, MPT2SAS_DRIVER_VERSION);
921 karg.bios_version = le32_to_cpu(ioc->bios_pg3.BiosVersion); 949 karg.bios_version = le32_to_cpu(ioc->bios_pg3.BiosVersion);
922 950
923 if (copy_to_user(arg, &karg, sizeof(karg))) { 951 if (copy_to_user(arg, &karg, sizeof(karg))) {
@@ -1551,81 +1579,38 @@ _ctl_diag_query(void __user *arg)
1551} 1579}
1552 1580
1553/** 1581/**
1554 * _ctl_diag_release - request to send Diag Release Message to firmware 1582 * _ctl_send_release - Diag Release Message
1555 * @arg - user space buffer containing ioctl content 1583 * @ioc: per adapter object
1556 * @state - NON_BLOCKING or BLOCKING 1584 * @buffer_type - specifies either TRACE or SNAPSHOT
1585 * @issue_reset - specifies whether host reset is required.
1557 * 1586 *
1558 * This allows ownership of the specified buffer to returned to the driver,
1559 * allowing an application to read the buffer without fear that firmware is
1560 * overwritting information in the buffer.
1561 */ 1587 */
1562static long 1588static int
1563_ctl_diag_release(void __user *arg, enum block_state state) 1589_ctl_send_release(struct MPT2SAS_ADAPTER *ioc, u8 buffer_type, u8 *issue_reset)
1564{ 1590{
1565 struct mpt2_diag_release karg;
1566 struct MPT2SAS_ADAPTER *ioc;
1567 void *request_data;
1568 int rc;
1569 Mpi2DiagReleaseRequest_t *mpi_request; 1591 Mpi2DiagReleaseRequest_t *mpi_request;
1570 Mpi2DiagReleaseReply_t *mpi_reply; 1592 Mpi2DiagReleaseReply_t *mpi_reply;
1571 u8 buffer_type;
1572 unsigned long timeleft;
1573 u16 smid; 1593 u16 smid;
1574 u16 ioc_status; 1594 u16 ioc_status;
1575 u8 issue_reset = 0; 1595 u32 ioc_state;
1576 1596 int rc;
1577 if (copy_from_user(&karg, arg, sizeof(karg))) { 1597 unsigned long timeleft;
1578 printk(KERN_ERR "failure at %s:%d/%s()!\n",
1579 __FILE__, __LINE__, __func__);
1580 return -EFAULT;
1581 }
1582 if (_ctl_verify_adapter(karg.hdr.ioc_number, &ioc) == -1 || !ioc)
1583 return -ENODEV;
1584 1598
1585 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s\n", ioc->name, 1599 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s\n", ioc->name,
1586 __func__)); 1600 __func__));
1587 1601
1588 buffer_type = karg.unique_id & 0x000000ff; 1602 rc = 0;
1589 if (!_ctl_diag_capability(ioc, buffer_type)) { 1603 *issue_reset = 0;
1590 printk(MPT2SAS_ERR_FMT "%s: doesn't have capability for "
1591 "buffer_type(0x%02x)\n", ioc->name, __func__, buffer_type);
1592 return -EPERM;
1593 }
1594
1595 if ((ioc->diag_buffer_status[buffer_type] &
1596 MPT2_DIAG_BUFFER_IS_REGISTERED) == 0) {
1597 printk(MPT2SAS_ERR_FMT "%s: buffer_type(0x%02x) is not "
1598 "registered\n", ioc->name, __func__, buffer_type);
1599 return -EINVAL;
1600 }
1601
1602 if (karg.unique_id != ioc->unique_id[buffer_type]) {
1603 printk(MPT2SAS_ERR_FMT "%s: unique_id(0x%08x) is not "
1604 "registered\n", ioc->name, __func__, karg.unique_id);
1605 return -EINVAL;
1606 }
1607
1608 if (ioc->diag_buffer_status[buffer_type] &
1609 MPT2_DIAG_BUFFER_IS_RELEASED) {
1610 printk(MPT2SAS_ERR_FMT "%s: buffer_type(0x%02x) "
1611 "is already released\n", ioc->name, __func__,
1612 buffer_type);
1613 return 0;
1614 }
1615
1616 request_data = ioc->diag_buffer[buffer_type];
1617 1604
1618 if (!request_data) { 1605 ioc_state = mpt2sas_base_get_iocstate(ioc, 1);
1619 printk(MPT2SAS_ERR_FMT "%s: doesn't have memory allocated for " 1606 if (ioc_state != MPI2_IOC_STATE_OPERATIONAL) {
1620 "buffer_type(0x%02x)\n", ioc->name, __func__, buffer_type); 1607 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s: "
1621 return -ENOMEM; 1608 "skipping due to FAULT state\n", ioc->name,
1609 __func__));
1610 rc = -EAGAIN;
1611 goto out;
1622 } 1612 }
1623 1613
1624 if (state == NON_BLOCKING && !mutex_trylock(&ioc->ctl_cmds.mutex))
1625 return -EAGAIN;
1626 else if (mutex_lock_interruptible(&ioc->ctl_cmds.mutex))
1627 return -ERESTARTSYS;
1628
1629 if (ioc->ctl_cmds.status != MPT2_CMD_NOT_USED) { 1614 if (ioc->ctl_cmds.status != MPT2_CMD_NOT_USED) {
1630 printk(MPT2SAS_ERR_FMT "%s: ctl_cmd in use\n", 1615 printk(MPT2SAS_ERR_FMT "%s: ctl_cmd in use\n",
1631 ioc->name, __func__); 1616 ioc->name, __func__);
@@ -1641,7 +1626,6 @@ _ctl_diag_release(void __user *arg, enum block_state state)
1641 goto out; 1626 goto out;
1642 } 1627 }
1643 1628
1644 rc = 0;
1645 ioc->ctl_cmds.status = MPT2_CMD_PENDING; 1629 ioc->ctl_cmds.status = MPT2_CMD_PENDING;
1646 memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz); 1630 memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
1647 mpi_request = mpt2sas_base_get_msg_frame(ioc, smid); 1631 mpi_request = mpt2sas_base_get_msg_frame(ioc, smid);
@@ -1660,8 +1644,9 @@ _ctl_diag_release(void __user *arg, enum block_state state)
1660 _debug_dump_mf(mpi_request, 1644 _debug_dump_mf(mpi_request,
1661 sizeof(Mpi2DiagReleaseRequest_t)/4); 1645 sizeof(Mpi2DiagReleaseRequest_t)/4);
1662 if (!(ioc->ctl_cmds.status & MPT2_CMD_RESET)) 1646 if (!(ioc->ctl_cmds.status & MPT2_CMD_RESET))
1663 issue_reset = 1; 1647 *issue_reset = 1;
1664 goto issue_host_reset; 1648 rc = -EFAULT;
1649 goto out;
1665 } 1650 }
1666 1651
1667 /* process the completed Reply Message Frame */ 1652 /* process the completed Reply Message Frame */
@@ -1687,14 +1672,101 @@ _ctl_diag_release(void __user *arg, enum block_state state)
1687 rc = -EFAULT; 1672 rc = -EFAULT;
1688 } 1673 }
1689 1674
1690 issue_host_reset: 1675 out:
1676 ioc->ctl_cmds.status = MPT2_CMD_NOT_USED;
1677 return rc;
1678}
1679
1680/**
1681 * _ctl_diag_release - request to send Diag Release Message to firmware
1682 * @arg - user space buffer containing ioctl content
1683 * @state - NON_BLOCKING or BLOCKING
1684 *
1685 * This allows ownership of the specified buffer to returned to the driver,
1686 * allowing an application to read the buffer without fear that firmware is
1687 * overwritting information in the buffer.
1688 */
1689static long
1690_ctl_diag_release(void __user *arg, enum block_state state)
1691{
1692 struct mpt2_diag_release karg;
1693 struct MPT2SAS_ADAPTER *ioc;
1694 void *request_data;
1695 int rc;
1696 u8 buffer_type;
1697 u8 issue_reset = 0;
1698
1699 if (copy_from_user(&karg, arg, sizeof(karg))) {
1700 printk(KERN_ERR "failure at %s:%d/%s()!\n",
1701 __FILE__, __LINE__, __func__);
1702 return -EFAULT;
1703 }
1704 if (_ctl_verify_adapter(karg.hdr.ioc_number, &ioc) == -1 || !ioc)
1705 return -ENODEV;
1706
1707 dctlprintk(ioc, printk(MPT2SAS_DEBUG_FMT "%s\n", ioc->name,
1708 __func__));
1709
1710 buffer_type = karg.unique_id & 0x000000ff;
1711 if (!_ctl_diag_capability(ioc, buffer_type)) {
1712 printk(MPT2SAS_ERR_FMT "%s: doesn't have capability for "
1713 "buffer_type(0x%02x)\n", ioc->name, __func__, buffer_type);
1714 return -EPERM;
1715 }
1716
1717 if ((ioc->diag_buffer_status[buffer_type] &
1718 MPT2_DIAG_BUFFER_IS_REGISTERED) == 0) {
1719 printk(MPT2SAS_ERR_FMT "%s: buffer_type(0x%02x) is not "
1720 "registered\n", ioc->name, __func__, buffer_type);
1721 return -EINVAL;
1722 }
1723
1724 if (karg.unique_id != ioc->unique_id[buffer_type]) {
1725 printk(MPT2SAS_ERR_FMT "%s: unique_id(0x%08x) is not "
1726 "registered\n", ioc->name, __func__, karg.unique_id);
1727 return -EINVAL;
1728 }
1729
1730 if (ioc->diag_buffer_status[buffer_type] &
1731 MPT2_DIAG_BUFFER_IS_RELEASED) {
1732 printk(MPT2SAS_ERR_FMT "%s: buffer_type(0x%02x) "
1733 "is already released\n", ioc->name, __func__,
1734 buffer_type);
1735 return 0;
1736 }
1737
1738 request_data = ioc->diag_buffer[buffer_type];
1739
1740 if (!request_data) {
1741 printk(MPT2SAS_ERR_FMT "%s: doesn't have memory allocated for "
1742 "buffer_type(0x%02x)\n", ioc->name, __func__, buffer_type);
1743 return -ENOMEM;
1744 }
1745
1746 /* buffers were released by due to host reset */
1747 if ((ioc->diag_buffer_status[buffer_type] &
1748 MPT2_DIAG_BUFFER_IS_DIAG_RESET)) {
1749 ioc->diag_buffer_status[buffer_type] |=
1750 MPT2_DIAG_BUFFER_IS_RELEASED;
1751 ioc->diag_buffer_status[buffer_type] &=
1752 ~MPT2_DIAG_BUFFER_IS_DIAG_RESET;
1753 printk(MPT2SAS_ERR_FMT "%s: buffer_type(0x%02x) "
1754 "was released due to host reset\n", ioc->name, __func__,
1755 buffer_type);
1756 return 0;
1757 }
1758
1759 if (state == NON_BLOCKING && !mutex_trylock(&ioc->ctl_cmds.mutex))
1760 return -EAGAIN;
1761 else if (mutex_lock_interruptible(&ioc->ctl_cmds.mutex))
1762 return -ERESTARTSYS;
1763
1764 rc = _ctl_send_release(ioc, buffer_type, &issue_reset);
1765
1691 if (issue_reset) 1766 if (issue_reset)
1692 mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP, 1767 mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP,
1693 FORCE_BIG_HAMMER); 1768 FORCE_BIG_HAMMER);
1694 1769
1695 out:
1696
1697 ioc->ctl_cmds.status = MPT2_CMD_NOT_USED;
1698 mutex_unlock(&ioc->ctl_cmds.mutex); 1770 mutex_unlock(&ioc->ctl_cmds.mutex);
1699 return rc; 1771 return rc;
1700} 1772}
diff --git a/drivers/scsi/mpt2sas/mpt2sas_ctl.h b/drivers/scsi/mpt2sas/mpt2sas_ctl.h
index dbb6c0cf8889..4da11435533f 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_ctl.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_ctl.h
@@ -50,7 +50,7 @@
50#endif 50#endif
51 51
52#define MPT2SAS_DEV_NAME "mpt2ctl" 52#define MPT2SAS_DEV_NAME "mpt2ctl"
53#define MPT2_MAGIC_NUMBER 'm' 53#define MPT2_MAGIC_NUMBER 'L'
54#define MPT2_IOCTL_DEFAULT_TIMEOUT (10) /* in seconds */ 54#define MPT2_IOCTL_DEFAULT_TIMEOUT (10) /* in seconds */
55 55
56/** 56/**
@@ -295,8 +295,9 @@ struct mpt2_ioctl_btdh_mapping {
295 295
296 296
297/* status bits for ioc->diag_buffer_status */ 297/* status bits for ioc->diag_buffer_status */
298#define MPT2_DIAG_BUFFER_IS_REGISTERED (0x01) 298#define MPT2_DIAG_BUFFER_IS_REGISTERED (0x01)
299#define MPT2_DIAG_BUFFER_IS_RELEASED (0x02) 299#define MPT2_DIAG_BUFFER_IS_RELEASED (0x02)
300#define MPT2_DIAG_BUFFER_IS_DIAG_RESET (0x04)
300 301
301/* application flags for mpt2_diag_register, mpt2_diag_query */ 302/* application flags for mpt2_diag_register, mpt2_diag_query */
302#define MPT2_APP_FLAGS_APP_OWNED (0x0001) 303#define MPT2_APP_FLAGS_APP_OWNED (0x0001)
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 0c463c483c02..e3a7967259e7 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -119,7 +119,7 @@ struct sense_info {
119 */ 119 */
120struct fw_event_work { 120struct fw_event_work {
121 struct list_head list; 121 struct list_head list;
122 struct delayed_work work; 122 struct work_struct work;
123 struct MPT2SAS_ADAPTER *ioc; 123 struct MPT2SAS_ADAPTER *ioc;
124 u8 VF_ID; 124 u8 VF_ID;
125 u8 host_reset_handling; 125 u8 host_reset_handling;
@@ -516,12 +516,8 @@ _scsih_sas_device_add(struct MPT2SAS_ADAPTER *ioc,
516 handle = sas_device->handle; 516 handle = sas_device->handle;
517 parent_handle = sas_device->parent_handle; 517 parent_handle = sas_device->parent_handle;
518 sas_address = sas_device->sas_address; 518 sas_address = sas_device->sas_address;
519 if (!mpt2sas_transport_port_add(ioc, handle, parent_handle)) { 519 if (!mpt2sas_transport_port_add(ioc, handle, parent_handle))
520 _scsih_sas_device_remove(ioc, sas_device); 520 _scsih_sas_device_remove(ioc, sas_device);
521 } else if (!sas_device->starget) {
522 mpt2sas_transport_port_remove(ioc, sas_address, parent_handle);
523 _scsih_sas_device_remove(ioc, sas_device);
524 }
525} 521}
526 522
527/** 523/**
@@ -1203,7 +1199,9 @@ scsih_target_destroy(struct scsi_target *starget)
1203 rphy = dev_to_rphy(starget->dev.parent); 1199 rphy = dev_to_rphy(starget->dev.parent);
1204 sas_device = mpt2sas_scsih_sas_device_find_by_sas_address(ioc, 1200 sas_device = mpt2sas_scsih_sas_device_find_by_sas_address(ioc,
1205 rphy->identify.sas_address); 1201 rphy->identify.sas_address);
1206 if (sas_device) 1202 if (sas_device && (sas_device->starget == starget) &&
1203 (sas_device->id == starget->id) &&
1204 (sas_device->channel == starget->channel))
1207 sas_device->starget = NULL; 1205 sas_device->starget = NULL;
1208 1206
1209 spin_unlock_irqrestore(&ioc->sas_device_lock, flags); 1207 spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
@@ -2009,8 +2007,8 @@ _scsih_fw_event_add(struct MPT2SAS_ADAPTER *ioc, struct fw_event_work *fw_event)
2009 2007
2010 spin_lock_irqsave(&ioc->fw_event_lock, flags); 2008 spin_lock_irqsave(&ioc->fw_event_lock, flags);
2011 list_add_tail(&fw_event->list, &ioc->fw_event_list); 2009 list_add_tail(&fw_event->list, &ioc->fw_event_list);
2012 INIT_DELAYED_WORK(&fw_event->work, _firmware_event_work); 2010 INIT_WORK(&fw_event->work, _firmware_event_work);
2013 queue_delayed_work(ioc->firmware_event_thread, &fw_event->work, 1); 2011 queue_work(ioc->firmware_event_thread, &fw_event->work);
2014 spin_unlock_irqrestore(&ioc->fw_event_lock, flags); 2012 spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
2015} 2013}
2016 2014
@@ -2054,7 +2052,7 @@ _scsih_fw_event_requeue(struct MPT2SAS_ADAPTER *ioc, struct fw_event_work
2054 return; 2052 return;
2055 2053
2056 spin_lock_irqsave(&ioc->fw_event_lock, flags); 2054 spin_lock_irqsave(&ioc->fw_event_lock, flags);
2057 queue_delayed_work(ioc->firmware_event_thread, &fw_event->work, delay); 2055 queue_work(ioc->firmware_event_thread, &fw_event->work);
2058 spin_unlock_irqrestore(&ioc->fw_event_lock, flags); 2056 spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
2059} 2057}
2060 2058
@@ -2863,8 +2861,9 @@ scsih_io_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 VF_ID, u32 reply)
2863 struct sense_info data; 2861 struct sense_info data;
2864 const void *sense_data = mpt2sas_base_get_sense_buffer(ioc, 2862 const void *sense_data = mpt2sas_base_get_sense_buffer(ioc,
2865 smid); 2863 smid);
2866 memcpy(scmd->sense_buffer, sense_data, 2864 u32 sz = min_t(u32, SCSI_SENSE_BUFFERSIZE,
2867 le32_to_cpu(mpi_reply->SenseCount)); 2865 le32_to_cpu(mpi_reply->SenseCount));
2866 memcpy(scmd->sense_buffer, sense_data, sz);
2868 _scsih_normalize_sense(scmd->sense_buffer, &data); 2867 _scsih_normalize_sense(scmd->sense_buffer, &data);
2869 /* failure prediction threshold exceeded */ 2868 /* failure prediction threshold exceeded */
2870 if (data.asc == 0x5D) 2869 if (data.asc == 0x5D)
@@ -3923,7 +3922,7 @@ _scsih_sas_broadcast_primative_event(struct MPT2SAS_ADAPTER *ioc, u8 VF_ID,
3923 3922
3924 mpt2sas_scsih_issue_tm(ioc, handle, lun, 3923 mpt2sas_scsih_issue_tm(ioc, handle, lun,
3925 MPI2_SCSITASKMGMT_TASKTYPE_QUERY_TASK, smid, 30); 3924 MPI2_SCSITASKMGMT_TASKTYPE_QUERY_TASK, smid, 30);
3926 termination_count += le32_to_cpu(mpi_reply->TerminationCount); 3925 ioc->tm_cmds.status = MPT2_CMD_NOT_USED;
3927 3926
3928 if ((mpi_reply->IOCStatus == MPI2_IOCSTATUS_SUCCESS) && 3927 if ((mpi_reply->IOCStatus == MPI2_IOCSTATUS_SUCCESS) &&
3929 (mpi_reply->ResponseCode == 3928 (mpi_reply->ResponseCode ==
@@ -3933,10 +3932,10 @@ _scsih_sas_broadcast_primative_event(struct MPT2SAS_ADAPTER *ioc, u8 VF_ID,
3933 continue; 3932 continue;
3934 3933
3935 mpt2sas_scsih_issue_tm(ioc, handle, lun, 3934 mpt2sas_scsih_issue_tm(ioc, handle, lun,
3936 MPI2_SCSITASKMGMT_TASKTYPE_ABRT_TASK_SET, smid, 30); 3935 MPI2_SCSITASKMGMT_TASKTYPE_ABRT_TASK_SET, 0, 30);
3936 ioc->tm_cmds.status = MPT2_CMD_NOT_USED;
3937 termination_count += le32_to_cpu(mpi_reply->TerminationCount); 3937 termination_count += le32_to_cpu(mpi_reply->TerminationCount);
3938 } 3938 }
3939 ioc->tm_cmds.status = MPT2_CMD_NOT_USED;
3940 ioc->broadcast_aen_busy = 0; 3939 ioc->broadcast_aen_busy = 0;
3941 mutex_unlock(&ioc->tm_cmds.mutex); 3940 mutex_unlock(&ioc->tm_cmds.mutex);
3942 3941
@@ -4962,7 +4961,7 @@ static void
4962_firmware_event_work(struct work_struct *work) 4961_firmware_event_work(struct work_struct *work)
4963{ 4962{
4964 struct fw_event_work *fw_event = container_of(work, 4963 struct fw_event_work *fw_event = container_of(work,
4965 struct fw_event_work, work.work); 4964 struct fw_event_work, work);
4966 unsigned long flags; 4965 unsigned long flags;
4967 struct MPT2SAS_ADAPTER *ioc = fw_event->ioc; 4966 struct MPT2SAS_ADAPTER *ioc = fw_event->ioc;
4968 4967
diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c
index 2a5f0777148d..1ce6b24abab2 100644
--- a/drivers/scsi/osd/osd_initiator.c
+++ b/drivers/scsi/osd/osd_initiator.c
@@ -205,6 +205,74 @@ static unsigned _osd_req_alist_elem_size(struct osd_request *or, unsigned len)
205 osdv2_attr_list_elem_size(len); 205 osdv2_attr_list_elem_size(len);
206} 206}
207 207
208static void _osd_req_alist_elem_encode(struct osd_request *or,
209 void *attr_last, const struct osd_attr *oa)
210{
211 if (osd_req_is_ver1(or)) {
212 struct osdv1_attributes_list_element *attr = attr_last;
213
214 attr->attr_page = cpu_to_be32(oa->attr_page);
215 attr->attr_id = cpu_to_be32(oa->attr_id);
216 attr->attr_bytes = cpu_to_be16(oa->len);
217 memcpy(attr->attr_val, oa->val_ptr, oa->len);
218 } else {
219 struct osdv2_attributes_list_element *attr = attr_last;
220
221 attr->attr_page = cpu_to_be32(oa->attr_page);
222 attr->attr_id = cpu_to_be32(oa->attr_id);
223 attr->attr_bytes = cpu_to_be16(oa->len);
224 memcpy(attr->attr_val, oa->val_ptr, oa->len);
225 }
226}
227
228static int _osd_req_alist_elem_decode(struct osd_request *or,
229 void *cur_p, struct osd_attr *oa, unsigned max_bytes)
230{
231 unsigned inc;
232 if (osd_req_is_ver1(or)) {
233 struct osdv1_attributes_list_element *attr = cur_p;
234
235 if (max_bytes < sizeof(*attr))
236 return -1;
237
238 oa->len = be16_to_cpu(attr->attr_bytes);
239 inc = _osd_req_alist_elem_size(or, oa->len);
240 if (inc > max_bytes)
241 return -1;
242
243 oa->attr_page = be32_to_cpu(attr->attr_page);
244 oa->attr_id = be32_to_cpu(attr->attr_id);
245
246 /* OSD1: On empty attributes we return a pointer to 2 bytes
247 * of zeros. This keeps similar behaviour with OSD2.
248 * (See below)
249 */
250 oa->val_ptr = likely(oa->len) ? attr->attr_val :
251 (u8 *)&attr->attr_bytes;
252 } else {
253 struct osdv2_attributes_list_element *attr = cur_p;
254
255 if (max_bytes < sizeof(*attr))
256 return -1;
257
258 oa->len = be16_to_cpu(attr->attr_bytes);
259 inc = _osd_req_alist_elem_size(or, oa->len);
260 if (inc > max_bytes)
261 return -1;
262
263 oa->attr_page = be32_to_cpu(attr->attr_page);
264 oa->attr_id = be32_to_cpu(attr->attr_id);
265
266 /* OSD2: For convenience, on empty attributes, we return 8 bytes
267 * of zeros here. This keeps the same behaviour with OSD2r04,
268 * and is nice with null terminating ASCII fields.
269 * oa->val_ptr == NULL marks the end-of-list, or error.
270 */
271 oa->val_ptr = likely(oa->len) ? attr->attr_val : attr->reserved;
272 }
273 return inc;
274}
275
208static unsigned _osd_req_alist_size(struct osd_request *or, void *list_head) 276static unsigned _osd_req_alist_size(struct osd_request *or, void *list_head)
209{ 277{
210 return osd_req_is_ver1(or) ? 278 return osd_req_is_ver1(or) ?
@@ -282,9 +350,9 @@ _osd_req_sec_params(struct osd_request *or)
282 struct osd_cdb *ocdb = &or->cdb; 350 struct osd_cdb *ocdb = &or->cdb;
283 351
284 if (osd_req_is_ver1(or)) 352 if (osd_req_is_ver1(or))
285 return &ocdb->v1.sec_params; 353 return (struct osd_security_parameters *)&ocdb->v1.sec_params;
286 else 354 else
287 return &ocdb->v2.sec_params; 355 return (struct osd_security_parameters *)&ocdb->v2.sec_params;
288} 356}
289 357
290void osd_dev_init(struct osd_dev *osdd, struct scsi_device *scsi_device) 358void osd_dev_init(struct osd_dev *osdd, struct scsi_device *scsi_device)
@@ -612,9 +680,9 @@ static int _osd_req_list_objects(struct osd_request *or,
612 680
613 WARN_ON(or->in.bio); 681 WARN_ON(or->in.bio);
614 bio = bio_map_kern(q, list, len, or->alloc_flags); 682 bio = bio_map_kern(q, list, len, or->alloc_flags);
615 if (!bio) { 683 if (IS_ERR(bio)) {
616 OSD_ERR("!!! Failed to allocate list_objects BIO\n"); 684 OSD_ERR("!!! Failed to allocate list_objects BIO\n");
617 return -ENOMEM; 685 return PTR_ERR(bio);
618 } 686 }
619 687
620 bio->bi_rw &= ~(1 << BIO_RW); 688 bio->bi_rw &= ~(1 << BIO_RW);
@@ -798,7 +866,6 @@ int osd_req_add_set_attr_list(struct osd_request *or,
798 attr_last = or->set_attr.buff + total_bytes; 866 attr_last = or->set_attr.buff + total_bytes;
799 867
800 for (; nelem; --nelem) { 868 for (; nelem; --nelem) {
801 struct osd_attributes_list_element *attr;
802 unsigned elem_size = _osd_req_alist_elem_size(or, oa->len); 869 unsigned elem_size = _osd_req_alist_elem_size(or, oa->len);
803 870
804 total_bytes += elem_size; 871 total_bytes += elem_size;
@@ -811,11 +878,7 @@ int osd_req_add_set_attr_list(struct osd_request *or,
811 or->set_attr.buff + or->set_attr.total_bytes; 878 or->set_attr.buff + or->set_attr.total_bytes;
812 } 879 }
813 880
814 attr = attr_last; 881 _osd_req_alist_elem_encode(or, attr_last, oa);
815 attr->attr_page = cpu_to_be32(oa->attr_page);
816 attr->attr_id = cpu_to_be32(oa->attr_id);
817 attr->attr_bytes = cpu_to_be16(oa->len);
818 memcpy(attr->attr_val, oa->val_ptr, oa->len);
819 882
820 attr_last += elem_size; 883 attr_last += elem_size;
821 ++oa; 884 ++oa;
@@ -1070,15 +1133,10 @@ int osd_req_decode_get_attr_list(struct osd_request *or,
1070 } 1133 }
1071 1134
1072 for (n = 0; (n < *nelem) && (cur_bytes < returned_bytes); ++n) { 1135 for (n = 0; (n < *nelem) && (cur_bytes < returned_bytes); ++n) {
1073 struct osd_attributes_list_element *attr = cur_p; 1136 int inc = _osd_req_alist_elem_decode(or, cur_p, oa,
1074 unsigned inc; 1137 returned_bytes - cur_bytes);
1075 1138
1076 oa->len = be16_to_cpu(attr->attr_bytes); 1139 if (inc < 0) {
1077 inc = _osd_req_alist_elem_size(or, oa->len);
1078 OSD_DEBUG("oa->len=%d inc=%d cur_bytes=%d\n",
1079 oa->len, inc, cur_bytes);
1080 cur_bytes += inc;
1081 if (cur_bytes > returned_bytes) {
1082 OSD_ERR("BAD FOOD from target. list not valid!" 1140 OSD_ERR("BAD FOOD from target. list not valid!"
1083 "c=%d r=%d n=%d\n", 1141 "c=%d r=%d n=%d\n",
1084 cur_bytes, returned_bytes, n); 1142 cur_bytes, returned_bytes, n);
@@ -1086,10 +1144,7 @@ int osd_req_decode_get_attr_list(struct osd_request *or,
1086 break; 1144 break;
1087 } 1145 }
1088 1146
1089 oa->attr_page = be32_to_cpu(attr->attr_page); 1147 cur_bytes += inc;
1090 oa->attr_id = be32_to_cpu(attr->attr_id);
1091 oa->val_ptr = attr->attr_val;
1092
1093 cur_p += inc; 1148 cur_p += inc;
1094 ++oa; 1149 ++oa;
1095 } 1150 }
@@ -1159,6 +1214,24 @@ static int _osd_req_finalize_attr_page(struct osd_request *or)
1159 return ret; 1214 return ret;
1160} 1215}
1161 1216
1217static inline void osd_sec_parms_set_out_offset(bool is_v1,
1218 struct osd_security_parameters *sec_parms, osd_cdb_offset offset)
1219{
1220 if (is_v1)
1221 sec_parms->v1.data_out_integrity_check_offset = offset;
1222 else
1223 sec_parms->v2.data_out_integrity_check_offset = offset;
1224}
1225
1226static inline void osd_sec_parms_set_in_offset(bool is_v1,
1227 struct osd_security_parameters *sec_parms, osd_cdb_offset offset)
1228{
1229 if (is_v1)
1230 sec_parms->v1.data_in_integrity_check_offset = offset;
1231 else
1232 sec_parms->v2.data_in_integrity_check_offset = offset;
1233}
1234
1162static int _osd_req_finalize_data_integrity(struct osd_request *or, 1235static int _osd_req_finalize_data_integrity(struct osd_request *or,
1163 bool has_in, bool has_out, const u8 *cap_key) 1236 bool has_in, bool has_out, const u8 *cap_key)
1164{ 1237{
@@ -1182,8 +1255,8 @@ static int _osd_req_finalize_data_integrity(struct osd_request *or,
1182 or->out_data_integ.get_attributes_bytes = cpu_to_be64( 1255 or->out_data_integ.get_attributes_bytes = cpu_to_be64(
1183 or->enc_get_attr.total_bytes); 1256 or->enc_get_attr.total_bytes);
1184 1257
1185 sec_parms->data_out_integrity_check_offset = 1258 osd_sec_parms_set_out_offset(osd_req_is_ver1(or), sec_parms,
1186 osd_req_encode_offset(or, or->out.total_bytes, &pad); 1259 osd_req_encode_offset(or, or->out.total_bytes, &pad));
1187 1260
1188 ret = _req_append_segment(or, pad, &seg, or->out.last_seg, 1261 ret = _req_append_segment(or, pad, &seg, or->out.last_seg,
1189 &or->out); 1262 &or->out);
@@ -1203,8 +1276,8 @@ static int _osd_req_finalize_data_integrity(struct osd_request *or,
1203 }; 1276 };
1204 unsigned pad; 1277 unsigned pad;
1205 1278
1206 sec_parms->data_in_integrity_check_offset = 1279 osd_sec_parms_set_in_offset(osd_req_is_ver1(or), sec_parms,
1207 osd_req_encode_offset(or, or->in.total_bytes, &pad); 1280 osd_req_encode_offset(or, or->in.total_bytes, &pad));
1208 1281
1209 ret = _req_append_segment(or, pad, &seg, or->in.last_seg, 1282 ret = _req_append_segment(or, pad, &seg, or->in.last_seg,
1210 &or->in); 1283 &or->in);
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
index f644c9571eab..22b59e13ba83 100644
--- a/drivers/scsi/osd/osd_uld.c
+++ b/drivers/scsi/osd/osd_uld.c
@@ -173,26 +173,26 @@ static const struct file_operations osd_fops = {
173 .unlocked_ioctl = osd_uld_ioctl, 173 .unlocked_ioctl = osd_uld_ioctl,
174}; 174};
175 175
176struct osd_dev *osduld_path_lookup(const char *path) 176struct osd_dev *osduld_path_lookup(const char *name)
177{ 177{
178 struct nameidata nd; 178 struct path path;
179 struct inode *inode; 179 struct inode *inode;
180 struct cdev *cdev; 180 struct cdev *cdev;
181 struct osd_uld_device *uninitialized_var(oud); 181 struct osd_uld_device *uninitialized_var(oud);
182 int error; 182 int error;
183 183
184 if (!path || !*path) { 184 if (!name || !*name) {
185 OSD_ERR("Mount with !path || !*path\n"); 185 OSD_ERR("Mount with !path || !*path\n");
186 return ERR_PTR(-EINVAL); 186 return ERR_PTR(-EINVAL);
187 } 187 }
188 188
189 error = path_lookup(path, LOOKUP_FOLLOW, &nd); 189 error = kern_path(name, LOOKUP_FOLLOW, &path);
190 if (error) { 190 if (error) {
191 OSD_ERR("path_lookup of %s faild=>%d\n", path, error); 191 OSD_ERR("path_lookup of %s failed=>%d\n", name, error);
192 return ERR_PTR(error); 192 return ERR_PTR(error);
193 } 193 }
194 194
195 inode = nd.path.dentry->d_inode; 195 inode = path.dentry->d_inode;
196 error = -EINVAL; /* Not the right device e.g osd_uld_device */ 196 error = -EINVAL; /* Not the right device e.g osd_uld_device */
197 if (!S_ISCHR(inode->i_mode)) { 197 if (!S_ISCHR(inode->i_mode)) {
198 OSD_DEBUG("!S_ISCHR()\n"); 198 OSD_DEBUG("!S_ISCHR()\n");
@@ -202,15 +202,15 @@ struct osd_dev *osduld_path_lookup(const char *path)
202 cdev = inode->i_cdev; 202 cdev = inode->i_cdev;
203 if (!cdev) { 203 if (!cdev) {
204 OSD_ERR("Before mounting an OSD Based filesystem\n"); 204 OSD_ERR("Before mounting an OSD Based filesystem\n");
205 OSD_ERR(" user-mode must open+close the %s device\n", path); 205 OSD_ERR(" user-mode must open+close the %s device\n", name);
206 OSD_ERR(" Example: bash: echo < %s\n", path); 206 OSD_ERR(" Example: bash: echo < %s\n", name);
207 goto out; 207 goto out;
208 } 208 }
209 209
210 /* The Magic wand. Is it our char-dev */ 210 /* The Magic wand. Is it our char-dev */
211 /* TODO: Support sg devices */ 211 /* TODO: Support sg devices */
212 if (cdev->owner != THIS_MODULE) { 212 if (cdev->owner != THIS_MODULE) {
213 OSD_ERR("Error mounting %s - is not an OSD device\n", path); 213 OSD_ERR("Error mounting %s - is not an OSD device\n", name);
214 goto out; 214 goto out;
215 } 215 }
216 216
@@ -220,7 +220,7 @@ struct osd_dev *osduld_path_lookup(const char *path)
220 error = 0; 220 error = 0;
221 221
222out: 222out:
223 path_put(&nd.path); 223 path_put(&path);
224 return error ? ERR_PTR(error) : &oud->od; 224 return error ? ERR_PTR(error) : &oud->od;
225} 225}
226EXPORT_SYMBOL(osduld_path_lookup); 226EXPORT_SYMBOL(osduld_path_lookup);
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index d1cb64ad1a3f..bb218c8b6e98 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -1291,10 +1291,8 @@ static inline int scsi_target_queue_ready(struct Scsi_Host *shost,
1291 if (--starget->target_blocked == 0) { 1291 if (--starget->target_blocked == 0) {
1292 SCSI_LOG_MLQUEUE(3, starget_printk(KERN_INFO, starget, 1292 SCSI_LOG_MLQUEUE(3, starget_printk(KERN_INFO, starget,
1293 "unblocking target at zero depth\n")); 1293 "unblocking target at zero depth\n"));
1294 } else { 1294 } else
1295 blk_plug_device(sdev->request_queue);
1296 return 0; 1295 return 0;
1297 }
1298 } 1296 }
1299 1297
1300 if (scsi_target_is_busy(starget)) { 1298 if (scsi_target_is_busy(starget)) {
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index a14d245a66b8..6f51ca485f35 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -180,8 +180,6 @@ int scsi_complete_async_scans(void)
180 spin_unlock(&async_scan_lock); 180 spin_unlock(&async_scan_lock);
181 181
182 kfree(data); 182 kfree(data);
183 /* Synchronize async operations globally */
184 async_synchronize_full();
185 return 0; 183 return 0;
186} 184}
187 185
diff --git a/drivers/scsi/scsi_wait_scan.c b/drivers/scsi/scsi_wait_scan.c
index 2f21af21269a..74708fcaf82f 100644
--- a/drivers/scsi/scsi_wait_scan.c
+++ b/drivers/scsi/scsi_wait_scan.c
@@ -11,10 +11,21 @@
11 */ 11 */
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/device.h>
14#include <scsi/scsi_scan.h> 15#include <scsi/scsi_scan.h>
15 16
16static int __init wait_scan_init(void) 17static int __init wait_scan_init(void)
17{ 18{
19 /*
20 * First we need to wait for device probing to finish;
21 * the drivers we just loaded might just still be probing
22 * and might not yet have reached the scsi async scanning
23 */
24 wait_for_device_probe();
25 /*
26 * and then we wait for the actual asynchronous scsi scan
27 * to finish.
28 */
18 scsi_complete_async_scans(); 29 scsi_complete_async_scans();
19 return 0; 30 return 0;
20} 31}
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 3fcb64b91c43..84044233b637 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -50,6 +50,7 @@
50#include <linux/string_helpers.h> 50#include <linux/string_helpers.h>
51#include <linux/async.h> 51#include <linux/async.h>
52#include <asm/uaccess.h> 52#include <asm/uaccess.h>
53#include <asm/unaligned.h>
53 54
54#include <scsi/scsi.h> 55#include <scsi/scsi.h>
55#include <scsi/scsi_cmnd.h> 56#include <scsi/scsi_cmnd.h>
@@ -1344,12 +1345,8 @@ static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
1344 return -EINVAL; 1345 return -EINVAL;
1345 } 1346 }
1346 1347
1347 sector_size = (buffer[8] << 24) | (buffer[9] << 16) | 1348 sector_size = get_unaligned_be32(&buffer[8]);
1348 (buffer[10] << 8) | buffer[11]; 1349 lba = get_unaligned_be64(&buffer[0]);
1349 lba = (((u64)buffer[0] << 56) | ((u64)buffer[1] << 48) |
1350 ((u64)buffer[2] << 40) | ((u64)buffer[3] << 32) |
1351 ((u64)buffer[4] << 24) | ((u64)buffer[5] << 16) |
1352 ((u64)buffer[6] << 8) | (u64)buffer[7]);
1353 1350
1354 sd_read_protection_type(sdkp, buffer); 1351 sd_read_protection_type(sdkp, buffer);
1355 1352
@@ -1400,10 +1397,8 @@ static int read_capacity_10(struct scsi_disk *sdkp, struct scsi_device *sdp,
1400 return -EINVAL; 1397 return -EINVAL;
1401 } 1398 }
1402 1399
1403 sector_size = (buffer[4] << 24) | (buffer[5] << 16) | 1400 sector_size = get_unaligned_be32(&buffer[4]);
1404 (buffer[6] << 8) | buffer[7]; 1401 lba = get_unaligned_be32(&buffer[0]);
1405 lba = (buffer[0] << 24) | (buffer[1] << 16) |
1406 (buffer[2] << 8) | buffer[3];
1407 1402
1408 if ((sizeof(sdkp->capacity) == 4) && (lba == 0xffffffff)) { 1403 if ((sizeof(sdkp->capacity) == 4) && (lba == 0xffffffff)) {
1409 sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a " 1404 sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a "
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 82312df9b0bf..e1716f14cd47 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -179,7 +179,7 @@ typedef struct sg_device { /* holds the state of each scsi generic device */
179/* tasklet or soft irq callback */ 179/* tasklet or soft irq callback */
180static void sg_rq_end_io(struct request *rq, int uptodate); 180static void sg_rq_end_io(struct request *rq, int uptodate);
181static int sg_start_req(Sg_request *srp, unsigned char *cmd); 181static int sg_start_req(Sg_request *srp, unsigned char *cmd);
182static void sg_finish_rem_req(Sg_request * srp); 182static int sg_finish_rem_req(Sg_request * srp);
183static int sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size); 183static int sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size);
184static ssize_t sg_new_read(Sg_fd * sfp, char __user *buf, size_t count, 184static ssize_t sg_new_read(Sg_fd * sfp, char __user *buf, size_t count,
185 Sg_request * srp); 185 Sg_request * srp);
@@ -518,7 +518,7 @@ sg_new_read(Sg_fd * sfp, char __user *buf, size_t count, Sg_request * srp)
518 goto err_out; 518 goto err_out;
519 } 519 }
520err_out: 520err_out:
521 sg_finish_rem_req(srp); 521 err = sg_finish_rem_req(srp);
522 return (0 == err) ? count : err; 522 return (0 == err) ? count : err;
523} 523}
524 524
@@ -1696,9 +1696,10 @@ static int sg_start_req(Sg_request *srp, unsigned char *cmd)
1696 return res; 1696 return res;
1697} 1697}
1698 1698
1699static void 1699static int sg_finish_rem_req(Sg_request * srp)
1700sg_finish_rem_req(Sg_request * srp)
1701{ 1700{
1701 int ret = 0;
1702
1702 Sg_fd *sfp = srp->parentfp; 1703 Sg_fd *sfp = srp->parentfp;
1703 Sg_scatter_hold *req_schp = &srp->data; 1704 Sg_scatter_hold *req_schp = &srp->data;
1704 1705
@@ -1710,12 +1711,14 @@ sg_finish_rem_req(Sg_request * srp)
1710 1711
1711 if (srp->rq) { 1712 if (srp->rq) {
1712 if (srp->bio) 1713 if (srp->bio)
1713 blk_rq_unmap_user(srp->bio); 1714 ret = blk_rq_unmap_user(srp->bio);
1714 1715
1715 blk_put_request(srp->rq); 1716 blk_put_request(srp->rq);
1716 } 1717 }
1717 1718
1718 sg_remove_request(sfp, srp); 1719 sg_remove_request(sfp, srp);
1720
1721 return ret;
1719} 1722}
1720 1723
1721static int 1724static int
diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c
index d92ff512d213..291236e6e435 100644
--- a/drivers/scsi/sr_ioctl.c
+++ b/drivers/scsi/sr_ioctl.c
@@ -309,6 +309,11 @@ int sr_drive_status(struct cdrom_device_info *cdi, int slot)
309 if (0 == sr_test_unit_ready(cd->device, &sshdr)) 309 if (0 == sr_test_unit_ready(cd->device, &sshdr))
310 return CDS_DISC_OK; 310 return CDS_DISC_OK;
311 311
312 /* SK/ASC/ASCQ of 2/4/1 means "unit is becoming ready" */
313 if (scsi_sense_valid(&sshdr) && sshdr.sense_key == NOT_READY
314 && sshdr.asc == 0x04 && sshdr.ascq == 0x01)
315 return CDS_DRIVE_NOT_READY;
316
312 if (!cdrom_get_media_event(cdi, &med)) { 317 if (!cdrom_get_media_event(cdi, &med)) {
313 if (med.media_present) 318 if (med.media_present)
314 return CDS_DISC_OK; 319 return CDS_DISC_OK;
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index 7ddff3f55087..938bc1b6c3fa 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -771,8 +771,6 @@ static int pci_netmos_init(struct pci_dev *dev)
771} 771}
772 772
773/* 773/*
774 * ITE support by Niels de Vos <niels.devos@wincor-nixdorf.com>
775 *
776 * These chips are available with optionally one parallel port and up to 774 * These chips are available with optionally one parallel port and up to
777 * two serial ports. Unfortunately they all have the same product id. 775 * two serial ports. Unfortunately they all have the same product id.
778 * 776 *
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 18ba812a4f84..d86123e03391 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -166,7 +166,7 @@ static void bfin_serial_start_tx(struct uart_port *port)
166 struct tty_struct *tty = uart->port.info->port.tty; 166 struct tty_struct *tty = uart->port.info->port.tty;
167 167
168#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 168#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
169 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 169 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port) & TIOCM_CTS)) {
170 uart->scts = 0; 170 uart->scts = 0;
171 uart_handle_cts_change(&uart->port, uart->scts); 171 uart_handle_cts_change(&uart->port, uart->scts);
172 } 172 }
@@ -368,7 +368,7 @@ static irqreturn_t bfin_serial_tx_int(int irq, void *dev_id)
368 struct bfin_serial_port *uart = dev_id; 368 struct bfin_serial_port *uart = dev_id;
369 369
370#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 370#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
371 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 371 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port) & TIOCM_CTS)) {
372 uart->scts = 0; 372 uart->scts = 0;
373 uart_handle_cts_change(&uart->port, uart->scts); 373 uart_handle_cts_change(&uart->port, uart->scts);
374 } 374 }
@@ -504,7 +504,7 @@ static irqreturn_t bfin_serial_dma_tx_int(int irq, void *dev_id)
504 struct circ_buf *xmit = &uart->port.info->xmit; 504 struct circ_buf *xmit = &uart->port.info->xmit;
505 505
506#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS 506#ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
507 if (uart->scts && (!bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) { 507 if (uart->scts && !(bfin_serial_get_mctrl(&uart->port)&TIOCM_CTS)) {
508 uart->scts = 0; 508 uart->scts = 0;
509 uart_handle_cts_change(&uart->port, uart->scts); 509 uart_handle_cts_change(&uart->port, uart->scts);
510 } 510 }
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c
index 7ba7d70f04d6..7be52fe288eb 100644
--- a/drivers/serial/crisv10.c
+++ b/drivers/serial/crisv10.c
@@ -23,16 +23,18 @@ static char *serial_version = "$Revision: 1.25 $";
23#include <linux/mm.h> 23#include <linux/mm.h>
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <asm/uaccess.h>
27#include <linux/kernel.h> 26#include <linux/kernel.h>
28#include <linux/mutex.h> 27#include <linux/mutex.h>
29#include <linux/bitops.h> 28#include <linux/bitops.h>
29#include <linux/seq_file.h>
30#include <linux/delay.h>
31#include <linux/module.h>
32#include <linux/uaccess.h>
33#include <linux/io.h>
30 34
31#include <asm/io.h>
32#include <asm/irq.h> 35#include <asm/irq.h>
33#include <asm/dma.h> 36#include <asm/dma.h>
34#include <asm/system.h> 37#include <asm/system.h>
35#include <linux/delay.h>
36 38
37#include <arch/svinto.h> 39#include <arch/svinto.h>
38 40
@@ -456,7 +458,6 @@ static struct e100_serial rs_table[] = {
456 458
457#define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial)) 459#define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial))
458 460
459static struct ktermios *serial_termios[NR_PORTS];
460#ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER 461#ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER
461static struct fast_timer fast_timers[NR_PORTS]; 462static struct fast_timer fast_timers[NR_PORTS];
462#endif 463#endif
@@ -4257,151 +4258,132 @@ rs_open(struct tty_struct *tty, struct file * filp)
4257 return 0; 4258 return 0;
4258} 4259}
4259 4260
4261#ifdef CONFIG_PROC_FS
4260/* 4262/*
4261 * /proc fs routines.... 4263 * /proc fs routines....
4262 */ 4264 */
4263 4265
4264static int line_info(char *buf, struct e100_serial *info) 4266static void seq_line_info(struct seq_file *m, struct e100_serial *info)
4265{ 4267{
4266 char stat_buf[30];
4267 int ret;
4268 unsigned long tmp; 4268 unsigned long tmp;
4269 4269
4270 ret = sprintf(buf, "%d: uart:E100 port:%lX irq:%d", 4270 seq_printf(m, "%d: uart:E100 port:%lX irq:%d",
4271 info->line, (unsigned long)info->ioport, info->irq); 4271 info->line, (unsigned long)info->ioport, info->irq);
4272 4272
4273 if (!info->ioport || (info->type == PORT_UNKNOWN)) { 4273 if (!info->ioport || (info->type == PORT_UNKNOWN)) {
4274 ret += sprintf(buf+ret, "\n"); 4274 seq_printf(m, "\n");
4275 return ret; 4275 return;
4276 } 4276 }
4277 4277
4278 stat_buf[0] = 0; 4278 seq_printf(m, " baud:%d", info->baud);
4279 stat_buf[1] = 0; 4279 seq_printf(m, " tx:%lu rx:%lu",
4280 if (!E100_RTS_GET(info))
4281 strcat(stat_buf, "|RTS");
4282 if (!E100_CTS_GET(info))
4283 strcat(stat_buf, "|CTS");
4284 if (!E100_DTR_GET(info))
4285 strcat(stat_buf, "|DTR");
4286 if (!E100_DSR_GET(info))
4287 strcat(stat_buf, "|DSR");
4288 if (!E100_CD_GET(info))
4289 strcat(stat_buf, "|CD");
4290 if (!E100_RI_GET(info))
4291 strcat(stat_buf, "|RI");
4292
4293 ret += sprintf(buf+ret, " baud:%d", info->baud);
4294
4295 ret += sprintf(buf+ret, " tx:%lu rx:%lu",
4296 (unsigned long)info->icount.tx, 4280 (unsigned long)info->icount.tx,
4297 (unsigned long)info->icount.rx); 4281 (unsigned long)info->icount.rx);
4298 tmp = CIRC_CNT(info->xmit.head, info->xmit.tail, SERIAL_XMIT_SIZE); 4282 tmp = CIRC_CNT(info->xmit.head, info->xmit.tail, SERIAL_XMIT_SIZE);
4299 if (tmp) { 4283 if (tmp)
4300 ret += sprintf(buf+ret, " tx_pend:%lu/%lu", 4284 seq_printf(m, " tx_pend:%lu/%lu",
4301 (unsigned long)tmp, 4285 (unsigned long)tmp,
4302 (unsigned long)SERIAL_XMIT_SIZE); 4286 (unsigned long)SERIAL_XMIT_SIZE);
4303 }
4304 4287
4305 ret += sprintf(buf+ret, " rx_pend:%lu/%lu", 4288 seq_printf(m, " rx_pend:%lu/%lu",
4306 (unsigned long)info->recv_cnt, 4289 (unsigned long)info->recv_cnt,
4307 (unsigned long)info->max_recv_cnt); 4290 (unsigned long)info->max_recv_cnt);
4308 4291
4309#if 1 4292#if 1
4310 if (info->port.tty) { 4293 if (info->port.tty) {
4311
4312 if (info->port.tty->stopped) 4294 if (info->port.tty->stopped)
4313 ret += sprintf(buf+ret, " stopped:%i", 4295 seq_printf(m, " stopped:%i",
4314 (int)info->port.tty->stopped); 4296 (int)info->port.tty->stopped);
4315 if (info->port.tty->hw_stopped) 4297 if (info->port.tty->hw_stopped)
4316 ret += sprintf(buf+ret, " hw_stopped:%i", 4298 seq_printf(m, " hw_stopped:%i",
4317 (int)info->port.tty->hw_stopped); 4299 (int)info->port.tty->hw_stopped);
4318 } 4300 }
4319 4301
4320 { 4302 {
4321 unsigned char rstat = info->ioport[REG_STATUS]; 4303 unsigned char rstat = info->ioport[REG_STATUS];
4322 if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect) ) 4304 if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect))
4323 ret += sprintf(buf+ret, " xoff_detect:1"); 4305 seq_printf(m, " xoff_detect:1");
4324 } 4306 }
4325 4307
4326#endif 4308#endif
4327 4309
4328
4329
4330
4331 if (info->icount.frame) 4310 if (info->icount.frame)
4332 ret += sprintf(buf+ret, " fe:%lu", 4311 seq_printf(m, " fe:%lu", (unsigned long)info->icount.frame);
4333 (unsigned long)info->icount.frame);
4334 4312
4335 if (info->icount.parity) 4313 if (info->icount.parity)
4336 ret += sprintf(buf+ret, " pe:%lu", 4314 seq_printf(m, " pe:%lu", (unsigned long)info->icount.parity);
4337 (unsigned long)info->icount.parity);
4338 4315
4339 if (info->icount.brk) 4316 if (info->icount.brk)
4340 ret += sprintf(buf+ret, " brk:%lu", 4317 seq_printf(m, " brk:%lu", (unsigned long)info->icount.brk);
4341 (unsigned long)info->icount.brk);
4342 4318
4343 if (info->icount.overrun) 4319 if (info->icount.overrun)
4344 ret += sprintf(buf+ret, " oe:%lu", 4320 seq_printf(m, " oe:%lu", (unsigned long)info->icount.overrun);
4345 (unsigned long)info->icount.overrun);
4346 4321
4347 /* 4322 /*
4348 * Last thing is the RS-232 status lines 4323 * Last thing is the RS-232 status lines
4349 */ 4324 */
4350 ret += sprintf(buf+ret, " %s\n", stat_buf+1); 4325 if (!E100_RTS_GET(info))
4351 return ret; 4326 seq_puts(m, "|RTS");
4327 if (!E100_CTS_GET(info))
4328 seq_puts(m, "|CTS");
4329 if (!E100_DTR_GET(info))
4330 seq_puts(m, "|DTR");
4331 if (!E100_DSR_GET(info))
4332 seq_puts(m, "|DSR");
4333 if (!E100_CD_GET(info))
4334 seq_puts(m, "|CD");
4335 if (!E100_RI_GET(info))
4336 seq_puts(m, "|RI");
4337 seq_puts(m, "\n");
4352} 4338}
4353 4339
4354int rs_read_proc(char *page, char **start, off_t off, int count, 4340
4355 int *eof, void *data) 4341static int crisv10_proc_show(struct seq_file *m, void *v)
4356{ 4342{
4357 int i, len = 0, l; 4343 int i;
4358 off_t begin = 0;
4359 4344
4360 len += sprintf(page, "serinfo:1.0 driver:%s\n", 4345 seq_printf(m, "serinfo:1.0 driver:%s\n", serial_version);
4361 serial_version); 4346
4362 for (i = 0; i < NR_PORTS && len < 4000; i++) { 4347 for (i = 0; i < NR_PORTS; i++) {
4363 if (!rs_table[i].enabled) 4348 if (!rs_table[i].enabled)
4364 continue; 4349 continue;
4365 l = line_info(page + len, &rs_table[i]); 4350 seq_line_info(m, &rs_table[i]);
4366 len += l;
4367 if (len+begin > off+count)
4368 goto done;
4369 if (len+begin < off) {
4370 begin += len;
4371 len = 0;
4372 }
4373 } 4351 }
4374#ifdef DEBUG_LOG_INCLUDED 4352#ifdef DEBUG_LOG_INCLUDED
4375 for (i = 0; i < debug_log_pos; i++) { 4353 for (i = 0; i < debug_log_pos; i++) {
4376 len += sprintf(page + len, "%-4i %lu.%lu ", i, debug_log[i].time, timer_data_to_ns(debug_log[i].timer_data)); 4354 seq_printf(m, "%-4i %lu.%lu ",
4377 len += sprintf(page + len, debug_log[i].string, debug_log[i].value); 4355 i, debug_log[i].time,
4378 if (len+begin > off+count) 4356 timer_data_to_ns(debug_log[i].timer_data));
4379 goto done; 4357 seq_printf(m, debug_log[i].string, debug_log[i].value);
4380 if (len+begin < off) {
4381 begin += len;
4382 len = 0;
4383 }
4384 } 4358 }
4385 len += sprintf(page + len, "debug_log %i/%i %li bytes\n", 4359 seq_printf(m, "debug_log %i/%i\n", i, DEBUG_LOG_SIZE);
4386 i, DEBUG_LOG_SIZE, begin+len);
4387 debug_log_pos = 0; 4360 debug_log_pos = 0;
4388#endif 4361#endif
4362 return 0;
4363}
4389 4364
4390 *eof = 1; 4365static int crisv10_proc_open(struct inode *inode, struct file *file)
4391done: 4366{
4392 if (off >= len+begin) 4367 return single_open(file, crisv10_proc_show, NULL);
4393 return 0;
4394 *start = page + (off-begin);
4395 return ((count < begin+len-off) ? count : begin+len-off);
4396} 4368}
4397 4369
4370static const struct file_operations crisv10_proc_fops = {
4371 .owner = THIS_MODULE,
4372 .open = crisv10_proc_open,
4373 .read = seq_read,
4374 .llseek = seq_lseek,
4375 .release = single_release,
4376};
4377#endif
4378
4379
4398/* Finally, routines used to initialize the serial driver. */ 4380/* Finally, routines used to initialize the serial driver. */
4399 4381
4400static void 4382static void show_serial_version(void)
4401show_serial_version(void)
4402{ 4383{
4403 printk(KERN_INFO 4384 printk(KERN_INFO
4404 "ETRAX 100LX serial-driver %s, (c) 2000-2004 Axis Communications AB\r\n", 4385 "ETRAX 100LX serial-driver %s, "
4386 "(c) 2000-2004 Axis Communications AB\r\n",
4405 &serial_version[11]); /* "$Revision: x.yy" */ 4387 &serial_version[11]); /* "$Revision: x.yy" */
4406} 4388}
4407 4389
@@ -4425,13 +4407,14 @@ static const struct tty_operations rs_ops = {
4425 .break_ctl = rs_break, 4407 .break_ctl = rs_break,
4426 .send_xchar = rs_send_xchar, 4408 .send_xchar = rs_send_xchar,
4427 .wait_until_sent = rs_wait_until_sent, 4409 .wait_until_sent = rs_wait_until_sent,
4428 .read_proc = rs_read_proc,
4429 .tiocmget = rs_tiocmget, 4410 .tiocmget = rs_tiocmget,
4430 .tiocmset = rs_tiocmset 4411 .tiocmset = rs_tiocmset,
4412#ifdef CONFIG_PROC_FS
4413 .proc_fops = &crisv10_proc_fops,
4414#endif
4431}; 4415};
4432 4416
4433static int __init 4417static int __init rs_init(void)
4434rs_init(void)
4435{ 4418{
4436 int i; 4419 int i;
4437 struct e100_serial *info; 4420 struct e100_serial *info;
diff --git a/drivers/serial/jsm/jsm.h b/drivers/serial/jsm/jsm.h
index 8871aaa3dba6..c0a3e2734e24 100644
--- a/drivers/serial/jsm/jsm.h
+++ b/drivers/serial/jsm/jsm.h
@@ -130,8 +130,6 @@ struct jsm_board
130 struct pci_dev *pci_dev; 130 struct pci_dev *pci_dev;
131 u32 maxports; /* MAX ports this board can handle */ 131 u32 maxports; /* MAX ports this board can handle */
132 132
133 spinlock_t bd_lock; /* Used to protect board */
134
135 spinlock_t bd_intr_lock; /* Used to protect the poller tasklet and 133 spinlock_t bd_intr_lock; /* Used to protect the poller tasklet and
136 * the interrupt routine from each other. 134 * the interrupt routine from each other.
137 */ 135 */
diff --git a/drivers/serial/jsm/jsm_driver.c b/drivers/serial/jsm/jsm_driver.c
index d2d32a198629..b3604aa322a4 100644
--- a/drivers/serial/jsm/jsm_driver.c
+++ b/drivers/serial/jsm/jsm_driver.c
@@ -88,7 +88,6 @@ static int __devinit jsm_probe_one(struct pci_dev *pdev, const struct pci_device
88 else 88 else
89 brd->maxports = 2; 89 brd->maxports = 2;
90 90
91 spin_lock_init(&brd->bd_lock);
92 spin_lock_init(&brd->bd_intr_lock); 91 spin_lock_init(&brd->bd_intr_lock);
93 92
94 /* store which revision we have */ 93 /* store which revision we have */
diff --git a/drivers/serial/nwpserial.c b/drivers/serial/nwpserial.c
index 32f3eaf0d262..9e150b19d726 100644
--- a/drivers/serial/nwpserial.c
+++ b/drivers/serial/nwpserial.c
@@ -145,11 +145,13 @@ static irqreturn_t nwpserial_interrupt(int irq, void *dev_id)
145 ch = dcr_read(up->dcr_host, UART_RX); 145 ch = dcr_read(up->dcr_host, UART_RX);
146 if (up->port.ignore_status_mask != NWPSERIAL_STATUS_RXVALID) 146 if (up->port.ignore_status_mask != NWPSERIAL_STATUS_RXVALID)
147 tty_insert_flip_char(tty, ch, TTY_NORMAL); 147 tty_insert_flip_char(tty, ch, TTY_NORMAL);
148 } while (dcr_read(up->dcr_host, UART_RX) & UART_LSR_DR); 148 } while (dcr_read(up->dcr_host, UART_LSR) & UART_LSR_DR);
149 149
150 tty_flip_buffer_push(tty); 150 tty_flip_buffer_push(tty);
151 ret = IRQ_HANDLED; 151 ret = IRQ_HANDLED;
152 152
153 /* clear interrupt */
154 dcr_write(up->dcr_host, UART_IIR, 1);
153out: 155out:
154 spin_unlock(&up->port.lock); 156 spin_unlock(&up->port.lock);
155 return ret; 157 return ret;
diff --git a/drivers/serial/s3c6400.c b/drivers/serial/s3c6400.c
index 06936d13393f..3e3785233682 100644
--- a/drivers/serial/s3c6400.c
+++ b/drivers/serial/s3c6400.c
@@ -102,6 +102,7 @@ static struct s3c24xx_uart_info s3c6400_uart_inf = {
102 .name = "Samsung S3C6400 UART", 102 .name = "Samsung S3C6400 UART",
103 .type = PORT_S3C6400, 103 .type = PORT_S3C6400,
104 .fifosize = 64, 104 .fifosize = 64,
105 .has_divslot = 1,
105 .rx_fifomask = S3C2440_UFSTAT_RXMASK, 106 .rx_fifomask = S3C2440_UFSTAT_RXMASK,
106 .rx_fifoshift = S3C2440_UFSTAT_RXSHIFT, 107 .rx_fifoshift = S3C2440_UFSTAT_RXSHIFT,
107 .rx_fifofull = S3C2440_UFSTAT_RXFULL, 108 .rx_fifofull = S3C2440_UFSTAT_RXFULL,
diff --git a/drivers/serial/samsung.c b/drivers/serial/samsung.c
index 41ac94872b8d..93b5d75db126 100644
--- a/drivers/serial/samsung.c
+++ b/drivers/serial/samsung.c
@@ -127,7 +127,7 @@ static void s3c24xx_serial_stop_tx(struct uart_port *port)
127 struct s3c24xx_uart_port *ourport = to_ourport(port); 127 struct s3c24xx_uart_port *ourport = to_ourport(port);
128 128
129 if (tx_enabled(port)) { 129 if (tx_enabled(port)) {
130 disable_irq(ourport->tx_irq); 130 disable_irq_nosync(ourport->tx_irq);
131 tx_enabled(port) = 0; 131 tx_enabled(port) = 0;
132 if (port->flags & UPF_CONS_FLOW) 132 if (port->flags & UPF_CONS_FLOW)
133 s3c24xx_serial_rx_enable(port); 133 s3c24xx_serial_rx_enable(port);
@@ -154,7 +154,7 @@ static void s3c24xx_serial_stop_rx(struct uart_port *port)
154 154
155 if (rx_enabled(port)) { 155 if (rx_enabled(port)) {
156 dbg("s3c24xx_serial_stop_rx: port=%p\n", port); 156 dbg("s3c24xx_serial_stop_rx: port=%p\n", port);
157 disable_irq(ourport->rx_irq); 157 disable_irq_nosync(ourport->rx_irq);
158 rx_enabled(port) = 0; 158 rx_enabled(port) = 0;
159 } 159 }
160} 160}
@@ -508,6 +508,7 @@ s3c24xx_serial_setsource(struct uart_port *port, struct s3c24xx_uart_clksrc *c)
508struct baud_calc { 508struct baud_calc {
509 struct s3c24xx_uart_clksrc *clksrc; 509 struct s3c24xx_uart_clksrc *clksrc;
510 unsigned int calc; 510 unsigned int calc;
511 unsigned int divslot;
511 unsigned int quot; 512 unsigned int quot;
512 struct clk *src; 513 struct clk *src;
513}; 514};
@@ -517,6 +518,7 @@ static int s3c24xx_serial_calcbaud(struct baud_calc *calc,
517 struct s3c24xx_uart_clksrc *clksrc, 518 struct s3c24xx_uart_clksrc *clksrc,
518 unsigned int baud) 519 unsigned int baud)
519{ 520{
521 struct s3c24xx_uart_port *ourport = to_ourport(port);
520 unsigned long rate; 522 unsigned long rate;
521 523
522 calc->src = clk_get(port->dev, clksrc->name); 524 calc->src = clk_get(port->dev, clksrc->name);
@@ -527,8 +529,24 @@ static int s3c24xx_serial_calcbaud(struct baud_calc *calc,
527 rate /= clksrc->divisor; 529 rate /= clksrc->divisor;
528 530
529 calc->clksrc = clksrc; 531 calc->clksrc = clksrc;
530 calc->quot = (rate + (8 * baud)) / (16 * baud); 532
531 calc->calc = (rate / (calc->quot * 16)); 533 if (ourport->info->has_divslot) {
534 unsigned long div = rate / baud;
535
536 /* The UDIVSLOT register on the newer UARTs allows us to
537 * get a divisor adjustment of 1/16th on the baud clock.
538 *
539 * We don't keep the UDIVSLOT value (the 16ths we calculated
540 * by not multiplying the baud by 16) as it is easy enough
541 * to recalculate.
542 */
543
544 calc->quot = div / 16;
545 calc->calc = rate / div;
546 } else {
547 calc->quot = (rate + (8 * baud)) / (16 * baud);
548 calc->calc = (rate / (calc->quot * 16));
549 }
532 550
533 calc->quot--; 551 calc->quot--;
534 return 1; 552 return 1;
@@ -611,6 +629,30 @@ static unsigned int s3c24xx_serial_getclk(struct uart_port *port,
611 return best->quot; 629 return best->quot;
612} 630}
613 631
632/* udivslot_table[]
633 *
634 * This table takes the fractional value of the baud divisor and gives
635 * the recommended setting for the UDIVSLOT register.
636 */
637static u16 udivslot_table[16] = {
638 [0] = 0x0000,
639 [1] = 0x0080,
640 [2] = 0x0808,
641 [3] = 0x0888,
642 [4] = 0x2222,
643 [5] = 0x4924,
644 [6] = 0x4A52,
645 [7] = 0x54AA,
646 [8] = 0x5555,
647 [9] = 0xD555,
648 [10] = 0xD5D5,
649 [11] = 0xDDD5,
650 [12] = 0xDDDD,
651 [13] = 0xDFDD,
652 [14] = 0xDFDF,
653 [15] = 0xFFDF,
654};
655
614static void s3c24xx_serial_set_termios(struct uart_port *port, 656static void s3c24xx_serial_set_termios(struct uart_port *port,
615 struct ktermios *termios, 657 struct ktermios *termios,
616 struct ktermios *old) 658 struct ktermios *old)
@@ -623,6 +665,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
623 unsigned int baud, quot; 665 unsigned int baud, quot;
624 unsigned int ulcon; 666 unsigned int ulcon;
625 unsigned int umcon; 667 unsigned int umcon;
668 unsigned int udivslot = 0;
626 669
627 /* 670 /*
628 * We don't support modem control lines. 671 * We don't support modem control lines.
@@ -644,6 +687,7 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
644 /* check to see if we need to change clock source */ 687 /* check to see if we need to change clock source */
645 688
646 if (ourport->clksrc != clksrc || ourport->baudclk != clk) { 689 if (ourport->clksrc != clksrc || ourport->baudclk != clk) {
690 dbg("selecting clock %p\n", clk);
647 s3c24xx_serial_setsource(port, clksrc); 691 s3c24xx_serial_setsource(port, clksrc);
648 692
649 if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) { 693 if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {
@@ -658,6 +702,13 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
658 ourport->baudclk_rate = clk ? clk_get_rate(clk) : 0; 702 ourport->baudclk_rate = clk ? clk_get_rate(clk) : 0;
659 } 703 }
660 704
705 if (ourport->info->has_divslot) {
706 unsigned int div = ourport->baudclk_rate / baud;
707
708 udivslot = udivslot_table[div & 15];
709 dbg("udivslot = %04x (div %d)\n", udivslot, div & 15);
710 }
711
661 switch (termios->c_cflag & CSIZE) { 712 switch (termios->c_cflag & CSIZE) {
662 case CS5: 713 case CS5:
663 dbg("config: 5bits/char\n"); 714 dbg("config: 5bits/char\n");
@@ -697,12 +748,16 @@ static void s3c24xx_serial_set_termios(struct uart_port *port,
697 748
698 spin_lock_irqsave(&port->lock, flags); 749 spin_lock_irqsave(&port->lock, flags);
699 750
700 dbg("setting ulcon to %08x, brddiv to %d\n", ulcon, quot); 751 dbg("setting ulcon to %08x, brddiv to %d, udivslot %08x\n",
752 ulcon, quot, udivslot);
701 753
702 wr_regl(port, S3C2410_ULCON, ulcon); 754 wr_regl(port, S3C2410_ULCON, ulcon);
703 wr_regl(port, S3C2410_UBRDIV, quot); 755 wr_regl(port, S3C2410_UBRDIV, quot);
704 wr_regl(port, S3C2410_UMCON, umcon); 756 wr_regl(port, S3C2410_UMCON, umcon);
705 757
758 if (ourport->info->has_divslot)
759 wr_regl(port, S3C2443_DIVSLOT, udivslot);
760
706 dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n", 761 dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",
707 rd_regl(port, S3C2410_ULCON), 762 rd_regl(port, S3C2410_ULCON),
708 rd_regl(port, S3C2410_UCON), 763 rd_regl(port, S3C2410_UCON),
diff --git a/drivers/serial/samsung.h b/drivers/serial/samsung.h
index 571d6b90d206..7afb94843a08 100644
--- a/drivers/serial/samsung.h
+++ b/drivers/serial/samsung.h
@@ -21,6 +21,10 @@ struct s3c24xx_uart_info {
21 unsigned long tx_fifoshift; 21 unsigned long tx_fifoshift;
22 unsigned long tx_fifofull; 22 unsigned long tx_fifofull;
23 23
24 /* uart port features */
25
26 unsigned int has_divslot:1;
27
24 /* clock source control */ 28 /* clock source control */
25 29
26 int (*get_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk); 30 int (*get_clksrc)(struct uart_port *, struct s3c24xx_uart_clksrc *clk);
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c
index 7fb9b5c4669a..12d13d99b6f0 100644
--- a/drivers/sh/intc.c
+++ b/drivers/sh/intc.c
@@ -44,6 +44,7 @@ struct intc_handle_int {
44struct intc_desc_int { 44struct intc_desc_int {
45 struct list_head list; 45 struct list_head list;
46 struct sys_device sysdev; 46 struct sys_device sysdev;
47 pm_message_t state;
47 unsigned long *reg; 48 unsigned long *reg;
48#ifdef CONFIG_SMP 49#ifdef CONFIG_SMP
49 unsigned long *smp; 50 unsigned long *smp;
@@ -786,18 +787,44 @@ static int intc_suspend(struct sys_device *dev, pm_message_t state)
786 /* get intc controller associated with this sysdev */ 787 /* get intc controller associated with this sysdev */
787 d = container_of(dev, struct intc_desc_int, sysdev); 788 d = container_of(dev, struct intc_desc_int, sysdev);
788 789
789 /* enable wakeup irqs belonging to this intc controller */ 790 switch (state.event) {
790 for_each_irq_desc(irq, desc) { 791 case PM_EVENT_ON:
791 if ((desc->status & IRQ_WAKEUP) && (desc->chip == &d->chip)) 792 if (d->state.event != PM_EVENT_FREEZE)
792 intc_enable(irq); 793 break;
794 for_each_irq_desc(irq, desc) {
795 if (desc->chip != &d->chip)
796 continue;
797 if (desc->status & IRQ_DISABLED)
798 intc_disable(irq);
799 else
800 intc_enable(irq);
801 }
802 break;
803 case PM_EVENT_FREEZE:
804 /* nothing has to be done */
805 break;
806 case PM_EVENT_SUSPEND:
807 /* enable wakeup irqs belonging to this intc controller */
808 for_each_irq_desc(irq, desc) {
809 if ((desc->status & IRQ_WAKEUP) && (desc->chip == &d->chip))
810 intc_enable(irq);
811 }
812 break;
793 } 813 }
814 d->state = state;
794 815
795 return 0; 816 return 0;
796} 817}
797 818
819static int intc_resume(struct sys_device *dev)
820{
821 return intc_suspend(dev, PMSG_ON);
822}
823
798static struct sysdev_class intc_sysdev_class = { 824static struct sysdev_class intc_sysdev_class = {
799 .name = "intc", 825 .name = "intc",
800 .suspend = intc_suspend, 826 .suspend = intc_suspend,
827 .resume = intc_resume,
801}; 828};
802 829
803/* register this intc as sysdev to allow suspend/resume */ 830/* register this intc as sysdev to allow suspend/resume */
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index c1688c71f052..3f3c08c6ba4e 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -195,7 +195,7 @@ static void cs_deassert(struct driver_data *drv_data)
195 struct chip_data *chip = drv_data->cur_chip; 195 struct chip_data *chip = drv_data->cur_chip;
196 196
197 if (chip->cs_control) { 197 if (chip->cs_control) {
198 chip->cs_control(PXA2XX_CS_ASSERT); 198 chip->cs_control(PXA2XX_CS_DEASSERT);
199 return; 199 return;
200 } 200 }
201 201
@@ -213,7 +213,7 @@ static int flush(struct driver_data *drv_data)
213 while (read_SSSR(reg) & SSSR_RNE) { 213 while (read_SSSR(reg) & SSSR_RNE) {
214 read_SSDR(reg); 214 read_SSDR(reg);
215 } 215 }
216 } while ((read_SSSR(reg) & SSSR_BSY) && limit--); 216 } while ((read_SSSR(reg) & SSSR_BSY) && --limit);
217 write_SSSR(SSSR_ROR, reg); 217 write_SSSR(SSSR_ROR, reg);
218 218
219 return limit; 219 return limit;
@@ -484,7 +484,7 @@ static int wait_ssp_rx_stall(void const __iomem *ioaddr)
484{ 484{
485 unsigned long limit = loops_per_jiffy << 1; 485 unsigned long limit = loops_per_jiffy << 1;
486 486
487 while ((read_SSSR(ioaddr) & SSSR_BSY) && limit--) 487 while ((read_SSSR(ioaddr) & SSSR_BSY) && --limit)
488 cpu_relax(); 488 cpu_relax();
489 489
490 return limit; 490 return limit;
@@ -494,7 +494,7 @@ static int wait_dma_channel_stop(int channel)
494{ 494{
495 unsigned long limit = loops_per_jiffy << 1; 495 unsigned long limit = loops_per_jiffy << 1;
496 496
497 while (!(DCSR(channel) & DCSR_STOPSTATE) && limit--) 497 while (!(DCSR(channel) & DCSR_STOPSTATE) && --limit)
498 cpu_relax(); 498 cpu_relax();
499 499
500 return limit; 500 return limit;
@@ -1373,6 +1373,9 @@ static void cleanup(struct spi_device *spi)
1373{ 1373{
1374 struct chip_data *chip = spi_get_ctldata(spi); 1374 struct chip_data *chip = spi_get_ctldata(spi);
1375 1375
1376 if (!chip)
1377 return;
1378
1376 if (gpio_is_valid(chip->gpio_cs)) 1379 if (gpio_is_valid(chip->gpio_cs))
1377 gpio_free(chip->gpio_cs); 1380 gpio_free(chip->gpio_cs);
1378 1381
@@ -1700,6 +1703,13 @@ static int pxa2xx_spi_resume(struct platform_device *pdev)
1700 struct ssp_device *ssp = drv_data->ssp; 1703 struct ssp_device *ssp = drv_data->ssp;
1701 int status = 0; 1704 int status = 0;
1702 1705
1706 if (drv_data->rx_channel != -1)
1707 DRCMR(drv_data->ssp->drcmr_rx) =
1708 DRCMR_MAPVLD | drv_data->rx_channel;
1709 if (drv_data->tx_channel != -1)
1710 DRCMR(drv_data->ssp->drcmr_tx) =
1711 DRCMR_MAPVLD | drv_data->tx_channel;
1712
1703 /* Enable the SSP clock */ 1713 /* Enable the SSP clock */
1704 clk_enable(ssp->clk); 1714 clk_enable(ssp->clk);
1705 1715
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 643908b74bc0..8eba98c8ed1e 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -658,7 +658,7 @@ int spi_write_then_read(struct spi_device *spi,
658 658
659 int status; 659 int status;
660 struct spi_message message; 660 struct spi_message message;
661 struct spi_transfer x; 661 struct spi_transfer x[2];
662 u8 *local_buf; 662 u8 *local_buf;
663 663
664 /* Use preallocated DMA-safe buffer. We can't avoid copying here, 664 /* Use preallocated DMA-safe buffer. We can't avoid copying here,
@@ -669,9 +669,15 @@ int spi_write_then_read(struct spi_device *spi,
669 return -EINVAL; 669 return -EINVAL;
670 670
671 spi_message_init(&message); 671 spi_message_init(&message);
672 memset(&x, 0, sizeof x); 672 memset(x, 0, sizeof x);
673 x.len = n_tx + n_rx; 673 if (n_tx) {
674 spi_message_add_tail(&x, &message); 674 x[0].len = n_tx;
675 spi_message_add_tail(&x[0], &message);
676 }
677 if (n_rx) {
678 x[1].len = n_rx;
679 spi_message_add_tail(&x[1], &message);
680 }
675 681
676 /* ... unless someone else is using the pre-allocated buffer */ 682 /* ... unless someone else is using the pre-allocated buffer */
677 if (!mutex_trylock(&lock)) { 683 if (!mutex_trylock(&lock)) {
@@ -682,15 +688,15 @@ int spi_write_then_read(struct spi_device *spi,
682 local_buf = buf; 688 local_buf = buf;
683 689
684 memcpy(local_buf, txbuf, n_tx); 690 memcpy(local_buf, txbuf, n_tx);
685 x.tx_buf = local_buf; 691 x[0].tx_buf = local_buf;
686 x.rx_buf = local_buf; 692 x[1].rx_buf = local_buf + n_tx;
687 693
688 /* do the i/o */ 694 /* do the i/o */
689 status = spi_sync(spi, &message); 695 status = spi_sync(spi, &message);
690 if (status == 0) 696 if (status == 0)
691 memcpy(rxbuf, x.rx_buf + n_tx, n_rx); 697 memcpy(rxbuf, x[1].rx_buf, n_rx);
692 698
693 if (x.tx_buf == buf) 699 if (x[0].tx_buf == buf)
694 mutex_unlock(&lock); 700 mutex_unlock(&lock);
695 else 701 else
696 kfree(local_buf); 702 kfree(local_buf);
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c
index 79e90fed27d3..299d29d1dadb 100644
--- a/drivers/staging/android/binder.c
+++ b/drivers/staging/android/binder.c
@@ -41,6 +41,8 @@ static int binder_last_id;
41static struct proc_dir_entry *binder_proc_dir_entry_root; 41static struct proc_dir_entry *binder_proc_dir_entry_root;
42static struct proc_dir_entry *binder_proc_dir_entry_proc; 42static struct proc_dir_entry *binder_proc_dir_entry_proc;
43static struct hlist_head binder_dead_nodes; 43static struct hlist_head binder_dead_nodes;
44static HLIST_HEAD(binder_deferred_list);
45static DEFINE_MUTEX(binder_deferred_lock);
44 46
45static int binder_read_proc_proc( 47static int binder_read_proc_proc(
46 char *page, char **start, off_t off, int count, int *eof, void *data); 48 char *page, char **start, off_t off, int count, int *eof, void *data);
@@ -54,11 +56,7 @@ static int binder_read_proc_proc(
54#define SZ_4M 0x400000 56#define SZ_4M 0x400000
55#endif 57#endif
56 58
57#ifndef __i386__
58#define FORBIDDEN_MMAP_FLAGS (VM_WRITE | VM_EXEC)
59#else
60#define FORBIDDEN_MMAP_FLAGS (VM_WRITE) 59#define FORBIDDEN_MMAP_FLAGS (VM_WRITE)
61#endif
62 60
63#define BINDER_SMALL_BUF_SIZE (PAGE_SIZE * 64) 61#define BINDER_SMALL_BUF_SIZE (PAGE_SIZE * 64)
64 62
@@ -236,6 +234,12 @@ struct binder_buffer {
236 uint8_t data[0]; 234 uint8_t data[0];
237}; 235};
238 236
237enum {
238 BINDER_DEFERRED_PUT_FILES = 0x01,
239 BINDER_DEFERRED_FLUSH = 0x02,
240 BINDER_DEFERRED_RELEASE = 0x04,
241};
242
239struct binder_proc { 243struct binder_proc {
240 struct hlist_node proc_node; 244 struct hlist_node proc_node;
241 struct rb_root threads; 245 struct rb_root threads;
@@ -245,8 +249,11 @@ struct binder_proc {
245 int pid; 249 int pid;
246 struct vm_area_struct *vma; 250 struct vm_area_struct *vma;
247 struct task_struct *tsk; 251 struct task_struct *tsk;
252 struct files_struct *files;
253 struct hlist_node deferred_work_node;
254 int deferred_work;
248 void *buffer; 255 void *buffer;
249 size_t user_buffer_offset; 256 ptrdiff_t user_buffer_offset;
250 257
251 struct list_head buffers; 258 struct list_head buffers;
252 struct rb_root free_buffers; 259 struct rb_root free_buffers;
@@ -310,12 +317,14 @@ struct binder_transaction {
310 uid_t sender_euid; 317 uid_t sender_euid;
311}; 318};
312 319
320static void binder_defer_work(struct binder_proc *proc, int defer);
321
313/* 322/*
314 * copied from get_unused_fd_flags 323 * copied from get_unused_fd_flags
315 */ 324 */
316int task_get_unused_fd_flags(struct task_struct *tsk, int flags) 325int task_get_unused_fd_flags(struct binder_proc *proc, int flags)
317{ 326{
318 struct files_struct *files = get_files_struct(tsk); 327 struct files_struct *files = proc->files;
319 int fd, error; 328 int fd, error;
320 struct fdtable *fdt; 329 struct fdtable *fdt;
321 unsigned long rlim_cur; 330 unsigned long rlim_cur;
@@ -337,9 +346,9 @@ repeat:
337 * will limit the total number of files that can be opened. 346 * will limit the total number of files that can be opened.
338 */ 347 */
339 rlim_cur = 0; 348 rlim_cur = 0;
340 if (lock_task_sighand(tsk, &irqs)) { 349 if (lock_task_sighand(proc->tsk, &irqs)) {
341 rlim_cur = tsk->signal->rlim[RLIMIT_NOFILE].rlim_cur; 350 rlim_cur = proc->tsk->signal->rlim[RLIMIT_NOFILE].rlim_cur;
342 unlock_task_sighand(tsk, &irqs); 351 unlock_task_sighand(proc->tsk, &irqs);
343 } 352 }
344 if (fd >= rlim_cur) 353 if (fd >= rlim_cur)
345 goto out; 354 goto out;
@@ -375,7 +384,6 @@ repeat:
375 384
376out: 385out:
377 spin_unlock(&files->file_lock); 386 spin_unlock(&files->file_lock);
378 put_files_struct(files);
379 return error; 387 return error;
380} 388}
381 389
@@ -383,9 +391,9 @@ out:
383 * copied from fd_install 391 * copied from fd_install
384 */ 392 */
385static void task_fd_install( 393static void task_fd_install(
386 struct task_struct *tsk, unsigned int fd, struct file *file) 394 struct binder_proc *proc, unsigned int fd, struct file *file)
387{ 395{
388 struct files_struct *files = get_files_struct(tsk); 396 struct files_struct *files = proc->files;
389 struct fdtable *fdt; 397 struct fdtable *fdt;
390 398
391 if (files == NULL) 399 if (files == NULL)
@@ -396,7 +404,6 @@ static void task_fd_install(
396 BUG_ON(fdt->fd[fd] != NULL); 404 BUG_ON(fdt->fd[fd] != NULL);
397 rcu_assign_pointer(fdt->fd[fd], file); 405 rcu_assign_pointer(fdt->fd[fd], file);
398 spin_unlock(&files->file_lock); 406 spin_unlock(&files->file_lock);
399 put_files_struct(files);
400} 407}
401 408
402/* 409/*
@@ -413,10 +420,10 @@ static void __put_unused_fd(struct files_struct *files, unsigned int fd)
413/* 420/*
414 * copied from sys_close 421 * copied from sys_close
415 */ 422 */
416static long task_close_fd(struct task_struct *tsk, unsigned int fd) 423static long task_close_fd(struct binder_proc *proc, unsigned int fd)
417{ 424{
418 struct file *filp; 425 struct file *filp;
419 struct files_struct *files = get_files_struct(tsk); 426 struct files_struct *files = proc->files;
420 struct fdtable *fdt; 427 struct fdtable *fdt;
421 int retval; 428 int retval;
422 429
@@ -443,12 +450,10 @@ static long task_close_fd(struct task_struct *tsk, unsigned int fd)
443 retval == -ERESTART_RESTARTBLOCK)) 450 retval == -ERESTART_RESTARTBLOCK))
444 retval = -EINTR; 451 retval = -EINTR;
445 452
446 put_files_struct(files);
447 return retval; 453 return retval;
448 454
449out_unlock: 455out_unlock:
450 spin_unlock(&files->file_lock); 456 spin_unlock(&files->file_lock);
451 put_files_struct(files);
452 return -EBADF; 457 return -EBADF;
453} 458}
454 459
@@ -618,7 +623,8 @@ static int binder_update_page_range(struct binder_proc *proc, int allocate,
618 proc->pid, page_addr); 623 proc->pid, page_addr);
619 goto err_map_kernel_failed; 624 goto err_map_kernel_failed;
620 } 625 }
621 user_page_addr = (size_t)page_addr + proc->user_buffer_offset; 626 user_page_addr =
627 (uintptr_t)page_addr + proc->user_buffer_offset;
622 ret = vm_insert_page(vma, user_page_addr, page[0]); 628 ret = vm_insert_page(vma, user_page_addr, page[0]);
623 if (ret) { 629 if (ret) {
624 printk(KERN_ERR "binder: %d: binder_alloc_buf failed " 630 printk(KERN_ERR "binder: %d: binder_alloc_buf failed "
@@ -639,7 +645,7 @@ free_range:
639 page_addr -= PAGE_SIZE) { 645 page_addr -= PAGE_SIZE) {
640 page = &proc->pages[(page_addr - proc->buffer) / PAGE_SIZE]; 646 page = &proc->pages[(page_addr - proc->buffer) / PAGE_SIZE];
641 if (vma) 647 if (vma)
642 zap_page_range(vma, (size_t)page_addr + 648 zap_page_range(vma, (uintptr_t)page_addr +
643 proc->user_buffer_offset, PAGE_SIZE, NULL); 649 proc->user_buffer_offset, PAGE_SIZE, NULL);
644err_vm_insert_page_failed: 650err_vm_insert_page_failed:
645 unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE); 651 unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE);
@@ -720,18 +726,19 @@ static struct binder_buffer *binder_alloc_buf(struct binder_proc *proc,
720 "er %p size %zd\n", proc->pid, size, buffer, buffer_size); 726 "er %p size %zd\n", proc->pid, size, buffer, buffer_size);
721 727
722 has_page_addr = 728 has_page_addr =
723 (void *)(((size_t)buffer->data + buffer_size) & PAGE_MASK); 729 (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK);
724 if (n == NULL) { 730 if (n == NULL) {
725 if (size + sizeof(struct binder_buffer) + 4 >= buffer_size) 731 if (size + sizeof(struct binder_buffer) + 4 >= buffer_size)
726 buffer_size = size; /* no room for other buffers */ 732 buffer_size = size; /* no room for other buffers */
727 else 733 else
728 buffer_size = size + sizeof(struct binder_buffer); 734 buffer_size = size + sizeof(struct binder_buffer);
729 } 735 }
730 end_page_addr = (void *)PAGE_ALIGN((size_t)buffer->data + buffer_size); 736 end_page_addr =
737 (void *)PAGE_ALIGN((uintptr_t)buffer->data + buffer_size);
731 if (end_page_addr > has_page_addr) 738 if (end_page_addr > has_page_addr)
732 end_page_addr = has_page_addr; 739 end_page_addr = has_page_addr;
733 if (binder_update_page_range(proc, 1, 740 if (binder_update_page_range(proc, 1,
734 (void *)PAGE_ALIGN((size_t)buffer->data), end_page_addr, NULL)) 741 (void *)PAGE_ALIGN((uintptr_t)buffer->data), end_page_addr, NULL))
735 return NULL; 742 return NULL;
736 743
737 rb_erase(best_fit, &proc->free_buffers); 744 rb_erase(best_fit, &proc->free_buffers);
@@ -762,12 +769,12 @@ static struct binder_buffer *binder_alloc_buf(struct binder_proc *proc,
762 769
763static void *buffer_start_page(struct binder_buffer *buffer) 770static void *buffer_start_page(struct binder_buffer *buffer)
764{ 771{
765 return (void *)((size_t)buffer & PAGE_MASK); 772 return (void *)((uintptr_t)buffer & PAGE_MASK);
766} 773}
767 774
768static void *buffer_end_page(struct binder_buffer *buffer) 775static void *buffer_end_page(struct binder_buffer *buffer)
769{ 776{
770 return (void *)(((size_t)(buffer + 1) - 1) & PAGE_MASK); 777 return (void *)(((uintptr_t)(buffer + 1) - 1) & PAGE_MASK);
771} 778}
772 779
773static void binder_delete_free_buffer( 780static void binder_delete_free_buffer(
@@ -845,8 +852,8 @@ static void binder_free_buf(
845 } 852 }
846 853
847 binder_update_page_range(proc, 0, 854 binder_update_page_range(proc, 0,
848 (void *)PAGE_ALIGN((size_t)buffer->data), 855 (void *)PAGE_ALIGN((uintptr_t)buffer->data),
849 (void *)(((size_t)buffer->data + buffer_size) & PAGE_MASK), 856 (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK),
850 NULL); 857 NULL);
851 rb_erase(&buffer->rb_node, &proc->allocated_buffers); 858 rb_erase(&buffer->rb_node, &proc->allocated_buffers);
852 buffer->free = 1; 859 buffer->free = 1;
@@ -1345,6 +1352,17 @@ binder_transaction(struct binder_proc *proc, struct binder_thread *thread,
1345 if (!(tr->flags & TF_ONE_WAY) && thread->transaction_stack) { 1352 if (!(tr->flags & TF_ONE_WAY) && thread->transaction_stack) {
1346 struct binder_transaction *tmp; 1353 struct binder_transaction *tmp;
1347 tmp = thread->transaction_stack; 1354 tmp = thread->transaction_stack;
1355 if (tmp->to_thread != thread) {
1356 binder_user_error("binder: %d:%d got new "
1357 "transaction with bad transaction stack"
1358 ", transaction %d has target %d:%d\n",
1359 proc->pid, thread->pid, tmp->debug_id,
1360 tmp->to_proc ? tmp->to_proc->pid : 0,
1361 tmp->to_thread ?
1362 tmp->to_thread->pid : 0);
1363 return_error = BR_FAILED_REPLY;
1364 goto err_bad_call_stack;
1365 }
1348 while (tmp) { 1366 while (tmp) {
1349 if (tmp->from && tmp->from->proc == target_proc) 1367 if (tmp->from && tmp->from->proc == target_proc)
1350 target_thread = tmp->from; 1368 target_thread = tmp->from;
@@ -1434,10 +1452,19 @@ binder_transaction(struct binder_proc *proc, struct binder_thread *thread,
1434 return_error = BR_FAILED_REPLY; 1452 return_error = BR_FAILED_REPLY;
1435 goto err_copy_data_failed; 1453 goto err_copy_data_failed;
1436 } 1454 }
1455 if (!IS_ALIGNED(tr->offsets_size, sizeof(size_t))) {
1456 binder_user_error("binder: %d:%d got transaction with "
1457 "invalid offsets size, %zd\n",
1458 proc->pid, thread->pid, tr->offsets_size);
1459 return_error = BR_FAILED_REPLY;
1460 goto err_bad_offset;
1461 }
1437 off_end = (void *)offp + tr->offsets_size; 1462 off_end = (void *)offp + tr->offsets_size;
1438 for (; offp < off_end; offp++) { 1463 for (; offp < off_end; offp++) {
1439 struct flat_binder_object *fp; 1464 struct flat_binder_object *fp;
1440 if (*offp > t->buffer->data_size - sizeof(*fp)) { 1465 if (*offp > t->buffer->data_size - sizeof(*fp) ||
1466 t->buffer->data_size < sizeof(*fp) ||
1467 !IS_ALIGNED(*offp, sizeof(void *))) {
1441 binder_user_error("binder: %d:%d got transaction with " 1468 binder_user_error("binder: %d:%d got transaction with "
1442 "invalid offset, %zd\n", 1469 "invalid offset, %zd\n",
1443 proc->pid, thread->pid, *offp); 1470 proc->pid, thread->pid, *offp);
@@ -1544,13 +1571,13 @@ binder_transaction(struct binder_proc *proc, struct binder_thread *thread,
1544 return_error = BR_FAILED_REPLY; 1571 return_error = BR_FAILED_REPLY;
1545 goto err_fget_failed; 1572 goto err_fget_failed;
1546 } 1573 }
1547 target_fd = task_get_unused_fd_flags(target_proc->tsk, O_CLOEXEC); 1574 target_fd = task_get_unused_fd_flags(target_proc, O_CLOEXEC);
1548 if (target_fd < 0) { 1575 if (target_fd < 0) {
1549 fput(file); 1576 fput(file);
1550 return_error = BR_FAILED_REPLY; 1577 return_error = BR_FAILED_REPLY;
1551 goto err_get_unused_fd_failed; 1578 goto err_get_unused_fd_failed;
1552 } 1579 }
1553 task_fd_install(target_proc->tsk, target_fd, file); 1580 task_fd_install(target_proc, target_fd, file);
1554 if (binder_debug_mask & BINDER_DEBUG_TRANSACTION) 1581 if (binder_debug_mask & BINDER_DEBUG_TRANSACTION)
1555 printk(KERN_INFO " fd %ld -> %d\n", fp->handle, target_fd); 1582 printk(KERN_INFO " fd %ld -> %d\n", fp->handle, target_fd);
1556 /* TODO: fput? */ 1583 /* TODO: fput? */
@@ -1655,7 +1682,9 @@ binder_transaction_buffer_release(struct binder_proc *proc, struct binder_buffer
1655 off_end = (void *)offp + buffer->offsets_size; 1682 off_end = (void *)offp + buffer->offsets_size;
1656 for (; offp < off_end; offp++) { 1683 for (; offp < off_end; offp++) {
1657 struct flat_binder_object *fp; 1684 struct flat_binder_object *fp;
1658 if (*offp > buffer->data_size - sizeof(*fp)) { 1685 if (*offp > buffer->data_size - sizeof(*fp) ||
1686 buffer->data_size < sizeof(*fp) ||
1687 !IS_ALIGNED(*offp, sizeof(void *))) {
1659 printk(KERN_ERR "binder: transaction release %d bad" 1688 printk(KERN_ERR "binder: transaction release %d bad"
1660 "offset %zd, size %zd\n", debug_id, *offp, buffer->data_size); 1689 "offset %zd, size %zd\n", debug_id, *offp, buffer->data_size);
1661 continue; 1690 continue;
@@ -1691,7 +1720,7 @@ binder_transaction_buffer_release(struct binder_proc *proc, struct binder_buffer
1691 if (binder_debug_mask & BINDER_DEBUG_TRANSACTION) 1720 if (binder_debug_mask & BINDER_DEBUG_TRANSACTION)
1692 printk(KERN_INFO " fd %ld\n", fp->handle); 1721 printk(KERN_INFO " fd %ld\n", fp->handle);
1693 if (failed_at) 1722 if (failed_at)
1694 task_close_fd(proc->tsk, fp->handle); 1723 task_close_fd(proc, fp->handle);
1695 break; 1724 break;
1696 1725
1697 default: 1726 default:
@@ -2340,7 +2369,7 @@ retry:
2340 2369
2341 tr.data_size = t->buffer->data_size; 2370 tr.data_size = t->buffer->data_size;
2342 tr.offsets_size = t->buffer->offsets_size; 2371 tr.offsets_size = t->buffer->offsets_size;
2343 tr.data.ptr.buffer = (void *)((void *)t->buffer->data + proc->user_buffer_offset); 2372 tr.data.ptr.buffer = (void *)t->buffer->data + proc->user_buffer_offset;
2344 tr.data.ptr.offsets = tr.data.ptr.buffer + ALIGN(t->buffer->data_size, sizeof(void *)); 2373 tr.data.ptr.offsets = tr.data.ptr.buffer + ALIGN(t->buffer->data_size, sizeof(void *));
2345 2374
2346 if (put_user(cmd, (uint32_t __user *)ptr)) 2375 if (put_user(cmd, (uint32_t __user *)ptr))
@@ -2656,6 +2685,7 @@ static void binder_vma_open(struct vm_area_struct *vma)
2656 (unsigned long)pgprot_val(vma->vm_page_prot)); 2685 (unsigned long)pgprot_val(vma->vm_page_prot));
2657 dump_stack(); 2686 dump_stack();
2658} 2687}
2688
2659static void binder_vma_close(struct vm_area_struct *vma) 2689static void binder_vma_close(struct vm_area_struct *vma)
2660{ 2690{
2661 struct binder_proc *proc = vma->vm_private_data; 2691 struct binder_proc *proc = vma->vm_private_data;
@@ -2666,6 +2696,7 @@ static void binder_vma_close(struct vm_area_struct *vma)
2666 (vma->vm_end - vma->vm_start) / SZ_1K, vma->vm_flags, 2696 (vma->vm_end - vma->vm_start) / SZ_1K, vma->vm_flags,
2667 (unsigned long)pgprot_val(vma->vm_page_prot)); 2697 (unsigned long)pgprot_val(vma->vm_page_prot));
2668 proc->vma = NULL; 2698 proc->vma = NULL;
2699 binder_defer_work(proc, BINDER_DEFERRED_PUT_FILES);
2669} 2700}
2670 2701
2671static struct vm_operations_struct binder_vm_ops = { 2702static struct vm_operations_struct binder_vm_ops = {
@@ -2698,6 +2729,12 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
2698 } 2729 }
2699 vma->vm_flags = (vma->vm_flags | VM_DONTCOPY) & ~VM_MAYWRITE; 2730 vma->vm_flags = (vma->vm_flags | VM_DONTCOPY) & ~VM_MAYWRITE;
2700 2731
2732 if (proc->buffer) {
2733 ret = -EBUSY;
2734 failure_string = "already mapped";
2735 goto err_already_mapped;
2736 }
2737
2701 area = get_vm_area(vma->vm_end - vma->vm_start, VM_IOREMAP); 2738 area = get_vm_area(vma->vm_end - vma->vm_start, VM_IOREMAP);
2702 if (area == NULL) { 2739 if (area == NULL) {
2703 ret = -ENOMEM; 2740 ret = -ENOMEM;
@@ -2705,7 +2742,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
2705 goto err_get_vm_area_failed; 2742 goto err_get_vm_area_failed;
2706 } 2743 }
2707 proc->buffer = area->addr; 2744 proc->buffer = area->addr;
2708 proc->user_buffer_offset = vma->vm_start - (size_t)proc->buffer; 2745 proc->user_buffer_offset = vma->vm_start - (uintptr_t)proc->buffer;
2709 2746
2710#ifdef CONFIG_CPU_CACHE_VIPT 2747#ifdef CONFIG_CPU_CACHE_VIPT
2711 if (cache_is_vipt_aliasing()) { 2748 if (cache_is_vipt_aliasing()) {
@@ -2738,6 +2775,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
2738 binder_insert_free_buffer(proc, buffer); 2775 binder_insert_free_buffer(proc, buffer);
2739 proc->free_async_space = proc->buffer_size / 2; 2776 proc->free_async_space = proc->buffer_size / 2;
2740 barrier(); 2777 barrier();
2778 proc->files = get_files_struct(current);
2741 proc->vma = vma; 2779 proc->vma = vma;
2742 2780
2743 /*printk(KERN_INFO "binder_mmap: %d %lx-%lx maps %p\n", proc->pid, vma->vm_start, vma->vm_end, proc->buffer);*/ 2781 /*printk(KERN_INFO "binder_mmap: %d %lx-%lx maps %p\n", proc->pid, vma->vm_start, vma->vm_end, proc->buffer);*/
@@ -2745,10 +2783,12 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
2745 2783
2746err_alloc_small_buf_failed: 2784err_alloc_small_buf_failed:
2747 kfree(proc->pages); 2785 kfree(proc->pages);
2786 proc->pages = NULL;
2748err_alloc_pages_failed: 2787err_alloc_pages_failed:
2749 vfree(proc->buffer); 2788 vfree(proc->buffer);
2789 proc->buffer = NULL;
2750err_get_vm_area_failed: 2790err_get_vm_area_failed:
2751 mutex_unlock(&binder_lock); 2791err_already_mapped:
2752err_bad_arg: 2792err_bad_arg:
2753 printk(KERN_ERR "binder_mmap: %d %lx-%lx %s failed %d\n", proc->pid, vma->vm_start, vma->vm_end, failure_string, ret); 2793 printk(KERN_ERR "binder_mmap: %d %lx-%lx %s failed %d\n", proc->pid, vma->vm_start, vma->vm_end, failure_string, ret);
2754 return ret; 2794 return ret;
@@ -2780,6 +2820,7 @@ static int binder_open(struct inode *nodp, struct file *filp)
2780 if (binder_proc_dir_entry_proc) { 2820 if (binder_proc_dir_entry_proc) {
2781 char strbuf[11]; 2821 char strbuf[11];
2782 snprintf(strbuf, sizeof(strbuf), "%u", proc->pid); 2822 snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
2823 remove_proc_entry(strbuf, binder_proc_dir_entry_proc);
2783 create_proc_read_entry(strbuf, S_IRUGO, binder_proc_dir_entry_proc, binder_read_proc_proc, proc); 2824 create_proc_read_entry(strbuf, S_IRUGO, binder_proc_dir_entry_proc, binder_read_proc_proc, proc);
2784 } 2825 }
2785 2826
@@ -2788,11 +2829,17 @@ static int binder_open(struct inode *nodp, struct file *filp)
2788 2829
2789static int binder_flush(struct file *filp, fl_owner_t id) 2830static int binder_flush(struct file *filp, fl_owner_t id)
2790{ 2831{
2791 struct rb_node *n;
2792 struct binder_proc *proc = filp->private_data; 2832 struct binder_proc *proc = filp->private_data;
2793 int wake_count = 0;
2794 2833
2795 mutex_lock(&binder_lock); 2834 binder_defer_work(proc, BINDER_DEFERRED_FLUSH);
2835
2836 return 0;
2837}
2838
2839static void binder_deferred_flush(struct binder_proc *proc)
2840{
2841 struct rb_node *n;
2842 int wake_count = 0;
2796 for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) { 2843 for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) {
2797 struct binder_thread *thread = rb_entry(n, struct binder_thread, rb_node); 2844 struct binder_thread *thread = rb_entry(n, struct binder_thread, rb_node);
2798 thread->looper |= BINDER_LOOPER_STATE_NEED_RETURN; 2845 thread->looper |= BINDER_LOOPER_STATE_NEED_RETURN;
@@ -2802,28 +2849,35 @@ static int binder_flush(struct file *filp, fl_owner_t id)
2802 } 2849 }
2803 } 2850 }
2804 wake_up_interruptible_all(&proc->wait); 2851 wake_up_interruptible_all(&proc->wait);
2805 mutex_unlock(&binder_lock);
2806 2852
2807 if (binder_debug_mask & BINDER_DEBUG_OPEN_CLOSE) 2853 if (binder_debug_mask & BINDER_DEBUG_OPEN_CLOSE)
2808 printk(KERN_INFO "binder_flush: %d woke %d threads\n", proc->pid, wake_count); 2854 printk(KERN_INFO "binder_flush: %d woke %d threads\n", proc->pid, wake_count);
2809
2810 return 0;
2811} 2855}
2812 2856
2813static int binder_release(struct inode *nodp, struct file *filp) 2857static int binder_release(struct inode *nodp, struct file *filp)
2814{ 2858{
2815 struct hlist_node *pos;
2816 struct binder_transaction *t;
2817 struct rb_node *n;
2818 struct binder_proc *proc = filp->private_data; 2859 struct binder_proc *proc = filp->private_data;
2819 int threads, nodes, incoming_refs, outgoing_refs, buffers, active_transactions, page_count;
2820
2821 if (binder_proc_dir_entry_proc) { 2860 if (binder_proc_dir_entry_proc) {
2822 char strbuf[11]; 2861 char strbuf[11];
2823 snprintf(strbuf, sizeof(strbuf), "%u", proc->pid); 2862 snprintf(strbuf, sizeof(strbuf), "%u", proc->pid);
2824 remove_proc_entry(strbuf, binder_proc_dir_entry_proc); 2863 remove_proc_entry(strbuf, binder_proc_dir_entry_proc);
2825 } 2864 }
2826 mutex_lock(&binder_lock); 2865
2866 binder_defer_work(proc, BINDER_DEFERRED_RELEASE);
2867
2868 return 0;
2869}
2870
2871static void binder_deferred_release(struct binder_proc *proc)
2872{
2873 struct hlist_node *pos;
2874 struct binder_transaction *t;
2875 struct rb_node *n;
2876 int threads, nodes, incoming_refs, outgoing_refs, buffers, active_transactions, page_count;
2877
2878 BUG_ON(proc->vma);
2879 BUG_ON(proc->files);
2880
2827 hlist_del(&proc->proc_node); 2881 hlist_del(&proc->proc_node);
2828 if (binder_context_mgr_node && binder_context_mgr_node->proc == proc) { 2882 if (binder_context_mgr_node && binder_context_mgr_node->proc == proc) {
2829 if (binder_debug_mask & BINDER_DEBUG_DEAD_BINDER) 2883 if (binder_debug_mask & BINDER_DEBUG_DEAD_BINDER)
@@ -2897,7 +2951,6 @@ static int binder_release(struct inode *nodp, struct file *filp)
2897 } 2951 }
2898 2952
2899 binder_stats.obj_deleted[BINDER_STAT_PROC]++; 2953 binder_stats.obj_deleted[BINDER_STAT_PROC]++;
2900 mutex_unlock(&binder_lock);
2901 2954
2902 page_count = 0; 2955 page_count = 0;
2903 if (proc->pages) { 2956 if (proc->pages) {
@@ -2921,7 +2974,57 @@ static int binder_release(struct inode *nodp, struct file *filp)
2921 proc->pid, threads, nodes, incoming_refs, outgoing_refs, active_transactions, buffers, page_count); 2974 proc->pid, threads, nodes, incoming_refs, outgoing_refs, active_transactions, buffers, page_count);
2922 2975
2923 kfree(proc); 2976 kfree(proc);
2924 return 0; 2977}
2978
2979static void binder_deferred_func(struct work_struct *work)
2980{
2981 struct binder_proc *proc;
2982 struct files_struct *files;
2983
2984 int defer;
2985 do {
2986 mutex_lock(&binder_lock);
2987 mutex_lock(&binder_deferred_lock);
2988 if (!hlist_empty(&binder_deferred_list)) {
2989 proc = hlist_entry(binder_deferred_list.first,
2990 struct binder_proc, deferred_work_node);
2991 hlist_del_init(&proc->deferred_work_node);
2992 defer = proc->deferred_work;
2993 proc->deferred_work = 0;
2994 } else {
2995 proc = NULL;
2996 defer = 0;
2997 }
2998 mutex_unlock(&binder_deferred_lock);
2999
3000 files = NULL;
3001 if (defer & BINDER_DEFERRED_PUT_FILES)
3002 if ((files = proc->files))
3003 proc->files = NULL;
3004
3005 if (defer & BINDER_DEFERRED_FLUSH)
3006 binder_deferred_flush(proc);
3007
3008 if (defer & BINDER_DEFERRED_RELEASE)
3009 binder_deferred_release(proc); /* frees proc */
3010
3011 mutex_unlock(&binder_lock);
3012 if (files)
3013 put_files_struct(files);
3014 } while (proc);
3015}
3016static DECLARE_WORK(binder_deferred_work, binder_deferred_func);
3017
3018static void binder_defer_work(struct binder_proc *proc, int defer)
3019{
3020 mutex_lock(&binder_deferred_lock);
3021 proc->deferred_work |= defer;
3022 if (hlist_unhashed(&proc->deferred_work_node)) {
3023 hlist_add_head(&proc->deferred_work_node,
3024 &binder_deferred_list);
3025 schedule_work(&binder_deferred_work);
3026 }
3027 mutex_unlock(&binder_deferred_lock);
2925} 3028}
2926 3029
2927static char *print_binder_transaction(char *buf, char *end, const char *prefix, struct binder_transaction *t) 3030static char *print_binder_transaction(char *buf, char *end, const char *prefix, struct binder_transaction *t)
diff --git a/drivers/staging/at76_usb/at76_usb.c b/drivers/staging/at76_usb/at76_usb.c
index 6f6e36a3bd9f..c8af9a868d62 100644
--- a/drivers/staging/at76_usb/at76_usb.c
+++ b/drivers/staging/at76_usb/at76_usb.c
@@ -5259,6 +5259,18 @@ static int at76_alloc_urbs(struct at76_priv *priv,
5259 return 0; 5259 return 0;
5260} 5260}
5261 5261
5262static const struct net_device_ops at76_netdev_ops = {
5263 .ndo_open = at76_open,
5264 .ndo_stop = at76_stop,
5265 .ndo_get_stats = at76_get_stats,
5266 .ndo_start_xmit = at76_tx,
5267 .ndo_tx_timeout = at76_tx_timeout,
5268 .ndo_set_multicast_list = at76_set_multicast,
5269 .ndo_set_mac_address = at76_set_mac_address,
5270 .ndo_validate_addr = eth_validate_addr,
5271 .ndo_change_mtu = eth_change_mtu,
5272};
5273
5262/* Register network device and initialize the hardware */ 5274/* Register network device and initialize the hardware */
5263static int at76_init_new_device(struct at76_priv *priv, 5275static int at76_init_new_device(struct at76_priv *priv,
5264 struct usb_interface *interface) 5276 struct usb_interface *interface)
@@ -5303,21 +5315,15 @@ static int at76_init_new_device(struct at76_priv *priv,
5303 priv->scan_mode = SCAN_TYPE_ACTIVE; 5315 priv->scan_mode = SCAN_TYPE_ACTIVE;
5304 5316
5305 netdev->flags &= ~IFF_MULTICAST; /* not yet or never */ 5317 netdev->flags &= ~IFF_MULTICAST; /* not yet or never */
5306 netdev->open = at76_open; 5318 netdev->netdev_ops = &at76_netdev_ops;
5307 netdev->stop = at76_stop;
5308 netdev->get_stats = at76_get_stats;
5309 netdev->ethtool_ops = &at76_ethtool_ops; 5319 netdev->ethtool_ops = &at76_ethtool_ops;
5310 5320
5311 /* Add pointers to enable iwspy support. */ 5321 /* Add pointers to enable iwspy support. */
5312 priv->wireless_data.spy_data = &priv->spy_data; 5322 priv->wireless_data.spy_data = &priv->spy_data;
5313 netdev->wireless_data = &priv->wireless_data; 5323 netdev->wireless_data = &priv->wireless_data;
5314 5324
5315 netdev->hard_start_xmit = at76_tx;
5316 netdev->tx_timeout = at76_tx_timeout;
5317 netdev->watchdog_timeo = 2 * HZ; 5325 netdev->watchdog_timeo = 2 * HZ;
5318 netdev->wireless_handlers = &at76_handler_def; 5326 netdev->wireless_handlers = &at76_handler_def;
5319 netdev->set_multicast_list = at76_set_multicast;
5320 netdev->set_mac_address = at76_set_mac_address;
5321 dev_alloc_name(netdev, "wlan%d"); 5327 dev_alloc_name(netdev, "wlan%d");
5322 5328
5323 ret = register_netdev(priv->netdev); 5329 ret = register_netdev(priv->netdev);
diff --git a/drivers/staging/b3dfg/b3dfg.c b/drivers/staging/b3dfg/b3dfg.c
index 0348072b3ab5..75ebe338c6f2 100644
--- a/drivers/staging/b3dfg/b3dfg.c
+++ b/drivers/staging/b3dfg/b3dfg.c
@@ -1000,7 +1000,7 @@ static int __devinit b3dfg_probe(struct pci_dev *pdev,
1000 1000
1001 pci_set_master(pdev); 1001 pci_set_master(pdev);
1002 1002
1003 r = pci_set_dma_mask(pdev, DMA_32BIT_MASK); 1003 r = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
1004 if (r) { 1004 if (r) {
1005 dev_err(&pdev->dev, "no usable DMA configuration\n"); 1005 dev_err(&pdev->dev, "no usable DMA configuration\n");
1006 goto err_free_res; 1006 goto err_free_res;
diff --git a/drivers/staging/comedi/TODO b/drivers/staging/comedi/TODO
index 557812958464..15c9348fb938 100644
--- a/drivers/staging/comedi/TODO
+++ b/drivers/staging/comedi/TODO
@@ -11,4 +11,3 @@ Please send patches to Greg Kroah-Hartman <greg@kroah.com> and
11copy: 11copy:
12 Ian Abbott <abbotti@mev.co.uk> 12 Ian Abbott <abbotti@mev.co.uk>
13 Frank Mori Hess <fmhess@users.sourceforge.net> 13 Frank Mori Hess <fmhess@users.sourceforge.net>
14 David Schleef <ds@schleef.org>
diff --git a/drivers/staging/epl/VirtualEthernetLinux.c b/drivers/staging/epl/VirtualEthernetLinux.c
index 21206c4d22ff..077724a556cc 100644
--- a/drivers/staging/epl/VirtualEthernetLinux.c
+++ b/drivers/staging/epl/VirtualEthernetLinux.c
@@ -284,6 +284,17 @@ static tEplKernel VEthRecvFrame(tEplFrameInfo * pFrameInfo_p)
284 return Ret; 284 return Ret;
285} 285}
286 286
287static const struct net_device_ops epl_netdev_ops = {
288 .ndo_open = VEthOpen,
289 .ndo_stop = VEthClose,
290 .ndo_get_stats = VEthGetStats,
291 .ndo_start_xmit = VEthXmit,
292 .ndo_tx_timeout = VEthTimeout,
293 .ndo_change_mtu = eth_change_mtu,
294 .ndo_set_mac_address = eth_mac_addr,
295 .ndo_validate_addr = eth_validate_addr,
296};
297
287tEplKernel VEthAddInstance(tEplDllkInitParam *pInitParam_p) 298tEplKernel VEthAddInstance(tEplDllkInitParam *pInitParam_p)
288{ 299{
289 tEplKernel Ret = kEplSuccessful; 300 tEplKernel Ret = kEplSuccessful;
@@ -299,11 +310,7 @@ tEplKernel VEthAddInstance(tEplDllkInitParam *pInitParam_p)
299 goto Exit; 310 goto Exit;
300 } 311 }
301 312
302 pVEthNetDevice_g->open = VEthOpen; 313 pVEthNetDevice_g->netdev_ops = &epl_netdev_ops;
303 pVEthNetDevice_g->stop = VEthClose;
304 pVEthNetDevice_g->get_stats = VEthGetStats;
305 pVEthNetDevice_g->hard_start_xmit = VEthXmit;
306 pVEthNetDevice_g->tx_timeout = VEthTimeout;
307 pVEthNetDevice_g->watchdog_timeo = EPL_VETH_TX_TIMEOUT; 314 pVEthNetDevice_g->watchdog_timeo = EPL_VETH_TX_TIMEOUT;
308 pVEthNetDevice_g->destructor = free_netdev; 315 pVEthNetDevice_g->destructor = free_netdev;
309 316
diff --git a/drivers/staging/et131x/et131x_netdev.c b/drivers/staging/et131x/et131x_netdev.c
index de65972ff362..951c73d5db20 100644
--- a/drivers/staging/et131x/et131x_netdev.c
+++ b/drivers/staging/et131x/et131x_netdev.c
@@ -112,6 +112,19 @@ void et131x_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp);
112void et131x_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid); 112void et131x_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid);
113void et131x_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid); 113void et131x_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid);
114 114
115static const struct net_device_ops et131x_netdev_ops = {
116 .ndo_open = et131x_open,
117 .ndo_stop = et131x_close,
118 .ndo_start_xmit = et131x_tx,
119 .ndo_set_multicast_list = et131x_multicast,
120 .ndo_tx_timeout = et131x_tx_timeout,
121 .ndo_change_mtu = et131x_change_mtu,
122 .ndo_set_mac_address = et131x_set_mac_addr,
123 .ndo_validate_addr = eth_validate_addr,
124 .ndo_get_stats = et131x_stats,
125 .ndo_do_ioctl = et131x_ioctl,
126};
127
115/** 128/**
116 * et131x_device_alloc 129 * et131x_device_alloc
117 * 130 *
@@ -142,16 +155,8 @@ struct net_device *et131x_device_alloc(void)
142 */ 155 */
143 //netdev->init = &et131x_init; 156 //netdev->init = &et131x_init;
144 //netdev->set_config = &et131x_config; 157 //netdev->set_config = &et131x_config;
145 netdev->get_stats = &et131x_stats;
146 netdev->open = &et131x_open;
147 netdev->stop = &et131x_close;
148 netdev->do_ioctl = &et131x_ioctl;
149 netdev->set_multicast_list = &et131x_multicast;
150 netdev->hard_start_xmit = &et131x_tx;
151 netdev->tx_timeout = &et131x_tx_timeout;
152 netdev->watchdog_timeo = ET131X_TX_TIMEOUT; 158 netdev->watchdog_timeo = ET131X_TX_TIMEOUT;
153 netdev->change_mtu = &et131x_change_mtu; 159 netdev->netdev_ops = &et131x_netdev_ops;
154 netdev->set_mac_address = &et131x_set_mac_addr;
155 160
156 //netdev->ethtool_ops = &et131x_ethtool_ops; 161 //netdev->ethtool_ops = &et131x_ethtool_ops;
157 162
diff --git a/drivers/staging/go7007/go7007-driver.c b/drivers/staging/go7007/go7007-driver.c
index 58bfc8d81b3b..77b1e769ac92 100644
--- a/drivers/staging/go7007/go7007-driver.c
+++ b/drivers/staging/go7007/go7007-driver.c
@@ -191,8 +191,10 @@ int go7007_reset_encoder(struct go7007 *go)
191/* 191/*
192 * Attempt to instantiate an I2C client by ID, probably loading a module. 192 * Attempt to instantiate an I2C client by ID, probably loading a module.
193 */ 193 */
194static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr) 194static int init_i2c_module(struct i2c_adapter *adapter, const char *type,
195 int id, int addr)
195{ 196{
197 struct i2c_board_info info;
196 char *modname; 198 char *modname;
197 199
198 switch (id) { 200 switch (id) {
@@ -226,7 +228,11 @@ static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr)
226 } 228 }
227 if (modname != NULL) 229 if (modname != NULL)
228 request_module(modname); 230 request_module(modname);
229 if (wis_i2c_probe_device(adapter, id, addr) == 1) 231
232 memset(&info, 0, sizeof(struct i2c_board_info));
233 info.addr = addr;
234 strlcpy(info.type, type, I2C_NAME_SIZE);
235 if (!i2c_new_device(adapter, &info))
230 return 0; 236 return 0;
231 if (modname != NULL) 237 if (modname != NULL)
232 printk(KERN_INFO 238 printk(KERN_INFO
@@ -266,23 +272,9 @@ int go7007_register_encoder(struct go7007 *go)
266 if (go->i2c_adapter_online) { 272 if (go->i2c_adapter_online) {
267 for (i = 0; i < go->board_info->num_i2c_devs; ++i) 273 for (i = 0; i < go->board_info->num_i2c_devs; ++i)
268 init_i2c_module(&go->i2c_adapter, 274 init_i2c_module(&go->i2c_adapter,
275 go->board_info->i2c_devs[i].type,
269 go->board_info->i2c_devs[i].id, 276 go->board_info->i2c_devs[i].id,
270 go->board_info->i2c_devs[i].addr); 277 go->board_info->i2c_devs[i].addr);
271#ifdef TUNER_SET_TYPE_ADDR
272 if (go->tuner_type >= 0) {
273 struct tuner_setup tun_setup = {
274 .mode_mask = T_ANALOG_TV,
275 .addr = ADDR_UNSET,
276 .type = go->tuner_type
277 };
278 i2c_clients_command(&go->i2c_adapter,
279 TUNER_SET_TYPE_ADDR, &tun_setup);
280 }
281#else
282 if (go->tuner_type >= 0)
283 i2c_clients_command(&go->i2c_adapter,
284 TUNER_SET_TYPE, &go->tuner_type);
285#endif
286 if (go->board_id == GO7007_BOARDID_ADLINK_MPG24) 278 if (go->board_id == GO7007_BOARDID_ADLINK_MPG24)
287 i2c_clients_command(&go->i2c_adapter, 279 i2c_clients_command(&go->i2c_adapter,
288 DECODER_SET_CHANNEL, &go->channel_number); 280 DECODER_SET_CHANNEL, &go->channel_number);
diff --git a/drivers/staging/go7007/go7007-i2c.c b/drivers/staging/go7007/go7007-i2c.c
index cd55b76eabc7..c82867fdd28d 100644
--- a/drivers/staging/go7007/go7007-i2c.c
+++ b/drivers/staging/go7007/go7007-i2c.c
@@ -31,87 +31,6 @@
31#include "go7007-priv.h" 31#include "go7007-priv.h"
32#include "wis-i2c.h" 32#include "wis-i2c.h"
33 33
34/************** Registration interface for I2C client drivers **************/
35
36/* Since there's no way to auto-probe the I2C devices connected to the I2C
37 * bus on the go7007, we have this silly little registration system that
38 * client drivers can use to register their I2C driver ID and their
39 * detect_client function (the one that's normally passed to i2c_probe).
40 *
41 * When a new go7007 device is connected, we can look up in a board info
42 * table by the USB or PCI vendor/product/revision ID to determine
43 * which I2C client module to load. The client driver module will register
44 * itself here, and then we can call the registered detect_client function
45 * to force-load a new client at the address listed in the board info table.
46 *
47 * Really the I2C subsystem should have a way to force-load I2C client
48 * drivers when we have a priori knowledge of what's on the bus, especially
49 * since the existing I2C auto-probe mechanism is so hokey, but we'll use
50 * our own mechanism for the time being. */
51
52struct wis_i2c_client_driver {
53 unsigned int id;
54 found_proc found_proc;
55 struct list_head list;
56};
57
58static LIST_HEAD(i2c_client_drivers);
59static DECLARE_MUTEX(i2c_client_driver_list_lock);
60
61/* Client drivers register here by their I2C driver ID */
62int wis_i2c_add_driver(unsigned int id, found_proc found_proc)
63{
64 struct wis_i2c_client_driver *driver;
65
66 driver = kmalloc(sizeof(struct wis_i2c_client_driver), GFP_KERNEL);
67 if (driver == NULL)
68 return -ENOMEM;
69 driver->id = id;
70 driver->found_proc = found_proc;
71
72 down(&i2c_client_driver_list_lock);
73 list_add_tail(&driver->list, &i2c_client_drivers);
74 up(&i2c_client_driver_list_lock);
75
76 return 0;
77}
78EXPORT_SYMBOL(wis_i2c_add_driver);
79
80void wis_i2c_del_driver(found_proc found_proc)
81{
82 struct wis_i2c_client_driver *driver, *next;
83
84 down(&i2c_client_driver_list_lock);
85 list_for_each_entry_safe(driver, next, &i2c_client_drivers, list)
86 if (driver->found_proc == found_proc) {
87 list_del(&driver->list);
88 kfree(driver);
89 }
90 up(&i2c_client_driver_list_lock);
91}
92EXPORT_SYMBOL(wis_i2c_del_driver);
93
94/* The main go7007 driver calls this to instantiate a client by driver
95 * ID and bus address, which are both stored in the board info table */
96int wis_i2c_probe_device(struct i2c_adapter *adapter,
97 unsigned int id, int addr)
98{
99 struct wis_i2c_client_driver *driver;
100 int found = 0;
101
102 if (addr < 0 || addr > 0x7f)
103 return -1;
104 down(&i2c_client_driver_list_lock);
105 list_for_each_entry(driver, &i2c_client_drivers, list)
106 if (driver->id == id) {
107 if (driver->found_proc(adapter, addr, 0) == 0)
108 found = 1;
109 break;
110 }
111 up(&i2c_client_driver_list_lock);
112 return found;
113}
114
115/********************* Driver for on-board I2C adapter *********************/ 34/********************* Driver for on-board I2C adapter *********************/
116 35
117/* #define GO7007_I2C_DEBUG */ 36/* #define GO7007_I2C_DEBUG */
@@ -287,9 +206,7 @@ static struct i2c_algorithm go7007_algo = {
287 206
288static struct i2c_adapter go7007_adap_templ = { 207static struct i2c_adapter go7007_adap_templ = {
289 .owner = THIS_MODULE, 208 .owner = THIS_MODULE,
290 .class = I2C_CLASS_TV_ANALOG,
291 .name = "WIS GO7007SB", 209 .name = "WIS GO7007SB",
292 .id = I2C_ALGO_GO7007,
293 .algo = &go7007_algo, 210 .algo = &go7007_algo,
294}; 211};
295 212
diff --git a/drivers/staging/go7007/go7007-priv.h b/drivers/staging/go7007/go7007-priv.h
index 372f1f1c09b2..178d18119faa 100644
--- a/drivers/staging/go7007/go7007-priv.h
+++ b/drivers/staging/go7007/go7007-priv.h
@@ -87,6 +87,7 @@ struct go7007_board_info {
87 int audio_main_div; 87 int audio_main_div;
88 int num_i2c_devs; 88 int num_i2c_devs;
89 struct { 89 struct {
90 const char *type;
90 int id; 91 int id;
91 int addr; 92 int addr;
92 } i2c_devs[4]; 93 } i2c_devs[4];
diff --git a/drivers/staging/go7007/go7007-usb.c b/drivers/staging/go7007/go7007-usb.c
index 83eec920c7d3..aa4a9e0b9954 100644
--- a/drivers/staging/go7007/go7007-usb.c
+++ b/drivers/staging/go7007/go7007-usb.c
@@ -91,6 +91,7 @@ static struct go7007_usb_board board_matrix_ii = {
91 .num_i2c_devs = 1, 91 .num_i2c_devs = 1,
92 .i2c_devs = { 92 .i2c_devs = {
93 { 93 {
94 .type = "wis_saa7115",
94 .id = I2C_DRIVERID_WIS_SAA7115, 95 .id = I2C_DRIVERID_WIS_SAA7115,
95 .addr = 0x20, 96 .addr = 0x20,
96 }, 97 },
@@ -127,6 +128,7 @@ static struct go7007_usb_board board_matrix_reload = {
127 .num_i2c_devs = 1, 128 .num_i2c_devs = 1,
128 .i2c_devs = { 129 .i2c_devs = {
129 { 130 {
131 .type = "wis_saa7113",
130 .id = I2C_DRIVERID_WIS_SAA7113, 132 .id = I2C_DRIVERID_WIS_SAA7113,
131 .addr = 0x25, 133 .addr = 0x25,
132 }, 134 },
@@ -164,6 +166,7 @@ static struct go7007_usb_board board_star_trek = {
164 .num_i2c_devs = 1, 166 .num_i2c_devs = 1,
165 .i2c_devs = { 167 .i2c_devs = {
166 { 168 {
169 .type = "wis_saa7115",
167 .id = I2C_DRIVERID_WIS_SAA7115, 170 .id = I2C_DRIVERID_WIS_SAA7115,
168 .addr = 0x20, 171 .addr = 0x20,
169 }, 172 },
@@ -209,14 +212,17 @@ static struct go7007_usb_board board_px_tv402u = {
209 .num_i2c_devs = 3, 212 .num_i2c_devs = 3,
210 .i2c_devs = { 213 .i2c_devs = {
211 { 214 {
215 .type = "wis_saa7115",
212 .id = I2C_DRIVERID_WIS_SAA7115, 216 .id = I2C_DRIVERID_WIS_SAA7115,
213 .addr = 0x20, 217 .addr = 0x20,
214 }, 218 },
215 { 219 {
220 .type = "wis_uda1342",
216 .id = I2C_DRIVERID_WIS_UDA1342, 221 .id = I2C_DRIVERID_WIS_UDA1342,
217 .addr = 0x1a, 222 .addr = 0x1a,
218 }, 223 },
219 { 224 {
225 .type = "wis_sony_tuner",
220 .id = I2C_DRIVERID_WIS_SONY_TUNER, 226 .id = I2C_DRIVERID_WIS_SONY_TUNER,
221 .addr = 0x60, 227 .addr = 0x60,
222 }, 228 },
@@ -264,6 +270,7 @@ static struct go7007_usb_board board_xmen = {
264 .num_i2c_devs = 1, 270 .num_i2c_devs = 1,
265 .i2c_devs = { 271 .i2c_devs = {
266 { 272 {
273 .type = "wis_ov7640",
267 .id = I2C_DRIVERID_WIS_OV7640, 274 .id = I2C_DRIVERID_WIS_OV7640,
268 .addr = 0x21, 275 .addr = 0x21,
269 }, 276 },
@@ -296,6 +303,7 @@ static struct go7007_usb_board board_matrix_revolution = {
296 .num_i2c_devs = 1, 303 .num_i2c_devs = 1,
297 .i2c_devs = { 304 .i2c_devs = {
298 { 305 {
306 .type = "wis_tw9903",
299 .id = I2C_DRIVERID_WIS_TW9903, 307 .id = I2C_DRIVERID_WIS_TW9903,
300 .addr = 0x44, 308 .addr = 0x44,
301 }, 309 },
@@ -385,6 +393,7 @@ static struct go7007_usb_board board_adlink_mpg24 = {
385 .num_i2c_devs = 1, 393 .num_i2c_devs = 1,
386 .i2c_devs = { 394 .i2c_devs = {
387 { 395 {
396 .type = "wis_twTW2804",
388 .id = I2C_DRIVERID_WIS_TW2804, 397 .id = I2C_DRIVERID_WIS_TW2804,
389 .addr = 0x00, /* yes, really */ 398 .addr = 0x00, /* yes, really */
390 }, 399 },
@@ -415,8 +424,9 @@ static struct go7007_usb_board board_sensoray_2250 = {
415 .num_i2c_devs = 1, 424 .num_i2c_devs = 1,
416 .i2c_devs = { 425 .i2c_devs = {
417 { 426 {
427 .type = "s2250_board",
418 .id = I2C_DRIVERID_S2250, 428 .id = I2C_DRIVERID_S2250,
419 .addr = 0x34, 429 .addr = 0x43,
420 }, 430 },
421 }, 431 },
422 .num_inputs = 2, 432 .num_inputs = 2,
@@ -943,9 +953,7 @@ static struct i2c_algorithm go7007_usb_algo = {
943 953
944static struct i2c_adapter go7007_usb_adap_templ = { 954static struct i2c_adapter go7007_usb_adap_templ = {
945 .owner = THIS_MODULE, 955 .owner = THIS_MODULE,
946 .class = I2C_CLASS_TV_ANALOG,
947 .name = "WIS GO7007SB EZ-USB", 956 .name = "WIS GO7007SB EZ-USB",
948 .id = I2C_ALGO_GO7007_USB,
949 .algo = &go7007_usb_algo, 957 .algo = &go7007_usb_algo,
950}; 958};
951 959
diff --git a/drivers/staging/go7007/s2250-board.c b/drivers/staging/go7007/s2250-board.c
index d333ea2cd774..1706fbf06847 100644
--- a/drivers/staging/go7007/s2250-board.c
+++ b/drivers/staging/go7007/s2250-board.c
@@ -28,7 +28,6 @@ extern int s2250loader_init(void);
28extern void s2250loader_cleanup(void); 28extern void s2250loader_cleanup(void);
29 29
30#define TLV320_ADDRESS 0x34 30#define TLV320_ADDRESS 0x34
31#define S2250_VIDDEC 0x86
32#define VPX322_ADDR_ANALOGCONTROL1 0x02 31#define VPX322_ADDR_ANALOGCONTROL1 0x02
33#define VPX322_ADDR_BRIGHTNESS0 0x0127 32#define VPX322_ADDR_BRIGHTNESS0 0x0127
34#define VPX322_ADDR_BRIGHTNESS1 0x0131 33#define VPX322_ADDR_BRIGHTNESS1 0x0131
@@ -123,6 +122,7 @@ struct s2250 {
123 int hue; 122 int hue;
124 int reg12b_val; 123 int reg12b_val;
125 int audio_input; 124 int audio_input;
125 struct i2c_client *audio;
126}; 126};
127 127
128/* from go7007-usb.c which is Copyright (C) 2005-2006 Micronas USA Inc.*/ 128/* from go7007-usb.c which is Copyright (C) 2005-2006 Micronas USA Inc.*/
@@ -452,16 +452,15 @@ static int s2250_command(struct i2c_client *client,
452 { 452 {
453 struct v4l2_audio *audio = arg; 453 struct v4l2_audio *audio = arg;
454 454
455 client->addr = TLV320_ADDRESS;
456 switch (audio->index) { 455 switch (audio->index) {
457 case 0: 456 case 0:
458 write_reg(client, 0x08, 0x02); /* Line In */ 457 write_reg(dec->audio, 0x08, 0x02); /* Line In */
459 break; 458 break;
460 case 1: 459 case 1:
461 write_reg(client, 0x08, 0x04); /* Mic */ 460 write_reg(dec->audio, 0x08, 0x04); /* Mic */
462 break; 461 break;
463 case 2: 462 case 2:
464 write_reg(client, 0x08, 0x05); /* Mic Boost */ 463 write_reg(dec->audio, 0x08, 0x05); /* Mic Boost */
465 break; 464 break;
466 default: 465 default:
467 return -EINVAL; 466 return -EINVAL;
@@ -477,31 +476,23 @@ static int s2250_command(struct i2c_client *client,
477 return 0; 476 return 0;
478} 477}
479 478
480static struct i2c_driver s2250_driver; 479static int s2250_probe(struct i2c_client *client,
481 480 const struct i2c_device_id *id)
482static struct i2c_client s2250_client_templ = {
483 .name = "Sensoray 2250",
484 .driver = &s2250_driver,
485};
486
487static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
488{ 481{
489 struct i2c_client *client; 482 struct i2c_client *audio;
483 struct i2c_adapter *adapter = client->adapter;
490 struct s2250 *dec; 484 struct s2250 *dec;
491 u8 *data; 485 u8 *data;
492 struct go7007 *go = i2c_get_adapdata(adapter); 486 struct go7007 *go = i2c_get_adapdata(adapter);
493 struct go7007_usb *usb = go->hpi_context; 487 struct go7007_usb *usb = go->hpi_context;
494 488
495 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL); 489 audio = i2c_new_dummy(adapter, TLV320_ADDRESS >> 1);
496 if (client == NULL) 490 if (audio == NULL)
497 return -ENOMEM; 491 return -ENOMEM;
498 memcpy(client, &s2250_client_templ,
499 sizeof(s2250_client_templ));
500 client->adapter = adapter;
501 492
502 dec = kmalloc(sizeof(struct s2250), GFP_KERNEL); 493 dec = kmalloc(sizeof(struct s2250), GFP_KERNEL);
503 if (dec == NULL) { 494 if (dec == NULL) {
504 kfree(client); 495 i2c_unregister_device(audio);
505 return -ENOMEM; 496 return -ENOMEM;
506 } 497 }
507 498
@@ -510,7 +501,7 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
510 dec->contrast = 50; 501 dec->contrast = 50;
511 dec->saturation = 50; 502 dec->saturation = 50;
512 dec->hue = 0; 503 dec->hue = 0;
513 client->addr = TLV320_ADDRESS; 504 dec->audio = audio;
514 i2c_set_clientdata(client, dec); 505 i2c_set_clientdata(client, dec);
515 506
516 printk(KERN_DEBUG 507 printk(KERN_DEBUG
@@ -518,28 +509,25 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
518 adapter->name); 509 adapter->name);
519 510
520 /* initialize the audio */ 511 /* initialize the audio */
521 client->addr = TLV320_ADDRESS; 512 if (write_regs(audio, aud_regs) < 0) {
522 if (write_regs(client, aud_regs) < 0) {
523 printk(KERN_ERR 513 printk(KERN_ERR
524 "s2250: error initializing audio\n"); 514 "s2250: error initializing audio\n");
525 kfree(client); 515 i2c_unregister_device(audio);
526 kfree(dec); 516 kfree(dec);
527 return 0; 517 return 0;
528 } 518 }
529 client->addr = S2250_VIDDEC;
530 i2c_set_clientdata(client, dec);
531 519
532 if (write_regs(client, vid_regs) < 0) { 520 if (write_regs(client, vid_regs) < 0) {
533 printk(KERN_ERR 521 printk(KERN_ERR
534 "s2250: error initializing decoder\n"); 522 "s2250: error initializing decoder\n");
535 kfree(client); 523 i2c_unregister_device(audio);
536 kfree(dec); 524 kfree(dec);
537 return 0; 525 return 0;
538 } 526 }
539 if (write_regs_fp(client, vid_regs_fp) < 0) { 527 if (write_regs_fp(client, vid_regs_fp) < 0) {
540 printk(KERN_ERR 528 printk(KERN_ERR
541 "s2250: error initializing decoder\n"); 529 "s2250: error initializing decoder\n");
542 kfree(client); 530 i2c_unregister_device(audio);
543 kfree(dec); 531 kfree(dec);
544 return 0; 532 return 0;
545 } 533 }
@@ -575,32 +563,33 @@ static int s2250_detect(struct i2c_adapter *adapter, int addr, int kind)
575 up(&usb->i2c_lock); 563 up(&usb->i2c_lock);
576 } 564 }
577 565
578 i2c_attach_client(client);
579 printk("s2250: initialized successfully\n"); 566 printk("s2250: initialized successfully\n");
580 return 0; 567 return 0;
581} 568}
582 569
583static int s2250_detach(struct i2c_client *client) 570static int s2250_remove(struct i2c_client *client)
584{ 571{
585 struct s2250 *dec = i2c_get_clientdata(client); 572 struct s2250 *dec = i2c_get_clientdata(client);
586 int r;
587
588 r = i2c_detach_client(client);
589 if (r < 0)
590 return r;
591 573
592 kfree(client); 574 i2c_set_clientdata(client, NULL);
575 i2c_unregister_device(dec->audio);
593 kfree(dec); 576 kfree(dec);
594 return 0; 577 return 0;
595} 578}
596 579
580static struct i2c_device_id s2250_id[] = {
581 { "s2250_board", 0 },
582 { }
583};
584
597static struct i2c_driver s2250_driver = { 585static struct i2c_driver s2250_driver = {
598 .driver = { 586 .driver = {
599 .name = "Sensoray 2250 board driver", 587 .name = "Sensoray 2250 board driver",
600 }, 588 },
601 .id = I2C_DRIVERID_S2250, 589 .probe = s2250_probe,
602 .detach_client = s2250_detach, 590 .remove = s2250_remove,
603 .command = s2250_command, 591 .command = s2250_command,
592 .id_table = s2250_id,
604}; 593};
605 594
606static int __init s2250_init(void) 595static int __init s2250_init(void)
@@ -613,13 +602,13 @@ static int __init s2250_init(void)
613 602
614 r = i2c_add_driver(&s2250_driver); 603 r = i2c_add_driver(&s2250_driver);
615 if (r < 0) 604 if (r < 0)
616 return r; 605 s2250loader_cleanup();
617 return wis_i2c_add_driver(s2250_driver.id, s2250_detect); 606
607 return r;
618} 608}
619 609
620static void __exit s2250_cleanup(void) 610static void __exit s2250_cleanup(void)
621{ 611{
622 wis_i2c_del_driver(s2250_detect);
623 i2c_del_driver(&s2250_driver); 612 i2c_del_driver(&s2250_driver);
624 613
625 s2250loader_cleanup(); 614 s2250loader_cleanup();
diff --git a/drivers/staging/go7007/wis-i2c.h b/drivers/staging/go7007/wis-i2c.h
index 431f41dd3966..3c2b9be455df 100644
--- a/drivers/staging/go7007/wis-i2c.h
+++ b/drivers/staging/go7007/wis-i2c.h
@@ -24,21 +24,12 @@
24#define I2C_DRIVERID_WIS_OV7640 0xf0f5 24#define I2C_DRIVERID_WIS_OV7640 0xf0f5
25#define I2C_DRIVERID_WIS_TW2804 0xf0f6 25#define I2C_DRIVERID_WIS_TW2804 0xf0f6
26#define I2C_DRIVERID_S2250 0xf0f7 26#define I2C_DRIVERID_S2250 0xf0f7
27#define I2C_ALGO_GO7007 0xf00000
28#define I2C_ALGO_GO7007_USB 0xf10000
29 27
30/* Flag to indicate that the client needs to be accessed with SCCB semantics */ 28/* Flag to indicate that the client needs to be accessed with SCCB semantics */
31/* We re-use the I2C_M_TEN value so the flag passes through the masks in the 29/* We re-use the I2C_M_TEN value so the flag passes through the masks in the
32 * core I2C code. Major kludge, but the I2C layer ain't exactly flexible. */ 30 * core I2C code. Major kludge, but the I2C layer ain't exactly flexible. */
33#define I2C_CLIENT_SCCB 0x10 31#define I2C_CLIENT_SCCB 0x10
34 32
35typedef int (*found_proc) (struct i2c_adapter *, int, int);
36int wis_i2c_add_driver(unsigned int id, found_proc found_proc);
37void wis_i2c_del_driver(found_proc found_proc);
38
39int wis_i2c_probe_device(struct i2c_adapter *adapter,
40 unsigned int id, int addr);
41
42/* Definitions for new video decoder commands */ 33/* Definitions for new video decoder commands */
43 34
44struct video_decoder_resolution { 35struct video_decoder_resolution {
diff --git a/drivers/staging/go7007/wis-ov7640.c b/drivers/staging/go7007/wis-ov7640.c
index 2f9efca04606..04d6d3a498a3 100644
--- a/drivers/staging/go7007/wis-ov7640.c
+++ b/drivers/staging/go7007/wis-ov7640.c
@@ -50,76 +50,54 @@ static int write_regs(struct i2c_client *client, u8 *regs)
50 return 0; 50 return 0;
51} 51}
52 52
53static struct i2c_driver wis_ov7640_driver; 53static int wis_ov7640_probe(struct i2c_client *client,
54 54 const struct i2c_device_id *id)
55static struct i2c_client wis_ov7640_client_templ = {
56 .name = "OV7640 (WIS)",
57 .driver = &wis_ov7640_driver,
58};
59
60static int wis_ov7640_detect(struct i2c_adapter *adapter, int addr, int kind)
61{ 55{
62 struct i2c_client *client; 56 struct i2c_adapter *adapter = client->adapter;
63 57
64 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 58 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
65 return 0; 59 return -ENODEV;
66 60
67 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
68 if (client == NULL)
69 return -ENOMEM;
70 memcpy(client, &wis_ov7640_client_templ,
71 sizeof(wis_ov7640_client_templ));
72 client->adapter = adapter;
73 client->addr = addr;
74 client->flags = I2C_CLIENT_SCCB; 61 client->flags = I2C_CLIENT_SCCB;
75 62
76 printk(KERN_DEBUG 63 printk(KERN_DEBUG
77 "wis-ov7640: initializing OV7640 at address %d on %s\n", 64 "wis-ov7640: initializing OV7640 at address %d on %s\n",
78 addr, adapter->name); 65 client->addr, adapter->name);
79 66
80 if (write_regs(client, initial_registers) < 0) { 67 if (write_regs(client, initial_registers) < 0) {
81 printk(KERN_ERR "wis-ov7640: error initializing OV7640\n"); 68 printk(KERN_ERR "wis-ov7640: error initializing OV7640\n");
82 kfree(client); 69 return -ENODEV;
83 return 0;
84 } 70 }
85 71
86 i2c_attach_client(client);
87 return 0; 72 return 0;
88} 73}
89 74
90static int wis_ov7640_detach(struct i2c_client *client) 75static int wis_ov7640_remove(struct i2c_client *client)
91{ 76{
92 int r;
93
94 r = i2c_detach_client(client);
95 if (r < 0)
96 return r;
97
98 kfree(client);
99 return 0; 77 return 0;
100} 78}
101 79
80static struct i2c_device_id wis_ov7640_id[] = {
81 { "wis_ov7640", 0 },
82 { }
83};
84
102static struct i2c_driver wis_ov7640_driver = { 85static struct i2c_driver wis_ov7640_driver = {
103 .driver = { 86 .driver = {
104 .name = "WIS OV7640 I2C driver", 87 .name = "WIS OV7640 I2C driver",
105 }, 88 },
106 .id = I2C_DRIVERID_WIS_OV7640, 89 .probe = wis_ov7640_probe,
107 .detach_client = wis_ov7640_detach, 90 .remove = wis_ov7640_remove,
91 .id_table = wis_ov7640_id,
108}; 92};
109 93
110static int __init wis_ov7640_init(void) 94static int __init wis_ov7640_init(void)
111{ 95{
112 int r; 96 return i2c_add_driver(&wis_ov7640_driver);
113
114 r = i2c_add_driver(&wis_ov7640_driver);
115 if (r < 0)
116 return r;
117 return wis_i2c_add_driver(wis_ov7640_driver.id, wis_ov7640_detect);
118} 97}
119 98
120static void __exit wis_ov7640_cleanup(void) 99static void __exit wis_ov7640_cleanup(void)
121{ 100{
122 wis_i2c_del_driver(wis_ov7640_detect);
123 i2c_del_driver(&wis_ov7640_driver); 101 i2c_del_driver(&wis_ov7640_driver);
124} 102}
125 103
diff --git a/drivers/staging/go7007/wis-saa7113.c b/drivers/staging/go7007/wis-saa7113.c
index 11689723945e..9ab893bd204e 100644
--- a/drivers/staging/go7007/wis-saa7113.c
+++ b/drivers/staging/go7007/wis-saa7113.c
@@ -261,34 +261,19 @@ static int wis_saa7113_command(struct i2c_client *client,
261 return 0; 261 return 0;
262} 262}
263 263
264static struct i2c_driver wis_saa7113_driver; 264static int wis_saa7113_probe(struct i2c_client *client,
265 265 const struct i2c_device_id *id)
266static struct i2c_client wis_saa7113_client_templ = {
267 .name = "SAA7113 (WIS)",
268 .driver = &wis_saa7113_driver,
269};
270
271static int wis_saa7113_detect(struct i2c_adapter *adapter, int addr, int kind)
272{ 266{
273 struct i2c_client *client; 267 struct i2c_adapter *adapter = client->adapter;
274 struct wis_saa7113 *dec; 268 struct wis_saa7113 *dec;
275 269
276 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 270 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
277 return 0; 271 return -ENODEV;
278
279 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
280 if (client == NULL)
281 return -ENOMEM;
282 memcpy(client, &wis_saa7113_client_templ,
283 sizeof(wis_saa7113_client_templ));
284 client->adapter = adapter;
285 client->addr = addr;
286 272
287 dec = kmalloc(sizeof(struct wis_saa7113), GFP_KERNEL); 273 dec = kmalloc(sizeof(struct wis_saa7113), GFP_KERNEL);
288 if (dec == NULL) { 274 if (dec == NULL)
289 kfree(client);
290 return -ENOMEM; 275 return -ENOMEM;
291 } 276
292 dec->norm = V4L2_STD_NTSC; 277 dec->norm = V4L2_STD_NTSC;
293 dec->brightness = 128; 278 dec->brightness = 128;
294 dec->contrast = 71; 279 dec->contrast = 71;
@@ -298,56 +283,49 @@ static int wis_saa7113_detect(struct i2c_adapter *adapter, int addr, int kind)
298 283
299 printk(KERN_DEBUG 284 printk(KERN_DEBUG
300 "wis-saa7113: initializing SAA7113 at address %d on %s\n", 285 "wis-saa7113: initializing SAA7113 at address %d on %s\n",
301 addr, adapter->name); 286 client->addr, adapter->name);
302 287
303 if (write_regs(client, initial_registers) < 0) { 288 if (write_regs(client, initial_registers) < 0) {
304 printk(KERN_ERR 289 printk(KERN_ERR
305 "wis-saa7113: error initializing SAA7113\n"); 290 "wis-saa7113: error initializing SAA7113\n");
306 kfree(client);
307 kfree(dec); 291 kfree(dec);
308 return 0; 292 return -ENODEV;
309 } 293 }
310 294
311 i2c_attach_client(client);
312 return 0; 295 return 0;
313} 296}
314 297
315static int wis_saa7113_detach(struct i2c_client *client) 298static int wis_saa7113_remove(struct i2c_client *client)
316{ 299{
317 struct wis_saa7113 *dec = i2c_get_clientdata(client); 300 struct wis_saa7113 *dec = i2c_get_clientdata(client);
318 int r;
319
320 r = i2c_detach_client(client);
321 if (r < 0)
322 return r;
323 301
324 kfree(client); 302 i2c_set_clientdata(client, NULL);
325 kfree(dec); 303 kfree(dec);
326 return 0; 304 return 0;
327} 305}
328 306
307static struct i2c_device_id wis_saa7113_id[] = {
308 { "wis_saa7113", 0 },
309 { }
310};
311
329static struct i2c_driver wis_saa7113_driver = { 312static struct i2c_driver wis_saa7113_driver = {
330 .driver = { 313 .driver = {
331 .name = "WIS SAA7113 I2C driver", 314 .name = "WIS SAA7113 I2C driver",
332 }, 315 },
333 .id = I2C_DRIVERID_WIS_SAA7113, 316 .probe = wis_saa7113_probe,
334 .detach_client = wis_saa7113_detach, 317 .remove = wis_saa7113_remove,
335 .command = wis_saa7113_command, 318 .command = wis_saa7113_command,
319 .id_table = wis_saa7113_id,
336}; 320};
337 321
338static int __init wis_saa7113_init(void) 322static int __init wis_saa7113_init(void)
339{ 323{
340 int r; 324 return i2c_add_driver(&wis_saa7113_driver);
341
342 r = i2c_add_driver(&wis_saa7113_driver);
343 if (r < 0)
344 return r;
345 return wis_i2c_add_driver(wis_saa7113_driver.id, wis_saa7113_detect);
346} 325}
347 326
348static void __exit wis_saa7113_cleanup(void) 327static void __exit wis_saa7113_cleanup(void)
349{ 328{
350 wis_i2c_del_driver(wis_saa7113_detect);
351 i2c_del_driver(&wis_saa7113_driver); 329 i2c_del_driver(&wis_saa7113_driver);
352} 330}
353 331
diff --git a/drivers/staging/go7007/wis-saa7115.c b/drivers/staging/go7007/wis-saa7115.c
index 59417a7174d7..8687ad2de761 100644
--- a/drivers/staging/go7007/wis-saa7115.c
+++ b/drivers/staging/go7007/wis-saa7115.c
@@ -394,34 +394,19 @@ static int wis_saa7115_command(struct i2c_client *client,
394 return 0; 394 return 0;
395} 395}
396 396
397static struct i2c_driver wis_saa7115_driver; 397static int wis_saa7115_probe(struct i2c_client *client,
398 398 const struct i2c_device_id *id)
399static struct i2c_client wis_saa7115_client_templ = {
400 .name = "SAA7115 (WIS)",
401 .driver = &wis_saa7115_driver,
402};
403
404static int wis_saa7115_detect(struct i2c_adapter *adapter, int addr, int kind)
405{ 399{
406 struct i2c_client *client; 400 struct i2c_adapter *adapter = client->adapter;
407 struct wis_saa7115 *dec; 401 struct wis_saa7115 *dec;
408 402
409 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 403 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
410 return 0; 404 return -ENODEV;
411
412 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
413 if (client == NULL)
414 return -ENOMEM;
415 memcpy(client, &wis_saa7115_client_templ,
416 sizeof(wis_saa7115_client_templ));
417 client->adapter = adapter;
418 client->addr = addr;
419 405
420 dec = kmalloc(sizeof(struct wis_saa7115), GFP_KERNEL); 406 dec = kmalloc(sizeof(struct wis_saa7115), GFP_KERNEL);
421 if (dec == NULL) { 407 if (dec == NULL)
422 kfree(client);
423 return -ENOMEM; 408 return -ENOMEM;
424 } 409
425 dec->norm = V4L2_STD_NTSC; 410 dec->norm = V4L2_STD_NTSC;
426 dec->brightness = 128; 411 dec->brightness = 128;
427 dec->contrast = 64; 412 dec->contrast = 64;
@@ -431,56 +416,49 @@ static int wis_saa7115_detect(struct i2c_adapter *adapter, int addr, int kind)
431 416
432 printk(KERN_DEBUG 417 printk(KERN_DEBUG
433 "wis-saa7115: initializing SAA7115 at address %d on %s\n", 418 "wis-saa7115: initializing SAA7115 at address %d on %s\n",
434 addr, adapter->name); 419 client->addr, adapter->name);
435 420
436 if (write_regs(client, initial_registers) < 0) { 421 if (write_regs(client, initial_registers) < 0) {
437 printk(KERN_ERR 422 printk(KERN_ERR
438 "wis-saa7115: error initializing SAA7115\n"); 423 "wis-saa7115: error initializing SAA7115\n");
439 kfree(client);
440 kfree(dec); 424 kfree(dec);
441 return 0; 425 return -ENODEV;
442 } 426 }
443 427
444 i2c_attach_client(client);
445 return 0; 428 return 0;
446} 429}
447 430
448static int wis_saa7115_detach(struct i2c_client *client) 431static int wis_saa7115_remove(struct i2c_client *client)
449{ 432{
450 struct wis_saa7115 *dec = i2c_get_clientdata(client); 433 struct wis_saa7115 *dec = i2c_get_clientdata(client);
451 int r;
452
453 r = i2c_detach_client(client);
454 if (r < 0)
455 return r;
456 434
457 kfree(client); 435 i2c_set_clientdata(client, NULL);
458 kfree(dec); 436 kfree(dec);
459 return 0; 437 return 0;
460} 438}
461 439
440static struct i2c_device_id wis_saa7115_id[] = {
441 { "wis_saa7115", 0 },
442 { }
443};
444
462static struct i2c_driver wis_saa7115_driver = { 445static struct i2c_driver wis_saa7115_driver = {
463 .driver = { 446 .driver = {
464 .name = "WIS SAA7115 I2C driver", 447 .name = "WIS SAA7115 I2C driver",
465 }, 448 },
466 .id = I2C_DRIVERID_WIS_SAA7115, 449 .probe = wis_saa7115_probe,
467 .detach_client = wis_saa7115_detach, 450 .remove = wis_saa7115_remove,
468 .command = wis_saa7115_command, 451 .command = wis_saa7115_command,
452 .id_table = wis_saa7115_id,
469}; 453};
470 454
471static int __init wis_saa7115_init(void) 455static int __init wis_saa7115_init(void)
472{ 456{
473 int r; 457 return i2c_add_driver(&wis_saa7115_driver);
474
475 r = i2c_add_driver(&wis_saa7115_driver);
476 if (r < 0)
477 return r;
478 return wis_i2c_add_driver(wis_saa7115_driver.id, wis_saa7115_detect);
479} 458}
480 459
481static void __exit wis_saa7115_cleanup(void) 460static void __exit wis_saa7115_cleanup(void)
482{ 461{
483 wis_i2c_del_driver(wis_saa7115_detect);
484 i2c_del_driver(&wis_saa7115_driver); 462 i2c_del_driver(&wis_saa7115_driver);
485} 463}
486 464
diff --git a/drivers/staging/go7007/wis-sony-tuner.c b/drivers/staging/go7007/wis-sony-tuner.c
index 58fddb122372..c965c601ac90 100644
--- a/drivers/staging/go7007/wis-sony-tuner.c
+++ b/drivers/staging/go7007/wis-sony-tuner.c
@@ -386,6 +386,7 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
386 struct wis_sony_tuner *t = i2c_get_clientdata(client); 386 struct wis_sony_tuner *t = i2c_get_clientdata(client);
387 387
388 switch (cmd) { 388 switch (cmd) {
389#if 0
389#ifdef TUNER_SET_TYPE_ADDR 390#ifdef TUNER_SET_TYPE_ADDR
390 case TUNER_SET_TYPE_ADDR: 391 case TUNER_SET_TYPE_ADDR:
391 { 392 {
@@ -463,6 +464,7 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
463 t->type, sony_tuners[t->type - 200].name); 464 t->type, sony_tuners[t->type - 200].name);
464 break; 465 break;
465 } 466 }
467#endif
466 case VIDIOC_G_FREQUENCY: 468 case VIDIOC_G_FREQUENCY:
467 { 469 {
468 struct v4l2_frequency *f = arg; 470 struct v4l2_frequency *f = arg;
@@ -651,35 +653,19 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg)
651 return 0; 653 return 0;
652} 654}
653 655
654static struct i2c_driver wis_sony_tuner_driver; 656static int wis_sony_tuner_probe(struct i2c_client *client,
655 657 const struct i2c_device_id *id)
656static struct i2c_client wis_sony_tuner_client_templ = {
657 .name = "Sony TV Tuner (WIS)",
658 .driver = &wis_sony_tuner_driver,
659};
660
661static int wis_sony_tuner_detect(struct i2c_adapter *adapter,
662 int addr, int kind)
663{ 658{
664 struct i2c_client *client; 659 struct i2c_adapter *adapter = client->adapter;
665 struct wis_sony_tuner *t; 660 struct wis_sony_tuner *t;
666 661
667 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK)) 662 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_I2C_BLOCK))
668 return 0; 663 return -ENODEV;
669
670 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
671 if (client == NULL)
672 return -ENOMEM;
673 memcpy(client, &wis_sony_tuner_client_templ,
674 sizeof(wis_sony_tuner_client_templ));
675 client->adapter = adapter;
676 client->addr = addr;
677 664
678 t = kmalloc(sizeof(struct wis_sony_tuner), GFP_KERNEL); 665 t = kmalloc(sizeof(struct wis_sony_tuner), GFP_KERNEL);
679 if (t == NULL) { 666 if (t == NULL)
680 kfree(client);
681 return -ENOMEM; 667 return -ENOMEM;
682 } 668
683 t->type = -1; 669 t->type = -1;
684 t->freq = 0; 670 t->freq = 0;
685 t->mpxmode = 0; 671 t->mpxmode = 0;
@@ -688,50 +674,42 @@ static int wis_sony_tuner_detect(struct i2c_adapter *adapter,
688 674
689 printk(KERN_DEBUG 675 printk(KERN_DEBUG
690 "wis-sony-tuner: initializing tuner at address %d on %s\n", 676 "wis-sony-tuner: initializing tuner at address %d on %s\n",
691 addr, adapter->name); 677 client->addr, adapter->name);
692
693 i2c_attach_client(client);
694 678
695 return 0; 679 return 0;
696} 680}
697 681
698static int wis_sony_tuner_detach(struct i2c_client *client) 682static int wis_sony_tuner_remove(struct i2c_client *client)
699{ 683{
700 struct wis_sony_tuner *t = i2c_get_clientdata(client); 684 struct wis_sony_tuner *t = i2c_get_clientdata(client);
701 int r;
702
703 r = i2c_detach_client(client);
704 if (r < 0)
705 return r;
706 685
686 i2c_set_clientdata(client, NULL);
707 kfree(t); 687 kfree(t);
708 kfree(client);
709 return 0; 688 return 0;
710} 689}
711 690
691static struct i2c_device_id wis_sony_tuner_id[] = {
692 { "wis_sony_tuner", 0 },
693 { }
694};
695
712static struct i2c_driver wis_sony_tuner_driver = { 696static struct i2c_driver wis_sony_tuner_driver = {
713 .driver = { 697 .driver = {
714 .name = "WIS Sony TV Tuner I2C driver", 698 .name = "WIS Sony TV Tuner I2C driver",
715 }, 699 },
716 .id = I2C_DRIVERID_WIS_SONY_TUNER, 700 .probe = wis_sony_tuner_probe,
717 .detach_client = wis_sony_tuner_detach, 701 .remove = wis_sony_tuner_remove,
718 .command = tuner_command, 702 .command = tuner_command,
703 .id_table = wis_sony_tuner_id,
719}; 704};
720 705
721static int __init wis_sony_tuner_init(void) 706static int __init wis_sony_tuner_init(void)
722{ 707{
723 int r; 708 return i2c_add_driver(&wis_sony_tuner_driver);
724
725 r = i2c_add_driver(&wis_sony_tuner_driver);
726 if (r < 0)
727 return r;
728 return wis_i2c_add_driver(wis_sony_tuner_driver.id,
729 wis_sony_tuner_detect);
730} 709}
731 710
732static void __exit wis_sony_tuner_cleanup(void) 711static void __exit wis_sony_tuner_cleanup(void)
733{ 712{
734 wis_i2c_del_driver(wis_sony_tuner_detect);
735 i2c_del_driver(&wis_sony_tuner_driver); 713 i2c_del_driver(&wis_sony_tuner_driver);
736} 714}
737 715
diff --git a/drivers/staging/go7007/wis-tw2804.c b/drivers/staging/go7007/wis-tw2804.c
index 57b8f2b1caa3..e15794a2a0ae 100644
--- a/drivers/staging/go7007/wis-tw2804.c
+++ b/drivers/staging/go7007/wis-tw2804.c
@@ -291,34 +291,19 @@ static int wis_tw2804_command(struct i2c_client *client,
291 return 0; 291 return 0;
292} 292}
293 293
294static struct i2c_driver wis_tw2804_driver; 294static int wis_tw2804_probe(struct i2c_client *client,
295 295 const struct i2c_device_id *id)
296static struct i2c_client wis_tw2804_client_templ = {
297 .name = "TW2804 (WIS)",
298 .driver = &wis_tw2804_driver,
299};
300
301static int wis_tw2804_detect(struct i2c_adapter *adapter, int addr, int kind)
302{ 296{
303 struct i2c_client *client; 297 struct i2c_adapter *adapter = client->adapter;
304 struct wis_tw2804 *dec; 298 struct wis_tw2804 *dec;
305 299
306 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 300 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
307 return 0; 301 return -ENODEV;
308
309 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
310 if (client == NULL)
311 return -ENOMEM;
312 memcpy(client, &wis_tw2804_client_templ,
313 sizeof(wis_tw2804_client_templ));
314 client->adapter = adapter;
315 client->addr = addr;
316 302
317 dec = kmalloc(sizeof(struct wis_tw2804), GFP_KERNEL); 303 dec = kmalloc(sizeof(struct wis_tw2804), GFP_KERNEL);
318 if (dec == NULL) { 304 if (dec == NULL)
319 kfree(client);
320 return -ENOMEM; 305 return -ENOMEM;
321 } 306
322 dec->channel = -1; 307 dec->channel = -1;
323 dec->norm = V4L2_STD_NTSC; 308 dec->norm = V4L2_STD_NTSC;
324 dec->brightness = 128; 309 dec->brightness = 128;
@@ -328,48 +313,42 @@ static int wis_tw2804_detect(struct i2c_adapter *adapter, int addr, int kind)
328 i2c_set_clientdata(client, dec); 313 i2c_set_clientdata(client, dec);
329 314
330 printk(KERN_DEBUG "wis-tw2804: creating TW2804 at address %d on %s\n", 315 printk(KERN_DEBUG "wis-tw2804: creating TW2804 at address %d on %s\n",
331 addr, adapter->name); 316 client->addr, adapter->name);
332 317
333 i2c_attach_client(client);
334 return 0; 318 return 0;
335} 319}
336 320
337static int wis_tw2804_detach(struct i2c_client *client) 321static int wis_tw2804_remove(struct i2c_client *client)
338{ 322{
339 struct wis_tw2804 *dec = i2c_get_clientdata(client); 323 struct wis_tw2804 *dec = i2c_get_clientdata(client);
340 int r;
341
342 r = i2c_detach_client(client);
343 if (r < 0)
344 return r;
345 324
346 kfree(client); 325 i2c_set_clientdata(client, NULL);
347 kfree(dec); 326 kfree(dec);
348 return 0; 327 return 0;
349} 328}
350 329
330static struct i2c_device_id wis_tw2804_id[] = {
331 { "wis_tw2804", 0 },
332 { }
333};
334
351static struct i2c_driver wis_tw2804_driver = { 335static struct i2c_driver wis_tw2804_driver = {
352 .driver = { 336 .driver = {
353 .name = "WIS TW2804 I2C driver", 337 .name = "WIS TW2804 I2C driver",
354 }, 338 },
355 .id = I2C_DRIVERID_WIS_TW2804, 339 .probe = wis_tw2804_probe,
356 .detach_client = wis_tw2804_detach, 340 .remove = wis_tw2804_remove,
357 .command = wis_tw2804_command, 341 .command = wis_tw2804_command,
342 .id_table = wis_tw2804_id,
358}; 343};
359 344
360static int __init wis_tw2804_init(void) 345static int __init wis_tw2804_init(void)
361{ 346{
362 int r; 347 return i2c_add_driver(&wis_tw2804_driver);
363
364 r = i2c_add_driver(&wis_tw2804_driver);
365 if (r < 0)
366 return r;
367 return wis_i2c_add_driver(wis_tw2804_driver.id, wis_tw2804_detect);
368} 348}
369 349
370static void __exit wis_tw2804_cleanup(void) 350static void __exit wis_tw2804_cleanup(void)
371{ 351{
372 wis_i2c_del_driver(wis_tw2804_detect);
373 i2c_del_driver(&wis_tw2804_driver); 352 i2c_del_driver(&wis_tw2804_driver);
374} 353}
375 354
diff --git a/drivers/staging/go7007/wis-tw9903.c b/drivers/staging/go7007/wis-tw9903.c
index 40627b282cb4..6c3427bb6f4c 100644
--- a/drivers/staging/go7007/wis-tw9903.c
+++ b/drivers/staging/go7007/wis-tw9903.c
@@ -267,34 +267,19 @@ static int wis_tw9903_command(struct i2c_client *client,
267 return 0; 267 return 0;
268} 268}
269 269
270static struct i2c_driver wis_tw9903_driver; 270static int wis_tw9903_probe(struct i2c_client *client,
271 271 const struct i2c_device_id *id)
272static struct i2c_client wis_tw9903_client_templ = {
273 .name = "TW9903 (WIS)",
274 .driver = &wis_tw9903_driver,
275};
276
277static int wis_tw9903_detect(struct i2c_adapter *adapter, int addr, int kind)
278{ 272{
279 struct i2c_client *client; 273 struct i2c_adapter *adapter = client->adapter;
280 struct wis_tw9903 *dec; 274 struct wis_tw9903 *dec;
281 275
282 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) 276 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
283 return 0; 277 return -ENODEV;
284
285 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
286 if (client == NULL)
287 return -ENOMEM;
288 memcpy(client, &wis_tw9903_client_templ,
289 sizeof(wis_tw9903_client_templ));
290 client->adapter = adapter;
291 client->addr = addr;
292 278
293 dec = kmalloc(sizeof(struct wis_tw9903), GFP_KERNEL); 279 dec = kmalloc(sizeof(struct wis_tw9903), GFP_KERNEL);
294 if (dec == NULL) { 280 if (dec == NULL)
295 kfree(client);
296 return -ENOMEM; 281 return -ENOMEM;
297 } 282
298 dec->norm = V4L2_STD_NTSC; 283 dec->norm = V4L2_STD_NTSC;
299 dec->brightness = 0; 284 dec->brightness = 0;
300 dec->contrast = 0x60; 285 dec->contrast = 0x60;
@@ -303,55 +288,48 @@ static int wis_tw9903_detect(struct i2c_adapter *adapter, int addr, int kind)
303 288
304 printk(KERN_DEBUG 289 printk(KERN_DEBUG
305 "wis-tw9903: initializing TW9903 at address %d on %s\n", 290 "wis-tw9903: initializing TW9903 at address %d on %s\n",
306 addr, adapter->name); 291 client->addr, adapter->name);
307 292
308 if (write_regs(client, initial_registers) < 0) { 293 if (write_regs(client, initial_registers) < 0) {
309 printk(KERN_ERR "wis-tw9903: error initializing TW9903\n"); 294 printk(KERN_ERR "wis-tw9903: error initializing TW9903\n");
310 kfree(client);
311 kfree(dec); 295 kfree(dec);
312 return 0; 296 return -ENODEV;
313 } 297 }
314 298
315 i2c_attach_client(client);
316 return 0; 299 return 0;
317} 300}
318 301
319static int wis_tw9903_detach(struct i2c_client *client) 302static int wis_tw9903_remove(struct i2c_client *client)
320{ 303{
321 struct wis_tw9903 *dec = i2c_get_clientdata(client); 304 struct wis_tw9903 *dec = i2c_get_clientdata(client);
322 int r;
323
324 r = i2c_detach_client(client);
325 if (r < 0)
326 return r;
327 305
328 kfree(client); 306 i2c_set_clientdata(client, NULL);
329 kfree(dec); 307 kfree(dec);
330 return 0; 308 return 0;
331} 309}
332 310
311static struct i2c_device_id wis_tw9903_id[] = {
312 { "wis_tw9903", 0 },
313 { }
314};
315
333static struct i2c_driver wis_tw9903_driver = { 316static struct i2c_driver wis_tw9903_driver = {
334 .driver = { 317 .driver = {
335 .name = "WIS TW9903 I2C driver", 318 .name = "WIS TW9903 I2C driver",
336 }, 319 },
337 .id = I2C_DRIVERID_WIS_TW9903, 320 .probe = wis_tw9903_probe,
338 .detach_client = wis_tw9903_detach, 321 .remove = wis_tw9903_remove,
339 .command = wis_tw9903_command, 322 .command = wis_tw9903_command,
323 .id_table = wis_tw9903_id,
340}; 324};
341 325
342static int __init wis_tw9903_init(void) 326static int __init wis_tw9903_init(void)
343{ 327{
344 int r; 328 return i2c_add_driver(&wis_tw9903_driver);
345
346 r = i2c_add_driver(&wis_tw9903_driver);
347 if (r < 0)
348 return r;
349 return wis_i2c_add_driver(wis_tw9903_driver.id, wis_tw9903_detect);
350} 329}
351 330
352static void __exit wis_tw9903_cleanup(void) 331static void __exit wis_tw9903_cleanup(void)
353{ 332{
354 wis_i2c_del_driver(wis_tw9903_detect);
355 i2c_del_driver(&wis_tw9903_driver); 333 i2c_del_driver(&wis_tw9903_driver);
356} 334}
357 335
diff --git a/drivers/staging/go7007/wis-uda1342.c b/drivers/staging/go7007/wis-uda1342.c
index 555645c0cc1a..739c7ae8913f 100644
--- a/drivers/staging/go7007/wis-uda1342.c
+++ b/drivers/staging/go7007/wis-uda1342.c
@@ -59,73 +59,51 @@ static int wis_uda1342_command(struct i2c_client *client,
59 return 0; 59 return 0;
60} 60}
61 61
62static struct i2c_driver wis_uda1342_driver; 62static int wis_uda1342_probe(struct i2c_client *client,
63 63 const struct i2c_device_id *id)
64static struct i2c_client wis_uda1342_client_templ = {
65 .name = "UDA1342 (WIS)",
66 .driver = &wis_uda1342_driver,
67};
68
69static int wis_uda1342_detect(struct i2c_adapter *adapter, int addr, int kind)
70{ 64{
71 struct i2c_client *client; 65 struct i2c_adapter *adapter = client->adapter;
72 66
73 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA)) 67 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_WORD_DATA))
74 return 0; 68 return -ENODEV;
75
76 client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
77 if (client == NULL)
78 return -ENOMEM;
79 memcpy(client, &wis_uda1342_client_templ,
80 sizeof(wis_uda1342_client_templ));
81 client->adapter = adapter;
82 client->addr = addr;
83 69
84 printk(KERN_DEBUG 70 printk(KERN_DEBUG
85 "wis-uda1342: initializing UDA1342 at address %d on %s\n", 71 "wis-uda1342: initializing UDA1342 at address %d on %s\n",
86 addr, adapter->name); 72 client->addr, adapter->name);
87 73
88 write_reg(client, 0x00, 0x8000); /* reset registers */ 74 write_reg(client, 0x00, 0x8000); /* reset registers */
89 write_reg(client, 0x00, 0x1241); /* select input 1 */ 75 write_reg(client, 0x00, 0x1241); /* select input 1 */
90 76
91 i2c_attach_client(client);
92 return 0; 77 return 0;
93} 78}
94 79
95static int wis_uda1342_detach(struct i2c_client *client) 80static int wis_uda1342_remove(struct i2c_client *client)
96{ 81{
97 int r;
98
99 r = i2c_detach_client(client);
100 if (r < 0)
101 return r;
102
103 kfree(client);
104 return 0; 82 return 0;
105} 83}
106 84
85static struct i2c_device_id wis_uda1342_id[] = {
86 { "wis_uda1342", 0 },
87 { }
88};
89
107static struct i2c_driver wis_uda1342_driver = { 90static struct i2c_driver wis_uda1342_driver = {
108 .driver = { 91 .driver = {
109 .name = "WIS UDA1342 I2C driver", 92 .name = "WIS UDA1342 I2C driver",
110 }, 93 },
111 .id = I2C_DRIVERID_WIS_UDA1342, 94 .probe = wis_uda1342_probe,
112 .detach_client = wis_uda1342_detach, 95 .remove = wis_uda1342_remove,
113 .command = wis_uda1342_command, 96 .command = wis_uda1342_command,
97 .id_table = wis_uda1342_id,
114}; 98};
115 99
116static int __init wis_uda1342_init(void) 100static int __init wis_uda1342_init(void)
117{ 101{
118 int r; 102 return i2c_add_driver(&wis_uda1342_driver);
119
120 r = i2c_add_driver(&wis_uda1342_driver);
121 if (r < 0)
122 return r;
123 return wis_i2c_add_driver(wis_uda1342_driver.id, wis_uda1342_detect);
124} 103}
125 104
126static void __exit wis_uda1342_cleanup(void) 105static void __exit wis_uda1342_cleanup(void)
127{ 106{
128 wis_i2c_del_driver(wis_uda1342_detect);
129 i2c_del_driver(&wis_uda1342_driver); 107 i2c_del_driver(&wis_uda1342_driver);
130} 108}
131 109
diff --git a/drivers/staging/line6/audio.c b/drivers/staging/line6/audio.c
index 3aa946899ced..e2ac8d60f8c2 100644
--- a/drivers/staging/line6/audio.c
+++ b/drivers/staging/line6/audio.c
@@ -27,11 +27,12 @@ int line6_init_audio(struct usb_line6 *line6)
27{ 27{
28 static int dev; 28 static int dev;
29 struct snd_card *card; 29 struct snd_card *card;
30 int err;
30 31
31 card = snd_card_new(line6_index[dev], line6_id[dev], THIS_MODULE, 0); 32 err = snd_card_create(line6_index[dev], line6_id[dev], THIS_MODULE, 0,
32 33 &card);
33 if (card == NULL) 34 if (err < 0)
34 return -ENOMEM; 35 return err;
35 36
36 line6->card = card; 37 line6->card = card;
37 38
diff --git a/drivers/staging/otus/usbdrv.c b/drivers/staging/otus/usbdrv.c
index 565a839589f5..540cbbb826f9 100644
--- a/drivers/staging/otus/usbdrv.c
+++ b/drivers/staging/otus/usbdrv.c
@@ -822,6 +822,21 @@ int zfLnxVapXmitFrame(struct sk_buff *skb, struct net_device *dev)
822 return 0; 822 return 0;
823} 823}
824 824
825static const struct net_device_ops vap_netdev_ops = {
826 .ndo_open = zfLnxVapOpen,
827 .ndo_stop = zfLnxVapClose,
828 .ndo_start_xmit = zfLnxVapXmitFrame,
829 .ndo_get_stats = usbdrv_get_stats,
830 .ndo_change_mtu = usbdrv_change_mtu,
831 .ndo_validate_addr = eth_validate_addr,
832 .ndo_set_mac_address = eth_mac_addr,
833#ifdef ZM_HOSTAPD_SUPPORT
834 .ndo_do_ioctl = usbdrv_ioctl,
835#else
836 .ndo_do_ioctl = NULL,
837#endif
838};
839
825int zfLnxRegisterVapDev(struct net_device* parentDev, u16_t vapId) 840int zfLnxRegisterVapDev(struct net_device* parentDev, u16_t vapId)
826{ 841{
827 /* Allocate net device structure */ 842 /* Allocate net device structure */
@@ -846,16 +861,7 @@ int zfLnxRegisterVapDev(struct net_device* parentDev, u16_t vapId)
846 vap[vapId].dev->ml_priv = parentDev->ml_priv; 861 vap[vapId].dev->ml_priv = parentDev->ml_priv;
847 862
848 //dev->hard_start_xmit = &zd1212_wds_xmit_frame; 863 //dev->hard_start_xmit = &zd1212_wds_xmit_frame;
849 vap[vapId].dev->hard_start_xmit = &zfLnxVapXmitFrame; 864 vap[vapId].dev->netdev_ops = &vap_netdev_ops;
850 vap[vapId].dev->open = &zfLnxVapOpen;
851 vap[vapId].dev->stop = &zfLnxVapClose;
852 vap[vapId].dev->get_stats = &usbdrv_get_stats;
853 vap[vapId].dev->change_mtu = &usbdrv_change_mtu;
854#ifdef ZM_HOSTAPD_SUPPORT
855 vap[vapId].dev->do_ioctl = usbdrv_ioctl;
856#else
857 vap[vapId].dev->do_ioctl = NULL;
858#endif
859 vap[vapId].dev->destructor = free_netdev; 865 vap[vapId].dev->destructor = free_netdev;
860 866
861 vap[vapId].dev->tx_queue_len = 0; 867 vap[vapId].dev->tx_queue_len = 0;
@@ -1068,6 +1074,18 @@ void zfLnxUnlinkAllUrbs(struct usbdrv_private *macp)
1068 usb_unlink_urb(macp->RegInUrb); 1074 usb_unlink_urb(macp->RegInUrb);
1069} 1075}
1070 1076
1077static const struct net_device_ops otus_netdev_ops = {
1078 .ndo_open = usbdrv_open,
1079 .ndo_stop = usbdrv_close,
1080 .ndo_start_xmit = usbdrv_xmit_frame,
1081 .ndo_change_mtu = usbdrv_change_mtu,
1082 .ndo_get_stats = usbdrv_get_stats,
1083 .ndo_set_multicast_list = usbdrv_set_multi,
1084 .ndo_set_mac_address = usbdrv_set_mac,
1085 .ndo_do_ioctl = usbdrv_ioctl,
1086 .ndo_validate_addr = eth_validate_addr,
1087};
1088
1071u8_t zfLnxInitSetup(struct net_device *dev, struct usbdrv_private *macp) 1089u8_t zfLnxInitSetup(struct net_device *dev, struct usbdrv_private *macp)
1072{ 1090{
1073 //unsigned char addr[6]; 1091 //unsigned char addr[6];
@@ -1092,14 +1110,7 @@ u8_t zfLnxInitSetup(struct net_device *dev, struct usbdrv_private *macp)
1092 dev->wireless_handlers = (struct iw_handler_def *)&p80211wext_handler_def; 1110 dev->wireless_handlers = (struct iw_handler_def *)&p80211wext_handler_def;
1093#endif 1111#endif
1094 1112
1095 dev->open = usbdrv_open; 1113 dev->netdev_ops = &otus_netdev_ops;
1096 dev->hard_start_xmit = usbdrv_xmit_frame;
1097 dev->stop = usbdrv_close;
1098 dev->change_mtu = &usbdrv_change_mtu;
1099 dev->get_stats = usbdrv_get_stats;
1100 dev->set_multicast_list = usbdrv_set_multi;
1101 dev->set_mac_address = usbdrv_set_mac;
1102 dev->do_ioctl = usbdrv_ioctl;
1103 1114
1104 dev->flags |= IFF_MULTICAST; 1115 dev->flags |= IFF_MULTICAST;
1105 1116
diff --git a/drivers/staging/otus/zdusb.c b/drivers/staging/otus/zdusb.c
index 78f1d2224fa1..2a6d937ba5e8 100644
--- a/drivers/staging/otus/zdusb.c
+++ b/drivers/staging/otus/zdusb.c
@@ -48,7 +48,8 @@ static const char driver_name[] = "Otus";
48static struct usb_device_id zd1221_ids [] = { 48static struct usb_device_id zd1221_ids [] = {
49 { USB_DEVICE(VENDOR_ATHR, PRODUCT_AR9170) }, 49 { USB_DEVICE(VENDOR_ATHR, PRODUCT_AR9170) },
50 { USB_DEVICE(VENDOR_DLINK, PRODUCT_DWA160A) }, 50 { USB_DEVICE(VENDOR_DLINK, PRODUCT_DWA160A) },
51 { USB_DEVICE(0x0846, 0x9010) }, 51 { USB_DEVICE(VENDOR_NETGEAR, PRODUCT_WNDA3100) },
52 { USB_DEVICE(VENDOR_NETGEAR, PRODUCT_WN111v2) },
52 { } /* Terminating entry */ 53 { } /* Terminating entry */
53}; 54};
54 55
diff --git a/drivers/staging/otus/zdusb.h b/drivers/staging/otus/zdusb.h
index 656dc212ade5..9f8ab2e96169 100644
--- a/drivers/staging/otus/zdusb.h
+++ b/drivers/staging/otus/zdusb.h
@@ -40,4 +40,8 @@
40#define VENDOR_DLINK 0x07D1 //Dlink 40#define VENDOR_DLINK 0x07D1 //Dlink
41#define PRODUCT_DWA160A 0x3C10 41#define PRODUCT_DWA160A 0x3C10
42 42
43#define VENDOR_NETGEAR 0x0846 /* NetGear */
44#define PRODUCT_WNDA3100 0x9010
45#define PRODUCT_WN111v2 0x9001
46
43#endif 47#endif
diff --git a/drivers/staging/pohmelfs/config.c b/drivers/staging/pohmelfs/config.c
index 3e67da9ea381..a6eaa42fb669 100644
--- a/drivers/staging/pohmelfs/config.c
+++ b/drivers/staging/pohmelfs/config.c
@@ -81,6 +81,45 @@ static struct pohmelfs_config_group *pohmelfs_find_create_config_group(unsigned
81 return g; 81 return g;
82} 82}
83 83
84static inline void pohmelfs_insert_config_entry(struct pohmelfs_sb *psb, struct pohmelfs_config *dst)
85{
86 struct pohmelfs_config *tmp;
87
88 INIT_LIST_HEAD(&dst->config_entry);
89
90 list_for_each_entry(tmp, &psb->state_list, config_entry) {
91 if (dst->state.ctl.prio > tmp->state.ctl.prio)
92 list_add_tail(&dst->config_entry, &tmp->config_entry);
93 }
94 if (list_empty(&dst->config_entry))
95 list_add_tail(&dst->config_entry, &psb->state_list);
96}
97
98static int pohmelfs_move_config_entry(struct pohmelfs_sb *psb,
99 struct pohmelfs_config *dst, struct pohmelfs_config *new)
100{
101 if ((dst->state.ctl.prio == new->state.ctl.prio) &&
102 (dst->state.ctl.perm == new->state.ctl.perm))
103 return 0;
104
105 dprintk("%s: dst: prio: %d, perm: %x, new: prio: %d, perm: %d.\n",
106 __func__, dst->state.ctl.prio, dst->state.ctl.perm,
107 new->state.ctl.prio, new->state.ctl.perm);
108 dst->state.ctl.prio = new->state.ctl.prio;
109 dst->state.ctl.perm = new->state.ctl.perm;
110
111 list_del_init(&dst->config_entry);
112 pohmelfs_insert_config_entry(psb, dst);
113 return 0;
114}
115
116/*
117 * pohmelfs_copy_config() is used to copy new state configs from the
118 * config group (controlled by the netlink messages) into the superblock.
119 * This happens either at startup time where no transactions can access
120 * the list of the configs (and thus list of the network states), or at
121 * run-time, where it is protected by the psb->state_lock.
122 */
84int pohmelfs_copy_config(struct pohmelfs_sb *psb) 123int pohmelfs_copy_config(struct pohmelfs_sb *psb)
85{ 124{
86 struct pohmelfs_config_group *g; 125 struct pohmelfs_config_group *g;
@@ -103,7 +142,9 @@ int pohmelfs_copy_config(struct pohmelfs_sb *psb)
103 err = 0; 142 err = 0;
104 list_for_each_entry(dst, &psb->state_list, config_entry) { 143 list_for_each_entry(dst, &psb->state_list, config_entry) {
105 if (pohmelfs_config_eql(&dst->state.ctl, &c->state.ctl)) { 144 if (pohmelfs_config_eql(&dst->state.ctl, &c->state.ctl)) {
106 err = -EEXIST; 145 err = pohmelfs_move_config_entry(psb, dst, c);
146 if (!err)
147 err = -EEXIST;
107 break; 148 break;
108 } 149 }
109 } 150 }
@@ -119,7 +160,7 @@ int pohmelfs_copy_config(struct pohmelfs_sb *psb)
119 160
120 memcpy(&dst->state.ctl, &c->state.ctl, sizeof(struct pohmelfs_ctl)); 161 memcpy(&dst->state.ctl, &c->state.ctl, sizeof(struct pohmelfs_ctl));
121 162
122 list_add_tail(&dst->config_entry, &psb->state_list); 163 pohmelfs_insert_config_entry(psb, dst);
123 164
124 err = pohmelfs_state_init_one(psb, dst); 165 err = pohmelfs_state_init_one(psb, dst);
125 if (err) { 166 if (err) {
@@ -248,6 +289,13 @@ out_unlock:
248 return err; 289 return err;
249} 290}
250 291
292static int pohmelfs_modify_config(struct pohmelfs_ctl *old, struct pohmelfs_ctl *new)
293{
294 old->perm = new->perm;
295 old->prio = new->prio;
296 return 0;
297}
298
251static int pohmelfs_cn_ctl(struct cn_msg *msg, int action) 299static int pohmelfs_cn_ctl(struct cn_msg *msg, int action)
252{ 300{
253 struct pohmelfs_config_group *g; 301 struct pohmelfs_config_group *g;
@@ -278,6 +326,9 @@ static int pohmelfs_cn_ctl(struct cn_msg *msg, int action)
278 g->num_entry--; 326 g->num_entry--;
279 kfree(c); 327 kfree(c);
280 goto out_unlock; 328 goto out_unlock;
329 } else if (action == POHMELFS_FLAGS_MODIFY) {
330 err = pohmelfs_modify_config(sc, ctl);
331 goto out_unlock;
281 } else { 332 } else {
282 err = -EEXIST; 333 err = -EEXIST;
283 goto out_unlock; 334 goto out_unlock;
@@ -296,6 +347,7 @@ static int pohmelfs_cn_ctl(struct cn_msg *msg, int action)
296 } 347 }
297 memcpy(&c->state.ctl, ctl, sizeof(struct pohmelfs_ctl)); 348 memcpy(&c->state.ctl, ctl, sizeof(struct pohmelfs_ctl));
298 g->num_entry++; 349 g->num_entry++;
350
299 list_add_tail(&c->config_entry, &g->config_list); 351 list_add_tail(&c->config_entry, &g->config_list);
300 352
301out_unlock: 353out_unlock:
@@ -401,10 +453,9 @@ static void pohmelfs_cn_callback(void *data)
401 453
402 switch (msg->flags) { 454 switch (msg->flags) {
403 case POHMELFS_FLAGS_ADD: 455 case POHMELFS_FLAGS_ADD:
404 err = pohmelfs_cn_ctl(msg, POHMELFS_FLAGS_ADD);
405 break;
406 case POHMELFS_FLAGS_DEL: 456 case POHMELFS_FLAGS_DEL:
407 err = pohmelfs_cn_ctl(msg, POHMELFS_FLAGS_DEL); 457 case POHMELFS_FLAGS_MODIFY:
458 err = pohmelfs_cn_ctl(msg, msg->flags);
408 break; 459 break;
409 case POHMELFS_FLAGS_SHOW: 460 case POHMELFS_FLAGS_SHOW:
410 err = pohmelfs_cn_disp(msg); 461 err = pohmelfs_cn_disp(msg);
diff --git a/drivers/staging/pohmelfs/dir.c b/drivers/staging/pohmelfs/dir.c
index 7a41183a32e1..b5799842fb84 100644
--- a/drivers/staging/pohmelfs/dir.c
+++ b/drivers/staging/pohmelfs/dir.c
@@ -328,7 +328,7 @@ static int pohmelfs_sync_remote_dir(struct pohmelfs_inode *pi)
328{ 328{
329 struct inode *inode = &pi->vfs_inode; 329 struct inode *inode = &pi->vfs_inode;
330 struct pohmelfs_sb *psb = POHMELFS_SB(inode->i_sb); 330 struct pohmelfs_sb *psb = POHMELFS_SB(inode->i_sb);
331 long ret = msecs_to_jiffies(25000); 331 long ret = psb->wait_on_page_timeout;
332 int err; 332 int err;
333 333
334 dprintk("%s: dir: %llu, state: %lx: remote_synced: %d.\n", 334 dprintk("%s: dir: %llu, state: %lx: remote_synced: %d.\n",
@@ -389,11 +389,11 @@ static int pohmelfs_readdir(struct file *file, void *dirent, filldir_t filldir)
389 dprintk("%s: parent: %llu, fpos: %llu, hash: %08lx.\n", 389 dprintk("%s: parent: %llu, fpos: %llu, hash: %08lx.\n",
390 __func__, pi->ino, (u64)file->f_pos, 390 __func__, pi->ino, (u64)file->f_pos,
391 (unsigned long)file->private_data); 391 (unsigned long)file->private_data);
392 392#if 0
393 err = pohmelfs_data_lock(pi, 0, ~0, POHMELFS_READ_LOCK); 393 err = pohmelfs_data_lock(pi, 0, ~0, POHMELFS_READ_LOCK);
394 if (err) 394 if (err)
395 return err; 395 return err;
396 396#endif
397 err = pohmelfs_sync_remote_dir(pi); 397 err = pohmelfs_sync_remote_dir(pi);
398 if (err) 398 if (err)
399 return err; 399 return err;
@@ -513,10 +513,6 @@ struct dentry *pohmelfs_lookup(struct inode *dir, struct dentry *dentry, struct
513 513
514 need_lock = pohmelfs_need_lock(parent, lock_type); 514 need_lock = pohmelfs_need_lock(parent, lock_type);
515 515
516 err = pohmelfs_data_lock(parent, 0, ~0, lock_type);
517 if (err)
518 goto out;
519
520 str.hash = jhash(dentry->d_name.name, dentry->d_name.len, 0); 516 str.hash = jhash(dentry->d_name.name, dentry->d_name.len, 0);
521 517
522 mutex_lock(&parent->offset_lock); 518 mutex_lock(&parent->offset_lock);
@@ -525,8 +521,8 @@ struct dentry *pohmelfs_lookup(struct inode *dir, struct dentry *dentry, struct
525 ino = n->ino; 521 ino = n->ino;
526 mutex_unlock(&parent->offset_lock); 522 mutex_unlock(&parent->offset_lock);
527 523
528 dprintk("%s: 1 ino: %lu, inode: %p, name: '%s', hash: %x, parent_state: %lx.\n", 524 dprintk("%s: start ino: %lu, inode: %p, name: '%s', hash: %x, parent_state: %lx, need_lock: %d.\n",
529 __func__, ino, inode, str.name, str.hash, parent->state); 525 __func__, ino, inode, str.name, str.hash, parent->state, need_lock);
530 526
531 if (ino) { 527 if (ino) {
532 inode = ilookup(dir->i_sb, ino); 528 inode = ilookup(dir->i_sb, ino);
@@ -534,7 +530,7 @@ struct dentry *pohmelfs_lookup(struct inode *dir, struct dentry *dentry, struct
534 goto out; 530 goto out;
535 } 531 }
536 532
537 dprintk("%s: dir: %p, dir_ino: %llu, name: '%s', len: %u, dir_state: %lx, ino: %lu.\n", 533 dprintk("%s: no inode dir: %p, dir_ino: %llu, name: '%s', len: %u, dir_state: %lx, ino: %lu.\n",
538 __func__, dir, parent->ino, 534 __func__, dir, parent->ino,
539 str.name, str.len, parent->state, ino); 535 str.name, str.len, parent->state, ino);
540 536
@@ -543,6 +539,10 @@ struct dentry *pohmelfs_lookup(struct inode *dir, struct dentry *dentry, struct
543 goto out; 539 goto out;
544 } 540 }
545 541
542 err = pohmelfs_data_lock(parent, 0, ~0, lock_type);
543 if (err)
544 goto out;
545
546 err = pohmelfs_lookup_single(parent, &str, ino); 546 err = pohmelfs_lookup_single(parent, &str, ino);
547 if (err) 547 if (err)
548 goto out; 548 goto out;
@@ -557,10 +557,10 @@ struct dentry *pohmelfs_lookup(struct inode *dir, struct dentry *dentry, struct
557 557
558 if (ino) { 558 if (ino) {
559 inode = ilookup(dir->i_sb, ino); 559 inode = ilookup(dir->i_sb, ino);
560 printk("%s: second lookup ino: %lu, inode: %p, name: '%s', hash: %x.\n", 560 dprintk("%s: second lookup ino: %lu, inode: %p, name: '%s', hash: %x.\n",
561 __func__, ino, inode, str.name, str.hash); 561 __func__, ino, inode, str.name, str.hash);
562 if (!inode) { 562 if (!inode) {
563 printk("%s: No inode for ino: %lu, name: '%s', hash: %x.\n", 563 dprintk("%s: No inode for ino: %lu, name: '%s', hash: %x.\n",
564 __func__, ino, str.name, str.hash); 564 __func__, ino, str.name, str.hash);
565 //return NULL; 565 //return NULL;
566 return ERR_PTR(-EACCES); 566 return ERR_PTR(-EACCES);
diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c
index 5bf16504cd6f..b2eaf9047266 100644
--- a/drivers/staging/pohmelfs/inode.c
+++ b/drivers/staging/pohmelfs/inode.c
@@ -1169,16 +1169,17 @@ err_out_put:
1169static int pohmelfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) 1169static int pohmelfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
1170{ 1170{
1171 struct inode *inode = dentry->d_inode; 1171 struct inode *inode = dentry->d_inode;
1172#if 0
1172 struct pohmelfs_inode *pi = POHMELFS_I(inode); 1173 struct pohmelfs_inode *pi = POHMELFS_I(inode);
1173 int err; 1174 int err;
1174 1175
1175 err = pohmelfs_data_lock(pi, 0, ~0, POHMELFS_READ_LOCK); 1176 err = pohmelfs_data_lock(pi, 0, ~0, POHMELFS_READ_LOCK);
1176 if (err) 1177 if (err)
1177 return err; 1178 return err;
1178
1179 dprintk("%s: ino: %llu, mode: %o, uid: %u, gid: %u, size: %llu.\n", 1179 dprintk("%s: ino: %llu, mode: %o, uid: %u, gid: %u, size: %llu.\n",
1180 __func__, pi->ino, inode->i_mode, inode->i_uid, 1180 __func__, pi->ino, inode->i_mode, inode->i_uid,
1181 inode->i_gid, inode->i_size); 1181 inode->i_gid, inode->i_size);
1182#endif
1182 1183
1183 generic_fillattr(inode, stat); 1184 generic_fillattr(inode, stat);
1184 return 0; 1185 return 0;
@@ -1342,14 +1343,6 @@ static void pohmelfs_put_super(struct super_block *sb)
1342 1343
1343 kfree(psb); 1344 kfree(psb);
1344 sb->s_fs_info = NULL; 1345 sb->s_fs_info = NULL;
1345
1346 pohmelfs_ftrans_exit();
1347}
1348
1349static int pohmelfs_remount(struct super_block *sb, int *flags, char *data)
1350{
1351 *flags |= MS_RDONLY;
1352 return 0;
1353} 1346}
1354 1347
1355static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf) 1348static int pohmelfs_statfs(struct dentry *dentry, struct kstatfs *buf)
@@ -1394,42 +1387,33 @@ static int pohmelfs_show_options(struct seq_file *seq, struct vfsmount *vfs)
1394 return 0; 1387 return 0;
1395} 1388}
1396 1389
1397static const struct super_operations pohmelfs_sb_ops = {
1398 .alloc_inode = pohmelfs_alloc_inode,
1399 .destroy_inode = pohmelfs_destroy_inode,
1400 .drop_inode = pohmelfs_drop_inode,
1401 .write_inode = pohmelfs_write_inode,
1402 .put_super = pohmelfs_put_super,
1403 .remount_fs = pohmelfs_remount,
1404 .statfs = pohmelfs_statfs,
1405 .show_options = pohmelfs_show_options,
1406};
1407
1408enum { 1390enum {
1409 pohmelfs_opt_idx, 1391 pohmelfs_opt_idx,
1392 pohmelfs_opt_crypto_thread_num,
1393 pohmelfs_opt_trans_max_pages,
1394 pohmelfs_opt_crypto_fail_unsupported,
1395
1396 /* Remountable options */
1410 pohmelfs_opt_trans_scan_timeout, 1397 pohmelfs_opt_trans_scan_timeout,
1411 pohmelfs_opt_drop_scan_timeout, 1398 pohmelfs_opt_drop_scan_timeout,
1412 pohmelfs_opt_wait_on_page_timeout, 1399 pohmelfs_opt_wait_on_page_timeout,
1413 pohmelfs_opt_trans_retries, 1400 pohmelfs_opt_trans_retries,
1414 pohmelfs_opt_crypto_thread_num,
1415 pohmelfs_opt_trans_max_pages,
1416 pohmelfs_opt_crypto_fail_unsupported,
1417 pohmelfs_opt_mcache_timeout, 1401 pohmelfs_opt_mcache_timeout,
1418}; 1402};
1419 1403
1420static struct match_token pohmelfs_tokens[] = { 1404static struct match_token pohmelfs_tokens[] = {
1421 {pohmelfs_opt_idx, "idx=%u"}, 1405 {pohmelfs_opt_idx, "idx=%u"},
1406 {pohmelfs_opt_crypto_thread_num, "crypto_thread_num=%u"},
1407 {pohmelfs_opt_trans_max_pages, "trans_max_pages=%u"},
1408 {pohmelfs_opt_crypto_fail_unsupported, "crypto_fail_unsupported"},
1422 {pohmelfs_opt_trans_scan_timeout, "trans_scan_timeout=%u"}, 1409 {pohmelfs_opt_trans_scan_timeout, "trans_scan_timeout=%u"},
1423 {pohmelfs_opt_drop_scan_timeout, "drop_scan_timeout=%u"}, 1410 {pohmelfs_opt_drop_scan_timeout, "drop_scan_timeout=%u"},
1424 {pohmelfs_opt_wait_on_page_timeout, "wait_on_page_timeout=%u"}, 1411 {pohmelfs_opt_wait_on_page_timeout, "wait_on_page_timeout=%u"},
1425 {pohmelfs_opt_trans_retries, "trans_retries=%u"}, 1412 {pohmelfs_opt_trans_retries, "trans_retries=%u"},
1426 {pohmelfs_opt_crypto_thread_num, "crypto_thread_num=%u"},
1427 {pohmelfs_opt_trans_max_pages, "trans_max_pages=%u"},
1428 {pohmelfs_opt_crypto_fail_unsupported, "crypto_fail_unsupported"},
1429 {pohmelfs_opt_mcache_timeout, "mcache_timeout=%u"}, 1413 {pohmelfs_opt_mcache_timeout, "mcache_timeout=%u"},
1430}; 1414};
1431 1415
1432static int pohmelfs_parse_options(char *options, struct pohmelfs_sb *psb) 1416static int pohmelfs_parse_options(char *options, struct pohmelfs_sb *psb, int remount)
1433{ 1417{
1434 char *p; 1418 char *p;
1435 substring_t args[MAX_OPT_ARGS]; 1419 substring_t args[MAX_OPT_ARGS];
@@ -1449,6 +1433,9 @@ static int pohmelfs_parse_options(char *options, struct pohmelfs_sb *psb)
1449 if (err) 1433 if (err)
1450 return err; 1434 return err;
1451 1435
1436 if (remount && token <= pohmelfs_opt_crypto_fail_unsupported)
1437 continue;
1438
1452 switch (token) { 1439 switch (token) {
1453 case pohmelfs_opt_idx: 1440 case pohmelfs_opt_idx:
1454 psb->idx = option; 1441 psb->idx = option;
@@ -1485,6 +1472,25 @@ static int pohmelfs_parse_options(char *options, struct pohmelfs_sb *psb)
1485 return 0; 1472 return 0;
1486} 1473}
1487 1474
1475static int pohmelfs_remount(struct super_block *sb, int *flags, char *data)
1476{
1477 int err;
1478 struct pohmelfs_sb *psb = POHMELFS_SB(sb);
1479 unsigned long old_sb_flags = sb->s_flags;
1480
1481 err = pohmelfs_parse_options(data, psb, 1);
1482 if (err)
1483 goto err_out_restore;
1484
1485 if (!(*flags & MS_RDONLY))
1486 sb->s_flags &= ~MS_RDONLY;
1487 return 0;
1488
1489err_out_restore:
1490 sb->s_flags = old_sb_flags;
1491 return err;
1492}
1493
1488static void pohmelfs_flush_inode(struct pohmelfs_inode *pi, unsigned int count) 1494static void pohmelfs_flush_inode(struct pohmelfs_inode *pi, unsigned int count)
1489{ 1495{
1490 struct inode *inode = &pi->vfs_inode; 1496 struct inode *inode = &pi->vfs_inode;
@@ -1753,6 +1759,57 @@ err_out_exit:
1753 return err; 1759 return err;
1754} 1760}
1755 1761
1762static int pohmelfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
1763{
1764 struct netfs_state *st;
1765 struct pohmelfs_ctl *ctl;
1766 struct pohmelfs_sb *psb = POHMELFS_SB(mnt->mnt_sb);
1767 struct pohmelfs_config *c;
1768
1769 mutex_lock(&psb->state_lock);
1770
1771 seq_printf(m, "\nidx addr(:port) socket_type protocol active priority permissions\n");
1772
1773 list_for_each_entry(c, &psb->state_list, config_entry) {
1774 st = &c->state;
1775 ctl = &st->ctl;
1776
1777 seq_printf(m, "%u ", ctl->idx);
1778 if (ctl->addr.sa_family == AF_INET) {
1779 struct sockaddr_in *sin = (struct sockaddr_in *)&st->ctl.addr;
1780 //seq_printf(m, "%pi4:%u", &sin->sin_addr.s_addr, ntohs(sin->sin_port));
1781 seq_printf(m, "%u.%u.%u.%u:%u", NIPQUAD(sin->sin_addr.s_addr), ntohs(sin->sin_port));
1782 } else if (ctl->addr.sa_family == AF_INET6) {
1783 struct sockaddr_in6 *sin = (struct sockaddr_in6 *)&st->ctl.addr;
1784 seq_printf(m, "%pi6:%u", &sin->sin6_addr, ntohs(sin->sin6_port));
1785 } else {
1786 unsigned int i;
1787 for (i=0; i<ctl->addrlen; ++i)
1788 seq_printf(m, "%02x.", ctl->addr.addr[i]);
1789 }
1790
1791 seq_printf(m, " %u %u %d %u %x\n",
1792 ctl->type, ctl->proto,
1793 st->socket != NULL,
1794 ctl->prio, ctl->perm);
1795 }
1796 mutex_unlock(&psb->state_lock);
1797
1798 return 0;
1799}
1800
1801static const struct super_operations pohmelfs_sb_ops = {
1802 .alloc_inode = pohmelfs_alloc_inode,
1803 .destroy_inode = pohmelfs_destroy_inode,
1804 .drop_inode = pohmelfs_drop_inode,
1805 .write_inode = pohmelfs_write_inode,
1806 .put_super = pohmelfs_put_super,
1807 .remount_fs = pohmelfs_remount,
1808 .statfs = pohmelfs_statfs,
1809 .show_options = pohmelfs_show_options,
1810 .show_stats = pohmelfs_show_stats,
1811};
1812
1756/* 1813/*
1757 * Allocate private superblock and create root dir. 1814 * Allocate private superblock and create root dir.
1758 */ 1815 */
@@ -1764,8 +1821,6 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
1764 struct pohmelfs_inode *npi; 1821 struct pohmelfs_inode *npi;
1765 struct qstr str; 1822 struct qstr str;
1766 1823
1767 pohmelfs_ftrans_init();
1768
1769 psb = kzalloc(sizeof(struct pohmelfs_sb), GFP_KERNEL); 1824 psb = kzalloc(sizeof(struct pohmelfs_sb), GFP_KERNEL);
1770 if (!psb) 1825 if (!psb)
1771 goto err_out_exit; 1826 goto err_out_exit;
@@ -1816,7 +1871,7 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
1816 mutex_init(&psb->state_lock); 1871 mutex_init(&psb->state_lock);
1817 INIT_LIST_HEAD(&psb->state_list); 1872 INIT_LIST_HEAD(&psb->state_list);
1818 1873
1819 err = pohmelfs_parse_options((char *) data, psb); 1874 err = pohmelfs_parse_options((char *) data, psb, 0);
1820 if (err) 1875 if (err)
1821 goto err_out_free_sb; 1876 goto err_out_free_sb;
1822 1877
@@ -1845,6 +1900,8 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
1845 err = PTR_ERR(npi); 1900 err = PTR_ERR(npi);
1846 goto err_out_crypto_exit; 1901 goto err_out_crypto_exit;
1847 } 1902 }
1903 set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state);
1904 clear_bit(NETFS_INODE_OWNED, &npi->state);
1848 1905
1849 root = &npi->vfs_inode; 1906 root = &npi->vfs_inode;
1850 1907
@@ -1887,11 +1944,29 @@ static int pohmelfs_get_sb(struct file_system_type *fs_type,
1887 mnt); 1944 mnt);
1888} 1945}
1889 1946
1947/*
1948 * We need this to sync all inodes earlier, since when writeback
1949 * is invoked from the umount/mntput path dcache is already shrunk,
1950 * see generic_shutdown_super(), and no inodes can access the path.
1951 */
1952static void pohmelfs_kill_super(struct super_block *sb)
1953{
1954 struct writeback_control wbc = {
1955 .sync_mode = WB_SYNC_ALL,
1956 .range_start = 0,
1957 .range_end = LLONG_MAX,
1958 .nr_to_write = LONG_MAX,
1959 };
1960 generic_sync_sb_inodes(sb, &wbc);
1961
1962 kill_anon_super(sb);
1963}
1964
1890static struct file_system_type pohmel_fs_type = { 1965static struct file_system_type pohmel_fs_type = {
1891 .owner = THIS_MODULE, 1966 .owner = THIS_MODULE,
1892 .name = "pohmel", 1967 .name = "pohmel",
1893 .get_sb = pohmelfs_get_sb, 1968 .get_sb = pohmelfs_get_sb,
1894 .kill_sb = kill_anon_super, 1969 .kill_sb = pohmelfs_kill_super,
1895}; 1970};
1896 1971
1897/* 1972/*
diff --git a/drivers/staging/pohmelfs/lock.c b/drivers/staging/pohmelfs/lock.c
index ad4a18559bdd..22fef18cae90 100644
--- a/drivers/staging/pohmelfs/lock.c
+++ b/drivers/staging/pohmelfs/lock.c
@@ -41,7 +41,8 @@ static int pohmelfs_send_lock_trans(struct pohmelfs_inode *pi,
41 path_len = err; 41 path_len = err;
42 42
43 err = -ENOMEM; 43 err = -ENOMEM;
44 t = netfs_trans_alloc(psb, path_len + sizeof(struct netfs_lock) + isize, 0, 0); 44 t = netfs_trans_alloc(psb, path_len + sizeof(struct netfs_lock) + isize,
45 NETFS_TRANS_SINGLE_DST, 0);
45 if (!t) 46 if (!t)
46 goto err_out_exit; 47 goto err_out_exit;
47 48
diff --git a/drivers/staging/pohmelfs/net.c b/drivers/staging/pohmelfs/net.c
index c9b8540c1efe..11ecac026ca7 100644
--- a/drivers/staging/pohmelfs/net.c
+++ b/drivers/staging/pohmelfs/net.c
@@ -26,55 +26,6 @@
26 26
27#include "netfs.h" 27#include "netfs.h"
28 28
29static int pohmelfs_ftrans_size = 10240;
30static u32 *pohmelfs_ftrans;
31
32int pohmelfs_ftrans_init(void)
33{
34 pohmelfs_ftrans = vmalloc(pohmelfs_ftrans_size * 4);
35 if (!pohmelfs_ftrans)
36 return -ENOMEM;
37
38 return 0;
39}
40
41void pohmelfs_ftrans_exit(void)
42{
43 vfree(pohmelfs_ftrans);
44}
45
46void pohmelfs_ftrans_clean(u64 id)
47{
48 if (pohmelfs_ftrans) {
49 u32 i = id & 0xffffffff;
50 int idx = i % pohmelfs_ftrans_size;
51
52 pohmelfs_ftrans[idx] = 0;
53 }
54}
55
56void pohmelfs_ftrans_update(u64 id)
57{
58 if (pohmelfs_ftrans) {
59 u32 i = id & 0xffffffff;
60 int idx = i % pohmelfs_ftrans_size;
61
62 pohmelfs_ftrans[idx] = i;
63 }
64}
65
66int pohmelfs_ftrans_check(u64 id)
67{
68 if (pohmelfs_ftrans) {
69 u32 i = id & 0xffffffff;
70 int idx = i % pohmelfs_ftrans_size;
71
72 return (pohmelfs_ftrans[idx] == i);
73 }
74
75 return -1;
76}
77
78/* 29/*
79 * Async machinery lives here. 30 * Async machinery lives here.
80 * All commands being sent to server do _not_ require sync reply, 31 * All commands being sent to server do _not_ require sync reply,
@@ -450,8 +401,24 @@ static int pohmelfs_readdir_response(struct netfs_state *st)
450 if (err != -EEXIST) 401 if (err != -EEXIST)
451 goto err_out_put; 402 goto err_out_put;
452 } else { 403 } else {
404 struct dentry *dentry, *alias, *pd;
405
453 set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state); 406 set_bit(NETFS_INODE_REMOTE_SYNCED, &npi->state);
454 clear_bit(NETFS_INODE_OWNED, &npi->state); 407 clear_bit(NETFS_INODE_OWNED, &npi->state);
408
409 pd = d_find_alias(&parent->vfs_inode);
410 if (pd) {
411 str.hash = full_name_hash(str.name, str.len);
412 dentry = d_alloc(pd, &str);
413 if (dentry) {
414 alias = d_materialise_unique(dentry, &npi->vfs_inode);
415 if (alias)
416 dput(dentry);
417 }
418
419 dput(dentry);
420 dput(pd);
421 }
455 } 422 }
456 } 423 }
457out: 424out:
@@ -638,15 +605,12 @@ static int pohmelfs_transaction_response(struct netfs_state *st)
638 if (dst) { 605 if (dst) {
639 netfs_trans_remove_nolock(dst, st); 606 netfs_trans_remove_nolock(dst, st);
640 t = dst->trans; 607 t = dst->trans;
641
642 pohmelfs_ftrans_update(cmd->start);
643 } 608 }
644 mutex_unlock(&st->trans_lock); 609 mutex_unlock(&st->trans_lock);
645 610
646 if (!t) { 611 if (!t) {
647 int check = pohmelfs_ftrans_check(cmd->start); 612 printk("%s: failed to find transaction: start: %llu: id: %llu, size: %u, ext: %u.\n",
648 printk("%s: failed to find transaction: start: %llu: id: %llu, size: %u, ext: %u, double: %d.\n", 613 __func__, cmd->start, cmd->id, cmd->size, cmd->ext);
649 __func__, cmd->start, cmd->id, cmd->size, cmd->ext, check);
650 err = -EINVAL; 614 err = -EINVAL;
651 goto out; 615 goto out;
652 } 616 }
diff --git a/drivers/staging/pohmelfs/netfs.h b/drivers/staging/pohmelfs/netfs.h
index 2ff21ae5bb12..c78cfcb042fb 100644
--- a/drivers/staging/pohmelfs/netfs.h
+++ b/drivers/staging/pohmelfs/netfs.h
@@ -87,6 +87,7 @@ enum {
87 POHMELFS_FLAGS_DEL, /* Network state control message for DEL */ 87 POHMELFS_FLAGS_DEL, /* Network state control message for DEL */
88 POHMELFS_FLAGS_SHOW, /* Network state control message for SHOW */ 88 POHMELFS_FLAGS_SHOW, /* Network state control message for SHOW */
89 POHMELFS_FLAGS_CRYPTO, /* Crypto data control message */ 89 POHMELFS_FLAGS_CRYPTO, /* Crypto data control message */
90 POHMELFS_FLAGS_MODIFY, /* Network state modification message */
90}; 91};
91 92
92/* 93/*
@@ -116,16 +117,20 @@ struct pohmelfs_crypto
116 unsigned char data[0]; /* Algorithm string, key and IV */ 117 unsigned char data[0]; /* Algorithm string, key and IV */
117}; 118};
118 119
120#define POHMELFS_IO_PERM_READ (1<<0)
121#define POHMELFS_IO_PERM_WRITE (1<<1)
122
119/* 123/*
120 * Configuration command used to create table of different remote servers. 124 * Configuration command used to create table of different remote servers.
121 */ 125 */
122struct pohmelfs_ctl 126struct pohmelfs_ctl
123{ 127{
124 unsigned int idx; /* Config index */ 128 __u32 idx; /* Config index */
125 unsigned int type; /* Socket type */ 129 __u32 type; /* Socket type */
126 unsigned int proto; /* Socket protocol */ 130 __u32 proto; /* Socket protocol */
127 unsigned int addrlen; /* Size of the address */ 131 __u16 addrlen; /* Size of the address */
128 unsigned short unused; /* Align structure by 4 bytes */ 132 __u16 perm; /* IO permission */
133 __u16 prio; /* IO priority */
129 struct saddr addr; /* Remote server address */ 134 struct saddr addr; /* Remote server address */
130}; 135};
131 136
@@ -921,12 +926,6 @@ static inline void pohmelfs_mcache_put(struct pohmelfs_sb *psb,
921 pohmelfs_mcache_free(psb, m); 926 pohmelfs_mcache_free(psb, m);
922} 927}
923 928
924int pohmelfs_ftrans_init(void);
925void pohmelfs_ftrans_exit(void);
926void pohmelfs_ftrans_update(u64 id);
927int pohmelfs_ftrans_check(u64 id);
928void pohmelfs_ftrans_clean(u64 id);
929
930#endif /* __KERNEL__*/ 929#endif /* __KERNEL__*/
931 930
932#endif /* __NETFS_H */ 931#endif /* __NETFS_H */
diff --git a/drivers/staging/pohmelfs/trans.c b/drivers/staging/pohmelfs/trans.c
index bcb59425a21c..fef5f9bd6920 100644
--- a/drivers/staging/pohmelfs/trans.c
+++ b/drivers/staging/pohmelfs/trans.c
@@ -456,34 +456,25 @@ int netfs_trans_finish_send(struct netfs_trans *t, struct pohmelfs_sb *psb)
456 __func__, t, t->gen, t->iovec.iov_len, t->page_num, psb->active_state); 456 __func__, t, t->gen, t->iovec.iov_len, t->page_num, psb->active_state);
457#endif 457#endif
458 mutex_lock(&psb->state_lock); 458 mutex_lock(&psb->state_lock);
459 list_for_each_entry(c, &psb->state_list, config_entry) {
460 st = &c->state;
459 461
460 if ((t->flags & NETFS_TRANS_SINGLE_DST) && psb->active_state) { 462 if (t->flags & NETFS_TRANS_SINGLE_DST) {
461 st = &psb->active_state->state; 463 if (!(st->ctl.perm & POHMELFS_IO_PERM_READ))
462 464 continue;
463 err = -EPIPE; 465 } else {
464 if (netfs_state_poll(st) & POLLOUT) { 466 if (!(st->ctl.perm & POHMELFS_IO_PERM_WRITE))
465 err = netfs_trans_push_dst(t, st); 467 continue;
466 if (!err) {
467 err = netfs_trans_send(t, st);
468 if (err) {
469 netfs_trans_drop_last(t, st);
470 } else {
471 pohmelfs_switch_active(psb);
472 goto out;
473 }
474 }
475 } 468 }
476 pohmelfs_switch_active(psb);
477 }
478 469
479 list_for_each_entry(c, &psb->state_list, config_entry) { 470 if (psb->active_state && (psb->active_state->state.ctl.prio >= st->ctl.prio))
480 st = &c->state; 471 st = &psb->active_state->state;
481 472
482 err = netfs_trans_push(t, st); 473 err = netfs_trans_push(t, st);
483 if (!err && (t->flags & NETFS_TRANS_SINGLE_DST)) 474 if (!err && (t->flags & NETFS_TRANS_SINGLE_DST))
484 break; 475 break;
485 } 476 }
486out: 477
487 mutex_unlock(&psb->state_lock); 478 mutex_unlock(&psb->state_lock);
488#if 0 479#if 0
489 dprintk("%s: fully sent t: %p, gen: %u, size: %u, page_num: %u, err: %d.\n", 480 dprintk("%s: fully sent t: %p, gen: %u, size: %u, page_num: %u, err: %d.\n",
@@ -501,8 +492,6 @@ int netfs_trans_finish(struct netfs_trans *t, struct pohmelfs_sb *psb)
501 492
502 t->gen = atomic_inc_return(&psb->trans_gen); 493 t->gen = atomic_inc_return(&psb->trans_gen);
503 494
504 pohmelfs_ftrans_clean(t->gen);
505
506 cmd->size = t->iovec.iov_len - sizeof(struct netfs_cmd) + 495 cmd->size = t->iovec.iov_len - sizeof(struct netfs_cmd) +
507 t->attached_size + t->attached_pages * sizeof(struct netfs_cmd); 496 t->attached_size + t->attached_pages * sizeof(struct netfs_cmd);
508 cmd->cmd = NETFS_TRANS; 497 cmd->cmd = NETFS_TRANS;
diff --git a/drivers/staging/rt2860/rt_main_dev.c b/drivers/staging/rt2860/rt_main_dev.c
index cf17bcdd7333..6c4396f0903b 100644
--- a/drivers/staging/rt2860/rt_main_dev.c
+++ b/drivers/staging/rt2860/rt_main_dev.c
@@ -722,6 +722,20 @@ err:
722 return (-1); 722 return (-1);
723} /* End of rt28xx_open */ 723} /* End of rt28xx_open */
724 724
725static const struct net_device_ops rt2860_netdev_ops = {
726 .ndo_open = MainVirtualIF_open,
727 .ndo_stop = MainVirtualIF_close,
728 .ndo_do_ioctl = rt28xx_ioctl,
729 .ndo_get_stats = RT28xx_get_ether_stats,
730 .ndo_validate_addr = NULL,
731 .ndo_set_mac_address = eth_mac_addr,
732 .ndo_change_mtu = eth_change_mtu,
733#ifdef IKANOS_VX_1X0
734 .ndo_start_xmit = IKANOS_DataFramesTx,
735#else
736 .ndo_start_xmit = rt28xx_send_packets,
737#endif
738};
725 739
726/* Must not be called for mdev and apdev */ 740/* Must not be called for mdev and apdev */
727static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd) 741static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd)
@@ -733,11 +747,6 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
733 747
734 748
735 //ether_setup(dev); 749 //ether_setup(dev);
736 dev->hard_start_xmit = rt28xx_send_packets;
737
738#ifdef IKANOS_VX_1X0
739 dev->hard_start_xmit = IKANOS_DataFramesTx;
740#endif // IKANOS_VX_1X0 //
741 750
742#ifdef CONFIG_STA_SUPPORT 751#ifdef CONFIG_STA_SUPPORT
743#if WIRELESS_EXT >= 12 752#if WIRELESS_EXT >= 12
@@ -760,12 +769,8 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
760#if WIRELESS_EXT < 21 769#if WIRELESS_EXT < 21
761 dev->get_wireless_stats = rt28xx_get_wireless_stats; 770 dev->get_wireless_stats = rt28xx_get_wireless_stats;
762#endif 771#endif
763 dev->get_stats = RT28xx_get_ether_stats;
764 dev->open = MainVirtualIF_open; //rt28xx_open;
765 dev->stop = MainVirtualIF_close; //rt28xx_close;
766 dev->priv_flags = INT_MAIN; 772 dev->priv_flags = INT_MAIN;
767 dev->do_ioctl = rt28xx_ioctl; 773 dev->netdev_ops = &rt2860_netdev_ops;
768 dev->validate_addr = NULL;
769 // find available device name 774 // find available device name
770 for (i = 0; i < 8; i++) 775 for (i = 0; i < 8; i++)
771 { 776 {
diff --git a/drivers/staging/rt2870/rt2870.h b/drivers/staging/rt2870/rt2870.h
index 5dd15aac9ce7..a69cf338e498 100644
--- a/drivers/staging/rt2870/rt2870.h
+++ b/drivers/staging/rt2870/rt2870.h
@@ -96,6 +96,7 @@
96 {USB_DEVICE(0x0DF6,0x002B)}, /* Sitecom */ \ 96 {USB_DEVICE(0x0DF6,0x002B)}, /* Sitecom */ \
97 {USB_DEVICE(0x0DF6,0x002C)}, /* Sitecom */ \ 97 {USB_DEVICE(0x0DF6,0x002C)}, /* Sitecom */ \
98 {USB_DEVICE(0x0DF6,0x002D)}, /* Sitecom */ \ 98 {USB_DEVICE(0x0DF6,0x002D)}, /* Sitecom */ \
99 {USB_DEVICE(0x0DF6,0x0039)}, /* Sitecom */ \
99 {USB_DEVICE(0x14B2,0x3C06)}, /* Conceptronic */ \ 100 {USB_DEVICE(0x14B2,0x3C06)}, /* Conceptronic */ \
100 {USB_DEVICE(0x14B2,0x3C28)}, /* Conceptronic */ \ 101 {USB_DEVICE(0x14B2,0x3C28)}, /* Conceptronic */ \
101 {USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */ \ 102 {USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */ \
@@ -144,6 +145,7 @@
144 {USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \ 145 {USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \
145 {USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \ 146 {USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \
146 {USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \ 147 {USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \
148 {USB_DEVICE(0x7392,0x7717)}, /* Edimax */ \
147 { }/* Terminating entry */ \ 149 { }/* Terminating entry */ \
148} 150}
149 151
diff --git a/drivers/staging/rt2870/rt_main_dev.c b/drivers/staging/rt2870/rt_main_dev.c
index 313ecea0bfa8..48ad41136d0f 100644
--- a/drivers/staging/rt2870/rt_main_dev.c
+++ b/drivers/staging/rt2870/rt_main_dev.c
@@ -855,6 +855,20 @@ err:
855 return (-1); 855 return (-1);
856} /* End of rt28xx_open */ 856} /* End of rt28xx_open */
857 857
858static const struct net_device_ops rt2870_netdev_ops = {
859 .ndo_open = MainVirtualIF_open,
860 .ndo_stop = MainVirtualIF_close,
861 .ndo_do_ioctl = rt28xx_ioctl,
862 .ndo_get_stats = RT28xx_get_ether_stats,
863 .ndo_validate_addr = NULL,
864 .ndo_set_mac_address = eth_mac_addr,
865 .ndo_change_mtu = eth_change_mtu,
866#ifdef IKANOS_VX_1X0
867 .ndo_start_xmit = IKANOS_DataFramesTx,
868#else
869 .ndo_start_xmit = rt28xx_send_packets,
870#endif
871};
858 872
859/* Must not be called for mdev and apdev */ 873/* Must not be called for mdev and apdev */
860static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd) 874static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd)
@@ -866,12 +880,6 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
866 880
867 881
868 //ether_setup(dev); 882 //ether_setup(dev);
869 dev->hard_start_xmit = rt28xx_send_packets;
870
871#ifdef IKANOS_VX_1X0
872 dev->hard_start_xmit = IKANOS_DataFramesTx;
873#endif // IKANOS_VX_1X0 //
874
875// dev->set_multicast_list = ieee80211_set_multicast_list; 883// dev->set_multicast_list = ieee80211_set_multicast_list;
876// dev->change_mtu = ieee80211_change_mtu; 884// dev->change_mtu = ieee80211_change_mtu;
877#ifdef CONFIG_STA_SUPPORT 885#ifdef CONFIG_STA_SUPPORT
@@ -895,16 +903,10 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
895#if WIRELESS_EXT < 21 903#if WIRELESS_EXT < 21
896 dev->get_wireless_stats = rt28xx_get_wireless_stats; 904 dev->get_wireless_stats = rt28xx_get_wireless_stats;
897#endif 905#endif
898 dev->get_stats = RT28xx_get_ether_stats;
899 dev->open = MainVirtualIF_open; //rt28xx_open;
900 dev->stop = MainVirtualIF_close; //rt28xx_close;
901// dev->uninit = ieee80211_if_reinit; 906// dev->uninit = ieee80211_if_reinit;
902// dev->destructor = ieee80211_if_free; 907// dev->destructor = ieee80211_if_free;
903 dev->priv_flags = INT_MAIN; 908 dev->priv_flags = INT_MAIN;
904 dev->do_ioctl = rt28xx_ioctl; 909 dev->netdev_ops = &rt2870_netdev_ops;
905#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
906 dev->validate_addr = NULL;
907#endif
908 // find available device name 910 // find available device name
909 for (i = 0; i < 8; i++) 911 for (i = 0; i < 8; i++)
910 { 912 {
diff --git a/drivers/staging/rt3070/rt_main_dev.c b/drivers/staging/rt3070/rt_main_dev.c
index c000646286e6..81f769cf1096 100644
--- a/drivers/staging/rt3070/rt_main_dev.c
+++ b/drivers/staging/rt3070/rt_main_dev.c
@@ -436,7 +436,6 @@ static int rt28xx_init(IN struct net_device *net_dev)
436// OID_SET_HT_PHYMODE SetHT; 436// OID_SET_HT_PHYMODE SetHT;
437// WPDMA_GLO_CFG_STRUC GloCfg; 437// WPDMA_GLO_CFG_STRUC GloCfg;
438 UINT32 MacCsr0 = 0; 438 UINT32 MacCsr0 = 0;
439 UINT32 MacValue = 0;
440 439
441#ifdef RT2870 440#ifdef RT2870
442#ifdef INF_AMAZON_SE 441#ifdef INF_AMAZON_SE
@@ -849,6 +848,20 @@ err:
849 return (-1); 848 return (-1);
850} /* End of rt28xx_open */ 849} /* End of rt28xx_open */
851 850
851static const struct net_device_ops rt3070_netdev_ops = {
852 .ndo_open = MainVirtualIF_open,
853 .ndo_stop = MainVirtualIF_close,
854 .ndo_do_ioctl = rt28xx_ioctl,
855 .ndo_get_stats = RT28xx_get_ether_stats,
856 .ndo_validate_addr = NULL,
857 .ndo_set_mac_address = eth_mac_addr,
858 .ndo_change_mtu = eth_change_mtu,
859#ifdef IKANOS_VX_1X0
860 .ndo_start_xmit = IKANOS_DataFramesTx,
861#else
862 .ndo_start_xmit = rt28xx_send_packets,
863#endif
864};
852 865
853/* Must not be called for mdev and apdev */ 866/* Must not be called for mdev and apdev */
854static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd) 867static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER pAd)
@@ -860,12 +873,6 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
860 873
861 874
862 //ether_setup(dev); 875 //ether_setup(dev);
863 dev->hard_start_xmit = rt28xx_send_packets;
864
865#ifdef IKANOS_VX_1X0
866 dev->hard_start_xmit = IKANOS_DataFramesTx;
867#endif // IKANOS_VX_1X0 //
868
869// dev->set_multicast_list = ieee80211_set_multicast_list; 876// dev->set_multicast_list = ieee80211_set_multicast_list;
870// dev->change_mtu = ieee80211_change_mtu; 877// dev->change_mtu = ieee80211_change_mtu;
871#ifdef CONFIG_STA_SUPPORT 878#ifdef CONFIG_STA_SUPPORT
@@ -889,16 +896,10 @@ static NDIS_STATUS rt_ieee80211_if_setup(struct net_device *dev, PRTMP_ADAPTER p
889#if WIRELESS_EXT < 21 896#if WIRELESS_EXT < 21
890 dev->get_wireless_stats = rt28xx_get_wireless_stats; 897 dev->get_wireless_stats = rt28xx_get_wireless_stats;
891#endif 898#endif
892 dev->get_stats = RT28xx_get_ether_stats;
893 dev->open = MainVirtualIF_open; //rt28xx_open;
894 dev->stop = MainVirtualIF_close; //rt28xx_close;
895// dev->uninit = ieee80211_if_reinit; 899// dev->uninit = ieee80211_if_reinit;
896// dev->destructor = ieee80211_if_free; 900// dev->destructor = ieee80211_if_free;
897 dev->priv_flags = INT_MAIN; 901 dev->priv_flags = INT_MAIN;
898 dev->do_ioctl = rt28xx_ioctl; 902 dev->netdev_ops = &rt3070_netdev_ops;
899#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
900 dev->validate_addr = NULL;
901#endif
902 // find available device name 903 // find available device name
903 for (i = 0; i < 8; i++) 904 for (i = 0; i < 8; i++)
904 { 905 {
diff --git a/drivers/staging/rtl8187se/r8180.h b/drivers/staging/rtl8187se/r8180.h
index 12215fc61ddc..db446b7e2e08 100644
--- a/drivers/staging/rtl8187se/r8180.h
+++ b/drivers/staging/rtl8187se/r8180.h
@@ -19,7 +19,7 @@
19#define R8180H 19#define R8180H
20 20
21 21
22#define RTL8180_MODULE_NAME "rtl8180" 22#define RTL8180_MODULE_NAME "r8180"
23#define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a) 23#define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a)
24#define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a) 24#define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a)
25#define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a) 25#define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a)
diff --git a/drivers/staging/rtl8187se/r8180_core.c b/drivers/staging/rtl8187se/r8180_core.c
index 6ecd12de4296..e10413cee0df 100644
--- a/drivers/staging/rtl8187se/r8180_core.c
+++ b/drivers/staging/rtl8187se/r8180_core.c
@@ -640,11 +640,9 @@ void rtl8180_proc_init_one(struct net_device *dev)
640{ 640{
641 struct proc_dir_entry *e; 641 struct proc_dir_entry *e;
642 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); 642 struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
643 priv->dir_dev = create_proc_entry(dev->name, 643 priv->dir_dev = rtl8180_proc;
644 S_IFDIR | S_IRUGO | S_IXUGO,
645 rtl8180_proc);
646 if (!priv->dir_dev) { 644 if (!priv->dir_dev) {
647 DMESGE("Unable to initialize /proc/net/rtl8180/%s\n", 645 DMESGE("Unable to initialize /proc/net/r8180/%s\n",
648 dev->name); 646 dev->name);
649 return; 647 return;
650 } 648 }
@@ -654,7 +652,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
654 652
655 if (!e) { 653 if (!e) {
656 DMESGE("Unable to initialize " 654 DMESGE("Unable to initialize "
657 "/proc/net/rtl8180/%s/stats-hw\n", 655 "/proc/net/r8180/%s/stats-hw\n",
658 dev->name); 656 dev->name);
659 } 657 }
660 658
@@ -663,7 +661,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
663 661
664 if (!e) { 662 if (!e) {
665 DMESGE("Unable to initialize " 663 DMESGE("Unable to initialize "
666 "/proc/net/rtl8180/%s/stats-rx\n", 664 "/proc/net/r8180/%s/stats-rx\n",
667 dev->name); 665 dev->name);
668 } 666 }
669 667
@@ -673,7 +671,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
673 671
674 if (!e) { 672 if (!e) {
675 DMESGE("Unable to initialize " 673 DMESGE("Unable to initialize "
676 "/proc/net/rtl8180/%s/stats-tx\n", 674 "/proc/net/r8180/%s/stats-tx\n",
677 dev->name); 675 dev->name);
678 } 676 }
679 #if 0 677 #if 0
@@ -702,7 +700,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
702 700
703 if (!e) { 701 if (!e) {
704 DMESGE("Unable to initialize " 702 DMESGE("Unable to initialize "
705 "/proc/net/rtl8180/%s/registers\n", 703 "/proc/net/r8180/%s/registers\n",
706 dev->name); 704 dev->name);
707 } 705 }
708} 706}
@@ -977,13 +975,6 @@ void check_tx_ring(struct net_device *dev, int pri)
977 *tmp & (1<<15)? "ok": "err", *(tmp+4)); 975 *tmp & (1<<15)? "ok": "err", *(tmp+4));
978 } 976 }
979 977
980 DMESG("nic at %d",
981 (nic-nicbegin) / 8 /4);
982 DMESG("tail at %d", ((int)tail - (int)begin) /8 /4);
983 DMESG("head at %d", ((int)head - (int)begin) /8 /4);
984 DMESG("check free desc returns %d", check_nic_enought_desc(dev,pri));
985 DMESG("free desc is %d\n", get_curr_tx_free_desc(dev,pri));
986 //rtl8180_reset(dev);
987 return; 978 return;
988} 979}
989 980
@@ -1736,17 +1727,7 @@ short alloc_tx_desc_ring(struct net_device *dev, int bufsize, int count,
1736 * descriptor's buffer must be 256 byte aligned 1727 * descriptor's buffer must be 256 byte aligned
1737 * we shouldn't be here, since we set DMA mask ! 1728 * we shouldn't be here, since we set DMA mask !
1738 */ 1729 */
1739 DMESGW("Fixing TX alignment"); 1730 WARN(1, "DMA buffer is not aligned\n");
1740 desc = (u32*)((u8*)desc + 256);
1741#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
1742 desc = (u32*)((u64)desc &~ 0xff);
1743 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1744 dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
1745#else
1746 desc = (u32*)((u32)desc &~ 0xff);
1747 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1748 dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
1749#endif
1750 } 1731 }
1751 tmp=desc; 1732 tmp=desc;
1752 for (i=0;i<count;i++) 1733 for (i=0;i<count;i++)
@@ -1984,18 +1965,7 @@ short alloc_rx_desc_ring(struct net_device *dev, u16 bufsize, int count)
1984 * descriptor's buffer must be 256 byte aligned 1965 * descriptor's buffer must be 256 byte aligned
1985 * should never happen since we specify the DMA mask 1966 * should never happen since we specify the DMA mask
1986 */ 1967 */
1987 1968 WARN(1, "DMA buffer is not aligned\n");
1988 DMESGW("Fixing RX alignment");
1989 desc = (u32*)((u8*)desc + 256);
1990#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
1991 desc = (u32*)((u64)desc &~ 0xff);
1992 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1993 dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
1994#else
1995 desc = (u32*)((u32)desc &~ 0xff);
1996 dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
1997 dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
1998#endif
1999 } 1969 }
2000 1970
2001 priv->rxring=desc; 1971 priv->rxring=desc;
diff --git a/drivers/staging/slicoss/README b/drivers/staging/slicoss/README
index 2d5b1127ce51..70f49099c065 100644
--- a/drivers/staging/slicoss/README
+++ b/drivers/staging/slicoss/README
@@ -10,7 +10,36 @@ TODO:
10 - move firmware loading to request_firmware() 10 - move firmware loading to request_firmware()
11 - remove direct memory access of structures 11 - remove direct memory access of structures
12 - any remaining sparse and checkpatch.pl warnings 12 - any remaining sparse and checkpatch.pl warnings
13 - any netdev recommended changes 13
14 - use net_device_ops
15 - use dev->stats rather than adapter->stats
16 - don't cast netdev_priv it is already void
17 - use compare_ether_addr
18 - GET RID OF MACROS
19 - work on all architectures
20 - without CONFIG_X86_64 confusion
21 - do 64 bit correctly
22 - don't depend on order of union
23 - get rid of ASSERT(), use BUG() instead but only where necessary
24 looks like most aren't really useful
25 - no new SIOCDEVPRIVATE ioctl allowed
26 - don't use module_param for configuring interrupt mitigation
27 use ethtool instead
28 - reorder code to elminate use of forward declarations
29 - don't keep private linked list of drivers.
30 - remove all the gratiutous debug infrastructure
31 - use PCI_DEVICE()
32 - do ethtool correctly using ethtool_ops
33 - NAPI?
34 - wasted overhead of extra stats
35 - state variables for things that are
36 easily availble and shouldn't be kept in card structure, cardnum, ...
37 slotnumber, events, ...
38 - get rid of slic_spinlock wrapper
39 - volatile == bad design => bad code
40 - locking too fine grained, not designed just throw more locks
41 at problem
42
14 43
15Please send patches to: 44Please send patches to:
16 Greg Kroah-Hartman <gregkh@suse.de> 45 Greg Kroah-Hartman <gregkh@suse.de>
diff --git a/drivers/staging/slicoss/slicoss.c b/drivers/staging/slicoss/slicoss.c
index 948156348478..6f5d0bff4358 100644
--- a/drivers/staging/slicoss/slicoss.c
+++ b/drivers/staging/slicoss/slicoss.c
@@ -345,6 +345,19 @@ static void slic_init_adapter(struct net_device *netdev,
345 return; 345 return;
346} 346}
347 347
348static const struct net_device_ops slic_netdev_ops = {
349 .ndo_open = slic_entry_open,
350 .ndo_stop = slic_entry_halt,
351 .ndo_start_xmit = slic_xmit_start,
352 .ndo_do_ioctl = slic_ioctl,
353 .ndo_set_mac_address = slic_mac_set_address,
354 .ndo_get_stats = slic_get_stats,
355 .ndo_set_multicast_list = slic_mcast_set_list,
356 .ndo_validate_addr = eth_validate_addr,
357 .ndo_set_mac_address = eth_mac_addr,
358 .ndo_change_mtu = eth_change_mtu,
359};
360
348static int __devinit slic_entry_probe(struct pci_dev *pcidev, 361static int __devinit slic_entry_probe(struct pci_dev *pcidev,
349 const struct pci_device_id *pci_tbl_entry) 362 const struct pci_device_id *pci_tbl_entry)
350{ 363{
@@ -442,13 +455,7 @@ static int __devinit slic_entry_probe(struct pci_dev *pcidev,
442 455
443 netdev->base_addr = (unsigned long)adapter->memorybase; 456 netdev->base_addr = (unsigned long)adapter->memorybase;
444 netdev->irq = adapter->irq; 457 netdev->irq = adapter->irq;
445 netdev->open = slic_entry_open; 458 netdev->netdev_ops = &slic_netdev_ops;
446 netdev->stop = slic_entry_halt;
447 netdev->hard_start_xmit = slic_xmit_start;
448 netdev->do_ioctl = slic_ioctl;
449 netdev->set_mac_address = slic_mac_set_address;
450 netdev->get_stats = slic_get_stats;
451 netdev->set_multicast_list = slic_mcast_set_list;
452 459
453 slic_debug_adapter_create(adapter); 460 slic_debug_adapter_create(adapter);
454 461
@@ -1260,7 +1267,7 @@ static int slic_mcast_add_list(struct adapter *adapter, char *address)
1260 } 1267 }
1261 1268
1262 /* Doesn't already exist. Allocate a structure to hold it */ 1269 /* Doesn't already exist. Allocate a structure to hold it */
1263 mcaddr = kmalloc(sizeof(struct mcast_address), GFP_KERNEL); 1270 mcaddr = kmalloc(sizeof(struct mcast_address), GFP_ATOMIC);
1264 if (mcaddr == NULL) 1271 if (mcaddr == NULL)
1265 return 1; 1272 return 1;
1266 1273
@@ -2284,7 +2291,7 @@ static u32 slic_card_locate(struct adapter *adapter)
2284 } 2291 }
2285 if (!physcard) { 2292 if (!physcard) {
2286 /* no structure allocated for this physical card yet */ 2293 /* no structure allocated for this physical card yet */
2287 physcard = kzalloc(sizeof(struct physcard), GFP_KERNEL); 2294 physcard = kzalloc(sizeof(struct physcard), GFP_ATOMIC);
2288 ASSERT(physcard); 2295 ASSERT(physcard);
2289 2296
2290 physcard->next = slic_global.phys_card; 2297 physcard->next = slic_global.phys_card;
diff --git a/drivers/staging/stlc45xx/Kconfig b/drivers/staging/stlc45xx/Kconfig
index 8d3f46f190e8..947fb75a9c68 100644
--- a/drivers/staging/stlc45xx/Kconfig
+++ b/drivers/staging/stlc45xx/Kconfig
@@ -1,6 +1,6 @@
1config STLC45XX 1config STLC45XX
2 tristate "stlc4550/4560 support" 2 tristate "stlc4550/4560 support"
3 depends on MAC80211 && WLAN_80211 && SPI_MASTER 3 depends on MAC80211 && WLAN_80211 && SPI_MASTER && GENERIC_HARDIRQS
4 ---help--- 4 ---help---
5 This is a driver for stlc4550 and stlc4560 chipsets. 5 This is a driver for stlc4550 and stlc4560 chipsets.
6 6
diff --git a/drivers/staging/sxg/sxg.c b/drivers/staging/sxg/sxg.c
index 891f6e334672..076b3f7d39eb 100644
--- a/drivers/staging/sxg/sxg.c
+++ b/drivers/staging/sxg/sxg.c
@@ -322,6 +322,8 @@ int sxg_add_msi_isr(struct adapter_t *adapter)
322 int ret,i; 322 int ret,i;
323 323
324 if (!adapter->intrregistered) { 324 if (!adapter->intrregistered) {
325 spin_unlock_irqrestore(&sxg_global.driver_lock,
326 sxg_global.flags);
325 for (i=0; i<adapter->nr_msix_entries; i++) { 327 for (i=0; i<adapter->nr_msix_entries; i++) {
326 ret = request_irq (adapter->msi_entries[i].vector, 328 ret = request_irq (adapter->msi_entries[i].vector,
327 sxg_isr, 329 sxg_isr,
@@ -329,6 +331,8 @@ int sxg_add_msi_isr(struct adapter_t *adapter)
329 adapter->netdev->name, 331 adapter->netdev->name,
330 adapter->netdev); 332 adapter->netdev);
331 if (ret) { 333 if (ret) {
334 spin_lock_irqsave(&sxg_global.driver_lock,
335 sxg_global.flags);
332 DBG_ERROR("sxg: MSI-X request_irq (%s) " 336 DBG_ERROR("sxg: MSI-X request_irq (%s) "
333 "FAILED [%x]\n", adapter->netdev->name, 337 "FAILED [%x]\n", adapter->netdev->name,
334 ret); 338 ret);
@@ -336,6 +340,7 @@ int sxg_add_msi_isr(struct adapter_t *adapter)
336 } 340 }
337 } 341 }
338 } 342 }
343 spin_lock_irqsave(&sxg_global.driver_lock, sxg_global.flags);
339 adapter->msi_enabled = TRUE; 344 adapter->msi_enabled = TRUE;
340 adapter->intrregistered = 1; 345 adapter->intrregistered = 1;
341 adapter->IntRegistered = TRUE; 346 adapter->IntRegistered = TRUE;
@@ -896,6 +901,22 @@ static inline int sxg_read_config(struct adapter_t *adapter)
896 return status; 901 return status;
897} 902}
898 903
904static const struct net_device_ops sxg_netdev_ops = {
905 .ndo_open = sxg_entry_open,
906 .ndo_stop = sxg_entry_halt,
907 .ndo_start_xmit = sxg_send_packets,
908 .ndo_do_ioctl = sxg_ioctl,
909 .ndo_change_mtu = sxg_change_mtu,
910 .ndo_get_stats = sxg_get_stats,
911 .ndo_set_multicast_list = sxg_mcast_set_list,
912 .ndo_validate_addr = eth_validate_addr,
913#if XXXTODO
914 .ndo_set_mac_address = sxg_mac_set_address,
915#else
916 .ndo_set_mac_address = eth_mac_addr,
917#endif
918};
919
899static int sxg_entry_probe(struct pci_dev *pcidev, 920static int sxg_entry_probe(struct pci_dev *pcidev,
900 const struct pci_device_id *pci_tbl_entry) 921 const struct pci_device_id *pci_tbl_entry)
901{ 922{
@@ -1095,16 +1116,7 @@ static int sxg_entry_probe(struct pci_dev *pcidev,
1095 1116
1096 netdev->base_addr = (unsigned long)adapter->base_addr; 1117 netdev->base_addr = (unsigned long)adapter->base_addr;
1097 netdev->irq = adapter->irq; 1118 netdev->irq = adapter->irq;
1098 netdev->open = sxg_entry_open; 1119 netdev->netdev_ops = &sxg_netdev_ops;
1099 netdev->stop = sxg_entry_halt;
1100 netdev->hard_start_xmit = sxg_send_packets;
1101 netdev->do_ioctl = sxg_ioctl;
1102 netdev->change_mtu = sxg_change_mtu;
1103#if XXXTODO
1104 netdev->set_mac_address = sxg_mac_set_address;
1105#endif
1106 netdev->get_stats = sxg_get_stats;
1107 netdev->set_multicast_list = sxg_mcast_set_list;
1108 SET_ETHTOOL_OPS(netdev, &sxg_nic_ethtool_ops); 1120 SET_ETHTOOL_OPS(netdev, &sxg_nic_ethtool_ops);
1109 netdev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; 1121 netdev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
1110 err = sxg_set_interrupt_capability(adapter); 1122 err = sxg_set_interrupt_capability(adapter);
@@ -2247,6 +2259,8 @@ static int sxg_entry_open(struct net_device *dev)
2247 DBG_ERROR("sxg: %s EXIT\n", __func__); 2259 DBG_ERROR("sxg: %s EXIT\n", __func__);
2248 2260
2249 spin_unlock_irqrestore(&sxg_global.driver_lock, sxg_global.flags); 2261 spin_unlock_irqrestore(&sxg_global.driver_lock, sxg_global.flags);
2262 mod_timer(&adapter->watchdog_timer, jiffies);
2263
2250 return STATUS_SUCCESS; 2264 return STATUS_SUCCESS;
2251} 2265}
2252 2266
@@ -2568,6 +2582,7 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2568 u64 phys_addr; 2582 u64 phys_addr;
2569 unsigned long flags; 2583 unsigned long flags;
2570 unsigned long queue_id=0; 2584 unsigned long queue_id=0;
2585 int offload_cksum = 0;
2571 2586
2572 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "DumbSgl", 2587 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "DumbSgl",
2573 pSgl, SxgSgl, 0, 0); 2588 pSgl, SxgSgl, 0, 0);
@@ -2606,7 +2621,11 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2606 struct iphdr *ip; 2621 struct iphdr *ip;
2607 2622
2608 ip = ip_hdr(skb); 2623 ip = ip_hdr(skb);
2609 if ((ip->protocol == IPPROTO_TCP)&&(DataLength >= sizeof( 2624 if (ip->protocol == IPPROTO_TCP)
2625 offload_cksum = 1;
2626 if (!offload_cksum || !tcp_hdr(skb))
2627 queue_id = 0;
2628 else if (offload_cksum && (DataLength >= sizeof(
2610 struct tcphdr))){ 2629 struct tcphdr))){
2611 queue_id = ((ntohs(tcp_hdr(skb)->dest) == ISCSI_PORT) ? 2630 queue_id = ((ntohs(tcp_hdr(skb)->dest) == ISCSI_PORT) ?
2612 (ntohs (tcp_hdr(skb)->source) & 2631 (ntohs (tcp_hdr(skb)->source) &
@@ -2615,8 +2634,11 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2615 SXG_LARGE_SEND_QUEUE_MASK)); 2634 SXG_LARGE_SEND_QUEUE_MASK));
2616 } 2635 }
2617 } else if (skb->protocol == htons(ETH_P_IPV6)) { 2636 } else if (skb->protocol == htons(ETH_P_IPV6)) {
2618 if ((ipv6_hdr(skb)->nexthdr == IPPROTO_TCP) && (DataLength >= 2637 if (ipv6_hdr(skb)->nexthdr == IPPROTO_TCP)
2619 sizeof(struct tcphdr)) ) { 2638 offload_cksum = 1;
2639 if (!offload_cksum || !tcp_hdr(skb))
2640 queue_id = 0;
2641 else if (offload_cksum && (DataLength>=sizeof(struct tcphdr))){
2620 queue_id = ((ntohs(tcp_hdr(skb)->dest) == ISCSI_PORT) ? 2642 queue_id = ((ntohs(tcp_hdr(skb)->dest) == ISCSI_PORT) ?
2621 (ntohs (tcp_hdr(skb)->source) & 2643 (ntohs (tcp_hdr(skb)->source) &
2622 SXG_LARGE_SEND_QUEUE_MASK): 2644 SXG_LARGE_SEND_QUEUE_MASK):
@@ -2645,23 +2667,38 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2645 } 2667 }
2646 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "DumbCmd", 2668 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "DumbCmd",
2647 XmtCmd, XmtRingInfo->Head, XmtRingInfo->Tail, 0); 2669 XmtCmd, XmtRingInfo->Head, XmtRingInfo->Tail, 0);
2648 /* Update stats */ 2670 memset(XmtCmd, '\0', sizeof(*XmtCmd));
2649 adapter->stats.tx_packets++; 2671 XmtCmd->SgEntries = 1;
2650 adapter->stats.tx_bytes += DataLength; 2672 XmtCmd->Flags = 0;
2651#if XXXTODO /* Stats stuff */ 2673 if (skb->ip_summed == CHECKSUM_PARTIAL) {
2652 if (SXG_MULTICAST_PACKET(EtherHdr)) { 2674 /*
2653 if (SXG_BROADCAST_PACKET(EtherHdr)) { 2675 * We need to set the Checkum in IP header to 0. This is
2654 adapter->Stats.DumbXmtBcastPkts++; 2676 * required by hardware.
2655 adapter->Stats.DumbXmtBcastBytes += DataLength; 2677 */
2678 if (offload_cksum) {
2679 ip_hdr(skb)->check = 0x0;
2680 XmtCmd->CsumFlags.Flags |= SXG_SLOWCMD_CSUM_IP;
2681 XmtCmd->CsumFlags.Flags |= SXG_SLOWCMD_CSUM_TCP;
2682 /*
2683 * Dont know if length will require a change in
2684 * case of VLAN
2685 */
2686 XmtCmd->CsumFlags.MacLen = ETH_HLEN;
2687 XmtCmd->CsumFlags.IpHl = skb_network_header_len(skb) >>
2688 SXG_NW_HDR_LEN_SHIFT;
2656 } else { 2689 } else {
2657 adapter->Stats.DumbXmtMcastPkts++; 2690 if (skb_checksum_help(skb)){
2658 adapter->Stats.DumbXmtMcastBytes += DataLength; 2691 printk(KERN_EMERG "Dropped UDP packet for"
2692 " incorrect checksum calculation\n");
2693 if (XmtCmd)
2694 SXG_ABORT_CMD(XmtRingInfo);
2695 spin_unlock_irqrestore(&adapter->XmtZeroLock,
2696 flags);
2697 return STATUS_SUCCESS;
2698 }
2659 } 2699 }
2660 } else {
2661 adapter->Stats.DumbXmtUcastPkts++;
2662 adapter->Stats.DumbXmtUcastBytes += DataLength;
2663 } 2700 }
2664#endif 2701
2665 /* 2702 /*
2666 * Fill in the command 2703 * Fill in the command
2667 * Copy out the first SGE to the command and adjust for offset 2704 * Copy out the first SGE to the command and adjust for offset
@@ -2679,31 +2716,17 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2679 (SXG_INVALID_SGL(phys_addr,skb->data_len))) 2716 (SXG_INVALID_SGL(phys_addr,skb->data_len)))
2680 { 2717 {
2681 spin_unlock_irqrestore(&adapter->XmtZeroLock, flags); 2718 spin_unlock_irqrestore(&adapter->XmtZeroLock, flags);
2719 if (XmtCmd)
2720 SXG_ABORT_CMD(XmtRingInfo);
2682 /* Silently drop this packet */ 2721 /* Silently drop this packet */
2683 printk(KERN_EMERG"Dropped a packet for 64k boundary problem\n"); 2722 printk(KERN_EMERG"Dropped a packet for 64k boundary problem\n");
2684 return STATUS_SUCCESS; 2723 return STATUS_SUCCESS;
2685 } 2724 }
2686 memset(XmtCmd, '\0', sizeof(*XmtCmd));
2687 XmtCmd->Buffer.FirstSgeAddress = phys_addr; 2725 XmtCmd->Buffer.FirstSgeAddress = phys_addr;
2688 XmtCmd->Buffer.FirstSgeLength = DataLength; 2726 XmtCmd->Buffer.FirstSgeLength = DataLength;
2689 XmtCmd->Buffer.SgeOffset = 0; 2727 XmtCmd->Buffer.SgeOffset = 0;
2690 XmtCmd->Buffer.TotalLength = DataLength; 2728 XmtCmd->Buffer.TotalLength = DataLength;
2691 XmtCmd->SgEntries = 1;
2692 XmtCmd->Flags = 0;
2693 2729
2694 if (skb->ip_summed == CHECKSUM_PARTIAL) {
2695 /*
2696 * We need to set the Checkum in IP header to 0. This is
2697 * required by hardware.
2698 */
2699 ip_hdr(skb)->check = 0x0;
2700 XmtCmd->CsumFlags.Flags |= SXG_SLOWCMD_CSUM_IP;
2701 XmtCmd->CsumFlags.Flags |= SXG_SLOWCMD_CSUM_TCP;
2702 /* Dont know if length will require a change in case of VLAN */
2703 XmtCmd->CsumFlags.MacLen = ETH_HLEN;
2704 XmtCmd->CsumFlags.IpHl = skb_network_header_len(skb) >>
2705 SXG_NW_HDR_LEN_SHIFT;
2706 }
2707 /* 2730 /*
2708 * Advance transmit cmd descripter by 1. 2731 * Advance transmit cmd descripter by 1.
2709 * NOTE - See comments in SxgTcpOutput where we write 2732 * NOTE - See comments in SxgTcpOutput where we write
@@ -2715,6 +2738,24 @@ static int sxg_dumb_sgl(struct sxg_x64_sgl *pSgl,
2715 ASSERT((queue_id & ~SXG_LARGE_SEND_QUEUE_MASK) == 0); 2738 ASSERT((queue_id & ~SXG_LARGE_SEND_QUEUE_MASK) == 0);
2716 WRITE_REG(adapter->UcodeRegs[0].XmtCmd, ((queue_id << 16) | 1), TRUE); 2739 WRITE_REG(adapter->UcodeRegs[0].XmtCmd, ((queue_id << 16) | 1), TRUE);
2717 adapter->Stats.XmtQLen++; /* Stats within lock */ 2740 adapter->Stats.XmtQLen++; /* Stats within lock */
2741 /* Update stats */
2742 adapter->stats.tx_packets++;
2743 adapter->stats.tx_bytes += DataLength;
2744#if XXXTODO /* Stats stuff */
2745 if (SXG_MULTICAST_PACKET(EtherHdr)) {
2746 if (SXG_BROADCAST_PACKET(EtherHdr)) {
2747 adapter->Stats.DumbXmtBcastPkts++;
2748 adapter->Stats.DumbXmtBcastBytes += DataLength;
2749 } else {
2750 adapter->Stats.DumbXmtMcastPkts++;
2751 adapter->Stats.DumbXmtMcastBytes += DataLength;
2752 }
2753 } else {
2754 adapter->Stats.DumbXmtUcastPkts++;
2755 adapter->Stats.DumbXmtUcastBytes += DataLength;
2756 }
2757#endif
2758
2718 spin_unlock_irqrestore(&adapter->XmtZeroLock, flags); 2759 spin_unlock_irqrestore(&adapter->XmtZeroLock, flags);
2719 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "XDumSgl2", 2760 SXG_TRACE(TRACE_SXG, SxgTraceBuffer, TRACE_NOISY, "XDumSgl2",
2720 XmtCmd, pSgl, SxgSgl, 0); 2761 XmtCmd, pSgl, SxgSgl, 0);
diff --git a/drivers/staging/uc2322/aten2011.c b/drivers/staging/uc2322/aten2011.c
index 85b705453066..9c62f787cc9c 100644
--- a/drivers/staging/uc2322/aten2011.c
+++ b/drivers/staging/uc2322/aten2011.c
@@ -603,10 +603,9 @@ static void ATEN2011_bulk_out_data_callback(struct urb *urb)
603 603
604 tty = tty_port_tty_get(&ATEN2011_port->port->port); 604 tty = tty_port_tty_get(&ATEN2011_port->port->port);
605 605
606 if (tty && ATEN2011_port->open) { 606 if (tty && ATEN2011_port->open)
607 /* tell the tty driver that something has changed */ 607 /* tell the tty driver that something has changed */
608 wake_up_interruptible(&tty->write_wait); 608 tty_wakeup(tty);
609 }
610 609
611 /* schedule_work(&ATEN2011_port->port->work); */ 610 /* schedule_work(&ATEN2011_port->port->work); */
612 tty_kref_put(tty); 611 tty_kref_put(tty);
@@ -825,12 +824,6 @@ static int ATEN2011_open(struct tty_struct *tty, struct usb_serial_port *port,
825 status = 0; 824 status = 0;
826 status = set_reg_sync(port, ATEN2011_port->ControlRegOffset, Data); 825 status = set_reg_sync(port, ATEN2011_port->ControlRegOffset, Data);
827 826
828 /* force low_latency on so that our tty_push actually forces *
829 * the data through,otherwise it is scheduled, and with *
830 * high data rates (like with OHCI) data can get lost. */
831
832 if (tty)
833 tty->low_latency = 1;
834 /* 827 /*
835 * Check to see if we've set up our endpoint info yet 828 * Check to see if we've set up our endpoint info yet
836 * (can't set it up in ATEN2011_startup as the structures 829 * (can't set it up in ATEN2011_startup as the structures
@@ -1473,22 +1466,7 @@ static void ATEN2011_set_termios(struct tty_struct *tty,
1473 1466
1474 cflag = tty->termios->c_cflag; 1467 cflag = tty->termios->c_cflag;
1475 1468
1476 if (!cflag) { 1469 dbg("%s - cflag %08x iflag %08x", __func__,
1477 dbg("%s %s", __func__, "cflag is NULL");
1478 return;
1479 }
1480
1481 /* check that they really want us to change something */
1482 if (old_termios) {
1483 if ((cflag == old_termios->c_cflag) &&
1484 (RELEVANT_IFLAG(tty->termios->c_iflag) ==
1485 RELEVANT_IFLAG(old_termios->c_iflag))) {
1486 dbg("%s", "Nothing to change");
1487 return;
1488 }
1489 }
1490
1491 dbg("%s - clfag %08x iflag %08x", __func__,
1492 tty->termios->c_cflag, RELEVANT_IFLAG(tty->termios->c_iflag)); 1470 tty->termios->c_cflag, RELEVANT_IFLAG(tty->termios->c_iflag));
1493 1471
1494 if (old_termios) { 1472 if (old_termios) {
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 9c3f9439f35e..3b2d52819b4c 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -386,7 +386,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
386 if (err) 386 if (err)
387 goto error_free_hw; 387 goto error_free_hw;
388 388
389 usb_set_intfdata(intf, priv); 389 usb_set_intfdata(intf, dev);
390 390
391 return 0; 391 return 0;
392 392
@@ -415,10 +415,15 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
415 415
416static void wb35_disconnect(struct usb_interface *intf) 416static void wb35_disconnect(struct usb_interface *intf)
417{ 417{
418 struct wbsoft_priv *priv = usb_get_intfdata(intf); 418 struct ieee80211_hw *hw = usb_get_intfdata(intf);
419 struct wbsoft_priv *priv = hw->priv;
419 420
420 wb35_hw_halt(priv); 421 wb35_hw_halt(priv);
421 422
423 ieee80211_stop_queues(hw);
424 ieee80211_unregister_hw(hw);
425 ieee80211_free_hw(hw);
426
422 usb_set_intfdata(intf, NULL); 427 usb_set_intfdata(intf, NULL);
423 usb_put_dev(interface_to_usbdev(intf)); 428 usb_put_dev(interface_to_usbdev(intf));
424} 429}
diff --git a/drivers/staging/wlan-ng/p80211netdev.c b/drivers/staging/wlan-ng/p80211netdev.c
index b2a606a36936..393e4df70dfd 100644
--- a/drivers/staging/wlan-ng/p80211netdev.c
+++ b/drivers/staging/wlan-ng/p80211netdev.c
@@ -711,6 +711,20 @@ static int wlan_change_mtu(netdevice_t *dev, int new_mtu)
711 return 0; 711 return 0;
712} 712}
713 713
714static const struct net_device_ops p80211_netdev_ops = {
715 .ndo_init = p80211knetdev_init,
716 .ndo_open = p80211knetdev_open,
717 .ndo_stop = p80211knetdev_stop,
718 .ndo_get_stats = p80211knetdev_get_stats,
719 .ndo_start_xmit = p80211knetdev_hard_start_xmit,
720 .ndo_set_multicast_list = p80211knetdev_set_multicast_list,
721 .ndo_do_ioctl = p80211knetdev_do_ioctl,
722 .ndo_set_mac_address = p80211knetdev_set_mac_address,
723 .ndo_tx_timeout = p80211knetdev_tx_timeout,
724 .ndo_change_mtu = wlan_change_mtu,
725 .ndo_validate_addr = eth_validate_addr,
726};
727
714/*---------------------------------------------------------------- 728/*----------------------------------------------------------------
715* wlan_setup 729* wlan_setup
716* 730*
@@ -756,11 +770,7 @@ int wlan_setup(wlandevice_t *wlandev)
756 } else { 770 } else {
757 wlandev->netdev = dev; 771 wlandev->netdev = dev;
758 dev->ml_priv = wlandev; 772 dev->ml_priv = wlandev;
759 dev->hard_start_xmit = p80211knetdev_hard_start_xmit; 773 dev->netdev_ops = &p80211_netdev_ops;
760 dev->get_stats = p80211knetdev_get_stats;
761 dev->init = p80211knetdev_init;
762 dev->open = p80211knetdev_open;
763 dev->stop = p80211knetdev_stop;
764 774
765 mutex_init(&wlandev->ioctl_lock); 775 mutex_init(&wlandev->ioctl_lock);
766 /* block ioctls until fully initialised. Don't forget to call 776 /* block ioctls until fully initialised. Don't forget to call
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index d0b093b66adc..5e38ba10a3a9 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -961,7 +961,7 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
961 961
962 switch (trip_type) { 962 switch (trip_type) {
963 case THERMAL_TRIP_CRITICAL: 963 case THERMAL_TRIP_CRITICAL:
964 if (temp > trip_temp) { 964 if (temp >= trip_temp) {
965 if (tz->ops->notify) 965 if (tz->ops->notify)
966 ret = tz->ops->notify(tz, count, 966 ret = tz->ops->notify(tz, count,
967 trip_type); 967 trip_type);
@@ -974,7 +974,7 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
974 } 974 }
975 break; 975 break;
976 case THERMAL_TRIP_HOT: 976 case THERMAL_TRIP_HOT:
977 if (temp > trip_temp) 977 if (temp >= trip_temp)
978 if (tz->ops->notify) 978 if (tz->ops->notify)
979 tz->ops->notify(tz, count, trip_type); 979 tz->ops->notify(tz, count, trip_type);
980 break; 980 break;
@@ -986,14 +986,14 @@ void thermal_zone_device_update(struct thermal_zone_device *tz)
986 986
987 cdev = instance->cdev; 987 cdev = instance->cdev;
988 988
989 if (temp > trip_temp) 989 if (temp >= trip_temp)
990 cdev->ops->set_cur_state(cdev, 1); 990 cdev->ops->set_cur_state(cdev, 1);
991 else 991 else
992 cdev->ops->set_cur_state(cdev, 0); 992 cdev->ops->set_cur_state(cdev, 0);
993 } 993 }
994 break; 994 break;
995 case THERMAL_TRIP_PASSIVE: 995 case THERMAL_TRIP_PASSIVE:
996 if (temp > trip_temp || tz->passive) 996 if (temp >= trip_temp || tz->passive)
997 thermal_zone_device_passive(tz, temp, 997 thermal_zone_device_passive(tz, temp,
998 trip_temp, count); 998 trip_temp, count);
999 break; 999 break;
diff --git a/drivers/uio/uio_cif.c b/drivers/uio/uio_cif.c
index c60b8fcf0e3e..28034c812914 100644
--- a/drivers/uio/uio_cif.c
+++ b/drivers/uio/uio_cif.c
@@ -147,5 +147,6 @@ static void __exit hilscher_exit_module(void)
147module_init(hilscher_init_module); 147module_init(hilscher_init_module);
148module_exit(hilscher_exit_module); 148module_exit(hilscher_exit_module);
149 149
150MODULE_DEVICE_TABLE(pci, hilscher_pci_ids);
150MODULE_LICENSE("GPL v2"); 151MODULE_LICENSE("GPL v2");
151MODULE_AUTHOR("Hans J. Koch, Benedikt Spranger"); 152MODULE_AUTHOR("Hans J. Koch, Benedikt Spranger");
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 89299a5ce168..0716cdb44cd8 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -27,6 +27,8 @@ obj-$(CONFIG_USB_WUSB) += wusbcore/
27 27
28obj-$(CONFIG_USB_ACM) += class/ 28obj-$(CONFIG_USB_ACM) += class/
29obj-$(CONFIG_USB_PRINTER) += class/ 29obj-$(CONFIG_USB_PRINTER) += class/
30obj-$(CONFIG_USB_WDM) += class/
31obj-$(CONFIG_USB_TMC) += class/
30 32
31obj-$(CONFIG_USB_STORAGE) += storage/ 33obj-$(CONFIG_USB_STORAGE) += storage/
32obj-$(CONFIG_USB) += storage/ 34obj-$(CONFIG_USB) += storage/
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 869d47cb6db3..0a69c0977e3f 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -546,10 +546,6 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
546 tty->driver_data = acm; 546 tty->driver_data = acm;
547 acm->tty = tty; 547 acm->tty = tty;
548 548
549 /* force low_latency on so that our tty_push actually forces the data through,
550 otherwise it is scheduled, and with high data rates data can get lost. */
551 tty->low_latency = 1;
552
553 if (usb_autopm_get_interface(acm->control) < 0) 549 if (usb_autopm_get_interface(acm->control) < 0)
554 goto early_bail; 550 goto early_bail;
555 else 551 else
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index 3771d6e6d0cc..0fe434505ac4 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * This driver supports USB CDC WCM Device Management. 4 * This driver supports USB CDC WCM Device Management.
5 * 5 *
6 * Copyright (c) 2007-2008 Oliver Neukum 6 * Copyright (c) 2007-2009 Oliver Neukum
7 * 7 *
8 * Some code taken from cdc-acm.c 8 * Some code taken from cdc-acm.c
9 * 9 *
@@ -610,7 +610,7 @@ static int wdm_probe(struct usb_interface *intf, const struct usb_device_id *id)
610 if (!buffer) 610 if (!buffer)
611 goto out; 611 goto out;
612 612
613 while (buflen > 0) { 613 while (buflen > 2) {
614 if (buffer [1] != USB_DT_CS_INTERFACE) { 614 if (buffer [1] != USB_DT_CS_INTERFACE) {
615 dev_err(&intf->dev, "skipping garbage\n"); 615 dev_err(&intf->dev, "skipping garbage\n");
616 goto next_desc; 616 goto next_desc;
@@ -646,16 +646,18 @@ next_desc:
646 spin_lock_init(&desc->iuspin); 646 spin_lock_init(&desc->iuspin);
647 init_waitqueue_head(&desc->wait); 647 init_waitqueue_head(&desc->wait);
648 desc->wMaxCommand = maxcom; 648 desc->wMaxCommand = maxcom;
649 /* this will be expanded and needed in hardware endianness */
649 desc->inum = cpu_to_le16((u16)intf->cur_altsetting->desc.bInterfaceNumber); 650 desc->inum = cpu_to_le16((u16)intf->cur_altsetting->desc.bInterfaceNumber);
650 desc->intf = intf; 651 desc->intf = intf;
651 INIT_WORK(&desc->rxwork, wdm_rxwork); 652 INIT_WORK(&desc->rxwork, wdm_rxwork);
652 653
653 iface = &intf->altsetting[0]; 654 rv = -EINVAL;
655 iface = intf->cur_altsetting;
656 if (iface->desc.bNumEndpoints != 1)
657 goto err;
654 ep = &iface->endpoint[0].desc; 658 ep = &iface->endpoint[0].desc;
655 if (!usb_endpoint_is_int_in(ep)) { 659 if (!ep || !usb_endpoint_is_int_in(ep))
656 rv = -EINVAL;
657 goto err; 660 goto err;
658 }
659 661
660 desc->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize); 662 desc->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize);
661 desc->bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0; 663 desc->bMaxPacketSize0 = udev->descriptor.bMaxPacketSize0;
@@ -711,12 +713,19 @@ next_desc:
711 713
712 usb_set_intfdata(intf, desc); 714 usb_set_intfdata(intf, desc);
713 rv = usb_register_dev(intf, &wdm_class); 715 rv = usb_register_dev(intf, &wdm_class);
714 dev_info(&intf->dev, "cdc-wdm%d: USB WDM device\n",
715 intf->minor - WDM_MINOR_BASE);
716 if (rv < 0) 716 if (rv < 0)
717 goto err; 717 goto err3;
718 else
719 dev_info(&intf->dev, "cdc-wdm%d: USB WDM device\n",
720 intf->minor - WDM_MINOR_BASE);
718out: 721out:
719 return rv; 722 return rv;
723err3:
724 usb_set_intfdata(intf, NULL);
725 usb_buffer_free(interface_to_usbdev(desc->intf),
726 desc->bMaxPacketSize0,
727 desc->inbuf,
728 desc->response->transfer_dma);
720err2: 729err2:
721 usb_buffer_free(interface_to_usbdev(desc->intf), 730 usb_buffer_free(interface_to_usbdev(desc->intf),
722 desc->wMaxPacketSize, 731 desc->wMaxPacketSize,
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c
index cadb2dc1d28a..3ba2fff71490 100644
--- a/drivers/usb/core/buffer.c
+++ b/drivers/usb/core/buffer.c
@@ -119,7 +119,7 @@ void *hcd_buffer_alloc(
119 if (size <= pool_max [i]) 119 if (size <= pool_max [i])
120 return dma_pool_alloc(hcd->pool [i], mem_flags, dma); 120 return dma_pool_alloc(hcd->pool [i], mem_flags, dma);
121 } 121 }
122 return dma_alloc_coherent(hcd->self.controller, size, dma, 0); 122 return dma_alloc_coherent(hcd->self.controller, size, dma, mem_flags);
123} 123}
124 124
125void hcd_buffer_free( 125void hcd_buffer_free(
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index df3c539f652a..308609039c73 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -841,7 +841,7 @@ static int proc_resetep(struct dev_state *ps, void __user *arg)
841 ret = checkintf(ps, ret); 841 ret = checkintf(ps, ret);
842 if (ret) 842 if (ret)
843 return ret; 843 return ret;
844 usb_settoggle(ps->dev, ep & 0xf, !(ep & USB_DIR_IN), 0); 844 usb_reset_endpoint(ps->dev, ep);
845 return 0; 845 return 0;
846} 846}
847 847
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 81fa8506825d..42b93da1085d 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1539,6 +1539,32 @@ void usb_hcd_disable_endpoint(struct usb_device *udev,
1539 hcd->driver->endpoint_disable(hcd, ep); 1539 hcd->driver->endpoint_disable(hcd, ep);
1540} 1540}
1541 1541
1542/**
1543 * usb_hcd_reset_endpoint - reset host endpoint state
1544 * @udev: USB device.
1545 * @ep: the endpoint to reset.
1546 *
1547 * Resets any host endpoint state such as the toggle bit, sequence
1548 * number and current window.
1549 */
1550void usb_hcd_reset_endpoint(struct usb_device *udev,
1551 struct usb_host_endpoint *ep)
1552{
1553 struct usb_hcd *hcd = bus_to_hcd(udev->bus);
1554
1555 if (hcd->driver->endpoint_reset)
1556 hcd->driver->endpoint_reset(hcd, ep);
1557 else {
1558 int epnum = usb_endpoint_num(&ep->desc);
1559 int is_out = usb_endpoint_dir_out(&ep->desc);
1560 int is_control = usb_endpoint_xfer_control(&ep->desc);
1561
1562 usb_settoggle(udev, epnum, is_out, 0);
1563 if (is_control)
1564 usb_settoggle(udev, epnum, !is_out, 0);
1565 }
1566}
1567
1542/* Protect against drivers that try to unlink URBs after the device 1568/* Protect against drivers that try to unlink URBs after the device
1543 * is gone, by waiting until all unlinks for @udev are finished. 1569 * is gone, by waiting until all unlinks for @udev are finished.
1544 * Since we don't currently track URBs by device, simply wait until 1570 * Since we don't currently track URBs by device, simply wait until
diff --git a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h
index f750eb1ab595..e7d4479de41c 100644
--- a/drivers/usb/core/hcd.h
+++ b/drivers/usb/core/hcd.h
@@ -206,6 +206,11 @@ struct hc_driver {
206 void (*endpoint_disable)(struct usb_hcd *hcd, 206 void (*endpoint_disable)(struct usb_hcd *hcd,
207 struct usb_host_endpoint *ep); 207 struct usb_host_endpoint *ep);
208 208
209 /* (optional) reset any endpoint state such as sequence number
210 and current window */
211 void (*endpoint_reset)(struct usb_hcd *hcd,
212 struct usb_host_endpoint *ep);
213
209 /* root hub support */ 214 /* root hub support */
210 int (*hub_status_data) (struct usb_hcd *hcd, char *buf); 215 int (*hub_status_data) (struct usb_hcd *hcd, char *buf);
211 int (*hub_control) (struct usb_hcd *hcd, 216 int (*hub_control) (struct usb_hcd *hcd,
@@ -234,6 +239,8 @@ extern void usb_hcd_flush_endpoint(struct usb_device *udev,
234 struct usb_host_endpoint *ep); 239 struct usb_host_endpoint *ep);
235extern void usb_hcd_disable_endpoint(struct usb_device *udev, 240extern void usb_hcd_disable_endpoint(struct usb_device *udev,
236 struct usb_host_endpoint *ep); 241 struct usb_host_endpoint *ep);
242extern void usb_hcd_reset_endpoint(struct usb_device *udev,
243 struct usb_host_endpoint *ep);
237extern void usb_hcd_synchronize_unlinks(struct usb_device *udev); 244extern void usb_hcd_synchronize_unlinks(struct usb_device *udev);
238extern int usb_hcd_get_frame_number(struct usb_device *udev); 245extern int usb_hcd_get_frame_number(struct usb_device *udev);
239 246
@@ -279,6 +286,13 @@ extern irqreturn_t usb_hcd_irq(int irq, void *__hcd);
279extern void usb_hc_died(struct usb_hcd *hcd); 286extern void usb_hc_died(struct usb_hcd *hcd);
280extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd); 287extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd);
281 288
289/* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */
290#define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1)
291#define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep)))
292#define usb_settoggle(dev, ep, out, bit) \
293 ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \
294 ((bit) << (ep)))
295
282/* -------------------------------------------------------------------------- */ 296/* -------------------------------------------------------------------------- */
283 297
284/* Enumeration is only for the hub driver, or HCD virtual root hubs */ 298/* Enumeration is only for the hub driver, or HCD virtual root hubs */
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 30a0690f3683..b62628377654 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1002,8 +1002,7 @@ int usb_clear_halt(struct usb_device *dev, int pipe)
1002 * the copy in usb-storage, for as long as we need two copies. 1002 * the copy in usb-storage, for as long as we need two copies.
1003 */ 1003 */
1004 1004
1005 /* toggle was reset by the clear */ 1005 usb_reset_endpoint(dev, endp);
1006 usb_settoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe), 0);
1007 1006
1008 return 0; 1007 return 0;
1009} 1008}
@@ -1076,6 +1075,30 @@ void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr,
1076} 1075}
1077 1076
1078/** 1077/**
1078 * usb_reset_endpoint - Reset an endpoint's state.
1079 * @dev: the device whose endpoint is to be reset
1080 * @epaddr: the endpoint's address. Endpoint number for output,
1081 * endpoint number + USB_DIR_IN for input
1082 *
1083 * Resets any host-side endpoint state such as the toggle bit,
1084 * sequence number or current window.
1085 */
1086void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr)
1087{
1088 unsigned int epnum = epaddr & USB_ENDPOINT_NUMBER_MASK;
1089 struct usb_host_endpoint *ep;
1090
1091 if (usb_endpoint_out(epaddr))
1092 ep = dev->ep_out[epnum];
1093 else
1094 ep = dev->ep_in[epnum];
1095 if (ep)
1096 usb_hcd_reset_endpoint(dev, ep);
1097}
1098EXPORT_SYMBOL_GPL(usb_reset_endpoint);
1099
1100
1101/**
1079 * usb_disable_interface -- Disable all endpoints for an interface 1102 * usb_disable_interface -- Disable all endpoints for an interface
1080 * @dev: the device whose interface is being disabled 1103 * @dev: the device whose interface is being disabled
1081 * @intf: pointer to the interface descriptor 1104 * @intf: pointer to the interface descriptor
@@ -1117,7 +1140,6 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0)
1117 usb_disable_endpoint(dev, i, true); 1140 usb_disable_endpoint(dev, i, true);
1118 usb_disable_endpoint(dev, i + USB_DIR_IN, true); 1141 usb_disable_endpoint(dev, i + USB_DIR_IN, true);
1119 } 1142 }
1120 dev->toggle[0] = dev->toggle[1] = 0;
1121 1143
1122 /* getting rid of interfaces will disconnect 1144 /* getting rid of interfaces will disconnect
1123 * any drivers bound to them (a key side effect) 1145 * any drivers bound to them (a key side effect)
@@ -1154,28 +1176,24 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0)
1154 * usb_enable_endpoint - Enable an endpoint for USB communications 1176 * usb_enable_endpoint - Enable an endpoint for USB communications
1155 * @dev: the device whose interface is being enabled 1177 * @dev: the device whose interface is being enabled
1156 * @ep: the endpoint 1178 * @ep: the endpoint
1157 * @reset_toggle: flag to set the endpoint's toggle back to 0 1179 * @reset_ep: flag to reset the endpoint state
1158 * 1180 *
1159 * Resets the endpoint toggle if asked, and sets dev->ep_{in,out} pointers. 1181 * Resets the endpoint state if asked, and sets dev->ep_{in,out} pointers.
1160 * For control endpoints, both the input and output sides are handled. 1182 * For control endpoints, both the input and output sides are handled.
1161 */ 1183 */
1162void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep, 1184void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep,
1163 bool reset_toggle) 1185 bool reset_ep)
1164{ 1186{
1165 int epnum = usb_endpoint_num(&ep->desc); 1187 int epnum = usb_endpoint_num(&ep->desc);
1166 int is_out = usb_endpoint_dir_out(&ep->desc); 1188 int is_out = usb_endpoint_dir_out(&ep->desc);
1167 int is_control = usb_endpoint_xfer_control(&ep->desc); 1189 int is_control = usb_endpoint_xfer_control(&ep->desc);
1168 1190
1169 if (is_out || is_control) { 1191 if (reset_ep)
1170 if (reset_toggle) 1192 usb_hcd_reset_endpoint(dev, ep);
1171 usb_settoggle(dev, epnum, 1, 0); 1193 if (is_out || is_control)
1172 dev->ep_out[epnum] = ep; 1194 dev->ep_out[epnum] = ep;
1173 } 1195 if (!is_out || is_control)
1174 if (!is_out || is_control) {
1175 if (reset_toggle)
1176 usb_settoggle(dev, epnum, 0, 0);
1177 dev->ep_in[epnum] = ep; 1196 dev->ep_in[epnum] = ep;
1178 }
1179 ep->enabled = 1; 1197 ep->enabled = 1;
1180} 1198}
1181 1199
@@ -1183,18 +1201,18 @@ void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep,
1183 * usb_enable_interface - Enable all the endpoints for an interface 1201 * usb_enable_interface - Enable all the endpoints for an interface
1184 * @dev: the device whose interface is being enabled 1202 * @dev: the device whose interface is being enabled
1185 * @intf: pointer to the interface descriptor 1203 * @intf: pointer to the interface descriptor
1186 * @reset_toggles: flag to set the endpoints' toggles back to 0 1204 * @reset_eps: flag to reset the endpoints' state
1187 * 1205 *
1188 * Enables all the endpoints for the interface's current altsetting. 1206 * Enables all the endpoints for the interface's current altsetting.
1189 */ 1207 */
1190void usb_enable_interface(struct usb_device *dev, 1208void usb_enable_interface(struct usb_device *dev,
1191 struct usb_interface *intf, bool reset_toggles) 1209 struct usb_interface *intf, bool reset_eps)
1192{ 1210{
1193 struct usb_host_interface *alt = intf->cur_altsetting; 1211 struct usb_host_interface *alt = intf->cur_altsetting;
1194 int i; 1212 int i;
1195 1213
1196 for (i = 0; i < alt->desc.bNumEndpoints; ++i) 1214 for (i = 0; i < alt->desc.bNumEndpoints; ++i)
1197 usb_enable_endpoint(dev, &alt->endpoint[i], reset_toggles); 1215 usb_enable_endpoint(dev, &alt->endpoint[i], reset_eps);
1198} 1216}
1199 1217
1200/** 1218/**
@@ -1335,7 +1353,7 @@ EXPORT_SYMBOL_GPL(usb_set_interface);
1335 * This issues a standard SET_CONFIGURATION request to the device using 1353 * This issues a standard SET_CONFIGURATION request to the device using
1336 * the current configuration. The effect is to reset most USB-related 1354 * the current configuration. The effect is to reset most USB-related
1337 * state in the device, including interface altsettings (reset to zero), 1355 * state in the device, including interface altsettings (reset to zero),
1338 * endpoint halts (cleared), and data toggle (only for bulk and interrupt 1356 * endpoint halts (cleared), and endpoint state (only for bulk and interrupt
1339 * endpoints). Other usbcore state is unchanged, including bindings of 1357 * endpoints). Other usbcore state is unchanged, including bindings of
1340 * usb device drivers to interfaces. 1358 * usb device drivers to interfaces.
1341 * 1359 *
@@ -1343,7 +1361,7 @@ EXPORT_SYMBOL_GPL(usb_set_interface);
1343 * (multi-interface) devices. Instead, the driver for each interface may 1361 * (multi-interface) devices. Instead, the driver for each interface may
1344 * use usb_set_interface() on the interfaces it claims. Be careful though; 1362 * use usb_set_interface() on the interfaces it claims. Be careful though;
1345 * some devices don't support the SET_INTERFACE request, and others won't 1363 * some devices don't support the SET_INTERFACE request, and others won't
1346 * reset all the interface state (notably data toggles). Resetting the whole 1364 * reset all the interface state (notably endpoint state). Resetting the whole
1347 * configuration would affect other drivers' interfaces. 1365 * configuration would affect other drivers' interfaces.
1348 * 1366 *
1349 * The caller must own the device lock. 1367 * The caller must own the device lock.
@@ -1376,8 +1394,6 @@ int usb_reset_configuration(struct usb_device *dev)
1376 if (retval < 0) 1394 if (retval < 0)
1377 return retval; 1395 return retval;
1378 1396
1379 dev->toggle[0] = dev->toggle[1] = 0;
1380
1381 /* re-init hc/hcd interface/endpoint state */ 1397 /* re-init hc/hcd interface/endpoint state */
1382 for (i = 0; i < config->desc.bNumInterfaces; i++) { 1398 for (i = 0; i < config->desc.bNumInterfaces; i++) {
1383 struct usb_interface *intf = config->interface[i]; 1399 struct usb_interface *intf = config->interface[i];
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index dcfc072630c1..7eee400d3e32 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -362,7 +362,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
362 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE; 362 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
363 dev->ep0.desc.bDescriptorType = USB_DT_ENDPOINT; 363 dev->ep0.desc.bDescriptorType = USB_DT_ENDPOINT;
364 /* ep0 maxpacket comes later, from device descriptor */ 364 /* ep0 maxpacket comes later, from device descriptor */
365 usb_enable_endpoint(dev, &dev->ep0, true); 365 usb_enable_endpoint(dev, &dev->ep0, false);
366 dev->can_submit = 1; 366 dev->can_submit = 1;
367 367
368 /* Save readable and stable topology id, distinguishing devices 368 /* Save readable and stable topology id, distinguishing devices
diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c
index 22c65960c429..38e531ecae4d 100644
--- a/drivers/usb/gadget/ci13xxx_udc.c
+++ b/drivers/usb/gadget/ci13xxx_udc.c
@@ -51,6 +51,7 @@
51 * - Gadget API (majority of optional features) 51 * - Gadget API (majority of optional features)
52 * - Suspend & Remote Wakeup 52 * - Suspend & Remote Wakeup
53 */ 53 */
54#include <linux/delay.h>
54#include <linux/device.h> 55#include <linux/device.h>
55#include <linux/dmapool.h> 56#include <linux/dmapool.h>
56#include <linux/dma-mapping.h> 57#include <linux/dma-mapping.h>
@@ -142,7 +143,7 @@ static struct {
142#define CAP_DEVICEADDR (0x014UL) 143#define CAP_DEVICEADDR (0x014UL)
143#define CAP_ENDPTLISTADDR (0x018UL) 144#define CAP_ENDPTLISTADDR (0x018UL)
144#define CAP_PORTSC (0x044UL) 145#define CAP_PORTSC (0x044UL)
145#define CAP_DEVLC (0x0B4UL) 146#define CAP_DEVLC (0x084UL)
146#define CAP_USBMODE (hw_bank.lpm ? 0x0C8UL : 0x068UL) 147#define CAP_USBMODE (hw_bank.lpm ? 0x0C8UL : 0x068UL)
147#define CAP_ENDPTSETUPSTAT (hw_bank.lpm ? 0x0D8UL : 0x06CUL) 148#define CAP_ENDPTSETUPSTAT (hw_bank.lpm ? 0x0D8UL : 0x06CUL)
148#define CAP_ENDPTPRIME (hw_bank.lpm ? 0x0DCUL : 0x070UL) 149#define CAP_ENDPTPRIME (hw_bank.lpm ? 0x0DCUL : 0x070UL)
@@ -1986,6 +1987,8 @@ static int ep_enable(struct usb_ep *ep,
1986 do { 1987 do {
1987 dbg_event(_usb_addr(mEp), "ENABLE", 0); 1988 dbg_event(_usb_addr(mEp), "ENABLE", 0);
1988 1989
1990 mEp->qh[mEp->dir].ptr->cap = 0;
1991
1989 if (mEp->type == USB_ENDPOINT_XFER_CONTROL) 1992 if (mEp->type == USB_ENDPOINT_XFER_CONTROL)
1990 mEp->qh[mEp->dir].ptr->cap |= QH_IOS; 1993 mEp->qh[mEp->dir].ptr->cap |= QH_IOS;
1991 else if (mEp->type == USB_ENDPOINT_XFER_ISOC) 1994 else if (mEp->type == USB_ENDPOINT_XFER_ISOC)
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
index 5c030b080d4c..381a53b3e11c 100644
--- a/drivers/usb/gadget/file_storage.c
+++ b/drivers/usb/gadget/file_storage.c
@@ -738,7 +738,6 @@ static struct fsg_dev *the_fsg;
738static struct usb_gadget_driver fsg_driver; 738static struct usb_gadget_driver fsg_driver;
739 739
740static void close_backing_file(struct lun *curlun); 740static void close_backing_file(struct lun *curlun);
741static void close_all_backing_files(struct fsg_dev *fsg);
742 741
743 742
744/*-------------------------------------------------------------------------*/ 743/*-------------------------------------------------------------------------*/
@@ -3593,12 +3592,10 @@ static int fsg_main_thread(void *fsg_)
3593 fsg->thread_task = NULL; 3592 fsg->thread_task = NULL;
3594 spin_unlock_irq(&fsg->lock); 3593 spin_unlock_irq(&fsg->lock);
3595 3594
3596 /* In case we are exiting because of a signal, unregister the 3595 /* If we are exiting because of a signal, unregister the
3597 * gadget driver and close the backing file. */ 3596 * gadget driver. */
3598 if (test_and_clear_bit(REGISTERED, &fsg->atomic_bitflags)) { 3597 if (test_and_clear_bit(REGISTERED, &fsg->atomic_bitflags))
3599 usb_gadget_unregister_driver(&fsg_driver); 3598 usb_gadget_unregister_driver(&fsg_driver);
3600 close_all_backing_files(fsg);
3601 }
3602 3599
3603 /* Let the unbind and cleanup routines know the thread has exited */ 3600 /* Let the unbind and cleanup routines know the thread has exited */
3604 complete_and_exit(&fsg->thread_notifier, 0); 3601 complete_and_exit(&fsg->thread_notifier, 0);
@@ -3703,14 +3700,6 @@ static void close_backing_file(struct lun *curlun)
3703 } 3700 }
3704} 3701}
3705 3702
3706static void close_all_backing_files(struct fsg_dev *fsg)
3707{
3708 int i;
3709
3710 for (i = 0; i < fsg->nluns; ++i)
3711 close_backing_file(&fsg->luns[i]);
3712}
3713
3714 3703
3715static ssize_t show_ro(struct device *dev, struct device_attribute *attr, char *buf) 3704static ssize_t show_ro(struct device *dev, struct device_attribute *attr, char *buf)
3716{ 3705{
@@ -3845,6 +3834,7 @@ static void /* __init_or_exit */ fsg_unbind(struct usb_gadget *gadget)
3845 if (curlun->registered) { 3834 if (curlun->registered) {
3846 device_remove_file(&curlun->dev, &dev_attr_ro); 3835 device_remove_file(&curlun->dev, &dev_attr_ro);
3847 device_remove_file(&curlun->dev, &dev_attr_file); 3836 device_remove_file(&curlun->dev, &dev_attr_file);
3837 close_backing_file(curlun);
3848 device_unregister(&curlun->dev); 3838 device_unregister(&curlun->dev);
3849 curlun->registered = 0; 3839 curlun->registered = 0;
3850 } 3840 }
@@ -4190,7 +4180,6 @@ autoconf_fail:
4190out: 4180out:
4191 fsg->state = FSG_STATE_TERMINATED; // The thread is dead 4181 fsg->state = FSG_STATE_TERMINATED; // The thread is dead
4192 fsg_unbind(gadget); 4182 fsg_unbind(gadget);
4193 close_all_backing_files(fsg);
4194 complete(&fsg->thread_notifier); 4183 complete(&fsg->thread_notifier);
4195 return rc; 4184 return rc;
4196} 4185}
@@ -4284,7 +4273,6 @@ static void __exit fsg_cleanup(void)
4284 /* Wait for the thread to finish up */ 4273 /* Wait for the thread to finish up */
4285 wait_for_completion(&fsg->thread_notifier); 4274 wait_for_completion(&fsg->thread_notifier);
4286 4275
4287 close_all_backing_files(fsg);
4288 kref_put(&fsg->ref, fsg_release); 4276 kref_put(&fsg->ref, fsg_release);
4289} 4277}
4290module_exit(fsg_cleanup); 4278module_exit(fsg_cleanup);
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 57d9641c6bf8..a2db0e174f2c 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -3104,7 +3104,6 @@ static int omap_udc_resume(struct platform_device *dev)
3104/*-------------------------------------------------------------------------*/ 3104/*-------------------------------------------------------------------------*/
3105 3105
3106static struct platform_driver udc_driver = { 3106static struct platform_driver udc_driver = {
3107 .probe = omap_udc_probe,
3108 .remove = __exit_p(omap_udc_remove), 3107 .remove = __exit_p(omap_udc_remove),
3109 .suspend = omap_udc_suspend, 3108 .suspend = omap_udc_suspend,
3110 .resume = omap_udc_resume, 3109 .resume = omap_udc_resume,
@@ -3122,7 +3121,7 @@ static int __init udc_init(void)
3122#endif 3121#endif
3123 "%s\n", driver_desc, 3122 "%s\n", driver_desc,
3124 use_dma ? " (dma)" : ""); 3123 use_dma ? " (dma)" : "");
3125 return platform_driver_register(&udc_driver); 3124 return platform_driver_probe(&udc_driver, omap_udc_probe);
3126} 3125}
3127module_init(udc_init); 3126module_init(udc_init);
3128 3127
diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
index 96d65ca06ecd..4007770f7ed2 100644
--- a/drivers/usb/gadget/u_ether.c
+++ b/drivers/usb/gadget/u_ether.c
@@ -175,12 +175,6 @@ static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p)
175 strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof p->bus_info); 175 strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof p->bus_info);
176} 176}
177 177
178static u32 eth_get_link(struct net_device *net)
179{
180 struct eth_dev *dev = netdev_priv(net);
181 return dev->gadget->speed != USB_SPEED_UNKNOWN;
182}
183
184/* REVISIT can also support: 178/* REVISIT can also support:
185 * - WOL (by tracking suspends and issuing remote wakeup) 179 * - WOL (by tracking suspends and issuing remote wakeup)
186 * - msglevel (implies updated messaging) 180 * - msglevel (implies updated messaging)
@@ -189,7 +183,7 @@ static u32 eth_get_link(struct net_device *net)
189 183
190static struct ethtool_ops ops = { 184static struct ethtool_ops ops = {
191 .get_drvinfo = eth_get_drvinfo, 185 .get_drvinfo = eth_get_drvinfo,
192 .get_link = eth_get_link 186 .get_link = ethtool_op_get_link,
193}; 187};
194 188
195static void defer_kevent(struct eth_dev *dev, int flag) 189static void defer_kevent(struct eth_dev *dev, int flag)
diff --git a/drivers/usb/gadget/usbstring.c b/drivers/usb/gadget/usbstring.c
index 4154be375c7a..58c4d37d312a 100644
--- a/drivers/usb/gadget/usbstring.c
+++ b/drivers/usb/gadget/usbstring.c
@@ -38,7 +38,7 @@ static int utf8_to_utf16le(const char *s, __le16 *cp, unsigned len)
38 uchar = (c & 0x1f) << 6; 38 uchar = (c & 0x1f) << 6;
39 39
40 c = (u8) *s++; 40 c = (u8) *s++;
41 if ((c & 0xc0) != 0xc0) 41 if ((c & 0xc0) != 0x80)
42 goto fail; 42 goto fail;
43 c &= 0x3f; 43 c &= 0x3f;
44 uchar |= c; 44 uchar |= c;
@@ -49,13 +49,13 @@ static int utf8_to_utf16le(const char *s, __le16 *cp, unsigned len)
49 uchar = (c & 0x0f) << 12; 49 uchar = (c & 0x0f) << 12;
50 50
51 c = (u8) *s++; 51 c = (u8) *s++;
52 if ((c & 0xc0) != 0xc0) 52 if ((c & 0xc0) != 0x80)
53 goto fail; 53 goto fail;
54 c &= 0x3f; 54 c &= 0x3f;
55 uchar |= c << 6; 55 uchar |= c << 6;
56 56
57 c = (u8) *s++; 57 c = (u8) *s++;
58 if ((c & 0xc0) != 0xc0) 58 if ((c & 0xc0) != 0x80)
59 goto fail; 59 goto fail;
60 c &= 0x3f; 60 c &= 0x3f;
61 uchar |= c; 61 uchar |= c;
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index ada5d2ba297b..556d0ec0c1f8 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -323,7 +323,7 @@ static int tt_available (
323 * already scheduled transactions 323 * already scheduled transactions
324 */ 324 */
325 if (125 < usecs) { 325 if (125 < usecs) {
326 int ufs = (usecs / 125) - 1; 326 int ufs = (usecs / 125);
327 int i; 327 int i;
328 for (i = uframe; i < (uframe + ufs) && i < 8; i++) 328 for (i = uframe; i < (uframe + ufs) && i < 8; i++)
329 if (0 < tt_usecs[i]) { 329 if (0 < tt_usecs[i]) {
diff --git a/drivers/usb/host/whci/asl.c b/drivers/usb/host/whci/asl.c
index 958751ccea43..c2050785a819 100644
--- a/drivers/usb/host/whci/asl.c
+++ b/drivers/usb/host/whci/asl.c
@@ -122,7 +122,8 @@ static uint32_t process_qset(struct whc *whc, struct whc_qset *qset)
122 process_inactive_qtd(whc, qset, td); 122 process_inactive_qtd(whc, qset, td);
123 } 123 }
124 124
125 update |= qset_add_qtds(whc, qset); 125 if (!qset->remove)
126 update |= qset_add_qtds(whc, qset);
126 127
127done: 128done:
128 /* 129 /*
@@ -254,23 +255,29 @@ int asl_urb_enqueue(struct whc *whc, struct urb *urb, gfp_t mem_flags)
254 255
255 spin_lock_irqsave(&whc->lock, flags); 256 spin_lock_irqsave(&whc->lock, flags);
256 257
258 err = usb_hcd_link_urb_to_ep(&whc->wusbhc.usb_hcd, urb);
259 if (err < 0) {
260 spin_unlock_irqrestore(&whc->lock, flags);
261 return err;
262 }
263
257 qset = get_qset(whc, urb, GFP_ATOMIC); 264 qset = get_qset(whc, urb, GFP_ATOMIC);
258 if (qset == NULL) 265 if (qset == NULL)
259 err = -ENOMEM; 266 err = -ENOMEM;
260 else 267 else
261 err = qset_add_urb(whc, qset, urb, GFP_ATOMIC); 268 err = qset_add_urb(whc, qset, urb, GFP_ATOMIC);
262 if (!err) { 269 if (!err) {
263 usb_hcd_link_urb_to_ep(&whc->wusbhc.usb_hcd, urb);
264 if (!qset->in_sw_list) 270 if (!qset->in_sw_list)
265 asl_qset_insert_begin(whc, qset); 271 asl_qset_insert_begin(whc, qset);
266 } 272 } else
273 usb_hcd_unlink_urb_from_ep(&whc->wusbhc.usb_hcd, urb);
267 274
268 spin_unlock_irqrestore(&whc->lock, flags); 275 spin_unlock_irqrestore(&whc->lock, flags);
269 276
270 if (!err) 277 if (!err)
271 queue_work(whc->workqueue, &whc->async_work); 278 queue_work(whc->workqueue, &whc->async_work);
272 279
273 return 0; 280 return err;
274} 281}
275 282
276/** 283/**
diff --git a/drivers/usb/host/whci/hcd.c b/drivers/usb/host/whci/hcd.c
index 1569afd6245b..e019a5058ab8 100644
--- a/drivers/usb/host/whci/hcd.c
+++ b/drivers/usb/host/whci/hcd.c
@@ -186,6 +186,28 @@ static void whc_endpoint_disable(struct usb_hcd *usb_hcd,
186 } 186 }
187} 187}
188 188
189static void whc_endpoint_reset(struct usb_hcd *usb_hcd,
190 struct usb_host_endpoint *ep)
191{
192 struct wusbhc *wusbhc = usb_hcd_to_wusbhc(usb_hcd);
193 struct whc *whc = wusbhc_to_whc(wusbhc);
194 struct whc_qset *qset;
195
196 qset = ep->hcpriv;
197 if (qset) {
198 qset->remove = 1;
199
200 if (usb_endpoint_xfer_bulk(&ep->desc)
201 || usb_endpoint_xfer_control(&ep->desc))
202 queue_work(whc->workqueue, &whc->async_work);
203 else
204 queue_work(whc->workqueue, &whc->periodic_work);
205
206 qset_reset(whc, qset);
207 }
208}
209
210
189static struct hc_driver whc_hc_driver = { 211static struct hc_driver whc_hc_driver = {
190 .description = "whci-hcd", 212 .description = "whci-hcd",
191 .product_desc = "Wireless host controller", 213 .product_desc = "Wireless host controller",
@@ -200,6 +222,7 @@ static struct hc_driver whc_hc_driver = {
200 .urb_enqueue = whc_urb_enqueue, 222 .urb_enqueue = whc_urb_enqueue,
201 .urb_dequeue = whc_urb_dequeue, 223 .urb_dequeue = whc_urb_dequeue,
202 .endpoint_disable = whc_endpoint_disable, 224 .endpoint_disable = whc_endpoint_disable,
225 .endpoint_reset = whc_endpoint_reset,
203 226
204 .hub_status_data = wusbhc_rh_status_data, 227 .hub_status_data = wusbhc_rh_status_data,
205 .hub_control = wusbhc_rh_control, 228 .hub_control = wusbhc_rh_control,
diff --git a/drivers/usb/host/whci/pzl.c b/drivers/usb/host/whci/pzl.c
index df8b85f07092..ff4ef9e910d9 100644
--- a/drivers/usb/host/whci/pzl.c
+++ b/drivers/usb/host/whci/pzl.c
@@ -128,7 +128,8 @@ static enum whc_update pzl_process_qset(struct whc *whc, struct whc_qset *qset)
128 process_inactive_qtd(whc, qset, td); 128 process_inactive_qtd(whc, qset, td);
129 } 129 }
130 130
131 update |= qset_add_qtds(whc, qset); 131 if (!qset->remove)
132 update |= qset_add_qtds(whc, qset);
132 133
133done: 134done:
134 /* 135 /*
@@ -282,23 +283,29 @@ int pzl_urb_enqueue(struct whc *whc, struct urb *urb, gfp_t mem_flags)
282 283
283 spin_lock_irqsave(&whc->lock, flags); 284 spin_lock_irqsave(&whc->lock, flags);
284 285
286 err = usb_hcd_link_urb_to_ep(&whc->wusbhc.usb_hcd, urb);
287 if (err < 0) {
288 spin_unlock_irqrestore(&whc->lock, flags);
289 return err;
290 }
291
285 qset = get_qset(whc, urb, GFP_ATOMIC); 292 qset = get_qset(whc, urb, GFP_ATOMIC);
286 if (qset == NULL) 293 if (qset == NULL)
287 err = -ENOMEM; 294 err = -ENOMEM;
288 else 295 else
289 err = qset_add_urb(whc, qset, urb, GFP_ATOMIC); 296 err = qset_add_urb(whc, qset, urb, GFP_ATOMIC);
290 if (!err) { 297 if (!err) {
291 usb_hcd_link_urb_to_ep(&whc->wusbhc.usb_hcd, urb);
292 if (!qset->in_sw_list) 298 if (!qset->in_sw_list)
293 qset_insert_in_sw_list(whc, qset); 299 qset_insert_in_sw_list(whc, qset);
294 } 300 } else
301 usb_hcd_unlink_urb_from_ep(&whc->wusbhc.usb_hcd, urb);
295 302
296 spin_unlock_irqrestore(&whc->lock, flags); 303 spin_unlock_irqrestore(&whc->lock, flags);
297 304
298 if (!err) 305 if (!err)
299 queue_work(whc->workqueue, &whc->periodic_work); 306 queue_work(whc->workqueue, &whc->periodic_work);
300 307
301 return 0; 308 return err;
302} 309}
303 310
304/** 311/**
@@ -353,7 +360,6 @@ void pzl_qset_delete(struct whc *whc, struct whc_qset *qset)
353 qset_delete(whc, qset); 360 qset_delete(whc, qset);
354} 361}
355 362
356
357/** 363/**
358 * pzl_init - initialize the periodic zone list 364 * pzl_init - initialize the periodic zone list
359 * @whc: the WHCI host controller 365 * @whc: the WHCI host controller
diff --git a/drivers/usb/host/whci/qset.c b/drivers/usb/host/whci/qset.c
index 7be74314ee12..640b38fbd051 100644
--- a/drivers/usb/host/whci/qset.c
+++ b/drivers/usb/host/whci/qset.c
@@ -89,11 +89,16 @@ static void qset_fill_qh(struct whc_qset *qset, struct urb *urb)
89 QH_INFO3_TX_RATE_53_3 89 QH_INFO3_TX_RATE_53_3
90 | QH_INFO3_TX_PWR(0) /* 0 == max power */ 90 | QH_INFO3_TX_PWR(0) /* 0 == max power */
91 ); 91 );
92
93 qset->qh.cur_window = cpu_to_le32((1 << qset->max_burst) - 1);
92} 94}
93 95
94/** 96/**
95 * qset_clear - clear fields in a qset so it may be reinserted into a 97 * qset_clear - clear fields in a qset so it may be reinserted into a
96 * schedule 98 * schedule.
99 *
100 * The sequence number and current window are not cleared (see
101 * qset_reset()).
97 */ 102 */
98void qset_clear(struct whc *whc, struct whc_qset *qset) 103void qset_clear(struct whc *whc, struct whc_qset *qset)
99{ 104{
@@ -101,9 +106,8 @@ void qset_clear(struct whc *whc, struct whc_qset *qset)
101 qset->remove = 0; 106 qset->remove = 0;
102 107
103 qset->qh.link = cpu_to_le32(QH_LINK_NTDS(8) | QH_LINK_T); 108 qset->qh.link = cpu_to_le32(QH_LINK_NTDS(8) | QH_LINK_T);
104 qset->qh.status = cpu_to_le16(QH_STATUS_ICUR(qset->td_start)); 109 qset->qh.status = qset->qh.status & QH_STATUS_SEQ_MASK;
105 qset->qh.err_count = 0; 110 qset->qh.err_count = 0;
106 qset->qh.cur_window = cpu_to_le32((1 << qset->max_burst) - 1);
107 qset->qh.scratch[0] = 0; 111 qset->qh.scratch[0] = 0;
108 qset->qh.scratch[1] = 0; 112 qset->qh.scratch[1] = 0;
109 qset->qh.scratch[2] = 0; 113 qset->qh.scratch[2] = 0;
@@ -114,6 +118,20 @@ void qset_clear(struct whc *whc, struct whc_qset *qset)
114} 118}
115 119
116/** 120/**
121 * qset_reset - reset endpoint state in a qset.
122 *
123 * Clears the sequence number and current window. This qset must not
124 * be in the ASL or PZL.
125 */
126void qset_reset(struct whc *whc, struct whc_qset *qset)
127{
128 wait_for_completion(&qset->remove_complete);
129
130 qset->qh.status &= ~QH_STATUS_SEQ_MASK;
131 qset->qh.cur_window = cpu_to_le32((1 << qset->max_burst) - 1);
132}
133
134/**
117 * get_qset - get the qset for an async endpoint 135 * get_qset - get the qset for an async endpoint
118 * 136 *
119 * A new qset is created if one does not already exist. 137 * A new qset is created if one does not already exist.
diff --git a/drivers/usb/host/whci/whcd.h b/drivers/usb/host/whci/whcd.h
index d3543a181dc9..24e94d983c5e 100644
--- a/drivers/usb/host/whci/whcd.h
+++ b/drivers/usb/host/whci/whcd.h
@@ -184,6 +184,7 @@ void qset_free(struct whc *whc, struct whc_qset *qset);
184struct whc_qset *get_qset(struct whc *whc, struct urb *urb, gfp_t mem_flags); 184struct whc_qset *get_qset(struct whc *whc, struct urb *urb, gfp_t mem_flags);
185void qset_delete(struct whc *whc, struct whc_qset *qset); 185void qset_delete(struct whc *whc, struct whc_qset *qset);
186void qset_clear(struct whc *whc, struct whc_qset *qset); 186void qset_clear(struct whc *whc, struct whc_qset *qset);
187void qset_reset(struct whc *whc, struct whc_qset *qset);
187int qset_add_urb(struct whc *whc, struct whc_qset *qset, struct urb *urb, 188int qset_add_urb(struct whc *whc, struct whc_qset *qset, struct urb *urb,
188 gfp_t mem_flags); 189 gfp_t mem_flags);
189void qset_free_std(struct whc *whc, struct whc_std *std); 190void qset_free_std(struct whc *whc, struct whc_std *std);
diff --git a/drivers/usb/host/whci/whci-hc.h b/drivers/usb/host/whci/whci-hc.h
index 51df7e313b38..794dba0d0f0a 100644
--- a/drivers/usb/host/whci/whci-hc.h
+++ b/drivers/usb/host/whci/whci-hc.h
@@ -185,6 +185,7 @@ struct whc_qhead {
185#define QH_STATUS_FLOW_CTRL (1 << 15) 185#define QH_STATUS_FLOW_CTRL (1 << 15)
186#define QH_STATUS_ICUR(i) ((i) << 5) 186#define QH_STATUS_ICUR(i) ((i) << 5)
187#define QH_STATUS_TO_ICUR(s) (((s) >> 5) & 0x7) 187#define QH_STATUS_TO_ICUR(s) (((s) >> 5) & 0x7)
188#define QH_STATUS_SEQ_MASK 0x1f
188 189
189/** 190/**
190 * usb_pipe_to_qh_type - USB core pipe type to QH transfer type 191 * usb_pipe_to_qh_type - USB core pipe type to QH transfer type
diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c
index 569ef0fed0f6..1976e9b41800 100644
--- a/drivers/usb/musb/cppi_dma.c
+++ b/drivers/usb/musb/cppi_dma.c
@@ -579,6 +579,7 @@ cppi_next_tx_segment(struct musb *musb, struct cppi_channel *tx)
579 * trigger the "send a ZLP?" confusion. 579 * trigger the "send a ZLP?" confusion.
580 */ 580 */
581 rndis = (maxpacket & 0x3f) == 0 581 rndis = (maxpacket & 0x3f) == 0
582 && length > maxpacket
582 && length < 0xffff 583 && length < 0xffff
583 && (length % maxpacket) != 0; 584 && (length % maxpacket) != 0;
584 585
@@ -1228,27 +1229,7 @@ void cppi_completion(struct musb *musb, u32 rx, u32 tx)
1228 1229
1229 hw_ep = tx_ch->hw_ep; 1230 hw_ep = tx_ch->hw_ep;
1230 1231
1231 /* Peripheral role never repurposes the 1232 musb_dma_completion(musb, index + 1, 1);
1232 * endpoint, so immediate completion is
1233 * safe. Host role waits for the fifo
1234 * to empty (TXPKTRDY irq) before going
1235 * to the next queued bulk transfer.
1236 */
1237 if (is_host_active(cppi->musb)) {
1238#if 0
1239 /* WORKAROUND because we may
1240 * not always get TXKPTRDY ...
1241 */
1242 int csr;
1243
1244 csr = musb_readw(hw_ep->regs,
1245 MUSB_TXCSR);
1246 if (csr & MUSB_TXCSR_TXPKTRDY)
1247#endif
1248 completed = false;
1249 }
1250 if (completed)
1251 musb_dma_completion(musb, index + 1, 1);
1252 1233
1253 } else { 1234 } else {
1254 /* Bigger transfer than we could fit in 1235 /* Bigger transfer than we could fit in
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 338cd1611ab3..4000cf6d1e81 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2170,32 +2170,28 @@ static int musb_suspend(struct platform_device *pdev, pm_message_t message)
2170 return 0; 2170 return 0;
2171} 2171}
2172 2172
2173static int musb_resume(struct platform_device *pdev) 2173static int musb_resume_early(struct platform_device *pdev)
2174{ 2174{
2175 unsigned long flags;
2176 struct musb *musb = dev_to_musb(&pdev->dev); 2175 struct musb *musb = dev_to_musb(&pdev->dev);
2177 2176
2178 if (!musb->clock) 2177 if (!musb->clock)
2179 return 0; 2178 return 0;
2180 2179
2181 spin_lock_irqsave(&musb->lock, flags);
2182
2183 if (musb->set_clock) 2180 if (musb->set_clock)
2184 musb->set_clock(musb->clock, 1); 2181 musb->set_clock(musb->clock, 1);
2185 else 2182 else
2186 clk_enable(musb->clock); 2183 clk_enable(musb->clock);
2187 2184
2188 /* for static cmos like DaVinci, register values were preserved 2185 /* for static cmos like DaVinci, register values were preserved
2189 * unless for some reason the whole soc powered down and we're 2186 * unless for some reason the whole soc powered down or the USB
2190 * not treating that as a whole-system restart (e.g. swsusp) 2187 * module got reset through the PSC (vs just being disabled).
2191 */ 2188 */
2192 spin_unlock_irqrestore(&musb->lock, flags);
2193 return 0; 2189 return 0;
2194} 2190}
2195 2191
2196#else 2192#else
2197#define musb_suspend NULL 2193#define musb_suspend NULL
2198#define musb_resume NULL 2194#define musb_resume_early NULL
2199#endif 2195#endif
2200 2196
2201static struct platform_driver musb_driver = { 2197static struct platform_driver musb_driver = {
@@ -2207,7 +2203,7 @@ static struct platform_driver musb_driver = {
2207 .remove = __devexit_p(musb_remove), 2203 .remove = __devexit_p(musb_remove),
2208 .shutdown = musb_shutdown, 2204 .shutdown = musb_shutdown,
2209 .suspend = musb_suspend, 2205 .suspend = musb_suspend,
2210 .resume = musb_resume, 2206 .resume_early = musb_resume_early,
2211}; 2207};
2212 2208
2213/*-------------------------------------------------------------------------*/ 2209/*-------------------------------------------------------------------------*/
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index c7ebd0867fcc..f79440cdfe7e 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -165,9 +165,15 @@ static void nuke(struct musb_ep *ep, const int status)
165 if (is_dma_capable() && ep->dma) { 165 if (is_dma_capable() && ep->dma) {
166 struct dma_controller *c = ep->musb->dma_controller; 166 struct dma_controller *c = ep->musb->dma_controller;
167 int value; 167 int value;
168
168 if (ep->is_in) { 169 if (ep->is_in) {
170 /*
171 * The programming guide says that we must not clear
172 * the DMAMODE bit before DMAENAB, so we only
173 * clear it in the second write...
174 */
169 musb_writew(epio, MUSB_TXCSR, 175 musb_writew(epio, MUSB_TXCSR,
170 0 | MUSB_TXCSR_FLUSHFIFO); 176 MUSB_TXCSR_DMAMODE | MUSB_TXCSR_FLUSHFIFO);
171 musb_writew(epio, MUSB_TXCSR, 177 musb_writew(epio, MUSB_TXCSR,
172 0 | MUSB_TXCSR_FLUSHFIFO); 178 0 | MUSB_TXCSR_FLUSHFIFO);
173 } else { 179 } else {
@@ -230,7 +236,7 @@ static inline int max_ep_writesize(struct musb *musb, struct musb_ep *ep)
230 | IN token(s) are recd from Host. 236 | IN token(s) are recd from Host.
231 | -> DMA interrupt on completion 237 | -> DMA interrupt on completion
232 | calls TxAvail. 238 | calls TxAvail.
233 | -> stop DMA, ~DmaEenab, 239 | -> stop DMA, ~DMAENAB,
234 | -> set TxPktRdy for last short pkt or zlp 240 | -> set TxPktRdy for last short pkt or zlp
235 | -> Complete Request 241 | -> Complete Request
236 | -> Continue next request (call txstate) 242 | -> Continue next request (call txstate)
@@ -315,9 +321,17 @@ static void txstate(struct musb *musb, struct musb_request *req)
315 request->dma, request_size); 321 request->dma, request_size);
316 if (use_dma) { 322 if (use_dma) {
317 if (musb_ep->dma->desired_mode == 0) { 323 if (musb_ep->dma->desired_mode == 0) {
318 /* ASSERT: DMAENAB is clear */ 324 /*
319 csr &= ~(MUSB_TXCSR_AUTOSET | 325 * We must not clear the DMAMODE bit
320 MUSB_TXCSR_DMAMODE); 326 * before the DMAENAB bit -- and the
327 * latter doesn't always get cleared
328 * before we get here...
329 */
330 csr &= ~(MUSB_TXCSR_AUTOSET
331 | MUSB_TXCSR_DMAENAB);
332 musb_writew(epio, MUSB_TXCSR, csr
333 | MUSB_TXCSR_P_WZC_BITS);
334 csr &= ~MUSB_TXCSR_DMAMODE;
321 csr |= (MUSB_TXCSR_DMAENAB | 335 csr |= (MUSB_TXCSR_DMAENAB |
322 MUSB_TXCSR_MODE); 336 MUSB_TXCSR_MODE);
323 /* against programming guide */ 337 /* against programming guide */
@@ -334,10 +348,7 @@ static void txstate(struct musb *musb, struct musb_request *req)
334 348
335#elif defined(CONFIG_USB_TI_CPPI_DMA) 349#elif defined(CONFIG_USB_TI_CPPI_DMA)
336 /* program endpoint CSR first, then setup DMA */ 350 /* program endpoint CSR first, then setup DMA */
337 csr &= ~(MUSB_TXCSR_AUTOSET 351 csr &= ~(MUSB_TXCSR_P_UNDERRUN | MUSB_TXCSR_TXPKTRDY);
338 | MUSB_TXCSR_DMAMODE
339 | MUSB_TXCSR_P_UNDERRUN
340 | MUSB_TXCSR_TXPKTRDY);
341 csr |= MUSB_TXCSR_MODE | MUSB_TXCSR_DMAENAB; 352 csr |= MUSB_TXCSR_MODE | MUSB_TXCSR_DMAENAB;
342 musb_writew(epio, MUSB_TXCSR, 353 musb_writew(epio, MUSB_TXCSR,
343 (MUSB_TXCSR_P_WZC_BITS & ~MUSB_TXCSR_P_UNDERRUN) 354 (MUSB_TXCSR_P_WZC_BITS & ~MUSB_TXCSR_P_UNDERRUN)
@@ -364,8 +375,8 @@ static void txstate(struct musb *musb, struct musb_request *req)
364 if (!use_dma) { 375 if (!use_dma) {
365 c->channel_release(musb_ep->dma); 376 c->channel_release(musb_ep->dma);
366 musb_ep->dma = NULL; 377 musb_ep->dma = NULL;
367 /* ASSERT: DMAENAB clear */ 378 csr &= ~MUSB_TXCSR_DMAENAB;
368 csr &= ~(MUSB_TXCSR_DMAMODE | MUSB_TXCSR_MODE); 379 musb_writew(epio, MUSB_TXCSR, csr);
369 /* invariant: prequest->buf is non-null */ 380 /* invariant: prequest->buf is non-null */
370 } 381 }
371#elif defined(CONFIG_USB_TUSB_OMAP_DMA) 382#elif defined(CONFIG_USB_TUSB_OMAP_DMA)
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 499c431a6d62..db1b57415ec7 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -4,6 +4,7 @@
4 * Copyright 2005 Mentor Graphics Corporation 4 * Copyright 2005 Mentor Graphics Corporation
5 * Copyright (C) 2005-2006 by Texas Instruments 5 * Copyright (C) 2005-2006 by Texas Instruments
6 * Copyright (C) 2006-2007 Nokia Corporation 6 * Copyright (C) 2006-2007 Nokia Corporation
7 * Copyright (C) 2008-2009 MontaVista Software, Inc. <source@mvista.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
@@ -96,8 +97,8 @@
96 97
97 98
98static void musb_ep_program(struct musb *musb, u8 epnum, 99static void musb_ep_program(struct musb *musb, u8 epnum,
99 struct urb *urb, unsigned int nOut, 100 struct urb *urb, int is_out,
100 u8 *buf, u32 len); 101 u8 *buf, u32 offset, u32 len);
101 102
102/* 103/*
103 * Clear TX fifo. Needed to avoid BABBLE errors. 104 * Clear TX fifo. Needed to avoid BABBLE errors.
@@ -125,6 +126,29 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
125 } 126 }
126} 127}
127 128
129static void musb_h_ep0_flush_fifo(struct musb_hw_ep *ep)
130{
131 void __iomem *epio = ep->regs;
132 u16 csr;
133 int retries = 5;
134
135 /* scrub any data left in the fifo */
136 do {
137 csr = musb_readw(epio, MUSB_TXCSR);
138 if (!(csr & (MUSB_CSR0_TXPKTRDY | MUSB_CSR0_RXPKTRDY)))
139 break;
140 musb_writew(epio, MUSB_TXCSR, MUSB_CSR0_FLUSHFIFO);
141 csr = musb_readw(epio, MUSB_TXCSR);
142 udelay(10);
143 } while (--retries);
144
145 WARN(!retries, "Could not flush host TX%d fifo: csr: %04x\n",
146 ep->epnum, csr);
147
148 /* and reset for the next transfer */
149 musb_writew(epio, MUSB_TXCSR, 0);
150}
151
128/* 152/*
129 * Start transmit. Caller is responsible for locking shared resources. 153 * Start transmit. Caller is responsible for locking shared resources.
130 * musb must be locked. 154 * musb must be locked.
@@ -145,13 +169,15 @@ static inline void musb_h_tx_start(struct musb_hw_ep *ep)
145 169
146} 170}
147 171
148static inline void cppi_host_txdma_start(struct musb_hw_ep *ep) 172static inline void musb_h_tx_dma_start(struct musb_hw_ep *ep)
149{ 173{
150 u16 txcsr; 174 u16 txcsr;
151 175
152 /* NOTE: no locks here; caller should lock and select EP */ 176 /* NOTE: no locks here; caller should lock and select EP */
153 txcsr = musb_readw(ep->regs, MUSB_TXCSR); 177 txcsr = musb_readw(ep->regs, MUSB_TXCSR);
154 txcsr |= MUSB_TXCSR_DMAENAB | MUSB_TXCSR_H_WZC_BITS; 178 txcsr |= MUSB_TXCSR_DMAENAB | MUSB_TXCSR_H_WZC_BITS;
179 if (is_cppi_enabled())
180 txcsr |= MUSB_TXCSR_DMAMODE;
155 musb_writew(ep->regs, MUSB_TXCSR, txcsr); 181 musb_writew(ep->regs, MUSB_TXCSR, txcsr);
156} 182}
157 183
@@ -166,9 +192,10 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
166{ 192{
167 u16 frame; 193 u16 frame;
168 u32 len; 194 u32 len;
169 void *buf;
170 void __iomem *mbase = musb->mregs; 195 void __iomem *mbase = musb->mregs;
171 struct urb *urb = next_urb(qh); 196 struct urb *urb = next_urb(qh);
197 void *buf = urb->transfer_buffer;
198 u32 offset = 0;
172 struct musb_hw_ep *hw_ep = qh->hw_ep; 199 struct musb_hw_ep *hw_ep = qh->hw_ep;
173 unsigned pipe = urb->pipe; 200 unsigned pipe = urb->pipe;
174 u8 address = usb_pipedevice(pipe); 201 u8 address = usb_pipedevice(pipe);
@@ -191,7 +218,7 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
191 case USB_ENDPOINT_XFER_ISOC: 218 case USB_ENDPOINT_XFER_ISOC:
192 qh->iso_idx = 0; 219 qh->iso_idx = 0;
193 qh->frame = 0; 220 qh->frame = 0;
194 buf = urb->transfer_buffer + urb->iso_frame_desc[0].offset; 221 offset = urb->iso_frame_desc[0].offset;
195 len = urb->iso_frame_desc[0].length; 222 len = urb->iso_frame_desc[0].length;
196 break; 223 break;
197 default: /* bulk, interrupt */ 224 default: /* bulk, interrupt */
@@ -209,14 +236,14 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
209 case USB_ENDPOINT_XFER_ISOC: s = "-iso"; break; 236 case USB_ENDPOINT_XFER_ISOC: s = "-iso"; break;
210 default: s = "-intr"; break; 237 default: s = "-intr"; break;
211 }; s; }), 238 }; s; }),
212 epnum, buf, len); 239 epnum, buf + offset, len);
213 240
214 /* Configure endpoint */ 241 /* Configure endpoint */
215 if (is_in || hw_ep->is_shared_fifo) 242 if (is_in || hw_ep->is_shared_fifo)
216 hw_ep->in_qh = qh; 243 hw_ep->in_qh = qh;
217 else 244 else
218 hw_ep->out_qh = qh; 245 hw_ep->out_qh = qh;
219 musb_ep_program(musb, epnum, urb, !is_in, buf, len); 246 musb_ep_program(musb, epnum, urb, !is_in, buf, offset, len);
220 247
221 /* transmit may have more work: start it when it is time */ 248 /* transmit may have more work: start it when it is time */
222 if (is_in) 249 if (is_in)
@@ -227,7 +254,6 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
227 case USB_ENDPOINT_XFER_ISOC: 254 case USB_ENDPOINT_XFER_ISOC:
228 case USB_ENDPOINT_XFER_INT: 255 case USB_ENDPOINT_XFER_INT:
229 DBG(3, "check whether there's still time for periodic Tx\n"); 256 DBG(3, "check whether there's still time for periodic Tx\n");
230 qh->iso_idx = 0;
231 frame = musb_readw(mbase, MUSB_FRAME); 257 frame = musb_readw(mbase, MUSB_FRAME);
232 /* FIXME this doesn't implement that scheduling policy ... 258 /* FIXME this doesn't implement that scheduling policy ...
233 * or handle framecounter wrapping 259 * or handle framecounter wrapping
@@ -256,7 +282,7 @@ start:
256 if (!hw_ep->tx_channel) 282 if (!hw_ep->tx_channel)
257 musb_h_tx_start(hw_ep); 283 musb_h_tx_start(hw_ep);
258 else if (is_cppi_enabled() || tusb_dma_omap()) 284 else if (is_cppi_enabled() || tusb_dma_omap())
259 cppi_host_txdma_start(hw_ep); 285 musb_h_tx_dma_start(hw_ep);
260 } 286 }
261} 287}
262 288
@@ -567,10 +593,17 @@ musb_rx_reinit(struct musb *musb, struct musb_qh *qh, struct musb_hw_ep *ep)
567 csr = musb_readw(ep->regs, MUSB_TXCSR); 593 csr = musb_readw(ep->regs, MUSB_TXCSR);
568 if (csr & MUSB_TXCSR_MODE) { 594 if (csr & MUSB_TXCSR_MODE) {
569 musb_h_tx_flush_fifo(ep); 595 musb_h_tx_flush_fifo(ep);
596 csr = musb_readw(ep->regs, MUSB_TXCSR);
570 musb_writew(ep->regs, MUSB_TXCSR, 597 musb_writew(ep->regs, MUSB_TXCSR,
571 MUSB_TXCSR_FRCDATATOG); 598 csr | MUSB_TXCSR_FRCDATATOG);
572 } 599 }
573 /* clear mode (and everything else) to enable Rx */ 600
601 /*
602 * Clear the MODE bit (and everything else) to enable Rx.
603 * NOTE: we mustn't clear the DMAMODE bit before DMAENAB.
604 */
605 if (csr & MUSB_TXCSR_DMAMODE)
606 musb_writew(ep->regs, MUSB_TXCSR, MUSB_TXCSR_DMAMODE);
574 musb_writew(ep->regs, MUSB_TXCSR, 0); 607 musb_writew(ep->regs, MUSB_TXCSR, 0);
575 608
576 /* scrub all previous state, clearing toggle */ 609 /* scrub all previous state, clearing toggle */
@@ -601,14 +634,68 @@ musb_rx_reinit(struct musb *musb, struct musb_qh *qh, struct musb_hw_ep *ep)
601 ep->rx_reinit = 0; 634 ep->rx_reinit = 0;
602} 635}
603 636
637static bool musb_tx_dma_program(struct dma_controller *dma,
638 struct musb_hw_ep *hw_ep, struct musb_qh *qh,
639 struct urb *urb, u32 offset, u32 length)
640{
641 struct dma_channel *channel = hw_ep->tx_channel;
642 void __iomem *epio = hw_ep->regs;
643 u16 pkt_size = qh->maxpacket;
644 u16 csr;
645 u8 mode;
646
647#ifdef CONFIG_USB_INVENTRA_DMA
648 if (length > channel->max_len)
649 length = channel->max_len;
650
651 csr = musb_readw(epio, MUSB_TXCSR);
652 if (length > pkt_size) {
653 mode = 1;
654 csr |= MUSB_TXCSR_AUTOSET
655 | MUSB_TXCSR_DMAMODE
656 | MUSB_TXCSR_DMAENAB;
657 } else {
658 mode = 0;
659 csr &= ~(MUSB_TXCSR_AUTOSET | MUSB_TXCSR_DMAMODE);
660 csr |= MUSB_TXCSR_DMAENAB; /* against programmer's guide */
661 }
662 channel->desired_mode = mode;
663 musb_writew(epio, MUSB_TXCSR, csr);
664#else
665 if (!is_cppi_enabled() && !tusb_dma_omap())
666 return false;
667
668 channel->actual_len = 0;
669
670 /*
671 * TX uses "RNDIS" mode automatically but needs help
672 * to identify the zero-length-final-packet case.
673 */
674 mode = (urb->transfer_flags & URB_ZERO_PACKET) ? 1 : 0;
675#endif
676
677 qh->segsize = length;
678
679 if (!dma->channel_program(channel, pkt_size, mode,
680 urb->transfer_dma + offset, length)) {
681 dma->channel_release(channel);
682 hw_ep->tx_channel = NULL;
683
684 csr = musb_readw(epio, MUSB_TXCSR);
685 csr &= ~(MUSB_TXCSR_AUTOSET | MUSB_TXCSR_DMAENAB);
686 musb_writew(epio, MUSB_TXCSR, csr | MUSB_TXCSR_H_WZC_BITS);
687 return false;
688 }
689 return true;
690}
604 691
605/* 692/*
606 * Program an HDRC endpoint as per the given URB 693 * Program an HDRC endpoint as per the given URB
607 * Context: irqs blocked, controller lock held 694 * Context: irqs blocked, controller lock held
608 */ 695 */
609static void musb_ep_program(struct musb *musb, u8 epnum, 696static void musb_ep_program(struct musb *musb, u8 epnum,
610 struct urb *urb, unsigned int is_out, 697 struct urb *urb, int is_out,
611 u8 *buf, u32 len) 698 u8 *buf, u32 offset, u32 len)
612{ 699{
613 struct dma_controller *dma_controller; 700 struct dma_controller *dma_controller;
614 struct dma_channel *dma_channel; 701 struct dma_channel *dma_channel;
@@ -667,12 +754,17 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
667 754
668 /* general endpoint setup */ 755 /* general endpoint setup */
669 if (epnum) { 756 if (epnum) {
670 /* ASSERT: TXCSR_DMAENAB was already cleared */
671
672 /* flush all old state, set default */ 757 /* flush all old state, set default */
673 musb_h_tx_flush_fifo(hw_ep); 758 musb_h_tx_flush_fifo(hw_ep);
759
760 /*
761 * We must not clear the DMAMODE bit before or in
762 * the same cycle with the DMAENAB bit, so we clear
763 * the latter first...
764 */
674 csr &= ~(MUSB_TXCSR_H_NAKTIMEOUT 765 csr &= ~(MUSB_TXCSR_H_NAKTIMEOUT
675 | MUSB_TXCSR_DMAMODE 766 | MUSB_TXCSR_AUTOSET
767 | MUSB_TXCSR_DMAENAB
676 | MUSB_TXCSR_FRCDATATOG 768 | MUSB_TXCSR_FRCDATATOG
677 | MUSB_TXCSR_H_RXSTALL 769 | MUSB_TXCSR_H_RXSTALL
678 | MUSB_TXCSR_H_ERROR 770 | MUSB_TXCSR_H_ERROR
@@ -680,24 +772,20 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
680 ); 772 );
681 csr |= MUSB_TXCSR_MODE; 773 csr |= MUSB_TXCSR_MODE;
682 774
683 if (usb_gettoggle(urb->dev, 775 if (usb_gettoggle(urb->dev, qh->epnum, 1))
684 qh->epnum, 1))
685 csr |= MUSB_TXCSR_H_WR_DATATOGGLE 776 csr |= MUSB_TXCSR_H_WR_DATATOGGLE
686 | MUSB_TXCSR_H_DATATOGGLE; 777 | MUSB_TXCSR_H_DATATOGGLE;
687 else 778 else
688 csr |= MUSB_TXCSR_CLRDATATOG; 779 csr |= MUSB_TXCSR_CLRDATATOG;
689 780
690 /* twice in case of double packet buffering */
691 musb_writew(epio, MUSB_TXCSR, csr); 781 musb_writew(epio, MUSB_TXCSR, csr);
692 /* REVISIT may need to clear FLUSHFIFO ... */ 782 /* REVISIT may need to clear FLUSHFIFO ... */
783 csr &= ~MUSB_TXCSR_DMAMODE;
693 musb_writew(epio, MUSB_TXCSR, csr); 784 musb_writew(epio, MUSB_TXCSR, csr);
694 csr = musb_readw(epio, MUSB_TXCSR); 785 csr = musb_readw(epio, MUSB_TXCSR);
695 } else { 786 } else {
696 /* endpoint 0: just flush */ 787 /* endpoint 0: just flush */
697 musb_writew(epio, MUSB_CSR0, 788 musb_h_ep0_flush_fifo(hw_ep);
698 csr | MUSB_CSR0_FLUSHFIFO);
699 musb_writew(epio, MUSB_CSR0,
700 csr | MUSB_CSR0_FLUSHFIFO);
701 } 789 }
702 790
703 /* target addr and (for multipoint) hub addr/port */ 791 /* target addr and (for multipoint) hub addr/port */
@@ -734,113 +822,14 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
734 else 822 else
735 load_count = min((u32) packet_sz, len); 823 load_count = min((u32) packet_sz, len);
736 824
737#ifdef CONFIG_USB_INVENTRA_DMA 825 if (dma_channel && musb_tx_dma_program(dma_controller,
738 if (dma_channel) { 826 hw_ep, qh, urb, offset, len))
739 827 load_count = 0;
740 /* clear previous state */
741 csr = musb_readw(epio, MUSB_TXCSR);
742 csr &= ~(MUSB_TXCSR_AUTOSET
743 | MUSB_TXCSR_DMAMODE
744 | MUSB_TXCSR_DMAENAB);
745 csr |= MUSB_TXCSR_MODE;
746 musb_writew(epio, MUSB_TXCSR,
747 csr | MUSB_TXCSR_MODE);
748
749 qh->segsize = min(len, dma_channel->max_len);
750
751 if (qh->segsize <= packet_sz)
752 dma_channel->desired_mode = 0;
753 else
754 dma_channel->desired_mode = 1;
755
756
757 if (dma_channel->desired_mode == 0) {
758 csr &= ~(MUSB_TXCSR_AUTOSET
759 | MUSB_TXCSR_DMAMODE);
760 csr |= (MUSB_TXCSR_DMAENAB);
761 /* against programming guide */
762 } else
763 csr |= (MUSB_TXCSR_AUTOSET
764 | MUSB_TXCSR_DMAENAB
765 | MUSB_TXCSR_DMAMODE);
766
767 musb_writew(epio, MUSB_TXCSR, csr);
768
769 dma_ok = dma_controller->channel_program(
770 dma_channel, packet_sz,
771 dma_channel->desired_mode,
772 urb->transfer_dma,
773 qh->segsize);
774 if (dma_ok) {
775 load_count = 0;
776 } else {
777 dma_controller->channel_release(dma_channel);
778 if (is_out)
779 hw_ep->tx_channel = NULL;
780 else
781 hw_ep->rx_channel = NULL;
782 dma_channel = NULL;
783 }
784 }
785#endif
786
787 /* candidate for DMA */
788 if ((is_cppi_enabled() || tusb_dma_omap()) && dma_channel) {
789
790 /* program endpoint CSRs first, then setup DMA.
791 * assume CPPI setup succeeds.
792 * defer enabling dma.
793 */
794 csr = musb_readw(epio, MUSB_TXCSR);
795 csr &= ~(MUSB_TXCSR_AUTOSET
796 | MUSB_TXCSR_DMAMODE
797 | MUSB_TXCSR_DMAENAB);
798 csr |= MUSB_TXCSR_MODE;
799 musb_writew(epio, MUSB_TXCSR,
800 csr | MUSB_TXCSR_MODE);
801
802 dma_channel->actual_len = 0L;
803 qh->segsize = len;
804
805 /* TX uses "rndis" mode automatically, but needs help
806 * to identify the zero-length-final-packet case.
807 */
808 dma_ok = dma_controller->channel_program(
809 dma_channel, packet_sz,
810 (urb->transfer_flags
811 & URB_ZERO_PACKET)
812 == URB_ZERO_PACKET,
813 urb->transfer_dma,
814 qh->segsize);
815 if (dma_ok) {
816 load_count = 0;
817 } else {
818 dma_controller->channel_release(dma_channel);
819 hw_ep->tx_channel = NULL;
820 dma_channel = NULL;
821
822 /* REVISIT there's an error path here that
823 * needs handling: can't do dma, but
824 * there's no pio buffer address...
825 */
826 }
827 }
828 828
829 if (load_count) { 829 if (load_count) {
830 /* ASSERT: TXCSR_DMAENAB was already cleared */
831
832 /* PIO to load FIFO */ 830 /* PIO to load FIFO */
833 qh->segsize = load_count; 831 qh->segsize = load_count;
834 musb_write_fifo(hw_ep, load_count, buf); 832 musb_write_fifo(hw_ep, load_count, buf);
835 csr = musb_readw(epio, MUSB_TXCSR);
836 csr &= ~(MUSB_TXCSR_DMAENAB
837 | MUSB_TXCSR_DMAMODE
838 | MUSB_TXCSR_AUTOSET);
839 /* write CSR */
840 csr |= MUSB_TXCSR_MODE;
841
842 if (epnum)
843 musb_writew(epio, MUSB_TXCSR, csr);
844 } 833 }
845 834
846 /* re-enable interrupt */ 835 /* re-enable interrupt */
@@ -895,7 +884,7 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
895 dma_channel, packet_sz, 884 dma_channel, packet_sz,
896 !(urb->transfer_flags 885 !(urb->transfer_flags
897 & URB_SHORT_NOT_OK), 886 & URB_SHORT_NOT_OK),
898 urb->transfer_dma, 887 urb->transfer_dma + offset,
899 qh->segsize); 888 qh->segsize);
900 if (!dma_ok) { 889 if (!dma_ok) {
901 dma_controller->channel_release( 890 dma_controller->channel_release(
@@ -1063,11 +1052,7 @@ irqreturn_t musb_h_ep0_irq(struct musb *musb)
1063 csr &= ~MUSB_CSR0_H_NAKTIMEOUT; 1052 csr &= ~MUSB_CSR0_H_NAKTIMEOUT;
1064 musb_writew(epio, MUSB_CSR0, csr); 1053 musb_writew(epio, MUSB_CSR0, csr);
1065 } else { 1054 } else {
1066 csr |= MUSB_CSR0_FLUSHFIFO; 1055 musb_h_ep0_flush_fifo(hw_ep);
1067 musb_writew(epio, MUSB_CSR0, csr);
1068 musb_writew(epio, MUSB_CSR0, csr);
1069 csr &= ~MUSB_CSR0_H_NAKTIMEOUT;
1070 musb_writew(epio, MUSB_CSR0, csr);
1071 } 1056 }
1072 1057
1073 musb_writeb(epio, MUSB_NAKLIMIT0, 0); 1058 musb_writeb(epio, MUSB_NAKLIMIT0, 0);
@@ -1081,10 +1066,7 @@ irqreturn_t musb_h_ep0_irq(struct musb *musb)
1081 * SHOULD NEVER HAPPEN! */ 1066 * SHOULD NEVER HAPPEN! */
1082 ERR("no URB for end 0\n"); 1067 ERR("no URB for end 0\n");
1083 1068
1084 musb_writew(epio, MUSB_CSR0, MUSB_CSR0_FLUSHFIFO); 1069 musb_h_ep0_flush_fifo(hw_ep);
1085 musb_writew(epio, MUSB_CSR0, MUSB_CSR0_FLUSHFIFO);
1086 musb_writew(epio, MUSB_CSR0, 0);
1087
1088 goto done; 1070 goto done;
1089 } 1071 }
1090 1072
@@ -1145,8 +1127,8 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1145 int pipe; 1127 int pipe;
1146 bool done = false; 1128 bool done = false;
1147 u16 tx_csr; 1129 u16 tx_csr;
1148 size_t wLength = 0; 1130 size_t length = 0;
1149 u8 *buf = NULL; 1131 size_t offset = 0;
1150 struct urb *urb; 1132 struct urb *urb;
1151 struct musb_hw_ep *hw_ep = musb->endpoints + epnum; 1133 struct musb_hw_ep *hw_ep = musb->endpoints + epnum;
1152 void __iomem *epio = hw_ep->regs; 1134 void __iomem *epio = hw_ep->regs;
@@ -1164,7 +1146,7 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1164 /* with CPPI, DMA sometimes triggers "extra" irqs */ 1146 /* with CPPI, DMA sometimes triggers "extra" irqs */
1165 if (!urb) { 1147 if (!urb) {
1166 DBG(4, "extra TX%d ready, csr %04x\n", epnum, tx_csr); 1148 DBG(4, "extra TX%d ready, csr %04x\n", epnum, tx_csr);
1167 goto finish; 1149 return;
1168 } 1150 }
1169 1151
1170 pipe = urb->pipe; 1152 pipe = urb->pipe;
@@ -1201,7 +1183,7 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1201 musb_writew(epio, MUSB_TXCSR, 1183 musb_writew(epio, MUSB_TXCSR,
1202 MUSB_TXCSR_H_WZC_BITS 1184 MUSB_TXCSR_H_WZC_BITS
1203 | MUSB_TXCSR_TXPKTRDY); 1185 | MUSB_TXCSR_TXPKTRDY);
1204 goto finish; 1186 return;
1205 } 1187 }
1206 1188
1207 if (status) { 1189 if (status) {
@@ -1233,29 +1215,89 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1233 /* second cppi case */ 1215 /* second cppi case */
1234 if (dma_channel_status(dma) == MUSB_DMA_STATUS_BUSY) { 1216 if (dma_channel_status(dma) == MUSB_DMA_STATUS_BUSY) {
1235 DBG(4, "extra TX%d ready, csr %04x\n", epnum, tx_csr); 1217 DBG(4, "extra TX%d ready, csr %04x\n", epnum, tx_csr);
1236 goto finish; 1218 return;
1219 }
1220
1221 if (is_dma_capable() && dma && !status) {
1222 /*
1223 * DMA has completed. But if we're using DMA mode 1 (multi
1224 * packet DMA), we need a terminal TXPKTRDY interrupt before
1225 * we can consider this transfer completed, lest we trash
1226 * its last packet when writing the next URB's data. So we
1227 * switch back to mode 0 to get that interrupt; we'll come
1228 * back here once it happens.
1229 */
1230 if (tx_csr & MUSB_TXCSR_DMAMODE) {
1231 /*
1232 * We shouldn't clear DMAMODE with DMAENAB set; so
1233 * clear them in a safe order. That should be OK
1234 * once TXPKTRDY has been set (and I've never seen
1235 * it being 0 at this moment -- DMA interrupt latency
1236 * is significant) but if it hasn't been then we have
1237 * no choice but to stop being polite and ignore the
1238 * programmer's guide... :-)
1239 *
1240 * Note that we must write TXCSR with TXPKTRDY cleared
1241 * in order not to re-trigger the packet send (this bit
1242 * can't be cleared by CPU), and there's another caveat:
1243 * TXPKTRDY may be set shortly and then cleared in the
1244 * double-buffered FIFO mode, so we do an extra TXCSR
1245 * read for debouncing...
1246 */
1247 tx_csr &= musb_readw(epio, MUSB_TXCSR);
1248 if (tx_csr & MUSB_TXCSR_TXPKTRDY) {
1249 tx_csr &= ~(MUSB_TXCSR_DMAENAB |
1250 MUSB_TXCSR_TXPKTRDY);
1251 musb_writew(epio, MUSB_TXCSR,
1252 tx_csr | MUSB_TXCSR_H_WZC_BITS);
1253 }
1254 tx_csr &= ~(MUSB_TXCSR_DMAMODE |
1255 MUSB_TXCSR_TXPKTRDY);
1256 musb_writew(epio, MUSB_TXCSR,
1257 tx_csr | MUSB_TXCSR_H_WZC_BITS);
1258
1259 /*
1260 * There is no guarantee that we'll get an interrupt
1261 * after clearing DMAMODE as we might have done this
1262 * too late (after TXPKTRDY was cleared by controller).
1263 * Re-read TXCSR as we have spoiled its previous value.
1264 */
1265 tx_csr = musb_readw(epio, MUSB_TXCSR);
1266 }
1237 1267
1268 /*
1269 * We may get here from a DMA completion or TXPKTRDY interrupt.
1270 * In any case, we must check the FIFO status here and bail out
1271 * only if the FIFO still has data -- that should prevent the
1272 * "missed" TXPKTRDY interrupts and deal with double-buffered
1273 * FIFO mode too...
1274 */
1275 if (tx_csr & (MUSB_TXCSR_FIFONOTEMPTY | MUSB_TXCSR_TXPKTRDY)) {
1276 DBG(2, "DMA complete but packet still in FIFO, "
1277 "CSR %04x\n", tx_csr);
1278 return;
1279 }
1238 } 1280 }
1239 1281
1240 /* REVISIT this looks wrong... */
1241 if (!status || dma || usb_pipeisoc(pipe)) { 1282 if (!status || dma || usb_pipeisoc(pipe)) {
1242 if (dma) 1283 if (dma)
1243 wLength = dma->actual_len; 1284 length = dma->actual_len;
1244 else 1285 else
1245 wLength = qh->segsize; 1286 length = qh->segsize;
1246 qh->offset += wLength; 1287 qh->offset += length;
1247 1288
1248 if (usb_pipeisoc(pipe)) { 1289 if (usb_pipeisoc(pipe)) {
1249 struct usb_iso_packet_descriptor *d; 1290 struct usb_iso_packet_descriptor *d;
1250 1291
1251 d = urb->iso_frame_desc + qh->iso_idx; 1292 d = urb->iso_frame_desc + qh->iso_idx;
1252 d->actual_length = qh->segsize; 1293 d->actual_length = length;
1294 d->status = status;
1253 if (++qh->iso_idx >= urb->number_of_packets) { 1295 if (++qh->iso_idx >= urb->number_of_packets) {
1254 done = true; 1296 done = true;
1255 } else { 1297 } else {
1256 d++; 1298 d++;
1257 buf = urb->transfer_buffer + d->offset; 1299 offset = d->offset;
1258 wLength = d->length; 1300 length = d->length;
1259 } 1301 }
1260 } else if (dma) { 1302 } else if (dma) {
1261 done = true; 1303 done = true;
@@ -1268,10 +1310,8 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1268 & URB_ZERO_PACKET)) 1310 & URB_ZERO_PACKET))
1269 done = true; 1311 done = true;
1270 if (!done) { 1312 if (!done) {
1271 buf = urb->transfer_buffer 1313 offset = qh->offset;
1272 + qh->offset; 1314 length = urb->transfer_buffer_length - offset;
1273 wLength = urb->transfer_buffer_length
1274 - qh->offset;
1275 } 1315 }
1276 } 1316 }
1277 } 1317 }
@@ -1290,28 +1330,31 @@ void musb_host_tx(struct musb *musb, u8 epnum)
1290 urb->status = status; 1330 urb->status = status;
1291 urb->actual_length = qh->offset; 1331 urb->actual_length = qh->offset;
1292 musb_advance_schedule(musb, urb, hw_ep, USB_DIR_OUT); 1332 musb_advance_schedule(musb, urb, hw_ep, USB_DIR_OUT);
1333 return;
1334 } else if (usb_pipeisoc(pipe) && dma) {
1335 if (musb_tx_dma_program(musb->dma_controller, hw_ep, qh, urb,
1336 offset, length))
1337 return;
1338 } else if (tx_csr & MUSB_TXCSR_DMAENAB) {
1339 DBG(1, "not complete, but DMA enabled?\n");
1340 return;
1341 }
1293 1342
1294 } else if (!(tx_csr & MUSB_TXCSR_DMAENAB)) { 1343 /*
1295 /* WARN_ON(!buf); */ 1344 * PIO: start next packet in this URB.
1296 1345 *
1297 /* REVISIT: some docs say that when hw_ep->tx_double_buffered, 1346 * REVISIT: some docs say that when hw_ep->tx_double_buffered,
1298 * (and presumably, fifo is not half-full) we should write TWO 1347 * (and presumably, FIFO is not half-full) we should write *two*
1299 * packets before updating TXCSR ... other docs disagree ... 1348 * packets before updating TXCSR; other docs disagree...
1300 */ 1349 */
1301 /* PIO: start next packet in this URB */ 1350 if (length > qh->maxpacket)
1302 if (wLength > qh->maxpacket) 1351 length = qh->maxpacket;
1303 wLength = qh->maxpacket; 1352 musb_write_fifo(hw_ep, length, urb->transfer_buffer + offset);
1304 musb_write_fifo(hw_ep, wLength, buf); 1353 qh->segsize = length;
1305 qh->segsize = wLength;
1306
1307 musb_ep_select(mbase, epnum);
1308 musb_writew(epio, MUSB_TXCSR,
1309 MUSB_TXCSR_H_WZC_BITS | MUSB_TXCSR_TXPKTRDY);
1310 } else
1311 DBG(1, "not complete, but dma enabled?\n");
1312 1354
1313finish: 1355 musb_ep_select(mbase, epnum);
1314 return; 1356 musb_writew(epio, MUSB_TXCSR,
1357 MUSB_TXCSR_H_WZC_BITS | MUSB_TXCSR_TXPKTRDY);
1315} 1358}
1316 1359
1317 1360
@@ -1841,7 +1884,7 @@ static int musb_urb_enqueue(
1841 unsigned long flags; 1884 unsigned long flags;
1842 struct musb *musb = hcd_to_musb(hcd); 1885 struct musb *musb = hcd_to_musb(hcd);
1843 struct usb_host_endpoint *hep = urb->ep; 1886 struct usb_host_endpoint *hep = urb->ep;
1844 struct musb_qh *qh = hep->hcpriv; 1887 struct musb_qh *qh;
1845 struct usb_endpoint_descriptor *epd = &hep->desc; 1888 struct usb_endpoint_descriptor *epd = &hep->desc;
1846 int ret; 1889 int ret;
1847 unsigned type_reg; 1890 unsigned type_reg;
@@ -1853,22 +1896,21 @@ static int musb_urb_enqueue(
1853 1896
1854 spin_lock_irqsave(&musb->lock, flags); 1897 spin_lock_irqsave(&musb->lock, flags);
1855 ret = usb_hcd_link_urb_to_ep(hcd, urb); 1898 ret = usb_hcd_link_urb_to_ep(hcd, urb);
1899 qh = ret ? NULL : hep->hcpriv;
1900 if (qh)
1901 urb->hcpriv = qh;
1856 spin_unlock_irqrestore(&musb->lock, flags); 1902 spin_unlock_irqrestore(&musb->lock, flags);
1857 if (ret)
1858 return ret;
1859 1903
1860 /* DMA mapping was already done, if needed, and this urb is on 1904 /* DMA mapping was already done, if needed, and this urb is on
1861 * hep->urb_list ... so there's little to do unless hep wasn't 1905 * hep->urb_list now ... so we're done, unless hep wasn't yet
1862 * yet scheduled onto a live qh. 1906 * scheduled onto a live qh.
1863 * 1907 *
1864 * REVISIT best to keep hep->hcpriv valid until the endpoint gets 1908 * REVISIT best to keep hep->hcpriv valid until the endpoint gets
1865 * disabled, testing for empty qh->ring and avoiding qh setup costs 1909 * disabled, testing for empty qh->ring and avoiding qh setup costs
1866 * except for the first urb queued after a config change. 1910 * except for the first urb queued after a config change.
1867 */ 1911 */
1868 if (qh) { 1912 if (qh || ret)
1869 urb->hcpriv = qh; 1913 return ret;
1870 return 0;
1871 }
1872 1914
1873 /* Allocate and initialize qh, minimizing the work done each time 1915 /* Allocate and initialize qh, minimizing the work done each time
1874 * hw_ep gets reprogrammed, or with irqs blocked. Then schedule it. 1916 * hw_ep gets reprogrammed, or with irqs blocked. Then schedule it.
@@ -2044,7 +2086,7 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh, int is_in)
2044 * endpoint's irq status here to avoid bogus irqs. 2086 * endpoint's irq status here to avoid bogus irqs.
2045 * clearing that status is platform-specific... 2087 * clearing that status is platform-specific...
2046 */ 2088 */
2047 } else { 2089 } else if (ep->epnum) {
2048 musb_h_tx_flush_fifo(ep); 2090 musb_h_tx_flush_fifo(ep);
2049 csr = musb_readw(epio, MUSB_TXCSR); 2091 csr = musb_readw(epio, MUSB_TXCSR);
2050 csr &= ~(MUSB_TXCSR_AUTOSET 2092 csr &= ~(MUSB_TXCSR_AUTOSET
@@ -2058,6 +2100,8 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh, int is_in)
2058 musb_writew(epio, MUSB_TXCSR, csr); 2100 musb_writew(epio, MUSB_TXCSR, csr);
2059 /* flush cpu writebuffer */ 2101 /* flush cpu writebuffer */
2060 csr = musb_readw(epio, MUSB_TXCSR); 2102 csr = musb_readw(epio, MUSB_TXCSR);
2103 } else {
2104 musb_h_ep0_flush_fifo(ep);
2061 } 2105 }
2062 if (status == 0) 2106 if (status == 0)
2063 musb_advance_schedule(ep->musb, urb, ep, is_in); 2107 musb_advance_schedule(ep->musb, urb, ep, is_in);
diff --git a/drivers/usb/musb/musbhsdma.c b/drivers/usb/musb/musbhsdma.c
index 8662e9e159c3..5e83f96d6b77 100644
--- a/drivers/usb/musb/musbhsdma.c
+++ b/drivers/usb/musb/musbhsdma.c
@@ -195,30 +195,32 @@ static int dma_channel_abort(struct dma_channel *channel)
195 void __iomem *mbase = musb_channel->controller->base; 195 void __iomem *mbase = musb_channel->controller->base;
196 196
197 u8 bchannel = musb_channel->idx; 197 u8 bchannel = musb_channel->idx;
198 int offset;
198 u16 csr; 199 u16 csr;
199 200
200 if (channel->status == MUSB_DMA_STATUS_BUSY) { 201 if (channel->status == MUSB_DMA_STATUS_BUSY) {
201 if (musb_channel->transmit) { 202 if (musb_channel->transmit) {
202 203 offset = MUSB_EP_OFFSET(musb_channel->epnum,
203 csr = musb_readw(mbase, 204 MUSB_TXCSR);
204 MUSB_EP_OFFSET(musb_channel->epnum, 205
205 MUSB_TXCSR)); 206 /*
206 csr &= ~(MUSB_TXCSR_AUTOSET | 207 * The programming guide says that we must clear
207 MUSB_TXCSR_DMAENAB | 208 * the DMAENAB bit before the DMAMODE bit...
208 MUSB_TXCSR_DMAMODE); 209 */
209 musb_writew(mbase, 210 csr = musb_readw(mbase, offset);
210 MUSB_EP_OFFSET(musb_channel->epnum, MUSB_TXCSR), 211 csr &= ~(MUSB_TXCSR_AUTOSET | MUSB_TXCSR_DMAENAB);
211 csr); 212 musb_writew(mbase, offset, csr);
213 csr &= ~MUSB_TXCSR_DMAMODE;
214 musb_writew(mbase, offset, csr);
212 } else { 215 } else {
213 csr = musb_readw(mbase, 216 offset = MUSB_EP_OFFSET(musb_channel->epnum,
214 MUSB_EP_OFFSET(musb_channel->epnum, 217 MUSB_RXCSR);
215 MUSB_RXCSR)); 218
219 csr = musb_readw(mbase, offset);
216 csr &= ~(MUSB_RXCSR_AUTOCLEAR | 220 csr &= ~(MUSB_RXCSR_AUTOCLEAR |
217 MUSB_RXCSR_DMAENAB | 221 MUSB_RXCSR_DMAENAB |
218 MUSB_RXCSR_DMAMODE); 222 MUSB_RXCSR_DMAMODE);
219 musb_writew(mbase, 223 musb_writew(mbase, offset, csr);
220 MUSB_EP_OFFSET(musb_channel->epnum, MUSB_RXCSR),
221 csr);
222 } 224 }
223 225
224 musb_writew(mbase, 226 musb_writew(mbase,
@@ -296,20 +298,28 @@ static irqreturn_t dma_controller_irq(int irq, void *private_data)
296 && ((channel->desired_mode == 0) 298 && ((channel->desired_mode == 0)
297 || (channel->actual_len & 299 || (channel->actual_len &
298 (musb_channel->max_packet_sz - 1))) 300 (musb_channel->max_packet_sz - 1)))
299 ) { 301 ) {
302 u8 epnum = musb_channel->epnum;
303 int offset = MUSB_EP_OFFSET(epnum,
304 MUSB_TXCSR);
305 u16 txcsr;
306
307 /*
308 * The programming guide says that we
309 * must clear DMAENAB before DMAMODE.
310 */
311 musb_ep_select(mbase, epnum);
312 txcsr = musb_readw(mbase, offset);
313 txcsr &= ~(MUSB_TXCSR_DMAENAB
314 | MUSB_TXCSR_AUTOSET);
315 musb_writew(mbase, offset, txcsr);
300 /* Send out the packet */ 316 /* Send out the packet */
301 musb_ep_select(mbase, 317 txcsr &= ~MUSB_TXCSR_DMAMODE;
302 musb_channel->epnum); 318 txcsr |= MUSB_TXCSR_TXPKTRDY;
303 musb_writew(mbase, MUSB_EP_OFFSET( 319 musb_writew(mbase, offset, txcsr);
304 musb_channel->epnum,
305 MUSB_TXCSR),
306 MUSB_TXCSR_TXPKTRDY);
307 } else {
308 musb_dma_completion(
309 musb,
310 musb_channel->epnum,
311 musb_channel->transmit);
312 } 320 }
321 musb_dma_completion(musb, musb_channel->epnum,
322 musb_channel->transmit);
313 } 323 }
314 } 324 }
315 } 325 }
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 901dffdf23b1..60924ce08493 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -3,7 +3,6 @@
3 * Some code has been taken from tusb6010.c 3 * Some code has been taken from tusb6010.c
4 * Copyrights for that are attributable to: 4 * Copyrights for that are attributable to:
5 * Copyright (C) 2006 Nokia Corporation 5 * Copyright (C) 2006 Nokia Corporation
6 * Jarkko Nikula <jarkko.nikula@nokia.com>
7 * Tony Lindgren <tony@atomide.com> 6 * Tony Lindgren <tony@atomide.com>
8 * 7 *
9 * This file is part of the Inventra Controller Driver for Linux. 8 * This file is part of the Inventra Controller Driver for Linux.
diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index 9e20fd070d71..4ac1477d3569 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -2,7 +2,6 @@
2 * TUSB6010 USB 2.0 OTG Dual Role controller 2 * TUSB6010 USB 2.0 OTG Dual Role controller
3 * 3 *
4 * Copyright (C) 2006 Nokia Corporation 4 * Copyright (C) 2006 Nokia Corporation
5 * Jarkko Nikula <jarkko.nikula@nokia.com>
6 * Tony Lindgren <tony@atomide.com> 5 * Tony Lindgren <tony@atomide.com>
7 * 6 *
8 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
diff --git a/drivers/usb/musb/tusb6010.h b/drivers/usb/musb/tusb6010.h
index ab8c96286ce6..35c933a5d991 100644
--- a/drivers/usb/musb/tusb6010.h
+++ b/drivers/usb/musb/tusb6010.h
@@ -2,7 +2,6 @@
2 * Definitions for TUSB6010 USB 2.0 OTG Dual Role controller 2 * Definitions for TUSB6010 USB 2.0 OTG Dual Role controller
3 * 3 *
4 * Copyright (C) 2006 Nokia Corporation 4 * Copyright (C) 2006 Nokia Corporation
5 * Jarkko Nikula <jarkko.nikula@nokia.com>
6 * Tony Lindgren <tony@atomide.com> 5 * Tony Lindgren <tony@atomide.com>
7 * 6 *
8 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
diff --git a/drivers/usb/otg/nop-usb-xceiv.c b/drivers/usb/otg/nop-usb-xceiv.c
index 4b933f646f2e..c567168f89af 100644
--- a/drivers/usb/otg/nop-usb-xceiv.c
+++ b/drivers/usb/otg/nop-usb-xceiv.c
@@ -36,14 +36,14 @@ struct nop_usb_xceiv {
36 struct device *dev; 36 struct device *dev;
37}; 37};
38 38
39static u64 nop_xceiv_dmamask = DMA_32BIT_MASK; 39static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);
40 40
41static struct platform_device nop_xceiv_device = { 41static struct platform_device nop_xceiv_device = {
42 .name = "nop_usb_xceiv", 42 .name = "nop_usb_xceiv",
43 .id = -1, 43 .id = -1,
44 .dev = { 44 .dev = {
45 .dma_mask = &nop_xceiv_dmamask, 45 .dma_mask = &nop_xceiv_dmamask,
46 .coherent_dma_mask = DMA_32BIT_MASK, 46 .coherent_dma_mask = DMA_BIT_MASK(32),
47 .platform_data = NULL, 47 .platform_data = NULL,
48 }, 48 },
49}; 49};
diff --git a/drivers/usb/otg/otg.c b/drivers/usb/otg/otg.c
index ff318fae7d4d..0a43a7db750f 100644
--- a/drivers/usb/otg/otg.c
+++ b/drivers/usb/otg/otg.c
@@ -43,7 +43,8 @@ EXPORT_SYMBOL(otg_get_transceiver);
43 */ 43 */
44void otg_put_transceiver(struct otg_transceiver *x) 44void otg_put_transceiver(struct otg_transceiver *x)
45{ 45{
46 put_device(x->dev); 46 if (x)
47 put_device(x->dev);
47} 48}
48EXPORT_SYMBOL(otg_put_transceiver); 49EXPORT_SYMBOL(otg_put_transceiver);
49 50
diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c
index 858bdd038fbc..dd501bb63ed6 100644
--- a/drivers/usb/serial/cyberjack.c
+++ b/drivers/usb/serial/cyberjack.c
@@ -175,13 +175,6 @@ static int cyberjack_open(struct tty_struct *tty,
175 dbg("%s - usb_clear_halt", __func__); 175 dbg("%s - usb_clear_halt", __func__);
176 usb_clear_halt(port->serial->dev, port->write_urb->pipe); 176 usb_clear_halt(port->serial->dev, port->write_urb->pipe);
177 177
178 /* force low_latency on so that our tty_push actually forces
179 * the data through, otherwise it is scheduled, and with high
180 * data rates (like with OHCI) data can get lost.
181 */
182 if (tty)
183 tty->low_latency = 1;
184
185 priv = usb_get_serial_port_data(port); 178 priv = usb_get_serial_port_data(port);
186 spin_lock_irqsave(&priv->lock, flags); 179 spin_lock_irqsave(&priv->lock, flags);
187 priv->rdtodo = 0; 180 priv->rdtodo = 0;
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index eae4740d448c..e568710b263f 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -656,10 +656,6 @@ static int cypress_open(struct tty_struct *tty,
656 priv->rx_flags = 0; 656 priv->rx_flags = 0;
657 spin_unlock_irqrestore(&priv->lock, flags); 657 spin_unlock_irqrestore(&priv->lock, flags);
658 658
659 /* setting to zero could cause data loss */
660 if (tty)
661 tty->low_latency = 1;
662
663 /* raise both lines and set termios */ 659 /* raise both lines and set termios */
664 spin_lock_irqsave(&priv->lock, flags); 660 spin_lock_irqsave(&priv->lock, flags);
665 priv->line_control = CONTROL_DTR | CONTROL_RTS; 661 priv->line_control = CONTROL_DTR | CONTROL_RTS;
diff --git a/drivers/usb/serial/empeg.c b/drivers/usb/serial/empeg.c
index 8a69cce40b6d..c709ec474a80 100644
--- a/drivers/usb/serial/empeg.c
+++ b/drivers/usb/serial/empeg.c
@@ -478,12 +478,6 @@ static void empeg_set_termios(struct tty_struct *tty,
478 termios->c_cflag 478 termios->c_cflag
479 |= CS8; /* character size 8 bits */ 479 |= CS8; /* character size 8 bits */
480 480
481 /*
482 * Force low_latency on; otherwise the pushes are scheduled;
483 * this is bad as it opens up the possibility of dropping bytes
484 * on the floor. We don't want to drop bytes on the floor. :)
485 */
486 tty->low_latency = 1;
487 tty_encode_baud_rate(tty, 115200, 115200); 481 tty_encode_baud_rate(tty, 115200, 115200);
488} 482}
489 483
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index dcc87aaa8628..0ab8474b00cb 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -56,6 +56,7 @@ static __u16 vendor = FTDI_VID;
56static __u16 product; 56static __u16 product;
57 57
58struct ftdi_private { 58struct ftdi_private {
59 struct kref kref;
59 ftdi_chip_type_t chip_type; 60 ftdi_chip_type_t chip_type;
60 /* type of device, either SIO or FT8U232AM */ 61 /* type of device, either SIO or FT8U232AM */
61 int baud_base; /* baud base clock for divisor setting */ 62 int baud_base; /* baud base clock for divisor setting */
@@ -668,6 +669,9 @@ static struct usb_device_id id_table_combined [] = {
668 { USB_DEVICE(DE_VID, WHT_PID) }, 669 { USB_DEVICE(DE_VID, WHT_PID) },
669 { USB_DEVICE(ADI_VID, ADI_GNICE_PID), 670 { USB_DEVICE(ADI_VID, ADI_GNICE_PID),
670 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 671 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
672 { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
673 { USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
674 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
671 { }, /* Optional parameter entry */ 675 { }, /* Optional parameter entry */
672 { } /* Terminating entry */ 676 { } /* Terminating entry */
673}; 677};
@@ -1351,6 +1355,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
1351 return -ENOMEM; 1355 return -ENOMEM;
1352 } 1356 }
1353 1357
1358 kref_init(&priv->kref);
1354 spin_lock_init(&priv->rx_lock); 1359 spin_lock_init(&priv->rx_lock);
1355 spin_lock_init(&priv->tx_lock); 1360 spin_lock_init(&priv->tx_lock);
1356 init_waitqueue_head(&priv->delta_msr_wait); 1361 init_waitqueue_head(&priv->delta_msr_wait);
@@ -1467,6 +1472,13 @@ static void ftdi_shutdown(struct usb_serial *serial)
1467 dbg("%s", __func__); 1472 dbg("%s", __func__);
1468} 1473}
1469 1474
1475static void ftdi_sio_priv_release(struct kref *k)
1476{
1477 struct ftdi_private *priv = container_of(k, struct ftdi_private, kref);
1478
1479 kfree(priv);
1480}
1481
1470static int ftdi_sio_port_remove(struct usb_serial_port *port) 1482static int ftdi_sio_port_remove(struct usb_serial_port *port)
1471{ 1483{
1472 struct ftdi_private *priv = usb_get_serial_port_data(port); 1484 struct ftdi_private *priv = usb_get_serial_port_data(port);
@@ -1481,7 +1493,7 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port)
1481 1493
1482 if (priv) { 1494 if (priv) {
1483 usb_set_serial_port_data(port, NULL); 1495 usb_set_serial_port_data(port, NULL);
1484 kfree(priv); 1496 kref_put(&priv->kref, ftdi_sio_priv_release);
1485 } 1497 }
1486 1498
1487 return 0; 1499 return 0;
@@ -1546,7 +1558,8 @@ static int ftdi_open(struct tty_struct *tty,
1546 dev_err(&port->dev, 1558 dev_err(&port->dev,
1547 "%s - failed submitting read urb, error %d\n", 1559 "%s - failed submitting read urb, error %d\n",
1548 __func__, result); 1560 __func__, result);
1549 1561 else
1562 kref_get(&priv->kref);
1550 1563
1551 return result; 1564 return result;
1552} /* ftdi_open */ 1565} /* ftdi_open */
@@ -1588,11 +1601,11 @@ static void ftdi_close(struct tty_struct *tty,
1588 mutex_unlock(&port->serial->disc_mutex); 1601 mutex_unlock(&port->serial->disc_mutex);
1589 1602
1590 /* cancel any scheduled reading */ 1603 /* cancel any scheduled reading */
1591 cancel_delayed_work(&priv->rx_work); 1604 cancel_delayed_work_sync(&priv->rx_work);
1592 flush_scheduled_work();
1593 1605
1594 /* shutdown our bulk read */ 1606 /* shutdown our bulk read */
1595 usb_kill_urb(port->read_urb); 1607 usb_kill_urb(port->read_urb);
1608 kref_put(&priv->kref, ftdi_sio_priv_release);
1596} /* ftdi_close */ 1609} /* ftdi_close */
1597 1610
1598 1611
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index daaf63db0b50..12330fa1c095 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -913,6 +913,19 @@
913#define ADI_GNICE_PID 0xF000 913#define ADI_GNICE_PID 0xF000
914 914
915/* 915/*
916 * JETI SPECTROMETER SPECBOS 1201
917 * http://www.jeti.com/products/sys/scb/scb1201.php
918 */
919#define JETI_VID 0x0c6c
920#define JETI_SPC1201_PID 0x04b2
921
922/*
923 * Marvell SheevaPlug
924 */
925#define MARVELL_VID 0x9e88
926#define MARVELL_SHEEVAPLUG_PID 0x9e8f
927
928/*
916 * BmRequestType: 1100 0000b 929 * BmRequestType: 1100 0000b
917 * bRequest: FTDI_E2_READ 930 * bRequest: FTDI_E2_READ
918 * wValue: 0 931 * wValue: 0
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index a26a0e2cdb4a..586d30ff450b 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -973,14 +973,6 @@ static int garmin_open(struct tty_struct *tty,
973 973
974 dbg("%s - port %d", __func__, port->number); 974 dbg("%s - port %d", __func__, port->number);
975 975
976 /*
977 * Force low_latency on so that our tty_push actually forces the data
978 * through, otherwise it is scheduled, and with high data rates (like
979 * with OHCI) data can get lost.
980 */
981 if (tty)
982 tty->low_latency = 1;
983
984 spin_lock_irqsave(&garmin_data_p->lock, flags); 976 spin_lock_irqsave(&garmin_data_p->lock, flags);
985 garmin_data_p->mode = initial_mode; 977 garmin_data_p->mode = initial_mode;
986 garmin_data_p->count = 0; 978 garmin_data_p->count = 0;
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index 9d57cace3731..4cec9906ccf3 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -122,12 +122,6 @@ int usb_serial_generic_open(struct tty_struct *tty,
122 122
123 dbg("%s - port %d", __func__, port->number); 123 dbg("%s - port %d", __func__, port->number);
124 124
125 /* force low_latency on so that our tty_push actually forces the data
126 through, otherwise it is scheduled, and with high data rates (like
127 with OHCI) data can get lost. */
128 if (tty)
129 tty->low_latency = 1;
130
131 /* clear the throttle flags */ 125 /* clear the throttle flags */
132 spin_lock_irqsave(&port->lock, flags); 126 spin_lock_irqsave(&port->lock, flags);
133 port->throttled = 0; 127 port->throttled = 0;
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index e85c8c0d1ad9..fb4a73d090f6 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -193,8 +193,6 @@ static const struct divisor_table_entry divisor_table[] = {
193/* local variables */ 193/* local variables */
194static int debug; 194static int debug;
195 195
196static int low_latency = 1; /* tty low latency flag, on by default */
197
198static atomic_t CmdUrbs; /* Number of outstanding Command Write Urbs */ 196static atomic_t CmdUrbs; /* Number of outstanding Command Write Urbs */
199 197
200 198
@@ -867,9 +865,6 @@ static int edge_open(struct tty_struct *tty,
867 if (edge_port == NULL) 865 if (edge_port == NULL)
868 return -ENODEV; 866 return -ENODEV;
869 867
870 if (tty)
871 tty->low_latency = low_latency;
872
873 /* see if we've set up our endpoint info yet (can't set it up 868 /* see if we've set up our endpoint info yet (can't set it up
874 in edge_startup as the structures were not set up at that time.) */ 869 in edge_startup as the structures were not set up at that time.) */
875 serial = port->serial; 870 serial = port->serial;
@@ -3299,6 +3294,3 @@ MODULE_FIRMWARE("edgeport/down2.fw");
3299 3294
3300module_param(debug, bool, S_IRUGO | S_IWUSR); 3295module_param(debug, bool, S_IRUGO | S_IWUSR);
3301MODULE_PARM_DESC(debug, "Debug enabled or not"); 3296MODULE_PARM_DESC(debug, "Debug enabled or not");
3302
3303module_param(low_latency, bool, S_IRUGO | S_IWUSR);
3304MODULE_PARM_DESC(low_latency, "Low latency enabled or not");
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index c3cdd00ddc41..513b25e044c1 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -76,7 +76,6 @@ struct edgeport_uart_buf_desc {
76#define EDGE_READ_URB_STOPPING 1 76#define EDGE_READ_URB_STOPPING 1
77#define EDGE_READ_URB_STOPPED 2 77#define EDGE_READ_URB_STOPPED 2
78 78
79#define EDGE_LOW_LATENCY 1
80#define EDGE_CLOSING_WAIT 4000 /* in .01 sec */ 79#define EDGE_CLOSING_WAIT 4000 /* in .01 sec */
81 80
82#define EDGE_OUT_BUF_SIZE 1024 81#define EDGE_OUT_BUF_SIZE 1024
@@ -232,7 +231,6 @@ static unsigned short OperationalBuildNumber;
232 231
233static int debug; 232static int debug;
234 233
235static int low_latency = EDGE_LOW_LATENCY;
236static int closing_wait = EDGE_CLOSING_WAIT; 234static int closing_wait = EDGE_CLOSING_WAIT;
237static int ignore_cpu_rev; 235static int ignore_cpu_rev;
238static int default_uart_mode; /* RS232 */ 236static int default_uart_mode; /* RS232 */
@@ -1850,9 +1848,6 @@ static int edge_open(struct tty_struct *tty,
1850 if (edge_port == NULL) 1848 if (edge_port == NULL)
1851 return -ENODEV; 1849 return -ENODEV;
1852 1850
1853 if (tty)
1854 tty->low_latency = low_latency;
1855
1856 port_number = port->number - port->serial->minor; 1851 port_number = port->number - port->serial->minor;
1857 switch (port_number) { 1852 switch (port_number) {
1858 case 0: 1853 case 0:
@@ -3008,9 +3003,6 @@ MODULE_FIRMWARE("edgeport/down3.bin");
3008module_param(debug, bool, S_IRUGO | S_IWUSR); 3003module_param(debug, bool, S_IRUGO | S_IWUSR);
3009MODULE_PARM_DESC(debug, "Debug enabled or not"); 3004MODULE_PARM_DESC(debug, "Debug enabled or not");
3010 3005
3011module_param(low_latency, bool, S_IRUGO | S_IWUSR);
3012MODULE_PARM_DESC(low_latency, "Low latency enabled or not");
3013
3014module_param(closing_wait, int, S_IRUGO | S_IWUSR); 3006module_param(closing_wait, int, S_IRUGO | S_IWUSR);
3015MODULE_PARM_DESC(closing_wait, "Maximum wait for data to drain, in .01 secs"); 3007MODULE_PARM_DESC(closing_wait, "Maximum wait for data to drain, in .01 secs");
3016 3008
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index ef92095b0732..cd62825a9ac3 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -631,13 +631,7 @@ static int ipaq_open(struct tty_struct *tty,
631 priv->free_len += PACKET_SIZE; 631 priv->free_len += PACKET_SIZE;
632 } 632 }
633 633
634 /*
635 * Force low latency on. This will immediately push data to the line
636 * discipline instead of queueing.
637 */
638
639 if (tty) { 634 if (tty) {
640 tty->low_latency = 1;
641 /* FIXME: These two are bogus */ 635 /* FIXME: These two are bogus */
642 tty->raw = 1; 636 tty->raw = 1;
643 tty->real_raw = 1; 637 tty->real_raw = 1;
diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
index f530032ed93d..da2a2b46644a 100644
--- a/drivers/usb/serial/ipw.c
+++ b/drivers/usb/serial/ipw.c
@@ -207,9 +207,6 @@ static int ipw_open(struct tty_struct *tty,
207 if (!buf_flow_init) 207 if (!buf_flow_init)
208 return -ENOMEM; 208 return -ENOMEM;
209 209
210 if (tty)
211 tty->low_latency = 1;
212
213 /* --1: Tell the modem to initialize (we think) From sniffs this is 210 /* --1: Tell the modem to initialize (we think) From sniffs this is
214 * always the first thing that gets sent to the modem during 211 * always the first thing that gets sent to the modem during
215 * opening of the device */ 212 * opening of the device */
diff --git a/drivers/usb/serial/iuu_phoenix.c b/drivers/usb/serial/iuu_phoenix.c
index 2314c6ae4fc2..4473d442b2aa 100644
--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -1051,7 +1051,6 @@ static int iuu_open(struct tty_struct *tty,
1051 tty->termios->c_oflag = 0; 1051 tty->termios->c_oflag = 0;
1052 tty->termios->c_iflag = 0; 1052 tty->termios->c_iflag = 0;
1053 priv->termios_initialized = 1; 1053 priv->termios_initialized = 1;
1054 tty->low_latency = 1;
1055 priv->poll = 0; 1054 priv->poll = 0;
1056 } 1055 }
1057 spin_unlock_irqrestore(&priv->lock, flags); 1056 spin_unlock_irqrestore(&priv->lock, flags);
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
index 6286baad9392..c148544953b3 100644
--- a/drivers/usb/serial/kobil_sct.c
+++ b/drivers/usb/serial/kobil_sct.c
@@ -231,13 +231,7 @@ static int kobil_open(struct tty_struct *tty,
231 /* someone sets the dev to 0 if the close method has been called */ 231 /* someone sets the dev to 0 if the close method has been called */
232 port->interrupt_in_urb->dev = port->serial->dev; 232 port->interrupt_in_urb->dev = port->serial->dev;
233 233
234
235 /* force low_latency on so that our tty_push actually forces
236 * the data through, otherwise it is scheduled, and with high
237 * data rates (like with OHCI) data can get lost.
238 */
239 if (tty) { 234 if (tty) {
240 tty->low_latency = 1;
241 235
242 /* Default to echo off and other sane device settings */ 236 /* Default to echo off and other sane device settings */
243 tty->termios->c_lflag = 0; 237 tty->termios->c_lflag = 0;
diff --git a/drivers/usb/serial/mos7720.c b/drivers/usb/serial/mos7720.c
index e772cc0a97fd..24e3b5d4b4d4 100644
--- a/drivers/usb/serial/mos7720.c
+++ b/drivers/usb/serial/mos7720.c
@@ -446,13 +446,6 @@ static int mos7720_open(struct tty_struct *tty,
446 data = 0x0c; 446 data = 0x0c;
447 send_mos_cmd(serial, MOS_WRITE, port_number, 0x01, &data); 447 send_mos_cmd(serial, MOS_WRITE, port_number, 0x01, &data);
448 448
449 /* force low_latency on so that our tty_push actually forces *
450 * the data through,otherwise it is scheduled, and with *
451 * high data rates (like with OHCI) data can get lost. */
452
453 if (tty)
454 tty->low_latency = 1;
455
456 /* see if we've set up our endpoint info yet * 449 /* see if we've set up our endpoint info yet *
457 * (can't set it up in mos7720_startup as the * 450 * (can't set it up in mos7720_startup as the *
458 * structures were not set up at that time.) */ 451 * structures were not set up at that time.) */
diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
index 2c20e88a91b3..84fb1dcd30dc 100644
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -38,7 +38,7 @@
38/* 38/*
39 * Version Information 39 * Version Information
40 */ 40 */
41#define DRIVER_VERSION "1.3.1" 41#define DRIVER_VERSION "1.3.2"
42#define DRIVER_DESC "Moschip 7840/7820 USB Serial Driver" 42#define DRIVER_DESC "Moschip 7840/7820 USB Serial Driver"
43 43
44/* 44/*
@@ -123,6 +123,11 @@
123#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 123#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44
124#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42 124#define BANDB_DEVICE_ID_USOPTL4_2 0xAC42
125 125
126/* This driver also supports the ATEN UC2324 device since it is mos7840 based
127 * - if I knew the device id it would also support the ATEN UC2322 */
128#define USB_VENDOR_ID_ATENINTL 0x0557
129#define ATENINTL_DEVICE_ID_UC2324 0x2011
130
126/* Interrupt Routine Defines */ 131/* Interrupt Routine Defines */
127 132
128#define SERIAL_IIR_RLS 0x06 133#define SERIAL_IIR_RLS 0x06
@@ -170,6 +175,7 @@ static struct usb_device_id moschip_port_id_table[] = {
170 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, 175 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
171 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 176 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
172 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 177 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
178 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
173 {} /* terminating entry */ 179 {} /* terminating entry */
174}; 180};
175 181
@@ -178,6 +184,7 @@ static __devinitdata struct usb_device_id moschip_id_table_combined[] = {
178 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)}, 184 {USB_DEVICE(USB_VENDOR_ID_MOSCHIP, MOSCHIP_DEVICE_ID_7820)},
179 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 185 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)},
180 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 186 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)},
187 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)},
181 {} /* terminating entry */ 188 {} /* terminating entry */
182}; 189};
183 190
@@ -1000,12 +1007,6 @@ static int mos7840_open(struct tty_struct *tty,
1000 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset, 1007 status = mos7840_set_reg_sync(port, mos7840_port->ControlRegOffset,
1001 Data); 1008 Data);
1002 1009
1003 /* force low_latency on so that our tty_push actually forces *
1004 * the data through,otherwise it is scheduled, and with *
1005 * high data rates (like with OHCI) data can get lost. */
1006 if (tty)
1007 tty->low_latency = 1;
1008
1009 /* Check to see if we've set up our endpoint info yet * 1010 /* Check to see if we've set up our endpoint info yet *
1010 * (can't set it up in mos7840_startup as the structures * 1011 * (can't set it up in mos7840_startup as the structures *
1011 * were not set up at that time.) */ 1012 * were not set up at that time.) */
@@ -2477,9 +2478,14 @@ static int mos7840_startup(struct usb_serial *serial)
2477 mos7840_set_port_private(serial->port[i], mos7840_port); 2478 mos7840_set_port_private(serial->port[i], mos7840_port);
2478 spin_lock_init(&mos7840_port->pool_lock); 2479 spin_lock_init(&mos7840_port->pool_lock);
2479 2480
2480 mos7840_port->port_num = ((serial->port[i]->number - 2481 /* minor is not initialised until later by
2481 (serial->port[i]->serial->minor)) + 2482 * usb-serial.c:get_free_serial() and cannot therefore be used
2482 1); 2483 * to index device instances */
2484 mos7840_port->port_num = i + 1;
2485 dbg ("serial->port[i]->number = %d", serial->port[i]->number);
2486 dbg ("serial->port[i]->serial->minor = %d", serial->port[i]->serial->minor);
2487 dbg ("mos7840_port->port_num = %d", mos7840_port->port_num);
2488 dbg ("serial->minor = %d", serial->minor);
2483 2489
2484 if (mos7840_port->port_num == 1) { 2490 if (mos7840_port->port_num == 1) {
2485 mos7840_port->SpRegOffset = 0x0; 2491 mos7840_port->SpRegOffset = 0x0;
@@ -2690,13 +2696,16 @@ static void mos7840_shutdown(struct usb_serial *serial)
2690 2696
2691 for (i = 0; i < serial->num_ports; ++i) { 2697 for (i = 0; i < serial->num_ports; ++i) {
2692 mos7840_port = mos7840_get_port_private(serial->port[i]); 2698 mos7840_port = mos7840_get_port_private(serial->port[i]);
2693 spin_lock_irqsave(&mos7840_port->pool_lock, flags); 2699 dbg ("mos7840_port %d = %p", i, mos7840_port);
2694 mos7840_port->zombie = 1; 2700 if (mos7840_port) {
2695 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags); 2701 spin_lock_irqsave(&mos7840_port->pool_lock, flags);
2696 usb_kill_urb(mos7840_port->control_urb); 2702 mos7840_port->zombie = 1;
2697 kfree(mos7840_port->ctrl_buf); 2703 spin_unlock_irqrestore(&mos7840_port->pool_lock, flags);
2698 kfree(mos7840_port->dr); 2704 usb_kill_urb(mos7840_port->control_urb);
2699 kfree(mos7840_port); 2705 kfree(mos7840_port->ctrl_buf);
2706 kfree(mos7840_port->dr);
2707 kfree(mos7840_port);
2708 }
2700 mos7840_set_port_private(serial->port[i], NULL); 2709 mos7840_set_port_private(serial->port[i], NULL);
2701 } 2710 }
2702 2711
diff --git a/drivers/usb/serial/moto_modem.c b/drivers/usb/serial/moto_modem.c
index 2e8e05462ef7..b66b71ccd12b 100644
--- a/drivers/usb/serial/moto_modem.c
+++ b/drivers/usb/serial/moto_modem.c
@@ -25,6 +25,7 @@ static struct usb_device_id id_table [] = {
25 { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */ 25 { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */
26 { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */ 26 { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */
27 { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */ 27 { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */
28 { USB_DEVICE(0x22b8, 0x2c64) }, /* Motorola V950 phone */
28 { }, 29 { },
29}; 30};
30MODULE_DEVICE_TABLE(usb, id_table); 31MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c
index 839583dc8b6a..b500ad10b758 100644
--- a/drivers/usb/serial/opticon.c
+++ b/drivers/usb/serial/opticon.c
@@ -159,14 +159,6 @@ static int opticon_open(struct tty_struct *tty, struct usb_serial_port *port,
159 priv->port = port; 159 priv->port = port;
160 spin_unlock_irqrestore(&priv->lock, flags); 160 spin_unlock_irqrestore(&priv->lock, flags);
161 161
162 /*
163 * Force low_latency on so that our tty_push actually forces the data
164 * through, otherwise it is scheduled, and with high data rates (like
165 * with OHCI) data can get lost.
166 */
167 if (tty)
168 tty->low_latency = 1;
169
170 /* Start reading from the device */ 162 /* Start reading from the device */
171 usb_fill_bulk_urb(priv->bulk_read_urb, priv->udev, 163 usb_fill_bulk_urb(priv->bulk_read_urb, priv->udev,
172 usb_rcvbulkpipe(priv->udev, 164 usb_rcvbulkpipe(priv->udev,
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index d560c0b54e6e..7817b82889ca 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -300,6 +300,10 @@ static int option_resume(struct usb_serial *serial);
300#define BENQ_VENDOR_ID 0x04a5 300#define BENQ_VENDOR_ID 0x04a5
301#define BENQ_PRODUCT_H10 0x4068 301#define BENQ_PRODUCT_H10 0x4068
302 302
303#define DLINK_VENDOR_ID 0x1186
304#define DLINK_PRODUCT_DWM_652 0x3e04
305
306
303static struct usb_device_id option_ids[] = { 307static struct usb_device_id option_ids[] = {
304 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 308 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
305 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, 309 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -516,6 +520,7 @@ static struct usb_device_id option_ids[] = {
516 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, 520 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
517 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, 521 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
518 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, 522 { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) },
523 { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) },
519 { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ 524 { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */
520 { } /* Terminating entry */ 525 { } /* Terminating entry */
521}; 526};
@@ -931,9 +936,6 @@ static int option_open(struct tty_struct *tty,
931 usb_pipeout(urb->pipe), 0); */ 936 usb_pipeout(urb->pipe), 0); */
932 } 937 }
933 938
934 if (tty)
935 tty->low_latency = 1;
936
937 option_send_setup(tty, port); 939 option_send_setup(tty, port);
938 940
939 return 0; 941 return 0;
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
index e6d6b0c17fd9..7528b8d57f1c 100644
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -26,6 +26,27 @@ static struct usb_device_id id_table[] = {
26 {USB_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ 26 {USB_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
27 {USB_DEVICE(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */ 27 {USB_DEVICE(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */
28 {USB_DEVICE(0x03f0, 0x201d)}, /* HP un2400 Gobi QDL Device */ 28 {USB_DEVICE(0x03f0, 0x201d)}, /* HP un2400 Gobi QDL Device */
29 {USB_DEVICE(0x04da, 0x250d)}, /* Panasonic Gobi Modem device */
30 {USB_DEVICE(0x04da, 0x250c)}, /* Panasonic Gobi QDL device */
31 {USB_DEVICE(0x413c, 0x8172)}, /* Dell Gobi Modem device */
32 {USB_DEVICE(0x413c, 0x8171)}, /* Dell Gobi QDL device */
33 {USB_DEVICE(0x1410, 0xa001)}, /* Novatel Gobi Modem device */
34 {USB_DEVICE(0x1410, 0xa008)}, /* Novatel Gobi QDL device */
35 {USB_DEVICE(0x0b05, 0x1776)}, /* Asus Gobi Modem device */
36 {USB_DEVICE(0x0b05, 0x1774)}, /* Asus Gobi QDL device */
37 {USB_DEVICE(0x19d2, 0xfff3)}, /* ONDA Gobi Modem device */
38 {USB_DEVICE(0x19d2, 0xfff2)}, /* ONDA Gobi QDL device */
39 {USB_DEVICE(0x1557, 0x0a80)}, /* OQO Gobi QDL device */
40 {USB_DEVICE(0x05c6, 0x9001)}, /* Generic Gobi Modem device */
41 {USB_DEVICE(0x05c6, 0x9002)}, /* Generic Gobi Modem device */
42 {USB_DEVICE(0x05c6, 0x9202)}, /* Generic Gobi Modem device */
43 {USB_DEVICE(0x05c6, 0x9203)}, /* Generic Gobi Modem device */
44 {USB_DEVICE(0x05c6, 0x9222)}, /* Generic Gobi Modem device */
45 {USB_DEVICE(0x05c6, 0x9008)}, /* Generic Gobi QDL device */
46 {USB_DEVICE(0x05c6, 0x9201)}, /* Generic Gobi QDL device */
47 {USB_DEVICE(0x05c6, 0x9221)}, /* Generic Gobi QDL device */
48 {USB_DEVICE(0x05c6, 0x9231)}, /* Generic Gobi QDL device */
49 {USB_DEVICE(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */
29 { } /* Terminating entry */ 50 { } /* Terminating entry */
30}; 51};
31MODULE_DEVICE_TABLE(usb, id_table); 52MODULE_DEVICE_TABLE(usb, id_table);
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index d9bf9a5c20ec..913225c61610 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -14,7 +14,7 @@
14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org> 14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org>
15*/ 15*/
16 16
17#define DRIVER_VERSION "v.1.3.2" 17#define DRIVER_VERSION "v.1.3.3"
18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>" 18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"
19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
20 20
@@ -259,9 +259,21 @@ static int sierra_send_setup(struct tty_struct *tty,
259 val |= 0x02; 259 val |= 0x02;
260 260
261 /* If composite device then properly report interface */ 261 /* If composite device then properly report interface */
262 if (serial->num_ports == 1) 262 if (serial->num_ports == 1) {
263 interface = sierra_calc_interface(serial); 263 interface = sierra_calc_interface(serial);
264 264
265 /* Control message is sent only to interfaces with
266 * interrupt_in endpoints
267 */
268 if (port->interrupt_in_urb) {
269 /* send control message */
270 return usb_control_msg(serial->dev,
271 usb_rcvctrlpipe(serial->dev, 0),
272 0x22, 0x21, val, interface,
273 NULL, 0, USB_CTRL_SET_TIMEOUT);
274 }
275 }
276
265 /* Otherwise the need to do non-composite mapping */ 277 /* Otherwise the need to do non-composite mapping */
266 else { 278 else {
267 if (port->bulk_out_endpointAddress == 2) 279 if (port->bulk_out_endpointAddress == 2)
@@ -270,12 +282,13 @@ static int sierra_send_setup(struct tty_struct *tty,
270 interface = 1; 282 interface = 1;
271 else if (port->bulk_out_endpointAddress == 5) 283 else if (port->bulk_out_endpointAddress == 5)
272 interface = 2; 284 interface = 2;
273 }
274 285
275 return usb_control_msg(serial->dev, 286 return usb_control_msg(serial->dev,
276 usb_rcvctrlpipe(serial->dev, 0), 287 usb_rcvctrlpipe(serial->dev, 0),
277 0x22, 0x21, val, interface, 288 0x22, 0x21, val, interface,
278 NULL, 0, USB_CTRL_SET_TIMEOUT); 289 NULL, 0, USB_CTRL_SET_TIMEOUT);
290
291 }
279 } 292 }
280 293
281 return 0; 294 return 0;
@@ -585,9 +598,6 @@ static int sierra_open(struct tty_struct *tty,
585 } 598 }
586 } 599 }
587 600
588 if (tty)
589 tty->low_latency = 1;
590
591 sierra_send_setup(tty, port); 601 sierra_send_setup(tty, port);
592 602
593 /* start up the interrupt endpoint if we have one */ 603 /* start up the interrupt endpoint if we have one */
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index 2620bf6fe5e1..0a64bac306ee 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -50,11 +50,10 @@
50 50
51#define TI_TRANSFER_TIMEOUT 2 51#define TI_TRANSFER_TIMEOUT 2
52 52
53#define TI_DEFAULT_LOW_LATENCY 0
54#define TI_DEFAULT_CLOSING_WAIT 4000 /* in .01 secs */ 53#define TI_DEFAULT_CLOSING_WAIT 4000 /* in .01 secs */
55 54
56/* supported setserial flags */ 55/* supported setserial flags */
57#define TI_SET_SERIAL_FLAGS (ASYNC_LOW_LATENCY) 56#define TI_SET_SERIAL_FLAGS 0
58 57
59/* read urb states */ 58/* read urb states */
60#define TI_READ_URB_RUNNING 0 59#define TI_READ_URB_RUNNING 0
@@ -161,7 +160,6 @@ static int ti_buf_get(struct circ_buf *cb, char *buf, int count);
161 160
162/* module parameters */ 161/* module parameters */
163static int debug; 162static int debug;
164static int low_latency = TI_DEFAULT_LOW_LATENCY;
165static int closing_wait = TI_DEFAULT_CLOSING_WAIT; 163static int closing_wait = TI_DEFAULT_CLOSING_WAIT;
166static ushort vendor_3410[TI_EXTRA_VID_PID_COUNT]; 164static ushort vendor_3410[TI_EXTRA_VID_PID_COUNT];
167static unsigned int vendor_3410_count; 165static unsigned int vendor_3410_count;
@@ -296,10 +294,6 @@ MODULE_FIRMWARE("mts_edge.fw");
296module_param(debug, bool, S_IRUGO | S_IWUSR); 294module_param(debug, bool, S_IRUGO | S_IWUSR);
297MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes"); 295MODULE_PARM_DESC(debug, "Enable debugging, 0=no, 1=yes");
298 296
299module_param(low_latency, bool, S_IRUGO | S_IWUSR);
300MODULE_PARM_DESC(low_latency,
301 "TTY low_latency flag, 0=off, 1=on, default is off");
302
303module_param(closing_wait, int, S_IRUGO | S_IWUSR); 297module_param(closing_wait, int, S_IRUGO | S_IWUSR);
304MODULE_PARM_DESC(closing_wait, 298MODULE_PARM_DESC(closing_wait,
305 "Maximum wait for data to drain in close, in .01 secs, default is 4000"); 299 "Maximum wait for data to drain in close, in .01 secs, default is 4000");
@@ -448,7 +442,6 @@ static int ti_startup(struct usb_serial *serial)
448 spin_lock_init(&tport->tp_lock); 442 spin_lock_init(&tport->tp_lock);
449 tport->tp_uart_base_addr = (i == 0 ? 443 tport->tp_uart_base_addr = (i == 0 ?
450 TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR); 444 TI_UART1_BASE_ADDR : TI_UART2_BASE_ADDR);
451 tport->tp_flags = low_latency ? ASYNC_LOW_LATENCY : 0;
452 tport->tp_closing_wait = closing_wait; 445 tport->tp_closing_wait = closing_wait;
453 init_waitqueue_head(&tport->tp_msr_wait); 446 init_waitqueue_head(&tport->tp_msr_wait);
454 init_waitqueue_head(&tport->tp_write_wait); 447 init_waitqueue_head(&tport->tp_write_wait);
@@ -528,10 +521,6 @@ static int ti_open(struct tty_struct *tty,
528 if (mutex_lock_interruptible(&tdev->td_open_close_lock)) 521 if (mutex_lock_interruptible(&tdev->td_open_close_lock))
529 return -ERESTARTSYS; 522 return -ERESTARTSYS;
530 523
531 if (tty)
532 tty->low_latency =
533 (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
534
535 port_number = port->number - port->serial->minor; 524 port_number = port->number - port->serial->minor;
536 525
537 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount)); 526 memset(&(tport->tp_icount), 0x00, sizeof(tport->tp_icount));
@@ -1215,20 +1204,22 @@ static void ti_bulk_in_callback(struct urb *urb)
1215 } 1204 }
1216 1205
1217 tty = tty_port_tty_get(&port->port); 1206 tty = tty_port_tty_get(&port->port);
1218 if (tty && urb->actual_length) { 1207 if (tty) {
1219 usb_serial_debug_data(debug, dev, __func__, 1208 if (urb->actual_length) {
1220 urb->actual_length, urb->transfer_buffer); 1209 usb_serial_debug_data(debug, dev, __func__,
1221 1210 urb->actual_length, urb->transfer_buffer);
1222 if (!tport->tp_is_open) 1211
1223 dbg("%s - port closed, dropping data", __func__); 1212 if (!tport->tp_is_open)
1224 else 1213 dbg("%s - port closed, dropping data",
1225 ti_recv(&urb->dev->dev, tty, 1214 __func__);
1215 else
1216 ti_recv(&urb->dev->dev, tty,
1226 urb->transfer_buffer, 1217 urb->transfer_buffer,
1227 urb->actual_length); 1218 urb->actual_length);
1228 1219 spin_lock(&tport->tp_lock);
1229 spin_lock(&tport->tp_lock); 1220 tport->tp_icount.rx += urb->actual_length;
1230 tport->tp_icount.rx += urb->actual_length; 1221 spin_unlock(&tport->tp_lock);
1231 spin_unlock(&tport->tp_lock); 1222 }
1232 tty_kref_put(tty); 1223 tty_kref_put(tty);
1233 } 1224 }
1234 1225
@@ -1452,7 +1443,6 @@ static int ti_set_serial_info(struct tty_struct *tty, struct ti_port *tport,
1452 return -EFAULT; 1443 return -EFAULT;
1453 1444
1454 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS; 1445 tport->tp_flags = new_serial.flags & TI_SET_SERIAL_FLAGS;
1455 tty->low_latency = (tport->tp_flags & ASYNC_LOW_LATENCY) ? 1 : 0;
1456 tport->tp_closing_wait = new_serial.closing_wait; 1446 tport->tp_closing_wait = new_serial.closing_wait;
1457 1447
1458 return 0; 1448 return 0;
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 2a70563bbee1..0a566eea49c0 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -137,22 +137,10 @@ static void destroy_serial(struct kref *kref)
137 137
138 dbg("%s - %s", __func__, serial->type->description); 138 dbg("%s - %s", __func__, serial->type->description);
139 139
140 serial->type->shutdown(serial);
141
142 /* return the minor range that this device had */ 140 /* return the minor range that this device had */
143 if (serial->minor != SERIAL_TTY_NO_MINOR) 141 if (serial->minor != SERIAL_TTY_NO_MINOR)
144 return_serial(serial); 142 return_serial(serial);
145 143
146 for (i = 0; i < serial->num_ports; ++i)
147 serial->port[i]->port.count = 0;
148
149 /* the ports are cleaned up and released in port_release() */
150 for (i = 0; i < serial->num_ports; ++i)
151 if (serial->port[i]->dev.parent != NULL) {
152 device_unregister(&serial->port[i]->dev);
153 serial->port[i] = NULL;
154 }
155
156 /* If this is a "fake" port, we have to clean it up here, as it will 144 /* If this is a "fake" port, we have to clean it up here, as it will
157 * not get cleaned up in port_release() as it was never registered with 145 * not get cleaned up in port_release() as it was never registered with
158 * the driver core */ 146 * the driver core */
@@ -187,7 +175,7 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
187 struct usb_serial *serial; 175 struct usb_serial *serial;
188 struct usb_serial_port *port; 176 struct usb_serial_port *port;
189 unsigned int portNumber; 177 unsigned int portNumber;
190 int retval; 178 int retval = 0;
191 179
192 dbg("%s", __func__); 180 dbg("%s", __func__);
193 181
@@ -198,21 +186,24 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
198 return -ENODEV; 186 return -ENODEV;
199 } 187 }
200 188
189 mutex_lock(&serial->disc_mutex);
201 portNumber = tty->index - serial->minor; 190 portNumber = tty->index - serial->minor;
202 port = serial->port[portNumber]; 191 port = serial->port[portNumber];
203 if (!port) { 192 if (!port || serial->disconnected)
204 retval = -ENODEV;
205 goto bailout_kref_put;
206 }
207
208 if (port->serial->disconnected) {
209 retval = -ENODEV; 193 retval = -ENODEV;
210 goto bailout_kref_put; 194 else
211 } 195 get_device(&port->dev);
196 /*
197 * Note: Our locking order requirement does not allow port->mutex
198 * to be acquired while serial->disc_mutex is held.
199 */
200 mutex_unlock(&serial->disc_mutex);
201 if (retval)
202 goto bailout_serial_put;
212 203
213 if (mutex_lock_interruptible(&port->mutex)) { 204 if (mutex_lock_interruptible(&port->mutex)) {
214 retval = -ERESTARTSYS; 205 retval = -ERESTARTSYS;
215 goto bailout_kref_put; 206 goto bailout_port_put;
216 } 207 }
217 208
218 ++port->port.count; 209 ++port->port.count;
@@ -232,14 +223,20 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
232 goto bailout_mutex_unlock; 223 goto bailout_mutex_unlock;
233 } 224 }
234 225
235 retval = usb_autopm_get_interface(serial->interface); 226 mutex_lock(&serial->disc_mutex);
227 if (serial->disconnected)
228 retval = -ENODEV;
229 else
230 retval = usb_autopm_get_interface(serial->interface);
236 if (retval) 231 if (retval)
237 goto bailout_module_put; 232 goto bailout_module_put;
233
238 /* only call the device specific open if this 234 /* only call the device specific open if this
239 * is the first time the port is opened */ 235 * is the first time the port is opened */
240 retval = serial->type->open(tty, port, filp); 236 retval = serial->type->open(tty, port, filp);
241 if (retval) 237 if (retval)
242 goto bailout_interface_put; 238 goto bailout_interface_put;
239 mutex_unlock(&serial->disc_mutex);
243 } 240 }
244 241
245 mutex_unlock(&port->mutex); 242 mutex_unlock(&port->mutex);
@@ -248,13 +245,16 @@ static int serial_open (struct tty_struct *tty, struct file *filp)
248bailout_interface_put: 245bailout_interface_put:
249 usb_autopm_put_interface(serial->interface); 246 usb_autopm_put_interface(serial->interface);
250bailout_module_put: 247bailout_module_put:
248 mutex_unlock(&serial->disc_mutex);
251 module_put(serial->type->driver.owner); 249 module_put(serial->type->driver.owner);
252bailout_mutex_unlock: 250bailout_mutex_unlock:
253 port->port.count = 0; 251 port->port.count = 0;
254 tty->driver_data = NULL; 252 tty->driver_data = NULL;
255 tty_port_tty_set(&port->port, NULL); 253 tty_port_tty_set(&port->port, NULL);
256 mutex_unlock(&port->mutex); 254 mutex_unlock(&port->mutex);
257bailout_kref_put: 255bailout_port_put:
256 put_device(&port->dev);
257bailout_serial_put:
258 usb_serial_put(serial); 258 usb_serial_put(serial);
259 return retval; 259 return retval;
260} 260}
@@ -262,6 +262,9 @@ bailout_kref_put:
262static void serial_close(struct tty_struct *tty, struct file *filp) 262static void serial_close(struct tty_struct *tty, struct file *filp)
263{ 263{
264 struct usb_serial_port *port = tty->driver_data; 264 struct usb_serial_port *port = tty->driver_data;
265 struct usb_serial *serial;
266 struct module *owner;
267 int count;
265 268
266 if (!port) 269 if (!port)
267 return; 270 return;
@@ -269,6 +272,8 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
269 dbg("%s - port %d", __func__, port->number); 272 dbg("%s - port %d", __func__, port->number);
270 273
271 mutex_lock(&port->mutex); 274 mutex_lock(&port->mutex);
275 serial = port->serial;
276 owner = serial->type->driver.owner;
272 277
273 if (port->port.count == 0) { 278 if (port->port.count == 0) {
274 mutex_unlock(&port->mutex); 279 mutex_unlock(&port->mutex);
@@ -281,7 +286,7 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
281 * this before we drop the port count. The call is protected 286 * this before we drop the port count. The call is protected
282 * by the port mutex 287 * by the port mutex
283 */ 288 */
284 port->serial->type->close(tty, port, filp); 289 serial->type->close(tty, port, filp);
285 290
286 if (port->port.count == (port->console ? 2 : 1)) { 291 if (port->port.count == (port->console ? 2 : 1)) {
287 struct tty_struct *tty = tty_port_tty_get(&port->port); 292 struct tty_struct *tty = tty_port_tty_get(&port->port);
@@ -295,17 +300,23 @@ static void serial_close(struct tty_struct *tty, struct file *filp)
295 } 300 }
296 } 301 }
297 302
298 if (port->port.count == 1) {
299 mutex_lock(&port->serial->disc_mutex);
300 if (!port->serial->disconnected)
301 usb_autopm_put_interface(port->serial->interface);
302 mutex_unlock(&port->serial->disc_mutex);
303 module_put(port->serial->type->driver.owner);
304 }
305 --port->port.count; 303 --port->port.count;
306 304 count = port->port.count;
307 mutex_unlock(&port->mutex); 305 mutex_unlock(&port->mutex);
308 usb_serial_put(port->serial); 306 put_device(&port->dev);
307
308 /* Mustn't dereference port any more */
309 if (count == 0) {
310 mutex_lock(&serial->disc_mutex);
311 if (!serial->disconnected)
312 usb_autopm_put_interface(serial->interface);
313 mutex_unlock(&serial->disc_mutex);
314 }
315 usb_serial_put(serial);
316
317 /* Mustn't dereference serial any more */
318 if (count == 0)
319 module_put(owner);
309} 320}
310 321
311static int serial_write(struct tty_struct *tty, const unsigned char *buf, 322static int serial_write(struct tty_struct *tty, const unsigned char *buf,
@@ -549,7 +560,13 @@ static void kill_traffic(struct usb_serial_port *port)
549 560
550static void port_free(struct usb_serial_port *port) 561static void port_free(struct usb_serial_port *port)
551{ 562{
563 /*
564 * Stop all the traffic before cancelling the work, so that
565 * nobody will restart it by calling usb_serial_port_softint.
566 */
552 kill_traffic(port); 567 kill_traffic(port);
568 cancel_work_sync(&port->work);
569
553 usb_free_urb(port->read_urb); 570 usb_free_urb(port->read_urb);
554 usb_free_urb(port->write_urb); 571 usb_free_urb(port->write_urb);
555 usb_free_urb(port->interrupt_in_urb); 572 usb_free_urb(port->interrupt_in_urb);
@@ -558,7 +575,6 @@ static void port_free(struct usb_serial_port *port)
558 kfree(port->bulk_out_buffer); 575 kfree(port->bulk_out_buffer);
559 kfree(port->interrupt_in_buffer); 576 kfree(port->interrupt_in_buffer);
560 kfree(port->interrupt_out_buffer); 577 kfree(port->interrupt_out_buffer);
561 flush_scheduled_work(); /* port->work */
562 kfree(port); 578 kfree(port);
563} 579}
564 580
@@ -1043,6 +1059,12 @@ void usb_serial_disconnect(struct usb_interface *interface)
1043 usb_set_intfdata(interface, NULL); 1059 usb_set_intfdata(interface, NULL);
1044 /* must set a flag, to signal subdrivers */ 1060 /* must set a flag, to signal subdrivers */
1045 serial->disconnected = 1; 1061 serial->disconnected = 1;
1062 mutex_unlock(&serial->disc_mutex);
1063
1064 /* Unfortunately, many of the sub-drivers expect the port structures
1065 * to exist when their shutdown method is called, so we have to go
1066 * through this awkward two-step unregistration procedure.
1067 */
1046 for (i = 0; i < serial->num_ports; ++i) { 1068 for (i = 0; i < serial->num_ports; ++i) {
1047 port = serial->port[i]; 1069 port = serial->port[i];
1048 if (port) { 1070 if (port) {
@@ -1052,11 +1074,21 @@ void usb_serial_disconnect(struct usb_interface *interface)
1052 tty_kref_put(tty); 1074 tty_kref_put(tty);
1053 } 1075 }
1054 kill_traffic(port); 1076 kill_traffic(port);
1077 cancel_work_sync(&port->work);
1078 device_del(&port->dev);
1079 }
1080 }
1081 serial->type->shutdown(serial);
1082 for (i = 0; i < serial->num_ports; ++i) {
1083 port = serial->port[i];
1084 if (port) {
1085 put_device(&port->dev);
1086 serial->port[i] = NULL;
1055 } 1087 }
1056 } 1088 }
1089
1057 /* let the last holder of this object 1090 /* let the last holder of this object
1058 * cause it to be cleaned up */ 1091 * cause it to be cleaned up */
1059 mutex_unlock(&serial->disc_mutex);
1060 usb_serial_put(serial); 1092 usb_serial_put(serial);
1061 dev_info(dev, "device disconnected\n"); 1093 dev_info(dev, "device disconnected\n");
1062} 1094}
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index 4facce3d9364..5ac414bda718 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -296,14 +296,6 @@ static int visor_open(struct tty_struct *tty, struct usb_serial_port *port,
296 priv->throttled = 0; 296 priv->throttled = 0;
297 spin_unlock_irqrestore(&priv->lock, flags); 297 spin_unlock_irqrestore(&priv->lock, flags);
298 298
299 /*
300 * Force low_latency on so that our tty_push actually forces the data
301 * through, otherwise it is scheduled, and with high data rates (like
302 * with OHCI) data can get lost.
303 */
304 if (tty)
305 tty->low_latency = 1;
306
307 /* Start reading from the device */ 299 /* Start reading from the device */
308 usb_fill_bulk_urb(port->read_urb, serial->dev, 300 usb_fill_bulk_urb(port->read_urb, serial->dev,
309 usb_rcvbulkpipe(serial->dev, 301 usb_rcvbulkpipe(serial->dev,
diff --git a/drivers/usb/storage/Makefile b/drivers/usb/storage/Makefile
index 5be54c019662..ef7e5a8ceab5 100644
--- a/drivers/usb/storage/Makefile
+++ b/drivers/usb/storage/Makefile
@@ -17,7 +17,8 @@ usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \
17ifeq ($(CONFIG_USB_LIBUSUAL),) 17ifeq ($(CONFIG_USB_LIBUSUAL),)
18 usb-storage-objs += usual-tables.o 18 usb-storage-objs += usual-tables.o
19else 19else
20 obj-$(CONFIG_USB) += libusual.o usual-tables.o 20 obj-$(CONFIG_USB) += usb-libusual.o
21 usb-libusual-objs := libusual.o usual-tables.o
21endif 22endif
22 23
23obj-$(CONFIG_USB_STORAGE_ALAUDA) += ums-alauda.o 24obj-$(CONFIG_USB_STORAGE_ALAUDA) += ums-alauda.o
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index 49aedb36dc19..fcb320217218 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -247,10 +247,8 @@ int usb_stor_clear_halt(struct us_data *us, unsigned int pipe)
247 USB_ENDPOINT_HALT, endp, 247 USB_ENDPOINT_HALT, endp,
248 NULL, 0, 3*HZ); 248 NULL, 0, 3*HZ);
249 249
250 /* reset the endpoint toggle */
251 if (result >= 0) 250 if (result >= 0)
252 usb_settoggle(us->pusb_dev, usb_pipeendpoint(pipe), 251 usb_reset_endpoint(us->pusb_dev, endp);
253 usb_pipeout(pipe), 0);
254 252
255 US_DEBUGP("%s: result = %d\n", __func__, result); 253 US_DEBUGP("%s: result = %d\n", __func__, result);
256 return result; 254 return result;
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 1c1f643e8a78..4b8b69045fe6 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -160,8 +160,9 @@ UNUSUAL_DEV( 0x0420, 0x0001, 0x0100, 0x0100,
160 US_SC_DEVICE, US_PR_DEVICE, NULL, 160 US_SC_DEVICE, US_PR_DEVICE, NULL,
161 US_FL_IGNORE_RESIDUE ), 161 US_FL_IGNORE_RESIDUE ),
162 162
163/* Reported by Andrew Nayenko <relan@bk.ru> */ 163/* Reported by Andrew Nayenko <relan@bk.ru>
164UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0592, 164 * Updated for new firmware by Phillip Potter <phillipinda@hotmail.com> */
165UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0610,
165 "Nokia", 166 "Nokia",
166 "Nokia 6288", 167 "Nokia 6288",
167 US_SC_DEVICE, US_PR_DEVICE, NULL, 168 US_SC_DEVICE, US_PR_DEVICE, NULL,
@@ -975,12 +976,14 @@ UNUSUAL_DEV( 0x07c4, 0xa400, 0x0000, 0xffff,
975 US_SC_DEVICE, US_PR_DEVICE, NULL, 976 US_SC_DEVICE, US_PR_DEVICE, NULL,
976 US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY ), 977 US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY ),
977 978
978/* Reported by Rauch Wolke <rauchwolke@gmx.net> */ 979/* Reported by Rauch Wolke <rauchwolke@gmx.net>
980 * and augmented by binbin <binbinsh@gmail.com> (Bugzilla #12882)
981 */
979UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff, 982UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff,
980 "Simple Tech/Datafab", 983 "Simple Tech/Datafab",
981 "CF+SM Reader", 984 "CF+SM Reader",
982 US_SC_DEVICE, US_PR_DEVICE, NULL, 985 US_SC_DEVICE, US_PR_DEVICE, NULL,
983 US_FL_IGNORE_RESIDUE ), 986 US_FL_IGNORE_RESIDUE | US_FL_MAX_SECTORS_64 ),
984 987
985/* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant 988/* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant
986 * to the USB storage specification in two ways: 989 * to the USB storage specification in two ways:
@@ -1376,6 +1379,14 @@ UNUSUAL_DEV( 0x10d6, 0x2200, 0x0100, 0x0100,
1376 US_SC_DEVICE, US_PR_DEVICE, NULL, 1379 US_SC_DEVICE, US_PR_DEVICE, NULL,
1377 0), 1380 0),
1378 1381
1382/* Reported by Pascal Terjan <pterjan@mandriva.com>
1383 * Ignore driver CD mode and force into modem mode by default.
1384 */
1385UNUSUAL_DEV( 0x1186, 0x3e04, 0x0000, 0x0000,
1386 "D-Link",
1387 "USB Mass Storage",
1388 US_SC_DEVICE, US_PR_DEVICE, option_ms_init, 0),
1389
1379/* Reported by Kevin Lloyd <linux@sierrawireless.com> 1390/* Reported by Kevin Lloyd <linux@sierrawireless.com>
1380 * Entry is needed for the initializer function override, 1391 * Entry is needed for the initializer function override,
1381 * which instructs the device to load as a modem 1392 * which instructs the device to load as a modem
@@ -1841,6 +1852,12 @@ UNUSUAL_DEV( 0xed06, 0x4500, 0x0001, 0x0001,
1841 US_SC_DEVICE, US_PR_DEVICE, NULL, 1852 US_SC_DEVICE, US_PR_DEVICE, NULL,
1842 US_FL_CAPACITY_HEURISTICS), 1853 US_FL_CAPACITY_HEURISTICS),
1843 1854
1855/* Reported by Alessio Treglia <quadrispro@ubuntu.com> */
1856UNUSUAL_DEV( 0xed10, 0x7636, 0x0001, 0x0001,
1857 "TGE",
1858 "Digital MP3 Audio Player",
1859 US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ),
1860
1844/* Control/Bulk transport for all SubClass values */ 1861/* Control/Bulk transport for all SubClass values */
1845USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR), 1862USUAL_DEV(US_SC_RBC, US_PR_CB, USB_US_TYPE_STOR),
1846USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR), 1863USUAL_DEV(US_SC_8020, US_PR_CB, USB_US_TYPE_STOR),
diff --git a/drivers/usb/wusbcore/devconnect.c b/drivers/usb/wusbcore/devconnect.c
index 386eaa22d215..4ac4300a3f9a 100644
--- a/drivers/usb/wusbcore/devconnect.c
+++ b/drivers/usb/wusbcore/devconnect.c
@@ -267,6 +267,8 @@ static void wusbhc_devconnect_acked_work(struct work_struct *work)
267 mutex_lock(&wusbhc->mutex); 267 mutex_lock(&wusbhc->mutex);
268 wusbhc_devconnect_acked(wusbhc, wusb_dev); 268 wusbhc_devconnect_acked(wusbhc, wusb_dev);
269 mutex_unlock(&wusbhc->mutex); 269 mutex_unlock(&wusbhc->mutex);
270
271 wusb_dev_put(wusb_dev);
270} 272}
271 273
272/* 274/*
@@ -396,7 +398,8 @@ static void __wusbhc_dev_disconnect(struct wusbhc *wusbhc,
396 398
397 /* After a device disconnects, change the GTK (see [WUSB] 399 /* After a device disconnects, change the GTK (see [WUSB]
398 * section 6.2.11.2). */ 400 * section 6.2.11.2). */
399 wusbhc_gtk_rekey(wusbhc); 401 if (wusbhc->active)
402 wusbhc_gtk_rekey(wusbhc);
400 403
401 /* The Wireless USB part has forgotten about the device already; now 404 /* The Wireless USB part has forgotten about the device already; now
402 * khubd's timer will pick up the disconnection and remove the USB 405 * khubd's timer will pick up the disconnection and remove the USB
@@ -1084,15 +1087,21 @@ error_mmcie_set:
1084 * wusbhc_devconnect_stop - stop managing connected devices 1087 * wusbhc_devconnect_stop - stop managing connected devices
1085 * @wusbhc: the WUSB HC 1088 * @wusbhc: the WUSB HC
1086 * 1089 *
1087 * Removes the Host Info IE and stops the keep alives. 1090 * Disconnects any devices still connected, stops the keep alives and
1088 * 1091 * removes the Host Info IE.
1089 * FIXME: should this disconnect all devices?
1090 */ 1092 */
1091void wusbhc_devconnect_stop(struct wusbhc *wusbhc) 1093void wusbhc_devconnect_stop(struct wusbhc *wusbhc)
1092{ 1094{
1093 cancel_delayed_work_sync(&wusbhc->keep_alive_timer); 1095 int i;
1094 WARN_ON(!list_empty(&wusbhc->cack_list));
1095 1096
1097 mutex_lock(&wusbhc->mutex);
1098 for (i = 0; i < wusbhc->ports_max; i++) {
1099 if (wusbhc->port[i].wusb_dev)
1100 __wusbhc_dev_disconnect(wusbhc, &wusbhc->port[i]);
1101 }
1102 mutex_unlock(&wusbhc->mutex);
1103
1104 cancel_delayed_work_sync(&wusbhc->keep_alive_timer);
1096 wusbhc_mmcie_rm(wusbhc, &wusbhc->wuie_host_info->hdr); 1105 wusbhc_mmcie_rm(wusbhc, &wusbhc->wuie_host_info->hdr);
1097 kfree(wusbhc->wuie_host_info); 1106 kfree(wusbhc->wuie_host_info);
1098 wusbhc->wuie_host_info = NULL; 1107 wusbhc->wuie_host_info = NULL;
diff --git a/drivers/usb/wusbcore/wusbhc.c b/drivers/usb/wusbcore/wusbhc.c
index 07c63a31c799..ee6256f23636 100644
--- a/drivers/usb/wusbcore/wusbhc.c
+++ b/drivers/usb/wusbcore/wusbhc.c
@@ -88,33 +88,31 @@ static DEVICE_ATTR(wusb_trust_timeout, 0644, wusb_trust_timeout_show,
88 wusb_trust_timeout_store); 88 wusb_trust_timeout_store);
89 89
90/* 90/*
91 * Show & store the current WUSB CHID 91 * Show the current WUSB CHID.
92 */ 92 */
93static ssize_t wusb_chid_show(struct device *dev, 93static ssize_t wusb_chid_show(struct device *dev,
94 struct device_attribute *attr, char *buf) 94 struct device_attribute *attr, char *buf)
95{ 95{
96 struct wusbhc *wusbhc = usbhc_dev_to_wusbhc(dev); 96 struct wusbhc *wusbhc = usbhc_dev_to_wusbhc(dev);
97 const struct wusb_ckhdid *chid;
97 ssize_t result = 0; 98 ssize_t result = 0;
98 99
99 if (wusbhc->wuie_host_info != NULL) 100 if (wusbhc->wuie_host_info != NULL)
100 result += ckhdid_printf(buf, PAGE_SIZE, 101 chid = &wusbhc->wuie_host_info->CHID;
101 &wusbhc->wuie_host_info->CHID); 102 else
103 chid = &wusb_ckhdid_zero;
104
105 result += ckhdid_printf(buf, PAGE_SIZE, chid);
106 result += sprintf(buf + result, "\n");
107
102 return result; 108 return result;
103} 109}
104 110
105/* 111/*
106 * Store a new CHID 112 * Store a new CHID.
107 *
108 * This will (FIXME) trigger many changes.
109 *
110 * - Send an all zeros CHID and it will stop the controller
111 * - Send a non-zero CHID and it will start it
112 * (unless it was started, it will just change the CHID,
113 * diconnecting all devices first).
114 * 113 *
115 * So first we scan the MMC we are sent and then we act on it. We 114 * - Write an all zeros CHID and it will stop the controller
116 * read it in the same format as we print it, an ASCII string of 16 115 * - Write a non-zero CHID and it will start it.
117 * hex bytes.
118 * 116 *
119 * See wusbhc_chid_set() for more info. 117 * See wusbhc_chid_set() for more info.
120 */ 118 */
@@ -339,13 +337,15 @@ void wusbhc_giveback_urb(struct wusbhc *wusbhc, struct urb *urb, int status)
339{ 337{
340 struct wusb_dev *wusb_dev = __wusb_dev_get_by_usb_dev(wusbhc, urb->dev); 338 struct wusb_dev *wusb_dev = __wusb_dev_get_by_usb_dev(wusbhc, urb->dev);
341 339
342 if (status == 0) { 340 if (status == 0 && wusb_dev) {
343 wusb_dev->entry_ts = jiffies; 341 wusb_dev->entry_ts = jiffies;
344 342
345 /* wusbhc_devconnect_acked() can't be called from from 343 /* wusbhc_devconnect_acked() can't be called from
346 atomic context so defer it to a work queue. */ 344 atomic context so defer it to a work queue. */
347 if (!list_empty(&wusb_dev->cack_node)) 345 if (!list_empty(&wusb_dev->cack_node))
348 queue_work(wusbd, &wusb_dev->devconnect_acked_work); 346 queue_work(wusbd, &wusb_dev->devconnect_acked_work);
347 else
348 wusb_dev_put(wusb_dev);
349 } 349 }
350 350
351 usb_hcd_giveback_urb(&wusbhc->usb_hcd, urb, status); 351 usb_hcd_giveback_urb(&wusbhc->usb_hcd, urb, status);
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 7826bdce4bbe..0048f1185a60 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1128,13 +1128,6 @@ config FB_INTEL
1128 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM chipsets. 1128 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM/965G/965GM chipsets.
1129 Say Y if you have and plan to use such a board. 1129 Say Y if you have and plan to use such a board.
1130 1130
1131 If you say Y here and want DDC/I2C support you must first say Y to
1132 "I2C support" and "I2C bit-banging support" in the character devices
1133 section.
1134
1135 If you say M here then "I2C support" and "I2C bit-banging support"
1136 can be build either as modules or built-in.
1137
1138 To compile this driver as a module, choose M here: the 1131 To compile this driver as a module, choose M here: the
1139 module will be called intelfb. 1132 module will be called intelfb.
1140 1133
@@ -1207,11 +1200,10 @@ config FB_MATROX_G
1207 pixel and 32 bpp packed pixel. You can also use font widths 1200 pixel and 32 bpp packed pixel. You can also use font widths
1208 different from 8. 1201 different from 8.
1209 1202
1210 If you need support for G400 secondary head, you must first say Y to 1203 If you need support for G400 secondary head, you must say Y to
1211 "I2C support" in the character devices section, and then to 1204 "Matrox I2C support" and "G400 second head support" right below.
1212 "Matrox I2C support" and "G400 second head support" here in the 1205 G450/G550 secondary head and digital output are supported without
1213 framebuffer section. G450/G550 secondary head and digital output 1206 additional modules.
1214 are supported without additional modules.
1215 1207
1216 The driver starts in monitor mode. You must use the matroxset tool 1208 The driver starts in monitor mode. You must use the matroxset tool
1217 (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to 1209 (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to
@@ -1310,13 +1302,6 @@ config FB_RADEON
1310 a framebuffer device. There are both PCI and AGP versions. You 1302 a framebuffer device. There are both PCI and AGP versions. You
1311 don't need to choose this to run the Radeon in plain VGA mode. 1303 don't need to choose this to run the Radeon in plain VGA mode.
1312 1304
1313 If you say Y here and want DDC/I2C support you must first say Y to
1314 "I2C support" and "I2C bit-banging support" in the character devices
1315 section.
1316
1317 If you say M here then "I2C support" and "I2C bit-banging support"
1318 can be build either as modules or built-in.
1319
1320 There is a product page at 1305 There is a product page at
1321 http://apps.ati.com/ATIcompare/ 1306 http://apps.ati.com/ATIcompare/
1322 1307
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 0dbd6c68d76b..d8d0be5151e3 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -56,7 +56,6 @@ obj-$(CONFIG_FB_CT65550) += chipsfb.o
56obj-$(CONFIG_FB_IMSTT) += imsttfb.o 56obj-$(CONFIG_FB_IMSTT) += imsttfb.o
57obj-$(CONFIG_FB_FM2) += fm2fb.o 57obj-$(CONFIG_FB_FM2) += fm2fb.o
58obj-$(CONFIG_FB_VT8623) += vt8623fb.o 58obj-$(CONFIG_FB_VT8623) += vt8623fb.o
59obj-$(CONFIG_FB_CYBLA) += cyblafb.o
60obj-$(CONFIG_FB_TRIDENT) += tridentfb.o 59obj-$(CONFIG_FB_TRIDENT) += tridentfb.o
61obj-$(CONFIG_FB_LE80578) += vermilion/ 60obj-$(CONFIG_FB_LE80578) += vermilion/
62obj-$(CONFIG_FB_S3) += s3fb.o 61obj-$(CONFIG_FB_S3) += s3fb.o
diff --git a/drivers/video/asiliantfb.c b/drivers/video/asiliantfb.c
index 1a1f946d8fef..9fe90ce928fb 100644
--- a/drivers/video/asiliantfb.c
+++ b/drivers/video/asiliantfb.c
@@ -533,6 +533,7 @@ static int __devinit init_asiliant(struct fb_info *p, unsigned long addr)
533 533
534 writeb(0xff, mmio_base + 0x78c); 534 writeb(0xff, mmio_base + 0x78c);
535 chips_hw_init(p); 535 chips_hw_init(p);
536 return 0;
536} 537}
537 538
538static int __devinit 539static int __devinit
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
index 16bb7e3c0310..6c37e8ee5efe 100644
--- a/drivers/video/aty/radeon_base.c
+++ b/drivers/video/aty/radeon_base.c
@@ -698,8 +698,8 @@ static void __devinit radeon_get_pllinfo(struct radeonfb_info *rinfo)
698found: 698found:
699 /* 699 /*
700 * Some methods fail to retrieve SCLK and MCLK values, we apply default 700 * Some methods fail to retrieve SCLK and MCLK values, we apply default
701 * settings in this case (200Mhz). If that really happne often, we could 701 * settings in this case (200Mhz). If that really happens often, we
702 * fetch from registers instead... 702 * could fetch from registers instead...
703 */ 703 */
704 if (rinfo->pll.mclk == 0) 704 if (rinfo->pll.mclk == 0)
705 rinfo->pll.mclk = 20000; 705 rinfo->pll.mclk = 20000;
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index dd37cbcaf8ce..157057c79ca3 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -35,8 +35,6 @@ static int fb_notifier_callback(struct notifier_block *self,
35 return 0; 35 return 0;
36 36
37 bd = container_of(self, struct backlight_device, fb_notif); 37 bd = container_of(self, struct backlight_device, fb_notif);
38 if (!lock_fb_info(evdata->info))
39 return -ENODEV;
40 mutex_lock(&bd->ops_lock); 38 mutex_lock(&bd->ops_lock);
41 if (bd->ops) 39 if (bd->ops)
42 if (!bd->ops->check_fb || 40 if (!bd->ops->check_fb ||
@@ -49,7 +47,6 @@ static int fb_notifier_callback(struct notifier_block *self,
49 backlight_update_status(bd); 47 backlight_update_status(bd);
50 } 48 }
51 mutex_unlock(&bd->ops_lock); 49 mutex_unlock(&bd->ops_lock);
52 unlock_fb_info(evdata->info);
53 return 0; 50 return 0;
54} 51}
55 52
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index 0bb13df0fa89..b6449470106c 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -40,8 +40,6 @@ static int fb_notifier_callback(struct notifier_block *self,
40 if (!ld->ops) 40 if (!ld->ops)
41 return 0; 41 return 0;
42 42
43 if (!lock_fb_info(evdata->info))
44 return -ENODEV;
45 mutex_lock(&ld->ops_lock); 43 mutex_lock(&ld->ops_lock);
46 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) { 44 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) {
47 if (event == FB_EVENT_BLANK) { 45 if (event == FB_EVENT_BLANK) {
@@ -53,7 +51,6 @@ static int fb_notifier_callback(struct notifier_block *self,
53 } 51 }
54 } 52 }
55 mutex_unlock(&ld->ops_lock); 53 mutex_unlock(&ld->ops_lock);
56 unlock_fb_info(evdata->info);
57 return 0; 54 return 0;
58} 55}
59 56
diff --git a/drivers/video/cfbfillrect.c b/drivers/video/cfbfillrect.c
index 64b35766b2a2..ba9f58b2a5e8 100644
--- a/drivers/video/cfbfillrect.c
+++ b/drivers/video/cfbfillrect.c
@@ -9,10 +9,6 @@
9 * 9 *
10 * NOTES: 10 * NOTES:
11 * 11 *
12 * The code for depths like 24 that don't have integer number of pixels per
13 * long is broken and needs to be fixed. For now I turned these types of
14 * mode off.
15 *
16 * Also need to add code to deal with cards endians that are different than 12 * Also need to add code to deal with cards endians that are different than
17 * the native cpu endians. I also need to deal with MSB position in the word. 13 * the native cpu endians. I also need to deal with MSB position in the word.
18 * 14 *
@@ -139,7 +135,7 @@ bitfill_unaligned(struct fb_info *p, unsigned long __iomem *dst, int dst_idx,
139 135
140 // Trailing bits 136 // Trailing bits
141 if (last) 137 if (last)
142 FB_WRITEL(comp(pat, FB_READL(dst), first), dst); 138 FB_WRITEL(comp(pat, FB_READL(dst), last), dst);
143 } 139 }
144} 140}
145 141
@@ -281,7 +277,7 @@ bitfill_unaligned_rev(struct fb_info *p, unsigned long __iomem *dst,
281 277
282void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect) 278void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
283{ 279{
284 unsigned long pat, fg; 280 unsigned long pat, pat2, fg;
285 unsigned long width = rect->width, height = rect->height; 281 unsigned long width = rect->width, height = rect->height;
286 int bits = BITS_PER_LONG, bytes = bits >> 3; 282 int bits = BITS_PER_LONG, bytes = bits >> 3;
287 u32 bpp = p->var.bits_per_pixel; 283 u32 bpp = p->var.bits_per_pixel;
@@ -297,7 +293,7 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
297 else 293 else
298 fg = rect->color; 294 fg = rect->color;
299 295
300 pat = pixel_to_pat( bpp, fg); 296 pat = pixel_to_pat(bpp, fg);
301 297
302 dst = (unsigned long __iomem *)((unsigned long)p->screen_base & ~(bytes-1)); 298 dst = (unsigned long __iomem *)((unsigned long)p->screen_base & ~(bytes-1));
303 dst_idx = ((unsigned long)p->screen_base & (bytes - 1))*8; 299 dst_idx = ((unsigned long)p->screen_base & (bytes - 1))*8;
@@ -333,17 +329,16 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
333 dst_idx += p->fix.line_length*8; 329 dst_idx += p->fix.line_length*8;
334 } 330 }
335 } else { 331 } else {
336 int right; 332 int right, r;
337 int r;
338 int rot = (left-dst_idx) % bpp;
339 void (*fill_op)(struct fb_info *p, unsigned long __iomem *dst, 333 void (*fill_op)(struct fb_info *p, unsigned long __iomem *dst,
340 int dst_idx, unsigned long pat, int left, 334 int dst_idx, unsigned long pat, int left,
341 int right, unsigned n, int bits) = NULL; 335 int right, unsigned n, int bits) = NULL;
342 336#ifdef __LITTLE_ENDIAN
343 /* rotate pattern to correct start position */ 337 right = left;
344 pat = pat << rot | pat >> (bpp-rot); 338 left = bpp - right;
345 339#else
346 right = bpp-left; 340 right = bpp - left;
341#endif
347 switch (rect->rop) { 342 switch (rect->rop) {
348 case ROP_XOR: 343 case ROP_XOR:
349 fill_op = bitfill_unaligned_rev; 344 fill_op = bitfill_unaligned_rev;
@@ -352,17 +347,18 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
352 fill_op = bitfill_unaligned; 347 fill_op = bitfill_unaligned;
353 break; 348 break;
354 default: 349 default:
355 printk( KERN_ERR "cfb_fillrect(): unknown rop, defaulting to ROP_COPY\n"); 350 printk(KERN_ERR "cfb_fillrect(): unknown rop, defaulting to ROP_COPY\n");
356 fill_op = bitfill_unaligned; 351 fill_op = bitfill_unaligned;
357 break; 352 break;
358 } 353 }
359 while (height--) { 354 while (height--) {
360 dst += dst_idx >> (ffs(bits) - 1); 355 dst += dst_idx / bits;
361 dst_idx &= (bits - 1); 356 dst_idx &= (bits - 1);
362 fill_op(p, dst, dst_idx, pat, left, right, 357 r = dst_idx % bpp;
358 /* rotate pattern to the correct start position */
359 pat2 = le_long_to_cpu(rolx(cpu_to_le_long(pat), r, bpp));
360 fill_op(p, dst, dst_idx, pat2, left, right,
363 width*bpp, bits); 361 width*bpp, bits);
364 r = (p->fix.line_length*8) % bpp;
365 pat = pat << (bpp-r) | pat >> r;
366 dst_idx += p->fix.line_length*8; 362 dst_idx += p->fix.line_length*8;
367 } 363 }
368 } 364 }
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index d42e385f091c..4c2bf923418c 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -567,9 +567,7 @@ static int cirrusfb_check_var(struct fb_var_screeninfo *var,
567 default: 567 default:
568 dev_dbg(info->device, 568 dev_dbg(info->device,
569 "Unsupported bpp size: %d\n", var->bits_per_pixel); 569 "Unsupported bpp size: %d\n", var->bits_per_pixel);
570 assert(false); 570 return -EINVAL;
571 /* should never occur */
572 break;
573 } 571 }
574 572
575 if (var->xres_virtual < var->xres) 573 if (var->xres_virtual < var->xres)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 2cd500a304f2..471a9a60376a 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2263,9 +2263,12 @@ static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info,
2263 } 2263 }
2264 2264
2265 2265
2266 if (!lock_fb_info(info))
2267 return;
2266 event.info = info; 2268 event.info = info;
2267 event.data = &blank; 2269 event.data = &blank;
2268 fb_notifier_call_chain(FB_EVENT_CONBLANK, &event); 2270 fb_notifier_call_chain(FB_EVENT_CONBLANK, &event);
2271 unlock_fb_info(info);
2269} 2272}
2270 2273
2271static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) 2274static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
@@ -2956,8 +2959,6 @@ static int fbcon_fb_unregistered(struct fb_info *info)
2956{ 2959{
2957 int i, idx; 2960 int i, idx;
2958 2961
2959 if (!lock_fb_info(info))
2960 return -ENODEV;
2961 idx = info->node; 2962 idx = info->node;
2962 for (i = first_fb_vc; i <= last_fb_vc; i++) { 2963 for (i = first_fb_vc; i <= last_fb_vc; i++) {
2963 if (con2fb_map[i] == idx) 2964 if (con2fb_map[i] == idx)
@@ -2985,8 +2986,6 @@ static int fbcon_fb_unregistered(struct fb_info *info)
2985 if (primary_device == idx) 2986 if (primary_device == idx)
2986 primary_device = -1; 2987 primary_device = -1;
2987 2988
2988 unlock_fb_info(info);
2989
2990 if (!num_registered_fb) 2989 if (!num_registered_fb)
2991 unregister_con_driver(&fb_con); 2990 unregister_con_driver(&fb_con);
2992 2991
@@ -3027,11 +3026,8 @@ static int fbcon_fb_registered(struct fb_info *info)
3027{ 3026{
3028 int ret = 0, i, idx; 3027 int ret = 0, i, idx;
3029 3028
3030 if (!lock_fb_info(info))
3031 return -ENODEV;
3032 idx = info->node; 3029 idx = info->node;
3033 fbcon_select_primary(info); 3030 fbcon_select_primary(info);
3034 unlock_fb_info(info);
3035 3031
3036 if (info_idx == -1) { 3032 if (info_idx == -1) {
3037 for (i = first_fb_vc; i <= last_fb_vc; i++) { 3033 for (i = first_fb_vc; i <= last_fb_vc; i++) {
@@ -3152,53 +3148,23 @@ static int fbcon_event_notify(struct notifier_block *self,
3152 3148
3153 switch(action) { 3149 switch(action) {
3154 case FB_EVENT_SUSPEND: 3150 case FB_EVENT_SUSPEND:
3155 if (!lock_fb_info(info)) {
3156 ret = -ENODEV;
3157 goto done;
3158 }
3159 fbcon_suspended(info); 3151 fbcon_suspended(info);
3160 unlock_fb_info(info);
3161 break; 3152 break;
3162 case FB_EVENT_RESUME: 3153 case FB_EVENT_RESUME:
3163 if (!lock_fb_info(info)) {
3164 ret = -ENODEV;
3165 goto done;
3166 }
3167 fbcon_resumed(info); 3154 fbcon_resumed(info);
3168 unlock_fb_info(info);
3169 break; 3155 break;
3170 case FB_EVENT_MODE_CHANGE: 3156 case FB_EVENT_MODE_CHANGE:
3171 if (!lock_fb_info(info)) {
3172 ret = -ENODEV;
3173 goto done;
3174 }
3175 fbcon_modechanged(info); 3157 fbcon_modechanged(info);
3176 unlock_fb_info(info);
3177 break; 3158 break;
3178 case FB_EVENT_MODE_CHANGE_ALL: 3159 case FB_EVENT_MODE_CHANGE_ALL:
3179 if (!lock_fb_info(info)) {
3180 ret = -ENODEV;
3181 goto done;
3182 }
3183 fbcon_set_all_vcs(info); 3160 fbcon_set_all_vcs(info);
3184 unlock_fb_info(info);
3185 break; 3161 break;
3186 case FB_EVENT_MODE_DELETE: 3162 case FB_EVENT_MODE_DELETE:
3187 mode = event->data; 3163 mode = event->data;
3188 if (!lock_fb_info(info)) {
3189 ret = -ENODEV;
3190 goto done;
3191 }
3192 ret = fbcon_mode_deleted(info, mode); 3164 ret = fbcon_mode_deleted(info, mode);
3193 unlock_fb_info(info);
3194 break; 3165 break;
3195 case FB_EVENT_FB_UNBIND: 3166 case FB_EVENT_FB_UNBIND:
3196 if (!lock_fb_info(info)) {
3197 ret = -ENODEV;
3198 goto done;
3199 }
3200 idx = info->node; 3167 idx = info->node;
3201 unlock_fb_info(info);
3202 ret = fbcon_fb_unbind(idx); 3168 ret = fbcon_fb_unbind(idx);
3203 break; 3169 break;
3204 case FB_EVENT_FB_REGISTERED: 3170 case FB_EVENT_FB_REGISTERED:
@@ -3217,29 +3183,14 @@ static int fbcon_event_notify(struct notifier_block *self,
3217 con2fb->framebuffer = con2fb_map[con2fb->console - 1]; 3183 con2fb->framebuffer = con2fb_map[con2fb->console - 1];
3218 break; 3184 break;
3219 case FB_EVENT_BLANK: 3185 case FB_EVENT_BLANK:
3220 if (!lock_fb_info(info)) {
3221 ret = -ENODEV;
3222 goto done;
3223 }
3224 fbcon_fb_blanked(info, *(int *)event->data); 3186 fbcon_fb_blanked(info, *(int *)event->data);
3225 unlock_fb_info(info);
3226 break; 3187 break;
3227 case FB_EVENT_NEW_MODELIST: 3188 case FB_EVENT_NEW_MODELIST:
3228 if (!lock_fb_info(info)) {
3229 ret = -ENODEV;
3230 goto done;
3231 }
3232 fbcon_new_modelist(info); 3189 fbcon_new_modelist(info);
3233 unlock_fb_info(info);
3234 break; 3190 break;
3235 case FB_EVENT_GET_REQ: 3191 case FB_EVENT_GET_REQ:
3236 caps = event->data; 3192 caps = event->data;
3237 if (!lock_fb_info(info)) {
3238 ret = -ENODEV;
3239 goto done;
3240 }
3241 fbcon_get_requirement(info, caps); 3193 fbcon_get_requirement(info, caps);
3242 unlock_fb_info(info);
3243 break; 3194 break;
3244 } 3195 }
3245done: 3196done:
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index d012edda6d11..38e86b84dce0 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -1282,7 +1282,7 @@ static int vgacon_font_get(struct vc_data *c, struct console_font *font)
1282 font->charcount = vga_512_chars ? 512 : 256; 1282 font->charcount = vga_512_chars ? 512 : 256;
1283 if (!font->data) 1283 if (!font->data)
1284 return 0; 1284 return 0;
1285 return vgacon_do_font_op(&state, font->data, 0, 0); 1285 return vgacon_do_font_op(&state, font->data, 0, vga_512_chars);
1286} 1286}
1287 1287
1288#else 1288#else
diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
index 0c5b9a9fd56f..8dea2bc92705 100644
--- a/drivers/video/efifb.c
+++ b/drivers/video/efifb.c
@@ -210,12 +210,15 @@ static int __init efifb_probe(struct platform_device *dev)
210 unsigned int size_total; 210 unsigned int size_total;
211 int request_succeeded = 0; 211 int request_succeeded = 0;
212 212
213 printk(KERN_INFO "efifb: probing for efifb\n");
214
215 if (!screen_info.lfb_depth) 213 if (!screen_info.lfb_depth)
216 screen_info.lfb_depth = 32; 214 screen_info.lfb_depth = 32;
217 if (!screen_info.pages) 215 if (!screen_info.pages)
218 screen_info.pages = 1; 216 screen_info.pages = 1;
217 if (!screen_info.lfb_base) {
218 printk(KERN_DEBUG "efifb: invalid framebuffer address\n");
219 return -ENODEV;
220 }
221 printk(KERN_INFO "efifb: probing for efifb\n");
219 222
220 /* just assume they're all unset if any are */ 223 /* just assume they're all unset if any are */
221 if (!screen_info.blue_size) { 224 if (!screen_info.blue_size) {
diff --git a/drivers/video/fb_draw.h b/drivers/video/fb_draw.h
index 1db622192bde..04c01faaf772 100644
--- a/drivers/video/fb_draw.h
+++ b/drivers/video/fb_draw.h
@@ -33,11 +33,11 @@ pixel_to_pat( u32 bpp, u32 pixel)
33 case 8: 33 case 8:
34 return 0x0101010101010101ul*pixel; 34 return 0x0101010101010101ul*pixel;
35 case 12: 35 case 12:
36 return 0x0001001001001001ul*pixel; 36 return 0x1001001001001001ul*pixel;
37 case 16: 37 case 16:
38 return 0x0001000100010001ul*pixel; 38 return 0x0001000100010001ul*pixel;
39 case 24: 39 case 24:
40 return 0x0000000001000001ul*pixel; 40 return 0x0001000001000001ul*pixel;
41 case 32: 41 case 32:
42 return 0x0000000100000001ul*pixel; 42 return 0x0000000100000001ul*pixel;
43 default: 43 default:
@@ -58,11 +58,11 @@ pixel_to_pat( u32 bpp, u32 pixel)
58 case 8: 58 case 8:
59 return 0x01010101ul*pixel; 59 return 0x01010101ul*pixel;
60 case 12: 60 case 12:
61 return 0x00001001ul*pixel; 61 return 0x01001001ul*pixel;
62 case 16: 62 case 16:
63 return 0x00010001ul*pixel; 63 return 0x00010001ul*pixel;
64 case 24: 64 case 24:
65 return 0x00000001ul*pixel; 65 return 0x01000001ul*pixel;
66 case 32: 66 case 32:
67 return 0x00000001ul*pixel; 67 return 0x00000001ul*pixel;
68 default: 68 default:
@@ -167,4 +167,17 @@ static inline unsigned long fb_rev_pixels_in_long(unsigned long val,
167 167
168#endif /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */ 168#endif /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */
169 169
170#define cpu_to_le_long _cpu_to_le_long(BITS_PER_LONG)
171#define _cpu_to_le_long(x) __cpu_to_le_long(x)
172#define __cpu_to_le_long(x) cpu_to_le##x
173
174#define le_long_to_cpu _le_long_to_cpu(BITS_PER_LONG)
175#define _le_long_to_cpu(x) __le_long_to_cpu(x)
176#define __le_long_to_cpu(x) le##x##_to_cpu
177
178static inline unsigned long rolx(unsigned long word, unsigned int shift, unsigned int x)
179{
180 return (word << shift) | (word >> (x - shift));
181}
182
170#endif /* FB_DRAW_H */ 183#endif /* FB_DRAW_H */
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 2ac32e6b5953..d412a1ddc12f 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1097,8 +1097,11 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
1097 return -EINVAL; 1097 return -EINVAL;
1098 con2fb.framebuffer = -1; 1098 con2fb.framebuffer = -1;
1099 event.data = &con2fb; 1099 event.data = &con2fb;
1100 if (!lock_fb_info(info))
1101 return -ENODEV;
1100 event.info = info; 1102 event.info = info;
1101 fb_notifier_call_chain(FB_EVENT_GET_CONSOLE_MAP, &event); 1103 fb_notifier_call_chain(FB_EVENT_GET_CONSOLE_MAP, &event);
1104 unlock_fb_info(info);
1102 ret = copy_to_user(argp, &con2fb, sizeof(con2fb)) ? -EFAULT : 0; 1105 ret = copy_to_user(argp, &con2fb, sizeof(con2fb)) ? -EFAULT : 0;
1103 break; 1106 break;
1104 case FBIOPUT_CON2FBMAP: 1107 case FBIOPUT_CON2FBMAP:
@@ -1115,8 +1118,11 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
1115 break; 1118 break;
1116 } 1119 }
1117 event.data = &con2fb; 1120 event.data = &con2fb;
1121 if (!lock_fb_info(info))
1122 return -ENODEV;
1118 event.info = info; 1123 event.info = info;
1119 ret = fb_notifier_call_chain(FB_EVENT_SET_CONSOLE_MAP, &event); 1124 ret = fb_notifier_call_chain(FB_EVENT_SET_CONSOLE_MAP, &event);
1125 unlock_fb_info(info);
1120 break; 1126 break;
1121 case FBIOBLANK: 1127 case FBIOBLANK:
1122 if (!lock_fb_info(info)) 1128 if (!lock_fb_info(info))
@@ -1521,7 +1527,10 @@ register_framebuffer(struct fb_info *fb_info)
1521 registered_fb[i] = fb_info; 1527 registered_fb[i] = fb_info;
1522 1528
1523 event.info = fb_info; 1529 event.info = fb_info;
1530 if (!lock_fb_info(fb_info))
1531 return -ENODEV;
1524 fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event); 1532 fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event);
1533 unlock_fb_info(fb_info);
1525 return 0; 1534 return 0;
1526} 1535}
1527 1536
@@ -1555,8 +1564,12 @@ unregister_framebuffer(struct fb_info *fb_info)
1555 goto done; 1564 goto done;
1556 } 1565 }
1557 1566
1567
1568 if (!lock_fb_info(fb_info))
1569 return -ENODEV;
1558 event.info = fb_info; 1570 event.info = fb_info;
1559 ret = fb_notifier_call_chain(FB_EVENT_FB_UNBIND, &event); 1571 ret = fb_notifier_call_chain(FB_EVENT_FB_UNBIND, &event);
1572 unlock_fb_info(fb_info);
1560 1573
1561 if (ret) { 1574 if (ret) {
1562 ret = -EINVAL; 1575 ret = -EINVAL;
@@ -1590,6 +1603,8 @@ void fb_set_suspend(struct fb_info *info, int state)
1590{ 1603{
1591 struct fb_event event; 1604 struct fb_event event;
1592 1605
1606 if (!lock_fb_info(info))
1607 return;
1593 event.info = info; 1608 event.info = info;
1594 if (state) { 1609 if (state) {
1595 fb_notifier_call_chain(FB_EVENT_SUSPEND, &event); 1610 fb_notifier_call_chain(FB_EVENT_SUSPEND, &event);
@@ -1598,6 +1613,7 @@ void fb_set_suspend(struct fb_info *info, int state)
1598 info->state = FBINFO_STATE_RUNNING; 1613 info->state = FBINFO_STATE_RUNNING;
1599 fb_notifier_call_chain(FB_EVENT_RESUME, &event); 1614 fb_notifier_call_chain(FB_EVENT_RESUME, &event);
1600 } 1615 }
1616 unlock_fb_info(info);
1601} 1617}
1602 1618
1603/** 1619/**
@@ -1667,8 +1683,11 @@ int fb_new_modelist(struct fb_info *info)
1667 err = 1; 1683 err = 1;
1668 1684
1669 if (!list_empty(&info->modelist)) { 1685 if (!list_empty(&info->modelist)) {
1686 if (!lock_fb_info(info))
1687 return -ENODEV;
1670 event.info = info; 1688 event.info = info;
1671 err = fb_notifier_call_chain(FB_EVENT_NEW_MODELIST, &event); 1689 err = fb_notifier_call_chain(FB_EVENT_NEW_MODELIST, &event);
1690 unlock_fb_info(info);
1672 } 1691 }
1673 1692
1674 return err; 1693 return err;
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c
index fe5b519860b1..1a83709f9611 100644
--- a/drivers/video/gbefb.c
+++ b/drivers/video/gbefb.c
@@ -75,7 +75,7 @@ struct gbefb_par {
75static unsigned int gbe_mem_size = CONFIG_FB_GBE_MEM * 1024*1024; 75static unsigned int gbe_mem_size = CONFIG_FB_GBE_MEM * 1024*1024;
76static void *gbe_mem; 76static void *gbe_mem;
77static dma_addr_t gbe_dma_addr; 77static dma_addr_t gbe_dma_addr;
78unsigned long gbe_mem_phys; 78static unsigned long gbe_mem_phys;
79 79
80static struct { 80static struct {
81 uint16_t *cpu; 81 uint16_t *cpu;
@@ -185,8 +185,8 @@ static struct fb_videomode default_mode_LCD __initdata = {
185 .vmode = FB_VMODE_NONINTERLACED, 185 .vmode = FB_VMODE_NONINTERLACED,
186}; 186};
187 187
188struct fb_videomode *default_mode __initdata = &default_mode_CRT; 188static struct fb_videomode *default_mode __initdata = &default_mode_CRT;
189struct fb_var_screeninfo *default_var __initdata = &default_var_CRT; 189static struct fb_var_screeninfo *default_var __initdata = &default_var_CRT;
190 190
191static int flat_panel_enabled = 0; 191static int flat_panel_enabled = 0;
192 192
@@ -205,7 +205,7 @@ static void gbe_reset(void)
205 * console. 205 * console.
206 */ 206 */
207 207
208void gbe_turn_off(void) 208static void gbe_turn_off(void)
209{ 209{
210 int i; 210 int i;
211 unsigned int val, x, y, vpixen_off; 211 unsigned int val, x, y, vpixen_off;
@@ -1097,7 +1097,7 @@ static void gbefb_create_sysfs(struct device *dev)
1097 * Initialization 1097 * Initialization
1098 */ 1098 */
1099 1099
1100int __init gbefb_setup(char *options) 1100static int __init gbefb_setup(char *options)
1101{ 1101{
1102 char *this_opt; 1102 char *this_opt;
1103 1103
@@ -1283,7 +1283,7 @@ static struct platform_driver gbefb_driver = {
1283 1283
1284static struct platform_device *gbefb_device; 1284static struct platform_device *gbefb_device;
1285 1285
1286int __init gbefb_init(void) 1286static int __init gbefb_init(void)
1287{ 1287{
1288 int ret = platform_driver_register(&gbefb_driver); 1288 int ret = platform_driver_register(&gbefb_driver);
1289 if (!ret) { 1289 if (!ret) {
@@ -1301,7 +1301,7 @@ int __init gbefb_init(void)
1301 return ret; 1301 return ret;
1302} 1302}
1303 1303
1304void __exit gbefb_exit(void) 1304static void __exit gbefb_exit(void)
1305{ 1305{
1306 platform_device_unregister(gbefb_device); 1306 platform_device_unregister(gbefb_device);
1307 platform_driver_unregister(&gbefb_driver); 1307 platform_driver_unregister(&gbefb_driver);
diff --git a/drivers/video/intelfb/intelfb.h b/drivers/video/intelfb/intelfb.h
index a50bea614804..40984551c927 100644
--- a/drivers/video/intelfb/intelfb.h
+++ b/drivers/video/intelfb/intelfb.h
@@ -53,6 +53,7 @@
53#define PCI_DEVICE_ID_INTEL_830M 0x3577 53#define PCI_DEVICE_ID_INTEL_830M 0x3577
54#define PCI_DEVICE_ID_INTEL_845G 0x2562 54#define PCI_DEVICE_ID_INTEL_845G 0x2562
55#define PCI_DEVICE_ID_INTEL_85XGM 0x3582 55#define PCI_DEVICE_ID_INTEL_85XGM 0x3582
56#define PCI_DEVICE_ID_INTEL_854 0x358E
56#define PCI_DEVICE_ID_INTEL_865G 0x2572 57#define PCI_DEVICE_ID_INTEL_865G 0x2572
57#define PCI_DEVICE_ID_INTEL_915G 0x2582 58#define PCI_DEVICE_ID_INTEL_915G 0x2582
58#define PCI_DEVICE_ID_INTEL_915GM 0x2592 59#define PCI_DEVICE_ID_INTEL_915GM 0x2592
@@ -154,6 +155,7 @@ enum intel_chips {
154 INTEL_85XGM, 155 INTEL_85XGM,
155 INTEL_852GM, 156 INTEL_852GM,
156 INTEL_852GME, 157 INTEL_852GME,
158 INTEL_854,
157 INTEL_855GM, 159 INTEL_855GM,
158 INTEL_855GME, 160 INTEL_855GME,
159 INTEL_865G, 161 INTEL_865G,
diff --git a/drivers/video/intelfb/intelfb_i2c.c b/drivers/video/intelfb/intelfb_i2c.c
index b3065492bb20..487f2be47460 100644
--- a/drivers/video/intelfb/intelfb_i2c.c
+++ b/drivers/video/intelfb/intelfb_i2c.c
@@ -156,6 +156,7 @@ void intelfb_create_i2c_busses(struct intelfb_info *dinfo)
156 switch(dinfo->chipset) { 156 switch(dinfo->chipset) {
157 case INTEL_830M: 157 case INTEL_830M:
158 case INTEL_845G: 158 case INTEL_845G:
159 case INTEL_854:
159 case INTEL_855GM: 160 case INTEL_855GM:
160 case INTEL_865G: 161 case INTEL_865G:
161 dinfo->output[i].type = INTELFB_OUTPUT_DVO; 162 dinfo->output[i].type = INTELFB_OUTPUT_DVO;
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c
index 6d8e5415c809..ace14fe02fc4 100644
--- a/drivers/video/intelfb/intelfbdrv.c
+++ b/drivers/video/intelfb/intelfbdrv.c
@@ -182,6 +182,7 @@ static struct pci_device_id intelfb_pci_table[] __devinitdata = {
182 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_845G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_845G }, 182 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_845G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_845G },
183 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_85XGM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_85XGM }, 183 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_85XGM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_85XGM },
184 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_865G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_865G }, 184 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_865G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_865G },
185 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_854, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_854 },
185 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915G }, 186 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915G },
186 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915GM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915GM }, 187 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915GM, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915GM },
187 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_945G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945G }, 188 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_945G, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_945G },
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
index 8b26b27c2db6..0689f97c5238 100644
--- a/drivers/video/intelfb/intelfbhw.c
+++ b/drivers/video/intelfb/intelfbhw.c
@@ -84,6 +84,11 @@ int intelfbhw_get_chipset(struct pci_dev *pdev, struct intelfb_info *dinfo)
84 dinfo->mobile = 0; 84 dinfo->mobile = 0;
85 dinfo->pll_index = PLLS_I8xx; 85 dinfo->pll_index = PLLS_I8xx;
86 return 0; 86 return 0;
87 case PCI_DEVICE_ID_INTEL_854:
88 dinfo->mobile = 1;
89 dinfo->name = "Intel(R) 854";
90 dinfo->chipset = INTEL_854;
91 return 0;
87 case PCI_DEVICE_ID_INTEL_85XGM: 92 case PCI_DEVICE_ID_INTEL_85XGM:
88 tmp = 0; 93 tmp = 0;
89 dinfo->mobile = 1; 94 dinfo->mobile = 1;
diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
index de93ff3fc1ad..3c14e43b82fe 100644
--- a/drivers/video/logo/logo_linux_clut224.ppm
+++ b/drivers/video/logo/logo_linux_clut224.ppm
@@ -1,2828 +1,1604 @@
1P3 1P3
2145 113 2# Standard 224-color Linux logo
380 80
3255 4255
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0
110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0
120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0
130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 6 6 6 6 6 6 10 10 10 10 10 10
140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 10 10 10 6 6 6 6 6 6 6 6 6
150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0
160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0
180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0
200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0
210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0
230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0
240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0
250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0
260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0
270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0
280 0 0 29 0 0 0 0 0 0 0 0 0 0 0 0
290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0
300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0
310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0
320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 6 6 6 10 10 10 14 14 14
330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 22 22 22 26 26 26 30 30 30 34 34 34
340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 30 30 30 30 30 30 26 26 26 18 18 18
350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 14 14 14 10 10 10 6 6 6 0 0 0
360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0 0
370 0 0 0 0 0 0 0 0 0 0 0 3 4 4 6 7 7 38 0 0 0 0 0 0 0 0 0 0 0 0
388 10 10 8 10 10 6 8 8 6 7 7 3 4 4 2 2 2 39 0 0 0 0 0 0 0 0 0 0 0 0
390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0
400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0
410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0
420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0
430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0
440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 0 0 0 0 1 0 0 1 0 0 0
460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0
470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0
480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0
490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0
500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0
510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 52 0 0 0 0 0 0 0 0 0 0 0 0
520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 6 6 6 14 14 14 26 26 26 42 42 42
530 0 0 54 54 54 54 66 66 66 78 78 78 78 78 78
540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 78 78 78 74 74 74 66 66 66 54 54 54
550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 42 42 42 26 26 26 18 18 18 10 10 10
560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 6 6 6 0 0 0 0 0 0 0 0 0
570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 0 0 0 0 0 0 0
580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 0 0 0 0 0 0 0 0 0 0 0 0
590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0
600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 0 0 0 0 0 0 0 0 0 0 0 0
610 0 0 0 0 0 0 0 0 0 0 0 4 5 5 17 18 17 62 0 0 0 0 0 0 0 0 0 0 0 0
6227 29 28 35 37 36 40 43 41 43 45 43 40 43 41 37 39 37 63 0 0 0 0 0 0 0 0 0 0 0 0
6332 34 33 27 30 29 23 25 24 17 21 21 15 18 18 12 15 15 64 0 0 0 0 0 0 0 0 0 0 0 0
6411 13 13 8 10 10 6 7 7 3 4 4 1 1 1 0 0 0 65 0 0 0 0 0 0 0 0 0 0 0 0
650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 0 0 1 0 0 0 0 0 0 0 0 0
660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 0 0 0 0 0 0 0 0 0 0 0 0
670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0
680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 0 0 0 0 0 0 0 0 0
690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0
700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 0 0 0 0 0 0 0 0 0
710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 0 0 0 0 0 0 10 10 10
720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 73 22 22 22 42 42 42 66 66 66 86 86 86
730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 66 66 66 38 38 38 38 38 38 22 22 22
740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 26 26 26 34 34 34 54 54 54 66 66 66
750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 76 86 86 86 70 70 70 46 46 46 26 26 26
760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 14 14 14 6 6 6 0 0 0 0 0 0
770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 0 0 0 0 0 0 0 0 0
780 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0
790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0
800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 0 0 0 0 0 0 0 0 0 0 0 0
810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 0 0 0 0 0 0 0 0 0 0 0 0
820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 0 0 0 0 0 0 0 0 0 0 0 0
830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0
840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0 0
850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 86 0 0 1 0 0 1 0 0 1 0 0 0
860 0 0 13 13 13 32 34 33 49 51 48 60 60 56 58 59 55 87 0 0 0 0 0 0 0 0 0 0 0 0
8755 57 54 55 56 53 49 51 48 43 45 43 39 40 39 33 37 35 88 0 0 0 0 0 0 0 0 0 0 0 0
8828 31 30 23 27 26 20 23 23 17 20 20 14 17 17 13 16 16 89 0 0 0 0 0 0 0 0 0 0 0 0
8911 14 14 10 13 13 10 12 12 9 11 11 8 10 10 6 7 7 90 0 0 0 0 0 0 0 0 0 0 0 0
902 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 0 0 0 0 0
910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 92 0 0 0 0 0 0 10 10 10 26 26 26
920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 50 50 50 82 82 82 58 58 58 6 6 6
930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94 2 2 6 2 2 6 2 2 6 2 2 6
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 2 2 6 2 2 6 2 2 6 2 2 6
950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 6 6 6 54 54 54 86 86 86 66 66 66
960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 97 38 38 38 18 18 18 6 6 6 0 0 0
970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0 0 0 0 0 0 0 0
980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 0
990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0 0
1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 0 0
1020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 0 0 0 0 0 0 0 0 0 0 0 0
1030 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0
1040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 0 0 0 0 0 0 0 0 0
1050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 0 0 0 0 0 0 0 0 0
1060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0
1070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108 0 0 0 0 0 0 0 0 0 0 0 0
1080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 0 0 0 0 0 0 0 0 0 0 0 0
1090 0 0 0 0 0 0 0 0 0 0 0 6 7 7 12 15 15 110 0 0 0 0 0 0 0 0 0 0 0 0
11012 15 15 8 9 9 2 3 3 0 0 0 1 1 1 25 27 26 111 0 0 0 0 0 0 0 0 0 0 0 0
11155 56 53 68 70 65 65 66 61 65 66 61 63 64 60 63 64 60 112 0 0 0 6 6 6 22 22 22 50 50 50
11258 59 55 51 52 50 47 48 46 41 42 42 35 37 36 30 32 31 113 78 78 78 34 34 34 2 2 6 2 2 6
11326 28 27 20 24 24 18 22 22 16 19 19 14 17 17 13 16 16 114 2 2 6 2 2 6 2 2 6 2 2 6
11412 15 15 11 14 14 10 13 13 10 12 12 9 11 11 8 10 10 115 2 2 6 2 2 6 2 2 6 2 2 6
1158 9 9 6 8 8 3 3 3 0 0 0 0 0 0 0 0 0 116 2 2 6 2 2 6 6 6 6 70 70 70
1160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 78 78 78 46 46 46 22 22 22 6 6 6
1170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 0 0 0 0 0 0 0 0 0 0 0
1180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0
1190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0
1200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 0 0 0 0 0 0 0 0 0 0 0 0
1210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 0 0 0 0 0 0 0 0 0 0 0 0
1220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 0 0 0 0 0 0 0 0 0 0 0 0
1230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0 0
1240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 0 0 0 0 0 0 0
1250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 0 0 1 0 0 1 0 0 1 0 0 0
1260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 0 0 0 0 0 0 0 0 0
1270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0
1280 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0
1290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 0 0 0 0 0 0 0 0 0 0 0 0
1300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 0 0 0 0 0 0 0 0 0 0 0 0
1310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 6 6 6 18 18 18 42 42 42 82 82 82
1320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 26 26 26 2 2 6 2 2 6 2 2 6
1330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 2 2 6 2 2 6 2 2 6 2 2 6
1340 0 0 0 0 0 0 0 0 6 7 7 20 24 24 23 27 26 135 2 2 6 2 2 6 2 2 6 14 14 14
13523 27 26 18 22 22 11 13 13 23 24 24 61 63 57 72 73 67 136 46 46 46 34 34 34 6 6 6 2 2 6
13672 73 67 68 70 65 68 70 65 68 70 65 63 64 60 58 59 55 137 42 42 42 78 78 78 42 42 42 18 18 18
13755 56 53 47 48 46 41 42 42 35 37 36 30 32 31 26 28 27 138 6 6 6 0 0 0 0 0 0 0 0 0
13820 24 24 18 22 22 16 20 20 15 19 19 14 17 17 13 16 16 139 0 0 0 0 0 0 0 0 0 0 0 0
13912 15 15 12 15 15 11 14 14 10 13 13 10 12 12 9 11 11 140 0 0 0 0 0 0 0 0 0 0 0 0
1408 10 10 8 9 9 7 9 9 6 7 7 1 2 2 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0
1410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 0 0 0 0 0 0 0 0 0 0 0 0
1420 0 0 0 0 0 1 1 1 4 5 5 5 6 5 4 5 5 143 0 0 0 0 0 0 0 0 0 0 0 0
1430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 0 0 0 0 0 0 0 0 0
1440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 0 0 0 0 0 0 0 0 0 0 0 0
1450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 1 0 0 0 0 0 1 0 0 0
1460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 0 0 0 0 0 0 0 0 0 0 0 0
1470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0
1480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 0 0 0 0 0 0 0 0 0 0 0 0
1490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0 0 0 0 0 0 0 0 0 0 0 0
1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0
1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 10 10 10 30 30 30 66 66 66 58 58 58
1520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 2 2 6 2 2 6 2 2 6 2 2 6
1530 0 0 154 2 2 6 2 2 6 2 2 6 2 2 6
1540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 2 2 6 2 2 6 2 2 6 26 26 26
1550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 86 86 86 101 101 101 46 46 46 10 10 10
1560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 157 2 2 6 58 58 58 70 70 70 34 34 34
1570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 10 10 10 0 0 0 0 0 0 0 0 0
1580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 159 0 0 0 0 0 0 0 0 0 0 0 0
1590 0 0 0 0 0 0 0 0 15 19 19 40 41 39 53 55 47 160 0 0 0 0 0 0 0 0 0 0 0 0
16033 36 34 27 30 29 51 52 50 72 73 67 72 73 67 72 73 67 161 0 0 0 0 0 0 0 0 0 0 0 0
16172 73 67 68 70 65 68 70 65 63 64 60 58 59 55 51 52 50 162 0 0 0 0 0 0 0 0 0 0 0 0
16247 48 46 40 43 41 33 37 35 30 32 31 26 28 27 20 24 24 163 0 0 0 0 0 0 0 0 0 0 0 0
16318 22 22 17 21 21 16 19 19 14 18 18 14 17 17 13 17 17 164 0 0 0 0 0 0 0 0 0 0 0 0
16413 16 16 12 15 15 12 15 15 11 14 14 10 13 13 10 12 12 165 0 0 0 0 0 0 0 0 0 0 0 0
1659 11 11 8 10 10 8 9 9 7 9 9 6 8 8 3 4 4 166 0 0 1 0 0 1 0 0 1 0 0 0
1660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 0 0 0 0 0 0 0 0 0 0 0 0
1672 2 2 6 8 8 10 12 12 10 12 12 10 12 12 10 12 12 168 0 0 0 0 0 0 0 0 0 0 0 0
1686 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0
1690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 0 0 0 0 0 0 0 0 0 0 0
1700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 0 0 0 0 0 0 0 0 0 0 0 0
1710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 14 14 14 42 42 42 86 86 86 10 10 10
1720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 173 2 2 6 2 2 6 2 2 6 2 2 6
1730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 2 2 6 2 2 6 2 2 6 2 2 6
1740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 2 2 6 2 2 6 2 2 6 30 30 30
1750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 176 94 94 94 94 94 94 58 58 58 26 26 26
1760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 2 2 6 6 6 6 78 78 78 54 54 54
1770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 22 22 22 6 6 6 0 0 0 0 0 0
1780 0 0 179 0 0 0 0 0 0 0 0 0 0 0 0
1790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 0 0 0 0 0 0 0 0 0 0 0 0
1800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 0 0 0 0 0 0 0 0 0 0 0 0
1810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 182 0 0 0 0 0 0 0 0 0 0 0 0
1820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 0 0 0 0 0 0 0 0 0 0 0 0
1830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 0 0 0 0 0 0 0 0 0 0 0 0
1840 0 0 0 0 0 0 0 0 20 23 23 71 71 57 131 127 93 185 0 0 0 0 0 0 0 0 0 0 0 0
185115 113 82 63 64 60 72 73 67 72 73 67 72 73 67 72 73 67 186 0 0 0 0 0 0 0 0 0 0 0 0
18668 70 65 65 66 61 61 63 57 55 57 54 49 51 48 43 45 43 187 0 0 0 0 0 0 0 0 0 0 0 0
18739 40 39 33 36 34 28 31 30 23 27 26 20 24 24 20 23 23 188 0 0 0 0 0 0 0 0 0 0 0 0
18817 21 21 16 20 20 15 19 19 15 18 18 14 18 18 14 17 17 189 0 0 0 0 0 0 0 0 0 0 0 0
18913 17 17 13 16 16 12 15 15 12 15 15 11 14 14 10 13 13 190 0 0 0 0 0 0 0 0 0 0 0 0
19010 12 12 9 11 11 8 10 10 7 9 9 7 9 9 6 8 8 191 0 0 0 0 0 0 0 0 0 6 6 6
1914 5 5 0 0 0 0 0 0 0 0 0 1 1 1 6 7 7 192 22 22 22 62 62 62 62 62 62 2 2 6
19210 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 193 2 2 6 2 2 6 2 2 6 2 2 6
19310 12 12 3 4 4 0 0 0 0 0 0 0 0 0 0 0 0 194 2 2 6 2 2 6 2 2 6 2 2 6
1940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 195 2 2 6 2 2 6 2 2 6 26 26 26
1950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 54 54 54 38 38 38 18 18 18 10 10 10
1960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 2 2 6 2 2 6 34 34 34 82 82 82
1970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 38 38 38 14 14 14 0 0 0 0 0 0
1980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0
1990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0
2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 0 0 0 0 0 0 0 0 0 0 0 0
2010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 0 0 0 0 0 0 0 0 0 0 0 0
2020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 0 0 0 0 0 0 0 0 0 0 0 0
2030 0 0 204 0 0 0 0 0 0 0 0 0 0 0 0
2040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 0 0 0 0 0 0 0 0 0 0 0 0
2050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 206 0 0 0 0 0 1 0 0 1 0 0 0
2060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 0 0 0 0 0 0 0 0 0 0 0 0
2070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 0 0 0 0 0 0 0 0 0
2080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0
2090 0 0 0 0 0 0 0 0 18 22 22 71 71 57 144 139 99 210 0 0 0 0 0 0 0 0 0 0 0 0
21084 83 72 68 70 65 72 73 67 72 73 67 68 70 65 65 66 61 211 0 0 0 0 0 0 0 0 0 6 6 6
21163 64 60 55 57 54 51 52 50 47 48 46 40 43 41 35 37 36 212 30 30 30 78 78 78 30 30 30 2 2 6
21230 32 31 27 29 28 23 27 26 20 24 24 18 22 22 17 21 21 213 2 2 6 2 2 6 2 2 6 2 2 6
21316 20 20 15 19 19 15 19 19 15 19 19 15 18 18 14 18 18 214 2 2 6 2 2 6 2 2 6 2 2 6
21414 17 17 13 17 17 13 16 16 12 15 15 12 15 15 11 14 14 215 2 2 6 2 2 6 2 2 6 10 10 10
21510 13 13 9 12 12 9 11 11 8 10 10 7 9 9 6 8 8 216 10 10 10 2 2 6 2 2 6 2 2 6
2166 8 8 3 4 4 0 0 0 2 2 2 8 10 10 10 12 12 217 2 2 6 2 2 6 2 2 6 78 78 78
21710 12 12 10 12 12 11 13 13 36 38 35 61 61 53 48 49 45 218 50 50 50 18 18 18 6 6 6 0 0 0
21810 12 12 7 9 9 0 0 0 0 0 0 0 0 0 0 0 0 219 0 0 0 0 0 0 0 0 0 0 0 0
2190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0
2200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 0 0 0 0 0 0 0 0 0 0 0 0
2210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 0 0 0 0 0 0 0
2220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 0 0 0 0 0 0 0 0 0 0 0 0
2230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 0 0 0 0 0 0 0 0 0
2240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 0 0 0 0 0 0 0 0 0 0 0 0
2250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 0 0 1 0 0 0 0 0 0 0 0 0
2260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 0 0 0 0 0 0 0 0 0 0 0 0
2270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 0 0 0 0 0 0 0 0 0 0 0 0
2280 0 0 229 0 0 0 0 0 0 0 0 0 0 0 0
2290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 0 0 0 0 0 0 0 0 0 0 0 0
2300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 0 0 0 0 0 0 0 0 0 10 10 10
2310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 38 38 38 86 86 86 14 14 14 2 2 6
2320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 2 2 6 2 2 6 2 2 6 2 2 6
2330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 2 2 6 2 2 6 2 2 6 2 2 6
2340 0 0 0 0 0 0 0 0 15 19 19 61 61 53 84 83 72 235 2 2 6 2 2 6 2 2 6 2 2 6
23568 70 65 72 73 67 68 70 65 68 70 65 63 64 60 58 59 55 236 2 2 6 2 2 6 2 2 6 2 2 6
23651 52 50 47 48 46 41 42 42 37 39 37 32 35 33 28 31 30 237 2 2 6 2 2 6 2 2 6 54 54 54
23723 27 26 20 24 24 20 23 23 18 22 22 17 21 21 17 21 21 238 66 66 66 26 26 26 6 6 6 0 0 0
23817 21 21 17 21 21 17 20 20 16 20 20 16 20 20 16 19 19 239 0 0 0 0 0 0 0 0 0 0 0 0
23915 18 18 14 18 18 13 17 17 13 16 16 12 15 15 12 15 15 240 0 0 0 0 0 0 0 0 0 0 0 0
24011 14 14 10 13 13 9 12 12 9 11 11 8 10 10 7 9 9 241 0 0 0 0 0 0 0 0 0 0 0 0
2416 8 8 6 8 8 5 6 5 9 11 11 10 12 12 10 12 12 242 0 0 0 0 0 0 0 0 0 0 0 0
24219 20 18 82 81 62 149 145 103 160 154 106 142 137 94 96 95 69 243 0 0 0 0 0 0 0 0 0 0 0 0
24310 12 12 10 12 12 1 1 1 0 0 0 0 0 0 0 0 0 244 0 0 0 0 0 0 0 0 0 0 0 0
2440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 0 0 0 0 0 0 0
2450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 0 0 0 0 0 1 0 0 1 0 0 0
2460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 0 0 0 0 0 0 0 0 0 0 0 0
2470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 0 0 0 0 0 0 0 0 0
2480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 0 0 0 0 0 0 0 0 0 0 0 0
2490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 0 0 0 0 0 0 0 0 0 0 0 0
2500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 0 0 0 0 0 0 0 0 0 14 14 14
2510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 42 42 42 82 82 82 2 2 6 2 2 6
2520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 253 2 2 6 6 6 6 10 10 10 2 2 6
2530 0 0 254 2 2 6 2 2 6 2 2 6 2 2 6
2540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 2 2 6 2 2 6 2 2 6 6 6 6
2550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 256 14 14 14 10 10 10 2 2 6 2 2 6
2560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 257 2 2 6 2 2 6 2 2 6 18 18 18
2570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 258 82 82 82 34 34 34 10 10 10 0 0 0
2580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 259 0 0 0 0 0 0 0 0 0 0 0 0
2590 0 0 0 0 0 0 0 0 10 12 12 44 46 43 68 70 65 260 0 0 0 0 0 0 0 0 0 0 0 0
26072 73 67 68 70 65 68 70 65 63 64 60 55 57 54 49 51 48 261 0 0 0 0 0 0 0 0 0 0 0 0
26143 45 43 39 40 39 33 37 35 30 32 31 26 28 27 23 27 26 262 0 0 0 0 0 0 0 0 0 0 0 0
26220 24 24 18 22 22 18 22 22 18 22 22 18 22 22 20 23 23 263 0 0 0 0 0 0 0 0 0 0 0 0
26320 24 24 23 25 24 23 25 24 22 24 23 20 23 23 18 22 22 264 0 0 0 0 0 0 0 0 0 0 0 0
26417 20 20 15 19 19 15 18 18 14 17 17 13 16 16 12 15 15 265 0 0 0 0 0 0 0 0 0 0 0 0
26511 14 14 11 13 13 10 12 12 9 11 11 8 10 10 8 9 9 266 0 0 1 0 0 0 0 0 0 0 0 0
2667 9 9 7 9 9 10 12 12 10 12 12 10 12 12 71 71 57 267 0 0 0 0 0 0 0 0 0 0 0 0
267164 159 111 186 182 128 186 182 128 171 165 117 151 147 98 96 95 69 268 0 0 0 0 0 0 0 0 0 0 0 0
26810 12 12 10 12 12 3 3 3 0 0 0 0 0 0 0 0 0 269 0 0 0 0 0 0 0 0 0 0 0 0
2690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 270 0 0 0 0 0 0 0 0 0 0 0 0
2700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 0 0 0 0 14 14 14
2710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272 46 46 46 86 86 86 2 2 6 2 2 6
2720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 273 6 6 6 6 6 6 22 22 22 34 34 34
2730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 274 6 6 6 2 2 6 2 2 6 2 2 6
2740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 275 2 2 6 2 2 6 18 18 18 34 34 34
2750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 276 10 10 10 50 50 50 22 22 22 2 2 6
2760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277 2 2 6 2 2 6 2 2 6 10 10 10
2770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 86 86 86 42 42 42 14 14 14 0 0 0
2780 0 0 279 0 0 0 0 0 0 0 0 0 0 0 0
2790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 280 0 0 0 0 0 0 0 0 0 0 0 0
2800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 281 0 0 0 0 0 0 0 0 0 0 0 0
2810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0
2820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 283 0 0 0 0 0 0 0 0 0 0 0 0
2830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 284 0 0 0 0 0 0 0 0 0 0 0 0
2840 0 0 0 0 0 0 0 0 8 10 10 63 64 60 68 70 65 285 0 0 0 0 0 0 0 0 0 0 0 0
28572 73 67 68 70 65 63 64 60 55 57 54 47 48 46 40 43 41 286 0 0 1 0 0 1 0 0 1 0 0 0
28633 37 35 30 32 31 27 29 28 23 27 26 20 24 24 20 23 23 287 0 0 0 0 0 0 0 0 0 0 0 0
28718 22 22 18 22 22 20 23 22 21 25 23 23 27 26 27 29 28 288 0 0 0 0 0 0 0 0 0 0 0 0
28828 31 30 31 33 31 31 33 31 31 33 31 28 31 30 26 28 27 289 0 0 0 0 0 0 0 0 0 0 0 0
28923 25 24 20 23 22 16 20 20 15 18 18 14 17 17 13 16 16 290 0 0 0 0 0 0 0 0 0 0 0 0
29012 15 15 11 14 14 10 13 13 10 12 12 9 11 11 8 10 10 291 0 0 0 0 0 0 0 0 0 14 14 14
29110 12 12 10 13 13 10 12 12 12 14 14 96 95 69 165 161 109 292 46 46 46 86 86 86 2 2 6 2 2 6
292186 182 128 192 187 134 192 187 134 176 171 126 160 154 106 103 101 77 293 38 38 38 116 116 116 94 94 94 22 22 22
29310 12 12 10 12 12 5 6 5 0 0 0 0 0 0 0 0 0 294 22 22 22 2 2 6 2 2 6 2 2 6
2940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295 14 14 14 86 86 86 138 138 138 162 162 162
2950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 296154 154 154 38 38 38 26 26 26 6 6 6
2960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 297 2 2 6 2 2 6 2 2 6 2 2 6
2970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 298 86 86 86 46 46 46 14 14 14 0 0 0
2980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 299 0 0 0 0 0 0 0 0 0 0 0 0
2990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 300 0 0 0 0 0 0 0 0 0 0 0 0
3000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
3010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 302 0 0 0 0 0 0 0 0 0 0 0 0
3020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 303 0 0 0 0 0 0 0 0 0 0 0 0
3030 0 0 304 0 0 0 0 0 0 0 0 0 0 0 0
3040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 305 0 0 0 0 0 0 0 0 0 0 0 0
3050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 306 0 0 0 0 0 0 0 0 0 0 0 0
3060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0
3070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 308 0 0 0 0 0 0 0 0 0 0 0 0
3080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 309 0 0 0 0 0 0 0 0 0 0 0 0
3090 0 0 0 0 0 0 0 0 35 37 36 68 70 65 72 73 67 310 0 0 0 0 0 0 0 0 0 0 0 0
31068 70 65 65 66 61 58 59 55 49 51 48 40 43 41 33 37 35 311 0 0 0 0 0 0 0 0 0 14 14 14
31128 31 30 23 27 26 20 24 24 20 23 23 18 22 22 18 22 22 312 46 46 46 86 86 86 2 2 6 14 14 14
31218 22 22 20 23 23 23 27 26 27 30 29 32 35 33 37 39 37 313134 134 134 198 198 198 195 195 195 116 116 116
31340 43 41 44 46 43 46 47 43 44 46 43 40 43 41 36 38 35 314 10 10 10 2 2 6 2 2 6 6 6 6
31431 33 31 27 29 28 22 24 23 17 21 21 15 18 18 14 17 17 315101 98 89 187 187 187 210 210 210 218 218 218
31513 16 16 12 15 15 11 14 14 11 14 14 11 13 13 13 16 16 316214 214 214 134 134 134 14 14 14 6 6 6
31613 16 16 11 14 14 10 12 12 79 78 62 142 137 94 164 159 111 317 2 2 6 2 2 6 2 2 6 2 2 6
317178 174 128 192 187 134 192 187 134 176 171 126 160 154 106 96 95 69 318 86 86 86 50 50 50 18 18 18 6 6 6
31810 12 12 10 12 12 6 7 7 0 0 0 0 0 0 0 0 0 319 0 0 0 0 0 0 0 0 0 0 0 0
3190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0
3200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 321 0 0 0 0 0 0 0 0 0 0 0 0
3210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 322 0 0 0 0 0 0 0 0 0 0 0 0
3220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 323 0 0 0 0 0 0 0 0 0 0 0 0
3230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 324 0 0 0 0 0 0 0 0 0 0 0 0
3240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 325 0 0 0 0 0 0 0 0 1 0 0 0
3250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 326 0 0 1 0 0 1 0 0 1 0 0 0
3260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 327 0 0 0 0 0 0 0 0 0 0 0 0
3270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 328 0 0 0 0 0 0 0 0 0 0 0 0
3280 0 0 329 0 0 0 0 0 0 0 0 0 0 0 0
3290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 330 0 0 0 0 0 0 0 0 0 0 0 0
3300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 331 0 0 0 0 0 0 0 0 0 14 14 14
3310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 332 46 46 46 86 86 86 2 2 6 54 54 54
3320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333218 218 218 195 195 195 226 226 226 246 246 246
3330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 58 58 58 2 2 6 2 2 6 30 30 30
3340 0 0 0 0 0 0 0 0 55 57 54 68 70 65 72 73 67 335210 210 210 253 253 253 174 174 174 123 123 123
33568 70 65 63 64 60 55 56 53 43 45 43 35 37 36 28 31 30 336221 221 221 234 234 234 74 74 74 2 2 6
33623 27 26 20 24 24 18 22 22 17 21 21 17 21 21 17 21 21 337 2 2 6 2 2 6 2 2 6 2 2 6
33720 24 24 25 27 26 31 33 31 38 39 37 46 47 43 53 55 47 338 70 70 70 58 58 58 22 22 22 6 6 6
33861 61 53 66 65 55 66 65 55 66 65 55 61 61 53 53 55 47 339 0 0 0 0 0 0 0 0 0 0 0 0
33946 47 43 37 39 37 30 33 30 24 26 24 17 21 21 15 18 18 340 0 0 0 0 0 0 0 0 0 0 0 0
34013 17 17 12 15 15 12 15 15 13 16 16 14 18 18 14 18 18 341 0 0 0 0 0 0 0 0 0 0 0 0
34114 17 17 12 15 15 30 31 28 118 116 76 134 131 96 160 154 106 342 0 0 0 0 0 0 0 0 0 0 0 0
342174 170 121 178 174 128 178 174 128 171 165 117 151 147 98 96 95 69 343 0 0 0 0 0 0 0 0 0 0 0 0
34310 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 344 0 0 0 0 0 0 0 0 0 0 0 0
3440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 345 0 0 0 0 0 0 0 0 0 0 0 0
3450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 346 0 0 0 0 0 0 0 0 0 0 0 0
3460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 347 0 0 0 0 0 0 0 0 0 0 0 0
3470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 348 0 0 0 0 0 0 0 0 0 0 0 0
3480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 349 0 0 0 0 0 0 0 0 0 0 0 0
3490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 350 0 0 0 0 0 0 0 0 0 0 0 0
3500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0 0 0 0 0 0 14 14 14
3510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 352 46 46 46 82 82 82 2 2 6 106 106 106
3520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 353170 170 170 26 26 26 86 86 86 226 226 226
3530 0 0 354123 123 123 10 10 10 14 14 14 46 46 46
3540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 355231 231 231 190 190 190 6 6 6 70 70 70
3550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 356 90 90 90 238 238 238 158 158 158 2 2 6
3560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357 2 2 6 2 2 6 2 2 6 2 2 6
3570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 358 70 70 70 58 58 58 22 22 22 6 6 6
3580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 359 0 0 0 0 0 0 0 0 0 0 0 0
3590 0 0 0 0 0 0 0 0 63 64 60 68 70 65 68 70 65 360 0 0 0 0 0 0 0 0 0 0 0 0
36065 66 61 58 59 55 49 51 48 39 40 39 30 32 31 23 27 26 361 0 0 0 0 0 0 0 0 0 0 0 0
36120 24 24 18 22 22 17 21 21 16 20 20 17 21 21 20 23 23 362 0 0 0 0 0 0 0 0 0 0 0 0
36225 27 26 32 35 33 43 44 41 53 55 47 66 65 55 75 75 61 363 0 0 0 0 0 0 0 0 0 0 0 0
36382 81 62 84 83 72 87 86 72 87 86 72 82 81 62 75 75 61 364 0 0 0 0 0 0 0 0 0 0 0 0
36466 65 55 53 55 47 40 41 39 31 33 31 23 25 24 17 20 20 365 0 0 0 0 0 0 0 0 1 0 0 0
36514 18 18 13 16 16 12 15 15 12 15 15 13 17 17 14 18 18 366 0 0 1 0 0 1 0 0 1 0 0 0
36614 18 18 13 16 16 46 47 43 96 95 69 125 122 87 142 137 94 367 0 0 0 0 0 0 0 0 0 0 0 0
367160 154 106 165 161 109 164 159 111 155 149 109 142 137 94 75 75 61 368 0 0 0 0 0 0 0 0 0 0 0 0
36810 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 369 0 0 0 0 0 0 0 0 0 0 0 0
3690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 370 0 0 0 0 0 0 0 0 0 0 0 0
3700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 371 0 0 0 0 0 0 0 0 0 14 14 14
3710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 372 42 42 42 86 86 86 6 6 6 116 116 116
3720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 373106 106 106 6 6 6 70 70 70 149 149 149
3730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 374128 128 128 18 18 18 38 38 38 54 54 54
3740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 375221 221 221 106 106 106 2 2 6 14 14 14
3750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 376 46 46 46 190 190 190 198 198 198 2 2 6
3760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 377 2 2 6 2 2 6 2 2 6 2 2 6
3770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 378 74 74 74 62 62 62 22 22 22 6 6 6
3780 0 0 379 0 0 0 0 0 0 0 0 0 0 0 0
3790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 380 0 0 0 0 0 0 0 0 0 0 0 0
3800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 381 0 0 0 0 0 0 0 0 0 0 0 0
3810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 382 0 0 0 0 0 0 0 0 0 0 0 0
3820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 383 0 0 0 0 0 0 0 0 0 0 0 0
3830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 0 0 0 0 0 0 0 0 0 0 0
3840 0 0 0 0 0 0 0 0 60 60 56 68 70 65 68 70 65 385 0 0 0 0 0 0 0 0 1 0 0 0
38563 64 60 55 57 54 46 47 45 35 37 36 27 30 29 23 25 24 386 0 0 1 0 0 0 0 0 1 0 0 0
38618 22 22 17 21 21 16 20 20 17 21 21 18 22 22 23 27 26 387 0 0 0 0 0 0 0 0 0 0 0 0
38731 33 31 43 44 41 55 56 53 71 71 57 84 83 72 92 91 72 388 0 0 0 0 0 0 0 0 0 0 0 0
388103 101 77 92 91 72 82 81 62 82 81 62 87 86 72 92 91 72 389 0 0 0 0 0 0 0 0 0 0 0 0
38984 83 72 71 71 57 55 56 53 43 44 41 30 33 30 22 24 23 390 0 0 0 0 0 0 0 0 0 0 0 0
39016 19 19 14 17 17 12 15 15 12 15 15 13 16 16 14 18 18 391 0 0 0 0 0 0 0 0 0 14 14 14
39114 18 18 14 17 17 43 44 41 82 81 62 118 116 76 125 122 87 392 42 42 42 94 94 94 14 14 14 101 101 101
392142 137 94 144 139 99 144 139 99 134 131 96 118 116 76 53 55 47 393128 128 128 2 2 6 18 18 18 116 116 116
39310 12 12 10 12 12 6 8 8 0 0 0 0 0 0 0 0 0 394118 98 46 121 92 8 121 92 8 98 78 10
3940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 395162 162 162 106 106 106 2 2 6 2 2 6
3950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 396 2 2 6 195 195 195 195 195 195 6 6 6
3960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 397 2 2 6 2 2 6 2 2 6 2 2 6
3970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 398 74 74 74 62 62 62 22 22 22 6 6 6
3980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 399 0 0 0 0 0 0 0 0 0 0 0 0
3990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 0
4000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 401 0 0 0 0 0 0 0 0 0 0 0 0
4010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 402 0 0 0 0 0 0 0 0 0 0 0 0
4020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 403 0 0 0 0 0 0 0 0 0 0 0 0
4030 0 0 404 0 0 0 0 0 0 0 0 0 0 0 0
4040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 405 0 0 0 0 0 0 0 0 1 0 0 1
4050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 406 0 0 1 0 0 0 0 0 1 0 0 0
4060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 0 0 0 0 0 0 0 0 0 0
4070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 408 0 0 0 0 0 0 0 0 0 0 0 0
4080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 409 0 0 0 0 0 0 0 0 0 0 0 0
4090 0 0 0 0 0 0 0 0 47 48 46 63 64 60 63 64 60 410 0 0 0 0 0 0 0 0 0 0 0 0
41055 57 54 49 51 48 40 43 41 32 34 33 26 28 27 20 24 24 411 0 0 0 0 0 0 0 0 0 10 10 10
41118 22 22 16 20 20 16 20 20 17 21 21 20 24 24 28 31 30 412 38 38 38 90 90 90 14 14 14 58 58 58
41240 41 39 53 55 47 75 75 61 90 89 73 87 86 72 48 49 45 413210 210 210 26 26 26 54 38 6 154 114 10
41314 14 13 2 2 2 1 2 2 1 1 1 1 1 1 2 2 2 414226 170 11 236 186 11 225 175 15 184 144 12
41419 20 18 43 44 41 66 65 55 53 55 47 38 39 37 26 28 27 415215 174 15 175 146 61 37 26 9 2 2 6
41518 22 22 14 18 18 13 16 16 12 15 15 12 15 15 13 17 17 416 70 70 70 246 246 246 138 138 138 2 2 6
41614 18 18 14 18 18 30 31 28 66 65 55 96 95 69 103 101 77 417 2 2 6 2 2 6 2 2 6 2 2 6
417118 116 76 118 116 76 118 116 76 118 116 76 103 101 77 36 38 35 418 70 70 70 66 66 66 26 26 26 6 6 6
41810 12 12 10 12 12 6 7 7 0 0 0 0 0 0 0 0 0 419 0 0 0 0 0 0 0 0 0 0 0 0
4190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 420 0 0 0 0 0 0 0 0 0 0 0 0
4200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 421 0 0 0 0 0 0 0 0 0 0 0 0
4210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 422 0 0 0 0 0 0 0 0 0 0 0 0
4220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 423 0 0 0 0 0 0 0 0 0 0 0 0
4230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 424 0 0 0 0 0 0 0 0 0 0 0 0
4240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 425 0 0 0 0 0 0 0 0 0 0 0 0
4250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 426 0 0 0 0 0 0 0 0 0 0 0 0
4260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 427 0 0 0 0 0 0 0 0 0 0 0 0
4270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 428 0 0 0 0 0 0 0 0 0 0 0 0
4280 0 0 429 0 0 0 0 0 0 0 0 0 0 0 0
4290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 430 0 0 0 0 0 0 0 0 0 0 0 0
4300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 431 0 0 0 0 0 0 0 0 0 10 10 10
4310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 432 38 38 38 86 86 86 14 14 14 10 10 10
4320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 433195 195 195 188 164 115 192 133 9 225 175 15
4330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 434239 182 13 234 190 10 232 195 16 232 200 30
4340 0 0 0 0 0 0 0 0 28 31 30 55 57 54 51 52 50 435245 207 45 241 208 19 232 195 16 184 144 12
43549 51 48 41 42 42 35 37 36 28 31 30 23 27 26 20 23 23 436218 194 134 211 206 186 42 42 42 2 2 6
43617 21 21 16 20 20 16 20 20 18 22 22 23 27 26 33 36 34 437 2 2 6 2 2 6 2 2 6 2 2 6
43748 49 45 71 71 57 82 81 62 43 44 41 8 9 9 6 7 7 438 50 50 50 74 74 74 30 30 30 6 6 6
4386 7 7 6 7 7 6 7 7 5 6 5 4 5 5 3 4 4 439 0 0 0 0 0 0 0 0 0 0 0 0
4392 3 3 1 2 2 4 5 4 36 38 35 48 49 45 32 35 33 440 0 0 0 0 0 0 0 0 0 0 0 0
44021 25 23 16 19 19 13 17 17 12 15 15 12 15 15 13 16 16 441 0 0 0 0 0 0 0 0 0 0 0 0
44114 18 18 14 18 18 16 18 16 36 38 35 61 61 53 82 81 62 442 0 0 0 0 0 0 0 0 0 0 0 0
44296 95 69 96 95 69 96 95 69 96 95 69 79 78 62 19 20 18 443 0 0 0 0 0 0 0 0 0 0 0 0
44310 12 12 10 12 12 4 5 5 0 0 0 0 0 0 0 0 0 444 0 0 0 0 0 0 0 0 0 0 0 0
4440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 445 0 0 0 0 0 0 0 0 0 0 0 0
4450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 0 0 0 0 0 0 0 0 0 0 0 0
4460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 447 0 0 0 0 0 0 0 0 0 0 0 0
4470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 0 0 0 0 0 0 0 0 0 0 0 0
4480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 449 0 0 0 0 0 0 0 0 0 0 0 0
4490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 450 0 0 0 0 0 0 0 0 0 0 0 0
4500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 451 0 0 0 0 0 0 0 0 0 10 10 10
4510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 452 34 34 34 86 86 86 14 14 14 2 2 6
4520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 453121 87 25 192 133 9 219 162 10 239 182 13
4530 0 0 454236 186 11 232 195 16 241 208 19 244 214 54
4540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 455246 218 60 246 218 38 246 215 20 241 208 19
4550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 456241 208 19 226 184 13 121 87 25 2 2 6
4560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 457 2 2 6 2 2 6 2 2 6 2 2 6
4570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458 50 50 50 82 82 82 34 34 34 10 10 10
4580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 0 0 0 0 0 0 0 0 0 0 0
4590 0 0 0 0 0 0 0 0 13 13 13 46 47 45 43 45 43 460 0 0 0 0 0 0 0 0 0 0 0 0
46040 43 41 35 37 36 30 32 31 23 27 26 20 24 24 18 22 22 461 0 0 0 0 0 0 0 0 0 0 0 0
46117 21 21 16 20 20 17 21 21 20 23 23 27 30 29 40 41 39 462 0 0 0 0 0 0 0 0 0 0 0 0
46261 61 53 53 55 47 16 17 16 9 11 11 10 12 12 10 12 12 463 0 0 0 0 0 0 0 0 0 0 0 0
46310 12 12 10 12 12 10 12 12 9 11 11 8 10 10 8 9 9 464 0 0 0 0 0 0 0 0 0 0 0 0
4646 8 8 5 6 5 4 5 5 2 3 3 19 20 18 38 39 37 465 0 0 0 0 0 0 0 0 0 0 0 0
46526 28 27 17 21 21 14 17 17 13 16 16 12 15 15 12 15 15 466 0 0 0 0 0 0 0 0 0 0 0 0
46613 17 17 14 18 18 12 15 15 13 12 7 30 31 28 46 47 43 467 0 0 0 0 0 0 0 0 0 0 0 0
46753 55 47 66 65 55 66 65 55 53 55 47 36 38 35 10 12 12 468 0 0 0 0 0 0 0 0 0 0 0 0
46810 12 12 10 12 12 2 3 3 0 0 0 0 0 0 0 0 0 469 0 0 0 0 0 0 0 0 0 0 0 0
4690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 470 0 0 0 0 0 0 0 0 0 0 0 0
4700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 471 0 0 0 0 0 0 0 0 0 10 10 10
4710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 472 34 34 34 82 82 82 30 30 30 61 42 6
4720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 473180 123 7 206 145 10 230 174 11 239 182 13
4730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 474234 190 10 238 202 15 241 208 19 246 218 74
4740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 475246 218 38 246 215 20 246 215 20 246 215 20
4750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 476226 184 13 215 174 15 184 144 12 6 6 6
4760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 477 2 2 6 2 2 6 2 2 6 2 2 6
4770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 478 26 26 26 94 94 94 42 42 42 14 14 14
4780 0 0 479 0 0 0 0 0 0 0 0 0 0 0 0
4790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480 0 0 0 0 0 0 0 0 0 0 0 0
4800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 481 0 0 0 0 0 0 0 0 0 0 0 0
4810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 482 0 0 0 0 0 0 0 0 0 0 0 0
4820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 483 0 0 0 0 0 0 0 0 0 0 0 0
4830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 484 0 0 0 0 0 0 0 0 0 0 0 0
4840 0 0 0 0 0 0 0 0 1 1 1 33 37 35 35 37 36 485 0 0 0 0 0 0 0 0 0 0 0 0
48532 35 33 28 31 30 23 27 26 20 24 24 18 22 22 17 21 21 486 0 0 0 0 0 0 0 0 0 0 0 0
48616 20 20 16 20 20 17 21 21 21 25 23 31 33 31 44 46 43 487 0 0 0 0 0 0 0 0 0 0 0 0
48731 33 31 11 13 13 12 14 14 12 15 15 13 16 16 14 17 17 488 0 0 0 0 0 0 0 0 0 0 0 0
48814 17 17 14 17 17 14 17 17 13 16 16 12 15 15 12 14 14 489 0 0 0 0 0 0 0 0 0 0 0 0
48911 13 13 9 11 11 8 10 10 6 8 8 4 5 5 17 18 17 490 0 0 0 0 0 0 0 0 0 0 0 0
49030 33 30 20 23 22 15 18 18 13 16 16 12 15 15 12 14 14 491 0 0 0 0 0 0 0 0 0 10 10 10
49113 16 16 14 17 17 14 18 18 11 12 11 7 7 5 16 17 12 492 30 30 30 78 78 78 50 50 50 104 69 6
49221 22 20 30 31 28 25 27 25 21 22 20 14 14 13 10 12 12 493192 133 9 216 158 10 236 178 12 236 186 11
49310 12 12 9 11 11 0 0 0 0 0 0 0 0 0 0 0 0 494232 195 16 241 208 19 244 214 54 245 215 43
4940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 495246 215 20 246 215 20 241 208 19 198 155 10
4950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 496200 144 11 216 158 10 156 118 10 2 2 6
4960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 497 2 2 6 2 2 6 2 2 6 2 2 6
4970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 498 6 6 6 90 90 90 54 54 54 18 18 18
4980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 499 6 6 6 0 0 0 0 0 0 0 0 0
4990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0
5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 501 0 0 0 0 0 0 0 0 0 0 0 0
5010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 502 0 0 0 0 0 0 0 0 0 0 0 0
5020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 503 0 0 0 0 0 0 0 0 0 0 0 0
5030 0 0 504 0 0 0 0 0 0 0 0 0 0 0 0
5040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 505 0 0 0 0 0 0 0 0 0 0 0 0
5050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 506 0 0 0 0 0 0 0 0 0 0 0 0
5060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 507 0 0 0 0 0 0 0 0 0 0 0 0
5070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 508 0 0 0 0 0 0 0 0 0 0 0 0
5080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 509 0 0 0 0 0 0 0 0 0 0 0 0
5090 0 0 0 0 0 0 0 0 0 0 0 18 22 22 27 30 29 510 0 0 0 0 0 0 0 0 0 0 0 0
51027 29 28 40 41 39 53 55 47 53 55 47 53 55 47 46 47 43 511 0 0 0 0 0 0 0 0 0 10 10 10
51125 27 25 16 20 20 17 21 21 23 25 24 31 33 31 20 20 20 512 30 30 30 78 78 78 46 46 46 22 22 22
51212 15 15 14 17 17 15 19 19 16 20 20 17 21 21 18 22 22 513137 92 6 210 162 10 239 182 13 238 190 10
51318 22 22 18 22 22 18 22 22 17 21 21 17 21 21 16 19 19 514238 202 15 241 208 19 246 215 20 246 215 20
51415 18 18 13 16 16 12 15 15 10 12 12 8 10 10 6 8 8 515241 208 19 203 166 17 185 133 11 210 150 10
51521 22 21 22 24 23 15 19 19 13 17 17 13 16 16 12 15 15 516216 158 10 210 150 10 102 78 10 2 2 6
51612 15 15 13 17 17 14 18 18 14 18 18 13 15 14 10 9 6 517 6 6 6 54 54 54 14 14 14 2 2 6
5177 7 5 7 7 5 7 7 5 9 11 11 10 12 12 10 12 12 518 2 2 6 62 62 62 74 74 74 30 30 30
51810 12 12 6 7 7 0 0 0 0 0 0 0 0 0 0 0 0 519 10 10 10 0 0 0 0 0 0 0 0 0
5190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 520 0 0 0 0 0 0 0 0 0 0 0 0
5200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 521 0 0 0 0 0 0 0 0 0 0 0 0
5210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 522 0 0 0 0 0 0 0 0 0 0 0 0
5220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 523 0 0 0 0 0 0 0 0 0 0 0 0
5230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 524 0 0 0 0 0 0 0 0 0 0 0 0
5240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0
5250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 526 0 0 0 0 0 0 0 0 0 0 0 0
5260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 527 0 0 0 0 0 0 0 0 0 0 0 0
5270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528 0 0 0 0 0 0 0 0 0 0 0 0
5280 0 0 529 0 0 0 0 0 0 0 0 0 0 0 0
5290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 530 0 0 0 0 0 0 0 0 0 0 0 0
5300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 0 0 0 0 0 0 0 0 0 10 10 10
5310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 532 34 34 34 78 78 78 50 50 50 6 6 6
5320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533 94 70 30 139 102 15 190 146 13 226 184 13
5330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 534232 200 30 232 195 16 215 174 15 190 146 13
5340 0 0 0 0 0 0 0 0 0 0 0 16 17 12 82 81 62 535168 122 10 192 133 9 210 150 10 213 154 11
535118 116 76 118 116 76 161 156 96 161 156 96 161 156 96 118 116 76 536202 150 34 182 157 106 101 98 89 2 2 6
536118 116 76 96 95 69 53 55 47 22 24 23 14 17 17 13 16 16 537 2 2 6 78 78 78 116 116 116 58 58 58
53715 19 19 17 21 21 18 22 22 20 24 24 20 24 24 23 27 26 538 2 2 6 22 22 22 90 90 90 46 46 46
53823 27 26 23 27 26 23 27 26 23 27 26 23 27 26 20 24 24 539 18 18 18 6 6 6 0 0 0 0 0 0
53920 23 23 17 21 21 16 19 19 14 17 17 12 15 15 10 12 12 540 0 0 0 0 0 0 0 0 0 0 0 0
5409 11 11 20 23 22 16 19 19 14 17 17 13 16 16 12 15 15 541 0 0 0 0 0 0 0 0 0 0 0 0
54111 14 14 13 16 16 14 17 17 14 18 18 14 17 17 12 15 15 542 0 0 0 0 0 0 0 0 0 0 0 0
54210 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 543 0 0 0 0 0 0 0 0 0 0 0 0
5439 11 11 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 544 0 0 0 0 0 0 0 0 0 0 0 0
5440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 545 0 0 0 0 0 0 0 0 0 0 0 0
5450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 546 0 0 0 0 0 0 0 0 0 0 0 0
5460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 547 0 0 0 0 0 0 0 0 0 0 0 0
5470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 548 0 0 0 0 0 0 0 0 0 0 0 0
5480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 549 0 0 0 0 0 0 0 0 0 0 0 0
5490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0
5500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 551 0 0 0 0 0 0 0 0 0 10 10 10
5510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 552 38 38 38 86 86 86 50 50 50 6 6 6
5520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 553128 128 128 174 154 114 156 107 11 168 122 10
5530 0 0 554198 155 10 184 144 12 197 138 11 200 144 11
5540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555206 145 10 206 145 10 197 138 11 188 164 115
5550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556195 195 195 198 198 198 174 174 174 14 14 14
5560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 557 2 2 6 22 22 22 116 116 116 116 116 116
5570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 558 22 22 22 2 2 6 74 74 74 70 70 70
5580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 30 30 30 10 10 10 0 0 0 0 0 0
5590 0 0 0 0 0 0 0 0 0 0 0 53 55 47 161 156 96 560 0 0 0 0 0 0 0 0 0 0 0 0
560161 156 96 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 561 0 0 0 0 0 0 0 0 0 0 0 0
561230 229 82 161 156 96 118 116 76 96 95 69 21 22 20 16 19 19 562 0 0 0 0 0 0 0 0 0 0 0 0
56218 22 22 20 24 24 23 27 26 23 27 26 26 28 27 27 30 29 563 0 0 0 0 0 0 0 0 0 0 0 0
56327 30 29 18 22 22 12 14 14 8 10 10 9 11 11 17 21 21 564 0 0 0 0 0 0 0 0 0 0 0 0
56423 27 26 23 27 26 20 24 24 18 22 22 16 20 20 14 17 17 565 0 0 0 0 0 0 0 0 0 0 0 0
56512 14 14 14 17 17 16 20 20 14 17 17 13 17 17 13 16 16 566 0 0 0 0 0 0 0 0 0 0 0 0
56612 15 15 12 15 15 13 17 17 14 18 18 14 17 17 13 16 16 567 0 0 0 0 0 0 0 0 0 0 0 0
56711 13 13 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 568 0 0 0 0 0 0 0 0 0 0 0 0
5684 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 569 0 0 0 0 0 0 0 0 0 0 0 0
5690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 570 0 0 0 0 0 0 0 0 0 0 0 0
5700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 0 0 0 0 0 6 6 6 18 18 18
5710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 572 50 50 50 101 101 101 26 26 26 10 10 10
5720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 573138 138 138 190 190 190 174 154 114 156 107 11
5730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574197 138 11 200 144 11 197 138 11 192 133 9
5740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575180 123 7 190 142 34 190 178 144 187 187 187
5750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576202 202 202 221 221 221 214 214 214 66 66 66
5760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 577 2 2 6 2 2 6 50 50 50 62 62 62
5770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 578 6 6 6 2 2 6 10 10 10 90 90 90
5780 0 0 579 50 50 50 18 18 18 6 6 6 0 0 0
5790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 580 0 0 0 0 0 0 0 0 0 0 0 0
5800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 581 0 0 0 0 0 0 0 0 0 0 0 0
5810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 0 0 0 0 0 0 0 0
5820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 583 0 0 0 0 0 0 0 0 0 0 0 0
5830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 584 0 0 0 0 0 0 0 0 0 0 0 0
5840 0 0 0 0 0 0 0 0 13 12 7 118 116 76 230 229 82 585 0 0 0 0 0 0 0 0 0 0 0 0
585230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 586 0 0 0 0 0 0 0 0 0 0 0 0
586230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 30 31 28 587 0 0 0 0 0 0 0 0 0 0 0 0
58720 24 24 23 27 26 27 30 29 28 31 30 30 32 31 23 27 26 588 0 0 0 0 0 0 0 0 0 0 0 0
58816 19 19 17 21 21 12 15 15 9 11 11 10 12 12 9 11 11 589 0 0 0 0 0 0 0 0 0 0 0 0
58920 24 24 28 31 30 26 28 27 23 27 26 20 24 24 17 21 21 590 0 0 0 0 0 0 0 0 0 0 0 0
59015 19 19 13 16 16 16 19 19 14 18 18 14 17 17 13 16 16 591 0 0 0 0 0 0 10 10 10 34 34 34
59112 15 15 11 14 14 13 16 16 14 17 17 14 18 18 14 17 17 592 74 74 74 74 74 74 2 2 6 6 6 6
59212 15 15 10 12 12 10 12 12 10 12 12 10 12 12 8 9 9 593144 144 144 198 198 198 190 190 190 178 166 146
5930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 594154 121 60 156 107 11 156 107 11 168 124 44
5940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 595174 154 114 187 187 187 190 190 190 210 210 210
5950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 596246 246 246 253 253 253 253 253 253 182 182 182
5960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 597 6 6 6 2 2 6 2 2 6 2 2 6
5970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 2 2 6 2 2 6 2 2 6 62 62 62
5980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 599 74 74 74 34 34 34 14 14 14 0 0 0
5990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0
6000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 601 0 0 0 0 0 0 0 0 0 0 0 0
6010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 0 0 0 0 0
6020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 603 0 0 0 0 0 0 0 0 0 0 0 0
6030 0 0 604 0 0 0 0 0 0 0 0 0 0 0 0
6040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 605 0 0 0 0 0 0 0 0 0 0 0 0
6050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0
6060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 0
6070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 608 0 0 0 0 0 0 0 0 0 0 0 0
6080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 609 0 0 0 0 0 0 0 0 0 0 0 0
6090 0 0 0 0 0 0 0 0 82 81 62 161 156 96 230 229 82 610 0 0 0 0 0 0 0 0 0 0 0 0
610230 229 82 233 233 100 230 229 82 230 229 82 230 229 82 230 229 82 611 0 0 0 10 10 10 22 22 22 54 54 54
611230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 612 94 94 94 18 18 18 2 2 6 46 46 46
61227 29 28 27 30 29 30 32 31 30 32 31 23 27 26 20 24 24 613234 234 234 221 221 221 190 190 190 190 190 190
61326 28 27 17 21 21 6 7 7 72 73 67 145 141 105 15 15 15 614190 190 190 187 187 187 187 187 187 190 190 190
61414 17 17 33 37 35 30 32 31 28 31 30 26 28 27 23 27 26 615190 190 190 195 195 195 214 214 214 242 242 242
61520 23 23 16 20 20 15 19 19 14 18 18 14 17 17 13 16 16 616253 253 253 253 253 253 253 253 253 253 253 253
61612 15 15 11 14 14 12 15 15 13 17 17 14 18 18 14 17 17 617 82 82 82 2 2 6 2 2 6 2 2 6
61713 16 16 11 13 13 10 12 12 10 12 12 9 11 11 1 1 1 618 2 2 6 2 2 6 2 2 6 14 14 14
6180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 619 86 86 86 54 54 54 22 22 22 6 6 6
6190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 620 0 0 0 0 0 0 0 0 0 0 0 0
6200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 621 0 0 0 0 0 0 0 0 0 0 0 0
6210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 622 0 0 0 0 0 0 0 0 0 0 0 0
6220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 623 0 0 0 0 0 0 0 0 0 0 0 0
6230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 624 0 0 0 0 0 0 0 0 0 0 0 0
6240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 0 0 0 0 0 0 0 0 0 0 0 0
6250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 626 0 0 0 0 0 0 0 0 0 0 0 0
6260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627 0 0 0 0 0 0 0 0 0 0 0 0
6270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 628 0 0 0 0 0 0 0 0 0 0 0 0
6280 0 0 629 0 0 0 0 0 0 0 0 0 0 0 0
6290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 630 0 0 0 0 0 0 0 0 0 0 0 0
6300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 631 6 6 6 18 18 18 46 46 46 90 90 90
6310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 632 46 46 46 18 18 18 6 6 6 182 182 182
6320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 633253 253 253 246 246 246 206 206 206 190 190 190
6330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 634190 190 190 190 190 190 190 190 190 190 190 190
6340 0 0 0 0 0 16 17 12 161 156 96 230 229 82 230 229 82 635206 206 206 231 231 231 250 250 250 253 253 253
635243 242 120 235 234 117 230 229 82 230 229 82 230 229 82 230 229 82 636253 253 253 253 253 253 253 253 253 253 253 253
636230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 637202 202 202 14 14 14 2 2 6 2 2 6
63782 81 62 28 31 30 28 31 30 27 30 29 28 31 30 30 32 31 638 2 2 6 2 2 6 2 2 6 2 2 6
63833 37 35 13 16 16 3 3 3 105 104 92 210 208 158 12 14 14 639 42 42 42 86 86 86 42 42 42 18 18 18
63917 21 21 33 37 35 33 37 35 32 35 33 30 32 31 27 30 29 640 6 6 6 0 0 0 0 0 0 0 0 0
64023 27 26 20 23 23 17 20 20 15 18 18 14 18 18 13 17 17 641 0 0 0 0 0 0 0 0 0 0 0 0
64113 16 16 12 15 15 11 14 14 13 16 16 14 17 17 14 18 18 642 0 0 0 0 0 0 0 0 0 0 0 0
64213 17 17 12 15 15 10 12 12 10 12 12 3 4 4 0 0 0 643 0 0 0 0 0 0 0 0 0 0 0 0
6430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 644 0 0 0 0 0 0 0 0 0 0 0 0
6440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 645 0 0 0 0 0 0 0 0 0 0 0 0
6450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 646 0 0 0 0 0 0 0 0 0 0 0 0
6460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 647 0 0 0 0 0 0 0 0 0 0 0 0
6470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 648 0 0 0 0 0 0 0 0 0 0 0 0
6480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 649 0 0 0 0 0 0 0 0 0 0 0 0
6490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 650 0 0 0 0 0 0 0 0 0 6 6 6
6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 651 14 14 14 38 38 38 74 74 74 66 66 66
6510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 652 2 2 6 6 6 6 90 90 90 250 250 250
6520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 653253 253 253 253 253 253 238 238 238 198 198 198
6530 0 0 654190 190 190 190 190 190 195 195 195 221 221 221
6540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 655246 246 246 253 253 253 253 253 253 253 253 253
6550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 656253 253 253 253 253 253 253 253 253 253 253 253
6560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 657253 253 253 82 82 82 2 2 6 2 2 6
6570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 658 2 2 6 2 2 6 2 2 6 2 2 6
6580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 659 2 2 6 78 78 78 70 70 70 34 34 34
6590 0 0 0 0 0 96 95 69 230 229 82 230 229 82 244 244 132 660 14 14 14 6 6 6 0 0 0 0 0 0
660241 241 143 243 242 120 230 229 82 230 229 82 230 229 82 230 229 82 661 0 0 0 0 0 0 0 0 0 0 0 0
661230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 662 0 0 0 0 0 0 0 0 0 0 0 0
662161 156 96 46 47 43 32 35 33 33 37 35 33 37 35 33 37 35 663 0 0 0 0 0 0 0 0 0 0 0 0
66340 43 41 23 27 26 1 1 1 2 2 2 24 26 24 14 17 17 664 0 0 0 0 0 0 0 0 0 0 0 0
66423 27 26 33 37 35 33 37 35 33 37 35 33 37 35 30 32 31 665 0 0 0 0 0 0 0 0 0 0 0 0
66527 30 29 23 27 26 20 23 23 15 18 18 14 18 18 14 17 17 666 0 0 0 0 0 0 0 0 0 0 0 0
66613 16 16 12 15 15 11 14 14 12 15 15 13 17 17 14 17 17 667 0 0 0 0 0 0 0 0 0 0 0 0
66714 17 17 13 16 16 11 13 13 6 8 8 0 0 0 0 0 0 668 0 0 0 0 0 0 0 0 0 0 0 0
6680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 669 0 0 0 0 0 0 0 0 0 0 0 0
6690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 670 0 0 0 0 0 0 0 0 0 14 14 14
6700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 671 34 34 34 66 66 66 78 78 78 6 6 6
6710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 672 2 2 6 18 18 18 218 218 218 253 253 253
6720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 673253 253 253 253 253 253 253 253 253 246 246 246
6730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 674226 226 226 231 231 231 246 246 246 253 253 253
6740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 675253 253 253 253 253 253 253 253 253 253 253 253
6750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 676253 253 253 253 253 253 253 253 253 253 253 253
6760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 677253 253 253 178 178 178 2 2 6 2 2 6
6770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 678 2 2 6 2 2 6 2 2 6 2 2 6
6780 0 0 679 2 2 6 18 18 18 90 90 90 62 62 62
6790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 680 30 30 30 10 10 10 0 0 0 0 0 0
6800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 681 0 0 0 0 0 0 0 0 0 0 0 0
6810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 682 0 0 0 0 0 0 0 0 0 0 0 0
6820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 683 0 0 0 0 0 0 0 0 0 0 0 0
6830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 684 0 0 0 0 0 0 0 0 0 0 0 0
6840 0 0 16 17 12 161 156 96 230 229 82 235 234 117 239 239 170 685 0 0 0 0 0 0 0 0 0 0 0 0
685239 239 170 236 236 101 230 229 82 230 229 82 230 229 82 230 229 82 686 0 0 0 0 0 0 0 0 0 0 0 0
686230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 687 0 0 0 0 0 0 0 0 0 0 0 0
687230 229 82 118 116 76 33 37 35 33 37 35 37 39 37 37 39 37 688 0 0 0 0 0 0 0 0 0 0 0 0
68843 45 43 49 51 48 20 24 24 8 10 10 17 20 20 35 37 36 689 0 0 0 0 0 0 0 0 0 0 0 0
68933 37 35 40 43 41 37 39 37 35 37 36 33 37 35 33 37 35 690 0 0 0 0 0 0 10 10 10 26 26 26
69030 32 31 27 30 29 23 27 26 15 19 19 14 18 18 14 17 17 691 58 58 58 90 90 90 18 18 18 2 2 6
69113 17 17 13 16 16 12 15 15 11 14 14 13 16 16 14 17 17 692 2 2 6 110 110 110 253 253 253 253 253 253
69214 17 17 13 17 17 11 14 14 4 5 5 0 0 0 0 0 0 693253 253 253 253 253 253 253 253 253 253 253 253
6930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 694250 250 250 253 253 253 253 253 253 253 253 253
6940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 695253 253 253 253 253 253 253 253 253 253 253 253
6950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 696253 253 253 253 253 253 253 253 253 253 253 253
6960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697253 253 253 231 231 231 18 18 18 2 2 6
6970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 698 2 2 6 2 2 6 2 2 6 2 2 6
6980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 699 2 2 6 2 2 6 18 18 18 94 94 94
6990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 700 54 54 54 26 26 26 10 10 10 0 0 0
7000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 701 0 0 0 0 0 0 0 0 0 0 0 0
7010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 702 0 0 0 0 0 0 0 0 0 0 0 0
7020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 703 0 0 0 0 0 0 0 0 0 0 0 0
7030 0 0 704 0 0 0 0 0 0 0 0 0 0 0 0
7040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 705 0 0 0 0 0 0 0 0 0 0 0 0
7050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706 0 0 0 0 0 0 0 0 0 0 0 0
7060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 707 0 0 0 0 0 0 0 0 0 0 0 0
7070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 708 0 0 0 0 0 0 0 0 0 0 0 0
7080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 709 0 0 0 0 0 0 0 0 0 0 0 0
7090 0 0 96 95 69 230 229 82 230 229 82 239 239 170 251 251 187 710 0 0 0 6 6 6 22 22 22 50 50 50
710241 241 143 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 711 90 90 90 26 26 26 2 2 6 2 2 6
711230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 712 14 14 14 195 195 195 250 250 250 253 253 253
712230 229 82 161 156 96 36 38 35 33 37 35 33 37 35 33 37 35 713253 253 253 253 253 253 253 253 253 253 253 253
71337 39 37 47 48 46 55 57 54 55 57 54 49 51 48 43 45 43 714253 253 253 253 253 253 253 253 253 253 253 253
71443 45 43 43 45 43 40 43 41 40 43 41 37 39 37 33 37 35 715253 253 253 253 253 253 253 253 253 253 253 253
71533 37 35 28 31 30 26 28 27 16 20 20 15 18 18 14 18 18 716253 253 253 253 253 253 253 253 253 253 253 253
71614 17 17 13 16 16 12 15 15 11 14 14 12 15 15 13 17 17 717250 250 250 242 242 242 54 54 54 2 2 6
71714 17 17 14 17 17 8 10 10 5 7 7 0 0 0 0 0 0 718 2 2 6 2 2 6 2 2 6 2 2 6
7180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 719 2 2 6 2 2 6 2 2 6 38 38 38
7190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 720 86 86 86 50 50 50 22 22 22 6 6 6
7200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 721 0 0 0 0 0 0 0 0 0 0 0 0
7210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0
7220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 723 0 0 0 0 0 0 0 0 0 0 0 0
7230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 724 0 0 0 0 0 0 0 0 0 0 0 0
7240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 725 0 0 0 0 0 0 0 0 0 0 0 0
7250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 726 0 0 0 0 0 0 0 0 0 0 0 0
7260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 727 0 0 0 0 0 0 0 0 0 0 0 0
7270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 728 0 0 0 0 0 0 0 0 0 0 0 0
7280 0 0 729 0 0 0 0 0 0 0 0 0 0 0 0
7290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 730 6 6 6 14 14 14 38 38 38 82 82 82
7300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 731 34 34 34 2 2 6 2 2 6 2 2 6
7310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 732 42 42 42 195 195 195 246 246 246 253 253 253
7320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 733253 253 253 253 253 253 253 253 253 250 250 250
7330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 734242 242 242 242 242 242 250 250 250 253 253 253
73416 17 12 230 229 82 230 229 82 243 242 120 251 251 187 251 251 187 735253 253 253 253 253 253 253 253 253 253 253 253
735246 246 123 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 736253 253 253 250 250 250 246 246 246 238 238 238
736230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 737226 226 226 231 231 231 101 101 101 6 6 6
737230 229 82 230 229 82 66 65 55 30 32 31 32 35 33 33 37 35 738 2 2 6 2 2 6 2 2 6 2 2 6
73833 37 35 37 39 37 40 43 41 47 48 46 49 51 48 51 52 50 739 2 2 6 2 2 6 2 2 6 2 2 6
73955 57 54 55 57 54 51 52 50 47 48 46 43 45 43 39 40 39 740 38 38 38 82 82 82 42 42 42 14 14 14
74033 37 35 30 32 31 26 28 27 17 21 21 15 19 19 14 18 18 741 6 6 6 0 0 0 0 0 0 0 0 0
74114 17 17 13 16 16 12 15 15 12 14 14 11 14 14 13 16 16 742 0 0 0 0 0 0 0 0 0 0 0 0
74214 17 17 12 15 15 7 9 9 6 8 8 1 1 1 0 0 0 743 0 0 0 0 0 0 0 0 0 0 0 0
7430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 744 0 0 0 0 0 0 0 0 0 0 0 0
7440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 745 0 0 0 0 0 0 0 0 0 0 0 0
7450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 746 0 0 0 0 0 0 0 0 0 0 0 0
7460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 0 0 0 0 0 0 0 0 0 0 0 0
7470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 748 0 0 0 0 0 0 0 0 0 0 0 0
7480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 749 0 0 0 0 0 0 0 0 0 0 0 0
7490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 10 10 10 26 26 26 62 62 62 66 66 66
7500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 751 2 2 6 2 2 6 2 2 6 6 6 6
7510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 752 70 70 70 170 170 170 206 206 206 234 234 234
7520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 753246 246 246 250 250 250 250 250 250 238 238 238
7530 0 0 754226 226 226 231 231 231 238 238 238 250 250 250
7540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 755250 250 250 250 250 250 246 246 246 231 231 231
7550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 756214 214 214 206 206 206 202 202 202 202 202 202
7560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 757198 198 198 202 202 202 182 182 182 18 18 18
7570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 758 2 2 6 2 2 6 2 2 6 2 2 6
7580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 759 2 2 6 2 2 6 2 2 6 2 2 6
75996 95 69 230 229 82 230 229 82 239 239 170 251 251 187 239 239 170 760 2 2 6 62 62 62 66 66 66 30 30 30
760230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 761 10 10 10 0 0 0 0 0 0 0 0 0
761230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 762 0 0 0 0 0 0 0 0 0 0 0 0
762230 229 82 230 229 82 96 95 69 27 30 29 28 31 30 30 32 31 763 0 0 0 0 0 0 0 0 0 0 0 0
76333 37 35 40 43 41 46 47 45 55 57 54 63 64 60 72 73 67 764 0 0 0 0 0 0 0 0 0 0 0 0
76472 73 67 72 73 67 72 73 67 65 66 61 55 57 54 47 48 46 765 0 0 0 0 0 0 0 0 0 0 0 0
76539 40 39 32 35 33 27 30 29 17 21 21 15 19 19 15 18 18 766 0 0 0 0 0 0 0 0 0 0 0 0
76614 18 18 13 17 17 13 16 16 12 15 15 11 14 14 12 14 14 767 0 0 0 0 0 0 0 0 0 0 0 0
76713 16 16 9 11 11 7 9 9 9 11 11 66 65 55 115 113 82 768 0 0 0 0 0 0 0 0 0 0 0 0
76821 22 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 769 0 0 0 0 0 0 0 0 0 0 0 0
7690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 770 14 14 14 42 42 42 82 82 82 18 18 18
7700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 2 2 6 2 2 6 2 2 6 10 10 10
7710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 772 94 94 94 182 182 182 218 218 218 242 242 242
7720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773250 250 250 253 253 253 253 253 253 250 250 250
7730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 774234 234 234 253 253 253 253 253 253 253 253 253
7740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 775253 253 253 253 253 253 253 253 253 246 246 246
7750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 776238 238 238 226 226 226 210 210 210 202 202 202
7760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777195 195 195 195 195 195 210 210 210 158 158 158
7770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 778 6 6 6 14 14 14 50 50 50 14 14 14
7780 0 0 779 2 2 6 2 2 6 2 2 6 2 2 6
7790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 780 2 2 6 6 6 6 86 86 86 46 46 46
7800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 781 18 18 18 6 6 6 0 0 0 0 0 0
7810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 782 0 0 0 0 0 0 0 0 0 0 0 0
7820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 783 0 0 0 0 0 0 0 0 0 0 0 0
7830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 12 7 784 0 0 0 0 0 0 0 0 0 0 0 0
784230 229 82 230 229 82 236 236 101 251 251 187 251 251 187 246 246 123 785 0 0 0 0 0 0 0 0 0 0 0 0
785230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 786 0 0 0 0 0 0 0 0 0 0 0 0
786230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 787 0 0 0 0 0 0 0 0 0 0 0 0
787230 229 82 230 229 82 118 116 76 23 27 26 26 28 27 32 35 33 788 0 0 0 0 0 0 0 0 0 0 0 0
78851 52 50 90 89 73 110 109 94 145 141 105 168 163 120 177 172 135 789 0 0 0 0 0 0 0 0 0 6 6 6
789177 172 135 188 184 146 188 184 146 181 176 137 194 191 148 188 184 146 790 22 22 22 54 54 54 70 70 70 2 2 6
790184 179 149 188 184 146 188 184 146 156 151 111 177 172 135 181 176 137 791 2 2 6 10 10 10 2 2 6 22 22 22
791177 172 135 168 163 120 168 163 120 158 153 112 156 151 111 158 153 112 792166 166 166 231 231 231 250 250 250 253 253 253
792156 151 111 158 153 112 177 172 135 188 184 146 188 184 146 194 189 146 793253 253 253 253 253 253 253 253 253 250 250 250
79336 38 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 794242 242 242 253 253 253 253 253 253 253 253 253
7940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 795253 253 253 253 253 253 253 253 253 253 253 253
7950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 796253 253 253 253 253 253 253 253 253 246 246 246
7960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 797231 231 231 206 206 206 198 198 198 226 226 226
7970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 94 94 94 2 2 6 6 6 6 38 38 38
7980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799 30 30 30 2 2 6 2 2 6 2 2 6
7990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 2 2 6 2 2 6 62 62 62 66 66 66
8000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 801 26 26 26 10 10 10 0 0 0 0 0 0
8010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 802 0 0 0 0 0 0 0 0 0 0 0 0
8020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 803 0 0 0 0 0 0 0 0 0 0 0 0
8030 0 0 804 0 0 0 0 0 0 0 0 0 0 0 0
8040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 805 0 0 0 0 0 0 0 0 0 0 0 0
8050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 806 0 0 0 0 0 0 0 0 0 0 0 0
8060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 807 0 0 0 0 0 0 0 0 0 0 0 0
8070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 808 0 0 0 0 0 0 0 0 0 0 0 0
8080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 81 62 809 0 0 0 0 0 0 0 0 0 10 10 10
809230 229 82 230 229 82 244 244 132 251 251 187 244 244 132 230 229 82 810 30 30 30 74 74 74 50 50 50 2 2 6
810230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 811 26 26 26 26 26 26 2 2 6 106 106 106
811230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 82 81 62 812238 238 238 253 253 253 253 253 253 253 253 253
81296 95 69 230 229 82 181 178 103 110 109 94 156 151 111 188 184 146 813253 253 253 253 253 253 253 253 253 253 253 253
813188 184 146 197 193 154 188 184 146 184 181 136 188 184 146 168 163 120 814253 253 253 253 253 253 253 253 253 253 253 253
814168 163 120 178 174 128 156 151 111 158 153 112 174 170 121 156 151 111 815253 253 253 253 253 253 253 253 253 253 253 253
815156 151 111 158 153 112 156 151 111 168 163 120 178 174 128 181 176 137 816253 253 253 253 253 253 253 253 253 253 253 253
816176 171 126 178 174 128 184 181 136 176 171 126 178 174 128 184 181 136 817253 253 253 246 246 246 218 218 218 202 202 202
817176 171 126 178 174 128 184 181 136 164 159 111 155 149 109 96 95 69 818210 210 210 14 14 14 2 2 6 2 2 6
8181 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 819 30 30 30 22 22 22 2 2 6 2 2 6
8190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 820 2 2 6 2 2 6 18 18 18 86 86 86
8200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 821 42 42 42 14 14 14 0 0 0 0 0 0
8210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 822 0 0 0 0 0 0 0 0 0 0 0 0
8220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 823 0 0 0 0 0 0 0 0 0 0 0 0
8230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 824 0 0 0 0 0 0 0 0 0 0 0 0
8240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 825 0 0 0 0 0 0 0 0 0 0 0 0
8250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 826 0 0 0 0 0 0 0 0 0 0 0 0
8260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 827 0 0 0 0 0 0 0 0 0 0 0 0
8270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 828 0 0 0 0 0 0 0 0 0 0 0 0
8280 0 0 829 0 0 0 0 0 0 0 0 0 14 14 14
8290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830 42 42 42 90 90 90 22 22 22 2 2 6
8300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 831 42 42 42 2 2 6 18 18 18 218 218 218
8310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 832253 253 253 253 253 253 253 253 253 253 253 253
8320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833253 253 253 253 253 253 253 253 253 253 253 253
8330 0 0 0 0 0 0 0 0 0 0 0 2 2 1 161 156 96 834253 253 253 253 253 253 253 253 253 253 253 253
834230 229 82 230 229 82 244 244 132 244 244 132 236 236 101 230 229 82 835253 253 253 253 253 253 253 253 253 253 253 253
835230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 836253 253 253 253 253 253 253 253 253 253 253 253
836230 229 82 230 229 82 230 229 82 230 229 82 46 47 43 82 81 62 837253 253 253 253 253 253 250 250 250 221 221 221
837158 153 112 197 193 154 194 189 146 184 181 136 188 184 146 168 163 120 838218 218 218 101 101 101 2 2 6 14 14 14
838156 151 111 137 133 100 131 127 93 137 133 100 137 133 100 158 153 112 839 18 18 18 38 38 38 10 10 10 2 2 6
839121 119 87 137 133 100 156 151 111 145 141 105 99 98 80 84 83 72 840 2 2 6 2 2 6 2 2 6 78 78 78
84063 64 60 52 53 49 40 43 41 33 36 34 36 38 35 36 38 35 841 58 58 58 22 22 22 6 6 6 0 0 0
84138 39 37 43 44 41 43 44 41 46 47 43 48 49 45 48 49 45 842 0 0 0 0 0 0 0 0 0 0 0 0
84246 47 43 36 38 35 30 31 28 19 20 18 6 7 7 0 0 0 843 0 0 0 0 0 0 0 0 0 0 0 0
8430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 844 0 0 0 0 0 0 0 0 0 0 0 0
8440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 845 0 0 0 0 0 0 0 0 0 0 0 0
8450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 846 0 0 0 0 0 0 0 0 0 0 0 0
8460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 847 0 0 0 0 0 0 0 0 0 0 0 0
8470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 848 0 0 0 0 0 0 0 0 0 0 0 0
8480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 849 0 0 0 0 0 0 6 6 6 18 18 18
8490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 850 54 54 54 82 82 82 2 2 6 26 26 26
8500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 851 22 22 22 2 2 6 123 123 123 253 253 253
8510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 852253 253 253 253 253 253 253 253 253 253 253 253
8520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 853253 253 253 253 253 253 253 253 253 253 253 253
8530 0 0 854253 253 253 253 253 253 253 253 253 253 253 253
8540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 855253 253 253 253 253 253 253 253 253 253 253 253
8550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 856253 253 253 253 253 253 253 253 253 253 253 253
8560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 857253 253 253 253 253 253 253 253 253 250 250 250
8570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 858238 238 238 198 198 198 6 6 6 38 38 38
8580 0 0 0 0 0 0 0 0 0 0 0 36 38 35 230 229 82 859 58 58 58 26 26 26 38 38 38 2 2 6
859230 229 82 230 229 82 246 246 123 236 236 101 230 229 82 230 229 82 860 2 2 6 2 2 6 2 2 6 46 46 46
860230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 861 78 78 78 30 30 30 10 10 10 0 0 0
861230 229 82 230 229 82 230 229 82 230 229 82 53 55 47 121 119 87 862 0 0 0 0 0 0 0 0 0 0 0 0
862176 171 126 171 165 117 161 156 96 82 81 62 53 55 47 33 37 35 863 0 0 0 0 0 0 0 0 0 0 0 0
86339 40 39 63 64 60 99 98 80 121 119 87 137 133 100 177 172 135 864 0 0 0 0 0 0 0 0 0 0 0 0
864176 171 126 184 181 136 131 127 93 131 127 93 110 109 94 84 83 72 865 0 0 0 0 0 0 0 0 0 0 0 0
86551 52 50 39 40 39 27 29 28 18 22 22 16 19 19 15 19 19 866 0 0 0 0 0 0 0 0 0 0 0 0
86615 19 19 14 18 18 14 17 17 13 16 16 12 15 15 11 14 14 867 0 0 0 0 0 0 0 0 0 0 0 0
86710 13 13 9 12 12 9 11 11 8 9 9 7 9 9 1 1 1 868 0 0 0 0 0 0 0 0 0 0 0 0
8680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 869 0 0 0 0 0 0 10 10 10 30 30 30
8690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 870 74 74 74 58 58 58 2 2 6 42 42 42
8700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 871 2 2 6 22 22 22 231 231 231 253 253 253
8710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 872253 253 253 253 253 253 253 253 253 253 253 253
8720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 873253 253 253 253 253 253 253 253 253 250 250 250
8730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 874253 253 253 253 253 253 253 253 253 253 253 253
8740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 875253 253 253 253 253 253 253 253 253 253 253 253
8750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 876253 253 253 253 253 253 253 253 253 253 253 253
8760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 877253 253 253 253 253 253 253 253 253 253 253 253
8770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 878253 253 253 246 246 246 46 46 46 38 38 38
8780 0 0 879 42 42 42 14 14 14 38 38 38 14 14 14
8790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 880 2 2 6 2 2 6 2 2 6 6 6 6
8800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 881 86 86 86 46 46 46 14 14 14 0 0 0
8810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 882 0 0 0 0 0 0 0 0 0 0 0 0
8820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 883 0 0 0 0 0 0 0 0 0 0 0 0
8830 0 0 0 0 0 0 0 0 0 0 0 118 116 76 230 229 82 884 0 0 0 0 0 0 0 0 0 0 0 0
884230 229 82 230 229 82 236 236 101 230 229 82 230 229 82 230 229 82 885 0 0 0 0 0 0 0 0 0 0 0 0
885230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 886 0 0 0 0 0 0 0 0 0 0 0 0
886230 229 82 230 229 82 230 229 82 230 229 82 96 95 69 71 71 57 887 0 0 0 0 0 0 0 0 0 0 0 0
88736 38 35 118 116 76 118 116 76 12 15 15 15 18 18 20 24 24 888 0 0 0 0 0 0 0 0 0 0 0 0
88833 37 35 55 56 53 84 83 72 110 109 94 145 141 105 110 109 94 889 0 0 0 6 6 6 14 14 14 42 42 42
889168 163 120 121 119 87 156 151 111 131 127 93 87 86 72 61 63 57 890 90 90 90 18 18 18 18 18 18 26 26 26
89047 48 46 28 31 30 18 22 22 15 19 19 15 18 18 15 19 19 891 2 2 6 116 116 116 253 253 253 253 253 253
89115 19 19 14 18 18 14 17 17 13 17 17 13 16 16 12 15 15 892253 253 253 253 253 253 253 253 253 253 253 253
89211 13 13 10 12 12 9 11 11 8 10 10 7 9 9 3 3 3 893253 253 253 253 253 253 250 250 250 238 238 238
8930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 894253 253 253 253 253 253 253 253 253 253 253 253
8940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 895253 253 253 253 253 253 253 253 253 253 253 253
8950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 896253 253 253 253 253 253 253 253 253 253 253 253
8960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 897253 253 253 253 253 253 253 253 253 253 253 253
8970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 898253 253 253 253 253 253 94 94 94 6 6 6
8980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 899 2 2 6 2 2 6 10 10 10 34 34 34
8990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 900 2 2 6 2 2 6 2 2 6 2 2 6
9000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 901 74 74 74 58 58 58 22 22 22 6 6 6
9010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 902 0 0 0 0 0 0 0 0 0 0 0 0
9020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 903 0 0 0 0 0 0 0 0 0 0 0 0
9030 0 0 904 0 0 0 0 0 0 0 0 0 0 0 0
9040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 905 0 0 0 0 0 0 0 0 0 0 0 0
9050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 906 0 0 0 0 0 0 0 0 0 0 0 0
9060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 907 0 0 0 0 0 0 0 0 0 0 0 0
9070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 908 0 0 0 0 0 0 0 0 0 0 0 0
9080 0 0 0 0 0 0 0 0 1 1 0 230 229 82 230 229 82 909 0 0 0 10 10 10 26 26 26 66 66 66
909230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 910 82 82 82 2 2 6 38 38 38 6 6 6
910230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 911 14 14 14 210 210 210 253 253 253 253 253 253
911230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 912253 253 253 253 253 253 253 253 253 253 253 253
912161 156 96 230 229 82 118 116 76 11 14 14 14 17 17 18 22 22 913253 253 253 253 253 253 246 246 246 242 242 242
91327 30 29 40 43 41 60 60 56 84 83 72 105 104 92 110 109 94 914253 253 253 253 253 253 253 253 253 253 253 253
914110 109 94 110 109 94 99 98 80 90 89 73 68 70 65 47 48 46 915253 253 253 253 253 253 253 253 253 253 253 253
91532 34 33 23 25 24 20 23 23 17 21 21 15 19 19 14 17 17 916253 253 253 253 253 253 253 253 253 253 253 253
91615 19 19 15 18 18 14 18 18 13 17 17 13 16 16 12 15 15 917253 253 253 253 253 253 253 253 253 253 253 253
91711 14 14 10 12 12 9 11 11 8 10 10 7 9 9 4 5 5 918253 253 253 253 253 253 144 144 144 2 2 6
9180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 919 2 2 6 2 2 6 2 2 6 46 46 46
9190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 920 2 2 6 2 2 6 2 2 6 2 2 6
9200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 921 42 42 42 74 74 74 30 30 30 10 10 10
9210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 922 0 0 0 0 0 0 0 0 0 0 0 0
9220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 923 0 0 0 0 0 0 0 0 0 0 0 0
9230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 924 0 0 0 0 0 0 0 0 0 0 0 0
9240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 925 0 0 0 0 0 0 0 0 0 0 0 0
9250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 926 0 0 0 0 0 0 0 0 0 0 0 0
9260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 927 0 0 0 0 0 0 0 0 0 0 0 0
9270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 928 0 0 0 0 0 0 0 0 0 0 0 0
9280 0 0 929 6 6 6 14 14 14 42 42 42 90 90 90
9290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 930 26 26 26 6 6 6 42 42 42 2 2 6
9300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 931 74 74 74 250 250 250 253 253 253 253 253 253
9310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 932253 253 253 253 253 253 253 253 253 253 253 253
9320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 933253 253 253 253 253 253 242 242 242 242 242 242
9330 0 0 0 0 0 0 0 0 16 17 12 230 229 82 230 229 82 934253 253 253 253 253 253 253 253 253 253 253 253
934230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 935253 253 253 253 253 253 253 253 253 253 253 253
935230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 936253 253 253 253 253 253 253 253 253 253 253 253
936230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 937253 253 253 253 253 253 253 253 253 253 253 253
937230 229 82 161 156 96 118 116 76 11 13 13 13 16 16 15 19 19 938253 253 253 253 253 253 182 182 182 2 2 6
93820 24 24 30 32 31 40 43 41 51 52 50 63 64 60 72 73 67 939 2 2 6 2 2 6 2 2 6 46 46 46
93965 66 61 65 66 61 65 66 61 55 57 54 46 47 45 33 37 35 940 2 2 6 2 2 6 2 2 6 2 2 6
94027 29 28 20 24 24 17 21 21 16 20 20 16 20 20 15 19 19 941 10 10 10 86 86 86 38 38 38 10 10 10
94115 19 19 15 19 19 14 18 18 14 17 17 13 16 16 12 15 15 942 0 0 0 0 0 0 0 0 0 0 0 0
94211 14 14 10 13 13 9 12 12 8 10 10 7 9 9 6 7 7 943 0 0 0 0 0 0 0 0 0 0 0 0
9430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 944 0 0 0 0 0 0 0 0 0 0 0 0
9440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 945 0 0 0 0 0 0 0 0 0 0 0 0
9450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 946 0 0 0 0 0 0 0 0 0 0 0 0
9460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 947 0 0 0 0 0 0 0 0 0 0 0 0
9470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 948 0 0 0 0 0 0 0 0 0 0 0 0
9480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 949 10 10 10 26 26 26 66 66 66 82 82 82
9490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 950 2 2 6 22 22 22 18 18 18 2 2 6
9500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 951149 149 149 253 253 253 253 253 253 253 253 253
9510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 952253 253 253 253 253 253 253 253 253 253 253 253
9520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 953253 253 253 253 253 253 234 234 234 242 242 242
9530 0 0 954253 253 253 253 253 253 253 253 253 253 253 253
9540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 955253 253 253 253 253 253 253 253 253 253 253 253
9550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 956253 253 253 253 253 253 253 253 253 253 253 253
9560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 957253 253 253 253 253 253 253 253 253 253 253 253
9570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 958253 253 253 253 253 253 206 206 206 2 2 6
9580 0 0 0 0 0 0 0 0 53 55 47 230 229 82 230 229 82 959 2 2 6 2 2 6 2 2 6 38 38 38
959230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 960 2 2 6 2 2 6 2 2 6 2 2 6
960230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 961 6 6 6 86 86 86 46 46 46 14 14 14
961230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 962 0 0 0 0 0 0 0 0 0 0 0 0
962161 156 96 118 116 76 53 55 47 10 13 13 12 15 15 14 17 17 963 0 0 0 0 0 0 0 0 0 0 0 0
96317 20 20 20 24 24 27 29 28 32 34 33 37 39 37 40 43 41 964 0 0 0 0 0 0 0 0 0 0 0 0
96443 45 43 41 42 42 35 37 36 30 32 31 28 31 30 23 27 26 965 0 0 0 0 0 0 0 0 0 0 0 0
96520 23 23 17 21 21 16 20 20 16 20 20 16 20 20 16 19 19 966 0 0 0 0 0 0 0 0 0 0 0 0
96615 19 19 15 19 19 14 18 18 14 17 17 13 16 16 12 15 15 967 0 0 0 0 0 0 0 0 0 0 0 0
96711 14 14 10 13 13 9 12 12 9 11 11 8 10 10 10 12 12 968 0 0 0 0 0 0 0 0 0 6 6 6
9681 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 969 18 18 18 46 46 46 86 86 86 18 18 18
9690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 970 2 2 6 34 34 34 10 10 10 6 6 6
9700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 971210 210 210 253 253 253 253 253 253 253 253 253
9710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 972253 253 253 253 253 253 253 253 253 253 253 253
9720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 973253 253 253 253 253 253 234 234 234 242 242 242
9730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 974253 253 253 253 253 253 253 253 253 253 253 253
9740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 975253 253 253 253 253 253 253 253 253 253 253 253
9750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 976253 253 253 253 253 253 253 253 253 253 253 253
9760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 977253 253 253 253 253 253 253 253 253 253 253 253
9770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 978253 253 253 253 253 253 221 221 221 6 6 6
9780 0 0 979 2 2 6 2 2 6 6 6 6 30 30 30
9790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 980 2 2 6 2 2 6 2 2 6 2 2 6
9800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 981 2 2 6 82 82 82 54 54 54 18 18 18
9810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 982 6 6 6 0 0 0 0 0 0 0 0 0
9820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 983 0 0 0 0 0 0 0 0 0 0 0 0
9830 0 0 0 0 0 0 0 0 82 81 62 230 229 82 230 229 82 984 0 0 0 0 0 0 0 0 0 0 0 0
984230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 985 0 0 0 0 0 0 0 0 0 0 0 0
985230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 986 0 0 0 0 0 0 0 0 0 0 0 0
986230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 987 0 0 0 0 0 0 0 0 0 0 0 0
987118 116 76 82 81 62 13 14 12 10 13 13 12 15 15 13 17 17 988 0 0 0 0 0 0 0 0 0 10 10 10
98815 19 19 16 20 20 20 23 23 20 24 24 23 27 26 26 28 27 989 26 26 26 66 66 66 62 62 62 2 2 6
98926 28 27 26 28 27 23 27 26 18 22 22 20 23 23 17 21 21 990 2 2 6 38 38 38 10 10 10 26 26 26
99017 21 21 16 20 20 16 20 20 16 20 20 16 20 20 16 19 19 991238 238 238 253 253 253 253 253 253 253 253 253
99115 19 19 15 19 19 15 18 18 14 17 17 13 17 17 13 16 16 992253 253 253 253 253 253 253 253 253 253 253 253
99212 15 15 12 14 14 12 14 14 12 14 14 12 14 14 23 24 24 993253 253 253 253 253 253 231 231 231 238 238 238
9936 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 994253 253 253 253 253 253 253 253 253 253 253 253
9940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 995253 253 253 253 253 253 253 253 253 253 253 253
9950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 996253 253 253 253 253 253 253 253 253 253 253 253
9960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 997253 253 253 253 253 253 253 253 253 253 253 253
9970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 998253 253 253 253 253 253 231 231 231 6 6 6
9980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 999 2 2 6 2 2 6 10 10 10 30 30 30
9990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 2 2 6 2 2 6 2 2 6 2 2 6
10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1001 2 2 6 66 66 66 58 58 58 22 22 22
10010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1002 6 6 6 0 0 0 0 0 0 0 0 0
10020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1003 0 0 0 0 0 0 0 0 0 0 0 0
10030 0 0 1004 0 0 0 0 0 0 0 0 0 0 0 0
10040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1005 0 0 0 0 0 0 0 0 0 0 0 0
10050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1006 0 0 0 0 0 0 0 0 0 0 0 0
10060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1007 0 0 0 0 0 0 0 0 0 0 0 0
10070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1008 0 0 0 0 0 0 0 0 0 10 10 10
10080 0 0 0 0 0 0 0 0 118 116 76 230 229 82 230 229 82 1009 38 38 38 78 78 78 6 6 6 2 2 6
1009230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1010 2 2 6 46 46 46 14 14 14 42 42 42
1010230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1011246 246 246 253 253 253 253 253 253 253 253 253
1011230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 118 116 76 1012253 253 253 253 253 253 253 253 253 253 253 253
101271 71 57 13 14 12 9 12 12 10 13 13 12 15 15 13 17 17 1013253 253 253 253 253 253 231 231 231 242 242 242
101315 18 18 15 19 19 16 20 20 17 21 21 17 21 21 18 22 22 1014253 253 253 253 253 253 253 253 253 253 253 253
101418 22 22 18 22 22 17 21 21 16 19 19 15 18 18 14 18 18 1015253 253 253 253 253 253 253 253 253 253 253 253
101516 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1016253 253 253 253 253 253 253 253 253 253 253 253
101615 19 19 15 19 19 15 18 18 14 18 18 16 20 20 23 25 24 1017253 253 253 253 253 253 253 253 253 253 253 253
101717 21 21 25 27 26 47 48 46 47 48 46 51 52 50 72 73 67 1018253 253 253 253 253 253 234 234 234 10 10 10
101833 36 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1019 2 2 6 2 2 6 22 22 22 14 14 14
10190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1020 2 2 6 2 2 6 2 2 6 2 2 6
10200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1021 2 2 6 66 66 66 62 62 62 22 22 22
10210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1022 6 6 6 0 0 0 0 0 0 0 0 0
10220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1023 0 0 0 0 0 0 0 0 0 0 0 0
10230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1024 0 0 0 0 0 0 0 0 0 0 0 0
10240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1025 0 0 0 0 0 0 0 0 0 0 0 0
10250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1026 0 0 0 0 0 0 0 0 0 0 0 0
10260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1027 0 0 0 0 0 0 0 0 0 0 0 0
10270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1028 0 0 0 0 0 0 6 6 6 18 18 18
10280 0 0 1029 50 50 50 74 74 74 2 2 6 2 2 6
10290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1030 14 14 14 70 70 70 34 34 34 62 62 62
10300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031250 250 250 253 253 253 253 253 253 253 253 253
10310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1032253 253 253 253 253 253 253 253 253 253 253 253
10320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1033253 253 253 253 253 253 231 231 231 246 246 246
10330 0 0 0 0 0 0 0 0 118 116 76 230 229 82 230 229 82 1034253 253 253 253 253 253 253 253 253 253 253 253
1034230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1035253 253 253 253 253 253 253 253 253 253 253 253
1035230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1036253 253 253 253 253 253 253 253 253 253 253 253
1036230 229 82 230 229 82 161 156 96 118 116 76 118 116 76 46 47 43 1037253 253 253 253 253 253 253 253 253 253 253 253
10379 11 11 9 11 11 10 12 12 11 13 13 12 15 15 14 17 17 1038253 253 253 253 253 253 234 234 234 14 14 14
103815 18 18 15 19 19 16 20 20 16 20 20 16 20 20 16 20 20 1039 2 2 6 2 2 6 30 30 30 2 2 6
103916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1040 2 2 6 2 2 6 2 2 6 2 2 6
104015 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1041 2 2 6 66 66 66 62 62 62 22 22 22
104115 19 19 16 20 20 20 24 24 55 56 53 32 34 33 84 83 72 1042 6 6 6 0 0 0 0 0 0 0 0 0
104290 89 73 110 109 94 110 109 94 105 104 92 110 109 94 110 109 94 1043 0 0 0 0 0 0 0 0 0 0 0 0
104372 73 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1044 0 0 0 0 0 0 0 0 0 0 0 0
10440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1045 0 0 0 0 0 0 0 0 0 0 0 0
10450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1046 0 0 0 0 0 0 0 0 0 0 0 0
10460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1047 0 0 0 0 0 0 0 0 0 0 0 0
10470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1048 0 0 0 0 0 0 6 6 6 18 18 18
10480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1049 54 54 54 62 62 62 2 2 6 2 2 6
10490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1050 2 2 6 30 30 30 46 46 46 70 70 70
10500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1051250 250 250 253 253 253 253 253 253 253 253 253
10510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1052253 253 253 253 253 253 253 253 253 253 253 253
10520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1053253 253 253 253 253 253 231 231 231 246 246 246
10530 0 0 1054253 253 253 253 253 253 253 253 253 253 253 253
10540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1055253 253 253 253 253 253 253 253 253 253 253 253
10550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056253 253 253 253 253 253 253 253 253 253 253 253
10560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1057253 253 253 253 253 253 253 253 253 253 253 253
10570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1058253 253 253 253 253 253 226 226 226 10 10 10
10580 0 0 0 0 0 0 0 0 96 95 69 230 229 82 230 229 82 1059 2 2 6 6 6 6 30 30 30 2 2 6
1059230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1060 2 2 6 2 2 6 2 2 6 2 2 6
1060230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1061 2 2 6 66 66 66 58 58 58 22 22 22
1061230 229 82 161 156 96 118 116 76 82 81 62 16 17 12 9 11 11 1062 6 6 6 0 0 0 0 0 0 0 0 0
10629 11 11 9 12 12 10 13 13 12 14 14 13 16 16 14 18 18 1063 0 0 0 0 0 0 0 0 0 0 0 0
106315 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1064 0 0 0 0 0 0 0 0 0 0 0 0
106416 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1065 0 0 0 0 0 0 0 0 0 0 0 0
106516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1066 0 0 0 0 0 0 0 0 0 0 0 0
106616 19 19 33 36 34 99 98 80 156 151 111 145 141 105 184 179 149 1067 0 0 0 0 0 0 0 0 0 0 0 0
1067168 163 120 184 179 149 177 172 135 156 151 111 145 141 105 110 109 94 1068 0 0 0 0 0 0 6 6 6 22 22 22
106890 89 73 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 1069 58 58 58 62 62 62 2 2 6 2 2 6
10690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1070 2 2 6 2 2 6 30 30 30 78 78 78
10700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1071250 250 250 253 253 253 253 253 253 253 253 253
10710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1072253 253 253 253 253 253 253 253 253 253 253 253
10720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1073253 253 253 253 253 253 231 231 231 246 246 246
10730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1074253 253 253 253 253 253 253 253 253 253 253 253
10740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1075253 253 253 253 253 253 253 253 253 253 253 253
10750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1076253 253 253 253 253 253 253 253 253 253 253 253
10760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1077253 253 253 253 253 253 253 253 253 253 253 253
10770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1078253 253 253 253 253 253 206 206 206 2 2 6
10780 0 0 1079 22 22 22 34 34 34 18 14 6 22 22 22
10790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1080 26 26 26 18 18 18 6 6 6 2 2 6
10800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081 2 2 6 82 82 82 54 54 54 18 18 18
10810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1082 6 6 6 0 0 0 0 0 0 0 0 0
10820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1083 0 0 0 0 0 0 0 0 0 0 0 0
10830 0 0 0 0 0 0 0 0 71 71 57 230 229 82 230 229 82 1084 0 0 0 0 0 0 0 0 0 0 0 0
1084230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 1085 0 0 0 0 0 0 0 0 0 0 0 0
1085230 229 82 161 156 96 230 229 82 230 229 82 230 229 82 161 156 96 1086 0 0 0 0 0 0 0 0 0 0 0 0
1086118 116 76 82 81 62 30 31 28 9 11 11 9 11 11 9 11 11 1087 0 0 0 0 0 0 0 0 0 0 0 0
108710 12 12 10 13 13 11 14 14 13 16 16 14 17 17 15 18 18 1088 0 0 0 0 0 0 6 6 6 26 26 26
108815 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1089 62 62 62 106 106 106 74 54 14 185 133 11
108916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1090210 162 10 121 92 8 6 6 6 62 62 62
109016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1091238 238 238 253 253 253 253 253 253 253 253 253
109118 22 22 58 59 55 137 133 100 197 193 154 214 212 158 210 208 158 1092253 253 253 253 253 253 253 253 253 253 253 253
1092197 193 154 184 179 149 184 179 149 137 133 100 110 109 94 99 98 80 1093253 253 253 253 253 253 231 231 231 246 246 246
109384 83 72 10 10 9 0 0 0 0 0 0 0 0 0 0 0 0 1094253 253 253 253 253 253 253 253 253 253 253 253
10940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1095253 253 253 253 253 253 253 253 253 253 253 253
10950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1096253 253 253 253 253 253 253 253 253 253 253 253
10960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1097253 253 253 253 253 253 253 253 253 253 253 253
10970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1098253 253 253 253 253 253 158 158 158 18 18 18
10980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1099 14 14 14 2 2 6 2 2 6 2 2 6
10990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1100 6 6 6 18 18 18 66 66 66 38 38 38
11000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1101 6 6 6 94 94 94 50 50 50 18 18 18
11010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1102 6 6 6 0 0 0 0 0 0 0 0 0
11020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1103 0 0 0 0 0 0 0 0 0 0 0 0
11030 0 0 1104 0 0 0 0 0 0 0 0 0 0 0 0
11040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1105 0 0 0 0 0 0 0 0 0 0 0 0
11050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1106 0 0 0 0 0 0 0 0 0 0 0 0
11060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1107 0 0 0 0 0 0 0 0 0 6 6 6
11070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1108 10 10 10 10 10 10 18 18 18 38 38 38
11080 0 0 0 0 0 0 0 0 16 17 12 230 229 82 230 229 82 1109 78 78 78 142 134 106 216 158 10 242 186 14
1109230 229 82 230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 1110246 190 14 246 190 14 156 118 10 10 10 10
1110161 156 96 161 156 96 161 156 96 161 156 96 118 116 76 71 71 57 1111 90 90 90 238 238 238 253 253 253 253 253 253
111121 22 20 12 14 14 11 13 13 10 12 12 10 12 12 10 13 13 1112253 253 253 253 253 253 253 253 253 253 253 253
111211 13 13 12 15 15 13 16 16 14 17 17 14 18 18 15 19 19 1113253 253 253 253 253 253 231 231 231 250 250 250
111316 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1114253 253 253 253 253 253 253 253 253 253 253 253
111416 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1115253 253 253 253 253 253 253 253 253 253 253 253
111516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 17 21 21 1116253 253 253 253 253 253 253 253 253 253 253 253
111623 27 26 84 83 72 184 179 149 251 251 187 210 208 158 184 179 149 1117253 253 253 253 253 253 253 253 253 246 230 190
1117184 179 149 156 151 111 110 109 94 84 83 72 63 64 60 51 52 50 1118238 204 91 238 204 91 181 142 44 37 26 9
111818 22 22 6 8 8 0 0 0 0 0 0 0 0 0 0 0 0 1119 2 2 6 2 2 6 2 2 6 2 2 6
11190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1120 2 2 6 2 2 6 38 38 38 46 46 46
11200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1121 26 26 26 106 106 106 54 54 54 18 18 18
11210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1122 6 6 6 0 0 0 0 0 0 0 0 0
11220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1123 0 0 0 0 0 0 0 0 0 0 0 0
11230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1124 0 0 0 0 0 0 0 0 0 0 0 0
11240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1125 0 0 0 0 0 0 0 0 0 0 0 0
11250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1126 0 0 0 0 0 0 0 0 0 0 0 0
11260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1127 0 0 0 6 6 6 14 14 14 22 22 22
11270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 30 30 30 38 38 38 50 50 50 70 70 70
11280 0 0 1129106 106 106 190 142 34 226 170 11 242 186 14
11290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1130246 190 14 246 190 14 246 190 14 154 114 10
11300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1131 6 6 6 74 74 74 226 226 226 253 253 253
11310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1132253 253 253 253 253 253 253 253 253 253 253 253
11320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1133253 253 253 253 253 253 231 231 231 250 250 250
11330 0 0 0 0 0 0 0 0 0 0 0 118 116 76 230 229 82 1134253 253 253 253 253 253 253 253 253 253 253 253
1134230 229 82 230 229 82 230 229 82 230 229 82 161 156 96 161 156 96 1135253 253 253 253 253 253 253 253 253 253 253 253
1135161 156 96 161 156 96 118 116 76 53 55 47 20 23 22 16 19 19 1136253 253 253 253 253 253 253 253 253 253 253 253
113613 16 16 12 15 15 12 14 14 11 14 14 11 14 14 11 14 14 1137253 253 253 253 253 253 253 253 253 228 184 62
113712 15 15 13 16 16 14 17 17 15 19 19 16 20 20 17 21 21 1138241 196 14 241 208 19 232 195 16 38 30 10
113823 27 26 18 22 22 20 24 24 23 27 26 30 32 31 17 21 21 1139 2 2 6 2 2 6 2 2 6 2 2 6
113916 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1140 2 2 6 6 6 6 30 30 30 26 26 26
114016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1141203 166 17 154 142 90 66 66 66 26 26 26
114123 27 26 33 37 35 137 133 100 156 151 111 158 153 112 105 104 92 1142 6 6 6 0 0 0 0 0 0 0 0 0
1142105 104 92 68 70 65 39 40 39 18 22 22 12 14 14 12 15 15 1143 0 0 0 0 0 0 0 0 0 0 0 0
11439 11 11 4 5 5 0 0 0 0 0 0 0 0 0 0 0 0 1144 0 0 0 0 0 0 0 0 0 0 0 0
11440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1145 0 0 0 0 0 0 0 0 0 0 0 0
11450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1146 0 0 0 0 0 0 0 0 0 0 0 0
11460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1147 6 6 6 18 18 18 38 38 38 58 58 58
11470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1148 78 78 78 86 86 86 101 101 101 123 123 123
11480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1149175 146 61 210 150 10 234 174 13 246 186 14
11490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1150246 190 14 246 190 14 246 190 14 238 190 10
11500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1151102 78 10 2 2 6 46 46 46 198 198 198
11510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1152253 253 253 253 253 253 253 253 253 253 253 253
11520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1153253 253 253 253 253 253 234 234 234 242 242 242
11530 0 0 1154253 253 253 253 253 253 253 253 253 253 253 253
11540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1155253 253 253 253 253 253 253 253 253 253 253 253
11550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1156253 253 253 253 253 253 253 253 253 253 253 253
11560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157253 253 253 253 253 253 253 253 253 224 178 62
11570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1158242 186 14 241 196 14 210 166 10 22 18 6
11580 0 0 0 0 0 0 0 0 0 0 0 16 17 12 230 229 82 1159 2 2 6 2 2 6 2 2 6 2 2 6
1159230 229 82 230 229 82 230 229 82 161 156 96 118 116 76 118 116 76 1160 2 2 6 2 2 6 6 6 6 121 92 8
1160118 116 76 66 65 55 43 45 43 32 34 33 25 27 26 20 23 22 1161238 202 15 232 195 16 82 82 82 34 34 34
116117 20 20 15 18 18 14 17 17 15 18 18 13 16 16 14 17 17 1162 10 10 10 0 0 0 0 0 0 0 0 0
116214 18 18 16 20 20 32 34 33 55 57 54 58 59 55 72 73 67 1163 0 0 0 0 0 0 0 0 0 0 0 0
1163105 104 92 55 57 54 65 66 61 63 64 60 40 43 41 33 37 35 1164 0 0 0 0 0 0 0 0 0 0 0 0
116441 42 42 20 24 24 16 20 20 16 20 20 16 20 20 16 20 20 1165 0 0 0 0 0 0 0 0 0 0 0 0
116516 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1166 0 0 0 0 0 0 0 0 0 0 0 0
116617 21 21 26 28 27 30 32 31 35 37 36 68 70 65 39 40 39 1167 14 14 14 38 38 38 70 70 70 154 122 46
116723 27 26 15 18 18 13 16 16 11 14 14 9 12 12 8 10 10 1168190 142 34 200 144 11 197 138 11 197 138 11
11687 9 9 6 7 7 0 0 0 0 0 0 0 0 0 0 0 0 1169213 154 11 226 170 11 242 186 14 246 190 14
11690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1170246 190 14 246 190 14 246 190 14 246 190 14
11700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1171225 175 15 46 32 6 2 2 6 22 22 22
11710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1172158 158 158 250 250 250 253 253 253 253 253 253
11720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1173253 253 253 253 253 253 253 253 253 253 253 253
11730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1174253 253 253 253 253 253 253 253 253 253 253 253
11740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1175253 253 253 253 253 253 253 253 253 253 253 253
11750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1176253 253 253 253 253 253 253 253 253 253 253 253
11760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1177253 253 253 250 250 250 242 242 242 224 178 62
11770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1178239 182 13 236 186 11 213 154 11 46 32 6
11780 0 0 1179 2 2 6 2 2 6 2 2 6 2 2 6
11790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1180 2 2 6 2 2 6 61 42 6 225 175 15
11800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1181238 190 10 236 186 11 112 100 78 42 42 42
11810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1182 14 14 14 0 0 0 0 0 0 0 0 0
11820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1183 0 0 0 0 0 0 0 0 0 0 0 0
11830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 38 35 1184 0 0 0 0 0 0 0 0 0 0 0 0
1184230 229 82 230 229 82 230 229 82 96 95 69 30 31 28 49 51 48 1185 0 0 0 0 0 0 0 0 0 0 0 0
118590 89 73 68 70 65 55 57 54 47 48 46 47 48 46 43 45 43 1186 0 0 0 0 0 0 0 0 0 6 6 6
118632 34 33 43 45 43 43 45 43 23 27 26 25 27 26 40 43 41 1187 22 22 22 54 54 54 154 122 46 213 154 11
118740 43 41 90 89 73 110 109 94 145 141 105 156 151 111 156 151 111 1188226 170 11 230 174 11 226 170 11 226 170 11
1188184 179 149 184 179 149 177 172 135 184 179 149 137 133 100 84 83 72 1189236 178 12 242 186 14 246 190 14 246 190 14
1189105 104 92 63 64 60 49 51 48 47 48 46 28 31 30 18 22 22 1190246 190 14 246 190 14 246 190 14 246 190 14
119016 20 20 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1191241 196 14 184 144 12 10 10 10 2 2 6
119116 20 20 15 19 19 15 19 19 15 19 19 18 22 22 15 19 19 1192 6 6 6 116 116 116 242 242 242 253 253 253
119213 16 16 12 15 15 11 14 14 10 13 13 9 12 12 9 11 11 1193253 253 253 253 253 253 253 253 253 253 253 253
11938 10 10 6 8 8 0 0 0 0 0 0 0 0 0 0 0 0 1194253 253 253 253 253 253 253 253 253 253 253 253
11940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1195253 253 253 253 253 253 253 253 253 253 253 253
11950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1196253 253 253 253 253 253 253 253 253 253 253 253
11960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1197253 253 253 231 231 231 198 198 198 214 170 54
11970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1198236 178 12 236 178 12 210 150 10 137 92 6
11980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1199 18 14 6 2 2 6 2 2 6 2 2 6
11990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1200 6 6 6 70 47 6 200 144 11 236 178 12
12000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1201239 182 13 239 182 13 124 112 88 58 58 58
12010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1202 22 22 22 6 6 6 0 0 0 0 0 0
12020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1203 0 0 0 0 0 0 0 0 0 0 0 0
12030 0 0 1204 0 0 0 0 0 0 0 0 0 0 0 0
12040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1205 0 0 0 0 0 0 0 0 0 0 0 0
12050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1206 0 0 0 0 0 0 0 0 0 10 10 10
12060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1207 30 30 30 70 70 70 180 133 36 226 170 11
12070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1208239 182 13 242 186 14 242 186 14 246 186 14
12080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1209246 190 14 246 190 14 246 190 14 246 190 14
120930 31 28 230 229 82 71 71 57 2 2 1 0 0 0 58 59 55 1210246 190 14 246 190 14 246 190 14 246 190 14
1210105 104 92 84 83 72 65 66 61 84 83 72 110 109 94 110 109 94 1211246 190 14 232 195 16 98 70 6 2 2 6
1211145 141 105 105 104 92 110 109 94 110 109 94 84 83 72 110 109 94 1212 2 2 6 2 2 6 66 66 66 221 221 221
1212158 153 112 197 193 154 197 193 154 239 239 170 251 251 187 251 251 187 1213253 253 253 253 253 253 253 253 253 253 253 253
1213251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 197 193 154 1214253 253 253 253 253 253 253 253 253 253 253 253
1214197 193 154 184 179 149 145 141 105 137 133 100 105 104 92 47 48 46 1215253 253 253 253 253 253 253 253 253 253 253 253
121520 23 23 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1216253 253 253 253 253 253 253 253 253 253 253 253
121616 20 20 16 19 19 15 19 19 15 19 19 14 18 18 14 17 17 1217253 253 253 206 206 206 198 198 198 214 166 58
121713 17 17 13 16 16 12 14 14 12 14 14 13 13 13 13 13 13 1218230 174 11 230 174 11 216 158 10 192 133 9
121813 13 13 12 12 12 10 10 9 6 7 7 2 2 2 0 0 0 1219163 110 8 116 81 8 102 78 10 116 81 8
12190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1220167 114 7 197 138 11 226 170 11 239 182 13
12200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1221242 186 14 242 186 14 162 146 94 78 78 78
12210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1222 34 34 34 14 14 14 6 6 6 0 0 0
12220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1223 0 0 0 0 0 0 0 0 0 0 0 0
12230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1224 0 0 0 0 0 0 0 0 0 0 0 0
12240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1225 0 0 0 0 0 0 0 0 0 0 0 0
12250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1226 0 0 0 0 0 0 0 0 0 6 6 6
12260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1227 30 30 30 78 78 78 190 142 34 226 170 11
12270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1228239 182 13 246 190 14 246 190 14 246 190 14
12280 0 0 1229246 190 14 246 190 14 246 190 14 246 190 14
12290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1230246 190 14 246 190 14 246 190 14 246 190 14
12300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1231246 190 14 241 196 14 203 166 17 22 18 6
12310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1232 2 2 6 2 2 6 2 2 6 38 38 38
12320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1233218 218 218 253 253 253 253 253 253 253 253 253
12330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1234253 253 253 253 253 253 253 253 253 253 253 253
12340 0 0 0 0 0 1 1 0 0 0 0 0 0 0 65 66 61 1235253 253 253 253 253 253 253 253 253 253 253 253
1235105 104 92 84 83 72 84 83 72 110 109 94 184 179 149 210 208 158 1236253 253 253 253 253 253 253 253 253 253 253 253
1236210 208 158 210 208 158 214 212 158 197 193 154 214 212 158 210 208 158 1237250 250 250 206 206 206 198 198 198 202 162 69
1237251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1238226 170 11 236 178 12 224 166 10 210 150 10
1238251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1239200 144 11 197 138 11 192 133 9 197 138 11
1239251 251 187 251 251 187 239 239 170 251 251 187 184 179 149 84 83 72 1240210 150 10 226 170 11 242 186 14 246 190 14
124026 28 27 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1241246 190 14 246 186 14 225 175 15 124 112 88
124116 20 20 16 20 20 15 19 19 15 19 19 15 18 18 14 18 18 1242 62 62 62 30 30 30 14 14 14 6 6 6
124213 17 17 13 16 16 15 15 15 14 14 13 14 14 13 14 14 13 1243 0 0 0 0 0 0 0 0 0 0 0 0
124313 13 13 13 13 13 12 12 12 12 12 12 12 12 12 3 4 4 1244 0 0 0 0 0 0 0 0 0 0 0 0
12440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1245 0 0 0 0 0 0 0 0 0 0 0 0
12450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1246 0 0 0 0 0 0 0 0 0 10 10 10
12460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1247 30 30 30 78 78 78 174 135 50 224 166 10
12470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1248239 182 13 246 190 14 246 190 14 246 190 14
12480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1249246 190 14 246 190 14 246 190 14 246 190 14
12490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1250246 190 14 246 190 14 246 190 14 246 190 14
12500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1251246 190 14 246 190 14 241 196 14 139 102 15
12510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1252 2 2 6 2 2 6 2 2 6 2 2 6
12520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1253 78 78 78 250 250 250 253 253 253 253 253 253
12530 0 0 1254253 253 253 253 253 253 253 253 253 253 253 253
12540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1255253 253 253 253 253 253 253 253 253 253 253 253
12550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1256253 253 253 253 253 253 253 253 253 253 253 253
12560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1257250 250 250 214 214 214 198 198 198 190 150 46
12570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1258219 162 10 236 178 12 234 174 13 224 166 10
12580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1259216 158 10 213 154 11 213 154 11 216 158 10
12590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 73 67 1260226 170 11 239 182 13 246 190 14 246 190 14
1260105 104 92 99 98 80 84 83 72 99 98 80 177 172 135 197 193 154 1261246 190 14 246 190 14 242 186 14 206 162 42
1261251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1262101 101 101 58 58 58 30 30 30 14 14 14
1262251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1263 6 6 6 0 0 0 0 0 0 0 0 0
1263251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1264 0 0 0 0 0 0 0 0 0 0 0 0
1264251 251 187 251 251 187 251 251 187 214 212 158 197 193 154 99 98 80 1265 0 0 0 0 0 0 0 0 0 0 0 0
126523 27 26 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1266 0 0 0 0 0 0 0 0 0 10 10 10
126616 20 20 16 20 20 15 19 19 15 19 19 15 18 18 14 18 18 1267 30 30 30 74 74 74 174 135 50 216 158 10
126714 17 17 16 16 16 16 16 16 16 16 16 15 15 15 14 14 13 1268236 178 12 246 190 14 246 190 14 246 190 14
126814 14 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12 12 1269246 190 14 246 190 14 246 190 14 246 190 14
12693 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1270246 190 14 246 190 14 246 190 14 246 190 14
12700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1271246 190 14 246 190 14 241 196 14 226 184 13
12710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1272 61 42 6 2 2 6 2 2 6 2 2 6
12720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1273 22 22 22 238 238 238 253 253 253 253 253 253
12730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1274253 253 253 253 253 253 253 253 253 253 253 253
12740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1275253 253 253 253 253 253 253 253 253 253 253 253
12750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1276253 253 253 253 253 253 253 253 253 253 253 253
12760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1277253 253 253 226 226 226 187 187 187 180 133 36
12770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1278216 158 10 236 178 12 239 182 13 236 178 12
12780 0 0 1279230 174 11 226 170 11 226 170 11 230 174 11
12790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1280236 178 12 242 186 14 246 190 14 246 190 14
12800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1281246 190 14 246 190 14 246 186 14 239 182 13
12810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282206 162 42 106 106 106 66 66 66 34 34 34
12820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1283 14 14 14 6 6 6 0 0 0 0 0 0
12830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1284 0 0 0 0 0 0 0 0 0 0 0 0
12840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 83 72 1285 0 0 0 0 0 0 0 0 0 0 0 0
1285110 109 94 99 98 80 72 73 67 63 64 60 99 98 80 177 172 135 1286 0 0 0 0 0 0 0 0 0 6 6 6
1286184 179 149 210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 1287 26 26 26 70 70 70 163 133 67 213 154 11
1287251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1288236 178 12 246 190 14 246 190 14 246 190 14
1288251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 1289246 190 14 246 190 14 246 190 14 246 190 14
1289251 251 187 210 208 158 184 179 149 177 172 135 110 109 94 33 37 35 1290246 190 14 246 190 14 246 190 14 246 190 14
129017 21 21 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1291246 190 14 246 190 14 246 190 14 241 196 14
129116 20 20 16 20 20 15 19 19 15 19 19 15 19 19 14 18 18 1292190 146 13 18 14 6 2 2 6 2 2 6
129215 18 18 18 19 18 18 19 18 17 17 17 16 16 16 15 15 15 1293 46 46 46 246 246 246 253 253 253 253 253 253
129314 14 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12 12 1294253 253 253 253 253 253 253 253 253 253 253 253
129410 10 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1295253 253 253 253 253 253 253 253 253 253 253 253
12950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1296253 253 253 253 253 253 253 253 253 253 253 253
12960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1297253 253 253 221 221 221 86 86 86 156 107 11
12970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1298216 158 10 236 178 12 242 186 14 246 186 14
12980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299242 186 14 239 182 13 239 182 13 242 186 14
12990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1300242 186 14 246 186 14 246 190 14 246 190 14
13000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1301246 190 14 246 190 14 246 190 14 246 190 14
13010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1302242 186 14 225 175 15 142 122 72 66 66 66
13020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1303 30 30 30 10 10 10 0 0 0 0 0 0
13030 0 0 1304 0 0 0 0 0 0 0 0 0 0 0 0
13040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1305 0 0 0 0 0 0 0 0 0 0 0 0
13050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1306 0 0 0 0 0 0 0 0 0 6 6 6
13060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1307 26 26 26 70 70 70 163 133 67 210 150 10
13070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1308236 178 12 246 190 14 246 190 14 246 190 14
13080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1309246 190 14 246 190 14 246 190 14 246 190 14
13090 0 0 0 0 0 0 0 0 0 0 0 2 2 2 105 104 92 1310246 190 14 246 190 14 246 190 14 246 190 14
1310108 107 93 99 98 80 72 73 67 63 64 60 51 52 50 87 86 72 1311246 190 14 246 190 14 246 190 14 246 190 14
1311105 104 92 110 109 94 108 107 93 156 151 111 184 179 149 184 179 149 1312232 195 16 121 92 8 34 34 34 106 106 106
1312197 193 154 197 193 154 197 193 154 184 179 149 184 179 149 177 172 135 1313221 221 221 253 253 253 253 253 253 253 253 253
1313197 193 154 156 151 111 177 172 135 184 179 149 168 163 120 137 133 100 1314253 253 253 253 253 253 253 253 253 253 253 253
1314145 141 105 110 109 94 99 98 80 47 48 46 55 57 54 15 19 19 1315253 253 253 253 253 253 253 253 253 253 253 253
131516 19 19 16 20 20 16 20 20 16 20 20 16 20 20 16 20 20 1316253 253 253 253 253 253 253 253 253 253 253 253
131617 20 20 17 21 21 16 20 20 16 19 19 15 19 19 16 19 19 1317242 242 242 82 82 82 18 14 6 163 110 8
131720 20 20 21 22 21 20 20 20 19 20 19 18 19 18 16 16 16 1318216 158 10 236 178 12 242 186 14 246 190 14
131815 15 15 14 14 13 13 13 13 13 13 13 12 12 12 12 12 12 1319246 190 14 246 190 14 246 190 14 246 190 14
131912 12 12 4 5 5 0 0 0 0 0 0 0 0 0 0 0 0 1320246 190 14 246 190 14 246 190 14 246 190 14
13200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1321246 190 14 246 190 14 246 190 14 246 190 14
13210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1322246 190 14 246 190 14 242 186 14 163 133 67
13220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1323 46 46 46 18 18 18 6 6 6 0 0 0
13230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1324 0 0 0 0 0 0 0 0 0 0 0 0
13240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1325 0 0 0 0 0 0 0 0 0 0 0 0
13250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1326 0 0 0 0 0 0 0 0 0 10 10 10
13260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1327 30 30 30 78 78 78 163 133 67 210 150 10
13270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1328236 178 12 246 186 14 246 190 14 246 190 14
13280 0 0 1329246 190 14 246 190 14 246 190 14 246 190 14
13290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1330246 190 14 246 190 14 246 190 14 246 190 14
13300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1331246 190 14 246 190 14 246 190 14 246 190 14
13310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1332241 196 14 215 174 15 190 178 144 253 253 253
13320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1333253 253 253 253 253 253 253 253 253 253 253 253
13330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1334253 253 253 253 253 253 253 253 253 253 253 253
13340 0 0 0 0 0 0 0 0 0 0 0 58 59 55 110 109 94 1335253 253 253 253 253 253 253 253 253 253 253 253
1335105 104 92 90 89 73 72 73 67 55 57 54 43 45 43 39 40 39 1336253 253 253 253 253 253 253 253 253 218 218 218
133643 45 43 46 47 45 43 45 43 68 70 65 65 66 61 63 64 60 1337 58 58 58 2 2 6 22 18 6 167 114 7
1337108 107 93 72 73 67 105 104 92 90 89 73 72 73 67 40 43 41 1338216 158 10 236 178 12 246 186 14 246 190 14
133872 73 67 68 70 65 68 70 65 58 59 55 63 64 60 49 51 48 1339246 190 14 246 190 14 246 190 14 246 190 14
133943 45 43 33 36 34 27 30 29 20 24 24 16 20 20 15 19 19 1340246 190 14 246 190 14 246 190 14 246 190 14
134015 19 19 15 19 19 15 19 19 16 19 19 16 20 20 16 20 20 1341246 190 14 246 190 14 246 190 14 246 190 14
134117 21 21 20 24 24 20 23 22 17 21 21 17 20 20 20 20 20 1342246 190 14 246 186 14 242 186 14 190 150 46
134221 22 21 21 22 21 21 22 21 21 22 21 20 20 20 18 19 18 1343 54 54 54 22 22 22 6 6 6 0 0 0
134316 16 16 15 15 15 13 13 13 13 13 13 12 12 12 12 12 12 1344 0 0 0 0 0 0 0 0 0 0 0 0
134412 12 12 10 10 9 0 0 0 0 0 0 0 0 0 0 0 0 1345 0 0 0 0 0 0 0 0 0 0 0 0
13450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1346 0 0 0 0 0 0 0 0 0 14 14 14
13460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1347 38 38 38 86 86 86 180 133 36 213 154 11
13470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1348236 178 12 246 186 14 246 190 14 246 190 14
13480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349246 190 14 246 190 14 246 190 14 246 190 14
13490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1350246 190 14 246 190 14 246 190 14 246 190 14
13500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1351246 190 14 246 190 14 246 190 14 246 190 14
13510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1352246 190 14 232 195 16 190 146 13 214 214 214
13520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353253 253 253 253 253 253 253 253 253 253 253 253
13530 0 0 1354253 253 253 253 253 253 253 253 253 253 253 253
13540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1355253 253 253 253 253 253 253 253 253 253 253 253
13550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1356253 253 253 250 250 250 170 170 170 26 26 26
13560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1357 2 2 6 2 2 6 37 26 9 163 110 8
13570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1358219 162 10 239 182 13 246 186 14 246 190 14
13580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1359246 190 14 246 190 14 246 190 14 246 190 14
13590 0 0 0 0 0 0 0 0 21 22 21 110 109 94 110 109 94 1360246 190 14 246 190 14 246 190 14 246 190 14
1360105 104 92 84 83 72 68 70 65 51 52 50 41 42 42 33 37 35 1361246 190 14 246 190 14 246 190 14 246 190 14
136128 31 30 23 27 26 20 23 23 18 22 22 17 20 20 25 27 26 1362246 186 14 236 178 12 224 166 10 142 122 72
136226 28 27 27 30 29 25 27 26 20 23 23 23 27 26 30 32 31 1363 46 46 46 18 18 18 6 6 6 0 0 0
136320 24 24 17 21 21 18 22 22 15 19 19 26 28 27 20 23 23 1364 0 0 0 0 0 0 0 0 0 0 0 0
136414 18 18 15 19 19 15 18 18 15 19 19 15 19 19 15 19 19 1365 0 0 0 0 0 0 0 0 0 0 0 0
136515 19 19 15 19 19 15 19 19 15 19 19 15 19 19 16 19 19 1366 0 0 0 0 0 0 6 6 6 18 18 18
136616 20 20 22 24 23 24 26 24 22 24 23 20 23 22 22 24 23 1367 50 50 50 109 106 95 192 133 9 224 166 10
136724 26 24 24 26 24 23 24 24 22 24 23 21 22 21 19 20 19 1368242 186 14 246 190 14 246 190 14 246 190 14
136817 17 17 15 15 15 14 14 13 13 13 13 12 12 12 12 12 12 1369246 190 14 246 190 14 246 190 14 246 190 14
136912 12 12 12 12 12 2 2 2 0 0 0 0 0 0 0 0 0 1370246 190 14 246 190 14 246 190 14 246 190 14
13700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1371246 190 14 246 190 14 246 190 14 246 190 14
13710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1372242 186 14 226 184 13 210 162 10 142 110 46
13720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1373226 226 226 253 253 253 253 253 253 253 253 253
13730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1374253 253 253 253 253 253 253 253 253 253 253 253
13740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1375253 253 253 253 253 253 253 253 253 253 253 253
13750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1376198 198 198 66 66 66 2 2 6 2 2 6
13760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1377 2 2 6 2 2 6 50 34 6 156 107 11
13770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1378219 162 10 239 182 13 246 186 14 246 190 14
13780 0 0 1379246 190 14 246 190 14 246 190 14 246 190 14
13790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1380246 190 14 246 190 14 246 190 14 246 190 14
13800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1381246 190 14 246 190 14 246 190 14 242 186 14
13810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1382234 174 13 213 154 11 154 122 46 66 66 66
13820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1383 30 30 30 10 10 10 0 0 0 0 0 0
13830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1384 0 0 0 0 0 0 0 0 0 0 0 0
13840 0 0 0 0 0 2 2 2 99 98 80 110 109 94 108 107 93 1385 0 0 0 0 0 0 0 0 0 0 0 0
1385105 104 92 84 83 72 63 64 60 49 51 48 39 40 39 32 34 33 1386 0 0 0 0 0 0 6 6 6 22 22 22
138627 30 29 23 25 24 20 23 23 17 20 20 15 19 19 14 18 18 1387 58 58 58 154 121 60 206 145 10 234 174 13
138714 17 17 13 17 17 13 17 17 13 17 17 13 17 17 13 17 17 1388242 186 14 246 186 14 246 190 14 246 190 14
138814 17 17 14 17 17 14 17 17 14 17 17 14 17 17 14 17 17 1389246 190 14 246 190 14 246 190 14 246 190 14
138914 18 18 14 18 18 14 18 18 14 18 18 15 18 18 15 19 19 1390246 190 14 246 190 14 246 190 14 246 190 14
139015 19 19 15 19 19 15 19 19 15 19 19 15 19 19 15 19 19 1391246 190 14 246 190 14 246 190 14 246 190 14
139115 19 19 17 21 21 27 29 28 26 28 27 25 27 26 25 27 26 1392246 186 14 236 178 12 210 162 10 163 110 8
139227 29 28 27 29 28 26 28 27 24 26 24 21 22 21 20 20 20 1393 61 42 6 138 138 138 218 218 218 250 250 250
139318 19 18 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12 1394253 253 253 253 253 253 253 253 253 250 250 250
139412 12 12 12 12 12 4 5 5 0 0 0 0 0 0 0 0 0 1395242 242 242 210 210 210 144 144 144 66 66 66
13950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1396 6 6 6 2 2 6 2 2 6 2 2 6
13960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1397 2 2 6 2 2 6 61 42 6 163 110 8
13970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1398216 158 10 236 178 12 246 190 14 246 190 14
13980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1399246 190 14 246 190 14 246 190 14 246 190 14
13990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1400246 190 14 246 190 14 246 190 14 246 190 14
14000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1401246 190 14 239 182 13 230 174 11 216 158 10
14010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1402190 142 34 124 112 88 70 70 70 38 38 38
14020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1403 18 18 18 6 6 6 0 0 0 0 0 0
14030 0 0 1404 0 0 0 0 0 0 0 0 0 0 0 0
14040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1405 0 0 0 0 0 0 0 0 0 0 0 0
14050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1406 0 0 0 0 0 0 6 6 6 22 22 22
14060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1407 62 62 62 168 124 44 206 145 10 224 166 10
14070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1408236 178 12 239 182 13 242 186 14 242 186 14
14080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1409246 186 14 246 190 14 246 190 14 246 190 14
14090 0 0 0 0 0 51 52 50 110 109 94 110 109 94 105 104 92 1410246 190 14 246 190 14 246 190 14 246 190 14
141090 89 73 72 73 67 55 57 54 43 45 43 35 37 36 30 32 31 1411246 190 14 246 190 14 246 190 14 246 190 14
141126 28 27 20 24 24 17 21 21 16 19 19 15 18 18 14 17 17 1412246 190 14 236 178 12 216 158 10 175 118 6
141213 16 16 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1413 80 54 7 2 2 6 6 6 6 30 30 30
141313 16 16 13 16 16 13 16 16 13 17 17 13 17 17 14 17 17 1414 54 54 54 62 62 62 50 50 50 38 38 38
141414 17 17 14 17 17 14 17 17 14 18 18 14 18 18 14 18 18 1415 14 14 14 2 2 6 2 2 6 2 2 6
141515 18 18 15 18 18 15 19 19 15 19 19 15 19 19 15 19 19 1416 2 2 6 2 2 6 2 2 6 2 2 6
141615 19 19 15 19 19 27 29 28 32 34 33 28 31 30 27 29 28 1417 2 2 6 6 6 6 80 54 7 167 114 7
141730 32 31 30 32 31 30 31 28 26 28 27 23 24 24 21 22 21 1418213 154 11 236 178 12 246 190 14 246 190 14
141819 20 19 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12 1419246 190 14 246 190 14 246 190 14 246 190 14
141912 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1420246 190 14 242 186 14 239 182 13 239 182 13
14200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1421230 174 11 210 150 10 174 135 50 124 112 88
14210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1422 82 82 82 54 54 54 34 34 34 18 18 18
14220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1423 6 6 6 0 0 0 0 0 0 0 0 0
14230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1424 0 0 0 0 0 0 0 0 0 0 0 0
14240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1425 0 0 0 0 0 0 0 0 0 0 0 0
14250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1426 0 0 0 0 0 0 6 6 6 18 18 18
14260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1427 50 50 50 158 118 36 192 133 9 200 144 11
14270 0 0 0 0 0 0 0 0 3 3 3 0 0 0 0 0 0 1428216 158 10 219 162 10 224 166 10 226 170 11
14280 0 0 1429230 174 11 236 178 12 239 182 13 239 182 13
14290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1430242 186 14 246 186 14 246 190 14 246 190 14
14300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1431246 190 14 246 190 14 246 190 14 246 190 14
14310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1432246 186 14 230 174 11 210 150 10 163 110 8
14320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1433104 69 6 10 10 10 2 2 6 2 2 6
14330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1434 2 2 6 2 2 6 2 2 6 2 2 6
14340 0 0 10 10 9 108 107 93 110 109 94 108 107 93 99 98 80 1435 2 2 6 2 2 6 2 2 6 2 2 6
143584 83 72 63 64 60 49 51 48 40 43 41 33 36 34 27 30 29 1436 2 2 6 2 2 6 2 2 6 2 2 6
143623 27 26 18 22 22 17 20 20 15 18 18 14 17 17 13 16 16 1437 2 2 6 6 6 6 91 60 6 167 114 7
143713 16 16 13 16 16 12 15 15 12 15 15 12 15 15 12 15 15 1438206 145 10 230 174 11 242 186 14 246 190 14
143813 16 16 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1439246 190 14 246 190 14 246 186 14 242 186 14
143913 17 17 13 17 17 14 17 17 14 17 17 14 17 17 14 18 18 1440239 182 13 230 174 11 224 166 10 213 154 11
144014 18 18 14 18 18 15 18 18 15 18 18 15 19 19 15 19 19 1441180 133 36 124 112 88 86 86 86 58 58 58
144115 19 19 15 19 19 17 21 21 33 36 34 32 34 33 31 33 31 1442 38 38 38 22 22 22 10 10 10 6 6 6
144233 36 34 33 36 34 31 33 31 27 29 28 25 27 26 21 22 21 1443 0 0 0 0 0 0 0 0 0 0 0 0
144319 20 19 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1444 0 0 0 0 0 0 0 0 0 0 0 0
144412 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1445 0 0 0 0 0 0 0 0 0 0 0 0
14450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1446 0 0 0 0 0 0 0 0 0 14 14 14
14460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1447 34 34 34 70 70 70 138 110 50 158 118 36
14470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1448167 114 7 180 123 7 192 133 9 197 138 11
14480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1449200 144 11 206 145 10 213 154 11 219 162 10
14490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1450224 166 10 230 174 11 239 182 13 242 186 14
14500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1451246 186 14 246 186 14 246 186 14 246 186 14
14510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1452239 182 13 216 158 10 185 133 11 152 99 6
14520 0 0 0 0 0 63 64 60 137 133 100 43 45 43 0 0 0 1453104 69 6 18 14 6 2 2 6 2 2 6
14530 0 0 1454 2 2 6 2 2 6 2 2 6 2 2 6
14540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1455 2 2 6 2 2 6 2 2 6 2 2 6
14550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1456 2 2 6 2 2 6 2 2 6 2 2 6
14560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1457 2 2 6 6 6 6 80 54 7 152 99 6
14570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1458192 133 9 219 162 10 236 178 12 239 182 13
14580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1459246 186 14 242 186 14 239 182 13 236 178 12
14590 0 0 68 70 65 110 109 94 110 109 94 105 104 92 84 83 72 1460224 166 10 206 145 10 192 133 9 154 121 60
146068 70 65 55 57 54 43 45 43 35 37 36 30 32 31 26 28 27 1461 94 94 94 62 62 62 42 42 42 22 22 22
146120 24 24 17 21 21 16 19 19 14 17 17 13 16 16 12 15 15 1462 14 14 14 6 6 6 0 0 0 0 0 0
146212 15 15 12 15 15 12 15 15 12 15 15 12 15 15 12 15 15 1463 0 0 0 0 0 0 0 0 0 0 0 0
146312 15 15 12 15 15 12 15 15 12 15 15 12 15 15 13 16 16 1464 0 0 0 0 0 0 0 0 0 0 0 0
146413 16 16 13 16 16 13 16 16 13 17 17 13 17 17 14 17 17 1465 0 0 0 0 0 0 0 0 0 0 0 0
146514 17 17 14 17 17 14 18 18 14 18 18 14 18 18 15 18 18 1466 0 0 0 0 0 0 0 0 0 6 6 6
146615 19 19 15 19 19 15 19 19 20 24 24 32 34 33 35 37 36 1467 18 18 18 34 34 34 58 58 58 78 78 78
146737 39 37 35 37 36 33 36 34 30 32 31 26 28 27 22 24 23 1468101 98 89 124 112 88 142 110 46 156 107 11
146820 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1469163 110 8 167 114 7 175 118 6 180 123 7
146912 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1470185 133 11 197 138 11 210 150 10 219 162 10
14700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1471226 170 11 236 178 12 236 178 12 234 174 13
14710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1472219 162 10 197 138 11 163 110 8 130 83 6
14720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1473 91 60 6 10 10 10 2 2 6 2 2 6
14730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1474 18 18 18 38 38 38 38 38 38 38 38 38
14740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1475 38 38 38 38 38 38 38 38 38 38 38 38
14750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1476 38 38 38 38 38 38 26 26 26 2 2 6
14760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1477 2 2 6 6 6 6 70 47 6 137 92 6
14771 1 1 99 98 80 184 179 149 184 179 149 68 70 65 0 0 0 1478175 118 6 200 144 11 219 162 10 230 174 11
14780 0 0 1479234 174 13 230 174 11 219 162 10 210 150 10
14790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1480192 133 9 163 110 8 124 112 88 82 82 82
14800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1481 50 50 50 30 30 30 14 14 14 6 6 6
14810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1482 0 0 0 0 0 0 0 0 0 0 0 0
14820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1483 0 0 0 0 0 0 0 0 0 0 0 0
14830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1484 0 0 0 0 0 0 0 0 0 0 0 0
148415 15 15 110 109 94 110 109 94 108 107 93 99 98 80 72 73 67 1485 0 0 0 0 0 0 0 0 0 0 0 0
148561 63 57 49 51 48 39 40 39 33 36 34 27 30 29 23 25 24 1486 0 0 0 0 0 0 0 0 0 0 0 0
148618 22 22 16 19 19 14 17 17 13 16 16 12 15 15 12 15 15 1487 6 6 6 14 14 14 22 22 22 34 34 34
148711 14 14 11 14 14 11 14 14 11 14 14 11 14 14 11 14 14 1488 42 42 42 58 58 58 74 74 74 86 86 86
148811 14 14 11 14 14 12 14 14 12 15 15 12 15 15 12 15 15 1489101 98 89 122 102 70 130 98 46 121 87 25
148912 15 15 13 16 16 13 16 16 13 16 16 13 16 16 13 16 16 1490137 92 6 152 99 6 163 110 8 180 123 7
149013 17 17 14 17 17 14 17 17 14 17 17 14 18 18 14 18 18 1491185 133 11 197 138 11 206 145 10 200 144 11
149114 18 18 15 18 18 15 19 19 15 19 19 30 32 31 38 39 37 1492180 123 7 156 107 11 130 83 6 104 69 6
149239 40 39 39 40 39 35 37 36 31 33 31 27 29 28 22 24 23 1493 50 34 6 54 54 54 110 110 110 101 98 89
149320 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1494 86 86 86 82 82 82 78 78 78 78 78 78
149412 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1495 78 78 78 78 78 78 78 78 78 78 78 78
14950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1496 78 78 78 82 82 82 86 86 86 94 94 94
14960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1497106 106 106 101 101 101 86 66 34 124 80 6
14970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1498156 107 11 180 123 7 192 133 9 200 144 11
14980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1499206 145 10 200 144 11 192 133 9 175 118 6
14990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1500139 102 15 109 106 95 70 70 70 42 42 42
15000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1501 22 22 22 10 10 10 0 0 0 0 0 0
15010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 1502 0 0 0 0 0 0 0 0 0 0 0 0
1502110 109 94 197 193 154 210 208 158 184 179 149 68 70 65 0 0 0 1503 0 0 0 0 0 0 0 0 0 0 0 0
15030 0 0 1504 0 0 0 0 0 0 0 0 0 0 0 0
15040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1505 0 0 0 0 0 0 0 0 0 0 0 0
15050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1506 0 0 0 0 0 0 0 0 0 0 0 0
15060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1507 0 0 0 0 0 0 6 6 6 10 10 10
15070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1508 14 14 14 22 22 22 30 30 30 38 38 38
15080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1509 50 50 50 62 62 62 74 74 74 90 90 90
150968 70 65 110 109 94 110 109 94 105 104 92 84 83 72 65 66 61 1510101 98 89 112 100 78 121 87 25 124 80 6
151051 52 50 43 45 43 35 37 36 30 32 31 25 27 26 20 23 23 1511137 92 6 152 99 6 152 99 6 152 99 6
151117 20 20 15 18 18 13 16 16 12 15 15 12 15 15 11 14 14 1512138 86 6 124 80 6 98 70 6 86 66 30
151211 14 14 11 14 14 11 13 13 11 13 13 11 13 13 11 13 13 1513101 98 89 82 82 82 58 58 58 46 46 46
151311 14 14 11 14 14 11 14 14 11 14 14 11 14 14 11 14 14 1514 38 38 38 34 34 34 34 34 34 34 34 34
151412 15 15 12 15 15 12 15 15 12 15 15 13 16 16 13 16 16 1515 34 34 34 34 34 34 34 34 34 34 34 34
151513 16 16 13 16 16 13 17 17 13 17 17 14 17 17 14 17 17 1516 34 34 34 34 34 34 38 38 38 42 42 42
151614 18 18 14 18 18 14 18 18 16 19 19 37 39 37 41 42 42 1517 54 54 54 82 82 82 94 86 76 91 60 6
151741 42 42 41 42 42 38 39 37 32 34 33 27 29 28 23 24 24 1518134 86 6 156 107 11 167 114 7 175 118 6
151821 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1519175 118 6 167 114 7 152 99 6 121 87 25
151912 12 12 12 12 12 8 8 7 0 0 0 0 0 0 0 0 0 1520101 98 89 62 62 62 34 34 34 18 18 18
15200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1521 6 6 6 0 0 0 0 0 0 0 0 0
15210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1522 0 0 0 0 0 0 0 0 0 0 0 0
15220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1523 0 0 0 0 0 0 0 0 0 0 0 0
15230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1524 0 0 0 0 0 0 0 0 0 0 0 0
15240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1525 0 0 0 0 0 0 0 0 0 0 0 0
15250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1526 0 0 0 0 0 0 0 0 0 0 0 0
15260 0 0 0 0 0 0 0 0 0 0 0 11 11 11 137 133 100 1527 0 0 0 0 0 0 0 0 0 0 0 0
1527197 193 154 251 251 187 239 239 170 184 179 149 31 33 31 0 0 0 1528 0 0 0 6 6 6 6 6 6 10 10 10
15280 0 0 1529 18 18 18 22 22 22 30 30 30 42 42 42
15290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1530 50 50 50 66 66 66 86 86 86 101 98 89
15300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1531106 86 58 98 70 6 104 69 6 104 69 6
15310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1532104 69 6 91 60 6 82 62 34 90 90 90
15320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1533 62 62 62 38 38 38 22 22 22 14 14 14
15330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 1534 10 10 10 10 10 10 10 10 10 10 10 10
1534110 109 94 110 109 94 105 104 92 90 89 73 72 73 67 58 59 55 1535 10 10 10 10 10 10 6 6 6 10 10 10
153546 47 45 37 39 37 31 33 31 26 28 27 20 24 24 17 21 21 1536 10 10 10 10 10 10 10 10 10 14 14 14
153615 18 18 13 16 16 12 15 15 12 14 14 11 13 13 11 13 13 1537 22 22 22 42 42 42 70 70 70 89 81 66
153710 13 13 10 13 13 10 13 13 10 13 13 10 13 13 10 13 13 1538 80 54 7 104 69 6 124 80 6 137 92 6
153810 13 13 10 13 13 11 13 13 11 13 13 11 14 14 11 14 14 1539134 86 6 116 81 8 100 82 52 86 86 86
153911 14 14 11 14 14 12 14 14 12 15 15 12 15 15 12 15 15 1540 58 58 58 30 30 30 14 14 14 6 6 6
154013 16 16 13 16 16 13 16 16 13 16 16 13 17 17 13 17 17 1541 0 0 0 0 0 0 0 0 0 0 0 0
154114 17 17 14 17 17 14 18 18 23 27 26 41 42 42 41 42 42 1542 0 0 0 0 0 0 0 0 0 0 0 0
154243 45 43 41 42 42 39 40 39 33 36 34 27 29 28 23 24 24 1543 0 0 0 0 0 0 0 0 0 0 0 0
154321 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1544 0 0 0 0 0 0 0 0 0 0 0 0
154412 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1545 0 0 0 0 0 0 0 0 0 0 0 0
15450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1546 0 0 0 0 0 0 0 0 0 0 0 0
15460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1547 0 0 0 0 0 0 0 0 0 0 0 0
15470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1548 0 0 0 0 0 0 0 0 0 0 0 0
15480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1549 0 0 0 6 6 6 10 10 10 14 14 14
15490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1550 18 18 18 26 26 26 38 38 38 54 54 54
15500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1551 70 70 70 86 86 86 94 86 76 89 81 66
15510 0 0 0 0 0 0 0 0 27 29 28 168 163 120 210 208 158 1552 89 81 66 86 86 86 74 74 74 50 50 50
1552251 251 187 251 251 187 210 208 158 137 133 100 1 1 1 0 0 0 1553 30 30 30 14 14 14 6 6 6 0 0 0
15530 0 0 1554 0 0 0 0 0 0 0 0 0 0 0 0
15540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1555 0 0 0 0 0 0 0 0 0 0 0 0
15550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1556 0 0 0 0 0 0 0 0 0 0 0 0
15560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1557 6 6 6 18 18 18 34 34 34 58 58 58
15570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1558 82 82 82 89 81 66 89 81 66 89 81 66
15580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 60 56 1559 94 86 66 94 86 76 74 74 74 50 50 50
1559110 109 94 105 104 92 105 104 92 84 83 72 65 66 61 51 52 50 1560 26 26 26 14 14 14 6 6 6 0 0 0
156040 43 41 33 36 34 27 30 29 23 25 24 18 22 22 16 19 19 1561 0 0 0 0 0 0 0 0 0 0 0 0
156114 17 17 12 15 15 11 14 14 11 14 14 10 13 13 10 13 13 1562 0 0 0 0 0 0 0 0 0 0 0 0
156210 13 13 10 12 12 10 12 12 10 12 12 10 12 12 10 12 12 1563 0 0 0 0 0 0 0 0 0 0 0 0
156310 12 12 10 12 12 10 13 13 10 13 13 10 13 13 11 13 13 1564 0 0 0 0 0 0 0 0 0 0 0 0
156411 13 13 11 14 14 11 14 14 11 14 14 11 14 14 12 15 15 1565 0 0 0 0 0 0 0 0 0 0 0 0
156512 15 15 12 15 15 12 15 15 13 16 16 13 16 16 13 16 16 1566 0 0 0 0 0 0 0 0 0 0 0 0
156613 17 17 13 17 17 14 17 17 32 34 33 43 45 43 43 45 43 1567 0 0 0 0 0 0 0 0 0 0 0 0
156743 45 43 43 45 43 39 40 39 33 36 34 27 29 28 23 24 24 1568 0 0 0 0 0 0 0 0 0 0 0 0
156821 22 21 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1569 0 0 0 0 0 0 0 0 0 0 0 0
156912 12 12 12 12 12 6 7 7 0 0 0 0 0 0 0 0 0 1570 6 6 6 6 6 6 14 14 14 18 18 18
15700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1571 30 30 30 38 38 38 46 46 46 54 54 54
15710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1572 50 50 50 42 42 42 30 30 30 18 18 18
15720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1573 10 10 10 0 0 0 0 0 0 0 0 0
15730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1574 0 0 0 0 0 0 0 0 0 0 0 0
15740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1575 0 0 0 0 0 0 0 0 0 0 0 0
15750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1576 0 0 0 0 0 0 0 0 0 0 0 0
15760 0 0 1 1 1 68 70 65 184 179 149 210 208 158 251 251 187 1577 0 0 0 6 6 6 14 14 14 26 26 26
1577251 251 187 214 212 158 184 179 149 37 39 37 0 0 0 0 0 0 1578 38 38 38 50 50 50 58 58 58 58 58 58
15780 0 0 1579 54 54 54 42 42 42 30 30 30 18 18 18
15790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1580 10 10 10 0 0 0 0 0 0 0 0 0
15800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1581 0 0 0 0 0 0 0 0 0 0 0 0
15810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1582 0 0 0 0 0 0 0 0 0 0 0 0
15820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1583 0 0 0 0 0 0 0 0 0 0 0 0
15830 0 0 0 0 0 0 0 0 0 0 0 6 7 7 105 104 92 1584 0 0 0 0 0 0 0 0 0 0 0 0
1584105 104 92 105 104 92 99 98 80 72 73 67 58 59 55 46 47 45 1585 0 0 0 0 0 0 0 0 0 0 0 0
158535 37 36 30 32 31 25 27 26 20 23 23 16 19 19 14 17 17 1586 0 0 0 0 0 0 0 0 0 0 0 0
158612 15 15 12 14 14 11 13 13 10 13 13 10 12 12 10 12 12 1587 0 0 0 0 0 0 0 0 0 0 0 0
158710 12 12 10 12 12 9 12 12 9 12 12 9 12 12 9 12 12 1588 0 0 0 0 0 0 0 0 0 0 0 0
158810 12 12 10 12 12 10 12 12 10 12 12 10 12 12 10 13 13 1589 0 0 0 0 0 0 0 0 0 0 0 0
158910 13 13 10 13 13 11 13 13 11 13 13 11 14 14 11 14 14 1590 0 0 0 0 0 0 0 0 0 6 6 6
159011 14 14 12 15 15 12 15 15 12 15 15 12 15 15 13 16 16 1591 6 6 6 10 10 10 14 14 14 18 18 18
159113 16 16 13 16 16 17 20 20 41 42 42 46 47 45 46 47 45 1592 18 18 18 14 14 14 10 10 10 6 6 6
159246 47 45 43 45 43 40 41 39 33 36 34 27 29 28 23 24 24 1593 0 0 0 0 0 0 0 0 0 0 0 0
159320 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12 1594 0 0 0 0 0 0 0 0 0 0 0 0
159412 12 12 12 12 12 4 5 5 0 0 0 0 0 0 0 0 0 1595 0 0 0 0 0 0 0 0 0 0 0 0
15950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1596 0 0 0 0 0 0 0 0 0 0 0 0
15960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1597 0 0 0 0 0 0 0 0 0 6 6 6
15970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1598 14 14 14 18 18 18 22 22 22 22 22 22
15980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1599 18 18 18 14 14 14 10 10 10 6 6 6
15990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1600 0 0 0 0 0 0 0 0 0 0 0 0
16000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1601 0 0 0 0 0 0 0 0 0 0 0 0
160115 15 15 110 109 94 197 193 154 214 212 158 251 251 187 251 251 187 1602 0 0 0 0 0 0 0 0 0 0 0 0
1602239 239 170 184 179 149 84 83 72 0 0 0 0 0 0 0 0 0 1603 0 0 0 0 0 0 0 0 0 0 0 0
16030 0 0 1604 0 0 0 0 0 0 0 0 0 0 0 0
16040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16080 0 0 0 0 0 0 0 0 0 0 0 47 48 46 105 104 92
1609105 104 92 99 98 80 84 83 72 68 70 65 51 52 50 40 43 41
161032 34 33 27 29 28 22 24 23 17 21 21 15 18 18 13 16 16
161112 15 15 11 13 13 10 13 13 10 12 12 9 12 12 9 12 12
16129 12 12 9 12 12 9 11 11 9 11 11 9 11 11 9 11 11
16139 12 12 9 12 12 9 12 12 9 12 12 10 12 12 10 12 12
161410 12 12 10 12 12 10 13 13 10 13 13 10 13 13 11 13 13
161511 14 14 11 14 14 11 14 14 12 14 14 12 15 15 12 15 15
161612 15 15 13 16 16 28 31 30 43 45 43 47 48 46 47 48 46
161747 48 46 43 45 43 40 41 39 33 36 34 27 29 28 22 24 23
161820 20 20 17 17 17 15 15 15 13 13 13 12 12 12 12 12 12
161912 12 12 12 12 12 3 4 4 0 0 0 0 0 0 0 0 0
16200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16250 0 0 0 0 0 0 0 0 0 0 0 1 1 1 60 60 56
1626177 172 135 197 193 154 251 251 187 251 251 187 251 251 187 251 251 187
1627184 179 149 110 109 94 3 4 4 0 0 0 0 0 0 0 0 0
16280 0 0
16290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16330 0 0 0 0 0 0 0 0 1 1 1 99 98 80 105 104 92
163499 98 80 87 86 72 84 83 72 63 64 60 46 47 45 35 37 36
163530 32 31 25 27 26 18 22 22 16 19 19 14 17 17 12 15 15
163611 14 14 10 13 13 9 12 12 9 12 12 9 11 11 9 11 11
16379 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16389 11 11 9 11 11 9 11 11 9 11 11 9 12 12 9 12 12
16399 12 12 10 12 12 10 12 12 10 12 12 10 13 13 10 13 13
164010 13 13 11 13 13 11 14 14 11 14 14 11 14 14 12 15 15
164112 15 15 14 17 17 41 42 42 47 48 46 49 51 48 51 52 50
164247 48 46 43 45 43 40 41 39 33 36 34 27 29 28 22 24 23
164319 20 19 16 16 16 14 14 13 13 13 13 12 12 12 12 12 12
164412 12 12 12 12 12 2 2 2 0 0 0 0 0 0 0 0 0
16450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16500 0 0 0 0 0 0 0 0 23 24 24 137 133 100 184 179 149
1651210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 184 179 149
1652110 109 94 13 13 13 0 0 0 0 0 0 0 0 0 0 0 0
16530 0 0
16540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16580 0 0 0 0 0 0 0 0 30 32 31 105 104 92 99 98 80
165984 83 72 84 83 72 72 73 67 55 57 54 41 42 42 32 34 33
166027 29 28 20 24 24 17 20 20 14 17 17 13 16 16 12 14 14
166110 13 13 10 12 12 9 11 11 9 11 11 9 11 11 9 11 11
16629 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16639 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16649 11 11 9 12 12 9 12 12 10 12 12 10 12 12 10 12 12
166510 13 13 10 13 13 10 13 13 11 13 13 11 14 14 11 14 14
166611 14 14 27 29 28 55 56 53 72 73 67 51 52 50 51 52 50
166749 51 48 43 45 43 39 40 39 32 34 33 26 28 27 21 22 21
166819 20 19 16 16 16 18 19 17 13 13 13 12 12 12 12 12 12
166912 12 12 12 12 12 1 1 1 0 0 0 0 0 0 0 0 0
16700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16750 0 0 8 8 7 84 83 72 184 179 149 197 193 154 251 251 187
1676251 251 187 251 251 187 251 251 187 251 251 187 184 179 149 145 141 105
167719 20 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16780 0 0
16790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16820 0 0 14 14 13 0 0 0 0 0 0 0 0 0 0 0 0
16830 0 0 0 0 0 0 0 0 72 73 67 105 104 92 84 83 72
168472 73 67 84 83 72 68 70 65 49 51 48 39 40 39 30 32 31
168525 27 26 18 22 22 15 18 18 13 16 16 12 15 15 11 13 13
168610 12 12 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16879 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16889 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
16899 11 11 9 11 11 9 11 11 9 12 12 9 12 12 9 12 12
169010 12 12 10 12 12 10 12 12 10 13 13 10 13 13 11 13 13
169113 16 16 41 42 42 99 98 80 158 153 112 65 66 61 51 52 50
169249 51 48 43 45 43 39 40 39 31 33 31 25 27 26 21 22 21
169321 22 21 68 70 65 55 56 53 13 13 13 12 12 12 12 12 12
169412 12 12 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0
16950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3
170063 64 60 158 153 112 184 179 149 210 208 158 251 251 187 251 251 187
1701251 251 187 251 251 187 251 251 187 184 179 149 137 133 100 27 29 28
17020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17030 0 0
17040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
170721 22 21 110 109 94 5 6 5 0 0 0 0 0 0 0 0 0
17080 0 0 0 0 0 13 13 13 105 104 92 90 89 73 72 73 67
170968 70 65 84 83 72 63 64 60 46 47 45 35 37 36 27 29 28
171022 24 23 17 20 20 14 17 17 12 15 15 11 14 14 10 12 12
171110 12 12 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17129 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17138 10 10 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17149 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17159 12 12 9 12 12 10 12 12 10 12 12 10 13 13 10 13 13
171630 32 31 47 48 46 177 172 135 210 208 158 137 133 100 55 56 53
171749 51 48 43 45 43 38 39 37 31 33 31 25 27 26 22 24 23
1718110 109 94 184 179 149 63 64 60 13 13 13 12 12 12 12 12 12
171912 12 12 8 9 9 0 0 0 1 1 1 0 0 0 0 0 0
17200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17240 0 0 0 0 0 0 0 0 0 0 0 21 22 21 105 104 92
1725184 179 149 210 208 158 251 251 187 251 251 187 251 251 187 251 251 187
1726251 251 187 251 251 187 184 179 149 145 141 105 23 24 24 0 0 0
17270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17280 0 0
17290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
173268 70 65 184 179 149 105 104 92 0 0 0 0 0 0 0 0 0
17330 0 0 0 0 0 51 52 50 99 98 80 84 83 72 63 64 60
173468 70 65 72 73 67 55 57 54 41 42 42 32 34 33 25 27 26
173520 23 23 16 19 19 13 16 16 12 14 14 10 13 13 10 12 12
17369 11 11 9 11 11 9 11 11 9 11 11 9 11 11 8 10 10
17378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17388 10 10 8 10 10 8 10 10 8 10 10 9 11 11 9 11 11
17399 11 11 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17409 11 11 9 11 11 9 12 12 9 12 12 10 12 12 17 20 20
174146 47 45 72 73 67 210 208 158 251 251 187 210 208 158 63 64 60
174249 51 48 43 45 43 37 39 37 30 32 31 24 26 24 105 104 92
1743210 208 158 197 193 154 47 48 46 13 13 13 12 12 12 12 12 12
174412 12 12 6 7 7 33 36 34 48 49 45 0 0 0 0 0 0
17450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17490 0 0 0 0 0 8 8 7 23 24 24 55 56 53 110 109 94
1750210 208 158 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
1751251 251 187 184 179 149 110 109 94 20 20 20 0 0 0 0 0 0
17520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17530 0 0
17540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1757110 109 94 251 251 187 210 208 158 47 48 46 0 0 0 0 0 0
17580 0 0 1 1 1 90 89 73 90 89 73 72 73 67 55 56 53
175972 73 67 68 70 65 51 52 50 37 39 37 28 31 30 23 25 24
176017 21 21 15 18 18 12 15 15 11 14 14 10 13 13 9 12 12
17619 11 11 9 11 11 9 11 11 8 10 10 8 10 10 8 10 10
17628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17648 10 10 9 11 11 9 11 11 9 11 11 9 11 11 9 11 11
17659 11 11 9 11 11 9 11 11 9 12 12 13 16 16 41 42 42
176649 51 48 110 109 94 251 251 187 251 251 187 251 251 187 105 104 92
176749 51 48 43 45 43 35 37 36 30 31 28 47 48 46 197 193 154
1768251 251 187 197 193 154 31 33 31 12 12 12 12 12 12 12 12 12
176912 12 12 51 52 50 184 179 149 72 73 67 0 0 0 0 0 0
17700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2
177411 11 11 21 22 21 30 32 31 40 41 39 60 60 56 145 141 105
1775251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
1776184 179 149 110 109 94 13 13 13 0 0 0 0 0 0 0 0 0
17770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17780 0 0
17790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17800 0 0 0 0 0 4 5 4 61 61 53 48 49 45 3 4 3
17810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1782156 151 111 251 251 187 251 251 187 184 179 149 11 11 11 0 0 0
17830 0 0 26 28 27 99 98 80 84 83 72 60 60 56 43 45 43
178472 73 67 65 66 61 49 51 48 35 37 36 27 29 28 20 24 24
178517 20 20 14 17 17 12 15 15 11 13 13 10 12 12 9 11 11
17869 11 11 9 11 11 8 10 10 8 10 10 8 10 10 8 10 10
17878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
17898 10 10 8 10 10 8 10 10 8 10 10 9 11 11 9 11 11
17909 11 11 9 11 11 9 11 11 11 13 13 37 39 37 47 48 46
179151 52 50 184 179 149 251 251 187 251 251 187 251 251 187 145 141 105
179247 48 46 41 42 42 35 37 36 27 29 28 137 133 100 251 251 187
1793251 251 187 197 193 154 19 20 19 12 12 12 12 12 12 12 12 12
179427 29 28 184 179 149 214 212 158 63 64 60 0 0 0 0 0 0
17950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17980 0 0 0 0 0 1 1 1 6 7 7 16 16 16 24 26 24
179930 32 31 38 39 37 47 48 46 55 57 54 68 70 65 110 109 94
1800197 193 154 251 251 187 251 251 187 251 251 187 210 208 158 184 179 149
1801105 104 92 8 8 7 0 0 0 0 0 0 0 0 0 0 0 0
18020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18030 0 0
18040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18050 0 0 0 0 0 0 0 0 65 66 61 184 179 149 156 151 111
180630 32 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1807168 163 120 251 251 187 251 251 187 251 251 187 110 109 94 0 0 0
18080 0 0 60 60 56 84 83 72 68 70 65 51 52 50 38 39 37
180984 83 72 63 64 60 43 45 43 33 36 34 25 27 26 20 23 22
181015 18 18 13 16 16 12 14 14 10 13 13 9 12 12 9 11 11
18119 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18128 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18148 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18159 11 11 9 11 11 10 12 12 33 36 34 46 47 45 51 52 50
181672 73 67 210 208 158 251 251 187 251 251 187 251 251 187 177 172 135
181747 48 46 41 42 42 35 37 36 37 39 37 184 179 149 251 251 187
1818251 251 187 197 193 154 13 13 13 12 12 12 12 12 12 12 12 12
1819110 109 94 251 251 187 251 251 187 37 39 37 0 0 0 0 0 0
18200 0 0 21 22 20 2 2 1 0 0 0 0 0 0 0 0 0
18210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18234 5 5 12 12 12 21 22 21 25 27 26 30 32 31 38 39 37
182446 47 45 55 56 53 60 60 56 65 66 61 68 70 65 105 104 92
1825110 109 94 197 193 154 210 208 158 197 193 154 184 179 149 84 83 72
18262 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18280 0 0
18290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18300 0 0 0 0 0 0 0 0 13 13 13 184 179 149 251 251 187
1831197 193 154 43 44 41 0 0 0 0 0 0 0 0 0 0 0 0
1832145 141 105 251 251 187 251 251 187 251 251 187 214 212 158 43 45 43
18332 2 2 84 83 72 72 73 67 58 59 55 41 42 42 38 39 37
183472 73 67 58 59 55 41 42 42 31 33 31 25 27 26 18 22 22
183514 17 17 12 15 15 12 14 14 10 12 12 9 12 12 9 11 11
18369 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18398 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18408 10 10 9 12 12 31 33 31 43 45 43 49 51 48 55 56 53
1841110 109 94 251 251 187 251 251 187 251 251 187 251 251 187 168 163 120
184247 48 46 41 42 42 33 36 34 63 64 60 197 193 154 251 251 187
1843251 251 187 184 179 149 13 13 13 12 12 12 12 12 12 16 16 16
1844197 193 154 251 251 187 239 239 170 20 20 20 0 0 0 2 2 1
1845108 107 93 110 109 94 0 0 0 0 0 0 0 0 0 0 0 0
18460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18470 0 0 0 0 0 1 1 1 4 5 5 11 11 11 18 19 18
184822 24 23 26 28 27 32 34 33 39 40 39 46 47 45 51 52 50
184955 57 54 60 60 56 63 64 60 63 64 60 63 64 60 58 59 55
185063 64 60 99 98 80 145 141 105 137 133 100 43 45 43 0 0 0
18510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18530 0 0
18540 0 0 0 0 0 0 0 0 3 4 3 0 0 0 0 0 0
18550 0 0 0 0 0 0 0 0 0 0 0 110 109 94 251 251 187
1856251 251 187 184 179 149 25 27 26 0 0 0 0 0 0 0 0 0
185799 98 80 251 251 187 251 251 187 251 251 187 251 251 187 156 151 111
185825 27 26 84 83 72 65 66 61 47 48 46 32 34 33 39 40 39
185972 73 67 55 57 54 40 41 39 30 32 31 23 25 24 18 22 22
186014 17 17 12 15 15 11 13 13 10 12 12 9 11 11 9 11 11
18619 11 11 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18648 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18659 11 11 28 31 30 41 42 42 47 48 46 55 56 53 58 59 55
1866137 133 100 251 251 187 251 251 187 251 251 187 210 208 158 137 133 100
186747 48 46 40 41 39 32 34 33 75 75 61 184 179 149 239 239 170
1868251 251 187 177 172 135 13 13 13 12 12 12 12 12 12 43 44 41
1869197 193 154 251 251 187 210 208 158 10 10 9 0 0 0 84 83 72
1870251 251 187 84 83 72 0 0 0 0 0 0 0 0 0 0 0 0
18710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
18726 7 7 11 11 11 17 17 17 20 20 20 23 24 24 27 29 28
187332 34 33 38 39 37 43 45 43 47 48 46 51 52 50 55 56 53
187458 59 55 58 59 55 55 57 54 55 56 53 47 48 46 41 42 42
187535 37 36 31 33 31 47 48 46 14 14 13 0 0 0 0 0 0
18760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18780 0 0
18790 0 0 0 0 0 0 0 0 66 65 55 99 98 80 20 20 20
18800 0 0 0 0 0 0 0 0 0 0 0 43 45 43 214 212 158
1881251 251 187 251 251 187 145 141 105 3 3 3 0 0 0 0 0 0
188248 49 45 184 179 149 239 239 170 251 251 187 239 239 170 177 172 135
188384 83 72 72 73 67 55 56 53 39 40 39 26 28 27 39 40 39
188468 70 65 51 52 50 39 40 39 28 31 30 22 24 23 17 20 20
188514 17 17 12 14 14 10 13 13 9 11 11 9 11 11 9 11 11
18868 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
18898 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
189027 29 28 40 41 39 46 47 45 51 52 50 55 57 54 63 64 60
1891131 127 93 197 193 154 210 208 158 197 193 154 168 163 120 96 95 69
189247 48 46 40 41 39 32 34 33 71 71 57 145 141 105 184 179 149
1893184 179 149 131 127 93 13 13 13 12 12 12 12 12 12 48 49 45
1894168 163 120 184 179 149 156 151 111 6 7 7 14 14 13 177 172 135
1895239 239 170 40 41 39 0 0 0 0 0 0 0 0 0 0 0 0
18960 0 0 0 0 0 3 3 3 6 7 7 11 11 11 16 16 16
189718 19 18 21 22 21 23 24 24 27 29 28 32 34 33 37 39 37
189841 42 42 43 45 43 47 48 46 51 52 50 51 52 50 51 52 50
189951 52 50 49 51 48 46 47 45 40 41 39 32 34 33 25 27 26
190020 20 20 14 14 13 2 2 2 0 0 0 0 0 0 0 0 0
19010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19030 0 0
19040 0 0 0 0 0 0 0 0 33 36 34 197 193 154 184 179 149
190541 42 42 0 0 0 0 0 0 0 0 0 3 3 3 184 179 149
1906251 251 187 251 251 187 184 179 149 48 49 45 0 0 0 0 0 0
190716 17 12 121 119 87 177 172 135 194 189 146 188 184 146 145 141 105
190882 81 62 63 64 60 46 47 45 31 33 31 21 22 21 35 37 36
190968 70 65 51 52 50 37 39 37 27 30 29 22 24 23 17 20 20
191013 16 16 12 14 14 10 13 13 9 11 11 8 10 10 8 10 10
19118 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19128 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19148 10 10 8 10 10 8 10 10 8 10 10 8 10 10 25 27 26
191538 39 37 43 45 43 51 52 50 55 56 53 60 60 56 63 64 60
191692 91 72 158 153 112 176 171 126 171 165 117 149 143 98 82 81 62
191744 46 43 38 39 37 30 32 31 71 71 57 131 127 93 160 154 106
1918149 143 98 82 81 62 13 13 13 12 12 12 12 12 12 46 47 43
1919121 119 87 134 131 96 96 95 69 7 7 6 38 39 37 131 127 93
1920145 141 105 12 13 12 0 0 0 1 1 1 3 3 3 6 7 7
192110 10 9 12 12 12 14 14 13 16 16 16 18 19 18 21 22 21
192222 24 23 26 28 27 30 31 28 33 36 34 37 39 37 40 41 39
192341 42 42 43 45 43 46 47 45 46 47 45 46 47 45 43 45 43
192441 42 42 37 39 37 31 33 31 26 28 27 21 22 21 16 16 16
19256 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19280 0 0
19290 0 0 0 0 0 0 0 0 0 0 0 177 172 135 251 251 187
1930197 193 154 27 29 28 0 0 0 0 0 0 0 0 0 110 109 94
1931239 239 170 239 239 170 184 179 149 87 86 72 2 2 1 0 0 0
19321 1 1 82 81 62 142 137 94 165 161 109 165 161 109 131 127 93
193375 75 61 55 56 53 37 39 37 25 27 26 19 20 19 32 34 33
193465 66 61 49 51 48 35 37 36 27 29 28 20 23 23 16 19 19
193513 16 16 13 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19368 9 9 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19378 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19398 10 10 8 10 10 8 10 10 8 10 10 22 24 23 35 37 36
194041 42 42 47 48 46 55 56 53 58 59 55 63 64 60 65 66 61
194171 71 57 131 127 93 160 154 106 160 154 106 142 137 94 82 81 62
194246 47 43 40 41 39 33 36 34 66 65 55 125 122 87 149 143 98
1943142 137 94 82 81 62 17 17 17 18 19 17 14 14 13 46 47 43
1944118 116 76 125 122 87 96 95 69 16 17 12 71 71 57 103 101 77
194582 81 62 11 11 11 11 11 11 13 13 13 14 14 13 14 14 13
194615 15 15 16 16 16 17 17 17 19 20 19 21 22 21 23 24 24
194726 28 27 27 29 28 31 33 31 33 36 34 35 37 36 38 39 37
194839 40 39 39 40 39 38 39 37 37 39 37 35 37 36 31 33 31
194927 29 28 24 26 24 21 22 21 17 17 17 12 12 12 2 2 2
19500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19530 0 0
19540 0 0 0 0 0 0 0 0 0 0 0 68 70 65 251 251 187
1955251 251 187 156 151 111 2 2 1 0 0 0 0 0 0 43 44 41
1956177 172 135 184 179 149 158 153 112 103 101 77 19 20 18 0 0 0
19570 0 0 46 47 43 131 127 93 160 154 106 160 154 106 131 127 93
195871 71 57 43 45 43 30 32 31 21 22 21 16 16 16 26 28 27
195963 64 60 47 48 46 35 37 36 26 28 27 20 23 23 16 19 19
196013 16 16 13 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19617 9 9 7 9 9 8 9 9 8 10 10 8 10 10 8 10 10
19628 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19648 10 10 8 10 10 8 10 10 20 20 20 33 36 34 40 41 39
196546 47 45 51 52 50 55 57 54 60 60 56 63 64 60 65 66 61
196666 65 55 118 116 76 151 147 98 165 161 109 151 147 98 121 119 87
196796 95 69 96 95 69 96 95 69 103 101 77 142 137 94 151 147 98
1968142 137 94 103 101 77 82 81 62 82 81 62 82 81 62 96 95 69
1969131 127 93 142 137 94 103 101 77 46 47 43 96 95 69 118 116 76
197071 71 57 14 14 13 14 14 13 15 15 15 15 15 15 16 16 16
197116 16 16 17 17 17 18 19 18 20 20 20 21 22 21 23 24 24
197225 27 26 27 29 28 30 31 28 30 32 31 31 33 31 31 33 31
197331 33 31 31 33 31 30 31 28 27 29 28 25 27 26 22 24 23
197420 20 20 16 16 16 13 13 13 6 7 7 0 0 0 0 0 0
19750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19780 0 0
197958 59 55 68 70 65 8 8 7 0 0 0 10 10 9 210 208 158
1980251 251 187 184 179 149 38 39 37 0 0 0 0 0 0 8 8 7
1981103 101 77 149 143 98 149 143 98 118 116 76 40 41 39 25 27 25
198253 55 47 82 81 62 144 139 99 165 161 109 165 161 109 142 137 94
198371 71 57 35 37 36 24 26 24 18 19 18 15 15 15 22 24 23
198463 64 60 46 47 45 33 36 34 26 28 27 20 23 22 17 18 17
198512 15 15 11 13 13 10 12 12 9 11 11 8 10 10 8 10 10
19867 9 9 7 9 9 7 9 9 7 9 9 8 9 9 8 10 10
19878 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19888 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
19898 10 10 8 10 10 16 16 16 30 31 28 35 37 36 41 42 42
199047 48 46 55 56 53 58 59 55 63 64 60 65 66 61 65 66 61
199161 61 53 103 101 77 151 147 98 171 165 117 171 165 117 168 163 120
1992158 153 112 158 153 112 155 149 109 151 147 98 151 147 98 160 154 106
1993151 147 98 149 143 98 142 137 94 149 143 98 149 143 98 149 143 98
1994155 149 109 151 147 98 131 127 93 103 101 77 125 122 87 118 116 76
199571 71 57 16 16 16 16 16 16 16 16 16 17 17 17 17 17 17
199617 17 17 17 17 17 18 19 18 19 20 19 20 20 20 21 22 21
199723 24 24 24 26 24 25 27 26 26 28 27 26 28 27 26 28 27
199825 27 26 24 26 24 22 24 23 21 22 21 19 20 19 16 16 16
199914 14 13 8 8 7 1 1 1 0 0 0 0 0 0 0 0 0
20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20030 0 0
200420 20 20 184 179 149 168 163 120 21 22 21 0 0 0 105 104 92
2005177 172 135 145 141 105 71 71 57 0 0 0 0 0 0 0 0 0
200666 65 55 131 127 93 151 147 98 142 137 94 118 116 76 121 119 87
2007145 141 105 158 153 112 176 171 126 178 174 128 176 171 126 149 145 103
200896 95 69 31 33 31 21 22 21 16 16 16 14 14 13 18 19 18
200960 60 56 46 47 45 33 36 34 25 27 26 21 22 21 15 18 18
201012 15 15 11 13 13 9 11 11 8 10 10 8 10 10 8 9 9
20117 9 9 7 9 9 7 9 9 7 9 9 7 9 9 8 9 9
20128 9 9 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20138 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20148 10 10 10 12 12 26 28 27 31 33 31 38 39 37 43 45 43
201551 52 50 55 56 53 60 60 56 63 64 60 65 66 61 68 70 65
201663 64 60 96 95 69 158 153 112 178 174 128 188 184 146 194 189 146
2017194 189 146 188 184 146 184 181 136 176 171 126 171 165 117 173 167 111
2018173 167 111 165 161 109 171 165 117 174 170 121 176 171 126 178 174 128
2019178 174 128 174 170 121 160 154 106 149 143 98 149 143 98 125 122 87
202071 71 57 16 16 16 16 16 16 17 17 17 17 17 17 17 17 17
202117 17 17 17 17 17 17 17 17 18 19 18 19 20 19 20 20 20
202221 22 21 21 22 21 21 22 21 22 24 23 21 22 21 21 22 21
202321 22 21 19 20 19 18 19 18 16 16 16 14 14 13 11 11 11
20243 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20280 0 0
20290 0 0 105 104 92 197 193 154 110 109 94 9 9 8 36 38 35
2030121 119 87 131 127 93 96 95 69 18 19 17 30 31 28 66 65 55
203196 95 69 142 137 94 160 154 106 160 154 106 160 154 106 168 163 120
2032184 181 136 194 191 148 197 193 154 197 193 154 194 189 146 168 163 120
2033125 122 87 46 47 43 18 19 18 15 15 15 13 13 13 14 14 13
203455 57 54 43 45 43 32 34 33 25 27 26 18 22 22 17 17 17
203512 14 14 10 12 12 9 11 11 8 10 10 8 9 9 7 9 9
20366 8 8 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
20377 9 9 8 9 9 8 9 9 8 10 10 8 10 10 8 10 10
20388 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20398 10 10 32 34 33 41 42 42 35 37 36 39 40 39 37 39 37
204035 37 36 55 57 54 60 60 56 63 64 60 65 66 61 65 66 61
204161 63 57 115 113 82 168 163 120 194 191 148 204 201 155 210 208 158
2042210 208 158 210 208 158 197 193 154 194 189 146 186 182 128 176 171 126
2043174 170 121 176 171 126 186 182 128 190 186 136 194 191 148 197 193 154
2044197 193 154 188 184 146 181 176 137 174 170 121 165 161 109 142 137 94
204582 81 62 24 26 24 16 16 16 16 16 16 16 16 16 16 16 16
204617 17 17 17 17 17 17 17 17 17 17 17 18 19 18 19 20 19
204719 20 19 19 20 19 20 20 20 19 20 19 19 20 19 18 19 18
204817 17 17 15 15 15 13 13 13 12 12 12 6 7 7 0 0 0
20490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20530 0 0
20540 0 0 17 18 17 137 133 100 115 113 82 53 55 47 19 20 18
2055103 101 77 144 139 99 137 133 100 115 113 82 137 133 100 156 151 111
2056158 153 112 164 159 111 171 165 117 174 170 121 178 174 128 194 189 146
2057204 201 155 214 212 158 214 212 158 214 212 158 210 208 158 188 184 146
2058158 153 112 87 86 72 17 17 17 13 13 13 13 13 13 15 15 15
205955 56 53 43 45 43 32 34 33 24 26 24 17 20 20 16 16 16
206012 14 14 10 12 12 8 10 10 8 10 10 7 9 9 6 8 8
20616 8 8 6 8 8 6 8 8 7 9 9 7 9 9 7 9 9
20627 9 9 7 9 9 7 9 9 7 9 9 8 9 9 8 10 10
20638 10 10 8 10 10 8 10 10 8 10 10 8 10 10 8 10 10
20648 10 10 110 109 94 84 83 72 49 51 48 26 28 27 8 10 10
20658 9 9 51 52 50 58 59 55 63 64 60 63 64 60 63 64 60
206666 65 55 134 131 96 181 176 137 210 208 158 214 212 158 239 239 170
2067239 239 170 224 223 159 210 208 158 204 201 155 194 189 146 186 182 128
2068186 182 128 184 181 136 194 189 146 204 201 155 210 208 158 210 208 158
2069210 208 158 210 208 158 197 193 154 190 186 136 176 171 126 155 149 109
2070118 116 76 36 38 35 15 15 15 16 16 16 16 16 16 16 16 16
207116 16 16 16 16 16 16 16 16 16 16 16 16 16 16 17 17 17
207217 17 17 17 17 17 17 17 17 16 16 16 16 16 16 15 15 15
207313 13 13 12 12 12 8 8 7 2 2 2 0 0 0 0 0 0
20740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20780 0 0
20790 0 0 0 0 0 53 55 47 103 101 77 96 95 69 53 55 47
2080103 101 77 158 153 112 177 172 135 184 179 149 188 184 146 197 193 154
2081194 189 146 190 186 136 184 181 136 184 181 136 194 189 146 210 208 158
2082214 212 158 239 239 170 251 251 187 251 251 187 224 223 159 204 201 155
2083177 172 135 121 119 87 30 31 28 13 13 13 12 12 12 39 40 39
208460 60 56 43 45 43 32 34 33 23 25 24 18 19 18 13 16 16
208513 13 13 9 11 11 8 10 10 8 9 9 6 8 8 6 8 8
20866 8 8 6 8 8 6 8 8 6 8 8 6 8 8 7 9 9
20877 9 9 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
20887 9 9 8 9 9 8 9 9 8 10 10 8 10 10 8 10 10
208914 17 17 197 193 154 158 153 112 55 57 54 7 9 9 7 9 9
20908 10 10 51 52 50 58 59 55 60 60 56 63 64 60 63 64 60
209171 71 57 155 149 109 194 191 148 214 212 158 251 251 187 251 251 187
2092251 251 187 251 251 187 239 239 170 210 208 158 197 193 154 190 186 136
2093190 186 136 194 189 146 204 201 155 210 208 158 224 223 159 239 239 170
2094239 239 170 224 223 159 210 208 158 204 201 155 190 186 136 164 159 111
2095125 122 87 40 41 39 15 15 15 15 15 15 15 15 15 15 15 15
209616 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16
209716 16 16 16 16 16 15 15 15 14 14 13 13 13 13 12 12 12
20988 9 9 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0
20990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21030 0 0
21040 0 0 0 0 0 21 22 20 96 95 69 125 122 87 121 119 87
2105144 139 99 177 172 135 197 193 154 210 208 158 214 212 158 214 212 158
2106210 208 158 204 201 155 194 191 148 194 189 146 204 201 155 214 212 158
2107239 239 170 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
2108188 184 146 145 141 105 53 55 47 12 12 12 15 15 15 63 64 60
210963 64 60 41 42 42 31 33 31 23 24 24 17 18 17 12 15 15
211011 13 13 9 11 11 8 9 9 7 9 9 6 8 8 6 8 8
21116 7 7 6 7 7 6 8 8 6 8 8 6 8 8 6 8 8
21126 8 8 7 9 9 7 9 9 7 9 9 7 9 9 7 9 9
21137 9 9 7 9 9 7 9 9 7 9 9 7 9 9 8 8 7
211443 45 43 251 251 187 156 151 111 8 10 10 7 9 9 7 9 9
211521 22 21 51 52 50 55 56 53 55 57 54 58 59 55 58 59 55
211675 75 61 158 153 112 197 193 154 224 223 159 251 251 187 251 251 187
2117251 251 187 251 251 187 251 251 187 214 212 158 204 201 155 194 189 146
2118190 186 136 197 193 154 210 208 158 224 223 159 251 251 187 251 251 187
2119251 251 187 251 251 187 239 239 170 210 208 158 197 193 154 176 171 126
2120125 122 87 36 38 35 14 14 13 14 14 13 15 15 15 15 15 15
212115 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
212215 15 15 14 14 13 13 13 13 12 12 12 10 10 9 3 4 4
21230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21280 0 0
21290 0 0 0 0 0 7 7 5 71 71 57 131 127 93 158 153 112
2130177 172 135 197 193 154 214 212 158 239 239 170 251 251 187 251 251 187
2131238 237 168 210 208 158 204 201 155 197 193 154 204 201 155 214 212 158
2132251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 214 212 158
2133197 193 154 156 151 111 66 65 55 12 12 12 37 39 37 58 59 55
213458 59 55 41 42 42 31 33 31 22 24 23 17 17 17 12 14 14
213510 12 12 8 10 10 6 8 8 6 8 8 6 7 7 6 7 7
21366 7 7 5 7 7 6 7 7 6 7 7 6 8 8 6 8 8
21376 8 8 6 8 8 6 8 8 7 9 9 7 9 9 7 9 9
21387 9 9 6 8 8 6 8 8 6 8 8 6 8 8 6 8 8
213961 63 57 197 193 154 16 19 19 6 8 8 6 8 8 8 9 9
214041 42 42 47 48 46 51 52 50 51 52 50 55 56 53 55 56 53
214171 71 57 158 153 112 197 193 154 224 223 159 251 251 187 251 251 187
2142251 251 187 251 251 187 239 239 170 214 212 158 204 201 155 194 189 146
2143190 186 136 197 193 154 210 208 158 239 239 170 251 251 187 251 251 187
2144251 251 187 251 251 187 251 251 187 224 223 159 204 201 155 177 172 135
2145121 119 87 30 31 28 13 13 13 14 14 13 14 14 13 14 14 13
214614 14 13 14 14 13 15 15 15 15 15 15 14 14 13 13 13 13
214712 12 12 12 12 12 10 10 9 4 5 5 0 0 0 0 0 0
21480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21530 0 0
21540 0 0 0 0 0 0 0 0 48 49 45 131 127 93 174 170 121
2155194 189 146 210 208 158 239 239 170 251 251 187 251 251 187 251 251 187
2156251 251 187 214 212 158 204 201 155 197 193 154 204 201 155 210 208 158
2157239 239 170 251 251 187 251 251 187 251 251 187 239 239 170 214 212 158
2158194 191 148 156 151 111 71 71 57 19 20 19 51 52 50 51 52 50
215951 52 50 41 42 42 30 32 31 21 22 21 17 17 17 13 13 13
21609 11 11 8 9 9 6 8 8 6 7 7 6 7 7 5 7 7
21615 6 5 5 6 5 5 7 7 5 7 7 6 7 7 6 7 7
21626 8 8 6 8 8 6 8 8 6 7 7 6 7 7 6 7 7
21636 7 7 6 8 8 6 8 8 6 8 8 6 8 8 6 8 8
216455 56 53 43 45 43 6 8 8 6 8 8 6 8 8 47 48 46
216560 60 56 47 48 46 46 47 45 47 48 46 38 39 37 10 12 12
216666 65 55 145 141 105 197 193 154 214 212 158 251 251 187 251 251 187
2167251 251 187 251 251 187 224 223 159 210 208 158 194 191 148 184 181 136
2168184 181 136 194 189 146 204 201 155 224 223 159 251 251 187 251 251 187
2169251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 181 176 137
2170115 113 82 21 22 20 13 13 13 13 13 13 13 13 13 13 13 13
217114 14 13 13 13 13 13 13 13 13 13 13 12 12 12 11 11 11
217210 10 9 6 7 7 1 1 1 0 0 0 0 0 0 0 0 0
21730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21780 0 0
21790 0 0 0 0 0 2 2 1 66 65 55 144 139 99 178 174 128
2180204 201 155 214 212 158 251 251 187 251 251 187 251 251 187 251 251 187
2181251 251 187 214 212 158 204 201 155 194 191 148 197 193 154 204 201 155
2182214 212 158 239 239 170 239 239 170 239 239 170 214 212 158 210 208 158
2183184 181 136 149 145 103 66 65 55 41 42 42 47 48 46 46 47 45
218443 45 43 39 40 39 28 31 30 21 22 21 16 16 16 10 12 12
21858 10 10 6 8 8 6 7 7 6 7 7 5 6 5 5 6 5
21865 6 5 5 6 5 5 6 5 5 6 5 5 7 7 5 7 7
21876 7 7 6 7 7 6 7 7 5 7 7 5 7 7 5 7 7
21885 7 7 6 7 7 6 7 7 6 7 7 6 7 7 6 8 8
21896 8 8 6 8 8 6 7 7 6 7 7 46 47 45 156 151 111
2190105 104 92 58 59 55 43 45 43 32 34 33 6 8 8 6 8 8
219149 51 48 125 122 87 181 176 137 204 201 155 214 212 158 239 239 170
2192239 239 170 214 212 158 210 208 158 197 193 154 181 176 137 176 171 126
2193176 171 126 184 181 136 197 193 154 210 208 158 239 239 170 251 251 187
2194251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 177 172 135
219599 98 80 13 13 13 12 12 12 12 12 12 13 13 13 12 12 12
219612 12 12 12 12 12 11 11 11 11 11 11 8 9 9 4 5 5
21971 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22030 0 0
22040 0 0 0 0 0 1 1 0 61 61 53 142 137 94 181 176 137
2205204 201 155 224 223 159 251 251 187 251 251 187 251 251 187 251 251 187
2206251 251 187 214 212 158 197 193 154 190 186 136 184 181 136 188 184 146
2207197 193 154 204 201 155 210 208 158 210 208 158 204 201 155 194 189 146
2208176 171 126 134 131 96 66 65 55 43 45 43 41 42 42 39 40 39
220935 37 36 33 36 34 27 29 28 20 20 20 15 15 15 9 11 11
22108 9 9 6 7 7 5 6 5 5 6 5 4 5 5 4 5 5
22114 5 5 4 5 5 4 5 5 4 5 5 5 6 5 4 5 5
22124 5 5 5 6 5 4 5 5 5 6 5 5 6 5 5 6 5
22135 7 7 5 7 7 5 7 7 5 7 7 5 7 7 5 7 7
22146 7 7 6 7 7 6 7 7 28 31 30 184 179 149 184 179 149
2215145 141 105 84 83 72 27 29 28 5 7 7 5 6 5 16 16 16
221643 44 41 96 95 69 158 153 112 188 184 146 204 201 155 210 208 158
2217204 201 155 197 193 154 184 179 149 177 172 135 168 163 120 164 159 111
2218164 159 111 174 170 121 184 181 136 197 193 154 214 212 158 251 251 187
2219251 251 187 251 251 187 251 251 187 251 251 187 210 208 158 177 172 135
222071 71 57 11 11 11 12 12 12 11 11 11 11 11 11 11 11 11
222110 10 9 10 10 9 8 8 7 3 4 4 0 0 0 0 0 0
22220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22280 0 0
22290 0 0 0 0 0 0 0 0 31 33 31 121 119 87 176 171 126
2230197 193 154 214 212 158 251 251 187 251 251 187 251 251 187 251 251 187
2231239 239 170 210 208 158 194 189 146 178 174 128 174 170 121 176 171 126
2232177 172 135 181 176 137 184 179 149 184 179 149 181 176 137 178 174 128
2233158 153 112 121 119 87 53 55 47 37 39 37 33 36 34 30 32 31
223427 29 28 25 27 26 24 26 24 19 20 19 13 13 13 8 10 10
22356 8 8 6 7 7 5 6 5 4 5 5 4 5 5 4 5 5
22364 5 5 4 5 5 4 5 5 3 4 4 3 4 4 4 5 5
22374 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22385 6 5 5 6 5 5 6 5 5 6 5 5 6 5 5 6 5
22395 6 5 5 6 5 12 14 14 145 141 105 184 179 149 177 172 135
224090 89 73 21 22 21 5 6 5 5 6 5 4 5 5 37 39 37
224138 39 37 61 61 53 134 131 96 168 163 120 184 181 136 188 184 146
2242184 179 149 177 172 135 168 163 120 164 159 111 155 149 109 151 147 98
2243151 147 98 164 159 111 176 171 126 184 179 149 210 208 158 239 239 170
2244251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 158 153 112
224546 47 43 10 10 9 10 10 9 10 10 9 8 9 9 8 9 9
22466 7 7 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0
22470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22530 0 0
22540 0 0 0 0 0 0 0 0 13 12 7 82 81 62 158 153 112
2255188 184 146 210 208 158 239 239 170 251 251 187 251 251 187 251 251 187
2256224 223 159 204 201 155 184 181 136 171 165 117 164 159 111 160 154 106
2257158 153 112 164 159 111 168 163 120 168 163 120 168 163 120 164 159 111
2258142 137 94 96 95 69 43 44 41 27 29 28 26 28 27 23 24 24
225921 22 21 18 19 18 17 17 17 18 19 18 13 13 13 8 8 7
22606 7 7 5 6 5 4 5 5 3 4 4 3 4 4 3 4 4
22613 4 4 3 4 4 3 3 3 3 3 3 3 4 4 3 4 4
22623 4 4 3 4 4 4 5 5 4 5 5 4 5 5 4 5 5
22634 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22644 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22654 5 5 4 5 5 4 5 5 4 5 5 31 33 31 65 66 61
226637 39 37 38 39 37 96 95 69 144 139 99 168 163 120 174 170 121
2267168 163 120 164 159 111 155 149 109 149 145 103 149 143 98 142 137 94
2268149 143 98 151 147 98 164 159 111 177 172 135 197 193 154 210 208 158
2269251 251 187 251 251 187 251 251 187 239 239 170 197 193 154 137 133 100
227024 26 24 8 9 9 8 9 9 8 8 7 6 7 7 2 2 2
22710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22780 0 0
22790 0 0 0 0 0 0 0 0 0 0 0 46 47 43 125 122 87
2280176 171 126 197 193 154 210 208 158 239 239 170 251 251 187 239 239 170
2281214 212 158 197 193 154 181 176 137 164 159 111 151 147 98 149 143 98
2282149 143 98 149 143 98 149 145 103 155 149 109 160 154 106 149 143 98
2283118 116 76 82 81 62 30 31 28 21 22 21 19 20 19 17 17 17
228414 14 13 12 12 12 10 10 9 12 12 12 10 12 12 6 8 8
22854 5 5 3 4 4 3 4 4 3 4 4 3 3 3 3 3 3
22863 3 3 3 3 3 3 3 3 3 3 3 2 3 3 2 3 3
22873 4 4 3 4 4 3 4 4 3 4 4 3 4 4 4 5 5
22884 5 5 3 4 4 3 4 4 3 4 4 3 4 4 3 4 4
22894 5 5 4 5 5 4 5 5 4 5 5 4 5 5 4 5 5
22904 5 5 3 4 4 3 4 4 23 24 24 110 109 94 72 73 67
229139 40 39 22 24 23 46 47 43 103 101 77 142 137 94 155 149 109
2292160 154 106 155 149 109 149 143 98 142 137 94 142 137 94 142 137 94
2293142 137 94 149 143 98 155 149 109 176 171 126 184 179 149 210 208 158
2294239 239 170 251 251 187 251 251 187 214 212 158 184 179 149 105 104 92
229510 10 9 6 7 7 3 4 4 1 1 1 0 0 0 0 0 0
22960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23030 0 0
23040 0 0 0 0 0 0 0 0 0 0 0 12 12 9 82 81 62
2305149 145 103 181 176 137 197 193 154 210 208 158 214 212 158 214 212 158
2306210 208 158 197 193 154 177 172 135 158 153 112 149 143 98 142 137 94
2307142 137 94 142 137 94 149 143 98 151 147 98 151 147 98 131 127 93
2308103 101 77 71 71 57 22 24 23 15 15 15 13 13 13 11 11 11
23098 9 9 6 7 7 6 7 7 4 5 5 8 9 9 6 7 7
23104 5 5 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2
23112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3
23122 3 3 2 3 3 2 3 3 3 4 4 3 4 4 3 4 4
23133 4 4 3 4 4 3 3 3 3 4 4 3 4 4 3 4 4
23143 4 4 3 4 4 3 4 4 3 4 4 3 4 4 3 4 4
23153 4 4 3 4 4 21 22 21 145 141 105 145 141 105 72 73 67
231617 18 17 3 4 4 21 22 20 66 65 55 118 116 76 142 137 94
2317149 143 98 151 147 98 149 143 98 142 137 94 142 137 94 142 137 94
2318142 137 94 149 143 98 155 149 109 168 163 120 184 179 149 210 208 158
2319239 239 170 251 251 187 251 251 187 210 208 158 177 172 135 71 71 57
23203 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23280 0 0
23290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 38 35
2330115 113 82 158 153 112 181 176 137 197 193 154 204 201 155 210 208 158
2331204 201 155 188 184 146 177 172 135 164 159 111 149 145 103 142 137 94
2332142 137 94 142 137 94 149 143 98 151 147 98 149 143 98 125 122 87
233396 95 69 61 61 53 16 17 12 8 9 9 8 8 7 6 7 7
23344 5 5 3 4 4 3 3 3 3 3 3 3 3 3 5 6 5
23353 4 4 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2
23362 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2
23372 2 2 2 2 2 2 3 3 2 3 3 2 3 3 2 3 3
23383 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
23393 3 3 2 3 3 2 3 3 3 4 4 3 4 4 3 4 4
23403 4 4 3 4 4 3 4 4 8 9 9 8 8 7 3 3 3
23413 3 3 3 3 3 9 9 8 36 38 35 82 81 62 118 116 76
2342142 137 94 151 147 98 151 147 98 151 147 98 149 143 98 149 143 98
2343149 143 98 151 147 98 160 154 106 176 171 126 188 184 146 210 208 158
2344239 239 170 251 251 187 239 239 170 210 208 158 156 151 111 31 33 31
23450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23530 0 0
23540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 7 5
235566 65 55 125 122 87 158 153 112 181 176 137 194 189 146 197 193 154
2356197 193 154 184 179 149 177 172 135 168 163 120 156 151 111 151 147 98
2357151 147 98 151 147 98 151 147 98 161 156 96 149 143 98 118 116 76
235882 81 62 53 55 47 12 12 9 4 5 5 3 4 4 3 3 3
23593 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 2 2
23603 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23611 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2
23621 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 3 3
23632 3 3 2 3 3 2 3 3 2 3 3 2 2 2 2 2 2
23642 3 3 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3
23652 3 3 2 3 3 2 3 3 2 3 3 2 3 3 3 3 3
23663 3 3 3 3 3 72 73 67 61 61 53 53 55 47 96 95 69
2367131 127 93 151 147 98 161 156 96 161 156 96 151 147 98 151 147 98
2368161 156 96 160 154 106 164 159 111 177 172 135 197 193 154 210 208 158
2369239 239 170 251 251 187 224 223 159 197 193 154 131 127 93 9 9 8
23700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23780 0 0
23790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
238024 26 24 82 81 62 131 127 93 164 159 111 178 174 128 188 184 146
2381188 184 146 188 184 146 181 176 137 176 171 126 168 163 120 164 159 111
2382160 154 106 160 154 106 160 154 106 160 154 106 151 147 98 125 122 87
238382 81 62 61 61 53 12 12 9 3 3 3 3 3 3 2 2 2
23842 2 2 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
23850 0 0 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
23861 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
23871 1 1 1 1 1 1 2 2 1 2 2 1 2 2 1 2 2
23881 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23892 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
23902 3 3 2 3 3 2 3 3 2 3 3 2 3 3 2 3 3
23912 3 3 30 32 31 72 73 67 31 33 31 36 38 35 82 81 62
2392118 116 76 149 143 98 161 156 96 161 156 96 161 156 96 160 154 106
2393165 161 109 165 161 109 176 171 126 188 184 146 204 201 155 214 212 158
2394239 239 170 239 239 170 214 212 158 184 179 149 82 81 62 0 0 0
23950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24030 0 0
24040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24052 2 2 43 44 41 96 95 69 131 127 93 160 154 106 176 171 126
2406184 181 136 184 181 136 184 181 136 181 176 137 178 174 128 174 170 121
2407171 165 117 173 167 111 173 167 111 173 167 111 160 154 106 131 127 93
240896 95 69 66 65 55 16 17 12 2 2 2 1 1 1 1 1 1
24091 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
24100 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
24111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24121 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24131 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 2 2
24142 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24152 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24162 2 2 2 2 2 2 2 2 10 9 6 30 31 28 71 71 57
2417118 116 76 149 143 98 165 161 109 165 161 109 165 161 109 173 167 111
2418173 167 111 176 171 126 184 181 136 197 193 154 210 208 158 224 223 159
2419251 251 187 239 239 170 210 208 158 168 163 120 40 41 39 0 0 0
24200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24280 0 0
24290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24300 0 0 13 12 7 61 61 53 96 95 69 131 127 93 160 154 106
2431176 171 126 184 181 136 184 181 136 188 184 146 184 181 136 184 181 136
2432184 181 136 186 182 128 186 182 128 178 174 128 174 170 121 149 145 103
2433118 116 76 82 81 62 21 22 20 1 1 1 1 1 1 0 0 0
24340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24350 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
24361 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24371 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24381 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
24391 2 2 1 2 2 1 2 2 1 2 2 1 2 2 2 2 2
24402 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
24412 2 2 2 2 2 2 2 2 3 3 3 30 31 28 66 65 55
2442118 116 76 149 143 98 165 161 109 173 167 111 173 167 111 174 170 121
2443186 182 128 190 186 136 197 193 154 210 208 158 224 223 159 251 251 187
2444251 251 187 239 239 170 197 193 154 137 133 100 12 12 9 0 0 0
24450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24530 0 0
24540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24550 0 0 0 0 0 30 31 28 71 71 57 103 101 77 134 131 96
2456164 159 111 176 171 126 184 181 136 188 184 146 194 189 146 197 193 154
2457197 193 154 197 193 154 194 191 148 194 189 146 190 186 136 176 171 126
2458145 141 105 103 101 77 40 41 39 0 0 0 0 0 0 0 0 0
24590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24611 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24621 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24631 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24641 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2 2
24651 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
24661 2 2 1 2 2 1 2 2 1 2 2 30 31 28 71 71 57
2467118 116 76 160 154 106 173 167 111 178 174 128 186 182 128 190 186 136
2468194 191 148 204 201 155 210 208 158 224 223 159 251 251 187 251 251 187
2469251 251 187 214 212 158 184 179 149 84 83 72 0 0 0 0 0 0
24700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24780 0 0
24790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24800 0 0 0 0 0 5 5 3 43 44 41 82 81 62 103 101 77
2481142 137 94 165 161 109 178 174 128 190 186 136 197 193 154 204 201 155
2482210 208 158 210 208 158 210 208 158 210 208 158 210 208 158 197 193 154
2483177 172 135 145 141 105 79 78 62 5 4 3 0 0 0 0 0 0
24840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24860 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
24871 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24881 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24891 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24901 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
24911 1 1 1 1 1 1 2 2 1 2 2 30 31 28 82 81 62
2492142 137 94 165 161 109 178 174 128 190 186 136 194 191 148 204 201 155
2493210 208 158 214 212 158 239 239 170 251 251 187 251 251 187 251 251 187
2494251 251 187 210 208 158 168 163 120 36 38 35 0 0 0 0 0 0
24950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25030 0 0
25040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25050 0 0 0 0 0 0 0 0 16 17 12 53 55 47 82 81 62
2506118 116 76 151 147 98 171 165 117 184 181 136 194 191 148 210 208 158
2507214 212 158 224 223 159 239 239 170 239 239 170 224 223 159 214 212 158
2508197 193 154 176 171 126 115 113 82 24 26 24 0 0 0 0 0 0
25090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25110 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
25121 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25131 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25141 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25151 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25161 1 1 1 1 1 1 1 1 1 1 1 40 41 39 103 101 77
2517151 147 98 176 171 126 190 186 136 197 193 154 210 208 158 214 212 158
2518239 239 170 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
2519239 239 170 197 193 154 110 109 94 3 4 3 0 0 0 0 0 0
25200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25280 0 0
25290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25300 0 0 0 0 0 0 0 0 0 0 0 30 31 28 66 65 55
253196 95 69 125 122 87 160 154 106 178 174 128 194 189 146 204 201 155
2532214 212 158 239 239 170 251 251 187 251 251 187 251 251 187 239 239 170
2533210 208 158 188 184 146 149 145 103 61 61 53 0 0 0 0 0 0
25340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25370 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25381 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25391 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25401 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25411 1 1 1 1 1 1 1 1 1 1 1 61 61 53 131 127 93
2542164 159 111 184 181 136 197 193 154 210 208 158 224 223 159 251 251 187
2543251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 251 251 187
2544210 208 158 168 163 120 43 44 41 0 0 0 0 0 0 0 0 0
25450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25530 0 0
25540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25550 0 0 0 0 0 0 0 0 0 0 0 4 3 2 36 38 35
255671 71 57 96 95 69 142 137 94 165 161 109 184 181 136 197 193 154
2557210 208 158 239 239 170 251 251 187 251 251 187 251 251 187 251 251 187
2558214 212 158 197 193 154 168 163 120 103 101 77 7 7 5 0 0 0
25590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
25631 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25641 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25651 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25661 1 1 0 0 0 0 0 0 0 0 0 82 81 62 142 137 94
2567174 170 121 194 189 146 210 208 158 224 223 159 251 251 187 251 251 187
2568251 251 187 251 251 187 251 251 187 251 251 187 251 251 187 224 223 159
2569184 179 149 99 98 80 3 3 3 0 0 0 0 0 0 0 0 0
25700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25780 0 0
25790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 7 5
258143 44 41 82 81 62 118 116 76 142 137 94 171 165 117 190 186 136
2582204 201 155 224 223 159 251 251 187 251 251 187 251 251 187 251 251 187
2583214 212 158 197 193 154 174 170 121 125 122 87 30 31 28 0 0 0
25840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
25891 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
25900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25910 0 0 0 0 0 0 0 0 3 4 3 82 81 62 149 143 98
2592176 171 126 194 191 148 210 208 158 239 239 170 251 251 187 251 251 187
2593251 251 187 251 251 187 251 251 187 251 251 187 239 239 170 204 201 155
2594145 141 105 30 31 28 0 0 0 0 0 0 0 0 0 0 0 0
25950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26030 0 0
26040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
260610 9 6 46 47 43 82 81 62 118 116 76 149 143 98 174 170 121
2607194 189 146 210 208 158 224 223 159 251 251 187 251 251 187 224 223 159
2608210 208 158 194 191 148 174 170 121 134 131 96 53 55 47 0 0 0
26090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26160 0 0 0 0 0 0 0 0 7 7 5 96 95 69 149 143 98
2617176 171 126 194 191 148 210 208 158 239 239 170 251 251 187 251 251 187
2618251 251 187 251 251 187 251 251 187 239 239 170 210 208 158 177 172 135
261975 75 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26280 0 0
26290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26310 0 0 10 9 6 46 47 43 82 81 62 118 116 76 149 143 98
2632176 171 126 194 191 148 210 208 158 214 212 158 214 212 158 210 208 158
2633197 193 154 184 181 136 164 159 111 131 127 93 53 55 47 0 0 0
26340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26410 0 0 0 0 0 0 0 0 7 7 5 96 95 69 149 143 98
2642174 170 121 194 189 146 204 201 155 214 212 158 239 239 170 251 251 187
2643251 251 187 251 251 187 239 239 170 210 208 158 184 179 149 110 109 94
264412 12 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26530 0 0
26540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26560 0 0 0 0 0 10 9 6 43 44 41 82 81 62 115 113 82
2657144 139 99 168 163 120 188 184 146 197 193 154 197 193 154 194 189 146
2658184 181 136 174 170 121 151 147 98 118 116 76 36 38 35 0 0 0
26590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26660 0 0 0 0 0 0 0 0 4 3 2 82 81 62 142 137 94
2667171 165 117 186 182 128 194 191 148 210 208 158 214 212 158 224 223 159
2668239 239 170 224 223 159 210 208 158 184 179 149 137 133 100 36 38 35
26690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26780 0 0
26790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26810 0 0 0 0 0 0 0 0 7 7 5 36 38 35 71 71 57
2682103 101 77 131 127 93 155 149 109 168 163 120 168 163 120 168 163 120
2683164 159 111 149 143 98 125 122 87 82 81 62 13 12 7 0 0 0
26840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26910 0 0 0 0 0 0 0 0 0 0 0 61 61 53 125 122 87
2692160 154 106 174 170 121 184 181 136 194 189 146 204 201 155 210 208 158
2693210 208 158 204 201 155 184 179 149 145 141 105 61 61 53 0 0 0
26940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27030 0 0
27040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27060 0 0 0 0 0 0 0 0 0 0 0 3 3 2 30 31 28
270761 61 53 82 81 62 103 101 77 121 119 87 125 122 87 125 122 87
2708118 116 76 103 101 77 79 78 62 24 26 24 0 0 0 0 0 0
27090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27160 0 0 0 0 0 0 0 0 0 0 0 25 27 25 96 95 69
2717142 137 94 160 154 106 171 165 117 178 174 128 184 181 136 184 181 136
2718181 176 137 177 172 135 145 141 105 75 75 61 5 5 3 0 0 0
27190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27280 0 0
27290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
273216 17 12 40 41 39 61 61 53 71 71 57 71 71 57 71 71 57
273366 65 55 43 44 41 12 12 9 0 0 0 0 0 0 0 0 0
27340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27410 0 0 0 0 0 0 0 0 0 0 0 1 1 1 46 47 43
274296 95 69 125 122 87 142 137 94 149 145 103 155 149 109 155 149 109
2743145 141 105 121 119 87 66 65 55 7 7 5 0 0 0 0 0 0
27440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27530 0 0
27540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27570 0 0 1 1 1 16 17 12 24 26 24 25 27 25 19 20 18
27587 7 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1
276725 27 25 61 61 53 82 81 62 96 95 69 96 95 69 82 81 62
276861 61 53 25 27 25 2 2 1 0 0 0 0 0 0 0 0 0
27690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27780 0 0
27790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27920 0 0 0 0 0 5 6 5 13 12 7 10 9 6 3 4 3
27930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28030 0 0
28040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28280 0 0
diff --git a/drivers/video/logo/logo_linux_vga16.ppm b/drivers/video/logo/logo_linux_vga16.ppm
index 12ac3a5454c0..1850c15e6feb 100644
--- a/drivers/video/logo/logo_linux_vga16.ppm
+++ b/drivers/video/logo/logo_linux_vga16.ppm
@@ -1,2739 +1,1604 @@
1P3 1P3
2142 114 2# Standard 16-color Linux logo
380 80
3255 4255
40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0
60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0
100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0
110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 0
120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0
130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0
140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0
150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0
160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0
170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 0 0 0 0 0 0 0 0 0
180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0
190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0
200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0
210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0
230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 0 0 0 0 0 0 0 0 0 0 0 0
240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0
250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0
260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0
270 0 0 0 0 0 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0
280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 0 0 0 0 0 0 0 0 0 0 0 0
290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0
300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0
310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0
320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 0 0 0 0 0 0
330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 34 0 0 0 0 0 0 0 0 0 0 0 0
340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 0 0 0
350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 0 0 0 0 0 0 0 0 0 0 0 0
360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0 0
370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38 0 0 0 0 0 0 0 0 0 0 0 0
380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 0 0 0 0 0 0 0 0 0 0 0 0
390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0
400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 0 0 0 0 0 0 0 0 0
410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0
420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 43 0 0 0 0 0 0 0 0 0 0 0 0
430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0
440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 0 0 0 0 0 0 0 0 0 0 0
460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0
470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0
480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 0 0 0 0 0 0 0
490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0
500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0
510 0 0 0 0 0 0 0 0 0 0 0 52 0 0 0 0 0 0 0 0 0 0 0 0
520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 0 0 0 0 0 0 0 0 0 0 0 0
530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 85 85 85 85 85 85 85 85 85 85 85 85
540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 85 85 85 85 85 85 85 85 85 0 0 0
550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0
560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 0 0 0 0 0 0 0 0 0 0 0 0
570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 0 0 0 0 0 0 0 0 0 0 0 0
580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 0 0 0 0 0 0 0 0 0 0 0 0
590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0
600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 0 0 0 0 0 0 0 0 0 0 0 0
610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 0 0 0 0 0 0 0 0 0 0 0 0
620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 0 0 0 0 0 0 0 0 0 0 0 0
630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0
640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 0 0 0 0 0
650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 0 0 0 0 0 0 0 0 0 0 0 0
660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 0 0 0 0 0 0 0 0 0 0 0 0
670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0
680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 0 0 0 0 0 0 0 0 0
690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0
700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 0 0 0 0 0 0 0 0 0
710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 0 0 0 0 0 0 0 0 0
720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 73 0 0 0 0 0 0 85 85 85 85 85 85
730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 85 85 85 0 0 0 0 0 0 0 0 0
740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 0 0 0 0 0 0 0 0 0 85 85 85
750 0 0 0 0 0 0 0 0 0 0 0 76 85 85 85 85 85 85 0 0 0 0 0 0
760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 0 0 0 0 0 0 0 0 0 0 0 0
770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 0 0 0 0 0 0 0 0 0
780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0
790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0
800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 0 0 0 0 0 0 0 0 0 0 0 0
810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 0 0 0 0 0 0 0 0 0 0 0 0
820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 0 0 0 0 0 0 0 0 0 0 0 0
830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0
840 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 0 0 0 0 0 0 0 0 0 0 0 0
8585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 86 0 0 0 0 0 0 0 0 0 0 0 0
860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 0 0 0 0 0 0 0 0 0 0 0 0
870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 0 0 0 0 0 0 0 0 0 0 0 0
880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 89 0 0 0 0 0 0 0 0 0 0 0 0
890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0
900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 0 0 0 0 0 0 0 0 0 0 0 0
910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 92 0 0 0 0 0 0 0 0 0 0 0 0
920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 0 0 0 85 85 85 0 0 0 0 0 0
930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94 0 0 0 0 0 0 0 0 0 0 0 0
940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 0 0 0 0 0 0 0 0 0 0 0 0
950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 0 0 0 85 85 85 85 85 85
960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 97 0 0 0 0 0 0 0 0 0 0 0 0
970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 0 0 0 0 0 0 0 0 0 0 0 0
980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 0
990 0 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0
1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0 0
1010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 0 0
1020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 103 0 0 0 0 0 0 0 0 0 0 0 0
1030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 0 0 0 0 0 0 0 0 0 0 0 0
1040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 0 0 0 0 0 0 0 0 0
1050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 0 0 0 0 0 0 0 0 0
1060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0
1070 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 108 0 0 0 0 0 0 0 0 0 0 0 0
10885 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 109 0 0 0 0 0 0 0 0 0 0 0 0
1090 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 110 0 0 0 0 0 0 0 0 0 0 0 0
1100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 111 0 0 0 0 0 0 0 0 0 0 0 0
1110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0
1120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 113 85 85 85 0 0 0 0 0 0 0 0 0
1130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 0 0 0 0 0 0 0 0 0 0 0 0
1140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 0 0 0 0 0 0 0 0 0 0 0 0
1150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 116 0 0 0 0 0 0 0 0 0 85 85 85
1160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 85 85 85 0 0 0 0 0 0 0 0 0
1170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 0 0 0 0 0 0 0 0 0 0 0
1180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0
1190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0
1200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 0 0 0 0 0 0 0 0 0 0 0 0
1210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 0 0 0 0 0 0 0 0 0 0 0 0
1220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 0 0 0 0 0 0 0 0 0 0 0 0
1230 0 0 0 0 0 0 0 0 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0 0
1240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 0 0 0 0 0 0 0
1250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 0 0 0 0 0 0 0 0 0 0 0 0
1260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 0 0 0 0 0 0 0 0 0
1270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0
1280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 0 0 0 0 0 0 0 0 0 0 0 0
1290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 0 0 0 0 0 0 0 0 0 0 0 0
1300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 0 0 0 0 0 0 0 0 0 0 0 0
13185 85 85 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 132 0 0 0 0 0 0 0 0 0 85 85 85
1320 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0
13385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 134 0 0 0 0 0 0 0 0 0 0 0 0
1340 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 135 0 0 0 0 0 0 0 0 0 0 0 0
1350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 0 0 0 0 0 0 0 0 0 0 0 0
1360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 85 85 85 85 85 85 0 0 0 0 0 0
1370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 138 0 0 0 0 0 0 0 0 0 0 0 0
1380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 0 0 0 0 0 0 0 0 0 0 0 0
1390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 140 0 0 0 0 0 0 0 0 0 0 0 0
1400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 0 0 0 0 0 0 0 0 0 0 0 0
1410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 0 0 0 0 0 0 0 0 0 0 0 0
1420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 143 0 0 0 0 0 0 0 0 0 0 0 0
1430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 0 0 0 0 0 0 0 0 0
1440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 0 0 0 0 0 0 0 0 0 0 0 0
1450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 0 0 0 0 0 0 0 0 0
1460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 0 0 0 0 0 0 0 0 0 0 0 0
1470 0 0 0 0 0 0 0 0 0 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0
1480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 0 0 0 0 0 0 0 0 0 0 0 0
1490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 0 0 0 0 0 0 0 0 0 0 0 0
1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0
1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 0 0 0 0 0 0 0 0 0 85 85 85
1520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 0 0 0 0 0 0 0 0 0 0 0 0
1530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 154 0 0 0 0 0 0 0 0 0 0 0 0
1540 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 155 0 0 0 0 0 0 0 0 0 0 0 0
15585 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 156 85 85 85 170 170 170 0 0 0 0 0 0
15685 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 157 0 0 0 85 85 85 0 0 0 0 0 0
1570 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 158 0 0 0 0 0 0 0 0 0 0 0 0
1580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 159 0 0 0 0 0 0 0 0 0 0 0 0
1590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0
1600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 0 0 0 0 0 0 0 0 0 0 0 0
1610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 162 0 0 0 0 0 0 0 0 0 0 0 0
1620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 0 0 0 0 0 0 0 0 0 0 0 0
1630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 0 0 0 0 0 0 0 0 0 0 0 0
1640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 165 0 0 0 0 0 0 0 0 0 0 0 0
1650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 0 0 0 0 0 0 0 0 0 0 0 0
1660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 0 0 0 0 0 0 0 0 0 0 0 0
1670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 168 0 0 0 0 0 0 0 0 0 0 0 0
1680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 0 0 0 0 0 0 0 0 0 0 0 0
1690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 0 0 0 0 0 0 0 0 0 0 0
1700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 0 0 0 0 0 0 0 0 0 0 0 0
1710 0 0 0 0 0 0 0 0 0 0 0 172 0 0 0 0 0 0 85 85 85 0 0 0
1720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 173 0 0 0 0 0 0 0 0 0 0 0 0
1730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 0 0 0 0 0 0 0 0 0 0 0 0
1740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 0 0 0 0 0 0 0 0 0 0 0 0
1750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 176170 170 170 170 170 170 85 85 85 0 0 0
1760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 0 0 0 0 0 0 85 85 85 0 0 0
1770 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 178 0 0 0 0 0 0 0 0 0 0 0 0
17885 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 179 0 0 0 0 0 0 0 0 0 0 0 0
1790 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 180 0 0 0 0 0 0 0 0 0 0 0 0
1800 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 181 0 0 0 0 0 0 0 0 0 0 0 0
1810 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 182 0 0 0 0 0 0 0 0 0 0 0 0
18285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 183 0 0 0 0 0 0 0 0 0 0 0 0
1830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 0 0 0 0 0 0 0 0 0 0 0 0
1840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 185 0 0 0 0 0 0 0 0 0 0 0 0
1850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 0 0 0 0 0 0 0 0 0 0 0 0
1860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 0 0 0 0 0 0 0 0 0 0 0 0
1870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 188 0 0 0 0 0 0 0 0 0 0 0 0
1880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 0 0 0 0 0 0 0 0 0 0 0 0
1890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 0 0 0 0 0 0 0 0 0 0 0 0
1900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 0 0 0 0 0 0 0 0 0 0 0 0
1910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 192 0 0 0 0 0 0 85 85 85 0 0 0
1920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 0 0 0 0 0 0 0 0 0 0 0 0
1930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 0 0 0 0 0 0 0 0 0 0 0 0
1940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 195 0 0 0 0 0 0 0 0 0 0 0 0
1950 0 0 0 0 0 0 0 0 0 0 0 196 0 0 0 85 85 85 0 0 0 0 0 0
1960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 0 0 0 0 0 0 0 0 0 85 85 85
1970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 0 0 0 0 0 0 0 0 0 0 0 0
1980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0
1990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0
2000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 0 0 0 0 0 0 0 0 0 0 0 0
2010 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 202 0 0 0 0 0 0 0 0 0 0 0 0
20285 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 203 0 0 0 0 0 0 0 0 0 0 0 0
20385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 204 0 0 0 0 0 0 0 0 0 0 0 0
2040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 205 0 0 0 0 0 0 0 0 0 0 0 0
2050 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 206 0 0 0 0 0 0 0 0 0 0 0 0
2060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 0 0 0 0 0 0 0 0 0 0 0 0
2070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 0 0 0 0 0 0 0 0 0
2080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0
2090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 0 0 0 0 0 0 0 0 0 0 0 0
2100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 211 0 0 0 0 0 0 0 0 0 0 0 0
2110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 0 0 0 0 0 0 85 85 85 0 0 0
2120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 0 0 0 0 0 0 0 0 0 0 0 0
2130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 0 0 0 0 0 0 0 0 0 0 0 0
2140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 0 0 0 0 0 0 0 0 0 0 0 0
2150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 216 0 0 0 0 0 0 0 0 0 0 0 0
2160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 0 0 0 0 0 0 0 0 0 85 85 85
2170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 0 0 0 0 0 0 0 0 0 0 0 0
2180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 0 0 0 0 0 0 0 0 0 0 0 0
2190 0 0 0 0 0 0 0 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0
2200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 0 0 0 0 0 0 0 0 0 0 0 0
2210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 0 0 0 0 0 0 0 0 0 0 0 0
2220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 0 0 0 0 0 0 0 0 0 0 0 0
2230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 0 0 0 0 0 0 0 0 0
2240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 0 0 0 0 0 0 0 0 0 0 0 0
2250 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 226 0 0 0 0 0 0 0 0 0 0 0 0
22685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 227 0 0 0 0 0 0 0 0 0 0 0 0
2270 0 0 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 228 0 0 0 0 0 0 0 0 0 0 0 0
22885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 229 0 0 0 0 0 0 0 0 0 0 0 0
2290 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 230 0 0 0 0 0 0 0 0 0 0 0 0
23085 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 231 0 0 0 0 0 0 0 0 0 0 0 0
23185 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 232 0 0 0 85 85 85 0 0 0 0 0 0
2320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 0 0 0 0 0 0 0 0 0 0 0 0
2330 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 234 0 0 0 0 0 0 0 0 0 0 0 0
2340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 0 0 0 0 0 0 0 0 0 0 0 0
2350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 0 0 0 0 0 0 0 0 0 0 0 0
2360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 0 0 0 0 0 0 0 0 0 85 85 85
2370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 0 0 0 0 0 0 0 0 0 0 0 0
2380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 0 0 0 0 0 0 0 0 0 0 0 0
2390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0
2400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 0 0 0 0 0 0 0 0 0 0 0 0
2410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 0 0 0 0 0 0 0 0 0 0 0 0
2420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 0 0 0 0 0 0 0 0 0 0 0 0
2430 0 0 0 0 0 0 0 0 0 0 0 244 0 0 0 0 0 0 0 0 0 0 0 0
2440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 0 0 0 0 0 0 0
2450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 0 0 0 0 0 0 0 0 0 0 0 0
2460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 0 0 0 0 0 0 0 0 0 0 0 0
2470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 0 0 0 0 0 0 0 0 0
2480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 0 0 0 0 0 0 0 0 0 0 0 0
2490 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 250 0 0 0 0 0 0 0 0 0 0 0 0
25085 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 251 0 0 0 0 0 0 0 0 0 0 0 0
2510 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 252 0 0 0 85 85 85 0 0 0 0 0 0
2520 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 253 0 0 0 0 0 0 0 0 0 0 0 0
2530 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 254 0 0 0 0 0 0 0 0 0 0 0 0
2540 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0
2550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 256 0 0 0 0 0 0 0 0 0 0 0 0
2560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 257 0 0 0 0 0 0 0 0 0 0 0 0
2570 0 0 85 85 85 170 170 170 170 85 0 170 170 170 85 85 85 258 85 85 85 0 0 0 0 0 0 0 0 0
2580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 259 0 0 0 0 0 0 0 0 0 0 0 0
2590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 260 0 0 0 0 0 0 0 0 0 0 0 0
2600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 261 0 0 0 0 0 0 0 0 0 0 0 0
2610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 262 0 0 0 0 0 0 0 0 0 0 0 0
2620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 263 0 0 0 0 0 0 0 0 0 0 0 0
2630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 264 0 0 0 0 0 0 0 0 0 0 0 0
2640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 265 0 0 0 0 0 0 0 0 0 0 0 0
2650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 266 0 0 0 0 0 0 0 0 0 0 0 0
2660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 267 0 0 0 0 0 0 0 0 0 0 0 0
2670 0 0 0 0 0 0 0 0 0 0 0 268 0 0 0 0 0 0 0 0 0 0 0 0
2680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 269 0 0 0 0 0 0 0 0 0 0 0 0
2690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 270 0 0 0 0 0 0 0 0 0 0 0 0
2700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 0 0 0 0 0 0 0
2710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272 0 0 0 85 85 85 0 0 0 0 0 0
2720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 273 0 0 0 0 0 0 0 0 0 0 0 0
2730 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 274 0 0 0 0 0 0 0 0 0 0 0 0
27485 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 275 0 0 0 0 0 0 0 0 0 0 0 0
2750 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 276 0 0 0 0 0 0 0 0 0 0 0 0
27685 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 277 0 0 0 0 0 0 0 0 0 0 0 0
27785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 278 85 85 85 0 0 0 0 0 0 0 0 0
27885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 279 0 0 0 0 0 0 0 0 0 0 0 0
2790 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 280 0 0 0 0 0 0 0 0 0 0 0 0
2800 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 281 0 0 0 0 0 0 0 0 0 0 0 0
281170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 85 85 85 282 0 0 0 0 0 0 0 0 0 0 0 0
2820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 283 0 0 0 0 0 0 0 0 0 0 0 0
2830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 284 0 0 0 0 0 0 0 0 0 0 0 0
2840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 285 0 0 0 0 0 0 0 0 0 0 0 0
2850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 286 0 0 0 0 0 0 0 0 0 0 0 0
2860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 287 0 0 0 0 0 0 0 0 0 0 0 0
2870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 288 0 0 0 0 0 0 0 0 0 0 0 0
2880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 289 0 0 0 0 0 0 0 0 0 0 0 0
2890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 290 0 0 0 0 0 0 0 0 0 0 0 0
2900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 291 0 0 0 0 0 0 0 0 0 0 0 0
2910 0 0 0 0 0 0 0 0 0 0 0 292 0 0 0 85 85 85 0 0 0 0 0 0
2920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 293 0 0 0 85 85 85 170 170 170 0 0 0
2930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 294 0 0 0 0 0 0 0 0 0 0 0 0
2940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295 0 0 0 0 0 0 170 170 170 170 170 170
2950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 296170 170 170 0 0 0 0 0 0 0 0 0
2960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 297 0 0 0 0 0 0 0 0 0 0 0 0
2970 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 298 85 85 85 0 0 0 0 0 0 0 0 0
29885 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 299 0 0 0 0 0 0 0 0 0 0 0 0
29985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 300 0 0 0 0 0 0 0 0 0 0 0 0
3000 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
3010 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 302 0 0 0 0 0 0 0 0 0 0 0 0
3020 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 303 0 0 0 0 0 0 0 0 0 0 0 0
3030 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 304 0 0 0 0 0 0 0 0 0 0 0 0
3040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170 305 0 0 0 0 0 0 0 0 0 0 0 0
305255 255 85 170 170 170 170 170 170 170 85 0 85 255 85 170 85 0 306 0 0 0 0 0 0 0 0 0 0 0 0
3060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 0 0 0 0 0 0
3070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 308 0 0 0 0 0 0 0 0 0 0 0 0
3080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 309 0 0 0 0 0 0 0 0 0 0 0 0
3090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 310 0 0 0 0 0 0 0 0 0 0 0 0
3100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 311 0 0 0 0 0 0 0 0 0 0 0 0
3110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 312 0 0 0 85 85 85 0 0 0 0 0 0
3120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 313 85 85 85 170 170 170 170 170 170 170 170 170
3130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 314 0 0 0 0 0 0 0 0 0 0 0 0
3140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 315 0 0 0 170 170 170 255 255 255 255 255 255
3150 0 0 0 0 0 0 0 0 0 0 0 316255 255 255 170 170 170 0 0 0 0 0 0
3160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 317 0 0 0 0 0 0 0 0 0 0 0 0
3170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 318 85 85 85 0 0 0 0 0 0 0 0 0
3180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 319 0 0 0 0 0 0 0 0 0 0 0 0
3190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0
3200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 321 0 0 0 0 0 0 0 0 0 0 0 0
3210 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 322 0 0 0 0 0 0 0 0 0 0 0 0
32285 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 323 0 0 0 0 0 0 0 0 0 0 0 0
3230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 324 0 0 0 0 0 0 0 0 0 0 0 0
3240 0 0 85 85 85 0 0 0 0 0 0 85 85 85 85 85 85 325 0 0 0 0 0 0 0 0 0 0 0 0
3250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 326 0 0 0 0 0 0 0 0 0 0 0 0
3260 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 327 0 0 0 0 0 0 0 0 0 0 0 0
3270 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 328 0 0 0 0 0 0 0 0 0 0 0 0
32885 85 85 0 0 0 0 0 0 85 85 85 170 170 170 170 85 0 329 0 0 0 0 0 0 0 0 0 0 0 0
329170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 85 85 85 330 0 0 0 0 0 0 0 0 0 0 0 0
3300 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 331 0 0 0 0 0 0 0 0 0 0 0 0
3310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 332 0 0 0 85 85 85 0 0 0 85 85 85
3320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333170 170 170 170 170 170 255 255 255 255 255 255
3330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 0 0 0 0 0 0 0 0 0 0 0 0
3340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 335170 170 170 255 255 255 170 170 170 170 170 170
3350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 336255 255 255 170 170 170 0 0 0 0 0 0
3360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 337 0 0 0 0 0 0 0 0 0 0 0 0
3370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 338 85 85 85 0 0 0 0 0 0 0 0 0
3380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 339 0 0 0 0 0 0 0 0 0 0 0 0
3390 0 0 0 0 0 0 0 0 0 0 0 340 0 0 0 0 0 0 0 0 0 0 0 0
3400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 341 0 0 0 0 0 0 0 0 0 0 0 0
3410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 342 0 0 0 0 0 0 0 0 0 0 0 0
3420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 343 0 0 0 0 0 0 0 0 0 0 0 0
3430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 344 0 0 0 0 0 0 0 0 0 0 0 0
3440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 345 0 0 0 0 0 0 0 0 0 0 0 0
3450 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 346 0 0 0 0 0 0 0 0 0 0 0 0
3460 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 347 0 0 0 0 0 0 0 0 0 0 0 0
34785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 348 0 0 0 0 0 0 0 0 0 0 0 0
3480 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 349 0 0 0 0 0 0 0 0 0 0 0 0
34985 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 350 0 0 0 0 0 0 0 0 0 0 0 0
35085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 351 0 0 0 0 0 0 0 0 0 0 0 0
3510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 352 0 0 0 85 85 85 0 0 0 85 85 85
3520 0 0 0 0 0 85 85 85 85 85 85 170 85 0 170 170 170 353170 170 170 0 0 0 0 0 0 255 255 255
353170 170 170 170 85 0 170 170 170 170 170 170 170 85 0 85 85 85 354 85 85 85 0 0 0 0 0 0 0 0 0
3540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 355255 255 255 170 170 170 0 0 0 85 85 85
3550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 356170 170 170 255 255 255 170 170 170 0 0 0
3560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 357 0 0 0 0 0 0 0 0 0 0 0 0
3570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 358 85 85 85 0 0 0 0 0 0 0 0 0
3580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 359 0 0 0 0 0 0 0 0 0 0 0 0
3590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 360 0 0 0 0 0 0 0 0 0 0 0 0
3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 361 0 0 0 0 0 0 0 0 0 0 0 0
3610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 362 0 0 0 0 0 0 0 0 0 0 0 0
3620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 363 0 0 0 0 0 0 0 0 0 0 0 0
3630 0 0 0 0 0 0 0 0 0 0 0 364 0 0 0 0 0 0 0 0 0 0 0 0
3640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 0 0 0 0 0 0 0 0 0 0 0 0
3650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 0 0 0 0 0 0 0 0
3660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 367 0 0 0 0 0 0 0 0 0 0 0 0
3670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 368 0 0 0 0 0 0 0 0 0 0 0 0
3680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 369 0 0 0 0 0 0 0 0 0 0 0 0
3690 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 370 0 0 0 0 0 0 0 0 0 0 0 0
37085 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 371 0 0 0 0 0 0 0 0 0 0 0 0
3710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 372 0 0 0 85 85 85 0 0 0 85 85 85
37285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 373 85 85 85 0 0 0 0 0 0 170 170 170
37385 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 374 85 85 85 0 0 0 0 0 0 0 0 0
37485 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 375255 255 255 85 85 85 0 0 0 0 0 0
37585 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 376 85 85 85 255 255 255 170 170 170 0 0 0
3760 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 255 85 377 0 0 0 0 0 0 0 0 0 0 0 0
377255 85 85 85 255 85 170 170 170 170 85 0 170 170 170 85 85 85 378 85 85 85 0 0 0 0 0 0 0 0 0
3780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 379 0 0 0 0 0 0 0 0 0 0 0 0
3790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 380 0 0 0 0 0 0 0 0 0 0 0 0
3800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 381 0 0 0 0 0 0 0 0 0 0 0 0
3810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 382 0 0 0 0 0 0 0 0 0 0 0 0
3820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 383 0 0 0 0 0 0 0 0 0 0 0 0
3830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 384 0 0 0 0 0 0 0 0 0 0 0 0
3840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385 0 0 0 0 0 0 0 0 0 0 0 0
3850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 386 0 0 0 0 0 0 0 0 0 0 0 0
3860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 387 0 0 0 0 0 0 0 0 0 0 0 0
3870 0 0 0 0 0 0 0 0 0 0 0 388 0 0 0 0 0 0 0 0 0 0 0 0
3880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 389 0 0 0 0 0 0 0 0 0 0 0 0
3890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 390 0 0 0 0 0 0 0 0 0 0 0 0
3900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 391 0 0 0 0 0 0 0 0 0 0 0 0
3910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 392 0 0 0 85 85 85 0 0 0 85 85 85
3920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 393170 170 170 0 0 0 0 0 0 170 170 170
3930 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 394 85 85 85 85 85 85 85 85 85 85 85 85
3940 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 395255 255 255 85 85 85 0 0 0 0 0 0
3950 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 396 85 85 85 255 255 255 170 170 170 0 0 0
3960 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 397 0 0 0 0 0 0 0 0 0 0 0 0
39785 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 398 85 85 85 0 0 0 0 0 0 0 0 0
39885 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 399 0 0 0 0 0 0 0 0 0 0 0 0
3990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 400 0 0 0 0 0 0 0 0 0 0 0 0
4000 0 0 0 0 0 85 85 85 170 85 0 85 85 85 85 85 85 401 0 0 0 0 0 0 0 0 0 0 0 0
401170 170 170 170 85 0 170 170 170 85 85 85 170 85 0 85 85 85 402 0 0 0 0 0 0 0 0 0 0 0 0
4020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 403 0 0 0 0 0 0 0 0 0 0 0 0
4030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 404 0 0 0 0 0 0 0 0 0 0 0 0
4040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 405 0 0 0 0 0 0 0 0 0 0 0 0
4050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 406 0 0 0 0 0 0 0 0 0 0 0 0
4060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 0 0 0 0 0 0 0 0 0 0
4070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 408 0 0 0 0 0 0 0 0 0 0 0 0
4080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 409 0 0 0 0 0 0 0 0 0 0 0 0
4090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 410 0 0 0 0 0 0 0 0 0 0 0 0
4100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 411 0 0 0 0 0 0 0 0 0 0 0 0
4110 0 0 0 0 0 0 0 0 0 0 0 412 0 0 0 85 85 85 0 0 0 0 0 0
4120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 413255 255 255 0 0 0 0 0 0 170 85 0
4130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 414255 255 85 170 85 0 255 255 85 170 85 0
4140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 415255 255 85 170 85 0 0 0 0 0 0 0
4150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416 85 85 85 255 255 255 0 0 0 0 0 0
4160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 417 0 0 0 0 0 0 0 0 0 0 0 0
4170 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 418 85 85 85 0 0 0 0 0 0 0 0 0
41885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 419 0 0 0 0 0 0 0 0 0 0 0 0
4190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 420 0 0 0 0 0 0 0 0 0 0 0 0
4200 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 421 0 0 0 0 0 0 0 0 0 0 0 0
4210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 422 0 0 0 0 0 0 0 0 0 0 0 0
4220 0 0 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85 423 0 0 0 0 0 0 0 0 0 0 0 0
4230 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 424 0 0 0 0 0 0 0 0 0 0 0 0
42485 85 85 0 0 0 0 0 0 85 85 85 85 85 85 170 85 0 425 0 0 0 0 0 0 0 0 0 0 0 0
42585 85 85 85 85 85 170 85 0 85 255 85 85 85 85 85 85 85 426 0 0 0 0 0 0 0 0 0 0 0 0
4260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 427 0 0 0 0 0 0 0 0 0 0 0 0
4270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 428 0 0 0 0 0 0 0 0 0 0 0 0
4280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 429 0 0 0 0 0 0 0 0 0 0 0 0
4290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 430 0 0 0 0 0 0 0 0 0 0 0 0
4300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 431 0 0 0 0 0 0 0 0 0 0 0 0
4310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 432 0 0 0 85 85 85 0 0 0 0 0 0
4320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 433170 170 170 170 170 170 170 85 0 255 255 85
4330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 434170 85 0 255 255 85 170 85 0 255 255 85
4340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 435170 85 0 255 255 85 170 85 0 255 255 85
4350 0 0 0 0 0 0 0 0 0 0 0 436170 170 170 170 170 170 0 0 0 0 0 0
4360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 437 0 0 0 0 0 0 0 0 0 0 0 0
4370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 438 85 85 85 0 0 0 0 0 0 0 0 0
4380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 439 0 0 0 0 0 0 0 0 0 0 0 0
4390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 440 0 0 0 0 0 0 0 0 0 0 0 0
4400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 441 0 0 0 0 0 0 0 0 0 0 0 0
4410 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 442 0 0 0 0 0 0 0 0 0 0 0 0
44285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 443 0 0 0 0 0 0 0 0 0 0 0 0
4430 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 444 0 0 0 0 0 0 0 0 0 0 0 0
4440 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 445 0 0 0 0 0 0 0 0 0 0 0 0
4450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 446 0 0 0 0 0 0 0 0 0 0 0 0
4460 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 447 0 0 0 0 0 0 0 0 0 0 0 0
4470 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 448 0 0 0 0 0 0 0 0 0 0 0 0
4480 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 449 0 0 0 0 0 0 0 0 0 0 0 0
44985 85 85 85 85 85 85 85 85 85 85 85 170 85 0 0 0 0 450 0 0 0 0 0 0 0 0 0 0 0 0
4500 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 451 0 0 0 0 0 0 0 0 0 0 0 0
4510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 452 0 0 0 85 85 85 0 0 0 0 0 0
4520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 453 0 0 0 170 85 0 255 255 85 170 85 0
4530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 454255 255 85 170 85 0 255 255 85 170 85 0
4540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 455255 255 85 170 85 0 255 255 85 170 85 0
4550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 456255 255 85 170 85 0 0 0 0 0 0 0
4560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 457 0 0 0 0 0 0 0 0 0 0 0 0
4570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458 85 85 85 0 0 0 0 0 0 0 0 0
4580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 0 0 0 0 0 0 0 0 0 0 0
4590 0 0 0 0 0 0 0 0 0 0 0 460 0 0 0 0 0 0 0 0 0 0 0 0
4600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 461 0 0 0 0 0 0 0 0 0 0 0 0
4610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 462 0 0 0 0 0 0 0 0 0 0 0 0
4620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 463 0 0 0 0 0 0 0 0 0 0 0 0
4630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 464 0 0 0 0 0 0 0 0 0 0 0 0
4640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 465 0 0 0 0 0 0 0 0 0 0 0 0
4650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 466 0 0 0 0 0 0 0 0 0 0 0 0
4660 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 467 0 0 0 0 0 0 0 0 0 0 0 0
4670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 468 0 0 0 0 0 0 0 0 0 0 0 0
46885 85 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 469 0 0 0 0 0 0 0 0 0 0 0 0
4690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 470 0 0 0 0 0 0 0 0 0 0 0 0
4700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 471 0 0 0 0 0 0 0 0 0 0 0 0
47185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 472 0 0 0 85 85 85 0 0 0 0 0 0
4720 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 473170 85 0 255 255 85 170 85 0 255 255 85
47385 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 474170 85 0 255 255 85 170 85 0 255 255 85
4740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 475170 85 0 255 255 85 170 85 0 255 255 85
4750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 476170 85 0 255 255 85 170 85 0 0 0 0
4760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 477 0 0 0 0 0 0 0 0 0 0 0 0
4770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 478 0 0 0 85 85 85 0 0 0 0 0 0
4780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 479 0 0 0 0 0 0 0 0 0 0 0 0
4790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 480 0 0 0 0 0 0 0 0 0 0 0 0
4800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 481 0 0 0 0 0 0 0 0 0 0 0 0
4810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 482 0 0 0 0 0 0 0 0 0 0 0 0
4820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 483 0 0 0 0 0 0 0 0 0 0 0 0
4830 0 0 0 0 0 0 0 0 0 0 0 484 0 0 0 0 0 0 0 0 0 0 0 0
4840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 485 0 0 0 0 0 0 0 0 0 0 0 0
4850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 486 0 0 0 0 0 0 0 0 0 0 0 0
4860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 487 0 0 0 0 0 0 0 0 0 0 0 0
4870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 488 0 0 0 0 0 0 0 0 0 0 0 0
4880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489 0 0 0 0 0 0 0 0 0 0 0 0
4890 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 490 0 0 0 0 0 0 0 0 0 0 0 0
4900 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 491 0 0 0 0 0 0 0 0 0 0 0 0
4910 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 492 0 0 0 85 85 85 85 85 85 0 0 0
4920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 493255 255 85 170 85 0 255 255 85 170 85 0
4930 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 494255 255 85 170 85 0 255 255 85 170 85 0
4940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 495255 255 85 170 85 0 255 255 85 170 85 0
4950 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 496255 255 85 170 85 0 170 85 0 0 0 0
4960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 497 0 0 0 0 0 0 0 0 0 0 0 0
4970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 498 0 0 0 85 85 85 0 0 0 0 0 0
4980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 499 0 0 0 0 0 0 0 0 0 0 0 0
4990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0
5000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 501 0 0 0 0 0 0 0 0 0 0 0 0
5010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 502 0 0 0 0 0 0 0 0 0 0 0 0
5020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 503 0 0 0 0 0 0 0 0 0 0 0 0
5030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 504 0 0 0 0 0 0 0 0 0 0 0 0
5040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 505 0 0 0 0 0 0 0 0 0 0 0 0
5050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 506 0 0 0 0 0 0 0 0 0 0 0 0
5060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 507 0 0 0 0 0 0 0 0 0 0 0 0
5070 0 0 0 0 0 0 0 0 0 0 0 508 0 0 0 0 0 0 0 0 0 0 0 0
5080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 509 0 0 0 0 0 0 0 0 0 0 0 0
5090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 510 0 0 0 0 0 0 0 0 0 0 0 0
5100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 511 0 0 0 0 0 0 0 0 0 0 0 0
5110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 512 0 0 0 85 85 85 85 85 85 0 0 0
5120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 513170 85 0 255 255 85 170 85 0 255 255 85
5130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 514170 85 0 255 255 85 170 85 0 255 255 85
5140 0 0 85 85 85 0 0 0 0 170 0 85 85 85 0 0 0 515170 85 0 255 255 85 170 85 0 170 85 0
51585 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 516170 85 0 170 85 0 85 85 85 0 0 0
5160 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 517 0 0 0 85 85 85 0 0 0 0 0 0
5170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 518 0 0 0 0 0 0 85 85 85 0 0 0
5180 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 519 0 0 0 0 0 0 0 0 0 0 0 0
5190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 520 0 0 0 0 0 0 0 0 0 0 0 0
5200 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 521 0 0 0 0 0 0 0 0 0 0 0 0
5210 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 522 0 0 0 0 0 0 0 0 0 0 0 0
5220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 523 0 0 0 0 0 0 0 0 0 0 0 0
5230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 524 0 0 0 0 0 0 0 0 0 0 0 0
5240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 0 0 0 0 0 0 0 0 0 0 0
5250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 526 0 0 0 0 0 0 0 0 0 0 0 0
5260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 527 0 0 0 0 0 0 0 0 0 0 0 0
5270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 528 0 0 0 0 0 0 0 0 0 0 0 0
5280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 529 0 0 0 0 0 0 0 0 0 0 0 0
5290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 530 0 0 0 0 0 0 0 0 0 0 0 0
5300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 0 0 0 0 0 0 0 0 0 0 0 0
5310 0 0 0 0 0 0 0 0 0 0 0 532 0 0 0 85 85 85 85 85 85 0 0 0
5320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 533 85 85 85 170 85 0 255 255 85 170 85 0
5330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 534255 255 85 170 85 0 255 255 85 170 85 0
5340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 535170 85 0 170 85 0 170 85 0 170 85 0
5350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 536170 85 0 170 85 0 85 85 85 0 0 0
5360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 537 0 0 0 85 85 85 170 170 170 85 85 85
5370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 538 0 0 0 0 0 0 85 85 85 0 0 0
538170 85 0 85 255 85 170 85 0 170 85 0 170 85 0 85 255 85 539 0 0 0 0 0 0 0 0 0 0 0 0
539170 85 0 170 85 0 0 170 0 0 0 0 0 0 0 0 0 0 540 0 0 0 0 0 0 0 0 0 0 0 0
54085 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 541 0 0 0 0 0 0 0 0 0 0 0 0
5410 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 542 0 0 0 0 0 0 0 0 0 0 0 0
5420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 543 0 0 0 0 0 0 0 0 0 0 0 0
54385 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 544 0 0 0 0 0 0 0 0 0 0 0 0
5440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 545 0 0 0 0 0 0 0 0 0 0 0 0
54585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 546 0 0 0 0 0 0 0 0 0 0 0 0
5460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 547 0 0 0 0 0 0 0 0 0 0 0 0
5470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 548 0 0 0 0 0 0 0 0 0 0 0 0
5480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 549 0 0 0 0 0 0 0 0 0 0 0 0
5490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0
5500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 551 0 0 0 0 0 0 0 0 0 0 0 0
5510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 552 0 0 0 85 85 85 85 85 85 0 0 0
5520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 553 85 85 85 170 85 0 170 85 0 170 85 0
5530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 554170 85 0 170 85 0 170 85 0 170 85 0
5540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 555170 85 0 170 85 0 170 85 0 170 85 0
5550 0 0 0 0 0 0 0 0 0 0 0 556170 170 170 170 170 170 170 170 170 0 0 0
5560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 557 0 0 0 0 0 0 170 170 170 170 170 170
5570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 558 0 0 0 0 0 0 0 0 0 85 85 85
5580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 559 0 0 0 0 0 0 0 0 0 0 0 0
5590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 560 0 0 0 0 0 0 0 0 0 0 0 0
5600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 561 0 0 0 0 0 0 0 0 0 0 0 0
5610 0 0 0 0 0 0 0 0 0 0 0 0 170 0 170 85 0 562 0 0 0 0 0 0 0 0 0 0 0 0
562255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 170 85 0 563 0 0 0 0 0 0 0 0 0 0 0 0
563255 255 85 85 255 85 170 85 0 170 85 0 85 85 85 0 0 0 564 0 0 0 0 0 0 0 0 0 0 0 0
5640 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 565 0 0 0 0 0 0 0 0 0 0 0 0
56585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 566 0 0 0 0 0 0 0 0 0 0 0 0
5660 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 567 0 0 0 0 0 0 0 0 0 0 0 0
5670 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 568 0 0 0 0 0 0 0 0 0 0 0 0
56885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 569 0 0 0 0 0 0 0 0 0 0 0 0
5690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 570 0 0 0 0 0 0 0 0 0 0 0 0
5700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 571 0 0 0 0 0 0 0 0 0 0 0 0
5710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 572 0 0 0 85 85 85 0 0 0 0 0 0
5720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 573 85 85 85 170 170 170 170 85 0 170 85 0
5730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574170 85 0 170 85 0 170 85 0 170 85 0
5740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 575170 85 0 170 85 0 170 170 170 170 170 170
5750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576170 170 170 170 170 170 170 170 170 85 85 85
5760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 577 0 0 0 0 0 0 85 85 85 85 85 85
5770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 578 0 0 0 0 0 0 0 0 0 85 85 85
5780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 579 0 0 0 0 0 0 0 0 0 0 0 0
5790 0 0 0 0 0 0 0 0 0 0 0 580 0 0 0 0 0 0 0 0 0 0 0 0
5800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 581 0 0 0 0 0 0 0 0 0 0 0 0
5810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 582 0 0 0 0 0 0 0 0 0 0 0 0
5820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 583 0 0 0 0 0 0 0 0 0 0 0 0
5830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 584 0 0 0 0 0 0 0 0 0 0 0 0
5840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 585 0 0 0 0 0 0 0 0 0 0 0 0
5850 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 586 0 0 0 0 0 0 0 0 0 0 0 0
58685 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 587 0 0 0 0 0 0 0 0 0 0 0 0
587255 255 85 170 85 0 255 255 85 85 255 85 170 85 0 0 0 0 588 0 0 0 0 0 0 0 0 0 0 0 0
58885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 589 0 0 0 0 0 0 0 0 0 0 0 0
5890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 590 0 0 0 0 0 0 0 0 0 0 0 0
5900 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 591 0 0 0 0 0 0 0 0 0 0 0 0
5910 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 592 0 0 0 85 85 85 0 0 0 0 0 0
5920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 593 85 85 85 170 170 170 170 170 170 170 85 0
5930 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 594170 85 0 170 85 0 170 85 0 170 85 0
5940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 595170 170 170 170 170 170 170 170 170 170 170 170
5950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 596255 255 255 255 255 255 255 255 255 170 170 170
5960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 597 0 0 0 0 0 0 0 0 0 0 0 0
5970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 598 0 0 0 0 0 0 0 0 0 85 85 85
5980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 599 0 0 0 0 0 0 0 0 0 0 0 0
5990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 0 0 0 0 0 0 0 0 0 0 0
6000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 601 0 0 0 0 0 0 0 0 0 0 0 0
6010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 0 0 0 0 0
6020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 603 0 0 0 0 0 0 0 0 0 0 0 0
6030 0 0 0 0 0 0 0 0 0 0 0 604 0 0 0 0 0 0 0 0 0 0 0 0
6040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 605 0 0 0 0 0 0 0 0 0 0 0 0
6050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0
6060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 607 0 0 0 0 0 0 0 0 0 0 0 0
6070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 608 0 0 0 0 0 0 0 0 0 0 0 0
6080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 609 0 0 0 0 0 0 0 0 0 0 0 0
6090 0 0 0 0 0 0 0 0 85 85 85 255 255 85 170 85 0 610 0 0 0 0 0 0 0 0 0 0 0 0
610255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 611 0 0 0 0 0 0 0 0 0 0 0 0
611255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 85 255 85 612 85 85 85 0 0 0 0 0 0 85 85 85
6120 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 613255 255 255 255 255 255 170 170 170 170 170 170
6130 0 0 85 85 85 0 0 0 85 85 85 170 170 170 0 0 0 614170 170 170 170 170 170 170 170 170 170 170 170
6140 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 615170 170 170 170 170 170 255 255 255 255 255 255
61585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 616255 255 255 255 255 255 255 255 255 255 255 255
6160 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 617 85 85 85 0 0 0 0 0 0 0 0 0
6170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 618 0 0 0 0 0 0 0 0 0 0 0 0
6180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 619 85 85 85 0 0 0 0 0 0 0 0 0
6190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 620 0 0 0 0 0 0 0 0 0 0 0 0
6200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 621 0 0 0 0 0 0 0 0 0 0 0 0
6210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 622 0 0 0 0 0 0 0 0 0 0 0 0
6220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 623 0 0 0 0 0 0 0 0 0 0 0 0
6230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 624 0 0 0 0 0 0 0 0 0 0 0 0
6240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 0 0 0 0 0 0 0 0 0 0 0 0
6250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 626 0 0 0 0 0 0 0 0 0 0 0 0
6260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627 0 0 0 0 0 0 0 0 0 0 0 0
6270 0 0 0 0 0 0 0 0 0 0 0 628 0 0 0 0 0 0 0 0 0 0 0 0
6280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 629 0 0 0 0 0 0 0 0 0 0 0 0
6290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 630 0 0 0 0 0 0 0 0 0 0 0 0
6300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 631 0 0 0 0 0 0 0 0 0 0 0 0
6310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 632 85 85 85 0 0 0 0 0 0 170 170 170
6320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 633255 255 255 255 255 255 170 170 170 170 170 170
6330 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 634170 170 170 170 170 170 170 170 170 170 170 170
634255 255 85 255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 635170 170 170 255 255 255 255 255 255 255 255 255
635255 255 85 170 85 0 255 255 85 170 85 0 255 255 85 170 85 0 636255 255 255 255 255 255 255 255 255 255 255 255
636170 85 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 637170 170 170 0 0 0 0 0 0 0 0 0
63785 85 85 0 0 0 0 0 0 85 85 85 170 170 170 0 0 0 638 0 0 0 0 0 0 0 0 0 0 0 0
63885 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 639 85 85 85 0 0 0 0 0 0 0 0 0
6390 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 640 0 0 0 0 0 0 0 0 0 0 0 0
6400 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 641 0 0 0 0 0 0 0 0 0 0 0 0
6410 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 642 0 0 0 0 0 0 0 0 0 0 0 0
6420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 643 0 0 0 0 0 0 0 0 0 0 0 0
6430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 644 0 0 0 0 0 0 0 0 0 0 0 0
6440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 645 0 0 0 0 0 0 0 0 0 0 0 0
6450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 646 0 0 0 0 0 0 0 0 0 0 0 0
6460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 647 0 0 0 0 0 0 0 0 0 0 0 0
6470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 648 0 0 0 0 0 0 0 0 0 0 0 0
6480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 649 0 0 0 0 0 0 0 0 0 0 0 0
6490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 650 0 0 0 0 0 0 0 0 0 0 0 0
6500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 651 0 0 0 0 0 0 0 0 0 85 85 85
6510 0 0 0 0 0 0 0 0 0 0 0 652 0 0 0 0 0 0 85 85 85 255 255 255
6520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 653255 255 255 255 255 255 255 255 255 170 170 170
6530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 654170 170 170 170 170 170 170 170 170 170 170 170
6540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 655255 255 255 255 255 255 255 255 255 255 255 255
6550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 656255 255 255 255 255 255 255 255 255 255 255 255
6560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 657255 255 255 0 0 0 0 0 0 0 0 0
6570 0 0 0 0 0 170 85 0 255 255 85 85 255 85 255 255 85 658 0 0 0 0 0 0 0 0 0 0 0 0
658170 170 170 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 659 0 0 0 85 85 85 0 0 0 0 0 0
659255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 255 255 85 660 0 0 0 0 0 0 0 0 0 0 0 0
66085 255 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 661 0 0 0 0 0 0 0 0 0 0 0 0
66185 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 662 0 0 0 0 0 0 0 0 0 0 0 0
6620 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 663 0 0 0 0 0 0 0 0 0 0 0 0
66385 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 664 0 0 0 0 0 0 0 0 0 0 0 0
6640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 665 0 0 0 0 0 0 0 0 0 0 0 0
6650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 666 0 0 0 0 0 0 0 0 0 0 0 0
6660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0
6670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 668 0 0 0 0 0 0 0 0 0 0 0 0
6680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 669 0 0 0 0 0 0 0 0 0 0 0 0
6690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 670 0 0 0 0 0 0 0 0 0 0 0 0
6700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 671 0 0 0 0 0 0 85 85 85 0 0 0
6710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 672 0 0 0 85 85 85 170 170 170 255 255 255
6720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 673255 255 255 255 255 255 255 255 255 255 255 255
6730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 674255 255 255 255 255 255 255 255 255 255 255 255
6740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 675255 255 255 255 255 255 255 255 255 255 255 255
6750 0 0 0 0 0 0 0 0 0 0 0 676255 255 255 255 255 255 255 255 255 255 255 255
6760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 677255 255 255 85 85 85 0 0 0 0 0 0
6770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 678 0 0 0 0 0 0 0 0 0 0 0 0
6780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 679 0 0 0 0 0 0 85 85 85 0 0 0
6790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 680 0 0 0 0 0 0 0 0 0 0 0 0
6800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 681 0 0 0 0 0 0 0 0 0 0 0 0
6810 0 0 0 0 0 170 85 0 255 255 85 255 255 85 255 255 85 682 0 0 0 0 0 0 0 0 0 0 0 0
682255 255 255 255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 683 0 0 0 0 0 0 0 0 0 0 0 0
683255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 684 0 0 0 0 0 0 0 0 0 0 0 0
684170 85 0 170 85 0 0 170 0 0 0 0 85 85 85 0 0 0 685 0 0 0 0 0 0 0 0 0 0 0 0
68585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 686 0 0 0 0 0 0 0 0 0 0 0 0
6860 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 687 0 0 0 0 0 0 0 0 0 0 0 0
6870 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 688 0 0 0 0 0 0 0 0 0 0 0 0
6880 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 689 0 0 0 0 0 0 0 0 0 0 0 0
6890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 690 0 0 0 0 0 0 0 0 0 0 0 0
6900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 691 0 0 0 85 85 85 0 0 0 0 0 0
6910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 692 0 0 0 85 85 85 255 255 255 255 255 255
6920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693255 255 255 255 255 255 255 255 255 255 255 255
6930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 694255 255 255 255 255 255 255 255 255 255 255 255
6940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 695255 255 255 255 255 255 255 255 255 255 255 255
6950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 696255 255 255 255 255 255 255 255 255 255 255 255
6960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697255 255 255 170 170 170 0 0 0 0 0 0
6970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 698 0 0 0 0 0 0 0 0 0 0 0 0
6980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 699 0 0 0 0 0 0 0 0 0 85 85 85
6990 0 0 0 0 0 0 0 0 0 0 0 700 0 0 0 0 0 0 0 0 0 0 0 0
7000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 701 0 0 0 0 0 0 0 0 0 0 0 0
7010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 702 0 0 0 0 0 0 0 0 0 0 0 0
7020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 703 0 0 0 0 0 0 0 0 0 0 0 0
7030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 704 0 0 0 0 0 0 0 0 0 0 0 0
7040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 705 0 0 0 0 0 0 0 0 0 0 0 0
7050 0 0 170 85 0 85 255 85 255 255 85 170 170 170 255 255 255 706 0 0 0 0 0 0 0 0 0 0 0 0
706255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 707 0 0 0 0 0 0 0 0 0 0 0 0
707255 255 85 255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 708 0 0 0 0 0 0 0 0 0 0 0 0
708255 255 85 85 255 85 0 0 0 85 85 85 0 0 0 85 85 85 709 0 0 0 0 0 0 0 0 0 0 0 0
7090 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 710 0 0 0 0 0 0 0 0 0 0 0 0
71085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 711 0 0 0 85 85 85 0 0 0 0 0 0
71185 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 712 0 0 0 85 85 85 255 255 255 255 255 255
71285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 713255 255 255 255 255 255 255 255 255 255 255 255
7130 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 714255 255 255 255 255 255 255 255 255 255 255 255
7140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 715255 255 255 255 255 255 255 255 255 255 255 255
7150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 716255 255 255 255 255 255 255 255 255 255 255 255
7160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 717255 255 255 255 255 255 0 0 0 0 0 0
7170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 718 0 0 0 0 0 0 0 0 0 0 0 0
7180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 719 0 0 0 0 0 0 0 0 0 0 0 0
7190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 720 85 85 85 0 0 0 0 0 0 0 0 0
7200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 721 0 0 0 0 0 0 0 0 0 0 0 0
7210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 0 0 0 0 0
7220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 723 0 0 0 0 0 0 0 0 0 0 0 0
7230 0 0 0 0 0 0 0 0 0 0 0 724 0 0 0 0 0 0 0 0 0 0 0 0
7240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 725 0 0 0 0 0 0 0 0 0 0 0 0
7250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 726 0 0 0 0 0 0 0 0 0 0 0 0
7260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 727 0 0 0 0 0 0 0 0 0 0 0 0
7270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 728 0 0 0 0 0 0 0 0 0 0 0 0
7280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 729 0 0 0 0 0 0 0 0 0 0 0 0
7290 0 0 255 255 85 255 255 85 255 255 85 255 255 255 255 255 85 730 0 0 0 0 0 0 0 0 0 0 0 0
730255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 85 255 85 731 85 85 85 0 0 0 0 0 0 0 0 0
731255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 732 85 85 85 170 170 170 255 255 255 255 255 255
732255 255 85 170 85 0 85 85 85 0 0 0 0 0 0 85 85 85 733255 255 255 255 255 255 255 255 255 255 255 255
7330 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 734255 255 255 255 255 255 255 255 255 255 255 255
73485 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85 735255 255 255 255 255 255 255 255 255 255 255 255
7350 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 736255 255 255 255 255 255 255 255 255 255 255 255
7360 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 737255 255 255 255 255 255 85 85 85 0 0 0
73785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 738 0 0 0 0 0 0 0 0 0 0 0 0
7380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 739 0 0 0 0 0 0 0 0 0 0 0 0
7390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 740 0 0 0 85 85 85 0 0 0 0 0 0
7400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 741 0 0 0 0 0 0 0 0 0 0 0 0
7410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 742 0 0 0 0 0 0 0 0 0 0 0 0
7420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 743 0 0 0 0 0 0 0 0 0 0 0 0
7430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 744 0 0 0 0 0 0 0 0 0 0 0 0
7440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 745 0 0 0 0 0 0 0 0 0 0 0 0
7450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 746 0 0 0 0 0 0 0 0 0 0 0 0
7460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 0 0 0 0 0 0 0 0 0 0 0 0
7470 0 0 0 0 0 0 0 0 0 0 0 748 0 0 0 0 0 0 0 0 0 0 0 0
7480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 749 0 0 0 0 0 0 0 0 0 0 0 0
7490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 750 0 0 0 0 0 0 0 0 0 85 85 85
7500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 751 0 0 0 0 0 0 0 0 0 0 0 0
7510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 752 85 85 85 170 170 170 170 170 170 170 170 170
7520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 753255 255 255 255 255 255 255 255 255 170 170 170
753170 85 0 170 85 0 255 255 85 255 255 85 255 255 255 170 170 170 754170 170 170 170 170 170 255 255 255 255 255 255
754255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 755255 255 255 255 255 255 255 255 255 255 255 255
755170 85 0 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 756170 170 170 170 170 170 170 170 170 170 170 170
756255 255 85 85 255 85 170 85 0 85 85 85 0 0 0 0 0 0 757170 170 170 170 170 170 170 170 170 85 85 85
75785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 758 0 0 0 0 0 0 0 0 0 0 0 0
75885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 759 0 0 0 0 0 0 0 0 0 0 0 0
75985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 760 0 0 0 85 85 85 0 0 0 0 0 0
7600 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 761 0 0 0 0 0 0 0 0 0 0 0 0
7610 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 762 0 0 0 0 0 0 0 0 0 0 0 0
7620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 763 0 0 0 0 0 0 0 0 0 0 0 0
7630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 0 0 0 0 0 0 0 0
7640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 765 0 0 0 0 0 0 0 0 0 0 0 0
7650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 766 0 0 0 0 0 0 0 0 0 0 0 0
7660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 767 0 0 0 0 0 0 0 0 0 0 0 0
7670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 768 0 0 0 0 0 0 0 0 0 0 0 0
7680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 769 0 0 0 0 0 0 0 0 0 0 0 0
7690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 770 0 0 0 0 0 0 0 0 0 85 85 85
7700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 771 0 0 0 0 0 0 0 0 0 0 0 0
7710 0 0 0 0 0 0 0 0 0 0 0 772170 170 170 170 170 170 170 170 170 255 255 255
7720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773255 255 255 255 255 255 255 255 255 255 255 255
7730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 774170 170 170 255 255 255 255 255 255 255 255 255
7740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 775255 255 255 255 255 255 255 255 255 255 255 255
7750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 776255 255 255 255 255 255 170 170 170 170 170 170
7760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 777170 170 170 170 170 170 170 170 170 85 85 85
777255 255 85 85 255 85 255 255 85 170 170 170 255 255 255 255 255 85 778 0 0 0 0 0 0 85 85 85 0 0 0
778255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 779 0 0 0 0 0 0 0 0 0 0 0 0
779255 255 85 255 255 85 255 255 85 255 255 85 85 255 85 170 85 0 780 0 0 0 0 0 0 85 85 85 0 0 0
780255 255 85 170 85 0 170 85 0 0 0 0 85 85 85 0 0 0 781 0 0 0 0 0 0 0 0 0 0 0 0
78185 85 85 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 782 0 0 0 0 0 0 0 0 0 0 0 0
78285 255 85 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 783 0 0 0 0 0 0 0 0 0 0 0 0
783170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 784 0 0 0 0 0 0 0 0 0 0 0 0
784170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 785 0 0 0 0 0 0 0 0 0 0 0 0
785170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 786 0 0 0 0 0 0 0 0 0 0 0 0
78685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 787 0 0 0 0 0 0 0 0 0 0 0 0
7870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 788 0 0 0 0 0 0 0 0 0 0 0 0
7880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 789 0 0 0 0 0 0 0 0 0 0 0 0
7890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 790 0 0 0 0 0 0 85 85 85 0 0 0
7900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 791 0 0 0 0 0 0 0 0 0 0 0 0
7910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 792170 170 170 255 255 255 255 255 255 255 255 255
7920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 793255 255 255 255 255 255 255 255 255 255 255 255
7930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 794255 255 255 255 255 255 255 255 255 255 255 255
7940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 795255 255 255 255 255 255 255 255 255 255 255 255
7950 0 0 0 0 0 0 0 0 0 0 0 796255 255 255 255 255 255 255 255 255 255 255 255
7960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 797255 255 255 170 170 170 170 170 170 170 170 170
7970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 798 0 0 0 0 0 0 0 0 0 85 85 85
7980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799 85 85 85 0 0 0 0 0 0 0 0 0
7990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 800 0 0 0 0 0 0 85 85 85 0 0 0
8000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 801 0 0 0 0 0 0 0 0 0 0 0 0
801170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 802 0 0 0 0 0 0 0 0 0 0 0 0
802255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 803 0 0 0 0 0 0 0 0 0 0 0 0
803255 255 85 255 255 85 85 255 85 255 255 85 170 85 0 170 85 0 804 0 0 0 0 0 0 0 0 0 0 0 0
804170 85 0 85 255 85 255 255 85 85 85 85 170 170 170 170 170 170 805 0 0 0 0 0 0 0 0 0 0 0 0
805170 170 170 170 170 170 170 170 170 85 255 85 170 170 170 170 170 170 806 0 0 0 0 0 0 0 0 0 0 0 0
80685 85 85 170 170 170 170 170 170 170 85 0 170 170 170 170 170 170 807 0 0 0 0 0 0 0 0 0 0 0 0
80785 255 85 170 170 170 170 85 0 170 170 170 85 255 85 255 85 85 808 0 0 0 0 0 0 0 0 0 0 0 0
80885 255 85 170 170 170 255 255 85 85 85 85 255 255 85 170 170 170 809 0 0 0 0 0 0 0 0 0 0 0 0
80985 255 85 170 170 170 255 255 85 170 170 170 170 170 170 85 85 85 810 0 0 0 0 0 0 85 85 85 0 0 0
8100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 811 85 85 85 0 0 0 0 0 0 85 85 85
8110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 812255 255 255 255 255 255 255 255 255 255 255 255
8120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 813255 255 255 255 255 255 255 255 255 255 255 255
8130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 814255 255 255 255 255 255 255 255 255 255 255 255
8140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815255 255 255 255 255 255 255 255 255 255 255 255
8150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 816255 255 255 255 255 255 255 255 255 255 255 255
8160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 817255 255 255 255 255 255 170 170 170 170 170 170
8170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 818 85 85 85 0 0 0 0 0 0 0 0 0
8180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 819 0 0 0 85 85 85 0 0 0 0 0 0
8190 0 0 0 0 0 0 0 0 0 0 0 820 0 0 0 0 0 0 0 0 0 85 85 85
8200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 821 0 0 0 0 0 0 0 0 0 0 0 0
8210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 822 0 0 0 0 0 0 0 0 0 0 0 0
8220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 823 0 0 0 0 0 0 0 0 0 0 0 0
8230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 824 0 0 0 0 0 0 0 0 0 0 0 0
8240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 825 0 0 0 0 0 0 0 0 0 0 0 0
825255 255 85 255 255 85 255 255 85 255 255 255 255 255 85 255 255 85 826 0 0 0 0 0 0 0 0 0 0 0 0
826255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 827 0 0 0 0 0 0 0 0 0 0 0 0
827255 255 85 255 255 85 255 255 85 170 85 0 0 170 0 85 85 85 828 0 0 0 0 0 0 0 0 0 0 0 0
828170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 829 0 0 0 0 0 0 0 0 0 0 0 0
829255 85 85 85 255 85 85 85 85 255 85 85 85 85 85 170 170 170 830 0 0 0 85 85 85 0 0 0 0 0 0
830170 85 0 170 170 170 85 85 85 85 255 85 85 85 85 85 85 85 831 85 85 85 0 0 0 0 0 0 170 170 170
83185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 832255 255 255 255 255 255 255 255 255 255 255 255
8320 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 833255 255 255 255 255 255 255 255 255 255 255 255
833170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 834255 255 255 255 255 255 255 255 255 255 255 255
8340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 835255 255 255 255 255 255 255 255 255 255 255 255
8350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 836255 255 255 255 255 255 255 255 255 255 255 255
8360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 837255 255 255 255 255 255 255 255 255 255 255 255
8370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 838170 170 170 85 85 85 0 0 0 0 0 0
8380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 839 0 0 0 85 85 85 85 85 85 0 0 0
8390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 840 0 0 0 0 0 0 0 0 0 85 85 85
8400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 841 0 0 0 0 0 0 0 0 0 0 0 0
8410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 842 0 0 0 0 0 0 0 0 0 0 0 0
8420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 843 0 0 0 0 0 0 0 0 0 0 0 0
8430 0 0 0 0 0 0 0 0 0 0 0 844 0 0 0 0 0 0 0 0 0 0 0 0
8440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 845 0 0 0 0 0 0 0 0 0 0 0 0
8450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 846 0 0 0 0 0 0 0 0 0 0 0 0
8460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 847 0 0 0 0 0 0 0 0 0 0 0 0
8470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 848 0 0 0 0 0 0 0 0 0 0 0 0
8480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 849 0 0 0 0 0 0 0 0 0 0 0 0
849170 85 0 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 850 0 0 0 85 85 85 0 0 0 85 85 85
850255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 851 0 0 0 0 0 0 85 85 85 255 255 255
851255 255 85 255 255 85 170 85 0 255 255 85 85 85 85 85 85 85 852255 255 255 255 255 255 255 255 255 255 255 255
852255 255 85 170 170 170 85 85 85 85 85 85 0 0 0 85 85 85 853255 255 255 255 255 255 255 255 255 255 255 255
8530 0 0 85 85 85 85 85 85 170 170 170 170 85 0 170 170 170 854255 255 255 255 255 255 255 255 255 255 255 255
854170 170 170 255 255 85 170 170 170 85 85 85 85 85 85 85 85 85 855255 255 255 255 255 255 255 255 255 255 255 255
8550 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 856255 255 255 255 255 255 255 255 255 255 255 255
85685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 857255 255 255 255 255 255 255 255 255 255 255 255
8570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 858255 255 255 170 170 170 0 0 0 85 85 85
8580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 859 85 85 85 0 0 0 85 85 85 0 0 0
8590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 860 0 0 0 0 0 0 0 0 0 85 85 85
8600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 861 0 0 0 0 0 0 0 0 0 0 0 0
8610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 862 0 0 0 0 0 0 0 0 0 0 0 0
8620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 863 0 0 0 0 0 0 0 0 0 0 0 0
8630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 864 0 0 0 0 0 0 0 0 0 0 0 0
8640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 865 0 0 0 0 0 0 0 0 0 0 0 0
8650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 866 0 0 0 0 0 0 0 0 0 0 0 0
8660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 867 0 0 0 0 0 0 0 0 0 0 0 0
8670 0 0 0 0 0 0 0 0 0 0 0 868 0 0 0 0 0 0 0 0 0 0 0 0
8680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 869 0 0 0 0 0 0 0 0 0 0 0 0
8690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 870 0 0 0 85 85 85 0 0 0 85 85 85
8700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 871 0 0 0 85 85 85 170 170 170 255 255 255
8710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 872255 255 255 255 255 255 255 255 255 255 255 255
8720 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 873255 255 255 255 255 255 255 255 255 255 255 255
873255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 874255 255 255 255 255 255 255 255 255 255 255 255
874255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 875255 255 255 255 255 255 255 255 255 255 255 255
875255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 0 170 0 876255 255 255 255 255 255 255 255 255 255 255 255
8760 0 0 170 85 0 170 85 0 0 170 0 0 0 0 0 0 0 877255 255 255 255 255 255 255 255 255 255 255 255
87785 85 85 0 0 0 85 85 85 85 85 85 170 170 170 85 85 85 878255 255 255 170 170 170 0 0 0 85 85 85
878170 170 170 85 85 85 85 85 85 170 170 170 170 85 0 85 85 85 879 85 85 85 0 0 0 85 85 85 0 0 0
87985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 880 0 0 0 0 0 0 0 0 0 0 0 0
8800 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 881 85 85 85 0 0 0 0 0 0 0 0 0
88185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 882 0 0 0 0 0 0 0 0 0 0 0 0
8820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 883 0 0 0 0 0 0 0 0 0 0 0 0
8830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 884 0 0 0 0 0 0 0 0 0 0 0 0
8840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 885 0 0 0 0 0 0 0 0 0 0 0 0
8850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 886 0 0 0 0 0 0 0 0 0 0 0 0
8860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 887 0 0 0 0 0 0 0 0 0 0 0 0
8870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 888 0 0 0 0 0 0 0 0 0 0 0 0
8880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 889 0 0 0 0 0 0 0 0 0 0 0 0
8890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 890 85 85 85 0 0 0 0 0 0 85 85 85
8900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 891 0 0 0 170 170 170 255 255 255 255 255 255
8910 0 0 0 0 0 0 0 0 0 0 0 892255 255 255 255 255 255 255 255 255 255 255 255
8920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 893255 255 255 255 255 255 255 255 255 255 255 255
8930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 894255 255 255 255 255 255 255 255 255 255 255 255
8940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 895255 255 255 255 255 255 255 255 255 255 255 255
8950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 896255 255 255 255 255 255 255 255 255 255 255 255
8960 0 0 0 0 0 0 0 0 0 0 0 255 255 85 170 85 0 897255 255 255 255 255 255 255 255 255 255 255 255
897255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 898255 255 255 255 255 255 85 85 85 0 0 0
898255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 899 0 0 0 0 0 0 0 0 0 85 85 85
899170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 170 85 0 900 0 0 0 0 0 0 0 0 0 0 0 0
900170 85 0 255 255 85 170 85 0 0 0 0 0 0 0 0 0 0 901 85 85 85 0 0 0 0 0 0 0 0 0
9010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 902 0 0 0 0 0 0 0 0 0 0 0 0
90285 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 903 0 0 0 0 0 0 0 0 0 0 0 0
9030 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 904 0 0 0 0 0 0 0 0 0 0 0 0
90485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 905 0 0 0 0 0 0 0 0 0 0 0 0
9050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 906 0 0 0 0 0 0 0 0 0 0 0 0
9060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 907 0 0 0 0 0 0 0 0 0 0 0 0
9070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 908 0 0 0 0 0 0 0 0 0 0 0 0
9080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 909 0 0 0 0 0 0 0 0 0 0 0 0
9090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 910 85 85 85 0 0 0 85 85 85 0 0 0
9100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 911 0 0 0 255 255 255 255 255 255 255 255 255
9110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 912255 255 255 255 255 255 255 255 255 255 255 255
9120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 913255 255 255 255 255 255 255 255 255 255 255 255
9130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 914255 255 255 255 255 255 255 255 255 255 255 255
9140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 915255 255 255 255 255 255 255 255 255 255 255 255
9150 0 0 0 0 0 0 0 0 0 0 0 916255 255 255 255 255 255 255 255 255 255 255 255
9160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 917255 255 255 255 255 255 255 255 255 255 255 255
9170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 918255 255 255 255 255 255 170 170 170 0 0 0
9180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 919 0 0 0 0 0 0 0 0 0 85 85 85
9190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 920 0 0 0 0 0 0 0 0 0 0 0 0
9200 0 0 0 0 0 0 0 0 0 0 0 255 255 85 255 255 85 921 85 85 85 0 0 0 0 0 0 0 0 0
921255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 255 255 85 922 0 0 0 0 0 0 0 0 0 0 0 0
922255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 923 0 0 0 0 0 0 0 0 0 0 0 0
923255 255 85 255 255 85 255 255 85 170 85 0 255 255 85 255 255 85 924 0 0 0 0 0 0 0 0 0 0 0 0
92485 255 85 170 85 0 0 170 0 85 85 85 0 0 0 85 85 85 925 0 0 0 0 0 0 0 0 0 0 0 0
9250 0 0 85 85 85 0 0 0 85 85 85 85 85 85 85 85 85 926 0 0 0 0 0 0 0 0 0 0 0 0
92685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 927 0 0 0 0 0 0 0 0 0 0 0 0
9270 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 928 0 0 0 0 0 0 0 0 0 0 0 0
9280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 929 0 0 0 0 0 0 0 0 0 85 85 85
9290 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 930 0 0 0 0 0 0 85 85 85 0 0 0
9300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 931 85 85 85 255 255 255 255 255 255 255 255 255
9310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 932255 255 255 255 255 255 255 255 255 255 255 255
9320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 933255 255 255 255 255 255 255 255 255 255 255 255
9330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 934255 255 255 255 255 255 255 255 255 255 255 255
9340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 935255 255 255 255 255 255 255 255 255 255 255 255
9350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 936255 255 255 255 255 255 255 255 255 255 255 255
9360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 937255 255 255 255 255 255 255 255 255 255 255 255
9370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 938255 255 255 255 255 255 170 170 170 0 0 0
9380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 939 0 0 0 0 0 0 0 0 0 85 85 85
9390 0 0 0 0 0 0 0 0 0 0 0 940 0 0 0 0 0 0 0 0 0 0 0 0
9400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 941 85 85 85 0 0 0 0 0 0 0 0 0
9410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 942 0 0 0 0 0 0 0 0 0 0 0 0
9420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 943 0 0 0 0 0 0 0 0 0 0 0 0
9430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 944 0 0 0 0 0 0 0 0 0 0 0 0
9440 0 0 0 0 0 0 0 0 0 170 0 170 85 0 255 255 85 945 0 0 0 0 0 0 0 0 0 0 0 0
94585 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 946 0 0 0 0 0 0 0 0 0 0 0 0
946255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 947 0 0 0 0 0 0 0 0 0 0 0 0
947170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 170 85 0 948 0 0 0 0 0 0 0 0 0 0 0 0
94885 255 85 170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 949 0 0 0 0 0 0 0 0 0 85 85 85
9490 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 950 0 0 0 85 85 85 0 0 0 0 0 0
9500 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 951170 170 170 255 255 255 255 255 255 255 255 255
9510 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 952255 255 255 255 255 255 255 255 255 255 255 255
9520 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 953255 255 255 255 255 255 255 255 255 255 255 255
9530 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 954255 255 255 255 255 255 255 255 255 255 255 255
9540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 955255 255 255 255 255 255 255 255 255 255 255 255
9550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 956255 255 255 255 255 255 255 255 255 255 255 255
9560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 957255 255 255 255 255 255 255 255 255 255 255 255
9570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 958255 255 255 255 255 255 170 170 170 0 0 0
9580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 959 0 0 0 0 0 0 0 0 0 85 85 85
9590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 960 0 0 0 0 0 0 0 0 0 0 0 0
9600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 961 0 0 0 85 85 85 0 0 0 0 0 0
9610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 962 0 0 0 0 0 0 0 0 0 0 0 0
9620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 963 0 0 0 0 0 0 0 0 0 0 0 0
9630 0 0 0 0 0 0 0 0 0 0 0 964 0 0 0 0 0 0 0 0 0 0 0 0
9640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 965 0 0 0 0 0 0 0 0 0 0 0 0
9650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 966 0 0 0 0 0 0 0 0 0 0 0 0
9660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 967 0 0 0 0 0 0 0 0 0 0 0 0
9670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 968 0 0 0 0 0 0 0 0 0 0 0 0
9680 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 969 0 0 0 0 0 0 85 85 85 0 0 0
969255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 970 0 0 0 85 85 85 0 0 0 0 0 0
970255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 170 85 0 971255 255 255 255 255 255 255 255 255 255 255 255
971255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 85 255 85 972255 255 255 255 255 255 255 255 255 255 255 255
972170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 85 85 85 973255 255 255 255 255 255 170 170 170 255 255 255
9730 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 974255 255 255 255 255 255 255 255 255 255 255 255
9740 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 975255 255 255 255 255 255 255 255 255 255 255 255
9750 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 976255 255 255 255 255 255 255 255 255 255 255 255
9760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 977255 255 255 255 255 255 255 255 255 255 255 255
97785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 978255 255 255 255 255 255 255 255 255 0 0 0
9780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 979 0 0 0 0 0 0 0 0 0 85 85 85
9790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 980 0 0 0 0 0 0 0 0 0 0 0 0
9800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 981 0 0 0 85 85 85 0 0 0 0 0 0
9810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 982 0 0 0 0 0 0 0 0 0 0 0 0
9820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 983 0 0 0 0 0 0 0 0 0 0 0 0
9830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 984 0 0 0 0 0 0 0 0 0 0 0 0
9840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 985 0 0 0 0 0 0 0 0 0 0 0 0
9850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 986 0 0 0 0 0 0 0 0 0 0 0 0
9860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 987 0 0 0 0 0 0 0 0 0 0 0 0
9870 0 0 0 0 0 0 0 0 0 0 0 988 0 0 0 0 0 0 0 0 0 0 0 0
9880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 989 0 0 0 85 85 85 0 0 0 0 0 0
9890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 990 0 0 0 85 85 85 0 0 0 0 0 0
9900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 991255 255 255 255 255 255 255 255 255 255 255 255
9910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 992255 255 255 255 255 255 255 255 255 255 255 255
9920 0 0 0 0 0 0 0 0 85 85 85 255 255 85 170 85 0 993255 255 255 255 255 255 170 170 170 255 255 255
993255 255 85 170 85 0 255 255 85 170 85 0 255 255 85 85 255 85 994255 255 255 255 255 255 255 255 255 255 255 255
994255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 995255 255 255 255 255 255 255 255 255 255 255 255
995255 255 85 170 85 0 255 255 85 85 255 85 170 85 0 170 85 0 996255 255 255 255 255 255 255 255 255 255 255 255
9960 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 997255 255 255 255 255 255 255 255 255 255 255 255
9970 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 998255 255 255 255 255 255 255 255 255 0 0 0
9980 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85 999 0 0 0 0 0 0 0 0 0 85 85 85
9990 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0
10000 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1001 0 0 0 85 85 85 0 0 0 0 0 0
10010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 1002 0 0 0 0 0 0 0 0 0 0 0 0
100285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1003 0 0 0 0 0 0 0 0 0 0 0 0
10030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1004 0 0 0 0 0 0 0 0 0 0 0 0
10040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1005 0 0 0 0 0 0 0 0 0 0 0 0
10050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1006 0 0 0 0 0 0 0 0 0 0 0 0
10060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1007 0 0 0 0 0 0 0 0 0 0 0 0
10070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1008 0 0 0 0 0 0 0 0 0 0 0 0
10080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1009 0 0 0 85 85 85 0 0 0 0 0 0
10090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1010 0 0 0 85 85 85 0 0 0 85 85 85
10100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1011255 255 255 255 255 255 255 255 255 255 255 255
10110 0 0 0 0 0 0 0 0 0 0 0 1012255 255 255 255 255 255 255 255 255 255 255 255
10120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1013255 255 255 255 255 255 170 170 170 255 255 255
10130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1014255 255 255 255 255 255 255 255 255 255 255 255
10140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1015255 255 255 255 255 255 255 255 255 255 255 255
10150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1016255 255 255 255 255 255 255 255 255 255 255 255
10160 0 0 0 0 0 0 0 0 170 85 0 255 255 85 255 255 85 1017255 255 255 255 255 255 255 255 255 255 255 255
1017255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 1018255 255 255 255 255 255 255 255 255 0 0 0
1018255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 85 255 85 1019 0 0 0 0 0 0 0 0 0 85 85 85
1019255 255 85 85 255 85 170 85 0 170 85 0 85 255 85 170 85 0 1020 0 0 0 0 0 0 0 0 0 0 0 0
10200 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1021 0 0 0 85 85 85 0 0 0 0 0 0
10210 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1022 0 0 0 0 0 0 0 0 0 0 0 0
102285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1023 0 0 0 0 0 0 0 0 0 0 0 0
10230 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1024 0 0 0 0 0 0 0 0 0 0 0 0
10240 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1025 0 0 0 0 0 0 0 0 0 0 0 0
102585 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1026 0 0 0 0 0 0 0 0 0 0 0 0
102685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1027 0 0 0 0 0 0 0 0 0 0 0 0
10270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1028 0 0 0 0 0 0 0 0 0 0 0 0
10280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1029 0 0 0 85 85 85 0 0 0 0 0 0
10290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1030 0 0 0 85 85 85 0 0 0 85 85 85
10300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1031255 255 255 255 255 255 255 255 255 255 255 255
10310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1032255 255 255 255 255 255 255 255 255 255 255 255
10320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1033255 255 255 255 255 255 170 170 170 255 255 255
10330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1034255 255 255 255 255 255 255 255 255 255 255 255
10340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1035255 255 255 255 255 255 255 255 255 255 255 255
10350 0 0 0 0 0 0 0 0 0 0 0 1036255 255 255 255 255 255 255 255 255 255 255 255
10360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1037255 255 255 255 255 255 255 255 255 255 255 255
10370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1038255 255 255 255 255 255 255 255 255 0 0 0
10380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1039 0 0 0 0 0 0 0 0 0 85 85 85
10390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1040 0 0 0 0 0 0 0 0 0 0 0 0
10400 0 0 0 0 0 0 0 0 85 85 85 255 255 85 85 255 85 1041 0 0 0 85 85 85 0 0 0 0 0 0
1041255 255 85 255 255 85 85 255 85 255 255 85 255 255 85 255 255 85 1042 0 0 0 0 0 0 0 0 0 0 0 0
1042255 255 85 170 85 0 255 255 85 85 255 85 255 255 85 255 255 85 1043 0 0 0 0 0 0 0 0 0 0 0 0
1043170 85 0 170 85 0 85 255 85 170 85 0 0 0 0 0 0 0 1044 0 0 0 0 0 0 0 0 0 0 0 0
10440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1045 0 0 0 0 0 0 0 0 0 0 0 0
10450 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1046 0 0 0 0 0 0 0 0 0 0 0 0
10460 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1047 0 0 0 0 0 0 0 0 0 0 0 0
10470 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1048 0 0 0 0 0 0 0 0 0 0 0 0
10480 0 0 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 1049 0 0 0 85 85 85 0 0 0 0 0 0
1049170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 1050 0 0 0 0 0 0 85 85 85 85 85 85
105085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1051255 255 255 255 255 255 255 255 255 255 255 255
10510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1052255 255 255 255 255 255 255 255 255 255 255 255
10520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1053255 255 255 255 255 255 170 170 170 255 255 255
10530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1054255 255 255 255 255 255 255 255 255 255 255 255
10540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1055255 255 255 255 255 255 255 255 255 255 255 255
10550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1056255 255 255 255 255 255 255 255 255 255 255 255
10560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1057255 255 255 255 255 255 255 255 255 255 255 255
10570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1058255 255 255 255 255 255 255 255 255 0 0 0
10580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1059 0 0 0 0 0 0 0 0 0 85 85 85
10590 0 0 0 0 0 0 0 0 0 0 0 1060 0 0 0 0 0 0 0 0 0 0 0 0
10600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1061 0 0 0 85 85 85 0 0 0 0 0 0
10610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1062 0 0 0 0 0 0 0 0 0 0 0 0
10620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1063 0 0 0 0 0 0 0 0 0 0 0 0
10630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1064 0 0 0 0 0 0 0 0 0 0 0 0
10640 0 0 0 0 0 0 0 0 85 85 85 255 255 85 255 255 85 1065 0 0 0 0 0 0 0 0 0 0 0 0
1065170 85 0 255 255 85 255 255 85 170 85 0 255 255 85 170 85 0 1066 0 0 0 0 0 0 0 0 0 0 0 0
1066255 255 85 85 255 85 170 85 0 255 255 85 170 85 0 85 255 85 1067 0 0 0 0 0 0 0 0 0 0 0 0
1067170 85 0 170 85 0 0 0 0 0 0 0 0 0 0 0 0 0 1068 0 0 0 0 0 0 0 0 0 0 0 0
10680 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1069 0 0 0 85 85 85 0 0 0 0 0 0
106985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1070 0 0 0 0 0 0 0 0 0 85 85 85
10700 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1071255 255 255 255 255 255 255 255 255 255 255 255
10710 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1072255 255 255 255 255 255 255 255 255 255 255 255
107285 85 85 0 0 0 170 170 170 170 170 170 170 170 170 170 170 170 1073255 255 255 255 255 255 170 170 170 255 255 255
1073170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 1074255 255 255 255 255 255 255 255 255 255 255 255
107485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1075255 255 255 255 255 255 255 255 255 255 255 255
10750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1076255 255 255 255 255 255 255 255 255 255 255 255
10760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1077255 255 255 255 255 255 255 255 255 255 255 255
10770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1078255 255 255 255 255 255 255 255 255 0 0 0
10780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1079 85 85 85 85 85 85 85 85 85 85 85 85
10790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1080 85 85 85 0 0 0 0 0 0 0 0 0
10800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1081 0 0 0 85 85 85 0 0 0 0 0 0
10810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1082 0 0 0 0 0 0 0 0 0 0 0 0
10820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1083 0 0 0 0 0 0 0 0 0 0 0 0
10830 0 0 0 0 0 0 0 0 0 0 0 1084 0 0 0 0 0 0 0 0 0 0 0 0
10840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1085 0 0 0 0 0 0 0 0 0 0 0 0
10850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1086 0 0 0 0 0 0 0 0 0 0 0 0
10860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1087 0 0 0 0 0 0 0 0 0 0 0 0
10870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1088 0 0 0 0 0 0 0 0 0 0 0 0
10880 0 0 0 0 0 0 0 0 0 0 0 170 85 0 255 255 85 1089 0 0 0 85 85 85 0 0 0 170 85 0
1089255 255 85 255 255 85 255 255 85 255 255 85 255 255 85 85 255 85 1090255 255 85 170 85 0 0 0 0 0 0 0
1090170 85 0 255 255 85 170 85 0 85 255 85 170 85 0 170 85 0 1091 85 85 85 255 255 255 255 255 255 255 255 255
10910 170 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1092255 255 255 255 255 255 255 255 255 255 255 255
10920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1093255 255 255 255 255 255 170 170 170 255 255 255
10930 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1094255 255 255 255 255 255 255 255 255 255 255 255
10940 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1095255 255 255 255 255 255 255 255 255 255 255 255
10950 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1096255 255 255 255 255 255 255 255 255 255 255 255
10960 0 0 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170 1097255 255 255 255 255 255 255 255 255 255 255 255
1097170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 1098255 255 255 255 255 255 255 255 255 85 85 85
10980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1099 0 0 0 0 0 0 0 0 0 0 0 0
10990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1100 0 0 0 85 85 85 85 85 85 0 0 0
11000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1101 0 0 0 85 85 85 0 0 0 0 0 0
11010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1102 0 0 0 0 0 0 0 0 0 0 0 0
11020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1103 0 0 0 0 0 0 0 0 0 0 0 0
11030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1104 0 0 0 0 0 0 0 0 0 0 0 0
11040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1105 0 0 0 0 0 0 0 0 0 0 0 0
11050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1106 0 0 0 0 0 0 0 0 0 0 0 0
11060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1107 0 0 0 0 0 0 0 0 0 0 0 0
11070 0 0 0 0 0 0 0 0 0 0 0 1108 0 0 0 0 0 0 0 0 0 0 0 0
11080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1109 0 0 0 0 0 0 170 85 0 255 255 85
11090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1110170 85 0 255 255 85 170 85 0 0 0 0
11100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1111 0 0 0 85 85 85 255 255 255 255 255 255
11110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1112255 255 255 255 255 255 255 255 255 255 255 255
11120 0 0 0 0 0 0 0 0 0 0 0 85 255 85 255 255 85 1113255 255 255 255 255 255 170 170 170 255 255 255
1113170 85 0 255 255 85 255 255 85 170 85 0 85 255 85 170 85 0 1114255 255 255 255 255 255 255 255 255 255 255 255
1114255 255 85 170 85 0 0 170 0 170 85 0 0 0 0 0 0 0 1115255 255 255 255 255 255 255 255 255 255 255 255
11150 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1116255 255 255 255 255 255 255 255 255 255 255 255
11160 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1117255 255 255 255 255 255 255 255 255 255 255 255
111785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1118255 255 85 170 85 0 255 255 85 0 0 0
11180 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1119 0 0 0 0 0 0 0 0 0 0 0 0
111985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1120 0 0 0 0 0 0 85 85 85 85 85 85
112085 85 85 0 0 0 170 170 170 170 170 170 170 170 170 85 85 85 1121 85 85 85 0 0 0 0 0 0 0 0 0
112185 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0 1122 0 0 0 0 0 0 0 0 0 0 0 0
11220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1123 0 0 0 0 0 0 0 0 0 0 0 0
11230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1124 0 0 0 0 0 0 0 0 0 0 0 0
11240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1125 0 0 0 0 0 0 0 0 0 0 0 0
11250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1126 0 0 0 0 0 0 0 0 0 0 0 0
11260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1127 0 0 0 0 0 0 0 0 0 0 0 0
11270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1128 0 0 0 0 0 0 0 0 0 0 0 0
11280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1129 0 0 0 170 85 0 255 255 85 170 85 0
11290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1130255 255 85 170 85 0 255 255 85 170 85 0
11300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1131 0 0 0 0 0 0 85 85 85 255 255 255
11310 0 0 0 0 0 0 0 0 0 0 0 1132255 255 255 255 255 255 255 255 255 255 255 255
11320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1133255 255 255 255 255 255 255 255 255 255 255 255
11330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1134255 255 255 255 255 255 255 255 255 255 255 255
11340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1135255 255 255 255 255 255 255 255 255 255 255 255
11350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1136255 255 255 255 255 255 255 255 255 255 255 255
11360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 85 1137255 255 255 255 255 255 255 255 255 255 255 85
1137255 255 85 255 255 85 255 255 85 255 255 85 170 85 0 170 85 0 1138170 85 0 255 255 85 170 85 0 0 0 0
11380 170 0 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85 1139 0 0 0 0 0 0 0 0 0 0 0 0
11390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1140 0 0 0 0 0 0 0 0 0 0 0 0
11400 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1141170 85 0 0 0 0 0 0 0 0 0 0
114185 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1142 0 0 0 0 0 0 0 0 0 0 0 0
114285 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1143 0 0 0 0 0 0 0 0 0 0 0 0
11430 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1144 0 0 0 0 0 0 0 0 0 0 0 0
11440 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1145 0 0 0 0 0 0 0 0 0 0 0 0
114585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1146 0 0 0 0 0 0 0 0 0 0 0 0
11460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1147 0 0 0 0 0 0 0 0 0 0 0 0
11470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1148 0 0 0 0 0 0 0 0 0 0 0 0
11480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1149170 85 0 255 255 85 170 85 0 255 255 85
11490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1150170 85 0 255 255 85 170 85 0 255 255 85
11500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1151170 85 0 0 0 0 0 0 0 85 85 85
11510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1152255 255 255 255 255 255 255 255 255 255 255 255
11520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1153255 255 255 255 255 255 255 255 255 255 255 255
11530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1154255 255 255 255 255 255 255 255 255 255 255 255
11540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1155255 255 255 255 255 255 255 255 255 255 255 255
11550 0 0 0 0 0 0 0 0 0 0 0 1156255 255 255 255 255 255 255 255 255 255 255 255
11560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1157255 255 255 255 255 255 255 255 255 170 85 0
11570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1158255 255 85 170 85 0 255 255 85 0 0 0
11580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1159 0 0 0 0 0 0 0 0 0 0 0 0
11590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1160 0 0 0 0 0 0 0 0 0 170 85 0
11600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1161255 255 85 170 85 0 0 0 0 0 0 0
1161255 255 85 255 255 85 170 85 0 0 170 0 85 85 85 85 85 85 1162 0 0 0 0 0 0 0 0 0 0 0 0
116285 85 85 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0 1163 0 0 0 0 0 0 0 0 0 0 0 0
116385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1164 0 0 0 0 0 0 0 0 0 0 0 0
116485 85 85 85 85 85 85 85 85 170 170 170 170 170 170 85 85 85 1165 0 0 0 0 0 0 0 0 0 0 0 0
1165170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 1166 0 0 0 0 0 0 0 0 0 0 0 0
116685 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 1167 0 0 0 0 0 0 0 0 0 170 85 0
116785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1168255 255 85 170 85 0 255 255 85 170 85 0
116885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1169255 255 85 170 85 0 255 255 85 170 85 0
11690 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1170255 255 85 170 85 0 255 255 85 170 85 0
117085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1171255 255 85 0 0 0 0 0 0 0 0 0
11710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1172 85 85 85 255 255 255 255 255 255 255 255 255
11720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1173255 255 255 255 255 255 255 255 255 255 255 255
11730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1174255 255 255 255 255 255 255 255 255 255 255 255
11740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1175255 255 255 255 255 255 255 255 255 255 255 255
11750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1176255 255 255 255 255 255 255 255 255 255 255 255
11760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1177255 255 255 255 255 255 255 255 255 255 255 85
11770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1178170 85 0 255 255 85 170 85 0 0 0 0
11780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1179 0 0 0 0 0 0 0 0 0 0 0 0
11790 0 0 0 0 0 0 0 0 0 0 0 1180 0 0 0 0 0 0 0 0 0 255 255 85
11800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1181170 85 0 255 255 85 0 0 0 0 0 0
11810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1182 0 0 0 0 0 0 0 0 0 0 0 0
11820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1183 0 0 0 0 0 0 0 0 0 0 0 0
11830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1184 0 0 0 0 0 0 0 0 0 0 0 0
11840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1185 0 0 0 0 0 0 0 0 0 0 0 0
11850 0 0 170 85 0 85 85 85 0 0 0 0 0 0 0 0 0 1186 0 0 0 0 0 0 0 0 0 0 0 0
118685 85 85 85 85 85 85 85 85 85 85 85 170 170 170 85 85 85 1187 0 0 0 0 0 0 170 85 0 255 255 85
118785 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1188170 85 0 255 255 85 170 85 0 255 255 85
1188170 170 170 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255 1189170 85 0 255 255 85 170 85 0 255 255 85
1189255 255 255 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 1190170 85 0 255 255 85 170 85 0 255 255 85
1190170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 85 85 85 1191170 85 0 255 255 85 0 0 0 0 0 0
11910 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1192 0 0 0 85 85 85 255 255 255 255 255 255
11920 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1193255 255 255 255 255 255 255 255 255 255 255 255
11930 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1194255 255 255 255 255 255 255 255 255 255 255 255
11940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1195255 255 255 255 255 255 255 255 255 255 255 255
11950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1196255 255 255 255 255 255 255 255 255 255 255 255
11960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1197255 255 255 255 255 255 170 170 170 170 85 0
11970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1198255 255 85 170 85 0 255 255 85 170 85 0
11980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1199 0 0 0 0 0 0 0 0 0 0 0 0
11990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1200 0 0 0 0 0 0 255 255 85 170 85 0
12000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1201255 255 85 170 85 0 0 0 0 0 0 0
12010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1202 0 0 0 0 0 0 0 0 0 0 0 0
12020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1203 0 0 0 0 0 0 0 0 0 0 0 0
12030 0 0 0 0 0 0 0 0 0 0 0 1204 0 0 0 0 0 0 0 0 0 0 0 0
12040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1205 0 0 0 0 0 0 0 0 0 0 0 0
12050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1206 0 0 0 0 0 0 0 0 0 0 0 0
12060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1207 0 0 0 0 0 0 255 255 85 170 85 0
12070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1208255 255 85 170 85 0 255 255 85 170 85 0
12080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1209255 255 85 170 85 0 255 255 85 170 85 0
12090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1210255 255 85 170 85 0 255 255 85 170 85 0
121085 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170 1211255 255 85 170 85 0 255 255 85 0 0 0
1211255 255 255 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 1212 0 0 0 0 0 0 85 85 85 255 255 255
1212255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1213255 255 255 255 255 255 255 255 255 255 255 255
1213255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 1214255 255 255 255 255 255 255 255 255 255 255 255
1214255 255 255 255 255 255 170 170 170 255 255 255 170 170 170 85 85 85 1215255 255 255 255 255 255 255 255 255 255 255 255
12150 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1216255 255 255 255 255 255 255 255 255 255 255 255
121685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1217255 255 255 170 170 170 170 170 170 255 255 85
121785 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1218170 85 0 255 255 85 170 85 0 255 255 85
12180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1219170 85 0 255 255 85 170 85 0 255 255 85
12190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1220170 85 0 255 255 85 170 85 0 255 255 85
12200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1221170 85 0 255 255 85 0 0 0 0 0 0
12210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1222 0 0 0 0 0 0 0 0 0 0 0 0
12220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1223 0 0 0 0 0 0 0 0 0 0 0 0
12230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1224 0 0 0 0 0 0 0 0 0 0 0 0
12240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1225 0 0 0 0 0 0 0 0 0 0 0 0
12250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1226 0 0 0 0 0 0 0 0 0 0 0 0
12260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1227 0 0 0 0 0 0 170 85 0 255 255 85
12270 0 0 0 0 0 0 0 0 0 0 0 1228170 85 0 255 255 85 170 85 0 255 255 85
12280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1229170 85 0 255 255 85 170 85 0 255 255 85
12290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1230170 85 0 255 255 85 170 85 0 255 255 85
12300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1231170 85 0 255 255 85 170 85 0 0 0 0
12310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1232 0 0 0 0 0 0 0 0 0 85 85 85
12320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1233255 255 255 255 255 255 255 255 255 255 255 255
12330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1234255 255 255 255 255 255 255 255 255 255 255 255
123485 85 85 85 85 85 85 85 85 85 85 85 170 170 170 170 170 170 1235255 255 255 255 255 255 255 255 255 255 255 255
1235255 255 255 170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 1236255 255 255 255 255 255 255 255 255 255 255 255
1236255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 1237255 255 255 170 170 170 170 170 170 170 85 0
1237255 255 255 255 255 255 170 170 170 255 255 255 255 255 255 255 255 255 1238255 255 85 170 85 0 255 255 85 170 85 0
1238255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 85 85 85 1239255 255 85 170 85 0 255 255 85 170 85 0
12390 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1240255 255 85 170 85 0 255 255 85 170 85 0
12400 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1241255 255 85 170 85 0 255 255 85 0 0 0
12410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1242 0 0 0 0 0 0 0 0 0 0 0 0
124285 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1243 0 0 0 0 0 0 0 0 0 0 0 0
12430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1244 0 0 0 0 0 0 0 0 0 0 0 0
12440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1245 0 0 0 0 0 0 0 0 0 0 0 0
12450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1246 0 0 0 0 0 0 0 0 0 0 0 0
12460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1247 0 0 0 0 0 0 255 255 85 170 85 0
12470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1248255 255 85 170 85 0 255 255 85 170 85 0
12480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1249255 255 85 170 85 0 255 255 85 170 85 0
12490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1250255 255 85 170 85 0 255 255 85 170 85 0
12500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1251255 255 85 170 85 0 255 255 85 170 85 0
12510 0 0 0 0 0 0 0 0 0 0 0 1252 0 0 0 0 0 0 0 0 0 0 0 0
12520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1253 0 0 0 255 255 255 255 255 255 255 255 255
12530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1254255 255 255 255 255 255 255 255 255 255 255 255
12540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1255255 255 255 255 255 255 255 255 255 255 255 255
12550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1256255 255 255 255 255 255 255 255 255 255 255 255
12560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1257255 255 255 170 170 170 170 170 170 255 255 85
12570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1258170 85 0 255 255 85 170 85 0 255 255 85
125885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 170 170 170 1259170 85 0 255 255 85 170 85 0 255 255 85
1259170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 1260170 85 0 255 255 85 170 85 0 255 255 85
1260255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255 1261170 85 0 255 255 85 170 85 0 255 255 85
1261255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 1262 0 0 0 0 0 0 0 0 0 0 0 0
1262170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 85 85 85 1263 0 0 0 0 0 0 0 0 0 0 0 0
12630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1264 0 0 0 0 0 0 0 0 0 0 0 0
126485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1265 0 0 0 0 0 0 0 0 0 0 0 0
126585 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1266 0 0 0 0 0 0 0 0 0 0 0 0
12660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1267 0 0 0 0 0 0 170 85 0 255 255 85
12670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1268170 85 0 255 255 85 170 85 0 255 255 85
12680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1269170 85 0 255 255 85 170 85 0 255 255 85
12690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1270170 85 0 255 255 85 170 85 0 255 255 85
12700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1271170 85 0 255 255 85 170 85 0 255 255 85
12710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1272170 85 0 0 0 0 0 0 0 0 0 0
12720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1273 0 0 0 255 255 255 255 255 255 255 255 255
12730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1274255 255 255 255 255 255 255 255 255 255 255 255
12740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1275255 255 255 255 255 255 255 255 255 255 255 255
12750 0 0 0 0 0 0 0 0 0 0 0 1276255 255 255 255 255 255 255 255 255 255 255 255
12760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1277255 255 255 170 170 170 170 170 170 170 85 0
12770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1278255 255 85 170 85 0 255 255 85 170 85 0
12780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1279255 255 85 170 85 0 255 255 85 170 85 0
12790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1280255 255 85 170 85 0 255 255 85 170 85 0
12800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1281255 255 85 170 85 0 255 255 85 170 85 0
12810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1282255 255 85 0 0 0 0 0 0 0 0 0
128285 85 85 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85 1283 0 0 0 0 0 0 0 0 0 0 0 0
128385 85 85 85 85 85 85 85 85 170 170 170 170 170 170 170 170 170 1284 0 0 0 0 0 0 0 0 0 0 0 0
1284170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 1285 0 0 0 0 0 0 0 0 0 0 0 0
1285170 170 170 170 170 170 170 170 170 170 170 170 85 85 85 170 170 170 1286 0 0 0 0 0 0 0 0 0 0 0 0
1286170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 0 0 0 1287 0 0 0 0 0 0 255 255 85 170 85 0
12870 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1288255 255 85 170 85 0 255 255 85 170 85 0
12880 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1289255 255 85 170 85 0 255 255 85 170 85 0
12890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1290255 255 85 170 85 0 255 255 85 170 85 0
12900 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1291255 255 85 170 85 0 255 255 85 170 85 0
12910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1292255 255 85 0 0 0 0 0 0 0 0 0
12920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1293 85 85 85 255 255 255 255 255 255 255 255 255
12930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1294255 255 255 255 255 255 255 255 255 255 255 255
12940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1295255 255 255 255 255 255 255 255 255 255 255 255
12950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1296255 255 255 255 255 255 255 255 255 255 255 255
12960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1297255 255 255 170 170 170 85 85 85 255 255 85
12970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1298170 85 0 255 255 85 170 85 0 255 255 85
12980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1299170 85 0 255 255 85 170 85 0 255 255 85
12990 0 0 0 0 0 0 0 0 0 0 0 1300170 85 0 255 255 85 170 85 0 255 255 85
13000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1301170 85 0 255 255 85 170 85 0 255 255 85
13010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1302170 85 0 255 255 85 0 0 0 0 0 0
13020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1303 0 0 0 0 0 0 0 0 0 0 0 0
13030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1304 0 0 0 0 0 0 0 0 0 0 0 0
13040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1305 0 0 0 0 0 0 0 0 0 0 0 0
13050 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1306 0 0 0 0 0 0 0 0 0 0 0 0
1306170 170 170 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1307 0 0 0 0 0 0 170 85 0 255 255 85
13070 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1308170 85 0 255 255 85 170 85 0 255 255 85
130885 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1309170 85 0 255 255 85 170 85 0 255 255 85
130985 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1310170 85 0 255 255 85 170 85 0 255 255 85
13100 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1311170 85 0 255 255 85 170 85 0 255 255 85
131185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1312170 85 0 255 255 85 85 85 85 85 85 85
13120 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1313255 255 255 255 255 255 255 255 255 255 255 255
131385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1314255 255 255 255 255 255 255 255 255 255 255 255
13140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1315255 255 255 255 255 255 255 255 255 255 255 255
13150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1316255 255 255 255 255 255 255 255 255 255 255 255
13160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1317170 170 170 85 85 85 85 85 85 170 85 0
13170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1318255 255 85 170 85 0 255 255 85 170 85 0
13180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1319255 255 85 170 85 0 255 255 85 170 85 0
13190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1320255 255 85 170 85 0 255 255 85 170 85 0
13200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1321255 255 85 170 85 0 255 255 85 170 85 0
13210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1322255 255 85 170 85 0 255 255 85 170 85 0
13220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1323 0 0 0 0 0 0 0 0 0 0 0 0
13230 0 0 0 0 0 0 0 0 0 0 0 1324 0 0 0 0 0 0 0 0 0 0 0 0
13240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1325 0 0 0 0 0 0 0 0 0 0 0 0
13250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1326 0 0 0 0 0 0 0 0 0 0 0 0
13260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1327 0 0 0 0 0 0 255 255 85 170 85 0
13270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1328255 255 85 170 85 0 255 255 85 170 85 0
13280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1329255 255 85 170 85 0 255 255 85 170 85 0
13290 0 0 0 0 0 0 0 0 0 0 0 170 170 170 85 85 85 1330255 255 85 170 85 0 255 255 85 170 85 0
133085 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 1331255 255 85 170 85 0 255 255 85 170 85 0
133185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1332255 255 85 170 85 0 255 255 85 255 255 255
133285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1333255 255 255 255 255 255 255 255 255 255 255 255
13330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1334255 255 255 255 255 255 255 255 255 255 255 255
133485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1335255 255 255 255 255 255 255 255 255 255 255 255
13350 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1336255 255 255 255 255 255 255 255 255 170 170 170
13360 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1337 85 85 85 0 0 0 0 0 0 170 85 0
13370 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1338170 85 0 255 255 85 170 85 0 255 255 85
133885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1339170 85 0 255 255 85 170 85 0 255 255 85
13390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1340170 85 0 255 255 85 170 85 0 255 255 85
13400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1341170 85 0 255 255 85 170 85 0 255 255 85
13410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1342170 85 0 255 255 85 170 85 0 255 255 85
13420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1343 0 0 0 0 0 0 0 0 0 0 0 0
13430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1344 0 0 0 0 0 0 0 0 0 0 0 0
13440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1345 0 0 0 0 0 0 0 0 0 0 0 0
13450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1346 0 0 0 0 0 0 0 0 0 0 0 0
13460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1347 0 0 0 0 0 0 170 85 0 255 255 85
13470 0 0 0 0 0 0 0 0 0 0 0 1348170 85 0 255 255 85 170 85 0 255 255 85
13480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349170 85 0 255 255 85 170 85 0 255 255 85
13490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1350170 85 0 255 255 85 170 85 0 255 255 85
13500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1351170 85 0 255 255 85 170 85 0 255 255 85
13510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1352170 85 0 255 255 85 170 85 0 255 255 85
13520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353255 255 255 255 255 255 255 255 255 255 255 255
13530 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85 1354255 255 255 255 255 255 255 255 255 255 255 255
135485 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0 1355255 255 255 255 255 255 255 255 255 255 255 255
13550 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1356255 255 255 255 255 255 170 170 170 85 85 85
13560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1357 0 0 0 0 0 0 0 0 0 170 85 0
13570 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1358255 255 85 170 85 0 255 255 85 170 85 0
13580 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1359255 255 85 170 85 0 255 255 85 170 85 0
135985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1360255 255 85 170 85 0 255 255 85 170 85 0
13600 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1361255 255 85 170 85 0 255 255 85 170 85 0
136185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1362255 255 85 170 85 0 255 255 85 0 0 0
13620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1363 0 0 0 0 0 0 0 0 0 0 0 0
13630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1364 0 0 0 0 0 0 0 0 0 0 0 0
13640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1365 0 0 0 0 0 0 0 0 0 0 0 0
13650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1366 0 0 0 0 0 0 0 0 0 0 0 0
13660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1367 0 0 0 0 0 0 255 255 85 170 85 0
13670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1368255 255 85 170 85 0 255 255 85 170 85 0
13680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1369255 255 85 170 85 0 255 255 85 170 85 0
13690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1370255 255 85 170 85 0 255 255 85 170 85 0
13700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1371255 255 85 170 85 0 255 255 85 170 85 0
13710 0 0 0 0 0 0 0 0 0 0 0 1372255 255 85 170 85 0 255 255 85 170 85 0
13720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1373170 170 170 255 255 255 255 255 255 255 255 255
13730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1374255 255 255 255 255 255 255 255 255 255 255 255
13740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1375255 255 255 255 255 255 255 255 255 255 255 255
13750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1376170 170 170 85 85 85 85 85 85 0 0 0
13760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1377 0 0 0 0 0 0 0 0 0 170 85 0
13770 0 0 0 0 0 85 85 85 85 85 85 170 170 170 85 85 85 1378170 85 0 255 255 85 170 85 0 255 255 85
137885 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0 1379170 85 0 255 255 85 170 85 0 255 255 85
137985 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1380170 85 0 255 255 85 170 85 0 255 255 85
13800 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1381170 85 0 255 255 85 170 85 0 255 255 85
13810 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1382170 85 0 255 255 85 0 0 0 0 0 0
138285 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1383 0 0 0 0 0 0 0 0 0 0 0 0
13830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1384 0 0 0 0 0 0 0 0 0 0 0 0
138485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1385 0 0 0 0 0 0 0 0 0 0 0 0
138585 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85 1386 0 0 0 0 0 0 0 0 0 0 0 0
13860 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1387 0 0 0 255 255 85 170 85 0 255 255 85
13870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1388170 85 0 255 255 85 170 85 0 255 255 85
13880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1389170 85 0 255 255 85 170 85 0 255 255 85
13890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1390170 85 0 255 255 85 170 85 0 255 255 85
13900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1391170 85 0 255 255 85 170 85 0 255 255 85
13910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1392170 85 0 255 255 85 170 85 0 170 85 0
13920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1393170 85 0 170 170 170 255 255 255 255 255 255
13930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1394255 255 255 255 255 255 255 255 255 255 255 255
13940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1395255 255 255 255 255 255 170 170 170 85 85 85
13950 0 0 0 0 0 0 0 0 0 0 0 1396 85 85 85 0 0 0 0 0 0 0 0 0
13960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1397 0 0 0 0 0 0 85 85 85 170 85 0
13970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1398255 255 85 170 85 0 255 255 85 170 85 0
13980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1399255 255 85 170 85 0 255 255 85 170 85 0
13990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1400255 255 85 170 85 0 255 255 85 170 85 0
14000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1401255 255 85 170 85 0 255 255 85 170 85 0
14010 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85 1402255 255 85 0 0 0 0 0 0 0 0 0
140285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85 1403 0 0 0 0 0 0 0 0 0 0 0 0
14030 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1404 0 0 0 0 0 0 0 0 0 0 0 0
14040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1405 0 0 0 0 0 0 0 0 0 0 0 0
14050 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1406 0 0 0 0 0 0 0 0 0 0 0 0
14060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1407 0 0 0 170 85 0 255 255 85 170 85 0
140785 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1408255 255 85 170 85 0 255 255 85 170 85 0
14080 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1409255 255 85 170 85 0 255 255 85 170 85 0
14090 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1410255 255 85 170 85 0 255 255 85 170 85 0
141085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1411255 255 85 170 85 0 255 255 85 170 85 0
141185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1412255 255 85 170 85 0 255 255 85 170 85 0
14120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1413170 85 0 0 0 0 0 0 0 0 0 0
14130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1414 0 0 0 0 0 0 0 0 0 0 0 0
14140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1415 0 0 0 0 0 0 0 0 0 0 0 0
14150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1416 0 0 0 0 0 0 0 0 0 0 0 0
14160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1417 0 0 0 0 0 0 85 85 85 170 85 0
14170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1418170 85 0 255 255 85 170 85 0 255 255 85
14180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1419170 85 0 255 255 85 170 85 0 255 255 85
14190 0 0 0 0 0 85 85 85 85 85 85 1420170 85 0 255 255 85 170 85 0 255 255 85
14200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1421170 85 0 170 85 0 170 85 0 0 0 0
14210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1422 0 0 0 0 0 0 0 0 0 0 0 0
14220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1423 0 0 0 0 0 0 0 0 0 0 0 0
14230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1424 0 0 0 0 0 0 0 0 0 0 0 0
14240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1425 0 0 0 0 0 0 0 0 0 0 0 0
14250 0 0 85 85 85 85 85 85 170 170 170 85 85 85 85 85 85 1426 0 0 0 0 0 0 0 0 0 0 0 0
142685 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1427 0 0 0 255 255 85 170 85 0 255 255 85
142785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1428170 85 0 255 255 85 170 85 0 255 255 85
142885 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1429170 85 0 255 255 85 170 85 0 255 255 85
142985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1430170 85 0 255 255 85 170 85 0 255 255 85
143085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1431170 85 0 255 255 85 170 85 0 255 255 85
14310 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1432170 85 0 255 255 85 170 85 0 170 85 0
143285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1433170 85 0 0 0 0 0 0 0 0 0 0
143385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1434 0 0 0 0 0 0 0 0 0 0 0 0
14340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1435 0 0 0 0 0 0 0 0 0 0 0 0
14350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1436 0 0 0 0 0 0 0 0 0 0 0 0
14360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1437 0 0 0 0 0 0 85 85 85 170 85 0
14370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1438255 255 85 170 85 0 255 255 85 170 85 0
14380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1439255 255 85 170 85 0 255 255 85 170 85 0
14390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1440255 255 85 170 85 0 255 255 85 170 85 0
14400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1441170 85 0 0 0 0 0 0 0 0 0 0
14410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1442 0 0 0 0 0 0 0 0 0 0 0 0
14420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1443 0 0 0 0 0 0 0 0 0 0 0 0
14430 0 0 85 85 85 170 170 170 170 170 170 1444 0 0 0 0 0 0 0 0 0 0 0 0
14440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1445 0 0 0 0 0 0 0 0 0 0 0 0
14450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1446 0 0 0 0 0 0 0 0 0 0 0 0
14460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1447 0 0 0 0 0 0 255 255 85 170 85 0
14470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1448255 255 85 170 85 0 255 255 85 170 85 0
14480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1449255 255 85 170 85 0 255 255 85 170 85 0
14490 0 0 85 85 85 170 170 170 85 85 85 85 85 85 85 85 85 1450255 255 85 170 85 0 255 255 85 170 85 0
145085 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1451255 255 85 170 85 0 255 255 85 170 85 0
14510 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1452255 255 85 170 85 0 255 255 85 170 85 0
14520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1453170 85 0 0 0 0 0 0 0 0 0 0
14530 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1454 0 0 0 0 0 0 0 0 0 0 0 0
14540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1455 0 0 0 0 0 0 0 0 0 0 0 0
14550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1456 0 0 0 0 0 0 0 0 0 0 0 0
14560 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1457 0 0 0 0 0 0 85 85 85 170 85 0
14570 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1458170 85 0 255 255 85 170 85 0 255 255 85
145885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1459170 85 0 255 255 85 170 85 0 255 255 85
14590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1460170 85 0 170 85 0 170 85 0 170 85 0
14600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1461 0 0 0 0 0 0 0 0 0 0 0 0
14610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1462 0 0 0 0 0 0 0 0 0 0 0 0
14620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1463 0 0 0 0 0 0 0 0 0 0 0 0
14630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1464 0 0 0 0 0 0 0 0 0 0 0 0
14640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1465 0 0 0 0 0 0 0 0 0 0 0 0
14650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1466 0 0 0 0 0 0 0 0 0 0 0 0
14660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1467 0 0 0 0 0 0 0 0 0 0 0 0
146785 85 85 170 170 170 255 255 255 170 170 170 1468 0 0 0 0 0 0 170 85 0 170 85 0
14680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1469170 85 0 170 85 0 170 85 0 170 85 0
14690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1470170 85 0 255 255 85 170 85 0 255 255 85
14700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1471170 85 0 255 255 85 170 85 0 255 255 85
14710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1472170 85 0 255 255 85 170 85 0 170 85 0
14720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1473170 85 0 0 0 0 0 0 0 0 0 0
147385 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1474 85 85 85 85 85 85 85 85 85 85 85 85
147485 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1475 85 85 85 85 85 85 85 85 85 85 85 85
14750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1476 85 85 85 85 85 85 85 85 85 0 0 0
14760 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1477 0 0 0 0 0 0 0 0 0 170 85 0
14770 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1478170 85 0 170 85 0 255 255 85 170 85 0
14780 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1479255 255 85 170 85 0 255 255 85 170 85 0
14790 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1480170 85 0 170 85 0 0 0 0 0 0 0
148085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1481 0 0 0 0 0 0 0 0 0 0 0 0
148185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1482 0 0 0 0 0 0 0 0 0 0 0 0
14820 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1483 0 0 0 0 0 0 0 0 0 0 0 0
14830 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1484 0 0 0 0 0 0 0 0 0 0 0 0
14840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1485 0 0 0 0 0 0 0 0 0 0 0 0
14850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1486 0 0 0 0 0 0 0 0 0 0 0 0
14860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1487 0 0 0 0 0 0 0 0 0 0 0 0
14870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1488 0 0 0 0 0 0 0 0 0 0 0 0
14880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1489 0 0 0 0 0 0 170 85 0 170 85 0
14890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1490170 85 0 170 85 0 170 85 0 170 85 0
14900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170 1491170 85 0 170 85 0 255 255 85 170 85 0
1491170 170 170 255 255 255 170 170 170 170 170 170 1492255 255 85 170 85 0 170 85 0 170 85 0
14920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1493 85 85 85 85 85 85 85 85 85 85 85 85
14930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1494 0 0 0 0 0 0 0 0 0 0 0 0
14940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1495 0 0 0 0 0 0 0 0 0 0 0 0
14950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1496 0 0 0 0 0 0 0 0 0 85 85 85
14960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1497 85 85 85 85 85 85 85 85 85 170 85 0
149785 85 85 170 170 170 85 85 85 85 85 85 85 85 85 0 0 0 1498170 85 0 170 85 0 170 85 0 255 255 85
149885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1499170 85 0 255 255 85 170 85 0 170 85 0
149985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1500170 85 0 0 0 0 0 0 0 0 0 0
15000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1501 0 0 0 0 0 0 0 0 0 0 0 0
15010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1502 0 0 0 0 0 0 0 0 0 0 0 0
15020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1503 0 0 0 0 0 0 0 0 0 0 0 0
15030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1504 0 0 0 0 0 0 0 0 0 0 0 0
15040 0 0 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85 1505 0 0 0 0 0 0 0 0 0 0 0 0
15050 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1506 0 0 0 0 0 0 0 0 0 0 0 0
15060 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1507 0 0 0 0 0 0 0 0 0 0 0 0
15070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1508 0 0 0 0 0 0 0 0 0 0 0 0
15080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1509 0 0 0 0 0 0 0 0 0 0 0 0
15090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1510 0 0 0 0 0 0 0 0 0 170 85 0
15100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1511170 85 0 170 85 0 170 85 0 170 85 0
15110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1512170 85 0 170 85 0 170 85 0 170 85 0
15120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1513 0 0 0 0 0 0 0 0 0 0 0 0
15130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1514 0 0 0 0 0 0 0 0 0 0 0 0
15140 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170 1515 0 0 0 0 0 0 0 0 0 0 0 0
1515255 255 255 255 255 255 170 170 170 170 170 170 1516 0 0 0 0 0 0 0 0 0 0 0 0
15160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1517 0 0 0 0 0 0 0 0 0 170 85 0
15170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1518170 85 0 170 85 0 170 85 0 170 85 0
15180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1519170 85 0 170 85 0 170 85 0 170 85 0
15190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1520 0 0 0 0 0 0 0 0 0 0 0 0
15200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1521 0 0 0 0 0 0 0 0 0 0 0 0
152185 85 85 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0 1522 0 0 0 0 0 0 0 0 0 0 0 0
152285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1523 0 0 0 0 0 0 0 0 0 0 0 0
15230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1524 0 0 0 0 0 0 0 0 0 0 0 0
152485 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1525 0 0 0 0 0 0 0 0 0 0 0 0
15250 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1526 0 0 0 0 0 0 0 0 0 0 0 0
152685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1527 0 0 0 0 0 0 0 0 0 0 0 0
15270 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1528 0 0 0 0 0 0 0 0 0 0 0 0
15280 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1529 0 0 0 0 0 0 0 0 0 0 0 0
152985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1530 0 0 0 0 0 0 0 0 0 0 0 0
15300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1531 0 0 0 170 85 0 170 85 0 170 85 0
153185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1532170 85 0 170 85 0 170 85 0 0 0 0
15320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1533 0 0 0 0 0 0 0 0 0 0 0 0
15330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1534 0 0 0 0 0 0 0 0 0 0 0 0
15340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1535 0 0 0 0 0 0 0 0 0 0 0 0
15350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1536 0 0 0 0 0 0 0 0 0 0 0 0
15360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1537 0 0 0 0 0 0 0 0 0 0 0 0
15370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1538170 85 0 170 85 0 170 85 0 170 85 0
15380 0 0 0 0 0 85 85 85 170 170 170 170 170 170 255 255 255 1539170 85 0 170 85 0 170 85 0 0 0 0
1539255 255 255 170 170 170 170 170 170 0 0 0 1540 0 0 0 0 0 0 0 0 0 0 0 0
15400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1541 0 0 0 0 0 0 0 0 0 0 0 0
15410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1542 0 0 0 0 0 0 0 0 0 0 0 0
15420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1543 0 0 0 0 0 0 0 0 0 0 0 0
15430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1544 0 0 0 0 0 0 0 0 0 0 0 0
15440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1545 0 0 0 0 0 0 0 0 0 0 0 0
1545170 170 170 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85 1546 0 0 0 0 0 0 0 0 0 0 0 0
15460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1547 0 0 0 0 0 0 0 0 0 0 0 0
154785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1548 0 0 0 0 0 0 0 0 0 0 0 0
15480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1549 0 0 0 0 0 0 0 0 0 0 0 0
154985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1550 0 0 0 0 0 0 0 0 0 0 0 0
15500 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1551 0 0 0 0 0 0 0 0 0 0 0 0
15510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1552 0 0 0 0 0 0 0 0 0 0 0 0
15520 0 0 85 85 85 0 0 0 0 0 0 85 85 85 85 85 85 1553 0 0 0 0 0 0 0 0 0 0 0 0
15530 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0 1554 0 0 0 0 0 0 0 0 0 0 0 0
155485 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1555 0 0 0 0 0 0 0 0 0 0 0 0
15550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1556 0 0 0 0 0 0 0 0 0 0 0 0
15560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1557 0 0 0 0 0 0 0 0 0 0 0 0
15570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1558 0 0 0 0 0 0 0 0 0 0 0 0
15580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1559 0 0 0 0 0 0 0 0 0 0 0 0
15590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1560 0 0 0 0 0 0 0 0 0 0 0 0
15600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1561 0 0 0 0 0 0 0 0 0 0 0 0
15610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1562 0 0 0 0 0 0 0 0 0 0 0 0
15620 0 0 85 85 85 170 170 170 255 255 255 255 255 255 255 255 255 1563 0 0 0 0 0 0 0 0 0 0 0 0
1563170 170 170 170 170 170 85 85 85 0 0 0 1564 0 0 0 0 0 0 0 0 0 0 0 0
15640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1565 0 0 0 0 0 0 0 0 0 0 0 0
15650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1566 0 0 0 0 0 0 0 0 0 0 0 0
15660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1567 0 0 0 0 0 0 0 0 0 0 0 0
15670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1568 0 0 0 0 0 0 0 0 0 0 0 0
15680 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1569 0 0 0 0 0 0 0 0 0 0 0 0
156985 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1570 0 0 0 0 0 0 0 0 0 0 0 0
15700 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1571 0 0 0 0 0 0 0 0 0 0 0 0
15710 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0 1572 0 0 0 0 0 0 0 0 0 0 0 0
15720 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1573 0 0 0 0 0 0 0 0 0 0 0 0
15730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1574 0 0 0 0 0 0 0 0 0 0 0 0
15740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1575 0 0 0 0 0 0 0 0 0 0 0 0
15750 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1576 0 0 0 0 0 0 0 0 0 0 0 0
15760 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1577 0 0 0 0 0 0 0 0 0 0 0 0
157785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1578 0 0 0 0 0 0 0 0 0 0 0 0
15780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1579 0 0 0 0 0 0 0 0 0 0 0 0
15790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1580 0 0 0 0 0 0 0 0 0 0 0 0
15800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1581 0 0 0 0 0 0 0 0 0 0 0 0
15810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1582 0 0 0 0 0 0 0 0 0 0 0 0
15820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1583 0 0 0 0 0 0 0 0 0 0 0 0
15830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1584 0 0 0 0 0 0 0 0 0 0 0 0
15840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1585 0 0 0 0 0 0 0 0 0 0 0 0
15850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85 1586 0 0 0 0 0 0 0 0 0 0 0 0
1586170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 1587 0 0 0 0 0 0 0 0 0 0 0 0
1587170 170 170 170 170 170 0 0 0 0 0 0 1588 0 0 0 0 0 0 0 0 0 0 0 0
15880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1589 0 0 0 0 0 0 0 0 0 0 0 0
15890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1590 0 0 0 0 0 0 0 0 0 0 0 0
15900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1591 0 0 0 0 0 0 0 0 0 0 0 0
15910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1592 0 0 0 0 0 0 0 0 0 0 0 0
15920 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85 1593 0 0 0 0 0 0 0 0 0 0 0 0
159385 85 85 85 85 85 85 85 85 85 85 85 0 0 0 85 85 85 1594 0 0 0 0 0 0 0 0 0 0 0 0
15940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1595 0 0 0 0 0 0 0 0 0 0 0 0
15950 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1596 0 0 0 0 0 0 0 0 0 0 0 0
15960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1597 0 0 0 0 0 0 0 0 0 0 0 0
15970 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0 1598 0 0 0 0 0 0 0 0 0 0 0 0
15980 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0 1599 0 0 0 0 0 0 0 0 0 0 0 0
15990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1600 0 0 0 0 0 0 0 0 0 0 0 0
16000 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0 1601 0 0 0 0 0 0 0 0 0 0 0 0
160185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85 1602 0 0 0 0 0 0 0 0 0 0 0 0
16020 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0 1603 0 0 0 0 0 0 0 0 0 0 0 0
16030 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0 1604 0 0 0 0 0 0 0 0 0 0 0 0
16040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16090 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
1610170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
1611170 170 170 0 0 0 0 0 0 0 0 0
16120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16160 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
161785 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
161885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
162185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
162285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
16230 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16240 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
16250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
16260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16330 0 0 0 0 0 85 85 85 170 170 170 170 170 170 170 170 170
1634255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
16350 0 0 0 0 0 0 0 0 0 0 0
16360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16400 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
164185 85 85 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
16420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16430 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
16440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16480 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0
164985 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
165085 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
16510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
165785 85 85 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255
1658255 255 255 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
16590 0 0 0 0 0 0 0 0 0 0 0
16600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16630 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
16640 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
166585 85 85 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
166685 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
16670 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
16680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16690 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
16700 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
167185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
167285 85 85 0 0 0 170 170 170 255 255 255 85 85 85 85 85 85
167385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
167485 85 85 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
167585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
1681170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255
1682255 255 255 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
16830 0 0 0 0 0 0 0 0 0 0 0
16840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
168785 85 85 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
16880 0 0 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
168985 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
16900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16920 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
16930 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
16940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16950 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
16960 0 0 85 85 85 170 170 170 255 255 255 170 170 170 85 85 85
16970 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
1698255 255 255 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
16990 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17040 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
1705255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
1706170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
17070 0 0 0 0 0 0 0 0 0 0 0
17080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171185 85 85 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0
17120 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
171385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
17140 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
17150 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
171885 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
17190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
172085 85 85 85 85 85 255 255 255 255 255 255 255 255 255 85 85 85
172185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 170 170 170
1722255 255 255 170 170 170 0 0 0 0 0 0 85 85 85 0 0 0
17230 0 0 85 85 85 170 170 170 85 85 85 0 0 0 0 0 0
17240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17280 0 0 0 0 0 85 85 85 0 0 0 85 85 85 170 170 170
1729170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170
1730170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
17310 0 0 0 0 0 0 0 0 0 0 0
17320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17330 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1735170 170 170 255 255 255 255 255 255 170 170 170 0 0 0 0 0 0
17360 0 0 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
173785 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
17380 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17410 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
17420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17430 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
174485 85 85 170 170 170 255 255 255 255 255 255 255 255 255 85 85 85
174585 85 85 0 0 0 85 85 85 0 0 0 85 85 85 255 255 255
1746255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
174785 85 85 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
17480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
175285 85 85 0 0 0 85 85 85 85 85 85 85 85 85 85 85 85
1753170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
175485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17550 0 0 0 0 0 0 0 0 0 0 0
17560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17570 0 0 0 0 0 0 0 0 85 85 85 170 170 170 170 170 170
17580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1759170 170 170 255 255 255 255 255 255 255 255 255 85 85 85 0 0 0
17600 0 0 85 85 85 85 85 85 85 85 85 85 85 85 0 0 0
176185 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
17620 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
17630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17640 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
176585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17660 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17670 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
176885 85 85 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
17690 0 0 85 85 85 0 0 0 85 85 85 170 170 170 255 255 255
1770255 255 255 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
177185 85 85 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
17720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17750 0 0 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
17760 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85
1777170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 85 85 85
17780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17790 0 0 0 0 0 0 0 0 0 0 0
17800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17810 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255
1782170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
178385 85 85 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0
17840 0 0 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
178585 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
17860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17870 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
17880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
17910 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
179285 85 85 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
179385 85 85 0 0 0 0 0 0 85 85 85 170 170 170 255 255 255
1794255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
1795170 170 170 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0
179685 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
17970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17990 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
180085 85 85 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0
180185 85 85 85 85 85 170 170 170 85 85 85 85 85 85 0 0 0
18020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18030 0 0 0 0 0 0 0 0 0 0 0
18040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18050 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
1806255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
180785 85 85 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
18080 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
180985 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
18100 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18120 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18130 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
181485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18150 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
1816170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 85 85 85
18170 0 0 85 85 85 0 0 0 85 85 85 170 170 170 255 255 255
1818170 170 170 170 170 170 0 0 0 0 0 0 0 0 0 85 85 85
1819170 170 170 255 255 255 255 255 255 0 0 0 0 0 0 85 85 85
1820255 255 255 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18220 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
182385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
182485 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
18250 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18270 0 0 0 0 0 0 0 0 0 0 0
18280 0 0 0 0 0 0 0 0 85 85 85 85 85 85 0 0 0
18290 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255
1830255 255 255 255 255 255 170 170 170 0 0 0 0 0 0 0 0 0
183185 85 85 170 170 170 255 255 255 170 170 170 170 170 170 170 170 170
183285 85 85 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
183385 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
18340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18380 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
183985 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
184085 85 85 170 170 170 255 255 255 170 170 170 170 170 170 85 85 85
184185 85 85 0 0 0 85 85 85 85 85 85 85 85 85 170 170 170
1842170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
1843170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 170 170 170
1844170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
18470 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18480 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
184985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18510 0 0 0 0 0 0 0 0 0 0 0
18520 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
185385 85 85 0 0 0 0 0 0 0 0 0 0 0 0 170 170 170
1854255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
18550 0 0 85 85 85 170 170 170 170 170 170 255 255 85 85 85 85
185685 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
185785 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
18580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18590 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18610 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
18620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
186385 85 85 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
186485 85 85 170 170 170 170 170 170 170 170 170 170 85 0 85 85 85
18650 0 0 85 85 85 0 0 0 85 85 85 170 170 170 170 85 0
1866170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
1867170 85 0 170 170 170 85 85 85 0 0 0 85 85 85 85 85 85
1868170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18700 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
187185 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
187285 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18750 0 0 0 0 0 0 0 0 0 0 0
18760 0 0 0 0 0 0 0 0 0 0 0 170 170 170 255 255 255
1877170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
1878255 255 255 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
18790 0 0 85 85 85 170 85 0 170 170 170 170 170 170 85 85 85
188085 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
188185 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
18820 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
18840 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
18850 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18860 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
188785 85 85 0 0 0 85 85 85 0 0 0 85 85 85 85 85 85
188885 85 85 170 85 0 85 255 85 170 85 0 170 170 170 85 85 85
188985 85 85 0 0 0 0 0 0 85 85 85 170 85 0 85 255 85
1890170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
189185 85 85 85 85 85 170 85 0 0 0 0 85 85 85 85 85 85
189285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18930 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
18940 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18950 0 0 85 85 85 0 0 0 85 85 85 0 0 0 85 85 85
18960 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
18970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18990 0 0 0 0 0 0 0 0 0 0 0
19000 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 255
1901255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
1902170 170 170 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
19030 0 0 0 0 0 170 170 170 170 85 0 170 170 170 170 85 0
190485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
190585 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
190785 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191085 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
191185 85 85 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
191285 85 85 85 85 85 255 85 85 170 170 170 85 255 85 170 85 0
191385 85 85 85 85 85 170 85 0 85 85 85 170 170 170 85 85 85
1914170 170 170 170 85 0 85 85 85 85 85 85 85 85 85 85 85 85
1915170 85 0 85 255 85 85 85 85 85 85 85 85 85 85 170 85 0
191685 85 85 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
19170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
191885 85 85 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19190 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
19200 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19230 0 0 0 0 0 0 0 0 0 0 0
192485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 170 170 170
1925255 255 255 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
192685 85 85 170 85 0 170 170 170 170 85 0 85 85 85 0 0 0
192785 85 85 85 85 85 85 255 85 170 170 170 170 170 170 170 85 0
192885 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
192985 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
193085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19310 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
19320 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19330 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19340 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
19350 0 0 85 85 85 85 85 85 0 0 0 85 85 85 85 85 85
193685 85 85 85 85 85 85 255 85 255 85 85 170 170 170 170 170 170
1937170 170 170 85 255 85 170 170 170 170 85 0 170 170 170 170 85 0
1938170 170 170 85 85 85 85 255 85 170 85 0 170 170 170 170 85 0
1939170 170 170 170 170 170 170 85 0 85 85 85 85 85 85 85 255 85
194085 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19410 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
19420 0 0 0 0 0 85 85 85 0 0 0 0 0 0 85 85 85
19430 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19470 0 0 0 0 0 0 0 0 0 0 0
19480 0 0 170 170 170 170 170 170 0 0 0 0 0 0 85 85 85
1949170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
195085 85 85 85 85 85 255 255 85 85 85 85 85 85 85 85 85 85
195185 255 85 255 85 85 170 170 170 170 85 0 170 170 170 85 255 85
195285 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
195385 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19540 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
19550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19560 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
19570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19580 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
195985 85 85 0 0 0 85 85 85 85 85 85 85 85 85 0 0 0
196085 85 85 85 85 85 170 85 0 170 170 170 170 170 170 255 255 85
1961170 170 170 255 85 85 170 170 170 170 170 170 255 255 85 170 170 170
196285 255 85 170 170 170 255 85 85 170 170 170 170 170 170 170 170 170
1963170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 170 85 0
196485 85 85 0 0 0 0 0 0 85 85 85 0 0 0 85 85 85
19650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
196685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
19670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19710 0 0 0 0 0 0 0 0 0 0 0
19720 0 0 85 85 85 170 170 170 85 85 85 0 0 0 85 85 85
197385 85 85 170 85 0 85 85 85 0 0 0 85 85 85 85 85 85
197485 85 85 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
1975170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 85 85
197685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
197785 85 85 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
197885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19810 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
198285 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
198385 85 85 85 85 85 0 0 0 85 85 85 85 85 85 85 85 85
198485 85 85 85 85 85 170 170 170 255 255 85 170 170 170 170 170 170
1985170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 85 0
1986170 170 170 255 255 85 170 170 170 255 255 85 170 170 170 255 255 85
1987170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 170 85 0
198885 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19890 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
19900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
19910 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
19920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19950 0 0 0 0 0 0 0 0 0 0 0
19960 0 0 0 0 0 170 170 170 85 85 85 85 85 85 0 0 0
199785 85 85 85 85 85 170 170 170 85 85 85 170 170 170 170 85 0
1998170 170 170 85 255 85 170 170 170 170 85 0 170 170 170 170 170 170
1999255 255 85 170 170 170 170 170 170 255 255 255 255 255 85 170 170 170
2000255 255 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
200185 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20020 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
20030 0 0 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20040 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
200585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20060 0 0 85 85 85 85 85 85 85 85 85 0 0 0 0 0 0
20070 0 0 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
200885 85 85 170 85 0 170 170 170 170 170 170 170 170 170 255 255 255
2009170 170 170 255 255 255 255 255 85 170 170 170 255 255 85 170 170 170
2010255 255 85 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170
2011170 170 170 170 170 170 170 170 170 255 85 85 170 170 170 170 170 170
201285 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20140 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
20150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20190 0 0 0 0 0 0 0 0 0 0 0
20200 0 0 0 0 0 85 85 85 85 85 85 170 85 0 85 85 85
202185 85 85 255 255 85 170 170 170 170 170 170 170 170 170 170 170 170
2022255 255 85 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2023170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170
2024170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
20250 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
20260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
203085 85 85 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
20310 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
203285 85 85 85 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2033255 255 255 170 170 170 255 255 255 170 170 170 170 170 170 170 170 170
2034170 170 170 170 170 170 255 255 85 170 170 170 255 255 85 255 255 255
2035255 255 85 255 255 255 255 255 85 170 170 170 170 170 170 170 85 0
2036170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
203785 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
20380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20430 0 0 0 0 0 0 0 0 0 0 0
20440 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
204585 85 85 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2046170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 255 255 85
2047255 255 255 255 255 255 255 255 85 255 255 255 255 255 255 170 170 170
2048255 255 85 85 85 85 85 85 85 0 0 0 0 0 0 85 85 85
204985 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20500 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
20510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20520 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20530 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
205485 85 85 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0
205585 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
205685 85 85 170 170 170 170 170 170 170 170 170 255 255 255 170 170 170
2057255 255 255 255 255 255 255 255 255 170 170 170 170 170 170 255 255 85
2058170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2059255 255 255 255 255 255 170 170 170 255 255 85 170 170 170 255 255 85
206085 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
20610 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
20620 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20670 0 0 0 0 0 0 0 0 0 0 0
20680 0 0 0 0 0 0 0 0 85 85 85 170 85 0 170 170 170
2069255 255 85 170 170 170 170 170 170 255 255 255 255 255 255 255 255 255
2070170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2071255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 255 255 255
2072170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 0 0 0
207385 85 85 0 0 0 85 85 85 0 0 0 85 85 85 0 0 0
20740 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
20770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
207885 85 85 170 170 170 0 0 0 0 0 0 0 0 0 0 0 0
20790 0 0 85 85 85 0 0 0 85 85 85 85 85 85 0 0 0
208085 85 85 170 85 0 255 255 255 170 170 170 255 255 255 255 255 255
2081255 255 85 255 255 255 170 170 170 255 255 85 170 170 170 170 170 170
2082170 170 170 170 170 170 170 170 170 255 255 85 255 255 255 255 255 255
2083170 170 170 255 255 255 255 255 255 170 170 170 170 170 170 170 170 170
208485 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20850 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20910 0 0 0 0 0 0 0 0 0 0 0
20920 0 0 0 0 0 0 0 0 85 85 85 85 255 85 170 170 170
2093170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2094255 255 255 255 255 255 255 255 85 170 170 170 170 170 170 255 255 255
2095170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 255 255 85
2096170 170 170 170 85 0 85 85 85 0 0 0 0 0 0 85 85 85
20970 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
20980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20990 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
21000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
210285 85 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
210385 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
210485 85 85 170 170 170 170 170 170 255 255 85 170 170 170 255 255 255
2105255 255 255 170 170 170 255 255 255 170 170 170 170 170 170 255 255 85
2106170 170 170 255 255 85 170 170 170 255 255 255 170 170 170 255 255 255
2107255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 255 255 85
210885 85 85 85 85 85 0 0 0 0 0 0 85 85 85 0 0 0
21090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
21100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21150 0 0 0 0 0 0 0 0 0 0 0
21160 0 0 0 0 0 0 0 0 85 85 85 170 85 0 170 170 170
2117170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
2118170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2119255 255 85 255 255 255 170 170 170 255 255 255 170 170 170 170 170 170
2120170 170 170 170 170 170 85 85 85 0 0 0 85 85 85 85 85 85
21210 0 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
21220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
212385 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21260 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
212785 85 85 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
212885 85 85 85 85 85 170 170 170 170 170 170 255 255 255 170 170 170
2129255 255 255 170 170 170 255 255 85 170 170 170 170 170 170 170 170 170
2130255 85 85 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255
2131170 170 170 255 255 255 255 255 255 170 170 170 255 255 255 170 170 170
213285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21330 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
21340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21390 0 0 0 0 0 0 0 0 0 0 0
21400 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 170 170
2141255 255 85 170 170 170 255 255 255 170 170 170 255 255 255 255 255 255
2142255 255 85 255 255 255 170 170 170 255 255 85 170 170 170 170 170 170
2143170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 255 85
2144170 170 170 170 85 0 85 85 85 0 0 0 85 85 85 0 0 0
21450 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
214685 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21480 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21490 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21500 0 0 0 0 0 0 0 0 0 0 0 170 170 170 170 170 170
2151170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
21520 0 0 85 85 85 170 170 170 255 255 85 170 170 170 170 170 170
2153255 255 85 170 170 170 170 170 170 170 170 170 170 170 170 255 85 85
215485 255 85 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2155255 255 255 255 255 255 255 255 255 255 255 85 170 170 170 170 170 170
215685 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21630 0 0 0 0 0 0 0 0 0 0 0
21640 0 0 0 0 0 0 0 0 0 0 0 85 85 85 255 255 85
2165170 170 170 170 170 170 255 255 255 255 255 255 255 255 255 170 170 170
2166255 255 255 170 170 170 170 170 170 170 170 170 170 170 170 255 85 85
2167170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 170
2168170 170 170 85 85 85 85 85 85 0 0 0 85 85 85 0 0 0
216985 85 85 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
217285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21740 0 0 0 0 0 0 0 0 170 170 170 170 170 170 170 170 170
217585 85 85 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
21760 0 0 85 85 85 170 85 0 170 170 170 170 170 170 170 170 170
2177170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 85 255 85
2178255 85 85 170 170 170 255 255 85 170 170 170 170 170 170 255 255 255
2179255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 170 170 170
21800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21870 0 0 0 0 0 0 0 0 0 0 0
21880 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2189170 170 170 255 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2190170 170 170 170 170 170 255 255 85 170 170 170 255 85 85 85 255 85
2191170 170 170 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
2192170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
21930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21940 0 0 0 0 0 0 0 0 85 85 85 0 0 0 0 0 0
21950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
22000 0 0 85 85 85 85 85 85 85 85 85 170 170 170 255 255 85
2201170 170 170 170 85 0 170 170 170 170 170 170 170 85 0 85 85 85
2202170 170 170 170 85 0 85 85 85 170 170 170 170 170 170 170 170 170
2203170 170 170 255 255 255 255 255 255 255 255 85 170 170 170 170 170 170
22040 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22110 0 0 0 0 0 0 0 0 0 0 0
22120 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2213170 170 170 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2214255 255 255 170 170 170 170 170 170 170 85 0 170 170 170 85 85 85
2215170 170 170 170 170 170 170 85 0 170 170 170 170 85 0 85 85 85
221685 255 85 85 85 85 0 0 0 0 0 0 0 0 0 85 85 85
22170 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
222185 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22230 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
222485 85 85 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2225170 85 0 170 170 170 85 255 85 170 85 0 170 170 170 85 85 85
2226170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 255 255 255
2227255 255 85 255 255 255 170 170 170 170 170 170 170 170 170 170 85 0
22280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22350 0 0 0 0 0 0 0 0 0 0 0
22360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2237170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2238170 170 170 255 255 85 170 170 170 170 170 170 85 255 85 170 170 170
2239170 85 0 170 85 0 170 170 170 85 255 85 85 85 85 170 170 170
2240170 85 0 85 85 85 0 0 0 85 85 85 0 0 0 0 0 0
22410 0 0 0 0 0 0 0 0 0 0 0 85 85 85 0 0 0
22420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22460 0 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22470 0 0 0 0 0 0 0 0 85 85 85 170 170 170 85 85 85
22480 0 0 0 0 0 0 0 0 85 85 85 170 85 0 85 85 85
2249170 170 170 170 85 0 170 170 170 85 85 85 170 170 170 170 85 0
2250170 170 170 85 255 85 170 85 0 170 170 170 170 170 170 170 170 170
2251255 255 255 170 170 170 255 255 255 255 255 255 170 170 170 85 85 85
22520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22590 0 0 0 0 0 0 0 0 0 0 0
22600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2261170 85 0 170 170 170 255 255 85 170 170 170 255 255 255 170 170 170
2262170 170 170 170 170 170 170 170 170 170 85 0 170 170 170 170 85 0
2263170 170 170 85 255 85 170 85 0 170 170 170 170 85 0 85 85 85
226485 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22670 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22710 0 0 0 0 0 85 85 85 0 0 0 0 0 0 0 0 0
22720 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
227385 255 85 170 170 170 170 85 0 170 170 170 170 85 0 85 255 85
2274170 170 170 170 85 0 170 170 170 170 170 170 170 170 170 255 255 85
2275170 170 170 255 255 255 170 170 170 170 170 170 170 170 170 0 0 0
22760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22830 0 0 0 0 0 0 0 0 0 0 0
22840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
228585 85 85 170 85 0 85 85 85 170 170 170 255 255 85 170 170 170
2286170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 85 0
2287170 170 170 85 85 85 170 170 170 170 85 0 170 170 170 85 85 85
2288170 85 0 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
22890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22960 0 0 0 0 0 85 85 85 0 0 0 85 85 85 170 85 0
229785 85 85 255 85 85 85 255 85 170 85 0 170 170 170 170 170 170
2298170 85 0 170 170 170 85 85 85 255 255 85 170 170 170 170 170 170
2299255 255 255 170 170 170 255 255 255 255 255 85 85 85 85 0 0 0
23000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23070 0 0 0 0 0 0 0 0 0 0 0
23080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23090 0 0 85 85 85 170 170 170 170 85 0 170 170 170 170 170 170
2310170 170 170 170 170 170 170 170 170 255 255 85 85 85 85 170 170 170
231185 255 85 255 85 85 170 170 170 85 255 85 255 85 85 85 255 85
231285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23200 0 0 0 0 0 85 85 85 85 85 85 0 0 0 85 85 85
232185 85 85 85 255 85 255 85 85 170 170 170 85 255 85 170 85 0
2322170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 255 255 255
2323170 170 170 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
23240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23310 0 0 0 0 0 0 0 0 0 0 0
23320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23330 0 0 0 0 0 85 85 85 170 170 170 85 85 85 255 255 85
2334170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 255 255 85
233585 85 85 255 255 85 170 170 170 170 85 0 170 170 170 85 85 85
2336170 85 0 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
23370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2345170 170 170 170 85 0 170 170 170 170 85 0 170 170 170 170 170 170
2346170 85 0 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2347255 255 85 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
23480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23550 0 0 0 0 0 0 0 0 0 0 0
23560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23570 0 0 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2358170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2359170 170 170 170 170 170 170 170 170 255 255 85 170 170 170 170 85 0
236085 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
23610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23680 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2369170 85 0 85 255 85 170 170 170 170 170 170 255 255 85 170 170 170
2370255 255 85 170 170 170 170 170 170 170 170 170 255 255 255 255 255 255
2371255 255 255 170 170 170 255 255 85 85 85 85 0 0 0 0 0 0
23720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23790 0 0 0 0 0 0 0 0 0 0 0
23800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23810 0 0 0 0 0 0 0 0 85 85 85 85 85 85 170 85 0
2382170 170 170 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2383170 170 170 255 255 85 170 170 170 170 170 170 170 170 170 170 170 170
2384170 170 170 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
23850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
239385 85 85 170 85 0 170 170 170 170 85 0 170 170 170 170 170 170
2394170 170 170 255 255 85 170 170 170 255 255 85 170 170 170 255 255 255
2395170 170 170 255 255 255 170 170 170 85 85 85 0 0 0 0 0 0
23960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24030 0 0 0 0 0 0 0 0 0 0 0
24040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24050 0 0 0 0 0 0 0 0 85 85 85 85 85 85 85 85 85
2406170 85 0 170 170 170 170 85 0 255 255 85 170 170 170 170 170 170
2407170 170 170 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2408255 255 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
24090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24160 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
241785 85 85 170 170 170 255 255 85 170 170 170 255 255 85 170 170 170
2418170 170 170 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
2419170 170 170 170 170 170 170 170 170 0 0 0 0 0 0 0 0 0
24200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24270 0 0 0 0 0 0 0 0 0 0 0
24280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24290 0 0 0 0 0 0 0 0 0 0 0 0 170 0 85 85 85
2430170 85 0 85 255 85 170 170 170 170 170 170 170 170 170 255 255 85
2431255 255 255 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2432170 170 170 255 255 85 85 85 85 0 0 0 0 0 0 0 0 0
24330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
2441170 85 0 170 170 170 170 170 170 170 170 170 170 170 170 255 255 85
2442170 170 170 255 255 255 170 170 170 255 255 255 170 170 170 255 255 255
2443255 255 255 255 255 85 85 85 85 0 0 0 0 0 0 0 0 0
24440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24510 0 0 0 0 0 0 0 0 0 0 0
24520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
245485 85 85 170 85 0 170 170 170 170 170 170 255 255 85 170 170 170
2455170 170 170 255 255 255 255 255 255 255 255 255 170 170 170 255 255 255
2456170 170 170 170 170 170 170 170 170 85 85 85 0 0 0 0 0 0
24570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24640 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 255 85
2465170 170 170 255 255 85 170 170 170 255 255 85 255 255 255 255 255 255
2466255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 170 170 170
2467170 170 170 170 170 170 85 85 85 0 0 0 0 0 0 0 0 0
24680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24750 0 0 0 0 0 0 0 0 0 0 0
24760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
247885 85 85 85 85 85 85 85 85 170 85 0 170 170 170 170 170 170
2479255 255 85 170 170 170 255 255 255 255 255 85 255 255 255 255 255 255
2480170 170 170 255 255 85 170 170 170 85 85 85 0 0 0 0 0 0
24810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24880 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2489170 170 170 170 170 170 170 170 170 255 255 255 170 170 170 255 255 255
2490170 170 170 255 255 255 170 170 170 255 255 255 255 255 85 255 255 255
2491170 170 170 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
24920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24990 0 0 0 0 0 0 0 0 0 0 0
25000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
250285 85 85 170 85 0 85 85 85 170 170 170 170 170 170 170 170 170
2503170 170 170 255 255 255 170 170 170 255 255 255 255 255 255 170 170 170
2504255 255 85 170 170 170 170 170 170 170 85 0 85 85 85 0 0 0
25050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25120 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2513255 255 85 170 170 170 255 255 85 170 170 170 255 255 255 255 255 255
2514255 255 255 255 255 255 255 255 255 255 255 255 170 170 170 170 170 170
2515170 170 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25230 0 0 0 0 0 0 0 0 0 0 0
25240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25260 0 0 85 85 85 85 85 85 85 85 85 170 85 0 170 170 170
2527255 255 85 170 170 170 255 255 85 255 255 255 170 170 170 255 255 255
2528170 170 170 170 170 170 170 170 170 170 170 170 0 0 0 0 0 0
25290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25360 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 170 170
2537170 85 0 170 170 170 255 255 255 170 170 170 255 255 255 170 170 170
2538255 255 255 255 255 255 170 170 170 255 255 255 255 255 85 170 170 170
253985 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25430 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25470 0 0 0 0 0 0 0 0 0 0 0
25480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25500 0 0 0 0 0 85 85 85 170 85 0 85 85 85 170 170 170
2551170 170 170 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2552255 255 85 170 170 170 170 85 0 85 255 85 85 85 85 0 0 0
25530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25570 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25580 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25600 0 0 0 0 0 0 0 0 0 0 0 85 85 85 170 85 0
2561170 170 170 170 170 170 255 255 85 170 170 170 255 255 255 255 255 255
2562255 255 85 255 255 255 170 170 170 255 255 255 170 170 170 85 85 85
25630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25670 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25710 0 0 0 0 0 0 0 0 0 0 0
25720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25740 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2575170 85 0 170 170 170 170 170 170 255 255 85 170 170 170 170 170 170
2576170 170 170 170 170 170 170 170 170 170 85 0 0 0 0 0 0 0
25770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25840 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2585255 255 85 170 170 170 170 170 170 170 170 170 255 255 85 170 170 170
2586255 255 255 170 170 170 255 255 85 170 170 170 85 85 85 85 85 85
25870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25910 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25950 0 0 0 0 0 0 0 0 0 0 0
25960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25980 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
259985 85 85 170 85 0 170 170 170 170 170 170 170 170 170 170 170 170
2600170 85 0 170 170 170 170 85 0 85 85 85 0 0 0 0 0 0
26010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26080 0 0 0 0 0 0 0 0 0 0 0 85 85 85 85 85 85
2609170 170 170 170 170 170 255 255 85 170 170 170 170 170 170 170 170 170
2610170 170 170 255 255 255 170 170 170 170 170 170 85 85 85 0 0 0
26110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26190 0 0 0 0 0 0 0 0 0 0 0
26200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
262385 85 85 85 85 85 85 85 85 170 85 0 85 85 85 170 85 0
262485 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
26250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 85 0
263385 85 85 170 85 0 170 170 170 170 170 170 170 170 170 255 255 85
2634170 170 170 170 170 170 170 85 0 85 85 85 0 0 0 0 0 0
26350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26400 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26430 0 0 0 0 0 0 0 0 0 0 0
26440 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26470 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
264885 85 85 85 85 85 0 0 0 0 0 0 0 0 0 0 0 0
26490 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26520 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26530 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26540 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26550 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26560 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 85 85
265785 85 85 85 255 85 170 85 0 170 170 170 170 85 0 170 170 170
265885 85 85 85 85 85 85 85 85 0 0 0 0 0 0 0 0 0
26590 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26620 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26630 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26640 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26660 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26670 0 0 0 0 0 0 0 0 0 0 0
26680 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26690 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26700 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26710 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26720 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26730 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26740 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26750 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26770 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26780 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26790 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26810 0 0 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
268285 85 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26830 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26840 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26850 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26860 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26870 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26900 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26910 0 0 0 0 0 0 0 0 0 0 0
26920 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26930 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26940 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26950 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26960 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26980 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26990 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27010 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27020 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27030 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27040 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27050 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27060 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27070 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27080 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27090 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27130 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27150 0 0 0 0 0 0 0 0 0 0 0
27160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27190 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27280 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27290 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27340 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27350 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27370 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27390 0 0 0 0 0 0 0 0 0 0 0
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c
index 21b3692092f2..9894de1c9b9f 100644
--- a/drivers/video/mx3fb.c
+++ b/drivers/video/mx3fb.c
@@ -1152,11 +1152,11 @@ static struct fb_ops mx3fb_ops = {
1152 */ 1152 */
1153static int mx3fb_suspend(struct platform_device *pdev, pm_message_t state) 1153static int mx3fb_suspend(struct platform_device *pdev, pm_message_t state)
1154{ 1154{
1155 struct mx3fb_data *drv_data = platform_get_drvdata(pdev); 1155 struct mx3fb_data *mx3fb = platform_get_drvdata(pdev);
1156 struct mx3fb_info *mx3_fbi = drv_data->fbi->par; 1156 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
1157 1157
1158 acquire_console_sem(); 1158 acquire_console_sem();
1159 fb_set_suspend(drv_data->fbi, 1); 1159 fb_set_suspend(mx3fb->fbi, 1);
1160 release_console_sem(); 1160 release_console_sem();
1161 1161
1162 if (mx3_fbi->blank == FB_BLANK_UNBLANK) { 1162 if (mx3_fbi->blank == FB_BLANK_UNBLANK) {
@@ -1172,16 +1172,16 @@ static int mx3fb_suspend(struct platform_device *pdev, pm_message_t state)
1172 */ 1172 */
1173static int mx3fb_resume(struct platform_device *pdev) 1173static int mx3fb_resume(struct platform_device *pdev)
1174{ 1174{
1175 struct mx3fb_data *drv_data = platform_get_drvdata(pdev); 1175 struct mx3fb_data *mx3fb = platform_get_drvdata(pdev);
1176 struct mx3fb_info *mx3_fbi = drv_data->fbi->par; 1176 struct mx3fb_info *mx3_fbi = mx3fb->fbi->par;
1177 1177
1178 if (mx3_fbi->blank == FB_BLANK_UNBLANK) { 1178 if (mx3_fbi->blank == FB_BLANK_UNBLANK) {
1179 sdc_enable_channel(mx3_fbi); 1179 sdc_enable_channel(mx3_fbi);
1180 sdc_set_brightness(mx3fb, drv_data->backlight_level); 1180 sdc_set_brightness(mx3fb, mx3fb->backlight_level);
1181 } 1181 }
1182 1182
1183 acquire_console_sem(); 1183 acquire_console_sem();
1184 fb_set_suspend(drv_data->fbi, 0); 1184 fb_set_suspend(mx3fb->fbi, 0);
1185 release_console_sem(); 1185 release_console_sem();
1186 1186
1187 return 0; 1187 return 0;
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 84f63205c46d..0889d50c3288 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1439,7 +1439,7 @@ static void pxafb_disable_controller(struct pxafb_info *fbi)
1439static irqreturn_t pxafb_handle_irq(int irq, void *dev_id) 1439static irqreturn_t pxafb_handle_irq(int irq, void *dev_id)
1440{ 1440{
1441 struct pxafb_info *fbi = dev_id; 1441 struct pxafb_info *fbi = dev_id;
1442 unsigned int lccr0, lcsr, lcsr1; 1442 unsigned int lccr0, lcsr;
1443 1443
1444 lcsr = lcd_readl(fbi, LCSR); 1444 lcsr = lcd_readl(fbi, LCSR);
1445 if (lcsr & LCSR_LDD) { 1445 if (lcsr & LCSR_LDD) {
@@ -1455,14 +1455,16 @@ static irqreturn_t pxafb_handle_irq(int irq, void *dev_id)
1455 lcd_writel(fbi, LCSR, lcsr); 1455 lcd_writel(fbi, LCSR, lcsr);
1456 1456
1457#ifdef CONFIG_FB_PXA_OVERLAY 1457#ifdef CONFIG_FB_PXA_OVERLAY
1458 lcsr1 = lcd_readl(fbi, LCSR1); 1458 {
1459 if (lcsr1 & LCSR1_BS(1)) 1459 unsigned int lcsr1 = lcd_readl(fbi, LCSR1);
1460 complete(&fbi->overlay[0].branch_done); 1460 if (lcsr1 & LCSR1_BS(1))
1461 complete(&fbi->overlay[0].branch_done);
1461 1462
1462 if (lcsr1 & LCSR1_BS(2)) 1463 if (lcsr1 & LCSR1_BS(2))
1463 complete(&fbi->overlay[1].branch_done); 1464 complete(&fbi->overlay[1].branch_done);
1464 1465
1465 lcd_writel(fbi, LCSR1, lcsr1); 1466 lcd_writel(fbi, LCSR1, lcsr1);
1467 }
1466#endif 1468#endif
1467 return IRQ_HANDLED; 1469 return IRQ_HANDLED;
1468} 1470}
diff --git a/drivers/video/s3fb.c b/drivers/video/s3fb.c
index 4dcec48a1d78..c3fad34309ed 100644
--- a/drivers/video/s3fb.c
+++ b/drivers/video/s3fb.c
@@ -45,11 +45,11 @@ struct s3fb_info {
45static const struct svga_fb_format s3fb_formats[] = { 45static const struct svga_fb_format s3fb_formats[] = {
46 { 0, {0, 6, 0}, {0, 6, 0}, {0, 6, 0}, {0, 0, 0}, 0, 46 { 0, {0, 6, 0}, {0, 6, 0}, {0, 6, 0}, {0, 0, 0}, 0,
47 FB_TYPE_TEXT, FB_AUX_TEXT_SVGA_STEP4, FB_VISUAL_PSEUDOCOLOR, 8, 16}, 47 FB_TYPE_TEXT, FB_AUX_TEXT_SVGA_STEP4, FB_VISUAL_PSEUDOCOLOR, 8, 16},
48 { 4, {0, 6, 0}, {0, 6, 0}, {0, 6, 0}, {0, 0, 0}, 0, 48 { 4, {0, 4, 0}, {0, 4, 0}, {0, 4, 0}, {0, 0, 0}, 0,
49 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_PSEUDOCOLOR, 8, 16}, 49 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_PSEUDOCOLOR, 8, 16},
50 { 4, {0, 6, 0}, {0, 6, 0}, {0, 6, 0}, {0, 0, 0}, 1, 50 { 4, {0, 4, 0}, {0, 4, 0}, {0, 4, 0}, {0, 0, 0}, 1,
51 FB_TYPE_INTERLEAVED_PLANES, 1, FB_VISUAL_PSEUDOCOLOR, 8, 16}, 51 FB_TYPE_INTERLEAVED_PLANES, 1, FB_VISUAL_PSEUDOCOLOR, 8, 16},
52 { 8, {0, 6, 0}, {0, 6, 0}, {0, 6, 0}, {0, 0, 0}, 0, 52 { 8, {0, 8, 0}, {0, 8, 0}, {0, 8, 0}, {0, 0, 0}, 0,
53 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_PSEUDOCOLOR, 4, 8}, 53 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_PSEUDOCOLOR, 4, 8},
54 {16, {10, 5, 0}, {5, 5, 0}, {0, 5, 0}, {0, 0, 0}, 0, 54 {16, {10, 5, 0}, {5, 5, 0}, {0, 5, 0}, {0, 0, 0}, 0,
55 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_TRUECOLOR, 2, 4}, 55 FB_TYPE_PACKED_PIXELS, 0, FB_VISUAL_TRUECOLOR, 2, 4},
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index fad58cf9ef73..10ddad8e17d6 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -199,16 +199,20 @@
199extern void (*sa1100fb_backlight_power)(int on); 199extern void (*sa1100fb_backlight_power)(int on);
200extern void (*sa1100fb_lcd_power)(int on); 200extern void (*sa1100fb_lcd_power)(int on);
201 201
202/* 202static struct sa1100fb_rgb rgb_4 = {
203 * IMHO this looks wrong. In 8BPP, length should be 8.
204 */
205static struct sa1100fb_rgb rgb_8 = {
206 .red = { .offset = 0, .length = 4, }, 203 .red = { .offset = 0, .length = 4, },
207 .green = { .offset = 0, .length = 4, }, 204 .green = { .offset = 0, .length = 4, },
208 .blue = { .offset = 0, .length = 4, }, 205 .blue = { .offset = 0, .length = 4, },
209 .transp = { .offset = 0, .length = 0, }, 206 .transp = { .offset = 0, .length = 0, },
210}; 207};
211 208
209static struct sa1100fb_rgb rgb_8 = {
210 .red = { .offset = 0, .length = 8, },
211 .green = { .offset = 0, .length = 8, },
212 .blue = { .offset = 0, .length = 8, },
213 .transp = { .offset = 0, .length = 0, },
214};
215
212static struct sa1100fb_rgb def_rgb_16 = { 216static struct sa1100fb_rgb def_rgb_16 = {
213 .red = { .offset = 11, .length = 5, }, 217 .red = { .offset = 11, .length = 5, },
214 .green = { .offset = 5, .length = 6, }, 218 .green = { .offset = 5, .length = 6, },
@@ -613,7 +617,7 @@ sa1100fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
613 DPRINTK("var->bits_per_pixel=%d\n", var->bits_per_pixel); 617 DPRINTK("var->bits_per_pixel=%d\n", var->bits_per_pixel);
614 switch (var->bits_per_pixel) { 618 switch (var->bits_per_pixel) {
615 case 4: 619 case 4:
616 rgbidx = RGB_8; 620 rgbidx = RGB_4;
617 break; 621 break;
618 case 8: 622 case 8:
619 rgbidx = RGB_8; 623 rgbidx = RGB_8;
@@ -1382,6 +1386,7 @@ static struct sa1100fb_info * __init sa1100fb_init_fbinfo(struct device *dev)
1382 fbi->fb.monspecs = monspecs; 1386 fbi->fb.monspecs = monspecs;
1383 fbi->fb.pseudo_palette = (fbi + 1); 1387 fbi->fb.pseudo_palette = (fbi + 1);
1384 1388
1389 fbi->rgb[RGB_4] = &rgb_4;
1385 fbi->rgb[RGB_8] = &rgb_8; 1390 fbi->rgb[RGB_8] = &rgb_8;
1386 fbi->rgb[RGB_16] = &def_rgb_16; 1391 fbi->rgb[RGB_16] = &def_rgb_16;
1387 1392
diff --git a/drivers/video/sa1100fb.h b/drivers/video/sa1100fb.h
index 86831db9a042..1c3b459865d8 100644
--- a/drivers/video/sa1100fb.h
+++ b/drivers/video/sa1100fb.h
@@ -57,9 +57,10 @@ struct sa1100fb_lcd_reg {
57 unsigned long lccr3; 57 unsigned long lccr3;
58}; 58};
59 59
60#define RGB_8 (0) 60#define RGB_4 (0)
61#define RGB_16 (1) 61#define RGB_8 (1)
62#define NR_RGB 2 62#define RGB_16 (2)
63#define NR_RGB 3
63 64
64struct sa1100fb_info { 65struct sa1100fb_info {
65 struct fb_info fb; 66 struct fb_info fb;
diff --git a/drivers/video/sis/sis_main.c b/drivers/video/sis/sis_main.c
index 346d6458cf76..7e17ee95a97a 100644
--- a/drivers/video/sis/sis_main.c
+++ b/drivers/video/sis/sis_main.c
@@ -1129,7 +1129,7 @@ sisfb_bpp_to_var(struct sis_video_info *ivideo, struct fb_var_screeninfo *var)
1129 switch(var->bits_per_pixel) { 1129 switch(var->bits_per_pixel) {
1130 case 8: 1130 case 8:
1131 var->red.offset = var->green.offset = var->blue.offset = 0; 1131 var->red.offset = var->green.offset = var->blue.offset = 0;
1132 var->red.length = var->green.length = var->blue.length = 6; 1132 var->red.length = var->green.length = var->blue.length = 8;
1133 break; 1133 break;
1134 case 16: 1134 case 16:
1135 var->red.offset = 11; 1135 var->red.offset = 11;
diff --git a/drivers/video/skeletonfb.c b/drivers/video/skeletonfb.c
index a439159204a8..89158bc71da2 100644
--- a/drivers/video/skeletonfb.c
+++ b/drivers/video/skeletonfb.c
@@ -308,9 +308,11 @@ static int xxxfb_setcolreg(unsigned regno, unsigned red, unsigned green,
308 * color depth = SUM(var->{color}.length) 308 * color depth = SUM(var->{color}.length)
309 * 309 *
310 * Pseudocolor: 310 * Pseudocolor:
311 * var->{color}.offset is 0 311 * var->{color}.offset is 0 unless the palette index takes less than
312 * var->{color}.length contains width of DAC or the number of unique 312 * bits_per_pixel bits and is stored in the upper
313 * colors available (color depth) 313 * bits of the pixel value
314 * var->{color}.length is set so that 1 << length is the number of
315 * available palette entries
314 * pseudo_palette is not used 316 * pseudo_palette is not used
315 * RAMDAC[X] is programmed to (red, green, blue) 317 * RAMDAC[X] is programmed to (red, green, blue)
316 * color depth = var->{color}.length 318 * color depth = var->{color}.length
diff --git a/drivers/video/sysfillrect.c b/drivers/video/sysfillrect.c
index f94d6b6e29ee..33ee3d34f9d2 100644
--- a/drivers/video/sysfillrect.c
+++ b/drivers/video/sysfillrect.c
@@ -124,7 +124,7 @@ bitfill_unaligned(struct fb_info *p, unsigned long *dst, int dst_idx,
124 124
125 /* Trailing bits */ 125 /* Trailing bits */
126 if (last) 126 if (last)
127 *dst = comp(pat, *dst, first); 127 *dst = comp(pat, *dst, last);
128 } 128 }
129} 129}
130 130
@@ -242,7 +242,7 @@ bitfill_unaligned_rev(struct fb_info *p, unsigned long *dst, int dst_idx,
242 242
243void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect) 243void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
244{ 244{
245 unsigned long pat, fg; 245 unsigned long pat, pat2, fg;
246 unsigned long width = rect->width, height = rect->height; 246 unsigned long width = rect->width, height = rect->height;
247 int bits = BITS_PER_LONG, bytes = bits >> 3; 247 int bits = BITS_PER_LONG, bytes = bits >> 3;
248 u32 bpp = p->var.bits_per_pixel; 248 u32 bpp = p->var.bits_per_pixel;
@@ -292,17 +292,16 @@ void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
292 dst_idx += p->fix.line_length*8; 292 dst_idx += p->fix.line_length*8;
293 } 293 }
294 } else { 294 } else {
295 int right; 295 int right, r;
296 int r;
297 int rot = (left-dst_idx) % bpp;
298 void (*fill_op)(struct fb_info *p, unsigned long *dst, 296 void (*fill_op)(struct fb_info *p, unsigned long *dst,
299 int dst_idx, unsigned long pat, int left, 297 int dst_idx, unsigned long pat, int left,
300 int right, unsigned n, int bits) = NULL; 298 int right, unsigned n, int bits) = NULL;
301 299#ifdef __LITTLE_ENDIAN
302 /* rotate pattern to correct start position */ 300 right = left;
303 pat = pat << rot | pat >> (bpp-rot); 301 left = bpp - right;
304 302#else
305 right = bpp-left; 303 right = bpp - left;
304#endif
306 switch (rect->rop) { 305 switch (rect->rop) {
307 case ROP_XOR: 306 case ROP_XOR:
308 fill_op = bitfill_unaligned_rev; 307 fill_op = bitfill_unaligned_rev;
@@ -311,18 +310,19 @@ void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
311 fill_op = bitfill_unaligned; 310 fill_op = bitfill_unaligned;
312 break; 311 break;
313 default: 312 default:
314 printk(KERN_ERR "cfb_fillrect(): unknown rop, " 313 printk(KERN_ERR "sys_fillrect(): unknown rop, "
315 "defaulting to ROP_COPY\n"); 314 "defaulting to ROP_COPY\n");
316 fill_op = bitfill_unaligned; 315 fill_op = bitfill_unaligned;
317 break; 316 break;
318 } 317 }
319 while (height--) { 318 while (height--) {
320 dst += dst_idx >> (ffs(bits) - 1); 319 dst += dst_idx / bits;
321 dst_idx &= (bits - 1); 320 dst_idx &= (bits - 1);
322 fill_op(p, dst, dst_idx, pat, left, right, 321 r = dst_idx % bpp;
322 /* rotate pattern to the correct start position */
323 pat2 = le_long_to_cpu(rolx(cpu_to_le_long(pat), r, bpp));
324 fill_op(p, dst, dst_idx, pat2, left, right,
323 width*bpp, bits); 325 width*bpp, bits);
324 r = (p->fix.line_length*8) % bpp;
325 pat = pat << (bpp-r) | pat >> r;
326 dst_idx += p->fix.line_length*8; 326 dst_idx += p->fix.line_length*8;
327 } 327 }
328 } 328 }
diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
index 0b370aebdbfd..421770b5e6ab 100644
--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -55,6 +55,7 @@ static u16 maxvf __devinitdata; /* maximum vertical frequency */
55static u16 maxhf __devinitdata; /* maximum horizontal frequency */ 55static u16 maxhf __devinitdata; /* maximum horizontal frequency */
56static u16 vbemode __devinitdata; /* force use of a specific VBE mode */ 56static u16 vbemode __devinitdata; /* force use of a specific VBE mode */
57static char *mode_option __devinitdata; 57static char *mode_option __devinitdata;
58static u8 dac_width = 6;
58 59
59static struct uvesafb_ktask *uvfb_tasks[UVESAFB_TASKS_MAX]; 60static struct uvesafb_ktask *uvfb_tasks[UVESAFB_TASKS_MAX];
60static DEFINE_MUTEX(uvfb_lock); 61static DEFINE_MUTEX(uvfb_lock);
@@ -303,22 +304,10 @@ static void uvesafb_setup_var(struct fb_var_screeninfo *var,
303 var->blue.offset = 0; 304 var->blue.offset = 0;
304 var->transp.offset = 0; 305 var->transp.offset = 0;
305 306
306 /* 307 var->red.length = 8;
307 * We're assuming that we can switch the DAC to 8 bits. If 308 var->green.length = 8;
308 * this proves to be incorrect, we'll update the fields 309 var->blue.length = 8;
309 * later in set_par(). 310 var->transp.length = 0;
310 */
311 if (par->vbe_ib.capabilities & VBE_CAP_CAN_SWITCH_DAC) {
312 var->red.length = 8;
313 var->green.length = 8;
314 var->blue.length = 8;
315 var->transp.length = 0;
316 } else {
317 var->red.length = 6;
318 var->green.length = 6;
319 var->blue.length = 6;
320 var->transp.length = 0;
321 }
322 } 311 }
323} 312}
324 313
@@ -1006,7 +995,7 @@ static int uvesafb_setcolreg(unsigned regno, unsigned red, unsigned green,
1006 struct fb_info *info) 995 struct fb_info *info)
1007{ 996{
1008 struct uvesafb_pal_entry entry; 997 struct uvesafb_pal_entry entry;
1009 int shift = 16 - info->var.green.length; 998 int shift = 16 - dac_width;
1010 int err = 0; 999 int err = 0;
1011 1000
1012 if (regno >= info->cmap.len) 1001 if (regno >= info->cmap.len)
@@ -1055,7 +1044,7 @@ static int uvesafb_setcolreg(unsigned regno, unsigned red, unsigned green,
1055static int uvesafb_setcmap(struct fb_cmap *cmap, struct fb_info *info) 1044static int uvesafb_setcmap(struct fb_cmap *cmap, struct fb_info *info)
1056{ 1045{
1057 struct uvesafb_pal_entry *entries; 1046 struct uvesafb_pal_entry *entries;
1058 int shift = 16 - info->var.green.length; 1047 int shift = 16 - dac_width;
1059 int i, err = 0; 1048 int i, err = 0;
1060 1049
1061 if (info->var.bits_per_pixel == 8) { 1050 if (info->var.bits_per_pixel == 8) {
@@ -1317,13 +1306,9 @@ setmode:
1317 err = uvesafb_exec(task); 1306 err = uvesafb_exec(task);
1318 if (err || (task->t.regs.eax & 0xffff) != 0x004f || 1307 if (err || (task->t.regs.eax & 0xffff) != 0x004f ||
1319 ((task->t.regs.ebx & 0xff00) >> 8) != 8) { 1308 ((task->t.regs.ebx & 0xff00) >> 8) != 8) {
1320 /* 1309 dac_width = 6;
1321 * We've failed to set the DAC palette format - 1310 } else {
1322 * time to correct var. 1311 dac_width = 8;
1323 */
1324 info->var.red.length = 6;
1325 info->var.green.length = 6;
1326 info->var.blue.length = 6;
1327 } 1312 }
1328 } 1313 }
1329 1314
diff --git a/drivers/video/vfb.c b/drivers/video/vfb.c
index cc919ae46571..050d432c7d95 100644
--- a/drivers/video/vfb.c
+++ b/drivers/video/vfb.c
@@ -318,13 +318,16 @@ static int vfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
318 * {hardwarespecific} contains width of RAMDAC 318 * {hardwarespecific} contains width of RAMDAC
319 * cmap[X] is programmed to (X << red.offset) | (X << green.offset) | (X << blue.offset) 319 * cmap[X] is programmed to (X << red.offset) | (X << green.offset) | (X << blue.offset)
320 * RAMDAC[X] is programmed to (red, green, blue) 320 * RAMDAC[X] is programmed to (red, green, blue)
321 * 321 *
322 * Pseudocolor: 322 * Pseudocolor:
323 * uses offset = 0 && length = RAMDAC register width. 323 * var->{color}.offset is 0 unless the palette index takes less than
324 * var->{color}.offset is 0 324 * bits_per_pixel bits and is stored in the upper
325 * var->{color}.length contains widht of DAC 325 * bits of the pixel value
326 * var->{color}.length is set so that 1 << length is the number of available
327 * palette entries
326 * cmap is not used 328 * cmap is not used
327 * RAMDAC[X] is programmed to (red, green, blue) 329 * RAMDAC[X] is programmed to (red, green, blue)
330 *
328 * Truecolor: 331 * Truecolor:
329 * does not use DAC. Usually 3 are present. 332 * does not use DAC. Usually 3 are present.
330 * var->{color}.offset contains start of bitfield 333 * var->{color}.offset contains start of bitfield
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
index e327b84820d2..a0fec298216e 100644
--- a/drivers/video/via/viafbdev.c
+++ b/drivers/video/via/viafbdev.c
@@ -2103,7 +2103,7 @@ static void viafb_remove_proc(struct proc_dir_entry *viafb_entry)
2103 2103
2104static int __devinit via_pci_probe(void) 2104static int __devinit via_pci_probe(void)
2105{ 2105{
2106 unsigned int default_xres, default_yres; 2106 unsigned long default_xres, default_yres;
2107 char *tmpc, *tmpm; 2107 char *tmpc, *tmpm;
2108 char *tmpc_sec, *tmpm_sec; 2108 char *tmpc_sec, *tmpm_sec;
2109 int vmode_index; 2109 int vmode_index;
@@ -2196,8 +2196,8 @@ static int __devinit via_pci_probe(void)
2196 viafb_FB_MM = viaparinfo->fbmem_virt; 2196 viafb_FB_MM = viaparinfo->fbmem_virt;
2197 tmpm = viafb_mode; 2197 tmpm = viafb_mode;
2198 tmpc = strsep(&tmpm, "x"); 2198 tmpc = strsep(&tmpm, "x");
2199 strict_strtoul(tmpc, 0, (unsigned long *)&default_xres); 2199 strict_strtoul(tmpc, 0, &default_xres);
2200 strict_strtoul(tmpm, 0, (unsigned long *)&default_yres); 2200 strict_strtoul(tmpm, 0, &default_yres);
2201 2201
2202 vmode_index = viafb_get_mode_index(default_xres, default_yres, 0); 2202 vmode_index = viafb_get_mode_index(default_xres, default_yres, 0);
2203 DEBUG_MSG(KERN_INFO "0->index=%d\n", vmode_index); 2203 DEBUG_MSG(KERN_INFO "0->index=%d\n", vmode_index);
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 59268266b79a..9c76a061a04d 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -190,7 +190,8 @@ static int balloon(void *_vballoon)
190 try_to_freeze(); 190 try_to_freeze();
191 wait_event_interruptible(vb->config_change, 191 wait_event_interruptible(vb->config_change,
192 (diff = towards_target(vb)) != 0 192 (diff = towards_target(vb)) != 0
193 || kthread_should_stop()); 193 || kthread_should_stop()
194 || freezing(current));
194 if (diff > 0) 195 if (diff > 0)
195 fill_balloon(vb, diff); 196 fill_balloon(vb, diff);
196 else if (diff < 0) 197 else if (diff < 0)
diff --git a/drivers/watchdog/orion5x_wdt.c b/drivers/watchdog/orion5x_wdt.c
index 7529616739d2..2cde568e4fb0 100644
--- a/drivers/watchdog/orion5x_wdt.c
+++ b/drivers/watchdog/orion5x_wdt.c
@@ -22,6 +22,7 @@
22#include <linux/uaccess.h> 22#include <linux/uaccess.h>
23#include <linux/io.h> 23#include <linux/io.h>
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <mach/bridge-regs.h>
25#include <plat/orion5x_wdt.h> 26#include <plat/orion5x_wdt.h>
26 27
27/* 28/*
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index efa4b363ce72..f5bbd9e83416 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -513,7 +513,8 @@ static ssize_t show_target(struct sys_device *dev, struct sysdev_attribute *attr
513 char *buf) 513 char *buf)
514{ 514{
515 return sprintf(buf, "%llu\n", 515 return sprintf(buf, "%llu\n",
516 (u64)balloon_stats.target_pages << PAGE_SHIFT); 516 (unsigned long long)balloon_stats.target_pages
517 << PAGE_SHIFT);
517} 518}
518 519
519static ssize_t store_target(struct sys_device *dev, 520static ssize_t store_target(struct sys_device *dev,
diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index 5f54c01c1568..bdfd584ad853 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -21,29 +21,41 @@ static void disable_hotplug_cpu(int cpu)
21 set_cpu_present(cpu, false); 21 set_cpu_present(cpu, false);
22} 22}
23 23
24static void vcpu_hotplug(unsigned int cpu) 24static int vcpu_online(unsigned int cpu)
25{ 25{
26 int err; 26 int err;
27 char dir[32], state[32]; 27 char dir[32], state[32];
28 28
29 if (!cpu_possible(cpu))
30 return;
31
32 sprintf(dir, "cpu/%u", cpu); 29 sprintf(dir, "cpu/%u", cpu);
33 err = xenbus_scanf(XBT_NIL, dir, "availability", "%s", state); 30 err = xenbus_scanf(XBT_NIL, dir, "availability", "%s", state);
34 if (err != 1) { 31 if (err != 1) {
35 printk(KERN_ERR "XENBUS: Unable to read cpu state\n"); 32 printk(KERN_ERR "XENBUS: Unable to read cpu state\n");
36 return; 33 return err;
37 } 34 }
38 35
39 if (strcmp(state, "online") == 0) { 36 if (strcmp(state, "online") == 0)
37 return 1;
38 else if (strcmp(state, "offline") == 0)
39 return 0;
40
41 printk(KERN_ERR "XENBUS: unknown state(%s) on CPU%d\n", state, cpu);
42 return -EINVAL;
43}
44static void vcpu_hotplug(unsigned int cpu)
45{
46 if (!cpu_possible(cpu))
47 return;
48
49 switch (vcpu_online(cpu)) {
50 case 1:
40 enable_hotplug_cpu(cpu); 51 enable_hotplug_cpu(cpu);
41 } else if (strcmp(state, "offline") == 0) { 52 break;
53 case 0:
42 (void)cpu_down(cpu); 54 (void)cpu_down(cpu);
43 disable_hotplug_cpu(cpu); 55 disable_hotplug_cpu(cpu);
44 } else { 56 break;
45 printk(KERN_ERR "XENBUS: unknown state(%s) on CPU%d\n", 57 default:
46 state, cpu); 58 break;
47 } 59 }
48} 60}
49 61
@@ -64,12 +76,20 @@ static void handle_vcpu_hotplug_event(struct xenbus_watch *watch,
64static int setup_cpu_watcher(struct notifier_block *notifier, 76static int setup_cpu_watcher(struct notifier_block *notifier,
65 unsigned long event, void *data) 77 unsigned long event, void *data)
66{ 78{
79 int cpu;
67 static struct xenbus_watch cpu_watch = { 80 static struct xenbus_watch cpu_watch = {
68 .node = "cpu", 81 .node = "cpu",
69 .callback = handle_vcpu_hotplug_event}; 82 .callback = handle_vcpu_hotplug_event};
70 83
71 (void)register_xenbus_watch(&cpu_watch); 84 (void)register_xenbus_watch(&cpu_watch);
72 85
86 for_each_possible_cpu(cpu) {
87 if (vcpu_online(cpu) == 0) {
88 (void)cpu_down(cpu);
89 cpu_clear(cpu, cpu_present_map);
90 }
91 }
92
73 return NOTIFY_DONE; 93 return NOTIFY_DONE;
74} 94}
75 95
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 0d61db1e7b49..4b5b84837ee1 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -62,14 +62,15 @@ static int xen_suspend(void *data)
62 gnttab_resume(); 62 gnttab_resume();
63 xen_mm_unpin_all(); 63 xen_mm_unpin_all();
64 64
65 sysdev_resume();
66
67 if (!*cancelled) { 65 if (!*cancelled) {
68 xen_irq_resume(); 66 xen_irq_resume();
69 xen_console_resume(); 67 xen_console_resume();
70 xen_timer_resume(); 68 xen_timer_resume();
71 } 69 }
72 70
71 sysdev_resume();
72 device_power_up(PMSG_RESUME);
73
73 return 0; 74 return 0;
74} 75}
75 76
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 5f8ab8adb5f5..ab5547ff29a1 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -37,6 +37,7 @@
37#include <linux/mount.h> 37#include <linux/mount.h>
38#include <linux/idr.h> 38#include <linux/idr.h>
39#include <linux/sched.h> 39#include <linux/sched.h>
40#include <linux/smp_lock.h>
40#include <net/9p/9p.h> 41#include <net/9p/9p.h>
41#include <net/9p/client.h> 42#include <net/9p/client.h>
42 43
@@ -155,6 +156,7 @@ static int v9fs_get_sb(struct file_system_type *fs_type, int flags,
155 156
156 root = d_alloc_root(inode); 157 root = d_alloc_root(inode);
157 if (!root) { 158 if (!root) {
159 iput(inode);
158 retval = -ENOMEM; 160 retval = -ENOMEM;
159 goto release_sb; 161 goto release_sb;
160 } 162 }
@@ -173,10 +175,7 @@ P9_DPRINTK(P9_DEBUG_VFS, " simple set mount, return 0\n");
173 return 0; 175 return 0;
174 176
175release_sb: 177release_sb:
176 if (sb) { 178 deactivate_locked_super(sb);
177 up_write(&sb->s_umount);
178 deactivate_super(sb);
179 }
180 179
181free_stat: 180free_stat:
182 kfree(st); 181 kfree(st);
@@ -230,9 +229,12 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
230static void 229static void
231v9fs_umount_begin(struct super_block *sb) 230v9fs_umount_begin(struct super_block *sb)
232{ 231{
233 struct v9fs_session_info *v9ses = sb->s_fs_info; 232 struct v9fs_session_info *v9ses;
234 233
234 lock_kernel();
235 v9ses = sb->s_fs_info;
235 v9fs_session_cancel(v9ses); 236 v9fs_session_cancel(v9ses);
237 unlock_kernel();
236} 238}
237 239
238static const struct super_operations v9fs_super_ops = { 240static const struct super_operations v9fs_super_ops = {
diff --git a/fs/affs/super.c b/fs/affs/super.c
index 5ce695e707fe..63f5183f263b 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -507,8 +507,7 @@ affs_remount(struct super_block *sb, int *flags, char *data)
507 kfree(new_opts); 507 kfree(new_opts);
508 return -EINVAL; 508 return -EINVAL;
509 } 509 }
510 kfree(sb->s_options); 510 replace_mount_options(sb, new_opts);
511 sb->s_options = new_opts;
512 511
513 sbi->s_flags = mount_flags; 512 sbi->s_flags = mount_flags;
514 sbi->s_mode = mode; 513 sbi->s_mode = mode;
diff --git a/fs/afs/file.c b/fs/afs/file.c
index 7a1d942ef68d..0149dab365e7 100644
--- a/fs/afs/file.c
+++ b/fs/afs/file.c
@@ -102,6 +102,7 @@ int afs_release(struct inode *inode, struct file *file)
102 return 0; 102 return 0;
103} 103}
104 104
105#ifdef CONFIG_AFS_FSCACHE
105/* 106/*
106 * deal with notification that a page was read from the cache 107 * deal with notification that a page was read from the cache
107 */ 108 */
@@ -117,6 +118,7 @@ static void afs_file_readpage_read_complete(struct page *page,
117 SetPageUptodate(page); 118 SetPageUptodate(page);
118 unlock_page(page); 119 unlock_page(page);
119} 120}
121#endif
120 122
121/* 123/*
122 * AFS read page from file, directory or symlink 124 * AFS read page from file, directory or symlink
diff --git a/fs/afs/super.c b/fs/afs/super.c
index aee239a048cb..76828e5f8a39 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -405,21 +405,20 @@ static int afs_get_sb(struct file_system_type *fs_type,
405 sb->s_flags = flags; 405 sb->s_flags = flags;
406 ret = afs_fill_super(sb, &params); 406 ret = afs_fill_super(sb, &params);
407 if (ret < 0) { 407 if (ret < 0) {
408 up_write(&sb->s_umount); 408 deactivate_locked_super(sb);
409 deactivate_super(sb);
410 goto error; 409 goto error;
411 } 410 }
412 sb->s_options = new_opts; 411 save_mount_options(sb, new_opts);
413 sb->s_flags |= MS_ACTIVE; 412 sb->s_flags |= MS_ACTIVE;
414 } else { 413 } else {
415 _debug("reuse"); 414 _debug("reuse");
416 kfree(new_opts);
417 ASSERTCMP(sb->s_flags, &, MS_ACTIVE); 415 ASSERTCMP(sb->s_flags, &, MS_ACTIVE);
418 } 416 }
419 417
420 simple_set_mnt(mnt, sb); 418 simple_set_mnt(mnt, sb);
421 afs_put_volume(params.volume); 419 afs_put_volume(params.volume);
422 afs_put_cell(params.cell); 420 afs_put_cell(params.cell);
421 kfree(new_opts);
423 _leave(" = 0 [%p]", sb); 422 _leave(" = 0 [%p]", sb);
424 return 0; 423 return 0;
425 424
diff --git a/fs/autofs/dirhash.c b/fs/autofs/dirhash.c
index bf8c8af98004..4eb4d8dfb2f1 100644
--- a/fs/autofs/dirhash.c
+++ b/fs/autofs/dirhash.c
@@ -39,10 +39,12 @@ struct autofs_dir_ent *autofs_expire(struct super_block *sb,
39{ 39{
40 struct autofs_dirhash *dh = &sbi->dirhash; 40 struct autofs_dirhash *dh = &sbi->dirhash;
41 struct autofs_dir_ent *ent; 41 struct autofs_dir_ent *ent;
42 struct dentry *dentry;
43 unsigned long timeout = sbi->exp_timeout; 42 unsigned long timeout = sbi->exp_timeout;
44 43
45 while (1) { 44 while (1) {
45 struct path path;
46 int umount_ok;
47
46 if ( list_empty(&dh->expiry_head) || sbi->catatonic ) 48 if ( list_empty(&dh->expiry_head) || sbi->catatonic )
47 return NULL; /* No entries */ 49 return NULL; /* No entries */
48 /* We keep the list sorted by last_usage and want old stuff */ 50 /* We keep the list sorted by last_usage and want old stuff */
@@ -57,17 +59,17 @@ struct autofs_dir_ent *autofs_expire(struct super_block *sb,
57 return ent; /* Symlinks are always expirable */ 59 return ent; /* Symlinks are always expirable */
58 60
59 /* Get the dentry for the autofs subdirectory */ 61 /* Get the dentry for the autofs subdirectory */
60 dentry = ent->dentry; 62 path.dentry = ent->dentry;
61 63
62 if ( !dentry ) { 64 if (!path.dentry) {
63 /* Should only happen in catatonic mode */ 65 /* Should only happen in catatonic mode */
64 printk("autofs: dentry == NULL but inode range is directory, entry %s\n", ent->name); 66 printk("autofs: dentry == NULL but inode range is directory, entry %s\n", ent->name);
65 autofs_delete_usage(ent); 67 autofs_delete_usage(ent);
66 continue; 68 continue;
67 } 69 }
68 70
69 if ( !dentry->d_inode ) { 71 if (!path.dentry->d_inode) {
70 dput(dentry); 72 dput(path.dentry);
71 printk("autofs: negative dentry on expiry queue: %s\n", 73 printk("autofs: negative dentry on expiry queue: %s\n",
72 ent->name); 74 ent->name);
73 autofs_delete_usage(ent); 75 autofs_delete_usage(ent);
@@ -76,29 +78,29 @@ struct autofs_dir_ent *autofs_expire(struct super_block *sb,
76 78
77 /* Make sure entry is mounted and unused; note that dentry will 79 /* Make sure entry is mounted and unused; note that dentry will
78 point to the mounted-on-top root. */ 80 point to the mounted-on-top root. */
79 if (!S_ISDIR(dentry->d_inode->i_mode)||!d_mountpoint(dentry)) { 81 if (!S_ISDIR(path.dentry->d_inode->i_mode) ||
82 !d_mountpoint(path.dentry)) {
80 DPRINTK(("autofs: not expirable (not a mounted directory): %s\n", ent->name)); 83 DPRINTK(("autofs: not expirable (not a mounted directory): %s\n", ent->name));
81 continue; 84 continue;
82 } 85 }
83 mntget(mnt); 86 path.mnt = mnt;
84 dget(dentry); 87 path_get(&path);
85 if (!follow_down(&mnt, &dentry)) { 88 if (!follow_down(&path.mnt, &path.dentry)) {
86 dput(dentry); 89 path_put(&path);
87 mntput(mnt);
88 DPRINTK(("autofs: not expirable (not a mounted directory): %s\n", ent->name)); 90 DPRINTK(("autofs: not expirable (not a mounted directory): %s\n", ent->name));
89 continue; 91 continue;
90 } 92 }
91 while (d_mountpoint(dentry) && follow_down(&mnt, &dentry)) 93 while (d_mountpoint(path.dentry) &&
94 follow_down(&path.mnt, &path.dentry))
92 ; 95 ;
93 dput(dentry); 96 umount_ok = may_umount(path.mnt);
97 path_put(&path);
94 98
95 if ( may_umount(mnt) ) { 99 if (umount_ok) {
96 mntput(mnt);
97 DPRINTK(("autofs: signaling expire on %s\n", ent->name)); 100 DPRINTK(("autofs: signaling expire on %s\n", ent->name));
98 return ent; /* Expirable! */ 101 return ent; /* Expirable! */
99 } 102 }
100 DPRINTK(("autofs: didn't expire due to may_umount: %s\n", ent->name)); 103 DPRINTK(("autofs: didn't expire due to may_umount: %s\n", ent->name));
101 mntput(mnt);
102 } 104 }
103 return NULL; /* No expirable entries */ 105 return NULL; /* No expirable entries */
104} 106}
diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
index 9e5ae8a4f5c8..84168c0dcc2d 100644
--- a/fs/autofs4/dev-ioctl.c
+++ b/fs/autofs4/dev-ioctl.c
@@ -54,11 +54,10 @@ static int check_name(const char *name)
54 * Check a string doesn't overrun the chunk of 54 * Check a string doesn't overrun the chunk of
55 * memory we copied from user land. 55 * memory we copied from user land.
56 */ 56 */
57static int invalid_str(char *str, void *end) 57static int invalid_str(char *str, size_t size)
58{ 58{
59 while ((void *) str <= end) 59 if (memchr(str, 0, size))
60 if (!*str++) 60 return 0;
61 return 0;
62 return -EINVAL; 61 return -EINVAL;
63} 62}
64 63
@@ -138,8 +137,7 @@ static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
138 } 137 }
139 138
140 if (param->size > sizeof(*param)) { 139 if (param->size > sizeof(*param)) {
141 err = invalid_str(param->path, 140 err = invalid_str(param->path, param->size - sizeof(*param));
142 (void *) ((size_t) param + param->size));
143 if (err) { 141 if (err) {
144 AUTOFS_WARN( 142 AUTOFS_WARN(
145 "path string terminator missing for cmd(0x%08x)", 143 "path string terminator missing for cmd(0x%08x)",
@@ -488,7 +486,7 @@ static int autofs_dev_ioctl_requester(struct file *fp,
488 } 486 }
489 487
490 path = param->path; 488 path = param->path;
491 devid = sbi->sb->s_dev; 489 devid = new_encode_dev(sbi->sb->s_dev);
492 490
493 param->requester.uid = param->requester.gid = -1; 491 param->requester.uid = param->requester.gid = -1;
494 492
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
index 75f7ddacf7d6..3077d8f16523 100644
--- a/fs/autofs4/expire.c
+++ b/fs/autofs4/expire.c
@@ -70,8 +70,10 @@ static int autofs4_mount_busy(struct vfsmount *mnt, struct dentry *dentry)
70 * Otherwise it's an offset mount and we need to check 70 * Otherwise it's an offset mount and we need to check
71 * if we can umount its mount, if there is one. 71 * if we can umount its mount, if there is one.
72 */ 72 */
73 if (!d_mountpoint(dentry)) 73 if (!d_mountpoint(dentry)) {
74 status = 0;
74 goto done; 75 goto done;
76 }
75 } 77 }
76 78
77 /* Update the expiry counter if fs is busy */ 79 /* Update the expiry counter if fs is busy */
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 70cfc4b84ae0..fdb66faa24f1 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1388,7 +1388,7 @@ static void fill_prstatus(struct elf_prstatus *prstatus,
1388 prstatus->pr_sigpend = p->pending.signal.sig[0]; 1388 prstatus->pr_sigpend = p->pending.signal.sig[0];
1389 prstatus->pr_sighold = p->blocked.sig[0]; 1389 prstatus->pr_sighold = p->blocked.sig[0];
1390 prstatus->pr_pid = task_pid_vnr(p); 1390 prstatus->pr_pid = task_pid_vnr(p);
1391 prstatus->pr_ppid = task_pid_vnr(p->parent); 1391 prstatus->pr_ppid = task_pid_vnr(p->real_parent);
1392 prstatus->pr_pgrp = task_pgrp_vnr(p); 1392 prstatus->pr_pgrp = task_pgrp_vnr(p);
1393 prstatus->pr_sid = task_session_vnr(p); 1393 prstatus->pr_sid = task_session_vnr(p);
1394 if (thread_group_leader(p)) { 1394 if (thread_group_leader(p)) {
@@ -1433,7 +1433,7 @@ static int fill_psinfo(struct elf_prpsinfo *psinfo, struct task_struct *p,
1433 psinfo->pr_psargs[len] = 0; 1433 psinfo->pr_psargs[len] = 0;
1434 1434
1435 psinfo->pr_pid = task_pid_vnr(p); 1435 psinfo->pr_pid = task_pid_vnr(p);
1436 psinfo->pr_ppid = task_pid_vnr(p->parent); 1436 psinfo->pr_ppid = task_pid_vnr(p->real_parent);
1437 psinfo->pr_pgrp = task_pgrp_vnr(p); 1437 psinfo->pr_pgrp = task_pgrp_vnr(p);
1438 psinfo->pr_sid = task_session_vnr(p); 1438 psinfo->pr_sid = task_session_vnr(p);
1439 1439
diff --git a/fs/bio.c b/fs/bio.c
index e0c9e545bbfa..98711647ece4 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -175,14 +175,6 @@ struct bio_vec *bvec_alloc_bs(gfp_t gfp_mask, int nr, unsigned long *idx,
175 struct bio_vec *bvl; 175 struct bio_vec *bvl;
176 176
177 /* 177 /*
178 * If 'bs' is given, lookup the pool and do the mempool alloc.
179 * If not, this is a bio_kmalloc() allocation and just do a
180 * kzalloc() for the exact number of vecs right away.
181 */
182 if (!bs)
183 bvl = kmalloc(nr * sizeof(struct bio_vec), gfp_mask);
184
185 /*
186 * see comment near bvec_array define! 178 * see comment near bvec_array define!
187 */ 179 */
188 switch (nr) { 180 switch (nr) {
@@ -260,21 +252,6 @@ void bio_free(struct bio *bio, struct bio_set *bs)
260 mempool_free(p, bs->bio_pool); 252 mempool_free(p, bs->bio_pool);
261} 253}
262 254
263/*
264 * default destructor for a bio allocated with bio_alloc_bioset()
265 */
266static void bio_fs_destructor(struct bio *bio)
267{
268 bio_free(bio, fs_bio_set);
269}
270
271static void bio_kmalloc_destructor(struct bio *bio)
272{
273 if (bio_has_allocated_vec(bio))
274 kfree(bio->bi_io_vec);
275 kfree(bio);
276}
277
278void bio_init(struct bio *bio) 255void bio_init(struct bio *bio)
279{ 256{
280 memset(bio, 0, sizeof(*bio)); 257 memset(bio, 0, sizeof(*bio));
@@ -301,21 +278,15 @@ void bio_init(struct bio *bio)
301 **/ 278 **/
302struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs) 279struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs)
303{ 280{
281 unsigned long idx = BIO_POOL_NONE;
304 struct bio_vec *bvl = NULL; 282 struct bio_vec *bvl = NULL;
305 struct bio *bio = NULL; 283 struct bio *bio;
306 unsigned long idx = 0; 284 void *p;
307 void *p = NULL; 285
308 286 p = mempool_alloc(bs->bio_pool, gfp_mask);
309 if (bs) { 287 if (unlikely(!p))
310 p = mempool_alloc(bs->bio_pool, gfp_mask); 288 return NULL;
311 if (!p) 289 bio = p + bs->front_pad;
312 goto err;
313 bio = p + bs->front_pad;
314 } else {
315 bio = kmalloc(sizeof(*bio), gfp_mask);
316 if (!bio)
317 goto err;
318 }
319 290
320 bio_init(bio); 291 bio_init(bio);
321 292
@@ -332,22 +303,33 @@ struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs)
332 303
333 nr_iovecs = bvec_nr_vecs(idx); 304 nr_iovecs = bvec_nr_vecs(idx);
334 } 305 }
306out_set:
335 bio->bi_flags |= idx << BIO_POOL_OFFSET; 307 bio->bi_flags |= idx << BIO_POOL_OFFSET;
336 bio->bi_max_vecs = nr_iovecs; 308 bio->bi_max_vecs = nr_iovecs;
337out_set:
338 bio->bi_io_vec = bvl; 309 bio->bi_io_vec = bvl;
339
340 return bio; 310 return bio;
341 311
342err_free: 312err_free:
343 if (bs) 313 mempool_free(p, bs->bio_pool);
344 mempool_free(p, bs->bio_pool);
345 else
346 kfree(bio);
347err:
348 return NULL; 314 return NULL;
349} 315}
350 316
317static void bio_fs_destructor(struct bio *bio)
318{
319 bio_free(bio, fs_bio_set);
320}
321
322/**
323 * bio_alloc - allocate a new bio, memory pool backed
324 * @gfp_mask: allocation mask to use
325 * @nr_iovecs: number of iovecs
326 *
327 * Allocate a new bio with @nr_iovecs bvecs. If @gfp_mask
328 * contains __GFP_WAIT, the allocation is guaranteed to succeed.
329 *
330 * RETURNS:
331 * Pointer to new bio on success, NULL on failure.
332 */
351struct bio *bio_alloc(gfp_t gfp_mask, int nr_iovecs) 333struct bio *bio_alloc(gfp_t gfp_mask, int nr_iovecs)
352{ 334{
353 struct bio *bio = bio_alloc_bioset(gfp_mask, nr_iovecs, fs_bio_set); 335 struct bio *bio = bio_alloc_bioset(gfp_mask, nr_iovecs, fs_bio_set);
@@ -358,19 +340,45 @@ struct bio *bio_alloc(gfp_t gfp_mask, int nr_iovecs)
358 return bio; 340 return bio;
359} 341}
360 342
361/* 343static void bio_kmalloc_destructor(struct bio *bio)
362 * Like bio_alloc(), but doesn't use a mempool backing. This means that 344{
363 * it CAN fail, but while bio_alloc() can only be used for allocations 345 if (bio_integrity(bio))
364 * that have a short (finite) life span, bio_kmalloc() should be used 346 bio_integrity_free(bio);
365 * for more permanent bio allocations (like allocating some bio's for 347 kfree(bio);
366 * initalization or setup purposes). 348}
367 */ 349
350/**
351 * bio_alloc - allocate a bio for I/O
352 * @gfp_mask: the GFP_ mask given to the slab allocator
353 * @nr_iovecs: number of iovecs to pre-allocate
354 *
355 * Description:
356 * bio_alloc will allocate a bio and associated bio_vec array that can hold
357 * at least @nr_iovecs entries. Allocations will be done from the
358 * fs_bio_set. Also see @bio_alloc_bioset.
359 *
360 * If %__GFP_WAIT is set, then bio_alloc will always be able to allocate
361 * a bio. This is due to the mempool guarantees. To make this work, callers
362 * must never allocate more than 1 bio at the time from this pool. Callers
363 * that need to allocate more than 1 bio must always submit the previously
364 * allocate bio for IO before attempting to allocate a new one. Failure to
365 * do so can cause livelocks under memory pressure.
366 *
367 **/
368struct bio *bio_kmalloc(gfp_t gfp_mask, int nr_iovecs) 368struct bio *bio_kmalloc(gfp_t gfp_mask, int nr_iovecs)
369{ 369{
370 struct bio *bio = bio_alloc_bioset(gfp_mask, nr_iovecs, NULL); 370 struct bio *bio;
371 371
372 if (bio) 372 bio = kmalloc(sizeof(struct bio) + nr_iovecs * sizeof(struct bio_vec),
373 bio->bi_destructor = bio_kmalloc_destructor; 373 gfp_mask);
374 if (unlikely(!bio))
375 return NULL;
376
377 bio_init(bio);
378 bio->bi_flags |= BIO_POOL_NONE << BIO_POOL_OFFSET;
379 bio->bi_max_vecs = nr_iovecs;
380 bio->bi_io_vec = bio->bi_inline_vecs;
381 bio->bi_destructor = bio_kmalloc_destructor;
374 382
375 return bio; 383 return bio;
376} 384}
@@ -809,12 +817,15 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
809 len += iov[i].iov_len; 817 len += iov[i].iov_len;
810 } 818 }
811 819
820 if (offset)
821 nr_pages++;
822
812 bmd = bio_alloc_map_data(nr_pages, iov_count, gfp_mask); 823 bmd = bio_alloc_map_data(nr_pages, iov_count, gfp_mask);
813 if (!bmd) 824 if (!bmd)
814 return ERR_PTR(-ENOMEM); 825 return ERR_PTR(-ENOMEM);
815 826
816 ret = -ENOMEM; 827 ret = -ENOMEM;
817 bio = bio_alloc(gfp_mask, nr_pages); 828 bio = bio_kmalloc(gfp_mask, nr_pages);
818 if (!bio) 829 if (!bio)
819 goto out_bmd; 830 goto out_bmd;
820 831
@@ -938,7 +949,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q,
938 if (!nr_pages) 949 if (!nr_pages)
939 return ERR_PTR(-EINVAL); 950 return ERR_PTR(-EINVAL);
940 951
941 bio = bio_alloc(gfp_mask, nr_pages); 952 bio = bio_kmalloc(gfp_mask, nr_pages);
942 if (!bio) 953 if (!bio)
943 return ERR_PTR(-ENOMEM); 954 return ERR_PTR(-ENOMEM);
944 955
@@ -1122,7 +1133,7 @@ static struct bio *__bio_map_kern(struct request_queue *q, void *data,
1122 int offset, i; 1133 int offset, i;
1123 struct bio *bio; 1134 struct bio *bio;
1124 1135
1125 bio = bio_alloc(gfp_mask, nr_pages); 1136 bio = bio_kmalloc(gfp_mask, nr_pages);
1126 if (!bio) 1137 if (!bio)
1127 return ERR_PTR(-ENOMEM); 1138 return ERR_PTR(-ENOMEM);
1128 1139
diff --git a/fs/btrfs/Makefile b/fs/btrfs/Makefile
index 9adf5e4f7e96..94212844a9bc 100644
--- a/fs/btrfs/Makefile
+++ b/fs/btrfs/Makefile
@@ -1,25 +1,10 @@
1ifneq ($(KERNELRELEASE),)
2# kbuild part of makefile
3 1
4obj-$(CONFIG_BTRFS_FS) := btrfs.o 2obj-$(CONFIG_BTRFS_FS) := btrfs.o
5btrfs-y := super.o ctree.o extent-tree.o print-tree.o root-tree.o dir-item.o \ 3
4btrfs-y += super.o ctree.o extent-tree.o print-tree.o root-tree.o dir-item.o \
6 file-item.o inode-item.o inode-map.o disk-io.o \ 5 file-item.o inode-item.o inode-map.o disk-io.o \
7 transaction.o inode.o file.o tree-defrag.o \ 6 transaction.o inode.o file.o tree-defrag.o \
8 extent_map.o sysfs.o struct-funcs.o xattr.o ordered-data.o \ 7 extent_map.o sysfs.o struct-funcs.o xattr.o ordered-data.o \
9 extent_io.o volumes.o async-thread.o ioctl.o locking.o orphan.o \ 8 extent_io.o volumes.o async-thread.o ioctl.o locking.o orphan.o \
10 ref-cache.o export.o tree-log.o acl.o free-space-cache.o zlib.o \ 9 ref-cache.o export.o tree-log.o acl.o free-space-cache.o zlib.o \
11 compression.o delayed-ref.o 10 compression.o delayed-ref.o
12else
13
14# Normal Makefile
15
16KERNELDIR := /lib/modules/`uname -r`/build
17all:
18 $(MAKE) -C $(KERNELDIR) M=`pwd` CONFIG_BTRFS_FS=m modules
19
20modules_install:
21 $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
22clean:
23 $(MAKE) -C $(KERNELDIR) M=`pwd` clean
24
25endif
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c
index 7fdd184a528d..cbba000dccbe 100644
--- a/fs/btrfs/acl.c
+++ b/fs/btrfs/acl.c
@@ -60,15 +60,20 @@ static struct posix_acl *btrfs_get_acl(struct inode *inode, int type)
60 return ERR_PTR(-EINVAL); 60 return ERR_PTR(-EINVAL);
61 } 61 }
62 62
63 /* Handle the cached NULL acl case without locking */
64 acl = ACCESS_ONCE(*p_acl);
65 if (!acl)
66 return acl;
67
63 spin_lock(&inode->i_lock); 68 spin_lock(&inode->i_lock);
64 if (*p_acl != BTRFS_ACL_NOT_CACHED) 69 acl = *p_acl;
65 acl = posix_acl_dup(*p_acl); 70 if (acl != BTRFS_ACL_NOT_CACHED)
71 acl = posix_acl_dup(acl);
66 spin_unlock(&inode->i_lock); 72 spin_unlock(&inode->i_lock);
67 73
68 if (acl) 74 if (acl != BTRFS_ACL_NOT_CACHED)
69 return acl; 75 return acl;
70 76
71
72 size = __btrfs_getxattr(inode, name, "", 0); 77 size = __btrfs_getxattr(inode, name, "", 0);
73 if (size > 0) { 78 if (size > 0) {
74 value = kzalloc(size, GFP_NOFS); 79 value = kzalloc(size, GFP_NOFS);
@@ -80,9 +85,12 @@ static struct posix_acl *btrfs_get_acl(struct inode *inode, int type)
80 btrfs_update_cached_acl(inode, p_acl, acl); 85 btrfs_update_cached_acl(inode, p_acl, acl);
81 } 86 }
82 kfree(value); 87 kfree(value);
83 } else if (size == -ENOENT) { 88 } else if (size == -ENOENT || size == -ENODATA || size == 0) {
89 /* FIXME, who returns -ENOENT? I think nobody */
84 acl = NULL; 90 acl = NULL;
85 btrfs_update_cached_acl(inode, p_acl, acl); 91 btrfs_update_cached_acl(inode, p_acl, acl);
92 } else {
93 acl = ERR_PTR(-EIO);
86 } 94 }
87 95
88 return acl; 96 return acl;
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c
index 51bfdfc8fcda..502c3d61de62 100644
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
@@ -25,6 +25,7 @@
25#define WORK_QUEUED_BIT 0 25#define WORK_QUEUED_BIT 0
26#define WORK_DONE_BIT 1 26#define WORK_DONE_BIT 1
27#define WORK_ORDER_DONE_BIT 2 27#define WORK_ORDER_DONE_BIT 2
28#define WORK_HIGH_PRIO_BIT 3
28 29
29/* 30/*
30 * container for the kthread task pointer and the list of pending work 31 * container for the kthread task pointer and the list of pending work
@@ -36,6 +37,7 @@ struct btrfs_worker_thread {
36 37
37 /* list of struct btrfs_work that are waiting for service */ 38 /* list of struct btrfs_work that are waiting for service */
38 struct list_head pending; 39 struct list_head pending;
40 struct list_head prio_pending;
39 41
40 /* list of worker threads from struct btrfs_workers */ 42 /* list of worker threads from struct btrfs_workers */
41 struct list_head worker_list; 43 struct list_head worker_list;
@@ -103,10 +105,16 @@ static noinline int run_ordered_completions(struct btrfs_workers *workers,
103 105
104 spin_lock_irqsave(&workers->lock, flags); 106 spin_lock_irqsave(&workers->lock, flags);
105 107
106 while (!list_empty(&workers->order_list)) { 108 while (1) {
107 work = list_entry(workers->order_list.next, 109 if (!list_empty(&workers->prio_order_list)) {
108 struct btrfs_work, order_list); 110 work = list_entry(workers->prio_order_list.next,
109 111 struct btrfs_work, order_list);
112 } else if (!list_empty(&workers->order_list)) {
113 work = list_entry(workers->order_list.next,
114 struct btrfs_work, order_list);
115 } else {
116 break;
117 }
110 if (!test_bit(WORK_DONE_BIT, &work->flags)) 118 if (!test_bit(WORK_DONE_BIT, &work->flags))
111 break; 119 break;
112 120
@@ -143,8 +151,14 @@ static int worker_loop(void *arg)
143 do { 151 do {
144 spin_lock_irq(&worker->lock); 152 spin_lock_irq(&worker->lock);
145again_locked: 153again_locked:
146 while (!list_empty(&worker->pending)) { 154 while (1) {
147 cur = worker->pending.next; 155 if (!list_empty(&worker->prio_pending))
156 cur = worker->prio_pending.next;
157 else if (!list_empty(&worker->pending))
158 cur = worker->pending.next;
159 else
160 break;
161
148 work = list_entry(cur, struct btrfs_work, list); 162 work = list_entry(cur, struct btrfs_work, list);
149 list_del(&work->list); 163 list_del(&work->list);
150 clear_bit(WORK_QUEUED_BIT, &work->flags); 164 clear_bit(WORK_QUEUED_BIT, &work->flags);
@@ -163,7 +177,6 @@ again_locked:
163 177
164 spin_lock_irq(&worker->lock); 178 spin_lock_irq(&worker->lock);
165 check_idle_worker(worker); 179 check_idle_worker(worker);
166
167 } 180 }
168 if (freezing(current)) { 181 if (freezing(current)) {
169 worker->working = 0; 182 worker->working = 0;
@@ -178,7 +191,8 @@ again_locked:
178 * jump_in? 191 * jump_in?
179 */ 192 */
180 smp_mb(); 193 smp_mb();
181 if (!list_empty(&worker->pending)) 194 if (!list_empty(&worker->pending) ||
195 !list_empty(&worker->prio_pending))
182 continue; 196 continue;
183 197
184 /* 198 /*
@@ -191,7 +205,8 @@ again_locked:
191 */ 205 */
192 schedule_timeout(1); 206 schedule_timeout(1);
193 smp_mb(); 207 smp_mb();
194 if (!list_empty(&worker->pending)) 208 if (!list_empty(&worker->pending) ||
209 !list_empty(&worker->prio_pending))
195 continue; 210 continue;
196 211
197 if (kthread_should_stop()) 212 if (kthread_should_stop())
@@ -200,7 +215,8 @@ again_locked:
200 /* still no more work?, sleep for real */ 215 /* still no more work?, sleep for real */
201 spin_lock_irq(&worker->lock); 216 spin_lock_irq(&worker->lock);
202 set_current_state(TASK_INTERRUPTIBLE); 217 set_current_state(TASK_INTERRUPTIBLE);
203 if (!list_empty(&worker->pending)) 218 if (!list_empty(&worker->pending) ||
219 !list_empty(&worker->prio_pending))
204 goto again_locked; 220 goto again_locked;
205 221
206 /* 222 /*
@@ -248,6 +264,7 @@ void btrfs_init_workers(struct btrfs_workers *workers, char *name, int max)
248 INIT_LIST_HEAD(&workers->worker_list); 264 INIT_LIST_HEAD(&workers->worker_list);
249 INIT_LIST_HEAD(&workers->idle_list); 265 INIT_LIST_HEAD(&workers->idle_list);
250 INIT_LIST_HEAD(&workers->order_list); 266 INIT_LIST_HEAD(&workers->order_list);
267 INIT_LIST_HEAD(&workers->prio_order_list);
251 spin_lock_init(&workers->lock); 268 spin_lock_init(&workers->lock);
252 workers->max_workers = max; 269 workers->max_workers = max;
253 workers->idle_thresh = 32; 270 workers->idle_thresh = 32;
@@ -273,6 +290,7 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers)
273 } 290 }
274 291
275 INIT_LIST_HEAD(&worker->pending); 292 INIT_LIST_HEAD(&worker->pending);
293 INIT_LIST_HEAD(&worker->prio_pending);
276 INIT_LIST_HEAD(&worker->worker_list); 294 INIT_LIST_HEAD(&worker->worker_list);
277 spin_lock_init(&worker->lock); 295 spin_lock_init(&worker->lock);
278 atomic_set(&worker->num_pending, 0); 296 atomic_set(&worker->num_pending, 0);
@@ -396,7 +414,10 @@ int btrfs_requeue_work(struct btrfs_work *work)
396 goto out; 414 goto out;
397 415
398 spin_lock_irqsave(&worker->lock, flags); 416 spin_lock_irqsave(&worker->lock, flags);
399 list_add_tail(&work->list, &worker->pending); 417 if (test_bit(WORK_HIGH_PRIO_BIT, &work->flags))
418 list_add_tail(&work->list, &worker->prio_pending);
419 else
420 list_add_tail(&work->list, &worker->pending);
400 atomic_inc(&worker->num_pending); 421 atomic_inc(&worker->num_pending);
401 422
402 /* by definition we're busy, take ourselves off the idle 423 /* by definition we're busy, take ourselves off the idle
@@ -422,6 +443,11 @@ out:
422 return 0; 443 return 0;
423} 444}
424 445
446void btrfs_set_work_high_prio(struct btrfs_work *work)
447{
448 set_bit(WORK_HIGH_PRIO_BIT, &work->flags);
449}
450
425/* 451/*
426 * places a struct btrfs_work into the pending queue of one of the kthreads 452 * places a struct btrfs_work into the pending queue of one of the kthreads
427 */ 453 */
@@ -438,7 +464,12 @@ int btrfs_queue_worker(struct btrfs_workers *workers, struct btrfs_work *work)
438 worker = find_worker(workers); 464 worker = find_worker(workers);
439 if (workers->ordered) { 465 if (workers->ordered) {
440 spin_lock_irqsave(&workers->lock, flags); 466 spin_lock_irqsave(&workers->lock, flags);
441 list_add_tail(&work->order_list, &workers->order_list); 467 if (test_bit(WORK_HIGH_PRIO_BIT, &work->flags)) {
468 list_add_tail(&work->order_list,
469 &workers->prio_order_list);
470 } else {
471 list_add_tail(&work->order_list, &workers->order_list);
472 }
442 spin_unlock_irqrestore(&workers->lock, flags); 473 spin_unlock_irqrestore(&workers->lock, flags);
443 } else { 474 } else {
444 INIT_LIST_HEAD(&work->order_list); 475 INIT_LIST_HEAD(&work->order_list);
@@ -446,7 +477,10 @@ int btrfs_queue_worker(struct btrfs_workers *workers, struct btrfs_work *work)
446 477
447 spin_lock_irqsave(&worker->lock, flags); 478 spin_lock_irqsave(&worker->lock, flags);
448 479
449 list_add_tail(&work->list, &worker->pending); 480 if (test_bit(WORK_HIGH_PRIO_BIT, &work->flags))
481 list_add_tail(&work->list, &worker->prio_pending);
482 else
483 list_add_tail(&work->list, &worker->pending);
450 atomic_inc(&worker->num_pending); 484 atomic_inc(&worker->num_pending);
451 check_busy_worker(worker); 485 check_busy_worker(worker);
452 486
diff --git a/fs/btrfs/async-thread.h b/fs/btrfs/async-thread.h
index 31be4ed8b63e..1b511c109db6 100644
--- a/fs/btrfs/async-thread.h
+++ b/fs/btrfs/async-thread.h
@@ -85,6 +85,7 @@ struct btrfs_workers {
85 * of work items waiting for completion 85 * of work items waiting for completion
86 */ 86 */
87 struct list_head order_list; 87 struct list_head order_list;
88 struct list_head prio_order_list;
88 89
89 /* lock for finding the next worker thread to queue on */ 90 /* lock for finding the next worker thread to queue on */
90 spinlock_t lock; 91 spinlock_t lock;
@@ -98,4 +99,5 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers);
98int btrfs_stop_workers(struct btrfs_workers *workers); 99int btrfs_stop_workers(struct btrfs_workers *workers);
99void btrfs_init_workers(struct btrfs_workers *workers, char *name, int max); 100void btrfs_init_workers(struct btrfs_workers *workers, char *name, int max);
100int btrfs_requeue_work(struct btrfs_work *work); 101int btrfs_requeue_work(struct btrfs_work *work);
102void btrfs_set_work_high_prio(struct btrfs_work *work);
101#endif 103#endif
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index e5b2533b691a..fedf8b9f03a2 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1325,12 +1325,12 @@ static noinline int reada_for_balance(struct btrfs_root *root,
1325 int ret = 0; 1325 int ret = 0;
1326 int blocksize; 1326 int blocksize;
1327 1327
1328 parent = path->nodes[level - 1]; 1328 parent = path->nodes[level + 1];
1329 if (!parent) 1329 if (!parent)
1330 return 0; 1330 return 0;
1331 1331
1332 nritems = btrfs_header_nritems(parent); 1332 nritems = btrfs_header_nritems(parent);
1333 slot = path->slots[level]; 1333 slot = path->slots[level + 1];
1334 blocksize = btrfs_level_size(root, level); 1334 blocksize = btrfs_level_size(root, level);
1335 1335
1336 if (slot > 0) { 1336 if (slot > 0) {
@@ -1341,7 +1341,7 @@ static noinline int reada_for_balance(struct btrfs_root *root,
1341 block1 = 0; 1341 block1 = 0;
1342 free_extent_buffer(eb); 1342 free_extent_buffer(eb);
1343 } 1343 }
1344 if (slot < nritems) { 1344 if (slot + 1 < nritems) {
1345 block2 = btrfs_node_blockptr(parent, slot + 1); 1345 block2 = btrfs_node_blockptr(parent, slot + 1);
1346 gen = btrfs_node_ptr_generation(parent, slot + 1); 1346 gen = btrfs_node_ptr_generation(parent, slot + 1);
1347 eb = btrfs_find_tree_block(root, block2, blocksize); 1347 eb = btrfs_find_tree_block(root, block2, blocksize);
@@ -1351,7 +1351,11 @@ static noinline int reada_for_balance(struct btrfs_root *root,
1351 } 1351 }
1352 if (block1 || block2) { 1352 if (block1 || block2) {
1353 ret = -EAGAIN; 1353 ret = -EAGAIN;
1354
1355 /* release the whole path */
1354 btrfs_release_path(root, path); 1356 btrfs_release_path(root, path);
1357
1358 /* read the blocks */
1355 if (block1) 1359 if (block1)
1356 readahead_tree_block(root, block1, blocksize, 0); 1360 readahead_tree_block(root, block1, blocksize, 0);
1357 if (block2) 1361 if (block2)
@@ -1361,7 +1365,7 @@ static noinline int reada_for_balance(struct btrfs_root *root,
1361 eb = read_tree_block(root, block1, blocksize, 0); 1365 eb = read_tree_block(root, block1, blocksize, 0);
1362 free_extent_buffer(eb); 1366 free_extent_buffer(eb);
1363 } 1367 }
1364 if (block1) { 1368 if (block2) {
1365 eb = read_tree_block(root, block2, blocksize, 0); 1369 eb = read_tree_block(root, block2, blocksize, 0);
1366 free_extent_buffer(eb); 1370 free_extent_buffer(eb);
1367 } 1371 }
@@ -1465,6 +1469,7 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1465 u32 blocksize; 1469 u32 blocksize;
1466 struct extent_buffer *b = *eb_ret; 1470 struct extent_buffer *b = *eb_ret;
1467 struct extent_buffer *tmp; 1471 struct extent_buffer *tmp;
1472 int ret;
1468 1473
1469 blocknr = btrfs_node_blockptr(b, slot); 1474 blocknr = btrfs_node_blockptr(b, slot);
1470 gen = btrfs_node_ptr_generation(b, slot); 1475 gen = btrfs_node_ptr_generation(b, slot);
@@ -1472,6 +1477,10 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1472 1477
1473 tmp = btrfs_find_tree_block(root, blocknr, blocksize); 1478 tmp = btrfs_find_tree_block(root, blocknr, blocksize);
1474 if (tmp && btrfs_buffer_uptodate(tmp, gen)) { 1479 if (tmp && btrfs_buffer_uptodate(tmp, gen)) {
1480 /*
1481 * we found an up to date block without sleeping, return
1482 * right away
1483 */
1475 *eb_ret = tmp; 1484 *eb_ret = tmp;
1476 return 0; 1485 return 0;
1477 } 1486 }
@@ -1479,18 +1488,34 @@ read_block_for_search(struct btrfs_trans_handle *trans,
1479 /* 1488 /*
1480 * reduce lock contention at high levels 1489 * reduce lock contention at high levels
1481 * of the btree by dropping locks before 1490 * of the btree by dropping locks before
1482 * we read. 1491 * we read. Don't release the lock on the current
1492 * level because we need to walk this node to figure
1493 * out which blocks to read.
1483 */ 1494 */
1484 btrfs_release_path(NULL, p); 1495 btrfs_unlock_up_safe(p, level + 1);
1496 btrfs_set_path_blocking(p);
1497
1485 if (tmp) 1498 if (tmp)
1486 free_extent_buffer(tmp); 1499 free_extent_buffer(tmp);
1487 if (p->reada) 1500 if (p->reada)
1488 reada_for_search(root, p, level, slot, key->objectid); 1501 reada_for_search(root, p, level, slot, key->objectid);
1489 1502
1503 btrfs_release_path(NULL, p);
1504
1505 ret = -EAGAIN;
1490 tmp = read_tree_block(root, blocknr, blocksize, gen); 1506 tmp = read_tree_block(root, blocknr, blocksize, gen);
1491 if (tmp) 1507 if (tmp) {
1508 /*
1509 * If the read above didn't mark this buffer up to date,
1510 * it will never end up being up to date. Set ret to EIO now
1511 * and give up so that our caller doesn't loop forever
1512 * on our EAGAINs.
1513 */
1514 if (!btrfs_buffer_uptodate(tmp, 0))
1515 ret = -EIO;
1492 free_extent_buffer(tmp); 1516 free_extent_buffer(tmp);
1493 return -EAGAIN; 1517 }
1518 return ret;
1494} 1519}
1495 1520
1496/* 1521/*
@@ -1689,6 +1714,9 @@ cow_done:
1689 if (ret == -EAGAIN) 1714 if (ret == -EAGAIN)
1690 goto again; 1715 goto again;
1691 1716
1717 if (ret == -EIO)
1718 goto done;
1719
1692 if (!p->skip_locking) { 1720 if (!p->skip_locking) {
1693 int lret; 1721 int lret;
1694 1722
@@ -1731,6 +1759,8 @@ done:
1731 */ 1759 */
1732 if (!p->leave_spinning) 1760 if (!p->leave_spinning)
1733 btrfs_set_path_blocking(p); 1761 btrfs_set_path_blocking(p);
1762 if (ret < 0)
1763 btrfs_release_path(root, p);
1734 return ret; 1764 return ret;
1735} 1765}
1736 1766
@@ -4205,6 +4235,11 @@ again:
4205 if (ret == -EAGAIN) 4235 if (ret == -EAGAIN)
4206 goto again; 4236 goto again;
4207 4237
4238 if (ret < 0) {
4239 btrfs_release_path(root, path);
4240 goto done;
4241 }
4242
4208 if (!path->skip_locking) { 4243 if (!path->skip_locking) {
4209 ret = btrfs_try_spin_lock(next); 4244 ret = btrfs_try_spin_lock(next);
4210 if (!ret) { 4245 if (!ret) {
@@ -4239,6 +4274,11 @@ again:
4239 if (ret == -EAGAIN) 4274 if (ret == -EAGAIN)
4240 goto again; 4275 goto again;
4241 4276
4277 if (ret < 0) {
4278 btrfs_release_path(root, path);
4279 goto done;
4280 }
4281
4242 if (!path->skip_locking) { 4282 if (!path->skip_locking) {
4243 btrfs_assert_tree_locked(path->nodes[level]); 4283 btrfs_assert_tree_locked(path->nodes[level]);
4244 ret = btrfs_try_spin_lock(next); 4284 ret = btrfs_try_spin_lock(next);
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index ad96495dedc5..4414a5d9983a 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -881,6 +881,9 @@ struct btrfs_fs_info {
881 u64 metadata_alloc_profile; 881 u64 metadata_alloc_profile;
882 u64 system_alloc_profile; 882 u64 system_alloc_profile;
883 883
884 unsigned data_chunk_allocations;
885 unsigned metadata_ratio;
886
884 void *bdev_holder; 887 void *bdev_holder;
885}; 888};
886 889
@@ -2174,7 +2177,8 @@ int btrfs_check_file(struct btrfs_root *root, struct inode *inode);
2174extern struct file_operations btrfs_file_operations; 2177extern struct file_operations btrfs_file_operations;
2175int btrfs_drop_extents(struct btrfs_trans_handle *trans, 2178int btrfs_drop_extents(struct btrfs_trans_handle *trans,
2176 struct btrfs_root *root, struct inode *inode, 2179 struct btrfs_root *root, struct inode *inode,
2177 u64 start, u64 end, u64 inline_limit, u64 *hint_block); 2180 u64 start, u64 end, u64 locked_end,
2181 u64 inline_limit, u64 *hint_block);
2178int btrfs_mark_extent_written(struct btrfs_trans_handle *trans, 2182int btrfs_mark_extent_written(struct btrfs_trans_handle *trans,
2179 struct btrfs_root *root, 2183 struct btrfs_root *root,
2180 struct inode *inode, u64 start, u64 end); 2184 struct inode *inode, u64 start, u64 end);
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 92caa8035f36..4b0ea0b80c23 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -232,10 +232,14 @@ static int csum_tree_block(struct btrfs_root *root, struct extent_buffer *buf,
232 memcpy(&found, result, csum_size); 232 memcpy(&found, result, csum_size);
233 233
234 read_extent_buffer(buf, &val, 0, csum_size); 234 read_extent_buffer(buf, &val, 0, csum_size);
235 printk(KERN_INFO "btrfs: %s checksum verify failed " 235 if (printk_ratelimit()) {
236 "on %llu wanted %X found %X level %d\n", 236 printk(KERN_INFO "btrfs: %s checksum verify "
237 root->fs_info->sb->s_id, 237 "failed on %llu wanted %X found %X "
238 buf->start, val, found, btrfs_header_level(buf)); 238 "level %d\n",
239 root->fs_info->sb->s_id,
240 (unsigned long long)buf->start, val, found,
241 btrfs_header_level(buf));
242 }
239 if (result != (char *)&inline_result) 243 if (result != (char *)&inline_result)
240 kfree(result); 244 kfree(result);
241 return 1; 245 return 1;
@@ -268,10 +272,13 @@ static int verify_parent_transid(struct extent_io_tree *io_tree,
268 ret = 0; 272 ret = 0;
269 goto out; 273 goto out;
270 } 274 }
271 printk("parent transid verify failed on %llu wanted %llu found %llu\n", 275 if (printk_ratelimit()) {
272 (unsigned long long)eb->start, 276 printk("parent transid verify failed on %llu wanted %llu "
273 (unsigned long long)parent_transid, 277 "found %llu\n",
274 (unsigned long long)btrfs_header_generation(eb)); 278 (unsigned long long)eb->start,
279 (unsigned long long)parent_transid,
280 (unsigned long long)btrfs_header_generation(eb));
281 }
275 ret = 1; 282 ret = 1;
276 clear_extent_buffer_uptodate(io_tree, eb); 283 clear_extent_buffer_uptodate(io_tree, eb);
277out: 284out:
@@ -415,9 +422,12 @@ static int btree_readpage_end_io_hook(struct page *page, u64 start, u64 end,
415 422
416 found_start = btrfs_header_bytenr(eb); 423 found_start = btrfs_header_bytenr(eb);
417 if (found_start != start) { 424 if (found_start != start) {
418 printk(KERN_INFO "btrfs bad tree block start %llu %llu\n", 425 if (printk_ratelimit()) {
419 (unsigned long long)found_start, 426 printk(KERN_INFO "btrfs bad tree block start "
420 (unsigned long long)eb->start); 427 "%llu %llu\n",
428 (unsigned long long)found_start,
429 (unsigned long long)eb->start);
430 }
421 ret = -EIO; 431 ret = -EIO;
422 goto err; 432 goto err;
423 } 433 }
@@ -429,8 +439,10 @@ static int btree_readpage_end_io_hook(struct page *page, u64 start, u64 end,
429 goto err; 439 goto err;
430 } 440 }
431 if (check_tree_block_fsid(root, eb)) { 441 if (check_tree_block_fsid(root, eb)) {
432 printk(KERN_INFO "btrfs bad fsid on block %llu\n", 442 if (printk_ratelimit()) {
433 (unsigned long long)eb->start); 443 printk(KERN_INFO "btrfs bad fsid on block %llu\n",
444 (unsigned long long)eb->start);
445 }
434 ret = -EIO; 446 ret = -EIO;
435 goto err; 447 goto err;
436 } 448 }
@@ -579,19 +591,12 @@ int btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct inode *inode,
579 async->bio_flags = bio_flags; 591 async->bio_flags = bio_flags;
580 592
581 atomic_inc(&fs_info->nr_async_submits); 593 atomic_inc(&fs_info->nr_async_submits);
594
595 if (rw & (1 << BIO_RW_SYNCIO))
596 btrfs_set_work_high_prio(&async->work);
597
582 btrfs_queue_worker(&fs_info->workers, &async->work); 598 btrfs_queue_worker(&fs_info->workers, &async->work);
583#if 0
584 int limit = btrfs_async_submit_limit(fs_info);
585 if (atomic_read(&fs_info->nr_async_submits) > limit) {
586 wait_event_timeout(fs_info->async_submit_wait,
587 (atomic_read(&fs_info->nr_async_submits) < limit),
588 HZ/10);
589 599
590 wait_event_timeout(fs_info->async_submit_wait,
591 (atomic_read(&fs_info->nr_async_bios) < limit),
592 HZ/10);
593 }
594#endif
595 while (atomic_read(&fs_info->async_submit_draining) && 600 while (atomic_read(&fs_info->async_submit_draining) &&
596 atomic_read(&fs_info->nr_async_submits)) { 601 atomic_read(&fs_info->nr_async_submits)) {
597 wait_event(fs_info->async_submit_wait, 602 wait_event(fs_info->async_submit_wait,
@@ -656,6 +661,7 @@ static int btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
656 return btrfs_map_bio(BTRFS_I(inode)->root, rw, bio, 661 return btrfs_map_bio(BTRFS_I(inode)->root, rw, bio,
657 mirror_num, 0); 662 mirror_num, 0);
658 } 663 }
664
659 /* 665 /*
660 * kthread helpers are used to submit writes so that checksumming 666 * kthread helpers are used to submit writes so that checksumming
661 * can happen in parallel across all CPUs 667 * can happen in parallel across all CPUs
@@ -765,27 +771,6 @@ static void btree_invalidatepage(struct page *page, unsigned long offset)
765 } 771 }
766} 772}
767 773
768#if 0
769static int btree_writepage(struct page *page, struct writeback_control *wbc)
770{
771 struct buffer_head *bh;
772 struct btrfs_root *root = BTRFS_I(page->mapping->host)->root;
773 struct buffer_head *head;
774 if (!page_has_buffers(page)) {
775 create_empty_buffers(page, root->fs_info->sb->s_blocksize,
776 (1 << BH_Dirty)|(1 << BH_Uptodate));
777 }
778 head = page_buffers(page);
779 bh = head;
780 do {
781 if (buffer_dirty(bh))
782 csum_tree_block(root, bh, 0);
783 bh = bh->b_this_page;
784 } while (bh != head);
785 return block_write_full_page(page, btree_get_block, wbc);
786}
787#endif
788
789static struct address_space_operations btree_aops = { 774static struct address_space_operations btree_aops = {
790 .readpage = btree_readpage, 775 .readpage = btree_readpage,
791 .writepage = btree_writepage, 776 .writepage = btree_writepage,
@@ -863,8 +848,6 @@ struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
863 848
864 if (ret == 0) 849 if (ret == 0)
865 set_bit(EXTENT_BUFFER_UPTODATE, &buf->bflags); 850 set_bit(EXTENT_BUFFER_UPTODATE, &buf->bflags);
866 else
867 WARN_ON(1);
868 return buf; 851 return buf;
869 852
870} 853}
@@ -1273,11 +1256,7 @@ static int btrfs_congested_fn(void *congested_data, int bdi_bits)
1273 int ret = 0; 1256 int ret = 0;
1274 struct btrfs_device *device; 1257 struct btrfs_device *device;
1275 struct backing_dev_info *bdi; 1258 struct backing_dev_info *bdi;
1276#if 0 1259
1277 if ((bdi_bits & (1 << BDI_write_congested)) &&
1278 btrfs_congested_async(info, 0))
1279 return 1;
1280#endif
1281 list_for_each_entry(device, &info->fs_devices->devices, dev_list) { 1260 list_for_each_entry(device, &info->fs_devices->devices, dev_list) {
1282 if (!device->bdev) 1261 if (!device->bdev)
1283 continue; 1262 continue;
@@ -1599,6 +1578,7 @@ struct btrfs_root *open_ctree(struct super_block *sb,
1599 fs_info->btree_inode = new_inode(sb); 1578 fs_info->btree_inode = new_inode(sb);
1600 fs_info->btree_inode->i_ino = 1; 1579 fs_info->btree_inode->i_ino = 1;
1601 fs_info->btree_inode->i_nlink = 1; 1580 fs_info->btree_inode->i_nlink = 1;
1581 fs_info->metadata_ratio = 8;
1602 1582
1603 fs_info->thread_pool_size = min_t(unsigned long, 1583 fs_info->thread_pool_size = min_t(unsigned long,
1604 num_online_cpus() + 2, 8); 1584 num_online_cpus() + 2, 8);
@@ -1689,7 +1669,7 @@ struct btrfs_root *open_ctree(struct super_block *sb,
1689 if (features) { 1669 if (features) {
1690 printk(KERN_ERR "BTRFS: couldn't mount because of " 1670 printk(KERN_ERR "BTRFS: couldn't mount because of "
1691 "unsupported optional features (%Lx).\n", 1671 "unsupported optional features (%Lx).\n",
1692 features); 1672 (unsigned long long)features);
1693 err = -EINVAL; 1673 err = -EINVAL;
1694 goto fail_iput; 1674 goto fail_iput;
1695 } 1675 }
@@ -1699,7 +1679,7 @@ struct btrfs_root *open_ctree(struct super_block *sb,
1699 if (!(sb->s_flags & MS_RDONLY) && features) { 1679 if (!(sb->s_flags & MS_RDONLY) && features) {
1700 printk(KERN_ERR "BTRFS: couldn't mount RDWR because of " 1680 printk(KERN_ERR "BTRFS: couldn't mount RDWR because of "
1701 "unsupported option features (%Lx).\n", 1681 "unsupported option features (%Lx).\n",
1702 features); 1682 (unsigned long long)features);
1703 err = -EINVAL; 1683 err = -EINVAL;
1704 goto fail_iput; 1684 goto fail_iput;
1705 } 1685 }
@@ -2095,10 +2075,10 @@ static int write_dev_supers(struct btrfs_device *device,
2095 device->barriers = 0; 2075 device->barriers = 0;
2096 get_bh(bh); 2076 get_bh(bh);
2097 lock_buffer(bh); 2077 lock_buffer(bh);
2098 ret = submit_bh(WRITE, bh); 2078 ret = submit_bh(WRITE_SYNC, bh);
2099 } 2079 }
2100 } else { 2080 } else {
2101 ret = submit_bh(WRITE, bh); 2081 ret = submit_bh(WRITE_SYNC, bh);
2102 } 2082 }
2103 2083
2104 if (!ret && wait) { 2084 if (!ret && wait) {
@@ -2291,7 +2271,7 @@ int close_ctree(struct btrfs_root *root)
2291 2271
2292 if (fs_info->delalloc_bytes) { 2272 if (fs_info->delalloc_bytes) {
2293 printk(KERN_INFO "btrfs: at unmount delalloc count %llu\n", 2273 printk(KERN_INFO "btrfs: at unmount delalloc count %llu\n",
2294 fs_info->delalloc_bytes); 2274 (unsigned long long)fs_info->delalloc_bytes);
2295 } 2275 }
2296 if (fs_info->total_ref_cache_size) { 2276 if (fs_info->total_ref_cache_size) {
2297 printk(KERN_INFO "btrfs: at umount reference cache size %llu\n", 2277 printk(KERN_INFO "btrfs: at umount reference cache size %llu\n",
@@ -2328,16 +2308,6 @@ int close_ctree(struct btrfs_root *root)
2328 btrfs_stop_workers(&fs_info->endio_write_workers); 2308 btrfs_stop_workers(&fs_info->endio_write_workers);
2329 btrfs_stop_workers(&fs_info->submit_workers); 2309 btrfs_stop_workers(&fs_info->submit_workers);
2330 2310
2331#if 0
2332 while (!list_empty(&fs_info->hashers)) {
2333 struct btrfs_hasher *hasher;
2334 hasher = list_entry(fs_info->hashers.next, struct btrfs_hasher,
2335 hashers);
2336 list_del(&hasher->hashers);
2337 crypto_free_hash(&fs_info->hash_tfm);
2338 kfree(hasher);
2339 }
2340#endif
2341 btrfs_close_devices(fs_info->fs_devices); 2311 btrfs_close_devices(fs_info->fs_devices);
2342 btrfs_mapping_tree_free(&fs_info->mapping_tree); 2312 btrfs_mapping_tree_free(&fs_info->mapping_tree);
2343 2313
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 178df4c67de4..3e2c7c738f23 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -312,7 +312,7 @@ btrfs_lookup_first_block_group(struct btrfs_fs_info *info, u64 bytenr)
312} 312}
313 313
314/* 314/*
315 * return the block group that contains teh given bytenr 315 * return the block group that contains the given bytenr
316 */ 316 */
317struct btrfs_block_group_cache *btrfs_lookup_block_group( 317struct btrfs_block_group_cache *btrfs_lookup_block_group(
318 struct btrfs_fs_info *info, 318 struct btrfs_fs_info *info,
@@ -1844,10 +1844,14 @@ again:
1844 printk(KERN_ERR "no space left, need %llu, %llu delalloc bytes" 1844 printk(KERN_ERR "no space left, need %llu, %llu delalloc bytes"
1845 ", %llu bytes_used, %llu bytes_reserved, " 1845 ", %llu bytes_used, %llu bytes_reserved, "
1846 "%llu bytes_pinned, %llu bytes_readonly, %llu may use" 1846 "%llu bytes_pinned, %llu bytes_readonly, %llu may use"
1847 "%llu total\n", bytes, data_sinfo->bytes_delalloc, 1847 "%llu total\n", (unsigned long long)bytes,
1848 data_sinfo->bytes_used, data_sinfo->bytes_reserved, 1848 (unsigned long long)data_sinfo->bytes_delalloc,
1849 data_sinfo->bytes_pinned, data_sinfo->bytes_readonly, 1849 (unsigned long long)data_sinfo->bytes_used,
1850 data_sinfo->bytes_may_use, data_sinfo->total_bytes); 1850 (unsigned long long)data_sinfo->bytes_reserved,
1851 (unsigned long long)data_sinfo->bytes_pinned,
1852 (unsigned long long)data_sinfo->bytes_readonly,
1853 (unsigned long long)data_sinfo->bytes_may_use,
1854 (unsigned long long)data_sinfo->total_bytes);
1851 return -ENOSPC; 1855 return -ENOSPC;
1852 } 1856 }
1853 data_sinfo->bytes_may_use += bytes; 1857 data_sinfo->bytes_may_use += bytes;
@@ -1918,15 +1922,29 @@ void btrfs_delalloc_free_space(struct btrfs_root *root, struct inode *inode,
1918 spin_unlock(&info->lock); 1922 spin_unlock(&info->lock);
1919} 1923}
1920 1924
1925static void force_metadata_allocation(struct btrfs_fs_info *info)
1926{
1927 struct list_head *head = &info->space_info;
1928 struct btrfs_space_info *found;
1929
1930 rcu_read_lock();
1931 list_for_each_entry_rcu(found, head, list) {
1932 if (found->flags & BTRFS_BLOCK_GROUP_METADATA)
1933 found->force_alloc = 1;
1934 }
1935 rcu_read_unlock();
1936}
1937
1921static int do_chunk_alloc(struct btrfs_trans_handle *trans, 1938static int do_chunk_alloc(struct btrfs_trans_handle *trans,
1922 struct btrfs_root *extent_root, u64 alloc_bytes, 1939 struct btrfs_root *extent_root, u64 alloc_bytes,
1923 u64 flags, int force) 1940 u64 flags, int force)
1924{ 1941{
1925 struct btrfs_space_info *space_info; 1942 struct btrfs_space_info *space_info;
1943 struct btrfs_fs_info *fs_info = extent_root->fs_info;
1926 u64 thresh; 1944 u64 thresh;
1927 int ret = 0; 1945 int ret = 0;
1928 1946
1929 mutex_lock(&extent_root->fs_info->chunk_mutex); 1947 mutex_lock(&fs_info->chunk_mutex);
1930 1948
1931 flags = btrfs_reduce_alloc_profile(extent_root, flags); 1949 flags = btrfs_reduce_alloc_profile(extent_root, flags);
1932 1950
@@ -1958,6 +1976,18 @@ static int do_chunk_alloc(struct btrfs_trans_handle *trans,
1958 } 1976 }
1959 spin_unlock(&space_info->lock); 1977 spin_unlock(&space_info->lock);
1960 1978
1979 /*
1980 * if we're doing a data chunk, go ahead and make sure that
1981 * we keep a reasonable number of metadata chunks allocated in the
1982 * FS as well.
1983 */
1984 if (flags & BTRFS_BLOCK_GROUP_DATA) {
1985 fs_info->data_chunk_allocations++;
1986 if (!(fs_info->data_chunk_allocations %
1987 fs_info->metadata_ratio))
1988 force_metadata_allocation(fs_info);
1989 }
1990
1961 ret = btrfs_alloc_chunk(trans, extent_root, flags); 1991 ret = btrfs_alloc_chunk(trans, extent_root, flags);
1962 if (ret) 1992 if (ret)
1963 space_info->full = 1; 1993 space_info->full = 1;
@@ -2798,9 +2828,12 @@ static void dump_space_info(struct btrfs_space_info *info, u64 bytes)
2798 info->bytes_pinned - info->bytes_reserved), 2828 info->bytes_pinned - info->bytes_reserved),
2799 (info->full) ? "" : "not "); 2829 (info->full) ? "" : "not ");
2800 printk(KERN_INFO "space_info total=%llu, pinned=%llu, delalloc=%llu," 2830 printk(KERN_INFO "space_info total=%llu, pinned=%llu, delalloc=%llu,"
2801 " may_use=%llu, used=%llu\n", info->total_bytes, 2831 " may_use=%llu, used=%llu\n",
2802 info->bytes_pinned, info->bytes_delalloc, info->bytes_may_use, 2832 (unsigned long long)info->total_bytes,
2803 info->bytes_used); 2833 (unsigned long long)info->bytes_pinned,
2834 (unsigned long long)info->bytes_delalloc,
2835 (unsigned long long)info->bytes_may_use,
2836 (unsigned long long)info->bytes_used);
2804 2837
2805 down_read(&info->groups_sem); 2838 down_read(&info->groups_sem);
2806 list_for_each_entry(cache, &info->block_groups, list) { 2839 list_for_each_entry(cache, &info->block_groups, list) {
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index eb2bee8b7fbf..fe9eb990e443 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -17,12 +17,6 @@
17#include "ctree.h" 17#include "ctree.h"
18#include "btrfs_inode.h" 18#include "btrfs_inode.h"
19 19
20/* temporary define until extent_map moves out of btrfs */
21struct kmem_cache *btrfs_cache_create(const char *name, size_t size,
22 unsigned long extra_flags,
23 void (*ctor)(void *, struct kmem_cache *,
24 unsigned long));
25
26static struct kmem_cache *extent_state_cache; 20static struct kmem_cache *extent_state_cache;
27static struct kmem_cache *extent_buffer_cache; 21static struct kmem_cache *extent_buffer_cache;
28 22
@@ -50,20 +44,23 @@ struct extent_page_data {
50 /* tells writepage not to lock the state bits for this range 44 /* tells writepage not to lock the state bits for this range
51 * it still does the unlocking 45 * it still does the unlocking
52 */ 46 */
53 int extent_locked; 47 unsigned int extent_locked:1;
48
49 /* tells the submit_bio code to use a WRITE_SYNC */
50 unsigned int sync_io:1;
54}; 51};
55 52
56int __init extent_io_init(void) 53int __init extent_io_init(void)
57{ 54{
58 extent_state_cache = btrfs_cache_create("extent_state", 55 extent_state_cache = kmem_cache_create("extent_state",
59 sizeof(struct extent_state), 0, 56 sizeof(struct extent_state), 0,
60 NULL); 57 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
61 if (!extent_state_cache) 58 if (!extent_state_cache)
62 return -ENOMEM; 59 return -ENOMEM;
63 60
64 extent_buffer_cache = btrfs_cache_create("extent_buffers", 61 extent_buffer_cache = kmem_cache_create("extent_buffers",
65 sizeof(struct extent_buffer), 0, 62 sizeof(struct extent_buffer), 0,
66 NULL); 63 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
67 if (!extent_buffer_cache) 64 if (!extent_buffer_cache)
68 goto free_state_cache; 65 goto free_state_cache;
69 return 0; 66 return 0;
@@ -1404,69 +1401,6 @@ out:
1404 return total_bytes; 1401 return total_bytes;
1405} 1402}
1406 1403
1407#if 0
1408/*
1409 * helper function to lock both pages and extents in the tree.
1410 * pages must be locked first.
1411 */
1412static int lock_range(struct extent_io_tree *tree, u64 start, u64 end)
1413{
1414 unsigned long index = start >> PAGE_CACHE_SHIFT;
1415 unsigned long end_index = end >> PAGE_CACHE_SHIFT;
1416 struct page *page;
1417 int err;
1418
1419 while (index <= end_index) {
1420 page = grab_cache_page(tree->mapping, index);
1421 if (!page) {
1422 err = -ENOMEM;
1423 goto failed;
1424 }
1425 if (IS_ERR(page)) {
1426 err = PTR_ERR(page);
1427 goto failed;
1428 }
1429 index++;
1430 }
1431 lock_extent(tree, start, end, GFP_NOFS);
1432 return 0;
1433
1434failed:
1435 /*
1436 * we failed above in getting the page at 'index', so we undo here
1437 * up to but not including the page at 'index'
1438 */
1439 end_index = index;
1440 index = start >> PAGE_CACHE_SHIFT;
1441 while (index < end_index) {
1442 page = find_get_page(tree->mapping, index);
1443 unlock_page(page);
1444 page_cache_release(page);
1445 index++;
1446 }
1447 return err;
1448}
1449
1450/*
1451 * helper function to unlock both pages and extents in the tree.
1452 */
1453static int unlock_range(struct extent_io_tree *tree, u64 start, u64 end)
1454{
1455 unsigned long index = start >> PAGE_CACHE_SHIFT;
1456 unsigned long end_index = end >> PAGE_CACHE_SHIFT;
1457 struct page *page;
1458
1459 while (index <= end_index) {
1460 page = find_get_page(tree->mapping, index);
1461 unlock_page(page);
1462 page_cache_release(page);
1463 index++;
1464 }
1465 unlock_extent(tree, start, end, GFP_NOFS);
1466 return 0;
1467}
1468#endif
1469
1470/* 1404/*
1471 * set the private field for a given byte offset in the tree. If there isn't 1405 * set the private field for a given byte offset in the tree. If there isn't
1472 * an extent_state there already, this does nothing. 1406 * an extent_state there already, this does nothing.
@@ -2101,6 +2035,16 @@ int extent_read_full_page(struct extent_io_tree *tree, struct page *page,
2101 return ret; 2035 return ret;
2102} 2036}
2103 2037
2038static noinline void update_nr_written(struct page *page,
2039 struct writeback_control *wbc,
2040 unsigned long nr_written)
2041{
2042 wbc->nr_to_write -= nr_written;
2043 if (wbc->range_cyclic || (wbc->nr_to_write > 0 &&
2044 wbc->range_start == 0 && wbc->range_end == LLONG_MAX))
2045 page->mapping->writeback_index = page->index + nr_written;
2046}
2047
2104/* 2048/*
2105 * the writepage semantics are similar to regular writepage. extent 2049 * the writepage semantics are similar to regular writepage. extent
2106 * records are inserted to lock ranges in the tree, and as dirty areas 2050 * records are inserted to lock ranges in the tree, and as dirty areas
@@ -2136,8 +2080,14 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
2136 u64 delalloc_end; 2080 u64 delalloc_end;
2137 int page_started; 2081 int page_started;
2138 int compressed; 2082 int compressed;
2083 int write_flags;
2139 unsigned long nr_written = 0; 2084 unsigned long nr_written = 0;
2140 2085
2086 if (wbc->sync_mode == WB_SYNC_ALL)
2087 write_flags = WRITE_SYNC_PLUG;
2088 else
2089 write_flags = WRITE;
2090
2141 WARN_ON(!PageLocked(page)); 2091 WARN_ON(!PageLocked(page));
2142 pg_offset = i_size & (PAGE_CACHE_SIZE - 1); 2092 pg_offset = i_size & (PAGE_CACHE_SIZE - 1);
2143 if (page->index > end_index || 2093 if (page->index > end_index ||
@@ -2164,6 +2114,12 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
2164 delalloc_end = 0; 2114 delalloc_end = 0;
2165 page_started = 0; 2115 page_started = 0;
2166 if (!epd->extent_locked) { 2116 if (!epd->extent_locked) {
2117 /*
2118 * make sure the wbc mapping index is at least updated
2119 * to this page.
2120 */
2121 update_nr_written(page, wbc, 0);
2122
2167 while (delalloc_end < page_end) { 2123 while (delalloc_end < page_end) {
2168 nr_delalloc = find_lock_delalloc_range(inode, tree, 2124 nr_delalloc = find_lock_delalloc_range(inode, tree,
2169 page, 2125 page,
@@ -2185,7 +2141,13 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
2185 */ 2141 */
2186 if (page_started) { 2142 if (page_started) {
2187 ret = 0; 2143 ret = 0;
2188 goto update_nr_written; 2144 /*
2145 * we've unlocked the page, so we can't update
2146 * the mapping's writeback index, just update
2147 * nr_to_write.
2148 */
2149 wbc->nr_to_write -= nr_written;
2150 goto done_unlocked;
2189 } 2151 }
2190 } 2152 }
2191 lock_extent(tree, start, page_end, GFP_NOFS); 2153 lock_extent(tree, start, page_end, GFP_NOFS);
@@ -2198,13 +2160,18 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
2198 if (ret == -EAGAIN) { 2160 if (ret == -EAGAIN) {
2199 unlock_extent(tree, start, page_end, GFP_NOFS); 2161 unlock_extent(tree, start, page_end, GFP_NOFS);
2200 redirty_page_for_writepage(wbc, page); 2162 redirty_page_for_writepage(wbc, page);
2163 update_nr_written(page, wbc, nr_written);
2201 unlock_page(page); 2164 unlock_page(page);
2202 ret = 0; 2165 ret = 0;
2203 goto update_nr_written; 2166 goto done_unlocked;
2204 } 2167 }
2205 } 2168 }
2206 2169
2207 nr_written++; 2170 /*
2171 * we don't want to touch the inode after unlocking the page,
2172 * so we update the mapping writeback index now
2173 */
2174 update_nr_written(page, wbc, nr_written + 1);
2208 2175
2209 end = page_end; 2176 end = page_end;
2210 if (test_range_bit(tree, start, page_end, EXTENT_DELALLOC, 0)) 2177 if (test_range_bit(tree, start, page_end, EXTENT_DELALLOC, 0))
@@ -2314,9 +2281,9 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
2314 (unsigned long long)end); 2281 (unsigned long long)end);
2315 } 2282 }
2316 2283
2317 ret = submit_extent_page(WRITE, tree, page, sector, 2284 ret = submit_extent_page(write_flags, tree, page,
2318 iosize, pg_offset, bdev, 2285 sector, iosize, pg_offset,
2319 &epd->bio, max_nr, 2286 bdev, &epd->bio, max_nr,
2320 end_bio_extent_writepage, 2287 end_bio_extent_writepage,
2321 0, 0, 0); 2288 0, 0, 0);
2322 if (ret) 2289 if (ret)
@@ -2336,11 +2303,8 @@ done:
2336 unlock_extent(tree, unlock_start, page_end, GFP_NOFS); 2303 unlock_extent(tree, unlock_start, page_end, GFP_NOFS);
2337 unlock_page(page); 2304 unlock_page(page);
2338 2305
2339update_nr_written: 2306done_unlocked:
2340 wbc->nr_to_write -= nr_written; 2307
2341 if (wbc->range_cyclic || (wbc->nr_to_write > 0 &&
2342 wbc->range_start == 0 && wbc->range_end == LLONG_MAX))
2343 page->mapping->writeback_index = page->index + nr_written;
2344 return 0; 2308 return 0;
2345} 2309}
2346 2310
@@ -2460,15 +2424,23 @@ retry:
2460 return ret; 2424 return ret;
2461} 2425}
2462 2426
2463static noinline void flush_write_bio(void *data) 2427static void flush_epd_write_bio(struct extent_page_data *epd)
2464{ 2428{
2465 struct extent_page_data *epd = data;
2466 if (epd->bio) { 2429 if (epd->bio) {
2467 submit_one_bio(WRITE, epd->bio, 0, 0); 2430 if (epd->sync_io)
2431 submit_one_bio(WRITE_SYNC, epd->bio, 0, 0);
2432 else
2433 submit_one_bio(WRITE, epd->bio, 0, 0);
2468 epd->bio = NULL; 2434 epd->bio = NULL;
2469 } 2435 }
2470} 2436}
2471 2437
2438static noinline void flush_write_bio(void *data)
2439{
2440 struct extent_page_data *epd = data;
2441 flush_epd_write_bio(epd);
2442}
2443
2472int extent_write_full_page(struct extent_io_tree *tree, struct page *page, 2444int extent_write_full_page(struct extent_io_tree *tree, struct page *page,
2473 get_extent_t *get_extent, 2445 get_extent_t *get_extent,
2474 struct writeback_control *wbc) 2446 struct writeback_control *wbc)
@@ -2480,23 +2452,22 @@ int extent_write_full_page(struct extent_io_tree *tree, struct page *page,
2480 .tree = tree, 2452 .tree = tree,
2481 .get_extent = get_extent, 2453 .get_extent = get_extent,
2482 .extent_locked = 0, 2454 .extent_locked = 0,
2455 .sync_io = wbc->sync_mode == WB_SYNC_ALL,
2483 }; 2456 };
2484 struct writeback_control wbc_writepages = { 2457 struct writeback_control wbc_writepages = {
2485 .bdi = wbc->bdi, 2458 .bdi = wbc->bdi,
2486 .sync_mode = WB_SYNC_NONE, 2459 .sync_mode = wbc->sync_mode,
2487 .older_than_this = NULL, 2460 .older_than_this = NULL,
2488 .nr_to_write = 64, 2461 .nr_to_write = 64,
2489 .range_start = page_offset(page) + PAGE_CACHE_SIZE, 2462 .range_start = page_offset(page) + PAGE_CACHE_SIZE,
2490 .range_end = (loff_t)-1, 2463 .range_end = (loff_t)-1,
2491 }; 2464 };
2492 2465
2493
2494 ret = __extent_writepage(page, wbc, &epd); 2466 ret = __extent_writepage(page, wbc, &epd);
2495 2467
2496 extent_write_cache_pages(tree, mapping, &wbc_writepages, 2468 extent_write_cache_pages(tree, mapping, &wbc_writepages,
2497 __extent_writepage, &epd, flush_write_bio); 2469 __extent_writepage, &epd, flush_write_bio);
2498 if (epd.bio) 2470 flush_epd_write_bio(&epd);
2499 submit_one_bio(WRITE, epd.bio, 0, 0);
2500 return ret; 2471 return ret;
2501} 2472}
2502 2473
@@ -2515,6 +2486,7 @@ int extent_write_locked_range(struct extent_io_tree *tree, struct inode *inode,
2515 .tree = tree, 2486 .tree = tree,
2516 .get_extent = get_extent, 2487 .get_extent = get_extent,
2517 .extent_locked = 1, 2488 .extent_locked = 1,
2489 .sync_io = mode == WB_SYNC_ALL,
2518 }; 2490 };
2519 struct writeback_control wbc_writepages = { 2491 struct writeback_control wbc_writepages = {
2520 .bdi = inode->i_mapping->backing_dev_info, 2492 .bdi = inode->i_mapping->backing_dev_info,
@@ -2540,8 +2512,7 @@ int extent_write_locked_range(struct extent_io_tree *tree, struct inode *inode,
2540 start += PAGE_CACHE_SIZE; 2512 start += PAGE_CACHE_SIZE;
2541 } 2513 }
2542 2514
2543 if (epd.bio) 2515 flush_epd_write_bio(&epd);
2544 submit_one_bio(WRITE, epd.bio, 0, 0);
2545 return ret; 2516 return ret;
2546} 2517}
2547 2518
@@ -2556,13 +2527,13 @@ int extent_writepages(struct extent_io_tree *tree,
2556 .tree = tree, 2527 .tree = tree,
2557 .get_extent = get_extent, 2528 .get_extent = get_extent,
2558 .extent_locked = 0, 2529 .extent_locked = 0,
2530 .sync_io = wbc->sync_mode == WB_SYNC_ALL,
2559 }; 2531 };
2560 2532
2561 ret = extent_write_cache_pages(tree, mapping, wbc, 2533 ret = extent_write_cache_pages(tree, mapping, wbc,
2562 __extent_writepage, &epd, 2534 __extent_writepage, &epd,
2563 flush_write_bio); 2535 flush_write_bio);
2564 if (epd.bio) 2536 flush_epd_write_bio(&epd);
2565 submit_one_bio(WRITE, epd.bio, 0, 0);
2566 return ret; 2537 return ret;
2567} 2538}
2568 2539
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
index b187917b36fa..30c9365861e6 100644
--- a/fs/btrfs/extent_map.c
+++ b/fs/btrfs/extent_map.c
@@ -6,19 +6,14 @@
6#include <linux/hardirq.h> 6#include <linux/hardirq.h>
7#include "extent_map.h" 7#include "extent_map.h"
8 8
9/* temporary define until extent_map moves out of btrfs */
10struct kmem_cache *btrfs_cache_create(const char *name, size_t size,
11 unsigned long extra_flags,
12 void (*ctor)(void *, struct kmem_cache *,
13 unsigned long));
14 9
15static struct kmem_cache *extent_map_cache; 10static struct kmem_cache *extent_map_cache;
16 11
17int __init extent_map_init(void) 12int __init extent_map_init(void)
18{ 13{
19 extent_map_cache = btrfs_cache_create("extent_map", 14 extent_map_cache = kmem_cache_create("extent_map",
20 sizeof(struct extent_map), 0, 15 sizeof(struct extent_map), 0,
21 NULL); 16 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
22 if (!extent_map_cache) 17 if (!extent_map_cache)
23 return -ENOMEM; 18 return -ENOMEM;
24 return 0; 19 return 0;
@@ -43,7 +38,6 @@ void extent_map_tree_init(struct extent_map_tree *tree, gfp_t mask)
43 tree->map.rb_node = NULL; 38 tree->map.rb_node = NULL;
44 spin_lock_init(&tree->lock); 39 spin_lock_init(&tree->lock);
45} 40}
46EXPORT_SYMBOL(extent_map_tree_init);
47 41
48/** 42/**
49 * alloc_extent_map - allocate new extent map structure 43 * alloc_extent_map - allocate new extent map structure
@@ -64,7 +58,6 @@ struct extent_map *alloc_extent_map(gfp_t mask)
64 atomic_set(&em->refs, 1); 58 atomic_set(&em->refs, 1);
65 return em; 59 return em;
66} 60}
67EXPORT_SYMBOL(alloc_extent_map);
68 61
69/** 62/**
70 * free_extent_map - drop reference count of an extent_map 63 * free_extent_map - drop reference count of an extent_map
@@ -83,7 +76,6 @@ void free_extent_map(struct extent_map *em)
83 kmem_cache_free(extent_map_cache, em); 76 kmem_cache_free(extent_map_cache, em);
84 } 77 }
85} 78}
86EXPORT_SYMBOL(free_extent_map);
87 79
88static struct rb_node *tree_insert(struct rb_root *root, u64 offset, 80static struct rb_node *tree_insert(struct rb_root *root, u64 offset,
89 struct rb_node *node) 81 struct rb_node *node)
@@ -264,7 +256,6 @@ int add_extent_mapping(struct extent_map_tree *tree,
264out: 256out:
265 return ret; 257 return ret;
266} 258}
267EXPORT_SYMBOL(add_extent_mapping);
268 259
269/* simple helper to do math around the end of an extent, handling wrap */ 260/* simple helper to do math around the end of an extent, handling wrap */
270static u64 range_end(u64 start, u64 len) 261static u64 range_end(u64 start, u64 len)
@@ -326,7 +317,6 @@ found:
326out: 317out:
327 return em; 318 return em;
328} 319}
329EXPORT_SYMBOL(lookup_extent_mapping);
330 320
331/** 321/**
332 * remove_extent_mapping - removes an extent_map from the extent tree 322 * remove_extent_mapping - removes an extent_map from the extent tree
@@ -346,4 +336,3 @@ int remove_extent_mapping(struct extent_map_tree *tree, struct extent_map *em)
346 em->in_tree = 0; 336 em->in_tree = 0;
347 return ret; 337 return ret;
348} 338}
349EXPORT_SYMBOL(remove_extent_mapping);
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 9c9fb46ccd08..1d51dc38bb49 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -272,83 +272,6 @@ int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end,
272 return 0; 272 return 0;
273} 273}
274 274
275int btrfs_check_file(struct btrfs_root *root, struct inode *inode)
276{
277 return 0;
278#if 0
279 struct btrfs_path *path;
280 struct btrfs_key found_key;
281 struct extent_buffer *leaf;
282 struct btrfs_file_extent_item *extent;
283 u64 last_offset = 0;
284 int nritems;
285 int slot;
286 int found_type;
287 int ret;
288 int err = 0;
289 u64 extent_end = 0;
290
291 path = btrfs_alloc_path();
292 ret = btrfs_lookup_file_extent(NULL, root, path, inode->i_ino,
293 last_offset, 0);
294 while (1) {
295 nritems = btrfs_header_nritems(path->nodes[0]);
296 if (path->slots[0] >= nritems) {
297 ret = btrfs_next_leaf(root, path);
298 if (ret)
299 goto out;
300 nritems = btrfs_header_nritems(path->nodes[0]);
301 }
302 slot = path->slots[0];
303 leaf = path->nodes[0];
304 btrfs_item_key_to_cpu(leaf, &found_key, slot);
305 if (found_key.objectid != inode->i_ino)
306 break;
307 if (found_key.type != BTRFS_EXTENT_DATA_KEY)
308 goto out;
309
310 if (found_key.offset < last_offset) {
311 WARN_ON(1);
312 btrfs_print_leaf(root, leaf);
313 printk(KERN_ERR "inode %lu found offset %llu "
314 "expected %llu\n", inode->i_ino,
315 (unsigned long long)found_key.offset,
316 (unsigned long long)last_offset);
317 err = 1;
318 goto out;
319 }
320 extent = btrfs_item_ptr(leaf, slot,
321 struct btrfs_file_extent_item);
322 found_type = btrfs_file_extent_type(leaf, extent);
323 if (found_type == BTRFS_FILE_EXTENT_REG) {
324 extent_end = found_key.offset +
325 btrfs_file_extent_num_bytes(leaf, extent);
326 } else if (found_type == BTRFS_FILE_EXTENT_INLINE) {
327 struct btrfs_item *item;
328 item = btrfs_item_nr(leaf, slot);
329 extent_end = found_key.offset +
330 btrfs_file_extent_inline_len(leaf, extent);
331 extent_end = (extent_end + root->sectorsize - 1) &
332 ~((u64)root->sectorsize - 1);
333 }
334 last_offset = extent_end;
335 path->slots[0]++;
336 }
337 if (0 && last_offset < inode->i_size) {
338 WARN_ON(1);
339 btrfs_print_leaf(root, leaf);
340 printk(KERN_ERR "inode %lu found offset %llu size %llu\n",
341 inode->i_ino, (unsigned long long)last_offset,
342 (unsigned long long)inode->i_size);
343 err = 1;
344
345 }
346out:
347 btrfs_free_path(path);
348 return err;
349#endif
350}
351
352/* 275/*
353 * this is very complex, but the basic idea is to drop all extents 276 * this is very complex, but the basic idea is to drop all extents
354 * in the range start - end. hint_block is filled in with a block number 277 * in the range start - end. hint_block is filled in with a block number
@@ -363,15 +286,16 @@ out:
363 */ 286 */
364noinline int btrfs_drop_extents(struct btrfs_trans_handle *trans, 287noinline int btrfs_drop_extents(struct btrfs_trans_handle *trans,
365 struct btrfs_root *root, struct inode *inode, 288 struct btrfs_root *root, struct inode *inode,
366 u64 start, u64 end, u64 inline_limit, u64 *hint_byte) 289 u64 start, u64 end, u64 locked_end,
290 u64 inline_limit, u64 *hint_byte)
367{ 291{
368 u64 extent_end = 0; 292 u64 extent_end = 0;
369 u64 locked_end = end;
370 u64 search_start = start; 293 u64 search_start = start;
371 u64 leaf_start; 294 u64 leaf_start;
372 u64 ram_bytes = 0; 295 u64 ram_bytes = 0;
373 u64 orig_parent = 0; 296 u64 orig_parent = 0;
374 u64 disk_bytenr = 0; 297 u64 disk_bytenr = 0;
298 u64 orig_locked_end = locked_end;
375 u8 compression; 299 u8 compression;
376 u8 encryption; 300 u8 encryption;
377 u16 other_encoding = 0; 301 u16 other_encoding = 0;
@@ -684,11 +608,10 @@ next_slot:
684 } 608 }
685out: 609out:
686 btrfs_free_path(path); 610 btrfs_free_path(path);
687 if (locked_end > end) { 611 if (locked_end > orig_locked_end) {
688 unlock_extent(&BTRFS_I(inode)->io_tree, end, locked_end - 1, 612 unlock_extent(&BTRFS_I(inode)->io_tree, orig_locked_end,
689 GFP_NOFS); 613 locked_end - 1, GFP_NOFS);
690 } 614 }
691 btrfs_check_file(root, inode);
692 return ret; 615 return ret;
693} 616}
694 617
@@ -830,7 +753,7 @@ again:
830 753
831 ret = btrfs_del_items(trans, root, path, del_slot, del_nr); 754 ret = btrfs_del_items(trans, root, path, del_slot, del_nr);
832 BUG_ON(ret); 755 BUG_ON(ret);
833 goto done; 756 goto release;
834 } else if (split == start) { 757 } else if (split == start) {
835 if (locked_end < extent_end) { 758 if (locked_end < extent_end) {
836 ret = try_lock_extent(&BTRFS_I(inode)->io_tree, 759 ret = try_lock_extent(&BTRFS_I(inode)->io_tree,
@@ -926,6 +849,8 @@ again:
926 } 849 }
927done: 850done:
928 btrfs_mark_buffer_dirty(leaf); 851 btrfs_mark_buffer_dirty(leaf);
852
853release:
929 btrfs_release_path(root, path); 854 btrfs_release_path(root, path);
930 if (split_end && split == start) { 855 if (split_end && split == start) {
931 split = end; 856 split = end;
@@ -1131,7 +1056,7 @@ static ssize_t btrfs_file_write(struct file *file, const char __user *buf,
1131 if (will_write) { 1056 if (will_write) {
1132 btrfs_fdatawrite_range(inode->i_mapping, pos, 1057 btrfs_fdatawrite_range(inode->i_mapping, pos,
1133 pos + write_bytes - 1, 1058 pos + write_bytes - 1,
1134 WB_SYNC_NONE); 1059 WB_SYNC_ALL);
1135 } else { 1060 } else {
1136 balance_dirty_pages_ratelimited_nr(inode->i_mapping, 1061 balance_dirty_pages_ratelimited_nr(inode->i_mapping,
1137 num_pages); 1062 num_pages);
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 768b9523662d..0bc93657b460 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -332,13 +332,17 @@ int btrfs_remove_free_space(struct btrfs_block_group_cache *block_group,
332 printk(KERN_ERR "couldn't find space %llu to free\n", 332 printk(KERN_ERR "couldn't find space %llu to free\n",
333 (unsigned long long)offset); 333 (unsigned long long)offset);
334 printk(KERN_ERR "cached is %d, offset %llu bytes %llu\n", 334 printk(KERN_ERR "cached is %d, offset %llu bytes %llu\n",
335 block_group->cached, block_group->key.objectid, 335 block_group->cached,
336 block_group->key.offset); 336 (unsigned long long)block_group->key.objectid,
337 (unsigned long long)block_group->key.offset);
337 btrfs_dump_free_space(block_group, bytes); 338 btrfs_dump_free_space(block_group, bytes);
338 } else if (info) { 339 } else if (info) {
339 printk(KERN_ERR "hmm, found offset=%llu bytes=%llu, " 340 printk(KERN_ERR "hmm, found offset=%llu bytes=%llu, "
340 "but wanted offset=%llu bytes=%llu\n", 341 "but wanted offset=%llu bytes=%llu\n",
341 info->offset, info->bytes, offset, bytes); 342 (unsigned long long)info->offset,
343 (unsigned long long)info->bytes,
344 (unsigned long long)offset,
345 (unsigned long long)bytes);
342 } 346 }
343 WARN_ON(1); 347 WARN_ON(1);
344 } 348 }
@@ -357,8 +361,9 @@ void btrfs_dump_free_space(struct btrfs_block_group_cache *block_group,
357 info = rb_entry(n, struct btrfs_free_space, offset_index); 361 info = rb_entry(n, struct btrfs_free_space, offset_index);
358 if (info->bytes >= bytes) 362 if (info->bytes >= bytes)
359 count++; 363 count++;
360 printk(KERN_ERR "entry offset %llu, bytes %llu\n", info->offset, 364 printk(KERN_ERR "entry offset %llu, bytes %llu\n",
361 info->bytes); 365 (unsigned long long)info->offset,
366 (unsigned long long)info->bytes);
362 } 367 }
363 printk(KERN_INFO "%d blocks of free space at or bigger than bytes is" 368 printk(KERN_INFO "%d blocks of free space at or bigger than bytes is"
364 "\n", count); 369 "\n", count);
diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c
index cc7334d833c9..9abbced1123d 100644
--- a/fs/btrfs/inode-map.c
+++ b/fs/btrfs/inode-map.c
@@ -79,7 +79,7 @@ int btrfs_find_free_objectid(struct btrfs_trans_handle *trans,
79 } 79 }
80 path = btrfs_alloc_path(); 80 path = btrfs_alloc_path();
81 BUG_ON(!path); 81 BUG_ON(!path);
82 search_start = max(search_start, BTRFS_FIRST_FREE_OBJECTID); 82 search_start = max(search_start, (u64)BTRFS_FIRST_FREE_OBJECTID);
83 search_key.objectid = search_start; 83 search_key.objectid = search_start;
84 search_key.type = 0; 84 search_key.type = 0;
85 search_key.offset = 0; 85 search_key.offset = 0;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a0d1dd492a58..1c8b0190d031 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -70,7 +70,6 @@ static struct extent_io_ops btrfs_extent_io_ops;
70static struct kmem_cache *btrfs_inode_cachep; 70static struct kmem_cache *btrfs_inode_cachep;
71struct kmem_cache *btrfs_trans_handle_cachep; 71struct kmem_cache *btrfs_trans_handle_cachep;
72struct kmem_cache *btrfs_transaction_cachep; 72struct kmem_cache *btrfs_transaction_cachep;
73struct kmem_cache *btrfs_bit_radix_cachep;
74struct kmem_cache *btrfs_path_cachep; 73struct kmem_cache *btrfs_path_cachep;
75 74
76#define S_SHIFT 12 75#define S_SHIFT 12
@@ -234,7 +233,7 @@ static noinline int cow_file_range_inline(struct btrfs_trans_handle *trans,
234 } 233 }
235 234
236 ret = btrfs_drop_extents(trans, root, inode, start, 235 ret = btrfs_drop_extents(trans, root, inode, start,
237 aligned_end, start, &hint_byte); 236 aligned_end, aligned_end, start, &hint_byte);
238 BUG_ON(ret); 237 BUG_ON(ret);
239 238
240 if (isize > actual_end) 239 if (isize > actual_end)
@@ -1439,6 +1438,7 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
1439 struct inode *inode, u64 file_pos, 1438 struct inode *inode, u64 file_pos,
1440 u64 disk_bytenr, u64 disk_num_bytes, 1439 u64 disk_bytenr, u64 disk_num_bytes,
1441 u64 num_bytes, u64 ram_bytes, 1440 u64 num_bytes, u64 ram_bytes,
1441 u64 locked_end,
1442 u8 compression, u8 encryption, 1442 u8 compression, u8 encryption,
1443 u16 other_encoding, int extent_type) 1443 u16 other_encoding, int extent_type)
1444{ 1444{
@@ -1455,7 +1455,8 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
1455 1455
1456 path->leave_spinning = 1; 1456 path->leave_spinning = 1;
1457 ret = btrfs_drop_extents(trans, root, inode, file_pos, 1457 ret = btrfs_drop_extents(trans, root, inode, file_pos,
1458 file_pos + num_bytes, file_pos, &hint); 1458 file_pos + num_bytes, locked_end,
1459 file_pos, &hint);
1459 BUG_ON(ret); 1460 BUG_ON(ret);
1460 1461
1461 ins.objectid = inode->i_ino; 1462 ins.objectid = inode->i_ino;
@@ -1590,6 +1591,8 @@ static int btrfs_finish_ordered_io(struct inode *inode, u64 start, u64 end)
1590 ordered_extent->disk_len, 1591 ordered_extent->disk_len,
1591 ordered_extent->len, 1592 ordered_extent->len,
1592 ordered_extent->len, 1593 ordered_extent->len,
1594 ordered_extent->file_offset +
1595 ordered_extent->len,
1593 compressed, 0, 0, 1596 compressed, 0, 0,
1594 BTRFS_FILE_EXTENT_REG); 1597 BTRFS_FILE_EXTENT_REG);
1595 BUG_ON(ret); 1598 BUG_ON(ret);
@@ -1819,10 +1822,12 @@ good:
1819 return 0; 1822 return 0;
1820 1823
1821zeroit: 1824zeroit:
1822 printk(KERN_INFO "btrfs csum failed ino %lu off %llu csum %u " 1825 if (printk_ratelimit()) {
1823 "private %llu\n", page->mapping->host->i_ino, 1826 printk(KERN_INFO "btrfs csum failed ino %lu off %llu csum %u "
1824 (unsigned long long)start, csum, 1827 "private %llu\n", page->mapping->host->i_ino,
1825 (unsigned long long)private); 1828 (unsigned long long)start, csum,
1829 (unsigned long long)private);
1830 }
1826 memset(kaddr + offset, 1, end - start + 1); 1831 memset(kaddr + offset, 1, end - start + 1);
1827 flush_dcache_page(page); 1832 flush_dcache_page(page);
1828 kunmap_atomic(kaddr, KM_USER0); 1833 kunmap_atomic(kaddr, KM_USER0);
@@ -2011,6 +2016,57 @@ void btrfs_orphan_cleanup(struct btrfs_root *root)
2011} 2016}
2012 2017
2013/* 2018/*
2019 * very simple check to peek ahead in the leaf looking for xattrs. If we
2020 * don't find any xattrs, we know there can't be any acls.
2021 *
2022 * slot is the slot the inode is in, objectid is the objectid of the inode
2023 */
2024static noinline int acls_after_inode_item(struct extent_buffer *leaf,
2025 int slot, u64 objectid)
2026{
2027 u32 nritems = btrfs_header_nritems(leaf);
2028 struct btrfs_key found_key;
2029 int scanned = 0;
2030
2031 slot++;
2032 while (slot < nritems) {
2033 btrfs_item_key_to_cpu(leaf, &found_key, slot);
2034
2035 /* we found a different objectid, there must not be acls */
2036 if (found_key.objectid != objectid)
2037 return 0;
2038
2039 /* we found an xattr, assume we've got an acl */
2040 if (found_key.type == BTRFS_XATTR_ITEM_KEY)
2041 return 1;
2042
2043 /*
2044 * we found a key greater than an xattr key, there can't
2045 * be any acls later on
2046 */
2047 if (found_key.type > BTRFS_XATTR_ITEM_KEY)
2048 return 0;
2049
2050 slot++;
2051 scanned++;
2052
2053 /*
2054 * it goes inode, inode backrefs, xattrs, extents,
2055 * so if there are a ton of hard links to an inode there can
2056 * be a lot of backrefs. Don't waste time searching too hard,
2057 * this is just an optimization
2058 */
2059 if (scanned >= 8)
2060 break;
2061 }
2062 /* we hit the end of the leaf before we found an xattr or
2063 * something larger than an xattr. We have to assume the inode
2064 * has acls
2065 */
2066 return 1;
2067}
2068
2069/*
2014 * read an inode from the btree into the in-memory inode 2070 * read an inode from the btree into the in-memory inode
2015 */ 2071 */
2016void btrfs_read_locked_inode(struct inode *inode) 2072void btrfs_read_locked_inode(struct inode *inode)
@@ -2021,6 +2077,7 @@ void btrfs_read_locked_inode(struct inode *inode)
2021 struct btrfs_timespec *tspec; 2077 struct btrfs_timespec *tspec;
2022 struct btrfs_root *root = BTRFS_I(inode)->root; 2078 struct btrfs_root *root = BTRFS_I(inode)->root;
2023 struct btrfs_key location; 2079 struct btrfs_key location;
2080 int maybe_acls;
2024 u64 alloc_group_block; 2081 u64 alloc_group_block;
2025 u32 rdev; 2082 u32 rdev;
2026 int ret; 2083 int ret;
@@ -2067,6 +2124,16 @@ void btrfs_read_locked_inode(struct inode *inode)
2067 2124
2068 alloc_group_block = btrfs_inode_block_group(leaf, inode_item); 2125 alloc_group_block = btrfs_inode_block_group(leaf, inode_item);
2069 2126
2127 /*
2128 * try to precache a NULL acl entry for files that don't have
2129 * any xattrs or acls
2130 */
2131 maybe_acls = acls_after_inode_item(leaf, path->slots[0], inode->i_ino);
2132 if (!maybe_acls) {
2133 BTRFS_I(inode)->i_acl = NULL;
2134 BTRFS_I(inode)->i_default_acl = NULL;
2135 }
2136
2070 BTRFS_I(inode)->block_group = btrfs_find_block_group(root, 0, 2137 BTRFS_I(inode)->block_group = btrfs_find_block_group(root, 0,
2071 alloc_group_block, 0); 2138 alloc_group_block, 0);
2072 btrfs_free_path(path); 2139 btrfs_free_path(path);
@@ -2877,6 +2944,7 @@ int btrfs_cont_expand(struct inode *inode, loff_t size)
2877 err = btrfs_drop_extents(trans, root, inode, 2944 err = btrfs_drop_extents(trans, root, inode,
2878 cur_offset, 2945 cur_offset,
2879 cur_offset + hole_size, 2946 cur_offset + hole_size,
2947 block_end,
2880 cur_offset, &hint_byte); 2948 cur_offset, &hint_byte);
2881 if (err) 2949 if (err)
2882 break; 2950 break;
@@ -3041,8 +3109,8 @@ static noinline void init_btrfs_i(struct inode *inode)
3041{ 3109{
3042 struct btrfs_inode *bi = BTRFS_I(inode); 3110 struct btrfs_inode *bi = BTRFS_I(inode);
3043 3111
3044 bi->i_acl = NULL; 3112 bi->i_acl = BTRFS_ACL_NOT_CACHED;
3045 bi->i_default_acl = NULL; 3113 bi->i_default_acl = BTRFS_ACL_NOT_CACHED;
3046 3114
3047 bi->generation = 0; 3115 bi->generation = 0;
3048 bi->sequence = 0; 3116 bi->sequence = 0;
@@ -3054,6 +3122,7 @@ static noinline void init_btrfs_i(struct inode *inode)
3054 bi->flags = 0; 3122 bi->flags = 0;
3055 bi->index_cnt = (u64)-1; 3123 bi->index_cnt = (u64)-1;
3056 bi->last_unlink_trans = 0; 3124 bi->last_unlink_trans = 0;
3125 bi->ordered_data_close = 0;
3057 extent_map_tree_init(&BTRFS_I(inode)->extent_tree, GFP_NOFS); 3126 extent_map_tree_init(&BTRFS_I(inode)->extent_tree, GFP_NOFS);
3058 extent_io_tree_init(&BTRFS_I(inode)->io_tree, 3127 extent_io_tree_init(&BTRFS_I(inode)->io_tree,
3059 inode->i_mapping, GFP_NOFS); 3128 inode->i_mapping, GFP_NOFS);
@@ -4227,7 +4296,6 @@ out:
4227 } 4296 }
4228 if (err) { 4297 if (err) {
4229 free_extent_map(em); 4298 free_extent_map(em);
4230 WARN_ON(1);
4231 return ERR_PTR(err); 4299 return ERR_PTR(err);
4232 } 4300 }
4233 return em; 4301 return em;
@@ -4634,47 +4702,36 @@ void btrfs_destroy_cachep(void)
4634 kmem_cache_destroy(btrfs_trans_handle_cachep); 4702 kmem_cache_destroy(btrfs_trans_handle_cachep);
4635 if (btrfs_transaction_cachep) 4703 if (btrfs_transaction_cachep)
4636 kmem_cache_destroy(btrfs_transaction_cachep); 4704 kmem_cache_destroy(btrfs_transaction_cachep);
4637 if (btrfs_bit_radix_cachep)
4638 kmem_cache_destroy(btrfs_bit_radix_cachep);
4639 if (btrfs_path_cachep) 4705 if (btrfs_path_cachep)
4640 kmem_cache_destroy(btrfs_path_cachep); 4706 kmem_cache_destroy(btrfs_path_cachep);
4641} 4707}
4642 4708
4643struct kmem_cache *btrfs_cache_create(const char *name, size_t size,
4644 unsigned long extra_flags,
4645 void (*ctor)(void *))
4646{
4647 return kmem_cache_create(name, size, 0, (SLAB_RECLAIM_ACCOUNT |
4648 SLAB_MEM_SPREAD | extra_flags), ctor);
4649}
4650
4651int btrfs_init_cachep(void) 4709int btrfs_init_cachep(void)
4652{ 4710{
4653 btrfs_inode_cachep = btrfs_cache_create("btrfs_inode_cache", 4711 btrfs_inode_cachep = kmem_cache_create("btrfs_inode_cache",
4654 sizeof(struct btrfs_inode), 4712 sizeof(struct btrfs_inode), 0,
4655 0, init_once); 4713 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, init_once);
4656 if (!btrfs_inode_cachep) 4714 if (!btrfs_inode_cachep)
4657 goto fail; 4715 goto fail;
4658 btrfs_trans_handle_cachep = 4716
4659 btrfs_cache_create("btrfs_trans_handle_cache", 4717 btrfs_trans_handle_cachep = kmem_cache_create("btrfs_trans_handle_cache",
4660 sizeof(struct btrfs_trans_handle), 4718 sizeof(struct btrfs_trans_handle), 0,
4661 0, NULL); 4719 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
4662 if (!btrfs_trans_handle_cachep) 4720 if (!btrfs_trans_handle_cachep)
4663 goto fail; 4721 goto fail;
4664 btrfs_transaction_cachep = btrfs_cache_create("btrfs_transaction_cache", 4722
4665 sizeof(struct btrfs_transaction), 4723 btrfs_transaction_cachep = kmem_cache_create("btrfs_transaction_cache",
4666 0, NULL); 4724 sizeof(struct btrfs_transaction), 0,
4725 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
4667 if (!btrfs_transaction_cachep) 4726 if (!btrfs_transaction_cachep)
4668 goto fail; 4727 goto fail;
4669 btrfs_path_cachep = btrfs_cache_create("btrfs_path_cache", 4728
4670 sizeof(struct btrfs_path), 4729 btrfs_path_cachep = kmem_cache_create("btrfs_path_cache",
4671 0, NULL); 4730 sizeof(struct btrfs_path), 0,
4731 SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD, NULL);
4672 if (!btrfs_path_cachep) 4732 if (!btrfs_path_cachep)
4673 goto fail; 4733 goto fail;
4674 btrfs_bit_radix_cachep = btrfs_cache_create("btrfs_radix", 256, 4734
4675 SLAB_DESTROY_BY_RCU, NULL);
4676 if (!btrfs_bit_radix_cachep)
4677 goto fail;
4678 return 0; 4735 return 0;
4679fail: 4736fail:
4680 btrfs_destroy_cachep(); 4737 btrfs_destroy_cachep();
@@ -4970,10 +5027,10 @@ out_fail:
4970 return err; 5027 return err;
4971} 5028}
4972 5029
4973static int prealloc_file_range(struct inode *inode, u64 start, u64 end, 5030static int prealloc_file_range(struct btrfs_trans_handle *trans,
4974 u64 alloc_hint, int mode) 5031 struct inode *inode, u64 start, u64 end,
5032 u64 locked_end, u64 alloc_hint, int mode)
4975{ 5033{
4976 struct btrfs_trans_handle *trans;
4977 struct btrfs_root *root = BTRFS_I(inode)->root; 5034 struct btrfs_root *root = BTRFS_I(inode)->root;
4978 struct btrfs_key ins; 5035 struct btrfs_key ins;
4979 u64 alloc_size; 5036 u64 alloc_size;
@@ -4981,10 +5038,6 @@ static int prealloc_file_range(struct inode *inode, u64 start, u64 end,
4981 u64 num_bytes = end - start; 5038 u64 num_bytes = end - start;
4982 int ret = 0; 5039 int ret = 0;
4983 5040
4984 trans = btrfs_join_transaction(root, 1);
4985 BUG_ON(!trans);
4986 btrfs_set_trans_block_group(trans, inode);
4987
4988 while (num_bytes > 0) { 5041 while (num_bytes > 0) {
4989 alloc_size = min(num_bytes, root->fs_info->max_extent); 5042 alloc_size = min(num_bytes, root->fs_info->max_extent);
4990 ret = btrfs_reserve_extent(trans, root, alloc_size, 5043 ret = btrfs_reserve_extent(trans, root, alloc_size,
@@ -4997,7 +5050,8 @@ static int prealloc_file_range(struct inode *inode, u64 start, u64 end,
4997 ret = insert_reserved_file_extent(trans, inode, 5050 ret = insert_reserved_file_extent(trans, inode,
4998 cur_offset, ins.objectid, 5051 cur_offset, ins.objectid,
4999 ins.offset, ins.offset, 5052 ins.offset, ins.offset,
5000 ins.offset, 0, 0, 0, 5053 ins.offset, locked_end,
5054 0, 0, 0,
5001 BTRFS_FILE_EXTENT_PREALLOC); 5055 BTRFS_FILE_EXTENT_PREALLOC);
5002 BUG_ON(ret); 5056 BUG_ON(ret);
5003 num_bytes -= ins.offset; 5057 num_bytes -= ins.offset;
@@ -5015,7 +5069,6 @@ out:
5015 BUG_ON(ret); 5069 BUG_ON(ret);
5016 } 5070 }
5017 5071
5018 btrfs_end_transaction(trans, root);
5019 return ret; 5072 return ret;
5020} 5073}
5021 5074
@@ -5027,13 +5080,21 @@ static long btrfs_fallocate(struct inode *inode, int mode,
5027 u64 alloc_start; 5080 u64 alloc_start;
5028 u64 alloc_end; 5081 u64 alloc_end;
5029 u64 alloc_hint = 0; 5082 u64 alloc_hint = 0;
5083 u64 locked_end;
5030 u64 mask = BTRFS_I(inode)->root->sectorsize - 1; 5084 u64 mask = BTRFS_I(inode)->root->sectorsize - 1;
5031 struct extent_map *em; 5085 struct extent_map *em;
5086 struct btrfs_trans_handle *trans;
5032 int ret; 5087 int ret;
5033 5088
5034 alloc_start = offset & ~mask; 5089 alloc_start = offset & ~mask;
5035 alloc_end = (offset + len + mask) & ~mask; 5090 alloc_end = (offset + len + mask) & ~mask;
5036 5091
5092 /*
5093 * wait for ordered IO before we have any locks. We'll loop again
5094 * below with the locks held.
5095 */
5096 btrfs_wait_ordered_range(inode, alloc_start, alloc_end - alloc_start);
5097
5037 mutex_lock(&inode->i_mutex); 5098 mutex_lock(&inode->i_mutex);
5038 if (alloc_start > inode->i_size) { 5099 if (alloc_start > inode->i_size) {
5039 ret = btrfs_cont_expand(inode, alloc_start); 5100 ret = btrfs_cont_expand(inode, alloc_start);
@@ -5041,10 +5102,21 @@ static long btrfs_fallocate(struct inode *inode, int mode,
5041 goto out; 5102 goto out;
5042 } 5103 }
5043 5104
5105 locked_end = alloc_end - 1;
5044 while (1) { 5106 while (1) {
5045 struct btrfs_ordered_extent *ordered; 5107 struct btrfs_ordered_extent *ordered;
5046 lock_extent(&BTRFS_I(inode)->io_tree, alloc_start, 5108
5047 alloc_end - 1, GFP_NOFS); 5109 trans = btrfs_start_transaction(BTRFS_I(inode)->root, 1);
5110 if (!trans) {
5111 ret = -EIO;
5112 goto out;
5113 }
5114
5115 /* the extent lock is ordered inside the running
5116 * transaction
5117 */
5118 lock_extent(&BTRFS_I(inode)->io_tree, alloc_start, locked_end,
5119 GFP_NOFS);
5048 ordered = btrfs_lookup_first_ordered_extent(inode, 5120 ordered = btrfs_lookup_first_ordered_extent(inode,
5049 alloc_end - 1); 5121 alloc_end - 1);
5050 if (ordered && 5122 if (ordered &&
@@ -5052,7 +5124,13 @@ static long btrfs_fallocate(struct inode *inode, int mode,
5052 ordered->file_offset < alloc_end) { 5124 ordered->file_offset < alloc_end) {
5053 btrfs_put_ordered_extent(ordered); 5125 btrfs_put_ordered_extent(ordered);
5054 unlock_extent(&BTRFS_I(inode)->io_tree, 5126 unlock_extent(&BTRFS_I(inode)->io_tree,
5055 alloc_start, alloc_end - 1, GFP_NOFS); 5127 alloc_start, locked_end, GFP_NOFS);
5128 btrfs_end_transaction(trans, BTRFS_I(inode)->root);
5129
5130 /*
5131 * we can't wait on the range with the transaction
5132 * running or with the extent lock held
5133 */
5056 btrfs_wait_ordered_range(inode, alloc_start, 5134 btrfs_wait_ordered_range(inode, alloc_start,
5057 alloc_end - alloc_start); 5135 alloc_end - alloc_start);
5058 } else { 5136 } else {
@@ -5070,8 +5148,9 @@ static long btrfs_fallocate(struct inode *inode, int mode,
5070 last_byte = min(extent_map_end(em), alloc_end); 5148 last_byte = min(extent_map_end(em), alloc_end);
5071 last_byte = (last_byte + mask) & ~mask; 5149 last_byte = (last_byte + mask) & ~mask;
5072 if (em->block_start == EXTENT_MAP_HOLE) { 5150 if (em->block_start == EXTENT_MAP_HOLE) {
5073 ret = prealloc_file_range(inode, cur_offset, 5151 ret = prealloc_file_range(trans, inode, cur_offset,
5074 last_byte, alloc_hint, mode); 5152 last_byte, locked_end + 1,
5153 alloc_hint, mode);
5075 if (ret < 0) { 5154 if (ret < 0) {
5076 free_extent_map(em); 5155 free_extent_map(em);
5077 break; 5156 break;
@@ -5087,8 +5166,10 @@ static long btrfs_fallocate(struct inode *inode, int mode,
5087 break; 5166 break;
5088 } 5167 }
5089 } 5168 }
5090 unlock_extent(&BTRFS_I(inode)->io_tree, alloc_start, alloc_end - 1, 5169 unlock_extent(&BTRFS_I(inode)->io_tree, alloc_start, locked_end,
5091 GFP_NOFS); 5170 GFP_NOFS);
5171
5172 btrfs_end_transaction(trans, BTRFS_I(inode)->root);
5092out: 5173out:
5093 mutex_unlock(&inode->i_mutex); 5174 mutex_unlock(&inode->i_mutex);
5094 return ret; 5175 return ret;
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 7594bec1be10..2624b53ea783 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -437,10 +437,6 @@ out_unlock:
437 return 0; 437 return 0;
438} 438}
439 439
440/*
441 * Called inside transaction, so use GFP_NOFS
442 */
443
444static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg) 440static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
445{ 441{
446 u64 new_size; 442 u64 new_size;
@@ -461,15 +457,9 @@ static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
461 if (!capable(CAP_SYS_ADMIN)) 457 if (!capable(CAP_SYS_ADMIN))
462 return -EPERM; 458 return -EPERM;
463 459
464 vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS); 460 vol_args = memdup_user(arg, sizeof(*vol_args));
465 461 if (IS_ERR(vol_args))
466 if (!vol_args) 462 return PTR_ERR(vol_args);
467 return -ENOMEM;
468
469 if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {
470 ret = -EFAULT;
471 goto out;
472 }
473 463
474 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0'; 464 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0';
475 namelen = strlen(vol_args->name); 465 namelen = strlen(vol_args->name);
@@ -483,11 +473,13 @@ static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
483 *devstr = '\0'; 473 *devstr = '\0';
484 devstr = vol_args->name; 474 devstr = vol_args->name;
485 devid = simple_strtoull(devstr, &end, 10); 475 devid = simple_strtoull(devstr, &end, 10);
486 printk(KERN_INFO "resizing devid %llu\n", devid); 476 printk(KERN_INFO "resizing devid %llu\n",
477 (unsigned long long)devid);
487 } 478 }
488 device = btrfs_find_device(root, devid, NULL, NULL); 479 device = btrfs_find_device(root, devid, NULL, NULL);
489 if (!device) { 480 if (!device) {
490 printk(KERN_INFO "resizer unable to find device %llu\n", devid); 481 printk(KERN_INFO "resizer unable to find device %llu\n",
482 (unsigned long long)devid);
491 ret = -EINVAL; 483 ret = -EINVAL;
492 goto out_unlock; 484 goto out_unlock;
493 } 485 }
@@ -545,7 +537,6 @@ static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
545 537
546out_unlock: 538out_unlock:
547 mutex_unlock(&root->fs_info->volume_mutex); 539 mutex_unlock(&root->fs_info->volume_mutex);
548out:
549 kfree(vol_args); 540 kfree(vol_args);
550 return ret; 541 return ret;
551} 542}
@@ -565,15 +556,9 @@ static noinline int btrfs_ioctl_snap_create(struct file *file,
565 if (root->fs_info->sb->s_flags & MS_RDONLY) 556 if (root->fs_info->sb->s_flags & MS_RDONLY)
566 return -EROFS; 557 return -EROFS;
567 558
568 vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS); 559 vol_args = memdup_user(arg, sizeof(*vol_args));
569 560 if (IS_ERR(vol_args))
570 if (!vol_args) 561 return PTR_ERR(vol_args);
571 return -ENOMEM;
572
573 if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {
574 ret = -EFAULT;
575 goto out;
576 }
577 562
578 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0'; 563 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0';
579 namelen = strlen(vol_args->name); 564 namelen = strlen(vol_args->name);
@@ -675,19 +660,13 @@ static long btrfs_ioctl_add_dev(struct btrfs_root *root, void __user *arg)
675 if (!capable(CAP_SYS_ADMIN)) 660 if (!capable(CAP_SYS_ADMIN))
676 return -EPERM; 661 return -EPERM;
677 662
678 vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS); 663 vol_args = memdup_user(arg, sizeof(*vol_args));
679 664 if (IS_ERR(vol_args))
680 if (!vol_args) 665 return PTR_ERR(vol_args);
681 return -ENOMEM;
682 666
683 if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {
684 ret = -EFAULT;
685 goto out;
686 }
687 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0'; 667 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0';
688 ret = btrfs_init_new_device(root, vol_args->name); 668 ret = btrfs_init_new_device(root, vol_args->name);
689 669
690out:
691 kfree(vol_args); 670 kfree(vol_args);
692 return ret; 671 return ret;
693} 672}
@@ -703,19 +682,13 @@ static long btrfs_ioctl_rm_dev(struct btrfs_root *root, void __user *arg)
703 if (root->fs_info->sb->s_flags & MS_RDONLY) 682 if (root->fs_info->sb->s_flags & MS_RDONLY)
704 return -EROFS; 683 return -EROFS;
705 684
706 vol_args = kmalloc(sizeof(*vol_args), GFP_NOFS); 685 vol_args = memdup_user(arg, sizeof(*vol_args));
707 686 if (IS_ERR(vol_args))
708 if (!vol_args) 687 return PTR_ERR(vol_args);
709 return -ENOMEM;
710 688
711 if (copy_from_user(vol_args, arg, sizeof(*vol_args))) {
712 ret = -EFAULT;
713 goto out;
714 }
715 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0'; 689 vol_args->name[BTRFS_PATH_NAME_MAX] = '\0';
716 ret = btrfs_rm_device(root, vol_args->name); 690 ret = btrfs_rm_device(root, vol_args->name);
717 691
718out:
719 kfree(vol_args); 692 kfree(vol_args);
720 return ret; 693 return ret;
721} 694}
@@ -830,7 +803,8 @@ static long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
830 BUG_ON(!trans); 803 BUG_ON(!trans);
831 804
832 /* punch hole in destination first */ 805 /* punch hole in destination first */
833 btrfs_drop_extents(trans, root, inode, off, off+len, 0, &hint_byte); 806 btrfs_drop_extents(trans, root, inode, off, off + len,
807 off + len, 0, &hint_byte);
834 808
835 /* clone data */ 809 /* clone data */
836 key.objectid = src->i_ino; 810 key.objectid = src->i_ino;
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
index 53c87b197d70..d6f0806c682f 100644
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -489,7 +489,7 @@ again:
489 /* start IO across the range first to instantiate any delalloc 489 /* start IO across the range first to instantiate any delalloc
490 * extents 490 * extents
491 */ 491 */
492 btrfs_fdatawrite_range(inode->i_mapping, start, orig_end, WB_SYNC_NONE); 492 btrfs_fdatawrite_range(inode->i_mapping, start, orig_end, WB_SYNC_ALL);
493 493
494 /* The compression code will leave pages locked but return from 494 /* The compression code will leave pages locked but return from
495 * writepage without setting the page writeback. Starting again 495 * writepage without setting the page writeback. Starting again
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 9744af9d71e9..2ff7cd2db25f 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -68,7 +68,7 @@ enum {
68 Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow, 68 Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow,
69 Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, 69 Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier,
70 Opt_ssd, Opt_thread_pool, Opt_noacl, Opt_compress, Opt_notreelog, 70 Opt_ssd, Opt_thread_pool, Opt_noacl, Opt_compress, Opt_notreelog,
71 Opt_flushoncommit, Opt_err, 71 Opt_ratio, Opt_flushoncommit, Opt_err,
72}; 72};
73 73
74static match_table_t tokens = { 74static match_table_t tokens = {
@@ -87,6 +87,7 @@ static match_table_t tokens = {
87 {Opt_noacl, "noacl"}, 87 {Opt_noacl, "noacl"},
88 {Opt_notreelog, "notreelog"}, 88 {Opt_notreelog, "notreelog"},
89 {Opt_flushoncommit, "flushoncommit"}, 89 {Opt_flushoncommit, "flushoncommit"},
90 {Opt_ratio, "metadata_ratio=%d"},
90 {Opt_err, NULL}, 91 {Opt_err, NULL},
91}; 92};
92 93
@@ -195,7 +196,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
195 info->max_extent = max_t(u64, 196 info->max_extent = max_t(u64,
196 info->max_extent, root->sectorsize); 197 info->max_extent, root->sectorsize);
197 printk(KERN_INFO "btrfs: max_extent at %llu\n", 198 printk(KERN_INFO "btrfs: max_extent at %llu\n",
198 info->max_extent); 199 (unsigned long long)info->max_extent);
199 } 200 }
200 break; 201 break;
201 case Opt_max_inline: 202 case Opt_max_inline:
@@ -210,7 +211,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
210 root->sectorsize); 211 root->sectorsize);
211 } 212 }
212 printk(KERN_INFO "btrfs: max_inline at %llu\n", 213 printk(KERN_INFO "btrfs: max_inline at %llu\n",
213 info->max_inline); 214 (unsigned long long)info->max_inline);
214 } 215 }
215 break; 216 break;
216 case Opt_alloc_start: 217 case Opt_alloc_start:
@@ -220,7 +221,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
220 kfree(num); 221 kfree(num);
221 printk(KERN_INFO 222 printk(KERN_INFO
222 "btrfs: allocations start at %llu\n", 223 "btrfs: allocations start at %llu\n",
223 info->alloc_start); 224 (unsigned long long)info->alloc_start);
224 } 225 }
225 break; 226 break;
226 case Opt_noacl: 227 case Opt_noacl:
@@ -234,6 +235,15 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
234 printk(KERN_INFO "btrfs: turning on flush-on-commit\n"); 235 printk(KERN_INFO "btrfs: turning on flush-on-commit\n");
235 btrfs_set_opt(info->mount_opt, FLUSHONCOMMIT); 236 btrfs_set_opt(info->mount_opt, FLUSHONCOMMIT);
236 break; 237 break;
238 case Opt_ratio:
239 intarg = 0;
240 match_int(&args[0], &intarg);
241 if (intarg) {
242 info->metadata_ratio = intarg;
243 printk(KERN_INFO "btrfs: metadata ratio %d\n",
244 info->metadata_ratio);
245 }
246 break;
237 default: 247 default:
238 break; 248 break;
239 } 249 }
@@ -410,11 +420,14 @@ static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs)
410 if (btrfs_test_opt(root, NOBARRIER)) 420 if (btrfs_test_opt(root, NOBARRIER))
411 seq_puts(seq, ",nobarrier"); 421 seq_puts(seq, ",nobarrier");
412 if (info->max_extent != (u64)-1) 422 if (info->max_extent != (u64)-1)
413 seq_printf(seq, ",max_extent=%llu", info->max_extent); 423 seq_printf(seq, ",max_extent=%llu",
424 (unsigned long long)info->max_extent);
414 if (info->max_inline != 8192 * 1024) 425 if (info->max_inline != 8192 * 1024)
415 seq_printf(seq, ",max_inline=%llu", info->max_inline); 426 seq_printf(seq, ",max_inline=%llu",
427 (unsigned long long)info->max_inline);
416 if (info->alloc_start != 0) 428 if (info->alloc_start != 0)
417 seq_printf(seq, ",alloc_start=%llu", info->alloc_start); 429 seq_printf(seq, ",alloc_start=%llu",
430 (unsigned long long)info->alloc_start);
418 if (info->thread_pool_size != min_t(unsigned long, 431 if (info->thread_pool_size != min_t(unsigned long,
419 num_online_cpus() + 2, 8)) 432 num_online_cpus() + 2, 8))
420 seq_printf(seq, ",thread_pool=%d", info->thread_pool_size); 433 seq_printf(seq, ",thread_pool=%d", info->thread_pool_size);
@@ -423,9 +436,9 @@ static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs)
423 if (btrfs_test_opt(root, SSD)) 436 if (btrfs_test_opt(root, SSD))
424 seq_puts(seq, ",ssd"); 437 seq_puts(seq, ",ssd");
425 if (btrfs_test_opt(root, NOTREELOG)) 438 if (btrfs_test_opt(root, NOTREELOG))
426 seq_puts(seq, ",no-treelog"); 439 seq_puts(seq, ",notreelog");
427 if (btrfs_test_opt(root, FLUSHONCOMMIT)) 440 if (btrfs_test_opt(root, FLUSHONCOMMIT))
428 seq_puts(seq, ",flush-on-commit"); 441 seq_puts(seq, ",flushoncommit");
429 if (!(root->fs_info->sb->s_flags & MS_POSIXACL)) 442 if (!(root->fs_info->sb->s_flags & MS_POSIXACL))
430 seq_puts(seq, ",noacl"); 443 seq_puts(seq, ",noacl");
431 return 0; 444 return 0;
@@ -489,8 +502,7 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
489 502
490 if (s->s_root) { 503 if (s->s_root) {
491 if ((flags ^ s->s_flags) & MS_RDONLY) { 504 if ((flags ^ s->s_flags) & MS_RDONLY) {
492 up_write(&s->s_umount); 505 deactivate_locked_super(s);
493 deactivate_super(s);
494 error = -EBUSY; 506 error = -EBUSY;
495 goto error_close_devices; 507 goto error_close_devices;
496 } 508 }
@@ -504,8 +516,7 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
504 error = btrfs_fill_super(s, fs_devices, data, 516 error = btrfs_fill_super(s, fs_devices, data,
505 flags & MS_SILENT ? 1 : 0); 517 flags & MS_SILENT ? 1 : 0);
506 if (error) { 518 if (error) {
507 up_write(&s->s_umount); 519 deactivate_locked_super(s);
508 deactivate_super(s);
509 goto error_free_subvol_name; 520 goto error_free_subvol_name;
510 } 521 }
511 522
@@ -522,15 +533,13 @@ static int btrfs_get_sb(struct file_system_type *fs_type, int flags,
522 mutex_unlock(&s->s_root->d_inode->i_mutex); 533 mutex_unlock(&s->s_root->d_inode->i_mutex);
523 534
524 if (IS_ERR(root)) { 535 if (IS_ERR(root)) {
525 up_write(&s->s_umount); 536 deactivate_locked_super(s);
526 deactivate_super(s);
527 error = PTR_ERR(root); 537 error = PTR_ERR(root);
528 goto error_free_subvol_name; 538 goto error_free_subvol_name;
529 } 539 }
530 if (!root->d_inode) { 540 if (!root->d_inode) {
531 dput(root); 541 dput(root);
532 up_write(&s->s_umount); 542 deactivate_locked_super(s);
533 deactivate_super(s);
534 error = -ENXIO; 543 error = -ENXIO;
535 goto error_free_subvol_name; 544 goto error_free_subvol_name;
536 } 545 }
@@ -635,14 +644,9 @@ static long btrfs_control_ioctl(struct file *file, unsigned int cmd,
635 if (!capable(CAP_SYS_ADMIN)) 644 if (!capable(CAP_SYS_ADMIN))
636 return -EPERM; 645 return -EPERM;
637 646
638 vol = kmalloc(sizeof(*vol), GFP_KERNEL); 647 vol = memdup_user((void __user *)arg, sizeof(*vol));
639 if (!vol) 648 if (IS_ERR(vol))
640 return -ENOMEM; 649 return PTR_ERR(vol);
641
642 if (copy_from_user(vol, (void __user *)arg, sizeof(*vol))) {
643 ret = -EFAULT;
644 goto out;
645 }
646 650
647 switch (cmd) { 651 switch (cmd) {
648 case BTRFS_IOC_SCAN_DEV: 652 case BTRFS_IOC_SCAN_DEV:
@@ -650,7 +654,7 @@ static long btrfs_control_ioctl(struct file *file, unsigned int cmd,
650 &btrfs_fs_type, &fs_devices); 654 &btrfs_fs_type, &fs_devices);
651 break; 655 break;
652 } 656 }
653out: 657
654 kfree(vol); 658 kfree(vol);
655 return ret; 659 return ret;
656} 660}
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 2869b3361eb6..01b143605ec1 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -687,7 +687,13 @@ static noinline int wait_transaction_pre_flush(struct btrfs_fs_info *info)
687 prepare_to_wait(&info->transaction_wait, &wait, 687 prepare_to_wait(&info->transaction_wait, &wait,
688 TASK_UNINTERRUPTIBLE); 688 TASK_UNINTERRUPTIBLE);
689 mutex_unlock(&info->trans_mutex); 689 mutex_unlock(&info->trans_mutex);
690
691 atomic_dec(&info->throttles);
692 wake_up(&info->transaction_throttle);
693
690 schedule(); 694 schedule();
695
696 atomic_inc(&info->throttles);
691 mutex_lock(&info->trans_mutex); 697 mutex_lock(&info->trans_mutex);
692 finish_wait(&info->transaction_wait, &wait); 698 finish_wait(&info->transaction_wait, &wait);
693 } 699 }
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 25f20ea11f27..db5e212e8445 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -536,7 +536,7 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans,
536 saved_nbytes = inode_get_bytes(inode); 536 saved_nbytes = inode_get_bytes(inode);
537 /* drop any overlapping extents */ 537 /* drop any overlapping extents */
538 ret = btrfs_drop_extents(trans, root, inode, 538 ret = btrfs_drop_extents(trans, root, inode,
539 start, extent_end, start, &alloc_hint); 539 start, extent_end, extent_end, start, &alloc_hint);
540 BUG_ON(ret); 540 BUG_ON(ret);
541 541
542 if (found_type == BTRFS_FILE_EXTENT_REG || 542 if (found_type == BTRFS_FILE_EXTENT_REG ||
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index e0913e469728..5f01dad4b696 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -125,6 +125,20 @@ static noinline struct btrfs_fs_devices *find_fsid(u8 *fsid)
125 return NULL; 125 return NULL;
126} 126}
127 127
128static void requeue_list(struct btrfs_pending_bios *pending_bios,
129 struct bio *head, struct bio *tail)
130{
131
132 struct bio *old_head;
133
134 old_head = pending_bios->head;
135 pending_bios->head = head;
136 if (pending_bios->tail)
137 tail->bi_next = old_head;
138 else
139 pending_bios->tail = tail;
140}
141
128/* 142/*
129 * we try to collect pending bios for a device so we don't get a large 143 * we try to collect pending bios for a device so we don't get a large
130 * number of procs sending bios down to the same device. This greatly 144 * number of procs sending bios down to the same device. This greatly
@@ -141,10 +155,12 @@ static noinline int run_scheduled_bios(struct btrfs_device *device)
141 struct bio *pending; 155 struct bio *pending;
142 struct backing_dev_info *bdi; 156 struct backing_dev_info *bdi;
143 struct btrfs_fs_info *fs_info; 157 struct btrfs_fs_info *fs_info;
158 struct btrfs_pending_bios *pending_bios;
144 struct bio *tail; 159 struct bio *tail;
145 struct bio *cur; 160 struct bio *cur;
146 int again = 0; 161 int again = 0;
147 unsigned long num_run = 0; 162 unsigned long num_run;
163 unsigned long num_sync_run;
148 unsigned long limit; 164 unsigned long limit;
149 unsigned long last_waited = 0; 165 unsigned long last_waited = 0;
150 166
@@ -153,20 +169,30 @@ static noinline int run_scheduled_bios(struct btrfs_device *device)
153 limit = btrfs_async_submit_limit(fs_info); 169 limit = btrfs_async_submit_limit(fs_info);
154 limit = limit * 2 / 3; 170 limit = limit * 2 / 3;
155 171
172 /* we want to make sure that every time we switch from the sync
173 * list to the normal list, we unplug
174 */
175 num_sync_run = 0;
176
156loop: 177loop:
157 spin_lock(&device->io_lock); 178 spin_lock(&device->io_lock);
179 num_run = 0;
158 180
159loop_lock: 181loop_lock:
182
160 /* take all the bios off the list at once and process them 183 /* take all the bios off the list at once and process them
161 * later on (without the lock held). But, remember the 184 * later on (without the lock held). But, remember the
162 * tail and other pointers so the bios can be properly reinserted 185 * tail and other pointers so the bios can be properly reinserted
163 * into the list if we hit congestion 186 * into the list if we hit congestion
164 */ 187 */
165 pending = device->pending_bios; 188 if (device->pending_sync_bios.head)
166 tail = device->pending_bio_tail; 189 pending_bios = &device->pending_sync_bios;
190 else
191 pending_bios = &device->pending_bios;
192
193 pending = pending_bios->head;
194 tail = pending_bios->tail;
167 WARN_ON(pending && !tail); 195 WARN_ON(pending && !tail);
168 device->pending_bios = NULL;
169 device->pending_bio_tail = NULL;
170 196
171 /* 197 /*
172 * if pending was null this time around, no bios need processing 198 * if pending was null this time around, no bios need processing
@@ -176,16 +202,41 @@ loop_lock:
176 * device->running_pending is used to synchronize with the 202 * device->running_pending is used to synchronize with the
177 * schedule_bio code. 203 * schedule_bio code.
178 */ 204 */
179 if (pending) { 205 if (device->pending_sync_bios.head == NULL &&
180 again = 1; 206 device->pending_bios.head == NULL) {
181 device->running_pending = 1;
182 } else {
183 again = 0; 207 again = 0;
184 device->running_pending = 0; 208 device->running_pending = 0;
209 } else {
210 again = 1;
211 device->running_pending = 1;
185 } 212 }
213
214 pending_bios->head = NULL;
215 pending_bios->tail = NULL;
216
186 spin_unlock(&device->io_lock); 217 spin_unlock(&device->io_lock);
187 218
219 /*
220 * if we're doing the regular priority list, make sure we unplug
221 * for any high prio bios we've sent down
222 */
223 if (pending_bios == &device->pending_bios && num_sync_run > 0) {
224 num_sync_run = 0;
225 blk_run_backing_dev(bdi, NULL);
226 }
227
188 while (pending) { 228 while (pending) {
229
230 rmb();
231 if (pending_bios != &device->pending_sync_bios &&
232 device->pending_sync_bios.head &&
233 num_run > 16) {
234 cond_resched();
235 spin_lock(&device->io_lock);
236 requeue_list(pending_bios, pending, tail);
237 goto loop_lock;
238 }
239
189 cur = pending; 240 cur = pending;
190 pending = pending->bi_next; 241 pending = pending->bi_next;
191 cur->bi_next = NULL; 242 cur->bi_next = NULL;
@@ -196,10 +247,18 @@ loop_lock:
196 wake_up(&fs_info->async_submit_wait); 247 wake_up(&fs_info->async_submit_wait);
197 248
198 BUG_ON(atomic_read(&cur->bi_cnt) == 0); 249 BUG_ON(atomic_read(&cur->bi_cnt) == 0);
199 bio_get(cur);
200 submit_bio(cur->bi_rw, cur); 250 submit_bio(cur->bi_rw, cur);
201 bio_put(cur);
202 num_run++; 251 num_run++;
252 if (bio_sync(cur))
253 num_sync_run++;
254
255 if (need_resched()) {
256 if (num_sync_run) {
257 blk_run_backing_dev(bdi, NULL);
258 num_sync_run = 0;
259 }
260 cond_resched();
261 }
203 262
204 /* 263 /*
205 * we made progress, there is more work to do and the bdi 264 * we made progress, there is more work to do and the bdi
@@ -208,7 +267,6 @@ loop_lock:
208 */ 267 */
209 if (pending && bdi_write_congested(bdi) && num_run > 16 && 268 if (pending && bdi_write_congested(bdi) && num_run > 16 &&
210 fs_info->fs_devices->open_devices > 1) { 269 fs_info->fs_devices->open_devices > 1) {
211 struct bio *old_head;
212 struct io_context *ioc; 270 struct io_context *ioc;
213 271
214 ioc = current->io_context; 272 ioc = current->io_context;
@@ -233,17 +291,17 @@ loop_lock:
233 * against it before looping 291 * against it before looping
234 */ 292 */
235 last_waited = ioc->last_waited; 293 last_waited = ioc->last_waited;
294 if (need_resched()) {
295 if (num_sync_run) {
296 blk_run_backing_dev(bdi, NULL);
297 num_sync_run = 0;
298 }
299 cond_resched();
300 }
236 continue; 301 continue;
237 } 302 }
238 spin_lock(&device->io_lock); 303 spin_lock(&device->io_lock);
239 304 requeue_list(pending_bios, pending, tail);
240 old_head = device->pending_bios;
241 device->pending_bios = pending;
242 if (device->pending_bio_tail)
243 tail->bi_next = old_head;
244 else
245 device->pending_bio_tail = tail;
246
247 device->running_pending = 1; 305 device->running_pending = 1;
248 306
249 spin_unlock(&device->io_lock); 307 spin_unlock(&device->io_lock);
@@ -251,11 +309,18 @@ loop_lock:
251 goto done; 309 goto done;
252 } 310 }
253 } 311 }
312
313 if (num_sync_run) {
314 num_sync_run = 0;
315 blk_run_backing_dev(bdi, NULL);
316 }
317
318 cond_resched();
254 if (again) 319 if (again)
255 goto loop; 320 goto loop;
256 321
257 spin_lock(&device->io_lock); 322 spin_lock(&device->io_lock);
258 if (device->pending_bios) 323 if (device->pending_bios.head || device->pending_sync_bios.head)
259 goto loop_lock; 324 goto loop_lock;
260 spin_unlock(&device->io_lock); 325 spin_unlock(&device->io_lock);
261 326
@@ -1478,7 +1543,7 @@ static noinline int btrfs_update_device(struct btrfs_trans_handle *trans,
1478 btrfs_set_device_io_align(leaf, dev_item, device->io_align); 1543 btrfs_set_device_io_align(leaf, dev_item, device->io_align);
1479 btrfs_set_device_io_width(leaf, dev_item, device->io_width); 1544 btrfs_set_device_io_width(leaf, dev_item, device->io_width);
1480 btrfs_set_device_sector_size(leaf, dev_item, device->sector_size); 1545 btrfs_set_device_sector_size(leaf, dev_item, device->sector_size);
1481 btrfs_set_device_total_bytes(leaf, dev_item, device->total_bytes); 1546 btrfs_set_device_total_bytes(leaf, dev_item, device->disk_total_bytes);
1482 btrfs_set_device_bytes_used(leaf, dev_item, device->bytes_used); 1547 btrfs_set_device_bytes_used(leaf, dev_item, device->bytes_used);
1483 btrfs_mark_buffer_dirty(leaf); 1548 btrfs_mark_buffer_dirty(leaf);
1484 1549
@@ -1875,14 +1940,6 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
1875 device->total_bytes = new_size; 1940 device->total_bytes = new_size;
1876 if (device->writeable) 1941 if (device->writeable)
1877 device->fs_devices->total_rw_bytes -= diff; 1942 device->fs_devices->total_rw_bytes -= diff;
1878 ret = btrfs_update_device(trans, device);
1879 if (ret) {
1880 unlock_chunks(root);
1881 btrfs_end_transaction(trans, root);
1882 goto done;
1883 }
1884 WARN_ON(diff > old_total);
1885 btrfs_set_super_total_bytes(super_copy, old_total - diff);
1886 unlock_chunks(root); 1943 unlock_chunks(root);
1887 btrfs_end_transaction(trans, root); 1944 btrfs_end_transaction(trans, root);
1888 1945
@@ -1914,7 +1971,7 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
1914 length = btrfs_dev_extent_length(l, dev_extent); 1971 length = btrfs_dev_extent_length(l, dev_extent);
1915 1972
1916 if (key.offset + length <= new_size) 1973 if (key.offset + length <= new_size)
1917 goto done; 1974 break;
1918 1975
1919 chunk_tree = btrfs_dev_extent_chunk_tree(l, dev_extent); 1976 chunk_tree = btrfs_dev_extent_chunk_tree(l, dev_extent);
1920 chunk_objectid = btrfs_dev_extent_chunk_objectid(l, dev_extent); 1977 chunk_objectid = btrfs_dev_extent_chunk_objectid(l, dev_extent);
@@ -1927,6 +1984,26 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
1927 goto done; 1984 goto done;
1928 } 1985 }
1929 1986
1987 /* Shrinking succeeded, else we would be at "done". */
1988 trans = btrfs_start_transaction(root, 1);
1989 if (!trans) {
1990 ret = -ENOMEM;
1991 goto done;
1992 }
1993 lock_chunks(root);
1994
1995 device->disk_total_bytes = new_size;
1996 /* Now btrfs_update_device() will change the on-disk size. */
1997 ret = btrfs_update_device(trans, device);
1998 if (ret) {
1999 unlock_chunks(root);
2000 btrfs_end_transaction(trans, root);
2001 goto done;
2002 }
2003 WARN_ON(diff > old_total);
2004 btrfs_set_super_total_bytes(super_copy, old_total - diff);
2005 unlock_chunks(root);
2006 btrfs_end_transaction(trans, root);
1930done: 2007done:
1931 btrfs_free_path(path); 2008 btrfs_free_path(path);
1932 return ret; 2009 return ret;
@@ -2497,7 +2574,7 @@ again:
2497 max_errors = 1; 2574 max_errors = 1;
2498 } 2575 }
2499 } 2576 }
2500 if (multi_ret && rw == WRITE && 2577 if (multi_ret && (rw & (1 << BIO_RW)) &&
2501 stripes_allocated < stripes_required) { 2578 stripes_allocated < stripes_required) {
2502 stripes_allocated = map->num_stripes; 2579 stripes_allocated = map->num_stripes;
2503 free_extent_map(em); 2580 free_extent_map(em);
@@ -2762,6 +2839,7 @@ static noinline int schedule_bio(struct btrfs_root *root,
2762 int rw, struct bio *bio) 2839 int rw, struct bio *bio)
2763{ 2840{
2764 int should_queue = 1; 2841 int should_queue = 1;
2842 struct btrfs_pending_bios *pending_bios;
2765 2843
2766 /* don't bother with additional async steps for reads, right now */ 2844 /* don't bother with additional async steps for reads, right now */
2767 if (!(rw & (1 << BIO_RW))) { 2845 if (!(rw & (1 << BIO_RW))) {
@@ -2783,13 +2861,17 @@ static noinline int schedule_bio(struct btrfs_root *root,
2783 bio->bi_rw |= rw; 2861 bio->bi_rw |= rw;
2784 2862
2785 spin_lock(&device->io_lock); 2863 spin_lock(&device->io_lock);
2864 if (bio_sync(bio))
2865 pending_bios = &device->pending_sync_bios;
2866 else
2867 pending_bios = &device->pending_bios;
2786 2868
2787 if (device->pending_bio_tail) 2869 if (pending_bios->tail)
2788 device->pending_bio_tail->bi_next = bio; 2870 pending_bios->tail->bi_next = bio;
2789 2871
2790 device->pending_bio_tail = bio; 2872 pending_bios->tail = bio;
2791 if (!device->pending_bios) 2873 if (!pending_bios->head)
2792 device->pending_bios = bio; 2874 pending_bios->head = bio;
2793 if (device->running_pending) 2875 if (device->running_pending)
2794 should_queue = 0; 2876 should_queue = 0;
2795 2877
@@ -3006,7 +3088,8 @@ static int fill_device_from_item(struct extent_buffer *leaf,
3006 unsigned long ptr; 3088 unsigned long ptr;
3007 3089
3008 device->devid = btrfs_device_id(leaf, dev_item); 3090 device->devid = btrfs_device_id(leaf, dev_item);
3009 device->total_bytes = btrfs_device_total_bytes(leaf, dev_item); 3091 device->disk_total_bytes = btrfs_device_total_bytes(leaf, dev_item);
3092 device->total_bytes = device->disk_total_bytes;
3010 device->bytes_used = btrfs_device_bytes_used(leaf, dev_item); 3093 device->bytes_used = btrfs_device_bytes_used(leaf, dev_item);
3011 device->type = btrfs_device_type(leaf, dev_item); 3094 device->type = btrfs_device_type(leaf, dev_item);
3012 device->io_align = btrfs_device_io_align(leaf, dev_item); 3095 device->io_align = btrfs_device_io_align(leaf, dev_item);
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
index 2185de72ff7d..5c3ff6d02fd7 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -23,13 +23,22 @@
23#include "async-thread.h" 23#include "async-thread.h"
24 24
25struct buffer_head; 25struct buffer_head;
26struct btrfs_pending_bios {
27 struct bio *head;
28 struct bio *tail;
29};
30
26struct btrfs_device { 31struct btrfs_device {
27 struct list_head dev_list; 32 struct list_head dev_list;
28 struct list_head dev_alloc_list; 33 struct list_head dev_alloc_list;
29 struct btrfs_fs_devices *fs_devices; 34 struct btrfs_fs_devices *fs_devices;
30 struct btrfs_root *dev_root; 35 struct btrfs_root *dev_root;
31 struct bio *pending_bios; 36
32 struct bio *pending_bio_tail; 37 /* regular prio bios */
38 struct btrfs_pending_bios pending_bios;
39 /* WRITE_SYNC bios */
40 struct btrfs_pending_bios pending_sync_bios;
41
33 int running_pending; 42 int running_pending;
34 u64 generation; 43 u64 generation;
35 44
@@ -52,6 +61,9 @@ struct btrfs_device {
52 /* size of the device */ 61 /* size of the device */
53 u64 total_bytes; 62 u64 total_bytes;
54 63
64 /* size of the disk */
65 u64 disk_total_bytes;
66
55 /* bytes used */ 67 /* bytes used */
56 u64 bytes_used; 68 u64 bytes_used;
57 69
diff --git a/fs/buffer.c b/fs/buffer.c
index 13edf7ad3ff1..aed297739eb0 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -360,7 +360,7 @@ still_busy:
360 * Completion handler for block_write_full_page() - pages which are unlocked 360 * Completion handler for block_write_full_page() - pages which are unlocked
361 * during I/O, and which have PageWriteback cleared upon I/O completion. 361 * during I/O, and which have PageWriteback cleared upon I/O completion.
362 */ 362 */
363static void end_buffer_async_write(struct buffer_head *bh, int uptodate) 363void end_buffer_async_write(struct buffer_head *bh, int uptodate)
364{ 364{
365 char b[BDEVNAME_SIZE]; 365 char b[BDEVNAME_SIZE];
366 unsigned long flags; 366 unsigned long flags;
@@ -438,11 +438,17 @@ static void mark_buffer_async_read(struct buffer_head *bh)
438 set_buffer_async_read(bh); 438 set_buffer_async_read(bh);
439} 439}
440 440
441void mark_buffer_async_write(struct buffer_head *bh) 441void mark_buffer_async_write_endio(struct buffer_head *bh,
442 bh_end_io_t *handler)
442{ 443{
443 bh->b_end_io = end_buffer_async_write; 444 bh->b_end_io = handler;
444 set_buffer_async_write(bh); 445 set_buffer_async_write(bh);
445} 446}
447
448void mark_buffer_async_write(struct buffer_head *bh)
449{
450 mark_buffer_async_write_endio(bh, end_buffer_async_write);
451}
446EXPORT_SYMBOL(mark_buffer_async_write); 452EXPORT_SYMBOL(mark_buffer_async_write);
447 453
448 454
@@ -547,7 +553,7 @@ repeat:
547 return err; 553 return err;
548} 554}
549 555
550void do_thaw_all(unsigned long unused) 556void do_thaw_all(struct work_struct *work)
551{ 557{
552 struct super_block *sb; 558 struct super_block *sb;
553 char b[BDEVNAME_SIZE]; 559 char b[BDEVNAME_SIZE];
@@ -567,6 +573,7 @@ restart:
567 goto restart; 573 goto restart;
568 } 574 }
569 spin_unlock(&sb_lock); 575 spin_unlock(&sb_lock);
576 kfree(work);
570 printk(KERN_WARNING "Emergency Thaw complete\n"); 577 printk(KERN_WARNING "Emergency Thaw complete\n");
571} 578}
572 579
@@ -577,7 +584,13 @@ restart:
577 */ 584 */
578void emergency_thaw_all(void) 585void emergency_thaw_all(void)
579{ 586{
580 pdflush_operation(do_thaw_all, 0); 587 struct work_struct *work;
588
589 work = kmalloc(sizeof(*work), GFP_ATOMIC);
590 if (work) {
591 INIT_WORK(work, do_thaw_all);
592 schedule_work(work);
593 }
581} 594}
582 595
583/** 596/**
@@ -1608,7 +1621,8 @@ EXPORT_SYMBOL(unmap_underlying_metadata);
1608 * unplugging the device queue. 1621 * unplugging the device queue.
1609 */ 1622 */
1610static int __block_write_full_page(struct inode *inode, struct page *page, 1623static int __block_write_full_page(struct inode *inode, struct page *page,
1611 get_block_t *get_block, struct writeback_control *wbc) 1624 get_block_t *get_block, struct writeback_control *wbc,
1625 bh_end_io_t *handler)
1612{ 1626{
1613 int err; 1627 int err;
1614 sector_t block; 1628 sector_t block;
@@ -1693,7 +1707,7 @@ static int __block_write_full_page(struct inode *inode, struct page *page,
1693 continue; 1707 continue;
1694 } 1708 }
1695 if (test_clear_buffer_dirty(bh)) { 1709 if (test_clear_buffer_dirty(bh)) {
1696 mark_buffer_async_write(bh); 1710 mark_buffer_async_write_endio(bh, handler);
1697 } else { 1711 } else {
1698 unlock_buffer(bh); 1712 unlock_buffer(bh);
1699 } 1713 }
@@ -1746,7 +1760,7 @@ recover:
1746 if (buffer_mapped(bh) && buffer_dirty(bh) && 1760 if (buffer_mapped(bh) && buffer_dirty(bh) &&
1747 !buffer_delay(bh)) { 1761 !buffer_delay(bh)) {
1748 lock_buffer(bh); 1762 lock_buffer(bh);
1749 mark_buffer_async_write(bh); 1763 mark_buffer_async_write_endio(bh, handler);
1750 } else { 1764 } else {
1751 /* 1765 /*
1752 * The buffer may have been set dirty during 1766 * The buffer may have been set dirty during
@@ -2383,7 +2397,8 @@ block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
2383 if ((page->mapping != inode->i_mapping) || 2397 if ((page->mapping != inode->i_mapping) ||
2384 (page_offset(page) > size)) { 2398 (page_offset(page) > size)) {
2385 /* page got truncated out from underneath us */ 2399 /* page got truncated out from underneath us */
2386 goto out_unlock; 2400 unlock_page(page);
2401 goto out;
2387 } 2402 }
2388 2403
2389 /* page is wholly or partially inside EOF */ 2404 /* page is wholly or partially inside EOF */
@@ -2397,14 +2412,15 @@ block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
2397 ret = block_commit_write(page, 0, end); 2412 ret = block_commit_write(page, 0, end);
2398 2413
2399 if (unlikely(ret)) { 2414 if (unlikely(ret)) {
2415 unlock_page(page);
2400 if (ret == -ENOMEM) 2416 if (ret == -ENOMEM)
2401 ret = VM_FAULT_OOM; 2417 ret = VM_FAULT_OOM;
2402 else /* -ENOSPC, -EIO, etc */ 2418 else /* -ENOSPC, -EIO, etc */
2403 ret = VM_FAULT_SIGBUS; 2419 ret = VM_FAULT_SIGBUS;
2404 } 2420 } else
2421 ret = VM_FAULT_LOCKED;
2405 2422
2406out_unlock: 2423out:
2407 unlock_page(page);
2408 return ret; 2424 return ret;
2409} 2425}
2410 2426
@@ -2672,7 +2688,8 @@ int nobh_writepage(struct page *page, get_block_t *get_block,
2672out: 2688out:
2673 ret = mpage_writepage(page, get_block, wbc); 2689 ret = mpage_writepage(page, get_block, wbc);
2674 if (ret == -EAGAIN) 2690 if (ret == -EAGAIN)
2675 ret = __block_write_full_page(inode, page, get_block, wbc); 2691 ret = __block_write_full_page(inode, page, get_block, wbc,
2692 end_buffer_async_write);
2676 return ret; 2693 return ret;
2677} 2694}
2678EXPORT_SYMBOL(nobh_writepage); 2695EXPORT_SYMBOL(nobh_writepage);
@@ -2830,9 +2847,10 @@ out:
2830 2847
2831/* 2848/*
2832 * The generic ->writepage function for buffer-backed address_spaces 2849 * The generic ->writepage function for buffer-backed address_spaces
2850 * this form passes in the end_io handler used to finish the IO.
2833 */ 2851 */
2834int block_write_full_page(struct page *page, get_block_t *get_block, 2852int block_write_full_page_endio(struct page *page, get_block_t *get_block,
2835 struct writeback_control *wbc) 2853 struct writeback_control *wbc, bh_end_io_t *handler)
2836{ 2854{
2837 struct inode * const inode = page->mapping->host; 2855 struct inode * const inode = page->mapping->host;
2838 loff_t i_size = i_size_read(inode); 2856 loff_t i_size = i_size_read(inode);
@@ -2841,7 +2859,8 @@ int block_write_full_page(struct page *page, get_block_t *get_block,
2841 2859
2842 /* Is the page fully inside i_size? */ 2860 /* Is the page fully inside i_size? */
2843 if (page->index < end_index) 2861 if (page->index < end_index)
2844 return __block_write_full_page(inode, page, get_block, wbc); 2862 return __block_write_full_page(inode, page, get_block, wbc,
2863 handler);
2845 2864
2846 /* Is the page fully outside i_size? (truncate in progress) */ 2865 /* Is the page fully outside i_size? (truncate in progress) */
2847 offset = i_size & (PAGE_CACHE_SIZE-1); 2866 offset = i_size & (PAGE_CACHE_SIZE-1);
@@ -2864,9 +2883,20 @@ int block_write_full_page(struct page *page, get_block_t *get_block,
2864 * writes to that region are not written out to the file." 2883 * writes to that region are not written out to the file."
2865 */ 2884 */
2866 zero_user_segment(page, offset, PAGE_CACHE_SIZE); 2885 zero_user_segment(page, offset, PAGE_CACHE_SIZE);
2867 return __block_write_full_page(inode, page, get_block, wbc); 2886 return __block_write_full_page(inode, page, get_block, wbc, handler);
2887}
2888
2889/*
2890 * The generic ->writepage function for buffer-backed address_spaces
2891 */
2892int block_write_full_page(struct page *page, get_block_t *get_block,
2893 struct writeback_control *wbc)
2894{
2895 return block_write_full_page_endio(page, get_block, wbc,
2896 end_buffer_async_write);
2868} 2897}
2869 2898
2899
2870sector_t generic_block_bmap(struct address_space *mapping, sector_t block, 2900sector_t generic_block_bmap(struct address_space *mapping, sector_t block,
2871 get_block_t *get_block) 2901 get_block_t *get_block)
2872{ 2902{
@@ -3335,9 +3365,11 @@ EXPORT_SYMBOL(block_read_full_page);
3335EXPORT_SYMBOL(block_sync_page); 3365EXPORT_SYMBOL(block_sync_page);
3336EXPORT_SYMBOL(block_truncate_page); 3366EXPORT_SYMBOL(block_truncate_page);
3337EXPORT_SYMBOL(block_write_full_page); 3367EXPORT_SYMBOL(block_write_full_page);
3368EXPORT_SYMBOL(block_write_full_page_endio);
3338EXPORT_SYMBOL(cont_write_begin); 3369EXPORT_SYMBOL(cont_write_begin);
3339EXPORT_SYMBOL(end_buffer_read_sync); 3370EXPORT_SYMBOL(end_buffer_read_sync);
3340EXPORT_SYMBOL(end_buffer_write_sync); 3371EXPORT_SYMBOL(end_buffer_write_sync);
3372EXPORT_SYMBOL(end_buffer_async_write);
3341EXPORT_SYMBOL(file_fsync); 3373EXPORT_SYMBOL(file_fsync);
3342EXPORT_SYMBOL(generic_block_bmap); 3374EXPORT_SYMBOL(generic_block_bmap);
3343EXPORT_SYMBOL(generic_cont_expand_simple); 3375EXPORT_SYMBOL(generic_cont_expand_simple);
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index 65984006192c..f20c4069c220 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -1,3 +1,16 @@
1Version 1.58
2------------
3Guard against buffer overruns in various UCS-2 to UTF-8 string conversions
4when the UTF-8 string is composed of unusually long (more than 4 byte) converted
5characters. Add support for mounting root of a share which redirects immediately
6to DFS target. Convert string conversion functions from Unicode to more
7accurately mark string length before allocating memory (which may help the
8rare cases where a UTF-8 string is much larger than the UCS2 string that
9we converted from). Fix endianness of the vcnum field used during
10session setup to distinguish multiple mounts to same server from different
11userids. Raw NTLMSSP fixed (it requires /proc/fs/cifs/experimental
12flag to be set to 2, and mount must enable krb5 to turn on extended security).
13
1Version 1.57 14Version 1.57
2------------ 15------------
3Improve support for multiple security contexts to the same server. We 16Improve support for multiple security contexts to the same server. We
@@ -15,7 +28,8 @@ Posix file open support added (turned off after one attempt if server
15fails to support it properly, as with Samba server versions prior to 3.3.2) 28fails to support it properly, as with Samba server versions prior to 3.3.2)
16Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too 29Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too
17little memory for the "nativeFileSystem" field returned by the server 30little memory for the "nativeFileSystem" field returned by the server
18during mount). 31during mount). Endian convert inode numbers if necessary (makes it easier
32to compare inode numbers on network files from big endian systems).
19 33
20Version 1.56 34Version 1.56
21------------ 35------------
diff --git a/fs/cifs/README b/fs/cifs/README
index 07434181623b..db208ddb9899 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -651,7 +651,15 @@ Experimental When set to 1 used to enable certain experimental
651 signing turned on in case buffer was modified 651 signing turned on in case buffer was modified
652 just before it was sent, also this flag will 652 just before it was sent, also this flag will
653 be used to use the new experimental directory change 653 be used to use the new experimental directory change
654 notification code). 654 notification code). When set to 2 enables
655 an additional experimental feature, "raw ntlmssp"
656 session establishment support (which allows
657 specifying "sec=ntlmssp" on mount). The Linux cifs
658 module will use ntlmv2 authentication encapsulated
659 in "raw ntlmssp" (not using SPNEGO) when
660 "sec=ntlmssp" is specified on mount.
661 This support also requires building cifs with
662 the CONFIG_CIFS_EXPERIMENTAL configuration flag.
655 663
656These experimental features and tracing can be enabled by changing flags in 664These experimental features and tracing can be enabled by changing flags in
657/proc/fs/cifs (after the cifs module has been installed or built into the 665/proc/fs/cifs (after the cifs module has been installed or built into the
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c
index 5fdbf8a14472..83d62759c7c7 100644
--- a/fs/cifs/cifs_dfs_ref.c
+++ b/fs/cifs/cifs_dfs_ref.c
@@ -340,28 +340,24 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd)
340 cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); 340 cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
341 341
342 for (i = 0; i < num_referrals; i++) { 342 for (i = 0; i < num_referrals; i++) {
343 int len;
343 dump_referral(referrals+i); 344 dump_referral(referrals+i);
344 /* connect to a storage node */ 345 /* connect to a node */
345 if (referrals[i].flags & DFSREF_STORAGE_SERVER) { 346 len = strlen(referrals[i].node_name);
346 int len; 347 if (len < 2) {
347 len = strlen(referrals[i].node_name); 348 cERROR(1, ("%s: Net Address path too short: %s",
348 if (len < 2) {
349 cERROR(1, ("%s: Net Address path too short: %s",
350 __func__, referrals[i].node_name)); 349 __func__, referrals[i].node_name));
351 rc = -EINVAL; 350 rc = -EINVAL;
352 goto out_err; 351 goto out_err;
353 } 352 }
354 mnt = cifs_dfs_do_refmount(nd->path.mnt, 353 mnt = cifs_dfs_do_refmount(nd->path.mnt,
355 nd->path.dentry, 354 nd->path.dentry, referrals + i);
356 referrals + i); 355 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p", __func__,
357 cFYI(1, ("%s: cifs_dfs_do_refmount:%s , mnt:%p",
358 __func__,
359 referrals[i].node_name, mnt)); 356 referrals[i].node_name, mnt));
360 357
361 /* complete mount procedure if we accured submount */ 358 /* complete mount procedure if we accured submount */
362 if (!IS_ERR(mnt)) 359 if (!IS_ERR(mnt))
363 break; 360 break;
364 }
365 } 361 }
366 362
367 /* we need it cause for() above could exit without valid submount */ 363 /* we need it cause for() above could exit without valid submount */
diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c
index 3fd3a9df043a..67bf93a40d2e 100644
--- a/fs/cifs/cifs_spnego.c
+++ b/fs/cifs/cifs_spnego.c
@@ -41,7 +41,7 @@ cifs_spnego_key_instantiate(struct key *key, const void *data, size_t datalen)
41 41
42 /* attach the data */ 42 /* attach the data */
43 memcpy(payload, data, datalen); 43 memcpy(payload, data, datalen);
44 rcu_assign_pointer(key->payload.data, payload); 44 key->payload.data = payload;
45 ret = 0; 45 ret = 0;
46 46
47error: 47error:
diff --git a/fs/cifs/cifs_unicode.c b/fs/cifs/cifs_unicode.c
index 7d75272a6b3f..60e3c4253de0 100644
--- a/fs/cifs/cifs_unicode.c
+++ b/fs/cifs/cifs_unicode.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * fs/cifs/cifs_unicode.c 2 * fs/cifs/cifs_unicode.c
3 * 3 *
4 * Copyright (c) International Business Machines Corp., 2000,2005 4 * Copyright (c) International Business Machines Corp., 2000,2009
5 * Modified by Steve French (sfrench@us.ibm.com) 5 * Modified by Steve French (sfrench@us.ibm.com)
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -26,31 +26,157 @@
26#include "cifs_debug.h" 26#include "cifs_debug.h"
27 27
28/* 28/*
29 * NAME: cifs_strfromUCS() 29 * cifs_ucs2_bytes - how long will a string be after conversion?
30 * 30 * @ucs - pointer to input string
31 * FUNCTION: Convert little-endian unicode string to character string 31 * @maxbytes - don't go past this many bytes of input string
32 * @codepage - destination codepage
32 * 33 *
34 * Walk a ucs2le string and return the number of bytes that the string will
35 * be after being converted to the given charset, not including any null
36 * termination required. Don't walk past maxbytes in the source buffer.
33 */ 37 */
34int 38int
35cifs_strfromUCS_le(char *to, const __le16 *from, 39cifs_ucs2_bytes(const __le16 *from, int maxbytes,
36 int len, const struct nls_table *codepage) 40 const struct nls_table *codepage)
37{ 41{
38 int i; 42 int i;
39 int outlen = 0; 43 int charlen, outlen = 0;
44 int maxwords = maxbytes / 2;
45 char tmp[NLS_MAX_CHARSET_SIZE];
40 46
41 for (i = 0; (i < len) && from[i]; i++) { 47 for (i = 0; from[i] && i < maxwords; i++) {
42 int charlen; 48 charlen = codepage->uni2char(le16_to_cpu(from[i]), tmp,
43 /* 2.4.0 kernel or greater */ 49 NLS_MAX_CHARSET_SIZE);
44 charlen = 50 if (charlen > 0)
45 codepage->uni2char(le16_to_cpu(from[i]), &to[outlen],
46 NLS_MAX_CHARSET_SIZE);
47 if (charlen > 0) {
48 outlen += charlen; 51 outlen += charlen;
49 } else { 52 else
50 to[outlen++] = '?'; 53 outlen++;
54 }
55
56 return outlen;
57}
58
59/*
60 * cifs_mapchar - convert a little-endian char to proper char in codepage
61 * @target - where converted character should be copied
62 * @src_char - 2 byte little-endian source character
63 * @cp - codepage to which character should be converted
64 * @mapchar - should character be mapped according to mapchars mount option?
65 *
66 * This function handles the conversion of a single character. It is the
67 * responsibility of the caller to ensure that the target buffer is large
68 * enough to hold the result of the conversion (at least NLS_MAX_CHARSET_SIZE).
69 */
70static int
71cifs_mapchar(char *target, const __le16 src_char, const struct nls_table *cp,
72 bool mapchar)
73{
74 int len = 1;
75
76 if (!mapchar)
77 goto cp_convert;
78
79 /*
80 * BB: Cannot handle remapping UNI_SLASH until all the calls to
81 * build_path_from_dentry are modified, as they use slash as
82 * separator.
83 */
84 switch (le16_to_cpu(src_char)) {
85 case UNI_COLON:
86 *target = ':';
87 break;
88 case UNI_ASTERIK:
89 *target = '*';
90 break;
91 case UNI_QUESTION:
92 *target = '?';
93 break;
94 case UNI_PIPE:
95 *target = '|';
96 break;
97 case UNI_GRTRTHAN:
98 *target = '>';
99 break;
100 case UNI_LESSTHAN:
101 *target = '<';
102 break;
103 default:
104 goto cp_convert;
105 }
106
107out:
108 return len;
109
110cp_convert:
111 len = cp->uni2char(le16_to_cpu(src_char), target,
112 NLS_MAX_CHARSET_SIZE);
113 if (len <= 0) {
114 *target = '?';
115 len = 1;
116 }
117 goto out;
118}
119
120/*
121 * cifs_from_ucs2 - convert utf16le string to local charset
122 * @to - destination buffer
123 * @from - source buffer
124 * @tolen - destination buffer size (in bytes)
125 * @fromlen - source buffer size (in bytes)
126 * @codepage - codepage to which characters should be converted
127 * @mapchar - should characters be remapped according to the mapchars option?
128 *
129 * Convert a little-endian ucs2le string (as sent by the server) to a string
130 * in the provided codepage. The tolen and fromlen parameters are to ensure
131 * that the code doesn't walk off of the end of the buffer (which is always
132 * a danger if the alignment of the source buffer is off). The destination
133 * string is always properly null terminated and fits in the destination
134 * buffer. Returns the length of the destination string in bytes (including
135 * null terminator).
136 *
137 * Note that some windows versions actually send multiword UTF-16 characters
138 * instead of straight UCS-2. The linux nls routines however aren't able to
139 * deal with those characters properly. In the event that we get some of
140 * those characters, they won't be translated properly.
141 */
142int
143cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
144 const struct nls_table *codepage, bool mapchar)
145{
146 int i, charlen, safelen;
147 int outlen = 0;
148 int nullsize = nls_nullsize(codepage);
149 int fromwords = fromlen / 2;
150 char tmp[NLS_MAX_CHARSET_SIZE];
151
152 /*
153 * because the chars can be of varying widths, we need to take care
154 * not to overflow the destination buffer when we get close to the
155 * end of it. Until we get to this offset, we don't need to check
156 * for overflow however.
157 */
158 safelen = tolen - (NLS_MAX_CHARSET_SIZE + nullsize);
159
160 for (i = 0; i < fromwords && from[i]; i++) {
161 /*
162 * check to see if converting this character might make the
163 * conversion bleed into the null terminator
164 */
165 if (outlen >= safelen) {
166 charlen = cifs_mapchar(tmp, from[i], codepage, mapchar);
167 if ((outlen + charlen) > (tolen - nullsize))
168 break;
51 } 169 }
170
171 /* put converted char into 'to' buffer */
172 charlen = cifs_mapchar(&to[outlen], from[i], codepage, mapchar);
173 outlen += charlen;
52 } 174 }
53 to[outlen] = 0; 175
176 /* properly null-terminate string */
177 for (i = 0; i < nullsize; i++)
178 to[outlen++] = 0;
179
54 return outlen; 180 return outlen;
55} 181}
56 182
@@ -88,3 +214,41 @@ cifs_strtoUCS(__le16 *to, const char *from, int len,
88 return i; 214 return i;
89} 215}
90 216
217/*
218 * cifs_strndup_from_ucs - copy a string from wire format to the local codepage
219 * @src - source string
220 * @maxlen - don't walk past this many bytes in the source string
221 * @is_unicode - is this a unicode string?
222 * @codepage - destination codepage
223 *
224 * Take a string given by the server, convert it to the local codepage and
225 * put it in a new buffer. Returns a pointer to the new string or NULL on
226 * error.
227 */
228char *
229cifs_strndup_from_ucs(const char *src, const int maxlen, const bool is_unicode,
230 const struct nls_table *codepage)
231{
232 int len;
233 char *dst;
234
235 if (is_unicode) {
236 len = cifs_ucs2_bytes((__le16 *) src, maxlen, codepage);
237 len += nls_nullsize(codepage);
238 dst = kmalloc(len, GFP_KERNEL);
239 if (!dst)
240 return NULL;
241 cifs_from_ucs2(dst, (__le16 *) src, len, maxlen, codepage,
242 false);
243 } else {
244 len = strnlen(src, maxlen);
245 len++;
246 dst = kmalloc(len, GFP_KERNEL);
247 if (!dst)
248 return NULL;
249 strlcpy(dst, src, len);
250 }
251
252 return dst;
253}
254
diff --git a/fs/cifs/cifs_unicode.h b/fs/cifs/cifs_unicode.h
index 14eb9a2395d3..650638275a6f 100644
--- a/fs/cifs/cifs_unicode.h
+++ b/fs/cifs/cifs_unicode.h
@@ -5,7 +5,7 @@
5 * Convert a unicode character to upper or lower case using 5 * Convert a unicode character to upper or lower case using
6 * compressed tables. 6 * compressed tables.
7 * 7 *
8 * Copyright (c) International Business Machines Corp., 2000,2007 8 * Copyright (c) International Business Machines Corp., 2000,2009
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify 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 11 * it under the terms of the GNU General Public License as published by
@@ -37,6 +37,19 @@
37 37
38#define UNIUPR_NOLOWER /* Example to not expand lower case tables */ 38#define UNIUPR_NOLOWER /* Example to not expand lower case tables */
39 39
40/*
41 * Windows maps these to the user defined 16 bit Unicode range since they are
42 * reserved symbols (along with \ and /), otherwise illegal to store
43 * in filenames in NTFS
44 */
45#define UNI_ASTERIK (__u16) ('*' + 0xF000)
46#define UNI_QUESTION (__u16) ('?' + 0xF000)
47#define UNI_COLON (__u16) (':' + 0xF000)
48#define UNI_GRTRTHAN (__u16) ('>' + 0xF000)
49#define UNI_LESSTHAN (__u16) ('<' + 0xF000)
50#define UNI_PIPE (__u16) ('|' + 0xF000)
51#define UNI_SLASH (__u16) ('\\' + 0xF000)
52
40/* Just define what we want from uniupr.h. We don't want to define the tables 53/* Just define what we want from uniupr.h. We don't want to define the tables
41 * in each source file. 54 * in each source file.
42 */ 55 */
@@ -59,8 +72,14 @@ extern struct UniCaseRange UniLowerRange[];
59#endif /* UNIUPR_NOLOWER */ 72#endif /* UNIUPR_NOLOWER */
60 73
61#ifdef __KERNEL__ 74#ifdef __KERNEL__
62int cifs_strfromUCS_le(char *, const __le16 *, int, const struct nls_table *); 75int cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
76 const struct nls_table *codepage, bool mapchar);
77int cifs_ucs2_bytes(const __le16 *from, int maxbytes,
78 const struct nls_table *codepage);
63int cifs_strtoUCS(__le16 *, const char *, int, const struct nls_table *); 79int cifs_strtoUCS(__le16 *, const char *, int, const struct nls_table *);
80char *cifs_strndup_from_ucs(const char *src, const int maxlen,
81 const bool is_unicode,
82 const struct nls_table *codepage);
64#endif 83#endif
65 84
66/* 85/*
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 38491fd3871d..5e6d35804d73 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -35,6 +35,7 @@
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/kthread.h> 36#include <linux/kthread.h>
37#include <linux/freezer.h> 37#include <linux/freezer.h>
38#include <linux/smp_lock.h>
38#include "cifsfs.h" 39#include "cifsfs.h"
39#include "cifspdu.h" 40#include "cifspdu.h"
40#define DECLARE_GLOBALS_HERE 41#define DECLARE_GLOBALS_HERE
@@ -66,9 +67,6 @@ unsigned int sign_CIFS_PDUs = 1;
66extern struct task_struct *oplockThread; /* remove sparse warning */ 67extern struct task_struct *oplockThread; /* remove sparse warning */
67struct task_struct *oplockThread = NULL; 68struct task_struct *oplockThread = NULL;
68/* extern struct task_struct * dnotifyThread; remove sparse warning */ 69/* extern struct task_struct * dnotifyThread; remove sparse warning */
69#ifdef CONFIG_CIFS_EXPERIMENTAL
70static struct task_struct *dnotifyThread = NULL;
71#endif
72static const struct super_operations cifs_super_ops; 70static const struct super_operations cifs_super_ops;
73unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE; 71unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE;
74module_param(CIFSMaxBufSize, int, 0); 72module_param(CIFSMaxBufSize, int, 0);
@@ -316,6 +314,7 @@ cifs_alloc_inode(struct super_block *sb)
316 cifs_inode->clientCanCacheAll = false; 314 cifs_inode->clientCanCacheAll = false;
317 cifs_inode->delete_pending = false; 315 cifs_inode->delete_pending = false;
318 cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */ 316 cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
317 cifs_inode->server_eof = 0;
319 318
320 /* Can not set i_flags here - they get immediately overwritten 319 /* Can not set i_flags here - they get immediately overwritten
321 to zero by the VFS */ 320 to zero by the VFS */
@@ -532,6 +531,7 @@ static void cifs_umount_begin(struct super_block *sb)
532 if (tcon == NULL) 531 if (tcon == NULL)
533 return; 532 return;
534 533
534 lock_kernel();
535 read_lock(&cifs_tcp_ses_lock); 535 read_lock(&cifs_tcp_ses_lock);
536 if (tcon->tc_count == 1) 536 if (tcon->tc_count == 1)
537 tcon->tidStatus = CifsExiting; 537 tcon->tidStatus = CifsExiting;
@@ -550,6 +550,7 @@ static void cifs_umount_begin(struct super_block *sb)
550 } 550 }
551/* BB FIXME - finish add checks for tidStatus BB */ 551/* BB FIXME - finish add checks for tidStatus BB */
552 552
553 unlock_kernel();
553 return; 554 return;
554} 555}
555 556
@@ -601,8 +602,7 @@ cifs_get_sb(struct file_system_type *fs_type,
601 602
602 rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0); 603 rc = cifs_read_super(sb, data, dev_name, flags & MS_SILENT ? 1 : 0);
603 if (rc) { 604 if (rc) {
604 up_write(&sb->s_umount); 605 deactivate_locked_super(sb);
605 deactivate_super(sb);
606 return rc; 606 return rc;
607 } 607 }
608 sb->s_flags |= MS_ACTIVE; 608 sb->s_flags |= MS_ACTIVE;
@@ -1040,34 +1040,6 @@ static int cifs_oplock_thread(void *dummyarg)
1040 return 0; 1040 return 0;
1041} 1041}
1042 1042
1043#ifdef CONFIG_CIFS_EXPERIMENTAL
1044static int cifs_dnotify_thread(void *dummyarg)
1045{
1046 struct list_head *tmp;
1047 struct TCP_Server_Info *server;
1048
1049 do {
1050 if (try_to_freeze())
1051 continue;
1052 set_current_state(TASK_INTERRUPTIBLE);
1053 schedule_timeout(15*HZ);
1054 /* check if any stuck requests that need
1055 to be woken up and wakeq so the
1056 thread can wake up and error out */
1057 read_lock(&cifs_tcp_ses_lock);
1058 list_for_each(tmp, &cifs_tcp_ses_list) {
1059 server = list_entry(tmp, struct TCP_Server_Info,
1060 tcp_ses_list);
1061 if (atomic_read(&server->inFlight))
1062 wake_up_all(&server->response_q);
1063 }
1064 read_unlock(&cifs_tcp_ses_lock);
1065 } while (!kthread_should_stop());
1066
1067 return 0;
1068}
1069#endif
1070
1071static int __init 1043static int __init
1072init_cifs(void) 1044init_cifs(void)
1073{ 1045{
@@ -1144,21 +1116,8 @@ init_cifs(void)
1144 goto out_unregister_dfs_key_type; 1116 goto out_unregister_dfs_key_type;
1145 } 1117 }
1146 1118
1147#ifdef CONFIG_CIFS_EXPERIMENTAL
1148 dnotifyThread = kthread_run(cifs_dnotify_thread, NULL, "cifsdnotifyd");
1149 if (IS_ERR(dnotifyThread)) {
1150 rc = PTR_ERR(dnotifyThread);
1151 cERROR(1, ("error %d create dnotify thread", rc));
1152 goto out_stop_oplock_thread;
1153 }
1154#endif
1155
1156 return 0; 1119 return 0;
1157 1120
1158#ifdef CONFIG_CIFS_EXPERIMENTAL
1159 out_stop_oplock_thread:
1160#endif
1161 kthread_stop(oplockThread);
1162 out_unregister_dfs_key_type: 1121 out_unregister_dfs_key_type:
1163#ifdef CONFIG_CIFS_DFS_UPCALL 1122#ifdef CONFIG_CIFS_DFS_UPCALL
1164 unregister_key_type(&key_type_dns_resolver); 1123 unregister_key_type(&key_type_dns_resolver);
@@ -1196,9 +1155,6 @@ exit_cifs(void)
1196 cifs_destroy_inodecache(); 1155 cifs_destroy_inodecache();
1197 cifs_destroy_mids(); 1156 cifs_destroy_mids();
1198 cifs_destroy_request_bufs(); 1157 cifs_destroy_request_bufs();
1199#ifdef CONFIG_CIFS_EXPERIMENTAL
1200 kthread_stop(dnotifyThread);
1201#endif
1202 kthread_stop(oplockThread); 1158 kthread_stop(oplockThread);
1203} 1159}
1204 1160
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h
index 77e190dc2883..051b71cfdea9 100644
--- a/fs/cifs/cifsfs.h
+++ b/fs/cifs/cifsfs.h
@@ -100,5 +100,5 @@ extern long cifs_ioctl(struct file *filep, unsigned int cmd, unsigned long arg);
100extern const struct export_operations cifs_export_ops; 100extern const struct export_operations cifs_export_ops;
101#endif /* EXPERIMENTAL */ 101#endif /* EXPERIMENTAL */
102 102
103#define CIFS_VERSION "1.57" 103#define CIFS_VERSION "1.58"
104#endif /* _CIFSFS_H */ 104#endif /* _CIFSFS_H */
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 9fbf4dff5da6..a61ab772c6f6 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -82,8 +82,8 @@ enum securityEnum {
82 LANMAN, /* Legacy LANMAN auth */ 82 LANMAN, /* Legacy LANMAN auth */
83 NTLM, /* Legacy NTLM012 auth with NTLM hash */ 83 NTLM, /* Legacy NTLM012 auth with NTLM hash */
84 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */ 84 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */
85 RawNTLMSSP, /* NTLMSSP without SPNEGO */ 85 RawNTLMSSP, /* NTLMSSP without SPNEGO, NTLMv2 hash */
86 NTLMSSP, /* NTLMSSP via SPNEGO */ 86 NTLMSSP, /* NTLMSSP via SPNEGO, NTLMv2 hash */
87 Kerberos, /* Kerberos via SPNEGO */ 87 Kerberos, /* Kerberos via SPNEGO */
88 MSKerberos, /* MS Kerberos via SPNEGO */ 88 MSKerberos, /* MS Kerberos via SPNEGO */
89}; 89};
@@ -350,7 +350,7 @@ struct cifsFileInfo {
350 bool invalidHandle:1; /* file closed via session abend */ 350 bool invalidHandle:1; /* file closed via session abend */
351 bool messageMode:1; /* for pipes: message vs byte mode */ 351 bool messageMode:1; /* for pipes: message vs byte mode */
352 atomic_t wrtPending; /* handle in use - defer close */ 352 atomic_t wrtPending; /* handle in use - defer close */
353 struct semaphore fh_sem; /* prevents reopen race after dead ses*/ 353 struct mutex fh_mutex; /* prevents reopen race after dead ses*/
354 struct cifs_search_info srch_inf; 354 struct cifs_search_info srch_inf;
355}; 355};
356 356
@@ -370,6 +370,7 @@ struct cifsInodeInfo {
370 bool clientCanCacheAll:1; /* read and writebehind oplock */ 370 bool clientCanCacheAll:1; /* read and writebehind oplock */
371 bool oplockPending:1; 371 bool oplockPending:1;
372 bool delete_pending:1; /* DELETE_ON_CLOSE is set */ 372 bool delete_pending:1; /* DELETE_ON_CLOSE is set */
373 u64 server_eof; /* current file size on server */
373 struct inode vfs_inode; 374 struct inode vfs_inode;
374}; 375};
375 376
@@ -530,6 +531,7 @@ static inline void free_dfs_info_array(struct dfs_info3_param *param,
530#define CIFSSEC_MAY_PLNTXT 0 531#define CIFSSEC_MAY_PLNTXT 0
531#endif /* weak passwords */ 532#endif /* weak passwords */
532#define CIFSSEC_MAY_SEAL 0x00040 /* not supported yet */ 533#define CIFSSEC_MAY_SEAL 0x00040 /* not supported yet */
534#define CIFSSEC_MAY_NTLMSSP 0x00080 /* raw ntlmssp with ntlmv2 */
533 535
534#define CIFSSEC_MUST_SIGN 0x01001 536#define CIFSSEC_MUST_SIGN 0x01001
535/* note that only one of the following can be set so the 537/* note that only one of the following can be set so the
@@ -542,22 +544,23 @@ require use of the stronger protocol */
542#define CIFSSEC_MUST_LANMAN 0x10010 544#define CIFSSEC_MUST_LANMAN 0x10010
543#define CIFSSEC_MUST_PLNTXT 0x20020 545#define CIFSSEC_MUST_PLNTXT 0x20020
544#ifdef CONFIG_CIFS_UPCALL 546#ifdef CONFIG_CIFS_UPCALL
545#define CIFSSEC_MASK 0x3F03F /* allows weak security but also krb5 */ 547#define CIFSSEC_MASK 0xAF0AF /* allows weak security but also krb5 */
546#else 548#else
547#define CIFSSEC_MASK 0x37037 /* current flags supported if weak */ 549#define CIFSSEC_MASK 0xA70A7 /* current flags supported if weak */
548#endif /* UPCALL */ 550#endif /* UPCALL */
549#else /* do not allow weak pw hash */ 551#else /* do not allow weak pw hash */
550#ifdef CONFIG_CIFS_UPCALL 552#ifdef CONFIG_CIFS_UPCALL
551#define CIFSSEC_MASK 0x0F00F /* flags supported if no weak allowed */ 553#define CIFSSEC_MASK 0x8F08F /* flags supported if no weak allowed */
552#else 554#else
553#define CIFSSEC_MASK 0x07007 /* flags supported if no weak allowed */ 555#define CIFSSEC_MASK 0x87087 /* flags supported if no weak allowed */
554#endif /* UPCALL */ 556#endif /* UPCALL */
555#endif /* WEAK_PW_HASH */ 557#endif /* WEAK_PW_HASH */
556#define CIFSSEC_MUST_SEAL 0x40040 /* not supported yet */ 558#define CIFSSEC_MUST_SEAL 0x40040 /* not supported yet */
559#define CIFSSEC_MUST_NTLMSSP 0x80080 /* raw ntlmssp with ntlmv2 */
557 560
558#define CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2) 561#define CIFSSEC_DEF (CIFSSEC_MAY_SIGN | CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2)
559#define CIFSSEC_MAX (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_NTLMV2) 562#define CIFSSEC_MAX (CIFSSEC_MUST_SIGN | CIFSSEC_MUST_NTLMV2)
560#define CIFSSEC_AUTH_MASK (CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_LANMAN | CIFSSEC_MAY_PLNTXT | CIFSSEC_MAY_KRB5) 563#define CIFSSEC_AUTH_MASK (CIFSSEC_MAY_NTLM | CIFSSEC_MAY_NTLMV2 | CIFSSEC_MAY_LANMAN | CIFSSEC_MAY_PLNTXT | CIFSSEC_MAY_KRB5 | CIFSSEC_MAY_NTLMSSP)
561/* 564/*
562 ***************************************************************** 565 *****************************************************************
563 * All constants go here 566 * All constants go here
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
index b370489c8da5..a785f69dbc9f 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/cifs/cifspdu.h
@@ -2163,7 +2163,7 @@ typedef struct {
2163 __le32 Type; 2163 __le32 Type;
2164 __le64 DevMajor; 2164 __le64 DevMajor;
2165 __le64 DevMinor; 2165 __le64 DevMinor;
2166 __u64 UniqueId; 2166 __le64 UniqueId;
2167 __le64 Permissions; 2167 __le64 Permissions;
2168 __le64 Nlinks; 2168 __le64 Nlinks;
2169} __attribute__((packed)) FILE_UNIX_BASIC_INFO; /* level 0x200 QPathInfo */ 2169} __attribute__((packed)) FILE_UNIX_BASIC_INFO; /* level 0x200 QPathInfo */
@@ -2308,7 +2308,7 @@ struct unlink_psx_rq { /* level 0x20a SetPathInfo */
2308} __attribute__((packed)); 2308} __attribute__((packed));
2309 2309
2310struct file_internal_info { 2310struct file_internal_info {
2311 __u64 UniqueId; /* inode number */ 2311 __le64 UniqueId; /* inode number */
2312} __attribute__((packed)); /* level 0x3ee */ 2312} __attribute__((packed)); /* level 0x3ee */
2313 2313
2314struct file_mode_info { 2314struct file_mode_info {
@@ -2338,7 +2338,7 @@ typedef struct {
2338 __le32 Type; 2338 __le32 Type;
2339 __le64 DevMajor; 2339 __le64 DevMajor;
2340 __le64 DevMinor; 2340 __le64 DevMinor;
2341 __u64 UniqueId; 2341 __le64 UniqueId;
2342 __le64 Permissions; 2342 __le64 Permissions;
2343 __le64 Nlinks; 2343 __le64 Nlinks;
2344 char FileName[1]; 2344 char FileName[1];
@@ -2386,7 +2386,7 @@ typedef struct {
2386 __le32 FileNameLength; 2386 __le32 FileNameLength;
2387 __le32 EaSize; /* EA size */ 2387 __le32 EaSize; /* EA size */
2388 __le32 Reserved; 2388 __le32 Reserved;
2389 __u64 UniqueId; /* inode num - le since Samba puts ino in low 32 bit*/ 2389 __le64 UniqueId; /* inode num - le since Samba puts ino in low 32 bit*/
2390 char FileName[1]; 2390 char FileName[1];
2391} __attribute__((packed)) SEARCH_ID_FULL_DIR_INFO; /* level 0x105 FF rsp data */ 2391} __attribute__((packed)) SEARCH_ID_FULL_DIR_INFO; /* level 0x105 FF rsp data */
2392 2392
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 4167716d32f2..fae083930eee 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -260,8 +260,7 @@ extern int CIFSUnixCreateSymLink(const int xid,
260 const struct nls_table *nls_codepage); 260 const struct nls_table *nls_codepage);
261extern int CIFSSMBUnixQuerySymLink(const int xid, 261extern int CIFSSMBUnixQuerySymLink(const int xid,
262 struct cifsTconInfo *tcon, 262 struct cifsTconInfo *tcon,
263 const unsigned char *searchName, 263 const unsigned char *searchName, char **syminfo,
264 char *syminfo, const int buflen,
265 const struct nls_table *nls_codepage); 264 const struct nls_table *nls_codepage);
266extern int CIFSSMBQueryReparseLinkInfo(const int xid, 265extern int CIFSSMBQueryReparseLinkInfo(const int xid,
267 struct cifsTconInfo *tcon, 266 struct cifsTconInfo *tcon,
@@ -307,8 +306,6 @@ extern int CIFSGetSrvInodeNumber(const int xid, struct cifsTconInfo *tcon,
307 const unsigned char *searchName, __u64 *inode_number, 306 const unsigned char *searchName, __u64 *inode_number,
308 const struct nls_table *nls_codepage, 307 const struct nls_table *nls_codepage,
309 int remap_special_chars); 308 int remap_special_chars);
310extern int cifs_convertUCSpath(char *target, const __le16 *source, int maxlen,
311 const struct nls_table *codepage);
312extern int cifsConvertToUCS(__le16 *target, const char *source, int maxlen, 309extern int cifsConvertToUCS(__le16 *target, const char *source, int maxlen,
313 const struct nls_table *cp, int mapChars); 310 const struct nls_table *cp, int mapChars);
314 311
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index bc09c998631f..5759ba53dc96 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * fs/cifs/cifssmb.c 2 * fs/cifs/cifssmb.c
3 * 3 *
4 * Copyright (C) International Business Machines Corp., 2002,2008 4 * Copyright (C) International Business Machines Corp., 2002,2009
5 * Author(s): Steve French (sfrench@us.ibm.com) 5 * Author(s): Steve French (sfrench@us.ibm.com)
6 * 6 *
7 * Contains the routines for constructing the SMB PDUs themselves 7 * Contains the routines for constructing the SMB PDUs themselves
@@ -81,41 +81,6 @@ static struct {
81#endif /* CONFIG_CIFS_WEAK_PW_HASH */ 81#endif /* CONFIG_CIFS_WEAK_PW_HASH */
82#endif /* CIFS_POSIX */ 82#endif /* CIFS_POSIX */
83 83
84/* Allocates buffer into dst and copies smb string from src to it.
85 * caller is responsible for freeing dst if function returned 0.
86 * returns:
87 * on success - 0
88 * on failure - errno
89 */
90static int
91cifs_strncpy_to_host(char **dst, const char *src, const int maxlen,
92 const bool is_unicode, const struct nls_table *nls_codepage)
93{
94 int plen;
95
96 if (is_unicode) {
97 plen = UniStrnlen((wchar_t *)src, maxlen);
98 *dst = kmalloc(plen + 2, GFP_KERNEL);
99 if (!*dst)
100 goto cifs_strncpy_to_host_ErrExit;
101 cifs_strfromUCS_le(*dst, (__le16 *)src, plen, nls_codepage);
102 } else {
103 plen = strnlen(src, maxlen);
104 *dst = kmalloc(plen + 2, GFP_KERNEL);
105 if (!*dst)
106 goto cifs_strncpy_to_host_ErrExit;
107 strncpy(*dst, src, plen);
108 }
109 (*dst)[plen] = 0;
110 (*dst)[plen+1] = 0; /* harmless for ASCII case, needed for Unicode */
111 return 0;
112
113cifs_strncpy_to_host_ErrExit:
114 cERROR(1, ("Failed to allocate buffer for string\n"));
115 return -ENOMEM;
116}
117
118
119/* Mark as invalid, all open files on tree connections since they 84/* Mark as invalid, all open files on tree connections since they
120 were closed when session to server was lost */ 85 were closed when session to server was lost */
121static void mark_open_files_invalid(struct cifsTconInfo *pTcon) 86static void mark_open_files_invalid(struct cifsTconInfo *pTcon)
@@ -484,6 +449,14 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
484 cFYI(1, ("Kerberos only mechanism, enable extended security")); 449 cFYI(1, ("Kerberos only mechanism, enable extended security"));
485 pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC; 450 pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC;
486 } 451 }
452#ifdef CONFIG_CIFS_EXPERIMENTAL
453 else if ((secFlags & CIFSSEC_MUST_NTLMSSP) == CIFSSEC_MUST_NTLMSSP)
454 pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC;
455 else if ((secFlags & CIFSSEC_AUTH_MASK) == CIFSSEC_MAY_NTLMSSP) {
456 cFYI(1, ("NTLMSSP only mechanism, enable extended security"));
457 pSMB->hdr.Flags2 |= SMBFLG2_EXT_SEC;
458 }
459#endif
487 460
488 count = 0; 461 count = 0;
489 for (i = 0; i < CIFS_NUM_PROT; i++) { 462 for (i = 0; i < CIFS_NUM_PROT; i++) {
@@ -620,6 +593,8 @@ CIFSSMBNegotiate(unsigned int xid, struct cifsSesInfo *ses)
620 server->secType = NTLMv2; 593 server->secType = NTLMv2;
621 else if (secFlags & CIFSSEC_MAY_KRB5) 594 else if (secFlags & CIFSSEC_MAY_KRB5)
622 server->secType = Kerberos; 595 server->secType = Kerberos;
596 else if (secFlags & CIFSSEC_MAY_NTLMSSP)
597 server->secType = NTLMSSP;
623 else if (secFlags & CIFSSEC_MAY_LANMAN) 598 else if (secFlags & CIFSSEC_MAY_LANMAN)
624 server->secType = LANMAN; 599 server->secType = LANMAN;
625/* #ifdef CONFIG_CIFS_EXPERIMENTAL 600/* #ifdef CONFIG_CIFS_EXPERIMENTAL
@@ -1626,6 +1601,8 @@ CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon,
1626 int smb_hdr_len; 1601 int smb_hdr_len;
1627 int resp_buf_type = 0; 1602 int resp_buf_type = 0;
1628 1603
1604 *nbytes = 0;
1605
1629 cFYI(1, ("write2 at %lld %d bytes", (long long)offset, count)); 1606 cFYI(1, ("write2 at %lld %d bytes", (long long)offset, count));
1630 1607
1631 if (tcon->ses->capabilities & CAP_LARGE_FILES) { 1608 if (tcon->ses->capabilities & CAP_LARGE_FILES) {
@@ -1682,11 +1659,9 @@ CIFSSMBWrite2(const int xid, struct cifsTconInfo *tcon,
1682 cifs_stats_inc(&tcon->num_writes); 1659 cifs_stats_inc(&tcon->num_writes);
1683 if (rc) { 1660 if (rc) {
1684 cFYI(1, ("Send error Write2 = %d", rc)); 1661 cFYI(1, ("Send error Write2 = %d", rc));
1685 *nbytes = 0;
1686 } else if (resp_buf_type == 0) { 1662 } else if (resp_buf_type == 0) {
1687 /* presumably this can not happen, but best to be safe */ 1663 /* presumably this can not happen, but best to be safe */
1688 rc = -EIO; 1664 rc = -EIO;
1689 *nbytes = 0;
1690 } else { 1665 } else {
1691 WRITE_RSP *pSMBr = (WRITE_RSP *)iov[0].iov_base; 1666 WRITE_RSP *pSMBr = (WRITE_RSP *)iov[0].iov_base;
1692 *nbytes = le16_to_cpu(pSMBr->CountHigh); 1667 *nbytes = le16_to_cpu(pSMBr->CountHigh);
@@ -2417,8 +2392,7 @@ winCreateHardLinkRetry:
2417 2392
2418int 2393int
2419CIFSSMBUnixQuerySymLink(const int xid, struct cifsTconInfo *tcon, 2394CIFSSMBUnixQuerySymLink(const int xid, struct cifsTconInfo *tcon,
2420 const unsigned char *searchName, 2395 const unsigned char *searchName, char **symlinkinfo,
2421 char *symlinkinfo, const int buflen,
2422 const struct nls_table *nls_codepage) 2396 const struct nls_table *nls_codepage)
2423{ 2397{
2424/* SMB_QUERY_FILE_UNIX_LINK */ 2398/* SMB_QUERY_FILE_UNIX_LINK */
@@ -2428,6 +2402,7 @@ CIFSSMBUnixQuerySymLink(const int xid, struct cifsTconInfo *tcon,
2428 int bytes_returned; 2402 int bytes_returned;
2429 int name_len; 2403 int name_len;
2430 __u16 params, byte_count; 2404 __u16 params, byte_count;
2405 char *data_start;
2431 2406
2432 cFYI(1, ("In QPathSymLinkInfo (Unix) for path %s", searchName)); 2407 cFYI(1, ("In QPathSymLinkInfo (Unix) for path %s", searchName));
2433 2408
@@ -2482,30 +2457,26 @@ querySymLinkRetry:
2482 /* decode response */ 2457 /* decode response */
2483 2458
2484 rc = validate_t2((struct smb_t2_rsp *)pSMBr); 2459 rc = validate_t2((struct smb_t2_rsp *)pSMBr);
2485 if (rc || (pSMBr->ByteCount < 2))
2486 /* BB also check enough total bytes returned */ 2460 /* BB also check enough total bytes returned */
2487 rc = -EIO; /* bad smb */ 2461 if (rc || (pSMBr->ByteCount < 2))
2462 rc = -EIO;
2488 else { 2463 else {
2489 __u16 data_offset = le16_to_cpu(pSMBr->t2.DataOffset); 2464 bool is_unicode;
2490 __u16 count = le16_to_cpu(pSMBr->t2.DataCount); 2465 u16 count = le16_to_cpu(pSMBr->t2.DataCount);
2466
2467 data_start = ((char *) &pSMBr->hdr.Protocol) +
2468 le16_to_cpu(pSMBr->t2.DataOffset);
2469
2470 if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE)
2471 is_unicode = true;
2472 else
2473 is_unicode = false;
2491 2474
2492 if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE) {
2493 name_len = UniStrnlen((wchar_t *) ((char *)
2494 &pSMBr->hdr.Protocol + data_offset),
2495 min_t(const int, buflen, count) / 2);
2496 /* BB FIXME investigate remapping reserved chars here */ 2475 /* BB FIXME investigate remapping reserved chars here */
2497 cifs_strfromUCS_le(symlinkinfo, 2476 *symlinkinfo = cifs_strndup_from_ucs(data_start, count,
2498 (__le16 *) ((char *)&pSMBr->hdr.Protocol 2477 is_unicode, nls_codepage);
2499 + data_offset), 2478 if (!symlinkinfo)
2500 name_len, nls_codepage); 2479 rc = -ENOMEM;
2501 } else {
2502 strncpy(symlinkinfo,
2503 (char *) &pSMBr->hdr.Protocol +
2504 data_offset,
2505 min_t(const int, buflen, count));
2506 }
2507 symlinkinfo[buflen] = 0;
2508 /* just in case so calling code does not go off the end of buffer */
2509 } 2480 }
2510 } 2481 }
2511 cifs_buf_release(pSMB); 2482 cifs_buf_release(pSMB);
@@ -2603,7 +2574,6 @@ validate_ntransact(char *buf, char **ppparm, char **ppdata,
2603 *pparmlen = parm_count; 2574 *pparmlen = parm_count;
2604 return 0; 2575 return 0;
2605} 2576}
2606#endif /* CIFS_EXPERIMENTAL */
2607 2577
2608int 2578int
2609CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon, 2579CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
@@ -2613,7 +2583,6 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
2613{ 2583{
2614 int rc = 0; 2584 int rc = 0;
2615 int bytes_returned; 2585 int bytes_returned;
2616 int name_len;
2617 struct smb_com_transaction_ioctl_req *pSMB; 2586 struct smb_com_transaction_ioctl_req *pSMB;
2618 struct smb_com_transaction_ioctl_rsp *pSMBr; 2587 struct smb_com_transaction_ioctl_rsp *pSMBr;
2619 2588
@@ -2650,59 +2619,55 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
2650 } else { /* decode response */ 2619 } else { /* decode response */
2651 __u32 data_offset = le32_to_cpu(pSMBr->DataOffset); 2620 __u32 data_offset = le32_to_cpu(pSMBr->DataOffset);
2652 __u32 data_count = le32_to_cpu(pSMBr->DataCount); 2621 __u32 data_count = le32_to_cpu(pSMBr->DataCount);
2653 if ((pSMBr->ByteCount < 2) || (data_offset > 512)) 2622 if ((pSMBr->ByteCount < 2) || (data_offset > 512)) {
2654 /* BB also check enough total bytes returned */ 2623 /* BB also check enough total bytes returned */
2655 rc = -EIO; /* bad smb */ 2624 rc = -EIO; /* bad smb */
2656 else { 2625 goto qreparse_out;
2657 if (data_count && (data_count < 2048)) { 2626 }
2658 char *end_of_smb = 2 /* sizeof byte count */ + 2627 if (data_count && (data_count < 2048)) {
2659 pSMBr->ByteCount + 2628 char *end_of_smb = 2 /* sizeof byte count */ +
2660 (char *)&pSMBr->ByteCount; 2629 pSMBr->ByteCount + (char *)&pSMBr->ByteCount;
2661 2630
2662 struct reparse_data *reparse_buf = 2631 struct reparse_data *reparse_buf =
2663 (struct reparse_data *) 2632 (struct reparse_data *)
2664 ((char *)&pSMBr->hdr.Protocol 2633 ((char *)&pSMBr->hdr.Protocol
2665 + data_offset); 2634 + data_offset);
2666 if ((char *)reparse_buf >= end_of_smb) { 2635 if ((char *)reparse_buf >= end_of_smb) {
2667 rc = -EIO; 2636 rc = -EIO;
2668 goto qreparse_out; 2637 goto qreparse_out;
2669 } 2638 }
2670 if ((reparse_buf->LinkNamesBuf + 2639 if ((reparse_buf->LinkNamesBuf +
2671 reparse_buf->TargetNameOffset + 2640 reparse_buf->TargetNameOffset +
2672 reparse_buf->TargetNameLen) > 2641 reparse_buf->TargetNameLen) > end_of_smb) {
2673 end_of_smb) { 2642 cFYI(1, ("reparse buf beyond SMB"));
2674 cFYI(1, ("reparse buf beyond SMB")); 2643 rc = -EIO;
2675 rc = -EIO; 2644 goto qreparse_out;
2676 goto qreparse_out; 2645 }
2677 }
2678 2646
2679 if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE) { 2647 if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE) {
2680 name_len = UniStrnlen((wchar_t *) 2648 cifs_from_ucs2(symlinkinfo, (__le16 *)
2681 (reparse_buf->LinkNamesBuf + 2649 (reparse_buf->LinkNamesBuf +
2682 reparse_buf->TargetNameOffset), 2650 reparse_buf->TargetNameOffset),
2683 min(buflen/2, 2651 buflen,
2684 reparse_buf->TargetNameLen / 2)); 2652 reparse_buf->TargetNameLen,
2685 cifs_strfromUCS_le(symlinkinfo, 2653 nls_codepage, 0);
2686 (__le16 *) (reparse_buf->LinkNamesBuf + 2654 } else { /* ASCII names */
2687 reparse_buf->TargetNameOffset), 2655 strncpy(symlinkinfo,
2688 name_len, nls_codepage); 2656 reparse_buf->LinkNamesBuf +
2689 } else { /* ASCII names */ 2657 reparse_buf->TargetNameOffset,
2690 strncpy(symlinkinfo, 2658 min_t(const int, buflen,
2691 reparse_buf->LinkNamesBuf + 2659 reparse_buf->TargetNameLen));
2692 reparse_buf->TargetNameOffset,
2693 min_t(const int, buflen,
2694 reparse_buf->TargetNameLen));
2695 }
2696 } else {
2697 rc = -EIO;
2698 cFYI(1, ("Invalid return data count on "
2699 "get reparse info ioctl"));
2700 } 2660 }
2701 symlinkinfo[buflen] = 0; /* just in case so the caller 2661 } else {
2702 does not go off the end of the buffer */ 2662 rc = -EIO;
2703 cFYI(1, ("readlink result - %s", symlinkinfo)); 2663 cFYI(1, ("Invalid return data count on "
2664 "get reparse info ioctl"));
2704 } 2665 }
2666 symlinkinfo[buflen] = 0; /* just in case so the caller
2667 does not go off the end of the buffer */
2668 cFYI(1, ("readlink result - %s", symlinkinfo));
2705 } 2669 }
2670
2706qreparse_out: 2671qreparse_out:
2707 cifs_buf_release(pSMB); 2672 cifs_buf_release(pSMB);
2708 2673
@@ -2711,6 +2676,7 @@ qreparse_out:
2711 2676
2712 return rc; 2677 return rc;
2713} 2678}
2679#endif /* CIFS_EXPERIMENTAL */
2714 2680
2715#ifdef CONFIG_CIFS_POSIX 2681#ifdef CONFIG_CIFS_POSIX
2716 2682
@@ -3918,7 +3884,7 @@ GetInodeNumberRetry:
3918 } 3884 }
3919 pfinfo = (struct file_internal_info *) 3885 pfinfo = (struct file_internal_info *)
3920 (data_offset + (char *) &pSMBr->hdr.Protocol); 3886 (data_offset + (char *) &pSMBr->hdr.Protocol);
3921 *inode_number = pfinfo->UniqueId; 3887 *inode_number = le64_to_cpu(pfinfo->UniqueId);
3922 } 3888 }
3923 } 3889 }
3924GetInodeNumOut: 3890GetInodeNumOut:
@@ -3928,27 +3894,6 @@ GetInodeNumOut:
3928 return rc; 3894 return rc;
3929} 3895}
3930 3896
3931/* computes length of UCS string converted to host codepage
3932 * @src: UCS string
3933 * @maxlen: length of the input string in UCS characters
3934 * (not in bytes)
3935 *
3936 * return: size of input string in host codepage
3937 */
3938static int hostlen_fromUCS(const __le16 *src, const int maxlen,
3939 const struct nls_table *nls_codepage) {
3940 int i;
3941 int hostlen = 0;
3942 char to[4];
3943 int charlen;
3944 for (i = 0; (i < maxlen) && src[i]; ++i) {
3945 charlen = nls_codepage->uni2char(le16_to_cpu(src[i]),
3946 to, NLS_MAX_CHARSET_SIZE);
3947 hostlen += charlen > 0 ? charlen : 1;
3948 }
3949 return hostlen;
3950}
3951
3952/* parses DFS refferal V3 structure 3897/* parses DFS refferal V3 structure
3953 * caller is responsible for freeing target_nodes 3898 * caller is responsible for freeing target_nodes
3954 * returns: 3899 * returns:
@@ -3994,7 +3939,7 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
3994 3939
3995 cFYI(1, ("num_referrals: %d dfs flags: 0x%x ... \n", 3940 cFYI(1, ("num_referrals: %d dfs flags: 0x%x ... \n",
3996 *num_of_nodes, 3941 *num_of_nodes,
3997 le16_to_cpu(pSMBr->DFSFlags))); 3942 le32_to_cpu(pSMBr->DFSFlags)));
3998 3943
3999 *target_nodes = kzalloc(sizeof(struct dfs_info3_param) * 3944 *target_nodes = kzalloc(sizeof(struct dfs_info3_param) *
4000 *num_of_nodes, GFP_KERNEL); 3945 *num_of_nodes, GFP_KERNEL);
@@ -4010,14 +3955,14 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
4010 int max_len; 3955 int max_len;
4011 struct dfs_info3_param *node = (*target_nodes)+i; 3956 struct dfs_info3_param *node = (*target_nodes)+i;
4012 3957
4013 node->flags = le16_to_cpu(pSMBr->DFSFlags); 3958 node->flags = le32_to_cpu(pSMBr->DFSFlags);
4014 if (is_unicode) { 3959 if (is_unicode) {
4015 __le16 *tmp = kmalloc(strlen(searchName)*2 + 2, 3960 __le16 *tmp = kmalloc(strlen(searchName)*2 + 2,
4016 GFP_KERNEL); 3961 GFP_KERNEL);
4017 cifsConvertToUCS((__le16 *) tmp, searchName, 3962 cifsConvertToUCS((__le16 *) tmp, searchName,
4018 PATH_MAX, nls_codepage, remap); 3963 PATH_MAX, nls_codepage, remap);
4019 node->path_consumed = hostlen_fromUCS(tmp, 3964 node->path_consumed = cifs_ucs2_bytes(tmp,
4020 le16_to_cpu(pSMBr->PathConsumed)/2, 3965 le16_to_cpu(pSMBr->PathConsumed),
4021 nls_codepage); 3966 nls_codepage);
4022 kfree(tmp); 3967 kfree(tmp);
4023 } else 3968 } else
@@ -4029,20 +3974,20 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
4029 /* copy DfsPath */ 3974 /* copy DfsPath */
4030 temp = (char *)ref + le16_to_cpu(ref->DfsPathOffset); 3975 temp = (char *)ref + le16_to_cpu(ref->DfsPathOffset);
4031 max_len = data_end - temp; 3976 max_len = data_end - temp;
4032 rc = cifs_strncpy_to_host(&(node->path_name), temp, 3977 node->path_name = cifs_strndup_from_ucs(temp, max_len,
4033 max_len, is_unicode, nls_codepage); 3978 is_unicode, nls_codepage);
4034 if (rc) 3979 if (!node->path_name) {
3980 rc = -ENOMEM;
4035 goto parse_DFS_referrals_exit; 3981 goto parse_DFS_referrals_exit;
3982 }
4036 3983
4037 /* copy link target UNC */ 3984 /* copy link target UNC */
4038 temp = (char *)ref + le16_to_cpu(ref->NetworkAddressOffset); 3985 temp = (char *)ref + le16_to_cpu(ref->NetworkAddressOffset);
4039 max_len = data_end - temp; 3986 max_len = data_end - temp;
4040 rc = cifs_strncpy_to_host(&(node->node_name), temp, 3987 node->node_name = cifs_strndup_from_ucs(temp, max_len,
4041 max_len, is_unicode, nls_codepage); 3988 is_unicode, nls_codepage);
4042 if (rc) 3989 if (!node->node_name)
4043 goto parse_DFS_referrals_exit; 3990 rc = -ENOMEM;
4044
4045 ref += le16_to_cpu(ref->Size);
4046 } 3991 }
4047 3992
4048parse_DFS_referrals_exit: 3993parse_DFS_referrals_exit:
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 0de3b5615a22..4aa81a507b74 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * fs/cifs/connect.c 2 * fs/cifs/connect.c
3 * 3 *
4 * Copyright (C) International Business Machines Corp., 2002,2008 4 * Copyright (C) International Business Machines Corp., 2002,2009
5 * Author(s): Steve French (sfrench@us.ibm.com) 5 * Author(s): Steve French (sfrench@us.ibm.com)
6 * 6 *
7 * This library is free software; you can redistribute it and/or modify 7 * This library is free software; you can redistribute it and/or modify
@@ -32,6 +32,7 @@
32#include <linux/kthread.h> 32#include <linux/kthread.h>
33#include <linux/pagevec.h> 33#include <linux/pagevec.h>
34#include <linux/freezer.h> 34#include <linux/freezer.h>
35#include <linux/namei.h>
35#include <asm/uaccess.h> 36#include <asm/uaccess.h>
36#include <asm/processor.h> 37#include <asm/processor.h>
37#include <net/ipv6.h> 38#include <net/ipv6.h>
@@ -978,6 +979,13 @@ cifs_parse_mount_options(char *options, const char *devname,
978 return 1; 979 return 1;
979 } else if (strnicmp(value, "krb5", 4) == 0) { 980 } else if (strnicmp(value, "krb5", 4) == 0) {
980 vol->secFlg |= CIFSSEC_MAY_KRB5; 981 vol->secFlg |= CIFSSEC_MAY_KRB5;
982#ifdef CONFIG_CIFS_EXPERIMENTAL
983 } else if (strnicmp(value, "ntlmsspi", 8) == 0) {
984 vol->secFlg |= CIFSSEC_MAY_NTLMSSP |
985 CIFSSEC_MUST_SIGN;
986 } else if (strnicmp(value, "ntlmssp", 7) == 0) {
987 vol->secFlg |= CIFSSEC_MAY_NTLMSSP;
988#endif
981 } else if (strnicmp(value, "ntlmv2i", 7) == 0) { 989 } else if (strnicmp(value, "ntlmv2i", 7) == 0) {
982 vol->secFlg |= CIFSSEC_MAY_NTLMV2 | 990 vol->secFlg |= CIFSSEC_MAY_NTLMV2 |
983 CIFSSEC_MUST_SIGN; 991 CIFSSEC_MUST_SIGN;
@@ -2214,9 +2222,58 @@ is_path_accessible(int xid, struct cifsTconInfo *tcon,
2214 return rc; 2222 return rc;
2215} 2223}
2216 2224
2225static void
2226cleanup_volume_info(struct smb_vol **pvolume_info)
2227{
2228 struct smb_vol *volume_info;
2229
2230 if (!pvolume_info && !*pvolume_info)
2231 return;
2232
2233 volume_info = *pvolume_info;
2234 kzfree(volume_info->password);
2235 kfree(volume_info->UNC);
2236 kfree(volume_info->prepath);
2237 kfree(volume_info);
2238 *pvolume_info = NULL;
2239 return;
2240}
2241
2242#ifdef CONFIG_CIFS_DFS_UPCALL
2243/* build_path_to_root returns full path to root when
2244 * we do not have an exiting connection (tcon) */
2245static char *
2246build_unc_path_to_root(const struct smb_vol *volume_info,
2247 const struct cifs_sb_info *cifs_sb)
2248{
2249 char *full_path;
2250
2251 int unc_len = strnlen(volume_info->UNC, MAX_TREE_SIZE + 1);
2252 full_path = kmalloc(unc_len + cifs_sb->prepathlen + 1, GFP_KERNEL);
2253 if (full_path == NULL)
2254 return ERR_PTR(-ENOMEM);
2255
2256 strncpy(full_path, volume_info->UNC, unc_len);
2257 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) {
2258 int i;
2259 for (i = 0; i < unc_len; i++) {
2260 if (full_path[i] == '\\')
2261 full_path[i] = '/';
2262 }
2263 }
2264
2265 if (cifs_sb->prepathlen)
2266 strncpy(full_path + unc_len, cifs_sb->prepath,
2267 cifs_sb->prepathlen);
2268
2269 full_path[unc_len + cifs_sb->prepathlen] = 0; /* add trailing null */
2270 return full_path;
2271}
2272#endif
2273
2217int 2274int
2218cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, 2275cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2219 char *mount_data, const char *devname) 2276 char *mount_data_global, const char *devname)
2220{ 2277{
2221 int rc = 0; 2278 int rc = 0;
2222 int xid; 2279 int xid;
@@ -2225,6 +2282,14 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2225 struct cifsTconInfo *tcon = NULL; 2282 struct cifsTconInfo *tcon = NULL;
2226 struct TCP_Server_Info *srvTcp = NULL; 2283 struct TCP_Server_Info *srvTcp = NULL;
2227 char *full_path; 2284 char *full_path;
2285 char *mount_data = mount_data_global;
2286#ifdef CONFIG_CIFS_DFS_UPCALL
2287 struct dfs_info3_param *referrals = NULL;
2288 unsigned int num_referrals = 0;
2289 int referral_walks_count = 0;
2290try_mount_again:
2291#endif
2292 full_path = NULL;
2228 2293
2229 xid = GetXid(); 2294 xid = GetXid();
2230 2295
@@ -2371,11 +2436,9 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2371 } 2436 }
2372 } 2437 }
2373 2438
2374 /* check for null share name ie connect to dfs root */
2375 if ((strchr(volume_info->UNC + 3, '\\') == NULL) 2439 if ((strchr(volume_info->UNC + 3, '\\') == NULL)
2376 && (strchr(volume_info->UNC + 3, '/') == NULL)) { 2440 && (strchr(volume_info->UNC + 3, '/') == NULL)) {
2377 /* rc = connect_to_dfs_path(...) */ 2441 cERROR(1, ("Missing share name"));
2378 cFYI(1, ("DFS root not supported"));
2379 rc = -ENODEV; 2442 rc = -ENODEV;
2380 goto mount_fail_check; 2443 goto mount_fail_check;
2381 } else { 2444 } else {
@@ -2392,7 +2455,7 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2392 } 2455 }
2393 } 2456 }
2394 if (rc) 2457 if (rc)
2395 goto mount_fail_check; 2458 goto remote_path_check;
2396 tcon->seal = volume_info->seal; 2459 tcon->seal = volume_info->seal;
2397 write_lock(&cifs_tcp_ses_lock); 2460 write_lock(&cifs_tcp_ses_lock);
2398 list_add(&tcon->tcon_list, &pSesInfo->tcon_list); 2461 list_add(&tcon->tcon_list, &pSesInfo->tcon_list);
@@ -2417,19 +2480,9 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2417 /* BB FIXME fix time_gran to be larger for LANMAN sessions */ 2480 /* BB FIXME fix time_gran to be larger for LANMAN sessions */
2418 sb->s_time_gran = 100; 2481 sb->s_time_gran = 100;
2419 2482
2420mount_fail_check: 2483 if (rc)
2421 /* on error free sesinfo and tcon struct if needed */ 2484 goto remote_path_check;
2422 if (rc) { 2485
2423 /* If find_unc succeeded then rc == 0 so we can not end */
2424 /* up accidently freeing someone elses tcon struct */
2425 if (tcon)
2426 cifs_put_tcon(tcon);
2427 else if (pSesInfo)
2428 cifs_put_smb_ses(pSesInfo);
2429 else
2430 cifs_put_tcp_session(srvTcp);
2431 goto out;
2432 }
2433 cifs_sb->tcon = tcon; 2486 cifs_sb->tcon = tcon;
2434 2487
2435 /* do not care if following two calls succeed - informational */ 2488 /* do not care if following two calls succeed - informational */
@@ -2461,7 +2514,9 @@ mount_fail_check:
2461 cifs_sb->rsize = min(cifs_sb->rsize, 2514 cifs_sb->rsize = min(cifs_sb->rsize,
2462 (tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE)); 2515 (tcon->ses->server->maxBuf - MAX_CIFS_HDR_SIZE));
2463 2516
2464 if (!rc && cifs_sb->prepathlen) { 2517remote_path_check:
2518 /* check if a whole path (including prepath) is not remote */
2519 if (!rc && cifs_sb->prepathlen && tcon) {
2465 /* build_path_to_root works only when we have a valid tcon */ 2520 /* build_path_to_root works only when we have a valid tcon */
2466 full_path = cifs_build_path_to_root(cifs_sb); 2521 full_path = cifs_build_path_to_root(cifs_sb);
2467 if (full_path == NULL) { 2522 if (full_path == NULL) {
@@ -2469,1079 +2524,91 @@ mount_fail_check:
2469 goto mount_fail_check; 2524 goto mount_fail_check;
2470 } 2525 }
2471 rc = is_path_accessible(xid, tcon, cifs_sb, full_path); 2526 rc = is_path_accessible(xid, tcon, cifs_sb, full_path);
2472 if (rc) { 2527 if (rc != -EREMOTE) {
2473 cERROR(1, ("Path %s in not accessible: %d",
2474 full_path, rc));
2475 kfree(full_path); 2528 kfree(full_path);
2476 goto mount_fail_check; 2529 goto mount_fail_check;
2477 } 2530 }
2478 kfree(full_path); 2531 kfree(full_path);
2479 } 2532 }
2480 2533
2481 /* volume_info->password is freed above when existing session found 2534 /* get referral if needed */
2482 (in which case it is not needed anymore) but when new sesion is created 2535 if (rc == -EREMOTE) {
2483 the password ptr is put in the new session structure (in which case the 2536#ifdef CONFIG_CIFS_DFS_UPCALL
2484 password will be freed at unmount time) */ 2537 if (referral_walks_count > MAX_NESTED_LINKS) {
2485out: 2538 /*
2486 /* zero out password before freeing */ 2539 * BB: when we implement proper loop detection,
2487 if (volume_info) { 2540 * we will remove this check. But now we need it
2488 if (volume_info->password != NULL) { 2541 * to prevent an indefinite loop if 'DFS tree' is
2489 memset(volume_info->password, 0, 2542 * misconfigured (i.e. has loops).
2490 strlen(volume_info->password)); 2543 */
2491 kfree(volume_info->password); 2544 rc = -ELOOP;
2492 } 2545 goto mount_fail_check;
2493 kfree(volume_info->UNC);
2494 kfree(volume_info->prepath);
2495 kfree(volume_info);
2496 }
2497 FreeXid(xid);
2498 return rc;
2499}
2500
2501static int
2502CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses,
2503 char session_key[CIFS_SESS_KEY_SIZE],
2504 const struct nls_table *nls_codepage)
2505{
2506 struct smb_hdr *smb_buffer;
2507 struct smb_hdr *smb_buffer_response;
2508 SESSION_SETUP_ANDX *pSMB;
2509 SESSION_SETUP_ANDX *pSMBr;
2510 char *bcc_ptr;
2511 char *user;
2512 char *domain;
2513 int rc = 0;
2514 int remaining_words = 0;
2515 int bytes_returned = 0;
2516 int len;
2517 __u32 capabilities;
2518 __u16 count;
2519
2520 cFYI(1, ("In sesssetup"));
2521 if (ses == NULL)
2522 return -EINVAL;
2523 user = ses->userName;
2524 domain = ses->domainName;
2525 smb_buffer = cifs_buf_get();
2526
2527 if (smb_buffer == NULL)
2528 return -ENOMEM;
2529
2530 smb_buffer_response = smb_buffer;
2531 pSMBr = pSMB = (SESSION_SETUP_ANDX *) smb_buffer;
2532
2533 /* send SMBsessionSetup here */
2534 header_assemble(smb_buffer, SMB_COM_SESSION_SETUP_ANDX,
2535 NULL /* no tCon exists yet */ , 13 /* wct */ );
2536
2537 smb_buffer->Mid = GetNextMid(ses->server);
2538 pSMB->req_no_secext.AndXCommand = 0xFF;
2539 pSMB->req_no_secext.MaxBufferSize = cpu_to_le16(ses->server->maxBuf);
2540 pSMB->req_no_secext.MaxMpxCount = cpu_to_le16(ses->server->maxReq);
2541
2542 if (ses->server->secMode &
2543 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
2544 smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE;
2545
2546 capabilities = CAP_LARGE_FILES | CAP_NT_SMBS | CAP_LEVEL_II_OPLOCKS |
2547 CAP_LARGE_WRITE_X | CAP_LARGE_READ_X;
2548 if (ses->capabilities & CAP_UNICODE) {
2549 smb_buffer->Flags2 |= SMBFLG2_UNICODE;
2550 capabilities |= CAP_UNICODE;
2551 }
2552 if (ses->capabilities & CAP_STATUS32) {
2553 smb_buffer->Flags2 |= SMBFLG2_ERR_STATUS;
2554 capabilities |= CAP_STATUS32;
2555 }
2556 if (ses->capabilities & CAP_DFS) {
2557 smb_buffer->Flags2 |= SMBFLG2_DFS;
2558 capabilities |= CAP_DFS;
2559 }
2560 pSMB->req_no_secext.Capabilities = cpu_to_le32(capabilities);
2561
2562 pSMB->req_no_secext.CaseInsensitivePasswordLength =
2563 cpu_to_le16(CIFS_SESS_KEY_SIZE);
2564
2565 pSMB->req_no_secext.CaseSensitivePasswordLength =
2566 cpu_to_le16(CIFS_SESS_KEY_SIZE);
2567 bcc_ptr = pByteArea(smb_buffer);
2568 memcpy(bcc_ptr, (char *) session_key, CIFS_SESS_KEY_SIZE);
2569 bcc_ptr += CIFS_SESS_KEY_SIZE;
2570 memcpy(bcc_ptr, (char *) session_key, CIFS_SESS_KEY_SIZE);
2571 bcc_ptr += CIFS_SESS_KEY_SIZE;
2572
2573 if (ses->capabilities & CAP_UNICODE) {
2574 if ((long) bcc_ptr % 2) { /* must be word aligned for Unicode */
2575 *bcc_ptr = 0;
2576 bcc_ptr++;
2577 }
2578 if (user == NULL)
2579 bytes_returned = 0; /* skip null user */
2580 else
2581 bytes_returned =
2582 cifs_strtoUCS((__le16 *) bcc_ptr, user, 100,
2583 nls_codepage);
2584 /* convert number of 16 bit words to bytes */
2585 bcc_ptr += 2 * bytes_returned;
2586 bcc_ptr += 2; /* trailing null */
2587 if (domain == NULL)
2588 bytes_returned =
2589 cifs_strtoUCS((__le16 *) bcc_ptr,
2590 "CIFS_LINUX_DOM", 32, nls_codepage);
2591 else
2592 bytes_returned =
2593 cifs_strtoUCS((__le16 *) bcc_ptr, domain, 64,
2594 nls_codepage);
2595 bcc_ptr += 2 * bytes_returned;
2596 bcc_ptr += 2;
2597 bytes_returned =
2598 cifs_strtoUCS((__le16 *) bcc_ptr, "Linux version ",
2599 32, nls_codepage);
2600 bcc_ptr += 2 * bytes_returned;
2601 bytes_returned =
2602 cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release,
2603 32, nls_codepage);
2604 bcc_ptr += 2 * bytes_returned;
2605 bcc_ptr += 2;
2606 bytes_returned =
2607 cifs_strtoUCS((__le16 *) bcc_ptr, CIFS_NETWORK_OPSYS,
2608 64, nls_codepage);
2609 bcc_ptr += 2 * bytes_returned;
2610 bcc_ptr += 2;
2611 } else {
2612 if (user != NULL) {
2613 strncpy(bcc_ptr, user, 200);
2614 bcc_ptr += strnlen(user, 200);
2615 }
2616 *bcc_ptr = 0;
2617 bcc_ptr++;
2618 if (domain == NULL) {
2619 strcpy(bcc_ptr, "CIFS_LINUX_DOM");
2620 bcc_ptr += strlen("CIFS_LINUX_DOM") + 1;
2621 } else {
2622 strncpy(bcc_ptr, domain, 64);
2623 bcc_ptr += strnlen(domain, 64);
2624 *bcc_ptr = 0;
2625 bcc_ptr++;
2626 }
2627 strcpy(bcc_ptr, "Linux version ");
2628 bcc_ptr += strlen("Linux version ");
2629 strcpy(bcc_ptr, utsname()->release);
2630 bcc_ptr += strlen(utsname()->release) + 1;
2631 strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
2632 bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
2633 }
2634 count = (long) bcc_ptr - (long) pByteArea(smb_buffer);
2635 smb_buffer->smb_buf_length += count;
2636 pSMB->req_no_secext.ByteCount = cpu_to_le16(count);
2637
2638 rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response,
2639 &bytes_returned, CIFS_LONG_OP);
2640 if (rc) {
2641/* rc = map_smb_to_linux_error(smb_buffer_response); now done in SendReceive */
2642 } else if ((smb_buffer_response->WordCount == 3)
2643 || (smb_buffer_response->WordCount == 4)) {
2644 __u16 action = le16_to_cpu(pSMBr->resp.Action);
2645 __u16 blob_len = le16_to_cpu(pSMBr->resp.SecurityBlobLength);
2646 if (action & GUEST_LOGIN)
2647 cFYI(1, ("Guest login")); /* BB mark SesInfo struct? */
2648 ses->Suid = smb_buffer_response->Uid; /* UID left in wire format
2649 (little endian) */
2650 cFYI(1, ("UID = %d ", ses->Suid));
2651 /* response can have either 3 or 4 word count - Samba sends 3 */
2652 bcc_ptr = pByteArea(smb_buffer_response);
2653 if ((pSMBr->resp.hdr.WordCount == 3)
2654 || ((pSMBr->resp.hdr.WordCount == 4)
2655 && (blob_len < pSMBr->resp.ByteCount))) {
2656 if (pSMBr->resp.hdr.WordCount == 4)
2657 bcc_ptr += blob_len;
2658
2659 if (smb_buffer->Flags2 & SMBFLG2_UNICODE) {
2660 if ((long) (bcc_ptr) % 2) {
2661 remaining_words =
2662 (BCC(smb_buffer_response) - 1) / 2;
2663 /* Unicode strings must be word
2664 aligned */
2665 bcc_ptr++;
2666 } else {
2667 remaining_words =
2668 BCC(smb_buffer_response) / 2;
2669 }
2670 len =
2671 UniStrnlen((wchar_t *) bcc_ptr,
2672 remaining_words - 1);
2673/* We look for obvious messed up bcc or strings in response so we do not go off
2674 the end since (at least) WIN2K and Windows XP have a major bug in not null
2675 terminating last Unicode string in response */
2676 if (ses->serverOS)
2677 kfree(ses->serverOS);
2678 ses->serverOS = kzalloc(2 * (len + 1),
2679 GFP_KERNEL);
2680 if (ses->serverOS == NULL)
2681 goto sesssetup_nomem;
2682 cifs_strfromUCS_le(ses->serverOS,
2683 (__le16 *)bcc_ptr,
2684 len, nls_codepage);
2685 bcc_ptr += 2 * (len + 1);
2686 remaining_words -= len + 1;
2687 ses->serverOS[2 * len] = 0;
2688 ses->serverOS[1 + (2 * len)] = 0;
2689 if (remaining_words > 0) {
2690 len = UniStrnlen((wchar_t *)bcc_ptr,
2691 remaining_words-1);
2692 kfree(ses->serverNOS);
2693 ses->serverNOS = kzalloc(2 * (len + 1),
2694 GFP_KERNEL);
2695 if (ses->serverNOS == NULL)
2696 goto sesssetup_nomem;
2697 cifs_strfromUCS_le(ses->serverNOS,
2698 (__le16 *)bcc_ptr,
2699 len, nls_codepage);
2700 bcc_ptr += 2 * (len + 1);
2701 ses->serverNOS[2 * len] = 0;
2702 ses->serverNOS[1 + (2 * len)] = 0;
2703 if (strncmp(ses->serverNOS,
2704 "NT LAN Manager 4", 16) == 0) {
2705 cFYI(1, ("NT4 server"));
2706 ses->flags |= CIFS_SES_NT4;
2707 }
2708 remaining_words -= len + 1;
2709 if (remaining_words > 0) {
2710 len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words);
2711 /* last string is not always null terminated
2712 (for e.g. for Windows XP & 2000) */
2713 if (ses->serverDomain)
2714 kfree(ses->serverDomain);
2715 ses->serverDomain =
2716 kzalloc(2*(len+1),
2717 GFP_KERNEL);
2718 if (ses->serverDomain == NULL)
2719 goto sesssetup_nomem;
2720 cifs_strfromUCS_le(ses->serverDomain,
2721 (__le16 *)bcc_ptr,
2722 len, nls_codepage);
2723 bcc_ptr += 2 * (len + 1);
2724 ses->serverDomain[2*len] = 0;
2725 ses->serverDomain[1+(2*len)] = 0;
2726 } else { /* else no more room so create
2727 dummy domain string */
2728 if (ses->serverDomain)
2729 kfree(ses->serverDomain);
2730 ses->serverDomain =
2731 kzalloc(2, GFP_KERNEL);
2732 }
2733 } else { /* no room so create dummy domain
2734 and NOS string */
2735
2736 /* if these kcallocs fail not much we
2737 can do, but better to not fail the
2738 sesssetup itself */
2739 kfree(ses->serverDomain);
2740 ses->serverDomain =
2741 kzalloc(2, GFP_KERNEL);
2742 kfree(ses->serverNOS);
2743 ses->serverNOS =
2744 kzalloc(2, GFP_KERNEL);
2745 }
2746 } else { /* ASCII */
2747 len = strnlen(bcc_ptr, 1024);
2748 if (((long) bcc_ptr + len) - (long)
2749 pByteArea(smb_buffer_response)
2750 <= BCC(smb_buffer_response)) {
2751 kfree(ses->serverOS);
2752 ses->serverOS = kzalloc(len + 1,
2753 GFP_KERNEL);
2754 if (ses->serverOS == NULL)
2755 goto sesssetup_nomem;
2756 strncpy(ses->serverOS, bcc_ptr, len);
2757
2758 bcc_ptr += len;
2759 /* null terminate the string */
2760 bcc_ptr[0] = 0;
2761 bcc_ptr++;
2762
2763 len = strnlen(bcc_ptr, 1024);
2764 kfree(ses->serverNOS);
2765 ses->serverNOS = kzalloc(len + 1,
2766 GFP_KERNEL);
2767 if (ses->serverNOS == NULL)
2768 goto sesssetup_nomem;
2769 strncpy(ses->serverNOS, bcc_ptr, len);
2770 bcc_ptr += len;
2771 bcc_ptr[0] = 0;
2772 bcc_ptr++;
2773
2774 len = strnlen(bcc_ptr, 1024);
2775 if (ses->serverDomain)
2776 kfree(ses->serverDomain);
2777 ses->serverDomain = kzalloc(len + 1,
2778 GFP_KERNEL);
2779 if (ses->serverDomain == NULL)
2780 goto sesssetup_nomem;
2781 strncpy(ses->serverDomain, bcc_ptr,
2782 len);
2783 bcc_ptr += len;
2784 bcc_ptr[0] = 0;
2785 bcc_ptr++;
2786 } else
2787 cFYI(1,
2788 ("Variable field of length %d "
2789 "extends beyond end of smb ",
2790 len));
2791 }
2792 } else {
2793 cERROR(1, ("Security Blob Length extends beyond "
2794 "end of SMB"));
2795 } 2546 }
2796 } else { 2547 /* convert forward to back slashes in prepath here if needed */
2797 cERROR(1, ("Invalid Word count %d: ", 2548 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) == 0)
2798 smb_buffer_response->WordCount)); 2549 convert_delimiter(cifs_sb->prepath,
2799 rc = -EIO; 2550 CIFS_DIR_SEP(cifs_sb));
2800 } 2551 full_path = build_unc_path_to_root(volume_info, cifs_sb);
2801sesssetup_nomem: /* do not return an error on nomem for the info strings, 2552 if (IS_ERR(full_path)) {
2802 since that could make reconnection harder, and 2553 rc = PTR_ERR(full_path);
2803 reconnection might be needed to free memory */ 2554 goto mount_fail_check;
2804 cifs_buf_release(smb_buffer);
2805
2806 return rc;
2807}
2808
2809static int
2810CIFSNTLMSSPNegotiateSessSetup(unsigned int xid,
2811 struct cifsSesInfo *ses, bool *pNTLMv2_flag,
2812 const struct nls_table *nls_codepage)
2813{
2814 struct smb_hdr *smb_buffer;
2815 struct smb_hdr *smb_buffer_response;
2816 SESSION_SETUP_ANDX *pSMB;
2817 SESSION_SETUP_ANDX *pSMBr;
2818 char *bcc_ptr;
2819 char *domain;
2820 int rc = 0;
2821 int remaining_words = 0;
2822 int bytes_returned = 0;
2823 int len;
2824 int SecurityBlobLength = sizeof(NEGOTIATE_MESSAGE);
2825 PNEGOTIATE_MESSAGE SecurityBlob;
2826 PCHALLENGE_MESSAGE SecurityBlob2;
2827 __u32 negotiate_flags, capabilities;
2828 __u16 count;
2829
2830 cFYI(1, ("In NTLMSSP sesssetup (negotiate)"));
2831 if (ses == NULL)
2832 return -EINVAL;
2833 domain = ses->domainName;
2834 *pNTLMv2_flag = false;
2835 smb_buffer = cifs_buf_get();
2836 if (smb_buffer == NULL) {
2837 return -ENOMEM;
2838 }
2839 smb_buffer_response = smb_buffer;
2840 pSMB = (SESSION_SETUP_ANDX *) smb_buffer;
2841 pSMBr = (SESSION_SETUP_ANDX *) smb_buffer_response;
2842
2843 /* send SMBsessionSetup here */
2844 header_assemble(smb_buffer, SMB_COM_SESSION_SETUP_ANDX,
2845 NULL /* no tCon exists yet */ , 12 /* wct */ );
2846
2847 smb_buffer->Mid = GetNextMid(ses->server);
2848 pSMB->req.hdr.Flags2 |= SMBFLG2_EXT_SEC;
2849 pSMB->req.hdr.Flags |= (SMBFLG_CASELESS | SMBFLG_CANONICAL_PATH_FORMAT);
2850
2851 pSMB->req.AndXCommand = 0xFF;
2852 pSMB->req.MaxBufferSize = cpu_to_le16(ses->server->maxBuf);
2853 pSMB->req.MaxMpxCount = cpu_to_le16(ses->server->maxReq);
2854
2855 if (ses->server->secMode & (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
2856 smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE;
2857
2858 capabilities = CAP_LARGE_FILES | CAP_NT_SMBS | CAP_LEVEL_II_OPLOCKS |
2859 CAP_EXTENDED_SECURITY;
2860 if (ses->capabilities & CAP_UNICODE) {
2861 smb_buffer->Flags2 |= SMBFLG2_UNICODE;
2862 capabilities |= CAP_UNICODE;
2863 }
2864 if (ses->capabilities & CAP_STATUS32) {
2865 smb_buffer->Flags2 |= SMBFLG2_ERR_STATUS;
2866 capabilities |= CAP_STATUS32;
2867 }
2868 if (ses->capabilities & CAP_DFS) {
2869 smb_buffer->Flags2 |= SMBFLG2_DFS;
2870 capabilities |= CAP_DFS;
2871 }
2872 pSMB->req.Capabilities = cpu_to_le32(capabilities);
2873
2874 bcc_ptr = (char *) &pSMB->req.SecurityBlob;
2875 SecurityBlob = (PNEGOTIATE_MESSAGE) bcc_ptr;
2876 strncpy(SecurityBlob->Signature, NTLMSSP_SIGNATURE, 8);
2877 SecurityBlob->MessageType = NtLmNegotiate;
2878 negotiate_flags =
2879 NTLMSSP_NEGOTIATE_UNICODE | NTLMSSP_NEGOTIATE_OEM |
2880 NTLMSSP_REQUEST_TARGET | NTLMSSP_NEGOTIATE_NTLM |
2881 NTLMSSP_NEGOTIATE_56 |
2882 /* NTLMSSP_NEGOTIATE_ALWAYS_SIGN | */ NTLMSSP_NEGOTIATE_128;
2883 if (sign_CIFS_PDUs)
2884 negotiate_flags |= NTLMSSP_NEGOTIATE_SIGN;
2885/* if (ntlmv2_support)
2886 negotiate_flags |= NTLMSSP_NEGOTIATE_NTLMV2;*/
2887 /* setup pointers to domain name and workstation name */
2888 bcc_ptr += SecurityBlobLength;
2889
2890 SecurityBlob->WorkstationName.Buffer = 0;
2891 SecurityBlob->WorkstationName.Length = 0;
2892 SecurityBlob->WorkstationName.MaximumLength = 0;
2893
2894 /* Domain not sent on first Sesssetup in NTLMSSP, instead it is sent
2895 along with username on auth request (ie the response to challenge) */
2896 SecurityBlob->DomainName.Buffer = 0;
2897 SecurityBlob->DomainName.Length = 0;
2898 SecurityBlob->DomainName.MaximumLength = 0;
2899 if (ses->capabilities & CAP_UNICODE) {
2900 if ((long) bcc_ptr % 2) {
2901 *bcc_ptr = 0;
2902 bcc_ptr++;
2903 } 2555 }
2904 2556
2905 bytes_returned = 2557 cFYI(1, ("Getting referral for: %s", full_path));
2906 cifs_strtoUCS((__le16 *) bcc_ptr, "Linux version ", 2558 rc = get_dfs_path(xid, pSesInfo , full_path + 1,
2907 32, nls_codepage); 2559 cifs_sb->local_nls, &num_referrals, &referrals,
2908 bcc_ptr += 2 * bytes_returned; 2560 cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
2909 bytes_returned = 2561 if (!rc && num_referrals > 0) {
2910 cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release, 32, 2562 char *fake_devname = NULL;
2911 nls_codepage); 2563
2912 bcc_ptr += 2 * bytes_returned; 2564 if (mount_data != mount_data_global)
2913 bcc_ptr += 2; /* null terminate Linux version */ 2565 kfree(mount_data);
2914 bytes_returned = 2566 mount_data = cifs_compose_mount_options(
2915 cifs_strtoUCS((__le16 *) bcc_ptr, CIFS_NETWORK_OPSYS, 2567 cifs_sb->mountdata, full_path + 1,
2916 64, nls_codepage); 2568 referrals, &fake_devname);
2917 bcc_ptr += 2 * bytes_returned; 2569 kfree(fake_devname);
2918 *(bcc_ptr + 1) = 0; 2570 free_dfs_info_array(referrals, num_referrals);
2919 *(bcc_ptr + 2) = 0; 2571
2920 bcc_ptr += 2; /* null terminate network opsys string */ 2572 if (tcon)
2921 *(bcc_ptr + 1) = 0; 2573 cifs_put_tcon(tcon);
2922 *(bcc_ptr + 2) = 0; 2574 else if (pSesInfo)
2923 bcc_ptr += 2; /* null domain */ 2575 cifs_put_smb_ses(pSesInfo);
2924 } else { /* ASCII */ 2576
2925 strcpy(bcc_ptr, "Linux version "); 2577 cleanup_volume_info(&volume_info);
2926 bcc_ptr += strlen("Linux version "); 2578 FreeXid(xid);
2927 strcpy(bcc_ptr, utsname()->release); 2579 kfree(full_path);
2928 bcc_ptr += strlen(utsname()->release) + 1; 2580 referral_walks_count++;
2929 strcpy(bcc_ptr, CIFS_NETWORK_OPSYS); 2581 goto try_mount_again;
2930 bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
2931 bcc_ptr++; /* empty domain field */
2932 *bcc_ptr = 0;
2933 }
2934 SecurityBlob->NegotiateFlags = cpu_to_le32(negotiate_flags);
2935 pSMB->req.SecurityBlobLength = cpu_to_le16(SecurityBlobLength);
2936 count = (long) bcc_ptr - (long) pByteArea(smb_buffer);
2937 smb_buffer->smb_buf_length += count;
2938 pSMB->req.ByteCount = cpu_to_le16(count);
2939
2940 rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response,
2941 &bytes_returned, CIFS_LONG_OP);
2942
2943 if (smb_buffer_response->Status.CifsError ==
2944 cpu_to_le32(NT_STATUS_MORE_PROCESSING_REQUIRED))
2945 rc = 0;
2946
2947 if (rc) {
2948/* rc = map_smb_to_linux_error(smb_buffer_response); *//* done in SendReceive now */
2949 } else if ((smb_buffer_response->WordCount == 3)
2950 || (smb_buffer_response->WordCount == 4)) {
2951 __u16 action = le16_to_cpu(pSMBr->resp.Action);
2952 __u16 blob_len = le16_to_cpu(pSMBr->resp.SecurityBlobLength);
2953
2954 if (action & GUEST_LOGIN)
2955 cFYI(1, ("Guest login"));
2956 /* Do we want to set anything in SesInfo struct when guest login? */
2957
2958 bcc_ptr = pByteArea(smb_buffer_response);
2959 /* response can have either 3 or 4 word count - Samba sends 3 */
2960
2961 SecurityBlob2 = (PCHALLENGE_MESSAGE) bcc_ptr;
2962 if (SecurityBlob2->MessageType != NtLmChallenge) {
2963 cFYI(1, ("Unexpected NTLMSSP message type received %d",
2964 SecurityBlob2->MessageType));
2965 } else if (ses) {
2966 ses->Suid = smb_buffer_response->Uid; /* UID left in le format */
2967 cFYI(1, ("UID = %d", ses->Suid));
2968 if ((pSMBr->resp.hdr.WordCount == 3)
2969 || ((pSMBr->resp.hdr.WordCount == 4)
2970 && (blob_len <
2971 pSMBr->resp.ByteCount))) {
2972
2973 if (pSMBr->resp.hdr.WordCount == 4) {
2974 bcc_ptr += blob_len;
2975 cFYI(1, ("Security Blob Length %d",
2976 blob_len));
2977 }
2978
2979 cFYI(1, ("NTLMSSP Challenge rcvd"));
2980
2981 memcpy(ses->server->cryptKey,
2982 SecurityBlob2->Challenge,
2983 CIFS_CRYPTO_KEY_SIZE);
2984 if (SecurityBlob2->NegotiateFlags &
2985 cpu_to_le32(NTLMSSP_NEGOTIATE_NTLMV2))
2986 *pNTLMv2_flag = true;
2987
2988 if ((SecurityBlob2->NegotiateFlags &
2989 cpu_to_le32(NTLMSSP_NEGOTIATE_ALWAYS_SIGN))
2990 || (sign_CIFS_PDUs > 1))
2991 ses->server->secMode |=
2992 SECMODE_SIGN_REQUIRED;
2993 if ((SecurityBlob2->NegotiateFlags &
2994 cpu_to_le32(NTLMSSP_NEGOTIATE_SIGN)) && (sign_CIFS_PDUs))
2995 ses->server->secMode |=
2996 SECMODE_SIGN_ENABLED;
2997
2998 if (smb_buffer->Flags2 & SMBFLG2_UNICODE) {
2999 if ((long) (bcc_ptr) % 2) {
3000 remaining_words =
3001 (BCC(smb_buffer_response)
3002 - 1) / 2;
3003 /* Must word align unicode strings */
3004 bcc_ptr++;
3005 } else {
3006 remaining_words =
3007 BCC
3008 (smb_buffer_response) / 2;
3009 }
3010 len =
3011 UniStrnlen((wchar_t *) bcc_ptr,
3012 remaining_words - 1);
3013/* We look for obvious messed up bcc or strings in response so we do not go off
3014 the end since (at least) WIN2K and Windows XP have a major bug in not null
3015 terminating last Unicode string in response */
3016 if (ses->serverOS)
3017 kfree(ses->serverOS);
3018 ses->serverOS =
3019 kzalloc(2 * (len + 1), GFP_KERNEL);
3020 cifs_strfromUCS_le(ses->serverOS,
3021 (__le16 *)
3022 bcc_ptr, len,
3023 nls_codepage);
3024 bcc_ptr += 2 * (len + 1);
3025 remaining_words -= len + 1;
3026 ses->serverOS[2 * len] = 0;
3027 ses->serverOS[1 + (2 * len)] = 0;
3028 if (remaining_words > 0) {
3029 len = UniStrnlen((wchar_t *)
3030 bcc_ptr,
3031 remaining_words
3032 - 1);
3033 kfree(ses->serverNOS);
3034 ses->serverNOS =
3035 kzalloc(2 * (len + 1),
3036 GFP_KERNEL);
3037 cifs_strfromUCS_le(ses->
3038 serverNOS,
3039 (__le16 *)
3040 bcc_ptr,
3041 len,
3042 nls_codepage);
3043 bcc_ptr += 2 * (len + 1);
3044 ses->serverNOS[2 * len] = 0;
3045 ses->serverNOS[1 +
3046 (2 * len)] = 0;
3047 remaining_words -= len + 1;
3048 if (remaining_words > 0) {
3049 len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words);
3050 /* last string not always null terminated
3051 (for e.g. for Windows XP & 2000) */
3052 kfree(ses->serverDomain);
3053 ses->serverDomain =
3054 kzalloc(2 *
3055 (len +
3056 1),
3057 GFP_KERNEL);
3058 cifs_strfromUCS_le
3059 (ses->serverDomain,
3060 (__le16 *)bcc_ptr,
3061 len, nls_codepage);
3062 bcc_ptr +=
3063 2 * (len + 1);
3064 ses->serverDomain[2*len]
3065 = 0;
3066 ses->serverDomain
3067 [1 + (2 * len)]
3068 = 0;
3069 } /* else no more room so create dummy domain string */
3070 else {
3071 kfree(ses->serverDomain);
3072 ses->serverDomain =
3073 kzalloc(2,
3074 GFP_KERNEL);
3075 }
3076 } else { /* no room so create dummy domain and NOS string */
3077 kfree(ses->serverDomain);
3078 ses->serverDomain =
3079 kzalloc(2, GFP_KERNEL);
3080 kfree(ses->serverNOS);
3081 ses->serverNOS =
3082 kzalloc(2, GFP_KERNEL);
3083 }
3084 } else { /* ASCII */
3085 len = strnlen(bcc_ptr, 1024);
3086 if (((long) bcc_ptr + len) - (long)
3087 pByteArea(smb_buffer_response)
3088 <= BCC(smb_buffer_response)) {
3089 if (ses->serverOS)
3090 kfree(ses->serverOS);
3091 ses->serverOS =
3092 kzalloc(len + 1,
3093 GFP_KERNEL);
3094 strncpy(ses->serverOS,
3095 bcc_ptr, len);
3096
3097 bcc_ptr += len;
3098 bcc_ptr[0] = 0; /* null terminate string */
3099 bcc_ptr++;
3100
3101 len = strnlen(bcc_ptr, 1024);
3102 kfree(ses->serverNOS);
3103 ses->serverNOS =
3104 kzalloc(len + 1,
3105 GFP_KERNEL);
3106 strncpy(ses->serverNOS, bcc_ptr, len);
3107 bcc_ptr += len;
3108 bcc_ptr[0] = 0;
3109 bcc_ptr++;
3110
3111 len = strnlen(bcc_ptr, 1024);
3112 kfree(ses->serverDomain);
3113 ses->serverDomain =
3114 kzalloc(len + 1,
3115 GFP_KERNEL);
3116 strncpy(ses->serverDomain,
3117 bcc_ptr, len);
3118 bcc_ptr += len;
3119 bcc_ptr[0] = 0;
3120 bcc_ptr++;
3121 } else
3122 cFYI(1,
3123 ("field of length %d "
3124 "extends beyond end of smb",
3125 len));
3126 }
3127 } else {
3128 cERROR(1, ("Security Blob Length extends beyond"
3129 " end of SMB"));
3130 }
3131 } else {
3132 cERROR(1, ("No session structure passed in."));
3133 } 2582 }
3134 } else { 2583#else /* No DFS support, return error on mount */
3135 cERROR(1, ("Invalid Word count %d:", 2584 rc = -EOPNOTSUPP;
3136 smb_buffer_response->WordCount)); 2585#endif
3137 rc = -EIO;
3138 }
3139
3140 cifs_buf_release(smb_buffer);
3141
3142 return rc;
3143}
3144static int
3145CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses,
3146 char *ntlm_session_key, bool ntlmv2_flag,
3147 const struct nls_table *nls_codepage)
3148{
3149 struct smb_hdr *smb_buffer;
3150 struct smb_hdr *smb_buffer_response;
3151 SESSION_SETUP_ANDX *pSMB;
3152 SESSION_SETUP_ANDX *pSMBr;
3153 char *bcc_ptr;
3154 char *user;
3155 char *domain;
3156 int rc = 0;
3157 int remaining_words = 0;
3158 int bytes_returned = 0;
3159 int len;
3160 int SecurityBlobLength = sizeof(AUTHENTICATE_MESSAGE);
3161 PAUTHENTICATE_MESSAGE SecurityBlob;
3162 __u32 negotiate_flags, capabilities;
3163 __u16 count;
3164
3165 cFYI(1, ("In NTLMSSPSessSetup (Authenticate)"));
3166 if (ses == NULL)
3167 return -EINVAL;
3168 user = ses->userName;
3169 domain = ses->domainName;
3170 smb_buffer = cifs_buf_get();
3171 if (smb_buffer == NULL) {
3172 return -ENOMEM;
3173 }
3174 smb_buffer_response = smb_buffer;
3175 pSMB = (SESSION_SETUP_ANDX *)smb_buffer;
3176 pSMBr = (SESSION_SETUP_ANDX *)smb_buffer_response;
3177
3178 /* send SMBsessionSetup here */
3179 header_assemble(smb_buffer, SMB_COM_SESSION_SETUP_ANDX,
3180 NULL /* no tCon exists yet */ , 12 /* wct */ );
3181
3182 smb_buffer->Mid = GetNextMid(ses->server);
3183 pSMB->req.hdr.Flags |= (SMBFLG_CASELESS | SMBFLG_CANONICAL_PATH_FORMAT);
3184 pSMB->req.hdr.Flags2 |= SMBFLG2_EXT_SEC;
3185 pSMB->req.AndXCommand = 0xFF;
3186 pSMB->req.MaxBufferSize = cpu_to_le16(ses->server->maxBuf);
3187 pSMB->req.MaxMpxCount = cpu_to_le16(ses->server->maxReq);
3188
3189 pSMB->req.hdr.Uid = ses->Suid;
3190
3191 if (ses->server->secMode & (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
3192 smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE;
3193
3194 capabilities = CAP_LARGE_FILES | CAP_NT_SMBS | CAP_LEVEL_II_OPLOCKS |
3195 CAP_EXTENDED_SECURITY;
3196 if (ses->capabilities & CAP_UNICODE) {
3197 smb_buffer->Flags2 |= SMBFLG2_UNICODE;
3198 capabilities |= CAP_UNICODE;
3199 }
3200 if (ses->capabilities & CAP_STATUS32) {
3201 smb_buffer->Flags2 |= SMBFLG2_ERR_STATUS;
3202 capabilities |= CAP_STATUS32;
3203 } 2586 }
3204 if (ses->capabilities & CAP_DFS) {
3205 smb_buffer->Flags2 |= SMBFLG2_DFS;
3206 capabilities |= CAP_DFS;
3207 }
3208 pSMB->req.Capabilities = cpu_to_le32(capabilities);
3209
3210 bcc_ptr = (char *)&pSMB->req.SecurityBlob;
3211 SecurityBlob = (PAUTHENTICATE_MESSAGE)bcc_ptr;
3212 strncpy(SecurityBlob->Signature, NTLMSSP_SIGNATURE, 8);
3213 SecurityBlob->MessageType = NtLmAuthenticate;
3214 bcc_ptr += SecurityBlobLength;
3215 negotiate_flags = NTLMSSP_NEGOTIATE_UNICODE | NTLMSSP_REQUEST_TARGET |
3216 NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_NEGOTIATE_TARGET_INFO |
3217 0x80000000 | NTLMSSP_NEGOTIATE_128;
3218 if (sign_CIFS_PDUs)
3219 negotiate_flags |= /* NTLMSSP_NEGOTIATE_ALWAYS_SIGN |*/ NTLMSSP_NEGOTIATE_SIGN;
3220 if (ntlmv2_flag)
3221 negotiate_flags |= NTLMSSP_NEGOTIATE_NTLMV2;
3222
3223/* setup pointers to domain name and workstation name */
3224
3225 SecurityBlob->WorkstationName.Buffer = 0;
3226 SecurityBlob->WorkstationName.Length = 0;
3227 SecurityBlob->WorkstationName.MaximumLength = 0;
3228 SecurityBlob->SessionKey.Length = 0;
3229 SecurityBlob->SessionKey.MaximumLength = 0;
3230 SecurityBlob->SessionKey.Buffer = 0;
3231
3232 SecurityBlob->LmChallengeResponse.Length = 0;
3233 SecurityBlob->LmChallengeResponse.MaximumLength = 0;
3234 SecurityBlob->LmChallengeResponse.Buffer = 0;
3235
3236 SecurityBlob->NtChallengeResponse.Length =
3237 cpu_to_le16(CIFS_SESS_KEY_SIZE);
3238 SecurityBlob->NtChallengeResponse.MaximumLength =
3239 cpu_to_le16(CIFS_SESS_KEY_SIZE);
3240 memcpy(bcc_ptr, ntlm_session_key, CIFS_SESS_KEY_SIZE);
3241 SecurityBlob->NtChallengeResponse.Buffer =
3242 cpu_to_le32(SecurityBlobLength);
3243 SecurityBlobLength += CIFS_SESS_KEY_SIZE;
3244 bcc_ptr += CIFS_SESS_KEY_SIZE;
3245 2587
3246 if (ses->capabilities & CAP_UNICODE) { 2588mount_fail_check:
3247 if (domain == NULL) { 2589 /* on error free sesinfo and tcon struct if needed */
3248 SecurityBlob->DomainName.Buffer = 0;
3249 SecurityBlob->DomainName.Length = 0;
3250 SecurityBlob->DomainName.MaximumLength = 0;
3251 } else {
3252 __u16 ln = cifs_strtoUCS((__le16 *) bcc_ptr, domain, 64,
3253 nls_codepage);
3254 ln *= 2;
3255 SecurityBlob->DomainName.MaximumLength =
3256 cpu_to_le16(ln);
3257 SecurityBlob->DomainName.Buffer =
3258 cpu_to_le32(SecurityBlobLength);
3259 bcc_ptr += ln;
3260 SecurityBlobLength += ln;
3261 SecurityBlob->DomainName.Length = cpu_to_le16(ln);
3262 }
3263 if (user == NULL) {
3264 SecurityBlob->UserName.Buffer = 0;
3265 SecurityBlob->UserName.Length = 0;
3266 SecurityBlob->UserName.MaximumLength = 0;
3267 } else {
3268 __u16 ln = cifs_strtoUCS((__le16 *) bcc_ptr, user, 64,
3269 nls_codepage);
3270 ln *= 2;
3271 SecurityBlob->UserName.MaximumLength =
3272 cpu_to_le16(ln);
3273 SecurityBlob->UserName.Buffer =
3274 cpu_to_le32(SecurityBlobLength);
3275 bcc_ptr += ln;
3276 SecurityBlobLength += ln;
3277 SecurityBlob->UserName.Length = cpu_to_le16(ln);
3278 }
3279
3280 /* SecurityBlob->WorkstationName.Length =
3281 cifs_strtoUCS((__le16 *) bcc_ptr, "AMACHINE",64, nls_codepage);
3282 SecurityBlob->WorkstationName.Length *= 2;
3283 SecurityBlob->WorkstationName.MaximumLength =
3284 cpu_to_le16(SecurityBlob->WorkstationName.Length);
3285 SecurityBlob->WorkstationName.Buffer =
3286 cpu_to_le32(SecurityBlobLength);
3287 bcc_ptr += SecurityBlob->WorkstationName.Length;
3288 SecurityBlobLength += SecurityBlob->WorkstationName.Length;
3289 SecurityBlob->WorkstationName.Length =
3290 cpu_to_le16(SecurityBlob->WorkstationName.Length); */
3291
3292 if ((long) bcc_ptr % 2) {
3293 *bcc_ptr = 0;
3294 bcc_ptr++;
3295 }
3296 bytes_returned =
3297 cifs_strtoUCS((__le16 *) bcc_ptr, "Linux version ",
3298 32, nls_codepage);
3299 bcc_ptr += 2 * bytes_returned;
3300 bytes_returned =
3301 cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release, 32,
3302 nls_codepage);
3303 bcc_ptr += 2 * bytes_returned;
3304 bcc_ptr += 2; /* null term version string */
3305 bytes_returned =
3306 cifs_strtoUCS((__le16 *) bcc_ptr, CIFS_NETWORK_OPSYS,
3307 64, nls_codepage);
3308 bcc_ptr += 2 * bytes_returned;
3309 *(bcc_ptr + 1) = 0;
3310 *(bcc_ptr + 2) = 0;
3311 bcc_ptr += 2; /* null terminate network opsys string */
3312 *(bcc_ptr + 1) = 0;
3313 *(bcc_ptr + 2) = 0;
3314 bcc_ptr += 2; /* null domain */
3315 } else { /* ASCII */
3316 if (domain == NULL) {
3317 SecurityBlob->DomainName.Buffer = 0;
3318 SecurityBlob->DomainName.Length = 0;
3319 SecurityBlob->DomainName.MaximumLength = 0;
3320 } else {
3321 __u16 ln;
3322 negotiate_flags |= NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED;
3323 strncpy(bcc_ptr, domain, 63);
3324 ln = strnlen(domain, 64);
3325 SecurityBlob->DomainName.MaximumLength =
3326 cpu_to_le16(ln);
3327 SecurityBlob->DomainName.Buffer =
3328 cpu_to_le32(SecurityBlobLength);
3329 bcc_ptr += ln;
3330 SecurityBlobLength += ln;
3331 SecurityBlob->DomainName.Length = cpu_to_le16(ln);
3332 }
3333 if (user == NULL) {
3334 SecurityBlob->UserName.Buffer = 0;
3335 SecurityBlob->UserName.Length = 0;
3336 SecurityBlob->UserName.MaximumLength = 0;
3337 } else {
3338 __u16 ln;
3339 strncpy(bcc_ptr, user, 63);
3340 ln = strnlen(user, 64);
3341 SecurityBlob->UserName.MaximumLength = cpu_to_le16(ln);
3342 SecurityBlob->UserName.Buffer =
3343 cpu_to_le32(SecurityBlobLength);
3344 bcc_ptr += ln;
3345 SecurityBlobLength += ln;
3346 SecurityBlob->UserName.Length = cpu_to_le16(ln);
3347 }
3348 /* BB fill in our workstation name if known BB */
3349
3350 strcpy(bcc_ptr, "Linux version ");
3351 bcc_ptr += strlen("Linux version ");
3352 strcpy(bcc_ptr, utsname()->release);
3353 bcc_ptr += strlen(utsname()->release) + 1;
3354 strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
3355 bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
3356 bcc_ptr++; /* null domain */
3357 *bcc_ptr = 0;
3358 }
3359 SecurityBlob->NegotiateFlags = cpu_to_le32(negotiate_flags);
3360 pSMB->req.SecurityBlobLength = cpu_to_le16(SecurityBlobLength);
3361 count = (long) bcc_ptr - (long) pByteArea(smb_buffer);
3362 smb_buffer->smb_buf_length += count;
3363 pSMB->req.ByteCount = cpu_to_le16(count);
3364
3365 rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response,
3366 &bytes_returned, CIFS_LONG_OP);
3367 if (rc) { 2590 if (rc) {
3368/* rc = map_smb_to_linux_error(smb_buffer_response) done in SendReceive now */ 2591 if (mount_data != mount_data_global)
3369 } else if ((smb_buffer_response->WordCount == 3) || 2592 kfree(mount_data);
3370 (smb_buffer_response->WordCount == 4)) { 2593 /* If find_unc succeeded then rc == 0 so we can not end */
3371 __u16 action = le16_to_cpu(pSMBr->resp.Action); 2594 /* up accidently freeing someone elses tcon struct */
3372 __u16 blob_len = le16_to_cpu(pSMBr->resp.SecurityBlobLength); 2595 if (tcon)
3373 if (action & GUEST_LOGIN) 2596 cifs_put_tcon(tcon);
3374 cFYI(1, ("Guest login")); /* BB Should we set anything 2597 else if (pSesInfo)
3375 in SesInfo struct ? */ 2598 cifs_put_smb_ses(pSesInfo);
3376/* if (SecurityBlob2->MessageType != NtLm??) { 2599 else
3377 cFYI("Unexpected message type on auth response is %d")); 2600 cifs_put_tcp_session(srvTcp);
3378 } */ 2601 goto out;
3379
3380 if (ses) {
3381 cFYI(1,
3382 ("Check challenge UID %d vs auth response UID %d",
3383 ses->Suid, smb_buffer_response->Uid));
3384 /* UID left in wire format */
3385 ses->Suid = smb_buffer_response->Uid;
3386 bcc_ptr = pByteArea(smb_buffer_response);
3387 /* response can have either 3 or 4 word count - Samba sends 3 */
3388 if ((pSMBr->resp.hdr.WordCount == 3)
3389 || ((pSMBr->resp.hdr.WordCount == 4)
3390 && (blob_len <
3391 pSMBr->resp.ByteCount))) {
3392 if (pSMBr->resp.hdr.WordCount == 4) {
3393 bcc_ptr +=
3394 blob_len;
3395 cFYI(1,
3396 ("Security Blob Length %d ",
3397 blob_len));
3398 }
3399
3400 cFYI(1,
3401 ("NTLMSSP response to Authenticate "));
3402
3403 if (smb_buffer->Flags2 & SMBFLG2_UNICODE) {
3404 if ((long) (bcc_ptr) % 2) {
3405 remaining_words =
3406 (BCC(smb_buffer_response)
3407 - 1) / 2;
3408 bcc_ptr++; /* Unicode strings must be word aligned */
3409 } else {
3410 remaining_words = BCC(smb_buffer_response) / 2;
3411 }
3412 len = UniStrnlen((wchar_t *) bcc_ptr,
3413 remaining_words - 1);
3414/* We look for obvious messed up bcc or strings in response so we do not go off
3415 the end since (at least) WIN2K and Windows XP have a major bug in not null
3416 terminating last Unicode string in response */
3417 if (ses->serverOS)
3418 kfree(ses->serverOS);
3419 ses->serverOS =
3420 kzalloc(2 * (len + 1), GFP_KERNEL);
3421 cifs_strfromUCS_le(ses->serverOS,
3422 (__le16 *)
3423 bcc_ptr, len,
3424 nls_codepage);
3425 bcc_ptr += 2 * (len + 1);
3426 remaining_words -= len + 1;
3427 ses->serverOS[2 * len] = 0;
3428 ses->serverOS[1 + (2 * len)] = 0;
3429 if (remaining_words > 0) {
3430 len = UniStrnlen((wchar_t *)
3431 bcc_ptr,
3432 remaining_words
3433 - 1);
3434 kfree(ses->serverNOS);
3435 ses->serverNOS =
3436 kzalloc(2 * (len + 1),
3437 GFP_KERNEL);
3438 cifs_strfromUCS_le(ses->
3439 serverNOS,
3440 (__le16 *)
3441 bcc_ptr,
3442 len,
3443 nls_codepage);
3444 bcc_ptr += 2 * (len + 1);
3445 ses->serverNOS[2 * len] = 0;
3446 ses->serverNOS[1+(2*len)] = 0;
3447 remaining_words -= len + 1;
3448 if (remaining_words > 0) {
3449 len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words);
3450 /* last string not always null terminated (e.g. for Windows XP & 2000) */
3451 if (ses->serverDomain)
3452 kfree(ses->serverDomain);
3453 ses->serverDomain =
3454 kzalloc(2 *
3455 (len +
3456 1),
3457 GFP_KERNEL);
3458 cifs_strfromUCS_le
3459 (ses->
3460 serverDomain,
3461 (__le16 *)
3462 bcc_ptr, len,
3463 nls_codepage);
3464 bcc_ptr +=
3465 2 * (len + 1);
3466 ses->
3467 serverDomain[2
3468 * len]
3469 = 0;
3470 ses->
3471 serverDomain[1
3472 +
3473 (2
3474 *
3475 len)]
3476 = 0;
3477 } /* else no more room so create dummy domain string */
3478 else {
3479 if (ses->serverDomain)
3480 kfree(ses->serverDomain);
3481 ses->serverDomain = kzalloc(2,GFP_KERNEL);
3482 }
3483 } else { /* no room so create dummy domain and NOS string */
3484 if (ses->serverDomain)
3485 kfree(ses->serverDomain);
3486 ses->serverDomain = kzalloc(2, GFP_KERNEL);
3487 kfree(ses->serverNOS);
3488 ses->serverNOS = kzalloc(2, GFP_KERNEL);
3489 }
3490 } else { /* ASCII */
3491 len = strnlen(bcc_ptr, 1024);
3492 if (((long) bcc_ptr + len) -
3493 (long) pByteArea(smb_buffer_response)
3494 <= BCC(smb_buffer_response)) {
3495 if (ses->serverOS)
3496 kfree(ses->serverOS);
3497 ses->serverOS = kzalloc(len + 1, GFP_KERNEL);
3498 strncpy(ses->serverOS,bcc_ptr, len);
3499
3500 bcc_ptr += len;
3501 bcc_ptr[0] = 0; /* null terminate the string */
3502 bcc_ptr++;
3503
3504 len = strnlen(bcc_ptr, 1024);
3505 kfree(ses->serverNOS);
3506 ses->serverNOS = kzalloc(len+1,
3507 GFP_KERNEL);
3508 strncpy(ses->serverNOS,
3509 bcc_ptr, len);
3510 bcc_ptr += len;
3511 bcc_ptr[0] = 0;
3512 bcc_ptr++;
3513
3514 len = strnlen(bcc_ptr, 1024);
3515 if (ses->serverDomain)
3516 kfree(ses->serverDomain);
3517 ses->serverDomain =
3518 kzalloc(len+1,
3519 GFP_KERNEL);
3520 strncpy(ses->serverDomain,
3521 bcc_ptr, len);
3522 bcc_ptr += len;
3523 bcc_ptr[0] = 0;
3524 bcc_ptr++;
3525 } else
3526 cFYI(1, ("field of length %d "
3527 "extends beyond end of smb ",
3528 len));
3529 }
3530 } else {
3531 cERROR(1, ("Security Blob extends beyond end "
3532 "of SMB"));
3533 }
3534 } else {
3535 cERROR(1, ("No session structure passed in."));
3536 }
3537 } else {
3538 cERROR(1, ("Invalid Word count %d: ",
3539 smb_buffer_response->WordCount));
3540 rc = -EIO;
3541 } 2602 }
3542 2603
3543 cifs_buf_release(smb_buffer); 2604 /* volume_info->password is freed above when existing session found
3544 2605 (in which case it is not needed anymore) but when new sesion is created
2606 the password ptr is put in the new session structure (in which case the
2607 password will be freed at unmount time) */
2608out:
2609 /* zero out password before freeing */
2610 cleanup_volume_info(&volume_info);
2611 FreeXid(xid);
3545 return rc; 2612 return rc;
3546} 2613}
3547 2614
@@ -3556,7 +2623,7 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses,
3556 TCONX_RSP *pSMBr; 2623 TCONX_RSP *pSMBr;
3557 unsigned char *bcc_ptr; 2624 unsigned char *bcc_ptr;
3558 int rc = 0; 2625 int rc = 0;
3559 int length; 2626 int length, bytes_left;
3560 __u16 count; 2627 __u16 count;
3561 2628
3562 if (ses == NULL) 2629 if (ses == NULL)
@@ -3644,14 +2711,22 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses,
3644 rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response, &length, 2711 rc = SendReceive(xid, ses, smb_buffer, smb_buffer_response, &length,
3645 CIFS_STD_OP); 2712 CIFS_STD_OP);
3646 2713
3647 /* if (rc) rc = map_smb_to_linux_error(smb_buffer_response); */
3648 /* above now done in SendReceive */ 2714 /* above now done in SendReceive */
3649 if ((rc == 0) && (tcon != NULL)) { 2715 if ((rc == 0) && (tcon != NULL)) {
2716 bool is_unicode;
2717
3650 tcon->tidStatus = CifsGood; 2718 tcon->tidStatus = CifsGood;
3651 tcon->need_reconnect = false; 2719 tcon->need_reconnect = false;
3652 tcon->tid = smb_buffer_response->Tid; 2720 tcon->tid = smb_buffer_response->Tid;
3653 bcc_ptr = pByteArea(smb_buffer_response); 2721 bcc_ptr = pByteArea(smb_buffer_response);
3654 length = strnlen(bcc_ptr, BCC(smb_buffer_response) - 2); 2722 bytes_left = BCC(smb_buffer_response);
2723 length = strnlen(bcc_ptr, bytes_left - 2);
2724 if (smb_buffer->Flags2 & SMBFLG2_UNICODE)
2725 is_unicode = true;
2726 else
2727 is_unicode = false;
2728
2729
3655 /* skip service field (NB: this field is always ASCII) */ 2730 /* skip service field (NB: this field is always ASCII) */
3656 if (length == 3) { 2731 if (length == 3) {
3657 if ((bcc_ptr[0] == 'I') && (bcc_ptr[1] == 'P') && 2732 if ((bcc_ptr[0] == 'I') && (bcc_ptr[1] == 'P') &&
@@ -3666,40 +2741,16 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses,
3666 } 2741 }
3667 } 2742 }
3668 bcc_ptr += length + 1; 2743 bcc_ptr += length + 1;
2744 bytes_left -= (length + 1);
3669 strncpy(tcon->treeName, tree, MAX_TREE_SIZE); 2745 strncpy(tcon->treeName, tree, MAX_TREE_SIZE);
3670 if (smb_buffer->Flags2 & SMBFLG2_UNICODE) { 2746
3671 length = UniStrnlen((wchar_t *) bcc_ptr, 512); 2747 /* mostly informational -- no need to fail on error here */
3672 if ((bcc_ptr + (2 * length)) - 2748 tcon->nativeFileSystem = cifs_strndup_from_ucs(bcc_ptr,
3673 pByteArea(smb_buffer_response) <= 2749 bytes_left, is_unicode,
3674 BCC(smb_buffer_response)) { 2750 nls_codepage);
3675 kfree(tcon->nativeFileSystem); 2751
3676 tcon->nativeFileSystem = 2752 cFYI(1, ("nativeFileSystem=%s", tcon->nativeFileSystem));
3677 kzalloc(2*(length + 1), GFP_KERNEL); 2753
3678 if (tcon->nativeFileSystem)
3679 cifs_strfromUCS_le(
3680 tcon->nativeFileSystem,
3681 (__le16 *) bcc_ptr,
3682 length, nls_codepage);
3683 bcc_ptr += 2 * length;
3684 bcc_ptr[0] = 0; /* null terminate the string */
3685 bcc_ptr[1] = 0;
3686 bcc_ptr += 2;
3687 }
3688 /* else do not bother copying these information fields*/
3689 } else {
3690 length = strnlen(bcc_ptr, 1024);
3691 if ((bcc_ptr + length) -
3692 pByteArea(smb_buffer_response) <=
3693 BCC(smb_buffer_response)) {
3694 kfree(tcon->nativeFileSystem);
3695 tcon->nativeFileSystem =
3696 kzalloc(length + 1, GFP_KERNEL);
3697 if (tcon->nativeFileSystem)
3698 strncpy(tcon->nativeFileSystem, bcc_ptr,
3699 length);
3700 }
3701 /* else do not bother copying these information fields*/
3702 }
3703 if ((smb_buffer_response->WordCount == 3) || 2754 if ((smb_buffer_response->WordCount == 3) ||
3704 (smb_buffer_response->WordCount == 7)) 2755 (smb_buffer_response->WordCount == 7))
3705 /* field is in same location */ 2756 /* field is in same location */
@@ -3738,8 +2789,6 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3738 struct nls_table *nls_info) 2789 struct nls_table *nls_info)
3739{ 2790{
3740 int rc = 0; 2791 int rc = 0;
3741 char ntlm_session_key[CIFS_SESS_KEY_SIZE];
3742 bool ntlmv2_flag = false;
3743 int first_time = 0; 2792 int first_time = 0;
3744 struct TCP_Server_Info *server = pSesInfo->server; 2793 struct TCP_Server_Info *server = pSesInfo->server;
3745 2794
@@ -3771,83 +2820,19 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3771 pSesInfo->capabilities = server->capabilities; 2820 pSesInfo->capabilities = server->capabilities;
3772 if (linuxExtEnabled == 0) 2821 if (linuxExtEnabled == 0)
3773 pSesInfo->capabilities &= (~CAP_UNIX); 2822 pSesInfo->capabilities &= (~CAP_UNIX);
3774 /* pSesInfo->sequence_number = 0;*/ 2823
3775 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d", 2824 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d",
3776 server->secMode, server->capabilities, server->timeAdj)); 2825 server->secMode, server->capabilities, server->timeAdj));
3777 2826
3778 if (experimEnabled < 2) 2827 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info);
3779 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info);
3780 else if (extended_security
3781 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3782 && (server->secType == NTLMSSP)) {
3783 rc = -EOPNOTSUPP;
3784 } else if (extended_security
3785 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3786 && (server->secType == RawNTLMSSP)) {
3787 cFYI(1, ("NTLMSSP sesssetup"));
3788 rc = CIFSNTLMSSPNegotiateSessSetup(xid, pSesInfo, &ntlmv2_flag,
3789 nls_info);
3790 if (!rc) {
3791 if (ntlmv2_flag) {
3792 char *v2_response;
3793 cFYI(1, ("more secure NTLM ver2 hash"));
3794 if (CalcNTLMv2_partial_mac_key(pSesInfo,
3795 nls_info)) {
3796 rc = -ENOMEM;
3797 goto ss_err_exit;
3798 } else
3799 v2_response = kmalloc(16 + 64 /* blob*/,
3800 GFP_KERNEL);
3801 if (v2_response) {
3802 CalcNTLMv2_response(pSesInfo,
3803 v2_response);
3804 /* if (first_time)
3805 cifs_calculate_ntlmv2_mac_key */
3806 kfree(v2_response);
3807 /* BB Put dummy sig in SessSetup PDU? */
3808 } else {
3809 rc = -ENOMEM;
3810 goto ss_err_exit;
3811 }
3812
3813 } else {
3814 SMBNTencrypt(pSesInfo->password,
3815 server->cryptKey,
3816 ntlm_session_key);
3817
3818 if (first_time)
3819 cifs_calculate_mac_key(
3820 &server->mac_signing_key,
3821 ntlm_session_key,
3822 pSesInfo->password);
3823 }
3824 /* for better security the weaker lanman hash not sent
3825 in AuthSessSetup so we no longer calculate it */
3826
3827 rc = CIFSNTLMSSPAuthSessSetup(xid, pSesInfo,
3828 ntlm_session_key,
3829 ntlmv2_flag,
3830 nls_info);
3831 }
3832 } else { /* old style NTLM 0.12 session setup */
3833 SMBNTencrypt(pSesInfo->password, server->cryptKey,
3834 ntlm_session_key);
3835
3836 if (first_time)
3837 cifs_calculate_mac_key(&server->mac_signing_key,
3838 ntlm_session_key,
3839 pSesInfo->password);
3840
3841 rc = CIFSSessSetup(xid, pSesInfo, ntlm_session_key, nls_info);
3842 }
3843 if (rc) { 2828 if (rc) {
3844 cERROR(1, ("Send error in SessSetup = %d", rc)); 2829 cERROR(1, ("Send error in SessSetup = %d", rc));
3845 } else { 2830 } else {
3846 cFYI(1, ("CIFS Session Established successfully")); 2831 cFYI(1, ("CIFS Session Established successfully"));
3847 spin_lock(&GlobalMid_Lock); 2832 spin_lock(&GlobalMid_Lock);
3848 pSesInfo->status = CifsGood; 2833 pSesInfo->status = CifsGood;
3849 pSesInfo->need_reconnect = false; 2834 pSesInfo->need_reconnect = false;
3850 spin_unlock(&GlobalMid_Lock); 2835 spin_unlock(&GlobalMid_Lock);
3851 } 2836 }
3852 2837
3853ss_err_exit: 2838ss_err_exit:
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 54dce78fbb73..11431ed72a7f 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -129,12 +129,62 @@ cifs_bp_rename_retry:
129 return full_path; 129 return full_path;
130} 130}
131 131
132static void
133cifs_fill_fileinfo(struct inode *newinode, __u16 fileHandle,
134 struct cifsTconInfo *tcon, bool write_only)
135{
136 int oplock = 0;
137 struct cifsFileInfo *pCifsFile;
138 struct cifsInodeInfo *pCifsInode;
139
140 pCifsFile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
141
142 if (pCifsFile == NULL)
143 return;
144
145 if (oplockEnabled)
146 oplock = REQ_OPLOCK;
147
148 pCifsFile->netfid = fileHandle;
149 pCifsFile->pid = current->tgid;
150 pCifsFile->pInode = newinode;
151 pCifsFile->invalidHandle = false;
152 pCifsFile->closePend = false;
153 mutex_init(&pCifsFile->fh_mutex);
154 mutex_init(&pCifsFile->lock_mutex);
155 INIT_LIST_HEAD(&pCifsFile->llist);
156 atomic_set(&pCifsFile->wrtPending, 0);
157
158 /* set the following in open now
159 pCifsFile->pfile = file; */
160 write_lock(&GlobalSMBSeslock);
161 list_add(&pCifsFile->tlist, &tcon->openFileList);
162 pCifsInode = CIFS_I(newinode);
163 if (pCifsInode) {
164 /* if readable file instance put first in list*/
165 if (write_only)
166 list_add_tail(&pCifsFile->flist,
167 &pCifsInode->openFileList);
168 else
169 list_add(&pCifsFile->flist, &pCifsInode->openFileList);
170
171 if ((oplock & 0xF) == OPLOCK_EXCLUSIVE) {
172 pCifsInode->clientCanCacheAll = true;
173 pCifsInode->clientCanCacheRead = true;
174 cFYI(1, ("Exclusive Oplock inode %p", newinode));
175 } else if ((oplock & 0xF) == OPLOCK_READ)
176 pCifsInode->clientCanCacheRead = true;
177 }
178 write_unlock(&GlobalSMBSeslock);
179}
180
132int cifs_posix_open(char *full_path, struct inode **pinode, 181int cifs_posix_open(char *full_path, struct inode **pinode,
133 struct super_block *sb, int mode, int oflags, 182 struct super_block *sb, int mode, int oflags,
134 int *poplock, __u16 *pnetfid, int xid) 183 int *poplock, __u16 *pnetfid, int xid)
135{ 184{
136 int rc; 185 int rc;
137 __u32 oplock; 186 __u32 oplock;
187 bool write_only = false;
138 FILE_UNIX_BASIC_INFO *presp_data; 188 FILE_UNIX_BASIC_INFO *presp_data;
139 __u32 posix_flags = 0; 189 __u32 posix_flags = 0;
140 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); 190 struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
@@ -172,6 +222,8 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
172 if (oflags & O_DIRECT) 222 if (oflags & O_DIRECT)
173 posix_flags |= SMB_O_DIRECT; 223 posix_flags |= SMB_O_DIRECT;
174 224
225 if (!(oflags & FMODE_READ))
226 write_only = true;
175 227
176 rc = CIFSPOSIXCreate(xid, cifs_sb->tcon, posix_flags, mode, 228 rc = CIFSPOSIXCreate(xid, cifs_sb->tcon, posix_flags, mode,
177 pnetfid, presp_data, &oplock, full_path, 229 pnetfid, presp_data, &oplock, full_path,
@@ -187,8 +239,10 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
187 if (!pinode) 239 if (!pinode)
188 goto posix_open_ret; /* caller does not need info */ 240 goto posix_open_ret; /* caller does not need info */
189 241
190 if (*pinode == NULL) 242 if (*pinode == NULL) {
191 *pinode = cifs_new_inode(sb, &presp_data->UniqueId); 243 __u64 unique_id = le64_to_cpu(presp_data->UniqueId);
244 *pinode = cifs_new_inode(sb, &unique_id);
245 }
192 /* else an inode was passed in. Update its info, don't create one */ 246 /* else an inode was passed in. Update its info, don't create one */
193 247
194 /* We do not need to close the file if new_inode fails since 248 /* We do not need to close the file if new_inode fails since
@@ -198,6 +252,8 @@ int cifs_posix_open(char *full_path, struct inode **pinode,
198 252
199 posix_fill_in_inode(*pinode, presp_data, 1); 253 posix_fill_in_inode(*pinode, presp_data, 1);
200 254
255 cifs_fill_fileinfo(*pinode, *pnetfid, cifs_sb->tcon, write_only);
256
201posix_open_ret: 257posix_open_ret:
202 kfree(presp_data); 258 kfree(presp_data);
203 return rc; 259 return rc;
@@ -225,6 +281,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
225 int create_options = CREATE_NOT_DIR; 281 int create_options = CREATE_NOT_DIR;
226 int oplock = 0; 282 int oplock = 0;
227 int oflags; 283 int oflags;
284 bool posix_create = false;
228 /* 285 /*
229 * BB below access is probably too much for mknod to request 286 * BB below access is probably too much for mknod to request
230 * but we have to do query and setpathinfo so requesting 287 * but we have to do query and setpathinfo so requesting
@@ -239,7 +296,6 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
239 char *full_path = NULL; 296 char *full_path = NULL;
240 FILE_ALL_INFO *buf = NULL; 297 FILE_ALL_INFO *buf = NULL;
241 struct inode *newinode = NULL; 298 struct inode *newinode = NULL;
242 struct cifsInodeInfo *pCifsInode;
243 int disposition = FILE_OVERWRITE_IF; 299 int disposition = FILE_OVERWRITE_IF;
244 bool write_only = false; 300 bool write_only = false;
245 301
@@ -273,11 +329,13 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
273 negotation. EREMOTE indicates DFS junction, which is not 329 negotation. EREMOTE indicates DFS junction, which is not
274 handled in posix open */ 330 handled in posix open */
275 331
276 if ((rc == 0) && (newinode == NULL)) 332 if (rc == 0) {
277 goto cifs_create_get_file_info; /* query inode info */ 333 posix_create = true;
278 else if (rc == 0) /* success, no need to query */ 334 if (newinode == NULL) /* query inode info */
279 goto cifs_create_set_dentry; 335 goto cifs_create_get_file_info;
280 else if ((rc != -EIO) && (rc != -EREMOTE) && 336 else /* success, no need to query */
337 goto cifs_create_set_dentry;
338 } else if ((rc != -EIO) && (rc != -EREMOTE) &&
281 (rc != -EOPNOTSUPP)) /* path not found or net err */ 339 (rc != -EOPNOTSUPP)) /* path not found or net err */
282 goto cifs_create_out; 340 goto cifs_create_out;
283 /* else fallthrough to retry, using older open call, this is 341 /* else fallthrough to retry, using older open call, this is
@@ -409,45 +467,9 @@ cifs_create_set_dentry:
409 if ((nd == NULL) || (!(nd->flags & LOOKUP_OPEN))) { 467 if ((nd == NULL) || (!(nd->flags & LOOKUP_OPEN))) {
410 /* mknod case - do not leave file open */ 468 /* mknod case - do not leave file open */
411 CIFSSMBClose(xid, tcon, fileHandle); 469 CIFSSMBClose(xid, tcon, fileHandle);
412 } else if (newinode) { 470 } else if (!(posix_create) && (newinode)) {
413 struct cifsFileInfo *pCifsFile = 471 cifs_fill_fileinfo(newinode, fileHandle,
414 kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL); 472 cifs_sb->tcon, write_only);
415
416 if (pCifsFile == NULL)
417 goto cifs_create_out;
418 pCifsFile->netfid = fileHandle;
419 pCifsFile->pid = current->tgid;
420 pCifsFile->pInode = newinode;
421 pCifsFile->invalidHandle = false;
422 pCifsFile->closePend = false;
423 init_MUTEX(&pCifsFile->fh_sem);
424 mutex_init(&pCifsFile->lock_mutex);
425 INIT_LIST_HEAD(&pCifsFile->llist);
426 atomic_set(&pCifsFile->wrtPending, 0);
427
428 /* set the following in open now
429 pCifsFile->pfile = file; */
430 write_lock(&GlobalSMBSeslock);
431 list_add(&pCifsFile->tlist, &tcon->openFileList);
432 pCifsInode = CIFS_I(newinode);
433 if (pCifsInode) {
434 /* if readable file instance put first in list*/
435 if (write_only) {
436 list_add_tail(&pCifsFile->flist,
437 &pCifsInode->openFileList);
438 } else {
439 list_add(&pCifsFile->flist,
440 &pCifsInode->openFileList);
441 }
442 if ((oplock & 0xF) == OPLOCK_EXCLUSIVE) {
443 pCifsInode->clientCanCacheAll = true;
444 pCifsInode->clientCanCacheRead = true;
445 cFYI(1, ("Exclusive Oplock inode %p",
446 newinode));
447 } else if ((oplock & 0xF) == OPLOCK_READ)
448 pCifsInode->clientCanCacheRead = true;
449 }
450 write_unlock(&GlobalSMBSeslock);
451 } 473 }
452cifs_create_out: 474cifs_create_out:
453 kfree(buf); 475 kfree(buf);
@@ -580,17 +602,21 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode,
580 return rc; 602 return rc;
581} 603}
582 604
583
584struct dentry * 605struct dentry *
585cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, 606cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
586 struct nameidata *nd) 607 struct nameidata *nd)
587{ 608{
588 int xid; 609 int xid;
589 int rc = 0; /* to get around spurious gcc warning, set to zero here */ 610 int rc = 0; /* to get around spurious gcc warning, set to zero here */
611 int oplock = 0;
612 int mode;
613 __u16 fileHandle = 0;
614 bool posix_open = false;
590 struct cifs_sb_info *cifs_sb; 615 struct cifs_sb_info *cifs_sb;
591 struct cifsTconInfo *pTcon; 616 struct cifsTconInfo *pTcon;
592 struct inode *newInode = NULL; 617 struct inode *newInode = NULL;
593 char *full_path = NULL; 618 char *full_path = NULL;
619 struct file *filp;
594 620
595 xid = GetXid(); 621 xid = GetXid();
596 622
@@ -632,12 +658,37 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
632 } 658 }
633 cFYI(1, ("Full path: %s inode = 0x%p", full_path, direntry->d_inode)); 659 cFYI(1, ("Full path: %s inode = 0x%p", full_path, direntry->d_inode));
634 660
635 if (pTcon->unix_ext) 661 if (pTcon->unix_ext) {
636 rc = cifs_get_inode_info_unix(&newInode, full_path, 662 if (!(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY)) &&
637 parent_dir_inode->i_sb, xid); 663 (nd->flags & LOOKUP_OPEN)) {
638 else 664 if (!((nd->intent.open.flags & O_CREAT) &&
665 (nd->intent.open.flags & O_EXCL))) {
666 mode = nd->intent.open.create_mode &
667 ~current_umask();
668 rc = cifs_posix_open(full_path, &newInode,
669 parent_dir_inode->i_sb, mode,
670 nd->intent.open.flags, &oplock,
671 &fileHandle, xid);
672 /*
673 * This code works around a bug in
674 * samba posix open in samba versions 3.3.1
675 * and earlier where create works
676 * but open fails with invalid parameter.
677 * If either of these error codes are
678 * returned, follow the normal lookup.
679 * Otherwise, the error during posix open
680 * is handled.
681 */
682 if ((rc != -EINVAL) && (rc != -EOPNOTSUPP))
683 posix_open = true;
684 }
685 }
686 if (!posix_open)
687 rc = cifs_get_inode_info_unix(&newInode, full_path,
688 parent_dir_inode->i_sb, xid);
689 } else
639 rc = cifs_get_inode_info(&newInode, full_path, NULL, 690 rc = cifs_get_inode_info(&newInode, full_path, NULL,
640 parent_dir_inode->i_sb, xid, NULL); 691 parent_dir_inode->i_sb, xid, NULL);
641 692
642 if ((rc == 0) && (newInode != NULL)) { 693 if ((rc == 0) && (newInode != NULL)) {
643 if (pTcon->nocase) 694 if (pTcon->nocase)
@@ -645,7 +696,8 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
645 else 696 else
646 direntry->d_op = &cifs_dentry_ops; 697 direntry->d_op = &cifs_dentry_ops;
647 d_add(direntry, newInode); 698 d_add(direntry, newInode);
648 699 if (posix_open)
700 filp = lookup_instantiate_filp(nd, direntry, NULL);
649 /* since paths are not looked up by component - the parent 701 /* since paths are not looked up by component - the parent
650 directories are presumed to be good here */ 702 directories are presumed to be good here */
651 renew_parental_timestamps(direntry); 703 renew_parental_timestamps(direntry);
diff --git a/fs/cifs/dns_resolve.c b/fs/cifs/dns_resolve.c
index 1e0c1bd8f2e4..df4a306f697e 100644
--- a/fs/cifs/dns_resolve.c
+++ b/fs/cifs/dns_resolve.c
@@ -78,7 +78,7 @@ dns_resolver_instantiate(struct key *key, const void *data,
78 } 78 }
79 79
80 key->type_data.x[0] = datalen; 80 key->type_data.x[0] = datalen;
81 rcu_assign_pointer(key->payload.data, ip); 81 key->payload.data = ip;
82 82
83 return rc; 83 return rc;
84} 84}
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 81747acca4c4..38c06f826575 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -46,7 +46,7 @@ static inline struct cifsFileInfo *cifs_init_private(
46 memset(private_data, 0, sizeof(struct cifsFileInfo)); 46 memset(private_data, 0, sizeof(struct cifsFileInfo));
47 private_data->netfid = netfid; 47 private_data->netfid = netfid;
48 private_data->pid = current->tgid; 48 private_data->pid = current->tgid;
49 init_MUTEX(&private_data->fh_sem); 49 mutex_init(&private_data->fh_mutex);
50 mutex_init(&private_data->lock_mutex); 50 mutex_init(&private_data->lock_mutex);
51 INIT_LIST_HEAD(&private_data->llist); 51 INIT_LIST_HEAD(&private_data->llist);
52 private_data->pfile = file; /* needed for writepage */ 52 private_data->pfile = file; /* needed for writepage */
@@ -129,15 +129,12 @@ static inline int cifs_posix_open_inode_helper(struct inode *inode,
129 struct file *file, struct cifsInodeInfo *pCifsInode, 129 struct file *file, struct cifsInodeInfo *pCifsInode,
130 struct cifsFileInfo *pCifsFile, int oplock, u16 netfid) 130 struct cifsFileInfo *pCifsFile, int oplock, u16 netfid)
131{ 131{
132 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
133/* struct timespec temp; */ /* BB REMOVEME BB */
134 132
135 file->private_data = kmalloc(sizeof(struct cifsFileInfo), GFP_KERNEL); 133 file->private_data = kmalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
136 if (file->private_data == NULL) 134 if (file->private_data == NULL)
137 return -ENOMEM; 135 return -ENOMEM;
138 pCifsFile = cifs_init_private(file->private_data, inode, file, netfid); 136 pCifsFile = cifs_init_private(file->private_data, inode, file, netfid);
139 write_lock(&GlobalSMBSeslock); 137 write_lock(&GlobalSMBSeslock);
140 list_add(&pCifsFile->tlist, &cifs_sb->tcon->openFileList);
141 138
142 pCifsInode = CIFS_I(file->f_path.dentry->d_inode); 139 pCifsInode = CIFS_I(file->f_path.dentry->d_inode);
143 if (pCifsInode == NULL) { 140 if (pCifsInode == NULL) {
@@ -145,17 +142,6 @@ static inline int cifs_posix_open_inode_helper(struct inode *inode,
145 return -EINVAL; 142 return -EINVAL;
146 } 143 }
147 144
148 /* want handles we can use to read with first
149 in the list so we do not have to walk the
150 list to search for one in write_begin */
151 if ((file->f_flags & O_ACCMODE) == O_WRONLY) {
152 list_add_tail(&pCifsFile->flist,
153 &pCifsInode->openFileList);
154 } else {
155 list_add(&pCifsFile->flist,
156 &pCifsInode->openFileList);
157 }
158
159 if (pCifsInode->clientCanCacheRead) { 145 if (pCifsInode->clientCanCacheRead) {
160 /* we have the inode open somewhere else 146 /* we have the inode open somewhere else
161 no need to discard cache data */ 147 no need to discard cache data */
@@ -284,35 +270,32 @@ int cifs_open(struct inode *inode, struct file *file)
284 cifs_sb = CIFS_SB(inode->i_sb); 270 cifs_sb = CIFS_SB(inode->i_sb);
285 tcon = cifs_sb->tcon; 271 tcon = cifs_sb->tcon;
286 272
287 if (file->f_flags & O_CREAT) { 273 /* search inode for this file and fill in file->private_data */
288 /* search inode for this file and fill in file->private_data */ 274 pCifsInode = CIFS_I(file->f_path.dentry->d_inode);
289 pCifsInode = CIFS_I(file->f_path.dentry->d_inode); 275 read_lock(&GlobalSMBSeslock);
290 read_lock(&GlobalSMBSeslock); 276 list_for_each(tmp, &pCifsInode->openFileList) {
291 list_for_each(tmp, &pCifsInode->openFileList) { 277 pCifsFile = list_entry(tmp, struct cifsFileInfo,
292 pCifsFile = list_entry(tmp, struct cifsFileInfo, 278 flist);
293 flist); 279 if ((pCifsFile->pfile == NULL) &&
294 if ((pCifsFile->pfile == NULL) && 280 (pCifsFile->pid == current->tgid)) {
295 (pCifsFile->pid == current->tgid)) { 281 /* mode set in cifs_create */
296 /* mode set in cifs_create */ 282
297 283 /* needed for writepage */
298 /* needed for writepage */ 284 pCifsFile->pfile = file;
299 pCifsFile->pfile = file; 285
300 286 file->private_data = pCifsFile;
301 file->private_data = pCifsFile; 287 break;
302 break;
303 }
304 }
305 read_unlock(&GlobalSMBSeslock);
306 if (file->private_data != NULL) {
307 rc = 0;
308 FreeXid(xid);
309 return rc;
310 } else {
311 if (file->f_flags & O_EXCL)
312 cERROR(1, ("could not find file instance for "
313 "new file %p", file));
314 } 288 }
315 } 289 }
290 read_unlock(&GlobalSMBSeslock);
291
292 if (file->private_data != NULL) {
293 rc = 0;
294 FreeXid(xid);
295 return rc;
296 } else if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL))
297 cERROR(1, ("could not find file instance for "
298 "new file %p", file));
316 299
317 full_path = build_path_from_dentry(file->f_path.dentry); 300 full_path = build_path_from_dentry(file->f_path.dentry);
318 if (full_path == NULL) { 301 if (full_path == NULL) {
@@ -500,9 +483,9 @@ static int cifs_reopen_file(struct file *file, bool can_flush)
500 return -EBADF; 483 return -EBADF;
501 484
502 xid = GetXid(); 485 xid = GetXid();
503 down(&pCifsFile->fh_sem); 486 mutex_unlock(&pCifsFile->fh_mutex);
504 if (!pCifsFile->invalidHandle) { 487 if (!pCifsFile->invalidHandle) {
505 up(&pCifsFile->fh_sem); 488 mutex_lock(&pCifsFile->fh_mutex);
506 FreeXid(xid); 489 FreeXid(xid);
507 return 0; 490 return 0;
508 } 491 }
@@ -533,7 +516,7 @@ static int cifs_reopen_file(struct file *file, bool can_flush)
533 if (full_path == NULL) { 516 if (full_path == NULL) {
534 rc = -ENOMEM; 517 rc = -ENOMEM;
535reopen_error_exit: 518reopen_error_exit:
536 up(&pCifsFile->fh_sem); 519 mutex_lock(&pCifsFile->fh_mutex);
537 FreeXid(xid); 520 FreeXid(xid);
538 return rc; 521 return rc;
539 } 522 }
@@ -575,14 +558,14 @@ reopen_error_exit:
575 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & 558 cifs_sb->local_nls, cifs_sb->mnt_cifs_flags &
576 CIFS_MOUNT_MAP_SPECIAL_CHR); 559 CIFS_MOUNT_MAP_SPECIAL_CHR);
577 if (rc) { 560 if (rc) {
578 up(&pCifsFile->fh_sem); 561 mutex_lock(&pCifsFile->fh_mutex);
579 cFYI(1, ("cifs_open returned 0x%x", rc)); 562 cFYI(1, ("cifs_open returned 0x%x", rc));
580 cFYI(1, ("oplock: %d", oplock)); 563 cFYI(1, ("oplock: %d", oplock));
581 } else { 564 } else {
582reopen_success: 565reopen_success:
583 pCifsFile->netfid = netfid; 566 pCifsFile->netfid = netfid;
584 pCifsFile->invalidHandle = false; 567 pCifsFile->invalidHandle = false;
585 up(&pCifsFile->fh_sem); 568 mutex_lock(&pCifsFile->fh_mutex);
586 pCifsInode = CIFS_I(inode); 569 pCifsInode = CIFS_I(inode);
587 if (pCifsInode) { 570 if (pCifsInode) {
588 if (can_flush) { 571 if (can_flush) {
@@ -971,6 +954,40 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
971 return rc; 954 return rc;
972} 955}
973 956
957/*
958 * Set the timeout on write requests past EOF. For some servers (Windows)
959 * these calls can be very long.
960 *
961 * If we're writing >10M past the EOF we give a 180s timeout. Anything less
962 * than that gets a 45s timeout. Writes not past EOF get 15s timeouts.
963 * The 10M cutoff is totally arbitrary. A better scheme for this would be
964 * welcome if someone wants to suggest one.
965 *
966 * We may be able to do a better job with this if there were some way to
967 * declare that a file should be sparse.
968 */
969static int
970cifs_write_timeout(struct cifsInodeInfo *cifsi, loff_t offset)
971{
972 if (offset <= cifsi->server_eof)
973 return CIFS_STD_OP;
974 else if (offset > (cifsi->server_eof + (10 * 1024 * 1024)))
975 return CIFS_VLONG_OP;
976 else
977 return CIFS_LONG_OP;
978}
979
980/* update the file size (if needed) after a write */
981static void
982cifs_update_eof(struct cifsInodeInfo *cifsi, loff_t offset,
983 unsigned int bytes_written)
984{
985 loff_t end_of_write = offset + bytes_written;
986
987 if (end_of_write > cifsi->server_eof)
988 cifsi->server_eof = end_of_write;
989}
990
974ssize_t cifs_user_write(struct file *file, const char __user *write_data, 991ssize_t cifs_user_write(struct file *file, const char __user *write_data,
975 size_t write_size, loff_t *poffset) 992 size_t write_size, loff_t *poffset)
976{ 993{
@@ -981,6 +998,7 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data,
981 struct cifsTconInfo *pTcon; 998 struct cifsTconInfo *pTcon;
982 int xid, long_op; 999 int xid, long_op;
983 struct cifsFileInfo *open_file; 1000 struct cifsFileInfo *open_file;
1001 struct cifsInodeInfo *cifsi = CIFS_I(file->f_path.dentry->d_inode);
984 1002
985 cifs_sb = CIFS_SB(file->f_path.dentry->d_sb); 1003 cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
986 1004
@@ -1000,11 +1018,7 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data,
1000 1018
1001 xid = GetXid(); 1019 xid = GetXid();
1002 1020
1003 if (*poffset > file->f_path.dentry->d_inode->i_size) 1021 long_op = cifs_write_timeout(cifsi, *poffset);
1004 long_op = CIFS_VLONG_OP; /* writes past EOF take long time */
1005 else
1006 long_op = CIFS_LONG_OP;
1007
1008 for (total_written = 0; write_size > total_written; 1022 for (total_written = 0; write_size > total_written;
1009 total_written += bytes_written) { 1023 total_written += bytes_written) {
1010 rc = -EAGAIN; 1024 rc = -EAGAIN;
@@ -1048,8 +1062,10 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data,
1048 FreeXid(xid); 1062 FreeXid(xid);
1049 return rc; 1063 return rc;
1050 } 1064 }
1051 } else 1065 } else {
1066 cifs_update_eof(cifsi, *poffset, bytes_written);
1052 *poffset += bytes_written; 1067 *poffset += bytes_written;
1068 }
1053 long_op = CIFS_STD_OP; /* subsequent writes fast - 1069 long_op = CIFS_STD_OP; /* subsequent writes fast -
1054 15 seconds is plenty */ 1070 15 seconds is plenty */
1055 } 1071 }
@@ -1085,6 +1101,7 @@ static ssize_t cifs_write(struct file *file, const char *write_data,
1085 struct cifsTconInfo *pTcon; 1101 struct cifsTconInfo *pTcon;
1086 int xid, long_op; 1102 int xid, long_op;
1087 struct cifsFileInfo *open_file; 1103 struct cifsFileInfo *open_file;
1104 struct cifsInodeInfo *cifsi = CIFS_I(file->f_path.dentry->d_inode);
1088 1105
1089 cifs_sb = CIFS_SB(file->f_path.dentry->d_sb); 1106 cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
1090 1107
@@ -1099,11 +1116,7 @@ static ssize_t cifs_write(struct file *file, const char *write_data,
1099 1116
1100 xid = GetXid(); 1117 xid = GetXid();
1101 1118
1102 if (*poffset > file->f_path.dentry->d_inode->i_size) 1119 long_op = cifs_write_timeout(cifsi, *poffset);
1103 long_op = CIFS_VLONG_OP; /* writes past EOF can be slow */
1104 else
1105 long_op = CIFS_LONG_OP;
1106
1107 for (total_written = 0; write_size > total_written; 1120 for (total_written = 0; write_size > total_written;
1108 total_written += bytes_written) { 1121 total_written += bytes_written) {
1109 rc = -EAGAIN; 1122 rc = -EAGAIN;
@@ -1166,8 +1179,10 @@ static ssize_t cifs_write(struct file *file, const char *write_data,
1166 FreeXid(xid); 1179 FreeXid(xid);
1167 return rc; 1180 return rc;
1168 } 1181 }
1169 } else 1182 } else {
1183 cifs_update_eof(cifsi, *poffset, bytes_written);
1170 *poffset += bytes_written; 1184 *poffset += bytes_written;
1185 }
1171 long_op = CIFS_STD_OP; /* subsequent writes fast - 1186 long_op = CIFS_STD_OP; /* subsequent writes fast -
1172 15 seconds is plenty */ 1187 15 seconds is plenty */
1173 } 1188 }
@@ -1380,11 +1395,12 @@ static int cifs_writepages(struct address_space *mapping,
1380 int nr_pages; 1395 int nr_pages;
1381 __u64 offset = 0; 1396 __u64 offset = 0;
1382 struct cifsFileInfo *open_file; 1397 struct cifsFileInfo *open_file;
1398 struct cifsInodeInfo *cifsi = CIFS_I(mapping->host);
1383 struct page *page; 1399 struct page *page;
1384 struct pagevec pvec; 1400 struct pagevec pvec;
1385 int rc = 0; 1401 int rc = 0;
1386 int scanned = 0; 1402 int scanned = 0;
1387 int xid; 1403 int xid, long_op;
1388 1404
1389 cifs_sb = CIFS_SB(mapping->host->i_sb); 1405 cifs_sb = CIFS_SB(mapping->host->i_sb);
1390 1406
@@ -1528,12 +1544,15 @@ retry:
1528 cERROR(1, ("No writable handles for inode")); 1544 cERROR(1, ("No writable handles for inode"));
1529 rc = -EBADF; 1545 rc = -EBADF;
1530 } else { 1546 } else {
1547 long_op = cifs_write_timeout(cifsi, offset);
1531 rc = CIFSSMBWrite2(xid, cifs_sb->tcon, 1548 rc = CIFSSMBWrite2(xid, cifs_sb->tcon,
1532 open_file->netfid, 1549 open_file->netfid,
1533 bytes_to_write, offset, 1550 bytes_to_write, offset,
1534 &bytes_written, iov, n_iov, 1551 &bytes_written, iov, n_iov,
1535 CIFS_LONG_OP); 1552 long_op);
1536 atomic_dec(&open_file->wrtPending); 1553 atomic_dec(&open_file->wrtPending);
1554 cifs_update_eof(cifsi, offset, bytes_written);
1555
1537 if (rc || bytes_written < bytes_to_write) { 1556 if (rc || bytes_written < bytes_to_write) {
1538 cERROR(1, ("Write2 ret %d, wrote %d", 1557 cERROR(1, ("Write2 ret %d, wrote %d",
1539 rc, bytes_written)); 1558 rc, bytes_written));
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index f121a80fdd6f..9c869a6dcba1 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -143,6 +143,7 @@ static void cifs_unix_info_to_inode(struct inode *inode,
143 143
144 inode->i_nlink = le64_to_cpu(info->Nlinks); 144 inode->i_nlink = le64_to_cpu(info->Nlinks);
145 145
146 cifsInfo->server_eof = end_of_file;
146 spin_lock(&inode->i_lock); 147 spin_lock(&inode->i_lock);
147 if (is_size_safe_to_change(cifsInfo, end_of_file)) { 148 if (is_size_safe_to_change(cifsInfo, end_of_file)) {
148 /* 149 /*
@@ -276,7 +277,8 @@ int cifs_get_inode_info_unix(struct inode **pinode,
276 277
277 /* get new inode */ 278 /* get new inode */
278 if (*pinode == NULL) { 279 if (*pinode == NULL) {
279 *pinode = cifs_new_inode(sb, &find_data.UniqueId); 280 __u64 unique_id = le64_to_cpu(find_data.UniqueId);
281 *pinode = cifs_new_inode(sb, &unique_id);
280 if (*pinode == NULL) { 282 if (*pinode == NULL) {
281 rc = -ENOMEM; 283 rc = -ENOMEM;
282 goto cgiiu_exit; 284 goto cgiiu_exit;
@@ -605,12 +607,12 @@ int cifs_get_inode_info(struct inode **pinode,
605 inode->i_mode |= S_IFREG; 607 inode->i_mode |= S_IFREG;
606 } 608 }
607 609
610 cifsInfo->server_eof = le64_to_cpu(pfindData->EndOfFile);
608 spin_lock(&inode->i_lock); 611 spin_lock(&inode->i_lock);
609 if (is_size_safe_to_change(cifsInfo, 612 if (is_size_safe_to_change(cifsInfo, cifsInfo->server_eof)) {
610 le64_to_cpu(pfindData->EndOfFile))) {
611 /* can not safely shrink the file size here if the 613 /* can not safely shrink the file size here if the
612 client is writing to it due to potential races */ 614 client is writing to it due to potential races */
613 i_size_write(inode, le64_to_cpu(pfindData->EndOfFile)); 615 i_size_write(inode, cifsInfo->server_eof);
614 616
615 /* 512 bytes (2**9) is the fake blocksize that must be 617 /* 512 bytes (2**9) is the fake blocksize that must be
616 used for this calculation */ 618 used for this calculation */
@@ -960,13 +962,21 @@ undo_setattr:
960 goto out_close; 962 goto out_close;
961} 963}
962 964
965
966/*
967 * If dentry->d_inode is null (usually meaning the cached dentry
968 * is a negative dentry) then we would attempt a standard SMB delete, but
969 * if that fails we can not attempt the fall back mechanisms on EACESS
970 * but will return the EACESS to the caller. Note that the VFS does not call
971 * unlink on negative dentries currently.
972 */
963int cifs_unlink(struct inode *dir, struct dentry *dentry) 973int cifs_unlink(struct inode *dir, struct dentry *dentry)
964{ 974{
965 int rc = 0; 975 int rc = 0;
966 int xid; 976 int xid;
967 char *full_path = NULL; 977 char *full_path = NULL;
968 struct inode *inode = dentry->d_inode; 978 struct inode *inode = dentry->d_inode;
969 struct cifsInodeInfo *cifsInode = CIFS_I(inode); 979 struct cifsInodeInfo *cifs_inode;
970 struct super_block *sb = dir->i_sb; 980 struct super_block *sb = dir->i_sb;
971 struct cifs_sb_info *cifs_sb = CIFS_SB(sb); 981 struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
972 struct cifsTconInfo *tcon = cifs_sb->tcon; 982 struct cifsTconInfo *tcon = cifs_sb->tcon;
@@ -1010,7 +1020,7 @@ psx_del_no_retry:
1010 rc = cifs_rename_pending_delete(full_path, dentry, xid); 1020 rc = cifs_rename_pending_delete(full_path, dentry, xid);
1011 if (rc == 0) 1021 if (rc == 0)
1012 drop_nlink(inode); 1022 drop_nlink(inode);
1013 } else if (rc == -EACCES && dosattr == 0) { 1023 } else if ((rc == -EACCES) && (dosattr == 0) && inode) {
1014 attrs = kzalloc(sizeof(*attrs), GFP_KERNEL); 1024 attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
1015 if (attrs == NULL) { 1025 if (attrs == NULL) {
1016 rc = -ENOMEM; 1026 rc = -ENOMEM;
@@ -1018,7 +1028,8 @@ psx_del_no_retry:
1018 } 1028 }
1019 1029
1020 /* try to reset dos attributes */ 1030 /* try to reset dos attributes */
1021 origattr = cifsInode->cifsAttrs; 1031 cifs_inode = CIFS_I(inode);
1032 origattr = cifs_inode->cifsAttrs;
1022 if (origattr == 0) 1033 if (origattr == 0)
1023 origattr |= ATTR_NORMAL; 1034 origattr |= ATTR_NORMAL;
1024 dosattr = origattr & ~ATTR_READONLY; 1035 dosattr = origattr & ~ATTR_READONLY;
@@ -1039,13 +1050,13 @@ psx_del_no_retry:
1039 1050
1040out_reval: 1051out_reval:
1041 if (inode) { 1052 if (inode) {
1042 cifsInode = CIFS_I(inode); 1053 cifs_inode = CIFS_I(inode);
1043 cifsInode->time = 0; /* will force revalidate to get info 1054 cifs_inode->time = 0; /* will force revalidate to get info
1044 when needed */ 1055 when needed */
1045 inode->i_ctime = current_fs_time(sb); 1056 inode->i_ctime = current_fs_time(sb);
1046 } 1057 }
1047 dir->i_ctime = dir->i_mtime = current_fs_time(sb); 1058 dir->i_ctime = dir->i_mtime = current_fs_time(sb);
1048 cifsInode = CIFS_I(dir); 1059 cifs_inode = CIFS_I(dir);
1049 CIFS_I(dir)->time = 0; /* force revalidate of dir as well */ 1060 CIFS_I(dir)->time = 0; /* force revalidate of dir as well */
1050 1061
1051 kfree(full_path); 1062 kfree(full_path);
@@ -1138,6 +1149,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
1138 cFYI(1, ("posix mkdir returned 0x%x", rc)); 1149 cFYI(1, ("posix mkdir returned 0x%x", rc));
1139 d_drop(direntry); 1150 d_drop(direntry);
1140 } else { 1151 } else {
1152 __u64 unique_id;
1141 if (pInfo->Type == cpu_to_le32(-1)) { 1153 if (pInfo->Type == cpu_to_le32(-1)) {
1142 /* no return info, go query for it */ 1154 /* no return info, go query for it */
1143 kfree(pInfo); 1155 kfree(pInfo);
@@ -1151,8 +1163,8 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
1151 else 1163 else
1152 direntry->d_op = &cifs_dentry_ops; 1164 direntry->d_op = &cifs_dentry_ops;
1153 1165
1154 newinode = cifs_new_inode(inode->i_sb, 1166 unique_id = le64_to_cpu(pInfo->UniqueId);
1155 &pInfo->UniqueId); 1167 newinode = cifs_new_inode(inode->i_sb, &unique_id);
1156 if (newinode == NULL) { 1168 if (newinode == NULL) {
1157 kfree(pInfo); 1169 kfree(pInfo);
1158 goto mkdir_get_info; 1170 goto mkdir_get_info;
@@ -1450,7 +1462,8 @@ int cifs_rename(struct inode *source_dir, struct dentry *source_dentry,
1450 checking the UniqueId via FILE_INTERNAL_INFO */ 1462 checking the UniqueId via FILE_INTERNAL_INFO */
1451 1463
1452unlink_target: 1464unlink_target:
1453 if ((rc == -EACCES) || (rc == -EEXIST)) { 1465 /* Try unlinking the target dentry if it's not negative */
1466 if (target_dentry->d_inode && (rc == -EACCES || rc == -EEXIST)) {
1454 tmprc = cifs_unlink(target_dir, target_dentry); 1467 tmprc = cifs_unlink(target_dir, target_dentry);
1455 if (tmprc) 1468 if (tmprc)
1456 goto cifs_rename_exit; 1469 goto cifs_rename_exit;
@@ -1753,6 +1766,7 @@ cifs_set_file_size(struct inode *inode, struct iattr *attrs,
1753 } 1766 }
1754 1767
1755 if (rc == 0) { 1768 if (rc == 0) {
1769 cifsInode->server_eof = attrs->ia_size;
1756 rc = cifs_vmtruncate(inode, attrs->ia_size); 1770 rc = cifs_vmtruncate(inode, attrs->ia_size);
1757 cifs_truncate_page(inode->i_mapping, inode->i_size); 1771 cifs_truncate_page(inode->i_mapping, inode->i_size);
1758 } 1772 }
@@ -1792,20 +1806,21 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs)
1792 goto out; 1806 goto out;
1793 } 1807 }
1794 1808
1795 if ((attrs->ia_valid & ATTR_MTIME) || (attrs->ia_valid & ATTR_SIZE)) { 1809 /*
1796 /* 1810 * Attempt to flush data before changing attributes. We need to do
1797 Flush data before changing file size or changing the last 1811 * this for ATTR_SIZE and ATTR_MTIME for sure, and if we change the
1798 write time of the file on the server. If the 1812 * ownership or mode then we may also need to do this. Here, we take
1799 flush returns error, store it to report later and continue. 1813 * the safe way out and just do the flush on all setattr requests. If
1800 BB: This should be smarter. Why bother flushing pages that 1814 * the flush returns error, store it to report later and continue.
1801 will be truncated anyway? Also, should we error out here if 1815 *
1802 the flush returns error? 1816 * BB: This should be smarter. Why bother flushing pages that
1803 */ 1817 * will be truncated anyway? Also, should we error out here if
1804 rc = filemap_write_and_wait(inode->i_mapping); 1818 * the flush returns error?
1805 if (rc != 0) { 1819 */
1806 cifsInode->write_behind_rc = rc; 1820 rc = filemap_write_and_wait(inode->i_mapping);
1807 rc = 0; 1821 if (rc != 0) {
1808 } 1822 cifsInode->write_behind_rc = rc;
1823 rc = 0;
1809 } 1824 }
1810 1825
1811 if (attrs->ia_valid & ATTR_SIZE) { 1826 if (attrs->ia_valid & ATTR_SIZE) {
@@ -1903,20 +1918,21 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
1903 return -ENOMEM; 1918 return -ENOMEM;
1904 } 1919 }
1905 1920
1906 if ((attrs->ia_valid & ATTR_MTIME) || (attrs->ia_valid & ATTR_SIZE)) { 1921 /*
1907 /* 1922 * Attempt to flush data before changing attributes. We need to do
1908 Flush data before changing file size or changing the last 1923 * this for ATTR_SIZE and ATTR_MTIME for sure, and if we change the
1909 write time of the file on the server. If the 1924 * ownership or mode then we may also need to do this. Here, we take
1910 flush returns error, store it to report later and continue. 1925 * the safe way out and just do the flush on all setattr requests. If
1911 BB: This should be smarter. Why bother flushing pages that 1926 * the flush returns error, store it to report later and continue.
1912 will be truncated anyway? Also, should we error out here if 1927 *
1913 the flush returns error? 1928 * BB: This should be smarter. Why bother flushing pages that
1914 */ 1929 * will be truncated anyway? Also, should we error out here if
1915 rc = filemap_write_and_wait(inode->i_mapping); 1930 * the flush returns error?
1916 if (rc != 0) { 1931 */
1917 cifsInode->write_behind_rc = rc; 1932 rc = filemap_write_and_wait(inode->i_mapping);
1918 rc = 0; 1933 if (rc != 0) {
1919 } 1934 cifsInode->write_behind_rc = rc;
1935 rc = 0;
1920 } 1936 }
1921 1937
1922 if (attrs->ia_valid & ATTR_SIZE) { 1938 if (attrs->ia_valid & ATTR_SIZE) {
diff --git a/fs/cifs/link.c b/fs/cifs/link.c
index 63f644000ce5..ea9d11e3dcbb 100644
--- a/fs/cifs/link.c
+++ b/fs/cifs/link.c
@@ -119,16 +119,11 @@ cifs_follow_link(struct dentry *direntry, struct nameidata *nd)
119 full_path = build_path_from_dentry(direntry); 119 full_path = build_path_from_dentry(direntry);
120 120
121 if (!full_path) 121 if (!full_path)
122 goto out_no_free; 122 goto out;
123 123
124 cFYI(1, ("Full path: %s inode = 0x%p", full_path, inode)); 124 cFYI(1, ("Full path: %s inode = 0x%p", full_path, inode));
125 cifs_sb = CIFS_SB(inode->i_sb); 125 cifs_sb = CIFS_SB(inode->i_sb);
126 pTcon = cifs_sb->tcon; 126 pTcon = cifs_sb->tcon;
127 target_path = kmalloc(PATH_MAX, GFP_KERNEL);
128 if (!target_path) {
129 target_path = ERR_PTR(-ENOMEM);
130 goto out;
131 }
132 127
133 /* We could change this to: 128 /* We could change this to:
134 if (pTcon->unix_ext) 129 if (pTcon->unix_ext)
@@ -138,8 +133,7 @@ cifs_follow_link(struct dentry *direntry, struct nameidata *nd)
138 133
139 if (pTcon->ses->capabilities & CAP_UNIX) 134 if (pTcon->ses->capabilities & CAP_UNIX)
140 rc = CIFSSMBUnixQuerySymLink(xid, pTcon, full_path, 135 rc = CIFSSMBUnixQuerySymLink(xid, pTcon, full_path,
141 target_path, 136 &target_path,
142 PATH_MAX-1,
143 cifs_sb->local_nls); 137 cifs_sb->local_nls);
144 else { 138 else {
145 /* BB add read reparse point symlink code here */ 139 /* BB add read reparse point symlink code here */
@@ -148,22 +142,16 @@ cifs_follow_link(struct dentry *direntry, struct nameidata *nd)
148 /* BB Add MAC style xsymlink check here if enabled */ 142 /* BB Add MAC style xsymlink check here if enabled */
149 } 143 }
150 144
151 if (rc == 0) { 145 if (rc != 0) {
152
153/* BB Add special case check for Samba DFS symlinks */
154
155 target_path[PATH_MAX-1] = 0;
156 } else {
157 kfree(target_path); 146 kfree(target_path);
158 target_path = ERR_PTR(rc); 147 target_path = ERR_PTR(rc);
159 } 148 }
160 149
161out:
162 kfree(full_path); 150 kfree(full_path);
163out_no_free: 151out:
164 FreeXid(xid); 152 FreeXid(xid);
165 nd_set_link(nd, target_path); 153 nd_set_link(nd, target_path);
166 return NULL; /* No cookie */ 154 return NULL;
167} 155}
168 156
169int 157int
@@ -224,98 +212,6 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
224 return rc; 212 return rc;
225} 213}
226 214
227int
228cifs_readlink(struct dentry *direntry, char __user *pBuffer, int buflen)
229{
230 struct inode *inode = direntry->d_inode;
231 int rc = -EACCES;
232 int xid;
233 int oplock = 0;
234 struct cifs_sb_info *cifs_sb;
235 struct cifsTconInfo *pTcon;
236 char *full_path = NULL;
237 char *tmpbuffer;
238 int len;
239 __u16 fid;
240
241 xid = GetXid();
242 cifs_sb = CIFS_SB(inode->i_sb);
243 pTcon = cifs_sb->tcon;
244
245/* BB would it be safe against deadlock to grab this sem
246 even though rename itself grabs the sem and calls lookup? */
247/* mutex_lock(&inode->i_sb->s_vfs_rename_mutex);*/
248 full_path = build_path_from_dentry(direntry);
249/* mutex_unlock(&inode->i_sb->s_vfs_rename_mutex);*/
250
251 if (full_path == NULL) {
252 FreeXid(xid);
253 return -ENOMEM;
254 }
255
256 cFYI(1,
257 ("Full path: %s inode = 0x%p pBuffer = 0x%p buflen = %d",
258 full_path, inode, pBuffer, buflen));
259 if (buflen > PATH_MAX)
260 len = PATH_MAX;
261 else
262 len = buflen;
263 tmpbuffer = kmalloc(len, GFP_KERNEL);
264 if (tmpbuffer == NULL) {
265 kfree(full_path);
266 FreeXid(xid);
267 return -ENOMEM;
268 }
269
270/* BB add read reparse point symlink code and
271 Unix extensions symlink code here BB */
272/* We could disable this based on pTcon->unix_ext flag instead ... but why? */
273 if (cifs_sb->tcon->ses->capabilities & CAP_UNIX)
274 rc = CIFSSMBUnixQuerySymLink(xid, pTcon, full_path,
275 tmpbuffer,
276 len - 1,
277 cifs_sb->local_nls);
278 else if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) {
279 cERROR(1, ("SFU style symlinks not implemented yet"));
280 /* add open and read as in fs/cifs/inode.c */
281 } else {
282 rc = CIFSSMBOpen(xid, pTcon, full_path, FILE_OPEN, GENERIC_READ,
283 OPEN_REPARSE_POINT, &fid, &oplock, NULL,
284 cifs_sb->local_nls,
285 cifs_sb->mnt_cifs_flags &
286 CIFS_MOUNT_MAP_SPECIAL_CHR);
287 if (!rc) {
288 rc = CIFSSMBQueryReparseLinkInfo(xid, pTcon, full_path,
289 tmpbuffer,
290 len - 1,
291 fid,
292 cifs_sb->local_nls);
293 if (CIFSSMBClose(xid, pTcon, fid)) {
294 cFYI(1, ("Error closing junction point "
295 "(open for ioctl)"));
296 }
297 /* If it is a DFS junction earlier we would have gotten
298 PATH_NOT_COVERED returned from server so we do
299 not need to request the DFS info here */
300 }
301 }
302 /* BB Anything else to do to handle recursive links? */
303 /* BB Should we be using page ops here? */
304
305 /* BB null terminate returned string in pBuffer? BB */
306 if (rc == 0) {
307 rc = vfs_readlink(direntry, pBuffer, len, tmpbuffer);
308 cFYI(1,
309 ("vfs_readlink called from cifs_readlink returned %d",
310 rc));
311 }
312
313 kfree(tmpbuffer);
314 kfree(full_path);
315 FreeXid(xid);
316 return rc;
317}
318
319void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) 215void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
320{ 216{
321 char *p = nd_get_link(nd); 217 char *p = nd_get_link(nd);
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 4c89c572891a..e079a9190ec4 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -635,77 +635,6 @@ dump_smb(struct smb_hdr *smb_buf, int smb_buf_length)
635 return; 635 return;
636} 636}
637 637
638/* Windows maps these to the user defined 16 bit Unicode range since they are
639 reserved symbols (along with \ and /), otherwise illegal to store
640 in filenames in NTFS */
641#define UNI_ASTERIK (__u16) ('*' + 0xF000)
642#define UNI_QUESTION (__u16) ('?' + 0xF000)
643#define UNI_COLON (__u16) (':' + 0xF000)
644#define UNI_GRTRTHAN (__u16) ('>' + 0xF000)
645#define UNI_LESSTHAN (__u16) ('<' + 0xF000)
646#define UNI_PIPE (__u16) ('|' + 0xF000)
647#define UNI_SLASH (__u16) ('\\' + 0xF000)
648
649/* Convert 16 bit Unicode pathname from wire format to string in current code
650 page. Conversion may involve remapping up the seven characters that are
651 only legal in POSIX-like OS (if they are present in the string). Path
652 names are little endian 16 bit Unicode on the wire */
653int
654cifs_convertUCSpath(char *target, const __le16 *source, int maxlen,
655 const struct nls_table *cp)
656{
657 int i, j, len;
658 __u16 src_char;
659
660 for (i = 0, j = 0; i < maxlen; i++) {
661 src_char = le16_to_cpu(source[i]);
662 switch (src_char) {
663 case 0:
664 goto cUCS_out; /* BB check this BB */
665 case UNI_COLON:
666 target[j] = ':';
667 break;
668 case UNI_ASTERIK:
669 target[j] = '*';
670 break;
671 case UNI_QUESTION:
672 target[j] = '?';
673 break;
674 /* BB We can not handle remapping slash until
675 all the calls to build_path_from_dentry
676 are modified, as they use slash as separator BB */
677 /* case UNI_SLASH:
678 target[j] = '\\';
679 break;*/
680 case UNI_PIPE:
681 target[j] = '|';
682 break;
683 case UNI_GRTRTHAN:
684 target[j] = '>';
685 break;
686 case UNI_LESSTHAN:
687 target[j] = '<';
688 break;
689 default:
690 len = cp->uni2char(src_char, &target[j],
691 NLS_MAX_CHARSET_SIZE);
692 if (len > 0) {
693 j += len;
694 continue;
695 } else {
696 target[j] = '?';
697 }
698 }
699 j++;
700 /* make sure we do not overrun callers allocated temp buffer */
701 if (j >= (2 * NAME_MAX))
702 break;
703 }
704cUCS_out:
705 target[j] = 0;
706 return j;
707}
708
709/* Convert 16 bit Unicode pathname to wire format from string in current code 638/* Convert 16 bit Unicode pathname to wire format from string in current code
710 page. Conversion may involve remapping up the seven characters that are 639 page. Conversion may involve remapping up the seven characters that are
711 only legal in POSIX-like OS (if they are present in the string). Path 640 only legal in POSIX-like OS (if they are present in the string). Path
diff --git a/fs/cifs/netmisc.c b/fs/cifs/netmisc.c
index 8703d68f5b20..e2fe998989a3 100644
--- a/fs/cifs/netmisc.c
+++ b/fs/cifs/netmisc.c
@@ -79,6 +79,7 @@ static const struct smb_to_posix_error mapping_table_ERRDOS[] = {
79 {ErrQuota, -EDQUOT}, 79 {ErrQuota, -EDQUOT},
80 {ErrNotALink, -ENOLINK}, 80 {ErrNotALink, -ENOLINK},
81 {ERRnetlogonNotStarted, -ENOPROTOOPT}, 81 {ERRnetlogonNotStarted, -ENOPROTOOPT},
82 {ERRsymlink, -EOPNOTSUPP},
82 {ErrTooManyLinks, -EMLINK}, 83 {ErrTooManyLinks, -EMLINK},
83 {0, 0} 84 {0, 0}
84}; 85};
@@ -714,6 +715,7 @@ static const struct {
714 ERRDOS, ERRnoaccess, 0xc000028f}, { 715 ERRDOS, ERRnoaccess, 0xc000028f}, {
715 ERRDOS, ERRnoaccess, 0xc0000290}, { 716 ERRDOS, ERRnoaccess, 0xc0000290}, {
716 ERRDOS, ERRbadfunc, 0xc000029c}, { 717 ERRDOS, ERRbadfunc, 0xc000029c}, {
718 ERRDOS, ERRsymlink, NT_STATUS_STOPPED_ON_SYMLINK}, {
717 ERRDOS, ERRinvlevel, 0x007c0001}, }; 719 ERRDOS, ERRinvlevel, 0x007c0001}, };
718 720
719/***************************************************************************** 721/*****************************************************************************
diff --git a/fs/cifs/nterr.h b/fs/cifs/nterr.h
index 588abbb9d08c..257267367d41 100644
--- a/fs/cifs/nterr.h
+++ b/fs/cifs/nterr.h
@@ -35,8 +35,6 @@ struct nt_err_code_struct {
35extern const struct nt_err_code_struct nt_errs[]; 35extern const struct nt_err_code_struct nt_errs[];
36 36
37/* Win32 Status codes. */ 37/* Win32 Status codes. */
38
39#define STATUS_BUFFER_OVERFLOW 0x80000005
40#define STATUS_MORE_ENTRIES 0x0105 38#define STATUS_MORE_ENTRIES 0x0105
41#define ERROR_INVALID_PARAMETER 0x0057 39#define ERROR_INVALID_PARAMETER 0x0057
42#define ERROR_INSUFFICIENT_BUFFER 0x007a 40#define ERROR_INSUFFICIENT_BUFFER 0x007a
@@ -50,6 +48,13 @@ extern const struct nt_err_code_struct nt_errs[];
50#define STATUS_SOME_UNMAPPED 0x0107 48#define STATUS_SOME_UNMAPPED 0x0107
51#define STATUS_BUFFER_OVERFLOW 0x80000005 49#define STATUS_BUFFER_OVERFLOW 0x80000005
52#define NT_STATUS_NO_MORE_ENTRIES 0x8000001a 50#define NT_STATUS_NO_MORE_ENTRIES 0x8000001a
51#define NT_STATUS_MEDIA_CHANGED 0x8000001c
52#define NT_STATUS_END_OF_MEDIA 0x8000001e
53#define NT_STATUS_MEDIA_CHECK 0x80000020
54#define NT_STATUS_NO_DATA_DETECTED 0x8000001c
55#define NT_STATUS_STOPPED_ON_SYMLINK 0x8000002d
56#define NT_STATUS_DEVICE_REQUIRES_CLEANING 0x80000288
57#define NT_STATUS_DEVICE_DOOR_OPEN 0x80000288
53#define NT_STATUS_UNSUCCESSFUL 0xC0000000 | 0x0001 58#define NT_STATUS_UNSUCCESSFUL 0xC0000000 | 0x0001
54#define NT_STATUS_NOT_IMPLEMENTED 0xC0000000 | 0x0002 59#define NT_STATUS_NOT_IMPLEMENTED 0xC0000000 | 0x0002
55#define NT_STATUS_INVALID_INFO_CLASS 0xC0000000 | 0x0003 60#define NT_STATUS_INVALID_INFO_CLASS 0xC0000000 | 0x0003
diff --git a/fs/cifs/ntlmssp.h b/fs/cifs/ntlmssp.h
index c377d8065d99..49c9a4e75319 100644
--- a/fs/cifs/ntlmssp.h
+++ b/fs/cifs/ntlmssp.h
@@ -27,29 +27,39 @@
27#define UnknownMessage cpu_to_le32(8) 27#define UnknownMessage cpu_to_le32(8)
28 28
29/* Negotiate Flags */ 29/* Negotiate Flags */
30#define NTLMSSP_NEGOTIATE_UNICODE 0x01 /* Text strings are in unicode */ 30#define NTLMSSP_NEGOTIATE_UNICODE 0x01 /* Text strings are unicode */
31#define NTLMSSP_NEGOTIATE_OEM 0x02 /* Text strings are in OEM */ 31#define NTLMSSP_NEGOTIATE_OEM 0x02 /* Text strings are in OEM */
32#define NTLMSSP_REQUEST_TARGET 0x04 /* Server return its auth realm */ 32#define NTLMSSP_REQUEST_TARGET 0x04 /* Srv returns its auth realm */
33#define NTLMSSP_NEGOTIATE_SIGN 0x0010 /* Request signature capability */ 33/* define reserved9 0x08 */
34#define NTLMSSP_NEGOTIATE_SEAL 0x0020 /* Request confidentiality */ 34#define NTLMSSP_NEGOTIATE_SIGN 0x0010 /* Request signing capability */
35#define NTLMSSP_NEGOTIATE_DGRAM 0x0040 35#define NTLMSSP_NEGOTIATE_SEAL 0x0020 /* Request confidentiality */
36#define NTLMSSP_NEGOTIATE_LM_KEY 0x0080 /* Sign/seal use LM session key */ 36#define NTLMSSP_NEGOTIATE_DGRAM 0x0040
37#define NTLMSSP_NEGOTIATE_NTLM 0x0200 /* NTLM authentication */ 37#define NTLMSSP_NEGOTIATE_LM_KEY 0x0080 /* Use LM session key */
38#define NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED 0x1000 38/* defined reserved 8 0x0100 */
39#define NTLMSSP_NEGOTIATE_NTLM 0x0200 /* NTLM authentication */
40#define NTLMSSP_NEGOTIATE_NT_ONLY 0x0400 /* Lanman not allowed */
41#define NTLMSSP_ANONYMOUS 0x0800
42#define NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED 0x1000 /* reserved6 */
39#define NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED 0x2000 43#define NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED 0x2000
40#define NTLMSSP_NEGOTIATE_LOCAL_CALL 0x4000 /* client/server on same machine */ 44#define NTLMSSP_NEGOTIATE_LOCAL_CALL 0x4000 /* client/server same machine */
41#define NTLMSSP_NEGOTIATE_ALWAYS_SIGN 0x8000 /* Sign for all security levels */ 45#define NTLMSSP_NEGOTIATE_ALWAYS_SIGN 0x8000 /* Sign. All security levels */
42#define NTLMSSP_TARGET_TYPE_DOMAIN 0x10000 46#define NTLMSSP_TARGET_TYPE_DOMAIN 0x10000
43#define NTLMSSP_TARGET_TYPE_SERVER 0x20000 47#define NTLMSSP_TARGET_TYPE_SERVER 0x20000
44#define NTLMSSP_TARGET_TYPE_SHARE 0x40000 48#define NTLMSSP_TARGET_TYPE_SHARE 0x40000
45#define NTLMSSP_NEGOTIATE_NTLMV2 0x80000 49#define NTLMSSP_NEGOTIATE_EXTENDED_SEC 0x80000 /* NB:not related to NTLMv2 pwd*/
46#define NTLMSSP_REQUEST_INIT_RESP 0x100000 50/* #define NTLMSSP_REQUEST_INIT_RESP 0x100000 */
47#define NTLMSSP_REQUEST_ACCEPT_RESP 0x200000 51#define NTLMSSP_NEGOTIATE_IDENTIFY 0x100000
48#define NTLMSSP_REQUEST_NOT_NT_KEY 0x400000 52#define NTLMSSP_REQUEST_ACCEPT_RESP 0x200000 /* reserved5 */
53#define NTLMSSP_REQUEST_NON_NT_KEY 0x400000
49#define NTLMSSP_NEGOTIATE_TARGET_INFO 0x800000 54#define NTLMSSP_NEGOTIATE_TARGET_INFO 0x800000
50#define NTLMSSP_NEGOTIATE_128 0x20000000 55/* #define reserved4 0x1000000 */
51#define NTLMSSP_NEGOTIATE_KEY_XCH 0x40000000 56#define NTLMSSP_NEGOTIATE_VERSION 0x2000000 /* we do not set */
52#define NTLMSSP_NEGOTIATE_56 0x80000000 57/* #define reserved3 0x4000000 */
58/* #define reserved2 0x8000000 */
59/* #define reserved1 0x10000000 */
60#define NTLMSSP_NEGOTIATE_128 0x20000000
61#define NTLMSSP_NEGOTIATE_KEY_XCH 0x40000000
62#define NTLMSSP_NEGOTIATE_56 0x80000000
53 63
54/* Although typedefs are not commonly used for structure definitions */ 64/* Although typedefs are not commonly used for structure definitions */
55/* in the Linux kernel, in this particular case they are useful */ 65/* in the Linux kernel, in this particular case they are useful */
@@ -60,32 +70,36 @@
60typedef struct _SECURITY_BUFFER { 70typedef struct _SECURITY_BUFFER {
61 __le16 Length; 71 __le16 Length;
62 __le16 MaximumLength; 72 __le16 MaximumLength;
63 __le32 Buffer; /* offset to buffer */ 73 __le32 BufferOffset; /* offset to buffer */
64} __attribute__((packed)) SECURITY_BUFFER; 74} __attribute__((packed)) SECURITY_BUFFER;
65 75
66typedef struct _NEGOTIATE_MESSAGE { 76typedef struct _NEGOTIATE_MESSAGE {
67 __u8 Signature[sizeof(NTLMSSP_SIGNATURE)]; 77 __u8 Signature[sizeof(NTLMSSP_SIGNATURE)];
68 __le32 MessageType; /* 1 */ 78 __le32 MessageType; /* NtLmNegotiate = 1 */
69 __le32 NegotiateFlags; 79 __le32 NegotiateFlags;
70 SECURITY_BUFFER DomainName; /* RFC 1001 style and ASCII */ 80 SECURITY_BUFFER DomainName; /* RFC 1001 style and ASCII */
71 SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */ 81 SECURITY_BUFFER WorkstationName; /* RFC 1001 and ASCII */
82 /* SECURITY_BUFFER for version info not present since we
83 do not set the version is present flag */
72 char DomainString[0]; 84 char DomainString[0];
73 /* followed by WorkstationString */ 85 /* followed by WorkstationString */
74} __attribute__((packed)) NEGOTIATE_MESSAGE, *PNEGOTIATE_MESSAGE; 86} __attribute__((packed)) NEGOTIATE_MESSAGE, *PNEGOTIATE_MESSAGE;
75 87
76typedef struct _CHALLENGE_MESSAGE { 88typedef struct _CHALLENGE_MESSAGE {
77 __u8 Signature[sizeof(NTLMSSP_SIGNATURE)]; 89 __u8 Signature[sizeof(NTLMSSP_SIGNATURE)];
78 __le32 MessageType; /* 2 */ 90 __le32 MessageType; /* NtLmChallenge = 2 */
79 SECURITY_BUFFER TargetName; 91 SECURITY_BUFFER TargetName;
80 __le32 NegotiateFlags; 92 __le32 NegotiateFlags;
81 __u8 Challenge[CIFS_CRYPTO_KEY_SIZE]; 93 __u8 Challenge[CIFS_CRYPTO_KEY_SIZE];
82 __u8 Reserved[8]; 94 __u8 Reserved[8];
83 SECURITY_BUFFER TargetInfoArray; 95 SECURITY_BUFFER TargetInfoArray;
96 /* SECURITY_BUFFER for version info not present since we
97 do not set the version is present flag */
84} __attribute__((packed)) CHALLENGE_MESSAGE, *PCHALLENGE_MESSAGE; 98} __attribute__((packed)) CHALLENGE_MESSAGE, *PCHALLENGE_MESSAGE;
85 99
86typedef struct _AUTHENTICATE_MESSAGE { 100typedef struct _AUTHENTICATE_MESSAGE {
87 __u8 Signature[sizeof (NTLMSSP_SIGNATURE)]; 101 __u8 Signature[sizeof(NTLMSSP_SIGNATURE)];
88 __le32 MessageType; /* 3 */ 102 __le32 MessageType; /* NtLmsAuthenticate = 3 */
89 SECURITY_BUFFER LmChallengeResponse; 103 SECURITY_BUFFER LmChallengeResponse;
90 SECURITY_BUFFER NtChallengeResponse; 104 SECURITY_BUFFER NtChallengeResponse;
91 SECURITY_BUFFER DomainName; 105 SECURITY_BUFFER DomainName;
@@ -93,5 +107,7 @@ typedef struct _AUTHENTICATE_MESSAGE {
93 SECURITY_BUFFER WorkstationName; 107 SECURITY_BUFFER WorkstationName;
94 SECURITY_BUFFER SessionKey; 108 SECURITY_BUFFER SessionKey;
95 __le32 NegotiateFlags; 109 __le32 NegotiateFlags;
110 /* SECURITY_BUFFER for version info not present since we
111 do not set the version is present flag */
96 char UserString[0]; 112 char UserString[0];
97} __attribute__((packed)) AUTHENTICATE_MESSAGE, *PAUTHENTICATE_MESSAGE; 113} __attribute__((packed)) AUTHENTICATE_MESSAGE, *PAUTHENTICATE_MESSAGE;
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
index c2c01ff4c32c..964e097c8203 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -31,6 +31,13 @@
31#include "cifs_fs_sb.h" 31#include "cifs_fs_sb.h"
32#include "cifsfs.h" 32#include "cifsfs.h"
33 33
34/*
35 * To be safe - for UCS to UTF-8 with strings loaded with the rare long
36 * characters alloc more to account for such multibyte target UTF-8
37 * characters.
38 */
39#define UNICODE_NAME_MAX ((4 * NAME_MAX) + 2)
40
34#ifdef CONFIG_CIFS_DEBUG2 41#ifdef CONFIG_CIFS_DEBUG2
35static void dump_cifs_file_struct(struct file *file, char *label) 42static void dump_cifs_file_struct(struct file *file, char *label)
36{ 43{
@@ -239,6 +246,7 @@ static void fill_in_inode(struct inode *tmp_inode, int new_buf_type,
239 if (atomic_read(&cifsInfo->inUse) == 0) 246 if (atomic_read(&cifsInfo->inUse) == 0)
240 atomic_set(&cifsInfo->inUse, 1); 247 atomic_set(&cifsInfo->inUse, 1);
241 248
249 cifsInfo->server_eof = end_of_file;
242 spin_lock(&tmp_inode->i_lock); 250 spin_lock(&tmp_inode->i_lock);
243 if (is_size_safe_to_change(cifsInfo, end_of_file)) { 251 if (is_size_safe_to_change(cifsInfo, end_of_file)) {
244 /* can not safely change the file size here if the 252 /* can not safely change the file size here if the
@@ -375,6 +383,7 @@ static void unix_fill_in_inode(struct inode *tmp_inode,
375 tmp_inode->i_gid = le64_to_cpu(pfindData->Gid); 383 tmp_inode->i_gid = le64_to_cpu(pfindData->Gid);
376 tmp_inode->i_nlink = le64_to_cpu(pfindData->Nlinks); 384 tmp_inode->i_nlink = le64_to_cpu(pfindData->Nlinks);
377 385
386 cifsInfo->server_eof = end_of_file;
378 spin_lock(&tmp_inode->i_lock); 387 spin_lock(&tmp_inode->i_lock);
379 if (is_size_safe_to_change(cifsInfo, end_of_file)) { 388 if (is_size_safe_to_change(cifsInfo, end_of_file)) {
380 /* can not safely change the file size here if the 389 /* can not safely change the file size here if the
@@ -436,6 +445,38 @@ static void unix_fill_in_inode(struct inode *tmp_inode,
436 } 445 }
437} 446}
438 447
448/* BB eventually need to add the following helper function to
449 resolve NT_STATUS_STOPPED_ON_SYMLINK return code when
450 we try to do FindFirst on (NTFS) directory symlinks */
451/*
452int get_symlink_reparse_path(char *full_path, struct cifs_sb_info *cifs_sb,
453 int xid)
454{
455 __u16 fid;
456 int len;
457 int oplock = 0;
458 int rc;
459 struct cifsTconInfo *ptcon = cifs_sb->tcon;
460 char *tmpbuffer;
461
462 rc = CIFSSMBOpen(xid, ptcon, full_path, FILE_OPEN, GENERIC_READ,
463 OPEN_REPARSE_POINT, &fid, &oplock, NULL,
464 cifs_sb->local_nls,
465 cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
466 if (!rc) {
467 tmpbuffer = kmalloc(maxpath);
468 rc = CIFSSMBQueryReparseLinkInfo(xid, ptcon, full_path,
469 tmpbuffer,
470 maxpath -1,
471 fid,
472 cifs_sb->local_nls);
473 if (CIFSSMBClose(xid, ptcon, fid)) {
474 cFYI(1, ("Error closing temporary reparsepoint open)"));
475 }
476 }
477}
478 */
479
439static int initiate_cifs_search(const int xid, struct file *file) 480static int initiate_cifs_search(const int xid, struct file *file)
440{ 481{
441 int rc = 0; 482 int rc = 0;
@@ -491,7 +532,10 @@ ffirst_retry:
491 CIFS_MOUNT_MAP_SPECIAL_CHR, CIFS_DIR_SEP(cifs_sb)); 532 CIFS_MOUNT_MAP_SPECIAL_CHR, CIFS_DIR_SEP(cifs_sb));
492 if (rc == 0) 533 if (rc == 0)
493 cifsFile->invalidHandle = false; 534 cifsFile->invalidHandle = false;
494 if ((rc == -EOPNOTSUPP) && 535 /* BB add following call to handle readdir on new NTFS symlink errors
536 else if STATUS_STOPPED_ON_SYMLINK
537 call get_symlink_reparse_path and retry with new path */
538 else if ((rc == -EOPNOTSUPP) &&
495 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)) { 539 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SERVER_INUM)) {
496 cifs_sb->mnt_cifs_flags &= ~CIFS_MOUNT_SERVER_INUM; 540 cifs_sb->mnt_cifs_flags &= ~CIFS_MOUNT_SERVER_INUM;
497 goto ffirst_retry; 541 goto ffirst_retry;
@@ -820,7 +864,7 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
820/* inode num, inode type and filename returned */ 864/* inode num, inode type and filename returned */
821static int cifs_get_name_from_search_buf(struct qstr *pqst, 865static int cifs_get_name_from_search_buf(struct qstr *pqst,
822 char *current_entry, __u16 level, unsigned int unicode, 866 char *current_entry, __u16 level, unsigned int unicode,
823 struct cifs_sb_info *cifs_sb, int max_len, __u64 *pinum) 867 struct cifs_sb_info *cifs_sb, unsigned int max_len, __u64 *pinum)
824{ 868{
825 int rc = 0; 869 int rc = 0;
826 unsigned int len = 0; 870 unsigned int len = 0;
@@ -840,7 +884,7 @@ static int cifs_get_name_from_search_buf(struct qstr *pqst,
840 len = strnlen(filename, PATH_MAX); 884 len = strnlen(filename, PATH_MAX);
841 } 885 }
842 886
843 *pinum = pFindData->UniqueId; 887 *pinum = le64_to_cpu(pFindData->UniqueId);
844 } else if (level == SMB_FIND_FILE_DIRECTORY_INFO) { 888 } else if (level == SMB_FIND_FILE_DIRECTORY_INFO) {
845 FILE_DIRECTORY_INFO *pFindData = 889 FILE_DIRECTORY_INFO *pFindData =
846 (FILE_DIRECTORY_INFO *)current_entry; 890 (FILE_DIRECTORY_INFO *)current_entry;
@@ -856,7 +900,7 @@ static int cifs_get_name_from_search_buf(struct qstr *pqst,
856 (SEARCH_ID_FULL_DIR_INFO *)current_entry; 900 (SEARCH_ID_FULL_DIR_INFO *)current_entry;
857 filename = &pFindData->FileName[0]; 901 filename = &pFindData->FileName[0];
858 len = le32_to_cpu(pFindData->FileNameLength); 902 len = le32_to_cpu(pFindData->FileNameLength);
859 *pinum = pFindData->UniqueId; 903 *pinum = le64_to_cpu(pFindData->UniqueId);
860 } else if (level == SMB_FIND_FILE_BOTH_DIRECTORY_INFO) { 904 } else if (level == SMB_FIND_FILE_BOTH_DIRECTORY_INFO) {
861 FILE_BOTH_DIRECTORY_INFO *pFindData = 905 FILE_BOTH_DIRECTORY_INFO *pFindData =
862 (FILE_BOTH_DIRECTORY_INFO *)current_entry; 906 (FILE_BOTH_DIRECTORY_INFO *)current_entry;
@@ -879,14 +923,12 @@ static int cifs_get_name_from_search_buf(struct qstr *pqst,
879 } 923 }
880 924
881 if (unicode) { 925 if (unicode) {
882 /* BB fixme - test with long names */ 926 pqst->len = cifs_from_ucs2((char *) pqst->name,
883 /* Note converted filename can be longer than in unicode */ 927 (__le16 *) filename,
884 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR) 928 UNICODE_NAME_MAX,
885 pqst->len = cifs_convertUCSpath((char *)pqst->name, 929 min(len, max_len), nlt,
886 (__le16 *)filename, len/2, nlt); 930 cifs_sb->mnt_cifs_flags &
887 else 931 CIFS_MOUNT_MAP_SPECIAL_CHR);
888 pqst->len = cifs_strfromUCS_le((char *)pqst->name,
889 (__le16 *)filename, len/2, nlt);
890 } else { 932 } else {
891 pqst->name = filename; 933 pqst->name = filename;
892 pqst->len = len; 934 pqst->len = len;
@@ -896,8 +938,8 @@ static int cifs_get_name_from_search_buf(struct qstr *pqst,
896 return rc; 938 return rc;
897} 939}
898 940
899static int cifs_filldir(char *pfindEntry, struct file *file, 941static int cifs_filldir(char *pfindEntry, struct file *file, filldir_t filldir,
900 filldir_t filldir, void *direntry, char *scratch_buf, int max_len) 942 void *direntry, char *scratch_buf, unsigned int max_len)
901{ 943{
902 int rc = 0; 944 int rc = 0;
903 struct qstr qstring; 945 struct qstr qstring;
@@ -994,7 +1036,7 @@ int cifs_readdir(struct file *file, void *direntry, filldir_t filldir)
994 int num_to_fill = 0; 1036 int num_to_fill = 0;
995 char *tmp_buf = NULL; 1037 char *tmp_buf = NULL;
996 char *end_of_smb; 1038 char *end_of_smb;
997 int max_len; 1039 unsigned int max_len;
998 1040
999 xid = GetXid(); 1041 xid = GetXid();
1000 1042
@@ -1068,11 +1110,7 @@ int cifs_readdir(struct file *file, void *direntry, filldir_t filldir)
1068 cifsFile->srch_inf.ntwrk_buf_start); 1110 cifsFile->srch_inf.ntwrk_buf_start);
1069 end_of_smb = cifsFile->srch_inf.ntwrk_buf_start + max_len; 1111 end_of_smb = cifsFile->srch_inf.ntwrk_buf_start + max_len;
1070 1112
1071 /* To be safe - for UCS to UTF-8 with strings loaded 1113 tmp_buf = kmalloc(UNICODE_NAME_MAX, GFP_KERNEL);
1072 with the rare long characters alloc more to account for
1073 such multibyte target UTF-8 characters. cifs_unicode.c,
1074 which actually does the conversion, has the same limit */
1075 tmp_buf = kmalloc((2 * NAME_MAX) + 4, GFP_KERNEL);
1076 for (i = 0; (i < num_to_fill) && (rc == 0); i++) { 1114 for (i = 0; (i < num_to_fill) && (rc == 0); i++) {
1077 if (current_entry == NULL) { 1115 if (current_entry == NULL) {
1078 /* evaluate whether this case is an error */ 1116 /* evaluate whether this case is an error */
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index 5c68b4282be9..897a052270f9 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * SMB/CIFS session setup handling routines 4 * SMB/CIFS session setup handling routines
5 * 5 *
6 * Copyright (c) International Business Machines Corp., 2006, 2007 6 * Copyright (c) International Business Machines Corp., 2006, 2009
7 * Author(s): Steve French (sfrench@us.ibm.com) 7 * Author(s): Steve French (sfrench@us.ibm.com)
8 * 8 *
9 * This library is free software; you can redistribute it and/or modify 9 * This library is free software; you can redistribute it and/or modify
@@ -111,7 +111,7 @@ static __le16 get_next_vcnum(struct cifsSesInfo *ses)
111get_vc_num_exit: 111get_vc_num_exit:
112 write_unlock(&cifs_tcp_ses_lock); 112 write_unlock(&cifs_tcp_ses_lock);
113 113
114 return le16_to_cpu(vcnum); 114 return cpu_to_le16(vcnum);
115} 115}
116 116
117static __u32 cifs_ssetup_hdr(struct cifsSesInfo *ses, SESSION_SETUP_ANDX *pSMB) 117static __u32 cifs_ssetup_hdr(struct cifsSesInfo *ses, SESSION_SETUP_ANDX *pSMB)
@@ -277,85 +277,51 @@ static void ascii_ssetup_strings(char **pbcc_area, struct cifsSesInfo *ses,
277 *pbcc_area = bcc_ptr; 277 *pbcc_area = bcc_ptr;
278} 278}
279 279
280static int decode_unicode_ssetup(char **pbcc_area, int bleft, 280static void
281 struct cifsSesInfo *ses, 281decode_unicode_ssetup(char **pbcc_area, int bleft, struct cifsSesInfo *ses,
282 const struct nls_table *nls_cp) 282 const struct nls_table *nls_cp)
283{ 283{
284 int rc = 0; 284 int len;
285 int words_left, len;
286 char *data = *pbcc_area; 285 char *data = *pbcc_area;
287 286
288
289
290 cFYI(1, ("bleft %d", bleft)); 287 cFYI(1, ("bleft %d", bleft));
291 288
292 289 /*
293 /* SMB header is unaligned, so cifs servers word align start of 290 * Windows servers do not always double null terminate their final
294 Unicode strings */ 291 * Unicode string. Check to see if there are an uneven number of bytes
295 data++; 292 * left. If so, then add an extra NULL pad byte to the end of the
296 bleft--; /* Windows servers do not always double null terminate 293 * response.
297 their final Unicode string - in which case we 294 *
298 now will not attempt to decode the byte of junk 295 * See section 2.7.2 in "Implementing CIFS" for details
299 which follows it */ 296 */
300 297 if (bleft % 2) {
301 words_left = bleft / 2; 298 data[bleft] = 0;
302 299 ++bleft;
303 /* save off server operating system */ 300 }
304 len = UniStrnlen((wchar_t *) data, words_left);
305
306/* We look for obvious messed up bcc or strings in response so we do not go off
307 the end since (at least) WIN2K and Windows XP have a major bug in not null
308 terminating last Unicode string in response */
309 if (len >= words_left)
310 return rc;
311 301
312 kfree(ses->serverOS); 302 kfree(ses->serverOS);
313 /* UTF-8 string will not grow more than four times as big as UCS-16 */ 303 ses->serverOS = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
314 ses->serverOS = kzalloc((4 * len) + 2 /* trailing null */, GFP_KERNEL); 304 cFYI(1, ("serverOS=%s", ses->serverOS));
315 if (ses->serverOS != NULL) 305 len = (UniStrnlen((wchar_t *) data, bleft / 2) * 2) + 2;
316 cifs_strfromUCS_le(ses->serverOS, (__le16 *)data, len, nls_cp); 306 data += len;
317 data += 2 * (len + 1); 307 bleft -= len;
318 words_left -= len + 1; 308 if (bleft <= 0)
319 309 return;
320 /* save off server network operating system */
321 len = UniStrnlen((wchar_t *) data, words_left);
322
323 if (len >= words_left)
324 return rc;
325 310
326 kfree(ses->serverNOS); 311 kfree(ses->serverNOS);
327 ses->serverNOS = kzalloc((4 * len) + 2 /* trailing null */, GFP_KERNEL); 312 ses->serverNOS = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
328 if (ses->serverNOS != NULL) { 313 cFYI(1, ("serverNOS=%s", ses->serverNOS));
329 cifs_strfromUCS_le(ses->serverNOS, (__le16 *)data, len, 314 len = (UniStrnlen((wchar_t *) data, bleft / 2) * 2) + 2;
330 nls_cp); 315 data += len;
331 if (strncmp(ses->serverNOS, "NT LAN Manager 4", 16) == 0) { 316 bleft -= len;
332 cFYI(1, ("NT4 server")); 317 if (bleft <= 0)
333 ses->flags |= CIFS_SES_NT4; 318 return;
334 }
335 }
336 data += 2 * (len + 1);
337 words_left -= len + 1;
338
339 /* save off server domain */
340 len = UniStrnlen((wchar_t *) data, words_left);
341
342 if (len > words_left)
343 return rc;
344 319
345 kfree(ses->serverDomain); 320 kfree(ses->serverDomain);
346 ses->serverDomain = kzalloc(2 * (len + 1), GFP_KERNEL); /* BB FIXME wrong length */ 321 ses->serverDomain = cifs_strndup_from_ucs(data, bleft, true, nls_cp);
347 if (ses->serverDomain != NULL) { 322 cFYI(1, ("serverDomain=%s", ses->serverDomain));
348 cifs_strfromUCS_le(ses->serverDomain, (__le16 *)data, len,
349 nls_cp);
350 ses->serverDomain[2*len] = 0;
351 ses->serverDomain[(2*len) + 1] = 0;
352 }
353 data += 2 * (len + 1);
354 words_left -= len + 1;
355 323
356 cFYI(1, ("words left: %d", words_left)); 324 return;
357
358 return rc;
359} 325}
360 326
361static int decode_ascii_ssetup(char **pbcc_area, int bleft, 327static int decode_ascii_ssetup(char **pbcc_area, int bleft,
@@ -412,6 +378,186 @@ static int decode_ascii_ssetup(char **pbcc_area, int bleft,
412 return rc; 378 return rc;
413} 379}
414 380
381static int decode_ntlmssp_challenge(char *bcc_ptr, int blob_len,
382 struct cifsSesInfo *ses)
383{
384 CHALLENGE_MESSAGE *pblob = (CHALLENGE_MESSAGE *)bcc_ptr;
385
386 if (blob_len < sizeof(CHALLENGE_MESSAGE)) {
387 cERROR(1, ("challenge blob len %d too small", blob_len));
388 return -EINVAL;
389 }
390
391 if (memcmp(pblob->Signature, "NTLMSSP", 8)) {
392 cERROR(1, ("blob signature incorrect %s", pblob->Signature));
393 return -EINVAL;
394 }
395 if (pblob->MessageType != NtLmChallenge) {
396 cERROR(1, ("Incorrect message type %d", pblob->MessageType));
397 return -EINVAL;
398 }
399
400 memcpy(ses->server->cryptKey, pblob->Challenge, CIFS_CRYPTO_KEY_SIZE);
401 /* BB we could decode pblob->NegotiateFlags; some may be useful */
402 /* In particular we can examine sign flags */
403 /* BB spec says that if AvId field of MsvAvTimestamp is populated then
404 we must set the MIC field of the AUTHENTICATE_MESSAGE */
405
406 return 0;
407}
408
409#ifdef CONFIG_CIFS_EXPERIMENTAL
410/* BB Move to ntlmssp.c eventually */
411
412/* We do not malloc the blob, it is passed in pbuffer, because
413 it is fixed size, and small, making this approach cleaner */
414static void build_ntlmssp_negotiate_blob(unsigned char *pbuffer,
415 struct cifsSesInfo *ses)
416{
417 NEGOTIATE_MESSAGE *sec_blob = (NEGOTIATE_MESSAGE *)pbuffer;
418 __u32 flags;
419
420 memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);
421 sec_blob->MessageType = NtLmNegotiate;
422
423 /* BB is NTLMV2 session security format easier to use here? */
424 flags = NTLMSSP_NEGOTIATE_56 | NTLMSSP_REQUEST_TARGET |
425 NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_UNICODE |
426 NTLMSSP_NEGOTIATE_NT_ONLY | NTLMSSP_NEGOTIATE_NTLM;
427 if (ses->server->secMode &
428 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
429 flags |= NTLMSSP_NEGOTIATE_SIGN;
430 if (ses->server->secMode & SECMODE_SIGN_REQUIRED)
431 flags |= NTLMSSP_NEGOTIATE_ALWAYS_SIGN;
432
433 sec_blob->NegotiateFlags |= cpu_to_le32(flags);
434
435 sec_blob->WorkstationName.BufferOffset = 0;
436 sec_blob->WorkstationName.Length = 0;
437 sec_blob->WorkstationName.MaximumLength = 0;
438
439 /* Domain name is sent on the Challenge not Negotiate NTLMSSP request */
440 sec_blob->DomainName.BufferOffset = 0;
441 sec_blob->DomainName.Length = 0;
442 sec_blob->DomainName.MaximumLength = 0;
443}
444
445/* We do not malloc the blob, it is passed in pbuffer, because its
446 maximum possible size is fixed and small, making this approach cleaner.
447 This function returns the length of the data in the blob */
448static int build_ntlmssp_auth_blob(unsigned char *pbuffer,
449 struct cifsSesInfo *ses,
450 const struct nls_table *nls_cp, int first)
451{
452 AUTHENTICATE_MESSAGE *sec_blob = (AUTHENTICATE_MESSAGE *)pbuffer;
453 __u32 flags;
454 unsigned char *tmp;
455 char ntlm_session_key[CIFS_SESS_KEY_SIZE];
456
457 memcpy(sec_blob->Signature, NTLMSSP_SIGNATURE, 8);
458 sec_blob->MessageType = NtLmAuthenticate;
459
460 flags = NTLMSSP_NEGOTIATE_56 |
461 NTLMSSP_REQUEST_TARGET | NTLMSSP_NEGOTIATE_TARGET_INFO |
462 NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_UNICODE |
463 NTLMSSP_NEGOTIATE_NT_ONLY | NTLMSSP_NEGOTIATE_NTLM;
464 if (ses->server->secMode &
465 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
466 flags |= NTLMSSP_NEGOTIATE_SIGN;
467 if (ses->server->secMode & SECMODE_SIGN_REQUIRED)
468 flags |= NTLMSSP_NEGOTIATE_ALWAYS_SIGN;
469
470 tmp = pbuffer + sizeof(AUTHENTICATE_MESSAGE);
471 sec_blob->NegotiateFlags |= cpu_to_le32(flags);
472
473 sec_blob->LmChallengeResponse.BufferOffset =
474 cpu_to_le32(sizeof(AUTHENTICATE_MESSAGE));
475 sec_blob->LmChallengeResponse.Length = 0;
476 sec_blob->LmChallengeResponse.MaximumLength = 0;
477
478 /* calculate session key, BB what about adding similar ntlmv2 path? */
479 SMBNTencrypt(ses->password, ses->server->cryptKey, ntlm_session_key);
480 if (first)
481 cifs_calculate_mac_key(&ses->server->mac_signing_key,
482 ntlm_session_key, ses->password);
483
484 memcpy(tmp, ntlm_session_key, CIFS_SESS_KEY_SIZE);
485 sec_blob->NtChallengeResponse.BufferOffset = cpu_to_le32(tmp - pbuffer);
486 sec_blob->NtChallengeResponse.Length = cpu_to_le16(CIFS_SESS_KEY_SIZE);
487 sec_blob->NtChallengeResponse.MaximumLength =
488 cpu_to_le16(CIFS_SESS_KEY_SIZE);
489
490 tmp += CIFS_SESS_KEY_SIZE;
491
492 if (ses->domainName == NULL) {
493 sec_blob->DomainName.BufferOffset = cpu_to_le32(tmp - pbuffer);
494 sec_blob->DomainName.Length = 0;
495 sec_blob->DomainName.MaximumLength = 0;
496 tmp += 2;
497 } else {
498 int len;
499 len = cifs_strtoUCS((__le16 *)tmp, ses->domainName,
500 MAX_USERNAME_SIZE, nls_cp);
501 len *= 2; /* unicode is 2 bytes each */
502 len += 2; /* trailing null */
503 sec_blob->DomainName.BufferOffset = cpu_to_le32(tmp - pbuffer);
504 sec_blob->DomainName.Length = cpu_to_le16(len);
505 sec_blob->DomainName.MaximumLength = cpu_to_le16(len);
506 tmp += len;
507 }
508
509 if (ses->userName == NULL) {
510 sec_blob->UserName.BufferOffset = cpu_to_le32(tmp - pbuffer);
511 sec_blob->UserName.Length = 0;
512 sec_blob->UserName.MaximumLength = 0;
513 tmp += 2;
514 } else {
515 int len;
516 len = cifs_strtoUCS((__le16 *)tmp, ses->userName,
517 MAX_USERNAME_SIZE, nls_cp);
518 len *= 2; /* unicode is 2 bytes each */
519 len += 2; /* trailing null */
520 sec_blob->UserName.BufferOffset = cpu_to_le32(tmp - pbuffer);
521 sec_blob->UserName.Length = cpu_to_le16(len);
522 sec_blob->UserName.MaximumLength = cpu_to_le16(len);
523 tmp += len;
524 }
525
526 sec_blob->WorkstationName.BufferOffset = cpu_to_le32(tmp - pbuffer);
527 sec_blob->WorkstationName.Length = 0;
528 sec_blob->WorkstationName.MaximumLength = 0;
529 tmp += 2;
530
531 sec_blob->SessionKey.BufferOffset = cpu_to_le32(tmp - pbuffer);
532 sec_blob->SessionKey.Length = 0;
533 sec_blob->SessionKey.MaximumLength = 0;
534 return tmp - pbuffer;
535}
536
537
538static void setup_ntlmssp_neg_req(SESSION_SETUP_ANDX *pSMB,
539 struct cifsSesInfo *ses)
540{
541 build_ntlmssp_negotiate_blob(&pSMB->req.SecurityBlob[0], ses);
542 pSMB->req.SecurityBlobLength = cpu_to_le16(sizeof(NEGOTIATE_MESSAGE));
543
544 return;
545}
546
547static int setup_ntlmssp_auth_req(SESSION_SETUP_ANDX *pSMB,
548 struct cifsSesInfo *ses,
549 const struct nls_table *nls, int first_time)
550{
551 int bloblen;
552
553 bloblen = build_ntlmssp_auth_blob(&pSMB->req.SecurityBlob[0], ses, nls,
554 first_time);
555 pSMB->req.SecurityBlobLength = cpu_to_le16(bloblen);
556
557 return bloblen;
558}
559#endif
560
415int 561int
416CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, 562CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
417 const struct nls_table *nls_cp) 563 const struct nls_table *nls_cp)
@@ -430,6 +576,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
430 __u16 action; 576 __u16 action;
431 int bytes_remaining; 577 int bytes_remaining;
432 struct key *spnego_key = NULL; 578 struct key *spnego_key = NULL;
579 __le32 phase = NtLmNegotiate; /* NTLMSSP, if needed, is multistage */
433 580
434 if (ses == NULL) 581 if (ses == NULL)
435 return -EINVAL; 582 return -EINVAL;
@@ -437,6 +584,10 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
437 type = ses->server->secType; 584 type = ses->server->secType;
438 585
439 cFYI(1, ("sess setup type %d", type)); 586 cFYI(1, ("sess setup type %d", type));
587ssetup_ntlmssp_authenticate:
588 if (phase == NtLmChallenge)
589 phase = NtLmAuthenticate; /* if ntlmssp, now final phase */
590
440 if (type == LANMAN) { 591 if (type == LANMAN) {
441#ifndef CONFIG_CIFS_WEAK_PW_HASH 592#ifndef CONFIG_CIFS_WEAK_PW_HASH
442 /* LANMAN and plaintext are less secure and off by default. 593 /* LANMAN and plaintext are less secure and off by default.
@@ -650,9 +801,53 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
650 goto ssetup_exit; 801 goto ssetup_exit;
651#endif /* CONFIG_CIFS_UPCALL */ 802#endif /* CONFIG_CIFS_UPCALL */
652 } else { 803 } else {
804#ifdef CONFIG_CIFS_EXPERIMENTAL
805 if ((experimEnabled > 1) && (type == RawNTLMSSP)) {
806 if ((pSMB->req.hdr.Flags2 & SMBFLG2_UNICODE) == 0) {
807 cERROR(1, ("NTLMSSP requires Unicode support"));
808 rc = -ENOSYS;
809 goto ssetup_exit;
810 }
811
812 cFYI(1, ("ntlmssp session setup phase %d", phase));
813 pSMB->req.hdr.Flags2 |= SMBFLG2_EXT_SEC;
814 capabilities |= CAP_EXTENDED_SECURITY;
815 pSMB->req.Capabilities |= cpu_to_le32(capabilities);
816 if (phase == NtLmNegotiate) {
817 setup_ntlmssp_neg_req(pSMB, ses);
818 iov[1].iov_len = sizeof(NEGOTIATE_MESSAGE);
819 } else if (phase == NtLmAuthenticate) {
820 int blob_len;
821 blob_len = setup_ntlmssp_auth_req(pSMB, ses,
822 nls_cp,
823 first_time);
824 iov[1].iov_len = blob_len;
825 /* Make sure that we tell the server that we
826 are using the uid that it just gave us back
827 on the response (challenge) */
828 smb_buf->Uid = ses->Suid;
829 } else {
830 cERROR(1, ("invalid phase %d", phase));
831 rc = -ENOSYS;
832 goto ssetup_exit;
833 }
834 iov[1].iov_base = &pSMB->req.SecurityBlob[0];
835 /* unicode strings must be word aligned */
836 if ((iov[0].iov_len + iov[1].iov_len) % 2) {
837 *bcc_ptr = 0;
838 bcc_ptr++;
839 }
840 unicode_oslm_strings(&bcc_ptr, nls_cp);
841 } else {
842 cERROR(1, ("secType %d not supported!", type));
843 rc = -ENOSYS;
844 goto ssetup_exit;
845 }
846#else
653 cERROR(1, ("secType %d not supported!", type)); 847 cERROR(1, ("secType %d not supported!", type));
654 rc = -ENOSYS; 848 rc = -ENOSYS;
655 goto ssetup_exit; 849 goto ssetup_exit;
850#endif
656 } 851 }
657 852
658 iov[2].iov_base = str_area; 853 iov[2].iov_base = str_area;
@@ -668,12 +863,23 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
668 /* SMB request buf freed in SendReceive2 */ 863 /* SMB request buf freed in SendReceive2 */
669 864
670 cFYI(1, ("ssetup rc from sendrecv2 is %d", rc)); 865 cFYI(1, ("ssetup rc from sendrecv2 is %d", rc));
671 if (rc)
672 goto ssetup_exit;
673 866
674 pSMB = (SESSION_SETUP_ANDX *)iov[0].iov_base; 867 pSMB = (SESSION_SETUP_ANDX *)iov[0].iov_base;
675 smb_buf = (struct smb_hdr *)iov[0].iov_base; 868 smb_buf = (struct smb_hdr *)iov[0].iov_base;
676 869
870 if ((type == RawNTLMSSP) && (smb_buf->Status.CifsError ==
871 cpu_to_le32(NT_STATUS_MORE_PROCESSING_REQUIRED))) {
872 if (phase != NtLmNegotiate) {
873 cERROR(1, ("Unexpected more processing error"));
874 goto ssetup_exit;
875 }
876 /* NTLMSSP Negotiate sent now processing challenge (response) */
877 phase = NtLmChallenge; /* process ntlmssp challenge */
878 rc = 0; /* MORE_PROC rc is not an error here, but expected */
879 }
880 if (rc)
881 goto ssetup_exit;
882
677 if ((smb_buf->WordCount != 3) && (smb_buf->WordCount != 4)) { 883 if ((smb_buf->WordCount != 3) && (smb_buf->WordCount != 4)) {
678 rc = -EIO; 884 rc = -EIO;
679 cERROR(1, ("bad word count %d", smb_buf->WordCount)); 885 cERROR(1, ("bad word count %d", smb_buf->WordCount));
@@ -692,22 +898,33 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
692 if (smb_buf->WordCount == 4) { 898 if (smb_buf->WordCount == 4) {
693 __u16 blob_len; 899 __u16 blob_len;
694 blob_len = le16_to_cpu(pSMB->resp.SecurityBlobLength); 900 blob_len = le16_to_cpu(pSMB->resp.SecurityBlobLength);
695 bcc_ptr += blob_len;
696 if (blob_len > bytes_remaining) { 901 if (blob_len > bytes_remaining) {
697 cERROR(1, ("bad security blob length %d", blob_len)); 902 cERROR(1, ("bad security blob length %d", blob_len));
698 rc = -EINVAL; 903 rc = -EINVAL;
699 goto ssetup_exit; 904 goto ssetup_exit;
700 } 905 }
906 if (phase == NtLmChallenge) {
907 rc = decode_ntlmssp_challenge(bcc_ptr, blob_len, ses);
908 /* now goto beginning for ntlmssp authenticate phase */
909 if (rc)
910 goto ssetup_exit;
911 }
912 bcc_ptr += blob_len;
701 bytes_remaining -= blob_len; 913 bytes_remaining -= blob_len;
702 } 914 }
703 915
704 /* BB check if Unicode and decode strings */ 916 /* BB check if Unicode and decode strings */
705 if (smb_buf->Flags2 & SMBFLG2_UNICODE) 917 if (smb_buf->Flags2 & SMBFLG2_UNICODE) {
706 rc = decode_unicode_ssetup(&bcc_ptr, bytes_remaining, 918 /* unicode string area must be word-aligned */
707 ses, nls_cp); 919 if (((unsigned long) bcc_ptr - (unsigned long) smb_buf) % 2) {
708 else 920 ++bcc_ptr;
921 --bytes_remaining;
922 }
923 decode_unicode_ssetup(&bcc_ptr, bytes_remaining, ses, nls_cp);
924 } else {
709 rc = decode_ascii_ssetup(&bcc_ptr, bytes_remaining, 925 rc = decode_ascii_ssetup(&bcc_ptr, bytes_remaining,
710 ses, nls_cp); 926 ses, nls_cp);
927 }
711 928
712ssetup_exit: 929ssetup_exit:
713 if (spnego_key) { 930 if (spnego_key) {
@@ -721,5 +938,9 @@ ssetup_exit:
721 } else if (resp_buf_type == CIFS_LARGE_BUFFER) 938 } else if (resp_buf_type == CIFS_LARGE_BUFFER)
722 cifs_buf_release(iov[0].iov_base); 939 cifs_buf_release(iov[0].iov_base);
723 940
941 /* if ntlmssp, and negotiate succeeded, proceed to authenticate phase */
942 if ((phase == NtLmChallenge) && (rc == 0))
943 goto ssetup_ntlmssp_authenticate;
944
724 return rc; 945 return rc;
725} 946}
diff --git a/fs/cifs/smberr.h b/fs/cifs/smberr.h
index 7f50e8577c1c..c5084d27db7c 100644
--- a/fs/cifs/smberr.h
+++ b/fs/cifs/smberr.h
@@ -110,6 +110,7 @@
110 110
111/* Below errors are used internally (do not come over the wire) for passthrough 111/* Below errors are used internally (do not come over the wire) for passthrough
112 from STATUS codes to POSIX only */ 112 from STATUS codes to POSIX only */
113#define ERRsymlink 0xFFFD
113#define ErrTooManyLinks 0xFFFE 114#define ErrTooManyLinks 0xFFFE
114 115
115/* Following error codes may be generated with the ERRSRV error class.*/ 116/* Following error codes may be generated with the ERRSRV error class.*/
diff --git a/fs/compat.c b/fs/compat.c
index 3f84d5f15889..681ed81e6be0 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -181,22 +181,24 @@ asmlinkage long compat_sys_newstat(char __user * filename,
181 struct compat_stat __user *statbuf) 181 struct compat_stat __user *statbuf)
182{ 182{
183 struct kstat stat; 183 struct kstat stat;
184 int error = vfs_stat_fd(AT_FDCWD, filename, &stat); 184 int error;
185 185
186 if (!error) 186 error = vfs_stat(filename, &stat);
187 error = cp_compat_stat(&stat, statbuf); 187 if (error)
188 return error; 188 return error;
189 return cp_compat_stat(&stat, statbuf);
189} 190}
190 191
191asmlinkage long compat_sys_newlstat(char __user * filename, 192asmlinkage long compat_sys_newlstat(char __user * filename,
192 struct compat_stat __user *statbuf) 193 struct compat_stat __user *statbuf)
193{ 194{
194 struct kstat stat; 195 struct kstat stat;
195 int error = vfs_lstat_fd(AT_FDCWD, filename, &stat); 196 int error;
196 197
197 if (!error) 198 error = vfs_lstat(filename, &stat);
198 error = cp_compat_stat(&stat, statbuf); 199 if (error)
199 return error; 200 return error;
201 return cp_compat_stat(&stat, statbuf);
200} 202}
201 203
202#ifndef __ARCH_WANT_STAT64 204#ifndef __ARCH_WANT_STAT64
@@ -204,21 +206,12 @@ asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename,
204 struct compat_stat __user *statbuf, int flag) 206 struct compat_stat __user *statbuf, int flag)
205{ 207{
206 struct kstat stat; 208 struct kstat stat;
207 int error = -EINVAL; 209 int error;
208
209 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
210 goto out;
211
212 if (flag & AT_SYMLINK_NOFOLLOW)
213 error = vfs_lstat_fd(dfd, filename, &stat);
214 else
215 error = vfs_stat_fd(dfd, filename, &stat);
216
217 if (!error)
218 error = cp_compat_stat(&stat, statbuf);
219 210
220out: 211 error = vfs_fstatat(dfd, filename, &stat, flag);
221 return error; 212 if (error)
213 return error;
214 return cp_compat_stat(&stat, statbuf);
222} 215}
223#endif 216#endif
224 217
@@ -1483,6 +1476,7 @@ int compat_do_execve(char * filename,
1483 struct linux_binprm *bprm; 1476 struct linux_binprm *bprm;
1484 struct file *file; 1477 struct file *file;
1485 struct files_struct *displaced; 1478 struct files_struct *displaced;
1479 bool clear_in_exec;
1486 int retval; 1480 int retval;
1487 1481
1488 retval = unshare_files(&displaced); 1482 retval = unshare_files(&displaced);
@@ -1505,8 +1499,9 @@ int compat_do_execve(char * filename,
1505 goto out_unlock; 1499 goto out_unlock;
1506 1500
1507 retval = check_unsafe_exec(bprm); 1501 retval = check_unsafe_exec(bprm);
1508 if (retval) 1502 if (retval < 0)
1509 goto out_unlock; 1503 goto out_unlock;
1504 clear_in_exec = retval;
1510 1505
1511 file = open_exec(filename); 1506 file = open_exec(filename);
1512 retval = PTR_ERR(file); 1507 retval = PTR_ERR(file);
@@ -1553,9 +1548,7 @@ int compat_do_execve(char * filename,
1553 goto out; 1548 goto out;
1554 1549
1555 /* execve succeeded */ 1550 /* execve succeeded */
1556 write_lock(&current->fs->lock);
1557 current->fs->in_exec = 0; 1551 current->fs->in_exec = 0;
1558 write_unlock(&current->fs->lock);
1559 current->in_execve = 0; 1552 current->in_execve = 0;
1560 mutex_unlock(&current->cred_exec_mutex); 1553 mutex_unlock(&current->cred_exec_mutex);
1561 acct_update_integrals(current); 1554 acct_update_integrals(current);
@@ -1575,9 +1568,8 @@ out_file:
1575 } 1568 }
1576 1569
1577out_unmark: 1570out_unmark:
1578 write_lock(&current->fs->lock); 1571 if (clear_in_exec)
1579 current->fs->in_exec = 0; 1572 current->fs->in_exec = 0;
1580 write_unlock(&current->fs->lock);
1581 1573
1582out_unlock: 1574out_unlock:
1583 current->in_execve = 0; 1575 current->in_execve = 0;
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index 3e87ce443ea2..b83f6bcfa51a 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -58,7 +58,6 @@
58#include <linux/i2c.h> 58#include <linux/i2c.h>
59#include <linux/i2c-dev.h> 59#include <linux/i2c-dev.h>
60#include <linux/atalk.h> 60#include <linux/atalk.h>
61#include <linux/loop.h>
62 61
63#include <net/bluetooth/bluetooth.h> 62#include <net/bluetooth/bluetooth.h>
64#include <net/bluetooth/hci.h> 63#include <net/bluetooth/hci.h>
@@ -68,6 +67,7 @@
68#include <linux/gigaset_dev.h> 67#include <linux/gigaset_dev.h>
69 68
70#ifdef CONFIG_BLOCK 69#ifdef CONFIG_BLOCK
70#include <linux/loop.h>
71#include <scsi/scsi.h> 71#include <scsi/scsi.h>
72#include <scsi/scsi_ioctl.h> 72#include <scsi/scsi_ioctl.h>
73#include <scsi/sg.h> 73#include <scsi/sg.h>
@@ -2660,6 +2660,8 @@ HANDLE_IOCTL(SONET_GETFRAMING, do_atm_ioctl)
2660HANDLE_IOCTL(SONET_GETFRSENSE, do_atm_ioctl) 2660HANDLE_IOCTL(SONET_GETFRSENSE, do_atm_ioctl)
2661/* block stuff */ 2661/* block stuff */
2662#ifdef CONFIG_BLOCK 2662#ifdef CONFIG_BLOCK
2663/* loop */
2664IGNORE_IOCTL(LOOP_CLR_FD)
2663/* Raw devices */ 2665/* Raw devices */
2664HANDLE_IOCTL(RAW_SETBIND, raw_ioctl) 2666HANDLE_IOCTL(RAW_SETBIND, raw_ioctl)
2665HANDLE_IOCTL(RAW_GETBIND, raw_ioctl) 2667HANDLE_IOCTL(RAW_GETBIND, raw_ioctl)
@@ -2728,9 +2730,6 @@ HANDLE_IOCTL(LPSETTIMEOUT, lp_timeout_trans)
2728IGNORE_IOCTL(VFAT_IOCTL_READDIR_BOTH32) 2730IGNORE_IOCTL(VFAT_IOCTL_READDIR_BOTH32)
2729IGNORE_IOCTL(VFAT_IOCTL_READDIR_SHORT32) 2731IGNORE_IOCTL(VFAT_IOCTL_READDIR_SHORT32)
2730 2732
2731/* loop */
2732IGNORE_IOCTL(LOOP_CLR_FD)
2733
2734#ifdef CONFIG_SPARC 2733#ifdef CONFIG_SPARC
2735/* Sparc framebuffers, handled in sbusfb_compat_ioctl() */ 2734/* Sparc framebuffers, handled in sbusfb_compat_ioctl() */
2736IGNORE_IOCTL(FBIOGTYPE) 2735IGNORE_IOCTL(FBIOGTYPE)
diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c
index 932a92b31483..c8afa6b1d91d 100644
--- a/fs/configfs/symlink.c
+++ b/fs/configfs/symlink.c
@@ -135,7 +135,7 @@ int configfs_symlink(struct inode *dir, struct dentry *dentry, const char *symna
135 struct path path; 135 struct path path;
136 struct configfs_dirent *sd; 136 struct configfs_dirent *sd;
137 struct config_item *parent_item; 137 struct config_item *parent_item;
138 struct config_item *target_item; 138 struct config_item *target_item = NULL;
139 struct config_item_type *type; 139 struct config_item_type *type;
140 140
141 ret = -EPERM; /* What lack-of-symlink returns */ 141 ret = -EPERM; /* What lack-of-symlink returns */
diff --git a/fs/dcache.c b/fs/dcache.c
index 761d30be2683..75659a6fd1f8 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -481,7 +481,7 @@ restart:
481 if ((flags & DCACHE_REFERENCED) 481 if ((flags & DCACHE_REFERENCED)
482 && (dentry->d_flags & DCACHE_REFERENCED)) { 482 && (dentry->d_flags & DCACHE_REFERENCED)) {
483 dentry->d_flags &= ~DCACHE_REFERENCED; 483 dentry->d_flags &= ~DCACHE_REFERENCED;
484 list_move_tail(&dentry->d_lru, &referenced); 484 list_move(&dentry->d_lru, &referenced);
485 spin_unlock(&dentry->d_lock); 485 spin_unlock(&dentry->d_lock);
486 } else { 486 } else {
487 list_move_tail(&dentry->d_lru, &tmp); 487 list_move_tail(&dentry->d_lru, &tmp);
@@ -2149,7 +2149,6 @@ int is_subdir(struct dentry *new_dentry, struct dentry *old_dentry)
2149 int result; 2149 int result;
2150 unsigned long seq; 2150 unsigned long seq;
2151 2151
2152 /* FIXME: This is old behavior, needed? Please check callers. */
2153 if (new_dentry == old_dentry) 2152 if (new_dentry == old_dentry)
2154 return 1; 2153 return 1;
2155 2154
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 63a4a59e4148..c68edb969441 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -90,6 +90,15 @@ static inline struct super_block *pts_sb_from_inode(struct inode *inode)
90#define PARSE_MOUNT 0 90#define PARSE_MOUNT 0
91#define PARSE_REMOUNT 1 91#define PARSE_REMOUNT 1
92 92
93/*
94 * parse_mount_options():
95 * Set @opts to mount options specified in @data. If an option is not
96 * specified in @data, set it to its default value. The exception is
97 * 'newinstance' option which can only be set/cleared on a mount (i.e.
98 * cannot be changed during remount).
99 *
100 * Note: @data may be NULL (in which case all options are set to default).
101 */
93static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts) 102static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts)
94{ 103{
95 char *p; 104 char *p;
@@ -355,12 +364,9 @@ static int devpts_get_sb(struct file_system_type *fs_type,
355 struct pts_mount_opts opts; 364 struct pts_mount_opts opts;
356 struct super_block *s; 365 struct super_block *s;
357 366
358 memset(&opts, 0, sizeof(opts)); 367 error = parse_mount_options(data, PARSE_MOUNT, &opts);
359 if (data) { 368 if (error)
360 error = parse_mount_options(data, PARSE_MOUNT, &opts); 369 return error;
361 if (error)
362 return error;
363 }
364 370
365 if (opts.newinstance) 371 if (opts.newinstance)
366 s = sget(fs_type, NULL, set_anon_super, NULL); 372 s = sget(fs_type, NULL, set_anon_super, NULL);
@@ -389,11 +395,10 @@ static int devpts_get_sb(struct file_system_type *fs_type,
389 return 0; 395 return 0;
390 396
391out_dput: 397out_dput:
392 dput(s->s_root); 398 dput(s->s_root); /* undo dget() in simple_set_mnt() */
393 399
394out_undo_sget: 400out_undo_sget:
395 up_write(&s->s_umount); 401 deactivate_locked_super(s);
396 deactivate_super(s);
397 return error; 402 return error;
398} 403}
399 404
diff --git a/fs/direct-io.c b/fs/direct-io.c
index da258e7249cc..05763bbc2050 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -307,8 +307,6 @@ dio_bio_alloc(struct dio *dio, struct block_device *bdev,
307 struct bio *bio; 307 struct bio *bio;
308 308
309 bio = bio_alloc(GFP_KERNEL, nr_vecs); 309 bio = bio_alloc(GFP_KERNEL, nr_vecs);
310 if (bio == NULL)
311 return -ENOMEM;
312 310
313 bio->bi_bdev = bdev; 311 bio->bi_bdev = bdev;
314 bio->bi_sector = first_sector; 312 bio->bi_sector = first_sector;
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index 8b65f289ee00..b91851f1cda3 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -483,15 +483,7 @@ int ecryptfs_encrypt_page(struct page *page)
483 ecryptfs_inode = page->mapping->host; 483 ecryptfs_inode = page->mapping->host;
484 crypt_stat = 484 crypt_stat =
485 &(ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat); 485 &(ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat);
486 if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { 486 BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED));
487 rc = ecryptfs_write_lower_page_segment(ecryptfs_inode, page,
488 0, PAGE_CACHE_SIZE);
489 if (rc)
490 printk(KERN_ERR "%s: Error attempting to copy "
491 "page at index [%ld]\n", __func__,
492 page->index);
493 goto out;
494 }
495 enc_extent_page = alloc_page(GFP_USER); 487 enc_extent_page = alloc_page(GFP_USER);
496 if (!enc_extent_page) { 488 if (!enc_extent_page) {
497 rc = -ENOMEM; 489 rc = -ENOMEM;
@@ -620,16 +612,7 @@ int ecryptfs_decrypt_page(struct page *page)
620 ecryptfs_inode = page->mapping->host; 612 ecryptfs_inode = page->mapping->host;
621 crypt_stat = 613 crypt_stat =
622 &(ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat); 614 &(ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat);
623 if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { 615 BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED));
624 rc = ecryptfs_read_lower_page_segment(page, page->index, 0,
625 PAGE_CACHE_SIZE,
626 ecryptfs_inode);
627 if (rc)
628 printk(KERN_ERR "%s: Error attempting to copy "
629 "page at index [%ld]\n", __func__,
630 page->index);
631 goto out;
632 }
633 enc_extent_page = alloc_page(GFP_USER); 616 enc_extent_page = alloc_page(GFP_USER);
634 if (!enc_extent_page) { 617 if (!enc_extent_page) {
635 rc = -ENOMEM; 618 rc = -ENOMEM;
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h
index 064c5820e4e5..00b30a2d5466 100644
--- a/fs/ecryptfs/ecryptfs_kernel.h
+++ b/fs/ecryptfs/ecryptfs_kernel.h
@@ -269,6 +269,7 @@ struct ecryptfs_crypt_stat {
269#define ECRYPTFS_ENCRYPT_FILENAMES 0x00000800 269#define ECRYPTFS_ENCRYPT_FILENAMES 0x00000800
270#define ECRYPTFS_ENCFN_USE_MOUNT_FNEK 0x00001000 270#define ECRYPTFS_ENCFN_USE_MOUNT_FNEK 0x00001000
271#define ECRYPTFS_ENCFN_USE_FEK 0x00002000 271#define ECRYPTFS_ENCFN_USE_FEK 0x00002000
272#define ECRYPTFS_UNLINK_SIGS 0x00004000
272 u32 flags; 273 u32 flags;
273 unsigned int file_version; 274 unsigned int file_version;
274 size_t iv_bytes; 275 size_t iv_bytes;
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 55b3145b8072..2f0945d63297 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -379,9 +379,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode,
379 goto out_d_drop; 379 goto out_d_drop;
380 } 380 }
381 lower_dir_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry->d_parent); 381 lower_dir_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry->d_parent);
382 mutex_lock(&lower_dir_dentry->d_inode->i_mutex);
382 lower_dentry = lookup_one_len(ecryptfs_dentry->d_name.name, 383 lower_dentry = lookup_one_len(ecryptfs_dentry->d_name.name,
383 lower_dir_dentry, 384 lower_dir_dentry,
384 ecryptfs_dentry->d_name.len); 385 ecryptfs_dentry->d_name.len);
386 mutex_unlock(&lower_dir_dentry->d_inode->i_mutex);
385 if (IS_ERR(lower_dentry)) { 387 if (IS_ERR(lower_dentry)) {
386 rc = PTR_ERR(lower_dentry); 388 rc = PTR_ERR(lower_dentry);
387 printk(KERN_ERR "%s: lookup_one_len() returned [%d] on " 389 printk(KERN_ERR "%s: lookup_one_len() returned [%d] on "
@@ -406,9 +408,11 @@ static struct dentry *ecryptfs_lookup(struct inode *ecryptfs_dir_inode,
406 "filename; rc = [%d]\n", __func__, rc); 408 "filename; rc = [%d]\n", __func__, rc);
407 goto out_d_drop; 409 goto out_d_drop;
408 } 410 }
411 mutex_lock(&lower_dir_dentry->d_inode->i_mutex);
409 lower_dentry = lookup_one_len(encrypted_and_encoded_name, 412 lower_dentry = lookup_one_len(encrypted_and_encoded_name,
410 lower_dir_dentry, 413 lower_dir_dentry,
411 encrypted_and_encoded_name_size - 1); 414 encrypted_and_encoded_name_size - 1);
415 mutex_unlock(&lower_dir_dentry->d_inode->i_mutex);
412 if (IS_ERR(lower_dentry)) { 416 if (IS_ERR(lower_dentry)) {
413 rc = PTR_ERR(lower_dentry); 417 rc = PTR_ERR(lower_dentry);
414 printk(KERN_ERR "%s: lookup_one_len() returned [%d] on " 418 printk(KERN_ERR "%s: lookup_one_len() returned [%d] on "
@@ -636,8 +640,9 @@ static int
636ecryptfs_readlink(struct dentry *dentry, char __user *buf, int bufsiz) 640ecryptfs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
637{ 641{
638 char *lower_buf; 642 char *lower_buf;
643 size_t lower_bufsiz;
639 struct dentry *lower_dentry; 644 struct dentry *lower_dentry;
640 struct ecryptfs_crypt_stat *crypt_stat; 645 struct ecryptfs_mount_crypt_stat *mount_crypt_stat;
641 char *plaintext_name; 646 char *plaintext_name;
642 size_t plaintext_name_size; 647 size_t plaintext_name_size;
643 mm_segment_t old_fs; 648 mm_segment_t old_fs;
@@ -648,12 +653,21 @@ ecryptfs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
648 rc = -EINVAL; 653 rc = -EINVAL;
649 goto out; 654 goto out;
650 } 655 }
651 crypt_stat = &ecryptfs_inode_to_private(dentry->d_inode)->crypt_stat; 656 mount_crypt_stat = &ecryptfs_superblock_to_private(
657 dentry->d_sb)->mount_crypt_stat;
658 /*
659 * If the lower filename is encrypted, it will result in a significantly
660 * longer name. If needed, truncate the name after decode and decrypt.
661 */
662 if (mount_crypt_stat->flags & ECRYPTFS_GLOBAL_ENCRYPT_FILENAMES)
663 lower_bufsiz = PATH_MAX;
664 else
665 lower_bufsiz = bufsiz;
652 /* Released in this function */ 666 /* Released in this function */
653 lower_buf = kmalloc(bufsiz, GFP_KERNEL); 667 lower_buf = kmalloc(lower_bufsiz, GFP_KERNEL);
654 if (lower_buf == NULL) { 668 if (lower_buf == NULL) {
655 printk(KERN_ERR "%s: Out of memory whilst attempting to " 669 printk(KERN_ERR "%s: Out of memory whilst attempting to "
656 "kmalloc [%d] bytes\n", __func__, bufsiz); 670 "kmalloc [%zd] bytes\n", __func__, lower_bufsiz);
657 rc = -ENOMEM; 671 rc = -ENOMEM;
658 goto out; 672 goto out;
659 } 673 }
@@ -661,7 +675,7 @@ ecryptfs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
661 set_fs(get_ds()); 675 set_fs(get_ds());
662 rc = lower_dentry->d_inode->i_op->readlink(lower_dentry, 676 rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
663 (char __user *)lower_buf, 677 (char __user *)lower_buf,
664 bufsiz); 678 lower_bufsiz);
665 set_fs(old_fs); 679 set_fs(old_fs);
666 if (rc >= 0) { 680 if (rc >= 0) {
667 rc = ecryptfs_decode_and_decrypt_filename(&plaintext_name, 681 rc = ecryptfs_decode_and_decrypt_filename(&plaintext_name,
@@ -674,7 +688,9 @@ ecryptfs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
674 rc); 688 rc);
675 goto out_free_lower_buf; 689 goto out_free_lower_buf;
676 } 690 }
677 rc = copy_to_user(buf, plaintext_name, plaintext_name_size); 691 /* Check for bufsiz <= 0 done in sys_readlinkat() */
692 rc = copy_to_user(buf, plaintext_name,
693 min((size_t) bufsiz, plaintext_name_size));
678 if (rc) 694 if (rc)
679 rc = -EFAULT; 695 rc = -EFAULT;
680 else 696 else
@@ -814,6 +830,13 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length)
814 size_t num_zeros = (PAGE_CACHE_SIZE 830 size_t num_zeros = (PAGE_CACHE_SIZE
815 - (new_length & ~PAGE_CACHE_MASK)); 831 - (new_length & ~PAGE_CACHE_MASK));
816 832
833 if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) {
834 rc = vmtruncate(inode, new_length);
835 if (rc)
836 goto out_free;
837 rc = vmtruncate(lower_dentry->d_inode, new_length);
838 goto out_free;
839 }
817 if (num_zeros) { 840 if (num_zeros) {
818 char *zeros_virt; 841 char *zeros_virt;
819 842
@@ -915,8 +938,6 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia)
915 } 938 }
916 rc = 0; 939 rc = 0;
917 crypt_stat->flags &= ~(ECRYPTFS_ENCRYPTED); 940 crypt_stat->flags &= ~(ECRYPTFS_ENCRYPTED);
918 mutex_unlock(&crypt_stat->cs_mutex);
919 goto out;
920 } 941 }
921 } 942 }
922 mutex_unlock(&crypt_stat->cs_mutex); 943 mutex_unlock(&crypt_stat->cs_mutex);
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
index aed56c25539b..9f0aa9883c28 100644
--- a/fs/ecryptfs/main.c
+++ b/fs/ecryptfs/main.c
@@ -190,14 +190,14 @@ int ecryptfs_interpose(struct dentry *lower_dentry, struct dentry *dentry,
190 init_special_inode(inode, lower_inode->i_mode, 190 init_special_inode(inode, lower_inode->i_mode,
191 lower_inode->i_rdev); 191 lower_inode->i_rdev);
192 dentry->d_op = &ecryptfs_dops; 192 dentry->d_op = &ecryptfs_dops;
193 if (flags & ECRYPTFS_INTERPOSE_FLAG_D_ADD)
194 d_add(dentry, inode);
195 else
196 d_instantiate(dentry, inode);
197 fsstack_copy_attr_all(inode, lower_inode, NULL); 193 fsstack_copy_attr_all(inode, lower_inode, NULL);
198 /* This size will be overwritten for real files w/ headers and 194 /* This size will be overwritten for real files w/ headers and
199 * other metadata */ 195 * other metadata */
200 fsstack_copy_inode_size(inode, lower_inode); 196 fsstack_copy_inode_size(inode, lower_inode);
197 if (flags & ECRYPTFS_INTERPOSE_FLAG_D_ADD)
198 d_add(dentry, inode);
199 else
200 d_instantiate(dentry, inode);
201out: 201out:
202 return rc; 202 return rc;
203} 203}
@@ -208,7 +208,7 @@ enum { ecryptfs_opt_sig, ecryptfs_opt_ecryptfs_sig,
208 ecryptfs_opt_passthrough, ecryptfs_opt_xattr_metadata, 208 ecryptfs_opt_passthrough, ecryptfs_opt_xattr_metadata,
209 ecryptfs_opt_encrypted_view, ecryptfs_opt_fnek_sig, 209 ecryptfs_opt_encrypted_view, ecryptfs_opt_fnek_sig,
210 ecryptfs_opt_fn_cipher, ecryptfs_opt_fn_cipher_key_bytes, 210 ecryptfs_opt_fn_cipher, ecryptfs_opt_fn_cipher_key_bytes,
211 ecryptfs_opt_err }; 211 ecryptfs_opt_unlink_sigs, ecryptfs_opt_err };
212 212
213static const match_table_t tokens = { 213static const match_table_t tokens = {
214 {ecryptfs_opt_sig, "sig=%s"}, 214 {ecryptfs_opt_sig, "sig=%s"},
@@ -222,6 +222,7 @@ static const match_table_t tokens = {
222 {ecryptfs_opt_fnek_sig, "ecryptfs_fnek_sig=%s"}, 222 {ecryptfs_opt_fnek_sig, "ecryptfs_fnek_sig=%s"},
223 {ecryptfs_opt_fn_cipher, "ecryptfs_fn_cipher=%s"}, 223 {ecryptfs_opt_fn_cipher, "ecryptfs_fn_cipher=%s"},
224 {ecryptfs_opt_fn_cipher_key_bytes, "ecryptfs_fn_key_bytes=%u"}, 224 {ecryptfs_opt_fn_cipher_key_bytes, "ecryptfs_fn_key_bytes=%u"},
225 {ecryptfs_opt_unlink_sigs, "ecryptfs_unlink_sigs"},
225 {ecryptfs_opt_err, NULL} 226 {ecryptfs_opt_err, NULL}
226}; 227};
227 228
@@ -402,6 +403,9 @@ static int ecryptfs_parse_options(struct super_block *sb, char *options)
402 fn_cipher_key_bytes; 403 fn_cipher_key_bytes;
403 fn_cipher_key_bytes_set = 1; 404 fn_cipher_key_bytes_set = 1;
404 break; 405 break;
406 case ecryptfs_opt_unlink_sigs:
407 mount_crypt_stat->flags |= ECRYPTFS_UNLINK_SIGS;
408 break;
405 case ecryptfs_opt_err: 409 case ecryptfs_opt_err:
406 default: 410 default:
407 printk(KERN_WARNING 411 printk(KERN_WARNING
@@ -610,9 +614,8 @@ static int ecryptfs_get_sb(struct file_system_type *fs_type, int flags,
610 } 614 }
611 goto out; 615 goto out;
612out_abort: 616out_abort:
613 dput(sb->s_root); 617 dput(sb->s_root); /* aka mnt->mnt_root, as set by get_sb_nodev() */
614 up_write(&sb->s_umount); 618 deactivate_locked_super(sb);
615 deactivate_super(sb);
616out: 619out:
617 return rc; 620 return rc;
618} 621}
diff --git a/fs/ecryptfs/messaging.c b/fs/ecryptfs/messaging.c
index 295e7fa56755..f1c17e87c5fb 100644
--- a/fs/ecryptfs/messaging.c
+++ b/fs/ecryptfs/messaging.c
@@ -133,45 +133,6 @@ out:
133 return rc; 133 return rc;
134} 134}
135 135
136static int
137ecryptfs_send_message_locked(char *data, int data_len, u8 msg_type,
138 struct ecryptfs_msg_ctx **msg_ctx);
139
140/**
141 * ecryptfs_send_raw_message
142 * @msg_type: Message type
143 * @daemon: Daemon struct for recipient of message
144 *
145 * A raw message is one that does not include an ecryptfs_message
146 * struct. It simply has a type.
147 *
148 * Must be called with ecryptfs_daemon_hash_mux held.
149 *
150 * Returns zero on success; non-zero otherwise
151 */
152static int ecryptfs_send_raw_message(u8 msg_type,
153 struct ecryptfs_daemon *daemon)
154{
155 struct ecryptfs_msg_ctx *msg_ctx;
156 int rc;
157
158 rc = ecryptfs_send_message_locked(NULL, 0, msg_type, &msg_ctx);
159 if (rc) {
160 printk(KERN_ERR "%s: Error whilst attempting to send "
161 "message to ecryptfsd; rc = [%d]\n", __func__, rc);
162 goto out;
163 }
164 /* Raw messages are logically context-free (e.g., no
165 * reply is expected), so we set the state of the
166 * ecryptfs_msg_ctx object to indicate that it should
167 * be freed as soon as the message is sent. */
168 mutex_lock(&msg_ctx->mux);
169 msg_ctx->state = ECRYPTFS_MSG_CTX_STATE_NO_REPLY;
170 mutex_unlock(&msg_ctx->mux);
171out:
172 return rc;
173}
174
175/** 136/**
176 * ecryptfs_spawn_daemon - Create and initialize a new daemon struct 137 * ecryptfs_spawn_daemon - Create and initialize a new daemon struct
177 * @daemon: Pointer to set to newly allocated daemon struct 138 * @daemon: Pointer to set to newly allocated daemon struct
@@ -212,49 +173,6 @@ out:
212} 173}
213 174
214/** 175/**
215 * ecryptfs_process_helo
216 * @euid: The user ID owner of the message
217 * @user_ns: The namespace in which @euid applies
218 * @pid: The process ID for the userspace program that sent the
219 * message
220 *
221 * Adds the euid and pid values to the daemon euid hash. If an euid
222 * already has a daemon pid registered, the daemon will be
223 * unregistered before the new daemon is put into the hash list.
224 * Returns zero after adding a new daemon to the hash list;
225 * non-zero otherwise.
226 */
227int ecryptfs_process_helo(uid_t euid, struct user_namespace *user_ns,
228 struct pid *pid)
229{
230 struct ecryptfs_daemon *new_daemon;
231 struct ecryptfs_daemon *old_daemon;
232 int rc;
233
234 mutex_lock(&ecryptfs_daemon_hash_mux);
235 rc = ecryptfs_find_daemon_by_euid(&old_daemon, euid, user_ns);
236 if (rc != 0) {
237 printk(KERN_WARNING "Received request from user [%d] "
238 "to register daemon [0x%p]; unregistering daemon "
239 "[0x%p]\n", euid, pid, old_daemon->pid);
240 rc = ecryptfs_send_raw_message(ECRYPTFS_MSG_QUIT, old_daemon);
241 if (rc)
242 printk(KERN_WARNING "Failed to send QUIT "
243 "message to daemon [0x%p]; rc = [%d]\n",
244 old_daemon->pid, rc);
245 hlist_del(&old_daemon->euid_chain);
246 kfree(old_daemon);
247 }
248 rc = ecryptfs_spawn_daemon(&new_daemon, euid, user_ns, pid);
249 if (rc)
250 printk(KERN_ERR "%s: The gods are displeased with this attempt "
251 "to create a new daemon object for euid [%d]; pid "
252 "[0x%p]; rc = [%d]\n", __func__, euid, pid, rc);
253 mutex_unlock(&ecryptfs_daemon_hash_mux);
254 return rc;
255}
256
257/**
258 * ecryptfs_exorcise_daemon - Destroy the daemon struct 176 * ecryptfs_exorcise_daemon - Destroy the daemon struct
259 * 177 *
260 * Must be called ceremoniously while in possession of 178 * Must be called ceremoniously while in possession of
diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
index a67fea655f49..4ec8f61ccf5a 100644
--- a/fs/ecryptfs/miscdev.c
+++ b/fs/ecryptfs/miscdev.c
@@ -193,26 +193,20 @@ int ecryptfs_send_miscdev(char *data, size_t data_size,
193 int rc = 0; 193 int rc = 0;
194 194
195 mutex_lock(&msg_ctx->mux); 195 mutex_lock(&msg_ctx->mux);
196 if (data) { 196 msg_ctx->msg = kmalloc((sizeof(*msg_ctx->msg) + data_size),
197 msg_ctx->msg = kmalloc((sizeof(*msg_ctx->msg) + data_size), 197 GFP_KERNEL);
198 GFP_KERNEL); 198 if (!msg_ctx->msg) {
199 if (!msg_ctx->msg) { 199 rc = -ENOMEM;
200 rc = -ENOMEM; 200 printk(KERN_ERR "%s: Out of memory whilst attempting "
201 printk(KERN_ERR "%s: Out of memory whilst attempting " 201 "to kmalloc(%zd, GFP_KERNEL)\n", __func__,
202 "to kmalloc(%zd, GFP_KERNEL)\n", __func__, 202 (sizeof(*msg_ctx->msg) + data_size));
203 (sizeof(*msg_ctx->msg) + data_size)); 203 goto out_unlock;
204 goto out_unlock; 204 }
205 }
206 } else
207 msg_ctx->msg = NULL;
208 msg_ctx->msg->index = msg_ctx->index; 205 msg_ctx->msg->index = msg_ctx->index;
209 msg_ctx->msg->data_len = data_size; 206 msg_ctx->msg->data_len = data_size;
210 msg_ctx->type = msg_type; 207 msg_ctx->type = msg_type;
211 if (data) { 208 memcpy(msg_ctx->msg->data, data, data_size);
212 memcpy(msg_ctx->msg->data, data, data_size); 209 msg_ctx->msg_size = (sizeof(*msg_ctx->msg) + data_size);
213 msg_ctx->msg_size = (sizeof(*msg_ctx->msg) + data_size);
214 } else
215 msg_ctx->msg_size = 0;
216 mutex_lock(&daemon->mux); 210 mutex_lock(&daemon->mux);
217 list_add_tail(&msg_ctx->daemon_out_list, &daemon->msg_ctx_out_queue); 211 list_add_tail(&msg_ctx->daemon_out_list, &daemon->msg_ctx_out_queue);
218 daemon->num_queued_msg_ctx++; 212 daemon->num_queued_msg_ctx++;
@@ -418,18 +412,13 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf,
418 412
419 if (count == 0) 413 if (count == 0)
420 goto out; 414 goto out;
421 data = kmalloc(count, GFP_KERNEL); 415
422 if (!data) { 416 data = memdup_user(buf, count);
423 printk(KERN_ERR "%s: Out of memory whilst attempting to " 417 if (IS_ERR(data)) {
424 "kmalloc([%zd], GFP_KERNEL)\n", __func__, count); 418 printk(KERN_ERR "%s: memdup_user returned error [%ld]\n",
419 __func__, PTR_ERR(data));
425 goto out; 420 goto out;
426 } 421 }
427 rc = copy_from_user(data, buf, count);
428 if (rc) {
429 printk(KERN_ERR "%s: copy_from_user returned error [%d]\n",
430 __func__, rc);
431 goto out_free;
432 }
433 sz = count; 422 sz = count;
434 i = 0; 423 i = 0;
435 switch (data[i++]) { 424 switch (data[i++]) {
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c
index 46cec2b69796..5c6bab9786e3 100644
--- a/fs/ecryptfs/mmap.c
+++ b/fs/ecryptfs/mmap.c
@@ -449,6 +449,7 @@ int ecryptfs_write_inode_size_to_metadata(struct inode *ecryptfs_inode)
449 struct ecryptfs_crypt_stat *crypt_stat; 449 struct ecryptfs_crypt_stat *crypt_stat;
450 450
451 crypt_stat = &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat; 451 crypt_stat = &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat;
452 BUG_ON(!(crypt_stat->flags & ECRYPTFS_ENCRYPTED));
452 if (crypt_stat->flags & ECRYPTFS_METADATA_IN_XATTR) 453 if (crypt_stat->flags & ECRYPTFS_METADATA_IN_XATTR)
453 return ecryptfs_write_inode_size_to_xattr(ecryptfs_inode); 454 return ecryptfs_write_inode_size_to_xattr(ecryptfs_inode);
454 else 455 else
@@ -490,6 +491,16 @@ static int ecryptfs_write_end(struct file *file,
490 ecryptfs_printk(KERN_DEBUG, "Not a new file\n"); 491 ecryptfs_printk(KERN_DEBUG, "Not a new file\n");
491 ecryptfs_printk(KERN_DEBUG, "Calling fill_zeros_to_end_of_page" 492 ecryptfs_printk(KERN_DEBUG, "Calling fill_zeros_to_end_of_page"
492 "(page w/ index = [0x%.16x], to = [%d])\n", index, to); 493 "(page w/ index = [0x%.16x], to = [%d])\n", index, to);
494 if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) {
495 rc = ecryptfs_write_lower_page_segment(ecryptfs_inode, page, 0,
496 to);
497 if (!rc) {
498 rc = copied;
499 fsstack_copy_inode_size(ecryptfs_inode,
500 ecryptfs_inode_to_lower(ecryptfs_inode));
501 }
502 goto out;
503 }
493 /* Fills in zeros if 'to' goes beyond inode size */ 504 /* Fills in zeros if 'to' goes beyond inode size */
494 rc = fill_zeros_to_end_of_page(page, to); 505 rc = fill_zeros_to_end_of_page(page, to);
495 if (rc) { 506 if (rc) {
diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
index 75c2ea9fee35..a137c6ea2fee 100644
--- a/fs/ecryptfs/read_write.c
+++ b/fs/ecryptfs/read_write.c
@@ -117,13 +117,15 @@ int ecryptfs_write(struct file *ecryptfs_file, char *data, loff_t offset,
117 size_t size) 117 size_t size)
118{ 118{
119 struct page *ecryptfs_page; 119 struct page *ecryptfs_page;
120 struct ecryptfs_crypt_stat *crypt_stat;
121 struct inode *ecryptfs_inode = ecryptfs_file->f_dentry->d_inode;
120 char *ecryptfs_page_virt; 122 char *ecryptfs_page_virt;
121 loff_t ecryptfs_file_size = 123 loff_t ecryptfs_file_size = i_size_read(ecryptfs_inode);
122 i_size_read(ecryptfs_file->f_dentry->d_inode);
123 loff_t data_offset = 0; 124 loff_t data_offset = 0;
124 loff_t pos; 125 loff_t pos;
125 int rc = 0; 126 int rc = 0;
126 127
128 crypt_stat = &ecryptfs_inode_to_private(ecryptfs_inode)->crypt_stat;
127 /* 129 /*
128 * if we are writing beyond current size, then start pos 130 * if we are writing beyond current size, then start pos
129 * at the current size - we'll fill in zeros from there. 131 * at the current size - we'll fill in zeros from there.
@@ -184,7 +186,13 @@ int ecryptfs_write(struct file *ecryptfs_file, char *data, loff_t offset,
184 flush_dcache_page(ecryptfs_page); 186 flush_dcache_page(ecryptfs_page);
185 SetPageUptodate(ecryptfs_page); 187 SetPageUptodate(ecryptfs_page);
186 unlock_page(ecryptfs_page); 188 unlock_page(ecryptfs_page);
187 rc = ecryptfs_encrypt_page(ecryptfs_page); 189 if (crypt_stat->flags & ECRYPTFS_ENCRYPTED)
190 rc = ecryptfs_encrypt_page(ecryptfs_page);
191 else
192 rc = ecryptfs_write_lower_page_segment(ecryptfs_inode,
193 ecryptfs_page,
194 start_offset_in_page,
195 data_offset);
188 page_cache_release(ecryptfs_page); 196 page_cache_release(ecryptfs_page);
189 if (rc) { 197 if (rc) {
190 printk(KERN_ERR "%s: Error encrypting " 198 printk(KERN_ERR "%s: Error encrypting "
@@ -194,14 +202,16 @@ int ecryptfs_write(struct file *ecryptfs_file, char *data, loff_t offset,
194 pos += num_bytes; 202 pos += num_bytes;
195 } 203 }
196 if ((offset + size) > ecryptfs_file_size) { 204 if ((offset + size) > ecryptfs_file_size) {
197 i_size_write(ecryptfs_file->f_dentry->d_inode, (offset + size)); 205 i_size_write(ecryptfs_inode, (offset + size));
198 rc = ecryptfs_write_inode_size_to_metadata( 206 if (crypt_stat->flags & ECRYPTFS_ENCRYPTED) {
199 ecryptfs_file->f_dentry->d_inode); 207 rc = ecryptfs_write_inode_size_to_metadata(
200 if (rc) { 208 ecryptfs_inode);
201 printk(KERN_ERR "Problem with " 209 if (rc) {
202 "ecryptfs_write_inode_size_to_metadata; " 210 printk(KERN_ERR "Problem with "
203 "rc = [%d]\n", rc); 211 "ecryptfs_write_inode_size_to_metadata; "
204 goto out; 212 "rc = [%d]\n", rc);
213 goto out;
214 }
205 } 215 }
206 } 216 }
207out: 217out:
diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index c27ac2b358a1..fa4c7e7d15d9 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -170,7 +170,10 @@ static int ecryptfs_show_options(struct seq_file *m, struct vfsmount *mnt)
170 list_for_each_entry(walker, 170 list_for_each_entry(walker,
171 &mount_crypt_stat->global_auth_tok_list, 171 &mount_crypt_stat->global_auth_tok_list,
172 mount_crypt_stat_list) { 172 mount_crypt_stat_list) {
173 seq_printf(m, ",ecryptfs_sig=%s", walker->sig); 173 if (walker->flags & ECRYPTFS_AUTH_TOK_FNEK)
174 seq_printf(m, ",ecryptfs_fnek_sig=%s", walker->sig);
175 else
176 seq_printf(m, ",ecryptfs_sig=%s", walker->sig);
174 } 177 }
175 mutex_unlock(&mount_crypt_stat->global_auth_tok_list_mutex); 178 mutex_unlock(&mount_crypt_stat->global_auth_tok_list_mutex);
176 179
@@ -186,6 +189,8 @@ static int ecryptfs_show_options(struct seq_file *m, struct vfsmount *mnt)
186 seq_printf(m, ",ecryptfs_xattr_metadata"); 189 seq_printf(m, ",ecryptfs_xattr_metadata");
187 if (mount_crypt_stat->flags & ECRYPTFS_ENCRYPTED_VIEW_ENABLED) 190 if (mount_crypt_stat->flags & ECRYPTFS_ENCRYPTED_VIEW_ENABLED)
188 seq_printf(m, ",ecryptfs_encrypted_view"); 191 seq_printf(m, ",ecryptfs_encrypted_view");
192 if (mount_crypt_stat->flags & ECRYPTFS_UNLINK_SIGS)
193 seq_printf(m, ",ecryptfs_unlink_sigs");
189 194
190 return 0; 195 return 0;
191} 196}
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
index a89f370fadb5..5458e80fc558 100644
--- a/fs/eventpoll.c
+++ b/fs/eventpoll.c
@@ -1212,7 +1212,7 @@ SYSCALL_DEFINE1(epoll_create1, int, flags)
1212 1212
1213SYSCALL_DEFINE1(epoll_create, int, size) 1213SYSCALL_DEFINE1(epoll_create, int, size)
1214{ 1214{
1215 if (size < 0) 1215 if (size <= 0)
1216 return -EINVAL; 1216 return -EINVAL;
1217 1217
1218 return sys_epoll_create1(0); 1218 return sys_epoll_create1(0);
diff --git a/fs/exec.c b/fs/exec.c
index 052a961e41aa..895823d0149d 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -69,17 +69,18 @@ int suid_dumpable = 0;
69static LIST_HEAD(formats); 69static LIST_HEAD(formats);
70static DEFINE_RWLOCK(binfmt_lock); 70static DEFINE_RWLOCK(binfmt_lock);
71 71
72int register_binfmt(struct linux_binfmt * fmt) 72int __register_binfmt(struct linux_binfmt * fmt, int insert)
73{ 73{
74 if (!fmt) 74 if (!fmt)
75 return -EINVAL; 75 return -EINVAL;
76 write_lock(&binfmt_lock); 76 write_lock(&binfmt_lock);
77 list_add(&fmt->lh, &formats); 77 insert ? list_add(&fmt->lh, &formats) :
78 list_add_tail(&fmt->lh, &formats);
78 write_unlock(&binfmt_lock); 79 write_unlock(&binfmt_lock);
79 return 0; 80 return 0;
80} 81}
81 82
82EXPORT_SYMBOL(register_binfmt); 83EXPORT_SYMBOL(__register_binfmt);
83 84
84void unregister_binfmt(struct linux_binfmt * fmt) 85void unregister_binfmt(struct linux_binfmt * fmt)
85{ 86{
@@ -104,40 +105,28 @@ static inline void put_binfmt(struct linux_binfmt * fmt)
104SYSCALL_DEFINE1(uselib, const char __user *, library) 105SYSCALL_DEFINE1(uselib, const char __user *, library)
105{ 106{
106 struct file *file; 107 struct file *file;
107 struct nameidata nd;
108 char *tmp = getname(library); 108 char *tmp = getname(library);
109 int error = PTR_ERR(tmp); 109 int error = PTR_ERR(tmp);
110 110
111 if (!IS_ERR(tmp)) { 111 if (IS_ERR(tmp))
112 error = path_lookup_open(AT_FDCWD, tmp, 112 goto out;
113 LOOKUP_FOLLOW, &nd, 113
114 FMODE_READ|FMODE_EXEC); 114 file = do_filp_open(AT_FDCWD, tmp,
115 putname(tmp); 115 O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
116 } 116 MAY_READ | MAY_EXEC | MAY_OPEN);
117 if (error) 117 putname(tmp);
118 error = PTR_ERR(file);
119 if (IS_ERR(file))
118 goto out; 120 goto out;
119 121
120 error = -EINVAL; 122 error = -EINVAL;
121 if (!S_ISREG(nd.path.dentry->d_inode->i_mode)) 123 if (!S_ISREG(file->f_path.dentry->d_inode->i_mode))
122 goto exit; 124 goto exit;
123 125
124 error = -EACCES; 126 error = -EACCES;
125 if (nd.path.mnt->mnt_flags & MNT_NOEXEC) 127 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
126 goto exit; 128 goto exit;
127 129
128 error = inode_permission(nd.path.dentry->d_inode,
129 MAY_READ | MAY_EXEC | MAY_OPEN);
130 if (error)
131 goto exit;
132 error = ima_path_check(&nd.path, MAY_READ | MAY_EXEC | MAY_OPEN);
133 if (error)
134 goto exit;
135
136 file = nameidata_to_filp(&nd, O_RDONLY|O_LARGEFILE);
137 error = PTR_ERR(file);
138 if (IS_ERR(file))
139 goto out;
140
141 fsnotify_open(file->f_path.dentry); 130 fsnotify_open(file->f_path.dentry);
142 131
143 error = -ENOEXEC; 132 error = -ENOEXEC;
@@ -159,13 +148,10 @@ SYSCALL_DEFINE1(uselib, const char __user *, library)
159 } 148 }
160 read_unlock(&binfmt_lock); 149 read_unlock(&binfmt_lock);
161 } 150 }
151exit:
162 fput(file); 152 fput(file);
163out: 153out:
164 return error; 154 return error;
165exit:
166 release_open_intent(&nd);
167 path_put(&nd.path);
168 goto out;
169} 155}
170 156
171#ifdef CONFIG_MMU 157#ifdef CONFIG_MMU
@@ -660,47 +646,33 @@ EXPORT_SYMBOL(setup_arg_pages);
660 646
661struct file *open_exec(const char *name) 647struct file *open_exec(const char *name)
662{ 648{
663 struct nameidata nd;
664 struct file *file; 649 struct file *file;
665 int err; 650 int err;
666 651
667 err = path_lookup_open(AT_FDCWD, name, LOOKUP_FOLLOW, &nd, 652 file = do_filp_open(AT_FDCWD, name,
668 FMODE_READ|FMODE_EXEC); 653 O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
669 if (err) 654 MAY_EXEC | MAY_OPEN);
655 if (IS_ERR(file))
670 goto out; 656 goto out;
671 657
672 err = -EACCES; 658 err = -EACCES;
673 if (!S_ISREG(nd.path.dentry->d_inode->i_mode)) 659 if (!S_ISREG(file->f_path.dentry->d_inode->i_mode))
674 goto out_path_put; 660 goto exit;
675
676 if (nd.path.mnt->mnt_flags & MNT_NOEXEC)
677 goto out_path_put;
678
679 err = inode_permission(nd.path.dentry->d_inode, MAY_EXEC | MAY_OPEN);
680 if (err)
681 goto out_path_put;
682 err = ima_path_check(&nd.path, MAY_EXEC | MAY_OPEN);
683 if (err)
684 goto out_path_put;
685 661
686 file = nameidata_to_filp(&nd, O_RDONLY|O_LARGEFILE); 662 if (file->f_path.mnt->mnt_flags & MNT_NOEXEC)
687 if (IS_ERR(file)) 663 goto exit;
688 return file;
689 664
690 fsnotify_open(file->f_path.dentry); 665 fsnotify_open(file->f_path.dentry);
691 666
692 err = deny_write_access(file); 667 err = deny_write_access(file);
693 if (err) { 668 if (err)
694 fput(file); 669 goto exit;
695 goto out;
696 }
697 670
671out:
698 return file; 672 return file;
699 673
700 out_path_put: 674exit:
701 release_open_intent(&nd); 675 fput(file);
702 path_put(&nd.path);
703 out:
704 return ERR_PTR(err); 676 return ERR_PTR(err);
705} 677}
706EXPORT_SYMBOL(open_exec); 678EXPORT_SYMBOL(open_exec);
@@ -1060,7 +1032,6 @@ EXPORT_SYMBOL(install_exec_creds);
1060int check_unsafe_exec(struct linux_binprm *bprm) 1032int check_unsafe_exec(struct linux_binprm *bprm)
1061{ 1033{
1062 struct task_struct *p = current, *t; 1034 struct task_struct *p = current, *t;
1063 unsigned long flags;
1064 unsigned n_fs; 1035 unsigned n_fs;
1065 int res = 0; 1036 int res = 0;
1066 1037
@@ -1068,21 +1039,22 @@ int check_unsafe_exec(struct linux_binprm *bprm)
1068 1039
1069 n_fs = 1; 1040 n_fs = 1;
1070 write_lock(&p->fs->lock); 1041 write_lock(&p->fs->lock);
1071 lock_task_sighand(p, &flags); 1042 rcu_read_lock();
1072 for (t = next_thread(p); t != p; t = next_thread(t)) { 1043 for (t = next_thread(p); t != p; t = next_thread(t)) {
1073 if (t->fs == p->fs) 1044 if (t->fs == p->fs)
1074 n_fs++; 1045 n_fs++;
1075 } 1046 }
1047 rcu_read_unlock();
1076 1048
1077 if (p->fs->users > n_fs) { 1049 if (p->fs->users > n_fs) {
1078 bprm->unsafe |= LSM_UNSAFE_SHARE; 1050 bprm->unsafe |= LSM_UNSAFE_SHARE;
1079 } else { 1051 } else {
1080 if (p->fs->in_exec) 1052 res = -EAGAIN;
1081 res = -EAGAIN; 1053 if (!p->fs->in_exec) {
1082 p->fs->in_exec = 1; 1054 p->fs->in_exec = 1;
1055 res = 1;
1056 }
1083 } 1057 }
1084
1085 unlock_task_sighand(p, &flags);
1086 write_unlock(&p->fs->lock); 1058 write_unlock(&p->fs->lock);
1087 1059
1088 return res; 1060 return res;
@@ -1284,6 +1256,7 @@ int do_execve(char * filename,
1284 struct linux_binprm *bprm; 1256 struct linux_binprm *bprm;
1285 struct file *file; 1257 struct file *file;
1286 struct files_struct *displaced; 1258 struct files_struct *displaced;
1259 bool clear_in_exec;
1287 int retval; 1260 int retval;
1288 1261
1289 retval = unshare_files(&displaced); 1262 retval = unshare_files(&displaced);
@@ -1306,8 +1279,9 @@ int do_execve(char * filename,
1306 goto out_unlock; 1279 goto out_unlock;
1307 1280
1308 retval = check_unsafe_exec(bprm); 1281 retval = check_unsafe_exec(bprm);
1309 if (retval) 1282 if (retval < 0)
1310 goto out_unlock; 1283 goto out_unlock;
1284 clear_in_exec = retval;
1311 1285
1312 file = open_exec(filename); 1286 file = open_exec(filename);
1313 retval = PTR_ERR(file); 1287 retval = PTR_ERR(file);
@@ -1355,9 +1329,7 @@ int do_execve(char * filename,
1355 goto out; 1329 goto out;
1356 1330
1357 /* execve succeeded */ 1331 /* execve succeeded */
1358 write_lock(&current->fs->lock);
1359 current->fs->in_exec = 0; 1332 current->fs->in_exec = 0;
1360 write_unlock(&current->fs->lock);
1361 current->in_execve = 0; 1333 current->in_execve = 0;
1362 mutex_unlock(&current->cred_exec_mutex); 1334 mutex_unlock(&current->cred_exec_mutex);
1363 acct_update_integrals(current); 1335 acct_update_integrals(current);
@@ -1377,9 +1349,8 @@ out_file:
1377 } 1349 }
1378 1350
1379out_unmark: 1351out_unmark:
1380 write_lock(&current->fs->lock); 1352 if (clear_in_exec)
1381 current->fs->in_exec = 0; 1353 current->fs->in_exec = 0;
1382 write_unlock(&current->fs->lock);
1383 1354
1384out_unlock: 1355out_unlock:
1385 current->in_execve = 0; 1356 current->in_execve = 0;
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index b43b95563663..acf678831103 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -590,9 +590,8 @@ static int ext2_get_blocks(struct inode *inode,
590 590
591 if (depth == 0) 591 if (depth == 0)
592 return (err); 592 return (err);
593reread:
594 partial = ext2_get_branch(inode, depth, offsets, chain, &err);
595 593
594 partial = ext2_get_branch(inode, depth, offsets, chain, &err);
596 /* Simplest case - block found, no allocation needed */ 595 /* Simplest case - block found, no allocation needed */
597 if (!partial) { 596 if (!partial) {
598 first_block = le32_to_cpu(chain[depth - 1].key); 597 first_block = le32_to_cpu(chain[depth - 1].key);
@@ -602,15 +601,16 @@ reread:
602 while (count < maxblocks && count <= blocks_to_boundary) { 601 while (count < maxblocks && count <= blocks_to_boundary) {
603 ext2_fsblk_t blk; 602 ext2_fsblk_t blk;
604 603
605 if (!verify_chain(chain, partial)) { 604 if (!verify_chain(chain, chain + depth - 1)) {
606 /* 605 /*
607 * Indirect block might be removed by 606 * Indirect block might be removed by
608 * truncate while we were reading it. 607 * truncate while we were reading it.
609 * Handling of that case: forget what we've 608 * Handling of that case: forget what we've
610 * got now, go to reread. 609 * got now, go to reread.
611 */ 610 */
611 err = -EAGAIN;
612 count = 0; 612 count = 0;
613 goto changed; 613 break;
614 } 614 }
615 blk = le32_to_cpu(*(chain[depth-1].p + count)); 615 blk = le32_to_cpu(*(chain[depth-1].p + count));
616 if (blk == first_block + count) 616 if (blk == first_block + count)
@@ -618,7 +618,8 @@ reread:
618 else 618 else
619 break; 619 break;
620 } 620 }
621 goto got_it; 621 if (err != -EAGAIN)
622 goto got_it;
622 } 623 }
623 624
624 /* Next simple case - plain lookup or failed read of indirect block */ 625 /* Next simple case - plain lookup or failed read of indirect block */
@@ -626,6 +627,33 @@ reread:
626 goto cleanup; 627 goto cleanup;
627 628
628 mutex_lock(&ei->truncate_mutex); 629 mutex_lock(&ei->truncate_mutex);
630 /*
631 * If the indirect block is missing while we are reading
632 * the chain(ext3_get_branch() returns -EAGAIN err), or
633 * if the chain has been changed after we grab the semaphore,
634 * (either because another process truncated this branch, or
635 * another get_block allocated this branch) re-grab the chain to see if
636 * the request block has been allocated or not.
637 *
638 * Since we already block the truncate/other get_block
639 * at this point, we will have the current copy of the chain when we
640 * splice the branch into the tree.
641 */
642 if (err == -EAGAIN || !verify_chain(chain, partial)) {
643 while (partial > chain) {
644 brelse(partial->bh);
645 partial--;
646 }
647 partial = ext2_get_branch(inode, depth, offsets, chain, &err);
648 if (!partial) {
649 count++;
650 mutex_unlock(&ei->truncate_mutex);
651 if (err)
652 goto cleanup;
653 clear_buffer_new(bh_result);
654 goto got_it;
655 }
656 }
629 657
630 /* 658 /*
631 * Okay, we need to do block allocation. Lazily initialize the block 659 * Okay, we need to do block allocation. Lazily initialize the block
@@ -683,12 +711,6 @@ cleanup:
683 partial--; 711 partial--;
684 } 712 }
685 return err; 713 return err;
686changed:
687 while (partial > chain) {
688 brelse(partial->bh);
689 partial--;
690 }
691 goto reread;
692} 714}
693 715
694int ext2_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create) 716int ext2_get_block(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create)
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index f983225266dc..5c4afe652245 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1395,8 +1395,10 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
1395 blk++; 1395 blk++;
1396 } 1396 }
1397out: 1397out:
1398 if (len == towrite) 1398 if (len == towrite) {
1399 mutex_unlock(&inode->i_mutex);
1399 return err; 1400 return err;
1401 }
1400 if (inode->i_size < off+len-towrite) 1402 if (inode->i_size < off+len-towrite)
1401 i_size_write(inode, off+len-towrite); 1403 i_size_write(inode, off+len-towrite);
1402 inode->i_version++; 1404 inode->i_version++;
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 6132353dcf62..e3a55eb8b26a 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -326,11 +326,14 @@ ext4_ext_max_entries(struct inode *inode, int depth)
326 326
327static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext) 327static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext)
328{ 328{
329 ext4_fsblk_t block = ext_pblock(ext); 329 ext4_fsblk_t block = ext_pblock(ext), valid_block;
330 int len = ext4_ext_get_actual_len(ext); 330 int len = ext4_ext_get_actual_len(ext);
331 struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es; 331 struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es;
332 if (unlikely(block < le32_to_cpu(es->s_first_data_block) || 332
333 ((block + len) > ext4_blocks_count(es)))) 333 valid_block = le32_to_cpu(es->s_first_data_block) +
334 EXT4_SB(inode->i_sb)->s_gdb_count;
335 if (unlikely(block <= valid_block ||
336 ((block + len) > ext4_blocks_count(es))))
334 return 0; 337 return 0;
335 else 338 else
336 return 1; 339 return 1;
@@ -339,10 +342,13 @@ static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext)
339static int ext4_valid_extent_idx(struct inode *inode, 342static int ext4_valid_extent_idx(struct inode *inode,
340 struct ext4_extent_idx *ext_idx) 343 struct ext4_extent_idx *ext_idx)
341{ 344{
342 ext4_fsblk_t block = idx_pblock(ext_idx); 345 ext4_fsblk_t block = idx_pblock(ext_idx), valid_block;
343 struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es; 346 struct ext4_super_block *es = EXT4_SB(inode->i_sb)->s_es;
344 if (unlikely(block < le32_to_cpu(es->s_first_data_block) || 347
345 (block >= ext4_blocks_count(es)))) 348 valid_block = le32_to_cpu(es->s_first_data_block) +
349 EXT4_SB(inode->i_sb)->s_gdb_count;
350 if (unlikely(block <= valid_block ||
351 (block >= ext4_blocks_count(es))))
346 return 0; 352 return 0;
347 else 353 else
348 return 1; 354 return 1;
@@ -1835,11 +1841,13 @@ ext4_ext_put_in_cache(struct inode *inode, ext4_lblk_t block,
1835{ 1841{
1836 struct ext4_ext_cache *cex; 1842 struct ext4_ext_cache *cex;
1837 BUG_ON(len == 0); 1843 BUG_ON(len == 0);
1844 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1838 cex = &EXT4_I(inode)->i_cached_extent; 1845 cex = &EXT4_I(inode)->i_cached_extent;
1839 cex->ec_type = type; 1846 cex->ec_type = type;
1840 cex->ec_block = block; 1847 cex->ec_block = block;
1841 cex->ec_len = len; 1848 cex->ec_len = len;
1842 cex->ec_start = start; 1849 cex->ec_start = start;
1850 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1843} 1851}
1844 1852
1845/* 1853/*
@@ -1896,12 +1904,17 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
1896 struct ext4_extent *ex) 1904 struct ext4_extent *ex)
1897{ 1905{
1898 struct ext4_ext_cache *cex; 1906 struct ext4_ext_cache *cex;
1907 int ret = EXT4_EXT_CACHE_NO;
1899 1908
1909 /*
1910 * We borrow i_block_reservation_lock to protect i_cached_extent
1911 */
1912 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1900 cex = &EXT4_I(inode)->i_cached_extent; 1913 cex = &EXT4_I(inode)->i_cached_extent;
1901 1914
1902 /* has cache valid data? */ 1915 /* has cache valid data? */
1903 if (cex->ec_type == EXT4_EXT_CACHE_NO) 1916 if (cex->ec_type == EXT4_EXT_CACHE_NO)
1904 return EXT4_EXT_CACHE_NO; 1917 goto errout;
1905 1918
1906 BUG_ON(cex->ec_type != EXT4_EXT_CACHE_GAP && 1919 BUG_ON(cex->ec_type != EXT4_EXT_CACHE_GAP &&
1907 cex->ec_type != EXT4_EXT_CACHE_EXTENT); 1920 cex->ec_type != EXT4_EXT_CACHE_EXTENT);
@@ -1912,11 +1925,11 @@ ext4_ext_in_cache(struct inode *inode, ext4_lblk_t block,
1912 ext_debug("%u cached by %u:%u:%llu\n", 1925 ext_debug("%u cached by %u:%u:%llu\n",
1913 block, 1926 block,
1914 cex->ec_block, cex->ec_len, cex->ec_start); 1927 cex->ec_block, cex->ec_len, cex->ec_start);
1915 return cex->ec_type; 1928 ret = cex->ec_type;
1916 } 1929 }
1917 1930errout:
1918 /* not in cache */ 1931 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1919 return EXT4_EXT_CACHE_NO; 1932 return ret;
1920} 1933}
1921 1934
1922/* 1935/*
@@ -2416,8 +2429,6 @@ static int ext4_ext_zeroout(struct inode *inode, struct ext4_extent *ex)
2416 len = ee_len; 2429 len = ee_len;
2417 2430
2418 bio = bio_alloc(GFP_NOIO, len); 2431 bio = bio_alloc(GFP_NOIO, len);
2419 if (!bio)
2420 return -ENOMEM;
2421 bio->bi_sector = ee_pblock; 2432 bio->bi_sector = ee_pblock;
2422 bio->bi_bdev = inode->i_sb->s_bdev; 2433 bio->bi_bdev = inode->i_sb->s_bdev;
2423 2434
@@ -2871,6 +2882,8 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
2871 if (allocated > max_blocks) 2882 if (allocated > max_blocks)
2872 allocated = max_blocks; 2883 allocated = max_blocks;
2873 set_buffer_unwritten(bh_result); 2884 set_buffer_unwritten(bh_result);
2885 bh_result->b_bdev = inode->i_sb->s_bdev;
2886 bh_result->b_blocknr = newblock;
2874 goto out2; 2887 goto out2;
2875 } 2888 }
2876 2889
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 47b84e8df568..f18e0a08a6b5 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -585,6 +585,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent,
585fallback: 585fallback:
586 ngroups = sbi->s_groups_count; 586 ngroups = sbi->s_groups_count;
587 avefreei = freei / ngroups; 587 avefreei = freei / ngroups;
588fallback_retry:
588 parent_group = EXT4_I(parent)->i_block_group; 589 parent_group = EXT4_I(parent)->i_block_group;
589 for (i = 0; i < ngroups; i++) { 590 for (i = 0; i < ngroups; i++) {
590 grp = (parent_group + i) % ngroups; 591 grp = (parent_group + i) % ngroups;
@@ -602,7 +603,7 @@ fallback:
602 * filesystems the above test can fail to find any blockgroups 603 * filesystems the above test can fail to find any blockgroups
603 */ 604 */
604 avefreei = 0; 605 avefreei = 0;
605 goto fallback; 606 goto fallback_retry;
606 } 607 }
607 608
608 return -1; 609 return -1;
@@ -831,11 +832,12 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode *dir, int mode)
831 ret2 = find_group_flex(sb, dir, &group); 832 ret2 = find_group_flex(sb, dir, &group);
832 if (ret2 == -1) { 833 if (ret2 == -1) {
833 ret2 = find_group_other(sb, dir, &group, mode); 834 ret2 = find_group_other(sb, dir, &group, mode);
834 if (ret2 == 0 && once) 835 if (ret2 == 0 && once) {
835 once = 0; 836 once = 0;
836 printk(KERN_NOTICE "ext4: find_group_flex " 837 printk(KERN_NOTICE "ext4: find_group_flex "
837 "failed, fallback succeeded dir %lu\n", 838 "failed, fallback succeeded dir %lu\n",
838 dir->i_ino); 839 dir->i_ino);
840 }
839 } 841 }
840 goto got_group; 842 goto got_group;
841 } 843 }
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index c6bd6ced3bb7..2a9ffd528dd1 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1149,6 +1149,7 @@ int ext4_get_blocks_wrap(handle_t *handle, struct inode *inode, sector_t block,
1149 int retval; 1149 int retval;
1150 1150
1151 clear_buffer_mapped(bh); 1151 clear_buffer_mapped(bh);
1152 clear_buffer_unwritten(bh);
1152 1153
1153 /* 1154 /*
1154 * Try to see if we can get the block without requesting 1155 * Try to see if we can get the block without requesting
@@ -1179,6 +1180,18 @@ int ext4_get_blocks_wrap(handle_t *handle, struct inode *inode, sector_t block,
1179 return retval; 1180 return retval;
1180 1181
1181 /* 1182 /*
1183 * When we call get_blocks without the create flag, the
1184 * BH_Unwritten flag could have gotten set if the blocks
1185 * requested were part of a uninitialized extent. We need to
1186 * clear this flag now that we are committed to convert all or
1187 * part of the uninitialized extent to be an initialized
1188 * extent. This is because we need to avoid the combination
1189 * of BH_Unwritten and BH_Mapped flags being simultaneously
1190 * set on the buffer_head.
1191 */
1192 clear_buffer_unwritten(bh);
1193
1194 /*
1182 * New blocks allocate and/or writing to uninitialized extent 1195 * New blocks allocate and/or writing to uninitialized extent
1183 * will possibly result in updating i_data, so we take 1196 * will possibly result in updating i_data, so we take
1184 * the write lock of i_data_sem, and call get_blocks() 1197 * the write lock of i_data_sem, and call get_blocks()
@@ -2297,6 +2310,10 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2297 struct buffer_head *bh_result, int create) 2310 struct buffer_head *bh_result, int create)
2298{ 2311{
2299 int ret = 0; 2312 int ret = 0;
2313 sector_t invalid_block = ~((sector_t) 0xffff);
2314
2315 if (invalid_block < ext4_blocks_count(EXT4_SB(inode->i_sb)->s_es))
2316 invalid_block = ~0;
2300 2317
2301 BUG_ON(create == 0); 2318 BUG_ON(create == 0);
2302 BUG_ON(bh_result->b_size != inode->i_sb->s_blocksize); 2319 BUG_ON(bh_result->b_size != inode->i_sb->s_blocksize);
@@ -2318,11 +2335,18 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2318 /* not enough space to reserve */ 2335 /* not enough space to reserve */
2319 return ret; 2336 return ret;
2320 2337
2321 map_bh(bh_result, inode->i_sb, 0); 2338 map_bh(bh_result, inode->i_sb, invalid_block);
2322 set_buffer_new(bh_result); 2339 set_buffer_new(bh_result);
2323 set_buffer_delay(bh_result); 2340 set_buffer_delay(bh_result);
2324 } else if (ret > 0) { 2341 } else if (ret > 0) {
2325 bh_result->b_size = (ret << inode->i_blkbits); 2342 bh_result->b_size = (ret << inode->i_blkbits);
2343 /*
2344 * With sub-block writes into unwritten extents
2345 * we also need to mark the buffer as new so that
2346 * the unwritten parts of the buffer gets correctly zeroed.
2347 */
2348 if (buffer_unwritten(bh_result))
2349 set_buffer_new(bh_result);
2326 ret = 0; 2350 ret = 0;
2327 } 2351 }
2328 2352
@@ -4357,11 +4381,9 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
4357 ei->i_flags = le32_to_cpu(raw_inode->i_flags); 4381 ei->i_flags = le32_to_cpu(raw_inode->i_flags);
4358 inode->i_blocks = ext4_inode_blocks(raw_inode, ei); 4382 inode->i_blocks = ext4_inode_blocks(raw_inode, ei);
4359 ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl_lo); 4383 ei->i_file_acl = le32_to_cpu(raw_inode->i_file_acl_lo);
4360 if (EXT4_SB(inode->i_sb)->s_es->s_creator_os != 4384 if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_64BIT))
4361 cpu_to_le32(EXT4_OS_HURD)) {
4362 ei->i_file_acl |= 4385 ei->i_file_acl |=
4363 ((__u64)le16_to_cpu(raw_inode->i_file_acl_high)) << 32; 4386 ((__u64)le16_to_cpu(raw_inode->i_file_acl_high)) << 32;
4364 }
4365 inode->i_size = ext4_isize(raw_inode); 4387 inode->i_size = ext4_isize(raw_inode);
4366 ei->i_disksize = inode->i_size; 4388 ei->i_disksize = inode->i_size;
4367 inode->i_generation = le32_to_cpu(raw_inode->i_generation); 4389 inode->i_generation = le32_to_cpu(raw_inode->i_generation);
@@ -4409,9 +4431,23 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
4409 (__u64)(le32_to_cpu(raw_inode->i_version_hi)) << 32; 4431 (__u64)(le32_to_cpu(raw_inode->i_version_hi)) << 32;
4410 } 4432 }
4411 4433
4412 if (ei->i_flags & EXT4_EXTENTS_FL) { 4434 ret = 0;
4413 /* Validate extent which is part of inode */ 4435 if (ei->i_file_acl &&
4414 ret = ext4_ext_check_inode(inode); 4436 ((ei->i_file_acl <
4437 (le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block) +
4438 EXT4_SB(sb)->s_gdb_count)) ||
4439 (ei->i_file_acl >= ext4_blocks_count(EXT4_SB(sb)->s_es)))) {
4440 ext4_error(sb, __func__,
4441 "bad extended attribute block %llu in inode #%lu",
4442 ei->i_file_acl, inode->i_ino);
4443 ret = -EIO;
4444 goto bad_inode;
4445 } else if (ei->i_flags & EXT4_EXTENTS_FL) {
4446 if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
4447 (S_ISLNK(inode->i_mode) &&
4448 !ext4_inode_is_fast_symlink(inode)))
4449 /* Validate extent which is part of inode */
4450 ret = ext4_ext_check_inode(inode);
4415 } else if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || 4451 } else if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
4416 (S_ISLNK(inode->i_mode) && 4452 (S_ISLNK(inode->i_mode) &&
4417 !ext4_inode_is_fast_symlink(inode))) { 4453 !ext4_inode_is_fast_symlink(inode))) {
diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig
index d0a69ff25375..182f9ffe2b51 100644
--- a/fs/fat/Kconfig
+++ b/fs/fat/Kconfig
@@ -95,3 +95,6 @@ config FAT_DEFAULT_IOCHARSET
95 Note that "utf8" is not recommended for FAT filesystems. 95 Note that "utf8" is not recommended for FAT filesystems.
96 If unsure, you shouldn't set "utf8" here. 96 If unsure, you shouldn't set "utf8" here.
97 See <file:Documentation/filesystems/vfat.txt> for more information. 97 See <file:Documentation/filesystems/vfat.txt> for more information.
98
99 Enable any character sets you need in File Systems/Native Language
100 Support.
diff --git a/fs/fcntl.c b/fs/fcntl.c
index cc8e4de2fee5..1ad703150dee 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -117,11 +117,13 @@ SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd)
117{ 117{
118 if (unlikely(newfd == oldfd)) { /* corner case */ 118 if (unlikely(newfd == oldfd)) { /* corner case */
119 struct files_struct *files = current->files; 119 struct files_struct *files = current->files;
120 int retval = oldfd;
121
120 rcu_read_lock(); 122 rcu_read_lock();
121 if (!fcheck_files(files, oldfd)) 123 if (!fcheck_files(files, oldfd))
122 oldfd = -EBADF; 124 retval = -EBADF;
123 rcu_read_unlock(); 125 rcu_read_unlock();
124 return oldfd; 126 return retval;
125 } 127 }
126 return sys_dup3(oldfd, newfd, 0); 128 return sys_dup3(oldfd, newfd, 0);
127} 129}
diff --git a/fs/filesystems.c b/fs/filesystems.c
index 1aa70260e6d1..a24c58e181db 100644
--- a/fs/filesystems.c
+++ b/fs/filesystems.c
@@ -199,7 +199,7 @@ SYSCALL_DEFINE3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2)
199 return retval; 199 return retval;
200} 200}
201 201
202int get_filesystem_list(char * buf) 202int __init get_filesystem_list(char *buf)
203{ 203{
204 int len = 0; 204 int len = 0;
205 struct file_system_type * tmp; 205 struct file_system_type * tmp;
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 2b25133524a3..06f30e965676 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -938,9 +938,9 @@ static void fuse_release_user_pages(struct fuse_req *req, int write)
938} 938}
939 939
940static int fuse_get_user_pages(struct fuse_req *req, const char __user *buf, 940static int fuse_get_user_pages(struct fuse_req *req, const char __user *buf,
941 unsigned *nbytesp, int write) 941 size_t *nbytesp, int write)
942{ 942{
943 unsigned nbytes = *nbytesp; 943 size_t nbytes = *nbytesp;
944 unsigned long user_addr = (unsigned long) buf; 944 unsigned long user_addr = (unsigned long) buf;
945 unsigned offset = user_addr & ~PAGE_MASK; 945 unsigned offset = user_addr & ~PAGE_MASK;
946 int npages; 946 int npages;
@@ -955,7 +955,7 @@ static int fuse_get_user_pages(struct fuse_req *req, const char __user *buf,
955 return 0; 955 return 0;
956 } 956 }
957 957
958 nbytes = min(nbytes, (unsigned) FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT); 958 nbytes = min_t(size_t, nbytes, FUSE_MAX_PAGES_PER_REQ << PAGE_SHIFT);
959 npages = (nbytes + offset + PAGE_SIZE - 1) >> PAGE_SHIFT; 959 npages = (nbytes + offset + PAGE_SIZE - 1) >> PAGE_SHIFT;
960 npages = clamp(npages, 1, FUSE_MAX_PAGES_PER_REQ); 960 npages = clamp(npages, 1, FUSE_MAX_PAGES_PER_REQ);
961 down_read(&current->mm->mmap_sem); 961 down_read(&current->mm->mmap_sem);
@@ -1298,6 +1298,8 @@ static int fuse_direct_mmap(struct file *file, struct vm_area_struct *vma)
1298 if (vma->vm_flags & VM_MAYSHARE) 1298 if (vma->vm_flags & VM_MAYSHARE)
1299 return -ENODEV; 1299 return -ENODEV;
1300 1300
1301 invalidate_inode_pages2(file->f_mapping);
1302
1301 return generic_file_mmap(file, vma); 1303 return generic_file_mmap(file, vma);
1302} 1304}
1303 1305
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 459b73dd45e1..91f7c85f1ffd 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -19,6 +19,7 @@
19#include <linux/random.h> 19#include <linux/random.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/exportfs.h> 21#include <linux/exportfs.h>
22#include <linux/smp_lock.h>
22 23
23MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>"); 24MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>");
24MODULE_DESCRIPTION("Filesystem in Userspace"); 25MODULE_DESCRIPTION("Filesystem in Userspace");
@@ -259,7 +260,9 @@ struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
259 260
260static void fuse_umount_begin(struct super_block *sb) 261static void fuse_umount_begin(struct super_block *sb)
261{ 262{
263 lock_kernel();
262 fuse_abort_conn(get_fuse_conn_super(sb)); 264 fuse_abort_conn(get_fuse_conn_super(sb));
265 unlock_kernel();
263} 266}
264 267
265static void fuse_send_destroy(struct fuse_conn *fc) 268static void fuse_send_destroy(struct fuse_conn *fc)
@@ -908,6 +911,7 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
908 err_put_root: 911 err_put_root:
909 dput(root_dentry); 912 dput(root_dentry);
910 err_put_conn: 913 err_put_conn:
914 bdi_destroy(&fc->bdi);
911 fuse_conn_put(fc); 915 fuse_conn_put(fc);
912 err_fput: 916 err_fput:
913 fput(file); 917 fput(file);
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 3984e47d1d33..ff4981090489 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -597,7 +597,6 @@ __acquires(&gl->gl_spin)
597 597
598 GLOCK_BUG_ON(gl, test_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags)); 598 GLOCK_BUG_ON(gl, test_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags));
599 599
600 down_read(&gfs2_umount_flush_sem);
601 if (test_bit(GLF_DEMOTE, &gl->gl_flags) && 600 if (test_bit(GLF_DEMOTE, &gl->gl_flags) &&
602 gl->gl_demote_state != gl->gl_state) { 601 gl->gl_demote_state != gl->gl_state) {
603 if (find_first_holder(gl)) 602 if (find_first_holder(gl))
@@ -614,15 +613,14 @@ __acquires(&gl->gl_spin)
614 if (ret == 0) 613 if (ret == 0)
615 goto out_unlock; 614 goto out_unlock;
616 if (ret == 2) 615 if (ret == 2)
617 goto out_sem; 616 goto out;
618 gh = find_first_waiter(gl); 617 gh = find_first_waiter(gl);
619 gl->gl_target = gh->gh_state; 618 gl->gl_target = gh->gh_state;
620 if (!(gh->gh_flags & (LM_FLAG_TRY | LM_FLAG_TRY_1CB))) 619 if (!(gh->gh_flags & (LM_FLAG_TRY | LM_FLAG_TRY_1CB)))
621 do_error(gl, 0); /* Fail queued try locks */ 620 do_error(gl, 0); /* Fail queued try locks */
622 } 621 }
623 do_xmote(gl, gh, gl->gl_target); 622 do_xmote(gl, gh, gl->gl_target);
624out_sem: 623out:
625 up_read(&gfs2_umount_flush_sem);
626 return; 624 return;
627 625
628out_sched: 626out_sched:
@@ -631,7 +629,7 @@ out_sched:
631 gfs2_glock_put(gl); 629 gfs2_glock_put(gl);
632out_unlock: 630out_unlock:
633 clear_bit(GLF_LOCK, &gl->gl_flags); 631 clear_bit(GLF_LOCK, &gl->gl_flags);
634 goto out_sem; 632 goto out;
635} 633}
636 634
637static void glock_work_func(struct work_struct *work) 635static void glock_work_func(struct work_struct *work)
@@ -641,6 +639,7 @@ static void glock_work_func(struct work_struct *work)
641 639
642 if (test_and_clear_bit(GLF_REPLY_PENDING, &gl->gl_flags)) 640 if (test_and_clear_bit(GLF_REPLY_PENDING, &gl->gl_flags))
643 finish_xmote(gl, gl->gl_reply); 641 finish_xmote(gl, gl->gl_reply);
642 down_read(&gfs2_umount_flush_sem);
644 spin_lock(&gl->gl_spin); 643 spin_lock(&gl->gl_spin);
645 if (test_and_clear_bit(GLF_PENDING_DEMOTE, &gl->gl_flags) && 644 if (test_and_clear_bit(GLF_PENDING_DEMOTE, &gl->gl_flags) &&
646 gl->gl_state != LM_ST_UNLOCKED && 645 gl->gl_state != LM_ST_UNLOCKED &&
@@ -653,6 +652,7 @@ static void glock_work_func(struct work_struct *work)
653 } 652 }
654 run_queue(gl, 0); 653 run_queue(gl, 0);
655 spin_unlock(&gl->gl_spin); 654 spin_unlock(&gl->gl_spin);
655 up_read(&gfs2_umount_flush_sem);
656 if (!delay || 656 if (!delay ||
657 queue_delayed_work(glock_workqueue, &gl->gl_work, delay) == 0) 657 queue_delayed_work(glock_workqueue, &gl->gl_work, delay) == 0)
658 gfs2_glock_put(gl); 658 gfs2_glock_put(gl);
@@ -1304,6 +1304,7 @@ static int gfs2_shrink_glock_memory(int nr, gfp_t gfp_mask)
1304 nr--; 1304 nr--;
1305 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0) 1305 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
1306 gfs2_glock_put(gl); 1306 gfs2_glock_put(gl);
1307 got_ref = 0;
1307 } 1308 }
1308 spin_lock(&lru_lock); 1309 spin_lock(&lru_lock);
1309 if (may_demote) 1310 if (may_demote)
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
index bf23a62aa925..70f87f43afa2 100644
--- a/fs/gfs2/glops.c
+++ b/fs/gfs2/glops.c
@@ -156,6 +156,12 @@ static void inode_go_sync(struct gfs2_glock *gl)
156 error = filemap_fdatawait(metamapping); 156 error = filemap_fdatawait(metamapping);
157 mapping_set_error(metamapping, error); 157 mapping_set_error(metamapping, error);
158 gfs2_ail_empty_gl(gl); 158 gfs2_ail_empty_gl(gl);
159 /*
160 * Writeback of the data mapping may cause the dirty flag to be set
161 * so we have to clear it again here.
162 */
163 smp_mb__before_clear_bit();
164 clear_bit(GLF_DIRTY, &gl->gl_flags);
159} 165}
160 166
161/** 167/**
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 7b277d449155..5a31d426116f 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -137,15 +137,15 @@ void gfs2_set_iop(struct inode *inode)
137 if (S_ISREG(mode)) { 137 if (S_ISREG(mode)) {
138 inode->i_op = &gfs2_file_iops; 138 inode->i_op = &gfs2_file_iops;
139 if (gfs2_localflocks(sdp)) 139 if (gfs2_localflocks(sdp))
140 inode->i_fop = gfs2_file_fops_nolock; 140 inode->i_fop = &gfs2_file_fops_nolock;
141 else 141 else
142 inode->i_fop = gfs2_file_fops; 142 inode->i_fop = &gfs2_file_fops;
143 } else if (S_ISDIR(mode)) { 143 } else if (S_ISDIR(mode)) {
144 inode->i_op = &gfs2_dir_iops; 144 inode->i_op = &gfs2_dir_iops;
145 if (gfs2_localflocks(sdp)) 145 if (gfs2_localflocks(sdp))
146 inode->i_fop = gfs2_dir_fops_nolock; 146 inode->i_fop = &gfs2_dir_fops_nolock;
147 else 147 else
148 inode->i_fop = gfs2_dir_fops; 148 inode->i_fop = &gfs2_dir_fops;
149 } else if (S_ISLNK(mode)) { 149 } else if (S_ISLNK(mode)) {
150 inode->i_op = &gfs2_symlink_iops; 150 inode->i_op = &gfs2_symlink_iops;
151 } else { 151 } else {
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h
index dca4fee3078b..c30be2b66580 100644
--- a/fs/gfs2/inode.h
+++ b/fs/gfs2/inode.h
@@ -101,21 +101,23 @@ void gfs2_dinode_print(const struct gfs2_inode *ip);
101extern const struct inode_operations gfs2_file_iops; 101extern const struct inode_operations gfs2_file_iops;
102extern const struct inode_operations gfs2_dir_iops; 102extern const struct inode_operations gfs2_dir_iops;
103extern const struct inode_operations gfs2_symlink_iops; 103extern const struct inode_operations gfs2_symlink_iops;
104extern const struct file_operations *gfs2_file_fops_nolock; 104extern const struct file_operations gfs2_file_fops_nolock;
105extern const struct file_operations *gfs2_dir_fops_nolock; 105extern const struct file_operations gfs2_dir_fops_nolock;
106 106
107extern void gfs2_set_inode_flags(struct inode *inode); 107extern void gfs2_set_inode_flags(struct inode *inode);
108 108
109#ifdef CONFIG_GFS2_FS_LOCKING_DLM 109#ifdef CONFIG_GFS2_FS_LOCKING_DLM
110extern const struct file_operations *gfs2_file_fops; 110extern const struct file_operations gfs2_file_fops;
111extern const struct file_operations *gfs2_dir_fops; 111extern const struct file_operations gfs2_dir_fops;
112
112static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) 113static inline int gfs2_localflocks(const struct gfs2_sbd *sdp)
113{ 114{
114 return sdp->sd_args.ar_localflocks; 115 return sdp->sd_args.ar_localflocks;
115} 116}
116#else /* Single node only */ 117#else /* Single node only */
117#define gfs2_file_fops NULL 118#define gfs2_file_fops gfs2_file_fops_nolock
118#define gfs2_dir_fops NULL 119#define gfs2_dir_fops gfs2_dir_fops_nolock
120
119static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) 121static inline int gfs2_localflocks(const struct gfs2_sbd *sdp)
120{ 122{
121 return 1; 123 return 1;
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c
index 70b9b8548945..5d82e91887e3 100644
--- a/fs/gfs2/ops_file.c
+++ b/fs/gfs2/ops_file.c
@@ -413,7 +413,9 @@ out_unlock:
413 gfs2_glock_dq(&gh); 413 gfs2_glock_dq(&gh);
414out: 414out:
415 gfs2_holder_uninit(&gh); 415 gfs2_holder_uninit(&gh);
416 if (ret) 416 if (ret == -ENOMEM)
417 ret = VM_FAULT_OOM;
418 else if (ret)
417 ret = VM_FAULT_SIGBUS; 419 ret = VM_FAULT_SIGBUS;
418 return ret; 420 return ret;
419} 421}
@@ -705,7 +707,7 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
705 } 707 }
706} 708}
707 709
708const struct file_operations *gfs2_file_fops = &(const struct file_operations){ 710const struct file_operations gfs2_file_fops = {
709 .llseek = gfs2_llseek, 711 .llseek = gfs2_llseek,
710 .read = do_sync_read, 712 .read = do_sync_read,
711 .aio_read = generic_file_aio_read, 713 .aio_read = generic_file_aio_read,
@@ -723,7 +725,7 @@ const struct file_operations *gfs2_file_fops = &(const struct file_operations){
723 .setlease = gfs2_setlease, 725 .setlease = gfs2_setlease,
724}; 726};
725 727
726const struct file_operations *gfs2_dir_fops = &(const struct file_operations){ 728const struct file_operations gfs2_dir_fops = {
727 .readdir = gfs2_readdir, 729 .readdir = gfs2_readdir,
728 .unlocked_ioctl = gfs2_ioctl, 730 .unlocked_ioctl = gfs2_ioctl,
729 .open = gfs2_open, 731 .open = gfs2_open,
@@ -735,7 +737,7 @@ const struct file_operations *gfs2_dir_fops = &(const struct file_operations){
735 737
736#endif /* CONFIG_GFS2_FS_LOCKING_DLM */ 738#endif /* CONFIG_GFS2_FS_LOCKING_DLM */
737 739
738const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operations){ 740const struct file_operations gfs2_file_fops_nolock = {
739 .llseek = gfs2_llseek, 741 .llseek = gfs2_llseek,
740 .read = do_sync_read, 742 .read = do_sync_read,
741 .aio_read = generic_file_aio_read, 743 .aio_read = generic_file_aio_read,
@@ -751,7 +753,7 @@ const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operat
751 .setlease = generic_setlease, 753 .setlease = generic_setlease,
752}; 754};
753 755
754const struct file_operations *gfs2_dir_fops_nolock = &(const struct file_operations){ 756const struct file_operations gfs2_dir_fops_nolock = {
755 .readdir = gfs2_readdir, 757 .readdir = gfs2_readdir,
756 .unlocked_ioctl = gfs2_ioctl, 758 .unlocked_ioctl = gfs2_ioctl,
757 .open = gfs2_open, 759 .open = gfs2_open,
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index 51883b3ad89c..1ff9473ea753 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -272,11 +272,6 @@ static int gfs2_read_super(struct gfs2_sbd *sdp, sector_t sector)
272 lock_page(page); 272 lock_page(page);
273 273
274 bio = bio_alloc(GFP_NOFS, 1); 274 bio = bio_alloc(GFP_NOFS, 1);
275 if (unlikely(!bio)) {
276 __free_page(page);
277 return -ENOBUFS;
278 }
279
280 bio->bi_sector = sector * (sb->s_blocksize >> 9); 275 bio->bi_sector = sector * (sb->s_blocksize >> 9);
281 bio->bi_bdev = sb->s_bdev; 276 bio->bi_bdev = sb->s_bdev;
282 bio_add_page(bio, page, PAGE_SIZE, 0); 277 bio_add_page(bio, page, PAGE_SIZE, 0);
@@ -1287,21 +1282,21 @@ static int gfs2_get_sb(struct file_system_type *fs_type, int flags,
1287static struct super_block *get_gfs2_sb(const char *dev_name) 1282static struct super_block *get_gfs2_sb(const char *dev_name)
1288{ 1283{
1289 struct super_block *sb; 1284 struct super_block *sb;
1290 struct nameidata nd; 1285 struct path path;
1291 int error; 1286 int error;
1292 1287
1293 error = path_lookup(dev_name, LOOKUP_FOLLOW, &nd); 1288 error = kern_path(dev_name, LOOKUP_FOLLOW, &path);
1294 if (error) { 1289 if (error) {
1295 printk(KERN_WARNING "GFS2: path_lookup on %s returned error %d\n", 1290 printk(KERN_WARNING "GFS2: path_lookup on %s returned error %d\n",
1296 dev_name, error); 1291 dev_name, error);
1297 return NULL; 1292 return NULL;
1298 } 1293 }
1299 sb = nd.path.dentry->d_inode->i_sb; 1294 sb = path.dentry->d_inode->i_sb;
1300 if (sb && (sb->s_type == &gfs2_fs_type)) 1295 if (sb && (sb->s_type == &gfs2_fs_type))
1301 atomic_inc(&sb->s_active); 1296 atomic_inc(&sb->s_active);
1302 else 1297 else
1303 sb = NULL; 1298 sb = NULL;
1304 path_put(&nd.path); 1299 path_put(&path);
1305 return sb; 1300 return sb;
1306} 1301}
1307 1302
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c
index abd5429ae285..1c70fa5168d6 100644
--- a/fs/gfs2/ops_inode.c
+++ b/fs/gfs2/ops_inode.c
@@ -371,6 +371,7 @@ static int gfs2_symlink(struct inode *dir, struct dentry *dentry,
371 ip = ghs[1].gh_gl->gl_object; 371 ip = ghs[1].gh_gl->gl_object;
372 372
373 ip->i_disksize = size; 373 ip->i_disksize = size;
374 i_size_write(inode, size);
374 375
375 error = gfs2_meta_inode_buffer(ip, &dibh); 376 error = gfs2_meta_inode_buffer(ip, &dibh);
376 377
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 8d53f66b5bcc..152e6c4a0dca 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -81,7 +81,7 @@ struct gfs2_quota_change_host {
81 81
82static LIST_HEAD(qd_lru_list); 82static LIST_HEAD(qd_lru_list);
83static atomic_t qd_lru_count = ATOMIC_INIT(0); 83static atomic_t qd_lru_count = ATOMIC_INIT(0);
84static spinlock_t qd_lru_lock = SPIN_LOCK_UNLOCKED; 84static DEFINE_SPINLOCK(qd_lru_lock);
85 85
86int gfs2_shrink_qd_memory(int nr, gfp_t gfp_mask) 86int gfs2_shrink_qd_memory(int nr, gfp_t gfp_mask)
87{ 87{
@@ -1364,7 +1364,7 @@ int gfs2_quotad(void *data)
1364 refrigerator(); 1364 refrigerator();
1365 t = min(quotad_timeo, statfs_timeo); 1365 t = min(quotad_timeo, statfs_timeo);
1366 1366
1367 prepare_to_wait(&sdp->sd_quota_wait, &wait, TASK_UNINTERRUPTIBLE); 1367 prepare_to_wait(&sdp->sd_quota_wait, &wait, TASK_INTERRUPTIBLE);
1368 spin_lock(&sdp->sd_trunc_lock); 1368 spin_lock(&sdp->sd_trunc_lock);
1369 empty = list_empty(&sdp->sd_trunc_list); 1369 empty = list_empty(&sdp->sd_trunc_list);
1370 spin_unlock(&sdp->sd_trunc_lock); 1370 spin_unlock(&sdp->sd_trunc_lock);
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index f03d024038ea..565038243fa2 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -212,8 +212,7 @@ static u32 gfs2_bitfit(const u8 *buf, const unsigned int len,
212 if (tmp == 0) 212 if (tmp == 0)
213 return BFITNOENT; 213 return BFITNOENT;
214 ptr--; 214 ptr--;
215 bit = fls64(tmp); 215 bit = __ffs64(tmp);
216 bit--; /* fls64 always adds one to the bit count */
217 bit /= 2; /* two bits per entry in the bitmap */ 216 bit /= 2; /* two bits per entry in the bitmap */
218 return (((const unsigned char *)ptr - buf) * GFS2_NBBY) + bit; 217 return (((const unsigned char *)ptr - buf) * GFS2_NBBY) + bit;
219} 218}
@@ -1445,10 +1444,12 @@ static struct gfs2_rgrpd *rgblk_free(struct gfs2_sbd *sdp, u64 bstart,
1445u64 gfs2_alloc_block(struct gfs2_inode *ip, unsigned int *n) 1444u64 gfs2_alloc_block(struct gfs2_inode *ip, unsigned int *n)
1446{ 1445{
1447 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); 1446 struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
1447 struct buffer_head *dibh;
1448 struct gfs2_alloc *al = ip->i_alloc; 1448 struct gfs2_alloc *al = ip->i_alloc;
1449 struct gfs2_rgrpd *rgd = al->al_rgd; 1449 struct gfs2_rgrpd *rgd = al->al_rgd;
1450 u32 goal, blk; 1450 u32 goal, blk;
1451 u64 block; 1451 u64 block;
1452 int error;
1452 1453
1453 if (rgrp_contains_block(rgd, ip->i_goal)) 1454 if (rgrp_contains_block(rgd, ip->i_goal))
1454 goal = ip->i_goal - rgd->rd_data0; 1455 goal = ip->i_goal - rgd->rd_data0;
@@ -1461,7 +1462,13 @@ u64 gfs2_alloc_block(struct gfs2_inode *ip, unsigned int *n)
1461 rgd->rd_last_alloc = blk; 1462 rgd->rd_last_alloc = blk;
1462 block = rgd->rd_data0 + blk; 1463 block = rgd->rd_data0 + blk;
1463 ip->i_goal = block; 1464 ip->i_goal = block;
1464 1465 error = gfs2_meta_inode_buffer(ip, &dibh);
1466 if (error == 0) {
1467 struct gfs2_dinode *di = (struct gfs2_dinode *)dibh->b_data;
1468 gfs2_trans_add_bh(ip->i_gl, dibh, 1);
1469 di->di_goal_meta = di->di_goal_data = cpu_to_be64(ip->i_goal);
1470 brelse(dibh);
1471 }
1465 gfs2_assert_withdraw(sdp, rgd->rd_free >= *n); 1472 gfs2_assert_withdraw(sdp, rgd->rd_free >= *n);
1466 rgd->rd_free -= *n; 1473 rgd->rd_free -= *n;
1467 1474
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c
index 9435dda8f1e0..a1cbff2b4d99 100644
--- a/fs/hfs/inode.c
+++ b/fs/hfs/inode.c
@@ -70,6 +70,10 @@ static int hfs_releasepage(struct page *page, gfp_t mask)
70 BUG(); 70 BUG();
71 return 0; 71 return 0;
72 } 72 }
73
74 if (!tree)
75 return 0;
76
73 if (tree->node_size >= PAGE_CACHE_SIZE) { 77 if (tree->node_size >= PAGE_CACHE_SIZE) {
74 nidx = page->index >> (tree->node_size_shift - PAGE_CACHE_SHIFT); 78 nidx = page->index >> (tree->node_size_shift - PAGE_CACHE_SHIFT);
75 spin_lock(&tree->hash_lock); 79 spin_lock(&tree->hash_lock);
diff --git a/fs/hfs/mdb.c b/fs/hfs/mdb.c
index 36ca2e1a4fa3..7b6165f25fbe 100644
--- a/fs/hfs/mdb.c
+++ b/fs/hfs/mdb.c
@@ -349,6 +349,7 @@ void hfs_mdb_put(struct super_block *sb)
349 if (HFS_SB(sb)->nls_disk) 349 if (HFS_SB(sb)->nls_disk)
350 unload_nls(HFS_SB(sb)->nls_disk); 350 unload_nls(HFS_SB(sb)->nls_disk);
351 351
352 free_pages((unsigned long)HFS_SB(sb)->bitmap, PAGE_SIZE < 8192 ? 1 : 0);
352 kfree(HFS_SB(sb)); 353 kfree(HFS_SB(sb));
353 sb->s_fs_info = NULL; 354 sb->s_fs_info = NULL;
354} 355}
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index fecf402d7b8a..fc77965be841 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -423,8 +423,7 @@ static int hpfs_remount_fs(struct super_block *s, int *flags, char *data)
423 423
424 if (!(*flags & MS_RDONLY)) mark_dirty(s); 424 if (!(*flags & MS_RDONLY)) mark_dirty(s);
425 425
426 kfree(s->s_options); 426 replace_mount_options(s, new_opts);
427 s->s_options = new_opts;
428 427
429 return 0; 428 return 0;
430 429
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 23a3c76711e0..c1462d43e721 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -26,7 +26,6 @@
26#include <linux/pagevec.h> 26#include <linux/pagevec.h>
27#include <linux/parser.h> 27#include <linux/parser.h>
28#include <linux/mman.h> 28#include <linux/mman.h>
29#include <linux/quotaops.h>
30#include <linux/slab.h> 29#include <linux/slab.h>
31#include <linux/dnotify.h> 30#include <linux/dnotify.h>
32#include <linux/statfs.h> 31#include <linux/statfs.h>
@@ -313,16 +312,6 @@ out:
313 return retval; 312 return retval;
314} 313}
315 314
316/*
317 * Read a page. Again trivial. If it didn't already exist
318 * in the page cache, it is zero-filled.
319 */
320static int hugetlbfs_readpage(struct file *file, struct page * page)
321{
322 unlock_page(page);
323 return -EINVAL;
324}
325
326static int hugetlbfs_write_begin(struct file *file, 315static int hugetlbfs_write_begin(struct file *file,
327 struct address_space *mapping, 316 struct address_space *mapping,
328 loff_t pos, unsigned len, unsigned flags, 317 loff_t pos, unsigned len, unsigned flags,
@@ -702,7 +691,6 @@ static void hugetlbfs_destroy_inode(struct inode *inode)
702} 691}
703 692
704static const struct address_space_operations hugetlbfs_aops = { 693static const struct address_space_operations hugetlbfs_aops = {
705 .readpage = hugetlbfs_readpage,
706 .write_begin = hugetlbfs_write_begin, 694 .write_begin = hugetlbfs_write_begin,
707 .write_end = hugetlbfs_write_end, 695 .write_end = hugetlbfs_write_end,
708 .set_page_dirty = hugetlbfs_set_page_dirty, 696 .set_page_dirty = hugetlbfs_set_page_dirty,
@@ -842,7 +830,7 @@ hugetlbfs_parse_options(char *options, struct hugetlbfs_config *pconfig)
842bad_val: 830bad_val:
843 printk(KERN_ERR "hugetlbfs: Bad value '%s' for mount option '%s'\n", 831 printk(KERN_ERR "hugetlbfs: Bad value '%s' for mount option '%s'\n",
844 args[0].from, p); 832 args[0].from, p);
845 return 1; 833 return -EINVAL;
846} 834}
847 835
848static int 836static int
diff --git a/fs/inode.c b/fs/inode.c
index d06d6d268de9..0571983755dc 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -99,7 +99,7 @@ static DEFINE_MUTEX(iprune_mutex);
99 */ 99 */
100struct inodes_stat_t inodes_stat; 100struct inodes_stat_t inodes_stat;
101 101
102static struct kmem_cache * inode_cachep __read_mostly; 102static struct kmem_cache *inode_cachep __read_mostly;
103 103
104static void wake_up_inode(struct inode *inode) 104static void wake_up_inode(struct inode *inode)
105{ 105{
@@ -124,7 +124,7 @@ struct inode *inode_init_always(struct super_block *sb, struct inode *inode)
124 static struct inode_operations empty_iops; 124 static struct inode_operations empty_iops;
125 static const struct file_operations empty_fops; 125 static const struct file_operations empty_fops;
126 126
127 struct address_space * const mapping = &inode->i_data; 127 struct address_space *const mapping = &inode->i_data;
128 128
129 inode->i_sb = sb; 129 inode->i_sb = sb;
130 inode->i_blkbits = sb->s_blocksize_bits; 130 inode->i_blkbits = sb->s_blocksize_bits;
@@ -216,7 +216,7 @@ static struct inode *alloc_inode(struct super_block *sb)
216 return NULL; 216 return NULL;
217} 217}
218 218
219void destroy_inode(struct inode *inode) 219void destroy_inode(struct inode *inode)
220{ 220{
221 BUG_ON(inode_has_buffers(inode)); 221 BUG_ON(inode_has_buffers(inode));
222 security_inode_free(inode); 222 security_inode_free(inode);
@@ -252,12 +252,11 @@ void inode_init_once(struct inode *inode)
252 mutex_init(&inode->inotify_mutex); 252 mutex_init(&inode->inotify_mutex);
253#endif 253#endif
254} 254}
255
256EXPORT_SYMBOL(inode_init_once); 255EXPORT_SYMBOL(inode_init_once);
257 256
258static void init_once(void *foo) 257static void init_once(void *foo)
259{ 258{
260 struct inode * inode = (struct inode *) foo; 259 struct inode *inode = (struct inode *) foo;
261 260
262 inode_init_once(inode); 261 inode_init_once(inode);
263} 262}
@@ -265,7 +264,7 @@ static void init_once(void *foo)
265/* 264/*
266 * inode_lock must be held 265 * inode_lock must be held
267 */ 266 */
268void __iget(struct inode * inode) 267void __iget(struct inode *inode)
269{ 268{
270 if (atomic_read(&inode->i_count)) { 269 if (atomic_read(&inode->i_count)) {
271 atomic_inc(&inode->i_count); 270 atomic_inc(&inode->i_count);
@@ -289,7 +288,7 @@ void clear_inode(struct inode *inode)
289{ 288{
290 might_sleep(); 289 might_sleep();
291 invalidate_inode_buffers(inode); 290 invalidate_inode_buffers(inode);
292 291
293 BUG_ON(inode->i_data.nrpages); 292 BUG_ON(inode->i_data.nrpages);
294 BUG_ON(!(inode->i_state & I_FREEING)); 293 BUG_ON(!(inode->i_state & I_FREEING));
295 BUG_ON(inode->i_state & I_CLEAR); 294 BUG_ON(inode->i_state & I_CLEAR);
@@ -303,7 +302,6 @@ void clear_inode(struct inode *inode)
303 cd_forget(inode); 302 cd_forget(inode);
304 inode->i_state = I_CLEAR; 303 inode->i_state = I_CLEAR;
305} 304}
306
307EXPORT_SYMBOL(clear_inode); 305EXPORT_SYMBOL(clear_inode);
308 306
309/* 307/*
@@ -351,8 +349,8 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
351 349
352 next = head->next; 350 next = head->next;
353 for (;;) { 351 for (;;) {
354 struct list_head * tmp = next; 352 struct list_head *tmp = next;
355 struct inode * inode; 353 struct inode *inode;
356 354
357 /* 355 /*
358 * We can reschedule here without worrying about the list's 356 * We can reschedule here without worrying about the list's
@@ -391,7 +389,7 @@ static int invalidate_list(struct list_head *head, struct list_head *dispose)
391 * fails because there are busy inodes then a non zero value is returned. 389 * fails because there are busy inodes then a non zero value is returned.
392 * If the discard is successful all the inodes have been discarded. 390 * If the discard is successful all the inodes have been discarded.
393 */ 391 */
394int invalidate_inodes(struct super_block * sb) 392int invalidate_inodes(struct super_block *sb)
395{ 393{
396 int busy; 394 int busy;
397 LIST_HEAD(throw_away); 395 LIST_HEAD(throw_away);
@@ -407,7 +405,6 @@ int invalidate_inodes(struct super_block * sb)
407 405
408 return busy; 406 return busy;
409} 407}
410
411EXPORT_SYMBOL(invalidate_inodes); 408EXPORT_SYMBOL(invalidate_inodes);
412 409
413static int can_unuse(struct inode *inode) 410static int can_unuse(struct inode *inode)
@@ -504,7 +501,7 @@ static int shrink_icache_memory(int nr, gfp_t gfp_mask)
504 * Nasty deadlock avoidance. We may hold various FS locks, 501 * Nasty deadlock avoidance. We may hold various FS locks,
505 * and we don't want to recurse into the FS that called us 502 * and we don't want to recurse into the FS that called us
506 * in clear_inode() and friends.. 503 * in clear_inode() and friends..
507 */ 504 */
508 if (!(gfp_mask & __GFP_FS)) 505 if (!(gfp_mask & __GFP_FS))
509 return -1; 506 return -1;
510 prune_icache(nr); 507 prune_icache(nr);
@@ -524,10 +521,13 @@ static void __wait_on_freeing_inode(struct inode *inode);
524 * by hand after calling find_inode now! This simplifies iunique and won't 521 * by hand after calling find_inode now! This simplifies iunique and won't
525 * add any additional branch in the common code. 522 * add any additional branch in the common code.
526 */ 523 */
527static struct inode * find_inode(struct super_block * sb, struct hlist_head *head, int (*test)(struct inode *, void *), void *data) 524static struct inode *find_inode(struct super_block *sb,
525 struct hlist_head *head,
526 int (*test)(struct inode *, void *),
527 void *data)
528{ 528{
529 struct hlist_node *node; 529 struct hlist_node *node;
530 struct inode * inode = NULL; 530 struct inode *inode = NULL;
531 531
532repeat: 532repeat:
533 hlist_for_each_entry(inode, node, head, i_hash) { 533 hlist_for_each_entry(inode, node, head, i_hash) {
@@ -548,10 +548,11 @@ repeat:
548 * find_inode_fast is the fast path version of find_inode, see the comment at 548 * find_inode_fast is the fast path version of find_inode, see the comment at
549 * iget_locked for details. 549 * iget_locked for details.
550 */ 550 */
551static struct inode * find_inode_fast(struct super_block * sb, struct hlist_head *head, unsigned long ino) 551static struct inode *find_inode_fast(struct super_block *sb,
552 struct hlist_head *head, unsigned long ino)
552{ 553{
553 struct hlist_node *node; 554 struct hlist_node *node;
554 struct inode * inode = NULL; 555 struct inode *inode = NULL;
555 556
556repeat: 557repeat:
557 hlist_for_each_entry(inode, node, head, i_hash) { 558 hlist_for_each_entry(inode, node, head, i_hash) {
@@ -631,10 +632,10 @@ struct inode *new_inode(struct super_block *sb)
631 * here to attempt to avoid that. 632 * here to attempt to avoid that.
632 */ 633 */
633 static unsigned int last_ino; 634 static unsigned int last_ino;
634 struct inode * inode; 635 struct inode *inode;
635 636
636 spin_lock_prefetch(&inode_lock); 637 spin_lock_prefetch(&inode_lock);
637 638
638 inode = alloc_inode(sb); 639 inode = alloc_inode(sb);
639 if (inode) { 640 if (inode) {
640 spin_lock(&inode_lock); 641 spin_lock(&inode_lock);
@@ -645,7 +646,6 @@ struct inode *new_inode(struct super_block *sb)
645 } 646 }
646 return inode; 647 return inode;
647} 648}
648
649EXPORT_SYMBOL(new_inode); 649EXPORT_SYMBOL(new_inode);
650 650
651void unlock_new_inode(struct inode *inode) 651void unlock_new_inode(struct inode *inode)
@@ -674,7 +674,6 @@ void unlock_new_inode(struct inode *inode)
674 inode->i_state &= ~(I_LOCK|I_NEW); 674 inode->i_state &= ~(I_LOCK|I_NEW);
675 wake_up_inode(inode); 675 wake_up_inode(inode);
676} 676}
677
678EXPORT_SYMBOL(unlock_new_inode); 677EXPORT_SYMBOL(unlock_new_inode);
679 678
680/* 679/*
@@ -683,13 +682,17 @@ EXPORT_SYMBOL(unlock_new_inode);
683 * We no longer cache the sb_flags in i_flags - see fs.h 682 * We no longer cache the sb_flags in i_flags - see fs.h
684 * -- rmk@arm.uk.linux.org 683 * -- rmk@arm.uk.linux.org
685 */ 684 */
686static struct inode * get_new_inode(struct super_block *sb, struct hlist_head *head, int (*test)(struct inode *, void *), int (*set)(struct inode *, void *), void *data) 685static struct inode *get_new_inode(struct super_block *sb,
686 struct hlist_head *head,
687 int (*test)(struct inode *, void *),
688 int (*set)(struct inode *, void *),
689 void *data)
687{ 690{
688 struct inode * inode; 691 struct inode *inode;
689 692
690 inode = alloc_inode(sb); 693 inode = alloc_inode(sb);
691 if (inode) { 694 if (inode) {
692 struct inode * old; 695 struct inode *old;
693 696
694 spin_lock(&inode_lock); 697 spin_lock(&inode_lock);
695 /* We released the lock, so.. */ 698 /* We released the lock, so.. */
@@ -731,13 +734,14 @@ set_failed:
731 * get_new_inode_fast is the fast path version of get_new_inode, see the 734 * get_new_inode_fast is the fast path version of get_new_inode, see the
732 * comment at iget_locked for details. 735 * comment at iget_locked for details.
733 */ 736 */
734static struct inode * get_new_inode_fast(struct super_block *sb, struct hlist_head *head, unsigned long ino) 737static struct inode *get_new_inode_fast(struct super_block *sb,
738 struct hlist_head *head, unsigned long ino)
735{ 739{
736 struct inode * inode; 740 struct inode *inode;
737 741
738 inode = alloc_inode(sb); 742 inode = alloc_inode(sb);
739 if (inode) { 743 if (inode) {
740 struct inode * old; 744 struct inode *old;
741 745
742 spin_lock(&inode_lock); 746 spin_lock(&inode_lock);
743 /* We released the lock, so.. */ 747 /* We released the lock, so.. */
@@ -823,7 +827,6 @@ struct inode *igrab(struct inode *inode)
823 spin_unlock(&inode_lock); 827 spin_unlock(&inode_lock);
824 return inode; 828 return inode;
825} 829}
826
827EXPORT_SYMBOL(igrab); 830EXPORT_SYMBOL(igrab);
828 831
829/** 832/**
@@ -924,7 +927,6 @@ struct inode *ilookup5_nowait(struct super_block *sb, unsigned long hashval,
924 927
925 return ifind(sb, head, test, data, 0); 928 return ifind(sb, head, test, data, 0);
926} 929}
927
928EXPORT_SYMBOL(ilookup5_nowait); 930EXPORT_SYMBOL(ilookup5_nowait);
929 931
930/** 932/**
@@ -953,7 +955,6 @@ struct inode *ilookup5(struct super_block *sb, unsigned long hashval,
953 955
954 return ifind(sb, head, test, data, 1); 956 return ifind(sb, head, test, data, 1);
955} 957}
956
957EXPORT_SYMBOL(ilookup5); 958EXPORT_SYMBOL(ilookup5);
958 959
959/** 960/**
@@ -976,7 +977,6 @@ struct inode *ilookup(struct super_block *sb, unsigned long ino)
976 977
977 return ifind_fast(sb, head, ino); 978 return ifind_fast(sb, head, ino);
978} 979}
979
980EXPORT_SYMBOL(ilookup); 980EXPORT_SYMBOL(ilookup);
981 981
982/** 982/**
@@ -1015,7 +1015,6 @@ struct inode *iget5_locked(struct super_block *sb, unsigned long hashval,
1015 */ 1015 */
1016 return get_new_inode(sb, head, test, set, data); 1016 return get_new_inode(sb, head, test, set, data);
1017} 1017}
1018
1019EXPORT_SYMBOL(iget5_locked); 1018EXPORT_SYMBOL(iget5_locked);
1020 1019
1021/** 1020/**
@@ -1047,7 +1046,6 @@ struct inode *iget_locked(struct super_block *sb, unsigned long ino)
1047 */ 1046 */
1048 return get_new_inode_fast(sb, head, ino); 1047 return get_new_inode_fast(sb, head, ino);
1049} 1048}
1050
1051EXPORT_SYMBOL(iget_locked); 1049EXPORT_SYMBOL(iget_locked);
1052 1050
1053int insert_inode_locked(struct inode *inode) 1051int insert_inode_locked(struct inode *inode)
@@ -1076,7 +1074,6 @@ int insert_inode_locked(struct inode *inode)
1076 iput(old); 1074 iput(old);
1077 } 1075 }
1078} 1076}
1079
1080EXPORT_SYMBOL(insert_inode_locked); 1077EXPORT_SYMBOL(insert_inode_locked);
1081 1078
1082int insert_inode_locked4(struct inode *inode, unsigned long hashval, 1079int insert_inode_locked4(struct inode *inode, unsigned long hashval,
@@ -1106,7 +1103,6 @@ int insert_inode_locked4(struct inode *inode, unsigned long hashval,
1106 iput(old); 1103 iput(old);
1107 } 1104 }
1108} 1105}
1109
1110EXPORT_SYMBOL(insert_inode_locked4); 1106EXPORT_SYMBOL(insert_inode_locked4);
1111 1107
1112/** 1108/**
@@ -1124,7 +1120,6 @@ void __insert_inode_hash(struct inode *inode, unsigned long hashval)
1124 hlist_add_head(&inode->i_hash, head); 1120 hlist_add_head(&inode->i_hash, head);
1125 spin_unlock(&inode_lock); 1121 spin_unlock(&inode_lock);
1126} 1122}
1127
1128EXPORT_SYMBOL(__insert_inode_hash); 1123EXPORT_SYMBOL(__insert_inode_hash);
1129 1124
1130/** 1125/**
@@ -1139,7 +1134,6 @@ void remove_inode_hash(struct inode *inode)
1139 hlist_del_init(&inode->i_hash); 1134 hlist_del_init(&inode->i_hash);
1140 spin_unlock(&inode_lock); 1135 spin_unlock(&inode_lock);
1141} 1136}
1142
1143EXPORT_SYMBOL(remove_inode_hash); 1137EXPORT_SYMBOL(remove_inode_hash);
1144 1138
1145/* 1139/*
@@ -1187,7 +1181,6 @@ void generic_delete_inode(struct inode *inode)
1187 BUG_ON(inode->i_state != I_CLEAR); 1181 BUG_ON(inode->i_state != I_CLEAR);
1188 destroy_inode(inode); 1182 destroy_inode(inode);
1189} 1183}
1190
1191EXPORT_SYMBOL(generic_delete_inode); 1184EXPORT_SYMBOL(generic_delete_inode);
1192 1185
1193static void generic_forget_inode(struct inode *inode) 1186static void generic_forget_inode(struct inode *inode)
@@ -1237,12 +1230,11 @@ void generic_drop_inode(struct inode *inode)
1237 else 1230 else
1238 generic_forget_inode(inode); 1231 generic_forget_inode(inode);
1239} 1232}
1240
1241EXPORT_SYMBOL_GPL(generic_drop_inode); 1233EXPORT_SYMBOL_GPL(generic_drop_inode);
1242 1234
1243/* 1235/*
1244 * Called when we're dropping the last reference 1236 * Called when we're dropping the last reference
1245 * to an inode. 1237 * to an inode.
1246 * 1238 *
1247 * Call the FS "drop()" function, defaulting to 1239 * Call the FS "drop()" function, defaulting to
1248 * the legacy UNIX filesystem behaviour.. 1240 * the legacy UNIX filesystem behaviour..
@@ -1262,7 +1254,7 @@ static inline void iput_final(struct inode *inode)
1262} 1254}
1263 1255
1264/** 1256/**
1265 * iput - put an inode 1257 * iput - put an inode
1266 * @inode: inode to put 1258 * @inode: inode to put
1267 * 1259 *
1268 * Puts an inode, dropping its usage count. If the inode use count hits 1260 * Puts an inode, dropping its usage count. If the inode use count hits
@@ -1279,7 +1271,6 @@ void iput(struct inode *inode)
1279 iput_final(inode); 1271 iput_final(inode);
1280 } 1272 }
1281} 1273}
1282
1283EXPORT_SYMBOL(iput); 1274EXPORT_SYMBOL(iput);
1284 1275
1285/** 1276/**
@@ -1290,10 +1281,10 @@ EXPORT_SYMBOL(iput);
1290 * Returns the block number on the device holding the inode that 1281 * Returns the block number on the device holding the inode that
1291 * is the disk block number for the block of the file requested. 1282 * is the disk block number for the block of the file requested.
1292 * That is, asked for block 4 of inode 1 the function will return the 1283 * That is, asked for block 4 of inode 1 the function will return the
1293 * disk block relative to the disk start that holds that block of the 1284 * disk block relative to the disk start that holds that block of the
1294 * file. 1285 * file.
1295 */ 1286 */
1296sector_t bmap(struct inode * inode, sector_t block) 1287sector_t bmap(struct inode *inode, sector_t block)
1297{ 1288{
1298 sector_t res = 0; 1289 sector_t res = 0;
1299 if (inode->i_mapping->a_ops->bmap) 1290 if (inode->i_mapping->a_ops->bmap)
@@ -1425,7 +1416,6 @@ void file_update_time(struct file *file)
1425 mark_inode_dirty_sync(inode); 1416 mark_inode_dirty_sync(inode);
1426 mnt_drop_write(file->f_path.mnt); 1417 mnt_drop_write(file->f_path.mnt);
1427} 1418}
1428
1429EXPORT_SYMBOL(file_update_time); 1419EXPORT_SYMBOL(file_update_time);
1430 1420
1431int inode_needs_sync(struct inode *inode) 1421int inode_needs_sync(struct inode *inode)
@@ -1436,7 +1426,6 @@ int inode_needs_sync(struct inode *inode)
1436 return 1; 1426 return 1;
1437 return 0; 1427 return 0;
1438} 1428}
1439
1440EXPORT_SYMBOL(inode_needs_sync); 1429EXPORT_SYMBOL(inode_needs_sync);
1441 1430
1442int inode_wait(void *word) 1431int inode_wait(void *word)
@@ -1470,42 +1459,6 @@ static void __wait_on_freeing_inode(struct inode *inode)
1470 spin_lock(&inode_lock); 1459 spin_lock(&inode_lock);
1471} 1460}
1472 1461
1473/*
1474 * We rarely want to lock two inodes that do not have a parent/child
1475 * relationship (such as directory, child inode) simultaneously. The
1476 * vast majority of file systems should be able to get along fine
1477 * without this. Do not use these functions except as a last resort.
1478 */
1479void inode_double_lock(struct inode *inode1, struct inode *inode2)
1480{
1481 if (inode1 == NULL || inode2 == NULL || inode1 == inode2) {
1482 if (inode1)
1483 mutex_lock(&inode1->i_mutex);
1484 else if (inode2)
1485 mutex_lock(&inode2->i_mutex);
1486 return;
1487 }
1488
1489 if (inode1 < inode2) {
1490 mutex_lock_nested(&inode1->i_mutex, I_MUTEX_PARENT);
1491 mutex_lock_nested(&inode2->i_mutex, I_MUTEX_CHILD);
1492 } else {
1493 mutex_lock_nested(&inode2->i_mutex, I_MUTEX_PARENT);
1494 mutex_lock_nested(&inode1->i_mutex, I_MUTEX_CHILD);
1495 }
1496}
1497EXPORT_SYMBOL(inode_double_lock);
1498
1499void inode_double_unlock(struct inode *inode1, struct inode *inode2)
1500{
1501 if (inode1)
1502 mutex_unlock(&inode1->i_mutex);
1503
1504 if (inode2 && inode2 != inode1)
1505 mutex_unlock(&inode2->i_mutex);
1506}
1507EXPORT_SYMBOL(inode_double_unlock);
1508
1509static __initdata unsigned long ihash_entries; 1462static __initdata unsigned long ihash_entries;
1510static int __init set_ihash_entries(char *str) 1463static int __init set_ihash_entries(char *str)
1511{ 1464{
diff --git a/fs/ioctl.c b/fs/ioctl.c
index ac2d47e43926..82d9c42b8bac 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -258,7 +258,7 @@ int __generic_block_fiemap(struct inode *inode,
258 long long length = 0, map_len = 0; 258 long long length = 0, map_len = 0;
259 u64 logical = 0, phys = 0, size = 0; 259 u64 logical = 0, phys = 0, size = 0;
260 u32 flags = FIEMAP_EXTENT_MERGED; 260 u32 flags = FIEMAP_EXTENT_MERGED;
261 int ret = 0; 261 int ret = 0, past_eof = 0, whole_file = 0;
262 262
263 if ((ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC))) 263 if ((ret = fiemap_check_flags(fieinfo, FIEMAP_FLAG_SYNC)))
264 return ret; 264 return ret;
@@ -266,6 +266,9 @@ int __generic_block_fiemap(struct inode *inode,
266 start_blk = logical_to_blk(inode, start); 266 start_blk = logical_to_blk(inode, start);
267 267
268 length = (long long)min_t(u64, len, i_size_read(inode)); 268 length = (long long)min_t(u64, len, i_size_read(inode));
269 if (length < len)
270 whole_file = 1;
271
269 map_len = length; 272 map_len = length;
270 273
271 do { 274 do {
@@ -282,11 +285,26 @@ int __generic_block_fiemap(struct inode *inode,
282 285
283 /* HOLE */ 286 /* HOLE */
284 if (!buffer_mapped(&tmp)) { 287 if (!buffer_mapped(&tmp)) {
288 length -= blk_to_logical(inode, 1);
289 start_blk++;
290
291 /*
292 * we want to handle the case where there is an
293 * allocated block at the front of the file, and then
294 * nothing but holes up to the end of the file properly,
295 * to make sure that extent at the front gets properly
296 * marked with FIEMAP_EXTENT_LAST
297 */
298 if (!past_eof &&
299 blk_to_logical(inode, start_blk) >=
300 blk_to_logical(inode, 0)+i_size_read(inode))
301 past_eof = 1;
302
285 /* 303 /*
286 * first hole after going past the EOF, this is our 304 * first hole after going past the EOF, this is our
287 * last extent 305 * last extent
288 */ 306 */
289 if (length <= 0) { 307 if (past_eof && size) {
290 flags = FIEMAP_EXTENT_MERGED|FIEMAP_EXTENT_LAST; 308 flags = FIEMAP_EXTENT_MERGED|FIEMAP_EXTENT_LAST;
291 ret = fiemap_fill_next_extent(fieinfo, logical, 309 ret = fiemap_fill_next_extent(fieinfo, logical,
292 phys, size, 310 phys, size,
@@ -294,15 +312,37 @@ int __generic_block_fiemap(struct inode *inode,
294 break; 312 break;
295 } 313 }
296 314
297 length -= blk_to_logical(inode, 1);
298
299 /* if we have holes up to/past EOF then we're done */ 315 /* if we have holes up to/past EOF then we're done */
300 if (length <= 0) 316 if (length <= 0 || past_eof)
301 break; 317 break;
302
303 start_blk++;
304 } else { 318 } else {
305 if (length <= 0 && size) { 319 /*
320 * we have gone over the length of what we wanted to
321 * map, and it wasn't the entire file, so add the extent
322 * we got last time and exit.
323 *
324 * This is for the case where say we want to map all the
325 * way up to the second to the last block in a file, but
326 * the last block is a hole, making the second to last
327 * block FIEMAP_EXTENT_LAST. In this case we want to
328 * see if there is a hole after the second to last block
329 * so we can mark it properly. If we found data after
330 * we exceeded the length we were requesting, then we
331 * are good to go, just add the extent to the fieinfo
332 * and break
333 */
334 if (length <= 0 && !whole_file) {
335 ret = fiemap_fill_next_extent(fieinfo, logical,
336 phys, size,
337 flags);
338 break;
339 }
340
341 /*
342 * if size != 0 then we know we already have an extent
343 * to add, so add it.
344 */
345 if (size) {
306 ret = fiemap_fill_next_extent(fieinfo, logical, 346 ret = fiemap_fill_next_extent(fieinfo, logical,
307 phys, size, 347 phys, size,
308 flags); 348 flags);
@@ -319,19 +359,14 @@ int __generic_block_fiemap(struct inode *inode,
319 start_blk += logical_to_blk(inode, size); 359 start_blk += logical_to_blk(inode, size);
320 360
321 /* 361 /*
322 * if we are past the EOF we need to loop again to see 362 * If we are past the EOF, then we need to make sure as
323 * if there is a hole so we can mark this extent as the 363 * soon as we find a hole that the last extent we found
324 * last one, and if not keep mapping things until we 364 * is marked with FIEMAP_EXTENT_LAST
325 * find a hole, or we run out of slots in the extent
326 * array
327 */ 365 */
328 if (length <= 0) 366 if (!past_eof &&
329 continue; 367 logical+size >=
330 368 blk_to_logical(inode, 0)+i_size_read(inode))
331 ret = fiemap_fill_next_extent(fieinfo, logical, phys, 369 past_eof = 1;
332 size, flags);
333 if (ret)
334 break;
335 } 370 }
336 cond_resched(); 371 cond_resched();
337 } while (1); 372 } while (1);
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c
index a8e8513a78a9..06560c520f49 100644
--- a/fs/jbd/commit.c
+++ b/fs/jbd/commit.c
@@ -502,7 +502,7 @@ void journal_commit_transaction(journal_t *journal)
502 err = 0; 502 err = 0;
503 } 503 }
504 504
505 journal_write_revoke_records(journal, commit_transaction); 505 journal_write_revoke_records(journal, commit_transaction, write_op);
506 506
507 /* 507 /*
508 * If we found any dirty or locked buffers, then we should have 508 * If we found any dirty or locked buffers, then we should have
diff --git a/fs/jbd/revoke.c b/fs/jbd/revoke.c
index c7bd649bbbdc..da6cd9bdaabc 100644
--- a/fs/jbd/revoke.c
+++ b/fs/jbd/revoke.c
@@ -55,6 +55,25 @@
55 * need do nothing. 55 * need do nothing.
56 * RevokeValid set, Revoked set: 56 * RevokeValid set, Revoked set:
57 * buffer has been revoked. 57 * buffer has been revoked.
58 *
59 * Locking rules:
60 * We keep two hash tables of revoke records. One hashtable belongs to the
61 * running transaction (is pointed to by journal->j_revoke), the other one
62 * belongs to the committing transaction. Accesses to the second hash table
63 * happen only from the kjournald and no other thread touches this table. Also
64 * journal_switch_revoke_table() which switches which hashtable belongs to the
65 * running and which to the committing transaction is called only from
66 * kjournald. Therefore we need no locks when accessing the hashtable belonging
67 * to the committing transaction.
68 *
69 * All users operating on the hash table belonging to the running transaction
70 * have a handle to the transaction. Therefore they are safe from kjournald
71 * switching hash tables under them. For operations on the lists of entries in
72 * the hash table j_revoke_lock is used.
73 *
74 * Finally, also replay code uses the hash tables but at this moment noone else
75 * can touch them (filesystem isn't mounted yet) and hence no locking is
76 * needed.
58 */ 77 */
59 78
60#ifndef __KERNEL__ 79#ifndef __KERNEL__
@@ -67,6 +86,7 @@
67#include <linux/slab.h> 86#include <linux/slab.h>
68#include <linux/list.h> 87#include <linux/list.h>
69#include <linux/init.h> 88#include <linux/init.h>
89#include <linux/bio.h>
70#endif 90#endif
71#include <linux/log2.h> 91#include <linux/log2.h>
72 92
@@ -99,8 +119,8 @@ struct jbd_revoke_table_s
99#ifdef __KERNEL__ 119#ifdef __KERNEL__
100static void write_one_revoke_record(journal_t *, transaction_t *, 120static void write_one_revoke_record(journal_t *, transaction_t *,
101 struct journal_head **, int *, 121 struct journal_head **, int *,
102 struct jbd_revoke_record_s *); 122 struct jbd_revoke_record_s *, int);
103static void flush_descriptor(journal_t *, struct journal_head *, int); 123static void flush_descriptor(journal_t *, struct journal_head *, int, int);
104#endif 124#endif
105 125
106/* Utility functions to maintain the revoke table */ 126/* Utility functions to maintain the revoke table */
@@ -402,8 +422,6 @@ int journal_revoke(handle_t *handle, unsigned long blocknr,
402 * the second time we would still have a pending revoke to cancel. So, 422 * the second time we would still have a pending revoke to cancel. So,
403 * do not trust the Revoked bit on buffers unless RevokeValid is also 423 * do not trust the Revoked bit on buffers unless RevokeValid is also
404 * set. 424 * set.
405 *
406 * The caller must have the journal locked.
407 */ 425 */
408int journal_cancel_revoke(handle_t *handle, struct journal_head *jh) 426int journal_cancel_revoke(handle_t *handle, struct journal_head *jh)
409{ 427{
@@ -481,12 +499,9 @@ void journal_switch_revoke_table(journal_t *journal)
481/* 499/*
482 * Write revoke records to the journal for all entries in the current 500 * Write revoke records to the journal for all entries in the current
483 * revoke hash, deleting the entries as we go. 501 * revoke hash, deleting the entries as we go.
484 *
485 * Called with the journal lock held.
486 */ 502 */
487
488void journal_write_revoke_records(journal_t *journal, 503void journal_write_revoke_records(journal_t *journal,
489 transaction_t *transaction) 504 transaction_t *transaction, int write_op)
490{ 505{
491 struct journal_head *descriptor; 506 struct journal_head *descriptor;
492 struct jbd_revoke_record_s *record; 507 struct jbd_revoke_record_s *record;
@@ -510,14 +525,14 @@ void journal_write_revoke_records(journal_t *journal,
510 hash_list->next; 525 hash_list->next;
511 write_one_revoke_record(journal, transaction, 526 write_one_revoke_record(journal, transaction,
512 &descriptor, &offset, 527 &descriptor, &offset,
513 record); 528 record, write_op);
514 count++; 529 count++;
515 list_del(&record->hash); 530 list_del(&record->hash);
516 kmem_cache_free(revoke_record_cache, record); 531 kmem_cache_free(revoke_record_cache, record);
517 } 532 }
518 } 533 }
519 if (descriptor) 534 if (descriptor)
520 flush_descriptor(journal, descriptor, offset); 535 flush_descriptor(journal, descriptor, offset, write_op);
521 jbd_debug(1, "Wrote %d revoke records\n", count); 536 jbd_debug(1, "Wrote %d revoke records\n", count);
522} 537}
523 538
@@ -530,7 +545,8 @@ static void write_one_revoke_record(journal_t *journal,
530 transaction_t *transaction, 545 transaction_t *transaction,
531 struct journal_head **descriptorp, 546 struct journal_head **descriptorp,
532 int *offsetp, 547 int *offsetp,
533 struct jbd_revoke_record_s *record) 548 struct jbd_revoke_record_s *record,
549 int write_op)
534{ 550{
535 struct journal_head *descriptor; 551 struct journal_head *descriptor;
536 int offset; 552 int offset;
@@ -549,7 +565,7 @@ static void write_one_revoke_record(journal_t *journal,
549 /* Make sure we have a descriptor with space left for the record */ 565 /* Make sure we have a descriptor with space left for the record */
550 if (descriptor) { 566 if (descriptor) {
551 if (offset == journal->j_blocksize) { 567 if (offset == journal->j_blocksize) {
552 flush_descriptor(journal, descriptor, offset); 568 flush_descriptor(journal, descriptor, offset, write_op);
553 descriptor = NULL; 569 descriptor = NULL;
554 } 570 }
555 } 571 }
@@ -586,7 +602,7 @@ static void write_one_revoke_record(journal_t *journal,
586 602
587static void flush_descriptor(journal_t *journal, 603static void flush_descriptor(journal_t *journal,
588 struct journal_head *descriptor, 604 struct journal_head *descriptor,
589 int offset) 605 int offset, int write_op)
590{ 606{
591 journal_revoke_header_t *header; 607 journal_revoke_header_t *header;
592 struct buffer_head *bh = jh2bh(descriptor); 608 struct buffer_head *bh = jh2bh(descriptor);
@@ -601,7 +617,7 @@ static void flush_descriptor(journal_t *journal,
601 set_buffer_jwrite(bh); 617 set_buffer_jwrite(bh);
602 BUFFER_TRACE(bh, "write"); 618 BUFFER_TRACE(bh, "write");
603 set_buffer_dirty(bh); 619 set_buffer_dirty(bh);
604 ll_rw_block(SWRITE, 1, &bh); 620 ll_rw_block((write_op == WRITE) ? SWRITE : SWRITE_SYNC_PLUG, 1, &bh);
605} 621}
606#endif 622#endif
607 623
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 073c8c3df7cd..0b7d3b8226fd 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -506,7 +506,8 @@ void jbd2_journal_commit_transaction(journal_t *journal)
506 if (err) 506 if (err)
507 jbd2_journal_abort(journal, err); 507 jbd2_journal_abort(journal, err);
508 508
509 jbd2_journal_write_revoke_records(journal, commit_transaction); 509 jbd2_journal_write_revoke_records(journal, commit_transaction,
510 write_op);
510 511
511 jbd_debug(3, "JBD: commit phase 2\n"); 512 jbd_debug(3, "JBD: commit phase 2\n");
512 513
diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
index bbe6d592d8b3..a360b06af2e3 100644
--- a/fs/jbd2/revoke.c
+++ b/fs/jbd2/revoke.c
@@ -86,6 +86,7 @@
86#include <linux/slab.h> 86#include <linux/slab.h>
87#include <linux/list.h> 87#include <linux/list.h>
88#include <linux/init.h> 88#include <linux/init.h>
89#include <linux/bio.h>
89#endif 90#endif
90#include <linux/log2.h> 91#include <linux/log2.h>
91 92
@@ -118,8 +119,8 @@ struct jbd2_revoke_table_s
118#ifdef __KERNEL__ 119#ifdef __KERNEL__
119static void write_one_revoke_record(journal_t *, transaction_t *, 120static void write_one_revoke_record(journal_t *, transaction_t *,
120 struct journal_head **, int *, 121 struct journal_head **, int *,
121 struct jbd2_revoke_record_s *); 122 struct jbd2_revoke_record_s *, int);
122static void flush_descriptor(journal_t *, struct journal_head *, int); 123static void flush_descriptor(journal_t *, struct journal_head *, int, int);
123#endif 124#endif
124 125
125/* Utility functions to maintain the revoke table */ 126/* Utility functions to maintain the revoke table */
@@ -499,7 +500,8 @@ void jbd2_journal_switch_revoke_table(journal_t *journal)
499 * revoke hash, deleting the entries as we go. 500 * revoke hash, deleting the entries as we go.
500 */ 501 */
501void jbd2_journal_write_revoke_records(journal_t *journal, 502void jbd2_journal_write_revoke_records(journal_t *journal,
502 transaction_t *transaction) 503 transaction_t *transaction,
504 int write_op)
503{ 505{
504 struct journal_head *descriptor; 506 struct journal_head *descriptor;
505 struct jbd2_revoke_record_s *record; 507 struct jbd2_revoke_record_s *record;
@@ -523,14 +525,14 @@ void jbd2_journal_write_revoke_records(journal_t *journal,
523 hash_list->next; 525 hash_list->next;
524 write_one_revoke_record(journal, transaction, 526 write_one_revoke_record(journal, transaction,
525 &descriptor, &offset, 527 &descriptor, &offset,
526 record); 528 record, write_op);
527 count++; 529 count++;
528 list_del(&record->hash); 530 list_del(&record->hash);
529 kmem_cache_free(jbd2_revoke_record_cache, record); 531 kmem_cache_free(jbd2_revoke_record_cache, record);
530 } 532 }
531 } 533 }
532 if (descriptor) 534 if (descriptor)
533 flush_descriptor(journal, descriptor, offset); 535 flush_descriptor(journal, descriptor, offset, write_op);
534 jbd_debug(1, "Wrote %d revoke records\n", count); 536 jbd_debug(1, "Wrote %d revoke records\n", count);
535} 537}
536 538
@@ -543,7 +545,8 @@ static void write_one_revoke_record(journal_t *journal,
543 transaction_t *transaction, 545 transaction_t *transaction,
544 struct journal_head **descriptorp, 546 struct journal_head **descriptorp,
545 int *offsetp, 547 int *offsetp,
546 struct jbd2_revoke_record_s *record) 548 struct jbd2_revoke_record_s *record,
549 int write_op)
547{ 550{
548 struct journal_head *descriptor; 551 struct journal_head *descriptor;
549 int offset; 552 int offset;
@@ -562,7 +565,7 @@ static void write_one_revoke_record(journal_t *journal,
562 /* Make sure we have a descriptor with space left for the record */ 565 /* Make sure we have a descriptor with space left for the record */
563 if (descriptor) { 566 if (descriptor) {
564 if (offset == journal->j_blocksize) { 567 if (offset == journal->j_blocksize) {
565 flush_descriptor(journal, descriptor, offset); 568 flush_descriptor(journal, descriptor, offset, write_op);
566 descriptor = NULL; 569 descriptor = NULL;
567 } 570 }
568 } 571 }
@@ -607,7 +610,7 @@ static void write_one_revoke_record(journal_t *journal,
607 610
608static void flush_descriptor(journal_t *journal, 611static void flush_descriptor(journal_t *journal,
609 struct journal_head *descriptor, 612 struct journal_head *descriptor,
610 int offset) 613 int offset, int write_op)
611{ 614{
612 jbd2_journal_revoke_header_t *header; 615 jbd2_journal_revoke_header_t *header;
613 struct buffer_head *bh = jh2bh(descriptor); 616 struct buffer_head *bh = jh2bh(descriptor);
@@ -622,7 +625,7 @@ static void flush_descriptor(journal_t *journal,
622 set_buffer_jwrite(bh); 625 set_buffer_jwrite(bh);
623 BUFFER_TRACE(bh, "write"); 626 BUFFER_TRACE(bh, "write");
624 set_buffer_dirty(bh); 627 set_buffer_dirty(bh);
625 ll_rw_block(SWRITE, 1, &bh); 628 ll_rw_block((write_op == WRITE) ? SWRITE : SWRITE_SYNC_PLUG, 1, &bh);
626} 629}
627#endif 630#endif
628 631
diff --git a/fs/libfs.c b/fs/libfs.c
index cd223190c4e9..80046ddf5063 100644
--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -246,8 +246,7 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name,
246 return 0; 246 return 0;
247 247
248Enomem: 248Enomem:
249 up_write(&s->s_umount); 249 deactivate_locked_super(s);
250 deactivate_super(s);
251 return -ENOMEM; 250 return -ENOMEM;
252} 251}
253 252
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index abf83881f68a..1a54ae14a192 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -104,6 +104,16 @@ static void set_grace_period(void)
104 schedule_delayed_work(&grace_period_end, grace_period); 104 schedule_delayed_work(&grace_period_end, grace_period);
105} 105}
106 106
107static void restart_grace(void)
108{
109 if (nlmsvc_ops) {
110 cancel_delayed_work_sync(&grace_period_end);
111 locks_end_grace(&lockd_manager);
112 nlmsvc_invalidate_all();
113 set_grace_period();
114 }
115}
116
107/* 117/*
108 * This is the lockd kernel thread 118 * This is the lockd kernel thread
109 */ 119 */
@@ -149,10 +159,7 @@ lockd(void *vrqstp)
149 159
150 if (signalled()) { 160 if (signalled()) {
151 flush_signals(current); 161 flush_signals(current);
152 if (nlmsvc_ops) { 162 restart_grace();
153 nlmsvc_invalidate_all();
154 set_grace_period();
155 }
156 continue; 163 continue;
157 } 164 }
158 165
diff --git a/fs/namei.c b/fs/namei.c
index b8433ebfae05..967c3db92724 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1130,8 +1130,8 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
1130 * @nd: pointer to nameidata 1130 * @nd: pointer to nameidata
1131 * @open_flags: open intent flags 1131 * @open_flags: open intent flags
1132 */ 1132 */
1133int path_lookup_open(int dfd, const char *name, unsigned int lookup_flags, 1133static int path_lookup_open(int dfd, const char *name,
1134 struct nameidata *nd, int open_flags) 1134 unsigned int lookup_flags, struct nameidata *nd, int open_flags)
1135{ 1135{
1136 struct file *filp = get_empty_filp(); 1136 struct file *filp = get_empty_filp();
1137 int err; 1137 int err;
@@ -1248,6 +1248,8 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len)
1248 int err; 1248 int err;
1249 struct qstr this; 1249 struct qstr this;
1250 1250
1251 WARN_ON_ONCE(!mutex_is_locked(&base->d_inode->i_mutex));
1252
1251 err = __lookup_one_len(name, &this, base, len); 1253 err = __lookup_one_len(name, &this, base, len);
1252 if (err) 1254 if (err)
1253 return ERR_PTR(err); 1255 return ERR_PTR(err);
@@ -1635,18 +1637,19 @@ static int open_will_write_to_fs(int flag, struct inode *inode)
1635 * open_to_namei_flags() for more details. 1637 * open_to_namei_flags() for more details.
1636 */ 1638 */
1637struct file *do_filp_open(int dfd, const char *pathname, 1639struct file *do_filp_open(int dfd, const char *pathname,
1638 int open_flag, int mode) 1640 int open_flag, int mode, int acc_mode)
1639{ 1641{
1640 struct file *filp; 1642 struct file *filp;
1641 struct nameidata nd; 1643 struct nameidata nd;
1642 int acc_mode, error; 1644 int error;
1643 struct path path; 1645 struct path path;
1644 struct dentry *dir; 1646 struct dentry *dir;
1645 int count = 0; 1647 int count = 0;
1646 int will_write; 1648 int will_write;
1647 int flag = open_to_namei_flags(open_flag); 1649 int flag = open_to_namei_flags(open_flag);
1648 1650
1649 acc_mode = MAY_OPEN | ACC_MODE(flag); 1651 if (!acc_mode)
1652 acc_mode = MAY_OPEN | ACC_MODE(flag);
1650 1653
1651 /* O_TRUNC implies we need access checks for write permissions */ 1654 /* O_TRUNC implies we need access checks for write permissions */
1652 if (flag & O_TRUNC) 1655 if (flag & O_TRUNC)
@@ -1867,7 +1870,7 @@ do_link:
1867 */ 1870 */
1868struct file *filp_open(const char *filename, int flags, int mode) 1871struct file *filp_open(const char *filename, int flags, int mode)
1869{ 1872{
1870 return do_filp_open(AT_FDCWD, filename, flags, mode); 1873 return do_filp_open(AT_FDCWD, filename, flags, mode, 0);
1871} 1874}
1872EXPORT_SYMBOL(filp_open); 1875EXPORT_SYMBOL(filp_open);
1873 1876
diff --git a/fs/namespace.c b/fs/namespace.c
index c6f54e4c4290..134d494158d9 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -695,12 +695,16 @@ static inline void mangle(struct seq_file *m, const char *s)
695 */ 695 */
696int generic_show_options(struct seq_file *m, struct vfsmount *mnt) 696int generic_show_options(struct seq_file *m, struct vfsmount *mnt)
697{ 697{
698 const char *options = mnt->mnt_sb->s_options; 698 const char *options;
699
700 rcu_read_lock();
701 options = rcu_dereference(mnt->mnt_sb->s_options);
699 702
700 if (options != NULL && options[0]) { 703 if (options != NULL && options[0]) {
701 seq_putc(m, ','); 704 seq_putc(m, ',');
702 mangle(m, options); 705 mangle(m, options);
703 } 706 }
707 rcu_read_unlock();
704 708
705 return 0; 709 return 0;
706} 710}
@@ -721,11 +725,22 @@ EXPORT_SYMBOL(generic_show_options);
721 */ 725 */
722void save_mount_options(struct super_block *sb, char *options) 726void save_mount_options(struct super_block *sb, char *options)
723{ 727{
724 kfree(sb->s_options); 728 BUG_ON(sb->s_options);
725 sb->s_options = kstrdup(options, GFP_KERNEL); 729 rcu_assign_pointer(sb->s_options, kstrdup(options, GFP_KERNEL));
726} 730}
727EXPORT_SYMBOL(save_mount_options); 731EXPORT_SYMBOL(save_mount_options);
728 732
733void replace_mount_options(struct super_block *sb, char *options)
734{
735 char *old = sb->s_options;
736 rcu_assign_pointer(sb->s_options, options);
737 if (old) {
738 synchronize_rcu();
739 kfree(old);
740 }
741}
742EXPORT_SYMBOL(replace_mount_options);
743
729#ifdef CONFIG_PROC_FS 744#ifdef CONFIG_PROC_FS
730/* iterator */ 745/* iterator */
731static void *m_start(struct seq_file *m, loff_t *pos) 746static void *m_start(struct seq_file *m, loff_t *pos)
@@ -1073,9 +1088,7 @@ static int do_umount(struct vfsmount *mnt, int flags)
1073 */ 1088 */
1074 1089
1075 if (flags & MNT_FORCE && sb->s_op->umount_begin) { 1090 if (flags & MNT_FORCE && sb->s_op->umount_begin) {
1076 lock_kernel();
1077 sb->s_op->umount_begin(sb); 1091 sb->s_op->umount_begin(sb);
1078 unlock_kernel();
1079 } 1092 }
1080 1093
1081 /* 1094 /*
@@ -1377,7 +1390,7 @@ static int attach_recursive_mnt(struct vfsmount *source_mnt,
1377 if (parent_path) { 1390 if (parent_path) {
1378 detach_mnt(source_mnt, parent_path); 1391 detach_mnt(source_mnt, parent_path);
1379 attach_mnt(source_mnt, path); 1392 attach_mnt(source_mnt, path);
1380 touch_mnt_namespace(current->nsproxy->mnt_ns); 1393 touch_mnt_namespace(parent_path->mnt->mnt_ns);
1381 } else { 1394 } else {
1382 mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt); 1395 mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt);
1383 commit_tree(source_mnt); 1396 commit_tree(source_mnt);
@@ -1920,8 +1933,9 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
1920 if (data_page) 1933 if (data_page)
1921 ((char *)data_page)[PAGE_SIZE - 1] = 0; 1934 ((char *)data_page)[PAGE_SIZE - 1] = 0;
1922 1935
1923 /* Default to relatime */ 1936 /* Default to relatime unless overriden */
1924 mnt_flags |= MNT_RELATIME; 1937 if (!(flags & MS_NOATIME))
1938 mnt_flags |= MNT_RELATIME;
1925 1939
1926 /* Separate the per-mountpoint flags */ 1940 /* Separate the per-mountpoint flags */
1927 if (flags & MS_NOSUID) 1941 if (flags & MS_NOSUID)
diff --git a/fs/ncpfs/ioctl.c b/fs/ncpfs/ioctl.c
index f54360f50a9c..fa038df63ac8 100644
--- a/fs/ncpfs/ioctl.c
+++ b/fs/ncpfs/ioctl.c
@@ -660,13 +660,10 @@ outrel:
660 if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN) 660 if (user.object_name_len > NCP_OBJECT_NAME_MAX_LEN)
661 return -ENOMEM; 661 return -ENOMEM;
662 if (user.object_name_len) { 662 if (user.object_name_len) {
663 newname = kmalloc(user.object_name_len, GFP_USER); 663 newname = memdup_user(user.object_name,
664 if (!newname) 664 user.object_name_len);
665 return -ENOMEM; 665 if (IS_ERR(newname))
666 if (copy_from_user(newname, user.object_name, user.object_name_len)) { 666 return PTR_ERR(newname);
667 kfree(newname);
668 return -EFAULT;
669 }
670 } else { 667 } else {
671 newname = NULL; 668 newname = NULL;
672 } 669 }
@@ -760,13 +757,9 @@ outrel:
760 if (user.len > NCP_PRIVATE_DATA_MAX_LEN) 757 if (user.len > NCP_PRIVATE_DATA_MAX_LEN)
761 return -ENOMEM; 758 return -ENOMEM;
762 if (user.len) { 759 if (user.len) {
763 new = kmalloc(user.len, GFP_USER); 760 new = memdup_user(user.data, user.len);
764 if (!new) 761 if (IS_ERR(new))
765 return -ENOMEM; 762 return PTR_ERR(new);
766 if (copy_from_user(new, user.data, user.len)) {
767 kfree(new);
768 return -EFAULT;
769 }
770 } else { 763 } else {
771 new = NULL; 764 new = NULL;
772 } 765 }
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 5a97bcfe03e5..ec7e27d00bc6 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -517,10 +517,10 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
517 517
518 ret = nfs_updatepage(filp, page, 0, pagelen); 518 ret = nfs_updatepage(filp, page, 0, pagelen);
519out_unlock: 519out_unlock:
520 if (!ret)
521 return VM_FAULT_LOCKED;
520 unlock_page(page); 522 unlock_page(page);
521 if (ret) 523 return VM_FAULT_SIGBUS;
522 ret = VM_FAULT_SIGBUS;
523 return ret;
524} 524}
525 525
526static struct vm_operations_struct nfs_file_vm_ops = { 526static struct vm_operations_struct nfs_file_vm_ops = {
diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c
index e6a1932c7110..35869a4921f1 100644
--- a/fs/nfs/nfs3xdr.c
+++ b/fs/nfs/nfs3xdr.c
@@ -713,7 +713,8 @@ nfs3_xdr_setaclargs(struct rpc_rqst *req, __be32 *p,
713 if (args->npages != 0) 713 if (args->npages != 0)
714 xdr_encode_pages(buf, args->pages, 0, args->len); 714 xdr_encode_pages(buf, args->pages, 0, args->len);
715 else 715 else
716 req->rq_slen += args->len; 716 req->rq_slen = xdr_adjust_iovec(req->rq_svec,
717 p + XDR_QUADLEN(args->len));
717 718
718 err = nfsacl_encode(buf, base, args->inode, 719 err = nfsacl_encode(buf, base, args->inode,
719 (args->mask & NFS_ACL) ? 720 (args->mask & NFS_ACL) ?
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 6717200923fe..d2d67781c579 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -683,9 +683,12 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
683 */ 683 */
684static void nfs_umount_begin(struct super_block *sb) 684static void nfs_umount_begin(struct super_block *sb)
685{ 685{
686 struct nfs_server *server = NFS_SB(sb); 686 struct nfs_server *server;
687 struct rpc_clnt *rpc; 687 struct rpc_clnt *rpc;
688 688
689 lock_kernel();
690
691 server = NFS_SB(sb);
689 /* -EIO all pending I/O */ 692 /* -EIO all pending I/O */
690 rpc = server->client_acl; 693 rpc = server->client_acl;
691 if (!IS_ERR(rpc)) 694 if (!IS_ERR(rpc))
@@ -693,6 +696,8 @@ static void nfs_umount_begin(struct super_block *sb)
693 rpc = server->client; 696 rpc = server->client;
694 if (!IS_ERR(rpc)) 697 if (!IS_ERR(rpc))
695 rpc_killall_tasks(rpc); 698 rpc_killall_tasks(rpc);
699
700 unlock_kernel();
696} 701}
697 702
698/* 703/*
@@ -2106,8 +2111,7 @@ out_err_nosb:
2106error_splat_root: 2111error_splat_root:
2107 dput(mntroot); 2112 dput(mntroot);
2108error_splat_super: 2113error_splat_super:
2109 up_write(&s->s_umount); 2114 deactivate_locked_super(s);
2110 deactivate_super(s);
2111 goto out; 2115 goto out;
2112} 2116}
2113 2117
@@ -2203,8 +2207,7 @@ out_err_noserver:
2203 return error; 2207 return error;
2204 2208
2205error_splat_super: 2209error_splat_super:
2206 up_write(&s->s_umount); 2210 deactivate_locked_super(s);
2207 deactivate_super(s);
2208 dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error); 2211 dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error);
2209 return error; 2212 return error;
2210} 2213}
@@ -2464,8 +2467,7 @@ out_free:
2464error_splat_root: 2467error_splat_root:
2465 dput(mntroot); 2468 dput(mntroot);
2466error_splat_super: 2469error_splat_super:
2467 up_write(&s->s_umount); 2470 deactivate_locked_super(s);
2468 deactivate_super(s);
2469 goto out; 2471 goto out;
2470} 2472}
2471 2473
@@ -2559,8 +2561,7 @@ out_err_noserver:
2559 return error; 2561 return error;
2560 2562
2561error_splat_super: 2563error_splat_super:
2562 up_write(&s->s_umount); 2564 deactivate_locked_super(s);
2563 deactivate_super(s);
2564 dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error); 2565 dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error);
2565 return error; 2566 return error;
2566} 2567}
@@ -2644,8 +2645,7 @@ out_err_noserver:
2644 return error; 2645 return error;
2645 2646
2646error_splat_super: 2647error_splat_super:
2647 up_write(&s->s_umount); 2648 deactivate_locked_super(s);
2648 deactivate_super(s);
2649 dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error); 2649 dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error);
2650 return error; 2650 return error;
2651} 2651}
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 3444c0052a87..b5348405046b 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -229,21 +229,23 @@ nfsd4_list_rec_dir(struct dentry *dir, recdir_func *f)
229 goto out; 229 goto out;
230 status = vfs_readdir(filp, nfsd4_build_namelist, &names); 230 status = vfs_readdir(filp, nfsd4_build_namelist, &names);
231 fput(filp); 231 fput(filp);
232 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
232 while (!list_empty(&names)) { 233 while (!list_empty(&names)) {
233 entry = list_entry(names.next, struct name_list, list); 234 entry = list_entry(names.next, struct name_list, list);
234 235
235 dentry = lookup_one_len(entry->name, dir, HEXDIR_LEN-1); 236 dentry = lookup_one_len(entry->name, dir, HEXDIR_LEN-1);
236 if (IS_ERR(dentry)) { 237 if (IS_ERR(dentry)) {
237 status = PTR_ERR(dentry); 238 status = PTR_ERR(dentry);
238 goto out; 239 break;
239 } 240 }
240 status = f(dir, dentry); 241 status = f(dir, dentry);
241 dput(dentry); 242 dput(dentry);
242 if (status) 243 if (status)
243 goto out; 244 break;
244 list_del(&entry->list); 245 list_del(&entry->list);
245 kfree(entry); 246 kfree(entry);
246 } 247 }
248 mutex_unlock(&dir->d_inode->i_mutex);
247out: 249out:
248 while (!list_empty(&names)) { 250 while (!list_empty(&names)) {
249 entry = list_entry(names.next, struct name_list, list); 251 entry = list_entry(names.next, struct name_list, list);
@@ -255,36 +257,6 @@ out:
255} 257}
256 258
257static int 259static int
258nfsd4_remove_clid_file(struct dentry *dir, struct dentry *dentry)
259{
260 int status;
261
262 if (!S_ISREG(dir->d_inode->i_mode)) {
263 printk("nfsd4: non-file found in client recovery directory\n");
264 return -EINVAL;
265 }
266 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
267 status = vfs_unlink(dir->d_inode, dentry);
268 mutex_unlock(&dir->d_inode->i_mutex);
269 return status;
270}
271
272static int
273nfsd4_clear_clid_dir(struct dentry *dir, struct dentry *dentry)
274{
275 int status;
276
277 /* For now this directory should already be empty, but we empty it of
278 * any regular files anyway, just in case the directory was created by
279 * a kernel from the future.... */
280 nfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file);
281 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
282 status = vfs_rmdir(dir->d_inode, dentry);
283 mutex_unlock(&dir->d_inode->i_mutex);
284 return status;
285}
286
287static int
288nfsd4_unlink_clid_dir(char *name, int namlen) 260nfsd4_unlink_clid_dir(char *name, int namlen)
289{ 261{
290 struct dentry *dentry; 262 struct dentry *dentry;
@@ -292,20 +264,20 @@ nfsd4_unlink_clid_dir(char *name, int namlen)
292 264
293 dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name); 265 dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name);
294 266
295 mutex_lock(&rec_dir.dentry->d_inode->i_mutex); 267 mutex_lock_nested(&rec_dir.dentry->d_inode->i_mutex, I_MUTEX_PARENT);
296 dentry = lookup_one_len(name, rec_dir.dentry, namlen); 268 dentry = lookup_one_len(name, rec_dir.dentry, namlen);
297 mutex_unlock(&rec_dir.dentry->d_inode->i_mutex);
298 if (IS_ERR(dentry)) { 269 if (IS_ERR(dentry)) {
299 status = PTR_ERR(dentry); 270 status = PTR_ERR(dentry);
300 return status; 271 goto out_unlock;
301 } 272 }
302 status = -ENOENT; 273 status = -ENOENT;
303 if (!dentry->d_inode) 274 if (!dentry->d_inode)
304 goto out; 275 goto out;
305 276 status = vfs_rmdir(rec_dir.dentry->d_inode, dentry);
306 status = nfsd4_clear_clid_dir(rec_dir.dentry, dentry);
307out: 277out:
308 dput(dentry); 278 dput(dentry);
279out_unlock:
280 mutex_unlock(&rec_dir.dentry->d_inode->i_mutex);
309 return status; 281 return status;
310} 282}
311 283
@@ -348,7 +320,7 @@ purge_old(struct dentry *parent, struct dentry *child)
348 if (nfs4_has_reclaimed_state(child->d_name.name, false)) 320 if (nfs4_has_reclaimed_state(child->d_name.name, false))
349 return 0; 321 return 0;
350 322
351 status = nfsd4_clear_clid_dir(parent, child); 323 status = vfs_rmdir(parent->d_inode, child);
352 if (status) 324 if (status)
353 printk("failed to remove client recovery directory %s\n", 325 printk("failed to remove client recovery directory %s\n",
354 child->d_name.name); 326 child->d_name.name);
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index c65a27b76a9d..3b711f5147a7 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -580,7 +580,6 @@ free_session(struct kref *kref)
580 struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry; 580 struct nfsd4_cache_entry *e = &ses->se_slots[i].sl_cache_entry;
581 nfsd4_release_respages(e->ce_respages, e->ce_resused); 581 nfsd4_release_respages(e->ce_respages, e->ce_resused);
582 } 582 }
583 kfree(ses->se_slots);
584 kfree(ses); 583 kfree(ses);
585} 584}
586 585
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index b820c311931c..b73549d293be 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2214,6 +2214,15 @@ nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd,
2214 dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen); 2214 dentry = lookup_one_len(name, cd->rd_fhp->fh_dentry, namlen);
2215 if (IS_ERR(dentry)) 2215 if (IS_ERR(dentry))
2216 return nfserrno(PTR_ERR(dentry)); 2216 return nfserrno(PTR_ERR(dentry));
2217 if (!dentry->d_inode) {
2218 /*
2219 * nfsd_buffered_readdir drops the i_mutex between
2220 * readdir and calling this callback, leaving a window
2221 * where this directory entry could have gone away.
2222 */
2223 dput(dentry);
2224 return nfserr_noent;
2225 }
2217 2226
2218 exp_get(exp); 2227 exp_get(exp);
2219 /* 2228 /*
@@ -2276,6 +2285,7 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2276 struct nfsd4_readdir *cd = container_of(ccd, struct nfsd4_readdir, common); 2285 struct nfsd4_readdir *cd = container_of(ccd, struct nfsd4_readdir, common);
2277 int buflen; 2286 int buflen;
2278 __be32 *p = cd->buffer; 2287 __be32 *p = cd->buffer;
2288 __be32 *cookiep;
2279 __be32 nfserr = nfserr_toosmall; 2289 __be32 nfserr = nfserr_toosmall;
2280 2290
2281 /* In nfsv4, "." and ".." never make it onto the wire.. */ 2291 /* In nfsv4, "." and ".." never make it onto the wire.. */
@@ -2292,7 +2302,7 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2292 goto fail; 2302 goto fail;
2293 2303
2294 *p++ = xdr_one; /* mark entry present */ 2304 *p++ = xdr_one; /* mark entry present */
2295 cd->offset = p; /* remember pointer */ 2305 cookiep = p;
2296 p = xdr_encode_hyper(p, NFS_OFFSET_MAX); /* offset of next entry */ 2306 p = xdr_encode_hyper(p, NFS_OFFSET_MAX); /* offset of next entry */
2297 p = xdr_encode_array(p, name, namlen); /* name length & name */ 2307 p = xdr_encode_array(p, name, namlen); /* name length & name */
2298 2308
@@ -2306,6 +2316,8 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2306 goto fail; 2316 goto fail;
2307 case nfserr_dropit: 2317 case nfserr_dropit:
2308 goto fail; 2318 goto fail;
2319 case nfserr_noent:
2320 goto skip_entry;
2309 default: 2321 default:
2310 /* 2322 /*
2311 * If the client requested the RDATTR_ERROR attribute, 2323 * If the client requested the RDATTR_ERROR attribute,
@@ -2324,6 +2336,8 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
2324 } 2336 }
2325 cd->buflen -= (p - cd->buffer); 2337 cd->buflen -= (p - cd->buffer);
2326 cd->buffer = p; 2338 cd->buffer = p;
2339 cd->offset = cookiep;
2340skip_entry:
2327 cd->common.err = nfs_ok; 2341 cd->common.err = nfs_ok;
2328 return 0; 2342 return 0;
2329fail: 2343fail:
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index ab93fcfef254..6c68ffd6b4bb 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -116,10 +116,15 @@ nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp,
116 } 116 }
117 if ((exp->ex_flags & NFSEXP_CROSSMOUNT) || EX_NOHIDE(exp2)) { 117 if ((exp->ex_flags & NFSEXP_CROSSMOUNT) || EX_NOHIDE(exp2)) {
118 /* successfully crossed mount point */ 118 /* successfully crossed mount point */
119 exp_put(exp); 119 /*
120 *expp = exp2; 120 * This is subtle: dentry is *not* under mnt at this point.
121 * The only reason we are safe is that original mnt is pinned
122 * down by exp, so we should dput before putting exp.
123 */
121 dput(dentry); 124 dput(dentry);
122 *dpp = mounts; 125 *dpp = mounts;
126 exp_put(exp);
127 *expp = exp2;
123 } else { 128 } else {
124 exp_put(exp2); 129 exp_put(exp2);
125 dput(mounts); 130 dput(mounts);
@@ -1885,8 +1890,8 @@ static int nfsd_buffered_filldir(void *__buf, const char *name, int namlen,
1885 return 0; 1890 return 0;
1886} 1891}
1887 1892
1888static int nfsd_buffered_readdir(struct file *file, filldir_t func, 1893static __be32 nfsd_buffered_readdir(struct file *file, filldir_t func,
1889 struct readdir_cd *cdp, loff_t *offsetp) 1894 struct readdir_cd *cdp, loff_t *offsetp)
1890{ 1895{
1891 struct readdir_data buf; 1896 struct readdir_data buf;
1892 struct buffered_dirent *de; 1897 struct buffered_dirent *de;
@@ -1896,11 +1901,12 @@ static int nfsd_buffered_readdir(struct file *file, filldir_t func,
1896 1901
1897 buf.dirent = (void *)__get_free_page(GFP_KERNEL); 1902 buf.dirent = (void *)__get_free_page(GFP_KERNEL);
1898 if (!buf.dirent) 1903 if (!buf.dirent)
1899 return -ENOMEM; 1904 return nfserrno(-ENOMEM);
1900 1905
1901 offset = *offsetp; 1906 offset = *offsetp;
1902 1907
1903 while (1) { 1908 while (1) {
1909 struct inode *dir_inode = file->f_path.dentry->d_inode;
1904 unsigned int reclen; 1910 unsigned int reclen;
1905 1911
1906 cdp->err = nfserr_eof; /* will be cleared on successful read */ 1912 cdp->err = nfserr_eof; /* will be cleared on successful read */
@@ -1919,26 +1925,38 @@ static int nfsd_buffered_readdir(struct file *file, filldir_t func,
1919 if (!size) 1925 if (!size)
1920 break; 1926 break;
1921 1927
1928 /*
1929 * Various filldir functions may end up calling back into
1930 * lookup_one_len() and the file system's ->lookup() method.
1931 * These expect i_mutex to be held, as it would within readdir.
1932 */
1933 host_err = mutex_lock_killable(&dir_inode->i_mutex);
1934 if (host_err)
1935 break;
1936
1922 de = (struct buffered_dirent *)buf.dirent; 1937 de = (struct buffered_dirent *)buf.dirent;
1923 while (size > 0) { 1938 while (size > 0) {
1924 offset = de->offset; 1939 offset = de->offset;
1925 1940
1926 if (func(cdp, de->name, de->namlen, de->offset, 1941 if (func(cdp, de->name, de->namlen, de->offset,
1927 de->ino, de->d_type)) 1942 de->ino, de->d_type))
1928 goto done; 1943 break;
1929 1944
1930 if (cdp->err != nfs_ok) 1945 if (cdp->err != nfs_ok)
1931 goto done; 1946 break;
1932 1947
1933 reclen = ALIGN(sizeof(*de) + de->namlen, 1948 reclen = ALIGN(sizeof(*de) + de->namlen,
1934 sizeof(u64)); 1949 sizeof(u64));
1935 size -= reclen; 1950 size -= reclen;
1936 de = (struct buffered_dirent *)((char *)de + reclen); 1951 de = (struct buffered_dirent *)((char *)de + reclen);
1937 } 1952 }
1953 mutex_unlock(&dir_inode->i_mutex);
1954 if (size > 0) /* We bailed out early */
1955 break;
1956
1938 offset = vfs_llseek(file, 0, SEEK_CUR); 1957 offset = vfs_llseek(file, 0, SEEK_CUR);
1939 } 1958 }
1940 1959
1941 done:
1942 free_page((unsigned long)(buf.dirent)); 1960 free_page((unsigned long)(buf.dirent));
1943 1961
1944 if (host_err) 1962 if (host_err)
diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
index 24638e059bf3..064279e33bbb 100644
--- a/fs/nilfs2/bmap.c
+++ b/fs/nilfs2/bmap.c
@@ -688,6 +688,8 @@ static const struct nilfs_bmap_ptr_operations nilfs_bmap_ptr_ops_gc = {
688 .bpop_translate = NULL, 688 .bpop_translate = NULL,
689}; 689};
690 690
691static struct lock_class_key nilfs_bmap_dat_lock_key;
692
691/** 693/**
692 * nilfs_bmap_read - read a bmap from an inode 694 * nilfs_bmap_read - read a bmap from an inode
693 * @bmap: bmap 695 * @bmap: bmap
@@ -715,6 +717,7 @@ int nilfs_bmap_read(struct nilfs_bmap *bmap, struct nilfs_inode *raw_inode)
715 bmap->b_pops = &nilfs_bmap_ptr_ops_p; 717 bmap->b_pops = &nilfs_bmap_ptr_ops_p;
716 bmap->b_last_allocated_key = 0; /* XXX: use macro */ 718 bmap->b_last_allocated_key = 0; /* XXX: use macro */
717 bmap->b_last_allocated_ptr = NILFS_BMAP_NEW_PTR_INIT; 719 bmap->b_last_allocated_ptr = NILFS_BMAP_NEW_PTR_INIT;
720 lockdep_set_class(&bmap->b_sem, &nilfs_bmap_dat_lock_key);
718 break; 721 break;
719 case NILFS_CPFILE_INO: 722 case NILFS_CPFILE_INO:
720 case NILFS_SUFILE_INO: 723 case NILFS_SUFILE_INO:
@@ -772,6 +775,7 @@ void nilfs_bmap_init_gcdat(struct nilfs_bmap *gcbmap, struct nilfs_bmap *bmap)
772{ 775{
773 memcpy(gcbmap, bmap, sizeof(union nilfs_bmap_union)); 776 memcpy(gcbmap, bmap, sizeof(union nilfs_bmap_union));
774 init_rwsem(&gcbmap->b_sem); 777 init_rwsem(&gcbmap->b_sem);
778 lockdep_set_class(&bmap->b_sem, &nilfs_bmap_dat_lock_key);
775 gcbmap->b_inode = &NILFS_BMAP_I(gcbmap)->vfs_inode; 779 gcbmap->b_inode = &NILFS_BMAP_I(gcbmap)->vfs_inode;
776} 780}
777 781
@@ -779,5 +783,6 @@ void nilfs_bmap_commit_gcdat(struct nilfs_bmap *gcbmap, struct nilfs_bmap *bmap)
779{ 783{
780 memcpy(bmap, gcbmap, sizeof(union nilfs_bmap_union)); 784 memcpy(bmap, gcbmap, sizeof(union nilfs_bmap_union));
781 init_rwsem(&bmap->b_sem); 785 init_rwsem(&bmap->b_sem);
786 lockdep_set_class(&bmap->b_sem, &nilfs_bmap_dat_lock_key);
782 bmap->b_inode = &NILFS_BMAP_I(bmap)->vfs_inode; 787 bmap->b_inode = &NILFS_BMAP_I(bmap)->vfs_inode;
783} 788}
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c
index 108d281ebca5..50ff3f2cdf24 100644
--- a/fs/nilfs2/ioctl.c
+++ b/fs/nilfs2/ioctl.c
@@ -25,6 +25,7 @@
25#include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */ 25#include <linux/smp_lock.h> /* lock_kernel(), unlock_kernel() */
26#include <linux/capability.h> /* capable() */ 26#include <linux/capability.h> /* capable() */
27#include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */ 27#include <linux/uaccess.h> /* copy_from_user(), copy_to_user() */
28#include <linux/vmalloc.h>
28#include <linux/nilfs2_fs.h> 29#include <linux/nilfs2_fs.h>
29#include "nilfs.h" 30#include "nilfs.h"
30#include "segment.h" 31#include "segment.h"
@@ -147,29 +148,12 @@ static ssize_t
147nilfs_ioctl_do_get_cpinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 148nilfs_ioctl_do_get_cpinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
148 void *buf, size_t size, size_t nmembs) 149 void *buf, size_t size, size_t nmembs)
149{ 150{
150 return nilfs_cpfile_get_cpinfo(nilfs->ns_cpfile, posp, flags, buf,
151 nmembs);
152}
153
154static int nilfs_ioctl_get_cpinfo(struct inode *inode, struct file *filp,
155 unsigned int cmd, void __user *argp)
156{
157 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
158 struct nilfs_argv argv;
159 int ret; 151 int ret;
160 152
161 if (copy_from_user(&argv, argp, sizeof(argv)))
162 return -EFAULT;
163
164 down_read(&nilfs->ns_segctor_sem); 153 down_read(&nilfs->ns_segctor_sem);
165 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 154 ret = nilfs_cpfile_get_cpinfo(nilfs->ns_cpfile, posp, flags, buf,
166 nilfs_ioctl_do_get_cpinfo); 155 nmembs);
167 up_read(&nilfs->ns_segctor_sem); 156 up_read(&nilfs->ns_segctor_sem);
168 if (ret < 0)
169 return ret;
170
171 if (copy_to_user(argp, &argv, sizeof(argv)))
172 ret = -EFAULT;
173 return ret; 157 return ret;
174} 158}
175 159
@@ -195,28 +179,11 @@ static ssize_t
195nilfs_ioctl_do_get_suinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 179nilfs_ioctl_do_get_suinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
196 void *buf, size_t size, size_t nmembs) 180 void *buf, size_t size, size_t nmembs)
197{ 181{
198 return nilfs_sufile_get_suinfo(nilfs->ns_sufile, *posp, buf, nmembs);
199}
200
201static int nilfs_ioctl_get_suinfo(struct inode *inode, struct file *filp,
202 unsigned int cmd, void __user *argp)
203{
204 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
205 struct nilfs_argv argv;
206 int ret; 182 int ret;
207 183
208 if (copy_from_user(&argv, argp, sizeof(argv)))
209 return -EFAULT;
210
211 down_read(&nilfs->ns_segctor_sem); 184 down_read(&nilfs->ns_segctor_sem);
212 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 185 ret = nilfs_sufile_get_suinfo(nilfs->ns_sufile, *posp, buf, nmembs);
213 nilfs_ioctl_do_get_suinfo);
214 up_read(&nilfs->ns_segctor_sem); 186 up_read(&nilfs->ns_segctor_sem);
215 if (ret < 0)
216 return ret;
217
218 if (copy_to_user(argp, &argv, sizeof(argv)))
219 ret = -EFAULT;
220 return ret; 187 return ret;
221} 188}
222 189
@@ -242,28 +209,11 @@ static ssize_t
242nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, 209nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
243 void *buf, size_t size, size_t nmembs) 210 void *buf, size_t size, size_t nmembs)
244{ 211{
245 return nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, nmembs);
246}
247
248static int nilfs_ioctl_get_vinfo(struct inode *inode, struct file *filp,
249 unsigned int cmd, void __user *argp)
250{
251 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
252 struct nilfs_argv argv;
253 int ret; 212 int ret;
254 213
255 if (copy_from_user(&argv, argp, sizeof(argv)))
256 return -EFAULT;
257
258 down_read(&nilfs->ns_segctor_sem); 214 down_read(&nilfs->ns_segctor_sem);
259 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 215 ret = nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, nmembs);
260 nilfs_ioctl_do_get_vinfo);
261 up_read(&nilfs->ns_segctor_sem); 216 up_read(&nilfs->ns_segctor_sem);
262 if (ret < 0)
263 return ret;
264
265 if (copy_to_user(argp, &argv, sizeof(argv)))
266 ret = -EFAULT;
267 return ret; 217 return ret;
268} 218}
269 219
@@ -276,17 +226,21 @@ nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags,
276 struct nilfs_bdesc *bdescs = buf; 226 struct nilfs_bdesc *bdescs = buf;
277 int ret, i; 227 int ret, i;
278 228
229 down_read(&nilfs->ns_segctor_sem);
279 for (i = 0; i < nmembs; i++) { 230 for (i = 0; i < nmembs; i++) {
280 ret = nilfs_bmap_lookup_at_level(bmap, 231 ret = nilfs_bmap_lookup_at_level(bmap,
281 bdescs[i].bd_offset, 232 bdescs[i].bd_offset,
282 bdescs[i].bd_level + 1, 233 bdescs[i].bd_level + 1,
283 &bdescs[i].bd_blocknr); 234 &bdescs[i].bd_blocknr);
284 if (ret < 0) { 235 if (ret < 0) {
285 if (ret != -ENOENT) 236 if (ret != -ENOENT) {
237 up_read(&nilfs->ns_segctor_sem);
286 return ret; 238 return ret;
239 }
287 bdescs[i].bd_blocknr = 0; 240 bdescs[i].bd_blocknr = 0;
288 } 241 }
289 } 242 }
243 up_read(&nilfs->ns_segctor_sem);
290 return nmembs; 244 return nmembs;
291} 245}
292 246
@@ -300,10 +254,11 @@ static int nilfs_ioctl_get_bdescs(struct inode *inode, struct file *filp,
300 if (copy_from_user(&argv, argp, sizeof(argv))) 254 if (copy_from_user(&argv, argp, sizeof(argv)))
301 return -EFAULT; 255 return -EFAULT;
302 256
303 down_read(&nilfs->ns_segctor_sem); 257 if (argv.v_size != sizeof(struct nilfs_bdesc))
258 return -EINVAL;
259
304 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), 260 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd),
305 nilfs_ioctl_do_get_bdescs); 261 nilfs_ioctl_do_get_bdescs);
306 up_read(&nilfs->ns_segctor_sem);
307 if (ret < 0) 262 if (ret < 0)
308 return ret; 263 return ret;
309 264
@@ -346,10 +301,10 @@ static int nilfs_ioctl_move_inode_block(struct inode *inode,
346 return 0; 301 return 0;
347} 302}
348 303
349static ssize_t 304static int nilfs_ioctl_move_blocks(struct the_nilfs *nilfs,
350nilfs_ioctl_do_move_blocks(struct the_nilfs *nilfs, __u64 *posp, int flags, 305 struct nilfs_argv *argv, void *buf)
351 void *buf, size_t size, size_t nmembs)
352{ 306{
307 size_t nmembs = argv->v_nmembs;
353 struct inode *inode; 308 struct inode *inode;
354 struct nilfs_vdesc *vdesc; 309 struct nilfs_vdesc *vdesc;
355 struct buffer_head *bh, *n; 310 struct buffer_head *bh, *n;
@@ -410,19 +365,10 @@ nilfs_ioctl_do_move_blocks(struct the_nilfs *nilfs, __u64 *posp, int flags,
410 return ret; 365 return ret;
411} 366}
412 367
413static inline int nilfs_ioctl_move_blocks(struct the_nilfs *nilfs, 368static int nilfs_ioctl_delete_checkpoints(struct the_nilfs *nilfs,
414 struct nilfs_argv *argv, 369 struct nilfs_argv *argv, void *buf)
415 int dir)
416{
417 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
418 nilfs_ioctl_do_move_blocks);
419}
420
421static ssize_t
422nilfs_ioctl_do_delete_checkpoints(struct the_nilfs *nilfs, __u64 *posp,
423 int flags, void *buf, size_t size,
424 size_t nmembs)
425{ 370{
371 size_t nmembs = argv->v_nmembs;
426 struct inode *cpfile = nilfs->ns_cpfile; 372 struct inode *cpfile = nilfs->ns_cpfile;
427 struct nilfs_period *periods = buf; 373 struct nilfs_period *periods = buf;
428 int ret, i; 374 int ret, i;
@@ -436,36 +382,21 @@ nilfs_ioctl_do_delete_checkpoints(struct the_nilfs *nilfs, __u64 *posp,
436 return nmembs; 382 return nmembs;
437} 383}
438 384
439static inline int nilfs_ioctl_delete_checkpoints(struct the_nilfs *nilfs, 385static int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs,
440 struct nilfs_argv *argv, 386 struct nilfs_argv *argv, void *buf)
441 int dir)
442{ 387{
443 return nilfs_ioctl_wrap_copy(nilfs, argv, dir, 388 size_t nmembs = argv->v_nmembs;
444 nilfs_ioctl_do_delete_checkpoints); 389 int ret;
445}
446 390
447static ssize_t 391 ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs);
448nilfs_ioctl_do_free_vblocknrs(struct the_nilfs *nilfs, __u64 *posp, int flags,
449 void *buf, size_t size, size_t nmembs)
450{
451 int ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs);
452 392
453 return (ret < 0) ? ret : nmembs; 393 return (ret < 0) ? ret : nmembs;
454} 394}
455 395
456static inline int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs, 396static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs,
457 struct nilfs_argv *argv, 397 struct nilfs_argv *argv, void *buf)
458 int dir)
459{
460 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
461 nilfs_ioctl_do_free_vblocknrs);
462}
463
464static ssize_t
465nilfs_ioctl_do_mark_blocks_dirty(struct the_nilfs *nilfs, __u64 *posp,
466 int flags, void *buf, size_t size,
467 size_t nmembs)
468{ 398{
399 size_t nmembs = argv->v_nmembs;
469 struct inode *dat = nilfs_dat_inode(nilfs); 400 struct inode *dat = nilfs_dat_inode(nilfs);
470 struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap; 401 struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap;
471 struct nilfs_bdesc *bdescs = buf; 402 struct nilfs_bdesc *bdescs = buf;
@@ -504,55 +435,37 @@ nilfs_ioctl_do_mark_blocks_dirty(struct the_nilfs *nilfs, __u64 *posp,
504 return nmembs; 435 return nmembs;
505} 436}
506 437
507static inline int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs, 438static int nilfs_ioctl_free_segments(struct the_nilfs *nilfs,
508 struct nilfs_argv *argv, 439 struct nilfs_argv *argv, void *buf)
509 int dir)
510{ 440{
511 return nilfs_ioctl_wrap_copy(nilfs, argv, dir, 441 size_t nmembs = argv->v_nmembs;
512 nilfs_ioctl_do_mark_blocks_dirty); 442 struct nilfs_sb_info *sbi = nilfs->ns_writer;
513}
514
515static ssize_t
516nilfs_ioctl_do_free_segments(struct the_nilfs *nilfs, __u64 *posp, int flags,
517 void *buf, size_t size, size_t nmembs)
518{
519 struct nilfs_sb_info *sbi = nilfs_get_writer(nilfs);
520 int ret; 443 int ret;
521 444
522 if (unlikely(!sbi)) 445 if (unlikely(!sbi)) {
446 /* never happens because called for a writable mount */
447 WARN_ON(1);
523 return -EROFS; 448 return -EROFS;
449 }
524 ret = nilfs_segctor_add_segments_to_be_freed( 450 ret = nilfs_segctor_add_segments_to_be_freed(
525 NILFS_SC(sbi), buf, nmembs); 451 NILFS_SC(sbi), buf, nmembs);
526 nilfs_put_writer(nilfs);
527 452
528 return (ret < 0) ? ret : nmembs; 453 return (ret < 0) ? ret : nmembs;
529} 454}
530 455
531static inline int nilfs_ioctl_free_segments(struct the_nilfs *nilfs,
532 struct nilfs_argv *argv,
533 int dir)
534{
535 return nilfs_ioctl_wrap_copy(nilfs, argv, dir,
536 nilfs_ioctl_do_free_segments);
537}
538
539int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs, 456int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
540 void __user *argp) 457 struct nilfs_argv *argv, void **kbufs)
541{ 458{
542 struct nilfs_argv argv[5];
543 const char *msg; 459 const char *msg;
544 int dir, ret; 460 int ret;
545
546 if (copy_from_user(argv, argp, sizeof(argv)))
547 return -EFAULT;
548 461
549 dir = _IOC_WRITE; 462 ret = nilfs_ioctl_move_blocks(nilfs, &argv[0], kbufs[0]);
550 ret = nilfs_ioctl_move_blocks(nilfs, &argv[0], dir);
551 if (ret < 0) { 463 if (ret < 0) {
552 msg = "cannot read source blocks"; 464 msg = "cannot read source blocks";
553 goto failed; 465 goto failed;
554 } 466 }
555 ret = nilfs_ioctl_delete_checkpoints(nilfs, &argv[1], dir); 467
468 ret = nilfs_ioctl_delete_checkpoints(nilfs, &argv[1], kbufs[1]);
556 if (ret < 0) { 469 if (ret < 0) {
557 /* 470 /*
558 * can safely abort because checkpoints can be removed 471 * can safely abort because checkpoints can be removed
@@ -561,7 +474,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
561 msg = "cannot delete checkpoints"; 474 msg = "cannot delete checkpoints";
562 goto failed; 475 goto failed;
563 } 476 }
564 ret = nilfs_ioctl_free_vblocknrs(nilfs, &argv[2], dir); 477 ret = nilfs_ioctl_free_vblocknrs(nilfs, &argv[2], kbufs[2]);
565 if (ret < 0) { 478 if (ret < 0) {
566 /* 479 /*
567 * can safely abort because DAT file is updated atomically 480 * can safely abort because DAT file is updated atomically
@@ -570,7 +483,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
570 msg = "cannot delete virtual blocks from DAT file"; 483 msg = "cannot delete virtual blocks from DAT file";
571 goto failed; 484 goto failed;
572 } 485 }
573 ret = nilfs_ioctl_mark_blocks_dirty(nilfs, &argv[3], dir); 486 ret = nilfs_ioctl_mark_blocks_dirty(nilfs, &argv[3], kbufs[3]);
574 if (ret < 0) { 487 if (ret < 0) {
575 /* 488 /*
576 * can safely abort because the operation is nondestructive. 489 * can safely abort because the operation is nondestructive.
@@ -578,7 +491,7 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
578 msg = "cannot mark copying blocks dirty"; 491 msg = "cannot mark copying blocks dirty";
579 goto failed; 492 goto failed;
580 } 493 }
581 ret = nilfs_ioctl_free_segments(nilfs, &argv[4], dir); 494 ret = nilfs_ioctl_free_segments(nilfs, &argv[4], kbufs[4]);
582 if (ret < 0) { 495 if (ret < 0) {
583 /* 496 /*
584 * can safely abort because this operation is atomic. 497 * can safely abort because this operation is atomic.
@@ -598,9 +511,75 @@ int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *nilfs,
598static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp, 511static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,
599 unsigned int cmd, void __user *argp) 512 unsigned int cmd, void __user *argp)
600{ 513{
514 struct nilfs_argv argv[5];
515 const static size_t argsz[5] = {
516 sizeof(struct nilfs_vdesc),
517 sizeof(struct nilfs_period),
518 sizeof(__u64),
519 sizeof(struct nilfs_bdesc),
520 sizeof(__u64),
521 };
522 void __user *base;
523 void *kbufs[5];
524 struct the_nilfs *nilfs;
525 size_t len, nsegs;
526 int n, ret;
527
601 if (!capable(CAP_SYS_ADMIN)) 528 if (!capable(CAP_SYS_ADMIN))
602 return -EPERM; 529 return -EPERM;
603 return nilfs_clean_segments(inode->i_sb, argp); 530
531 if (copy_from_user(argv, argp, sizeof(argv)))
532 return -EFAULT;
533
534 nsegs = argv[4].v_nmembs;
535 if (argv[4].v_size != argsz[4])
536 return -EINVAL;
537 /*
538 * argv[4] points to segment numbers this ioctl cleans. We
539 * use kmalloc() for its buffer because memory used for the
540 * segment numbers is enough small.
541 */
542 kbufs[4] = memdup_user((void __user *)(unsigned long)argv[4].v_base,
543 nsegs * sizeof(__u64));
544 if (IS_ERR(kbufs[4]))
545 return PTR_ERR(kbufs[4]);
546
547 nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
548
549 for (n = 0; n < 4; n++) {
550 ret = -EINVAL;
551 if (argv[n].v_size != argsz[n])
552 goto out_free;
553
554 if (argv[n].v_nmembs > nsegs * nilfs->ns_blocks_per_segment)
555 goto out_free;
556
557 len = argv[n].v_size * argv[n].v_nmembs;
558 base = (void __user *)(unsigned long)argv[n].v_base;
559 if (len == 0) {
560 kbufs[n] = NULL;
561 continue;
562 }
563
564 kbufs[n] = vmalloc(len);
565 if (!kbufs[n]) {
566 ret = -ENOMEM;
567 goto out_free;
568 }
569 if (copy_from_user(kbufs[n], base, len)) {
570 ret = -EFAULT;
571 vfree(kbufs[n]);
572 goto out_free;
573 }
574 }
575
576 ret = nilfs_clean_segments(inode->i_sb, argv, kbufs);
577
578 out_free:
579 while (--n > 0)
580 vfree(kbufs[n]);
581 kfree(kbufs[4]);
582 return ret;
604} 583}
605 584
606static int nilfs_ioctl_sync(struct inode *inode, struct file *filp, 585static int nilfs_ioctl_sync(struct inode *inode, struct file *filp,
@@ -621,6 +600,33 @@ static int nilfs_ioctl_sync(struct inode *inode, struct file *filp,
621 return 0; 600 return 0;
622} 601}
623 602
603static int nilfs_ioctl_get_info(struct inode *inode, struct file *filp,
604 unsigned int cmd, void __user *argp,
605 size_t membsz,
606 ssize_t (*dofunc)(struct the_nilfs *,
607 __u64 *, int,
608 void *, size_t, size_t))
609
610{
611 struct the_nilfs *nilfs = NILFS_SB(inode->i_sb)->s_nilfs;
612 struct nilfs_argv argv;
613 int ret;
614
615 if (copy_from_user(&argv, argp, sizeof(argv)))
616 return -EFAULT;
617
618 if (argv.v_size != membsz)
619 return -EINVAL;
620
621 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), dofunc);
622 if (ret < 0)
623 return ret;
624
625 if (copy_to_user(argp, &argv, sizeof(argv)))
626 ret = -EFAULT;
627 return ret;
628}
629
624long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 630long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
625{ 631{
626 struct inode *inode = filp->f_dentry->d_inode; 632 struct inode *inode = filp->f_dentry->d_inode;
@@ -632,16 +638,21 @@ long nilfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
632 case NILFS_IOCTL_DELETE_CHECKPOINT: 638 case NILFS_IOCTL_DELETE_CHECKPOINT:
633 return nilfs_ioctl_delete_checkpoint(inode, filp, cmd, argp); 639 return nilfs_ioctl_delete_checkpoint(inode, filp, cmd, argp);
634 case NILFS_IOCTL_GET_CPINFO: 640 case NILFS_IOCTL_GET_CPINFO:
635 return nilfs_ioctl_get_cpinfo(inode, filp, cmd, argp); 641 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
642 sizeof(struct nilfs_cpinfo),
643 nilfs_ioctl_do_get_cpinfo);
636 case NILFS_IOCTL_GET_CPSTAT: 644 case NILFS_IOCTL_GET_CPSTAT:
637 return nilfs_ioctl_get_cpstat(inode, filp, cmd, argp); 645 return nilfs_ioctl_get_cpstat(inode, filp, cmd, argp);
638 case NILFS_IOCTL_GET_SUINFO: 646 case NILFS_IOCTL_GET_SUINFO:
639 return nilfs_ioctl_get_suinfo(inode, filp, cmd, argp); 647 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
648 sizeof(struct nilfs_suinfo),
649 nilfs_ioctl_do_get_suinfo);
640 case NILFS_IOCTL_GET_SUSTAT: 650 case NILFS_IOCTL_GET_SUSTAT:
641 return nilfs_ioctl_get_sustat(inode, filp, cmd, argp); 651 return nilfs_ioctl_get_sustat(inode, filp, cmd, argp);
642 case NILFS_IOCTL_GET_VINFO: 652 case NILFS_IOCTL_GET_VINFO:
643 /* XXX: rename to ??? */ 653 return nilfs_ioctl_get_info(inode, filp, cmd, argp,
644 return nilfs_ioctl_get_vinfo(inode, filp, cmd, argp); 654 sizeof(struct nilfs_vinfo),
655 nilfs_ioctl_do_get_vinfo);
645 case NILFS_IOCTL_GET_BDESCS: 656 case NILFS_IOCTL_GET_BDESCS:
646 return nilfs_ioctl_get_bdescs(inode, filp, cmd, argp); 657 return nilfs_ioctl_get_bdescs(inode, filp, cmd, argp);
647 case NILFS_IOCTL_CLEAN_SEGMENTS: 658 case NILFS_IOCTL_CLEAN_SEGMENTS:
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
index 47dd815433fd..bb78745a0e30 100644
--- a/fs/nilfs2/mdt.c
+++ b/fs/nilfs2/mdt.c
@@ -77,19 +77,22 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block,
77 void *)) 77 void *))
78{ 78{
79 struct the_nilfs *nilfs = NILFS_MDT(inode)->mi_nilfs; 79 struct the_nilfs *nilfs = NILFS_MDT(inode)->mi_nilfs;
80 struct nilfs_sb_info *writer = NULL;
81 struct super_block *sb = inode->i_sb; 80 struct super_block *sb = inode->i_sb;
82 struct nilfs_transaction_info ti; 81 struct nilfs_transaction_info ti;
83 struct buffer_head *bh; 82 struct buffer_head *bh;
84 int err; 83 int err;
85 84
86 if (!sb) { 85 if (!sb) {
87 writer = nilfs_get_writer(nilfs); 86 /*
88 if (!writer) { 87 * Make sure this function is not called from any
88 * read-only context.
89 */
90 if (!nilfs->ns_writer) {
91 WARN_ON(1);
89 err = -EROFS; 92 err = -EROFS;
90 goto out; 93 goto out;
91 } 94 }
92 sb = writer->s_super; 95 sb = nilfs->ns_writer->s_super;
93 } 96 }
94 97
95 nilfs_transaction_begin(sb, &ti, 0); 98 nilfs_transaction_begin(sb, &ti, 0);
@@ -127,8 +130,6 @@ static int nilfs_mdt_create_block(struct inode *inode, unsigned long block,
127 err = nilfs_transaction_commit(sb); 130 err = nilfs_transaction_commit(sb);
128 else 131 else
129 nilfs_transaction_abort(sb); 132 nilfs_transaction_abort(sb);
130 if (writer)
131 nilfs_put_writer(nilfs);
132 out: 133 out:
133 return err; 134 return err;
134} 135}
@@ -299,7 +300,7 @@ int nilfs_mdt_delete_block(struct inode *inode, unsigned long block)
299 int err; 300 int err;
300 301
301 err = nilfs_bmap_delete(ii->i_bmap, block); 302 err = nilfs_bmap_delete(ii->i_bmap, block);
302 if (likely(!err)) { 303 if (!err || err == -ENOENT) {
303 nilfs_mdt_mark_dirty(inode); 304 nilfs_mdt_mark_dirty(inode);
304 nilfs_mdt_forget_block(inode, block); 305 nilfs_mdt_forget_block(inode, block);
305 } 306 }
diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h
index 7558c977db02..da6fc0bba2e5 100644
--- a/fs/nilfs2/nilfs.h
+++ b/fs/nilfs2/nilfs.h
@@ -35,11 +35,6 @@
35#include "bmap_union.h" 35#include "bmap_union.h"
36 36
37/* 37/*
38 * NILFS filesystem version
39 */
40#define NILFS_VERSION "2.0.5"
41
42/*
43 * nilfs inode data in memory 38 * nilfs inode data in memory
44 */ 39 */
45struct nilfs_inode_info { 40struct nilfs_inode_info {
@@ -241,7 +236,8 @@ extern int nilfs_sync_file(struct file *, struct dentry *, int);
241 236
242/* ioctl.c */ 237/* ioctl.c */
243long nilfs_ioctl(struct file *, unsigned int, unsigned long); 238long nilfs_ioctl(struct file *, unsigned int, unsigned long);
244int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *, void __user *); 239int nilfs_ioctl_prepare_clean_segments(struct the_nilfs *, struct nilfs_argv *,
240 void **);
245 241
246/* inode.c */ 242/* inode.c */
247extern struct inode *nilfs_new_inode(struct inode *, int); 243extern struct inode *nilfs_new_inode(struct inode *, int);
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 1bfbba9c0e9a..a2692bbc7b50 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -128,7 +128,8 @@ void nilfs_forget_buffer(struct buffer_head *bh)
128 128
129 lock_buffer(bh); 129 lock_buffer(bh);
130 clear_buffer_nilfs_volatile(bh); 130 clear_buffer_nilfs_volatile(bh);
131 if (test_clear_buffer_dirty(bh) && nilfs_page_buffers_clean(page)) 131 clear_buffer_dirty(bh);
132 if (nilfs_page_buffers_clean(page))
132 __nilfs_clear_page_dirty(page); 133 __nilfs_clear_page_dirty(page);
133 134
134 clear_buffer_uptodate(bh); 135 clear_buffer_uptodate(bh);
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
index 6ade0963fc1d..57afa9d24061 100644
--- a/fs/nilfs2/recovery.c
+++ b/fs/nilfs2/recovery.c
@@ -407,13 +407,13 @@ void nilfs_dispose_segment_list(struct list_head *head)
407} 407}
408 408
409static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs, 409static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
410 struct nilfs_sb_info *sbi,
410 struct nilfs_recovery_info *ri) 411 struct nilfs_recovery_info *ri)
411{ 412{
412 struct list_head *head = &ri->ri_used_segments; 413 struct list_head *head = &ri->ri_used_segments;
413 struct nilfs_segment_entry *ent, *n; 414 struct nilfs_segment_entry *ent, *n;
414 struct inode *sufile = nilfs->ns_sufile; 415 struct inode *sufile = nilfs->ns_sufile;
415 __u64 segnum[4]; 416 __u64 segnum[4];
416 time_t mtime;
417 int err; 417 int err;
418 int i; 418 int i;
419 419
@@ -422,6 +422,7 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
422 segnum[2] = ri->ri_segnum; 422 segnum[2] = ri->ri_segnum;
423 segnum[3] = ri->ri_nextnum; 423 segnum[3] = ri->ri_nextnum;
424 424
425 nilfs_attach_writer(nilfs, sbi);
425 /* 426 /*
426 * Releasing the next segment of the latest super root. 427 * Releasing the next segment of the latest super root.
427 * The next segment is invalidated by this recovery. 428 * The next segment is invalidated by this recovery.
@@ -442,24 +443,13 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
442 * Collecting segments written after the latest super root. 443 * Collecting segments written after the latest super root.
443 * These are marked dirty to avoid being reallocated in the next write. 444 * These are marked dirty to avoid being reallocated in the next write.
444 */ 445 */
445 mtime = get_seconds();
446 list_for_each_entry_safe(ent, n, head, list) { 446 list_for_each_entry_safe(ent, n, head, list) {
447 if (ent->segnum == segnum[0]) { 447 if (ent->segnum != segnum[0]) {
448 list_del(&ent->list); 448 err = nilfs_sufile_scrap(sufile, ent->segnum);
449 nilfs_free_segment_entry(ent); 449 if (unlikely(err))
450 continue; 450 goto failed;
451 }
452 err = nilfs_open_segment_entry(ent, sufile);
453 if (unlikely(err))
454 goto failed;
455 if (!nilfs_segment_usage_dirty(ent->raw_su)) {
456 /* make the segment garbage */
457 ent->raw_su->su_nblocks = cpu_to_le32(0);
458 ent->raw_su->su_lastmod = cpu_to_le32(mtime);
459 nilfs_segment_usage_set_dirty(ent->raw_su);
460 } 451 }
461 list_del(&ent->list); 452 list_del(&ent->list);
462 nilfs_close_segment_entry(ent, sufile);
463 nilfs_free_segment_entry(ent); 453 nilfs_free_segment_entry(ent);
464 } 454 }
465 455
@@ -471,10 +461,10 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
471 nilfs->ns_pseg_offset = 0; 461 nilfs->ns_pseg_offset = 0;
472 nilfs->ns_seg_seq = ri->ri_seq + 2; 462 nilfs->ns_seg_seq = ri->ri_seq + 2;
473 nilfs->ns_nextnum = nilfs->ns_segnum = segnum[0]; 463 nilfs->ns_nextnum = nilfs->ns_segnum = segnum[0];
474 return 0;
475 464
476 failed: 465 failed:
477 /* No need to recover sufile because it will be destroyed on error */ 466 /* No need to recover sufile because it will be destroyed on error */
467 nilfs_detach_writer(nilfs, sbi);
478 return err; 468 return err;
479} 469}
480 470
@@ -740,7 +730,7 @@ int nilfs_recover_logical_segments(struct the_nilfs *nilfs,
740 goto failed; 730 goto failed;
741 731
742 if (ri->ri_need_recovery == NILFS_RECOVERY_ROLLFORWARD_DONE) { 732 if (ri->ri_need_recovery == NILFS_RECOVERY_ROLLFORWARD_DONE) {
743 err = nilfs_prepare_segment_for_recovery(nilfs, ri); 733 err = nilfs_prepare_segment_for_recovery(nilfs, sbi, ri);
744 if (unlikely(err)) { 734 if (unlikely(err)) {
745 printk(KERN_ERR "NILFS: Error preparing segments for " 735 printk(KERN_ERR "NILFS: Error preparing segments for "
746 "recovery.\n"); 736 "recovery.\n");
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index fb70ec3be20e..22c7f65c2403 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -2589,7 +2589,8 @@ nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head)
2589 } 2589 }
2590} 2590}
2591 2591
2592int nilfs_clean_segments(struct super_block *sb, void __user *argp) 2592int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv,
2593 void **kbufs)
2593{ 2594{
2594 struct nilfs_sb_info *sbi = NILFS_SB(sb); 2595 struct nilfs_sb_info *sbi = NILFS_SB(sb);
2595 struct nilfs_sc_info *sci = NILFS_SC(sbi); 2596 struct nilfs_sc_info *sci = NILFS_SC(sbi);
@@ -2606,7 +2607,7 @@ int nilfs_clean_segments(struct super_block *sb, void __user *argp)
2606 err = nilfs_init_gcdat_inode(nilfs); 2607 err = nilfs_init_gcdat_inode(nilfs);
2607 if (unlikely(err)) 2608 if (unlikely(err))
2608 goto out_unlock; 2609 goto out_unlock;
2609 err = nilfs_ioctl_prepare_clean_segments(nilfs, argp); 2610 err = nilfs_ioctl_prepare_clean_segments(nilfs, argv, kbufs);
2610 if (unlikely(err)) 2611 if (unlikely(err))
2611 goto out_unlock; 2612 goto out_unlock;
2612 2613
diff --git a/fs/nilfs2/segment.h b/fs/nilfs2/segment.h
index a98fc1ed0bbb..476bdd5df5be 100644
--- a/fs/nilfs2/segment.h
+++ b/fs/nilfs2/segment.h
@@ -222,7 +222,8 @@ extern int nilfs_construct_segment(struct super_block *);
222extern int nilfs_construct_dsync_segment(struct super_block *, struct inode *, 222extern int nilfs_construct_dsync_segment(struct super_block *, struct inode *,
223 loff_t, loff_t); 223 loff_t, loff_t);
224extern void nilfs_flush_segment(struct super_block *, ino_t); 224extern void nilfs_flush_segment(struct super_block *, ino_t);
225extern int nilfs_clean_segments(struct super_block *, void __user *); 225extern int nilfs_clean_segments(struct super_block *, struct nilfs_argv *,
226 void **);
226 227
227extern int nilfs_segctor_add_segments_to_be_freed(struct nilfs_sc_info *, 228extern int nilfs_segctor_add_segments_to_be_freed(struct nilfs_sc_info *,
228 __u64 *, size_t); 229 __u64 *, size_t);
diff --git a/fs/nilfs2/sufile.c b/fs/nilfs2/sufile.c
index c774cf397e2f..98e68677f045 100644
--- a/fs/nilfs2/sufile.c
+++ b/fs/nilfs2/sufile.c
@@ -93,6 +93,52 @@ nilfs_sufile_get_segment_usage_block(struct inode *sufile, __u64 segnum,
93 create, NULL, bhp); 93 create, NULL, bhp);
94} 94}
95 95
96static void nilfs_sufile_mod_counter(struct buffer_head *header_bh,
97 u64 ncleanadd, u64 ndirtyadd)
98{
99 struct nilfs_sufile_header *header;
100 void *kaddr;
101
102 kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
103 header = kaddr + bh_offset(header_bh);
104 le64_add_cpu(&header->sh_ncleansegs, ncleanadd);
105 le64_add_cpu(&header->sh_ndirtysegs, ndirtyadd);
106 kunmap_atomic(kaddr, KM_USER0);
107
108 nilfs_mdt_mark_buffer_dirty(header_bh);
109}
110
111int nilfs_sufile_update(struct inode *sufile, __u64 segnum, int create,
112 void (*dofunc)(struct inode *, __u64,
113 struct buffer_head *,
114 struct buffer_head *))
115{
116 struct buffer_head *header_bh, *bh;
117 int ret;
118
119 if (unlikely(segnum >= nilfs_sufile_get_nsegments(sufile))) {
120 printk(KERN_WARNING "%s: invalid segment number: %llu\n",
121 __func__, (unsigned long long)segnum);
122 return -EINVAL;
123 }
124 down_write(&NILFS_MDT(sufile)->mi_sem);
125
126 ret = nilfs_sufile_get_header_block(sufile, &header_bh);
127 if (ret < 0)
128 goto out_sem;
129
130 ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, create, &bh);
131 if (!ret) {
132 dofunc(sufile, segnum, header_bh, bh);
133 brelse(bh);
134 }
135 brelse(header_bh);
136
137 out_sem:
138 up_write(&NILFS_MDT(sufile)->mi_sem);
139 return ret;
140}
141
96/** 142/**
97 * nilfs_sufile_alloc - allocate a segment 143 * nilfs_sufile_alloc - allocate a segment
98 * @sufile: inode of segment usage file 144 * @sufile: inode of segment usage file
@@ -113,7 +159,6 @@ nilfs_sufile_get_segment_usage_block(struct inode *sufile, __u64 segnum,
113int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump) 159int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
114{ 160{
115 struct buffer_head *header_bh, *su_bh; 161 struct buffer_head *header_bh, *su_bh;
116 struct the_nilfs *nilfs;
117 struct nilfs_sufile_header *header; 162 struct nilfs_sufile_header *header;
118 struct nilfs_segment_usage *su; 163 struct nilfs_segment_usage *su;
119 size_t susz = NILFS_MDT(sufile)->mi_entry_size; 164 size_t susz = NILFS_MDT(sufile)->mi_entry_size;
@@ -124,8 +169,6 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
124 169
125 down_write(&NILFS_MDT(sufile)->mi_sem); 170 down_write(&NILFS_MDT(sufile)->mi_sem);
126 171
127 nilfs = NILFS_MDT(sufile)->mi_nilfs;
128
129 ret = nilfs_sufile_get_header_block(sufile, &header_bh); 172 ret = nilfs_sufile_get_header_block(sufile, &header_bh);
130 if (ret < 0) 173 if (ret < 0)
131 goto out_sem; 174 goto out_sem;
@@ -192,165 +235,84 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
192 return ret; 235 return ret;
193} 236}
194 237
195/** 238void nilfs_sufile_do_cancel_free(struct inode *sufile, __u64 segnum,
196 * nilfs_sufile_cancel_free - 239 struct buffer_head *header_bh,
197 * @sufile: inode of segment usage file 240 struct buffer_head *su_bh)
198 * @segnum: segment number
199 *
200 * Description:
201 *
202 * Return Value: On success, 0 is returned. On error, one of the following
203 * negative error codes is returned.
204 *
205 * %-EIO - I/O error.
206 *
207 * %-ENOMEM - Insufficient amount of memory available.
208 */
209int nilfs_sufile_cancel_free(struct inode *sufile, __u64 segnum)
210{ 241{
211 struct buffer_head *header_bh, *su_bh;
212 struct the_nilfs *nilfs;
213 struct nilfs_sufile_header *header;
214 struct nilfs_segment_usage *su; 242 struct nilfs_segment_usage *su;
215 void *kaddr; 243 void *kaddr;
216 int ret;
217
218 down_write(&NILFS_MDT(sufile)->mi_sem);
219
220 nilfs = NILFS_MDT(sufile)->mi_nilfs;
221
222 ret = nilfs_sufile_get_header_block(sufile, &header_bh);
223 if (ret < 0)
224 goto out_sem;
225
226 ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, 0, &su_bh);
227 if (ret < 0)
228 goto out_header;
229 244
230 kaddr = kmap_atomic(su_bh->b_page, KM_USER0); 245 kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
231 su = nilfs_sufile_block_get_segment_usage( 246 su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
232 sufile, segnum, su_bh, kaddr);
233 if (unlikely(!nilfs_segment_usage_clean(su))) { 247 if (unlikely(!nilfs_segment_usage_clean(su))) {
234 printk(KERN_WARNING "%s: segment %llu must be clean\n", 248 printk(KERN_WARNING "%s: segment %llu must be clean\n",
235 __func__, (unsigned long long)segnum); 249 __func__, (unsigned long long)segnum);
236 kunmap_atomic(kaddr, KM_USER0); 250 kunmap_atomic(kaddr, KM_USER0);
237 goto out_su_bh; 251 return;
238 } 252 }
239 nilfs_segment_usage_set_dirty(su); 253 nilfs_segment_usage_set_dirty(su);
240 kunmap_atomic(kaddr, KM_USER0); 254 kunmap_atomic(kaddr, KM_USER0);
241 255
242 kaddr = kmap_atomic(header_bh->b_page, KM_USER0); 256 nilfs_sufile_mod_counter(header_bh, -1, 1);
243 header = nilfs_sufile_block_get_header(sufile, header_bh, kaddr);
244 le64_add_cpu(&header->sh_ncleansegs, -1);
245 le64_add_cpu(&header->sh_ndirtysegs, 1);
246 kunmap_atomic(kaddr, KM_USER0);
247
248 nilfs_mdt_mark_buffer_dirty(header_bh);
249 nilfs_mdt_mark_buffer_dirty(su_bh); 257 nilfs_mdt_mark_buffer_dirty(su_bh);
250 nilfs_mdt_mark_dirty(sufile); 258 nilfs_mdt_mark_dirty(sufile);
251
252 out_su_bh:
253 brelse(su_bh);
254 out_header:
255 brelse(header_bh);
256 out_sem:
257 up_write(&NILFS_MDT(sufile)->mi_sem);
258 return ret;
259} 259}
260 260
261/** 261void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
262 * nilfs_sufile_freev - free segments 262 struct buffer_head *header_bh,
263 * @sufile: inode of segment usage file 263 struct buffer_head *su_bh)
264 * @segnum: array of segment numbers
265 * @nsegs: number of segments
266 *
267 * Description: nilfs_sufile_freev() frees segments specified by @segnum and
268 * @nsegs, which must have been returned by a previous call to
269 * nilfs_sufile_alloc().
270 *
271 * Return Value: On success, 0 is returned. On error, one of the following
272 * negative error codes is returned.
273 *
274 * %-EIO - I/O error.
275 *
276 * %-ENOMEM - Insufficient amount of memory available.
277 */
278#define NILFS_SUFILE_FREEV_PREALLOC 16
279int nilfs_sufile_freev(struct inode *sufile, __u64 *segnum, size_t nsegs)
280{ 264{
281 struct buffer_head *header_bh, **su_bh,
282 *su_bh_prealloc[NILFS_SUFILE_FREEV_PREALLOC];
283 struct the_nilfs *nilfs;
284 struct nilfs_sufile_header *header;
285 struct nilfs_segment_usage *su; 265 struct nilfs_segment_usage *su;
286 void *kaddr; 266 void *kaddr;
287 int ret, i; 267 int clean, dirty;
288 268
289 down_write(&NILFS_MDT(sufile)->mi_sem); 269 kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
290 270 su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
291 nilfs = NILFS_MDT(sufile)->mi_nilfs; 271 if (su->su_flags == cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY) &&
292 272 su->su_nblocks == cpu_to_le32(0)) {
293 /* prepare resources */
294 if (nsegs <= NILFS_SUFILE_FREEV_PREALLOC)
295 su_bh = su_bh_prealloc;
296 else {
297 su_bh = kmalloc(sizeof(*su_bh) * nsegs, GFP_NOFS);
298 if (su_bh == NULL) {
299 ret = -ENOMEM;
300 goto out_sem;
301 }
302 }
303
304 ret = nilfs_sufile_get_header_block(sufile, &header_bh);
305 if (ret < 0)
306 goto out_su_bh;
307 for (i = 0; i < nsegs; i++) {
308 ret = nilfs_sufile_get_segment_usage_block(sufile, segnum[i],
309 0, &su_bh[i]);
310 if (ret < 0)
311 goto out_bh;
312 }
313
314 /* free segments */
315 for (i = 0; i < nsegs; i++) {
316 kaddr = kmap_atomic(su_bh[i]->b_page, KM_USER0);
317 su = nilfs_sufile_block_get_segment_usage(
318 sufile, segnum[i], su_bh[i], kaddr);
319 WARN_ON(nilfs_segment_usage_error(su));
320 nilfs_segment_usage_set_clean(su);
321 kunmap_atomic(kaddr, KM_USER0); 273 kunmap_atomic(kaddr, KM_USER0);
322 nilfs_mdt_mark_buffer_dirty(su_bh[i]); 274 return;
323 } 275 }
324 kaddr = kmap_atomic(header_bh->b_page, KM_USER0); 276 clean = nilfs_segment_usage_clean(su);
325 header = nilfs_sufile_block_get_header(sufile, header_bh, kaddr); 277 dirty = nilfs_segment_usage_dirty(su);
326 le64_add_cpu(&header->sh_ncleansegs, nsegs); 278
327 le64_add_cpu(&header->sh_ndirtysegs, -(u64)nsegs); 279 /* make the segment garbage */
280 su->su_lastmod = cpu_to_le64(0);
281 su->su_nblocks = cpu_to_le32(0);
282 su->su_flags = cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY);
328 kunmap_atomic(kaddr, KM_USER0); 283 kunmap_atomic(kaddr, KM_USER0);
329 nilfs_mdt_mark_buffer_dirty(header_bh); 284
285 nilfs_sufile_mod_counter(header_bh, clean ? (u64)-1 : 0, dirty ? 0 : 1);
286 nilfs_mdt_mark_buffer_dirty(su_bh);
330 nilfs_mdt_mark_dirty(sufile); 287 nilfs_mdt_mark_dirty(sufile);
288}
331 289
332 out_bh: 290void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
333 for (i--; i >= 0; i--) 291 struct buffer_head *header_bh,
334 brelse(su_bh[i]); 292 struct buffer_head *su_bh)
335 brelse(header_bh); 293{
294 struct nilfs_segment_usage *su;
295 void *kaddr;
296 int sudirty;
336 297
337 out_su_bh: 298 kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
338 if (su_bh != su_bh_prealloc) 299 su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
339 kfree(su_bh); 300 if (nilfs_segment_usage_clean(su)) {
301 printk(KERN_WARNING "%s: segment %llu is already clean\n",
302 __func__, (unsigned long long)segnum);
303 kunmap_atomic(kaddr, KM_USER0);
304 return;
305 }
306 WARN_ON(nilfs_segment_usage_error(su));
307 WARN_ON(!nilfs_segment_usage_dirty(su));
340 308
341 out_sem: 309 sudirty = nilfs_segment_usage_dirty(su);
342 up_write(&NILFS_MDT(sufile)->mi_sem); 310 nilfs_segment_usage_set_clean(su);
343 return ret; 311 kunmap_atomic(kaddr, KM_USER0);
344} 312 nilfs_mdt_mark_buffer_dirty(su_bh);
345 313
346/** 314 nilfs_sufile_mod_counter(header_bh, 1, sudirty ? (u64)-1 : 0);
347 * nilfs_sufile_free - 315 nilfs_mdt_mark_dirty(sufile);
348 * @sufile:
349 * @segnum:
350 */
351int nilfs_sufile_free(struct inode *sufile, __u64 segnum)
352{
353 return nilfs_sufile_freev(sufile, &segnum, 1);
354} 316}
355 317
356/** 318/**
@@ -500,72 +462,28 @@ int nilfs_sufile_get_ncleansegs(struct inode *sufile, unsigned long *nsegsp)
500 return ret; 462 return ret;
501} 463}
502 464
503/** 465void nilfs_sufile_do_set_error(struct inode *sufile, __u64 segnum,
504 * nilfs_sufile_set_error - mark a segment as erroneous 466 struct buffer_head *header_bh,
505 * @sufile: inode of segment usage file 467 struct buffer_head *su_bh)
506 * @segnum: segment number
507 *
508 * Description: nilfs_sufile_set_error() marks the segment specified by
509 * @segnum as erroneous. The error segment will never be used again.
510 *
511 * Return Value: On success, 0 is returned. On error, one of the following
512 * negative error codes is returned.
513 *
514 * %-EIO - I/O error.
515 *
516 * %-ENOMEM - Insufficient amount of memory available.
517 *
518 * %-EINVAL - Invalid segment usage number.
519 */
520int nilfs_sufile_set_error(struct inode *sufile, __u64 segnum)
521{ 468{
522 struct buffer_head *header_bh, *su_bh;
523 struct nilfs_segment_usage *su; 469 struct nilfs_segment_usage *su;
524 struct nilfs_sufile_header *header;
525 void *kaddr; 470 void *kaddr;
526 int ret; 471 int suclean;
527
528 if (unlikely(segnum >= nilfs_sufile_get_nsegments(sufile))) {
529 printk(KERN_WARNING "%s: invalid segment number: %llu\n",
530 __func__, (unsigned long long)segnum);
531 return -EINVAL;
532 }
533 down_write(&NILFS_MDT(sufile)->mi_sem);
534
535 ret = nilfs_sufile_get_header_block(sufile, &header_bh);
536 if (ret < 0)
537 goto out_sem;
538 ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, 0, &su_bh);
539 if (ret < 0)
540 goto out_header;
541 472
542 kaddr = kmap_atomic(su_bh->b_page, KM_USER0); 473 kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
543 su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr); 474 su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
544 if (nilfs_segment_usage_error(su)) { 475 if (nilfs_segment_usage_error(su)) {
545 kunmap_atomic(kaddr, KM_USER0); 476 kunmap_atomic(kaddr, KM_USER0);
546 brelse(su_bh); 477 return;
547 goto out_header;
548 } 478 }
549 479 suclean = nilfs_segment_usage_clean(su);
550 nilfs_segment_usage_set_error(su); 480 nilfs_segment_usage_set_error(su);
551 kunmap_atomic(kaddr, KM_USER0); 481 kunmap_atomic(kaddr, KM_USER0);
552 brelse(su_bh);
553 482
554 kaddr = kmap_atomic(header_bh->b_page, KM_USER0); 483 if (suclean)
555 header = nilfs_sufile_block_get_header(sufile, header_bh, kaddr); 484 nilfs_sufile_mod_counter(header_bh, -1, 0);
556 le64_add_cpu(&header->sh_ndirtysegs, -1);
557 kunmap_atomic(kaddr, KM_USER0);
558 nilfs_mdt_mark_buffer_dirty(header_bh);
559 nilfs_mdt_mark_buffer_dirty(su_bh); 485 nilfs_mdt_mark_buffer_dirty(su_bh);
560 nilfs_mdt_mark_dirty(sufile); 486 nilfs_mdt_mark_dirty(sufile);
561 brelse(su_bh);
562
563 out_header:
564 brelse(header_bh);
565
566 out_sem:
567 up_write(&NILFS_MDT(sufile)->mi_sem);
568 return ret;
569} 487}
570 488
571/** 489/**
@@ -625,7 +543,7 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum,
625 si[i + j].sui_nblocks = le32_to_cpu(su->su_nblocks); 543 si[i + j].sui_nblocks = le32_to_cpu(su->su_nblocks);
626 si[i + j].sui_flags = le32_to_cpu(su->su_flags) & 544 si[i + j].sui_flags = le32_to_cpu(su->su_flags) &
627 ~(1UL << NILFS_SEGMENT_USAGE_ACTIVE); 545 ~(1UL << NILFS_SEGMENT_USAGE_ACTIVE);
628 if (nilfs_segment_is_active(nilfs, segnum + i + j)) 546 if (nilfs_segment_is_active(nilfs, segnum + j))
629 si[i + j].sui_flags |= 547 si[i + j].sui_flags |=
630 (1UL << NILFS_SEGMENT_USAGE_ACTIVE); 548 (1UL << NILFS_SEGMENT_USAGE_ACTIVE);
631 } 549 }
diff --git a/fs/nilfs2/sufile.h b/fs/nilfs2/sufile.h
index d595f33a768d..a2e2efd4ade1 100644
--- a/fs/nilfs2/sufile.h
+++ b/fs/nilfs2/sufile.h
@@ -36,9 +36,6 @@ static inline unsigned long nilfs_sufile_get_nsegments(struct inode *sufile)
36} 36}
37 37
38int nilfs_sufile_alloc(struct inode *, __u64 *); 38int nilfs_sufile_alloc(struct inode *, __u64 *);
39int nilfs_sufile_cancel_free(struct inode *, __u64);
40int nilfs_sufile_freev(struct inode *, __u64 *, size_t);
41int nilfs_sufile_free(struct inode *, __u64);
42int nilfs_sufile_get_segment_usage(struct inode *, __u64, 39int nilfs_sufile_get_segment_usage(struct inode *, __u64,
43 struct nilfs_segment_usage **, 40 struct nilfs_segment_usage **,
44 struct buffer_head **); 41 struct buffer_head **);
@@ -46,9 +43,83 @@ void nilfs_sufile_put_segment_usage(struct inode *, __u64,
46 struct buffer_head *); 43 struct buffer_head *);
47int nilfs_sufile_get_stat(struct inode *, struct nilfs_sustat *); 44int nilfs_sufile_get_stat(struct inode *, struct nilfs_sustat *);
48int nilfs_sufile_get_ncleansegs(struct inode *, unsigned long *); 45int nilfs_sufile_get_ncleansegs(struct inode *, unsigned long *);
49int nilfs_sufile_set_error(struct inode *, __u64);
50ssize_t nilfs_sufile_get_suinfo(struct inode *, __u64, struct nilfs_suinfo *, 46ssize_t nilfs_sufile_get_suinfo(struct inode *, __u64, struct nilfs_suinfo *,
51 size_t); 47 size_t);
52 48
49int nilfs_sufile_update(struct inode *, __u64, int,
50 void (*dofunc)(struct inode *, __u64,
51 struct buffer_head *,
52 struct buffer_head *));
53void nilfs_sufile_do_cancel_free(struct inode *, __u64, struct buffer_head *,
54 struct buffer_head *);
55void nilfs_sufile_do_scrap(struct inode *, __u64, struct buffer_head *,
56 struct buffer_head *);
57void nilfs_sufile_do_free(struct inode *, __u64, struct buffer_head *,
58 struct buffer_head *);
59void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *,
60 struct buffer_head *);
61
62/**
63 * nilfs_sufile_cancel_free -
64 * @sufile: inode of segment usage file
65 * @segnum: segment number
66 *
67 * Description:
68 *
69 * Return Value: On success, 0 is returned. On error, one of the following
70 * negative error codes is returned.
71 *
72 * %-EIO - I/O error.
73 *
74 * %-ENOMEM - Insufficient amount of memory available.
75 */
76static inline int nilfs_sufile_cancel_free(struct inode *sufile, __u64 segnum)
77{
78 return nilfs_sufile_update(sufile, segnum, 0,
79 nilfs_sufile_do_cancel_free);
80}
81
82/**
83 * nilfs_sufile_scrap - make a segment garbage
84 * @sufile: inode of segment usage file
85 * @segnum: segment number to be freed
86 */
87static inline int nilfs_sufile_scrap(struct inode *sufile, __u64 segnum)
88{
89 return nilfs_sufile_update(sufile, segnum, 1, nilfs_sufile_do_scrap);
90}
91
92/**
93 * nilfs_sufile_free - free segment
94 * @sufile: inode of segment usage file
95 * @segnum: segment number to be freed
96 */
97static inline int nilfs_sufile_free(struct inode *sufile, __u64 segnum)
98{
99 return nilfs_sufile_update(sufile, segnum, 0, nilfs_sufile_do_free);
100}
101
102/**
103 * nilfs_sufile_set_error - mark a segment as erroneous
104 * @sufile: inode of segment usage file
105 * @segnum: segment number
106 *
107 * Description: nilfs_sufile_set_error() marks the segment specified by
108 * @segnum as erroneous. The error segment will never be used again.
109 *
110 * Return Value: On success, 0 is returned. On error, one of the following
111 * negative error codes is returned.
112 *
113 * %-EIO - I/O error.
114 *
115 * %-ENOMEM - Insufficient amount of memory available.
116 *
117 * %-EINVAL - Invalid segment usage number.
118 */
119static inline int nilfs_sufile_set_error(struct inode *sufile, __u64 segnum)
120{
121 return nilfs_sufile_update(sufile, segnum, 0,
122 nilfs_sufile_do_set_error);
123}
53 124
54#endif /* _NILFS_SUFILE_H */ 125#endif /* _NILFS_SUFILE_H */
diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index e117e1ea9bff..6989b03e97ab 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -63,7 +63,6 @@
63MODULE_AUTHOR("NTT Corp."); 63MODULE_AUTHOR("NTT Corp.");
64MODULE_DESCRIPTION("A New Implementation of the Log-structured Filesystem " 64MODULE_DESCRIPTION("A New Implementation of the Log-structured Filesystem "
65 "(NILFS)"); 65 "(NILFS)");
66MODULE_VERSION(NILFS_VERSION);
67MODULE_LICENSE("GPL"); 66MODULE_LICENSE("GPL");
68 67
69static int nilfs_remount(struct super_block *sb, int *flags, char *data); 68static int nilfs_remount(struct super_block *sb, int *flags, char *data);
@@ -476,11 +475,12 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf)
476{ 475{
477 struct super_block *sb = dentry->d_sb; 476 struct super_block *sb = dentry->d_sb;
478 struct nilfs_sb_info *sbi = NILFS_SB(sb); 477 struct nilfs_sb_info *sbi = NILFS_SB(sb);
478 struct the_nilfs *nilfs = sbi->s_nilfs;
479 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
479 unsigned long long blocks; 480 unsigned long long blocks;
480 unsigned long overhead; 481 unsigned long overhead;
481 unsigned long nrsvblocks; 482 unsigned long nrsvblocks;
482 sector_t nfreeblocks; 483 sector_t nfreeblocks;
483 struct the_nilfs *nilfs = sbi->s_nilfs;
484 int err; 484 int err;
485 485
486 /* 486 /*
@@ -514,6 +514,9 @@ static int nilfs_statfs(struct dentry *dentry, struct kstatfs *buf)
514 buf->f_files = atomic_read(&sbi->s_inodes_count); 514 buf->f_files = atomic_read(&sbi->s_inodes_count);
515 buf->f_ffree = 0; /* nilfs_count_free_inodes(sb); */ 515 buf->f_ffree = 0; /* nilfs_count_free_inodes(sb); */
516 buf->f_namelen = NILFS_NAME_LEN; 516 buf->f_namelen = NILFS_NAME_LEN;
517 buf->f_fsid.val[0] = (u32)id;
518 buf->f_fsid.val[1] = (u32)(id >> 32);
519
517 return 0; 520 return 0;
518} 521}
519 522
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
index 33400cf0bbe2..7f65b3be4aa9 100644
--- a/fs/nilfs2/the_nilfs.c
+++ b/fs/nilfs2/the_nilfs.c
@@ -115,6 +115,7 @@ void put_nilfs(struct the_nilfs *nilfs)
115static int nilfs_load_super_root(struct the_nilfs *nilfs, 115static int nilfs_load_super_root(struct the_nilfs *nilfs,
116 struct nilfs_sb_info *sbi, sector_t sr_block) 116 struct nilfs_sb_info *sbi, sector_t sr_block)
117{ 117{
118 static struct lock_class_key dat_lock_key;
118 struct buffer_head *bh_sr; 119 struct buffer_head *bh_sr;
119 struct nilfs_super_root *raw_sr; 120 struct nilfs_super_root *raw_sr;
120 struct nilfs_super_block **sbp = nilfs->ns_sbp; 121 struct nilfs_super_block **sbp = nilfs->ns_sbp;
@@ -163,6 +164,9 @@ static int nilfs_load_super_root(struct the_nilfs *nilfs,
163 if (unlikely(err)) 164 if (unlikely(err))
164 goto failed_sufile; 165 goto failed_sufile;
165 166
167 lockdep_set_class(&NILFS_MDT(nilfs->ns_dat)->mi_sem, &dat_lock_key);
168 lockdep_set_class(&NILFS_MDT(nilfs->ns_gc_dat)->mi_sem, &dat_lock_key);
169
166 nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat); 170 nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat);
167 nilfs_mdt_set_entry_size(nilfs->ns_cpfile, checkpoint_size, 171 nilfs_mdt_set_entry_size(nilfs->ns_cpfile, checkpoint_size,
168 sizeof(struct nilfs_cpfile_header)); 172 sizeof(struct nilfs_cpfile_header));
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c
index bed766e435b5..1634319e2404 100644
--- a/fs/notify/inotify/inotify_user.c
+++ b/fs/notify/inotify/inotify_user.c
@@ -220,7 +220,7 @@ static struct inotify_kernel_event * kernel_event(s32 wd, u32 mask, u32 cookie,
220 rem = 0; 220 rem = 0;
221 } 221 }
222 222
223 kevent->name = kmalloc(len + rem, GFP_KERNEL); 223 kevent->name = kmalloc(len + rem, GFP_NOFS);
224 if (unlikely(!kevent->name)) { 224 if (unlikely(!kevent->name)) {
225 kmem_cache_free(event_cachep, kevent); 225 kmem_cache_free(event_cachep, kevent);
226 return NULL; 226 return NULL;
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index 7d604480557a..b574431a031d 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -290,6 +290,21 @@ out_attach:
290 else 290 else
291 mlog_errno(ret); 291 mlog_errno(ret);
292 292
293 /*
294 * In case of error, manually free the allocation and do the iput().
295 * We need to do this because error here means no d_instantiate(),
296 * which means iput() will not be called during dput(dentry).
297 */
298 if (ret < 0 && !alias) {
299 ocfs2_lock_res_free(&dl->dl_lockres);
300 BUG_ON(dl->dl_count != 1);
301 spin_lock(&dentry_attach_lock);
302 dentry->d_fsdata = NULL;
303 spin_unlock(&dentry_attach_lock);
304 kfree(dl);
305 iput(inode);
306 }
307
293 dput(alias); 308 dput(alias);
294 309
295 return ret; 310 return ret;
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index e71160cda110..c5752305627c 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -2697,7 +2697,7 @@ static int ocfs2_dx_dir_index_block(struct inode *dir,
2697 u32 *num_dx_entries, 2697 u32 *num_dx_entries,
2698 struct buffer_head *dirent_bh) 2698 struct buffer_head *dirent_bh)
2699{ 2699{
2700 int ret, namelen, i; 2700 int ret = 0, namelen, i;
2701 char *de_buf, *limit; 2701 char *de_buf, *limit;
2702 struct ocfs2_dir_entry *de; 2702 struct ocfs2_dir_entry *de;
2703 struct buffer_head *dx_leaf_bh; 2703 struct buffer_head *dx_leaf_bh;
@@ -2934,7 +2934,7 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
2934 */ 2934 */
2935 BUG_ON(alloc > 2); 2935 BUG_ON(alloc > 2);
2936 2936
2937 ret = ocfs2_reserve_clusters(osb, alloc, &data_ac); 2937 ret = ocfs2_reserve_clusters(osb, alloc + dx_alloc, &data_ac);
2938 if (ret) { 2938 if (ret) {
2939 mlog_errno(ret); 2939 mlog_errno(ret);
2940 goto out; 2940 goto out;
diff --git a/fs/ocfs2/export.c b/fs/ocfs2/export.c
index de3da8eb558c..15713cbb865c 100644
--- a/fs/ocfs2/export.c
+++ b/fs/ocfs2/export.c
@@ -100,7 +100,8 @@ static struct dentry *ocfs2_get_dentry(struct super_block *sb,
100 100
101 /* If the inode allocator bit is clear, this inode must be stale */ 101 /* If the inode allocator bit is clear, this inode must be stale */
102 if (!set) { 102 if (!set) {
103 mlog(0, "inode %llu suballoc bit is clear\n", blkno); 103 mlog(0, "inode %llu suballoc bit is clear\n",
104 (unsigned long long)blkno);
104 status = -ESTALE; 105 status = -ESTALE;
105 goto unlock_nfs_sync; 106 goto unlock_nfs_sync;
106 } 107 }
@@ -114,7 +115,7 @@ check_err:
114 if (status < 0) { 115 if (status < 0) {
115 if (status == -ESTALE) { 116 if (status == -ESTALE) {
116 mlog(0, "stale inode ino: %llu generation: %u\n", 117 mlog(0, "stale inode ino: %llu generation: %u\n",
117 blkno, handle->ih_generation); 118 (unsigned long long)blkno, handle->ih_generation);
118 } 119 }
119 result = ERR_PTR(status); 120 result = ERR_PTR(status);
120 goto bail; 121 goto bail;
@@ -129,8 +130,8 @@ check_err:
129check_gen: 130check_gen:
130 if (handle->ih_generation != inode->i_generation) { 131 if (handle->ih_generation != inode->i_generation) {
131 iput(inode); 132 iput(inode);
132 mlog(0, "stale inode ino: %llu generation: %u\n", blkno, 133 mlog(0, "stale inode ino: %llu generation: %u\n",
133 handle->ih_generation); 134 (unsigned long long)blkno, handle->ih_generation);
134 result = ERR_PTR(-ESTALE); 135 result = ERR_PTR(-ESTALE);
135 goto bail; 136 goto bail;
136 } 137 }
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 8672b9536039..c2a87c885b73 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1912,6 +1912,22 @@ out_sems:
1912 return written ? written : ret; 1912 return written ? written : ret;
1913} 1913}
1914 1914
1915static int ocfs2_splice_to_file(struct pipe_inode_info *pipe,
1916 struct file *out,
1917 struct splice_desc *sd)
1918{
1919 int ret;
1920
1921 ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos,
1922 sd->total_len, 0, NULL);
1923 if (ret < 0) {
1924 mlog_errno(ret);
1925 return ret;
1926 }
1927
1928 return splice_from_pipe_feed(pipe, sd, pipe_to_file);
1929}
1930
1915static ssize_t ocfs2_file_splice_write(struct pipe_inode_info *pipe, 1931static ssize_t ocfs2_file_splice_write(struct pipe_inode_info *pipe,
1916 struct file *out, 1932 struct file *out,
1917 loff_t *ppos, 1933 loff_t *ppos,
@@ -1919,38 +1935,76 @@ static ssize_t ocfs2_file_splice_write(struct pipe_inode_info *pipe,
1919 unsigned int flags) 1935 unsigned int flags)
1920{ 1936{
1921 int ret; 1937 int ret;
1922 struct inode *inode = out->f_path.dentry->d_inode; 1938 struct address_space *mapping = out->f_mapping;
1939 struct inode *inode = mapping->host;
1940 struct splice_desc sd = {
1941 .total_len = len,
1942 .flags = flags,
1943 .pos = *ppos,
1944 .u.file = out,
1945 };
1923 1946
1924 mlog_entry("(0x%p, 0x%p, %u, '%.*s')\n", out, pipe, 1947 mlog_entry("(0x%p, 0x%p, %u, '%.*s')\n", out, pipe,
1925 (unsigned int)len, 1948 (unsigned int)len,
1926 out->f_path.dentry->d_name.len, 1949 out->f_path.dentry->d_name.len,
1927 out->f_path.dentry->d_name.name); 1950 out->f_path.dentry->d_name.name);
1928 1951
1929 mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT); 1952 if (pipe->inode)
1953 mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_PARENT);
1930 1954
1931 ret = ocfs2_rw_lock(inode, 1); 1955 splice_from_pipe_begin(&sd);
1932 if (ret < 0) { 1956 do {
1933 mlog_errno(ret); 1957 ret = splice_from_pipe_next(pipe, &sd);
1934 goto out; 1958 if (ret <= 0)
1935 } 1959 break;
1936 1960
1937 ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, ppos, len, 0, 1961 mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD);
1938 NULL); 1962 ret = ocfs2_rw_lock(inode, 1);
1939 if (ret < 0) { 1963 if (ret < 0)
1940 mlog_errno(ret); 1964 mlog_errno(ret);
1941 goto out_unlock; 1965 else {
1942 } 1966 ret = ocfs2_splice_to_file(pipe, out, &sd);
1967 ocfs2_rw_unlock(inode, 1);
1968 }
1969 mutex_unlock(&inode->i_mutex);
1970 } while (ret > 0);
1971 splice_from_pipe_end(pipe, &sd);
1943 1972
1944 if (pipe->inode) 1973 if (pipe->inode)
1945 mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_CHILD);
1946 ret = generic_file_splice_write_nolock(pipe, out, ppos, len, flags);
1947 if (pipe->inode)
1948 mutex_unlock(&pipe->inode->i_mutex); 1974 mutex_unlock(&pipe->inode->i_mutex);
1949 1975
1950out_unlock: 1976 if (sd.num_spliced)
1951 ocfs2_rw_unlock(inode, 1); 1977 ret = sd.num_spliced;
1952out: 1978
1953 mutex_unlock(&inode->i_mutex); 1979 if (ret > 0) {
1980 unsigned long nr_pages;
1981
1982 *ppos += ret;
1983 nr_pages = (ret + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
1984
1985 /*
1986 * If file or inode is SYNC and we actually wrote some data,
1987 * sync it.
1988 */
1989 if (unlikely((out->f_flags & O_SYNC) || IS_SYNC(inode))) {
1990 int err;
1991
1992 mutex_lock(&inode->i_mutex);
1993 err = ocfs2_rw_lock(inode, 1);
1994 if (err < 0) {
1995 mlog_errno(err);
1996 } else {
1997 err = generic_osync_inode(inode, mapping,
1998 OSYNC_METADATA|OSYNC_DATA);
1999 ocfs2_rw_unlock(inode, 1);
2000 }
2001 mutex_unlock(&inode->i_mutex);
2002
2003 if (err)
2004 ret = err;
2005 }
2006 balance_dirty_pages_ratelimited_nr(mapping, nr_pages);
2007 }
1954 2008
1955 mlog_exit(ret); 2009 mlog_exit(ret);
1956 return ret; 2010 return ret;
diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h
index 619dd7f6c053..eb7b76331eb7 100644
--- a/fs/ocfs2/journal.h
+++ b/fs/ocfs2/journal.h
@@ -437,8 +437,9 @@ static inline int ocfs2_unlink_credits(struct super_block *sb)
437} 437}
438 438
439/* dinode + orphan dir dinode + inode alloc dinode + orphan dir entry + 439/* dinode + orphan dir dinode + inode alloc dinode + orphan dir entry +
440 * inode alloc group descriptor + orphan dir index leaf */ 440 * inode alloc group descriptor + orphan dir index root +
441#define OCFS2_DELETE_INODE_CREDITS (3 * OCFS2_INODE_UPDATE_CREDITS + 3) 441 * orphan dir index leaf */
442#define OCFS2_DELETE_INODE_CREDITS (3 * OCFS2_INODE_UPDATE_CREDITS + 4)
442 443
443/* dinode update, old dir dinode update, new dir dinode update, old 444/* dinode update, old dir dinode update, new dir dinode update, old
444 * dir dir entry, new dir dir entry, dir entry update for renaming 445 * dir dir entry, new dir dir entry, dir entry update for renaming
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index 2220f93f668b..33464c6b60a2 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -1025,10 +1025,8 @@ static int ocfs2_rename(struct inode *old_dir,
1025 struct inode *orphan_dir = NULL; 1025 struct inode *orphan_dir = NULL;
1026 struct ocfs2_dinode *newfe = NULL; 1026 struct ocfs2_dinode *newfe = NULL;
1027 char orphan_name[OCFS2_ORPHAN_NAMELEN + 1]; 1027 char orphan_name[OCFS2_ORPHAN_NAMELEN + 1];
1028 struct buffer_head *orphan_entry_bh = NULL;
1029 struct buffer_head *newfe_bh = NULL; 1028 struct buffer_head *newfe_bh = NULL;
1030 struct buffer_head *old_inode_bh = NULL; 1029 struct buffer_head *old_inode_bh = NULL;
1031 struct buffer_head *insert_entry_bh = NULL;
1032 struct ocfs2_super *osb = NULL; 1030 struct ocfs2_super *osb = NULL;
1033 u64 newfe_blkno, old_de_ino; 1031 u64 newfe_blkno, old_de_ino;
1034 handle_t *handle = NULL; 1032 handle_t *handle = NULL;
@@ -1455,8 +1453,6 @@ bail:
1455 brelse(old_inode_bh); 1453 brelse(old_inode_bh);
1456 brelse(old_dir_bh); 1454 brelse(old_dir_bh);
1457 brelse(new_dir_bh); 1455 brelse(new_dir_bh);
1458 brelse(orphan_entry_bh);
1459 brelse(insert_entry_bh);
1460 1456
1461 mlog_exit(status); 1457 mlog_exit(status);
1462 1458
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index b4ca5911caaf..8439f6b324b9 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -2197,26 +2197,29 @@ static int ocfs2_get_suballoc_slot_bit(struct ocfs2_super *osb, u64 blkno,
2197 struct buffer_head *inode_bh = NULL; 2197 struct buffer_head *inode_bh = NULL;
2198 struct ocfs2_dinode *inode_fe; 2198 struct ocfs2_dinode *inode_fe;
2199 2199
2200 mlog_entry("blkno: %llu\n", blkno); 2200 mlog_entry("blkno: %llu\n", (unsigned long long)blkno);
2201 2201
2202 /* dirty read disk */ 2202 /* dirty read disk */
2203 status = ocfs2_read_blocks_sync(osb, blkno, 1, &inode_bh); 2203 status = ocfs2_read_blocks_sync(osb, blkno, 1, &inode_bh);
2204 if (status < 0) { 2204 if (status < 0) {
2205 mlog(ML_ERROR, "read block %llu failed %d\n", blkno, status); 2205 mlog(ML_ERROR, "read block %llu failed %d\n",
2206 (unsigned long long)blkno, status);
2206 goto bail; 2207 goto bail;
2207 } 2208 }
2208 2209
2209 inode_fe = (struct ocfs2_dinode *) inode_bh->b_data; 2210 inode_fe = (struct ocfs2_dinode *) inode_bh->b_data;
2210 if (!OCFS2_IS_VALID_DINODE(inode_fe)) { 2211 if (!OCFS2_IS_VALID_DINODE(inode_fe)) {
2211 mlog(ML_ERROR, "invalid inode %llu requested\n", blkno); 2212 mlog(ML_ERROR, "invalid inode %llu requested\n",
2213 (unsigned long long)blkno);
2212 status = -EINVAL; 2214 status = -EINVAL;
2213 goto bail; 2215 goto bail;
2214 } 2216 }
2215 2217
2216 if (le16_to_cpu(inode_fe->i_suballoc_slot) != OCFS2_INVALID_SLOT && 2218 if (le16_to_cpu(inode_fe->i_suballoc_slot) != (u16)OCFS2_INVALID_SLOT &&
2217 (u32)le16_to_cpu(inode_fe->i_suballoc_slot) > osb->max_slots - 1) { 2219 (u32)le16_to_cpu(inode_fe->i_suballoc_slot) > osb->max_slots - 1) {
2218 mlog(ML_ERROR, "inode %llu has invalid suballoc slot %u\n", 2220 mlog(ML_ERROR, "inode %llu has invalid suballoc slot %u\n",
2219 blkno, (u32)le16_to_cpu(inode_fe->i_suballoc_slot)); 2221 (unsigned long long)blkno,
2222 (u32)le16_to_cpu(inode_fe->i_suballoc_slot));
2220 status = -EINVAL; 2223 status = -EINVAL;
2221 goto bail; 2224 goto bail;
2222 } 2225 }
@@ -2251,7 +2254,8 @@ static int ocfs2_test_suballoc_bit(struct ocfs2_super *osb,
2251 u64 bg_blkno; 2254 u64 bg_blkno;
2252 int status; 2255 int status;
2253 2256
2254 mlog_entry("blkno: %llu bit: %u\n", blkno, (unsigned int)bit); 2257 mlog_entry("blkno: %llu bit: %u\n", (unsigned long long)blkno,
2258 (unsigned int)bit);
2255 2259
2256 alloc_fe = (struct ocfs2_dinode *)alloc_bh->b_data; 2260 alloc_fe = (struct ocfs2_dinode *)alloc_bh->b_data;
2257 if ((bit + 1) > ocfs2_bits_per_group(&alloc_fe->id2.i_chain)) { 2261 if ((bit + 1) > ocfs2_bits_per_group(&alloc_fe->id2.i_chain)) {
@@ -2266,7 +2270,8 @@ static int ocfs2_test_suballoc_bit(struct ocfs2_super *osb,
2266 status = ocfs2_read_group_descriptor(suballoc, alloc_fe, bg_blkno, 2270 status = ocfs2_read_group_descriptor(suballoc, alloc_fe, bg_blkno,
2267 &group_bh); 2271 &group_bh);
2268 if (status < 0) { 2272 if (status < 0) {
2269 mlog(ML_ERROR, "read group %llu failed %d\n", bg_blkno, status); 2273 mlog(ML_ERROR, "read group %llu failed %d\n",
2274 (unsigned long long)bg_blkno, status);
2270 goto bail; 2275 goto bail;
2271 } 2276 }
2272 2277
@@ -2300,7 +2305,7 @@ int ocfs2_test_inode_bit(struct ocfs2_super *osb, u64 blkno, int *res)
2300 struct inode *inode_alloc_inode; 2305 struct inode *inode_alloc_inode;
2301 struct buffer_head *alloc_bh = NULL; 2306 struct buffer_head *alloc_bh = NULL;
2302 2307
2303 mlog_entry("blkno: %llu", blkno); 2308 mlog_entry("blkno: %llu", (unsigned long long)blkno);
2304 2309
2305 status = ocfs2_get_suballoc_slot_bit(osb, blkno, &suballoc_slot, 2310 status = ocfs2_get_suballoc_slot_bit(osb, blkno, &suballoc_slot,
2306 &suballoc_bit); 2311 &suballoc_bit);
diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c
index ed0a0cfd68d2..579dd1b1110f 100644
--- a/fs/ocfs2/symlink.c
+++ b/fs/ocfs2/symlink.c
@@ -39,6 +39,7 @@
39#include <linux/slab.h> 39#include <linux/slab.h>
40#include <linux/pagemap.h> 40#include <linux/pagemap.h>
41#include <linux/utsname.h> 41#include <linux/utsname.h>
42#include <linux/namei.h>
42 43
43#define MLOG_MASK_PREFIX ML_NAMEI 44#define MLOG_MASK_PREFIX ML_NAMEI
44#include <cluster/masklog.h> 45#include <cluster/masklog.h>
@@ -54,26 +55,6 @@
54 55
55#include "buffer_head_io.h" 56#include "buffer_head_io.h"
56 57
57static char *ocfs2_page_getlink(struct dentry * dentry,
58 struct page **ppage);
59static char *ocfs2_fast_symlink_getlink(struct inode *inode,
60 struct buffer_head **bh);
61
62/* get the link contents into pagecache */
63static char *ocfs2_page_getlink(struct dentry * dentry,
64 struct page **ppage)
65{
66 struct page * page;
67 struct address_space *mapping = dentry->d_inode->i_mapping;
68 page = read_mapping_page(mapping, 0, NULL);
69 if (IS_ERR(page))
70 goto sync_fail;
71 *ppage = page;
72 return kmap(page);
73
74sync_fail:
75 return (char*)page;
76}
77 58
78static char *ocfs2_fast_symlink_getlink(struct inode *inode, 59static char *ocfs2_fast_symlink_getlink(struct inode *inode,
79 struct buffer_head **bh) 60 struct buffer_head **bh)
@@ -128,40 +109,55 @@ out:
128 return ret; 109 return ret;
129} 110}
130 111
131static void *ocfs2_follow_link(struct dentry *dentry, 112static void *ocfs2_fast_follow_link(struct dentry *dentry,
132 struct nameidata *nd) 113 struct nameidata *nd)
133{ 114{
134 int status; 115 int status = 0;
135 char *link; 116 int len;
117 char *target, *link = ERR_PTR(-ENOMEM);
136 struct inode *inode = dentry->d_inode; 118 struct inode *inode = dentry->d_inode;
137 struct page *page = NULL;
138 struct buffer_head *bh = NULL; 119 struct buffer_head *bh = NULL;
139 120
140 if (ocfs2_inode_is_fast_symlink(inode)) 121 mlog_entry_void();
141 link = ocfs2_fast_symlink_getlink(inode, &bh); 122
142 else 123 BUG_ON(!ocfs2_inode_is_fast_symlink(inode));
143 link = ocfs2_page_getlink(dentry, &page); 124 target = ocfs2_fast_symlink_getlink(inode, &bh);
144 if (IS_ERR(link)) { 125 if (IS_ERR(target)) {
145 status = PTR_ERR(link); 126 status = PTR_ERR(target);
146 mlog_errno(status); 127 mlog_errno(status);
147 goto bail; 128 goto bail;
148 } 129 }
149 130
150 status = vfs_follow_link(nd, link); 131 /* Fast symlinks can't be large */
132 len = strlen(target);
133 link = kzalloc(len + 1, GFP_NOFS);
134 if (!link) {
135 status = -ENOMEM;
136 mlog_errno(status);
137 goto bail;
138 }
139
140 memcpy(link, target, len);
141 nd_set_link(nd, link);
151 142
152bail: 143bail:
153 if (page) {
154 kunmap(page);
155 page_cache_release(page);
156 }
157 brelse(bh); 144 brelse(bh);
158 145
159 return ERR_PTR(status); 146 mlog_exit(status);
147 return status ? ERR_PTR(status) : link;
148}
149
150static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
151{
152 char *link = cookie;
153
154 kfree(link);
160} 155}
161 156
162const struct inode_operations ocfs2_symlink_inode_operations = { 157const struct inode_operations ocfs2_symlink_inode_operations = {
163 .readlink = page_readlink, 158 .readlink = page_readlink,
164 .follow_link = ocfs2_follow_link, 159 .follow_link = page_follow_link_light,
160 .put_link = page_put_link,
165 .getattr = ocfs2_getattr, 161 .getattr = ocfs2_getattr,
166 .setattr = ocfs2_setattr, 162 .setattr = ocfs2_setattr,
167 .setxattr = generic_setxattr, 163 .setxattr = generic_setxattr,
@@ -171,7 +167,8 @@ const struct inode_operations ocfs2_symlink_inode_operations = {
171}; 167};
172const struct inode_operations ocfs2_fast_symlink_inode_operations = { 168const struct inode_operations ocfs2_fast_symlink_inode_operations = {
173 .readlink = ocfs2_readlink, 169 .readlink = ocfs2_readlink,
174 .follow_link = ocfs2_follow_link, 170 .follow_link = ocfs2_fast_follow_link,
171 .put_link = ocfs2_fast_put_link,
175 .getattr = ocfs2_getattr, 172 .getattr = ocfs2_getattr,
176 .setattr = ocfs2_setattr, 173 .setattr = ocfs2_setattr,
177 .setxattr = generic_setxattr, 174 .setxattr = generic_setxattr,
diff --git a/fs/open.c b/fs/open.c
index 377eb25b6abf..bdfbf03615a4 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1033,7 +1033,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode)
1033 if (!IS_ERR(tmp)) { 1033 if (!IS_ERR(tmp)) {
1034 fd = get_unused_fd_flags(flags); 1034 fd = get_unused_fd_flags(flags);
1035 if (fd >= 0) { 1035 if (fd >= 0) {
1036 struct file *f = do_filp_open(dfd, tmp, flags, mode); 1036 struct file *f = do_filp_open(dfd, tmp, flags, mode, 0);
1037 if (IS_ERR(f)) { 1037 if (IS_ERR(f)) {
1038 put_unused_fd(fd); 1038 put_unused_fd(fd);
1039 fd = PTR_ERR(f); 1039 fd = PTR_ERR(f);
diff --git a/fs/pipe.c b/fs/pipe.c
index 4af7aa521813..13414ec45b8d 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -37,6 +37,42 @@
37 * -- Manfred Spraul <manfred@colorfullife.com> 2002-05-09 37 * -- Manfred Spraul <manfred@colorfullife.com> 2002-05-09
38 */ 38 */
39 39
40static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
41{
42 if (pipe->inode)
43 mutex_lock_nested(&pipe->inode->i_mutex, subclass);
44}
45
46void pipe_lock(struct pipe_inode_info *pipe)
47{
48 /*
49 * pipe_lock() nests non-pipe inode locks (for writing to a file)
50 */
51 pipe_lock_nested(pipe, I_MUTEX_PARENT);
52}
53EXPORT_SYMBOL(pipe_lock);
54
55void pipe_unlock(struct pipe_inode_info *pipe)
56{
57 if (pipe->inode)
58 mutex_unlock(&pipe->inode->i_mutex);
59}
60EXPORT_SYMBOL(pipe_unlock);
61
62void pipe_double_lock(struct pipe_inode_info *pipe1,
63 struct pipe_inode_info *pipe2)
64{
65 BUG_ON(pipe1 == pipe2);
66
67 if (pipe1 < pipe2) {
68 pipe_lock_nested(pipe1, I_MUTEX_PARENT);
69 pipe_lock_nested(pipe2, I_MUTEX_CHILD);
70 } else {
71 pipe_lock_nested(pipe2, I_MUTEX_CHILD);
72 pipe_lock_nested(pipe1, I_MUTEX_PARENT);
73 }
74}
75
40/* Drop the inode semaphore and wait for a pipe event, atomically */ 76/* Drop the inode semaphore and wait for a pipe event, atomically */
41void pipe_wait(struct pipe_inode_info *pipe) 77void pipe_wait(struct pipe_inode_info *pipe)
42{ 78{
@@ -47,12 +83,10 @@ void pipe_wait(struct pipe_inode_info *pipe)
47 * is considered a noninteractive wait: 83 * is considered a noninteractive wait:
48 */ 84 */
49 prepare_to_wait(&pipe->wait, &wait, TASK_INTERRUPTIBLE); 85 prepare_to_wait(&pipe->wait, &wait, TASK_INTERRUPTIBLE);
50 if (pipe->inode) 86 pipe_unlock(pipe);
51 mutex_unlock(&pipe->inode->i_mutex);
52 schedule(); 87 schedule();
53 finish_wait(&pipe->wait, &wait); 88 finish_wait(&pipe->wait, &wait);
54 if (pipe->inode) 89 pipe_lock(pipe);
55 mutex_lock(&pipe->inode->i_mutex);
56} 90}
57 91
58static int 92static int
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 7e4877d9dcb5..725a650bbbb8 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -80,6 +80,7 @@
80#include <linux/delayacct.h> 80#include <linux/delayacct.h>
81#include <linux/seq_file.h> 81#include <linux/seq_file.h>
82#include <linux/pid_namespace.h> 82#include <linux/pid_namespace.h>
83#include <linux/ptrace.h>
83#include <linux/tracehook.h> 84#include <linux/tracehook.h>
84 85
85#include <asm/pgtable.h> 86#include <asm/pgtable.h>
@@ -352,6 +353,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
352 char state; 353 char state;
353 pid_t ppid = 0, pgid = -1, sid = -1; 354 pid_t ppid = 0, pgid = -1, sid = -1;
354 int num_threads = 0; 355 int num_threads = 0;
356 int permitted;
355 struct mm_struct *mm; 357 struct mm_struct *mm;
356 unsigned long long start_time; 358 unsigned long long start_time;
357 unsigned long cmin_flt = 0, cmaj_flt = 0; 359 unsigned long cmin_flt = 0, cmaj_flt = 0;
@@ -364,11 +366,14 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
364 366
365 state = *get_task_state(task); 367 state = *get_task_state(task);
366 vsize = eip = esp = 0; 368 vsize = eip = esp = 0;
369 permitted = ptrace_may_access(task, PTRACE_MODE_READ);
367 mm = get_task_mm(task); 370 mm = get_task_mm(task);
368 if (mm) { 371 if (mm) {
369 vsize = task_vsize(mm); 372 vsize = task_vsize(mm);
370 eip = KSTK_EIP(task); 373 if (permitted) {
371 esp = KSTK_ESP(task); 374 eip = KSTK_EIP(task);
375 esp = KSTK_ESP(task);
376 }
372 } 377 }
373 378
374 get_task_comm(tcomm, task); 379 get_task_comm(tcomm, task);
@@ -424,7 +429,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
424 unlock_task_sighand(task, &flags); 429 unlock_task_sighand(task, &flags);
425 } 430 }
426 431
427 if (!whole || num_threads < 2) 432 if (permitted && (!whole || num_threads < 2))
428 wchan = get_wchan(task); 433 wchan = get_wchan(task);
429 if (!whole) { 434 if (!whole) {
430 min_flt = task->min_flt; 435 min_flt = task->min_flt;
@@ -476,7 +481,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
476 rsslim, 481 rsslim,
477 mm ? mm->start_code : 0, 482 mm ? mm->start_code : 0,
478 mm ? mm->end_code : 0, 483 mm ? mm->end_code : 0,
479 mm ? mm->start_stack : 0, 484 (permitted && mm) ? mm->start_stack : 0,
480 esp, 485 esp,
481 eip, 486 eip,
482 /* The signal information here is obsolete. 487 /* The signal information here is obsolete.
diff --git a/fs/proc/base.c b/fs/proc/base.c
index f71559784bfb..fb45615943c2 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -322,7 +322,10 @@ static int proc_pid_wchan(struct task_struct *task, char *buffer)
322 wchan = get_wchan(task); 322 wchan = get_wchan(task);
323 323
324 if (lookup_symbol_name(wchan, symname) < 0) 324 if (lookup_symbol_name(wchan, symname) < 0)
325 return sprintf(buffer, "%lu", wchan); 325 if (!ptrace_may_access(task, PTRACE_MODE_READ))
326 return 0;
327 else
328 return sprintf(buffer, "%lu", wchan);
326 else 329 else
327 return sprintf(buffer, "%s", symname); 330 return sprintf(buffer, "%s", symname);
328} 331}
@@ -648,14 +651,14 @@ static unsigned mounts_poll(struct file *file, poll_table *wait)
648{ 651{
649 struct proc_mounts *p = file->private_data; 652 struct proc_mounts *p = file->private_data;
650 struct mnt_namespace *ns = p->ns; 653 struct mnt_namespace *ns = p->ns;
651 unsigned res = 0; 654 unsigned res = POLLIN | POLLRDNORM;
652 655
653 poll_wait(file, &ns->poll, wait); 656 poll_wait(file, &ns->poll, wait);
654 657
655 spin_lock(&vfsmount_lock); 658 spin_lock(&vfsmount_lock);
656 if (p->event != ns->event) { 659 if (p->event != ns->event) {
657 p->event = ns->event; 660 p->event = ns->event;
658 res = POLLERR; 661 res |= POLLERR | POLLPRI;
659 } 662 }
660 spin_unlock(&vfsmount_lock); 663 spin_unlock(&vfsmount_lock);
661 664
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index 74ea974f5ca6..c6b0302af4c4 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -35,7 +35,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
35#define K(x) ((x) << (PAGE_SHIFT - 10)) 35#define K(x) ((x) << (PAGE_SHIFT - 10))
36 si_meminfo(&i); 36 si_meminfo(&i);
37 si_swapinfo(&i); 37 si_swapinfo(&i);
38 committed = atomic_long_read(&vm_committed_space); 38 committed = percpu_counter_read_positive(&vm_committed_as);
39 allowed = ((totalram_pages - hugetlb_total_pages()) 39 allowed = ((totalram_pages - hugetlb_total_pages())
40 * sysctl_overcommit_ratio / 100) + total_swap_pages; 40 * sysctl_overcommit_ratio / 100) + total_swap_pages;
41 41
diff --git a/fs/proc/root.c b/fs/proc/root.c
index 1e15a2b176e8..b080b791d9e3 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -67,8 +67,7 @@ static int proc_get_sb(struct file_system_type *fs_type,
67 sb->s_flags = flags; 67 sb->s_flags = flags;
68 err = proc_fill_super(sb); 68 err = proc_fill_super(sb);
69 if (err) { 69 if (err) {
70 up_write(&sb->s_umount); 70 deactivate_locked_super(sb);
71 deactivate_super(sb);
72 return err; 71 return err;
73 } 72 }
74 73
diff --git a/fs/proc/stat.c b/fs/proc/stat.c
index f75efa22df5e..81e4eb60972e 100644
--- a/fs/proc/stat.c
+++ b/fs/proc/stat.c
@@ -18,6 +18,9 @@
18#ifndef arch_irq_stat 18#ifndef arch_irq_stat
19#define arch_irq_stat() 0 19#define arch_irq_stat() 0
20#endif 20#endif
21#ifndef arch_idle_time
22#define arch_idle_time(cpu) 0
23#endif
21 24
22static int show_stat(struct seq_file *p, void *v) 25static int show_stat(struct seq_file *p, void *v)
23{ 26{
@@ -40,6 +43,7 @@ static int show_stat(struct seq_file *p, void *v)
40 nice = cputime64_add(nice, kstat_cpu(i).cpustat.nice); 43 nice = cputime64_add(nice, kstat_cpu(i).cpustat.nice);
41 system = cputime64_add(system, kstat_cpu(i).cpustat.system); 44 system = cputime64_add(system, kstat_cpu(i).cpustat.system);
42 idle = cputime64_add(idle, kstat_cpu(i).cpustat.idle); 45 idle = cputime64_add(idle, kstat_cpu(i).cpustat.idle);
46 idle = cputime64_add(idle, arch_idle_time(i));
43 iowait = cputime64_add(iowait, kstat_cpu(i).cpustat.iowait); 47 iowait = cputime64_add(iowait, kstat_cpu(i).cpustat.iowait);
44 irq = cputime64_add(irq, kstat_cpu(i).cpustat.irq); 48 irq = cputime64_add(irq, kstat_cpu(i).cpustat.irq);
45 softirq = cputime64_add(softirq, kstat_cpu(i).cpustat.softirq); 49 softirq = cputime64_add(softirq, kstat_cpu(i).cpustat.softirq);
@@ -69,6 +73,7 @@ static int show_stat(struct seq_file *p, void *v)
69 nice = kstat_cpu(i).cpustat.nice; 73 nice = kstat_cpu(i).cpustat.nice;
70 system = kstat_cpu(i).cpustat.system; 74 system = kstat_cpu(i).cpustat.system;
71 idle = kstat_cpu(i).cpustat.idle; 75 idle = kstat_cpu(i).cpustat.idle;
76 idle = cputime64_add(idle, arch_idle_time(i));
72 iowait = kstat_cpu(i).cpustat.iowait; 77 iowait = kstat_cpu(i).cpustat.iowait;
73 irq = kstat_cpu(i).cpustat.irq; 78 irq = kstat_cpu(i).cpustat.irq;
74 softirq = kstat_cpu(i).cpustat.softirq; 79 softirq = kstat_cpu(i).cpustat.softirq;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 39e4ad4f59f4..6f61b7cc32e0 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -665,6 +665,10 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
665 goto out_task; 665 goto out_task;
666 666
667 ret = 0; 667 ret = 0;
668
669 if (!count)
670 goto out_task;
671
668 mm = get_task_mm(task); 672 mm = get_task_mm(task);
669 if (!mm) 673 if (!mm)
670 goto out_task; 674 goto out_task;
diff --git a/fs/quota/Makefile b/fs/quota/Makefile
index 385a0831cc99..68d4f6dc0578 100644
--- a/fs/quota/Makefile
+++ b/fs/quota/Makefile
@@ -1,12 +1,3 @@
1#
2# Makefile for the Linux filesystems.
3#
4# 14 Sep 2000, Christoph Hellwig <hch@infradead.org>
5# Rewritten to use lists instead of if-statements.
6#
7
8obj-y :=
9
10obj-$(CONFIG_QUOTA) += dquot.o 1obj-$(CONFIG_QUOTA) += dquot.o
11obj-$(CONFIG_QFMT_V1) += quota_v1.o 2obj-$(CONFIG_QFMT_V1) += quota_v1.o
12obj-$(CONFIG_QFMT_V2) += quota_v2.o 3obj-$(CONFIG_QFMT_V2) += quota_v2.o
diff --git a/fs/reiserfs/dir.c b/fs/reiserfs/dir.c
index 67a80d7e59e2..45ee3d357c70 100644
--- a/fs/reiserfs/dir.c
+++ b/fs/reiserfs/dir.c
@@ -41,6 +41,18 @@ static int reiserfs_dir_fsync(struct file *filp, struct dentry *dentry,
41 41
42#define store_ih(where,what) copy_item_head (where, what) 42#define store_ih(where,what) copy_item_head (where, what)
43 43
44static inline bool is_privroot_deh(struct dentry *dir,
45 struct reiserfs_de_head *deh)
46{
47 int ret = 0;
48#ifdef CONFIG_REISERFS_FS_XATTR
49 struct dentry *privroot = REISERFS_SB(dir->d_sb)->priv_root;
50 ret = (dir == dir->d_parent && privroot->d_inode &&
51 deh->deh_objectid == INODE_PKEY(privroot->d_inode)->k_objectid);
52#endif
53 return ret;
54}
55
44int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent, 56int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent,
45 filldir_t filldir, loff_t *pos) 57 filldir_t filldir, loff_t *pos)
46{ 58{
@@ -138,18 +150,8 @@ int reiserfs_readdir_dentry(struct dentry *dentry, void *dirent,
138 } 150 }
139 151
140 /* Ignore the .reiserfs_priv entry */ 152 /* Ignore the .reiserfs_priv entry */
141 if (reiserfs_xattrs(inode->i_sb) && 153 if (is_privroot_deh(dentry, deh))
142 !old_format_only(inode->i_sb) &&
143 dentry == inode->i_sb->s_root &&
144 REISERFS_SB(inode->i_sb)->priv_root &&
145 REISERFS_SB(inode->i_sb)->priv_root->d_inode
146 && deh_objectid(deh) ==
147 le32_to_cpu(INODE_PKEY
148 (REISERFS_SB(inode->i_sb)->
149 priv_root->d_inode)->
150 k_objectid)) {
151 continue; 154 continue;
152 }
153 155
154 d_off = deh_offset(deh); 156 d_off = deh_offset(deh);
155 *pos = d_off; 157 *pos = d_off;
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
index efd4d720718e..271579128634 100644
--- a/fs/reiserfs/namei.c
+++ b/fs/reiserfs/namei.c
@@ -338,21 +338,8 @@ static struct dentry *reiserfs_lookup(struct inode *dir, struct dentry *dentry,
338 &path_to_entry, &de); 338 &path_to_entry, &de);
339 pathrelse(&path_to_entry); 339 pathrelse(&path_to_entry);
340 if (retval == NAME_FOUND) { 340 if (retval == NAME_FOUND) {
341 /* Hide the .reiserfs_priv directory */ 341 inode = reiserfs_iget(dir->i_sb,
342 if (reiserfs_xattrs(dir->i_sb) && 342 (struct cpu_key *)&(de.de_dir_id));
343 !old_format_only(dir->i_sb) &&
344 REISERFS_SB(dir->i_sb)->priv_root &&
345 REISERFS_SB(dir->i_sb)->priv_root->d_inode &&
346 de.de_objectid ==
347 le32_to_cpu(INODE_PKEY
348 (REISERFS_SB(dir->i_sb)->priv_root->d_inode)->
349 k_objectid)) {
350 reiserfs_write_unlock(dir->i_sb);
351 return ERR_PTR(-EACCES);
352 }
353
354 inode =
355 reiserfs_iget(dir->i_sb, (struct cpu_key *)&(de.de_dir_id));
356 if (!inode || IS_ERR(inode)) { 343 if (!inode || IS_ERR(inode)) {
357 reiserfs_write_unlock(dir->i_sb); 344 reiserfs_write_unlock(dir->i_sb);
358 return ERR_PTR(-EACCES); 345 return ERR_PTR(-EACCES);
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
index 0ae6486d9046..1215a4f50cd2 100644
--- a/fs/reiserfs/super.c
+++ b/fs/reiserfs/super.c
@@ -1316,8 +1316,7 @@ static int reiserfs_remount(struct super_block *s, int *mount_flags, char *arg)
1316 } 1316 }
1317 1317
1318out_ok: 1318out_ok:
1319 kfree(s->s_options); 1319 replace_mount_options(s, new_opts);
1320 s->s_options = new_opts;
1321 return 0; 1320 return 0;
1322 1321
1323out_err: 1322out_err:
@@ -1842,7 +1841,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1842 goto error; 1841 goto error;
1843 } 1842 }
1844 1843
1845 if ((errval = reiserfs_xattr_init(s, s->s_flags))) { 1844 if ((errval = reiserfs_lookup_privroot(s)) ||
1845 (errval = reiserfs_xattr_init(s, s->s_flags))) {
1846 dput(s->s_root); 1846 dput(s->s_root);
1847 s->s_root = NULL; 1847 s->s_root = NULL;
1848 goto error; 1848 goto error;
@@ -1855,7 +1855,8 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
1855 reiserfs_info(s, "using 3.5.x disk format\n"); 1855 reiserfs_info(s, "using 3.5.x disk format\n");
1856 } 1856 }
1857 1857
1858 if ((errval = reiserfs_xattr_init(s, s->s_flags))) { 1858 if ((errval = reiserfs_lookup_privroot(s)) ||
1859 (errval = reiserfs_xattr_init(s, s->s_flags))) {
1859 dput(s->s_root); 1860 dput(s->s_root);
1860 s->s_root = NULL; 1861 s->s_root = NULL;
1861 goto error; 1862 goto error;
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index f83f52bae390..2237e10c7c7c 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -113,41 +113,28 @@ static int xattr_rmdir(struct inode *dir, struct dentry *dentry)
113 113
114#define xattr_may_create(flags) (!flags || flags & XATTR_CREATE) 114#define xattr_may_create(flags) (!flags || flags & XATTR_CREATE)
115 115
116/* Returns and possibly creates the xattr dir. */ 116static struct dentry *open_xa_root(struct super_block *sb, int flags)
117static struct dentry *lookup_or_create_dir(struct dentry *parent,
118 const char *name, int flags)
119{ 117{
120 struct dentry *dentry; 118 struct dentry *privroot = REISERFS_SB(sb)->priv_root;
121 BUG_ON(!parent); 119 struct dentry *xaroot;
120 if (!privroot->d_inode)
121 return ERR_PTR(-ENODATA);
122 122
123 dentry = lookup_one_len(name, parent, strlen(name)); 123 mutex_lock_nested(&privroot->d_inode->i_mutex, I_MUTEX_XATTR);
124 if (IS_ERR(dentry))
125 return dentry;
126 else if (!dentry->d_inode) {
127 int err = -ENODATA;
128
129 if (xattr_may_create(flags)) {
130 mutex_lock_nested(&parent->d_inode->i_mutex,
131 I_MUTEX_XATTR);
132 err = xattr_mkdir(parent->d_inode, dentry, 0700);
133 mutex_unlock(&parent->d_inode->i_mutex);
134 }
135 124
125 xaroot = dget(REISERFS_SB(sb)->xattr_root);
126 if (!xaroot->d_inode) {
127 int err = -ENODATA;
128 if (xattr_may_create(flags))
129 err = xattr_mkdir(privroot->d_inode, xaroot, 0700);
136 if (err) { 130 if (err) {
137 dput(dentry); 131 dput(xaroot);
138 dentry = ERR_PTR(err); 132 xaroot = ERR_PTR(err);
139 } 133 }
140 } 134 }
141 135
142 return dentry; 136 mutex_unlock(&privroot->d_inode->i_mutex);
143} 137 return xaroot;
144
145static struct dentry *open_xa_root(struct super_block *sb, int flags)
146{
147 struct dentry *privroot = REISERFS_SB(sb)->priv_root;
148 if (!privroot)
149 return ERR_PTR(-ENODATA);
150 return lookup_or_create_dir(privroot, XAROOT_NAME, flags);
151} 138}
152 139
153static struct dentry *open_xa_dir(const struct inode *inode, int flags) 140static struct dentry *open_xa_dir(const struct inode *inode, int flags)
@@ -163,10 +150,22 @@ static struct dentry *open_xa_dir(const struct inode *inode, int flags)
163 le32_to_cpu(INODE_PKEY(inode)->k_objectid), 150 le32_to_cpu(INODE_PKEY(inode)->k_objectid),
164 inode->i_generation); 151 inode->i_generation);
165 152
166 xadir = lookup_or_create_dir(xaroot, namebuf, flags); 153 mutex_lock_nested(&xaroot->d_inode->i_mutex, I_MUTEX_XATTR);
154
155 xadir = lookup_one_len(namebuf, xaroot, strlen(namebuf));
156 if (!IS_ERR(xadir) && !xadir->d_inode) {
157 int err = -ENODATA;
158 if (xattr_may_create(flags))
159 err = xattr_mkdir(xaroot->d_inode, xadir, 0700);
160 if (err) {
161 dput(xadir);
162 xadir = ERR_PTR(err);
163 }
164 }
165
166 mutex_unlock(&xaroot->d_inode->i_mutex);
167 dput(xaroot); 167 dput(xaroot);
168 return xadir; 168 return xadir;
169
170} 169}
171 170
172/* The following are side effects of other operations that aren't explicitly 171/* The following are side effects of other operations that aren't explicitly
@@ -184,6 +183,7 @@ fill_with_dentries(void *buf, const char *name, int namelen, loff_t offset,
184{ 183{
185 struct reiserfs_dentry_buf *dbuf = buf; 184 struct reiserfs_dentry_buf *dbuf = buf;
186 struct dentry *dentry; 185 struct dentry *dentry;
186 WARN_ON_ONCE(!mutex_is_locked(&dbuf->xadir->d_inode->i_mutex));
187 187
188 if (dbuf->count == ARRAY_SIZE(dbuf->dentries)) 188 if (dbuf->count == ARRAY_SIZE(dbuf->dentries))
189 return -ENOSPC; 189 return -ENOSPC;
@@ -349,6 +349,7 @@ static struct dentry *xattr_lookup(struct inode *inode, const char *name,
349 if (IS_ERR(xadir)) 349 if (IS_ERR(xadir))
350 return ERR_CAST(xadir); 350 return ERR_CAST(xadir);
351 351
352 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
352 xafile = lookup_one_len(name, xadir, strlen(name)); 353 xafile = lookup_one_len(name, xadir, strlen(name));
353 if (IS_ERR(xafile)) { 354 if (IS_ERR(xafile)) {
354 err = PTR_ERR(xafile); 355 err = PTR_ERR(xafile);
@@ -360,18 +361,15 @@ static struct dentry *xattr_lookup(struct inode *inode, const char *name,
360 361
361 if (!xafile->d_inode) { 362 if (!xafile->d_inode) {
362 err = -ENODATA; 363 err = -ENODATA;
363 if (xattr_may_create(flags)) { 364 if (xattr_may_create(flags))
364 mutex_lock_nested(&xadir->d_inode->i_mutex,
365 I_MUTEX_XATTR);
366 err = xattr_create(xadir->d_inode, xafile, 365 err = xattr_create(xadir->d_inode, xafile,
367 0700|S_IFREG); 366 0700|S_IFREG);
368 mutex_unlock(&xadir->d_inode->i_mutex);
369 }
370 } 367 }
371 368
372 if (err) 369 if (err)
373 dput(xafile); 370 dput(xafile);
374out: 371out:
372 mutex_unlock(&xadir->d_inode->i_mutex);
375 dput(xadir); 373 dput(xadir);
376 if (err) 374 if (err)
377 return ERR_PTR(err); 375 return ERR_PTR(err);
@@ -435,6 +433,7 @@ static int lookup_and_delete_xattr(struct inode *inode, const char *name)
435 if (IS_ERR(xadir)) 433 if (IS_ERR(xadir))
436 return PTR_ERR(xadir); 434 return PTR_ERR(xadir);
437 435
436 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
438 dentry = lookup_one_len(name, xadir, strlen(name)); 437 dentry = lookup_one_len(name, xadir, strlen(name));
439 if (IS_ERR(dentry)) { 438 if (IS_ERR(dentry)) {
440 err = PTR_ERR(dentry); 439 err = PTR_ERR(dentry);
@@ -442,14 +441,13 @@ static int lookup_and_delete_xattr(struct inode *inode, const char *name)
442 } 441 }
443 442
444 if (dentry->d_inode) { 443 if (dentry->d_inode) {
445 mutex_lock_nested(&xadir->d_inode->i_mutex, I_MUTEX_XATTR);
446 err = xattr_unlink(xadir->d_inode, dentry); 444 err = xattr_unlink(xadir->d_inode, dentry);
447 mutex_unlock(&xadir->d_inode->i_mutex);
448 update_ctime(inode); 445 update_ctime(inode);
449 } 446 }
450 447
451 dput(dentry); 448 dput(dentry);
452out_dput: 449out_dput:
450 mutex_unlock(&xadir->d_inode->i_mutex);
453 dput(xadir); 451 dput(xadir);
454 return err; 452 return err;
455} 453}
@@ -843,7 +841,7 @@ ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
843 if (!dentry->d_inode) 841 if (!dentry->d_inode)
844 return -EINVAL; 842 return -EINVAL;
845 843
846 if (!reiserfs_xattrs(dentry->d_sb) || 844 if (!dentry->d_sb->s_xattr ||
847 get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1) 845 get_inode_sd_version(dentry->d_inode) == STAT_DATA_V1)
848 return -EOPNOTSUPP; 846 return -EOPNOTSUPP;
849 847
@@ -906,19 +904,22 @@ static int create_privroot(struct dentry *dentry)
906{ 904{
907 int err; 905 int err;
908 struct inode *inode = dentry->d_parent->d_inode; 906 struct inode *inode = dentry->d_parent->d_inode;
909 mutex_lock_nested(&inode->i_mutex, I_MUTEX_XATTR); 907 WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
908
910 err = xattr_mkdir(inode, dentry, 0700); 909 err = xattr_mkdir(inode, dentry, 0700);
911 mutex_unlock(&inode->i_mutex); 910 if (err || !dentry->d_inode) {
912 if (err) { 911 reiserfs_warning(dentry->d_sb, "jdm-20006",
913 dput(dentry); 912 "xattrs/ACLs enabled and couldn't "
914 dentry = NULL; 913 "find/create .reiserfs_priv. "
914 "Failing mount.");
915 return -EOPNOTSUPP;
915 } 916 }
916 917
917 if (dentry && dentry->d_inode) 918 dentry->d_inode->i_flags |= S_PRIVATE;
918 reiserfs_info(dentry->d_sb, "Created %s - reserved for xattr " 919 reiserfs_info(dentry->d_sb, "Created %s - reserved for xattr "
919 "storage.\n", PRIVROOT_NAME); 920 "storage.\n", PRIVROOT_NAME);
920 921
921 return err; 922 return 0;
922} 923}
923 924
924static int xattr_mount_check(struct super_block *s) 925static int xattr_mount_check(struct super_block *s)
@@ -950,11 +951,9 @@ static int
950xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name) 951xattr_lookup_poison(struct dentry *dentry, struct qstr *q1, struct qstr *name)
951{ 952{
952 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root; 953 struct dentry *priv_root = REISERFS_SB(dentry->d_sb)->priv_root;
953 if (name->len == priv_root->d_name.len && 954 if (container_of(q1, struct dentry, d_name) == priv_root)
954 name->hash == priv_root->d_name.hash &&
955 !memcmp(name->name, priv_root->d_name.name, name->len)) {
956 return -ENOENT; 955 return -ENOENT;
957 } else if (q1->len == name->len && 956 if (q1->len == name->len &&
958 !memcmp(q1->name, name->name, name->len)) 957 !memcmp(q1->name, name->name, name->len))
959 return 0; 958 return 0;
960 return 1; 959 return 1;
@@ -964,59 +963,60 @@ static const struct dentry_operations xattr_lookup_poison_ops = {
964 .d_compare = xattr_lookup_poison, 963 .d_compare = xattr_lookup_poison,
965}; 964};
966 965
966int reiserfs_lookup_privroot(struct super_block *s)
967{
968 struct dentry *dentry;
969 int err = 0;
970
971 /* If we don't have the privroot located yet - go find it */
972 mutex_lock(&s->s_root->d_inode->i_mutex);
973 dentry = lookup_one_len(PRIVROOT_NAME, s->s_root,
974 strlen(PRIVROOT_NAME));
975 if (!IS_ERR(dentry)) {
976 REISERFS_SB(s)->priv_root = dentry;
977 s->s_root->d_op = &xattr_lookup_poison_ops;
978 if (dentry->d_inode)
979 dentry->d_inode->i_flags |= S_PRIVATE;
980 } else
981 err = PTR_ERR(dentry);
982 mutex_unlock(&s->s_root->d_inode->i_mutex);
983
984 return err;
985}
986
967/* We need to take a copy of the mount flags since things like 987/* We need to take a copy of the mount flags since things like
968 * MS_RDONLY don't get set until *after* we're called. 988 * MS_RDONLY don't get set until *after* we're called.
969 * mount_flags != mount_options */ 989 * mount_flags != mount_options */
970int reiserfs_xattr_init(struct super_block *s, int mount_flags) 990int reiserfs_xattr_init(struct super_block *s, int mount_flags)
971{ 991{
972 int err = 0; 992 int err = 0;
993 struct dentry *privroot = REISERFS_SB(s)->priv_root;
973 994
974#ifdef CONFIG_REISERFS_FS_XATTR 995#ifdef CONFIG_REISERFS_FS_XATTR
975 err = xattr_mount_check(s); 996 err = xattr_mount_check(s);
976 if (err) 997 if (err)
977 goto error; 998 goto error;
978#endif
979 999
980 /* If we don't have the privroot located yet - go find it */ 1000 if (!privroot->d_inode && !(mount_flags & MS_RDONLY)) {
981 if (!REISERFS_SB(s)->priv_root) { 1001 mutex_lock(&s->s_root->d_inode->i_mutex);
982 struct dentry *dentry; 1002 err = create_privroot(REISERFS_SB(s)->priv_root);
983 dentry = lookup_one_len(PRIVROOT_NAME, s->s_root, 1003 mutex_unlock(&s->s_root->d_inode->i_mutex);
984 strlen(PRIVROOT_NAME));
985 if (!IS_ERR(dentry)) {
986#ifdef CONFIG_REISERFS_FS_XATTR
987 if (!(mount_flags & MS_RDONLY) && !dentry->d_inode)
988 err = create_privroot(dentry);
989#endif
990 if (!dentry->d_inode) {
991 dput(dentry);
992 dentry = NULL;
993 }
994 } else
995 err = PTR_ERR(dentry);
996
997 if (!err && dentry) {
998 s->s_root->d_op = &xattr_lookup_poison_ops;
999 dentry->d_inode->i_flags |= S_PRIVATE;
1000 REISERFS_SB(s)->priv_root = dentry;
1001#ifdef CONFIG_REISERFS_FS_XATTR
1002 /* xattrs are unavailable */
1003 } else if (!(mount_flags & MS_RDONLY)) {
1004 /* If we're read-only it just means that the dir
1005 * hasn't been created. Not an error -- just no
1006 * xattrs on the fs. We'll check again if we
1007 * go read-write */
1008 reiserfs_warning(s, "jdm-20006",
1009 "xattrs/ACLs enabled and couldn't "
1010 "find/create .reiserfs_priv. "
1011 "Failing mount.");
1012 err = -EOPNOTSUPP;
1013#endif
1014 }
1015 } 1004 }
1016 1005
1017#ifdef CONFIG_REISERFS_FS_XATTR 1006 if (privroot->d_inode) {
1018 if (!err)
1019 s->s_xattr = reiserfs_xattr_handlers; 1007 s->s_xattr = reiserfs_xattr_handlers;
1008 mutex_lock(&privroot->d_inode->i_mutex);
1009 if (!REISERFS_SB(s)->xattr_root) {
1010 struct dentry *dentry;
1011 dentry = lookup_one_len(XAROOT_NAME, privroot,
1012 strlen(XAROOT_NAME));
1013 if (!IS_ERR(dentry))
1014 REISERFS_SB(s)->xattr_root = dentry;
1015 else
1016 err = PTR_ERR(dentry);
1017 }
1018 mutex_unlock(&privroot->d_inode->i_mutex);
1019 }
1020 1020
1021error: 1021error:
1022 if (err) { 1022 if (err) {
@@ -1026,11 +1026,12 @@ error:
1026#endif 1026#endif
1027 1027
1028 /* The super_block MS_POSIXACL must mirror the (no)acl mount option. */ 1028 /* The super_block MS_POSIXACL must mirror the (no)acl mount option. */
1029 s->s_flags = s->s_flags & ~MS_POSIXACL;
1030#ifdef CONFIG_REISERFS_FS_POSIX_ACL 1029#ifdef CONFIG_REISERFS_FS_POSIX_ACL
1031 if (reiserfs_posixacl(s)) 1030 if (reiserfs_posixacl(s))
1032 s->s_flags |= MS_POSIXACL; 1031 s->s_flags |= MS_POSIXACL;
1032 else
1033#endif 1033#endif
1034 s->s_flags &= ~MS_POSIXACL;
1034 1035
1035 return err; 1036 return err;
1036} 1037}
diff --git a/fs/reiserfs/xattr_security.c b/fs/reiserfs/xattr_security.c
index 4d3c20e787c3..a92c8792c0f6 100644
--- a/fs/reiserfs/xattr_security.c
+++ b/fs/reiserfs/xattr_security.c
@@ -55,8 +55,16 @@ int reiserfs_security_init(struct inode *dir, struct inode *inode,
55 struct reiserfs_security_handle *sec) 55 struct reiserfs_security_handle *sec)
56{ 56{
57 int blocks = 0; 57 int blocks = 0;
58 int error = security_inode_init_security(inode, dir, &sec->name, 58 int error;
59 &sec->value, &sec->length); 59
60 sec->name = NULL;
61
62 /* Don't add selinux attributes on xattrs - they'll never get used */
63 if (IS_PRIVATE(dir))
64 return 0;
65
66 error = security_inode_init_security(inode, dir, &sec->name,
67 &sec->value, &sec->length);
60 if (error) { 68 if (error) {
61 if (error == -EOPNOTSUPP) 69 if (error == -EOPNOTSUPP)
62 error = 0; 70 error = 0;
diff --git a/fs/romfs/internal.h b/fs/romfs/internal.h
index 06044a9dc62d..95217b830118 100644
--- a/fs/romfs/internal.h
+++ b/fs/romfs/internal.h
@@ -43,5 +43,5 @@ extern int romfs_dev_read(struct super_block *sb, unsigned long pos,
43 void *buf, size_t buflen); 43 void *buf, size_t buflen);
44extern ssize_t romfs_dev_strnlen(struct super_block *sb, 44extern ssize_t romfs_dev_strnlen(struct super_block *sb,
45 unsigned long pos, size_t maxlen); 45 unsigned long pos, size_t maxlen);
46extern int romfs_dev_strncmp(struct super_block *sb, unsigned long pos, 46extern int romfs_dev_strcmp(struct super_block *sb, unsigned long pos,
47 const char *str, size_t size); 47 const char *str, size_t size);
diff --git a/fs/romfs/storage.c b/fs/romfs/storage.c
index 7e3e1e12a081..b3208adf8e71 100644
--- a/fs/romfs/storage.c
+++ b/fs/romfs/storage.c
@@ -67,26 +67,35 @@ static ssize_t romfs_mtd_strnlen(struct super_block *sb,
67 * compare a string to one in a romfs image on MTD 67 * compare a string to one in a romfs image on MTD
68 * - return 1 if matched, 0 if differ, -ve if error 68 * - return 1 if matched, 0 if differ, -ve if error
69 */ 69 */
70static int romfs_mtd_strncmp(struct super_block *sb, unsigned long pos, 70static int romfs_mtd_strcmp(struct super_block *sb, unsigned long pos,
71 const char *str, size_t size) 71 const char *str, size_t size)
72{ 72{
73 u_char buf[16]; 73 u_char buf[17];
74 size_t len, segment; 74 size_t len, segment;
75 int ret; 75 int ret;
76 76
77 /* scan the string up to 16 bytes at a time */ 77 /* scan the string up to 16 bytes at a time, and attempt to grab the
78 * trailing NUL whilst we're at it */
79 buf[0] = 0xff;
80
78 while (size > 0) { 81 while (size > 0) {
79 segment = min_t(size_t, size, 16); 82 segment = min_t(size_t, size + 1, 17);
80 ret = ROMFS_MTD_READ(sb, pos, segment, &len, buf); 83 ret = ROMFS_MTD_READ(sb, pos, segment, &len, buf);
81 if (ret < 0) 84 if (ret < 0)
82 return ret; 85 return ret;
86 len--;
83 if (memcmp(buf, str, len) != 0) 87 if (memcmp(buf, str, len) != 0)
84 return 0; 88 return 0;
89 buf[0] = buf[len];
85 size -= len; 90 size -= len;
86 pos += len; 91 pos += len;
87 str += len; 92 str += len;
88 } 93 }
89 94
95 /* check the trailing NUL was */
96 if (buf[0])
97 return 0;
98
90 return 1; 99 return 1;
91} 100}
92#endif /* CONFIG_ROMFS_ON_MTD */ 101#endif /* CONFIG_ROMFS_ON_MTD */
@@ -111,6 +120,7 @@ static int romfs_blk_read(struct super_block *sb, unsigned long pos,
111 return -EIO; 120 return -EIO;
112 memcpy(buf, bh->b_data + offset, segment); 121 memcpy(buf, bh->b_data + offset, segment);
113 brelse(bh); 122 brelse(bh);
123 buf += segment;
114 buflen -= segment; 124 buflen -= segment;
115 pos += segment; 125 pos += segment;
116 } 126 }
@@ -154,28 +164,48 @@ static ssize_t romfs_blk_strnlen(struct super_block *sb,
154 * compare a string to one in a romfs image on a block device 164 * compare a string to one in a romfs image on a block device
155 * - return 1 if matched, 0 if differ, -ve if error 165 * - return 1 if matched, 0 if differ, -ve if error
156 */ 166 */
157static int romfs_blk_strncmp(struct super_block *sb, unsigned long pos, 167static int romfs_blk_strcmp(struct super_block *sb, unsigned long pos,
158 const char *str, size_t size) 168 const char *str, size_t size)
159{ 169{
160 struct buffer_head *bh; 170 struct buffer_head *bh;
161 unsigned long offset; 171 unsigned long offset;
162 size_t segment; 172 size_t segment;
163 bool x; 173 bool matched, terminated = false;
164 174
165 /* scan the string up to 16 bytes at a time */ 175 /* compare string up to a block at a time */
166 while (size > 0) { 176 while (size > 0) {
167 offset = pos & (ROMBSIZE - 1); 177 offset = pos & (ROMBSIZE - 1);
168 segment = min_t(size_t, size, ROMBSIZE - offset); 178 segment = min_t(size_t, size, ROMBSIZE - offset);
169 bh = sb_bread(sb, pos >> ROMBSBITS); 179 bh = sb_bread(sb, pos >> ROMBSBITS);
170 if (!bh) 180 if (!bh)
171 return -EIO; 181 return -EIO;
172 x = (memcmp(bh->b_data + offset, str, segment) != 0); 182 matched = (memcmp(bh->b_data + offset, str, segment) == 0);
173 brelse(bh); 183
174 if (x)
175 return 0;
176 size -= segment; 184 size -= segment;
177 pos += segment; 185 pos += segment;
178 str += segment; 186 str += segment;
187 if (matched && size == 0 && offset + segment < ROMBSIZE) {
188 if (!bh->b_data[offset + segment])
189 terminated = true;
190 else
191 matched = false;
192 }
193 brelse(bh);
194 if (!matched)
195 return 0;
196 }
197
198 if (!terminated) {
199 /* the terminating NUL must be on the first byte of the next
200 * block */
201 BUG_ON((pos & (ROMBSIZE - 1)) != 0);
202 bh = sb_bread(sb, pos >> ROMBSBITS);
203 if (!bh)
204 return -EIO;
205 matched = !bh->b_data[0];
206 brelse(bh);
207 if (!matched)
208 return 0;
179 } 209 }
180 210
181 return 1; 211 return 1;
@@ -234,10 +264,12 @@ ssize_t romfs_dev_strnlen(struct super_block *sb,
234 264
235/* 265/*
236 * compare a string to one in romfs 266 * compare a string to one in romfs
267 * - the string to be compared to, str, may not be NUL-terminated; instead the
268 * string is of the specified size
237 * - return 1 if matched, 0 if differ, -ve if error 269 * - return 1 if matched, 0 if differ, -ve if error
238 */ 270 */
239int romfs_dev_strncmp(struct super_block *sb, unsigned long pos, 271int romfs_dev_strcmp(struct super_block *sb, unsigned long pos,
240 const char *str, size_t size) 272 const char *str, size_t size)
241{ 273{
242 size_t limit; 274 size_t limit;
243 275
@@ -246,16 +278,16 @@ int romfs_dev_strncmp(struct super_block *sb, unsigned long pos,
246 return -EIO; 278 return -EIO;
247 if (size > ROMFS_MAXFN) 279 if (size > ROMFS_MAXFN)
248 return -ENAMETOOLONG; 280 return -ENAMETOOLONG;
249 if (size > limit - pos) 281 if (size + 1 > limit - pos)
250 return -EIO; 282 return -EIO;
251 283
252#ifdef CONFIG_ROMFS_ON_MTD 284#ifdef CONFIG_ROMFS_ON_MTD
253 if (sb->s_mtd) 285 if (sb->s_mtd)
254 return romfs_mtd_strncmp(sb, pos, str, size); 286 return romfs_mtd_strcmp(sb, pos, str, size);
255#endif 287#endif
256#ifdef CONFIG_ROMFS_ON_BLOCK 288#ifdef CONFIG_ROMFS_ON_BLOCK
257 if (sb->s_bdev) 289 if (sb->s_bdev)
258 return romfs_blk_strncmp(sb, pos, str, size); 290 return romfs_blk_strcmp(sb, pos, str, size);
259#endif 291#endif
260 return -EIO; 292 return -EIO;
261} 293}
diff --git a/fs/romfs/super.c b/fs/romfs/super.c
index 10ca7d984a8b..4ab3c03d8f95 100644
--- a/fs/romfs/super.c
+++ b/fs/romfs/super.c
@@ -240,8 +240,8 @@ static struct dentry *romfs_lookup(struct inode *dir, struct dentry *dentry,
240 goto error; 240 goto error;
241 241
242 /* try to match the first 16 bytes of name */ 242 /* try to match the first 16 bytes of name */
243 ret = romfs_dev_strncmp(dir->i_sb, offset + ROMFH_SIZE, name, 243 ret = romfs_dev_strcmp(dir->i_sb, offset + ROMFH_SIZE, name,
244 len); 244 len);
245 if (ret < 0) 245 if (ret < 0)
246 goto error; 246 goto error;
247 if (ret == 1) 247 if (ret == 1)
@@ -298,7 +298,8 @@ static struct inode *romfs_iget(struct super_block *sb, unsigned long pos)
298 struct romfs_inode ri; 298 struct romfs_inode ri;
299 struct inode *i; 299 struct inode *i;
300 unsigned long nlen; 300 unsigned long nlen;
301 unsigned nextfh, ret; 301 unsigned nextfh;
302 int ret;
302 umode_t mode; 303 umode_t mode;
303 304
304 /* we might have to traverse a chain of "hard link" file entries to get 305 /* we might have to traverse a chain of "hard link" file entries to get
diff --git a/fs/splice.c b/fs/splice.c
index c18aa7e03e2b..666953d59a35 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -182,8 +182,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
182 do_wakeup = 0; 182 do_wakeup = 0;
183 page_nr = 0; 183 page_nr = 0;
184 184
185 if (pipe->inode) 185 pipe_lock(pipe);
186 mutex_lock(&pipe->inode->i_mutex);
187 186
188 for (;;) { 187 for (;;) {
189 if (!pipe->readers) { 188 if (!pipe->readers) {
@@ -245,15 +244,13 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
245 pipe->waiting_writers--; 244 pipe->waiting_writers--;
246 } 245 }
247 246
248 if (pipe->inode) { 247 pipe_unlock(pipe);
249 mutex_unlock(&pipe->inode->i_mutex);
250 248
251 if (do_wakeup) { 249 if (do_wakeup) {
252 smp_mb(); 250 smp_mb();
253 if (waitqueue_active(&pipe->wait)) 251 if (waitqueue_active(&pipe->wait))
254 wake_up_interruptible(&pipe->wait); 252 wake_up_interruptible(&pipe->wait);
255 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); 253 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
256 }
257 } 254 }
258 255
259 while (page_nr < spd_pages) 256 while (page_nr < spd_pages)
@@ -555,8 +552,8 @@ static int pipe_to_sendpage(struct pipe_inode_info *pipe,
555 * SPLICE_F_MOVE isn't set, or we cannot move the page, we simply create 552 * SPLICE_F_MOVE isn't set, or we cannot move the page, we simply create
556 * a new page in the output file page cache and fill/dirty that. 553 * a new page in the output file page cache and fill/dirty that.
557 */ 554 */
558static int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf, 555int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
559 struct splice_desc *sd) 556 struct splice_desc *sd)
560{ 557{
561 struct file *file = sd->u.file; 558 struct file *file = sd->u.file;
562 struct address_space *mapping = file->f_mapping; 559 struct address_space *mapping = file->f_mapping;
@@ -600,108 +597,177 @@ static int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
600out: 597out:
601 return ret; 598 return ret;
602} 599}
600EXPORT_SYMBOL(pipe_to_file);
601
602static void wakeup_pipe_writers(struct pipe_inode_info *pipe)
603{
604 smp_mb();
605 if (waitqueue_active(&pipe->wait))
606 wake_up_interruptible(&pipe->wait);
607 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
608}
603 609
604/** 610/**
605 * __splice_from_pipe - splice data from a pipe to given actor 611 * splice_from_pipe_feed - feed available data from a pipe to a file
606 * @pipe: pipe to splice from 612 * @pipe: pipe to splice from
607 * @sd: information to @actor 613 * @sd: information to @actor
608 * @actor: handler that splices the data 614 * @actor: handler that splices the data
609 * 615 *
610 * Description: 616 * Description:
611 * This function does little more than loop over the pipe and call 617 * This function loops over the pipe and calls @actor to do the
612 * @actor to do the actual moving of a single struct pipe_buffer to 618 * actual moving of a single struct pipe_buffer to the desired
613 * the desired destination. See pipe_to_file, pipe_to_sendpage, or 619 * destination. It returns when there's no more buffers left in
614 * pipe_to_user. 620 * the pipe or if the requested number of bytes (@sd->total_len)
621 * have been copied. It returns a positive number (one) if the
622 * pipe needs to be filled with more data, zero if the required
623 * number of bytes have been copied and -errno on error.
615 * 624 *
625 * This, together with splice_from_pipe_{begin,end,next}, may be
626 * used to implement the functionality of __splice_from_pipe() when
627 * locking is required around copying the pipe buffers to the
628 * destination.
616 */ 629 */
617ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd, 630int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_desc *sd,
618 splice_actor *actor) 631 splice_actor *actor)
619{ 632{
620 int ret, do_wakeup, err; 633 int ret;
621
622 ret = 0;
623 do_wakeup = 0;
624
625 for (;;) {
626 if (pipe->nrbufs) {
627 struct pipe_buffer *buf = pipe->bufs + pipe->curbuf;
628 const struct pipe_buf_operations *ops = buf->ops;
629 634
630 sd->len = buf->len; 635 while (pipe->nrbufs) {
631 if (sd->len > sd->total_len) 636 struct pipe_buffer *buf = pipe->bufs + pipe->curbuf;
632 sd->len = sd->total_len; 637 const struct pipe_buf_operations *ops = buf->ops;
633 638
634 err = actor(pipe, buf, sd); 639 sd->len = buf->len;
635 if (err <= 0) { 640 if (sd->len > sd->total_len)
636 if (!ret && err != -ENODATA) 641 sd->len = sd->total_len;
637 ret = err;
638 642
639 break; 643 ret = actor(pipe, buf, sd);
640 } 644 if (ret <= 0) {
645 if (ret == -ENODATA)
646 ret = 0;
647 return ret;
648 }
649 buf->offset += ret;
650 buf->len -= ret;
641 651
642 ret += err; 652 sd->num_spliced += ret;
643 buf->offset += err; 653 sd->len -= ret;
644 buf->len -= err; 654 sd->pos += ret;
655 sd->total_len -= ret;
645 656
646 sd->len -= err; 657 if (!buf->len) {
647 sd->pos += err; 658 buf->ops = NULL;
648 sd->total_len -= err; 659 ops->release(pipe, buf);
649 if (sd->len) 660 pipe->curbuf = (pipe->curbuf + 1) & (PIPE_BUFFERS - 1);
650 continue; 661 pipe->nrbufs--;
662 if (pipe->inode)
663 sd->need_wakeup = true;
664 }
651 665
652 if (!buf->len) { 666 if (!sd->total_len)
653 buf->ops = NULL; 667 return 0;
654 ops->release(pipe, buf); 668 }
655 pipe->curbuf = (pipe->curbuf + 1) & (PIPE_BUFFERS - 1);
656 pipe->nrbufs--;
657 if (pipe->inode)
658 do_wakeup = 1;
659 }
660 669
661 if (!sd->total_len) 670 return 1;
662 break; 671}
663 } 672EXPORT_SYMBOL(splice_from_pipe_feed);
664 673
665 if (pipe->nrbufs) 674/**
666 continue; 675 * splice_from_pipe_next - wait for some data to splice from
676 * @pipe: pipe to splice from
677 * @sd: information about the splice operation
678 *
679 * Description:
680 * This function will wait for some data and return a positive
681 * value (one) if pipe buffers are available. It will return zero
682 * or -errno if no more data needs to be spliced.
683 */
684int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
685{
686 while (!pipe->nrbufs) {
667 if (!pipe->writers) 687 if (!pipe->writers)
668 break; 688 return 0;
669 if (!pipe->waiting_writers) {
670 if (ret)
671 break;
672 }
673 689
674 if (sd->flags & SPLICE_F_NONBLOCK) { 690 if (!pipe->waiting_writers && sd->num_spliced)
675 if (!ret) 691 return 0;
676 ret = -EAGAIN;
677 break;
678 }
679 692
680 if (signal_pending(current)) { 693 if (sd->flags & SPLICE_F_NONBLOCK)
681 if (!ret) 694 return -EAGAIN;
682 ret = -ERESTARTSYS;
683 break;
684 }
685 695
686 if (do_wakeup) { 696 if (signal_pending(current))
687 smp_mb(); 697 return -ERESTARTSYS;
688 if (waitqueue_active(&pipe->wait)) 698
689 wake_up_interruptible_sync(&pipe->wait); 699 if (sd->need_wakeup) {
690 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); 700 wakeup_pipe_writers(pipe);
691 do_wakeup = 0; 701 sd->need_wakeup = false;
692 } 702 }
693 703
694 pipe_wait(pipe); 704 pipe_wait(pipe);
695 } 705 }
696 706
697 if (do_wakeup) { 707 return 1;
698 smp_mb(); 708}
699 if (waitqueue_active(&pipe->wait)) 709EXPORT_SYMBOL(splice_from_pipe_next);
700 wake_up_interruptible(&pipe->wait);
701 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
702 }
703 710
704 return ret; 711/**
712 * splice_from_pipe_begin - start splicing from pipe
713 * @sd: information about the splice operation
714 *
715 * Description:
716 * This function should be called before a loop containing
717 * splice_from_pipe_next() and splice_from_pipe_feed() to
718 * initialize the necessary fields of @sd.
719 */
720void splice_from_pipe_begin(struct splice_desc *sd)
721{
722 sd->num_spliced = 0;
723 sd->need_wakeup = false;
724}
725EXPORT_SYMBOL(splice_from_pipe_begin);
726
727/**
728 * splice_from_pipe_end - finish splicing from pipe
729 * @pipe: pipe to splice from
730 * @sd: information about the splice operation
731 *
732 * Description:
733 * This function will wake up pipe writers if necessary. It should
734 * be called after a loop containing splice_from_pipe_next() and
735 * splice_from_pipe_feed().
736 */
737void splice_from_pipe_end(struct pipe_inode_info *pipe, struct splice_desc *sd)
738{
739 if (sd->need_wakeup)
740 wakeup_pipe_writers(pipe);
741}
742EXPORT_SYMBOL(splice_from_pipe_end);
743
744/**
745 * __splice_from_pipe - splice data from a pipe to given actor
746 * @pipe: pipe to splice from
747 * @sd: information to @actor
748 * @actor: handler that splices the data
749 *
750 * Description:
751 * This function does little more than loop over the pipe and call
752 * @actor to do the actual moving of a single struct pipe_buffer to
753 * the desired destination. See pipe_to_file, pipe_to_sendpage, or
754 * pipe_to_user.
755 *
756 */
757ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd,
758 splice_actor *actor)
759{
760 int ret;
761
762 splice_from_pipe_begin(sd);
763 do {
764 ret = splice_from_pipe_next(pipe, sd);
765 if (ret > 0)
766 ret = splice_from_pipe_feed(pipe, sd, actor);
767 } while (ret > 0);
768 splice_from_pipe_end(pipe, sd);
769
770 return sd->num_spliced ? sd->num_spliced : ret;
705} 771}
706EXPORT_SYMBOL(__splice_from_pipe); 772EXPORT_SYMBOL(__splice_from_pipe);
707 773
@@ -715,7 +781,7 @@ EXPORT_SYMBOL(__splice_from_pipe);
715 * @actor: handler that splices the data 781 * @actor: handler that splices the data
716 * 782 *
717 * Description: 783 * Description:
718 * See __splice_from_pipe. This function locks the input and output inodes, 784 * See __splice_from_pipe. This function locks the pipe inode,
719 * otherwise it's identical to __splice_from_pipe(). 785 * otherwise it's identical to __splice_from_pipe().
720 * 786 *
721 */ 787 */
@@ -724,7 +790,6 @@ ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out,
724 splice_actor *actor) 790 splice_actor *actor)
725{ 791{
726 ssize_t ret; 792 ssize_t ret;
727 struct inode *inode = out->f_mapping->host;
728 struct splice_desc sd = { 793 struct splice_desc sd = {
729 .total_len = len, 794 .total_len = len,
730 .flags = flags, 795 .flags = flags,
@@ -732,30 +797,15 @@ ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out,
732 .u.file = out, 797 .u.file = out,
733 }; 798 };
734 799
735 /* 800 pipe_lock(pipe);
736 * The actor worker might be calling ->write_begin and
737 * ->write_end. Most of the time, these expect i_mutex to
738 * be held. Since this may result in an ABBA deadlock with
739 * pipe->inode, we have to order lock acquiry here.
740 *
741 * Outer lock must be inode->i_mutex, as pipe_wait() will
742 * release and reacquire pipe->inode->i_mutex, AND inode must
743 * never be a pipe.
744 */
745 WARN_ON(S_ISFIFO(inode->i_mode));
746 mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT);
747 if (pipe->inode)
748 mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_CHILD);
749 ret = __splice_from_pipe(pipe, &sd, actor); 801 ret = __splice_from_pipe(pipe, &sd, actor);
750 if (pipe->inode) 802 pipe_unlock(pipe);
751 mutex_unlock(&pipe->inode->i_mutex);
752 mutex_unlock(&inode->i_mutex);
753 803
754 return ret; 804 return ret;
755} 805}
756 806
757/** 807/**
758 * generic_file_splice_write_nolock - generic_file_splice_write without mutexes 808 * generic_file_splice_write - splice data from a pipe to a file
759 * @pipe: pipe info 809 * @pipe: pipe info
760 * @out: file to write to 810 * @out: file to write to
761 * @ppos: position in @out 811 * @ppos: position in @out
@@ -764,13 +814,12 @@ ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out,
764 * 814 *
765 * Description: 815 * Description:
766 * Will either move or copy pages (determined by @flags options) from 816 * Will either move or copy pages (determined by @flags options) from
767 * the given pipe inode to the given file. The caller is responsible 817 * the given pipe inode to the given file.
768 * for acquiring i_mutex on both inodes.
769 * 818 *
770 */ 819 */
771ssize_t 820ssize_t
772generic_file_splice_write_nolock(struct pipe_inode_info *pipe, struct file *out, 821generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
773 loff_t *ppos, size_t len, unsigned int flags) 822 loff_t *ppos, size_t len, unsigned int flags)
774{ 823{
775 struct address_space *mapping = out->f_mapping; 824 struct address_space *mapping = out->f_mapping;
776 struct inode *inode = mapping->host; 825 struct inode *inode = mapping->host;
@@ -781,76 +830,28 @@ generic_file_splice_write_nolock(struct pipe_inode_info *pipe, struct file *out,
781 .u.file = out, 830 .u.file = out,
782 }; 831 };
783 ssize_t ret; 832 ssize_t ret;
784 int err;
785
786 err = file_remove_suid(out);
787 if (unlikely(err))
788 return err;
789
790 ret = __splice_from_pipe(pipe, &sd, pipe_to_file);
791 if (ret > 0) {
792 unsigned long nr_pages;
793 833
794 *ppos += ret; 834 pipe_lock(pipe);
795 nr_pages = (ret + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
796
797 /*
798 * If file or inode is SYNC and we actually wrote some data,
799 * sync it.
800 */
801 if (unlikely((out->f_flags & O_SYNC) || IS_SYNC(inode))) {
802 err = generic_osync_inode(inode, mapping,
803 OSYNC_METADATA|OSYNC_DATA);
804 835
805 if (err) 836 splice_from_pipe_begin(&sd);
806 ret = err; 837 do {
807 } 838 ret = splice_from_pipe_next(pipe, &sd);
808 balance_dirty_pages_ratelimited_nr(mapping, nr_pages); 839 if (ret <= 0)
809 } 840 break;
810 841
811 return ret; 842 mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD);
812} 843 ret = file_remove_suid(out);
844 if (!ret)
845 ret = splice_from_pipe_feed(pipe, &sd, pipe_to_file);
846 mutex_unlock(&inode->i_mutex);
847 } while (ret > 0);
848 splice_from_pipe_end(pipe, &sd);
813 849
814EXPORT_SYMBOL(generic_file_splice_write_nolock); 850 pipe_unlock(pipe);
815 851
816/** 852 if (sd.num_spliced)
817 * generic_file_splice_write - splice data from a pipe to a file 853 ret = sd.num_spliced;
818 * @pipe: pipe info
819 * @out: file to write to
820 * @ppos: position in @out
821 * @len: number of bytes to splice
822 * @flags: splice modifier flags
823 *
824 * Description:
825 * Will either move or copy pages (determined by @flags options) from
826 * the given pipe inode to the given file.
827 *
828 */
829ssize_t
830generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
831 loff_t *ppos, size_t len, unsigned int flags)
832{
833 struct address_space *mapping = out->f_mapping;
834 struct inode *inode = mapping->host;
835 struct splice_desc sd = {
836 .total_len = len,
837 .flags = flags,
838 .pos = *ppos,
839 .u.file = out,
840 };
841 ssize_t ret;
842 854
843 WARN_ON(S_ISFIFO(inode->i_mode));
844 mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT);
845 ret = file_remove_suid(out);
846 if (likely(!ret)) {
847 if (pipe->inode)
848 mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_CHILD);
849 ret = __splice_from_pipe(pipe, &sd, pipe_to_file);
850 if (pipe->inode)
851 mutex_unlock(&pipe->inode->i_mutex);
852 }
853 mutex_unlock(&inode->i_mutex);
854 if (ret > 0) { 855 if (ret > 0) {
855 unsigned long nr_pages; 856 unsigned long nr_pages;
856 857
@@ -1339,8 +1340,7 @@ static long vmsplice_to_user(struct file *file, const struct iovec __user *iov,
1339 if (!pipe) 1340 if (!pipe)
1340 return -EBADF; 1341 return -EBADF;
1341 1342
1342 if (pipe->inode) 1343 pipe_lock(pipe);
1343 mutex_lock(&pipe->inode->i_mutex);
1344 1344
1345 error = ret = 0; 1345 error = ret = 0;
1346 while (nr_segs) { 1346 while (nr_segs) {
@@ -1395,8 +1395,7 @@ static long vmsplice_to_user(struct file *file, const struct iovec __user *iov,
1395 iov++; 1395 iov++;
1396 } 1396 }
1397 1397
1398 if (pipe->inode) 1398 pipe_unlock(pipe);
1399 mutex_unlock(&pipe->inode->i_mutex);
1400 1399
1401 if (!ret) 1400 if (!ret)
1402 ret = error; 1401 ret = error;
@@ -1524,7 +1523,7 @@ static int link_ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1524 return 0; 1523 return 0;
1525 1524
1526 ret = 0; 1525 ret = 0;
1527 mutex_lock(&pipe->inode->i_mutex); 1526 pipe_lock(pipe);
1528 1527
1529 while (!pipe->nrbufs) { 1528 while (!pipe->nrbufs) {
1530 if (signal_pending(current)) { 1529 if (signal_pending(current)) {
@@ -1542,7 +1541,7 @@ static int link_ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1542 pipe_wait(pipe); 1541 pipe_wait(pipe);
1543 } 1542 }
1544 1543
1545 mutex_unlock(&pipe->inode->i_mutex); 1544 pipe_unlock(pipe);
1546 return ret; 1545 return ret;
1547} 1546}
1548 1547
@@ -1562,7 +1561,7 @@ static int link_opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1562 return 0; 1561 return 0;
1563 1562
1564 ret = 0; 1563 ret = 0;
1565 mutex_lock(&pipe->inode->i_mutex); 1564 pipe_lock(pipe);
1566 1565
1567 while (pipe->nrbufs >= PIPE_BUFFERS) { 1566 while (pipe->nrbufs >= PIPE_BUFFERS) {
1568 if (!pipe->readers) { 1567 if (!pipe->readers) {
@@ -1583,7 +1582,7 @@ static int link_opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1583 pipe->waiting_writers--; 1582 pipe->waiting_writers--;
1584 } 1583 }
1585 1584
1586 mutex_unlock(&pipe->inode->i_mutex); 1585 pipe_unlock(pipe);
1587 return ret; 1586 return ret;
1588} 1587}
1589 1588
@@ -1599,10 +1598,10 @@ static int link_pipe(struct pipe_inode_info *ipipe,
1599 1598
1600 /* 1599 /*
1601 * Potential ABBA deadlock, work around it by ordering lock 1600 * Potential ABBA deadlock, work around it by ordering lock
1602 * grabbing by inode address. Otherwise two different processes 1601 * grabbing by pipe info address. Otherwise two different processes
1603 * could deadlock (one doing tee from A -> B, the other from B -> A). 1602 * could deadlock (one doing tee from A -> B, the other from B -> A).
1604 */ 1603 */
1605 inode_double_lock(ipipe->inode, opipe->inode); 1604 pipe_double_lock(ipipe, opipe);
1606 1605
1607 do { 1606 do {
1608 if (!opipe->readers) { 1607 if (!opipe->readers) {
@@ -1653,7 +1652,8 @@ static int link_pipe(struct pipe_inode_info *ipipe,
1653 if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK)) 1652 if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK))
1654 ret = -EAGAIN; 1653 ret = -EAGAIN;
1655 1654
1656 inode_double_unlock(ipipe->inode, opipe->inode); 1655 pipe_unlock(ipipe);
1656 pipe_unlock(opipe);
1657 1657
1658 /* 1658 /*
1659 * If we put data in the output pipe, wakeup any potential readers. 1659 * If we put data in the output pipe, wakeup any potential readers.
diff --git a/fs/squashfs/Makefile b/fs/squashfs/Makefile
index 8258cf9a0317..70e3244fa30f 100644
--- a/fs/squashfs/Makefile
+++ b/fs/squashfs/Makefile
@@ -5,4 +5,3 @@
5obj-$(CONFIG_SQUASHFS) += squashfs.o 5obj-$(CONFIG_SQUASHFS) += squashfs.o
6squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o 6squashfs-y += block.o cache.o dir.o export.o file.o fragment.o id.o inode.o
7squashfs-y += namei.o super.o symlink.o 7squashfs-y += namei.o super.o symlink.o
8#squashfs-y += squashfs2_0.o
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 1c4739e33af6..40c98fa6b5d6 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -252,6 +252,7 @@ struct squashfs_cache *squashfs_cache_init(char *name, int entries,
252 cache->entries = entries; 252 cache->entries = entries;
253 cache->block_size = block_size; 253 cache->block_size = block_size;
254 cache->pages = block_size >> PAGE_CACHE_SHIFT; 254 cache->pages = block_size >> PAGE_CACHE_SHIFT;
255 cache->pages = cache->pages ? cache->pages : 1;
255 cache->name = name; 256 cache->name = name;
256 cache->num_waiters = 0; 257 cache->num_waiters = 0;
257 spin_lock_init(&cache->lock); 258 spin_lock_init(&cache->lock);
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index ffa6edcd2d0c..0adc624c956f 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -157,6 +157,16 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
157 if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE) 157 if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE)
158 goto failed_mount; 158 goto failed_mount;
159 159
160 /*
161 * Check the system page size is not larger than the filesystem
162 * block size (by default 128K). This is currently not supported.
163 */
164 if (PAGE_CACHE_SIZE > msblk->block_size) {
165 ERROR("Page size > filesystem block size (%d). This is "
166 "currently not supported!\n", msblk->block_size);
167 goto failed_mount;
168 }
169
160 msblk->block_log = le16_to_cpu(sblk->block_log); 170 msblk->block_log = le16_to_cpu(sblk->block_log);
161 if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) 171 if (msblk->block_log > SQUASHFS_FILE_MAX_LOG)
162 goto failed_mount; 172 goto failed_mount;
diff --git a/fs/stat.c b/fs/stat.c
index 2db740a0cfb5..075694e31d8b 100644
--- a/fs/stat.c
+++ b/fs/stat.c
@@ -55,59 +55,54 @@ int vfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
55 55
56EXPORT_SYMBOL(vfs_getattr); 56EXPORT_SYMBOL(vfs_getattr);
57 57
58int vfs_stat_fd(int dfd, char __user *name, struct kstat *stat) 58int vfs_fstat(unsigned int fd, struct kstat *stat)
59{ 59{
60 struct path path; 60 struct file *f = fget(fd);
61 int error; 61 int error = -EBADF;
62 62
63 error = user_path_at(dfd, name, LOOKUP_FOLLOW, &path); 63 if (f) {
64 if (!error) { 64 error = vfs_getattr(f->f_path.mnt, f->f_path.dentry, stat);
65 error = vfs_getattr(path.mnt, path.dentry, stat); 65 fput(f);
66 path_put(&path);
67 } 66 }
68 return error; 67 return error;
69} 68}
69EXPORT_SYMBOL(vfs_fstat);
70 70
71int vfs_stat(char __user *name, struct kstat *stat) 71int vfs_fstatat(int dfd, char __user *filename, struct kstat *stat, int flag)
72{ 72{
73 return vfs_stat_fd(AT_FDCWD, name, stat); 73 struct path path;
74} 74 int error = -EINVAL;
75 int lookup_flags = 0;
75 76
76EXPORT_SYMBOL(vfs_stat); 77 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
78 goto out;
77 79
78int vfs_lstat_fd(int dfd, char __user *name, struct kstat *stat) 80 if (!(flag & AT_SYMLINK_NOFOLLOW))
79{ 81 lookup_flags |= LOOKUP_FOLLOW;
80 struct path path;
81 int error;
82 82
83 error = user_path_at(dfd, name, 0, &path); 83 error = user_path_at(dfd, filename, lookup_flags, &path);
84 if (!error) { 84 if (error)
85 error = vfs_getattr(path.mnt, path.dentry, stat); 85 goto out;
86 path_put(&path); 86
87 } 87 error = vfs_getattr(path.mnt, path.dentry, stat);
88 path_put(&path);
89out:
88 return error; 90 return error;
89} 91}
92EXPORT_SYMBOL(vfs_fstatat);
90 93
91int vfs_lstat(char __user *name, struct kstat *stat) 94int vfs_stat(char __user *name, struct kstat *stat)
92{ 95{
93 return vfs_lstat_fd(AT_FDCWD, name, stat); 96 return vfs_fstatat(AT_FDCWD, name, stat, 0);
94} 97}
98EXPORT_SYMBOL(vfs_stat);
95 99
96EXPORT_SYMBOL(vfs_lstat); 100int vfs_lstat(char __user *name, struct kstat *stat)
97
98int vfs_fstat(unsigned int fd, struct kstat *stat)
99{ 101{
100 struct file *f = fget(fd); 102 return vfs_fstatat(AT_FDCWD, name, stat, AT_SYMLINK_NOFOLLOW);
101 int error = -EBADF;
102
103 if (f) {
104 error = vfs_getattr(f->f_path.mnt, f->f_path.dentry, stat);
105 fput(f);
106 }
107 return error;
108} 103}
104EXPORT_SYMBOL(vfs_lstat);
109 105
110EXPORT_SYMBOL(vfs_fstat);
111 106
112#ifdef __ARCH_WANT_OLD_STAT 107#ifdef __ARCH_WANT_OLD_STAT
113 108
@@ -155,23 +150,25 @@ static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * sta
155SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) 150SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf)
156{ 151{
157 struct kstat stat; 152 struct kstat stat;
158 int error = vfs_stat_fd(AT_FDCWD, filename, &stat); 153 int error;
159 154
160 if (!error) 155 error = vfs_stat(filename, &stat);
161 error = cp_old_stat(&stat, statbuf); 156 if (error)
157 return error;
162 158
163 return error; 159 return cp_old_stat(&stat, statbuf);
164} 160}
165 161
166SYSCALL_DEFINE2(lstat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) 162SYSCALL_DEFINE2(lstat, char __user *, filename, struct __old_kernel_stat __user *, statbuf)
167{ 163{
168 struct kstat stat; 164 struct kstat stat;
169 int error = vfs_lstat_fd(AT_FDCWD, filename, &stat); 165 int error;
170 166
171 if (!error) 167 error = vfs_lstat(filename, &stat);
172 error = cp_old_stat(&stat, statbuf); 168 if (error)
169 return error;
173 170
174 return error; 171 return cp_old_stat(&stat, statbuf);
175} 172}
176 173
177SYSCALL_DEFINE2(fstat, unsigned int, fd, struct __old_kernel_stat __user *, statbuf) 174SYSCALL_DEFINE2(fstat, unsigned int, fd, struct __old_kernel_stat __user *, statbuf)
@@ -240,23 +237,23 @@ static int cp_new_stat(struct kstat *stat, struct stat __user *statbuf)
240SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf) 237SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf)
241{ 238{
242 struct kstat stat; 239 struct kstat stat;
243 int error = vfs_stat_fd(AT_FDCWD, filename, &stat); 240 int error = vfs_stat(filename, &stat);
244
245 if (!error)
246 error = cp_new_stat(&stat, statbuf);
247 241
248 return error; 242 if (error)
243 return error;
244 return cp_new_stat(&stat, statbuf);
249} 245}
250 246
251SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf) 247SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf)
252{ 248{
253 struct kstat stat; 249 struct kstat stat;
254 int error = vfs_lstat_fd(AT_FDCWD, filename, &stat); 250 int error;
255 251
256 if (!error) 252 error = vfs_lstat(filename, &stat);
257 error = cp_new_stat(&stat, statbuf); 253 if (error)
254 return error;
258 255
259 return error; 256 return cp_new_stat(&stat, statbuf);
260} 257}
261 258
262#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) 259#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT)
@@ -264,21 +261,12 @@ SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename,
264 struct stat __user *, statbuf, int, flag) 261 struct stat __user *, statbuf, int, flag)
265{ 262{
266 struct kstat stat; 263 struct kstat stat;
267 int error = -EINVAL; 264 int error;
268
269 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
270 goto out;
271
272 if (flag & AT_SYMLINK_NOFOLLOW)
273 error = vfs_lstat_fd(dfd, filename, &stat);
274 else
275 error = vfs_stat_fd(dfd, filename, &stat);
276
277 if (!error)
278 error = cp_new_stat(&stat, statbuf);
279 265
280out: 266 error = vfs_fstatat(dfd, filename, &stat, flag);
281 return error; 267 if (error)
268 return error;
269 return cp_new_stat(&stat, statbuf);
282} 270}
283#endif 271#endif
284 272
@@ -404,21 +392,12 @@ SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename,
404 struct stat64 __user *, statbuf, int, flag) 392 struct stat64 __user *, statbuf, int, flag)
405{ 393{
406 struct kstat stat; 394 struct kstat stat;
407 int error = -EINVAL; 395 int error;
408
409 if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
410 goto out;
411
412 if (flag & AT_SYMLINK_NOFOLLOW)
413 error = vfs_lstat_fd(dfd, filename, &stat);
414 else
415 error = vfs_stat_fd(dfd, filename, &stat);
416
417 if (!error)
418 error = cp_new_stat64(&stat, statbuf);
419 396
420out: 397 error = vfs_fstatat(dfd, filename, &stat, flag);
421 return error; 398 if (error)
399 return error;
400 return cp_new_stat64(&stat, statbuf);
422} 401}
423#endif /* __ARCH_WANT_STAT64 */ 402#endif /* __ARCH_WANT_STAT64 */
424 403
diff --git a/fs/super.c b/fs/super.c
index 786fe7d72790..1943fdf655fa 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -208,6 +208,34 @@ void deactivate_super(struct super_block *s)
208EXPORT_SYMBOL(deactivate_super); 208EXPORT_SYMBOL(deactivate_super);
209 209
210/** 210/**
211 * deactivate_locked_super - drop an active reference to superblock
212 * @s: superblock to deactivate
213 *
214 * Equivalent of up_write(&s->s_umount); deactivate_super(s);, except that
215 * it does not unlock it until it's all over. As the result, it's safe to
216 * use to dispose of new superblock on ->get_sb() failure exits - nobody
217 * will see the sucker until it's all over. Equivalent using up_write +
218 * deactivate_super is safe for that purpose only if superblock is either
219 * safe to use or has NULL ->s_root when we unlock.
220 */
221void deactivate_locked_super(struct super_block *s)
222{
223 struct file_system_type *fs = s->s_type;
224 if (atomic_dec_and_lock(&s->s_active, &sb_lock)) {
225 s->s_count -= S_BIAS-1;
226 spin_unlock(&sb_lock);
227 vfs_dq_off(s, 0);
228 fs->kill_sb(s);
229 put_filesystem(fs);
230 put_super(s);
231 } else {
232 up_write(&s->s_umount);
233 }
234}
235
236EXPORT_SYMBOL(deactivate_locked_super);
237
238/**
211 * grab_super - acquire an active reference 239 * grab_super - acquire an active reference
212 * @s: reference we are trying to make active 240 * @s: reference we are trying to make active
213 * 241 *
@@ -797,8 +825,7 @@ int get_sb_ns(struct file_system_type *fs_type, int flags, void *data,
797 sb->s_flags = flags; 825 sb->s_flags = flags;
798 err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); 826 err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0);
799 if (err) { 827 if (err) {
800 up_write(&sb->s_umount); 828 deactivate_locked_super(sb);
801 deactivate_super(sb);
802 return err; 829 return err;
803 } 830 }
804 831
@@ -854,8 +881,7 @@ int get_sb_bdev(struct file_system_type *fs_type,
854 881
855 if (s->s_root) { 882 if (s->s_root) {
856 if ((flags ^ s->s_flags) & MS_RDONLY) { 883 if ((flags ^ s->s_flags) & MS_RDONLY) {
857 up_write(&s->s_umount); 884 deactivate_locked_super(s);
858 deactivate_super(s);
859 error = -EBUSY; 885 error = -EBUSY;
860 goto error_bdev; 886 goto error_bdev;
861 } 887 }
@@ -870,8 +896,7 @@ int get_sb_bdev(struct file_system_type *fs_type,
870 sb_set_blocksize(s, block_size(bdev)); 896 sb_set_blocksize(s, block_size(bdev));
871 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 897 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
872 if (error) { 898 if (error) {
873 up_write(&s->s_umount); 899 deactivate_locked_super(s);
874 deactivate_super(s);
875 goto error; 900 goto error;
876 } 901 }
877 902
@@ -897,7 +922,7 @@ void kill_block_super(struct super_block *sb)
897 struct block_device *bdev = sb->s_bdev; 922 struct block_device *bdev = sb->s_bdev;
898 fmode_t mode = sb->s_mode; 923 fmode_t mode = sb->s_mode;
899 924
900 bdev->bd_super = 0; 925 bdev->bd_super = NULL;
901 generic_shutdown_super(sb); 926 generic_shutdown_super(sb);
902 sync_blockdev(bdev); 927 sync_blockdev(bdev);
903 close_bdev_exclusive(bdev, mode); 928 close_bdev_exclusive(bdev, mode);
@@ -921,8 +946,7 @@ int get_sb_nodev(struct file_system_type *fs_type,
921 946
922 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 947 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
923 if (error) { 948 if (error) {
924 up_write(&s->s_umount); 949 deactivate_locked_super(s);
925 deactivate_super(s);
926 return error; 950 return error;
927 } 951 }
928 s->s_flags |= MS_ACTIVE; 952 s->s_flags |= MS_ACTIVE;
@@ -952,8 +976,7 @@ int get_sb_single(struct file_system_type *fs_type,
952 s->s_flags = flags; 976 s->s_flags = flags;
953 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); 977 error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
954 if (error) { 978 if (error) {
955 up_write(&s->s_umount); 979 deactivate_locked_super(s);
956 deactivate_super(s);
957 return error; 980 return error;
958 } 981 }
959 s->s_flags |= MS_ACTIVE; 982 s->s_flags |= MS_ACTIVE;
@@ -1006,8 +1029,7 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
1006 return mnt; 1029 return mnt;
1007out_sb: 1030out_sb:
1008 dput(mnt->mnt_root); 1031 dput(mnt->mnt_root);
1009 up_write(&mnt->mnt_sb->s_umount); 1032 deactivate_locked_super(mnt->mnt_sb);
1010 deactivate_super(mnt->mnt_sb);
1011out_free_secdata: 1033out_free_secdata:
1012 free_secdata(secdata); 1034 free_secdata(secdata);
1013out_mnt: 1035out_mnt:
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
index 93e0c0281d45..9345806c8853 100644
--- a/fs/sysfs/bin.c
+++ b/fs/sysfs/bin.c
@@ -157,14 +157,9 @@ static ssize_t write(struct file *file, const char __user *userbuf,
157 count = size - offs; 157 count = size - offs;
158 } 158 }
159 159
160 temp = kmalloc(count, GFP_KERNEL); 160 temp = memdup_user(userbuf, count);
161 if (!temp) 161 if (IS_ERR(temp))
162 return -ENOMEM; 162 return PTR_ERR(temp);
163
164 if (copy_from_user(temp, userbuf, count)) {
165 count = -EFAULT;
166 goto out_free;
167 }
168 163
169 mutex_lock(&bb->mutex); 164 mutex_lock(&bb->mutex);
170 165
@@ -176,8 +171,6 @@ static ssize_t write(struct file *file, const char __user *userbuf,
176 if (count > 0) 171 if (count > 0)
177 *off = offs + count; 172 *off = offs + count;
178 173
179out_free:
180 kfree(temp);
181 return count; 174 return count;
182} 175}
183 176
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index 289c43a47263..b1606e07b7a3 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -446,11 +446,11 @@ static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
446 if (buffer->event != atomic_read(&od->event)) 446 if (buffer->event != atomic_read(&od->event))
447 goto trigger; 447 goto trigger;
448 448
449 return 0; 449 return DEFAULT_POLLMASK;
450 450
451 trigger: 451 trigger:
452 buffer->needs_read_fill = 1; 452 buffer->needs_read_fill = 1;
453 return POLLERR|POLLPRI; 453 return DEFAULT_POLLMASK|POLLERR|POLLPRI;
454} 454}
455 455
456void sysfs_notify_dirent(struct sysfs_dirent *sd) 456void sysfs_notify_dirent(struct sysfs_dirent *sd)
@@ -667,6 +667,7 @@ struct sysfs_schedule_callback_struct {
667 struct work_struct work; 667 struct work_struct work;
668}; 668};
669 669
670static struct workqueue_struct *sysfs_workqueue;
670static DEFINE_MUTEX(sysfs_workq_mutex); 671static DEFINE_MUTEX(sysfs_workq_mutex);
671static LIST_HEAD(sysfs_workq); 672static LIST_HEAD(sysfs_workq);
672static void sysfs_schedule_callback_work(struct work_struct *work) 673static void sysfs_schedule_callback_work(struct work_struct *work)
@@ -715,11 +716,20 @@ int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
715 mutex_lock(&sysfs_workq_mutex); 716 mutex_lock(&sysfs_workq_mutex);
716 list_for_each_entry_safe(ss, tmp, &sysfs_workq, workq_list) 717 list_for_each_entry_safe(ss, tmp, &sysfs_workq, workq_list)
717 if (ss->kobj == kobj) { 718 if (ss->kobj == kobj) {
719 module_put(owner);
718 mutex_unlock(&sysfs_workq_mutex); 720 mutex_unlock(&sysfs_workq_mutex);
719 return -EAGAIN; 721 return -EAGAIN;
720 } 722 }
721 mutex_unlock(&sysfs_workq_mutex); 723 mutex_unlock(&sysfs_workq_mutex);
722 724
725 if (sysfs_workqueue == NULL) {
726 sysfs_workqueue = create_workqueue("sysfsd");
727 if (sysfs_workqueue == NULL) {
728 module_put(owner);
729 return -ENOMEM;
730 }
731 }
732
723 ss = kmalloc(sizeof(*ss), GFP_KERNEL); 733 ss = kmalloc(sizeof(*ss), GFP_KERNEL);
724 if (!ss) { 734 if (!ss) {
725 module_put(owner); 735 module_put(owner);
@@ -735,7 +745,7 @@ int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
735 mutex_lock(&sysfs_workq_mutex); 745 mutex_lock(&sysfs_workq_mutex);
736 list_add_tail(&ss->workq_list, &sysfs_workq); 746 list_add_tail(&ss->workq_list, &sysfs_workq);
737 mutex_unlock(&sysfs_workq_mutex); 747 mutex_unlock(&sysfs_workq_mutex);
738 schedule_work(&ss->work); 748 queue_work(sysfs_workqueue, &ss->work);
739 return 0; 749 return 0;
740} 750}
741EXPORT_SYMBOL_GPL(sysfs_schedule_callback); 751EXPORT_SYMBOL_GPL(sysfs_schedule_callback);
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index faa44f90608a..e9f7a754c4f7 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -2055,8 +2055,7 @@ static int ubifs_get_sb(struct file_system_type *fs_type, int flags,
2055 return 0; 2055 return 0;
2056 2056
2057out_deact: 2057out_deact:
2058 up_write(&sb->s_umount); 2058 deactivate_locked_super(sb);
2059 deactivate_super(sb);
2060out_close: 2059out_close:
2061 ubi_close_volume(ubi); 2060 ubi_close_volume(ubi);
2062 return err; 2061 return err;
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c
index dbbbc4668769..6321b797061b 100644
--- a/fs/ufs/dir.c
+++ b/fs/ufs/dir.c
@@ -666,6 +666,6 @@ not_empty:
666const struct file_operations ufs_dir_operations = { 666const struct file_operations ufs_dir_operations = {
667 .read = generic_read_dir, 667 .read = generic_read_dir,
668 .readdir = ufs_readdir, 668 .readdir = ufs_readdir,
669 .fsync = file_fsync, 669 .fsync = ufs_sync_file,
670 .llseek = generic_file_llseek, 670 .llseek = generic_file_llseek,
671}; 671};
diff --git a/fs/ufs/file.c b/fs/ufs/file.c
index 625ef17c6f83..2bd3a1615714 100644
--- a/fs/ufs/file.c
+++ b/fs/ufs/file.c
@@ -30,7 +30,7 @@
30#include "ufs.h" 30#include "ufs.h"
31 31
32 32
33static int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync) 33int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync)
34{ 34{
35 struct inode *inode = dentry->d_inode; 35 struct inode *inode = dentry->d_inode;
36 int err; 36 int err;
diff --git a/fs/ufs/ufs.h b/fs/ufs/ufs.h
index 69b3427d7885..d0c4acd4f1f3 100644
--- a/fs/ufs/ufs.h
+++ b/fs/ufs/ufs.h
@@ -98,8 +98,8 @@ extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
98/* file.c */ 98/* file.c */
99extern const struct inode_operations ufs_file_inode_operations; 99extern const struct inode_operations ufs_file_inode_operations;
100extern const struct file_operations ufs_file_operations; 100extern const struct file_operations ufs_file_operations;
101
102extern const struct address_space_operations ufs_aops; 101extern const struct address_space_operations ufs_aops;
102extern int ufs_sync_file(struct file *, struct dentry *, int);
103 103
104/* ialloc.c */ 104/* ialloc.c */
105extern void ufs_free_inode (struct inode *inode); 105extern void ufs_free_inode (struct inode *inode);
diff --git a/fs/xattr.c b/fs/xattr.c
index 197c4fcac032..d51b8f9db921 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -237,13 +237,9 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
237 if (size) { 237 if (size) {
238 if (size > XATTR_SIZE_MAX) 238 if (size > XATTR_SIZE_MAX)
239 return -E2BIG; 239 return -E2BIG;
240 kvalue = kmalloc(size, GFP_KERNEL); 240 kvalue = memdup_user(value, size);
241 if (!kvalue) 241 if (IS_ERR(kvalue))
242 return -ENOMEM; 242 return PTR_ERR(kvalue);
243 if (copy_from_user(kvalue, value, size)) {
244 kfree(kvalue);
245 return -EFAULT;
246 }
247 } 243 }
248 244
249 error = vfs_setxattr(d, kname, kvalue, size, flags); 245 error = vfs_setxattr(d, kname, kvalue, size, flags);
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index c13f67300fe7..7ec89fc05b2b 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -153,23 +153,6 @@ xfs_find_bdev_for_inode(
153} 153}
154 154
155/* 155/*
156 * Schedule IO completion handling on a xfsdatad if this was
157 * the final hold on this ioend. If we are asked to wait,
158 * flush the workqueue.
159 */
160STATIC void
161xfs_finish_ioend(
162 xfs_ioend_t *ioend,
163 int wait)
164{
165 if (atomic_dec_and_test(&ioend->io_remaining)) {
166 queue_work(xfsdatad_workqueue, &ioend->io_work);
167 if (wait)
168 flush_workqueue(xfsdatad_workqueue);
169 }
170}
171
172/*
173 * We're now finished for good with this ioend structure. 156 * We're now finished for good with this ioend structure.
174 * Update the page state via the associated buffer_heads, 157 * Update the page state via the associated buffer_heads,
175 * release holds on the inode and bio, and finally free 158 * release holds on the inode and bio, and finally free
@@ -310,6 +293,27 @@ xfs_end_bio_read(
310} 293}
311 294
312/* 295/*
296 * Schedule IO completion handling on a xfsdatad if this was
297 * the final hold on this ioend. If we are asked to wait,
298 * flush the workqueue.
299 */
300STATIC void
301xfs_finish_ioend(
302 xfs_ioend_t *ioend,
303 int wait)
304{
305 if (atomic_dec_and_test(&ioend->io_remaining)) {
306 struct workqueue_struct *wq = xfsdatad_workqueue;
307 if (ioend->io_work.func == xfs_end_bio_unwritten)
308 wq = xfsconvertd_workqueue;
309
310 queue_work(wq, &ioend->io_work);
311 if (wait)
312 flush_workqueue(wq);
313 }
314}
315
316/*
313 * Allocate and initialise an IO completion structure. 317 * Allocate and initialise an IO completion structure.
314 * We need to track unwritten extent write completion here initially. 318 * We need to track unwritten extent write completion here initially.
315 * We'll need to extend this for updating the ondisk inode size later 319 * We'll need to extend this for updating the ondisk inode size later
diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h
index 1dd528849755..221b3e66ceef 100644
--- a/fs/xfs/linux-2.6/xfs_aops.h
+++ b/fs/xfs/linux-2.6/xfs_aops.h
@@ -19,6 +19,7 @@
19#define __XFS_AOPS_H__ 19#define __XFS_AOPS_H__
20 20
21extern struct workqueue_struct *xfsdatad_workqueue; 21extern struct workqueue_struct *xfsdatad_workqueue;
22extern struct workqueue_struct *xfsconvertd_workqueue;
22extern mempool_t *xfs_ioend_pool; 23extern mempool_t *xfs_ioend_pool;
23 24
24/* 25/*
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index aa1016bb9134..e28800a9f2b5 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -51,6 +51,7 @@ static struct shrinker xfs_buf_shake = {
51 51
52static struct workqueue_struct *xfslogd_workqueue; 52static struct workqueue_struct *xfslogd_workqueue;
53struct workqueue_struct *xfsdatad_workqueue; 53struct workqueue_struct *xfsdatad_workqueue;
54struct workqueue_struct *xfsconvertd_workqueue;
54 55
55#ifdef XFS_BUF_TRACE 56#ifdef XFS_BUF_TRACE
56void 57void
@@ -1775,6 +1776,7 @@ xfs_flush_buftarg(
1775 xfs_buf_t *bp, *n; 1776 xfs_buf_t *bp, *n;
1776 int pincount = 0; 1777 int pincount = 0;
1777 1778
1779 xfs_buf_runall_queues(xfsconvertd_workqueue);
1778 xfs_buf_runall_queues(xfsdatad_workqueue); 1780 xfs_buf_runall_queues(xfsdatad_workqueue);
1779 xfs_buf_runall_queues(xfslogd_workqueue); 1781 xfs_buf_runall_queues(xfslogd_workqueue);
1780 1782
@@ -1831,9 +1833,15 @@ xfs_buf_init(void)
1831 if (!xfsdatad_workqueue) 1833 if (!xfsdatad_workqueue)
1832 goto out_destroy_xfslogd_workqueue; 1834 goto out_destroy_xfslogd_workqueue;
1833 1835
1836 xfsconvertd_workqueue = create_workqueue("xfsconvertd");
1837 if (!xfsconvertd_workqueue)
1838 goto out_destroy_xfsdatad_workqueue;
1839
1834 register_shrinker(&xfs_buf_shake); 1840 register_shrinker(&xfs_buf_shake);
1835 return 0; 1841 return 0;
1836 1842
1843 out_destroy_xfsdatad_workqueue:
1844 destroy_workqueue(xfsdatad_workqueue);
1837 out_destroy_xfslogd_workqueue: 1845 out_destroy_xfslogd_workqueue:
1838 destroy_workqueue(xfslogd_workqueue); 1846 destroy_workqueue(xfslogd_workqueue);
1839 out_free_buf_zone: 1847 out_free_buf_zone:
@@ -1849,6 +1857,7 @@ void
1849xfs_buf_terminate(void) 1857xfs_buf_terminate(void)
1850{ 1858{
1851 unregister_shrinker(&xfs_buf_shake); 1859 unregister_shrinker(&xfs_buf_shake);
1860 destroy_workqueue(xfsconvertd_workqueue);
1852 destroy_workqueue(xfsdatad_workqueue); 1861 destroy_workqueue(xfsdatad_workqueue);
1853 destroy_workqueue(xfslogd_workqueue); 1862 destroy_workqueue(xfslogd_workqueue);
1854 kmem_zone_destroy(xfs_buf_zone); 1863 kmem_zone_destroy(xfs_buf_zone);
diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c
index 5aeb77776961..08be36d7326c 100644
--- a/fs/xfs/linux-2.6/xfs_fs_subr.c
+++ b/fs/xfs/linux-2.6/xfs_fs_subr.c
@@ -74,14 +74,14 @@ xfs_flush_pages(
74 74
75 if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { 75 if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
76 xfs_iflags_clear(ip, XFS_ITRUNCATED); 76 xfs_iflags_clear(ip, XFS_ITRUNCATED);
77 ret = filemap_fdatawrite(mapping); 77 ret = -filemap_fdatawrite(mapping);
78 if (flags & XFS_B_ASYNC)
79 return -ret;
80 ret2 = filemap_fdatawait(mapping);
81 if (!ret)
82 ret = ret2;
83 } 78 }
84 return -ret; 79 if (flags & XFS_B_ASYNC)
80 return ret;
81 ret2 = xfs_wait_on_pages(ip, first, last);
82 if (!ret)
83 ret = ret2;
84 return ret;
85} 85}
86 86
87int 87int
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
index d0b499418a7d..34eaab608e6e 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl.c
@@ -489,17 +489,12 @@ xfs_attrmulti_attr_set(
489 if (len > XATTR_SIZE_MAX) 489 if (len > XATTR_SIZE_MAX)
490 return EINVAL; 490 return EINVAL;
491 491
492 kbuf = kmalloc(len, GFP_KERNEL); 492 kbuf = memdup_user(ubuf, len);
493 if (!kbuf) 493 if (IS_ERR(kbuf))
494 return ENOMEM; 494 return PTR_ERR(kbuf);
495
496 if (copy_from_user(kbuf, ubuf, len))
497 goto out_kfree;
498 495
499 error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags); 496 error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags);
500 497
501 out_kfree:
502 kfree(kbuf);
503 return error; 498 return error;
504} 499}
505 500
@@ -540,20 +535,16 @@ xfs_attrmulti_by_handle(
540 if (!size || size > 16 * PAGE_SIZE) 535 if (!size || size > 16 * PAGE_SIZE)
541 goto out_dput; 536 goto out_dput;
542 537
543 error = ENOMEM; 538 ops = memdup_user(am_hreq.ops, size);
544 ops = kmalloc(size, GFP_KERNEL); 539 if (IS_ERR(ops)) {
545 if (!ops) 540 error = PTR_ERR(ops);
546 goto out_dput; 541 goto out_dput;
547 542 }
548 error = EFAULT;
549 if (copy_from_user(ops, am_hreq.ops, size))
550 goto out_kfree_ops;
551 543
552 attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); 544 attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL);
553 if (!attr_name) 545 if (!attr_name)
554 goto out_kfree_ops; 546 goto out_kfree_ops;
555 547
556
557 error = 0; 548 error = 0;
558 for (i = 0; i < am_hreq.opcount; i++) { 549 for (i = 0; i < am_hreq.opcount; i++) {
559 ops[i].am_error = strncpy_from_user(attr_name, 550 ops[i].am_error = strncpy_from_user(attr_name,
diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c
index c70c4e3db790..0882d166239a 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl32.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl32.c
@@ -427,20 +427,16 @@ xfs_compat_attrmulti_by_handle(
427 if (!size || size > 16 * PAGE_SIZE) 427 if (!size || size > 16 * PAGE_SIZE)
428 goto out_dput; 428 goto out_dput;
429 429
430 error = ENOMEM; 430 ops = memdup_user(compat_ptr(am_hreq.ops), size);
431 ops = kmalloc(size, GFP_KERNEL); 431 if (IS_ERR(ops)) {
432 if (!ops) 432 error = PTR_ERR(ops);
433 goto out_dput; 433 goto out_dput;
434 434 }
435 error = EFAULT;
436 if (copy_from_user(ops, compat_ptr(am_hreq.ops), size))
437 goto out_kfree_ops;
438 435
439 attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); 436 attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL);
440 if (!attr_name) 437 if (!attr_name)
441 goto out_kfree_ops; 438 goto out_kfree_ops;
442 439
443
444 error = 0; 440 error = 0;
445 for (i = 0; i < am_hreq.opcount; i++) { 441 for (i = 0; i < am_hreq.opcount; i++) {
446 ops[i].am_error = strncpy_from_user(attr_name, 442 ops[i].am_error = strncpy_from_user(attr_name,
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c
index 7e90daa0d1d1..9142192ccbe6 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.c
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
@@ -751,10 +751,26 @@ start:
751 goto relock; 751 goto relock;
752 } 752 }
753 } else { 753 } else {
754 int enospc = 0;
755 ssize_t ret2 = 0;
756
757write_retry:
754 xfs_rw_enter_trace(XFS_WRITE_ENTER, xip, (void *)iovp, segs, 758 xfs_rw_enter_trace(XFS_WRITE_ENTER, xip, (void *)iovp, segs,
755 *offset, ioflags); 759 *offset, ioflags);
756 ret = generic_file_buffered_write(iocb, iovp, segs, 760 ret2 = generic_file_buffered_write(iocb, iovp, segs,
757 pos, offset, count, ret); 761 pos, offset, count, ret);
762 /*
763 * if we just got an ENOSPC, flush the inode now we
764 * aren't holding any page locks and retry *once*
765 */
766 if (ret2 == -ENOSPC && !enospc) {
767 error = xfs_flush_pages(xip, 0, -1, 0, FI_NONE);
768 if (error)
769 goto out_unlock_internal;
770 enospc = 1;
771 goto write_retry;
772 }
773 ret = ret2;
758 } 774 }
759 775
760 current->backing_dev_info = NULL; 776 current->backing_dev_info = NULL;
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c
index a608e72fa405..f7ba76633c29 100644
--- a/fs/xfs/linux-2.6/xfs_sync.c
+++ b/fs/xfs/linux-2.6/xfs_sync.c
@@ -62,12 +62,6 @@ xfs_sync_inodes_ag(
62 uint32_t first_index = 0; 62 uint32_t first_index = 0;
63 int error = 0; 63 int error = 0;
64 int last_error = 0; 64 int last_error = 0;
65 int fflag = XFS_B_ASYNC;
66
67 if (flags & SYNC_DELWRI)
68 fflag = XFS_B_DELWRI;
69 if (flags & SYNC_WAIT)
70 fflag = 0; /* synchronous overrides all */
71 65
72 do { 66 do {
73 struct inode *inode; 67 struct inode *inode;
@@ -128,11 +122,23 @@ xfs_sync_inodes_ag(
128 * If we have to flush data or wait for I/O completion 122 * If we have to flush data or wait for I/O completion
129 * we need to hold the iolock. 123 * we need to hold the iolock.
130 */ 124 */
131 if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { 125 if (flags & SYNC_DELWRI) {
132 xfs_ilock(ip, XFS_IOLOCK_SHARED); 126 if (VN_DIRTY(inode)) {
133 lock_flags |= XFS_IOLOCK_SHARED; 127 if (flags & SYNC_TRYLOCK) {
134 error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); 128 if (xfs_ilock_nowait(ip, XFS_IOLOCK_SHARED))
135 if (flags & SYNC_IOWAIT) 129 lock_flags |= XFS_IOLOCK_SHARED;
130 } else {
131 xfs_ilock(ip, XFS_IOLOCK_SHARED);
132 lock_flags |= XFS_IOLOCK_SHARED;
133 }
134 if (lock_flags & XFS_IOLOCK_SHARED) {
135 error = xfs_flush_pages(ip, 0, -1,
136 (flags & SYNC_WAIT) ? 0
137 : XFS_B_ASYNC,
138 FI_NONE);
139 }
140 }
141 if (VN_CACHED(inode) && (flags & SYNC_IOWAIT))
136 xfs_ioend_wait(ip); 142 xfs_ioend_wait(ip);
137 } 143 }
138 xfs_ilock(ip, XFS_ILOCK_SHARED); 144 xfs_ilock(ip, XFS_ILOCK_SHARED);
@@ -398,15 +404,17 @@ STATIC void
398xfs_syncd_queue_work( 404xfs_syncd_queue_work(
399 struct xfs_mount *mp, 405 struct xfs_mount *mp,
400 void *data, 406 void *data,
401 void (*syncer)(struct xfs_mount *, void *)) 407 void (*syncer)(struct xfs_mount *, void *),
408 struct completion *completion)
402{ 409{
403 struct bhv_vfs_sync_work *work; 410 struct xfs_sync_work *work;
404 411
405 work = kmem_alloc(sizeof(struct bhv_vfs_sync_work), KM_SLEEP); 412 work = kmem_alloc(sizeof(struct xfs_sync_work), KM_SLEEP);
406 INIT_LIST_HEAD(&work->w_list); 413 INIT_LIST_HEAD(&work->w_list);
407 work->w_syncer = syncer; 414 work->w_syncer = syncer;
408 work->w_data = data; 415 work->w_data = data;
409 work->w_mount = mp; 416 work->w_mount = mp;
417 work->w_completion = completion;
410 spin_lock(&mp->m_sync_lock); 418 spin_lock(&mp->m_sync_lock);
411 list_add_tail(&work->w_list, &mp->m_sync_list); 419 list_add_tail(&work->w_list, &mp->m_sync_list);
412 spin_unlock(&mp->m_sync_lock); 420 spin_unlock(&mp->m_sync_lock);
@@ -420,49 +428,26 @@ xfs_syncd_queue_work(
420 * heads, looking about for more room... 428 * heads, looking about for more room...
421 */ 429 */
422STATIC void 430STATIC void
423xfs_flush_inode_work( 431xfs_flush_inodes_work(
424 struct xfs_mount *mp,
425 void *arg)
426{
427 struct inode *inode = arg;
428 filemap_flush(inode->i_mapping);
429 iput(inode);
430}
431
432void
433xfs_flush_inode(
434 xfs_inode_t *ip)
435{
436 struct inode *inode = VFS_I(ip);
437
438 igrab(inode);
439 xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inode_work);
440 delay(msecs_to_jiffies(500));
441}
442
443/*
444 * This is the "bigger hammer" version of xfs_flush_inode_work...
445 * (IOW, "If at first you don't succeed, use a Bigger Hammer").
446 */
447STATIC void
448xfs_flush_device_work(
449 struct xfs_mount *mp, 432 struct xfs_mount *mp,
450 void *arg) 433 void *arg)
451{ 434{
452 struct inode *inode = arg; 435 struct inode *inode = arg;
453 sync_blockdev(mp->m_super->s_bdev); 436 xfs_sync_inodes(mp, SYNC_DELWRI | SYNC_TRYLOCK);
437 xfs_sync_inodes(mp, SYNC_DELWRI | SYNC_TRYLOCK | SYNC_IOWAIT);
454 iput(inode); 438 iput(inode);
455} 439}
456 440
457void 441void
458xfs_flush_device( 442xfs_flush_inodes(
459 xfs_inode_t *ip) 443 xfs_inode_t *ip)
460{ 444{
461 struct inode *inode = VFS_I(ip); 445 struct inode *inode = VFS_I(ip);
446 DECLARE_COMPLETION_ONSTACK(completion);
462 447
463 igrab(inode); 448 igrab(inode);
464 xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_device_work); 449 xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inodes_work, &completion);
465 delay(msecs_to_jiffies(500)); 450 wait_for_completion(&completion);
466 xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC); 451 xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC);
467} 452}
468 453
@@ -497,7 +482,7 @@ xfssyncd(
497{ 482{
498 struct xfs_mount *mp = arg; 483 struct xfs_mount *mp = arg;
499 long timeleft; 484 long timeleft;
500 bhv_vfs_sync_work_t *work, *n; 485 xfs_sync_work_t *work, *n;
501 LIST_HEAD (tmp); 486 LIST_HEAD (tmp);
502 487
503 set_freezable(); 488 set_freezable();
@@ -532,6 +517,8 @@ xfssyncd(
532 list_del(&work->w_list); 517 list_del(&work->w_list);
533 if (work == &mp->m_sync_work) 518 if (work == &mp->m_sync_work)
534 continue; 519 continue;
520 if (work->w_completion)
521 complete(work->w_completion);
535 kmem_free(work); 522 kmem_free(work);
536 } 523 }
537 } 524 }
@@ -545,6 +532,7 @@ xfs_syncd_init(
545{ 532{
546 mp->m_sync_work.w_syncer = xfs_sync_worker; 533 mp->m_sync_work.w_syncer = xfs_sync_worker;
547 mp->m_sync_work.w_mount = mp; 534 mp->m_sync_work.w_mount = mp;
535 mp->m_sync_work.w_completion = NULL;
548 mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd"); 536 mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd");
549 if (IS_ERR(mp->m_sync_task)) 537 if (IS_ERR(mp->m_sync_task))
550 return -PTR_ERR(mp->m_sync_task); 538 return -PTR_ERR(mp->m_sync_task);
diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h
index 04f058c848ae..308d5bf6dfbd 100644
--- a/fs/xfs/linux-2.6/xfs_sync.h
+++ b/fs/xfs/linux-2.6/xfs_sync.h
@@ -21,18 +21,20 @@
21struct xfs_mount; 21struct xfs_mount;
22struct xfs_perag; 22struct xfs_perag;
23 23
24typedef struct bhv_vfs_sync_work { 24typedef struct xfs_sync_work {
25 struct list_head w_list; 25 struct list_head w_list;
26 struct xfs_mount *w_mount; 26 struct xfs_mount *w_mount;
27 void *w_data; /* syncer routine argument */ 27 void *w_data; /* syncer routine argument */
28 void (*w_syncer)(struct xfs_mount *, void *); 28 void (*w_syncer)(struct xfs_mount *, void *);
29} bhv_vfs_sync_work_t; 29 struct completion *w_completion;
30} xfs_sync_work_t;
30 31
31#define SYNC_ATTR 0x0001 /* sync attributes */ 32#define SYNC_ATTR 0x0001 /* sync attributes */
32#define SYNC_DELWRI 0x0002 /* look at delayed writes */ 33#define SYNC_DELWRI 0x0002 /* look at delayed writes */
33#define SYNC_WAIT 0x0004 /* wait for i/o to complete */ 34#define SYNC_WAIT 0x0004 /* wait for i/o to complete */
34#define SYNC_BDFLUSH 0x0008 /* BDFLUSH is calling -- don't block */ 35#define SYNC_BDFLUSH 0x0008 /* BDFLUSH is calling -- don't block */
35#define SYNC_IOWAIT 0x0010 /* wait for all I/O to complete */ 36#define SYNC_IOWAIT 0x0010 /* wait for all I/O to complete */
37#define SYNC_TRYLOCK 0x0020 /* only try to lock inodes */
36 38
37int xfs_syncd_init(struct xfs_mount *mp); 39int xfs_syncd_init(struct xfs_mount *mp);
38void xfs_syncd_stop(struct xfs_mount *mp); 40void xfs_syncd_stop(struct xfs_mount *mp);
@@ -43,8 +45,7 @@ int xfs_sync_fsdata(struct xfs_mount *mp, int flags);
43int xfs_quiesce_data(struct xfs_mount *mp); 45int xfs_quiesce_data(struct xfs_mount *mp);
44void xfs_quiesce_attr(struct xfs_mount *mp); 46void xfs_quiesce_attr(struct xfs_mount *mp);
45 47
46void xfs_flush_inode(struct xfs_inode *ip); 48void xfs_flush_inodes(struct xfs_inode *ip);
47void xfs_flush_device(struct xfs_inode *ip);
48 49
49int xfs_reclaim_inode(struct xfs_inode *ip, int locked, int sync_mode); 50int xfs_reclaim_inode(struct xfs_inode *ip, int locked, int sync_mode);
50int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode); 51int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode);
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 3a6ed426327a..ca7c6005a487 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -5880,7 +5880,7 @@ xfs_getbmap(
5880 void *arg) /* formatter arg */ 5880 void *arg) /* formatter arg */
5881{ 5881{
5882 __int64_t bmvend; /* last block requested */ 5882 __int64_t bmvend; /* last block requested */
5883 int error; /* return value */ 5883 int error = 0; /* return value */
5884 __int64_t fixlen; /* length for -1 case */ 5884 __int64_t fixlen; /* length for -1 case */
5885 int i; /* extent number */ 5885 int i; /* extent number */
5886 int lock; /* lock state */ 5886 int lock; /* lock state */
@@ -5890,39 +5890,18 @@ xfs_getbmap(
5890 int nexleft; /* # of user extents left */ 5890 int nexleft; /* # of user extents left */
5891 int subnex; /* # of bmapi's can do */ 5891 int subnex; /* # of bmapi's can do */
5892 int nmap; /* number of map entries */ 5892 int nmap; /* number of map entries */
5893 struct getbmapx out; /* output structure */ 5893 struct getbmapx *out; /* output structure */
5894 int whichfork; /* data or attr fork */ 5894 int whichfork; /* data or attr fork */
5895 int prealloced; /* this is a file with 5895 int prealloced; /* this is a file with
5896 * preallocated data space */ 5896 * preallocated data space */
5897 int iflags; /* interface flags */ 5897 int iflags; /* interface flags */
5898 int bmapi_flags; /* flags for xfs_bmapi */ 5898 int bmapi_flags; /* flags for xfs_bmapi */
5899 int cur_ext = 0;
5899 5900
5900 mp = ip->i_mount; 5901 mp = ip->i_mount;
5901 iflags = bmv->bmv_iflags; 5902 iflags = bmv->bmv_iflags;
5902
5903 whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; 5903 whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK;
5904 5904
5905 /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not
5906 * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ
5907 * bit is set for the file, generate a read event in order
5908 * that the DMAPI application may do its thing before we return
5909 * the extents. Usually this means restoring user file data to
5910 * regions of the file that look like holes.
5911 *
5912 * The "old behavior" (from XFS_IOC_GETBMAP) is to not specify
5913 * BMV_IF_NO_DMAPI_READ so that read events are generated.
5914 * If this were not true, callers of ioctl( XFS_IOC_GETBMAP )
5915 * could misinterpret holes in a DMAPI file as true holes,
5916 * when in fact they may represent offline user data.
5917 */
5918 if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 &&
5919 DM_EVENT_ENABLED(ip, DM_EVENT_READ) &&
5920 whichfork == XFS_DATA_FORK) {
5921 error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL);
5922 if (error)
5923 return XFS_ERROR(error);
5924 }
5925
5926 if (whichfork == XFS_ATTR_FORK) { 5905 if (whichfork == XFS_ATTR_FORK) {
5927 if (XFS_IFORK_Q(ip)) { 5906 if (XFS_IFORK_Q(ip)) {
5928 if (ip->i_d.di_aformat != XFS_DINODE_FMT_EXTENTS && 5907 if (ip->i_d.di_aformat != XFS_DINODE_FMT_EXTENTS &&
@@ -5936,11 +5915,37 @@ xfs_getbmap(
5936 ip->i_mount); 5915 ip->i_mount);
5937 return XFS_ERROR(EFSCORRUPTED); 5916 return XFS_ERROR(EFSCORRUPTED);
5938 } 5917 }
5939 } else if (ip->i_d.di_format != XFS_DINODE_FMT_EXTENTS && 5918
5940 ip->i_d.di_format != XFS_DINODE_FMT_BTREE && 5919 prealloced = 0;
5941 ip->i_d.di_format != XFS_DINODE_FMT_LOCAL) 5920 fixlen = 1LL << 32;
5942 return XFS_ERROR(EINVAL); 5921 } else {
5943 if (whichfork == XFS_DATA_FORK) { 5922 /*
5923 * If the BMV_IF_NO_DMAPI_READ interface bit specified, do
5924 * not generate a DMAPI read event. Otherwise, if the
5925 * DM_EVENT_READ bit is set for the file, generate a read
5926 * event in order that the DMAPI application may do its thing
5927 * before we return the extents. Usually this means restoring
5928 * user file data to regions of the file that look like holes.
5929 *
5930 * The "old behavior" (from XFS_IOC_GETBMAP) is to not specify
5931 * BMV_IF_NO_DMAPI_READ so that read events are generated.
5932 * If this were not true, callers of ioctl(XFS_IOC_GETBMAP)
5933 * could misinterpret holes in a DMAPI file as true holes,
5934 * when in fact they may represent offline user data.
5935 */
5936 if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) &&
5937 !(iflags & BMV_IF_NO_DMAPI_READ)) {
5938 error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip,
5939 0, 0, 0, NULL);
5940 if (error)
5941 return XFS_ERROR(error);
5942 }
5943
5944 if (ip->i_d.di_format != XFS_DINODE_FMT_EXTENTS &&
5945 ip->i_d.di_format != XFS_DINODE_FMT_BTREE &&
5946 ip->i_d.di_format != XFS_DINODE_FMT_LOCAL)
5947 return XFS_ERROR(EINVAL);
5948
5944 if (xfs_get_extsz_hint(ip) || 5949 if (xfs_get_extsz_hint(ip) ||
5945 ip->i_d.di_flags & (XFS_DIFLAG_PREALLOC|XFS_DIFLAG_APPEND)){ 5950 ip->i_d.di_flags & (XFS_DIFLAG_PREALLOC|XFS_DIFLAG_APPEND)){
5946 prealloced = 1; 5951 prealloced = 1;
@@ -5949,42 +5954,41 @@ xfs_getbmap(
5949 prealloced = 0; 5954 prealloced = 0;
5950 fixlen = ip->i_size; 5955 fixlen = ip->i_size;
5951 } 5956 }
5952 } else {
5953 prealloced = 0;
5954 fixlen = 1LL << 32;
5955 } 5957 }
5956 5958
5957 if (bmv->bmv_length == -1) { 5959 if (bmv->bmv_length == -1) {
5958 fixlen = XFS_FSB_TO_BB(mp, XFS_B_TO_FSB(mp, fixlen)); 5960 fixlen = XFS_FSB_TO_BB(mp, XFS_B_TO_FSB(mp, fixlen));
5959 bmv->bmv_length = MAX( (__int64_t)(fixlen - bmv->bmv_offset), 5961 bmv->bmv_length =
5960 (__int64_t)0); 5962 max_t(__int64_t, fixlen - bmv->bmv_offset, 0);
5961 } else if (bmv->bmv_length < 0) 5963 } else if (bmv->bmv_length == 0) {
5962 return XFS_ERROR(EINVAL);
5963 if (bmv->bmv_length == 0) {
5964 bmv->bmv_entries = 0; 5964 bmv->bmv_entries = 0;
5965 return 0; 5965 return 0;
5966 } else if (bmv->bmv_length < 0) {
5967 return XFS_ERROR(EINVAL);
5966 } 5968 }
5969
5967 nex = bmv->bmv_count - 1; 5970 nex = bmv->bmv_count - 1;
5968 if (nex <= 0) 5971 if (nex <= 0)
5969 return XFS_ERROR(EINVAL); 5972 return XFS_ERROR(EINVAL);
5970 bmvend = bmv->bmv_offset + bmv->bmv_length; 5973 bmvend = bmv->bmv_offset + bmv->bmv_length;
5971 5974
5972 xfs_ilock(ip, XFS_IOLOCK_SHARED);
5973 5975
5974 if (((iflags & BMV_IF_DELALLOC) == 0) && 5976 if (bmv->bmv_count > ULONG_MAX / sizeof(struct getbmapx))
5975 (whichfork == XFS_DATA_FORK) && 5977 return XFS_ERROR(ENOMEM);
5976 (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { 5978 out = kmem_zalloc(bmv->bmv_count * sizeof(struct getbmapx), KM_MAYFAIL);
5977 /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ 5979 if (!out)
5978 error = xfs_flush_pages(ip, (xfs_off_t)0, 5980 return XFS_ERROR(ENOMEM);
5979 -1, 0, FI_REMAPF); 5981
5980 if (error) { 5982 xfs_ilock(ip, XFS_IOLOCK_SHARED);
5981 xfs_iunlock(ip, XFS_IOLOCK_SHARED); 5983 if (whichfork == XFS_DATA_FORK && !(iflags & BMV_IF_DELALLOC)) {
5982 return error; 5984 if (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size) {
5985 error = xfs_flush_pages(ip, 0, -1, 0, FI_REMAPF);
5986 if (error)
5987 goto out_unlock_iolock;
5983 } 5988 }
5984 }
5985 5989
5986 ASSERT(whichfork == XFS_ATTR_FORK || (iflags & BMV_IF_DELALLOC) || 5990 ASSERT(ip->i_delayed_blks == 0);
5987 ip->i_delayed_blks == 0); 5991 }
5988 5992
5989 lock = xfs_ilock_map_shared(ip); 5993 lock = xfs_ilock_map_shared(ip);
5990 5994
@@ -5995,23 +5999,25 @@ xfs_getbmap(
5995 if (nex > XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1) 5999 if (nex > XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1)
5996 nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1; 6000 nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1;
5997 6001
5998 bmapi_flags = xfs_bmapi_aflag(whichfork) | 6002 bmapi_flags = xfs_bmapi_aflag(whichfork);
5999 ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE); 6003 if (!(iflags & BMV_IF_PREALLOC))
6004 bmapi_flags |= XFS_BMAPI_IGSTATE;
6000 6005
6001 /* 6006 /*
6002 * Allocate enough space to handle "subnex" maps at a time. 6007 * Allocate enough space to handle "subnex" maps at a time.
6003 */ 6008 */
6009 error = ENOMEM;
6004 subnex = 16; 6010 subnex = 16;
6005 map = kmem_alloc(subnex * sizeof(*map), KM_SLEEP); 6011 map = kmem_alloc(subnex * sizeof(*map), KM_MAYFAIL);
6012 if (!map)
6013 goto out_unlock_ilock;
6006 6014
6007 bmv->bmv_entries = 0; 6015 bmv->bmv_entries = 0;
6008 6016
6009 if ((XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { 6017 if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0 &&
6010 if (((iflags & BMV_IF_DELALLOC) == 0) || 6018 (whichfork == XFS_ATTR_FORK || !(iflags & BMV_IF_DELALLOC))) {
6011 whichfork == XFS_ATTR_FORK) { 6019 error = 0;
6012 error = 0; 6020 goto out_free_map;
6013 goto unlock_and_return;
6014 }
6015 } 6021 }
6016 6022
6017 nexleft = nex; 6023 nexleft = nex;
@@ -6023,53 +6029,61 @@ xfs_getbmap(
6023 bmapi_flags, NULL, 0, map, &nmap, 6029 bmapi_flags, NULL, 0, map, &nmap,
6024 NULL, NULL); 6030 NULL, NULL);
6025 if (error) 6031 if (error)
6026 goto unlock_and_return; 6032 goto out_free_map;
6027 ASSERT(nmap <= subnex); 6033 ASSERT(nmap <= subnex);
6028 6034
6029 for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { 6035 for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) {
6030 out.bmv_oflags = 0; 6036 out[cur_ext].bmv_oflags = 0;
6031 if (map[i].br_state == XFS_EXT_UNWRITTEN) 6037 if (map[i].br_state == XFS_EXT_UNWRITTEN)
6032 out.bmv_oflags |= BMV_OF_PREALLOC; 6038 out[cur_ext].bmv_oflags |= BMV_OF_PREALLOC;
6033 else if (map[i].br_startblock == DELAYSTARTBLOCK) 6039 else if (map[i].br_startblock == DELAYSTARTBLOCK)
6034 out.bmv_oflags |= BMV_OF_DELALLOC; 6040 out[cur_ext].bmv_oflags |= BMV_OF_DELALLOC;
6035 out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); 6041 out[cur_ext].bmv_offset =
6036 out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); 6042 XFS_FSB_TO_BB(mp, map[i].br_startoff);
6037 out.bmv_unused1 = out.bmv_unused2 = 0; 6043 out[cur_ext].bmv_length =
6044 XFS_FSB_TO_BB(mp, map[i].br_blockcount);
6045 out[cur_ext].bmv_unused1 = 0;
6046 out[cur_ext].bmv_unused2 = 0;
6038 ASSERT(((iflags & BMV_IF_DELALLOC) != 0) || 6047 ASSERT(((iflags & BMV_IF_DELALLOC) != 0) ||
6039 (map[i].br_startblock != DELAYSTARTBLOCK)); 6048 (map[i].br_startblock != DELAYSTARTBLOCK));
6040 if (map[i].br_startblock == HOLESTARTBLOCK && 6049 if (map[i].br_startblock == HOLESTARTBLOCK &&
6041 whichfork == XFS_ATTR_FORK) { 6050 whichfork == XFS_ATTR_FORK) {
6042 /* came to the end of attribute fork */ 6051 /* came to the end of attribute fork */
6043 out.bmv_oflags |= BMV_OF_LAST; 6052 out[cur_ext].bmv_oflags |= BMV_OF_LAST;
6044 goto unlock_and_return; 6053 goto out_free_map;
6045 } else {
6046 int full = 0; /* user array is full */
6047
6048 if (!xfs_getbmapx_fix_eof_hole(ip, &out,
6049 prealloced, bmvend,
6050 map[i].br_startblock)) {
6051 goto unlock_and_return;
6052 }
6053
6054 /* format results & advance arg */
6055 error = formatter(&arg, &out, &full);
6056 if (error || full)
6057 goto unlock_and_return;
6058 nexleft--;
6059 bmv->bmv_offset =
6060 out.bmv_offset + out.bmv_length;
6061 bmv->bmv_length = MAX((__int64_t)0,
6062 (__int64_t)(bmvend - bmv->bmv_offset));
6063 bmv->bmv_entries++;
6064 } 6054 }
6055
6056 if (!xfs_getbmapx_fix_eof_hole(ip, &out[cur_ext],
6057 prealloced, bmvend,
6058 map[i].br_startblock))
6059 goto out_free_map;
6060
6061 nexleft--;
6062 bmv->bmv_offset =
6063 out[cur_ext].bmv_offset +
6064 out[cur_ext].bmv_length;
6065 bmv->bmv_length =
6066 max_t(__int64_t, 0, bmvend - bmv->bmv_offset);
6067 bmv->bmv_entries++;
6068 cur_ext++;
6065 } 6069 }
6066 } while (nmap && nexleft && bmv->bmv_length); 6070 } while (nmap && nexleft && bmv->bmv_length);
6067 6071
6068unlock_and_return: 6072 out_free_map:
6073 kmem_free(map);
6074 out_unlock_ilock:
6069 xfs_iunlock_map_shared(ip, lock); 6075 xfs_iunlock_map_shared(ip, lock);
6076 out_unlock_iolock:
6070 xfs_iunlock(ip, XFS_IOLOCK_SHARED); 6077 xfs_iunlock(ip, XFS_IOLOCK_SHARED);
6071 6078
6072 kmem_free(map); 6079 for (i = 0; i < cur_ext; i++) {
6080 int full = 0; /* user array is full */
6081
6082 /* format results & advance arg */
6083 error = formatter(&arg, &out[i], &full);
6084 if (error || full)
6085 break;
6086 }
6073 6087
6074 return error; 6088 return error;
6075} 6089}
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
index 478e587087fe..89b81eedce6a 100644
--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -69,15 +69,6 @@ xfs_inode_alloc(
69 ASSERT(!spin_is_locked(&ip->i_flags_lock)); 69 ASSERT(!spin_is_locked(&ip->i_flags_lock));
70 ASSERT(completion_done(&ip->i_flush)); 70 ASSERT(completion_done(&ip->i_flush));
71 71
72 /*
73 * initialise the VFS inode here to get failures
74 * out of the way early.
75 */
76 if (!inode_init_always(mp->m_super, VFS_I(ip))) {
77 kmem_zone_free(xfs_inode_zone, ip);
78 return NULL;
79 }
80
81 /* initialise the xfs inode */ 72 /* initialise the xfs inode */
82 ip->i_ino = ino; 73 ip->i_ino = ino;
83 ip->i_mount = mp; 74 ip->i_mount = mp;
@@ -113,6 +104,20 @@ xfs_inode_alloc(
113#ifdef XFS_DIR2_TRACE 104#ifdef XFS_DIR2_TRACE
114 ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); 105 ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS);
115#endif 106#endif
107 /*
108 * Now initialise the VFS inode. We do this after the xfs_inode
109 * initialisation as internal failures will result in ->destroy_inode
110 * being called and that will pass down through the reclaim path and
111 * free the XFS inode. This path requires the XFS inode to already be
112 * initialised. Hence if this call fails, the xfs_inode has already
113 * been freed and we should not reference it at all in the error
114 * handling.
115 */
116 if (!inode_init_always(mp->m_super, VFS_I(ip)))
117 return NULL;
118
119 /* prevent anyone from using this yet */
120 VFS_I(ip)->i_state = I_NEW|I_LOCK;
116 121
117 return ip; 122 return ip;
118} 123}
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index e7ae08d1df48..123b20c8cbf2 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1258,8 +1258,10 @@ xfs_file_last_byte(
1258 * necessary. 1258 * necessary.
1259 */ 1259 */
1260 if (ip->i_df.if_flags & XFS_IFEXTENTS) { 1260 if (ip->i_df.if_flags & XFS_IFEXTENTS) {
1261 xfs_ilock(ip, XFS_ILOCK_SHARED);
1261 error = xfs_bmap_last_offset(NULL, ip, &last_block, 1262 error = xfs_bmap_last_offset(NULL, ip, &last_block,
1262 XFS_DATA_FORK); 1263 XFS_DATA_FORK);
1264 xfs_iunlock(ip, XFS_ILOCK_SHARED);
1263 if (error) { 1265 if (error) {
1264 last_block = 0; 1266 last_block = 0;
1265 } 1267 }
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 08ce72316bfe..5aaa2d7ec155 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -338,38 +338,6 @@ xfs_iomap_eof_align_last_fsb(
338} 338}
339 339
340STATIC int 340STATIC int
341xfs_flush_space(
342 xfs_inode_t *ip,
343 int *fsynced,
344 int *ioflags)
345{
346 switch (*fsynced) {
347 case 0:
348 if (ip->i_delayed_blks) {
349 xfs_iunlock(ip, XFS_ILOCK_EXCL);
350 xfs_flush_inode(ip);
351 xfs_ilock(ip, XFS_ILOCK_EXCL);
352 *fsynced = 1;
353 } else {
354 *ioflags |= BMAPI_SYNC;
355 *fsynced = 2;
356 }
357 return 0;
358 case 1:
359 *fsynced = 2;
360 *ioflags |= BMAPI_SYNC;
361 return 0;
362 case 2:
363 xfs_iunlock(ip, XFS_ILOCK_EXCL);
364 xfs_flush_device(ip);
365 xfs_ilock(ip, XFS_ILOCK_EXCL);
366 *fsynced = 3;
367 return 0;
368 }
369 return 1;
370}
371
372STATIC int
373xfs_cmn_err_fsblock_zero( 341xfs_cmn_err_fsblock_zero(
374 xfs_inode_t *ip, 342 xfs_inode_t *ip,
375 xfs_bmbt_irec_t *imap) 343 xfs_bmbt_irec_t *imap)
@@ -538,15 +506,9 @@ error_out:
538} 506}
539 507
540/* 508/*
541 * If the caller is doing a write at the end of the file, 509 * If the caller is doing a write at the end of the file, then extend the
542 * then extend the allocation out to the file system's write 510 * allocation out to the file system's write iosize. We clean up any extra
543 * iosize. We clean up any extra space left over when the 511 * space left over when the file is closed in xfs_inactive().
544 * file is closed in xfs_inactive().
545 *
546 * For sync writes, we are flushing delayed allocate space to
547 * try to make additional space available for allocation near
548 * the filesystem full boundary - preallocation hurts in that
549 * situation, of course.
550 */ 512 */
551STATIC int 513STATIC int
552xfs_iomap_eof_want_preallocate( 514xfs_iomap_eof_want_preallocate(
@@ -565,7 +527,7 @@ xfs_iomap_eof_want_preallocate(
565 int n, error, imaps; 527 int n, error, imaps;
566 528
567 *prealloc = 0; 529 *prealloc = 0;
568 if ((ioflag & BMAPI_SYNC) || (offset + count) <= ip->i_size) 530 if ((offset + count) <= ip->i_size)
569 return 0; 531 return 0;
570 532
571 /* 533 /*
@@ -611,7 +573,7 @@ xfs_iomap_write_delay(
611 xfs_extlen_t extsz; 573 xfs_extlen_t extsz;
612 int nimaps; 574 int nimaps;
613 xfs_bmbt_irec_t imap[XFS_WRITE_IMAPS]; 575 xfs_bmbt_irec_t imap[XFS_WRITE_IMAPS];
614 int prealloc, fsynced = 0; 576 int prealloc, flushed = 0;
615 int error; 577 int error;
616 578
617 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); 579 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL));
@@ -627,12 +589,12 @@ xfs_iomap_write_delay(
627 extsz = xfs_get_extsz_hint(ip); 589 extsz = xfs_get_extsz_hint(ip);
628 offset_fsb = XFS_B_TO_FSBT(mp, offset); 590 offset_fsb = XFS_B_TO_FSBT(mp, offset);
629 591
630retry:
631 error = xfs_iomap_eof_want_preallocate(mp, ip, offset, count, 592 error = xfs_iomap_eof_want_preallocate(mp, ip, offset, count,
632 ioflag, imap, XFS_WRITE_IMAPS, &prealloc); 593 ioflag, imap, XFS_WRITE_IMAPS, &prealloc);
633 if (error) 594 if (error)
634 return error; 595 return error;
635 596
597retry:
636 if (prealloc) { 598 if (prealloc) {
637 aligned_offset = XFS_WRITEIO_ALIGN(mp, (offset + count - 1)); 599 aligned_offset = XFS_WRITEIO_ALIGN(mp, (offset + count - 1));
638 ioalign = XFS_B_TO_FSBT(mp, aligned_offset); 600 ioalign = XFS_B_TO_FSBT(mp, aligned_offset);
@@ -659,15 +621,22 @@ retry:
659 621
660 /* 622 /*
661 * If bmapi returned us nothing, and if we didn't get back EDQUOT, 623 * If bmapi returned us nothing, and if we didn't get back EDQUOT,
662 * then we must have run out of space - flush delalloc, and retry.. 624 * then we must have run out of space - flush all other inodes with
625 * delalloc blocks and retry without EOF preallocation.
663 */ 626 */
664 if (nimaps == 0) { 627 if (nimaps == 0) {
665 xfs_iomap_enter_trace(XFS_IOMAP_WRITE_NOSPACE, 628 xfs_iomap_enter_trace(XFS_IOMAP_WRITE_NOSPACE,
666 ip, offset, count); 629 ip, offset, count);
667 if (xfs_flush_space(ip, &fsynced, &ioflag)) 630 if (flushed)
668 return XFS_ERROR(ENOSPC); 631 return XFS_ERROR(ENOSPC);
669 632
633 xfs_iunlock(ip, XFS_ILOCK_EXCL);
634 xfs_flush_inodes(ip);
635 xfs_ilock(ip, XFS_ILOCK_EXCL);
636
637 flushed = 1;
670 error = 0; 638 error = 0;
639 prealloc = 0;
671 goto retry; 640 goto retry;
672 } 641 }
673 642
diff --git a/fs/xfs/xfs_iomap.h b/fs/xfs/xfs_iomap.h
index a1cc1322fc0f..fdcf7b82747f 100644
--- a/fs/xfs/xfs_iomap.h
+++ b/fs/xfs/xfs_iomap.h
@@ -40,8 +40,7 @@ typedef enum {
40 BMAPI_IGNSTATE = (1 << 4), /* ignore unwritten state on read */ 40 BMAPI_IGNSTATE = (1 << 4), /* ignore unwritten state on read */
41 BMAPI_DIRECT = (1 << 5), /* direct instead of buffered write */ 41 BMAPI_DIRECT = (1 << 5), /* direct instead of buffered write */
42 BMAPI_MMAP = (1 << 6), /* allocate for mmap write */ 42 BMAPI_MMAP = (1 << 6), /* allocate for mmap write */
43 BMAPI_SYNC = (1 << 7), /* sync write to flush delalloc space */ 43 BMAPI_TRYLOCK = (1 << 7), /* non-blocking request */
44 BMAPI_TRYLOCK = (1 << 8), /* non-blocking request */
45} bmapi_flags_t; 44} bmapi_flags_t;
46 45
47 46
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index f76c6d7cea21..3750f04ede0b 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -562,9 +562,8 @@ xfs_log_mount(
562 } 562 }
563 563
564 mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); 564 mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks);
565 if (!mp->m_log) { 565 if (IS_ERR(mp->m_log)) {
566 cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!"); 566 error = -PTR_ERR(mp->m_log);
567 error = ENOMEM;
568 goto out; 567 goto out;
569 } 568 }
570 569
@@ -1180,10 +1179,13 @@ xlog_alloc_log(xfs_mount_t *mp,
1180 xfs_buf_t *bp; 1179 xfs_buf_t *bp;
1181 int i; 1180 int i;
1182 int iclogsize; 1181 int iclogsize;
1182 int error = ENOMEM;
1183 1183
1184 log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); 1184 log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL);
1185 if (!log) 1185 if (!log) {
1186 return NULL; 1186 xlog_warn("XFS: Log allocation failed: No memory!");
1187 goto out;
1188 }
1187 1189
1188 log->l_mp = mp; 1190 log->l_mp = mp;
1189 log->l_targ = log_target; 1191 log->l_targ = log_target;
@@ -1201,19 +1203,35 @@ xlog_alloc_log(xfs_mount_t *mp,
1201 log->l_grant_reserve_cycle = 1; 1203 log->l_grant_reserve_cycle = 1;
1202 log->l_grant_write_cycle = 1; 1204 log->l_grant_write_cycle = 1;
1203 1205
1206 error = EFSCORRUPTED;
1204 if (xfs_sb_version_hassector(&mp->m_sb)) { 1207 if (xfs_sb_version_hassector(&mp->m_sb)) {
1205 log->l_sectbb_log = mp->m_sb.sb_logsectlog - BBSHIFT; 1208 log->l_sectbb_log = mp->m_sb.sb_logsectlog - BBSHIFT;
1206 ASSERT(log->l_sectbb_log <= mp->m_sectbb_log); 1209 if (log->l_sectbb_log < 0 ||
1210 log->l_sectbb_log > mp->m_sectbb_log) {
1211 xlog_warn("XFS: Log sector size (0x%x) out of range.",
1212 log->l_sectbb_log);
1213 goto out_free_log;
1214 }
1215
1207 /* for larger sector sizes, must have v2 or external log */ 1216 /* for larger sector sizes, must have v2 or external log */
1208 ASSERT(log->l_sectbb_log == 0 || 1217 if (log->l_sectbb_log != 0 &&
1209 log->l_logBBstart == 0 || 1218 (log->l_logBBstart != 0 &&
1210 xfs_sb_version_haslogv2(&mp->m_sb)); 1219 !xfs_sb_version_haslogv2(&mp->m_sb))) {
1211 ASSERT(mp->m_sb.sb_logsectlog >= BBSHIFT); 1220 xlog_warn("XFS: log sector size (0x%x) invalid "
1221 "for configuration.", log->l_sectbb_log);
1222 goto out_free_log;
1223 }
1224 if (mp->m_sb.sb_logsectlog < BBSHIFT) {
1225 xlog_warn("XFS: Log sector log (0x%x) too small.",
1226 mp->m_sb.sb_logsectlog);
1227 goto out_free_log;
1228 }
1212 } 1229 }
1213 log->l_sectbb_mask = (1 << log->l_sectbb_log) - 1; 1230 log->l_sectbb_mask = (1 << log->l_sectbb_log) - 1;
1214 1231
1215 xlog_get_iclog_buffer_size(mp, log); 1232 xlog_get_iclog_buffer_size(mp, log);
1216 1233
1234 error = ENOMEM;
1217 bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); 1235 bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp);
1218 if (!bp) 1236 if (!bp)
1219 goto out_free_log; 1237 goto out_free_log;
@@ -1313,7 +1331,8 @@ out_free_iclog:
1313 xfs_buf_free(log->l_xbuf); 1331 xfs_buf_free(log->l_xbuf);
1314out_free_log: 1332out_free_log:
1315 kmem_free(log); 1333 kmem_free(log);
1316 return NULL; 1334out:
1335 return ERR_PTR(-error);
1317} /* xlog_alloc_log */ 1336} /* xlog_alloc_log */
1318 1337
1319 1338
@@ -2541,18 +2560,19 @@ redo:
2541 xlog_ins_ticketq(&log->l_reserve_headq, tic); 2560 xlog_ins_ticketq(&log->l_reserve_headq, tic);
2542 xlog_trace_loggrant(log, tic, 2561 xlog_trace_loggrant(log, tic,
2543 "xlog_grant_log_space: sleep 2"); 2562 "xlog_grant_log_space: sleep 2");
2563 spin_unlock(&log->l_grant_lock);
2564 xlog_grant_push_ail(log->l_mp, need_bytes);
2565 spin_lock(&log->l_grant_lock);
2566
2544 XFS_STATS_INC(xs_sleep_logspace); 2567 XFS_STATS_INC(xs_sleep_logspace);
2545 sv_wait(&tic->t_wait, PINOD|PLTWAIT, &log->l_grant_lock, s); 2568 sv_wait(&tic->t_wait, PINOD|PLTWAIT, &log->l_grant_lock, s);
2546 2569
2547 if (XLOG_FORCED_SHUTDOWN(log)) { 2570 spin_lock(&log->l_grant_lock);
2548 spin_lock(&log->l_grant_lock); 2571 if (XLOG_FORCED_SHUTDOWN(log))
2549 goto error_return; 2572 goto error_return;
2550 }
2551 2573
2552 xlog_trace_loggrant(log, tic, 2574 xlog_trace_loggrant(log, tic,
2553 "xlog_grant_log_space: wake 2"); 2575 "xlog_grant_log_space: wake 2");
2554 xlog_grant_push_ail(log->l_mp, need_bytes);
2555 spin_lock(&log->l_grant_lock);
2556 goto redo; 2576 goto redo;
2557 } else if (tic->t_flags & XLOG_TIC_IN_Q) 2577 } else if (tic->t_flags & XLOG_TIC_IN_Q)
2558 xlog_del_ticketq(&log->l_reserve_headq, tic); 2578 xlog_del_ticketq(&log->l_reserve_headq, tic);
@@ -2631,7 +2651,7 @@ xlog_regrant_write_log_space(xlog_t *log,
2631 * for more free space, otherwise try to get some space for 2651 * for more free space, otherwise try to get some space for
2632 * this transaction. 2652 * this transaction.
2633 */ 2653 */
2634 2654 need_bytes = tic->t_unit_res;
2635 if ((ntic = log->l_write_headq)) { 2655 if ((ntic = log->l_write_headq)) {
2636 free_bytes = xlog_space_left(log, log->l_grant_write_cycle, 2656 free_bytes = xlog_space_left(log, log->l_grant_write_cycle,
2637 log->l_grant_write_bytes); 2657 log->l_grant_write_bytes);
@@ -2651,26 +2671,25 @@ xlog_regrant_write_log_space(xlog_t *log,
2651 2671
2652 xlog_trace_loggrant(log, tic, 2672 xlog_trace_loggrant(log, tic,
2653 "xlog_regrant_write_log_space: sleep 1"); 2673 "xlog_regrant_write_log_space: sleep 1");
2674 spin_unlock(&log->l_grant_lock);
2675 xlog_grant_push_ail(log->l_mp, need_bytes);
2676 spin_lock(&log->l_grant_lock);
2677
2654 XFS_STATS_INC(xs_sleep_logspace); 2678 XFS_STATS_INC(xs_sleep_logspace);
2655 sv_wait(&tic->t_wait, PINOD|PLTWAIT, 2679 sv_wait(&tic->t_wait, PINOD|PLTWAIT,
2656 &log->l_grant_lock, s); 2680 &log->l_grant_lock, s);
2657 2681
2658 /* If we're shutting down, this tic is already 2682 /* If we're shutting down, this tic is already
2659 * off the queue */ 2683 * off the queue */
2660 if (XLOG_FORCED_SHUTDOWN(log)) { 2684 spin_lock(&log->l_grant_lock);
2661 spin_lock(&log->l_grant_lock); 2685 if (XLOG_FORCED_SHUTDOWN(log))
2662 goto error_return; 2686 goto error_return;
2663 }
2664 2687
2665 xlog_trace_loggrant(log, tic, 2688 xlog_trace_loggrant(log, tic,
2666 "xlog_regrant_write_log_space: wake 1"); 2689 "xlog_regrant_write_log_space: wake 1");
2667 xlog_grant_push_ail(log->l_mp, tic->t_unit_res);
2668 spin_lock(&log->l_grant_lock);
2669 } 2690 }
2670 } 2691 }
2671 2692
2672 need_bytes = tic->t_unit_res;
2673
2674redo: 2693redo:
2675 if (XLOG_FORCED_SHUTDOWN(log)) 2694 if (XLOG_FORCED_SHUTDOWN(log))
2676 goto error_return; 2695 goto error_return;
@@ -2680,19 +2699,20 @@ redo:
2680 if (free_bytes < need_bytes) { 2699 if (free_bytes < need_bytes) {
2681 if ((tic->t_flags & XLOG_TIC_IN_Q) == 0) 2700 if ((tic->t_flags & XLOG_TIC_IN_Q) == 0)
2682 xlog_ins_ticketq(&log->l_write_headq, tic); 2701 xlog_ins_ticketq(&log->l_write_headq, tic);
2702 spin_unlock(&log->l_grant_lock);
2703 xlog_grant_push_ail(log->l_mp, need_bytes);
2704 spin_lock(&log->l_grant_lock);
2705
2683 XFS_STATS_INC(xs_sleep_logspace); 2706 XFS_STATS_INC(xs_sleep_logspace);
2684 sv_wait(&tic->t_wait, PINOD|PLTWAIT, &log->l_grant_lock, s); 2707 sv_wait(&tic->t_wait, PINOD|PLTWAIT, &log->l_grant_lock, s);
2685 2708
2686 /* If we're shutting down, this tic is already off the queue */ 2709 /* If we're shutting down, this tic is already off the queue */
2687 if (XLOG_FORCED_SHUTDOWN(log)) { 2710 spin_lock(&log->l_grant_lock);
2688 spin_lock(&log->l_grant_lock); 2711 if (XLOG_FORCED_SHUTDOWN(log))
2689 goto error_return; 2712 goto error_return;
2690 }
2691 2713
2692 xlog_trace_loggrant(log, tic, 2714 xlog_trace_loggrant(log, tic,
2693 "xlog_regrant_write_log_space: wake 2"); 2715 "xlog_regrant_write_log_space: wake 2");
2694 xlog_grant_push_ail(log->l_mp, need_bytes);
2695 spin_lock(&log->l_grant_lock);
2696 goto redo; 2716 goto redo;
2697 } else if (tic->t_flags & XLOG_TIC_IN_Q) 2717 } else if (tic->t_flags & XLOG_TIC_IN_Q)
2698 xlog_del_ticketq(&log->l_write_headq, tic); 2718 xlog_del_ticketq(&log->l_write_headq, tic);
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index b101990df027..65a99725d0cc 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -291,14 +291,17 @@ xfs_mount_validate_sb(
291 sbp->sb_sectsize > XFS_MAX_SECTORSIZE || 291 sbp->sb_sectsize > XFS_MAX_SECTORSIZE ||
292 sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG || 292 sbp->sb_sectlog < XFS_MIN_SECTORSIZE_LOG ||
293 sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG || 293 sbp->sb_sectlog > XFS_MAX_SECTORSIZE_LOG ||
294 sbp->sb_sectsize != (1 << sbp->sb_sectlog) ||
294 sbp->sb_blocksize < XFS_MIN_BLOCKSIZE || 295 sbp->sb_blocksize < XFS_MIN_BLOCKSIZE ||
295 sbp->sb_blocksize > XFS_MAX_BLOCKSIZE || 296 sbp->sb_blocksize > XFS_MAX_BLOCKSIZE ||
296 sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG || 297 sbp->sb_blocklog < XFS_MIN_BLOCKSIZE_LOG ||
297 sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG || 298 sbp->sb_blocklog > XFS_MAX_BLOCKSIZE_LOG ||
299 sbp->sb_blocksize != (1 << sbp->sb_blocklog) ||
298 sbp->sb_inodesize < XFS_DINODE_MIN_SIZE || 300 sbp->sb_inodesize < XFS_DINODE_MIN_SIZE ||
299 sbp->sb_inodesize > XFS_DINODE_MAX_SIZE || 301 sbp->sb_inodesize > XFS_DINODE_MAX_SIZE ||
300 sbp->sb_inodelog < XFS_DINODE_MIN_LOG || 302 sbp->sb_inodelog < XFS_DINODE_MIN_LOG ||
301 sbp->sb_inodelog > XFS_DINODE_MAX_LOG || 303 sbp->sb_inodelog > XFS_DINODE_MAX_LOG ||
304 sbp->sb_inodesize != (1 << sbp->sb_inodelog) ||
302 (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog) || 305 (sbp->sb_blocklog - sbp->sb_inodelog != sbp->sb_inopblog) ||
303 (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE) || 306 (sbp->sb_rextsize * sbp->sb_blocksize > XFS_MAX_RTEXTSIZE) ||
304 (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) || 307 (sbp->sb_rextsize * sbp->sb_blocksize < XFS_MIN_RTEXTSIZE) ||
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 7af44adffc8f..d6a64392f983 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -313,7 +313,7 @@ typedef struct xfs_mount {
313#endif 313#endif
314 struct xfs_mru_cache *m_filestream; /* per-mount filestream data */ 314 struct xfs_mru_cache *m_filestream; /* per-mount filestream data */
315 struct task_struct *m_sync_task; /* generalised sync thread */ 315 struct task_struct *m_sync_task; /* generalised sync thread */
316 bhv_vfs_sync_work_t m_sync_work; /* work item for VFS_SYNC */ 316 xfs_sync_work_t m_sync_work; /* work item for VFS_SYNC */
317 struct list_head m_sync_list; /* sync thread work item list */ 317 struct list_head m_sync_list; /* sync thread work item list */
318 spinlock_t m_sync_lock; /* work item list lock */ 318 spinlock_t m_sync_lock; /* work item list lock */
319 int m_sync_seq; /* sync thread generation no. */ 319 int m_sync_seq; /* sync thread generation no. */
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 7394c7af5de5..19cf90a9c762 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1457,6 +1457,13 @@ xfs_create(
1457 error = xfs_trans_reserve(tp, resblks, log_res, 0, 1457 error = xfs_trans_reserve(tp, resblks, log_res, 0,
1458 XFS_TRANS_PERM_LOG_RES, log_count); 1458 XFS_TRANS_PERM_LOG_RES, log_count);
1459 if (error == ENOSPC) { 1459 if (error == ENOSPC) {
1460 /* flush outstanding delalloc blocks and retry */
1461 xfs_flush_inodes(dp);
1462 error = xfs_trans_reserve(tp, resblks, XFS_CREATE_LOG_RES(mp), 0,
1463 XFS_TRANS_PERM_LOG_RES, XFS_CREATE_LOG_COUNT);
1464 }
1465 if (error == ENOSPC) {
1466 /* No space at all so try a "no-allocation" reservation */
1460 resblks = 0; 1467 resblks = 0;
1461 error = xfs_trans_reserve(tp, 0, log_res, 0, 1468 error = xfs_trans_reserve(tp, 0, log_res, 0,
1462 XFS_TRANS_PERM_LOG_RES, log_count); 1469 XFS_TRANS_PERM_LOG_RES, log_count);
diff --git a/include/acpi/processor.h b/include/acpi/processor.h
index b09c4fde9725..4927c063347c 100644
--- a/include/acpi/processor.h
+++ b/include/acpi/processor.h
@@ -84,7 +84,6 @@ struct acpi_processor_power {
84 struct acpi_processor_cx *state; 84 struct acpi_processor_cx *state;
85 unsigned long bm_check_timestamp; 85 unsigned long bm_check_timestamp;
86 u32 default_state; 86 u32 default_state;
87 u32 bm_activity;
88 int count; 87 int count;
89 struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER]; 88 struct acpi_processor_cx states[ACPI_PROCESSOR_MAX_POWER];
90 int timer_broadcast_on_state; 89 int timer_broadcast_on_state;
diff --git a/include/acpi/video.h b/include/acpi/video.h
index f0275bb79ce4..af6fe95fd3d0 100644
--- a/include/acpi/video.h
+++ b/include/acpi/video.h
@@ -3,8 +3,10 @@
3 3
4#if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE) 4#if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE)
5extern int acpi_video_register(void); 5extern int acpi_video_register(void);
6extern int acpi_video_exit(void);
6#else 7#else
7static inline int acpi_video_register(void) { return 0; } 8static inline int acpi_video_register(void) { return 0; }
9static inline void acpi_video_exit(void) { return; }
8#endif 10#endif
9 11
10#endif 12#endif
diff --git a/include/asm-arm/.gitignore b/include/asm-arm/.gitignore
deleted file mode 100644
index e02c15d158fc..000000000000
--- a/include/asm-arm/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
1arch
2mach-types.h
diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h
index 7abdaa91ccd3..3673a13b6703 100644
--- a/include/asm-generic/atomic.h
+++ b/include/asm-generic/atomic.h
@@ -132,9 +132,9 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
132#define atomic_long_inc_not_zero(l) atomic64_inc_not_zero((atomic64_t *)(l)) 132#define atomic_long_inc_not_zero(l) atomic64_inc_not_zero((atomic64_t *)(l))
133 133
134#define atomic_long_cmpxchg(l, old, new) \ 134#define atomic_long_cmpxchg(l, old, new) \
135 (atomic_cmpxchg((atomic64_t *)(l), (old), (new))) 135 (atomic64_cmpxchg((atomic64_t *)(l), (old), (new)))
136#define atomic_long_xchg(v, new) \ 136#define atomic_long_xchg(v, new) \
137 (atomic_xchg((atomic64_t *)(l), (new))) 137 (atomic64_xchg((atomic64_t *)(l), (new)))
138 138
139#else /* BITS_PER_LONG == 64 */ 139#else /* BITS_PER_LONG == 64 */
140 140
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 37b82cb96c89..4b6755984d24 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -58,12 +58,13 @@ struct bug_entry {
58 */ 58 */
59#ifndef __WARN 59#ifndef __WARN
60#ifndef __ASSEMBLY__ 60#ifndef __ASSEMBLY__
61extern void warn_slowpath(const char *file, const int line, 61extern void warn_slowpath_fmt(const char *file, const int line,
62 const char *fmt, ...) __attribute__((format(printf, 3, 4))); 62 const char *fmt, ...) __attribute__((format(printf, 3, 4)));
63extern void warn_slowpath_null(const char *file, const int line);
63#define WANT_WARN_ON_SLOWPATH 64#define WANT_WARN_ON_SLOWPATH
64#endif 65#endif
65#define __WARN() warn_slowpath(__FILE__, __LINE__, NULL) 66#define __WARN() warn_slowpath_null(__FILE__, __LINE__)
66#define __WARN_printf(arg...) warn_slowpath(__FILE__, __LINE__, arg) 67#define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
67#else 68#else
68#define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0) 69#define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0)
69#endif 70#endif
@@ -88,7 +89,7 @@ extern void warn_slowpath(const char *file, const int line,
88 89
89#else /* !CONFIG_BUG */ 90#else /* !CONFIG_BUG */
90#ifndef HAVE_ARCH_BUG 91#ifndef HAVE_ARCH_BUG
91#define BUG() 92#define BUG() do {} while(0)
92#endif 93#endif
93 94
94#ifndef HAVE_ARCH_BUG_ON 95#ifndef HAVE_ARCH_BUG_ON
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
index b0e63c672ebd..d7d50d7ee51e 100644
--- a/include/asm-generic/percpu.h
+++ b/include/asm-generic/percpu.h
@@ -1,13 +1,9 @@
1#ifndef _ASM_GENERIC_PERCPU_H_ 1#ifndef _ASM_GENERIC_PERCPU_H_
2#define _ASM_GENERIC_PERCPU_H_ 2#define _ASM_GENERIC_PERCPU_H_
3
3#include <linux/compiler.h> 4#include <linux/compiler.h>
4#include <linux/threads.h> 5#include <linux/threads.h>
5 6#include <linux/percpu-defs.h>
6/*
7 * Determine the real variable name from the name visible in the
8 * kernel sources.
9 */
10#define per_cpu_var(var) per_cpu__##var
11 7
12#ifdef CONFIG_SMP 8#ifdef CONFIG_SMP
13 9
@@ -73,11 +69,32 @@ extern void setup_per_cpu_areas(void);
73 69
74#endif /* SMP */ 70#endif /* SMP */
75 71
72#ifndef PER_CPU_BASE_SECTION
73#ifdef CONFIG_SMP
74#define PER_CPU_BASE_SECTION ".data.percpu"
75#else
76#define PER_CPU_BASE_SECTION ".data"
77#endif
78#endif
79
80#ifdef CONFIG_SMP
81
82#ifdef MODULE
83#define PER_CPU_SHARED_ALIGNED_SECTION ""
84#else
85#define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
86#endif
87#define PER_CPU_FIRST_SECTION ".first"
88
89#else
90
91#define PER_CPU_SHARED_ALIGNED_SECTION ""
92#define PER_CPU_FIRST_SECTION ""
93
94#endif
95
76#ifndef PER_CPU_ATTRIBUTES 96#ifndef PER_CPU_ATTRIBUTES
77#define PER_CPU_ATTRIBUTES 97#define PER_CPU_ATTRIBUTES
78#endif 98#endif
79 99
80#define DECLARE_PER_CPU(type, name) extern PER_CPU_ATTRIBUTES \
81 __typeof__(type) per_cpu_var(name)
82
83#endif /* _ASM_GENERIC_PERCPU_H_ */ 100#endif /* _ASM_GENERIC_PERCPU_H_ */
diff --git a/include/asm-generic/siginfo.h b/include/asm-generic/siginfo.h
index 35752dadd6df..c840719a8c59 100644
--- a/include/asm-generic/siginfo.h
+++ b/include/asm-generic/siginfo.h
@@ -201,7 +201,7 @@ typedef struct siginfo {
201#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */ 201#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */
202#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */ 202#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */
203#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */ 203#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */
204#define NSIGTRAP 2 204#define NSIGTRAP 4
205 205
206/* 206/*
207 * SIGCHLD si_codes 207 * SIGCHLD si_codes
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 7fa660fd449c..89853bcd27a6 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -1,3 +1,5 @@
1#include <linux/section-names.h>
2
1#ifndef LOAD_OFFSET 3#ifndef LOAD_OFFSET
2#define LOAD_OFFSET 0 4#define LOAD_OFFSET 0
3#endif 5#endif
@@ -88,7 +90,6 @@
88/* .data section */ 90/* .data section */
89#define DATA_DATA \ 91#define DATA_DATA \
90 *(.data) \ 92 *(.data) \
91 *(.data.init.refok) \
92 *(.ref.data) \ 93 *(.ref.data) \
93 DEV_KEEP(init.data) \ 94 DEV_KEEP(init.data) \
94 DEV_KEEP(exit.data) \ 95 DEV_KEEP(exit.data) \
@@ -287,8 +288,6 @@
287 *(.text.hot) \ 288 *(.text.hot) \
288 *(.text) \ 289 *(.text) \
289 *(.ref.text) \ 290 *(.ref.text) \
290 *(.text.init.refok) \
291 *(.exit.text.refok) \
292 DEV_KEEP(init.text) \ 291 DEV_KEEP(init.text) \
293 DEV_KEEP(exit.text) \ 292 DEV_KEEP(exit.text) \
294 CPU_KEEP(init.text) \ 293 CPU_KEEP(init.text) \
@@ -331,7 +330,7 @@
331#endif 330#endif
332 331
333/* Section used for early init (in .S files) */ 332/* Section used for early init (in .S files) */
334#define HEAD_TEXT *(.head.text) 333#define HEAD_TEXT *(HEAD_TEXT_SECTION)
335 334
336/* init and exit section handling */ 335/* init and exit section handling */
337#define INIT_DATA \ 336#define INIT_DATA \
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
index 2df74eb09563..fc55db780199 100644
--- a/include/drm/drm_pciids.h
+++ b/include/drm/drm_pciids.h
@@ -472,6 +472,7 @@
472 {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 472 {0x8086, 0x2562, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
473 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 473 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
474 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 474 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
475 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
475 {0, 0, 0} 476 {0, 0, 0}
476 477
477#define gamma_PCI_IDS \ 478#define gamma_PCI_IDS \
@@ -531,6 +532,8 @@
531 {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 532 {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
532 {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 533 {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
533 {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 534 {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
535 {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
534 {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 536 {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
535 {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 537 {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
538 {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
536 {0, 0, 0} 539 {0, 0, 0}
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 67e3353a56d6..8e1e92583fbc 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -184,6 +184,7 @@ typedef struct _drm_i915_sarea {
184#define DRM_I915_GEM_GET_TILING 0x22 184#define DRM_I915_GEM_GET_TILING 0x22
185#define DRM_I915_GEM_GET_APERTURE 0x23 185#define DRM_I915_GEM_GET_APERTURE 0x23
186#define DRM_I915_GEM_MMAP_GTT 0x24 186#define DRM_I915_GEM_MMAP_GTT 0x24
187#define DRM_I915_GET_PIPE_FROM_CRTC_ID 0x25
187 188
188#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) 189#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
189#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) 190#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -219,6 +220,7 @@ typedef struct _drm_i915_sarea {
219#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling) 220#define DRM_IOCTL_I915_GEM_SET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
220#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling) 221#define DRM_IOCTL_I915_GEM_GET_TILING DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
221#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture) 222#define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
223#define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_intel_get_pipe_from_crtc_id)
222 224
223/* Allow drivers to submit batchbuffers directly to hardware, relying 225/* Allow drivers to submit batchbuffers directly to hardware, relying
224 * on the security mechanisms provided by hardware. 226 * on the security mechanisms provided by hardware.
@@ -594,6 +596,9 @@ struct drm_i915_gem_busy {
594#define I915_BIT_6_SWIZZLE_9_10_11 4 596#define I915_BIT_6_SWIZZLE_9_10_11 4
595/* Not seen by userland */ 597/* Not seen by userland */
596#define I915_BIT_6_SWIZZLE_UNKNOWN 5 598#define I915_BIT_6_SWIZZLE_UNKNOWN 5
599/* Seen by userland. */
600#define I915_BIT_6_SWIZZLE_9_17 6
601#define I915_BIT_6_SWIZZLE_9_10_17 7
597 602
598struct drm_i915_gem_set_tiling { 603struct drm_i915_gem_set_tiling {
599 /** Handle of the buffer to have its tiling state updated */ 604 /** Handle of the buffer to have its tiling state updated */
@@ -654,4 +659,12 @@ struct drm_i915_gem_get_aperture {
654 __u64 aper_available_size; 659 __u64 aper_available_size;
655}; 660};
656 661
662struct drm_i915_get_pipe_from_crtc_id {
663 /** ID of CRTC being requested **/
664 __u32 crtc_id;
665
666 /** pipe of requested CRTC **/
667 __u32 pipe;
668};
669
657#endif /* _I915_DRM_H_ */ 670#endif /* _I915_DRM_H_ */
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index ca9b9b9bd331..3f0eaa397ef5 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -138,6 +138,7 @@ header-y += qnxtypes.h
138header-y += radeonfb.h 138header-y += radeonfb.h
139header-y += raw.h 139header-y += raw.h
140header-y += resource.h 140header-y += resource.h
141header-y += romfs_fs.h
141header-y += rose.h 142header-y += rose.h
142header-y += serial_reg.h 143header-y += serial_reg.h
143header-y += smbno.h 144header-y += smbno.h
@@ -314,7 +315,6 @@ unifdef-y += irqnr.h
314unifdef-y += reboot.h 315unifdef-y += reboot.h
315unifdef-y += reiserfs_fs.h 316unifdef-y += reiserfs_fs.h
316unifdef-y += reiserfs_xattr.h 317unifdef-y += reiserfs_xattr.h
317unifdef-y += romfs_fs.h
318unifdef-y += route.h 318unifdef-y += route.h
319unifdef-y += rtc.h 319unifdef-y += rtc.h
320unifdef-y += rtnetlink.h 320unifdef-y += rtnetlink.h
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 6586cbd0d4af..88be890ee3c7 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -111,6 +111,7 @@ int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base);
111int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base); 111int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
112void acpi_irq_stats_init(void); 112void acpi_irq_stats_init(void);
113extern u32 acpi_irq_handled; 113extern u32 acpi_irq_handled;
114extern u32 acpi_irq_not_handled;
114 115
115extern struct acpi_mcfg_allocation *pci_mmcfg_config; 116extern struct acpi_mcfg_allocation *pci_mmcfg_config;
116extern int pci_mmcfg_config_num; 117extern int pci_mmcfg_config_num;
diff --git a/include/linux/ata.h b/include/linux/ata.h
index cb79b7a208e1..915da43edee1 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -730,6 +730,34 @@ static inline int ata_id_has_unload(const u16 *id)
730 return 0; 730 return 0;
731} 731}
732 732
733static inline int ata_id_form_factor(const u16 *id)
734{
735 u16 val = id[168];
736
737 if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
738 return 0;
739
740 val &= 0xf;
741
742 if (val > 5)
743 return 0;
744
745 return val;
746}
747
748static inline int ata_id_rotation_rate(const u16 *id)
749{
750 u16 val = id[217];
751
752 if (ata_id_major_version(id) < 7 || val == 0 || val == 0xffff)
753 return 0;
754
755 if (val > 1 && val < 0x401)
756 return 0;
757
758 return val;
759}
760
733static inline int ata_id_has_trim(const u16 *id) 761static inline int ata_id_has_trim(const u16 *id)
734{ 762{
735 if (ata_id_major_version(id) >= 7 && 763 if (ata_id_major_version(id) >= 7 &&
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
index 6638b8148de7..61ee18c1bdb4 100644
--- a/include/linux/binfmts.h
+++ b/include/linux/binfmts.h
@@ -82,7 +82,19 @@ struct linux_binfmt {
82 int hasvdso; 82 int hasvdso;
83}; 83};
84 84
85extern int register_binfmt(struct linux_binfmt *); 85extern int __register_binfmt(struct linux_binfmt *fmt, int insert);
86
87/* Registration of default binfmt handlers */
88static inline int register_binfmt(struct linux_binfmt *fmt)
89{
90 return __register_binfmt(fmt, 0);
91}
92/* Same as above, but adds a new binfmt at the top of the list */
93static inline int insert_binfmt(struct linux_binfmt *fmt)
94{
95 return __register_binfmt(fmt, 1);
96}
97
86extern void unregister_binfmt(struct linux_binfmt *); 98extern void unregister_binfmt(struct linux_binfmt *);
87 99
88extern int prepare_binprm(struct linux_binprm *); 100extern int prepare_binprm(struct linux_binprm *);
diff --git a/include/linux/bio.h b/include/linux/bio.h
index b900d2c67d29..7b214fd672a2 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -132,6 +132,7 @@ struct bio {
132 * top 4 bits of bio flags indicate the pool this bio came from 132 * top 4 bits of bio flags indicate the pool this bio came from
133 */ 133 */
134#define BIO_POOL_BITS (4) 134#define BIO_POOL_BITS (4)
135#define BIO_POOL_NONE ((1UL << BIO_POOL_BITS) - 1)
135#define BIO_POOL_OFFSET (BITS_PER_LONG - BIO_POOL_BITS) 136#define BIO_POOL_OFFSET (BITS_PER_LONG - BIO_POOL_BITS)
136#define BIO_POOL_MASK (1UL << BIO_POOL_OFFSET) 137#define BIO_POOL_MASK (1UL << BIO_POOL_OFFSET)
137#define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET) 138#define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET)
@@ -504,6 +505,115 @@ static inline int bio_has_data(struct bio *bio)
504 return bio && bio->bi_io_vec != NULL; 505 return bio && bio->bi_io_vec != NULL;
505} 506}
506 507
508/*
509 * BIO list managment for use by remapping drivers (e.g. DM or MD).
510 *
511 * A bio_list anchors a singly-linked list of bios chained through the bi_next
512 * member of the bio. The bio_list also caches the last list member to allow
513 * fast access to the tail.
514 */
515struct bio_list {
516 struct bio *head;
517 struct bio *tail;
518};
519
520static inline int bio_list_empty(const struct bio_list *bl)
521{
522 return bl->head == NULL;
523}
524
525static inline void bio_list_init(struct bio_list *bl)
526{
527 bl->head = bl->tail = NULL;
528}
529
530#define bio_list_for_each(bio, bl) \
531 for (bio = (bl)->head; bio; bio = bio->bi_next)
532
533static inline unsigned bio_list_size(const struct bio_list *bl)
534{
535 unsigned sz = 0;
536 struct bio *bio;
537
538 bio_list_for_each(bio, bl)
539 sz++;
540
541 return sz;
542}
543
544static inline void bio_list_add(struct bio_list *bl, struct bio *bio)
545{
546 bio->bi_next = NULL;
547
548 if (bl->tail)
549 bl->tail->bi_next = bio;
550 else
551 bl->head = bio;
552
553 bl->tail = bio;
554}
555
556static inline void bio_list_add_head(struct bio_list *bl, struct bio *bio)
557{
558 bio->bi_next = bl->head;
559
560 bl->head = bio;
561
562 if (!bl->tail)
563 bl->tail = bio;
564}
565
566static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
567{
568 if (!bl2->head)
569 return;
570
571 if (bl->tail)
572 bl->tail->bi_next = bl2->head;
573 else
574 bl->head = bl2->head;
575
576 bl->tail = bl2->tail;
577}
578
579static inline void bio_list_merge_head(struct bio_list *bl,
580 struct bio_list *bl2)
581{
582 if (!bl2->head)
583 return;
584
585 if (bl->head)
586 bl2->tail->bi_next = bl->head;
587 else
588 bl->tail = bl2->tail;
589
590 bl->head = bl2->head;
591}
592
593static inline struct bio *bio_list_pop(struct bio_list *bl)
594{
595 struct bio *bio = bl->head;
596
597 if (bio) {
598 bl->head = bl->head->bi_next;
599 if (!bl->head)
600 bl->tail = NULL;
601
602 bio->bi_next = NULL;
603 }
604
605 return bio;
606}
607
608static inline struct bio *bio_list_get(struct bio_list *bl)
609{
610 struct bio *bio = bl->head;
611
612 bl->head = bl->tail = NULL;
613
614 return bio;
615}
616
507#if defined(CONFIG_BLK_DEV_INTEGRITY) 617#if defined(CONFIG_BLK_DEV_INTEGRITY)
508 618
509#define bip_vec_idx(bip, idx) (&(bip->bip_vec[(idx)])) 619#define bip_vec_idx(bip, idx) (&(bip->bip_vec[(idx)]))
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 61829139795a..c05a29cb9bb2 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -112,6 +112,25 @@ static inline unsigned fls_long(unsigned long l)
112 return fls64(l); 112 return fls64(l);
113} 113}
114 114
115/**
116 * __ffs64 - find first set bit in a 64 bit word
117 * @word: The 64 bit word
118 *
119 * On 64 bit arches this is a synomyn for __ffs
120 * The result is not defined if no bits are set, so check that @word
121 * is non-zero before calling this.
122 */
123static inline unsigned long __ffs64(u64 word)
124{
125#if BITS_PER_LONG == 32
126 if (((u32)word) == 0UL)
127 return __ffs((u32)(word >> 32)) + 32;
128#elif BITS_PER_LONG != 64
129#error BITS_PER_LONG not 32 or 64
130#endif
131 return __ffs((unsigned long)word);
132}
133
115#ifdef __KERNEL__ 134#ifdef __KERNEL__
116#ifdef CONFIG_GENERIC_FIND_FIRST_BIT 135#ifdef CONFIG_GENERIC_FIND_FIRST_BIT
117 136
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index ba54c834a590..b4f71f1a4af7 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -118,6 +118,7 @@ enum rq_flag_bits {
118 __REQ_COPY_USER, /* contains copies of user pages */ 118 __REQ_COPY_USER, /* contains copies of user pages */
119 __REQ_INTEGRITY, /* integrity metadata has been remapped */ 119 __REQ_INTEGRITY, /* integrity metadata has been remapped */
120 __REQ_NOIDLE, /* Don't anticipate more IO after this one */ 120 __REQ_NOIDLE, /* Don't anticipate more IO after this one */
121 __REQ_IO_STAT, /* account I/O stat */
121 __REQ_NR_BITS, /* stops here */ 122 __REQ_NR_BITS, /* stops here */
122}; 123};
123 124
@@ -145,6 +146,7 @@ enum rq_flag_bits {
145#define REQ_COPY_USER (1 << __REQ_COPY_USER) 146#define REQ_COPY_USER (1 << __REQ_COPY_USER)
146#define REQ_INTEGRITY (1 << __REQ_INTEGRITY) 147#define REQ_INTEGRITY (1 << __REQ_INTEGRITY)
147#define REQ_NOIDLE (1 << __REQ_NOIDLE) 148#define REQ_NOIDLE (1 << __REQ_NOIDLE)
149#define REQ_IO_STAT (1 << __REQ_IO_STAT)
148 150
149#define BLK_MAX_CDB 16 151#define BLK_MAX_CDB 16
150 152
@@ -598,6 +600,8 @@ enum {
598 blk_failfast_transport(rq) || \ 600 blk_failfast_transport(rq) || \
599 blk_failfast_driver(rq)) 601 blk_failfast_driver(rq))
600#define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED) 602#define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED)
603#define blk_rq_io_stat(rq) ((rq)->cmd_flags & REQ_IO_STAT)
604#define blk_rq_quiet(rq) ((rq)->cmd_flags & REQ_QUIET)
601 605
602#define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq))) 606#define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq)))
603 607
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 7b73bb8f1970..16ed0284d780 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -155,6 +155,7 @@ void create_empty_buffers(struct page *, unsigned long,
155 unsigned long b_state); 155 unsigned long b_state);
156void end_buffer_read_sync(struct buffer_head *bh, int uptodate); 156void end_buffer_read_sync(struct buffer_head *bh, int uptodate);
157void end_buffer_write_sync(struct buffer_head *bh, int uptodate); 157void end_buffer_write_sync(struct buffer_head *bh, int uptodate);
158void end_buffer_async_write(struct buffer_head *bh, int uptodate);
158 159
159/* Things to do with buffers at mapping->private_list */ 160/* Things to do with buffers at mapping->private_list */
160void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode); 161void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode);
@@ -197,6 +198,8 @@ extern int buffer_heads_over_limit;
197void block_invalidatepage(struct page *page, unsigned long offset); 198void block_invalidatepage(struct page *page, unsigned long offset);
198int block_write_full_page(struct page *page, get_block_t *get_block, 199int block_write_full_page(struct page *page, get_block_t *get_block,
199 struct writeback_control *wbc); 200 struct writeback_control *wbc);
201int block_write_full_page_endio(struct page *page, get_block_t *get_block,
202 struct writeback_control *wbc, bh_end_io_t *handler);
200int block_read_full_page(struct page*, get_block_t*); 203int block_read_full_page(struct page*, get_block_t*);
201int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, 204int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc,
202 unsigned long from); 205 unsigned long from);
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
index 573819ef4cc0..5a40d14daa9f 100644
--- a/include/linux/clocksource.h
+++ b/include/linux/clocksource.h
@@ -143,7 +143,9 @@ extern u64 timecounter_cyc2time(struct timecounter *tc,
143 * 400-499: Perfect 143 * 400-499: Perfect
144 * The ideal clocksource. A must-use where 144 * The ideal clocksource. A must-use where
145 * available. 145 * available.
146 * @read: returns a cycle value 146 * @read: returns a cycle value, passes clocksource as argument
147 * @enable: optional function to enable the clocksource
148 * @disable: optional function to disable the clocksource
147 * @mask: bitmask for two's complement 149 * @mask: bitmask for two's complement
148 * subtraction of non 64 bit counters 150 * subtraction of non 64 bit counters
149 * @mult: cycle to nanosecond multiplier (adjusted by NTP) 151 * @mult: cycle to nanosecond multiplier (adjusted by NTP)
@@ -162,7 +164,9 @@ struct clocksource {
162 char *name; 164 char *name;
163 struct list_head list; 165 struct list_head list;
164 int rating; 166 int rating;
165 cycle_t (*read)(void); 167 cycle_t (*read)(struct clocksource *cs);
168 int (*enable)(struct clocksource *cs);
169 void (*disable)(struct clocksource *cs);
166 cycle_t mask; 170 cycle_t mask;
167 u32 mult; 171 u32 mult;
168 u32 mult_orig; 172 u32 mult_orig;
@@ -271,7 +275,34 @@ static inline u32 clocksource_hz2mult(u32 hz, u32 shift_constant)
271 */ 275 */
272static inline cycle_t clocksource_read(struct clocksource *cs) 276static inline cycle_t clocksource_read(struct clocksource *cs)
273{ 277{
274 return cs->read(); 278 return cs->read(cs);
279}
280
281/**
282 * clocksource_enable: - enable clocksource
283 * @cs: pointer to clocksource
284 *
285 * Enables the specified clocksource. The clocksource callback
286 * function should start up the hardware and setup mult and field
287 * members of struct clocksource to reflect hardware capabilities.
288 */
289static inline int clocksource_enable(struct clocksource *cs)
290{
291 return cs->enable ? cs->enable(cs) : 0;
292}
293
294/**
295 * clocksource_disable: - disable clocksource
296 * @cs: pointer to clocksource
297 *
298 * Disables the specified clocksource. The clocksource callback
299 * function should power down the now unused hardware block to
300 * save power.
301 */
302static inline void clocksource_disable(struct clocksource *cs)
303{
304 if (cs->disable)
305 cs->disable(cs);
275} 306}
276 307
277/** 308/**
diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h
index 493dedb7a67b..29b3ce3f2a1d 100644
--- a/include/linux/debug_locks.h
+++ b/include/linux/debug_locks.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/kernel.h> 4#include <linux/kernel.h>
5#include <asm/atomic.h> 5#include <asm/atomic.h>
6#include <asm/system.h>
6 7
7struct task_struct; 8struct task_struct;
8 9
diff --git a/include/linux/device.h b/include/linux/device.h
index 2918c0e8fdfd..5d5c197bad45 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -384,13 +384,8 @@ struct device {
384 struct device_driver *driver; /* which driver has allocated this 384 struct device_driver *driver; /* which driver has allocated this
385 device */ 385 device */
386 void *driver_data; /* data private to the driver */ 386 void *driver_data; /* data private to the driver */
387 387 void *platform_data; /* Platform specific data, device
388 void *platform_data; /* We will remove platform_data 388 core doesn't touch it */
389 field if all platform devices
390 pass its platform specific data
391 from platform_device->platform_data,
392 other kind of devices should not
393 use platform_data. */
394 struct dev_pm_info power; 389 struct dev_pm_info power;
395 390
396#ifdef CONFIG_NUMA 391#ifdef CONFIG_NUMA
@@ -551,6 +546,7 @@ extern int (*platform_notify_remove)(struct device *dev);
551extern struct device *get_device(struct device *dev); 546extern struct device *get_device(struct device *dev);
552extern void put_device(struct device *dev); 547extern void put_device(struct device *dev);
553 548
549extern void wait_for_device_probe(void);
554 550
555/* drivers/base/power/shutdown.c */ 551/* drivers/base/power/shutdown.c */
556extern void device_shutdown(void); 552extern void device_shutdown(void);
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 2e2aa3df170c..ffefba81c818 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -78,12 +78,18 @@ enum dma_transaction_type {
78 * dependency chains 78 * dependency chains
79 * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s) 79 * @DMA_COMPL_SKIP_SRC_UNMAP - set to disable dma-unmapping the source buffer(s)
80 * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s) 80 * @DMA_COMPL_SKIP_DEST_UNMAP - set to disable dma-unmapping the destination(s)
81 * @DMA_COMPL_SRC_UNMAP_SINGLE - set to do the source dma-unmapping as single
82 * (if not set, do the source dma-unmapping as page)
83 * @DMA_COMPL_DEST_UNMAP_SINGLE - set to do the destination dma-unmapping as single
84 * (if not set, do the destination dma-unmapping as page)
81 */ 85 */
82enum dma_ctrl_flags { 86enum dma_ctrl_flags {
83 DMA_PREP_INTERRUPT = (1 << 0), 87 DMA_PREP_INTERRUPT = (1 << 0),
84 DMA_CTRL_ACK = (1 << 1), 88 DMA_CTRL_ACK = (1 << 1),
85 DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2), 89 DMA_COMPL_SKIP_SRC_UNMAP = (1 << 2),
86 DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3), 90 DMA_COMPL_SKIP_DEST_UNMAP = (1 << 3),
91 DMA_COMPL_SRC_UNMAP_SINGLE = (1 << 4),
92 DMA_COMPL_DEST_UNMAP_SINGLE = (1 << 5),
87}; 93};
88 94
89/** 95/**
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
index baabf33be244..a0d9422a1569 100644
--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h
@@ -70,7 +70,7 @@ extern int ddebug_remove_module(char *mod_name);
70 DEBUG_HASH2, __LINE__, _DPRINTK_FLAGS_DEFAULT }; \ 70 DEBUG_HASH2, __LINE__, _DPRINTK_FLAGS_DEFAULT }; \
71 if (__dynamic_dbg_enabled(descriptor)) \ 71 if (__dynamic_dbg_enabled(descriptor)) \
72 dev_printk(KERN_DEBUG, dev, \ 72 dev_printk(KERN_DEBUG, dev, \
73 KBUILD_MODNAME ": " pr_fmt(fmt),\ 73 KBUILD_MODNAME ": " fmt, \
74 ##__VA_ARGS__); \ 74 ##__VA_ARGS__); \
75 } while (0) 75 } while (0)
76 76
diff --git a/include/linux/fb.h b/include/linux/fb.h
index f563c5013932..330c4b1bfcaa 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -173,8 +173,12 @@ struct fb_fix_screeninfo {
173/* Interpretation of offset for color fields: All offsets are from the right, 173/* Interpretation of offset for color fields: All offsets are from the right,
174 * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you 174 * inside a "pixel" value, which is exactly 'bits_per_pixel' wide (means: you
175 * can use the offset as right argument to <<). A pixel afterwards is a bit 175 * can use the offset as right argument to <<). A pixel afterwards is a bit
176 * stream and is written to video memory as that unmodified. This implies 176 * stream and is written to video memory as that unmodified.
177 * big-endian byte order if bits_per_pixel is greater than 8. 177 *
178 * For pseudocolor: offset and length should be the same for all color
179 * components. Offset specifies the position of the least significant bit
180 * of the pallette index in a pixel value. Length indicates the number
181 * of available palette entries (i.e. # of entries = 1 << length).
178 */ 182 */
179struct fb_bitfield { 183struct fb_bitfield {
180 __u32 offset; /* beginning of bitfield */ 184 __u32 offset; /* beginning of bitfield */
diff --git a/include/linux/fiemap.h b/include/linux/fiemap.h
index 671decbd2aeb..934e22d65801 100644
--- a/include/linux/fiemap.h
+++ b/include/linux/fiemap.h
@@ -11,6 +11,8 @@
11#ifndef _LINUX_FIEMAP_H 11#ifndef _LINUX_FIEMAP_H
12#define _LINUX_FIEMAP_H 12#define _LINUX_FIEMAP_H
13 13
14#include <linux/types.h>
15
14struct fiemap_extent { 16struct fiemap_extent {
15 __u64 fe_logical; /* logical offset in bytes for the start of 17 __u64 fe_logical; /* logical offset in bytes for the start of
16 * the extent from the beginning of the file */ 18 * the extent from the beginning of the file */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 562d2855cf30..3b534e527e09 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -87,6 +87,60 @@ struct inodes_stat_t {
87 */ 87 */
88#define FMODE_NOCMTIME ((__force fmode_t)2048) 88#define FMODE_NOCMTIME ((__force fmode_t)2048)
89 89
90/*
91 * The below are the various read and write types that we support. Some of
92 * them include behavioral modifiers that send information down to the
93 * block layer and IO scheduler. Terminology:
94 *
95 * The block layer uses device plugging to defer IO a little bit, in
96 * the hope that we will see more IO very shortly. This increases
97 * coalescing of adjacent IO and thus reduces the number of IOs we
98 * have to send to the device. It also allows for better queuing,
99 * if the IO isn't mergeable. If the caller is going to be waiting
100 * for the IO, then he must ensure that the device is unplugged so
101 * that the IO is dispatched to the driver.
102 *
103 * All IO is handled async in Linux. This is fine for background
104 * writes, but for reads or writes that someone waits for completion
105 * on, we want to notify the block layer and IO scheduler so that they
106 * know about it. That allows them to make better scheduling
107 * decisions. So when the below references 'sync' and 'async', it
108 * is referencing this priority hint.
109 *
110 * With that in mind, the available types are:
111 *
112 * READ A normal read operation. Device will be plugged.
113 * READ_SYNC A synchronous read. Device is not plugged, caller can
114 * immediately wait on this read without caring about
115 * unplugging.
116 * READA Used for read-ahead operations. Lower priority, and the
117 * block layer could (in theory) choose to ignore this
118 * request if it runs into resource problems.
119 * WRITE A normal async write. Device will be plugged.
120 * SWRITE Like WRITE, but a special case for ll_rw_block() that
121 * tells it to lock the buffer first. Normally a buffer
122 * must be locked before doing IO.
123 * WRITE_SYNC_PLUG Synchronous write. Identical to WRITE, but passes down
124 * the hint that someone will be waiting on this IO
125 * shortly. The device must still be unplugged explicitly,
126 * WRITE_SYNC_PLUG does not do this as we could be
127 * submitting more writes before we actually wait on any
128 * of them.
129 * WRITE_SYNC Like WRITE_SYNC_PLUG, but also unplugs the device
130 * immediately after submission. The write equivalent
131 * of READ_SYNC.
132 * WRITE_ODIRECT Special case write for O_DIRECT only.
133 * SWRITE_SYNC
134 * SWRITE_SYNC_PLUG Like WRITE_SYNC/WRITE_SYNC_PLUG, but locks the buffer.
135 * See SWRITE.
136 * WRITE_BARRIER Like WRITE, but tells the block layer that all
137 * previously submitted writes must be safely on storage
138 * before this one is started. Also guarantees that when
139 * this write is complete, it itself is also safely on
140 * storage. Prevents reordering of writes on both sides
141 * of this IO.
142 *
143 */
90#define RW_MASK 1 144#define RW_MASK 1
91#define RWA_MASK 2 145#define RWA_MASK 2
92#define READ 0 146#define READ 0
@@ -102,6 +156,11 @@ struct inodes_stat_t {
102 (SWRITE | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_NOIDLE)) 156 (SWRITE | (1 << BIO_RW_SYNCIO) | (1 << BIO_RW_NOIDLE))
103#define SWRITE_SYNC (SWRITE_SYNC_PLUG | (1 << BIO_RW_UNPLUG)) 157#define SWRITE_SYNC (SWRITE_SYNC_PLUG | (1 << BIO_RW_UNPLUG))
104#define WRITE_BARRIER (WRITE | (1 << BIO_RW_BARRIER)) 158#define WRITE_BARRIER (WRITE | (1 << BIO_RW_BARRIER))
159
160/*
161 * These aren't really reads or writes, they pass down information about
162 * parts of device that are now unused by the file system.
163 */
105#define DISCARD_NOBARRIER (1 << BIO_RW_DISCARD) 164#define DISCARD_NOBARRIER (1 << BIO_RW_DISCARD)
106#define DISCARD_BARRIER ((1 << BIO_RW_DISCARD) | (1 << BIO_RW_BARRIER)) 165#define DISCARD_BARRIER ((1 << BIO_RW_DISCARD) | (1 << BIO_RW_BARRIER))
107 166
@@ -738,9 +797,6 @@ enum inode_i_mutex_lock_class
738 I_MUTEX_QUOTA 797 I_MUTEX_QUOTA
739}; 798};
740 799
741extern void inode_double_lock(struct inode *inode1, struct inode *inode2);
742extern void inode_double_unlock(struct inode *inode1, struct inode *inode2);
743
744/* 800/*
745 * NOTE: in a 32bit arch with a preemptable kernel and 801 * NOTE: in a 32bit arch with a preemptable kernel and
746 * an UP compile the i_size_read/write must be atomic 802 * an UP compile the i_size_read/write must be atomic
@@ -1719,6 +1775,7 @@ void kill_block_super(struct super_block *sb);
1719void kill_anon_super(struct super_block *sb); 1775void kill_anon_super(struct super_block *sb);
1720void kill_litter_super(struct super_block *sb); 1776void kill_litter_super(struct super_block *sb);
1721void deactivate_super(struct super_block *sb); 1777void deactivate_super(struct super_block *sb);
1778void deactivate_locked_super(struct super_block *sb);
1722int set_anon_super(struct super_block *s, void *data); 1779int set_anon_super(struct super_block *s, void *data);
1723struct super_block *sget(struct file_system_type *type, 1780struct super_block *sget(struct file_system_type *type,
1724 int (*test)(struct super_block *,void *), 1781 int (*test)(struct super_block *,void *),
@@ -2061,7 +2118,7 @@ extern struct file *create_write_pipe(int flags);
2061extern void free_write_pipe(struct file *); 2118extern void free_write_pipe(struct file *);
2062 2119
2063extern struct file *do_filp_open(int dfd, const char *pathname, 2120extern struct file *do_filp_open(int dfd, const char *pathname,
2064 int open_flag, int mode); 2121 int open_flag, int mode, int acc_mode);
2065extern int may_open(struct path *, int, int); 2122extern int may_open(struct path *, int, int);
2066 2123
2067extern int kernel_read(struct file *, unsigned long, char *, unsigned long); 2124extern int kernel_read(struct file *, unsigned long, char *, unsigned long);
@@ -2150,8 +2207,6 @@ extern ssize_t generic_file_splice_read(struct file *, loff_t *,
2150 struct pipe_inode_info *, size_t, unsigned int); 2207 struct pipe_inode_info *, size_t, unsigned int);
2151extern ssize_t generic_file_splice_write(struct pipe_inode_info *, 2208extern ssize_t generic_file_splice_write(struct pipe_inode_info *,
2152 struct file *, loff_t *, size_t, unsigned int); 2209 struct file *, loff_t *, size_t, unsigned int);
2153extern ssize_t generic_file_splice_write_nolock(struct pipe_inode_info *,
2154 struct file *, loff_t *, size_t, unsigned int);
2155extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, 2210extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
2156 struct file *out, loff_t *, size_t len, unsigned int flags); 2211 struct file *out, loff_t *, size_t len, unsigned int flags);
2157extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, 2212extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
@@ -2245,9 +2300,8 @@ extern int vfs_readdir(struct file *, filldir_t, void *);
2245 2300
2246extern int vfs_stat(char __user *, struct kstat *); 2301extern int vfs_stat(char __user *, struct kstat *);
2247extern int vfs_lstat(char __user *, struct kstat *); 2302extern int vfs_lstat(char __user *, struct kstat *);
2248extern int vfs_stat_fd(int dfd, char __user *, struct kstat *);
2249extern int vfs_lstat_fd(int dfd, char __user *, struct kstat *);
2250extern int vfs_fstat(unsigned int, struct kstat *); 2303extern int vfs_fstat(unsigned int, struct kstat *);
2304extern int vfs_fstatat(int , char __user *, struct kstat *, int);
2251 2305
2252extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, 2306extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
2253 unsigned long arg); 2307 unsigned long arg);
@@ -2314,6 +2368,7 @@ extern void file_update_time(struct file *file);
2314 2368
2315extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt); 2369extern int generic_show_options(struct seq_file *m, struct vfsmount *mnt);
2316extern void save_mount_options(struct super_block *sb, char *options); 2370extern void save_mount_options(struct super_block *sb, char *options);
2371extern void replace_mount_options(struct super_block *sb, char *options);
2317 2372
2318static inline ino_t parent_ino(struct dentry *dentry) 2373static inline ino_t parent_ino(struct dentry *dentry)
2319{ 2374{
@@ -2395,7 +2450,7 @@ struct ctl_table;
2395int proc_nr_files(struct ctl_table *table, int write, struct file *filp, 2450int proc_nr_files(struct ctl_table *table, int write, struct file *filp,
2396 void __user *buffer, size_t *lenp, loff_t *ppos); 2451 void __user *buffer, size_t *lenp, loff_t *ppos);
2397 2452
2398int get_filesystem_list(char * buf); 2453int __init get_filesystem_list(char *buf);
2399 2454
2400#endif /* __KERNEL__ */ 2455#endif /* __KERNEL__ */
2401#endif /* _LINUX_FS_H */ 2456#endif /* _LINUX_FS_H */
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index f2a78b5e8b55..244677cc082b 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -43,10 +43,6 @@
43 * 43 *
44 */ 44 */
45 45
46/* Flags related to I2C device features */
47#define FSL_I2C_DEV_SEPARATE_DFSRR 0x00000001
48#define FSL_I2C_DEV_CLOCK_5200 0x00000002
49
50enum fsl_usb2_operating_modes { 46enum fsl_usb2_operating_modes {
51 FSL_USB2_MPH_HOST, 47 FSL_USB2_MPH_HOST,
52 FSL_USB2_DR_HOST, 48 FSL_USB2_DR_HOST,
@@ -83,6 +79,10 @@ struct fsl_spi_platform_data {
83 u16 max_chipselect; 79 u16 max_chipselect;
84 void (*cs_control)(struct spi_device *spi, bool on); 80 void (*cs_control)(struct spi_device *spi, bool on);
85 u32 sysclk; 81 u32 sysclk;
82
83 /* Legacy hooks, used by mpc52xx_psc_spi driver. */
84 void (*activate_cs)(u8 cs, u8 polarity);
85 void (*deactivate_cs)(u8 cs, u8 polarity);
86}; 86};
87 87
88struct mpc8xx_pcmcia_ops { 88struct mpc8xx_pcmcia_ops {
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 634c53028fb8..a1a28caed23d 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -214,6 +214,7 @@ static inline void disk_put_part(struct hd_struct *part)
214#define DISK_PITER_REVERSE (1 << 0) /* iterate in the reverse direction */ 214#define DISK_PITER_REVERSE (1 << 0) /* iterate in the reverse direction */
215#define DISK_PITER_INCL_EMPTY (1 << 1) /* include 0-sized parts */ 215#define DISK_PITER_INCL_EMPTY (1 << 1) /* include 0-sized parts */
216#define DISK_PITER_INCL_PART0 (1 << 2) /* include partition 0 */ 216#define DISK_PITER_INCL_PART0 (1 << 2) /* include partition 0 */
217#define DISK_PITER_INCL_EMPTY_PART0 (1 << 3) /* include empty partition 0 */
217 218
218struct disk_part_iter { 219struct disk_part_iter {
219 struct gendisk *disk; 220 struct gendisk *disk;
diff --git a/include/linux/init.h b/include/linux/init.h
index 68cb0265d009..0e06c176f185 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -2,6 +2,8 @@
2#define _LINUX_INIT_H 2#define _LINUX_INIT_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <linux/section-names.h>
6#include <linux/stringify.h>
5 7
6/* These macros are used to mark some functions or 8/* These macros are used to mark some functions or
7 * initialized data (doesn't apply to uninitialized data) 9 * initialized data (doesn't apply to uninitialized data)
@@ -60,14 +62,6 @@
60#define __refdata __section(.ref.data) 62#define __refdata __section(.ref.data)
61#define __refconst __section(.ref.rodata) 63#define __refconst __section(.ref.rodata)
62 64
63/* backward compatibility note
64 * A few places hardcode the old section names:
65 * .text.init.refok
66 * .data.init.refok
67 * .exit.text.refok
68 * They should be converted to use the defines from this file
69 */
70
71/* compatibility defines */ 65/* compatibility defines */
72#define __init_refok __ref 66#define __init_refok __ref
73#define __initdata_refok __refdata 67#define __initdata_refok __refdata
@@ -107,7 +101,7 @@
107#define __memexitconst __section(.memexit.rodata) 101#define __memexitconst __section(.memexit.rodata)
108 102
109/* For assembly routines */ 103/* For assembly routines */
110#define __HEAD .section ".head.text","ax" 104#define __HEAD .section __stringify(HEAD_TEXT_SECTION),"ax"
111#define __INIT .section ".init.text","ax" 105#define __INIT .section ".init.text","ax"
112#define __FINIT .previous 106#define __FINIT .previous
113 107
@@ -247,6 +241,7 @@ struct obs_kernel_param {
247 241
248/* Relies on boot_command_line being set */ 242/* Relies on boot_command_line being set */
249void __init parse_early_param(void); 243void __init parse_early_param(void);
244void __init parse_early_options(char *cmdline);
250#endif /* __ASSEMBLY__ */ 245#endif /* __ASSEMBLY__ */
251 246
252/** 247/**
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index dcfb93337e9a..d87247d2641f 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -15,19 +15,6 @@
15extern struct files_struct init_files; 15extern struct files_struct init_files;
16extern struct fs_struct init_fs; 16extern struct fs_struct init_fs;
17 17
18#define INIT_KIOCTX(name, which_mm) \
19{ \
20 .users = ATOMIC_INIT(1), \
21 .dead = 0, \
22 .mm = &which_mm, \
23 .user_id = 0, \
24 .next = NULL, \
25 .wait = __WAIT_QUEUE_HEAD_INITIALIZER(name.wait), \
26 .ctx_lock = __SPIN_LOCK_UNLOCKED(name.ctx_lock), \
27 .reqs_active = 0U, \
28 .max_reqs = ~0U, \
29}
30
31#define INIT_MM(name) \ 18#define INIT_MM(name) \
32{ \ 19{ \
33 .mm_rb = RB_ROOT, \ 20 .mm_rb = RB_ROOT, \
diff --git a/include/linux/input.h b/include/linux/input.h
index 6b28048fc568..0e6ff5de3588 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -106,6 +106,7 @@ struct input_absinfo {
106 106
107#define SYN_REPORT 0 107#define SYN_REPORT 0
108#define SYN_CONFIG 1 108#define SYN_CONFIG 1
109#define SYN_MT_REPORT 2
109 110
110/* 111/*
111 * Keys and buttons 112 * Keys and buttons
@@ -445,6 +446,7 @@ struct input_absinfo {
445#define BTN_STYLUS2 0x14c 446#define BTN_STYLUS2 0x14c
446#define BTN_TOOL_DOUBLETAP 0x14d 447#define BTN_TOOL_DOUBLETAP 0x14d
447#define BTN_TOOL_TRIPLETAP 0x14e 448#define BTN_TOOL_TRIPLETAP 0x14e
449#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */
448 450
449#define BTN_WHEEL 0x150 451#define BTN_WHEEL 0x150
450#define BTN_GEAR_DOWN 0x150 452#define BTN_GEAR_DOWN 0x150
@@ -644,6 +646,17 @@ struct input_absinfo {
644#define ABS_TOOL_WIDTH 0x1c 646#define ABS_TOOL_WIDTH 0x1c
645#define ABS_VOLUME 0x20 647#define ABS_VOLUME 0x20
646#define ABS_MISC 0x28 648#define ABS_MISC 0x28
649
650#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
651#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
652#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
653#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
654#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
655#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
656#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
657#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */
658#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
659
647#define ABS_MAX 0x3f 660#define ABS_MAX 0x3f
648#define ABS_CNT (ABS_MAX+1) 661#define ABS_CNT (ABS_MAX+1)
649 662
@@ -743,6 +756,12 @@ struct input_absinfo {
743#define BUS_ATARI 0x1B 756#define BUS_ATARI 0x1B
744 757
745/* 758/*
759 * MT_TOOL types
760 */
761#define MT_TOOL_FINGER 0
762#define MT_TOOL_PEN 1
763
764/*
746 * Values describing the status of a force-feedback effect 765 * Values describing the status of a force-feedback effect
747 */ 766 */
748#define FF_STATUS_STOPPED 0x00 767#define FF_STATUS_STOPPED 0x00
@@ -1311,6 +1330,11 @@ static inline void input_sync(struct input_dev *dev)
1311 input_event(dev, EV_SYN, SYN_REPORT, 0); 1330 input_event(dev, EV_SYN, SYN_REPORT, 0);
1312} 1331}
1313 1332
1333static inline void input_mt_sync(struct input_dev *dev)
1334{
1335 input_event(dev, EV_SYN, SYN_MT_REPORT, 0);
1336}
1337
1314void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code); 1338void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code);
1315 1339
1316static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) 1340static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h
index 7ebdb4fb4e54..65aae34759de 100644
--- a/include/linux/ipmi.h
+++ b/include/linux/ipmi.h
@@ -198,6 +198,8 @@ struct kernel_ipmi_msg {
198 response. When you send a 198 response. When you send a
199 response message, this will 199 response message, this will
200 be returned. */ 200 be returned. */
201#define IPMI_OEM_RECV_TYPE 5 /* The response for OEM Channels */
202
201/* Note that async events and received commands do not have a completion 203/* Note that async events and received commands do not have a completion
202 code as the first byte of the incoming data, unlike a response. */ 204 code as the first byte of the incoming data, unlike a response. */
203 205
diff --git a/include/linux/ipmi_msgdefs.h b/include/linux/ipmi_msgdefs.h
index b56a158d587a..df97e6e31e87 100644
--- a/include/linux/ipmi_msgdefs.h
+++ b/include/linux/ipmi_msgdefs.h
@@ -58,6 +58,12 @@
58#define IPMI_READ_EVENT_MSG_BUFFER_CMD 0x35 58#define IPMI_READ_EVENT_MSG_BUFFER_CMD 0x35
59#define IPMI_GET_CHANNEL_INFO_CMD 0x42 59#define IPMI_GET_CHANNEL_INFO_CMD 0x42
60 60
61/* Bit for BMC global enables. */
62#define IPMI_BMC_RCV_MSG_INTR 0x01
63#define IPMI_BMC_EVT_MSG_INTR 0x02
64#define IPMI_BMC_EVT_MSG_BUFF 0x04
65#define IPMI_BMC_SYS_LOG 0x08
66
61#define IPMI_NETFN_STORAGE_REQUEST 0x0a 67#define IPMI_NETFN_STORAGE_REQUEST 0x0a
62#define IPMI_NETFN_STORAGE_RESPONSE 0x0b 68#define IPMI_NETFN_STORAGE_RESPONSE 0x0b
63#define IPMI_ADD_SEL_ENTRY_CMD 0x44 69#define IPMI_ADD_SEL_ENTRY_CMD 0x44
@@ -109,5 +115,7 @@
109#define IPMI_CHANNEL_MEDIUM_USB1 10 115#define IPMI_CHANNEL_MEDIUM_USB1 10
110#define IPMI_CHANNEL_MEDIUM_USB2 11 116#define IPMI_CHANNEL_MEDIUM_USB2 11
111#define IPMI_CHANNEL_MEDIUM_SYSINTF 12 117#define IPMI_CHANNEL_MEDIUM_SYSINTF 12
118#define IPMI_CHANNEL_MEDIUM_OEM_MIN 0x60
119#define IPMI_CHANNEL_MEDIUM_OEM_MAX 0x7f
112 120
113#endif /* __LINUX_IPMI_MSGDEFS_H */ 121#endif /* __LINUX_IPMI_MSGDEFS_H */
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index 53ae4399da2d..c2049a04fa0b 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -978,7 +978,8 @@ extern void journal_destroy_revoke(journal_t *);
978extern int journal_revoke (handle_t *, 978extern int journal_revoke (handle_t *,
979 unsigned long, struct buffer_head *); 979 unsigned long, struct buffer_head *);
980extern int journal_cancel_revoke(handle_t *, struct journal_head *); 980extern int journal_cancel_revoke(handle_t *, struct journal_head *);
981extern void journal_write_revoke_records(journal_t *, transaction_t *); 981extern void journal_write_revoke_records(journal_t *,
982 transaction_t *, int);
982 983
983/* Recovery revoke support */ 984/* Recovery revoke support */
984extern int journal_set_revoke(journal_t *, unsigned long, tid_t); 985extern int journal_set_revoke(journal_t *, unsigned long, tid_t);
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 8815a3456b3b..cc02393bfce8 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -1193,7 +1193,8 @@ extern int jbd2_journal_init_revoke_caches(void);
1193extern void jbd2_journal_destroy_revoke(journal_t *); 1193extern void jbd2_journal_destroy_revoke(journal_t *);
1194extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *); 1194extern int jbd2_journal_revoke (handle_t *, unsigned long long, struct buffer_head *);
1195extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *); 1195extern int jbd2_journal_cancel_revoke(handle_t *, struct journal_head *);
1196extern void jbd2_journal_write_revoke_records(journal_t *, transaction_t *); 1196extern void jbd2_journal_write_revoke_records(journal_t *,
1197 transaction_t *, int);
1197 1198
1198/* Recovery revoke support */ 1199/* Recovery revoke support */
1199extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t); 1200extern int jbd2_journal_set_revoke(journal_t *, unsigned long long, tid_t);
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index d9e75ec7def5..883cd44ff765 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -377,6 +377,15 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
377#define pr_cont(fmt, ...) \ 377#define pr_cont(fmt, ...) \
378 printk(KERN_CONT fmt, ##__VA_ARGS__) 378 printk(KERN_CONT fmt, ##__VA_ARGS__)
379 379
380/* pr_devel() should produce zero code unless DEBUG is defined */
381#ifdef DEBUG
382#define pr_devel(fmt, ...) \
383 printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
384#else
385#define pr_devel(fmt, ...) \
386 ({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
387#endif
388
380/* If you are writing a driver, please use dev_dbg instead */ 389/* If you are writing a driver, please use dev_dbg instead */
381#if defined(DEBUG) 390#if defined(DEBUG)
382#define pr_debug(fmt, ...) \ 391#define pr_debug(fmt, ...) \
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 311a073afe8a..8cc137911b34 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -409,6 +409,8 @@ struct kvm_trace_rec {
409#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT 409#ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
410#define KVM_CAP_DEVICE_DEASSIGNMENT 27 410#define KVM_CAP_DEVICE_DEASSIGNMENT 27
411#endif 411#endif
412/* Another bug in KVM_SET_USER_MEMORY_REGION fixed: */
413#define KVM_CAP_JOIN_MEMORY_REGIONS_WORKS 30
412 414
413#ifdef KVM_CAP_IRQ_ROUTING 415#ifdef KVM_CAP_IRQ_ROUTING
414 416
diff --git a/include/linux/libata.h b/include/linux/libata.h
index b450a2628855..3d501db36a26 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -209,6 +209,7 @@ enum {
209 209
210 /* bits 24:31 of ap->flags are reserved for LLD specific flags */ 210 /* bits 24:31 of ap->flags are reserved for LLD specific flags */
211 211
212
212 /* struct ata_port pflags */ 213 /* struct ata_port pflags */
213 ATA_PFLAG_EH_PENDING = (1 << 0), /* EH pending */ 214 ATA_PFLAG_EH_PENDING = (1 << 0), /* EH pending */
214 ATA_PFLAG_EH_IN_PROGRESS = (1 << 1), /* EH in progress */ 215 ATA_PFLAG_EH_IN_PROGRESS = (1 << 1), /* EH in progress */
@@ -225,6 +226,9 @@ enum {
225 ATA_PFLAG_PM_PENDING = (1 << 18), /* PM operation pending */ 226 ATA_PFLAG_PM_PENDING = (1 << 18), /* PM operation pending */
226 ATA_PFLAG_INIT_GTM_VALID = (1 << 19), /* initial gtm data valid */ 227 ATA_PFLAG_INIT_GTM_VALID = (1 << 19), /* initial gtm data valid */
227 228
229 ATA_PFLAG_PIO32 = (1 << 20), /* 32bit PIO */
230 ATA_PFLAG_PIO32CHANGE = (1 << 21), /* 32bit PIO can be turned on/off */
231
228 /* struct ata_queued_cmd flags */ 232 /* struct ata_queued_cmd flags */
229 ATA_QCFLAG_ACTIVE = (1 << 0), /* cmd not yet ack'd to scsi lyer */ 233 ATA_QCFLAG_ACTIVE = (1 << 0), /* cmd not yet ack'd to scsi lyer */
230 ATA_QCFLAG_DMAMAP = (1 << 1), /* SG table is DMA mapped */ 234 ATA_QCFLAG_DMAMAP = (1 << 1), /* SG table is DMA mapped */
@@ -689,7 +693,10 @@ struct ata_port {
689 struct Scsi_Host *scsi_host; /* our co-allocated scsi host */ 693 struct Scsi_Host *scsi_host; /* our co-allocated scsi host */
690 struct ata_port_operations *ops; 694 struct ata_port_operations *ops;
691 spinlock_t *lock; 695 spinlock_t *lock;
696 /* Flags owned by the EH context. Only EH should touch these once the
697 port is active */
692 unsigned long flags; /* ATA_FLAG_xxx */ 698 unsigned long flags; /* ATA_FLAG_xxx */
699 /* Flags that change dynamically, protected by ap->lock */
693 unsigned int pflags; /* ATA_PFLAG_xxx */ 700 unsigned int pflags; /* ATA_PFLAG_xxx */
694 unsigned int print_id; /* user visible unique port ID */ 701 unsigned int print_id; /* user visible unique port ID */
695 unsigned int port_no; /* 0 based port no. inside the host */ 702 unsigned int port_no; /* 0 based port no. inside the host */
@@ -1595,6 +1602,7 @@ extern void ata_sff_drain_fifo(struct ata_queued_cmd *qc);
1595extern void ata_sff_error_handler(struct ata_port *ap); 1602extern void ata_sff_error_handler(struct ata_port *ap);
1596extern void ata_sff_post_internal_cmd(struct ata_queued_cmd *qc); 1603extern void ata_sff_post_internal_cmd(struct ata_queued_cmd *qc);
1597extern int ata_sff_port_start(struct ata_port *ap); 1604extern int ata_sff_port_start(struct ata_port *ap);
1605extern int ata_sff_port_start32(struct ata_port *ap);
1598extern void ata_sff_std_ports(struct ata_ioports *ioaddr); 1606extern void ata_sff_std_ports(struct ata_ioports *ioaddr);
1599extern unsigned long ata_bmdma_mode_filter(struct ata_device *dev, 1607extern unsigned long ata_bmdma_mode_filter(struct ata_device *dev,
1600 unsigned long xfer_mask); 1608 unsigned long xfer_mask);
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index 18146c980b68..25b9ca93d232 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -56,7 +56,7 @@ extern void mem_cgroup_move_lists(struct page *page,
56 enum lru_list from, enum lru_list to); 56 enum lru_list from, enum lru_list to);
57extern void mem_cgroup_uncharge_page(struct page *page); 57extern void mem_cgroup_uncharge_page(struct page *page);
58extern void mem_cgroup_uncharge_cache_page(struct page *page); 58extern void mem_cgroup_uncharge_cache_page(struct page *page);
59extern int mem_cgroup_shrink_usage(struct page *page, 59extern int mem_cgroup_shmem_charge_fallback(struct page *page,
60 struct mm_struct *mm, gfp_t gfp_mask); 60 struct mm_struct *mm, gfp_t gfp_mask);
61 61
62extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, 62extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
@@ -75,7 +75,7 @@ int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
75{ 75{
76 struct mem_cgroup *mem; 76 struct mem_cgroup *mem;
77 rcu_read_lock(); 77 rcu_read_lock();
78 mem = mem_cgroup_from_task((mm)->owner); 78 mem = mem_cgroup_from_task(rcu_dereference((mm)->owner));
79 rcu_read_unlock(); 79 rcu_read_unlock();
80 return cgroup == mem; 80 return cgroup == mem;
81} 81}
@@ -155,7 +155,7 @@ static inline void mem_cgroup_uncharge_cache_page(struct page *page)
155{ 155{
156} 156}
157 157
158static inline int mem_cgroup_shrink_usage(struct page *page, 158static inline int mem_cgroup_shmem_charge_fallback(struct page *page,
159 struct mm_struct *mm, gfp_t gfp_mask) 159 struct mm_struct *mm, gfp_t gfp_mask)
160{ 160{
161 return 0; 161 return 0;
diff --git a/include/linux/mman.h b/include/linux/mman.h
index 30d1073bac3b..9872d6ca58ae 100644
--- a/include/linux/mman.h
+++ b/include/linux/mman.h
@@ -12,21 +12,18 @@
12 12
13#ifdef __KERNEL__ 13#ifdef __KERNEL__
14#include <linux/mm.h> 14#include <linux/mm.h>
15#include <linux/percpu_counter.h>
15 16
16#include <asm/atomic.h> 17#include <asm/atomic.h>
17 18
18extern int sysctl_overcommit_memory; 19extern int sysctl_overcommit_memory;
19extern int sysctl_overcommit_ratio; 20extern int sysctl_overcommit_ratio;
20extern atomic_long_t vm_committed_space; 21extern struct percpu_counter vm_committed_as;
21 22
22#ifdef CONFIG_SMP
23extern void vm_acct_memory(long pages);
24#else
25static inline void vm_acct_memory(long pages) 23static inline void vm_acct_memory(long pages)
26{ 24{
27 atomic_long_add(pages, &vm_committed_space); 25 percpu_counter_add(&vm_committed_as, pages);
28} 26}
29#endif
30 27
31static inline void vm_unacct_memory(long pages) 28static inline void vm_unacct_memory(long pages)
32{ 29{
diff --git a/include/linux/namei.h b/include/linux/namei.h
index fc2e03579877..518098fe63af 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -69,7 +69,6 @@ extern int path_lookup(const char *, unsigned, struct nameidata *);
69extern int vfs_path_lookup(struct dentry *, struct vfsmount *, 69extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
70 const char *, unsigned int, struct nameidata *); 70 const char *, unsigned int, struct nameidata *);
71 71
72extern int path_lookup_open(int dfd, const char *name, unsigned lookup_flags, struct nameidata *, int open_flags);
73extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, 72extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
74 int (*open)(struct inode *, struct file *)); 73 int (*open)(struct inode *, struct file *));
75extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); 74extern struct file *nameidata_to_filp(struct nameidata *nd, int flags);
diff --git a/include/linux/nls.h b/include/linux/nls.h
index 6a882208301a..52b1a76c1b43 100644
--- a/include/linux/nls.h
+++ b/include/linux/nls.h
@@ -58,6 +58,25 @@ static inline int nls_strnicmp(struct nls_table *t, const unsigned char *s1,
58 return 0; 58 return 0;
59} 59}
60 60
61/*
62 * nls_nullsize - return length of null character for codepage
63 * @codepage - codepage for which to return length of NULL terminator
64 *
65 * Since we can't guarantee that the null terminator will be a particular
66 * length, we have to check against the codepage. If there's a problem
67 * determining it, assume a single-byte NULL terminator.
68 */
69static inline int
70nls_nullsize(const struct nls_table *codepage)
71{
72 int charlen;
73 char tmp[NLS_MAX_CHARSET_SIZE];
74
75 charlen = codepage->uni2char(0, tmp, NLS_MAX_CHARSET_SIZE);
76
77 return charlen > 0 ? charlen : 1;
78}
79
61#define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name)) 80#define MODULE_ALIAS_NLS(name) MODULE_ALIAS("nls_" __stringify(name))
62 81
63#endif /* _LINUX_NLS_H */ 82#endif /* _LINUX_NLS_H */
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index 3d327b67d7e2..908406651330 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -51,6 +51,16 @@ extern int of_register_driver(struct of_platform_driver *drv,
51 struct bus_type *bus); 51 struct bus_type *bus);
52extern void of_unregister_driver(struct of_platform_driver *drv); 52extern void of_unregister_driver(struct of_platform_driver *drv);
53 53
54/* Platform drivers register/unregister */
55static inline int of_register_platform_driver(struct of_platform_driver *drv)
56{
57 return of_register_driver(drv, &of_platform_bus_type);
58}
59static inline void of_unregister_platform_driver(struct of_platform_driver *drv)
60{
61 of_unregister_driver(drv);
62}
63
54#include <asm/of_platform.h> 64#include <asm/of_platform.h>
55 65
56extern struct of_device *of_find_device_by_node(struct device_node *np); 66extern struct of_device *of_find_device_by_node(struct device_node *np);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index ea061e290d02..3038ac25491f 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2516,6 +2516,8 @@
2516#define PCI_DEVICE_ID_INTEL_IOAT_TBG3 0x3433 2516#define PCI_DEVICE_ID_INTEL_IOAT_TBG3 0x3433
2517#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 2517#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575
2518#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 2518#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577
2519#define PCI_DEVICE_ID_INTEL_82854_HB 0x358c
2520#define PCI_DEVICE_ID_INTEL_82854_IG 0x358e
2519#define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 2521#define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580
2520#define PCI_DEVICE_ID_INTEL_82855GM_IG 0x3582 2522#define PCI_DEVICE_ID_INTEL_82855GM_IG 0x3582
2521#define PCI_DEVICE_ID_INTEL_E7520_MCH 0x3590 2523#define PCI_DEVICE_ID_INTEL_E7520_MCH 0x3590
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
index e4d08c1b2e0b..616bf8b3c8b5 100644
--- a/include/linux/pci_regs.h
+++ b/include/linux/pci_regs.h
@@ -376,6 +376,7 @@
376#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */ 376#define PCI_EXP_TYPE_DOWNSTREAM 0x6 /* Downstream Port */
377#define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */ 377#define PCI_EXP_TYPE_PCI_BRIDGE 0x7 /* PCI/PCI-X Bridge */
378#define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */ 378#define PCI_EXP_TYPE_RC_END 0x9 /* Root Complex Integrated Endpoint */
379#define PCI_EXP_TYPE_RC_EC 0x10 /* Root Complex Event Collector */
379#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ 380#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */
380#define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ 381#define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */
381#define PCI_EXP_DEVCAP 4 /* Device capabilities */ 382#define PCI_EXP_DEVCAP 4 /* Device capabilities */
diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h
new file mode 100644
index 000000000000..8f921d74f49f
--- /dev/null
+++ b/include/linux/percpu-defs.h
@@ -0,0 +1,84 @@
1#ifndef _LINUX_PERCPU_DEFS_H
2#define _LINUX_PERCPU_DEFS_H
3
4/*
5 * Determine the real variable name from the name visible in the
6 * kernel sources.
7 */
8#define per_cpu_var(var) per_cpu__##var
9
10/*
11 * Base implementations of per-CPU variable declarations and definitions, where
12 * the section in which the variable is to be placed is provided by the
13 * 'section' argument. This may be used to affect the parameters governing the
14 * variable's storage.
15 *
16 * NOTE! The sections for the DECLARE and for the DEFINE must match, lest
17 * linkage errors occur due the compiler generating the wrong code to access
18 * that section.
19 */
20#define DECLARE_PER_CPU_SECTION(type, name, section) \
21 extern \
22 __attribute__((__section__(PER_CPU_BASE_SECTION section))) \
23 PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
24
25#define DEFINE_PER_CPU_SECTION(type, name, section) \
26 __attribute__((__section__(PER_CPU_BASE_SECTION section))) \
27 PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
28
29/*
30 * Variant on the per-CPU variable declaration/definition theme used for
31 * ordinary per-CPU variables.
32 */
33#define DECLARE_PER_CPU(type, name) \
34 DECLARE_PER_CPU_SECTION(type, name, "")
35
36#define DEFINE_PER_CPU(type, name) \
37 DEFINE_PER_CPU_SECTION(type, name, "")
38
39/*
40 * Declaration/definition used for per-CPU variables that must come first in
41 * the set of variables.
42 */
43#define DECLARE_PER_CPU_FIRST(type, name) \
44 DECLARE_PER_CPU_SECTION(type, name, PER_CPU_FIRST_SECTION)
45
46#define DEFINE_PER_CPU_FIRST(type, name) \
47 DEFINE_PER_CPU_SECTION(type, name, PER_CPU_FIRST_SECTION)
48
49/*
50 * Declaration/definition used for per-CPU variables that must be cacheline
51 * aligned under SMP conditions so that, whilst a particular instance of the
52 * data corresponds to a particular CPU, inefficiencies due to direct access by
53 * other CPUs are reduced by preventing the data from unnecessarily spanning
54 * cachelines.
55 *
56 * An example of this would be statistical data, where each CPU's set of data
57 * is updated by that CPU alone, but the data from across all CPUs is collated
58 * by a CPU processing a read from a proc file.
59 */
60#define DECLARE_PER_CPU_SHARED_ALIGNED(type, name) \
61 DECLARE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
62 ____cacheline_aligned_in_smp
63
64#define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \
65 DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
66 ____cacheline_aligned_in_smp
67
68/*
69 * Declaration/definition used for per-CPU variables that must be page aligned.
70 */
71#define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \
72 DECLARE_PER_CPU_SECTION(type, name, ".page_aligned")
73
74#define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \
75 DEFINE_PER_CPU_SECTION(type, name, ".page_aligned")
76
77/*
78 * Intermodule exports for per-CPU variables.
79 */
80#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
81#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
82
83
84#endif /* _LINUX_PERCPU_DEFS_H */
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index cfda2d5ad319..1581ff235c7e 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -9,50 +9,6 @@
9 9
10#include <asm/percpu.h> 10#include <asm/percpu.h>
11 11
12#ifndef PER_CPU_BASE_SECTION
13#ifdef CONFIG_SMP
14#define PER_CPU_BASE_SECTION ".data.percpu"
15#else
16#define PER_CPU_BASE_SECTION ".data"
17#endif
18#endif
19
20#ifdef CONFIG_SMP
21
22#ifdef MODULE
23#define PER_CPU_SHARED_ALIGNED_SECTION ""
24#else
25#define PER_CPU_SHARED_ALIGNED_SECTION ".shared_aligned"
26#endif
27#define PER_CPU_FIRST_SECTION ".first"
28
29#else
30
31#define PER_CPU_SHARED_ALIGNED_SECTION ""
32#define PER_CPU_FIRST_SECTION ""
33
34#endif
35
36#define DEFINE_PER_CPU_SECTION(type, name, section) \
37 __attribute__((__section__(PER_CPU_BASE_SECTION section))) \
38 PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
39
40#define DEFINE_PER_CPU(type, name) \
41 DEFINE_PER_CPU_SECTION(type, name, "")
42
43#define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \
44 DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \
45 ____cacheline_aligned_in_smp
46
47#define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \
48 DEFINE_PER_CPU_SECTION(type, name, ".page_aligned")
49
50#define DEFINE_PER_CPU_FIRST(type, name) \
51 DEFINE_PER_CPU_SECTION(type, name, PER_CPU_FIRST_SECTION)
52
53#define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var)
54#define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var)
55
56/* enough to cover all DEFINE_PER_CPUs in modules */ 12/* enough to cover all DEFINE_PER_CPUs in modules */
57#ifdef CONFIG_MODULES 13#ifdef CONFIG_MODULES
58#define PERCPU_MODULE_RESERVE (8 << 10) 14#define PERCPU_MODULE_RESERVE (8 << 10)
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 8e4120285f72..c8f038554e80 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -134,6 +134,11 @@ struct pipe_buf_operations {
134 memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ 134 memory allocation, whereas PIPE_BUF makes atomicity guarantees. */
135#define PIPE_SIZE PAGE_SIZE 135#define PIPE_SIZE PAGE_SIZE
136 136
137/* Pipe lock and unlock operations */
138void pipe_lock(struct pipe_inode_info *);
139void pipe_unlock(struct pipe_inode_info *);
140void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *);
141
137/* Drop the inode semaphore and wait for a pipe event, atomically */ 142/* Drop the inode semaphore and wait for a pipe event, atomically */
138void pipe_wait(struct pipe_inode_info *pipe); 143void pipe_wait(struct pipe_inode_info *pipe);
139 144
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h
index 04b4d7330e6d..d745f5b6c7b0 100644
--- a/include/linux/pktcdvd.h
+++ b/include/linux/pktcdvd.h
@@ -113,6 +113,7 @@ struct pkt_ctrl_command {
113#include <linux/cdrom.h> 113#include <linux/cdrom.h>
114#include <linux/kobject.h> 114#include <linux/kobject.h>
115#include <linux/sysfs.h> 115#include <linux/sysfs.h>
116#include <linux/mempool.h>
116 117
117/* default bio write queue congestion marks */ 118/* default bio write queue congestion marks */
118#define PKT_WRITE_CONGESTION_ON 10000 119#define PKT_WRITE_CONGESTION_ON 10000
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 76e470a299bf..b67bb5d7b221 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -20,7 +20,6 @@ struct platform_device {
20 struct device dev; 20 struct device dev;
21 u32 num_resources; 21 u32 num_resources;
22 struct resource * resource; 22 struct resource * resource;
23 void *platform_data;
24 23
25 struct platform_device_id *id_entry; 24 struct platform_device_id *id_entry;
26}; 25};
@@ -77,4 +76,46 @@ extern int platform_driver_probe(struct platform_driver *driver,
77#define platform_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev) 76#define platform_get_drvdata(_dev) dev_get_drvdata(&(_dev)->dev)
78#define platform_set_drvdata(_dev,data) dev_set_drvdata(&(_dev)->dev, (data)) 77#define platform_set_drvdata(_dev,data) dev_set_drvdata(&(_dev)->dev, (data))
79 78
79/* early platform driver interface */
80struct early_platform_driver {
81 const char *class_str;
82 struct platform_driver *pdrv;
83 struct list_head list;
84 int requested_id;
85};
86
87#define EARLY_PLATFORM_ID_UNSET -2
88#define EARLY_PLATFORM_ID_ERROR -3
89
90extern int early_platform_driver_register(struct early_platform_driver *epdrv,
91 char *buf);
92extern void early_platform_add_devices(struct platform_device **devs, int num);
93
94static inline int is_early_platform_device(struct platform_device *pdev)
95{
96 return !pdev->dev.driver;
97}
98
99extern void early_platform_driver_register_all(char *class_str);
100extern int early_platform_driver_probe(char *class_str,
101 int nr_probe, int user_only);
102extern void early_platform_cleanup(void);
103
104
105#ifndef MODULE
106#define early_platform_init(class_string, platform_driver) \
107static __initdata struct early_platform_driver early_driver = { \
108 .class_str = class_string, \
109 .pdrv = platform_driver, \
110 .requested_id = EARLY_PLATFORM_ID_UNSET, \
111}; \
112static int __init early_platform_driver_setup_func(char *buf) \
113{ \
114 return early_platform_driver_register(&early_driver, buf); \
115} \
116early_param(class_string, early_platform_driver_setup_func)
117#else /* MODULE */
118#define early_platform_init(class_string, platform_driver)
119#endif /* MODULE */
120
80#endif /* _PLATFORM_DEVICE_H_ */ 121#endif /* _PLATFORM_DEVICE_H_ */
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index 0cdda00f2b2a..58b2aa5312b9 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -161,9 +161,8 @@ struct rcu_data {
161 unsigned long offline_fqs; /* Kicked due to being offline. */ 161 unsigned long offline_fqs; /* Kicked due to being offline. */
162 unsigned long resched_ipi; /* Sent a resched IPI. */ 162 unsigned long resched_ipi; /* Sent a resched IPI. */
163 163
164 /* 5) state to allow this CPU to force_quiescent_state on others */ 164 /* 5) For future __rcu_pending statistics. */
165 long n_rcu_pending; /* rcu_pending() calls since boot. */ 165 long n_rcu_pending; /* rcu_pending() calls since boot. */
166 long n_rcu_pending_force_qs; /* when to force quiescent states. */
167 166
168 int cpu; 167 int cpu;
169}; 168};
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
index 4848d8dacd90..225f733e7533 100644
--- a/include/linux/regulator/driver.h
+++ b/include/linux/regulator/driver.h
@@ -50,6 +50,7 @@ enum regulator_status {
50 * @set_current_limit: Configure a limit for a current-limited regulator. 50 * @set_current_limit: Configure a limit for a current-limited regulator.
51 * @get_current_limit: Get the configured limit for a current-limited regulator. 51 * @get_current_limit: Get the configured limit for a current-limited regulator.
52 * 52 *
53 * @set_mode: Set the configured operating mode for the regulator.
53 * @get_mode: Get the configured operating mode for the regulator. 54 * @get_mode: Get the configured operating mode for the regulator.
54 * @get_status: Return actual (not as-configured) status of regulator, as a 55 * @get_status: Return actual (not as-configured) status of regulator, as a
55 * REGULATOR_STATUS value (or negative errno) 56 * REGULATOR_STATUS value (or negative errno)
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
index 5621d87c4479..6473650c28f1 100644
--- a/include/linux/reiserfs_fs_sb.h
+++ b/include/linux/reiserfs_fs_sb.h
@@ -193,7 +193,7 @@ struct reiserfs_journal {
193 atomic_t j_wcount; /* count of writers for current commit */ 193 atomic_t j_wcount; /* count of writers for current commit */
194 unsigned long j_bcount; /* batch count. allows turning X transactions into 1 */ 194 unsigned long j_bcount; /* batch count. allows turning X transactions into 1 */
195 unsigned long j_first_unflushed_offset; /* first unflushed transactions offset */ 195 unsigned long j_first_unflushed_offset; /* first unflushed transactions offset */
196 unsigned long j_last_flush_trans_id; /* last fully flushed journal timestamp */ 196 unsigned j_last_flush_trans_id; /* last fully flushed journal timestamp */
197 struct buffer_head *j_header_bh; 197 struct buffer_head *j_header_bh;
198 198
199 time_t j_trans_start_time; /* time this transaction started */ 199 time_t j_trans_start_time; /* time this transaction started */
@@ -402,7 +402,7 @@ struct reiserfs_sb_info {
402 int reserved_blocks; /* amount of blocks reserved for further allocations */ 402 int reserved_blocks; /* amount of blocks reserved for further allocations */
403 spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */ 403 spinlock_t bitmap_lock; /* this lock on now only used to protect reserved_blocks variable */
404 struct dentry *priv_root; /* root of /.reiserfs_priv */ 404 struct dentry *priv_root; /* root of /.reiserfs_priv */
405 struct dentry *xattr_root; /* root of /.reiserfs_priv/.xa */ 405 struct dentry *xattr_root; /* root of /.reiserfs_priv/xattrs */
406 int j_errno; 406 int j_errno;
407#ifdef CONFIG_QUOTA 407#ifdef CONFIG_QUOTA
408 char *s_qf_names[MAXQUOTAS]; 408 char *s_qf_names[MAXQUOTAS];
@@ -488,7 +488,6 @@ enum reiserfs_mount_options {
488#define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG)) 488#define reiserfs_data_log(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_LOG))
489#define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED)) 489#define reiserfs_data_ordered(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_ORDERED))
490#define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK)) 490#define reiserfs_data_writeback(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_DATA_WRITEBACK))
491#define reiserfs_xattrs(s) ((s)->s_xattr != NULL)
492#define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER)) 491#define reiserfs_xattrs_user(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_XATTRS_USER))
493#define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL)) 492#define reiserfs_posixacl(s) (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_POSIXACL))
494#define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s)) 493#define reiserfs_xattrs_optional(s) (reiserfs_xattrs_user(s) || reiserfs_posixacl(s))
diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h
index dcae01e63e40..cdedc01036e4 100644
--- a/include/linux/reiserfs_xattr.h
+++ b/include/linux/reiserfs_xattr.h
@@ -38,6 +38,7 @@ struct nameidata;
38int reiserfs_xattr_register_handlers(void) __init; 38int reiserfs_xattr_register_handlers(void) __init;
39void reiserfs_xattr_unregister_handlers(void); 39void reiserfs_xattr_unregister_handlers(void);
40int reiserfs_xattr_init(struct super_block *sb, int mount_flags); 40int reiserfs_xattr_init(struct super_block *sb, int mount_flags);
41int reiserfs_lookup_privroot(struct super_block *sb);
41int reiserfs_delete_xattrs(struct inode *inode); 42int reiserfs_delete_xattrs(struct inode *inode);
42int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs); 43int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs);
43 44
@@ -97,7 +98,7 @@ static inline size_t reiserfs_xattr_jcreate_nblocks(struct inode *inode)
97 98
98 if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) { 99 if ((REISERFS_I(inode)->i_flags & i_has_xattr_dir) == 0) {
99 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); 100 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb);
100 if (REISERFS_SB(inode->i_sb)->xattr_root == NULL) 101 if (!REISERFS_SB(inode->i_sb)->xattr_root->d_inode)
101 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb); 102 nblocks += JOURNAL_BLOCKS_PER_OBJECT(inode->i_sb);
102 } 103 }
103 104
diff --git a/include/linux/romfs_fs.h b/include/linux/romfs_fs.h
index e20bbf9eb365..c490fbc43fe2 100644
--- a/include/linux/romfs_fs.h
+++ b/include/linux/romfs_fs.h
@@ -53,9 +53,4 @@ struct romfs_inode {
53#define ROMFH_PAD (ROMFH_SIZE-1) 53#define ROMFH_PAD (ROMFH_SIZE-1)
54#define ROMFH_MASK (~ROMFH_PAD) 54#define ROMFH_MASK (~ROMFH_PAD)
55 55
56#ifdef __KERNEL__
57
58/* Not much now */
59
60#endif /* __KERNEL__ */
61#endif 56#endif
diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h
index 262a8dccfa81..167c33361d9c 100644
--- a/include/linux/seccomp.h
+++ b/include/linux/seccomp.h
@@ -21,6 +21,8 @@ extern long prctl_set_seccomp(unsigned long);
21 21
22#else /* CONFIG_SECCOMP */ 22#else /* CONFIG_SECCOMP */
23 23
24#include <linux/errno.h>
25
24typedef struct { } seccomp_t; 26typedef struct { } seccomp_t;
25 27
26#define secure_computing(x) do { } while (0) 28#define secure_computing(x) do { } while (0)
diff --git a/include/linux/section-names.h b/include/linux/section-names.h
new file mode 100644
index 000000000000..c956f4eb2adf
--- /dev/null
+++ b/include/linux/section-names.h
@@ -0,0 +1,6 @@
1#ifndef __LINUX_SECTION_NAMES_H
2#define __LINUX_SECTION_NAMES_H
3
4#define HEAD_TEXT_SECTION .head.text
5
6#endif /* !__LINUX_SECTION_NAMES_H */
diff --git a/include/linux/sht15.h b/include/linux/sht15.h
new file mode 100644
index 000000000000..046bce05ecab
--- /dev/null
+++ b/include/linux/sht15.h
@@ -0,0 +1,24 @@
1/*
2 * sht15.h - support for the SHT15 Temperature and Humidity Sensor
3 *
4 * Copyright (c) 2009 Jonathan Cameron
5 *
6 * Copyright (c) 2007 Wouter Horre
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13/**
14 * struct sht15_platform_data - sht15 connectivity info
15 * @gpio_data: no. of gpio to which bidirectional data line is connected
16 * @gpio_sck: no. of gpio to which the data clock is connected.
17 * @supply_mv: supply voltage in mv. Overridden by regulator if available.
18 **/
19struct sht15_platform_data {
20 int gpio_data;
21 int gpio_sck;
22 int supply_mv;
23};
24
diff --git a/include/linux/slow-work.h b/include/linux/slow-work.h
index 85958277f83d..b65c8881f07a 100644
--- a/include/linux/slow-work.h
+++ b/include/linux/slow-work.h
@@ -67,7 +67,7 @@ static inline void slow_work_init(struct slow_work *work,
67} 67}
68 68
69/** 69/**
70 * slow_work_init - Initialise a very slow work item 70 * vslow_work_init - Initialise a very slow work item
71 * @work: The work item to initialise 71 * @work: The work item to initialise
72 * @ops: The operations to use to handle the slow work item 72 * @ops: The operations to use to handle the slow work item
73 * 73 *
diff --git a/include/linux/spi/ads7846.h b/include/linux/spi/ads7846.h
index 05eab2f11e63..2ea20320c093 100644
--- a/include/linux/spi/ads7846.h
+++ b/include/linux/spi/ads7846.h
@@ -51,5 +51,6 @@ struct ads7846_platform_data {
51 void **filter_data); 51 void **filter_data);
52 int (*filter) (void *filter_data, int data_idx, int *val); 52 int (*filter) (void *filter_data, int data_idx, int *val);
53 void (*filter_cleanup)(void *filter_data); 53 void (*filter_cleanup)(void *filter_data);
54 void (*wait_for_sync)(void);
54}; 55};
55 56
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index 2cc43fa380cb..a0faa18f7b1b 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -245,7 +245,12 @@ struct spi_master {
245 */ 245 */
246 u16 dma_alignment; 246 u16 dma_alignment;
247 247
248 /* setup mode and clock, etc (spi driver may call many times) */ 248 /* Setup mode and clock, etc (spi driver may call many times).
249 *
250 * IMPORTANT: this may be called when transfers to another
251 * device are active. DO NOT UPDATE SHARED REGISTERS in ways
252 * which could break those transfers.
253 */
249 int (*setup)(struct spi_device *spi); 254 int (*setup)(struct spi_device *spi);
250 255
251 /* bidirectional bulk transfers 256 /* bidirectional bulk transfers
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 528dcb93c2f2..5f3faa9d15ae 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -36,6 +36,8 @@ struct splice_desc {
36 void *data; /* cookie */ 36 void *data; /* cookie */
37 } u; 37 } u;
38 loff_t pos; /* file position */ 38 loff_t pos; /* file position */
39 size_t num_spliced; /* number of bytes already spliced */
40 bool need_wakeup; /* need to wake up writer */
39}; 41};
40 42
41struct partial_page { 43struct partial_page {
@@ -66,6 +68,16 @@ extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *,
66 splice_actor *); 68 splice_actor *);
67extern ssize_t __splice_from_pipe(struct pipe_inode_info *, 69extern ssize_t __splice_from_pipe(struct pipe_inode_info *,
68 struct splice_desc *, splice_actor *); 70 struct splice_desc *, splice_actor *);
71extern int splice_from_pipe_feed(struct pipe_inode_info *, struct splice_desc *,
72 splice_actor *);
73extern int splice_from_pipe_next(struct pipe_inode_info *,
74 struct splice_desc *);
75extern void splice_from_pipe_begin(struct splice_desc *);
76extern void splice_from_pipe_end(struct pipe_inode_info *,
77 struct splice_desc *);
78extern int pipe_to_file(struct pipe_inode_info *, struct pipe_buffer *,
79 struct splice_desc *);
80
69extern ssize_t splice_to_pipe(struct pipe_inode_info *, 81extern ssize_t splice_to_pipe(struct pipe_inode_info *,
70 struct splice_pipe_desc *); 82 struct splice_pipe_desc *);
71extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, 83extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
index 1758d9f5b5c3..08afe43118f4 100644
--- a/include/linux/sunrpc/xprt.h
+++ b/include/linux/sunrpc/xprt.h
@@ -261,6 +261,7 @@ void xprt_conditional_disconnect(struct rpc_xprt *xprt, unsigned int cookie);
261#define XPRT_BINDING (5) 261#define XPRT_BINDING (5)
262#define XPRT_CLOSING (6) 262#define XPRT_CLOSING (6)
263#define XPRT_CONNECTION_ABORT (7) 263#define XPRT_CONNECTION_ABORT (7)
264#define XPRT_CONNECTION_CLOSE (8)
264 265
265static inline void xprt_set_connected(struct rpc_xprt *xprt) 266static inline void xprt_set_connected(struct rpc_xprt *xprt)
266{ 267{
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 3e3a4364cbff..795032edfc46 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -58,10 +58,17 @@ typedef int __bitwise suspend_state_t;
58 * by @begin(). 58 * by @begin().
59 * @prepare() is called right after devices have been suspended (ie. the 59 * @prepare() is called right after devices have been suspended (ie. the
60 * appropriate .suspend() method has been executed for each device) and 60 * appropriate .suspend() method has been executed for each device) and
61 * before the nonboot CPUs are disabled (it is executed with IRQs enabled). 61 * before device drivers' late suspend callbacks are executed. It returns
62 * This callback is optional. It returns 0 on success or a negative 62 * 0 on success or a negative error code otherwise, in which case the
63 * error code otherwise, in which case the system cannot enter the desired 63 * system cannot enter the desired sleep state (@prepare_late(), @enter(),
64 * sleep state (@enter() and @finish() will not be called in that case). 64 * @wake(), and @finish() will not be called in that case).
65 *
66 * @prepare_late: Finish preparing the platform for entering the system sleep
67 * state indicated by @begin().
68 * @prepare_late is called before disabling nonboot CPUs and after
69 * device drivers' late suspend callbacks have been executed. It returns
70 * 0 on success or a negative error code otherwise, in which case the
71 * system cannot enter the desired sleep state (@enter() and @wake()).
65 * 72 *
66 * @enter: Enter the system sleep state indicated by @begin() or represented by 73 * @enter: Enter the system sleep state indicated by @begin() or represented by
67 * the argument if @begin() is not implemented. 74 * the argument if @begin() is not implemented.
@@ -69,19 +76,26 @@ typedef int __bitwise suspend_state_t;
69 * error code otherwise, in which case the system cannot enter the desired 76 * error code otherwise, in which case the system cannot enter the desired
70 * sleep state. 77 * sleep state.
71 * 78 *
72 * @finish: Called when the system has just left a sleep state, right after 79 * @wake: Called when the system has just left a sleep state, right after
73 * the nonboot CPUs have been enabled and before devices are resumed (it is 80 * the nonboot CPUs have been enabled and before device drivers' early
74 * executed with IRQs enabled). 81 * resume callbacks are executed.
82 * This callback is optional, but should be implemented by the platforms
83 * that implement @prepare_late(). If implemented, it is always called
84 * after @enter(), even if @enter() fails.
85 *
86 * @finish: Finish wake-up of the platform.
87 * @finish is called right prior to calling device drivers' regular suspend
88 * callbacks.
75 * This callback is optional, but should be implemented by the platforms 89 * This callback is optional, but should be implemented by the platforms
76 * that implement @prepare(). If implemented, it is always called after 90 * that implement @prepare(). If implemented, it is always called after
77 * @enter() (even if @enter() fails). 91 * @enter() and @wake(), if implemented, even if any of them fails.
78 * 92 *
79 * @end: Called by the PM core right after resuming devices, to indicate to 93 * @end: Called by the PM core right after resuming devices, to indicate to
80 * the platform that the system has returned to the working state or 94 * the platform that the system has returned to the working state or
81 * the transition to the sleep state has been aborted. 95 * the transition to the sleep state has been aborted.
82 * This callback is optional, but should be implemented by the platforms 96 * This callback is optional, but should be implemented by the platforms
83 * that implement @begin(), but platforms implementing @begin() should 97 * that implement @begin(). Accordingly, platforms implementing @begin()
84 * also provide a @end() which cleans up transitions aborted before 98 * should also provide a @end() which cleans up transitions aborted before
85 * @enter(). 99 * @enter().
86 * 100 *
87 * @recover: Recover the platform from a suspend failure. 101 * @recover: Recover the platform from a suspend failure.
@@ -93,7 +107,9 @@ struct platform_suspend_ops {
93 int (*valid)(suspend_state_t state); 107 int (*valid)(suspend_state_t state);
94 int (*begin)(suspend_state_t state); 108 int (*begin)(suspend_state_t state);
95 int (*prepare)(void); 109 int (*prepare)(void);
110 int (*prepare_late)(void);
96 int (*enter)(suspend_state_t state); 111 int (*enter)(suspend_state_t state);
112 void (*wake)(void);
97 void (*finish)(void); 113 void (*finish)(void);
98 void (*end)(void); 114 void (*end)(void);
99 void (*recover)(void); 115 void (*recover)(void);
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index dabe4ad89141..30520844b8da 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -148,7 +148,7 @@ struct old_linux_dirent;
148 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ 148 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
149 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) 149 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
150#else 150#else
151#ifdef CONFIG_ALPHA 151#if defined(CONFIG_ALPHA) || defined(CONFIG_MIPS)
152#define SYSCALL_ALIAS(alias, name) \ 152#define SYSCALL_ALIAS(alias, name) \
153 asm ( #alias " = " #name "\n\t.globl " #alias) 153 asm ( #alias " = " #name "\n\t.globl " #alias)
154#else 154#else
@@ -433,6 +433,7 @@ asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
433asmlinkage long sys_fcntl64(unsigned int fd, 433asmlinkage long sys_fcntl64(unsigned int fd,
434 unsigned int cmd, unsigned long arg); 434 unsigned int cmd, unsigned long arg);
435#endif 435#endif
436asmlinkage long sys_pipe2(int __user *fildes, int flags);
436asmlinkage long sys_dup(unsigned int fildes); 437asmlinkage long sys_dup(unsigned int fildes);
437asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd); 438asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
438asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags); 439asmlinkage long sys_dup3(unsigned int oldfd, unsigned int newfd, int flags);
diff --git a/include/linux/usb.h b/include/linux/usb.h
index c6b2ab41b908..3aa2cd1f8d08 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -1387,6 +1387,7 @@ extern int usb_string(struct usb_device *dev, int index,
1387extern int usb_clear_halt(struct usb_device *dev, int pipe); 1387extern int usb_clear_halt(struct usb_device *dev, int pipe);
1388extern int usb_reset_configuration(struct usb_device *dev); 1388extern int usb_reset_configuration(struct usb_device *dev);
1389extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate); 1389extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
1390extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);
1390 1391
1391/* this request isn't really synchronous, but it belongs with the others */ 1392/* this request isn't really synchronous, but it belongs with the others */
1392extern int usb_driver_set_configuration(struct usb_device *udev, int config); 1393extern int usb_driver_set_configuration(struct usb_device *udev, int config);
@@ -1491,14 +1492,6 @@ void usb_sg_wait(struct usb_sg_request *io);
1491#define usb_pipecontrol(pipe) (usb_pipetype((pipe)) == PIPE_CONTROL) 1492#define usb_pipecontrol(pipe) (usb_pipetype((pipe)) == PIPE_CONTROL)
1492#define usb_pipebulk(pipe) (usb_pipetype((pipe)) == PIPE_BULK) 1493#define usb_pipebulk(pipe) (usb_pipetype((pipe)) == PIPE_BULK)
1493 1494
1494/* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */
1495#define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1)
1496#define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep)))
1497#define usb_settoggle(dev, ep, out, bit) \
1498 ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \
1499 ((bit) << (ep)))
1500
1501
1502static inline unsigned int __create_pipe(struct usb_device *dev, 1495static inline unsigned int __create_pipe(struct usb_device *dev,
1503 unsigned int endpoint) 1496 unsigned int endpoint)
1504{ 1497{
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h
index d6aad0ea6033..d43755669261 100644
--- a/include/linux/usb/musb.h
+++ b/include/linux/usb/musb.h
@@ -7,6 +7,9 @@
7 * key configuration differences between boards. 7 * key configuration differences between boards.
8 */ 8 */
9 9
10#ifndef __LINUX_USB_MUSB_H
11#define __LINUX_USB_MUSB_H
12
10/* The USB role is defined by the connector used on the board, so long as 13/* The USB role is defined by the connector used on the board, so long as
11 * standards are being followed. (Developer boards sometimes won't.) 14 * standards are being followed. (Developer boards sometimes won't.)
12 */ 15 */
@@ -101,3 +104,5 @@ extern int __init tusb6010_setup_interface(
101extern int tusb6010_platform_retime(unsigned is_refclk); 104extern int tusb6010_platform_retime(unsigned is_refclk);
102 105
103#endif /* OMAP2 */ 106#endif /* OMAP2 */
107
108#endif /* __LINUX_USB_MUSB_H */
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index b95842542590..625e9e4639c6 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -29,7 +29,7 @@
29/** 29/**
30 * usb_serial_port: structure for the specific ports of a device. 30 * usb_serial_port: structure for the specific ports of a device.
31 * @serial: pointer back to the struct usb_serial owner of this port. 31 * @serial: pointer back to the struct usb_serial owner of this port.
32 * @tty: pointer to the corresponding tty for this port. 32 * @port: pointer to the corresponding tty_port for this port.
33 * @lock: spinlock to grab when updating portions of this structure. 33 * @lock: spinlock to grab when updating portions of this structure.
34 * @mutex: mutex used to synchronize serial_open() and serial_close() 34 * @mutex: mutex used to synchronize serial_open() and serial_close()
35 * access for this port. 35 * access for this port.
@@ -44,19 +44,22 @@
44 * @interrupt_out_endpointAddress: endpoint address for the interrupt out pipe 44 * @interrupt_out_endpointAddress: endpoint address for the interrupt out pipe
45 * for this port. 45 * for this port.
46 * @bulk_in_buffer: pointer to the bulk in buffer for this port. 46 * @bulk_in_buffer: pointer to the bulk in buffer for this port.
47 * @bulk_in_size: the size of the bulk_in_buffer, in bytes.
47 * @read_urb: pointer to the bulk in struct urb for this port. 48 * @read_urb: pointer to the bulk in struct urb for this port.
48 * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this 49 * @bulk_in_endpointAddress: endpoint address for the bulk in pipe for this
49 * port. 50 * port.
50 * @bulk_out_buffer: pointer to the bulk out buffer for this port. 51 * @bulk_out_buffer: pointer to the bulk out buffer for this port.
51 * @bulk_out_size: the size of the bulk_out_buffer, in bytes. 52 * @bulk_out_size: the size of the bulk_out_buffer, in bytes.
52 * @write_urb: pointer to the bulk out struct urb for this port. 53 * @write_urb: pointer to the bulk out struct urb for this port.
54 * @write_urb_busy: port`s writing status
53 * @bulk_out_endpointAddress: endpoint address for the bulk out pipe for this 55 * @bulk_out_endpointAddress: endpoint address for the bulk out pipe for this
54 * port. 56 * port.
55 * @write_wait: a wait_queue_head_t used by the port. 57 * @write_wait: a wait_queue_head_t used by the port.
56 * @work: work queue entry for the line discipline waking up. 58 * @work: work queue entry for the line discipline waking up.
57 * @open_count: number of times this port has been opened.
58 * @throttled: nonzero if the read urb is inactive to throttle the device 59 * @throttled: nonzero if the read urb is inactive to throttle the device
59 * @throttle_req: nonzero if the tty wants to throttle us 60 * @throttle_req: nonzero if the tty wants to throttle us
61 * @console: attached usb serial console
62 * @dev: pointer to the serial device
60 * 63 *
61 * This structure is used by the usb-serial core and drivers for the specific 64 * This structure is used by the usb-serial core and drivers for the specific
62 * ports of a device. 65 * ports of a device.
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index 9c1ed1fb6ddb..93445477f86a 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -168,8 +168,6 @@ void writeback_set_ratelimit(void);
168/* pdflush.c */ 168/* pdflush.c */
169extern int nr_pdflush_threads; /* Global so it can be exported to sysctl 169extern int nr_pdflush_threads; /* Global so it can be exported to sysctl
170 read-only. */ 170 read-only. */
171extern int nr_pdflush_threads_max; /* Global so it can be exported to sysctl */
172extern int nr_pdflush_threads_min; /* Global so it can be exported to sysctl */
173 171
174 172
175#endif /* WRITEBACK_H */ 173#endif /* WRITEBACK_H */
diff --git a/include/net/9p/client.h b/include/net/9p/client.h
index 4012e07162e5..e26812274b75 100644
--- a/include/net/9p/client.h
+++ b/include/net/9p/client.h
@@ -98,7 +98,6 @@ enum p9_req_status_t {
98struct p9_req_t { 98struct p9_req_t {
99 int status; 99 int status;
100 int t_err; 100 int t_err;
101 u16 flush_tag;
102 wait_queue_head_t *wq; 101 wait_queue_head_t *wq;
103 struct p9_fcall *tc; 102 struct p9_fcall *tc;
104 struct p9_fcall *rc; 103 struct p9_fcall *rc;
diff --git a/include/scsi/fc/fc_fs.h b/include/scsi/fc/fc_fs.h
index 1b7af3a64c7c..ac4cd38c860e 100644
--- a/include/scsi/fc/fc_fs.h
+++ b/include/scsi/fc/fc_fs.h
@@ -149,6 +149,7 @@ enum fc_rctl {
149 * Well-known fabric addresses. 149 * Well-known fabric addresses.
150 */ 150 */
151enum fc_well_known_fid { 151enum fc_well_known_fid {
152 FC_FID_NONE = 0x000000, /* No destination */
152 FC_FID_BCAST = 0xffffff, /* broadcast */ 153 FC_FID_BCAST = 0xffffff, /* broadcast */
153 FC_FID_FLOGI = 0xfffffe, /* fabric login */ 154 FC_FID_FLOGI = 0xfffffe, /* fabric login */
154 FC_FID_FCTRL = 0xfffffd, /* fabric controller */ 155 FC_FID_FCTRL = 0xfffffd, /* fabric controller */
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index 0303a6a098cc..45f9cc642c46 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -637,6 +637,7 @@ struct fc_disc {
637 enum fc_disc_event); 637 enum fc_disc_event);
638 638
639 struct list_head rports; 639 struct list_head rports;
640 struct list_head rogue_rports;
640 struct fc_lport *lport; 641 struct fc_lport *lport;
641 struct mutex disc_mutex; 642 struct mutex disc_mutex;
642 struct fc_gpn_ft_resp partial_buf; /* partial name buffer */ 643 struct fc_gpn_ft_resp partial_buf; /* partial name buffer */
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 7ffaed2f94dd..0289f5745fb9 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -36,6 +36,7 @@ struct scsi_transport_template;
36struct scsi_host_template; 36struct scsi_host_template;
37struct scsi_device; 37struct scsi_device;
38struct Scsi_Host; 38struct Scsi_Host;
39struct scsi_target;
39struct scsi_cmnd; 40struct scsi_cmnd;
40struct socket; 41struct socket;
41struct iscsi_transport; 42struct iscsi_transport;
@@ -350,6 +351,7 @@ extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht,
350 bool xmit_can_sleep); 351 bool xmit_can_sleep);
351extern void iscsi_host_remove(struct Scsi_Host *shost); 352extern void iscsi_host_remove(struct Scsi_Host *shost);
352extern void iscsi_host_free(struct Scsi_Host *shost); 353extern void iscsi_host_free(struct Scsi_Host *shost);
354extern int iscsi_target_alloc(struct scsi_target *starget);
353 355
354/* 356/*
355 * session management 357 * session management
diff --git a/include/scsi/osd_protocol.h b/include/scsi/osd_protocol.h
index cd3cbf764650..62b2ab8c69d4 100644
--- a/include/scsi/osd_protocol.h
+++ b/include/scsi/osd_protocol.h
@@ -24,17 +24,18 @@ enum {
24 OSDv1_ADDITIONAL_CDB_LENGTH = 192, 24 OSDv1_ADDITIONAL_CDB_LENGTH = 192,
25 OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8, 25 OSDv1_TOTAL_CDB_LEN = OSDv1_ADDITIONAL_CDB_LENGTH + 8,
26 OSDv1_CAP_LEN = 80, 26 OSDv1_CAP_LEN = 80,
27
27 /* Latest supported version */ 28 /* Latest supported version */
28/* OSD_ADDITIONAL_CDB_LENGTH = 216,*/ 29 OSDv2_ADDITIONAL_CDB_LENGTH = 228,
29 OSD_ADDITIONAL_CDB_LENGTH = 30 OSD_ADDITIONAL_CDB_LENGTH =
30 OSDv1_ADDITIONAL_CDB_LENGTH, /* FIXME: Pete rev-001 sup */ 31 OSDv2_ADDITIONAL_CDB_LENGTH,
31 OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8, 32 OSD_TOTAL_CDB_LEN = OSD_ADDITIONAL_CDB_LENGTH + 8,
32/* OSD_CAP_LEN = 104,*/ 33 OSD_CAP_LEN = 104,
33 OSD_CAP_LEN = OSDv1_CAP_LEN,/* FIXME: Pete rev-001 sup */
34 34
35 OSD_SYSTEMID_LEN = 20, 35 OSD_SYSTEMID_LEN = 20,
36 OSD_CRYPTO_KEYID_SIZE = 20, 36 OSDv1_CRYPTO_KEYID_SIZE = 20,
37 /*FIXME: OSDv2_CRYPTO_KEYID_SIZE = 32,*/ 37 OSDv2_CRYPTO_KEYID_SIZE = 32,
38 OSD_CRYPTO_KEYID_SIZE = OSDv2_CRYPTO_KEYID_SIZE,
38 OSD_CRYPTO_SEED_SIZE = 4, 39 OSD_CRYPTO_SEED_SIZE = 4,
39 OSD_CRYPTO_NONCE_SIZE = 12, 40 OSD_CRYPTO_NONCE_SIZE = 12,
40 OSD_MAX_SENSE_LEN = 252, /* from SPC-3 */ 41 OSD_MAX_SENSE_LEN = 252, /* from SPC-3 */
@@ -164,7 +165,11 @@ struct osd_cdb_head {
164 /* called allocation_length in some commands */ 165 /* called allocation_length in some commands */
165/*32*/ __be64 length; 166/*32*/ __be64 length;
166/*40*/ __be64 start_address; 167/*40*/ __be64 start_address;
167/*48*/ __be32 list_identifier;/* Rarely used */ 168 union {
169/*48*/ __be32 list_identifier;/* Rarely used */
170 /* OSD2r05 5.2.5 CDB continuation length */
171/*48*/ __be32 cdb_continuation_length;
172 };
168 } __packed v2; 173 } __packed v2;
169 }; 174 };
170/*52*/ union { /* selected attributes mode Page/List/Single */ 175/*52*/ union { /* selected attributes mode Page/List/Single */
@@ -204,29 +209,40 @@ struct osd_cdb_head {
204/*80*/ 209/*80*/
205 210
206/*160 v1*/ 211/*160 v1*/
207/*184 v2*/ 212struct osdv1_security_parameters {
208struct osd_security_parameters { 213/*160*/u8 integrity_check_value[OSDv1_CRYPTO_KEYID_SIZE];
209/*160*/u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
210/*180*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE]; 214/*180*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE];
211/*192*/osd_cdb_offset data_in_integrity_check_offset; 215/*192*/osd_cdb_offset data_in_integrity_check_offset;
212/*196*/osd_cdb_offset data_out_integrity_check_offset; 216/*196*/osd_cdb_offset data_out_integrity_check_offset;
213} __packed; 217} __packed;
214/*200 v1*/ 218/*200 v1*/
215/*224 v2*/
216 219
217/* FIXME: osdv2_security_parameters */ 220/*184 v2*/
221struct osdv2_security_parameters {
222/*184*/u8 integrity_check_value[OSDv2_CRYPTO_KEYID_SIZE];
223/*216*/u8 request_nonce[OSD_CRYPTO_NONCE_SIZE];
224/*228*/osd_cdb_offset data_in_integrity_check_offset;
225/*232*/osd_cdb_offset data_out_integrity_check_offset;
226} __packed;
227/*236 v2*/
228
229struct osd_security_parameters {
230 union {
231 struct osdv1_security_parameters v1;
232 struct osdv2_security_parameters v2;
233 };
234};
218 235
219struct osdv1_cdb { 236struct osdv1_cdb {
220 struct osd_cdb_head h; 237 struct osd_cdb_head h;
221 u8 caps[OSDv1_CAP_LEN]; 238 u8 caps[OSDv1_CAP_LEN];
222 struct osd_security_parameters sec_params; 239 struct osdv1_security_parameters sec_params;
223} __packed; 240} __packed;
224 241
225struct osdv2_cdb { 242struct osdv2_cdb {
226 struct osd_cdb_head h; 243 struct osd_cdb_head h;
227 u8 caps[OSD_CAP_LEN]; 244 u8 caps[OSD_CAP_LEN];
228 struct osd_security_parameters sec_params; 245 struct osdv2_security_parameters sec_params;
229 /* FIXME: osdv2_security_parameters */
230} __packed; 246} __packed;
231 247
232struct osd_cdb { 248struct osd_cdb {
@@ -301,14 +317,25 @@ struct osd_attributes_list_attrid {
301} __packed; 317} __packed;
302 318
303/* 319/*
320 * NOTE: v1: is not aligned.
321 */
322struct osdv1_attributes_list_element {
323 __be32 attr_page;
324 __be32 attr_id;
325 __be16 attr_bytes; /* valid bytes at attr_val without padding */
326 u8 attr_val[0];
327} __packed;
328
329/*
304 * osd2r03: 7.1.3.3 List entry format for retrieved attributes and 330 * osd2r03: 7.1.3.3 List entry format for retrieved attributes and
305 * for setting attributes 331 * for setting attributes
306 * NOTE: v2 is 8-bytes aligned, v1 is not aligned. 332 * NOTE: v2 is 8-bytes aligned
307 */ 333 */
308struct osd_attributes_list_element { 334struct osdv2_attributes_list_element {
309 __be32 attr_page; 335 __be32 attr_page;
310 __be32 attr_id; 336 __be32 attr_id;
311 __be16 attr_bytes; 337 u8 reserved[6];
338 __be16 attr_bytes; /* valid bytes at attr_val without padding */
312 u8 attr_val[0]; 339 u8 attr_val[0];
313} __packed; 340} __packed;
314 341
@@ -324,13 +351,13 @@ enum {
324 351
325static inline unsigned osdv1_attr_list_elem_size(unsigned len) 352static inline unsigned osdv1_attr_list_elem_size(unsigned len)
326{ 353{
327 return ALIGN(len + sizeof(struct osd_attributes_list_element), 354 return ALIGN(len + sizeof(struct osdv1_attributes_list_element),
328 OSDv1_ATTRIBUTES_ELEM_ALIGN); 355 OSDv1_ATTRIBUTES_ELEM_ALIGN);
329} 356}
330 357
331static inline unsigned osdv2_attr_list_elem_size(unsigned len) 358static inline unsigned osdv2_attr_list_elem_size(unsigned len)
332{ 359{
333 return ALIGN(len + sizeof(struct osd_attributes_list_element), 360 return ALIGN(len + sizeof(struct osdv2_attributes_list_element),
334 OSD_ATTRIBUTES_ELEM_ALIGN); 361 OSD_ATTRIBUTES_ELEM_ALIGN);
335} 362}
336 363
@@ -419,15 +446,35 @@ struct osd_data_out_integrity_info {
419 __be64 data_bytes; 446 __be64 data_bytes;
420 __be64 set_attributes_bytes; 447 __be64 set_attributes_bytes;
421 __be64 get_attributes_bytes; 448 __be64 get_attributes_bytes;
422 __be64 integrity_check_value; 449 __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
423} __packed; 450} __packed;
424 451
452/* Same osd_data_out_integrity_info is used for OSD2/OSD1. The only difference
453 * Is the sizeof the structure since in OSD1 the last array is smaller. Use
454 * below for version independent handling of this structure
455 */
456static inline int osd_data_out_integrity_info_sizeof(bool is_ver1)
457{
458 return sizeof(struct osd_data_out_integrity_info) -
459 (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE));
460}
461
425struct osd_data_in_integrity_info { 462struct osd_data_in_integrity_info {
426 __be64 data_bytes; 463 __be64 data_bytes;
427 __be64 retrieved_attributes_bytes; 464 __be64 retrieved_attributes_bytes;
428 __be64 integrity_check_value; 465 __u8 integrity_check_value[OSD_CRYPTO_KEYID_SIZE];
429} __packed; 466} __packed;
430 467
468/* Same osd_data_in_integrity_info is used for OSD2/OSD1. The only difference
469 * Is the sizeof the structure since in OSD1 the last array is smaller. Use
470 * below for version independent handling of this structure
471 */
472static inline int osd_data_in_integrity_info_sizeof(bool is_ver1)
473{
474 return sizeof(struct osd_data_in_integrity_info) -
475 (is_ver1 * (OSDv2_CRYPTO_KEYID_SIZE - OSDv1_CRYPTO_KEYID_SIZE));
476}
477
431struct osd_timestamp { 478struct osd_timestamp {
432 u8 time[6]; /* number of milliseconds since 1/1/1970 UT (big endian) */ 479 u8 time[6]; /* number of milliseconds since 1/1/1970 UT (big endian) */
433} __packed; 480} __packed;
@@ -477,7 +524,7 @@ enum osd_capability_bit_masks {
477 524
478 OSD_SEC_CAP_NONE1 = BIT(8), 525 OSD_SEC_CAP_NONE1 = BIT(8),
479 OSD_SEC_CAP_NONE2 = BIT(9), 526 OSD_SEC_CAP_NONE2 = BIT(9),
480 OSD_SEC_CAP_NONE3 = BIT(10), 527 OSD_SEC_GBL_REM = BIT(10), /*v2 only*/
481 OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/ 528 OSD_SEC_CAP_QUERY = BIT(11), /*v2 only*/
482 OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/ 529 OSD_SEC_CAP_M_OBJECT = BIT(12), /*v2 only*/
483 OSD_SEC_CAP_POL_SEC = BIT(13), 530 OSD_SEC_CAP_POL_SEC = BIT(13),
@@ -552,8 +599,7 @@ struct osdv1_capability {
552 599
553struct osd_capability { 600struct osd_capability {
554 struct osd_capability_head h; 601 struct osd_capability_head h;
555/* struct osd_cap_object_descriptor od;*/ 602 struct osd_cap_object_descriptor od;
556 struct osdv1_cap_object_descriptor od; /* FIXME: Pete rev-001 sup */
557} __packed; 603} __packed;
558 604
559/** 605/**
diff --git a/include/sound/jack.h b/include/sound/jack.h
index 6b013c6f6a04..f236e426a706 100644
--- a/include/sound/jack.h
+++ b/include/sound/jack.h
@@ -50,6 +50,8 @@ struct snd_jack {
50 int type; 50 int type;
51 const char *id; 51 const char *id;
52 char name[100]; 52 char name[100];
53 void *private_data;
54 void (*private_free)(struct snd_jack *);
53}; 55};
54 56
55#ifdef CONFIG_SND_JACK 57#ifdef CONFIG_SND_JACK
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 8904b1900d7f..c17296891617 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -268,7 +268,8 @@ struct snd_pcm_runtime {
268 int overrange; 268 int overrange;
269 snd_pcm_uframes_t avail_max; 269 snd_pcm_uframes_t avail_max;
270 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */ 270 snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */
271 snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time*/ 271 snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time */
272 unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */
272 273
273 /* -- HW params -- */ 274 /* -- HW params -- */
274 snd_pcm_access_t access; /* access mode */ 275 snd_pcm_access_t access; /* access mode */
diff --git a/include/sound/pxa2xx-lib.h b/include/sound/pxa2xx-lib.h
index 2c894b600e5b..2fd3d251d9a5 100644
--- a/include/sound/pxa2xx-lib.h
+++ b/include/sound/pxa2xx-lib.h
@@ -42,19 +42,4 @@ extern int pxa2xx_ac97_hw_resume(void);
42extern int pxa2xx_ac97_hw_probe(struct platform_device *dev); 42extern int pxa2xx_ac97_hw_probe(struct platform_device *dev);
43extern void pxa2xx_ac97_hw_remove(struct platform_device *dev); 43extern void pxa2xx_ac97_hw_remove(struct platform_device *dev);
44 44
45/* AC97 platform_data */
46/**
47 * struct pxa2xx_ac97_platform_data - pxa ac97 platform data
48 * @reset_gpio: AC97 reset gpio (normally gpio113 or gpio95)
49 * a -1 value means no gpio will be used for reset
50 *
51 * Platform data should only be specified for pxa27x CPUs where a silicon bug
52 * prevents correct operation of the reset line. If not specified, the default
53 * behaviour is to consider gpio 113 as the AC97 reset line, which is the
54 * default on most boards.
55 */
56struct pxa2xx_ac97_platform_data {
57 int reset_gpio;
58};
59
60#endif 45#endif
diff --git a/include/sound/version.h b/include/sound/version.h
index a7e74e23ad2e..456f1359e1c0 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h */ 1/* include/version.h */
2#define CONFIG_SND_VERSION "1.0.19" 2#define CONFIG_SND_VERSION "1.0.20"
3#define CONFIG_SND_DATE "" 3#define CONFIG_SND_DATE ""
diff --git a/include/video/cyblafb.h b/include/video/cyblafb.h
deleted file mode 100644
index d3c1d4e2c8e3..000000000000
--- a/include/video/cyblafb.h
+++ /dev/null
@@ -1,175 +0,0 @@
1
2#ifndef CYBLAFB_DEBUG
3#define CYBLAFB_DEBUG 0
4#endif
5
6#if CYBLAFB_DEBUG
7#define debug(f,a...) printk("%s:" f, __func__ , ## a);
8#else
9#define debug(f,a...)
10#endif
11
12#define output(f, a...) printk("cyblafb: " f, ## a)
13
14#define Kb (1024)
15#define Mb (Kb*Kb)
16
17/* PCI IDS of supported cards temporarily here */
18
19#define CYBERBLADEi1 0x8500
20
21/* these defines are for 'lcd' variable */
22#define LCD_STRETCH 0
23#define LCD_CENTER 1
24#define LCD_BIOS 2
25
26/* display types */
27#define DISPLAY_CRT 0
28#define DISPLAY_FP 1
29
30#define ROP_S 0xCC
31
32#define point(x,y) ((y)<<16|(x))
33
34//
35// Attribute Regs, ARxx, 3c0/3c1
36//
37#define AR00 0x00
38#define AR01 0x01
39#define AR02 0x02
40#define AR03 0x03
41#define AR04 0x04
42#define AR05 0x05
43#define AR06 0x06
44#define AR07 0x07
45#define AR08 0x08
46#define AR09 0x09
47#define AR0A 0x0A
48#define AR0B 0x0B
49#define AR0C 0x0C
50#define AR0D 0x0D
51#define AR0E 0x0E
52#define AR0F 0x0F
53#define AR10 0x10
54#define AR12 0x12
55#define AR13 0x13
56
57//
58// Sequencer Regs, SRxx, 3c4/3c5
59//
60#define SR00 0x00
61#define SR01 0x01
62#define SR02 0x02
63#define SR03 0x03
64#define SR04 0x04
65#define SR0D 0x0D
66#define SR0E 0x0E
67#define SR11 0x11
68#define SR18 0x18
69#define SR19 0x19
70
71//
72//
73//
74#define CR00 0x00
75#define CR01 0x01
76#define CR02 0x02
77#define CR03 0x03
78#define CR04 0x04
79#define CR05 0x05
80#define CR06 0x06
81#define CR07 0x07
82#define CR08 0x08
83#define CR09 0x09
84#define CR0A 0x0A
85#define CR0B 0x0B
86#define CR0C 0x0C
87#define CR0D 0x0D
88#define CR0E 0x0E
89#define CR0F 0x0F
90#define CR10 0x10
91#define CR11 0x11
92#define CR12 0x12
93#define CR13 0x13
94#define CR14 0x14
95#define CR15 0x15
96#define CR16 0x16
97#define CR17 0x17
98#define CR18 0x18
99#define CR19 0x19
100#define CR1A 0x1A
101#define CR1B 0x1B
102#define CR1C 0x1C
103#define CR1D 0x1D
104#define CR1E 0x1E
105#define CR1F 0x1F
106#define CR20 0x20
107#define CR21 0x21
108#define CR27 0x27
109#define CR29 0x29
110#define CR2A 0x2A
111#define CR2B 0x2B
112#define CR2D 0x2D
113#define CR2F 0x2F
114#define CR36 0x36
115#define CR38 0x38
116#define CR39 0x39
117#define CR3A 0x3A
118#define CR55 0x55
119#define CR56 0x56
120#define CR57 0x57
121#define CR58 0x58
122
123//
124//
125//
126
127#define GR00 0x01
128#define GR01 0x01
129#define GR02 0x02
130#define GR03 0x03
131#define GR04 0x04
132#define GR05 0x05
133#define GR06 0x06
134#define GR07 0x07
135#define GR08 0x08
136#define GR0F 0x0F
137#define GR20 0x20
138#define GR23 0x23
139#define GR2F 0x2F
140#define GR30 0x30
141#define GR31 0x31
142#define GR33 0x33
143#define GR52 0x52
144#define GR53 0x53
145#define GR5D 0x5d
146
147
148//
149// Graphics Engine
150//
151#define GEBase 0x2100 // could be mapped elsewhere if we like it
152#define GE00 (GEBase+0x00) // source 1, p 111
153#define GE04 (GEBase+0x04) // source 2, p 111
154#define GE08 (GEBase+0x08) // destination 1, p 111
155#define GE0C (GEBase+0x0C) // destination 2, p 112
156#define GE10 (GEBase+0x10) // right view base & enable, p 112
157#define GE13 (GEBase+0x13) // left view base & enable, p 112
158#define GE18 (GEBase+0x18) // block write start address, p 112
159#define GE1C (GEBase+0x1C) // block write end address, p 112
160#define GE20 (GEBase+0x20) // engine status, p 113
161#define GE24 (GEBase+0x24) // reset all GE pointers
162#define GE44 (GEBase+0x44) // command register, p 126
163#define GE48 (GEBase+0x48) // raster operation, p 127
164#define GE60 (GEBase+0x60) // foreground color, p 128
165#define GE64 (GEBase+0x64) // background color, p 128
166#define GE6C (GEBase+0x6C) // Pattern and Style, p 129, ok
167#define GE9C (GEBase+0x9C) // pixel engine data port, p 125
168#define GEB8 (GEBase+0xB8) // Destination Stride / Buffer Base 0, p 133
169#define GEBC (GEBase+0xBC) // Destination Stride / Buffer Base 1, p 133
170#define GEC0 (GEBase+0xC0) // Destination Stride / Buffer Base 2, p 133
171#define GEC4 (GEBase+0xC4) // Destination Stride / Buffer Base 3, p 133
172#define GEC8 (GEBase+0xC8) // Source Stride / Buffer Base 0, p 133
173#define GECC (GEBase+0xCC) // Source Stride / Buffer Base 1, p 133
174#define GED0 (GEBase+0xD0) // Source Stride / Buffer Base 2, p 133
175#define GED4 (GEBase+0xD4) // Source Stride / Buffer Base 3, p 133
diff --git a/init/initramfs.c b/init/initramfs.c
index 80cd713f6cc5..4c00edc59689 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -310,7 +310,8 @@ static int __init do_name(void)
310 if (wfd >= 0) { 310 if (wfd >= 0) {
311 sys_fchown(wfd, uid, gid); 311 sys_fchown(wfd, uid, gid);
312 sys_fchmod(wfd, mode); 312 sys_fchmod(wfd, mode);
313 sys_ftruncate(wfd, body_len); 313 if (body_len)
314 sys_ftruncate(wfd, body_len);
314 vcollected = kstrdup(collected, GFP_KERNEL); 315 vcollected = kstrdup(collected, GFP_KERNEL);
315 state = CopyFile; 316 state = CopyFile;
316 } 317 }
@@ -515,6 +516,7 @@ skip:
515 initrd_end = 0; 516 initrd_end = 0;
516} 517}
517 518
519#ifdef CONFIG_BLK_DEV_RAM
518#define BUF_SIZE 1024 520#define BUF_SIZE 1024
519static void __init clean_rootfs(void) 521static void __init clean_rootfs(void)
520{ 522{
@@ -561,6 +563,7 @@ static void __init clean_rootfs(void)
561 sys_close(fd); 563 sys_close(fd);
562 kfree(buf); 564 kfree(buf);
563} 565}
566#endif
564 567
565static int __init populate_rootfs(void) 568static int __init populate_rootfs(void)
566{ 569{
@@ -571,11 +574,10 @@ static int __init populate_rootfs(void)
571 if (initrd_start) { 574 if (initrd_start) {
572#ifdef CONFIG_BLK_DEV_RAM 575#ifdef CONFIG_BLK_DEV_RAM
573 int fd; 576 int fd;
574 printk(KERN_INFO "checking if image is initramfs...\n"); 577 printk(KERN_INFO "Trying to unpack rootfs image as initramfs...\n");
575 err = unpack_to_rootfs((char *)initrd_start, 578 err = unpack_to_rootfs((char *)initrd_start,
576 initrd_end - initrd_start); 579 initrd_end - initrd_start);
577 if (!err) { 580 if (!err) {
578 printk(KERN_INFO "rootfs image is initramfs; unpacking...\n");
579 free_initrd(); 581 free_initrd();
580 return 0; 582 return 0;
581 } else { 583 } else {
@@ -593,15 +595,11 @@ static int __init populate_rootfs(void)
593 free_initrd(); 595 free_initrd();
594 } 596 }
595#else 597#else
596 printk(KERN_INFO "Unpacking initramfs..."); 598 printk(KERN_INFO "Unpacking initramfs...\n");
597 err = unpack_to_rootfs((char *)initrd_start, 599 err = unpack_to_rootfs((char *)initrd_start,
598 initrd_end - initrd_start); 600 initrd_end - initrd_start);
599 if (err) { 601 if (err)
600 printk(" failed!\n"); 602 printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err);
601 printk(KERN_EMERG "%s\n", err);
602 } else {
603 printk(" done\n");
604 }
605 free_initrd(); 603 free_initrd();
606#endif 604#endif
607 } 605 }
diff --git a/init/main.c b/init/main.c
index 3585f073d636..3bbf93be744c 100644
--- a/init/main.c
+++ b/init/main.c
@@ -492,6 +492,11 @@ static int __init do_early_param(char *param, char *val)
492 return 0; 492 return 0;
493} 493}
494 494
495void __init parse_early_options(char *cmdline)
496{
497 parse_args("early options", cmdline, NULL, 0, do_early_param);
498}
499
495/* Arch code calls this early on, or if not, just before other parsing. */ 500/* Arch code calls this early on, or if not, just before other parsing. */
496void __init parse_early_param(void) 501void __init parse_early_param(void)
497{ 502{
@@ -503,7 +508,7 @@ void __init parse_early_param(void)
503 508
504 /* All fall through to do_early_param. */ 509 /* All fall through to do_early_param. */
505 strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); 510 strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE);
506 parse_args("early options", tmp_cmdline, NULL, 0, do_early_param); 511 parse_early_options(tmp_cmdline);
507 done = 1; 512 done = 1;
508} 513}
509 514
diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
index 89f60ec8ee54..24ae46dfe45d 100644
--- a/ipc/mq_sysctl.c
+++ b/ipc/mq_sysctl.c
@@ -22,6 +22,7 @@
22#define MIN_MSGSIZEMAX 128 /* min value for msgsize_max */ 22#define MIN_MSGSIZEMAX 128 /* min value for msgsize_max */
23#define MAX_MSGSIZEMAX (8192*128) /* max value for msgsize_max */ 23#define MAX_MSGSIZEMAX (8192*128) /* max value for msgsize_max */
24 24
25#ifdef CONFIG_PROC_SYSCTL
25static void *get_mq(ctl_table *table) 26static void *get_mq(ctl_table *table)
26{ 27{
27 char *which = table->data; 28 char *which = table->data;
@@ -30,7 +31,6 @@ static void *get_mq(ctl_table *table)
30 return which; 31 return which;
31} 32}
32 33
33#ifdef CONFIG_PROC_SYSCTL
34static int proc_mq_dointvec(ctl_table *table, int write, struct file *filp, 34static int proc_mq_dointvec(ctl_table *table, int write, struct file *filp,
35 void __user *buffer, size_t *lenp, loff_t *ppos) 35 void __user *buffer, size_t *lenp, loff_t *ppos)
36{ 36{
diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c
index 917ab9525568..6e7351739a82 100644
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -734,9 +734,6 @@ int audit_tag_tree(char *old, char *new)
734 dentry = dget(path.dentry); 734 dentry = dget(path.dentry);
735 path_put(&path); 735 path_put(&path);
736 736
737 if (dentry == tagged->mnt_root && dentry == mnt->mnt_root)
738 follow_up(&mnt, &dentry);
739
740 list_add_tail(&list, &tagged->mnt_list); 737 list_add_tail(&list, &tagged->mnt_list);
741 738
742 mutex_lock(&audit_filter_mutex); 739 mutex_lock(&audit_filter_mutex);
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index a6fe71fd5d1b..713098ee5a02 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -1028,7 +1028,7 @@ static void audit_update_watch(struct audit_parent *parent,
1028 1028
1029 if (audit_enabled) { 1029 if (audit_enabled) {
1030 struct audit_buffer *ab; 1030 struct audit_buffer *ab;
1031 ab = audit_log_start(NULL, GFP_KERNEL, 1031 ab = audit_log_start(NULL, GFP_NOFS,
1032 AUDIT_CONFIG_CHANGE); 1032 AUDIT_CONFIG_CHANGE);
1033 audit_log_format(ab, "auid=%u ses=%u", 1033 audit_log_format(ab, "auid=%u ses=%u",
1034 audit_get_loginuid(current), 1034 audit_get_loginuid(current),
@@ -1067,7 +1067,7 @@ static void audit_remove_parent_watches(struct audit_parent *parent)
1067 e = container_of(r, struct audit_entry, rule); 1067 e = container_of(r, struct audit_entry, rule);
1068 if (audit_enabled) { 1068 if (audit_enabled) {
1069 struct audit_buffer *ab; 1069 struct audit_buffer *ab;
1070 ab = audit_log_start(NULL, GFP_KERNEL, 1070 ab = audit_log_start(NULL, GFP_NOFS,
1071 AUDIT_CONFIG_CHANGE); 1071 AUDIT_CONFIG_CHANGE);
1072 audit_log_format(ab, "auid=%u ses=%u", 1072 audit_log_format(ab, "auid=%u ses=%u",
1073 audit_get_loginuid(current), 1073 audit_get_loginuid(current),
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 382109b5baeb..a7267bfd3765 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1133,8 +1133,7 @@ static int cgroup_get_sb(struct file_system_type *fs_type,
1133 free_cg_links: 1133 free_cg_links:
1134 free_cg_links(&tmp_cg_links); 1134 free_cg_links(&tmp_cg_links);
1135 drop_new_super: 1135 drop_new_super:
1136 up_write(&sb->s_umount); 1136 deactivate_locked_super(sb);
1137 deactivate_super(sb);
1138 return ret; 1137 return ret;
1139} 1138}
1140 1139
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index d82142be8dd2..26e08754744f 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -363,8 +363,6 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
363 irqreturn_t ret, retval = IRQ_NONE; 363 irqreturn_t ret, retval = IRQ_NONE;
364 unsigned int status = 0; 364 unsigned int status = 0;
365 365
366 WARN_ONCE(!in_irq(), "BUG: IRQ handler called from non-hardirq context!");
367
368 if (!(action->flags & IRQF_DISABLED)) 366 if (!(action->flags & IRQF_DISABLED))
369 local_irq_enable_in_hardirq(); 367 local_irq_enable_in_hardirq();
370 368
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 7e2e7dd4cd2f..2734eca59243 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -109,10 +109,9 @@ int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)
109 spin_lock_irqsave(&desc->lock, flags); 109 spin_lock_irqsave(&desc->lock, flags);
110 110
111#ifdef CONFIG_GENERIC_PENDING_IRQ 111#ifdef CONFIG_GENERIC_PENDING_IRQ
112 if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { 112 if (desc->status & IRQ_MOVE_PCNTXT)
113 cpumask_copy(desc->affinity, cpumask);
114 desc->chip->set_affinity(irq, cpumask); 113 desc->chip->set_affinity(irq, cpumask);
115 } else { 114 else {
116 desc->status |= IRQ_MOVE_PENDING; 115 desc->status |= IRQ_MOVE_PENDING;
117 cpumask_copy(desc->pending_mask, cpumask); 116 cpumask_copy(desc->pending_mask, cpumask);
118 } 117 }
diff --git a/kernel/kgdb.c b/kernel/kgdb.c
index e4dcfb2272a4..9147a3190c9d 100644
--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -1583,8 +1583,8 @@ static void sysrq_handle_gdb(int key, struct tty_struct *tty)
1583 1583
1584static struct sysrq_key_op sysrq_gdb_op = { 1584static struct sysrq_key_op sysrq_gdb_op = {
1585 .handler = sysrq_handle_gdb, 1585 .handler = sysrq_handle_gdb,
1586 .help_msg = "Gdb", 1586 .help_msg = "debug(G)",
1587 .action_msg = "GDB", 1587 .action_msg = "DEBUG",
1588}; 1588};
1589#endif 1589#endif
1590 1590
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index a5e74ddee0e2..c0fa54b276d9 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -319,6 +319,22 @@ struct kprobe __kprobes *get_kprobe(void *addr)
319 return NULL; 319 return NULL;
320} 320}
321 321
322/* Arm a kprobe with text_mutex */
323static void __kprobes arm_kprobe(struct kprobe *kp)
324{
325 mutex_lock(&text_mutex);
326 arch_arm_kprobe(kp);
327 mutex_unlock(&text_mutex);
328}
329
330/* Disarm a kprobe with text_mutex */
331static void __kprobes disarm_kprobe(struct kprobe *kp)
332{
333 mutex_lock(&text_mutex);
334 arch_disarm_kprobe(kp);
335 mutex_unlock(&text_mutex);
336}
337
322/* 338/*
323 * Aggregate handlers for multiple kprobes support - these handlers 339 * Aggregate handlers for multiple kprobes support - these handlers
324 * take care of invoking the individual kprobe handlers on p->list 340 * take care of invoking the individual kprobe handlers on p->list
@@ -538,7 +554,7 @@ static int __kprobes add_new_kprobe(struct kprobe *ap, struct kprobe *p)
538 ap->flags &= ~KPROBE_FLAG_DISABLED; 554 ap->flags &= ~KPROBE_FLAG_DISABLED;
539 if (!kprobes_all_disarmed) 555 if (!kprobes_all_disarmed)
540 /* Arm the breakpoint again. */ 556 /* Arm the breakpoint again. */
541 arch_arm_kprobe(ap); 557 arm_kprobe(ap);
542 } 558 }
543 return 0; 559 return 0;
544} 560}
@@ -789,11 +805,8 @@ static int __kprobes __unregister_kprobe_top(struct kprobe *p)
789 * enabled and not gone - otherwise, the breakpoint would 805 * enabled and not gone - otherwise, the breakpoint would
790 * already have been removed. We save on flushing icache. 806 * already have been removed. We save on flushing icache.
791 */ 807 */
792 if (!kprobes_all_disarmed && !kprobe_disabled(old_p)) { 808 if (!kprobes_all_disarmed && !kprobe_disabled(old_p))
793 mutex_lock(&text_mutex); 809 disarm_kprobe(p);
794 arch_disarm_kprobe(p);
795 mutex_unlock(&text_mutex);
796 }
797 hlist_del_rcu(&old_p->hlist); 810 hlist_del_rcu(&old_p->hlist);
798 } else { 811 } else {
799 if (p->break_handler && !kprobe_gone(p)) 812 if (p->break_handler && !kprobe_gone(p))
@@ -810,7 +823,7 @@ noclean:
810 if (!kprobe_disabled(old_p)) { 823 if (!kprobe_disabled(old_p)) {
811 try_to_disable_aggr_kprobe(old_p); 824 try_to_disable_aggr_kprobe(old_p);
812 if (!kprobes_all_disarmed && kprobe_disabled(old_p)) 825 if (!kprobes_all_disarmed && kprobe_disabled(old_p))
813 arch_disarm_kprobe(old_p); 826 disarm_kprobe(old_p);
814 } 827 }
815 } 828 }
816 return 0; 829 return 0;
@@ -1364,7 +1377,7 @@ int __kprobes disable_kprobe(struct kprobe *kp)
1364 try_to_disable_aggr_kprobe(p); 1377 try_to_disable_aggr_kprobe(p);
1365 1378
1366 if (!kprobes_all_disarmed && kprobe_disabled(p)) 1379 if (!kprobes_all_disarmed && kprobe_disabled(p))
1367 arch_disarm_kprobe(p); 1380 disarm_kprobe(p);
1368out: 1381out:
1369 mutex_unlock(&kprobe_mutex); 1382 mutex_unlock(&kprobe_mutex);
1370 return ret; 1383 return ret;
@@ -1393,7 +1406,7 @@ int __kprobes enable_kprobe(struct kprobe *kp)
1393 } 1406 }
1394 1407
1395 if (!kprobes_all_disarmed && kprobe_disabled(p)) 1408 if (!kprobes_all_disarmed && kprobe_disabled(p))
1396 arch_arm_kprobe(p); 1409 arm_kprobe(p);
1397 1410
1398 p->flags &= ~KPROBE_FLAG_DISABLED; 1411 p->flags &= ~KPROBE_FLAG_DISABLED;
1399 if (p != kp) 1412 if (p != kp)
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index b0f011866969..accb40cdb12a 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -2490,13 +2490,20 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this,
2490void lockdep_init_map(struct lockdep_map *lock, const char *name, 2490void lockdep_init_map(struct lockdep_map *lock, const char *name,
2491 struct lock_class_key *key, int subclass) 2491 struct lock_class_key *key, int subclass)
2492{ 2492{
2493 if (unlikely(!debug_locks)) 2493 lock->class_cache = NULL;
2494#ifdef CONFIG_LOCK_STAT
2495 lock->cpu = raw_smp_processor_id();
2496#endif
2497
2498 if (DEBUG_LOCKS_WARN_ON(!name)) {
2499 lock->name = "NULL";
2494 return; 2500 return;
2501 }
2502
2503 lock->name = name;
2495 2504
2496 if (DEBUG_LOCKS_WARN_ON(!key)) 2505 if (DEBUG_LOCKS_WARN_ON(!key))
2497 return; 2506 return;
2498 if (DEBUG_LOCKS_WARN_ON(!name))
2499 return;
2500 /* 2507 /*
2501 * Sanity check, the lock-class key must be persistent: 2508 * Sanity check, the lock-class key must be persistent:
2502 */ 2509 */
@@ -2505,12 +2512,11 @@ void lockdep_init_map(struct lockdep_map *lock, const char *name,
2505 DEBUG_LOCKS_WARN_ON(1); 2512 DEBUG_LOCKS_WARN_ON(1);
2506 return; 2513 return;
2507 } 2514 }
2508 lock->name = name;
2509 lock->key = key; 2515 lock->key = key;
2510 lock->class_cache = NULL; 2516
2511#ifdef CONFIG_LOCK_STAT 2517 if (unlikely(!debug_locks))
2512 lock->cpu = raw_smp_processor_id(); 2518 return;
2513#endif 2519
2514 if (subclass) 2520 if (subclass)
2515 register_lock_class(lock, subclass, 1); 2521 register_lock_class(lock, subclass, 1);
2516} 2522}
diff --git a/kernel/panic.c b/kernel/panic.c
index 934fb377f4b3..984b3ecbd72c 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -221,7 +221,7 @@ void add_taint(unsigned flag)
221 * post-warning case. 221 * post-warning case.
222 */ 222 */
223 if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off()) 223 if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off())
224 printk(KERN_WARNING "Disabling lockdep due to kernel taint\n"); 224 printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n");
225 225
226 set_bit(flag, &tainted_mask); 226 set_bit(flag, &tainted_mask);
227} 227}
@@ -340,34 +340,46 @@ void oops_exit(void)
340} 340}
341 341
342#ifdef WANT_WARN_ON_SLOWPATH 342#ifdef WANT_WARN_ON_SLOWPATH
343void warn_slowpath(const char *file, int line, const char *fmt, ...) 343struct slowpath_args {
344{ 344 const char *fmt;
345 va_list args; 345 va_list args;
346 char function[KSYM_SYMBOL_LEN]; 346};
347 unsigned long caller = (unsigned long)__builtin_return_address(0);
348 const char *board;
349 347
350 sprint_symbol(function, caller); 348static void warn_slowpath_common(const char *file, int line, void *caller, struct slowpath_args *args)
349{
350 const char *board;
351 351
352 printk(KERN_WARNING "------------[ cut here ]------------\n"); 352 printk(KERN_WARNING "------------[ cut here ]------------\n");
353 printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file, 353 printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller);
354 line, function);
355 board = dmi_get_system_info(DMI_PRODUCT_NAME); 354 board = dmi_get_system_info(DMI_PRODUCT_NAME);
356 if (board) 355 if (board)
357 printk(KERN_WARNING "Hardware name: %s\n", board); 356 printk(KERN_WARNING "Hardware name: %s\n", board);
358 357
359 if (fmt) { 358 if (args)
360 va_start(args, fmt); 359 vprintk(args->fmt, args->args);
361 vprintk(fmt, args);
362 va_end(args);
363 }
364 360
365 print_modules(); 361 print_modules();
366 dump_stack(); 362 dump_stack();
367 print_oops_end_marker(); 363 print_oops_end_marker();
368 add_taint(TAINT_WARN); 364 add_taint(TAINT_WARN);
369} 365}
370EXPORT_SYMBOL(warn_slowpath); 366
367void warn_slowpath_fmt(const char *file, int line, const char *fmt, ...)
368{
369 struct slowpath_args args;
370
371 args.fmt = fmt;
372 va_start(args.args, fmt);
373 warn_slowpath_common(file, line, __builtin_return_address(0), &args);
374 va_end(args.args);
375}
376EXPORT_SYMBOL(warn_slowpath_fmt);
377
378void warn_slowpath_null(const char *file, int line)
379{
380 warn_slowpath_common(file, line, __builtin_return_address(0), NULL);
381}
382EXPORT_SYMBOL(warn_slowpath_null);
371#endif 383#endif
372 384
373#ifdef CONFIG_CC_STACKPROTECTOR 385#ifdef CONFIG_CC_STACKPROTECTOR
diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
index c9dcf98b4463..bece7c0b67b2 100644
--- a/kernel/posix-cpu-timers.c
+++ b/kernel/posix-cpu-timers.c
@@ -1420,19 +1420,19 @@ void run_posix_cpu_timers(struct task_struct *tsk)
1420 * timer call will interfere. 1420 * timer call will interfere.
1421 */ 1421 */
1422 list_for_each_entry_safe(timer, next, &firing, it.cpu.entry) { 1422 list_for_each_entry_safe(timer, next, &firing, it.cpu.entry) {
1423 int firing; 1423 int cpu_firing;
1424
1424 spin_lock(&timer->it_lock); 1425 spin_lock(&timer->it_lock);
1425 list_del_init(&timer->it.cpu.entry); 1426 list_del_init(&timer->it.cpu.entry);
1426 firing = timer->it.cpu.firing; 1427 cpu_firing = timer->it.cpu.firing;
1427 timer->it.cpu.firing = 0; 1428 timer->it.cpu.firing = 0;
1428 /* 1429 /*
1429 * The firing flag is -1 if we collided with a reset 1430 * The firing flag is -1 if we collided with a reset
1430 * of the timer, which already reported this 1431 * of the timer, which already reported this
1431 * almost-firing as an overrun. So don't generate an event. 1432 * almost-firing as an overrun. So don't generate an event.
1432 */ 1433 */
1433 if (likely(firing >= 0)) { 1434 if (likely(cpu_firing >= 0))
1434 cpu_timer_fire(timer); 1435 cpu_timer_fire(timer);
1435 }
1436 spin_unlock(&timer->it_lock); 1436 spin_unlock(&timer->it_lock);
1437 } 1437 }
1438} 1438}
diff --git a/kernel/power/disk.c b/kernel/power/disk.c
index 0854770b63b9..e71ca9cd81b2 100644
--- a/kernel/power/disk.c
+++ b/kernel/power/disk.c
@@ -646,13 +646,6 @@ static int software_resume(void)
646 return 0; 646 return 0;
647 647
648 /* 648 /*
649 * We can't depend on SCSI devices being available after loading one of
650 * their modules if scsi_complete_async_scans() is not called and the
651 * resume device usually is a SCSI one.
652 */
653 scsi_complete_async_scans();
654
655 /*
656 * name_to_dev_t() below takes a sysfs buffer mutex when sysfs 649 * name_to_dev_t() below takes a sysfs buffer mutex when sysfs
657 * is configured into the kernel. Since the regular hibernate 650 * is configured into the kernel. Since the regular hibernate
658 * trigger path is via sysfs which takes a buffer mutex before 651 * trigger path is via sysfs which takes a buffer mutex before
@@ -663,32 +656,42 @@ static int software_resume(void)
663 * here to avoid lockdep complaining. 656 * here to avoid lockdep complaining.
664 */ 657 */
665 mutex_lock_nested(&pm_mutex, SINGLE_DEPTH_NESTING); 658 mutex_lock_nested(&pm_mutex, SINGLE_DEPTH_NESTING);
659
660 if (swsusp_resume_device)
661 goto Check_image;
662
663 if (!strlen(resume_file)) {
664 error = -ENOENT;
665 goto Unlock;
666 }
667
668 pr_debug("PM: Checking image partition %s\n", resume_file);
669
670 /* Check if the device is there */
671 swsusp_resume_device = name_to_dev_t(resume_file);
666 if (!swsusp_resume_device) { 672 if (!swsusp_resume_device) {
667 if (!strlen(resume_file)) {
668 mutex_unlock(&pm_mutex);
669 return -ENOENT;
670 }
671 /* 673 /*
672 * Some device discovery might still be in progress; we need 674 * Some device discovery might still be in progress; we need
673 * to wait for this to finish. 675 * to wait for this to finish.
674 */ 676 */
675 wait_for_device_probe(); 677 wait_for_device_probe();
678 /*
679 * We can't depend on SCSI devices being available after loading
680 * one of their modules until scsi_complete_async_scans() is
681 * called and the resume device usually is a SCSI one.
682 */
683 scsi_complete_async_scans();
684
676 swsusp_resume_device = name_to_dev_t(resume_file); 685 swsusp_resume_device = name_to_dev_t(resume_file);
677 pr_debug("PM: Resume from partition %s\n", resume_file); 686 if (!swsusp_resume_device) {
678 } else { 687 error = -ENODEV;
679 pr_debug("PM: Resume from partition %d:%d\n", 688 goto Unlock;
680 MAJOR(swsusp_resume_device), 689 }
681 MINOR(swsusp_resume_device));
682 } 690 }
683 691
684 if (noresume) { 692 Check_image:
685 /** 693 pr_debug("PM: Resume from partition %d:%d\n",
686 * FIXME: If noresume is specified, we need to find the 694 MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device));
687 * partition and reset it back to normal swap space.
688 */
689 mutex_unlock(&pm_mutex);
690 return 0;
691 }
692 695
693 pr_debug("PM: Checking hibernation image.\n"); 696 pr_debug("PM: Checking hibernation image.\n");
694 error = swsusp_check(); 697 error = swsusp_check();
diff --git a/kernel/power/main.c b/kernel/power/main.c
index f172f41858bb..f99ed6a75eac 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -291,20 +291,26 @@ static int suspend_enter(suspend_state_t state)
291 291
292 device_pm_lock(); 292 device_pm_lock();
293 293
294 if (suspend_ops->prepare) {
295 error = suspend_ops->prepare();
296 if (error)
297 goto Done;
298 }
299
294 error = device_power_down(PMSG_SUSPEND); 300 error = device_power_down(PMSG_SUSPEND);
295 if (error) { 301 if (error) {
296 printk(KERN_ERR "PM: Some devices failed to power down\n"); 302 printk(KERN_ERR "PM: Some devices failed to power down\n");
297 goto Done; 303 goto Platfrom_finish;
298 } 304 }
299 305
300 if (suspend_ops->prepare) { 306 if (suspend_ops->prepare_late) {
301 error = suspend_ops->prepare(); 307 error = suspend_ops->prepare_late();
302 if (error) 308 if (error)
303 goto Power_up_devices; 309 goto Power_up_devices;
304 } 310 }
305 311
306 if (suspend_test(TEST_PLATFORM)) 312 if (suspend_test(TEST_PLATFORM))
307 goto Platfrom_finish; 313 goto Platform_wake;
308 314
309 error = disable_nonboot_cpus(); 315 error = disable_nonboot_cpus();
310 if (error || suspend_test(TEST_CPUS)) 316 if (error || suspend_test(TEST_CPUS))
@@ -326,13 +332,17 @@ static int suspend_enter(suspend_state_t state)
326 Enable_cpus: 332 Enable_cpus:
327 enable_nonboot_cpus(); 333 enable_nonboot_cpus();
328 334
329 Platfrom_finish: 335 Platform_wake:
330 if (suspend_ops->finish) 336 if (suspend_ops->wake)
331 suspend_ops->finish(); 337 suspend_ops->wake();
332 338
333 Power_up_devices: 339 Power_up_devices:
334 device_power_up(PMSG_RESUME); 340 device_power_up(PMSG_RESUME);
335 341
342 Platfrom_finish:
343 if (suspend_ops->finish)
344 suspend_ops->finish();
345
336 Done: 346 Done:
337 device_pm_unlock(); 347 device_pm_unlock();
338 348
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 505f319e489c..8ba052c86d48 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -64,8 +64,6 @@ static int submit(int rw, pgoff_t page_off, struct page *page,
64 struct bio *bio; 64 struct bio *bio;
65 65
66 bio = bio_alloc(__GFP_WAIT | __GFP_HIGH, 1); 66 bio = bio_alloc(__GFP_WAIT | __GFP_HIGH, 1);
67 if (!bio)
68 return -ENOMEM;
69 bio->bi_sector = page_off * (PAGE_SIZE >> 9); 67 bio->bi_sector = page_off * (PAGE_SIZE >> 9);
70 bio->bi_bdev = resume_bdev; 68 bio->bi_bdev = resume_bdev;
71 bio->bi_end_io = end_swap_bio_read; 69 bio->bi_end_io = end_swap_bio_read;
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 64191fa09b7e..0692ab5a0d67 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -188,7 +188,7 @@ int ptrace_attach(struct task_struct *task)
188 /* Protect exec's credential calculations against our interference; 188 /* Protect exec's credential calculations against our interference;
189 * SUID, SGID and LSM creds get determined differently under ptrace. 189 * SUID, SGID and LSM creds get determined differently under ptrace.
190 */ 190 */
191 retval = mutex_lock_interruptible(&current->cred_exec_mutex); 191 retval = mutex_lock_interruptible(&task->cred_exec_mutex);
192 if (retval < 0) 192 if (retval < 0)
193 goto out; 193 goto out;
194 194
@@ -232,7 +232,7 @@ repeat:
232bad: 232bad:
233 write_unlock_irqrestore(&tasklist_lock, flags); 233 write_unlock_irqrestore(&tasklist_lock, flags);
234 task_unlock(task); 234 task_unlock(task);
235 mutex_unlock(&current->cred_exec_mutex); 235 mutex_unlock(&task->cred_exec_mutex);
236out: 236out:
237 return retval; 237 return retval;
238} 238}
@@ -604,10 +604,11 @@ repeat:
604 ret = security_ptrace_traceme(current->parent); 604 ret = security_ptrace_traceme(current->parent);
605 605
606 /* 606 /*
607 * Set the ptrace bit in the process ptrace flags. 607 * Check PF_EXITING to ensure ->real_parent has not passed
608 * Then link us on our parent's ptraced list. 608 * exit_ptrace(). Otherwise we don't report the error but
609 * pretend ->real_parent untraces us right after return.
609 */ 610 */
610 if (!ret) { 611 if (!ret && !(current->real_parent->flags & PF_EXITING)) {
611 current->ptrace |= PT_PTRACED; 612 current->ptrace |= PT_PTRACED;
612 __ptrace_link(current, current->real_parent); 613 __ptrace_link(current, current->real_parent);
613 } 614 }
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c
index 2c7b8457d0d2..a967c9feb90a 100644
--- a/kernel/rcupdate.c
+++ b/kernel/rcupdate.c
@@ -58,6 +58,10 @@ static DEFINE_MUTEX(rcu_barrier_mutex);
58static struct completion rcu_barrier_completion; 58static struct completion rcu_barrier_completion;
59int rcu_scheduler_active __read_mostly; 59int rcu_scheduler_active __read_mostly;
60 60
61static atomic_t rcu_migrate_type_count = ATOMIC_INIT(0);
62static struct rcu_head rcu_migrate_head[3];
63static DECLARE_WAIT_QUEUE_HEAD(rcu_migrate_wq);
64
61/* 65/*
62 * Awaken the corresponding synchronize_rcu() instance now that a 66 * Awaken the corresponding synchronize_rcu() instance now that a
63 * grace period has elapsed. 67 * grace period has elapsed.
@@ -122,7 +126,10 @@ static void rcu_barrier_func(void *type)
122 } 126 }
123} 127}
124 128
125static inline void wait_migrated_callbacks(void); 129static inline void wait_migrated_callbacks(void)
130{
131 wait_event(rcu_migrate_wq, !atomic_read(&rcu_migrate_type_count));
132}
126 133
127/* 134/*
128 * Orchestrate the specified type of RCU barrier, waiting for all 135 * Orchestrate the specified type of RCU barrier, waiting for all
@@ -179,21 +186,12 @@ void rcu_barrier_sched(void)
179} 186}
180EXPORT_SYMBOL_GPL(rcu_barrier_sched); 187EXPORT_SYMBOL_GPL(rcu_barrier_sched);
181 188
182static atomic_t rcu_migrate_type_count = ATOMIC_INIT(0);
183static struct rcu_head rcu_migrate_head[3];
184static DECLARE_WAIT_QUEUE_HEAD(rcu_migrate_wq);
185
186static void rcu_migrate_callback(struct rcu_head *notused) 189static void rcu_migrate_callback(struct rcu_head *notused)
187{ 190{
188 if (atomic_dec_and_test(&rcu_migrate_type_count)) 191 if (atomic_dec_and_test(&rcu_migrate_type_count))
189 wake_up(&rcu_migrate_wq); 192 wake_up(&rcu_migrate_wq);
190} 193}
191 194
192static inline void wait_migrated_callbacks(void)
193{
194 wait_event(rcu_migrate_wq, !atomic_read(&rcu_migrate_type_count));
195}
196
197static int __cpuinit rcu_barrier_cpu_hotplug(struct notifier_block *self, 195static int __cpuinit rcu_barrier_cpu_hotplug(struct notifier_block *self,
198 unsigned long action, void *hcpu) 196 unsigned long action, void *hcpu)
199{ 197{
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 7f3266922572..d2a372fb0b9b 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -530,8 +530,6 @@ static void note_new_gpnum(struct rcu_state *rsp, struct rcu_data *rdp)
530 rdp->qs_pending = 1; 530 rdp->qs_pending = 1;
531 rdp->passed_quiesc = 0; 531 rdp->passed_quiesc = 0;
532 rdp->gpnum = rsp->gpnum; 532 rdp->gpnum = rsp->gpnum;
533 rdp->n_rcu_pending_force_qs = rdp->n_rcu_pending +
534 RCU_JIFFIES_TILL_FORCE_QS;
535} 533}
536 534
537/* 535/*
@@ -578,8 +576,6 @@ rcu_start_gp(struct rcu_state *rsp, unsigned long flags)
578 rsp->gpnum++; 576 rsp->gpnum++;
579 rsp->signaled = RCU_GP_INIT; /* Hold off force_quiescent_state. */ 577 rsp->signaled = RCU_GP_INIT; /* Hold off force_quiescent_state. */
580 rsp->jiffies_force_qs = jiffies + RCU_JIFFIES_TILL_FORCE_QS; 578 rsp->jiffies_force_qs = jiffies + RCU_JIFFIES_TILL_FORCE_QS;
581 rdp->n_rcu_pending_force_qs = rdp->n_rcu_pending +
582 RCU_JIFFIES_TILL_FORCE_QS;
583 record_gp_stall_check_time(rsp); 579 record_gp_stall_check_time(rsp);
584 dyntick_record_completed(rsp, rsp->completed - 1); 580 dyntick_record_completed(rsp, rsp->completed - 1);
585 note_new_gpnum(rsp, rdp); 581 note_new_gpnum(rsp, rdp);
@@ -1055,7 +1051,6 @@ static void force_quiescent_state(struct rcu_state *rsp, int relaxed)
1055{ 1051{
1056 unsigned long flags; 1052 unsigned long flags;
1057 long lastcomp; 1053 long lastcomp;
1058 struct rcu_data *rdp = rsp->rda[smp_processor_id()];
1059 struct rcu_node *rnp = rcu_get_root(rsp); 1054 struct rcu_node *rnp = rcu_get_root(rsp);
1060 u8 signaled; 1055 u8 signaled;
1061 1056
@@ -1066,16 +1061,13 @@ static void force_quiescent_state(struct rcu_state *rsp, int relaxed)
1066 return; /* Someone else is already on the job. */ 1061 return; /* Someone else is already on the job. */
1067 } 1062 }
1068 if (relaxed && 1063 if (relaxed &&
1069 (long)(rsp->jiffies_force_qs - jiffies) >= 0 && 1064 (long)(rsp->jiffies_force_qs - jiffies) >= 0)
1070 (rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending) >= 0)
1071 goto unlock_ret; /* no emergency and done recently. */ 1065 goto unlock_ret; /* no emergency and done recently. */
1072 rsp->n_force_qs++; 1066 rsp->n_force_qs++;
1073 spin_lock(&rnp->lock); 1067 spin_lock(&rnp->lock);
1074 lastcomp = rsp->completed; 1068 lastcomp = rsp->completed;
1075 signaled = rsp->signaled; 1069 signaled = rsp->signaled;
1076 rsp->jiffies_force_qs = jiffies + RCU_JIFFIES_TILL_FORCE_QS; 1070 rsp->jiffies_force_qs = jiffies + RCU_JIFFIES_TILL_FORCE_QS;
1077 rdp->n_rcu_pending_force_qs = rdp->n_rcu_pending +
1078 RCU_JIFFIES_TILL_FORCE_QS;
1079 if (lastcomp == rsp->gpnum) { 1071 if (lastcomp == rsp->gpnum) {
1080 rsp->n_force_qs_ngp++; 1072 rsp->n_force_qs_ngp++;
1081 spin_unlock(&rnp->lock); 1073 spin_unlock(&rnp->lock);
@@ -1144,8 +1136,7 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
1144 * If an RCU GP has gone long enough, go check for dyntick 1136 * If an RCU GP has gone long enough, go check for dyntick
1145 * idle CPUs and, if needed, send resched IPIs. 1137 * idle CPUs and, if needed, send resched IPIs.
1146 */ 1138 */
1147 if ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0 || 1139 if ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0)
1148 (rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending) < 0)
1149 force_quiescent_state(rsp, 1); 1140 force_quiescent_state(rsp, 1);
1150 1141
1151 /* 1142 /*
@@ -1230,8 +1221,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
1230 if (unlikely(++rdp->qlen > qhimark)) { 1221 if (unlikely(++rdp->qlen > qhimark)) {
1231 rdp->blimit = LONG_MAX; 1222 rdp->blimit = LONG_MAX;
1232 force_quiescent_state(rsp, 0); 1223 force_quiescent_state(rsp, 0);
1233 } else if ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0 || 1224 } else if ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0)
1234 (rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending) < 0)
1235 force_quiescent_state(rsp, 1); 1225 force_quiescent_state(rsp, 1);
1236 local_irq_restore(flags); 1226 local_irq_restore(flags);
1237} 1227}
@@ -1290,8 +1280,7 @@ static int __rcu_pending(struct rcu_state *rsp, struct rcu_data *rdp)
1290 1280
1291 /* Has an RCU GP gone long enough to send resched IPIs &c? */ 1281 /* Has an RCU GP gone long enough to send resched IPIs &c? */
1292 if (ACCESS_ONCE(rsp->completed) != ACCESS_ONCE(rsp->gpnum) && 1282 if (ACCESS_ONCE(rsp->completed) != ACCESS_ONCE(rsp->gpnum) &&
1293 ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0 || 1283 ((long)(ACCESS_ONCE(rsp->jiffies_force_qs) - jiffies) < 0))
1294 (rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending) < 0))
1295 return 1; 1284 return 1;
1296 1285
1297 /* nothing to do */ 1286 /* nothing to do */
diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c
index 4ee954f6a8d5..4b1875ba9404 100644
--- a/kernel/rcutree_trace.c
+++ b/kernel/rcutree_trace.c
@@ -49,14 +49,12 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
49{ 49{
50 if (!rdp->beenonline) 50 if (!rdp->beenonline)
51 return; 51 return;
52 seq_printf(m, "%3d%cc=%ld g=%ld pq=%d pqc=%ld qp=%d rpfq=%ld rp=%x", 52 seq_printf(m, "%3d%cc=%ld g=%ld pq=%d pqc=%ld qp=%d",
53 rdp->cpu, 53 rdp->cpu,
54 cpu_is_offline(rdp->cpu) ? '!' : ' ', 54 cpu_is_offline(rdp->cpu) ? '!' : ' ',
55 rdp->completed, rdp->gpnum, 55 rdp->completed, rdp->gpnum,
56 rdp->passed_quiesc, rdp->passed_quiesc_completed, 56 rdp->passed_quiesc, rdp->passed_quiesc_completed,
57 rdp->qs_pending, 57 rdp->qs_pending);
58 rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending,
59 (int)(rdp->n_rcu_pending & 0xffff));
60#ifdef CONFIG_NO_HZ 58#ifdef CONFIG_NO_HZ
61 seq_printf(m, " dt=%d/%d dn=%d df=%lu", 59 seq_printf(m, " dt=%d/%d dn=%d df=%lu",
62 rdp->dynticks->dynticks, 60 rdp->dynticks->dynticks,
@@ -102,14 +100,12 @@ static void print_one_rcu_data_csv(struct seq_file *m, struct rcu_data *rdp)
102{ 100{
103 if (!rdp->beenonline) 101 if (!rdp->beenonline)
104 return; 102 return;
105 seq_printf(m, "%d,%s,%ld,%ld,%d,%ld,%d,%ld,%ld", 103 seq_printf(m, "%d,%s,%ld,%ld,%d,%ld,%d",
106 rdp->cpu, 104 rdp->cpu,
107 cpu_is_offline(rdp->cpu) ? "\"Y\"" : "\"N\"", 105 cpu_is_offline(rdp->cpu) ? "\"Y\"" : "\"N\"",
108 rdp->completed, rdp->gpnum, 106 rdp->completed, rdp->gpnum,
109 rdp->passed_quiesc, rdp->passed_quiesc_completed, 107 rdp->passed_quiesc, rdp->passed_quiesc_completed,
110 rdp->qs_pending, 108 rdp->qs_pending);
111 rdp->n_rcu_pending_force_qs - rdp->n_rcu_pending,
112 rdp->n_rcu_pending);
113#ifdef CONFIG_NO_HZ 109#ifdef CONFIG_NO_HZ
114 seq_printf(m, ",%d,%d,%d,%lu", 110 seq_printf(m, ",%d,%d,%d,%lu",
115 rdp->dynticks->dynticks, 111 rdp->dynticks->dynticks,
@@ -123,7 +119,7 @@ static void print_one_rcu_data_csv(struct seq_file *m, struct rcu_data *rdp)
123 119
124static int show_rcudata_csv(struct seq_file *m, void *unused) 120static int show_rcudata_csv(struct seq_file *m, void *unused)
125{ 121{
126 seq_puts(m, "\"CPU\",\"Online?\",\"c\",\"g\",\"pq\",\"pqc\",\"pq\",\"rpfq\",\"rp\","); 122 seq_puts(m, "\"CPU\",\"Online?\",\"c\",\"g\",\"pq\",\"pqc\",\"pq\",");
127#ifdef CONFIG_NO_HZ 123#ifdef CONFIG_NO_HZ
128 seq_puts(m, "\"dt\",\"dt nesting\",\"dn\",\"df\","); 124 seq_puts(m, "\"dt\",\"dt nesting\",\"dn\",\"df\",");
129#endif /* #ifdef CONFIG_NO_HZ */ 125#endif /* #ifdef CONFIG_NO_HZ */
diff --git a/kernel/resource.c b/kernel/resource.c
index fd5d7d574bb9..ac5f3a36923f 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -533,43 +533,21 @@ static void __init __reserve_region_with_split(struct resource *root,
533 res->end = end; 533 res->end = end;
534 res->flags = IORESOURCE_BUSY; 534 res->flags = IORESOURCE_BUSY;
535 535
536 for (;;) { 536 conflict = __request_resource(parent, res);
537 conflict = __request_resource(parent, res); 537 if (!conflict)
538 if (!conflict) 538 return;
539 break;
540 if (conflict != parent) {
541 parent = conflict;
542 if (!(conflict->flags & IORESOURCE_BUSY))
543 continue;
544 }
545
546 /* Uhhuh, that didn't work out.. */
547 kfree(res);
548 res = NULL;
549 break;
550 }
551
552 if (!res) {
553 /* failed, split and try again */
554
555 /* conflict covered whole area */
556 if (conflict->start <= start && conflict->end >= end)
557 return;
558 539
559 if (conflict->start > start) 540 /* failed, split and try again */
560 __reserve_region_with_split(root, start, conflict->start-1, name); 541 kfree(res);
561 if (!(conflict->flags & IORESOURCE_BUSY)) {
562 resource_size_t common_start, common_end;
563 542
564 common_start = max(conflict->start, start); 543 /* conflict covered whole area */
565 common_end = min(conflict->end, end); 544 if (conflict->start <= start && conflict->end >= end)
566 if (common_start < common_end) 545 return;
567 __reserve_region_with_split(root, common_start, common_end, name);
568 }
569 if (conflict->end < end)
570 __reserve_region_with_split(root, conflict->end+1, end, name);
571 }
572 546
547 if (conflict->start > start)
548 __reserve_region_with_split(root, start, conflict->start-1, name);
549 if (conflict->end < end)
550 __reserve_region_with_split(root, conflict->end+1, end, name);
573} 551}
574 552
575void __init reserve_region_with_split(struct resource *root, 553void __init reserve_region_with_split(struct resource *root,
diff --git a/kernel/sched.c b/kernel/sched.c
index 5724508c3b66..26efa475bdc1 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4732,7 +4732,7 @@ void account_process_tick(struct task_struct *p, int user_tick)
4732 4732
4733 if (user_tick) 4733 if (user_tick)
4734 account_user_time(p, one_jiffy, one_jiffy_scaled); 4734 account_user_time(p, one_jiffy, one_jiffy_scaled);
4735 else if (p != rq->idle) 4735 else if ((p != rq->idle) || (irq_count() != HARDIRQ_OFFSET))
4736 account_system_time(p, HARDIRQ_OFFSET, one_jiffy, 4736 account_system_time(p, HARDIRQ_OFFSET, one_jiffy,
4737 one_jiffy_scaled); 4737 one_jiffy_scaled);
4738 else 4738 else
@@ -4846,7 +4846,7 @@ void scheduler_tick(void)
4846#endif 4846#endif
4847} 4847}
4848 4848
4849unsigned long get_parent_ip(unsigned long addr) 4849notrace unsigned long get_parent_ip(unsigned long addr)
4850{ 4850{
4851 if (in_lock_functions(addr)) { 4851 if (in_lock_functions(addr)) {
4852 addr = CALLER_ADDR2; 4852 addr = CALLER_ADDR2;
@@ -7367,8 +7367,12 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level,
7367 cpumask_or(groupmask, groupmask, sched_group_cpus(group)); 7367 cpumask_or(groupmask, groupmask, sched_group_cpus(group));
7368 7368
7369 cpulist_scnprintf(str, sizeof(str), sched_group_cpus(group)); 7369 cpulist_scnprintf(str, sizeof(str), sched_group_cpus(group));
7370 printk(KERN_CONT " %s (__cpu_power = %d)", str, 7370
7371 group->__cpu_power); 7371 printk(KERN_CONT " %s", str);
7372 if (group->__cpu_power != SCHED_LOAD_SCALE) {
7373 printk(KERN_CONT " (__cpu_power = %d)",
7374 group->__cpu_power);
7375 }
7372 7376
7373 group = group->next; 7377 group = group->next;
7374 } while (group != sd->groups); 7378 } while (group != sd->groups);
diff --git a/kernel/slow-work.c b/kernel/slow-work.c
index cf2bc01186ef..b28d19135f43 100644
--- a/kernel/slow-work.c
+++ b/kernel/slow-work.c
@@ -609,14 +609,14 @@ void slow_work_unregister_user(void)
609 if (slow_work_user_count == 0) { 609 if (slow_work_user_count == 0) {
610 printk(KERN_NOTICE "Slow work thread pool: Shutting down\n"); 610 printk(KERN_NOTICE "Slow work thread pool: Shutting down\n");
611 slow_work_threads_should_exit = true; 611 slow_work_threads_should_exit = true;
612 del_timer_sync(&slow_work_cull_timer);
613 del_timer_sync(&slow_work_oom_timer);
612 wake_up_all(&slow_work_thread_wq); 614 wake_up_all(&slow_work_thread_wq);
613 wait_for_completion(&slow_work_last_thread_exited); 615 wait_for_completion(&slow_work_last_thread_exited);
614 printk(KERN_NOTICE "Slow work thread pool:" 616 printk(KERN_NOTICE "Slow work thread pool:"
615 " Shut down complete\n"); 617 " Shut down complete\n");
616 } 618 }
617 619
618 del_timer_sync(&slow_work_cull_timer);
619
620 mutex_unlock(&slow_work_user_lock); 620 mutex_unlock(&slow_work_user_lock);
621} 621}
622EXPORT_SYMBOL(slow_work_unregister_user); 622EXPORT_SYMBOL(slow_work_unregister_user);
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 2fecefacdc5b..b525dd348511 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -472,9 +472,9 @@ void tasklet_kill(struct tasklet_struct *t)
472 printk("Attempt to kill tasklet from interrupt\n"); 472 printk("Attempt to kill tasklet from interrupt\n");
473 473
474 while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) { 474 while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) {
475 do 475 do {
476 yield(); 476 yield();
477 while (test_bit(TASKLET_STATE_SCHED, &t->state)); 477 } while (test_bit(TASKLET_STATE_SCHED, &t->state));
478 } 478 }
479 tasklet_unlock_wait(t); 479 tasklet_unlock_wait(t);
480 clear_bit(TASKLET_STATE_SCHED, &t->state); 480 clear_bit(TASKLET_STATE_SCHED, &t->state);
diff --git a/kernel/sys.c b/kernel/sys.c
index 51dbb55604e8..e7998cf31498 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -360,6 +360,7 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
360 void __user *, arg) 360 void __user *, arg)
361{ 361{
362 char buffer[256]; 362 char buffer[256];
363 int ret = 0;
363 364
364 /* We only trust the superuser with rebooting the system. */ 365 /* We only trust the superuser with rebooting the system. */
365 if (!capable(CAP_SYS_BOOT)) 366 if (!capable(CAP_SYS_BOOT))
@@ -397,7 +398,7 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
397 kernel_halt(); 398 kernel_halt();
398 unlock_kernel(); 399 unlock_kernel();
399 do_exit(0); 400 do_exit(0);
400 break; 401 panic("cannot halt");
401 402
402 case LINUX_REBOOT_CMD_POWER_OFF: 403 case LINUX_REBOOT_CMD_POWER_OFF:
403 kernel_power_off(); 404 kernel_power_off();
@@ -417,29 +418,22 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
417 418
418#ifdef CONFIG_KEXEC 419#ifdef CONFIG_KEXEC
419 case LINUX_REBOOT_CMD_KEXEC: 420 case LINUX_REBOOT_CMD_KEXEC:
420 { 421 ret = kernel_kexec();
421 int ret; 422 break;
422 ret = kernel_kexec();
423 unlock_kernel();
424 return ret;
425 }
426#endif 423#endif
427 424
428#ifdef CONFIG_HIBERNATION 425#ifdef CONFIG_HIBERNATION
429 case LINUX_REBOOT_CMD_SW_SUSPEND: 426 case LINUX_REBOOT_CMD_SW_SUSPEND:
430 { 427 ret = hibernate();
431 int ret = hibernate(); 428 break;
432 unlock_kernel();
433 return ret;
434 }
435#endif 429#endif
436 430
437 default: 431 default:
438 unlock_kernel(); 432 ret = -EINVAL;
439 return -EINVAL; 433 break;
440 } 434 }
441 unlock_kernel(); 435 unlock_kernel();
442 return 0; 436 return ret;
443} 437}
444 438
445static void deferred_cad(struct work_struct *dummy) 439static void deferred_cad(struct work_struct *dummy)
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 4286b62b34a0..b2970d56fb76 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -101,7 +101,9 @@ static int __maybe_unused one = 1;
101static int __maybe_unused two = 2; 101static int __maybe_unused two = 2;
102static unsigned long one_ul = 1; 102static unsigned long one_ul = 1;
103static int one_hundred = 100; 103static int one_hundred = 100;
104static int one_thousand = 1000; 104
105/* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
106static unsigned long dirty_bytes_min = 2 * PAGE_SIZE;
105 107
106/* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ 108/* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
107static int maxolduid = 65535; 109static int maxolduid = 65535;
@@ -902,16 +904,6 @@ static struct ctl_table kern_table[] = {
902 .proc_handler = &proc_dointvec, 904 .proc_handler = &proc_dointvec,
903 }, 905 },
904#endif 906#endif
905#ifdef CONFIG_UNEVICTABLE_LRU
906 {
907 .ctl_name = CTL_UNNUMBERED,
908 .procname = "scan_unevictable_pages",
909 .data = &scan_unevictable_pages,
910 .maxlen = sizeof(scan_unevictable_pages),
911 .mode = 0644,
912 .proc_handler = &scan_unevictable_handler,
913 },
914#endif
915#ifdef CONFIG_SLOW_WORK 907#ifdef CONFIG_SLOW_WORK
916 { 908 {
917 .ctl_name = CTL_UNNUMBERED, 909 .ctl_name = CTL_UNNUMBERED,
@@ -1016,7 +1008,7 @@ static struct ctl_table vm_table[] = {
1016 .mode = 0644, 1008 .mode = 0644,
1017 .proc_handler = &dirty_bytes_handler, 1009 .proc_handler = &dirty_bytes_handler,
1018 .strategy = &sysctl_intvec, 1010 .strategy = &sysctl_intvec,
1019 .extra1 = &one_ul, 1011 .extra1 = &dirty_bytes_min,
1020 }, 1012 },
1021 { 1013 {
1022 .procname = "dirty_writeback_centisecs", 1014 .procname = "dirty_writeback_centisecs",
@@ -1041,28 +1033,6 @@ static struct ctl_table vm_table[] = {
1041 .proc_handler = &proc_dointvec, 1033 .proc_handler = &proc_dointvec,
1042 }, 1034 },
1043 { 1035 {
1044 .ctl_name = CTL_UNNUMBERED,
1045 .procname = "nr_pdflush_threads_min",
1046 .data = &nr_pdflush_threads_min,
1047 .maxlen = sizeof nr_pdflush_threads_min,
1048 .mode = 0644 /* read-write */,
1049 .proc_handler = &proc_dointvec_minmax,
1050 .strategy = &sysctl_intvec,
1051 .extra1 = &one,
1052 .extra2 = &nr_pdflush_threads_max,
1053 },
1054 {
1055 .ctl_name = CTL_UNNUMBERED,
1056 .procname = "nr_pdflush_threads_max",
1057 .data = &nr_pdflush_threads_max,
1058 .maxlen = sizeof nr_pdflush_threads_max,
1059 .mode = 0644 /* read-write */,
1060 .proc_handler = &proc_dointvec_minmax,
1061 .strategy = &sysctl_intvec,
1062 .extra1 = &nr_pdflush_threads_min,
1063 .extra2 = &one_thousand,
1064 },
1065 {
1066 .ctl_name = VM_SWAPPINESS, 1036 .ctl_name = VM_SWAPPINESS,
1067 .procname = "swappiness", 1037 .procname = "swappiness",
1068 .data = &vm_swappiness, 1038 .data = &vm_swappiness,
@@ -1302,6 +1272,16 @@ static struct ctl_table vm_table[] = {
1302 .extra2 = &one, 1272 .extra2 = &one,
1303 }, 1273 },
1304#endif 1274#endif
1275#ifdef CONFIG_UNEVICTABLE_LRU
1276 {
1277 .ctl_name = CTL_UNNUMBERED,
1278 .procname = "scan_unevictable_pages",
1279 .data = &scan_unevictable_pages,
1280 .maxlen = sizeof(scan_unevictable_pages),
1281 .mode = 0644,
1282 .proc_handler = &scan_unevictable_handler,
1283 },
1284#endif
1305/* 1285/*
1306 * NOTE: do not add new entries to this table unless you have read 1286 * NOTE: do not add new entries to this table unless you have read
1307 * Documentation/sysctl/ctl_unnumbered.txt 1287 * Documentation/sysctl/ctl_unnumbered.txt
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index c46c931a7fe7..ecfd7b5187e0 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -181,12 +181,12 @@ static void clocksource_watchdog(unsigned long data)
181 181
182 resumed = test_and_clear_bit(0, &watchdog_resumed); 182 resumed = test_and_clear_bit(0, &watchdog_resumed);
183 183
184 wdnow = watchdog->read(); 184 wdnow = watchdog->read(watchdog);
185 wd_nsec = cyc2ns(watchdog, (wdnow - watchdog_last) & watchdog->mask); 185 wd_nsec = cyc2ns(watchdog, (wdnow - watchdog_last) & watchdog->mask);
186 watchdog_last = wdnow; 186 watchdog_last = wdnow;
187 187
188 list_for_each_entry_safe(cs, tmp, &watchdog_list, wd_list) { 188 list_for_each_entry_safe(cs, tmp, &watchdog_list, wd_list) {
189 csnow = cs->read(); 189 csnow = cs->read(cs);
190 190
191 if (unlikely(resumed)) { 191 if (unlikely(resumed)) {
192 cs->wd_last = csnow; 192 cs->wd_last = csnow;
@@ -247,7 +247,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
247 247
248 list_add(&cs->wd_list, &watchdog_list); 248 list_add(&cs->wd_list, &watchdog_list);
249 if (!started && watchdog) { 249 if (!started && watchdog) {
250 watchdog_last = watchdog->read(); 250 watchdog_last = watchdog->read(watchdog);
251 watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; 251 watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
252 add_timer_on(&watchdog_timer, 252 add_timer_on(&watchdog_timer,
253 cpumask_first(cpu_online_mask)); 253 cpumask_first(cpu_online_mask));
@@ -268,7 +268,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
268 cse->flags &= ~CLOCK_SOURCE_WATCHDOG; 268 cse->flags &= ~CLOCK_SOURCE_WATCHDOG;
269 /* Start if list is not empty */ 269 /* Start if list is not empty */
270 if (!list_empty(&watchdog_list)) { 270 if (!list_empty(&watchdog_list)) {
271 watchdog_last = watchdog->read(); 271 watchdog_last = watchdog->read(watchdog);
272 watchdog_timer.expires = 272 watchdog_timer.expires =
273 jiffies + WATCHDOG_INTERVAL; 273 jiffies + WATCHDOG_INTERVAL;
274 add_timer_on(&watchdog_timer, 274 add_timer_on(&watchdog_timer,
diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
index 06f197560f3b..c3f6c30816e3 100644
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -50,7 +50,7 @@
50 */ 50 */
51#define JIFFIES_SHIFT 8 51#define JIFFIES_SHIFT 8
52 52
53static cycle_t jiffies_read(void) 53static cycle_t jiffies_read(struct clocksource *cs)
54{ 54{
55 return (cycle_t) jiffies; 55 return (cycle_t) jiffies;
56} 56}
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index 21a5ca849514..83c4417b6a3c 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -93,7 +93,17 @@ void tick_handle_periodic(struct clock_event_device *dev)
93 for (;;) { 93 for (;;) {
94 if (!clockevents_program_event(dev, next, ktime_get())) 94 if (!clockevents_program_event(dev, next, ktime_get()))
95 return; 95 return;
96 tick_periodic(cpu); 96 /*
97 * Have to be careful here. If we're in oneshot mode,
98 * before we call tick_periodic() in a loop, we need
99 * to be sure we're using a real hardware clocksource.
100 * Otherwise we could get trapped in an infinite
101 * loop, as the tick_periodic() increments jiffies,
102 * when then will increment time, posibly causing
103 * the loop to trigger again and again.
104 */
105 if (timekeeping_valid_for_hres())
106 tick_periodic(cpu);
97 next = ktime_add(next, tick_period); 107 next = ktime_add(next, tick_period);
98 } 108 }
99} 109}
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 900f1b6598d1..687dff49f6e7 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -182,7 +182,7 @@ EXPORT_SYMBOL(do_settimeofday);
182 */ 182 */
183static void change_clocksource(void) 183static void change_clocksource(void)
184{ 184{
185 struct clocksource *new; 185 struct clocksource *new, *old;
186 186
187 new = clocksource_get_next(); 187 new = clocksource_get_next();
188 188
@@ -191,11 +191,16 @@ static void change_clocksource(void)
191 191
192 clocksource_forward_now(); 192 clocksource_forward_now();
193 193
194 new->raw_time = clock->raw_time; 194 if (clocksource_enable(new))
195 return;
195 196
197 new->raw_time = clock->raw_time;
198 old = clock;
196 clock = new; 199 clock = new;
200 clocksource_disable(old);
201
197 clock->cycle_last = 0; 202 clock->cycle_last = 0;
198 clock->cycle_last = clocksource_read(new); 203 clock->cycle_last = clocksource_read(clock);
199 clock->error = 0; 204 clock->error = 0;
200 clock->xtime_nsec = 0; 205 clock->xtime_nsec = 0;
201 clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); 206 clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH);
@@ -292,6 +297,7 @@ void __init timekeeping_init(void)
292 ntp_init(); 297 ntp_init();
293 298
294 clock = clocksource_get_next(); 299 clock = clocksource_get_next();
300 clocksource_enable(clock);
295 clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); 301 clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH);
296 clock->cycle_last = clocksource_read(clock); 302 clock->cycle_last = clocksource_read(clock);
297 303
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 1ce5dc6372b8..a884c09006c4 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3448,6 +3448,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
3448 if (!ref) 3448 if (!ref)
3449 break; 3449 break;
3450 3450
3451 ref->ref = 1;
3451 ref->buffer = info->tr->buffer; 3452 ref->buffer = info->tr->buffer;
3452 ref->page = ring_buffer_alloc_read_page(ref->buffer); 3453 ref->page = ring_buffer_alloc_read_page(ref->buffer);
3453 if (!ref->page) { 3454 if (!ref->page) {
diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
index ad8c22efff41..8333715e4066 100644
--- a/kernel/trace/trace_branch.c
+++ b/kernel/trace/trace_branch.c
@@ -155,6 +155,13 @@ static enum print_line_t trace_branch_print(struct trace_iterator *iter,
155 return TRACE_TYPE_HANDLED; 155 return TRACE_TYPE_HANDLED;
156} 156}
157 157
158static void branch_print_header(struct seq_file *s)
159{
160 seq_puts(s, "# TASK-PID CPU# TIMESTAMP CORRECT"
161 " FUNC:FILE:LINE\n");
162 seq_puts(s, "# | | | | | "
163 " |\n");
164}
158 165
159static struct trace_event trace_branch_event = { 166static struct trace_event trace_branch_event = {
160 .type = TRACE_BRANCH, 167 .type = TRACE_BRANCH,
@@ -169,6 +176,7 @@ static struct tracer branch_trace __read_mostly =
169#ifdef CONFIG_FTRACE_SELFTEST 176#ifdef CONFIG_FTRACE_SELFTEST
170 .selftest = trace_selftest_startup_branch, 177 .selftest = trace_selftest_startup_branch,
171#endif /* CONFIG_FTRACE_SELFTEST */ 178#endif /* CONFIG_FTRACE_SELFTEST */
179 .print_header = branch_print_header,
172}; 180};
173 181
174__init static int init_branch_tracer(void) 182__init static int init_branch_tracer(void)
diff --git a/kernel/trace/trace_power.c b/kernel/trace/trace_power.c
index bae791ebcc51..118439709fb7 100644
--- a/kernel/trace/trace_power.c
+++ b/kernel/trace/trace_power.c
@@ -186,6 +186,12 @@ static enum print_line_t power_print_line(struct trace_iterator *iter)
186 return TRACE_TYPE_UNHANDLED; 186 return TRACE_TYPE_UNHANDLED;
187} 187}
188 188
189static void power_print_header(struct seq_file *s)
190{
191 seq_puts(s, "# TIMESTAMP STATE EVENT\n");
192 seq_puts(s, "# | | |\n");
193}
194
189static struct tracer power_tracer __read_mostly = 195static struct tracer power_tracer __read_mostly =
190{ 196{
191 .name = "power", 197 .name = "power",
@@ -194,6 +200,7 @@ static struct tracer power_tracer __read_mostly =
194 .stop = stop_power_trace, 200 .stop = stop_power_trace,
195 .reset = power_trace_reset, 201 .reset = power_trace_reset,
196 .print_line = power_print_line, 202 .print_line = power_print_line,
203 .print_header = power_print_header,
197}; 204};
198 205
199static int init_power_trace(void) 206static int init_power_trace(void)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index c6e854f215fa..6cdcf38f2da9 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -440,7 +440,7 @@ config LOCKDEP
440 bool 440 bool
441 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 441 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
442 select STACKTRACE 442 select STACKTRACE
443 select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND 443 select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND && !S390
444 select KALLSYMS 444 select KALLSYMS
445 select KALLSYMS_ALL 445 select KALLSYMS_ALL
446 446
@@ -620,7 +620,7 @@ config ARCH_WANT_FRAME_POINTERS
620config FRAME_POINTER 620config FRAME_POINTER
621 bool "Compile the kernel with frame pointers" 621 bool "Compile the kernel with frame pointers"
622 depends on DEBUG_KERNEL && \ 622 depends on DEBUG_KERNEL && \
623 (CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \ 623 (CRIS || M68K || M68KNOMMU || FRV || UML || \
624 AVR32 || SUPERH || BLACKFIN || MN10300) || \ 624 AVR32 || SUPERH || BLACKFIN || MN10300) || \
625 ARCH_WANT_FRAME_POINTERS 625 ARCH_WANT_FRAME_POINTERS
626 default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS 626 default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS
@@ -809,13 +809,13 @@ config FAULT_INJECTION_STACKTRACE_FILTER
809 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT 809 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
810 depends on !X86_64 810 depends on !X86_64
811 select STACKTRACE 811 select STACKTRACE
812 select FRAME_POINTER if !PPC 812 select FRAME_POINTER if !PPC && !S390
813 help 813 help
814 Provide stacktrace filter for fault-injection capabilities 814 Provide stacktrace filter for fault-injection capabilities
815 815
816config LATENCYTOP 816config LATENCYTOP
817 bool "Latency measuring infrastructure" 817 bool "Latency measuring infrastructure"
818 select FRAME_POINTER if !MIPS && !PPC 818 select FRAME_POINTER if !MIPS && !PPC && !S390
819 select KALLSYMS 819 select KALLSYMS
820 select KALLSYMS_ALL 820 select KALLSYMS_ALL
821 select STACKTRACE 821 select STACKTRACE
@@ -891,7 +891,6 @@ config DYNAMIC_DEBUG
891 default n 891 default n
892 depends on PRINTK 892 depends on PRINTK
893 depends on DEBUG_FS 893 depends on DEBUG_FS
894 select PRINTK_DEBUG
895 help 894 help
896 895
897 Compiles debug level messages into the kernel, which would not 896 Compiles debug level messages into the kernel, which would not
diff --git a/lib/Makefile b/lib/Makefile
index d6edd6753f40..33a40e40e3ee 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -38,7 +38,7 @@ lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
38lib-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o 38lib-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o
39lib-$(CONFIG_GENERIC_FIND_FIRST_BIT) += find_next_bit.o 39lib-$(CONFIG_GENERIC_FIND_FIRST_BIT) += find_next_bit.o
40lib-$(CONFIG_GENERIC_FIND_NEXT_BIT) += find_next_bit.o 40lib-$(CONFIG_GENERIC_FIND_NEXT_BIT) += find_next_bit.o
41lib-$(CONFIG_GENERIC_FIND_LAST_BIT) += find_last_bit.o 41obj-$(CONFIG_GENERIC_FIND_LAST_BIT) += find_last_bit.o
42obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o 42obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
43obj-$(CONFIG_LOCK_KERNEL) += kernel_lock.o 43obj-$(CONFIG_LOCK_KERNEL) += kernel_lock.o
44obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o 44obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
diff --git a/lib/dma-debug.c b/lib/dma-debug.c
index d3da7edc034f..69da09a085a1 100644
--- a/lib/dma-debug.c
+++ b/lib/dma-debug.c
@@ -400,60 +400,9 @@ out_err:
400 return -ENOMEM; 400 return -ENOMEM;
401} 401}
402 402
403static int device_dma_allocations(struct device *dev)
404{
405 struct dma_debug_entry *entry;
406 unsigned long flags;
407 int count = 0, i;
408
409 for (i = 0; i < HASH_SIZE; ++i) {
410 spin_lock_irqsave(&dma_entry_hash[i].lock, flags);
411 list_for_each_entry(entry, &dma_entry_hash[i].list, list) {
412 if (entry->dev == dev)
413 count += 1;
414 }
415 spin_unlock_irqrestore(&dma_entry_hash[i].lock, flags);
416 }
417
418 return count;
419}
420
421static int dma_debug_device_change(struct notifier_block *nb,
422 unsigned long action, void *data)
423{
424 struct device *dev = data;
425 int count;
426
427
428 switch (action) {
429 case BUS_NOTIFY_UNBIND_DRIVER:
430 count = device_dma_allocations(dev);
431 if (count == 0)
432 break;
433 err_printk(dev, NULL, "DMA-API: device driver has pending "
434 "DMA allocations while released from device "
435 "[count=%d]\n", count);
436 break;
437 default:
438 break;
439 }
440
441 return 0;
442}
443
444void dma_debug_add_bus(struct bus_type *bus) 403void dma_debug_add_bus(struct bus_type *bus)
445{ 404{
446 struct notifier_block *nb; 405 /* FIXME: register notifier */
447
448 nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL);
449 if (nb == NULL) {
450 printk(KERN_ERR "dma_debug_add_bus: out of memory\n");
451 return;
452 }
453
454 nb->notifier_call = dma_debug_device_change;
455
456 bus_register_notifier(bus, nb);
457} 406}
458 407
459/* 408/*
diff --git a/lib/kobject.c b/lib/kobject.c
index a6dec32f2ddd..bacf6fe4f7a0 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -218,6 +218,9 @@ int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
218 const char *old_name = kobj->name; 218 const char *old_name = kobj->name;
219 char *s; 219 char *s;
220 220
221 if (kobj->name && !fmt)
222 return 0;
223
221 kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs); 224 kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs);
222 if (!kobj->name) 225 if (!kobj->name)
223 return -ENOMEM; 226 return -ENOMEM;
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index 97a777ad4f59..920a3ca6e259 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -258,7 +258,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
258 goto exit; 258 goto exit;
259 259
260 retval = call_usermodehelper(argv[0], argv, 260 retval = call_usermodehelper(argv[0], argv,
261 env->envp, UMH_NO_WAIT); 261 env->envp, UMH_WAIT_EXEC);
262 } 262 }
263 263
264exit: 264exit:
@@ -328,7 +328,7 @@ static int __init kobject_uevent_init(void)
328 "kobject_uevent: unable to create netlink socket!\n"); 328 "kobject_uevent: unable to create netlink socket!\n");
329 return -ENODEV; 329 return -ENODEV;
330 } 330 }
331 331 netlink_set_nonroot(NETLINK_KOBJECT_UEVENT, NL_NONROOT_RECV);
332 return 0; 332 return 0;
333} 333}
334 334
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index b7b449dafbe5..a295e404e908 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -347,9 +347,12 @@ bool sg_miter_next(struct sg_mapping_iter *miter)
347 sg_miter_stop(miter); 347 sg_miter_stop(miter);
348 348
349 /* get to the next sg if necessary. __offset is adjusted by stop */ 349 /* get to the next sg if necessary. __offset is adjusted by stop */
350 if (miter->__offset == miter->__sg->length && --miter->__nents) { 350 while (miter->__offset == miter->__sg->length) {
351 miter->__sg = sg_next(miter->__sg); 351 if (--miter->__nents) {
352 miter->__offset = 0; 352 miter->__sg = sg_next(miter->__sg);
353 miter->__offset = 0;
354 } else
355 return false;
353 } 356 }
354 357
355 /* map the next page */ 358 /* map the next page */
diff --git a/mm/Kconfig b/mm/Kconfig
index b53427ad30a3..c2b57d81e153 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -213,6 +213,8 @@ config UNEVICTABLE_LRU
213 will use one page flag and increase the code size a little, 213 will use one page flag and increase the code size a little,
214 say Y unless you know what you are doing. 214 say Y unless you know what you are doing.
215 215
216 See Documentation/vm/unevictable-lru.txt for more information.
217
216config HAVE_MLOCK 218config HAVE_MLOCK
217 bool 219 bool
218 default y if MMU=y 220 default y if MMU=y
@@ -223,3 +225,31 @@ config HAVE_MLOCKED_PAGE_BIT
223 225
224config MMU_NOTIFIER 226config MMU_NOTIFIER
225 bool 227 bool
228
229config NOMMU_INITIAL_TRIM_EXCESS
230 int "Turn on mmap() excess space trimming before booting"
231 depends on !MMU
232 default 1
233 help
234 The NOMMU mmap() frequently needs to allocate large contiguous chunks
235 of memory on which to store mappings, but it can only ask the system
236 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
237 more than it requires. To deal with this, mmap() is able to trim off
238 the excess and return it to the allocator.
239
240 If trimming is enabled, the excess is trimmed off and returned to the
241 system allocator, which can cause extra fragmentation, particularly
242 if there are a lot of transient processes.
243
244 If trimming is disabled, the excess is kept, but not used, which for
245 long-term mappings means that the space is wasted.
246
247 Trimming can be dynamically controlled through a sysctl option
248 (/proc/sys/vm/nr_trim_pages) which specifies the minimum number of
249 excess pages there must be before trimming should occur, or zero if
250 no trimming is to occur.
251
252 This option specifies the initial value of this option. The default
253 of 1 says that all excess pages should be trimmed.
254
255 See Documentation/nommu-mmap.txt for more information.
diff --git a/mm/filemap.c b/mm/filemap.c
index 2e2d38ebda4b..379ff0bcbf6e 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -441,6 +441,7 @@ int filemap_write_and_wait_range(struct address_space *mapping,
441 } 441 }
442 return err; 442 return err;
443} 443}
444EXPORT_SYMBOL(filemap_write_and_wait_range);
444 445
445/** 446/**
446 * add_to_page_cache_locked - add a locked page to the pagecache 447 * add_to_page_cache_locked - add a locked page to the pagecache
@@ -567,8 +568,8 @@ EXPORT_SYMBOL(wait_on_page_bit);
567 568
568/** 569/**
569 * add_page_wait_queue - Add an arbitrary waiter to a page's wait queue 570 * add_page_wait_queue - Add an arbitrary waiter to a page's wait queue
570 * @page - Page defining the wait queue of interest 571 * @page: Page defining the wait queue of interest
571 * @waiter - Waiter to add to the queue 572 * @waiter: Waiter to add to the queue
572 * 573 *
573 * Add an arbitrary @waiter to the wait queue for the nominated @page. 574 * Add an arbitrary @waiter to the wait queue for the nominated @page.
574 */ 575 */
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 2fc6d6c48238..01c2d8f14685 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -932,7 +932,7 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm,
932 if (unlikely(!mem)) 932 if (unlikely(!mem))
933 return 0; 933 return 0;
934 934
935 VM_BUG_ON(mem_cgroup_is_obsolete(mem)); 935 VM_BUG_ON(!mem || mem_cgroup_is_obsolete(mem));
936 936
937 while (1) { 937 while (1) {
938 int ret; 938 int ret;
@@ -1024,9 +1024,7 @@ static struct mem_cgroup *try_get_mem_cgroup_from_swapcache(struct page *page)
1024 return NULL; 1024 return NULL;
1025 1025
1026 pc = lookup_page_cgroup(page); 1026 pc = lookup_page_cgroup(page);
1027 /* 1027 lock_page_cgroup(pc);
1028 * Used bit of swapcache is solid under page lock.
1029 */
1030 if (PageCgroupUsed(pc)) { 1028 if (PageCgroupUsed(pc)) {
1031 mem = pc->mem_cgroup; 1029 mem = pc->mem_cgroup;
1032 if (mem && !css_tryget(&mem->css)) 1030 if (mem && !css_tryget(&mem->css))
@@ -1040,6 +1038,7 @@ static struct mem_cgroup *try_get_mem_cgroup_from_swapcache(struct page *page)
1040 mem = NULL; 1038 mem = NULL;
1041 rcu_read_unlock(); 1039 rcu_read_unlock();
1042 } 1040 }
1041 unlock_page_cgroup(pc);
1043 return mem; 1042 return mem;
1044} 1043}
1045 1044
@@ -1618,37 +1617,28 @@ void mem_cgroup_end_migration(struct mem_cgroup *mem,
1618} 1617}
1619 1618
1620/* 1619/*
1621 * A call to try to shrink memory usage under specified resource controller. 1620 * A call to try to shrink memory usage on charge failure at shmem's swapin.
1622 * This is typically used for page reclaiming for shmem for reducing side 1621 * Calling hierarchical_reclaim is not enough because we should update
1623 * effect of page allocation from shmem, which is used by some mem_cgroup. 1622 * last_oom_jiffies to prevent pagefault_out_of_memory from invoking global OOM.
1623 * Moreover considering hierarchy, we should reclaim from the mem_over_limit,
1624 * not from the memcg which this page would be charged to.
1625 * try_charge_swapin does all of these works properly.
1624 */ 1626 */
1625int mem_cgroup_shrink_usage(struct page *page, 1627int mem_cgroup_shmem_charge_fallback(struct page *page,
1626 struct mm_struct *mm, 1628 struct mm_struct *mm,
1627 gfp_t gfp_mask) 1629 gfp_t gfp_mask)
1628{ 1630{
1629 struct mem_cgroup *mem = NULL; 1631 struct mem_cgroup *mem = NULL;
1630 int progress = 0; 1632 int ret;
1631 int retry = MEM_CGROUP_RECLAIM_RETRIES;
1632 1633
1633 if (mem_cgroup_disabled()) 1634 if (mem_cgroup_disabled())
1634 return 0; 1635 return 0;
1635 if (page)
1636 mem = try_get_mem_cgroup_from_swapcache(page);
1637 if (!mem && mm)
1638 mem = try_get_mem_cgroup_from_mm(mm);
1639 if (unlikely(!mem))
1640 return 0;
1641 1636
1642 do { 1637 ret = mem_cgroup_try_charge_swapin(mm, page, gfp_mask, &mem);
1643 progress = mem_cgroup_hierarchical_reclaim(mem, 1638 if (!ret)
1644 gfp_mask, true, false); 1639 mem_cgroup_cancel_charge_swapin(mem); /* it does !mem check */
1645 progress += mem_cgroup_check_under_limit(mem);
1646 } while (!progress && --retry);
1647 1640
1648 css_put(&mem->css); 1641 return ret;
1649 if (!retry)
1650 return -ENOMEM;
1651 return 0;
1652} 1642}
1653 1643
1654static DEFINE_MUTEX(set_limit_mutex); 1644static DEFINE_MUTEX(set_limit_mutex);
diff --git a/mm/memory.c b/mm/memory.c
index cf6873e91c6a..4126dd16778c 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1971,6 +1971,15 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,
1971 ret = tmp; 1971 ret = tmp;
1972 goto unwritable_page; 1972 goto unwritable_page;
1973 } 1973 }
1974 if (unlikely(!(tmp & VM_FAULT_LOCKED))) {
1975 lock_page(old_page);
1976 if (!old_page->mapping) {
1977 ret = 0; /* retry the fault */
1978 unlock_page(old_page);
1979 goto unwritable_page;
1980 }
1981 } else
1982 VM_BUG_ON(!PageLocked(old_page));
1974 1983
1975 /* 1984 /*
1976 * Since we dropped the lock we need to revalidate 1985 * Since we dropped the lock we need to revalidate
@@ -1980,9 +1989,11 @@ static int do_wp_page(struct mm_struct *mm, struct vm_area_struct *vma,
1980 */ 1989 */
1981 page_table = pte_offset_map_lock(mm, pmd, address, 1990 page_table = pte_offset_map_lock(mm, pmd, address,
1982 &ptl); 1991 &ptl);
1983 page_cache_release(old_page); 1992 if (!pte_same(*page_table, orig_pte)) {
1984 if (!pte_same(*page_table, orig_pte)) 1993 unlock_page(old_page);
1994 page_cache_release(old_page);
1985 goto unlock; 1995 goto unlock;
1996 }
1986 1997
1987 page_mkwrite = 1; 1998 page_mkwrite = 1;
1988 } 1999 }
@@ -2094,9 +2105,6 @@ gotten:
2094unlock: 2105unlock:
2095 pte_unmap_unlock(page_table, ptl); 2106 pte_unmap_unlock(page_table, ptl);
2096 if (dirty_page) { 2107 if (dirty_page) {
2097 if (vma->vm_file)
2098 file_update_time(vma->vm_file);
2099
2100 /* 2108 /*
2101 * Yes, Virginia, this is actually required to prevent a race 2109 * Yes, Virginia, this is actually required to prevent a race
2102 * with clear_page_dirty_for_io() from clearing the page dirty 2110 * with clear_page_dirty_for_io() from clearing the page dirty
@@ -2105,16 +2113,41 @@ unlock:
2105 * 2113 *
2106 * do_no_page is protected similarly. 2114 * do_no_page is protected similarly.
2107 */ 2115 */
2108 wait_on_page_locked(dirty_page); 2116 if (!page_mkwrite) {
2109 set_page_dirty_balance(dirty_page, page_mkwrite); 2117 wait_on_page_locked(dirty_page);
2118 set_page_dirty_balance(dirty_page, page_mkwrite);
2119 }
2110 put_page(dirty_page); 2120 put_page(dirty_page);
2121 if (page_mkwrite) {
2122 struct address_space *mapping = dirty_page->mapping;
2123
2124 set_page_dirty(dirty_page);
2125 unlock_page(dirty_page);
2126 page_cache_release(dirty_page);
2127 if (mapping) {
2128 /*
2129 * Some device drivers do not set page.mapping
2130 * but still dirty their pages
2131 */
2132 balance_dirty_pages_ratelimited(mapping);
2133 }
2134 }
2135
2136 /* file_update_time outside page_lock */
2137 if (vma->vm_file)
2138 file_update_time(vma->vm_file);
2111 } 2139 }
2112 return ret; 2140 return ret;
2113oom_free_new: 2141oom_free_new:
2114 page_cache_release(new_page); 2142 page_cache_release(new_page);
2115oom: 2143oom:
2116 if (old_page) 2144 if (old_page) {
2145 if (page_mkwrite) {
2146 unlock_page(old_page);
2147 page_cache_release(old_page);
2148 }
2117 page_cache_release(old_page); 2149 page_cache_release(old_page);
2150 }
2118 return VM_FAULT_OOM; 2151 return VM_FAULT_OOM;
2119 2152
2120unwritable_page: 2153unwritable_page:
@@ -2458,8 +2491,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
2458 2491
2459 if (mem_cgroup_try_charge_swapin(mm, page, GFP_KERNEL, &ptr)) { 2492 if (mem_cgroup_try_charge_swapin(mm, page, GFP_KERNEL, &ptr)) {
2460 ret = VM_FAULT_OOM; 2493 ret = VM_FAULT_OOM;
2461 unlock_page(page); 2494 goto out_page;
2462 goto out;
2463 } 2495 }
2464 2496
2465 /* 2497 /*
@@ -2521,6 +2553,7 @@ out:
2521out_nomap: 2553out_nomap:
2522 mem_cgroup_cancel_charge_swapin(ptr); 2554 mem_cgroup_cancel_charge_swapin(ptr);
2523 pte_unmap_unlock(page_table, ptl); 2555 pte_unmap_unlock(page_table, ptl);
2556out_page:
2524 unlock_page(page); 2557 unlock_page(page);
2525 page_cache_release(page); 2558 page_cache_release(page);
2526 return ret; 2559 return ret;
@@ -2664,27 +2697,22 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
2664 int tmp; 2697 int tmp;
2665 2698
2666 unlock_page(page); 2699 unlock_page(page);
2667 vmf.flags |= FAULT_FLAG_MKWRITE; 2700 vmf.flags = FAULT_FLAG_WRITE|FAULT_FLAG_MKWRITE;
2668 tmp = vma->vm_ops->page_mkwrite(vma, &vmf); 2701 tmp = vma->vm_ops->page_mkwrite(vma, &vmf);
2669 if (unlikely(tmp & 2702 if (unlikely(tmp &
2670 (VM_FAULT_ERROR | VM_FAULT_NOPAGE))) { 2703 (VM_FAULT_ERROR | VM_FAULT_NOPAGE))) {
2671 ret = tmp; 2704 ret = tmp;
2672 anon = 1; /* no anon but release vmf.page */ 2705 goto unwritable_page;
2673 goto out_unlocked;
2674 }
2675 lock_page(page);
2676 /*
2677 * XXX: this is not quite right (racy vs
2678 * invalidate) to unlock and relock the page
2679 * like this, however a better fix requires
2680 * reworking page_mkwrite locking API, which
2681 * is better done later.
2682 */
2683 if (!page->mapping) {
2684 ret = 0;
2685 anon = 1; /* no anon but release vmf.page */
2686 goto out;
2687 } 2706 }
2707 if (unlikely(!(tmp & VM_FAULT_LOCKED))) {
2708 lock_page(page);
2709 if (!page->mapping) {
2710 ret = 0; /* retry the fault */
2711 unlock_page(page);
2712 goto unwritable_page;
2713 }
2714 } else
2715 VM_BUG_ON(!PageLocked(page));
2688 page_mkwrite = 1; 2716 page_mkwrite = 1;
2689 } 2717 }
2690 } 2718 }
@@ -2736,19 +2764,35 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
2736 pte_unmap_unlock(page_table, ptl); 2764 pte_unmap_unlock(page_table, ptl);
2737 2765
2738out: 2766out:
2739 unlock_page(vmf.page); 2767 if (dirty_page) {
2740out_unlocked: 2768 struct address_space *mapping = page->mapping;
2741 if (anon)
2742 page_cache_release(vmf.page);
2743 else if (dirty_page) {
2744 if (vma->vm_file)
2745 file_update_time(vma->vm_file);
2746 2769
2747 set_page_dirty_balance(dirty_page, page_mkwrite); 2770 if (set_page_dirty(dirty_page))
2771 page_mkwrite = 1;
2772 unlock_page(dirty_page);
2748 put_page(dirty_page); 2773 put_page(dirty_page);
2774 if (page_mkwrite && mapping) {
2775 /*
2776 * Some device drivers do not set page.mapping but still
2777 * dirty their pages
2778 */
2779 balance_dirty_pages_ratelimited(mapping);
2780 }
2781
2782 /* file_update_time outside page_lock */
2783 if (vma->vm_file)
2784 file_update_time(vma->vm_file);
2785 } else {
2786 unlock_page(vmf.page);
2787 if (anon)
2788 page_cache_release(vmf.page);
2749 } 2789 }
2750 2790
2751 return ret; 2791 return ret;
2792
2793unwritable_page:
2794 page_cache_release(page);
2795 return ret;
2752} 2796}
2753 2797
2754static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma, 2798static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma,
diff --git a/mm/mmap.c b/mm/mmap.c
index 4a3841186c11..6b7b1a95944b 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -85,7 +85,7 @@ EXPORT_SYMBOL(vm_get_page_prot);
85int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */ 85int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
86int sysctl_overcommit_ratio = 50; /* default is 50% */ 86int sysctl_overcommit_ratio = 50; /* default is 50% */
87int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; 87int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
88atomic_long_t vm_committed_space = ATOMIC_LONG_INIT(0); 88struct percpu_counter vm_committed_as;
89 89
90/* 90/*
91 * Check that a process has enough memory to allocate a new virtual 91 * Check that a process has enough memory to allocate a new virtual
@@ -179,11 +179,7 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
179 if (mm) 179 if (mm)
180 allowed -= mm->total_vm / 32; 180 allowed -= mm->total_vm / 32;
181 181
182 /* 182 if (percpu_counter_read_positive(&vm_committed_as) < allowed)
183 * cast `allowed' as a signed long because vm_committed_space
184 * sometimes has a negative value
185 */
186 if (atomic_long_read(&vm_committed_space) < (long)allowed)
187 return 0; 183 return 0;
188error: 184error:
189 vm_unacct_memory(pages); 185 vm_unacct_memory(pages);
@@ -1575,7 +1571,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
1575 * Overcommit.. This must be the final test, as it will 1571 * Overcommit.. This must be the final test, as it will
1576 * update security statistics. 1572 * update security statistics.
1577 */ 1573 */
1578 if (security_vm_enough_memory(grow)) 1574 if (security_vm_enough_memory_mm(mm, grow))
1579 return -ENOMEM; 1575 return -ENOMEM;
1580 1576
1581 /* Ok, everything looks good - let it rip */ 1577 /* Ok, everything looks good - let it rip */
@@ -2481,4 +2477,8 @@ void mm_drop_all_locks(struct mm_struct *mm)
2481 */ 2477 */
2482void __init mmap_init(void) 2478void __init mmap_init(void)
2483{ 2479{
2480 int ret;
2481
2482 ret = percpu_counter_init(&vm_committed_as, 0);
2483 VM_BUG_ON(ret);
2484} 2484}
diff --git a/mm/nommu.c b/mm/nommu.c
index 72eda4aee2cb..b571ef707428 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -62,11 +62,11 @@ void *high_memory;
62struct page *mem_map; 62struct page *mem_map;
63unsigned long max_mapnr; 63unsigned long max_mapnr;
64unsigned long num_physpages; 64unsigned long num_physpages;
65atomic_long_t vm_committed_space = ATOMIC_LONG_INIT(0); 65struct percpu_counter vm_committed_as;
66int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */ 66int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
67int sysctl_overcommit_ratio = 50; /* default is 50% */ 67int sysctl_overcommit_ratio = 50; /* default is 50% */
68int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT; 68int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
69int sysctl_nr_trim_pages = 1; /* page trimming behaviour */ 69int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
70int heap_stack_gap = 0; 70int heap_stack_gap = 0;
71 71
72atomic_long_t mmap_pages_allocated; 72atomic_long_t mmap_pages_allocated;
@@ -463,6 +463,10 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
463 */ 463 */
464void __init mmap_init(void) 464void __init mmap_init(void)
465{ 465{
466 int ret;
467
468 ret = percpu_counter_init(&vm_committed_as, 0);
469 VM_BUG_ON(ret);
466 vm_region_jar = KMEM_CACHE(vm_region, SLAB_PANIC); 470 vm_region_jar = KMEM_CACHE(vm_region, SLAB_PANIC);
467} 471}
468 472
@@ -511,8 +515,6 @@ static void add_nommu_region(struct vm_region *region)
511 515
512 validate_nommu_regions(); 516 validate_nommu_regions();
513 517
514 BUG_ON(region->vm_start & ~PAGE_MASK);
515
516 parent = NULL; 518 parent = NULL;
517 p = &nommu_region_tree.rb_node; 519 p = &nommu_region_tree.rb_node;
518 while (*p) { 520 while (*p) {
@@ -1847,12 +1849,9 @@ int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
1847 if (mm) 1849 if (mm)
1848 allowed -= mm->total_vm / 32; 1850 allowed -= mm->total_vm / 32;
1849 1851
1850 /* 1852 if (percpu_counter_read_positive(&vm_committed_as) < allowed)
1851 * cast `allowed' as a signed long because vm_committed_space
1852 * sometimes has a negative value
1853 */
1854 if (atomic_long_read(&vm_committed_space) < (long)allowed)
1855 return 0; 1853 return 0;
1854
1856error: 1855error:
1857 vm_unacct_memory(pages); 1856 vm_unacct_memory(pages);
1858 1857
diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 2f3166e308d9..92bcf1db16b2 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -514,34 +514,32 @@ void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_mask)
514 */ 514 */
515static void __out_of_memory(gfp_t gfp_mask, int order) 515static void __out_of_memory(gfp_t gfp_mask, int order)
516{ 516{
517 if (sysctl_oom_kill_allocating_task) { 517 struct task_struct *p;
518 oom_kill_process(current, gfp_mask, order, 0, NULL, 518 unsigned long points;
519 "Out of memory (oom_kill_allocating_task)");
520
521 } else {
522 unsigned long points;
523 struct task_struct *p;
524
525retry:
526 /*
527 * Rambo mode: Shoot down a process and hope it solves whatever
528 * issues we may have.
529 */
530 p = select_bad_process(&points, NULL);
531 519
532 if (PTR_ERR(p) == -1UL) 520 if (sysctl_oom_kill_allocating_task)
521 if (!oom_kill_process(current, gfp_mask, order, 0, NULL,
522 "Out of memory (oom_kill_allocating_task)"))
533 return; 523 return;
524retry:
525 /*
526 * Rambo mode: Shoot down a process and hope it solves whatever
527 * issues we may have.
528 */
529 p = select_bad_process(&points, NULL);
534 530
535 /* Found nothing?!?! Either we hang forever, or we panic. */ 531 if (PTR_ERR(p) == -1UL)
536 if (!p) { 532 return;
537 read_unlock(&tasklist_lock);
538 panic("Out of memory and no killable processes...\n");
539 }
540 533
541 if (oom_kill_process(p, gfp_mask, order, points, NULL, 534 /* Found nothing?!?! Either we hang forever, or we panic. */
542 "Out of memory")) 535 if (!p) {
543 goto retry; 536 read_unlock(&tasklist_lock);
537 panic("Out of memory and no killable processes...\n");
544 } 538 }
539
540 if (oom_kill_process(p, gfp_mask, order, points, NULL,
541 "Out of memory"))
542 goto retry;
545} 543}
546 544
547/* 545/*
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index e2f26991fff1..fe753ecf2aa5 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2681,6 +2681,7 @@ static void __meminit zone_init_free_lists(struct zone *zone)
2681 2681
2682static int zone_batchsize(struct zone *zone) 2682static int zone_batchsize(struct zone *zone)
2683{ 2683{
2684#ifdef CONFIG_MMU
2684 int batch; 2685 int batch;
2685 2686
2686 /* 2687 /*
@@ -2706,9 +2707,26 @@ static int zone_batchsize(struct zone *zone)
2706 * of pages of one half of the possible page colors 2707 * of pages of one half of the possible page colors
2707 * and the other with pages of the other colors. 2708 * and the other with pages of the other colors.
2708 */ 2709 */
2709 batch = (1 << (fls(batch + batch/2)-1)) - 1; 2710 batch = rounddown_pow_of_two(batch + batch/2) - 1;
2710 2711
2711 return batch; 2712 return batch;
2713
2714#else
2715 /* The deferral and batching of frees should be suppressed under NOMMU
2716 * conditions.
2717 *
2718 * The problem is that NOMMU needs to be able to allocate large chunks
2719 * of contiguous memory as there's no hardware page translation to
2720 * assemble apparent contiguous memory from discontiguous pages.
2721 *
2722 * Queueing large contiguous runs of pages for batching, however,
2723 * causes the pages to actually be freed in smaller chunks. As there
2724 * can be a significant delay between the individual batches being
2725 * recycled, this leads to the once large chunks of space being
2726 * fragmented and becoming unavailable for high-order allocations.
2727 */
2728 return 0;
2729#endif
2712} 2730}
2713 2731
2714static void setup_pageset(struct per_cpu_pageset *p, unsigned long batch) 2732static void setup_pageset(struct per_cpu_pageset *p, unsigned long batch)
diff --git a/mm/pdflush.c b/mm/pdflush.c
index f2caf96993f8..235ac440c44e 100644
--- a/mm/pdflush.c
+++ b/mm/pdflush.c
@@ -58,14 +58,6 @@ static DEFINE_SPINLOCK(pdflush_lock);
58int nr_pdflush_threads = 0; 58int nr_pdflush_threads = 0;
59 59
60/* 60/*
61 * The max/min number of pdflush threads. R/W by sysctl at
62 * /proc/sys/vm/nr_pdflush_threads_max/min
63 */
64int nr_pdflush_threads_max __read_mostly = MAX_PDFLUSH_THREADS;
65int nr_pdflush_threads_min __read_mostly = MIN_PDFLUSH_THREADS;
66
67
68/*
69 * The time at which the pdflush thread pool last went empty 61 * The time at which the pdflush thread pool last went empty
70 */ 62 */
71static unsigned long last_empty_jifs; 63static unsigned long last_empty_jifs;
@@ -76,7 +68,7 @@ static unsigned long last_empty_jifs;
76 * Thread pool management algorithm: 68 * Thread pool management algorithm:
77 * 69 *
78 * - The minimum and maximum number of pdflush instances are bound 70 * - The minimum and maximum number of pdflush instances are bound
79 * by nr_pdflush_threads_min and nr_pdflush_threads_max. 71 * by MIN_PDFLUSH_THREADS and MAX_PDFLUSH_THREADS.
80 * 72 *
81 * - If there have been no idle pdflush instances for 1 second, create 73 * - If there have been no idle pdflush instances for 1 second, create
82 * a new one. 74 * a new one.
@@ -142,13 +134,14 @@ static int __pdflush(struct pdflush_work *my_work)
142 * To throttle creation, we reset last_empty_jifs. 134 * To throttle creation, we reset last_empty_jifs.
143 */ 135 */
144 if (time_after(jiffies, last_empty_jifs + 1 * HZ)) { 136 if (time_after(jiffies, last_empty_jifs + 1 * HZ)) {
145 if (list_empty(&pdflush_list) && 137 if (list_empty(&pdflush_list)) {
146 nr_pdflush_threads < nr_pdflush_threads_max) { 138 if (nr_pdflush_threads < MAX_PDFLUSH_THREADS) {
147 last_empty_jifs = jiffies; 139 last_empty_jifs = jiffies;
148 nr_pdflush_threads++; 140 nr_pdflush_threads++;
149 spin_unlock_irq(&pdflush_lock); 141 spin_unlock_irq(&pdflush_lock);
150 start_one_pdflush_thread(); 142 start_one_pdflush_thread();
151 spin_lock_irq(&pdflush_lock); 143 spin_lock_irq(&pdflush_lock);
144 }
152 } 145 }
153 } 146 }
154 147
@@ -160,7 +153,7 @@ static int __pdflush(struct pdflush_work *my_work)
160 */ 153 */
161 if (list_empty(&pdflush_list)) 154 if (list_empty(&pdflush_list))
162 continue; 155 continue;
163 if (nr_pdflush_threads <= nr_pdflush_threads_min) 156 if (nr_pdflush_threads <= MIN_PDFLUSH_THREADS)
164 continue; 157 continue;
165 pdf = list_entry(pdflush_list.prev, struct pdflush_work, list); 158 pdf = list_entry(pdflush_list.prev, struct pdflush_work, list);
166 if (time_after(jiffies, pdf->when_i_went_to_sleep + 1 * HZ)) { 159 if (time_after(jiffies, pdf->when_i_went_to_sleep + 1 * HZ)) {
@@ -266,9 +259,9 @@ static int __init pdflush_init(void)
266 * Pre-set nr_pdflush_threads... If we fail to create, 259 * Pre-set nr_pdflush_threads... If we fail to create,
267 * the count will be decremented. 260 * the count will be decremented.
268 */ 261 */
269 nr_pdflush_threads = nr_pdflush_threads_min; 262 nr_pdflush_threads = MIN_PDFLUSH_THREADS;
270 263
271 for (i = 0; i < nr_pdflush_threads_min; i++) 264 for (i = 0; i < MIN_PDFLUSH_THREADS; i++)
272 start_one_pdflush_thread(); 265 start_one_pdflush_thread();
273 return 0; 266 return 0;
274} 267}
diff --git a/mm/shmem.c b/mm/shmem.c
index d94d2e9146bc..b25f95ce3db7 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -24,6 +24,7 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/vfs.h> 25#include <linux/vfs.h>
26#include <linux/mount.h> 26#include <linux/mount.h>
27#include <linux/pagemap.h>
27#include <linux/file.h> 28#include <linux/file.h>
28#include <linux/mm.h> 29#include <linux/mm.h>
29#include <linux/module.h> 30#include <linux/module.h>
@@ -43,7 +44,6 @@ static struct vfsmount *shm_mnt;
43#include <linux/exportfs.h> 44#include <linux/exportfs.h>
44#include <linux/generic_acl.h> 45#include <linux/generic_acl.h>
45#include <linux/mman.h> 46#include <linux/mman.h>
46#include <linux/pagemap.h>
47#include <linux/string.h> 47#include <linux/string.h>
48#include <linux/slab.h> 48#include <linux/slab.h>
49#include <linux/backing-dev.h> 49#include <linux/backing-dev.h>
@@ -65,13 +65,28 @@ static struct vfsmount *shm_mnt;
65#include <asm/div64.h> 65#include <asm/div64.h>
66#include <asm/pgtable.h> 66#include <asm/pgtable.h>
67 67
68/*
69 * The maximum size of a shmem/tmpfs file is limited by the maximum size of
70 * its triple-indirect swap vector - see illustration at shmem_swp_entry().
71 *
72 * With 4kB page size, maximum file size is just over 2TB on a 32-bit kernel,
73 * but one eighth of that on a 64-bit kernel. With 8kB page size, maximum
74 * file size is just over 4TB on a 64-bit kernel, but 16TB on a 32-bit kernel,
75 * MAX_LFS_FILESIZE being then more restrictive than swap vector layout.
76 *
77 * We use / and * instead of shifts in the definitions below, so that the swap
78 * vector can be tested with small even values (e.g. 20) for ENTRIES_PER_PAGE.
79 */
68#define ENTRIES_PER_PAGE (PAGE_CACHE_SIZE/sizeof(unsigned long)) 80#define ENTRIES_PER_PAGE (PAGE_CACHE_SIZE/sizeof(unsigned long))
69#define ENTRIES_PER_PAGEPAGE (ENTRIES_PER_PAGE*ENTRIES_PER_PAGE) 81#define ENTRIES_PER_PAGEPAGE ((unsigned long long)ENTRIES_PER_PAGE*ENTRIES_PER_PAGE)
70#define BLOCKS_PER_PAGE (PAGE_CACHE_SIZE/512)
71 82
72#define SHMEM_MAX_INDEX (SHMEM_NR_DIRECT + (ENTRIES_PER_PAGEPAGE/2) * (ENTRIES_PER_PAGE+1)) 83#define SHMSWP_MAX_INDEX (SHMEM_NR_DIRECT + (ENTRIES_PER_PAGEPAGE/2) * (ENTRIES_PER_PAGE+1))
73#define SHMEM_MAX_BYTES ((unsigned long long)SHMEM_MAX_INDEX << PAGE_CACHE_SHIFT) 84#define SHMSWP_MAX_BYTES (SHMSWP_MAX_INDEX << PAGE_CACHE_SHIFT)
74 85
86#define SHMEM_MAX_BYTES min_t(unsigned long long, SHMSWP_MAX_BYTES, MAX_LFS_FILESIZE)
87#define SHMEM_MAX_INDEX ((unsigned long)((SHMEM_MAX_BYTES+1) >> PAGE_CACHE_SHIFT))
88
89#define BLOCKS_PER_PAGE (PAGE_CACHE_SIZE/512)
75#define VM_ACCT(size) (PAGE_CACHE_ALIGN(size) >> PAGE_SHIFT) 90#define VM_ACCT(size) (PAGE_CACHE_ALIGN(size) >> PAGE_SHIFT)
76 91
77/* info->flags needs VM_flags to handle pagein/truncate races efficiently */ 92/* info->flags needs VM_flags to handle pagein/truncate races efficiently */
@@ -1325,8 +1340,12 @@ repeat:
1325 shmem_swp_unmap(entry); 1340 shmem_swp_unmap(entry);
1326 spin_unlock(&info->lock); 1341 spin_unlock(&info->lock);
1327 if (error == -ENOMEM) { 1342 if (error == -ENOMEM) {
1328 /* allow reclaim from this memory cgroup */ 1343 /*
1329 error = mem_cgroup_shrink_usage(swappage, 1344 * reclaim from proper memory cgroup and
1345 * call memcg's OOM if needed.
1346 */
1347 error = mem_cgroup_shmem_charge_fallback(
1348 swappage,
1330 current->mm, 1349 current->mm,
1331 gfp); 1350 gfp);
1332 if (error) { 1351 if (error) {
@@ -2581,7 +2600,7 @@ int shmem_unuse(swp_entry_t entry, struct page *page)
2581#define shmem_get_inode(sb, mode, dev, flags) ramfs_get_inode(sb, mode, dev) 2600#define shmem_get_inode(sb, mode, dev, flags) ramfs_get_inode(sb, mode, dev)
2582#define shmem_acct_size(flags, size) 0 2601#define shmem_acct_size(flags, size) 0
2583#define shmem_unacct_size(flags, size) do {} while (0) 2602#define shmem_unacct_size(flags, size) do {} while (0)
2584#define SHMEM_MAX_BYTES LLONG_MAX 2603#define SHMEM_MAX_BYTES MAX_LFS_FILESIZE
2585 2604
2586#endif /* CONFIG_SHMEM */ 2605#endif /* CONFIG_SHMEM */
2587 2606
diff --git a/mm/swap.c b/mm/swap.c
index bede23ce64ea..cb29ae5d33ab 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -491,49 +491,6 @@ unsigned pagevec_lookup_tag(struct pagevec *pvec, struct address_space *mapping,
491 491
492EXPORT_SYMBOL(pagevec_lookup_tag); 492EXPORT_SYMBOL(pagevec_lookup_tag);
493 493
494#ifdef CONFIG_SMP
495/*
496 * We tolerate a little inaccuracy to avoid ping-ponging the counter between
497 * CPUs
498 */
499#define ACCT_THRESHOLD max(16, NR_CPUS * 2)
500
501static DEFINE_PER_CPU(long, committed_space);
502
503void vm_acct_memory(long pages)
504{
505 long *local;
506
507 preempt_disable();
508 local = &__get_cpu_var(committed_space);
509 *local += pages;
510 if (*local > ACCT_THRESHOLD || *local < -ACCT_THRESHOLD) {
511 atomic_long_add(*local, &vm_committed_space);
512 *local = 0;
513 }
514 preempt_enable();
515}
516
517#ifdef CONFIG_HOTPLUG_CPU
518
519/* Drop the CPU's cached committed space back into the central pool. */
520static int cpu_swap_callback(struct notifier_block *nfb,
521 unsigned long action,
522 void *hcpu)
523{
524 long *committed;
525
526 committed = &per_cpu(committed_space, (long)hcpu);
527 if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) {
528 atomic_long_add(*committed, &vm_committed_space);
529 *committed = 0;
530 drain_cpu_pagevecs((long)hcpu);
531 }
532 return NOTIFY_OK;
533}
534#endif /* CONFIG_HOTPLUG_CPU */
535#endif /* CONFIG_SMP */
536
537/* 494/*
538 * Perform any setup for the swap system 495 * Perform any setup for the swap system
539 */ 496 */
@@ -554,7 +511,4 @@ void __init swap_setup(void)
554 * Right now other parts of the system means that we 511 * Right now other parts of the system means that we
555 * _really_ don't want to cluster much more 512 * _really_ don't want to cluster much more
556 */ 513 */
557#ifdef CONFIG_HOTPLUG_CPU
558 hotcpu_notifier(cpu_swap_callback, 0);
559#endif
560} 514}
diff --git a/mm/util.c b/mm/util.c
index 2599e83eea17..55bef160b9f1 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -223,6 +223,22 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
223} 223}
224#endif 224#endif
225 225
226/**
227 * get_user_pages_fast() - pin user pages in memory
228 * @start: starting user address
229 * @nr_pages: number of pages from start to pin
230 * @write: whether pages will be written to
231 * @pages: array that receives pointers to the pages pinned.
232 * Should be at least nr_pages long.
233 *
234 * Attempt to pin user pages in memory without taking mm->mmap_sem.
235 * If not successful, it will fall back to taking the lock and
236 * calling get_user_pages().
237 *
238 * Returns number of pages pinned. This may be fewer than the number
239 * requested. If nr_pages is 0 or negative, returns 0. If no pages
240 * were pinned, returns -errno.
241 */
226int __attribute__((weak)) get_user_pages_fast(unsigned long start, 242int __attribute__((weak)) get_user_pages_fast(unsigned long start,
227 int nr_pages, int write, struct page **pages) 243 int nr_pages, int write, struct page **pages)
228{ 244{
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index fab19876b4d1..083716ea38c9 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -402,6 +402,7 @@ overflow:
402 printk(KERN_WARNING 402 printk(KERN_WARNING
403 "vmap allocation for size %lu failed: " 403 "vmap allocation for size %lu failed: "
404 "use vmalloc=<size> to increase size.\n", size); 404 "use vmalloc=<size> to increase size.\n", size);
405 kfree(va);
405 return ERR_PTR(-EBUSY); 406 return ERR_PTR(-EBUSY);
406 } 407 }
407 408
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 39fdfb14eeaa..5fa3eda1f03f 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -63,6 +63,9 @@ struct scan_control {
63 /* Can mapped pages be reclaimed? */ 63 /* Can mapped pages be reclaimed? */
64 int may_unmap; 64 int may_unmap;
65 65
66 /* Can pages be swapped as part of reclaim? */
67 int may_swap;
68
66 /* This context's SWAP_CLUSTER_MAX. If freeing memory for 69 /* This context's SWAP_CLUSTER_MAX. If freeing memory for
67 * suspend, we effectively ignore SWAP_CLUSTER_MAX. 70 * suspend, we effectively ignore SWAP_CLUSTER_MAX.
68 * In this context, it doesn't matter that we scan the 71 * In this context, it doesn't matter that we scan the
@@ -1380,7 +1383,7 @@ static void get_scan_ratio(struct zone *zone, struct scan_control *sc,
1380 struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc); 1383 struct zone_reclaim_stat *reclaim_stat = get_reclaim_stat(zone, sc);
1381 1384
1382 /* If we have no swap space, do not bother scanning anon pages. */ 1385 /* If we have no swap space, do not bother scanning anon pages. */
1383 if (nr_swap_pages <= 0) { 1386 if (!sc->may_swap || (nr_swap_pages <= 0)) {
1384 percent[0] = 0; 1387 percent[0] = 0;
1385 percent[1] = 100; 1388 percent[1] = 100;
1386 return; 1389 return;
@@ -1468,7 +1471,7 @@ static void shrink_zone(int priority, struct zone *zone,
1468 1471
1469 for_each_evictable_lru(l) { 1472 for_each_evictable_lru(l) {
1470 int file = is_file_lru(l); 1473 int file = is_file_lru(l);
1471 int scan; 1474 unsigned long scan;
1472 1475
1473 scan = zone_nr_pages(zone, sc, l); 1476 scan = zone_nr_pages(zone, sc, l);
1474 if (priority) { 1477 if (priority) {
@@ -1697,6 +1700,7 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
1697 .may_writepage = !laptop_mode, 1700 .may_writepage = !laptop_mode,
1698 .swap_cluster_max = SWAP_CLUSTER_MAX, 1701 .swap_cluster_max = SWAP_CLUSTER_MAX,
1699 .may_unmap = 1, 1702 .may_unmap = 1,
1703 .may_swap = 1,
1700 .swappiness = vm_swappiness, 1704 .swappiness = vm_swappiness,
1701 .order = order, 1705 .order = order,
1702 .mem_cgroup = NULL, 1706 .mem_cgroup = NULL,
@@ -1717,6 +1721,7 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
1717 struct scan_control sc = { 1721 struct scan_control sc = {
1718 .may_writepage = !laptop_mode, 1722 .may_writepage = !laptop_mode,
1719 .may_unmap = 1, 1723 .may_unmap = 1,
1724 .may_swap = !noswap,
1720 .swap_cluster_max = SWAP_CLUSTER_MAX, 1725 .swap_cluster_max = SWAP_CLUSTER_MAX,
1721 .swappiness = swappiness, 1726 .swappiness = swappiness,
1722 .order = 0, 1727 .order = 0,
@@ -1726,9 +1731,6 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
1726 }; 1731 };
1727 struct zonelist *zonelist; 1732 struct zonelist *zonelist;
1728 1733
1729 if (noswap)
1730 sc.may_unmap = 0;
1731
1732 sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) | 1734 sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) |
1733 (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK); 1735 (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK);
1734 zonelist = NODE_DATA(numa_node_id())->node_zonelists; 1736 zonelist = NODE_DATA(numa_node_id())->node_zonelists;
@@ -1767,6 +1769,7 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order)
1767 struct scan_control sc = { 1769 struct scan_control sc = {
1768 .gfp_mask = GFP_KERNEL, 1770 .gfp_mask = GFP_KERNEL,
1769 .may_unmap = 1, 1771 .may_unmap = 1,
1772 .may_swap = 1,
1770 .swap_cluster_max = SWAP_CLUSTER_MAX, 1773 .swap_cluster_max = SWAP_CLUSTER_MAX,
1771 .swappiness = vm_swappiness, 1774 .swappiness = vm_swappiness,
1772 .order = order, 1775 .order = order,
@@ -2088,13 +2091,13 @@ static void shrink_all_zones(unsigned long nr_pages, int prio,
2088 nr_reclaimed += shrink_list(l, nr_to_scan, zone, 2091 nr_reclaimed += shrink_list(l, nr_to_scan, zone,
2089 sc, prio); 2092 sc, prio);
2090 if (nr_reclaimed >= nr_pages) { 2093 if (nr_reclaimed >= nr_pages) {
2091 sc->nr_reclaimed = nr_reclaimed; 2094 sc->nr_reclaimed += nr_reclaimed;
2092 return; 2095 return;
2093 } 2096 }
2094 } 2097 }
2095 } 2098 }
2096 } 2099 }
2097 sc->nr_reclaimed = nr_reclaimed; 2100 sc->nr_reclaimed += nr_reclaimed;
2098} 2101}
2099 2102
2100/* 2103/*
@@ -2115,6 +2118,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
2115 .may_unmap = 0, 2118 .may_unmap = 0,
2116 .may_writepage = 1, 2119 .may_writepage = 1,
2117 .isolate_pages = isolate_pages_global, 2120 .isolate_pages = isolate_pages_global,
2121 .nr_reclaimed = 0,
2118 }; 2122 };
2119 2123
2120 current->reclaim_state = &reclaim_state; 2124 current->reclaim_state = &reclaim_state;
@@ -2297,6 +2301,7 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
2297 struct scan_control sc = { 2301 struct scan_control sc = {
2298 .may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE), 2302 .may_writepage = !!(zone_reclaim_mode & RECLAIM_WRITE),
2299 .may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP), 2303 .may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP),
2304 .may_swap = 1,
2300 .swap_cluster_max = max_t(unsigned long, nr_pages, 2305 .swap_cluster_max = max_t(unsigned long, nr_pages,
2301 SWAP_CLUSTER_MAX), 2306 SWAP_CLUSTER_MAX),
2302 .gfp_mask = gfp_mask, 2307 .gfp_mask = gfp_mask,
diff --git a/net/9p/client.c b/net/9p/client.c
index 1eb580c38fbb..dd43a8289b0d 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -203,7 +203,6 @@ static struct p9_req_t *p9_tag_alloc(struct p9_client *c, u16 tag)
203 p9pdu_reset(req->tc); 203 p9pdu_reset(req->tc);
204 p9pdu_reset(req->rc); 204 p9pdu_reset(req->rc);
205 205
206 req->flush_tag = 0;
207 req->tc->tag = tag-1; 206 req->tc->tag = tag-1;
208 req->status = REQ_STATUS_ALLOC; 207 req->status = REQ_STATUS_ALLOC;
209 208
@@ -324,35 +323,9 @@ static void p9_free_req(struct p9_client *c, struct p9_req_t *r)
324 */ 323 */
325void p9_client_cb(struct p9_client *c, struct p9_req_t *req) 324void p9_client_cb(struct p9_client *c, struct p9_req_t *req)
326{ 325{
327 struct p9_req_t *other_req;
328 unsigned long flags;
329
330 P9_DPRINTK(P9_DEBUG_MUX, " tag %d\n", req->tc->tag); 326 P9_DPRINTK(P9_DEBUG_MUX, " tag %d\n", req->tc->tag);
331 327 wake_up(req->wq);
332 if (req->status == REQ_STATUS_ERROR) 328 P9_DPRINTK(P9_DEBUG_MUX, "wakeup: %d\n", req->tc->tag);
333 wake_up(req->wq);
334
335 if (req->flush_tag) { /* flush receive path */
336 P9_DPRINTK(P9_DEBUG_9P, "<<< RFLUSH %d\n", req->tc->tag);
337 spin_lock_irqsave(&c->lock, flags);
338 other_req = p9_tag_lookup(c, req->flush_tag);
339 if (other_req->status != REQ_STATUS_FLSH) /* stale flush */
340 spin_unlock_irqrestore(&c->lock, flags);
341 else {
342 other_req->status = REQ_STATUS_FLSHD;
343 spin_unlock_irqrestore(&c->lock, flags);
344 wake_up(other_req->wq);
345 }
346 p9_free_req(c, req);
347 } else { /* normal receive path */
348 P9_DPRINTK(P9_DEBUG_MUX, "normal: tag %d\n", req->tc->tag);
349 spin_lock_irqsave(&c->lock, flags);
350 if (req->status != REQ_STATUS_FLSHD)
351 req->status = REQ_STATUS_RCVD;
352 spin_unlock_irqrestore(&c->lock, flags);
353 wake_up(req->wq);
354 P9_DPRINTK(P9_DEBUG_MUX, "wakeup: %d\n", req->tc->tag);
355 }
356} 329}
357EXPORT_SYMBOL(p9_client_cb); 330EXPORT_SYMBOL(p9_client_cb);
358 331
@@ -486,9 +459,15 @@ static int p9_client_flush(struct p9_client *c, struct p9_req_t *oldreq)
486 if (IS_ERR(req)) 459 if (IS_ERR(req))
487 return PTR_ERR(req); 460 return PTR_ERR(req);
488 461
489 req->flush_tag = oldtag;
490 462
491 /* we don't free anything here because RPC isn't complete */ 463 /* if we haven't received a response for oldreq,
464 remove it from the list. */
465 spin_lock(&c->lock);
466 if (oldreq->status == REQ_STATUS_FLSH)
467 list_del(&oldreq->req_list);
468 spin_unlock(&c->lock);
469
470 p9_free_req(c, req);
492 return 0; 471 return 0;
493} 472}
494 473
@@ -509,7 +488,6 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...)
509 struct p9_req_t *req; 488 struct p9_req_t *req;
510 unsigned long flags; 489 unsigned long flags;
511 int sigpending; 490 int sigpending;
512 int flushed = 0;
513 491
514 P9_DPRINTK(P9_DEBUG_MUX, "client %p op %d\n", c, type); 492 P9_DPRINTK(P9_DEBUG_MUX, "client %p op %d\n", c, type);
515 493
@@ -546,42 +524,28 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...)
546 goto reterr; 524 goto reterr;
547 } 525 }
548 526
549 /* if it was a flush we just transmitted, return our tag */
550 if (type == P9_TFLUSH)
551 return req;
552again:
553 P9_DPRINTK(P9_DEBUG_MUX, "wait %p tag: %d\n", req->wq, tag); 527 P9_DPRINTK(P9_DEBUG_MUX, "wait %p tag: %d\n", req->wq, tag);
554 err = wait_event_interruptible(*req->wq, 528 err = wait_event_interruptible(*req->wq,
555 req->status >= REQ_STATUS_RCVD); 529 req->status >= REQ_STATUS_RCVD);
556 P9_DPRINTK(P9_DEBUG_MUX, "wait %p tag: %d returned %d (flushed=%d)\n", 530 P9_DPRINTK(P9_DEBUG_MUX, "wait %p tag: %d returned %d\n",
557 req->wq, tag, err, flushed); 531 req->wq, tag, err);
558 532
559 if (req->status == REQ_STATUS_ERROR) { 533 if (req->status == REQ_STATUS_ERROR) {
560 P9_DPRINTK(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err); 534 P9_DPRINTK(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err);
561 err = req->t_err; 535 err = req->t_err;
562 } else if (err == -ERESTARTSYS && flushed) {
563 P9_DPRINTK(P9_DEBUG_MUX, "flushed - going again\n");
564 goto again;
565 } else if (req->status == REQ_STATUS_FLSHD) {
566 P9_DPRINTK(P9_DEBUG_MUX, "flushed - erestartsys\n");
567 err = -ERESTARTSYS;
568 } 536 }
569 537
570 if ((err == -ERESTARTSYS) && (c->status == Connected) && (!flushed)) { 538 if ((err == -ERESTARTSYS) && (c->status == Connected)) {
571 P9_DPRINTK(P9_DEBUG_MUX, "flushing\n"); 539 P9_DPRINTK(P9_DEBUG_MUX, "flushing\n");
572 spin_lock_irqsave(&c->lock, flags);
573 if (req->status == REQ_STATUS_SENT)
574 req->status = REQ_STATUS_FLSH;
575 spin_unlock_irqrestore(&c->lock, flags);
576 sigpending = 1; 540 sigpending = 1;
577 flushed = 1;
578 clear_thread_flag(TIF_SIGPENDING); 541 clear_thread_flag(TIF_SIGPENDING);
579 542
580 if (c->trans_mod->cancel(c, req)) { 543 if (c->trans_mod->cancel(c, req))
581 err = p9_client_flush(c, req); 544 p9_client_flush(c, req);
582 if (err == 0) 545
583 goto again; 546 /* if we received the response anyway, don't signal error */
584 } 547 if (req->status == REQ_STATUS_RCVD)
548 err = 0;
585 } 549 }
586 550
587 if (sigpending) { 551 if (sigpending) {
@@ -1244,19 +1208,53 @@ struct p9_wstat *p9_client_stat(struct p9_fid *fid)
1244 ret->name, ret->uid, ret->gid, ret->muid, ret->extension, 1208 ret->name, ret->uid, ret->gid, ret->muid, ret->extension,
1245 ret->n_uid, ret->n_gid, ret->n_muid); 1209 ret->n_uid, ret->n_gid, ret->n_muid);
1246 1210
1211 p9_free_req(clnt, req);
1212 return ret;
1213
1247free_and_error: 1214free_and_error:
1248 p9_free_req(clnt, req); 1215 p9_free_req(clnt, req);
1249error: 1216error:
1250 return ret; 1217 kfree(ret);
1218 return ERR_PTR(err);
1251} 1219}
1252EXPORT_SYMBOL(p9_client_stat); 1220EXPORT_SYMBOL(p9_client_stat);
1253 1221
1222static int p9_client_statsize(struct p9_wstat *wst, int optional)
1223{
1224 int ret;
1225
1226 /* size[2] type[2] dev[4] qid[13] */
1227 /* mode[4] atime[4] mtime[4] length[8]*/
1228 /* name[s] uid[s] gid[s] muid[s] */
1229 ret = 2+2+4+13+4+4+4+8+2+2+2+2;
1230
1231 if (wst->name)
1232 ret += strlen(wst->name);
1233 if (wst->uid)
1234 ret += strlen(wst->uid);
1235 if (wst->gid)
1236 ret += strlen(wst->gid);
1237 if (wst->muid)
1238 ret += strlen(wst->muid);
1239
1240 if (optional) {
1241 ret += 2+4+4+4; /* extension[s] n_uid[4] n_gid[4] n_muid[4] */
1242 if (wst->extension)
1243 ret += strlen(wst->extension);
1244 }
1245
1246 return ret;
1247}
1248
1254int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst) 1249int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst)
1255{ 1250{
1256 int err; 1251 int err;
1257 struct p9_req_t *req; 1252 struct p9_req_t *req;
1258 struct p9_client *clnt; 1253 struct p9_client *clnt;
1259 1254
1255 err = 0;
1256 clnt = fid->clnt;
1257 wst->size = p9_client_statsize(wst, clnt->dotu);
1260 P9_DPRINTK(P9_DEBUG_9P, ">>> TWSTAT fid %d\n", fid->fid); 1258 P9_DPRINTK(P9_DEBUG_9P, ">>> TWSTAT fid %d\n", fid->fid);
1261 P9_DPRINTK(P9_DEBUG_9P, 1259 P9_DPRINTK(P9_DEBUG_9P,
1262 " sz=%x type=%x dev=%x qid=%x.%llx.%x\n" 1260 " sz=%x type=%x dev=%x qid=%x.%llx.%x\n"
@@ -1268,10 +1266,8 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst)
1268 wst->atime, wst->mtime, (unsigned long long)wst->length, 1266 wst->atime, wst->mtime, (unsigned long long)wst->length,
1269 wst->name, wst->uid, wst->gid, wst->muid, wst->extension, 1267 wst->name, wst->uid, wst->gid, wst->muid, wst->extension,
1270 wst->n_uid, wst->n_gid, wst->n_muid); 1268 wst->n_uid, wst->n_gid, wst->n_muid);
1271 err = 0;
1272 clnt = fid->clnt;
1273 1269
1274 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, 0, wst); 1270 req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size, wst);
1275 if (IS_ERR(req)) { 1271 if (IS_ERR(req)) {
1276 err = PTR_ERR(req); 1272 err = PTR_ERR(req);
1277 goto error; 1273 goto error;
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
index c613ed08a5ee..a2a1814c7a8d 100644
--- a/net/9p/trans_fd.c
+++ b/net/9p/trans_fd.c
@@ -213,8 +213,8 @@ static void p9_conn_cancel(struct p9_conn *m, int err)
213 spin_unlock_irqrestore(&m->client->lock, flags); 213 spin_unlock_irqrestore(&m->client->lock, flags);
214 214
215 list_for_each_entry_safe(req, rtmp, &cancel_list, req_list) { 215 list_for_each_entry_safe(req, rtmp, &cancel_list, req_list) {
216 list_del(&req->req_list);
217 P9_DPRINTK(P9_DEBUG_ERROR, "call back req %p\n", req); 216 P9_DPRINTK(P9_DEBUG_ERROR, "call back req %p\n", req);
217 list_del(&req->req_list);
218 p9_client_cb(m->client, req); 218 p9_client_cb(m->client, req);
219 } 219 }
220} 220}
@@ -336,7 +336,8 @@ static void p9_read_work(struct work_struct *work)
336 "mux %p pkt: size: %d bytes tag: %d\n", m, n, tag); 336 "mux %p pkt: size: %d bytes tag: %d\n", m, n, tag);
337 337
338 m->req = p9_tag_lookup(m->client, tag); 338 m->req = p9_tag_lookup(m->client, tag);
339 if (!m->req) { 339 if (!m->req || (m->req->status != REQ_STATUS_SENT &&
340 m->req->status != REQ_STATUS_FLSH)) {
340 P9_DPRINTK(P9_DEBUG_ERROR, "Unexpected packet tag %d\n", 341 P9_DPRINTK(P9_DEBUG_ERROR, "Unexpected packet tag %d\n",
341 tag); 342 tag);
342 err = -EIO; 343 err = -EIO;
@@ -361,10 +362,11 @@ static void p9_read_work(struct work_struct *work)
361 if ((m->req) && (m->rpos == m->rsize)) { /* packet is read in */ 362 if ((m->req) && (m->rpos == m->rsize)) { /* packet is read in */
362 P9_DPRINTK(P9_DEBUG_TRANS, "got new packet\n"); 363 P9_DPRINTK(P9_DEBUG_TRANS, "got new packet\n");
363 spin_lock(&m->client->lock); 364 spin_lock(&m->client->lock);
365 if (m->req->status != REQ_STATUS_ERROR)
366 m->req->status = REQ_STATUS_RCVD;
364 list_del(&m->req->req_list); 367 list_del(&m->req->req_list);
365 spin_unlock(&m->client->lock); 368 spin_unlock(&m->client->lock);
366 p9_client_cb(m->client, m->req); 369 p9_client_cb(m->client, m->req);
367
368 m->rbuf = NULL; 370 m->rbuf = NULL;
369 m->rpos = 0; 371 m->rpos = 0;
370 m->rsize = 0; 372 m->rsize = 0;
@@ -454,6 +456,7 @@ static void p9_write_work(struct work_struct *work)
454 req = list_entry(m->unsent_req_list.next, struct p9_req_t, 456 req = list_entry(m->unsent_req_list.next, struct p9_req_t,
455 req_list); 457 req_list);
456 req->status = REQ_STATUS_SENT; 458 req->status = REQ_STATUS_SENT;
459 P9_DPRINTK(P9_DEBUG_TRANS, "move req %p\n", req);
457 list_move_tail(&req->req_list, &m->req_list); 460 list_move_tail(&req->req_list, &m->req_list);
458 461
459 m->wbuf = req->tc->sdata; 462 m->wbuf = req->tc->sdata;
@@ -683,12 +686,13 @@ static int p9_fd_cancel(struct p9_client *client, struct p9_req_t *req)
683 P9_DPRINTK(P9_DEBUG_TRANS, "client %p req %p\n", client, req); 686 P9_DPRINTK(P9_DEBUG_TRANS, "client %p req %p\n", client, req);
684 687
685 spin_lock(&client->lock); 688 spin_lock(&client->lock);
686 list_del(&req->req_list);
687 689
688 if (req->status == REQ_STATUS_UNSENT) { 690 if (req->status == REQ_STATUS_UNSENT) {
691 list_del(&req->req_list);
689 req->status = REQ_STATUS_FLSHD; 692 req->status = REQ_STATUS_FLSHD;
690 ret = 0; 693 ret = 0;
691 } 694 } else if (req->status == REQ_STATUS_SENT)
695 req->status = REQ_STATUS_FLSH;
692 696
693 spin_unlock(&client->lock); 697 spin_unlock(&client->lock);
694 698
diff --git a/net/9p/trans_rdma.c b/net/9p/trans_rdma.c
index 7fa0eb20b2f6..ac4990041ebb 100644
--- a/net/9p/trans_rdma.c
+++ b/net/9p/trans_rdma.c
@@ -295,6 +295,7 @@ handle_recv(struct p9_client *client, struct p9_trans_rdma *rdma,
295 goto err_out; 295 goto err_out;
296 296
297 req->rc = c->rc; 297 req->rc = c->rc;
298 req->status = REQ_STATUS_RCVD;
298 p9_client_cb(client, req); 299 p9_client_cb(client, req);
299 300
300 return; 301 return;
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 2d7781ec663b..bb8579a141a8 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -134,6 +134,7 @@ static void req_done(struct virtqueue *vq)
134 P9_DPRINTK(P9_DEBUG_TRANS, ": rc %p\n", rc); 134 P9_DPRINTK(P9_DEBUG_TRANS, ": rc %p\n", rc);
135 P9_DPRINTK(P9_DEBUG_TRANS, ": lookup tag %d\n", rc->tag); 135 P9_DPRINTK(P9_DEBUG_TRANS, ": lookup tag %d\n", rc->tag);
136 req = p9_tag_lookup(chan->client, rc->tag); 136 req = p9_tag_lookup(chan->client, rc->tag);
137 req->status = REQ_STATUS_RCVD;
137 p9_client_cb(chan->client, req); 138 p9_client_cb(chan->client, req);
138 } 139 }
139} 140}
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 61309b26f271..fa47d5d84f5c 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -171,10 +171,8 @@ static void hci_conn_timeout(unsigned long arg)
171 switch (conn->state) { 171 switch (conn->state) {
172 case BT_CONNECT: 172 case BT_CONNECT:
173 case BT_CONNECT2: 173 case BT_CONNECT2:
174 if (conn->type == ACL_LINK) 174 if (conn->type == ACL_LINK && conn->out)
175 hci_acl_connect_cancel(conn); 175 hci_acl_connect_cancel(conn);
176 else
177 hci_acl_disconn(conn, 0x13);
178 break; 176 break;
179 case BT_CONFIG: 177 case BT_CONFIG:
180 case BT_CONNECTED: 178 case BT_CONNECTED:
@@ -292,6 +290,8 @@ int hci_conn_del(struct hci_conn *conn)
292 290
293 hci_conn_del_sysfs(conn); 291 hci_conn_del_sysfs(conn);
294 292
293 hci_dev_put(hdev);
294
295 return 0; 295 return 0;
296} 296}
297 297
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 4e7cb88e5da9..184ba0a88ec0 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1493,7 +1493,7 @@ static inline void hci_pin_code_request_evt(struct hci_dev *hdev, struct sk_buff
1493 hci_dev_lock(hdev); 1493 hci_dev_lock(hdev);
1494 1494
1495 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); 1495 conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
1496 if (conn) { 1496 if (conn && conn->state == BT_CONNECTED) {
1497 hci_conn_hold(conn); 1497 hci_conn_hold(conn);
1498 conn->disc_timeout = HCI_PAIRING_TIMEOUT; 1498 conn->disc_timeout = HCI_PAIRING_TIMEOUT;
1499 hci_conn_put(conn); 1499 hci_conn_put(conn);
diff --git a/net/bluetooth/hci_sysfs.c b/net/bluetooth/hci_sysfs.c
index a05d45eb3ba1..4cc3624bd22d 100644
--- a/net/bluetooth/hci_sysfs.c
+++ b/net/bluetooth/hci_sysfs.c
@@ -99,6 +99,8 @@ static void add_conn(struct work_struct *work)
99 BT_ERR("Failed to register connection device"); 99 BT_ERR("Failed to register connection device");
100 return; 100 return;
101 } 101 }
102
103 hci_dev_hold(hdev);
102} 104}
103 105
104/* 106/*
@@ -134,6 +136,7 @@ static void del_conn(struct work_struct *work)
134 136
135 device_del(&conn->dev); 137 device_del(&conn->dev);
136 put_device(&conn->dev); 138 put_device(&conn->dev);
139
137 hci_dev_put(hdev); 140 hci_dev_put(hdev);
138} 141}
139 142
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 30b88777c3df..5ee1a3682bf2 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -134,6 +134,10 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
134 if (skb->protocol == htons(ETH_P_PAUSE)) 134 if (skb->protocol == htons(ETH_P_PAUSE))
135 goto drop; 135 goto drop;
136 136
137 /* If STP is turned off, then forward */
138 if (p->br->stp_enabled == BR_NO_STP && dest[5] == 0)
139 goto forward;
140
137 if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev, 141 if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
138 NULL, br_handle_local_finish)) 142 NULL, br_handle_local_finish))
139 return NULL; /* frame consumed by filter */ 143 return NULL; /* frame consumed by filter */
@@ -141,6 +145,7 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
141 return skb; /* continue processing */ 145 return skb; /* continue processing */
142 } 146 }
143 147
148forward:
144 switch (p->state) { 149 switch (p->state) {
145 case BR_STATE_FORWARDING: 150 case BR_STATE_FORWARDING:
146 rhook = rcu_dereference(br_should_route_hook); 151 rhook = rcu_dereference(br_should_route_hook);
diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
index 6e63ec3f1fcf..0660515f3992 100644
--- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c
@@ -297,6 +297,9 @@ void br_topology_change_detection(struct net_bridge *br)
297{ 297{
298 int isroot = br_is_root_bridge(br); 298 int isroot = br_is_root_bridge(br);
299 299
300 if (br->stp_enabled != BR_KERNEL_STP)
301 return;
302
300 pr_info("%s: topology change detected, %s\n", br->dev->name, 303 pr_info("%s: topology change detected, %s\n", br->dev->name,
301 isroot ? "propagating" : "sending tcn bpdu"); 304 isroot ? "propagating" : "sending tcn bpdu");
302 305
diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c
index 9cc9f95b109e..6d62d4618cfc 100644
--- a/net/core/gen_estimator.c
+++ b/net/core/gen_estimator.c
@@ -66,9 +66,9 @@
66 66
67 NOTES. 67 NOTES.
68 68
69 * The stored value for avbps is scaled by 2^5, so that maximal 69 * avbps is scaled by 2^5, avpps is scaled by 2^10.
70 rate is ~1Gbit, avpps is scaled by 2^10. 70 * both values are reported as 32 bit unsigned values. bps can
71 71 overflow for fast links : max speed being 34360Mbit/sec
72 * Minimal interval is HZ/4=250msec (it is the greatest common divisor 72 * Minimal interval is HZ/4=250msec (it is the greatest common divisor
73 for HZ=100 and HZ=1024 8)), maximal interval 73 for HZ=100 and HZ=1024 8)), maximal interval
74 is (HZ*2^EST_MAX_INTERVAL)/4 = 8sec. Shorter intervals 74 is (HZ*2^EST_MAX_INTERVAL)/4 = 8sec. Shorter intervals
@@ -86,9 +86,9 @@ struct gen_estimator
86 spinlock_t *stats_lock; 86 spinlock_t *stats_lock;
87 int ewma_log; 87 int ewma_log;
88 u64 last_bytes; 88 u64 last_bytes;
89 u64 avbps;
89 u32 last_packets; 90 u32 last_packets;
90 u32 avpps; 91 u32 avpps;
91 u32 avbps;
92 struct rcu_head e_rcu; 92 struct rcu_head e_rcu;
93 struct rb_node node; 93 struct rb_node node;
94}; 94};
@@ -115,6 +115,7 @@ static void est_timer(unsigned long arg)
115 rcu_read_lock(); 115 rcu_read_lock();
116 list_for_each_entry_rcu(e, &elist[idx].list, list) { 116 list_for_each_entry_rcu(e, &elist[idx].list, list) {
117 u64 nbytes; 117 u64 nbytes;
118 u64 brate;
118 u32 npackets; 119 u32 npackets;
119 u32 rate; 120 u32 rate;
120 121
@@ -125,9 +126,9 @@ static void est_timer(unsigned long arg)
125 126
126 nbytes = e->bstats->bytes; 127 nbytes = e->bstats->bytes;
127 npackets = e->bstats->packets; 128 npackets = e->bstats->packets;
128 rate = (nbytes - e->last_bytes)<<(7 - idx); 129 brate = (nbytes - e->last_bytes)<<(7 - idx);
129 e->last_bytes = nbytes; 130 e->last_bytes = nbytes;
130 e->avbps += ((long)rate - (long)e->avbps) >> e->ewma_log; 131 e->avbps += ((s64)(brate - e->avbps)) >> e->ewma_log;
131 e->rate_est->bps = (e->avbps+0xF)>>5; 132 e->rate_est->bps = (e->avbps+0xF)>>5;
132 133
133 rate = (npackets - e->last_packets)<<(12 - idx); 134 rate = (npackets - e->last_packets)<<(12 - idx);
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index b5873bdff612..64f51eec6576 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -175,9 +175,13 @@ static void service_arp_queue(struct netpoll_info *npi)
175void netpoll_poll(struct netpoll *np) 175void netpoll_poll(struct netpoll *np)
176{ 176{
177 struct net_device *dev = np->dev; 177 struct net_device *dev = np->dev;
178 const struct net_device_ops *ops = dev->netdev_ops; 178 const struct net_device_ops *ops;
179
180 if (!dev || !netif_running(dev))
181 return;
179 182
180 if (!dev || !netif_running(dev) || !ops->ndo_poll_controller) 183 ops = dev->netdev_ops;
184 if (!ops->ndo_poll_controller)
181 return; 185 return;
182 186
183 /* Process pending work on NIC */ 187 /* Process pending work on NIC */
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index b2cf91e4ccaa..9d26a3da37e5 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -407,7 +407,7 @@ config INET_XFRM_MODE_BEET
407 If unsure, say Y. 407 If unsure, say Y.
408 408
409config INET_LRO 409config INET_LRO
410 tristate "Large Receive Offload (ipv4/tcp)" 410 bool "Large Receive Offload (ipv4/tcp)"
411 411
412 ---help--- 412 ---help---
413 Support for Large Receive Offload (ipv4/tcp). 413 Support for Large Receive Offload (ipv4/tcp).
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 90d22ae0a419..88bf051d0cbb 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -139,6 +139,8 @@ __be32 ic_servaddr = NONE; /* Boot server IP address */
139__be32 root_server_addr = NONE; /* Address of NFS server */ 139__be32 root_server_addr = NONE; /* Address of NFS server */
140u8 root_server_path[256] = { 0, }; /* Path to mount as root */ 140u8 root_server_path[256] = { 0, }; /* Path to mount as root */
141 141
142u32 ic_dev_xid; /* Device under configuration */
143
142/* vendor class identifier */ 144/* vendor class identifier */
143static char vendor_class_identifier[253] __initdata; 145static char vendor_class_identifier[253] __initdata;
144 146
@@ -932,6 +934,13 @@ static int __init ic_bootp_recv(struct sk_buff *skb, struct net_device *dev, str
932 goto drop_unlock; 934 goto drop_unlock;
933 } 935 }
934 936
937 /* Is it a reply for the device we are configuring? */
938 if (b->xid != ic_dev_xid) {
939 if (net_ratelimit())
940 printk(KERN_ERR "DHCP/BOOTP: Ignoring delayed packet \n");
941 goto drop_unlock;
942 }
943
935 /* Parse extensions */ 944 /* Parse extensions */
936 if (ext_len >= 4 && 945 if (ext_len >= 4 &&
937 !memcmp(b->exten, ic_bootp_cookie, 4)) { /* Check magic cookie */ 946 !memcmp(b->exten, ic_bootp_cookie, 4)) { /* Check magic cookie */
@@ -1115,6 +1124,9 @@ static int __init ic_dynamic(void)
1115 get_random_bytes(&timeout, sizeof(timeout)); 1124 get_random_bytes(&timeout, sizeof(timeout));
1116 timeout = CONF_BASE_TIMEOUT + (timeout % (unsigned) CONF_TIMEOUT_RANDOM); 1125 timeout = CONF_BASE_TIMEOUT + (timeout % (unsigned) CONF_TIMEOUT_RANDOM);
1117 for (;;) { 1126 for (;;) {
1127 /* Track the device we are configuring */
1128 ic_dev_xid = d->xid;
1129
1118#ifdef IPCONFIG_BOOTP 1130#ifdef IPCONFIG_BOOTP
1119 if (do_bootp && (d->able & IC_BOOTP)) 1131 if (do_bootp && (d->able & IC_BOOTP))
1120 ic_bootp_send_if(d, jiffies - start_jiffies); 1132 ic_bootp_send_if(d, jiffies - start_jiffies);
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 1d7f49c6f0ca..7a0f0b27bf1f 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1321,6 +1321,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
1321 struct task_struct *user_recv = NULL; 1321 struct task_struct *user_recv = NULL;
1322 int copied_early = 0; 1322 int copied_early = 0;
1323 struct sk_buff *skb; 1323 struct sk_buff *skb;
1324 u32 urg_hole = 0;
1324 1325
1325 lock_sock(sk); 1326 lock_sock(sk);
1326 1327
@@ -1532,7 +1533,8 @@ do_prequeue:
1532 } 1533 }
1533 } 1534 }
1534 } 1535 }
1535 if ((flags & MSG_PEEK) && peek_seq != tp->copied_seq) { 1536 if ((flags & MSG_PEEK) &&
1537 (peek_seq - copied - urg_hole != tp->copied_seq)) {
1536 if (net_ratelimit()) 1538 if (net_ratelimit())
1537 printk(KERN_DEBUG "TCP(%s:%d): Application bug, race in MSG_PEEK.\n", 1539 printk(KERN_DEBUG "TCP(%s:%d): Application bug, race in MSG_PEEK.\n",
1538 current->comm, task_pid_nr(current)); 1540 current->comm, task_pid_nr(current));
@@ -1553,6 +1555,7 @@ do_prequeue:
1553 if (!urg_offset) { 1555 if (!urg_offset) {
1554 if (!sock_flag(sk, SOCK_URGINLINE)) { 1556 if (!sock_flag(sk, SOCK_URGINLINE)) {
1555 ++*seq; 1557 ++*seq;
1558 urg_hole++;
1556 offset++; 1559 offset++;
1557 used--; 1560 used--;
1558 if (!used) 1561 if (!used)
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c
index efaf38349731..0a11515341ba 100644
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -479,7 +479,7 @@ minstrel_alloc_sta(void *priv, struct ieee80211_sta *sta, gfp_t gfp)
479 479
480 for (i = 0; i < IEEE80211_NUM_BANDS; i++) { 480 for (i = 0; i < IEEE80211_NUM_BANDS; i++) {
481 sband = hw->wiphy->bands[i]; 481 sband = hw->wiphy->bands[i];
482 if (sband->n_bitrates > max_rates) 482 if (sband && sband->n_bitrates > max_rates)
483 max_rates = sband->n_bitrates; 483 max_rates = sband->n_bitrates;
484 } 484 }
485 485
diff --git a/net/mac80211/rc80211_pid_algo.c b/net/mac80211/rc80211_pid_algo.c
index 6704fb55c6b2..a0bef767ceb5 100644
--- a/net/mac80211/rc80211_pid_algo.c
+++ b/net/mac80211/rc80211_pid_algo.c
@@ -380,7 +380,7 @@ static void *rate_control_pid_alloc(struct ieee80211_hw *hw,
380 380
381 for (i = 0; i < IEEE80211_NUM_BANDS; i++) { 381 for (i = 0; i < IEEE80211_NUM_BANDS; i++) {
382 sband = hw->wiphy->bands[i]; 382 sband = hw->wiphy->bands[i];
383 if (sband->n_bitrates > max_rates) 383 if (sband && sband->n_bitrates > max_rates)
384 max_rates = sband->n_bitrates; 384 max_rates = sband->n_bitrates;
385 } 385 }
386 386
diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
index 60aba45023ff..77bfdfeb966e 100644
--- a/net/netfilter/ipvs/ip_vs_conn.c
+++ b/net/netfilter/ipvs/ip_vs_conn.c
@@ -260,7 +260,10 @@ struct ip_vs_conn *ip_vs_ct_in_get
260 list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) { 260 list_for_each_entry(cp, &ip_vs_conn_tab[hash], c_list) {
261 if (cp->af == af && 261 if (cp->af == af &&
262 ip_vs_addr_equal(af, s_addr, &cp->caddr) && 262 ip_vs_addr_equal(af, s_addr, &cp->caddr) &&
263 ip_vs_addr_equal(af, d_addr, &cp->vaddr) && 263 /* protocol should only be IPPROTO_IP if
264 * d_addr is a fwmark */
265 ip_vs_addr_equal(protocol == IPPROTO_IP ? AF_UNSPEC : af,
266 d_addr, &cp->vaddr) &&
264 s_port == cp->cport && d_port == cp->vport && 267 s_port == cp->cport && d_port == cp->vport &&
265 cp->flags & IP_VS_CONN_F_TEMPLATE && 268 cp->flags & IP_VS_CONN_F_TEMPLATE &&
266 protocol == cp->protocol) { 269 protocol == cp->protocol) {
@@ -698,7 +701,9 @@ ip_vs_conn_new(int af, int proto, const union nf_inet_addr *caddr, __be16 cport,
698 cp->cport = cport; 701 cp->cport = cport;
699 ip_vs_addr_copy(af, &cp->vaddr, vaddr); 702 ip_vs_addr_copy(af, &cp->vaddr, vaddr);
700 cp->vport = vport; 703 cp->vport = vport;
701 ip_vs_addr_copy(af, &cp->daddr, daddr); 704 /* proto should only be IPPROTO_IP if d_addr is a fwmark */
705 ip_vs_addr_copy(proto == IPPROTO_IP ? AF_UNSPEC : af,
706 &cp->daddr, daddr);
702 cp->dport = dport; 707 cp->dport = dport;
703 cp->flags = flags; 708 cp->flags = flags;
704 spin_lock_init(&cp->lock); 709 spin_lock_init(&cp->lock);
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index cb3e031335eb..8dddb17a947a 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -278,7 +278,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
278 */ 278 */
279 if (svc->fwmark) { 279 if (svc->fwmark) {
280 union nf_inet_addr fwmark = { 280 union nf_inet_addr fwmark = {
281 .all = { 0, 0, 0, htonl(svc->fwmark) } 281 .ip = htonl(svc->fwmark)
282 }; 282 };
283 283
284 ct = ip_vs_ct_in_get(svc->af, IPPROTO_IP, &snet, 0, 284 ct = ip_vs_ct_in_get(svc->af, IPPROTO_IP, &snet, 0,
@@ -306,7 +306,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
306 */ 306 */
307 if (svc->fwmark) { 307 if (svc->fwmark) {
308 union nf_inet_addr fwmark = { 308 union nf_inet_addr fwmark = {
309 .all = { 0, 0, 0, htonl(svc->fwmark) } 309 .ip = htonl(svc->fwmark)
310 }; 310 };
311 311
312 ct = ip_vs_conn_new(svc->af, IPPROTO_IP, 312 ct = ip_vs_conn_new(svc->af, IPPROTO_IP,
diff --git a/net/rds/rds.h b/net/rds/rds.h
index 1f82ec0d2066..dbe111236783 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -638,7 +638,7 @@ struct rds_message *rds_send_get_message(struct rds_connection *,
638void rds_rdma_unuse(struct rds_sock *rs, u32 r_key, int force); 638void rds_rdma_unuse(struct rds_sock *rs, u32 r_key, int force);
639 639
640/* stats.c */ 640/* stats.c */
641DECLARE_PER_CPU(struct rds_statistics, rds_stats); 641DECLARE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats);
642#define rds_stats_inc_which(which, member) do { \ 642#define rds_stats_inc_which(which, member) do { \
643 per_cpu(which, get_cpu()).member++; \ 643 per_cpu(which, get_cpu()).member++; \
644 put_cpu(); \ 644 put_cpu(); \
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index ec697cebb63b..3b6418297231 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -303,6 +303,8 @@ restart:
303 switch (teql_resolve(skb, skb_res, slave)) { 303 switch (teql_resolve(skb, skb_res, slave)) {
304 case 0: 304 case 0:
305 if (__netif_tx_trylock(slave_txq)) { 305 if (__netif_tx_trylock(slave_txq)) {
306 unsigned int length = qdisc_pkt_len(skb);
307
306 if (!netif_tx_queue_stopped(slave_txq) && 308 if (!netif_tx_queue_stopped(slave_txq) &&
307 !netif_tx_queue_frozen(slave_txq) && 309 !netif_tx_queue_frozen(slave_txq) &&
308 slave_ops->ndo_start_xmit(skb, slave) == 0) { 310 slave_ops->ndo_start_xmit(skb, slave) == 0) {
@@ -310,8 +312,7 @@ restart:
310 master->slaves = NEXT_SLAVE(q); 312 master->slaves = NEXT_SLAVE(q);
311 netif_wake_queue(dev); 313 netif_wake_queue(dev);
312 master->stats.tx_packets++; 314 master->stats.tx_packets++;
313 master->stats.tx_bytes += 315 master->stats.tx_bytes += length;
314 qdisc_pkt_len(skb);
315 return 0; 316 return 0;
316 } 317 }
317 __netif_tx_unlock(slave_txq); 318 __netif_tx_unlock(slave_txq);
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index a0bfe53f1621..06ca058572f2 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -672,10 +672,8 @@ xprt_init_autodisconnect(unsigned long data)
672 if (test_and_set_bit(XPRT_LOCKED, &xprt->state)) 672 if (test_and_set_bit(XPRT_LOCKED, &xprt->state))
673 goto out_abort; 673 goto out_abort;
674 spin_unlock(&xprt->transport_lock); 674 spin_unlock(&xprt->transport_lock);
675 if (xprt_connecting(xprt)) 675 set_bit(XPRT_CONNECTION_CLOSE, &xprt->state);
676 xprt_release_write(xprt, NULL); 676 queue_work(rpciod_workqueue, &xprt->task_cleanup);
677 else
678 queue_work(rpciod_workqueue, &xprt->task_cleanup);
679 return; 677 return;
680out_abort: 678out_abort:
681 spin_unlock(&xprt->transport_lock); 679 spin_unlock(&xprt->transport_lock);
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index 629a28764da9..42a6f9f20285 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -265,7 +265,7 @@ static int fast_reg_read_chunks(struct svcxprt_rdma *xprt,
265 frmr->page_list->page_list[page_no] = 265 frmr->page_list->page_list[page_no] =
266 ib_dma_map_single(xprt->sc_cm_id->device, 266 ib_dma_map_single(xprt->sc_cm_id->device,
267 page_address(rqstp->rq_arg.pages[page_no]), 267 page_address(rqstp->rq_arg.pages[page_no]),
268 PAGE_SIZE, DMA_TO_DEVICE); 268 PAGE_SIZE, DMA_FROM_DEVICE);
269 if (ib_dma_mapping_error(xprt->sc_cm_id->device, 269 if (ib_dma_mapping_error(xprt->sc_cm_id->device,
270 frmr->page_list->page_list[page_no])) 270 frmr->page_list->page_list[page_no]))
271 goto fatal_err; 271 goto fatal_err;
diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
index 6c26a675435a..8b510c5e8777 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
@@ -183,6 +183,7 @@ static int fast_reg_xdr(struct svcxprt_rdma *xprt,
183 183
184 fatal_err: 184 fatal_err:
185 printk("svcrdma: Error fast registering memory for xprt %p\n", xprt); 185 printk("svcrdma: Error fast registering memory for xprt %p\n", xprt);
186 vec->frmr = NULL;
186 svc_rdma_put_frmr(xprt, frmr); 187 svc_rdma_put_frmr(xprt, frmr);
187 return -EIO; 188 return -EIO;
188} 189}
@@ -516,6 +517,7 @@ static int send_reply(struct svcxprt_rdma *rdma,
516 "svcrdma: could not post a receive buffer, err=%d." 517 "svcrdma: could not post a receive buffer, err=%d."
517 "Closing transport %p.\n", ret, rdma); 518 "Closing transport %p.\n", ret, rdma);
518 set_bit(XPT_CLOSE, &rdma->sc_xprt.xpt_flags); 519 set_bit(XPT_CLOSE, &rdma->sc_xprt.xpt_flags);
520 svc_rdma_put_frmr(rdma, vec->frmr);
519 svc_rdma_put_context(ctxt, 0); 521 svc_rdma_put_context(ctxt, 0);
520 return -ENOTCONN; 522 return -ENOTCONN;
521 } 523 }
@@ -606,6 +608,7 @@ static int send_reply(struct svcxprt_rdma *rdma,
606 return 0; 608 return 0;
607 609
608 err: 610 err:
611 svc_rdma_unmap_dma(ctxt);
609 svc_rdma_put_frmr(rdma, vec->frmr); 612 svc_rdma_put_frmr(rdma, vec->frmr);
610 svc_rdma_put_context(ctxt, 1); 613 svc_rdma_put_context(ctxt, 1);
611 return -EIO; 614 return -EIO;
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 3d810e7df3fb..4b0c2fa15e0b 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -520,8 +520,9 @@ int svc_rdma_post_recv(struct svcxprt_rdma *xprt)
520 svc_xprt_get(&xprt->sc_xprt); 520 svc_xprt_get(&xprt->sc_xprt);
521 ret = ib_post_recv(xprt->sc_qp, &recv_wr, &bad_recv_wr); 521 ret = ib_post_recv(xprt->sc_qp, &recv_wr, &bad_recv_wr);
522 if (ret) { 522 if (ret) {
523 svc_xprt_put(&xprt->sc_xprt); 523 svc_rdma_unmap_dma(ctxt);
524 svc_rdma_put_context(ctxt, 1); 524 svc_rdma_put_context(ctxt, 1);
525 svc_xprt_put(&xprt->sc_xprt);
525 } 526 }
526 return ret; 527 return ret;
527 528
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index d40ff50887aa..e18596146013 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -807,6 +807,9 @@ static void xs_reset_transport(struct sock_xprt *transport)
807 * 807 *
808 * This is used when all requests are complete; ie, no DRC state remains 808 * This is used when all requests are complete; ie, no DRC state remains
809 * on the server we want to save. 809 * on the server we want to save.
810 *
811 * The caller _must_ be holding XPRT_LOCKED in order to avoid issues with
812 * xs_reset_transport() zeroing the socket from underneath a writer.
810 */ 813 */
811static void xs_close(struct rpc_xprt *xprt) 814static void xs_close(struct rpc_xprt *xprt)
812{ 815{
@@ -824,6 +827,14 @@ static void xs_close(struct rpc_xprt *xprt)
824 xprt_disconnect_done(xprt); 827 xprt_disconnect_done(xprt);
825} 828}
826 829
830static void xs_tcp_close(struct rpc_xprt *xprt)
831{
832 if (test_and_clear_bit(XPRT_CONNECTION_CLOSE, &xprt->state))
833 xs_close(xprt);
834 else
835 xs_tcp_shutdown(xprt);
836}
837
827/** 838/**
828 * xs_destroy - prepare to shutdown a transport 839 * xs_destroy - prepare to shutdown a transport
829 * @xprt: doomed transport 840 * @xprt: doomed transport
@@ -1772,6 +1783,15 @@ static void xs_tcp_setup_socket(struct rpc_xprt *xprt,
1772 xprt, -status, xprt_connected(xprt), 1783 xprt, -status, xprt_connected(xprt),
1773 sock->sk->sk_state); 1784 sock->sk->sk_state);
1774 switch (status) { 1785 switch (status) {
1786 default:
1787 printk("%s: connect returned unhandled error %d\n",
1788 __func__, status);
1789 case -EADDRNOTAVAIL:
1790 /* We're probably in TIME_WAIT. Get rid of existing socket,
1791 * and retry
1792 */
1793 set_bit(XPRT_CONNECTION_CLOSE, &xprt->state);
1794 xprt_force_disconnect(xprt);
1775 case -ECONNREFUSED: 1795 case -ECONNREFUSED:
1776 case -ECONNRESET: 1796 case -ECONNRESET:
1777 case -ENETUNREACH: 1797 case -ENETUNREACH:
@@ -1782,10 +1802,6 @@ static void xs_tcp_setup_socket(struct rpc_xprt *xprt,
1782 xprt_clear_connecting(xprt); 1802 xprt_clear_connecting(xprt);
1783 return; 1803 return;
1784 } 1804 }
1785 /* get rid of existing socket, and retry */
1786 xs_tcp_shutdown(xprt);
1787 printk("%s: connect returned unhandled error %d\n",
1788 __func__, status);
1789out_eagain: 1805out_eagain:
1790 status = -EAGAIN; 1806 status = -EAGAIN;
1791out: 1807out:
@@ -1994,7 +2010,7 @@ static struct rpc_xprt_ops xs_tcp_ops = {
1994 .buf_free = rpc_free, 2010 .buf_free = rpc_free,
1995 .send_request = xs_tcp_send_request, 2011 .send_request = xs_tcp_send_request,
1996 .set_retrans_timeout = xprt_set_retrans_timeout_def, 2012 .set_retrans_timeout = xprt_set_retrans_timeout_def,
1997 .close = xs_tcp_shutdown, 2013 .close = xs_tcp_close,
1998 .destroy = xs_destroy, 2014 .destroy = xs_destroy,
1999 .print_stats = xs_tcp_print_stats, 2015 .print_stats = xs_tcp_print_stats,
2000}; 2016};
diff --git a/scripts/Makefile b/scripts/Makefile
index aafdf064feef..9dd5b25a1d53 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -21,6 +21,7 @@ hostprogs-y += unifdef
21subdir-$(CONFIG_MODVERSIONS) += genksyms 21subdir-$(CONFIG_MODVERSIONS) += genksyms
22subdir-y += mod 22subdir-y += mod
23subdir-$(CONFIG_SECURITY_SELINUX) += selinux 23subdir-$(CONFIG_SECURITY_SELINUX) += selinux
24subdir-$(CONFIG_DTC) += dtc
24 25
25# Let clean descend into subdirs 26# Let clean descend into subdirs
26subdir- += basic kconfig package selinux 27subdir- += basic kconfig package selinux
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 39a9642927d3..5c4b7a400c18 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -27,6 +27,9 @@ ccflags-y :=
27cppflags-y := 27cppflags-y :=
28ldflags-y := 28ldflags-y :=
29 29
30subdir-asflags-y :=
31subdir-ccflags-y :=
32
30# Read auto.conf if it exists, otherwise ignore 33# Read auto.conf if it exists, otherwise ignore
31-include include/config/auto.conf 34-include include/config/auto.conf
32 35
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 979619574f70..cba61ca403ca 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -4,6 +4,11 @@ ccflags-y += $(EXTRA_CFLAGS)
4cppflags-y += $(EXTRA_CPPFLAGS) 4cppflags-y += $(EXTRA_CPPFLAGS)
5ldflags-y += $(EXTRA_LDFLAGS) 5ldflags-y += $(EXTRA_LDFLAGS)
6 6
7#
8# flags that take effect in sub directories
9export KBUILD_SUBDIR_ASFLAGS := $(KBUILD_SUBDIR_ASFLAGS) $(subdir-asflags-y)
10export KBUILD_SUBDIR_CCFLAGS := $(KBUILD_SUBDIR_CCFLAGS) $(subdir-ccflags-y)
11
7# Figure out what we need to build from the various variables 12# Figure out what we need to build from the various variables
8# =========================================================================== 13# ===========================================================================
9 14
@@ -104,10 +109,10 @@ else
104debug_flags = 109debug_flags =
105endif 110endif
106 111
107orig_c_flags = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \ 112orig_c_flags = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(KBUILD_SUBDIR_CCFLAGS) \
108 $(ccflags-y) $(CFLAGS_$(basetarget).o) 113 $(ccflags-y) $(CFLAGS_$(basetarget).o)
109_c_flags = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags)) 114_c_flags = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags))
110_a_flags = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \ 115_a_flags = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) $(KBUILD_SUBDIR_ASFLAGS) \
111 $(asflags-y) $(AFLAGS_$(basetarget).o) 116 $(asflags-y) $(AFLAGS_$(basetarget).o)
112_cpp_flags = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F)) 117_cpp_flags = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
113 118
diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
new file mode 100644
index 000000000000..01cdb36fc583
--- /dev/null
+++ b/scripts/dtc/Makefile
@@ -0,0 +1,54 @@
1# scripts/dtc makefile
2
3hostprogs-y := dtc
4always := $(hostprogs-y)
5
6dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
7 srcpos.o checks.o
8dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
9
10# Source files need to get at the userspace version of libfdt_env.h to compile
11
12HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
13
14HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
15HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
16HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
17HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
18HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
19HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
20HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
21HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
22
23HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
24HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
25
26# dependencies on generated files need to be listed explicitly
27$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h
28$(obj)/dtc-lexer.lex.o: $(obj)/dtc-lexer.lex.c $(obj)/dtc-parser.tab.h
29
30targets += dtc-parser.tab.c dtc-lexer.lex.c
31
32clean-files += dtc-parser.tab.h
33
34# GENERATE_PARSER := 1 # Uncomment to rebuild flex/bison output
35
36ifdef GENERATE_PARSER
37
38BISON = bison
39FLEX = flex
40
41quiet_cmd_bison = BISON $@
42 cmd_bison = $(BISON) -o$@ -d $<; cp $@ $@_shipped
43quiet_cmd_flex = FLEX $@
44 cmd_flex = $(FLEX) -o$@ $<; cp $@ $@_shipped
45
46$(obj)/dtc-parser.tab.c: $(src)/dtc-parser.y FORCE
47 $(call if_changed,bison)
48
49$(obj)/dtc-parser.tab.h: $(obj)/dtc-parser.tab.c
50
51$(obj)/dtc-lexer.lex.c: $(src)/dtc-lexer.l FORCE
52 $(call if_changed,flex)
53
54endif
diff --git a/arch/powerpc/boot/dtc-src/Makefile.dtc b/scripts/dtc/Makefile.dtc
index 6ddf9ecac669..6ddf9ecac669 100644
--- a/arch/powerpc/boot/dtc-src/Makefile.dtc
+++ b/scripts/dtc/Makefile.dtc
diff --git a/arch/powerpc/boot/dtc-src/checks.c b/scripts/dtc/checks.c
index 95485796f253..95485796f253 100644
--- a/arch/powerpc/boot/dtc-src/checks.c
+++ b/scripts/dtc/checks.c
diff --git a/arch/powerpc/boot/dtc-src/data.c b/scripts/dtc/data.c
index dd2e3d39d4c1..dd2e3d39d4c1 100644
--- a/arch/powerpc/boot/dtc-src/data.c
+++ b/scripts/dtc/data.c
diff --git a/arch/powerpc/boot/dtc-src/dtc-lexer.l b/scripts/dtc/dtc-lexer.l
index 44dbfd3f0976..44dbfd3f0976 100644
--- a/arch/powerpc/boot/dtc-src/dtc-lexer.l
+++ b/scripts/dtc/dtc-lexer.l
diff --git a/arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index ac392cb040f6..ac392cb040f6 100644
--- a/arch/powerpc/boot/dtc-src/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
diff --git a/arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped b/scripts/dtc/dtc-parser.tab.c_shipped
index 27129377e5d2..27129377e5d2 100644
--- a/arch/powerpc/boot/dtc-src/dtc-parser.tab.c_shipped
+++ b/scripts/dtc/dtc-parser.tab.c_shipped
diff --git a/arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped b/scripts/dtc/dtc-parser.tab.h_shipped
index ba99100d55c9..ba99100d55c9 100644
--- a/arch/powerpc/boot/dtc-src/dtc-parser.tab.h_shipped
+++ b/scripts/dtc/dtc-parser.tab.h_shipped
diff --git a/arch/powerpc/boot/dtc-src/dtc-parser.y b/scripts/dtc/dtc-parser.y
index b2ab562420ea..b2ab562420ea 100644
--- a/arch/powerpc/boot/dtc-src/dtc-parser.y
+++ b/scripts/dtc/dtc-parser.y
diff --git a/arch/powerpc/boot/dtc-src/dtc.c b/scripts/dtc/dtc.c
index d8fd43b4ac1a..d8fd43b4ac1a 100644
--- a/arch/powerpc/boot/dtc-src/dtc.c
+++ b/scripts/dtc/dtc.c
diff --git a/arch/powerpc/boot/dtc-src/dtc.h b/scripts/dtc/dtc.h
index 08d54c870086..08d54c870086 100644
--- a/arch/powerpc/boot/dtc-src/dtc.h
+++ b/scripts/dtc/dtc.h
diff --git a/arch/powerpc/boot/dtc-src/flattree.c b/scripts/dtc/flattree.c
index 76acd28c068d..76acd28c068d 100644
--- a/arch/powerpc/boot/dtc-src/flattree.c
+++ b/scripts/dtc/flattree.c
diff --git a/arch/powerpc/boot/dtc-src/fstree.c b/scripts/dtc/fstree.c
index 766b2694d935..766b2694d935 100644
--- a/arch/powerpc/boot/dtc-src/fstree.c
+++ b/scripts/dtc/fstree.c
diff --git a/arch/powerpc/boot/libfdt/Makefile.libfdt b/scripts/dtc/libfdt/Makefile.libfdt
index 6c42acfa21ec..6c42acfa21ec 100644
--- a/arch/powerpc/boot/libfdt/Makefile.libfdt
+++ b/scripts/dtc/libfdt/Makefile.libfdt
diff --git a/arch/powerpc/boot/libfdt/fdt.c b/scripts/dtc/libfdt/fdt.c
index 2acaec5923ae..2acaec5923ae 100644
--- a/arch/powerpc/boot/libfdt/fdt.c
+++ b/scripts/dtc/libfdt/fdt.c
diff --git a/arch/powerpc/boot/libfdt/fdt.h b/scripts/dtc/libfdt/fdt.h
index 48ccfd910000..48ccfd910000 100644
--- a/arch/powerpc/boot/libfdt/fdt.h
+++ b/scripts/dtc/libfdt/fdt.h
diff --git a/arch/powerpc/boot/libfdt/fdt_ro.c b/scripts/dtc/libfdt/fdt_ro.c
index fbbba44fcd0d..fbbba44fcd0d 100644
--- a/arch/powerpc/boot/libfdt/fdt_ro.c
+++ b/scripts/dtc/libfdt/fdt_ro.c
diff --git a/arch/powerpc/boot/libfdt/fdt_rw.c b/scripts/dtc/libfdt/fdt_rw.c
index 8e7ec4cb7bcd..8e7ec4cb7bcd 100644
--- a/arch/powerpc/boot/libfdt/fdt_rw.c
+++ b/scripts/dtc/libfdt/fdt_rw.c
diff --git a/arch/powerpc/boot/libfdt/fdt_strerror.c b/scripts/dtc/libfdt/fdt_strerror.c
index e6c3ceee8c58..e6c3ceee8c58 100644
--- a/arch/powerpc/boot/libfdt/fdt_strerror.c
+++ b/scripts/dtc/libfdt/fdt_strerror.c
diff --git a/arch/powerpc/boot/libfdt/fdt_sw.c b/scripts/dtc/libfdt/fdt_sw.c
index 698329e0ccaf..698329e0ccaf 100644
--- a/arch/powerpc/boot/libfdt/fdt_sw.c
+++ b/scripts/dtc/libfdt/fdt_sw.c
diff --git a/arch/powerpc/boot/libfdt/fdt_wip.c b/scripts/dtc/libfdt/fdt_wip.c
index a4652c6e787e..a4652c6e787e 100644
--- a/arch/powerpc/boot/libfdt/fdt_wip.c
+++ b/scripts/dtc/libfdt/fdt_wip.c
diff --git a/arch/powerpc/boot/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h
index ce80e4fb41b2..ce80e4fb41b2 100644
--- a/arch/powerpc/boot/libfdt/libfdt.h
+++ b/scripts/dtc/libfdt/libfdt.h
diff --git a/arch/powerpc/boot/dtc-src/libfdt_env.h b/scripts/dtc/libfdt/libfdt_env.h
index 449bf602daf1..449bf602daf1 100644
--- a/arch/powerpc/boot/dtc-src/libfdt_env.h
+++ b/scripts/dtc/libfdt/libfdt_env.h
diff --git a/arch/powerpc/boot/libfdt/libfdt_internal.h b/scripts/dtc/libfdt/libfdt_internal.h
index 46eb93e4af5c..46eb93e4af5c 100644
--- a/arch/powerpc/boot/libfdt/libfdt_internal.h
+++ b/scripts/dtc/libfdt/libfdt_internal.h
diff --git a/arch/powerpc/boot/dtc-src/livetree.c b/scripts/dtc/livetree.c
index 0ca3de550b3f..0ca3de550b3f 100644
--- a/arch/powerpc/boot/dtc-src/livetree.c
+++ b/scripts/dtc/livetree.c
diff --git a/arch/powerpc/boot/dtc-src/srcpos.c b/scripts/dtc/srcpos.c
index 9641b7628b4d..9641b7628b4d 100644
--- a/arch/powerpc/boot/dtc-src/srcpos.c
+++ b/scripts/dtc/srcpos.c
diff --git a/arch/powerpc/boot/dtc-src/srcpos.h b/scripts/dtc/srcpos.h
index e17c7c04db8e..e17c7c04db8e 100644
--- a/arch/powerpc/boot/dtc-src/srcpos.h
+++ b/scripts/dtc/srcpos.h
diff --git a/arch/powerpc/boot/dtc-src/treesource.c b/scripts/dtc/treesource.c
index ebeb6eb27907..ebeb6eb27907 100644
--- a/arch/powerpc/boot/dtc-src/treesource.c
+++ b/scripts/dtc/treesource.c
diff --git a/arch/powerpc/boot/dtc-src/version_gen.h b/scripts/dtc/version_gen.h
index 658ff42429d6..658ff42429d6 100644
--- a/arch/powerpc/boot/dtc-src/version_gen.h
+++ b/scripts/dtc/version_gen.h
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 0f11870116dc..3208a3a7e7fe 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1411,7 +1411,8 @@ sub dump_struct($$) {
1411 my $file = shift; 1411 my $file = shift;
1412 my $nested; 1412 my $nested;
1413 1413
1414 if ($x =~/(struct|union)\s+(\w+)\s*{(.*)}/) { 1414 if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
1415 #my $decl_type = $1;
1415 $declaration_name = $2; 1416 $declaration_name = $2;
1416 my $members = $3; 1417 my $members = $3;
1417 1418
@@ -1420,8 +1421,8 @@ sub dump_struct($$) {
1420 $nested = $1; 1421 $nested = $1;
1421 1422
1422 # ignore members marked private: 1423 # ignore members marked private:
1423 $members =~ s/\/\*.*?private:.*?public:.*?\*\///gos; 1424 $members =~ s/\/\*\s*private:.*?\/\*\s*public:.*?\*\///gos;
1424 $members =~ s/\/\*.*?private:.*//gos; 1425 $members =~ s/\/\*\s*private:.*//gos;
1425 # strip comments: 1426 # strip comments:
1426 $members =~ s/\/\*.*?\*\///gos; 1427 $members =~ s/\/\*.*?\*\///gos;
1427 $nested =~ s/\/\*.*?\*\///gos; 1428 $nested =~ s/\/\*.*?\*\///gos;
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index df6e6286a065..161b7846733e 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -384,11 +384,19 @@ static int parse_elf(struct elf_info *info, const char *filename)
384 return 0; 384 return 0;
385 } 385 }
386 /* Fix endianness in ELF header */ 386 /* Fix endianness in ELF header */
387 hdr->e_shoff = TO_NATIVE(hdr->e_shoff); 387 hdr->e_type = TO_NATIVE(hdr->e_type);
388 hdr->e_shstrndx = TO_NATIVE(hdr->e_shstrndx); 388 hdr->e_machine = TO_NATIVE(hdr->e_machine);
389 hdr->e_shnum = TO_NATIVE(hdr->e_shnum); 389 hdr->e_version = TO_NATIVE(hdr->e_version);
390 hdr->e_machine = TO_NATIVE(hdr->e_machine); 390 hdr->e_entry = TO_NATIVE(hdr->e_entry);
391 hdr->e_type = TO_NATIVE(hdr->e_type); 391 hdr->e_phoff = TO_NATIVE(hdr->e_phoff);
392 hdr->e_shoff = TO_NATIVE(hdr->e_shoff);
393 hdr->e_flags = TO_NATIVE(hdr->e_flags);
394 hdr->e_ehsize = TO_NATIVE(hdr->e_ehsize);
395 hdr->e_phentsize = TO_NATIVE(hdr->e_phentsize);
396 hdr->e_phnum = TO_NATIVE(hdr->e_phnum);
397 hdr->e_shentsize = TO_NATIVE(hdr->e_shentsize);
398 hdr->e_shnum = TO_NATIVE(hdr->e_shnum);
399 hdr->e_shstrndx = TO_NATIVE(hdr->e_shstrndx);
392 sechdrs = (void *)hdr + hdr->e_shoff; 400 sechdrs = (void *)hdr + hdr->e_shoff;
393 info->sechdrs = sechdrs; 401 info->sechdrs = sechdrs;
394 402
@@ -402,13 +410,16 @@ static int parse_elf(struct elf_info *info, const char *filename)
402 410
403 /* Fix endianness in section headers */ 411 /* Fix endianness in section headers */
404 for (i = 0; i < hdr->e_shnum; i++) { 412 for (i = 0; i < hdr->e_shnum; i++) {
405 sechdrs[i].sh_type = TO_NATIVE(sechdrs[i].sh_type); 413 sechdrs[i].sh_name = TO_NATIVE(sechdrs[i].sh_name);
406 sechdrs[i].sh_offset = TO_NATIVE(sechdrs[i].sh_offset); 414 sechdrs[i].sh_type = TO_NATIVE(sechdrs[i].sh_type);
407 sechdrs[i].sh_size = TO_NATIVE(sechdrs[i].sh_size); 415 sechdrs[i].sh_flags = TO_NATIVE(sechdrs[i].sh_flags);
408 sechdrs[i].sh_link = TO_NATIVE(sechdrs[i].sh_link); 416 sechdrs[i].sh_addr = TO_NATIVE(sechdrs[i].sh_addr);
409 sechdrs[i].sh_name = TO_NATIVE(sechdrs[i].sh_name); 417 sechdrs[i].sh_offset = TO_NATIVE(sechdrs[i].sh_offset);
410 sechdrs[i].sh_info = TO_NATIVE(sechdrs[i].sh_info); 418 sechdrs[i].sh_size = TO_NATIVE(sechdrs[i].sh_size);
411 sechdrs[i].sh_addr = TO_NATIVE(sechdrs[i].sh_addr); 419 sechdrs[i].sh_link = TO_NATIVE(sechdrs[i].sh_link);
420 sechdrs[i].sh_info = TO_NATIVE(sechdrs[i].sh_info);
421 sechdrs[i].sh_addralign = TO_NATIVE(sechdrs[i].sh_addralign);
422 sechdrs[i].sh_entsize = TO_NATIVE(sechdrs[i].sh_entsize);
412 } 423 }
413 /* Find symbol table. */ 424 /* Find symbol table. */
414 for (i = 1; i < hdr->e_shnum; i++) { 425 for (i = 1; i < hdr->e_shnum; i++) {
@@ -716,41 +727,37 @@ int match(const char *sym, const char * const pat[])
716 727
717/* sections that we do not want to do full section mismatch check on */ 728/* sections that we do not want to do full section mismatch check on */
718static const char *section_white_list[] = 729static const char *section_white_list[] =
719 { ".debug*", ".stab*", ".note*", ".got*", ".toc*", NULL }; 730{
731 ".comment*",
732 ".debug*",
733 ".mdebug*", /* alpha, score, mips etc. */
734 ".pdr", /* alpha, score, mips etc. */
735 ".stab*",
736 ".note*",
737 ".got*",
738 ".toc*",
739 NULL
740};
720 741
721/* 742/*
722 * Is this section one we do not want to check? 743 * This is used to find sections missing the SHF_ALLOC flag.
723 * This is often debug sections.
724 * If we are going to check this section then
725 * test if section name ends with a dot and a number.
726 * This is used to find sections where the linker have
727 * appended a dot-number to make the name unique.
728 * The cause of this is often a section specified in assembler 744 * The cause of this is often a section specified in assembler
729 * without "ax" / "aw" and the same section used in .c 745 * without "ax" / "aw".
730 * code where gcc add these.
731 */ 746 */
732static int check_section(const char *modname, const char *sec) 747static void check_section(const char *modname, struct elf_info *elf,
733{ 748 Elf_Shdr *sechdr)
734 const char *e = sec + strlen(sec) - 1; 749{
735 if (match(sec, section_white_list)) 750 const char *sec = sech_name(elf, sechdr);
736 return 1; 751
737 752 if (sechdr->sh_type == SHT_PROGBITS &&
738 if (*e && isdigit(*e)) { 753 !(sechdr->sh_flags & SHF_ALLOC) &&
739 /* consume all digits */ 754 !match(sec, section_white_list)) {
740 while (*e && e != sec && isdigit(*e)) 755 warn("%s (%s): unexpected non-allocatable section.\n"
741 e--; 756 "Did you forget to use \"ax\"/\"aw\" in a .S file?\n"
742 if (*e == '.' && !strstr(sec, ".linkonce")) { 757 "Note that for example <linux/init.h> contains\n"
743 warn("%s (%s): unexpected section name.\n" 758 "section definitions for use in .S files.\n\n",
744 "The (.[number]+) following section name are " 759 modname, sec);
745 "ld generated and not expected.\n"
746 "Did you forget to use \"ax\"/\"aw\" "
747 "in a .S file?\n"
748 "Note that for example <linux/init.h> contains\n"
749 "section definitions for use in .S files.\n\n",
750 modname, sec);
751 }
752 } 760 }
753 return 0;
754} 761}
755 762
756 763
@@ -794,15 +801,6 @@ static const char *init_exit_sections[] =
794/* data section */ 801/* data section */
795static const char *data_sections[] = { DATA_SECTIONS, NULL }; 802static const char *data_sections[] = { DATA_SECTIONS, NULL };
796 803
797/* sections that may refer to an init/exit section with no warning */
798static const char *initref_sections[] =
799{
800 ".text.init.refok*",
801 ".exit.text.refok*",
802 ".data.init.refok*",
803 NULL
804};
805
806 804
807/* symbols in .data that may refer to init/exit sections */ 805/* symbols in .data that may refer to init/exit sections */
808static const char *symbol_white_list[] = 806static const char *symbol_white_list[] =
@@ -915,11 +913,6 @@ static int section_mismatch(const char *fromsec, const char *tosec)
915/** 913/**
916 * Whitelist to allow certain references to pass with no warning. 914 * Whitelist to allow certain references to pass with no warning.
917 * 915 *
918 * Pattern 0:
919 * Do not warn if funtion/data are marked with __init_refok/__initdata_refok.
920 * The pattern is identified by:
921 * fromsec = .text.init.refok* | .data.init.refok*
922 *
923 * Pattern 1: 916 * Pattern 1:
924 * If a module parameter is declared __initdata and permissions=0 917 * If a module parameter is declared __initdata and permissions=0
925 * then this is legal despite the warning generated. 918 * then this is legal despite the warning generated.
@@ -942,8 +935,7 @@ static int section_mismatch(const char *fromsec, const char *tosec)
942 * *probe_one, *_console, *_timer 935 * *probe_one, *_console, *_timer
943 * 936 *
944 * Pattern 3: 937 * Pattern 3:
945 * Whitelist all refereces from .text.head to .init.data 938 * Whitelist all references from .head.text to any init section
946 * Whitelist all refereces from .text.head to .init.text
947 * 939 *
948 * Pattern 4: 940 * Pattern 4:
949 * Some symbols belong to init section but still it is ok to reference 941 * Some symbols belong to init section but still it is ok to reference
@@ -958,10 +950,6 @@ static int section_mismatch(const char *fromsec, const char *tosec)
958static int secref_whitelist(const char *fromsec, const char *fromsym, 950static int secref_whitelist(const char *fromsec, const char *fromsym,
959 const char *tosec, const char *tosym) 951 const char *tosec, const char *tosym)
960{ 952{
961 /* Check for pattern 0 */
962 if (match(fromsec, initref_sections))
963 return 0;
964
965 /* Check for pattern 1 */ 953 /* Check for pattern 1 */
966 if (match(tosec, init_data_sections) && 954 if (match(tosec, init_data_sections) &&
967 match(fromsec, data_sections) && 955 match(fromsec, data_sections) &&
@@ -1377,7 +1365,7 @@ static void section_rela(const char *modname, struct elf_info *elf,
1377 fromsec = sech_name(elf, sechdr); 1365 fromsec = sech_name(elf, sechdr);
1378 fromsec += strlen(".rela"); 1366 fromsec += strlen(".rela");
1379 /* if from section (name) is know good then skip it */ 1367 /* if from section (name) is know good then skip it */
1380 if (check_section(modname, fromsec)) 1368 if (match(fromsec, section_white_list))
1381 return; 1369 return;
1382 1370
1383 for (rela = start; rela < stop; rela++) { 1371 for (rela = start; rela < stop; rela++) {
@@ -1421,7 +1409,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
1421 fromsec = sech_name(elf, sechdr); 1409 fromsec = sech_name(elf, sechdr);
1422 fromsec += strlen(".rel"); 1410 fromsec += strlen(".rel");
1423 /* if from section (name) is know good then skip it */ 1411 /* if from section (name) is know good then skip it */
1424 if (check_section(modname, fromsec)) 1412 if (match(fromsec, section_white_list))
1425 return; 1413 return;
1426 1414
1427 for (rel = start; rel < stop; rel++) { 1415 for (rel = start; rel < stop; rel++) {
@@ -1484,6 +1472,7 @@ static void check_sec_ref(struct module *mod, const char *modname,
1484 1472
1485 /* Walk through all sections */ 1473 /* Walk through all sections */
1486 for (i = 0; i < elf->hdr->e_shnum; i++) { 1474 for (i = 0; i < elf->hdr->e_shnum; i++) {
1475 check_section(modname, elf, &elf->sechdrs[i]);
1487 /* We want to process only relocation sections and not .init */ 1476 /* We want to process only relocation sections and not .init */
1488 if (sechdrs[i].sh_type == SHT_RELA) 1477 if (sechdrs[i].sh_type == SHT_RELA)
1489 section_rela(modname, elf, &elf->sechdrs[i]); 1478 section_rela(modname, elf, &elf->sechdrs[i]);
@@ -2008,6 +1997,7 @@ static void read_markers(const char *fname)
2008 if (!mod->skip) 1997 if (!mod->skip)
2009 add_marker(mod, marker, fmt); 1998 add_marker(mod, marker, fmt);
2010 } 1999 }
2000 release_file(file, size);
2011 return; 2001 return;
2012fail: 2002fail:
2013 fatal("parse error in markers list file\n"); 2003 fatal("parse error in markers list file\n");
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index 47e75b69a2e9..32c8554f3946 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -10,13 +10,12 @@ cd "${1:-.}" || usage
10 10
11# Check for git and a git repo. 11# Check for git and a git repo.
12if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then 12if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
13 # Do we have an untagged version? 13 # Do we have an untagged tag?
14 if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then 14 if atag=`git describe 2>/dev/null`; then
15 if tag=`git describe 2>/dev/null`; then 15 echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
16 echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' 16 # add -g${head}, if there is no usable tag
17 else 17 else
18 printf '%s%s' -g $head 18 printf '%s%s' -g $head
19 fi
20 fi 19 fi
21 20
22 # Is this git on svn? 21 # Is this git on svn?
diff --git a/scripts/tags.sh b/scripts/tags.sh
index 5bd8b1003d44..4a34ec591e8c 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -164,10 +164,12 @@ case "$1" in
164 ;; 164 ;;
165 165
166 "tags") 166 "tags")
167 rm -f tags
167 xtags ctags 168 xtags ctags
168 ;; 169 ;;
169 170
170 "TAGS") 171 "TAGS")
172 rm -f TAGS
171 xtags etags 173 xtags etags
172 ;; 174 ;;
173esac 175esac
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index ba808ef6babb..2fcad7c33eaf 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3153,7 +3153,7 @@ static int selinux_file_send_sigiotask(struct task_struct *tsk,
3153 struct fown_struct *fown, int signum) 3153 struct fown_struct *fown, int signum)
3154{ 3154{
3155 struct file *file; 3155 struct file *file;
3156 u32 sid = current_sid(); 3156 u32 sid = task_sid(tsk);
3157 u32 perm; 3157 u32 perm;
3158 struct file_security_struct *fsec; 3158 struct file_security_struct *fsec;
3159 3159
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 921514902eca..98b3195347ab 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -609,8 +609,12 @@ static int smack_inode_setxattr(struct dentry *dentry, const char *name,
609 strcmp(name, XATTR_NAME_SMACKIPOUT) == 0) { 609 strcmp(name, XATTR_NAME_SMACKIPOUT) == 0) {
610 if (!capable(CAP_MAC_ADMIN)) 610 if (!capable(CAP_MAC_ADMIN))
611 rc = -EPERM; 611 rc = -EPERM;
612 /* a label cannot be void and cannot begin with '-' */ 612 /*
613 if (size == 0 || (size > 0 && ((char *)value)[0] == '-')) 613 * check label validity here so import wont fail on
614 * post_setxattr
615 */
616 if (size == 0 || size >= SMK_LABELLEN ||
617 smk_import(value, size) == NULL)
614 rc = -EINVAL; 618 rc = -EINVAL;
615 } else 619 } else
616 rc = cap_inode_setxattr(dentry, name, value, size, flags); 620 rc = cap_inode_setxattr(dentry, name, value, size, flags);
@@ -644,9 +648,6 @@ static void smack_inode_post_setxattr(struct dentry *dentry, const char *name,
644 if (strcmp(name, XATTR_NAME_SMACK)) 648 if (strcmp(name, XATTR_NAME_SMACK))
645 return; 649 return;
646 650
647 if (size >= SMK_LABELLEN)
648 return;
649
650 isp = dentry->d_inode->i_security; 651 isp = dentry->d_inode->i_security;
651 652
652 /* 653 /*
diff --git a/security/tomoyo/common.c b/security/tomoyo/common.c
index a0affd9cfca8..ddfb9cccf468 100644
--- a/security/tomoyo/common.c
+++ b/security/tomoyo/common.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
@@ -1720,14 +1720,14 @@ static bool tomoyo_policy_loader_exists(void)
1720 * policies are not loaded yet. 1720 * policies are not loaded yet.
1721 * Thus, let do_execve() call this function everytime. 1721 * Thus, let do_execve() call this function everytime.
1722 */ 1722 */
1723 struct nameidata nd; 1723 struct path path;
1724 1724
1725 if (path_lookup(tomoyo_loader, LOOKUP_FOLLOW, &nd)) { 1725 if (kern_path(tomoyo_loader, LOOKUP_FOLLOW, &path)) {
1726 printk(KERN_INFO "Not activating Mandatory Access Control now " 1726 printk(KERN_INFO "Not activating Mandatory Access Control now "
1727 "since %s doesn't exist.\n", tomoyo_loader); 1727 "since %s doesn't exist.\n", tomoyo_loader);
1728 return false; 1728 return false;
1729 } 1729 }
1730 path_put(&nd.path); 1730 path_put(&path);
1731 return true; 1731 return true;
1732} 1732}
1733 1733
@@ -1773,7 +1773,7 @@ void tomoyo_load_policy(const char *filename)
1773 envp[2] = NULL; 1773 envp[2] = NULL;
1774 call_usermodehelper(argv[0], argv, envp, 1); 1774 call_usermodehelper(argv[0], argv, envp, 1);
1775 1775
1776 printk(KERN_INFO "TOMOYO: 2.2.0-pre 2009/02/01\n"); 1776 printk(KERN_INFO "TOMOYO: 2.2.0 2009/04/01\n");
1777 printk(KERN_INFO "Mandatory Access Control activated.\n"); 1777 printk(KERN_INFO "Mandatory Access Control activated.\n");
1778 tomoyo_policy_loaded = true; 1778 tomoyo_policy_loaded = true;
1779 { /* Check all profiles currently assigned to domains are defined. */ 1779 { /* Check all profiles currently assigned to domains are defined. */
@@ -1800,7 +1800,7 @@ void tomoyo_load_policy(const char *filename)
1800static int tomoyo_read_version(struct tomoyo_io_buffer *head) 1800static int tomoyo_read_version(struct tomoyo_io_buffer *head)
1801{ 1801{
1802 if (!head->read_eof) { 1802 if (!head->read_eof) {
1803 tomoyo_io_printf(head, "2.2.0-pre"); 1803 tomoyo_io_printf(head, "2.2.0");
1804 head->read_eof = true; 1804 head->read_eof = true;
1805 } 1805 }
1806 return 0; 1806 return 0;
diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h
index e77e6a6de0f2..678f4ff16aa4 100644
--- a/security/tomoyo/common.h
+++ b/security/tomoyo/common.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/security/tomoyo/domain.c b/security/tomoyo/domain.c
index 2f2b449ffd2d..2d6748741a26 100644
--- a/security/tomoyo/domain.c
+++ b/security/tomoyo/domain.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
index 65f50c1c5ee9..2316da8ec5bc 100644
--- a/security/tomoyo/file.c
+++ b/security/tomoyo/file.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c
index 3bbe01a7a4b5..40927a84cb6e 100644
--- a/security/tomoyo/realpath.c
+++ b/security/tomoyo/realpath.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
@@ -165,11 +165,11 @@ char *tomoyo_realpath_from_path(struct path *path)
165 */ 165 */
166char *tomoyo_realpath(const char *pathname) 166char *tomoyo_realpath(const char *pathname)
167{ 167{
168 struct nameidata nd; 168 struct path path;
169 169
170 if (pathname && path_lookup(pathname, LOOKUP_FOLLOW, &nd) == 0) { 170 if (pathname && kern_path(pathname, LOOKUP_FOLLOW, &path) == 0) {
171 char *buf = tomoyo_realpath_from_path(&nd.path); 171 char *buf = tomoyo_realpath_from_path(&path);
172 path_put(&nd.path); 172 path_put(&path);
173 return buf; 173 return buf;
174 } 174 }
175 return NULL; 175 return NULL;
@@ -184,11 +184,11 @@ char *tomoyo_realpath(const char *pathname)
184 */ 184 */
185char *tomoyo_realpath_nofollow(const char *pathname) 185char *tomoyo_realpath_nofollow(const char *pathname)
186{ 186{
187 struct nameidata nd; 187 struct path path;
188 188
189 if (pathname && path_lookup(pathname, 0, &nd) == 0) { 189 if (pathname && kern_path(pathname, 0, &path) == 0) {
190 char *buf = tomoyo_realpath_from_path(&nd.path); 190 char *buf = tomoyo_realpath_from_path(&path);
191 path_put(&nd.path); 191 path_put(&path);
192 return buf; 192 return buf;
193 } 193 }
194 return NULL; 194 return NULL;
diff --git a/security/tomoyo/realpath.h b/security/tomoyo/realpath.h
index 7ec9fc9cbc07..78217a37960b 100644
--- a/security/tomoyo/realpath.h
+++ b/security/tomoyo/realpath.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
index 3eeeae12c4dc..5b481912752a 100644
--- a/security/tomoyo/tomoyo.c
+++ b/security/tomoyo/tomoyo.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/security/tomoyo/tomoyo.h b/security/tomoyo/tomoyo.h
index a0c8f6e0bea4..41c6ebafb9c5 100644
--- a/security/tomoyo/tomoyo.h
+++ b/security/tomoyo/tomoyo.h
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 2005-2009 NTT DATA CORPORATION 6 * Copyright (C) 2005-2009 NTT DATA CORPORATION
7 * 7 *
8 * Version: 2.2.0-pre 2009/02/01 8 * Version: 2.2.0 2009/04/01
9 * 9 *
10 */ 10 */
11 11
diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
index 15500b9d2da0..84bb07d39a7f 100644
--- a/sound/aoa/codecs/onyx.c
+++ b/sound/aoa/codecs/onyx.c
@@ -47,7 +47,7 @@ MODULE_DESCRIPTION("pcm3052 (onyx) codec driver for snd-aoa");
47struct onyx { 47struct onyx {
48 /* cache registers 65 to 80, they are write-only! */ 48 /* cache registers 65 to 80, they are write-only! */
49 u8 cache[16]; 49 u8 cache[16];
50 struct i2c_client i2c; 50 struct i2c_client *i2c;
51 struct aoa_codec codec; 51 struct aoa_codec codec;
52 u32 initialised:1, 52 u32 initialised:1,
53 spdif_locked:1, 53 spdif_locked:1,
@@ -72,7 +72,7 @@ static int onyx_read_register(struct onyx *onyx, u8 reg, u8 *value)
72 *value = onyx->cache[reg-FIRSTREGISTER]; 72 *value = onyx->cache[reg-FIRSTREGISTER];
73 return 0; 73 return 0;
74 } 74 }
75 v = i2c_smbus_read_byte_data(&onyx->i2c, reg); 75 v = i2c_smbus_read_byte_data(onyx->i2c, reg);
76 if (v < 0) 76 if (v < 0)
77 return -1; 77 return -1;
78 *value = (u8)v; 78 *value = (u8)v;
@@ -84,7 +84,7 @@ static int onyx_write_register(struct onyx *onyx, u8 reg, u8 value)
84{ 84{
85 int result; 85 int result;
86 86
87 result = i2c_smbus_write_byte_data(&onyx->i2c, reg, value); 87 result = i2c_smbus_write_byte_data(onyx->i2c, reg, value);
88 if (!result) 88 if (!result)
89 onyx->cache[reg-FIRSTREGISTER] = value; 89 onyx->cache[reg-FIRSTREGISTER] = value;
90 return result; 90 return result;
@@ -996,12 +996,45 @@ static void onyx_exit_codec(struct aoa_codec *codec)
996 onyx->codec.soundbus_dev->detach_codec(onyx->codec.soundbus_dev, onyx); 996 onyx->codec.soundbus_dev->detach_codec(onyx->codec.soundbus_dev, onyx);
997} 997}
998 998
999static struct i2c_driver onyx_driver;
1000
1001static int onyx_create(struct i2c_adapter *adapter, 999static int onyx_create(struct i2c_adapter *adapter,
1002 struct device_node *node, 1000 struct device_node *node,
1003 int addr) 1001 int addr)
1004{ 1002{
1003 struct i2c_board_info info;
1004 struct i2c_client *client;
1005
1006 memset(&info, 0, sizeof(struct i2c_board_info));
1007 strlcpy(info.type, "aoa_codec_onyx", I2C_NAME_SIZE);
1008 info.addr = addr;
1009 info.platform_data = node;
1010 client = i2c_new_device(adapter, &info);
1011 if (!client)
1012 return -ENODEV;
1013
1014 /*
1015 * We know the driver is already loaded, so the device should be
1016 * already bound. If not it means binding failed, which suggests
1017 * the device doesn't really exist and should be deleted.
1018 * Ideally this would be replaced by better checks _before_
1019 * instantiating the device.
1020 */
1021 if (!client->driver) {
1022 i2c_unregister_device(client);
1023 return -ENODEV;
1024 }
1025
1026 /*
1027 * Let i2c-core delete that device on driver removal.
1028 * This is safe because i2c-core holds the core_lock mutex for us.
1029 */
1030 list_add_tail(&client->detected, &client->driver->clients);
1031 return 0;
1032}
1033
1034static int onyx_i2c_probe(struct i2c_client *client,
1035 const struct i2c_device_id *id)
1036{
1037 struct device_node *node = client->dev.platform_data;
1005 struct onyx *onyx; 1038 struct onyx *onyx;
1006 u8 dummy; 1039 u8 dummy;
1007 1040
@@ -1011,20 +1044,12 @@ static int onyx_create(struct i2c_adapter *adapter,
1011 return -ENOMEM; 1044 return -ENOMEM;
1012 1045
1013 mutex_init(&onyx->mutex); 1046 mutex_init(&onyx->mutex);
1014 onyx->i2c.driver = &onyx_driver; 1047 onyx->i2c = client;
1015 onyx->i2c.adapter = adapter; 1048 i2c_set_clientdata(client, onyx);
1016 onyx->i2c.addr = addr & 0x7f;
1017 strlcpy(onyx->i2c.name, "onyx audio codec", I2C_NAME_SIZE);
1018
1019 if (i2c_attach_client(&onyx->i2c)) {
1020 printk(KERN_ERR PFX "failed to attach to i2c\n");
1021 goto fail;
1022 }
1023 1049
1024 /* we try to read from register ONYX_REG_CONTROL 1050 /* we try to read from register ONYX_REG_CONTROL
1025 * to check if the codec is present */ 1051 * to check if the codec is present */
1026 if (onyx_read_register(onyx, ONYX_REG_CONTROL, &dummy) != 0) { 1052 if (onyx_read_register(onyx, ONYX_REG_CONTROL, &dummy) != 0) {
1027 i2c_detach_client(&onyx->i2c);
1028 printk(KERN_ERR PFX "failed to read control register\n"); 1053 printk(KERN_ERR PFX "failed to read control register\n");
1029 goto fail; 1054 goto fail;
1030 } 1055 }
@@ -1036,14 +1061,14 @@ static int onyx_create(struct i2c_adapter *adapter,
1036 onyx->codec.node = of_node_get(node); 1061 onyx->codec.node = of_node_get(node);
1037 1062
1038 if (aoa_codec_register(&onyx->codec)) { 1063 if (aoa_codec_register(&onyx->codec)) {
1039 i2c_detach_client(&onyx->i2c);
1040 goto fail; 1064 goto fail;
1041 } 1065 }
1042 printk(KERN_DEBUG PFX "created and attached onyx instance\n"); 1066 printk(KERN_DEBUG PFX "created and attached onyx instance\n");
1043 return 0; 1067 return 0;
1044 fail: 1068 fail:
1069 i2c_set_clientdata(client, NULL);
1045 kfree(onyx); 1070 kfree(onyx);
1046 return -EINVAL; 1071 return -ENODEV;
1047} 1072}
1048 1073
1049static int onyx_i2c_attach(struct i2c_adapter *adapter) 1074static int onyx_i2c_attach(struct i2c_adapter *adapter)
@@ -1080,28 +1105,33 @@ static int onyx_i2c_attach(struct i2c_adapter *adapter)
1080 return onyx_create(adapter, NULL, 0x47); 1105 return onyx_create(adapter, NULL, 0x47);
1081} 1106}
1082 1107
1083static int onyx_i2c_detach(struct i2c_client *client) 1108static int onyx_i2c_remove(struct i2c_client *client)
1084{ 1109{
1085 struct onyx *onyx = container_of(client, struct onyx, i2c); 1110 struct onyx *onyx = i2c_get_clientdata(client);
1086 int err;
1087 1111
1088 if ((err = i2c_detach_client(client)))
1089 return err;
1090 aoa_codec_unregister(&onyx->codec); 1112 aoa_codec_unregister(&onyx->codec);
1091 of_node_put(onyx->codec.node); 1113 of_node_put(onyx->codec.node);
1092 if (onyx->codec_info) 1114 if (onyx->codec_info)
1093 kfree(onyx->codec_info); 1115 kfree(onyx->codec_info);
1116 i2c_set_clientdata(client, onyx);
1094 kfree(onyx); 1117 kfree(onyx);
1095 return 0; 1118 return 0;
1096} 1119}
1097 1120
1121static const struct i2c_device_id onyx_i2c_id[] = {
1122 { "aoa_codec_onyx", 0 },
1123 { }
1124};
1125
1098static struct i2c_driver onyx_driver = { 1126static struct i2c_driver onyx_driver = {
1099 .driver = { 1127 .driver = {
1100 .name = "aoa_codec_onyx", 1128 .name = "aoa_codec_onyx",
1101 .owner = THIS_MODULE, 1129 .owner = THIS_MODULE,
1102 }, 1130 },
1103 .attach_adapter = onyx_i2c_attach, 1131 .attach_adapter = onyx_i2c_attach,
1104 .detach_client = onyx_i2c_detach, 1132 .probe = onyx_i2c_probe,
1133 .remove = onyx_i2c_remove,
1134 .id_table = onyx_i2c_id,
1105}; 1135};
1106 1136
1107static int __init onyx_init(void) 1137static int __init onyx_init(void)
diff --git a/sound/aoa/codecs/tas.c b/sound/aoa/codecs/tas.c
index 008e0f85097d..f0ebc971c686 100644
--- a/sound/aoa/codecs/tas.c
+++ b/sound/aoa/codecs/tas.c
@@ -82,7 +82,7 @@ MODULE_DESCRIPTION("tas codec driver for snd-aoa");
82 82
83struct tas { 83struct tas {
84 struct aoa_codec codec; 84 struct aoa_codec codec;
85 struct i2c_client i2c; 85 struct i2c_client *i2c;
86 u32 mute_l:1, mute_r:1 , 86 u32 mute_l:1, mute_r:1 ,
87 controls_created:1 , 87 controls_created:1 ,
88 drc_enabled:1, 88 drc_enabled:1,
@@ -108,9 +108,9 @@ static struct tas *codec_to_tas(struct aoa_codec *codec)
108static inline int tas_write_reg(struct tas *tas, u8 reg, u8 len, u8 *data) 108static inline int tas_write_reg(struct tas *tas, u8 reg, u8 len, u8 *data)
109{ 109{
110 if (len == 1) 110 if (len == 1)
111 return i2c_smbus_write_byte_data(&tas->i2c, reg, *data); 111 return i2c_smbus_write_byte_data(tas->i2c, reg, *data);
112 else 112 else
113 return i2c_smbus_write_i2c_block_data(&tas->i2c, reg, len, data); 113 return i2c_smbus_write_i2c_block_data(tas->i2c, reg, len, data);
114} 114}
115 115
116static void tas3004_set_drc(struct tas *tas) 116static void tas3004_set_drc(struct tas *tas)
@@ -882,12 +882,34 @@ static void tas_exit_codec(struct aoa_codec *codec)
882} 882}
883 883
884 884
885static struct i2c_driver tas_driver;
886
887static int tas_create(struct i2c_adapter *adapter, 885static int tas_create(struct i2c_adapter *adapter,
888 struct device_node *node, 886 struct device_node *node,
889 int addr) 887 int addr)
890{ 888{
889 struct i2c_board_info info;
890 struct i2c_client *client;
891
892 memset(&info, 0, sizeof(struct i2c_board_info));
893 strlcpy(info.type, "aoa_codec_tas", I2C_NAME_SIZE);
894 info.addr = addr;
895 info.platform_data = node;
896
897 client = i2c_new_device(adapter, &info);
898 if (!client)
899 return -ENODEV;
900
901 /*
902 * Let i2c-core delete that device on driver removal.
903 * This is safe because i2c-core holds the core_lock mutex for us.
904 */
905 list_add_tail(&client->detected, &client->driver->clients);
906 return 0;
907}
908
909static int tas_i2c_probe(struct i2c_client *client,
910 const struct i2c_device_id *id)
911{
912 struct device_node *node = client->dev.platform_data;
891 struct tas *tas; 913 struct tas *tas;
892 914
893 tas = kzalloc(sizeof(struct tas), GFP_KERNEL); 915 tas = kzalloc(sizeof(struct tas), GFP_KERNEL);
@@ -896,17 +918,11 @@ static int tas_create(struct i2c_adapter *adapter,
896 return -ENOMEM; 918 return -ENOMEM;
897 919
898 mutex_init(&tas->mtx); 920 mutex_init(&tas->mtx);
899 tas->i2c.driver = &tas_driver; 921 tas->i2c = client;
900 tas->i2c.adapter = adapter; 922 i2c_set_clientdata(client, tas);
901 tas->i2c.addr = addr; 923
902 /* seems that half is a saner default */ 924 /* seems that half is a saner default */
903 tas->drc_range = TAS3004_DRC_MAX / 2; 925 tas->drc_range = TAS3004_DRC_MAX / 2;
904 strlcpy(tas->i2c.name, "tas audio codec", I2C_NAME_SIZE);
905
906 if (i2c_attach_client(&tas->i2c)) {
907 printk(KERN_ERR PFX "failed to attach to i2c\n");
908 goto fail;
909 }
910 926
911 strlcpy(tas->codec.name, "tas", MAX_CODEC_NAME_LEN); 927 strlcpy(tas->codec.name, "tas", MAX_CODEC_NAME_LEN);
912 tas->codec.owner = THIS_MODULE; 928 tas->codec.owner = THIS_MODULE;
@@ -915,14 +931,12 @@ static int tas_create(struct i2c_adapter *adapter,
915 tas->codec.node = of_node_get(node); 931 tas->codec.node = of_node_get(node);
916 932
917 if (aoa_codec_register(&tas->codec)) { 933 if (aoa_codec_register(&tas->codec)) {
918 goto detach; 934 goto fail;
919 } 935 }
920 printk(KERN_DEBUG 936 printk(KERN_DEBUG
921 "snd-aoa-codec-tas: tas found, addr 0x%02x on %s\n", 937 "snd-aoa-codec-tas: tas found, addr 0x%02x on %s\n",
922 addr, node->full_name); 938 (unsigned int)client->addr, node->full_name);
923 return 0; 939 return 0;
924 detach:
925 i2c_detach_client(&tas->i2c);
926 fail: 940 fail:
927 mutex_destroy(&tas->mtx); 941 mutex_destroy(&tas->mtx);
928 kfree(tas); 942 kfree(tas);
@@ -970,14 +984,11 @@ static int tas_i2c_attach(struct i2c_adapter *adapter)
970 return -ENODEV; 984 return -ENODEV;
971} 985}
972 986
973static int tas_i2c_detach(struct i2c_client *client) 987static int tas_i2c_remove(struct i2c_client *client)
974{ 988{
975 struct tas *tas = container_of(client, struct tas, i2c); 989 struct tas *tas = i2c_get_clientdata(client);
976 int err;
977 u8 tmp = TAS_ACR_ANALOG_PDOWN; 990 u8 tmp = TAS_ACR_ANALOG_PDOWN;
978 991
979 if ((err = i2c_detach_client(client)))
980 return err;
981 aoa_codec_unregister(&tas->codec); 992 aoa_codec_unregister(&tas->codec);
982 of_node_put(tas->codec.node); 993 of_node_put(tas->codec.node);
983 994
@@ -989,13 +1000,20 @@ static int tas_i2c_detach(struct i2c_client *client)
989 return 0; 1000 return 0;
990} 1001}
991 1002
1003static const struct i2c_device_id tas_i2c_id[] = {
1004 { "aoa_codec_tas", 0 },
1005 { }
1006};
1007
992static struct i2c_driver tas_driver = { 1008static struct i2c_driver tas_driver = {
993 .driver = { 1009 .driver = {
994 .name = "aoa_codec_tas", 1010 .name = "aoa_codec_tas",
995 .owner = THIS_MODULE, 1011 .owner = THIS_MODULE,
996 }, 1012 },
997 .attach_adapter = tas_i2c_attach, 1013 .attach_adapter = tas_i2c_attach,
998 .detach_client = tas_i2c_detach, 1014 .probe = tas_i2c_probe,
1015 .remove = tas_i2c_remove,
1016 .id_table = tas_i2c_id,
999}; 1017};
1000 1018
1001static int __init tas_init(void) 1019static int __init tas_init(void)
diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
index 0afd1a8226fb..6fdca97186e7 100644
--- a/sound/arm/pxa2xx-ac97-lib.c
+++ b/sound/arm/pxa2xx-ac97-lib.c
@@ -65,7 +65,7 @@ static void set_resetgpio_mode(int resetgpio_action)
65 switch (resetgpio_action) { 65 switch (resetgpio_action) {
66 case RESETGPIO_NORMAL_ALTFUNC: 66 case RESETGPIO_NORMAL_ALTFUNC:
67 if (reset_gpio == 113) 67 if (reset_gpio == 113)
68 mode = 113 | GPIO_OUT | GPIO_DFLT_LOW; 68 mode = 113 | GPIO_ALT_FN_2_OUT;
69 if (reset_gpio == 95) 69 if (reset_gpio == 95)
70 mode = 95 | GPIO_ALT_FN_1_OUT; 70 mode = 95 | GPIO_ALT_FN_1_OUT;
71 break; 71 break;
@@ -364,7 +364,7 @@ EXPORT_SYMBOL_GPL(pxa2xx_ac97_hw_resume);
364int __devinit pxa2xx_ac97_hw_probe(struct platform_device *dev) 364int __devinit pxa2xx_ac97_hw_probe(struct platform_device *dev)
365{ 365{
366 int ret; 366 int ret;
367 struct pxa2xx_ac97_platform_data *pdata = dev->dev.platform_data; 367 pxa2xx_audio_ops_t *pdata = dev->dev.platform_data;
368 368
369 if (pdata) { 369 if (pdata) {
370 switch (pdata->reset_gpio) { 370 switch (pdata->reset_gpio) {
diff --git a/sound/core/control.c b/sound/core/control.c
index 4b20fa2b7e6d..17b8d47a5cd0 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -723,14 +723,11 @@ static int snd_ctl_elem_read_user(struct snd_card *card,
723{ 723{
724 struct snd_ctl_elem_value *control; 724 struct snd_ctl_elem_value *control;
725 int result; 725 int result;
726 726
727 control = kmalloc(sizeof(*control), GFP_KERNEL); 727 control = memdup_user(_control, sizeof(*control));
728 if (control == NULL) 728 if (IS_ERR(control))
729 return -ENOMEM; 729 return PTR_ERR(control);
730 if (copy_from_user(control, _control, sizeof(*control))) { 730
731 kfree(control);
732 return -EFAULT;
733 }
734 snd_power_lock(card); 731 snd_power_lock(card);
735 result = snd_power_wait(card, SNDRV_CTL_POWER_D0); 732 result = snd_power_wait(card, SNDRV_CTL_POWER_D0);
736 if (result >= 0) 733 if (result >= 0)
@@ -784,13 +781,10 @@ static int snd_ctl_elem_write_user(struct snd_ctl_file *file,
784 struct snd_card *card; 781 struct snd_card *card;
785 int result; 782 int result;
786 783
787 control = kmalloc(sizeof(*control), GFP_KERNEL); 784 control = memdup_user(_control, sizeof(*control));
788 if (control == NULL) 785 if (IS_ERR(control))
789 return -ENOMEM; 786 return PTR_ERR(control);
790 if (copy_from_user(control, _control, sizeof(*control))) { 787
791 kfree(control);
792 return -EFAULT;
793 }
794 card = file->card; 788 card = file->card;
795 snd_power_lock(card); 789 snd_power_lock(card);
796 result = snd_power_wait(card, SNDRV_CTL_POWER_D0); 790 result = snd_power_wait(card, SNDRV_CTL_POWER_D0);
@@ -916,13 +910,10 @@ static int snd_ctl_elem_user_tlv(struct snd_kcontrol *kcontrol,
916 if (op_flag > 0) { 910 if (op_flag > 0) {
917 if (size > 1024 * 128) /* sane value */ 911 if (size > 1024 * 128) /* sane value */
918 return -EINVAL; 912 return -EINVAL;
919 new_data = kmalloc(size, GFP_KERNEL); 913
920 if (new_data == NULL) 914 new_data = memdup_user(tlv, size);
921 return -ENOMEM; 915 if (IS_ERR(new_data))
922 if (copy_from_user(new_data, tlv, size)) { 916 return PTR_ERR(new_data);
923 kfree(new_data);
924 return -EFAULT;
925 }
926 change = ue->tlv_data_size != size; 917 change = ue->tlv_data_size != size;
927 if (!change) 918 if (!change)
928 change = memcmp(ue->tlv_data, new_data, size); 919 change = memcmp(ue->tlv_data, new_data, size);
diff --git a/sound/core/jack.c b/sound/core/jack.c
index c8254c667c62..d54d1a05fe65 100644
--- a/sound/core/jack.c
+++ b/sound/core/jack.c
@@ -35,6 +35,9 @@ static int snd_jack_dev_free(struct snd_device *device)
35{ 35{
36 struct snd_jack *jack = device->device_data; 36 struct snd_jack *jack = device->device_data;
37 37
38 if (jack->private_free)
39 jack->private_free(jack);
40
38 /* If the input device is registered with the input subsystem 41 /* If the input device is registered with the input subsystem
39 * then we need to use a different deallocator. */ 42 * then we need to use a different deallocator. */
40 if (jack->registered) 43 if (jack->registered)
diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
index 36d7a5998234..08bfed594a83 100644
--- a/sound/core/pcm_compat.c
+++ b/sound/core/pcm_compat.c
@@ -232,14 +232,11 @@ static int snd_pcm_ioctl_hw_params_compat(struct snd_pcm_substream *substream,
232 if (! (runtime = substream->runtime)) 232 if (! (runtime = substream->runtime))
233 return -ENOTTY; 233 return -ENOTTY;
234 234
235 data = kmalloc(sizeof(*data), GFP_KERNEL);
236 if (data == NULL)
237 return -ENOMEM;
238 /* only fifo_size is different, so just copy all */ 235 /* only fifo_size is different, so just copy all */
239 if (copy_from_user(data, data32, sizeof(*data32))) { 236 data = memdup_user(data32, sizeof(*data32));
240 err = -EFAULT; 237 if (IS_ERR(data))
241 goto error; 238 return PTR_ERR(data);
242 } 239
243 if (refine) 240 if (refine)
244 err = snd_pcm_hw_refine(substream, data); 241 err = snd_pcm_hw_refine(substream, data);
245 else 242 else
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index fbb2e391591e..a2a792c18c40 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -209,9 +209,11 @@ static int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream)
209{ 209{
210 struct snd_pcm_runtime *runtime = substream->runtime; 210 struct snd_pcm_runtime *runtime = substream->runtime;
211 snd_pcm_uframes_t pos; 211 snd_pcm_uframes_t pos;
212 snd_pcm_uframes_t new_hw_ptr, hw_ptr_interrupt, hw_base; 212 snd_pcm_uframes_t old_hw_ptr, new_hw_ptr, hw_ptr_interrupt, hw_base;
213 snd_pcm_sframes_t delta; 213 snd_pcm_sframes_t hdelta, delta;
214 unsigned long jdelta;
214 215
216 old_hw_ptr = runtime->status->hw_ptr;
215 pos = snd_pcm_update_hw_ptr_pos(substream, runtime); 217 pos = snd_pcm_update_hw_ptr_pos(substream, runtime);
216 if (pos == SNDRV_PCM_POS_XRUN) { 218 if (pos == SNDRV_PCM_POS_XRUN) {
217 xrun(substream); 219 xrun(substream);
@@ -247,7 +249,37 @@ static int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream)
247 new_hw_ptr = hw_base + pos; 249 new_hw_ptr = hw_base + pos;
248 } 250 }
249 } 251 }
250 if (delta > runtime->period_size) { 252 /* Skip the jiffies check for hardwares with BATCH flag.
253 * Such hardware usually just increases the position at each IRQ,
254 * thus it can't give any strange position.
255 */
256 if (runtime->hw.info & SNDRV_PCM_INFO_BATCH)
257 goto no_jiffies_check;
258 hdelta = new_hw_ptr - old_hw_ptr;
259 jdelta = jiffies - runtime->hw_ptr_jiffies;
260 if (((hdelta * HZ) / runtime->rate) > jdelta + HZ/100) {
261 delta = jdelta /
262 (((runtime->period_size * HZ) / runtime->rate)
263 + HZ/100);
264 hw_ptr_error(substream,
265 "hw_ptr skipping! [Q] "
266 "(pos=%ld, delta=%ld, period=%ld, "
267 "jdelta=%lu/%lu/%lu)\n",
268 (long)pos, (long)hdelta,
269 (long)runtime->period_size, jdelta,
270 ((hdelta * HZ) / runtime->rate), delta);
271 hw_ptr_interrupt = runtime->hw_ptr_interrupt +
272 runtime->period_size * delta;
273 if (hw_ptr_interrupt >= runtime->boundary)
274 hw_ptr_interrupt -= runtime->boundary;
275 /* rebase to interrupt position */
276 hw_base = new_hw_ptr = hw_ptr_interrupt;
277 /* align hw_base to buffer_size */
278 hw_base -= hw_base % runtime->buffer_size;
279 delta = 0;
280 }
281 no_jiffies_check:
282 if (delta > runtime->period_size + runtime->period_size / 2) {
251 hw_ptr_error(substream, 283 hw_ptr_error(substream,
252 "Lost interrupts? " 284 "Lost interrupts? "
253 "(stream=%i, delta=%ld, intr_ptr=%ld)\n", 285 "(stream=%i, delta=%ld, intr_ptr=%ld)\n",
@@ -263,6 +295,7 @@ static int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *substream)
263 295
264 runtime->hw_ptr_base = hw_base; 296 runtime->hw_ptr_base = hw_base;
265 runtime->status->hw_ptr = new_hw_ptr; 297 runtime->status->hw_ptr = new_hw_ptr;
298 runtime->hw_ptr_jiffies = jiffies;
266 runtime->hw_ptr_interrupt = hw_ptr_interrupt; 299 runtime->hw_ptr_interrupt = hw_ptr_interrupt;
267 300
268 return snd_pcm_update_hw_ptr_post(substream, runtime); 301 return snd_pcm_update_hw_ptr_post(substream, runtime);
@@ -275,6 +308,7 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
275 snd_pcm_uframes_t pos; 308 snd_pcm_uframes_t pos;
276 snd_pcm_uframes_t old_hw_ptr, new_hw_ptr, hw_base; 309 snd_pcm_uframes_t old_hw_ptr, new_hw_ptr, hw_base;
277 snd_pcm_sframes_t delta; 310 snd_pcm_sframes_t delta;
311 unsigned long jdelta;
278 312
279 old_hw_ptr = runtime->status->hw_ptr; 313 old_hw_ptr = runtime->status->hw_ptr;
280 pos = snd_pcm_update_hw_ptr_pos(substream, runtime); 314 pos = snd_pcm_update_hw_ptr_pos(substream, runtime);
@@ -286,14 +320,15 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
286 new_hw_ptr = hw_base + pos; 320 new_hw_ptr = hw_base + pos;
287 321
288 delta = new_hw_ptr - old_hw_ptr; 322 delta = new_hw_ptr - old_hw_ptr;
323 jdelta = jiffies - runtime->hw_ptr_jiffies;
289 if (delta < 0) { 324 if (delta < 0) {
290 delta += runtime->buffer_size; 325 delta += runtime->buffer_size;
291 if (delta < 0) { 326 if (delta < 0) {
292 hw_ptr_error(substream, 327 hw_ptr_error(substream,
293 "Unexpected hw_pointer value [2] " 328 "Unexpected hw_pointer value [2] "
294 "(stream=%i, pos=%ld, old_ptr=%ld)\n", 329 "(stream=%i, pos=%ld, old_ptr=%ld, jdelta=%li)\n",
295 substream->stream, (long)pos, 330 substream->stream, (long)pos,
296 (long)old_hw_ptr); 331 (long)old_hw_ptr, jdelta);
297 return 0; 332 return 0;
298 } 333 }
299 hw_base += runtime->buffer_size; 334 hw_base += runtime->buffer_size;
@@ -301,12 +336,13 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
301 hw_base = 0; 336 hw_base = 0;
302 new_hw_ptr = hw_base + pos; 337 new_hw_ptr = hw_base + pos;
303 } 338 }
304 if (delta > runtime->period_size && runtime->periods > 1) { 339 if (((delta * HZ) / runtime->rate) > jdelta + HZ/100) {
305 hw_ptr_error(substream, 340 hw_ptr_error(substream,
306 "hw_ptr skipping! " 341 "hw_ptr skipping! "
307 "(pos=%ld, delta=%ld, period=%ld)\n", 342 "(pos=%ld, delta=%ld, period=%ld, jdelta=%lu/%lu)\n",
308 (long)pos, (long)delta, 343 (long)pos, (long)delta,
309 (long)runtime->period_size); 344 (long)runtime->period_size, jdelta,
345 ((delta * HZ) / runtime->rate));
310 return 0; 346 return 0;
311 } 347 }
312 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK && 348 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
@@ -315,6 +351,7 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream)
315 351
316 runtime->hw_ptr_base = hw_base; 352 runtime->hw_ptr_base = hw_base;
317 runtime->status->hw_ptr = new_hw_ptr; 353 runtime->status->hw_ptr = new_hw_ptr;
354 runtime->hw_ptr_jiffies = jiffies;
318 355
319 return snd_pcm_update_hw_ptr_post(substream, runtime); 356 return snd_pcm_update_hw_ptr_post(substream, runtime);
320} 357}
@@ -1441,6 +1478,7 @@ static int snd_pcm_lib_ioctl_reset(struct snd_pcm_substream *substream,
1441 runtime->status->hw_ptr %= runtime->buffer_size; 1478 runtime->status->hw_ptr %= runtime->buffer_size;
1442 else 1479 else
1443 runtime->status->hw_ptr = 0; 1480 runtime->status->hw_ptr = 0;
1481 runtime->hw_ptr_jiffies = jiffies;
1444 snd_pcm_stream_unlock_irqrestore(substream, flags); 1482 snd_pcm_stream_unlock_irqrestore(substream, flags);
1445 return 0; 1483 return 0;
1446} 1484}
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index a151fb01ba82..fc6f98e257df 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -327,21 +327,16 @@ static int snd_pcm_hw_refine_user(struct snd_pcm_substream *substream,
327 struct snd_pcm_hw_params *params; 327 struct snd_pcm_hw_params *params;
328 int err; 328 int err;
329 329
330 params = kmalloc(sizeof(*params), GFP_KERNEL); 330 params = memdup_user(_params, sizeof(*params));
331 if (!params) { 331 if (IS_ERR(params))
332 err = -ENOMEM; 332 return PTR_ERR(params);
333 goto out; 333
334 }
335 if (copy_from_user(params, _params, sizeof(*params))) {
336 err = -EFAULT;
337 goto out;
338 }
339 err = snd_pcm_hw_refine(substream, params); 334 err = snd_pcm_hw_refine(substream, params);
340 if (copy_to_user(_params, params, sizeof(*params))) { 335 if (copy_to_user(_params, params, sizeof(*params))) {
341 if (!err) 336 if (!err)
342 err = -EFAULT; 337 err = -EFAULT;
343 } 338 }
344out: 339
345 kfree(params); 340 kfree(params);
346 return err; 341 return err;
347} 342}
@@ -465,21 +460,16 @@ static int snd_pcm_hw_params_user(struct snd_pcm_substream *substream,
465 struct snd_pcm_hw_params *params; 460 struct snd_pcm_hw_params *params;
466 int err; 461 int err;
467 462
468 params = kmalloc(sizeof(*params), GFP_KERNEL); 463 params = memdup_user(_params, sizeof(*params));
469 if (!params) { 464 if (IS_ERR(params))
470 err = -ENOMEM; 465 return PTR_ERR(params);
471 goto out; 466
472 }
473 if (copy_from_user(params, _params, sizeof(*params))) {
474 err = -EFAULT;
475 goto out;
476 }
477 err = snd_pcm_hw_params(substream, params); 467 err = snd_pcm_hw_params(substream, params);
478 if (copy_to_user(_params, params, sizeof(*params))) { 468 if (copy_to_user(_params, params, sizeof(*params))) {
479 if (!err) 469 if (!err)
480 err = -EFAULT; 470 err = -EFAULT;
481 } 471 }
482out: 472
483 kfree(params); 473 kfree(params);
484 return err; 474 return err;
485} 475}
@@ -2593,13 +2583,11 @@ static int snd_pcm_playback_ioctl1(struct file *file,
2593 return -EFAULT; 2583 return -EFAULT;
2594 if (copy_from_user(&xfern, _xfern, sizeof(xfern))) 2584 if (copy_from_user(&xfern, _xfern, sizeof(xfern)))
2595 return -EFAULT; 2585 return -EFAULT;
2596 bufs = kmalloc(sizeof(void *) * runtime->channels, GFP_KERNEL); 2586
2597 if (bufs == NULL) 2587 bufs = memdup_user(xfern.bufs,
2598 return -ENOMEM; 2588 sizeof(void *) * runtime->channels);
2599 if (copy_from_user(bufs, xfern.bufs, sizeof(void *) * runtime->channels)) { 2589 if (IS_ERR(bufs))
2600 kfree(bufs); 2590 return PTR_ERR(bufs);
2601 return -EFAULT;
2602 }
2603 result = snd_pcm_lib_writev(substream, bufs, xfern.frames); 2591 result = snd_pcm_lib_writev(substream, bufs, xfern.frames);
2604 kfree(bufs); 2592 kfree(bufs);
2605 __put_user(result, &_xfern->result); 2593 __put_user(result, &_xfern->result);
@@ -2675,13 +2663,11 @@ static int snd_pcm_capture_ioctl1(struct file *file,
2675 return -EFAULT; 2663 return -EFAULT;
2676 if (copy_from_user(&xfern, _xfern, sizeof(xfern))) 2664 if (copy_from_user(&xfern, _xfern, sizeof(xfern)))
2677 return -EFAULT; 2665 return -EFAULT;
2678 bufs = kmalloc(sizeof(void *) * runtime->channels, GFP_KERNEL); 2666
2679 if (bufs == NULL) 2667 bufs = memdup_user(xfern.bufs,
2680 return -ENOMEM; 2668 sizeof(void *) * runtime->channels);
2681 if (copy_from_user(bufs, xfern.bufs, sizeof(void *) * runtime->channels)) { 2669 if (IS_ERR(bufs))
2682 kfree(bufs); 2670 return PTR_ERR(bufs);
2683 return -EFAULT;
2684 }
2685 result = snd_pcm_lib_readv(substream, bufs, xfern.frames); 2671 result = snd_pcm_lib_readv(substream, bufs, xfern.frames);
2686 kfree(bufs); 2672 kfree(bufs);
2687 __put_user(result, &_xfern->result); 2673 __put_user(result, &_xfern->result);
@@ -3312,18 +3298,12 @@ static int snd_pcm_hw_refine_old_user(struct snd_pcm_substream *substream,
3312 int err; 3298 int err;
3313 3299
3314 params = kmalloc(sizeof(*params), GFP_KERNEL); 3300 params = kmalloc(sizeof(*params), GFP_KERNEL);
3315 if (!params) { 3301 if (!params)
3316 err = -ENOMEM; 3302 return -ENOMEM;
3317 goto out;
3318 }
3319 oparams = kmalloc(sizeof(*oparams), GFP_KERNEL);
3320 if (!oparams) {
3321 err = -ENOMEM;
3322 goto out;
3323 }
3324 3303
3325 if (copy_from_user(oparams, _oparams, sizeof(*oparams))) { 3304 oparams = memdup_user(_oparams, sizeof(*oparams));
3326 err = -EFAULT; 3305 if (IS_ERR(oparams)) {
3306 err = PTR_ERR(oparams);
3327 goto out; 3307 goto out;
3328 } 3308 }
3329 snd_pcm_hw_convert_from_old_params(params, oparams); 3309 snd_pcm_hw_convert_from_old_params(params, oparams);
@@ -3333,9 +3313,10 @@ static int snd_pcm_hw_refine_old_user(struct snd_pcm_substream *substream,
3333 if (!err) 3313 if (!err)
3334 err = -EFAULT; 3314 err = -EFAULT;
3335 } 3315 }
3316
3317 kfree(oparams);
3336out: 3318out:
3337 kfree(params); 3319 kfree(params);
3338 kfree(oparams);
3339 return err; 3320 return err;
3340} 3321}
3341 3322
@@ -3347,17 +3328,12 @@ static int snd_pcm_hw_params_old_user(struct snd_pcm_substream *substream,
3347 int err; 3328 int err;
3348 3329
3349 params = kmalloc(sizeof(*params), GFP_KERNEL); 3330 params = kmalloc(sizeof(*params), GFP_KERNEL);
3350 if (!params) { 3331 if (!params)
3351 err = -ENOMEM; 3332 return -ENOMEM;
3352 goto out; 3333
3353 } 3334 oparams = memdup_user(_oparams, sizeof(*oparams));
3354 oparams = kmalloc(sizeof(*oparams), GFP_KERNEL); 3335 if (IS_ERR(oparams)) {
3355 if (!oparams) { 3336 err = PTR_ERR(oparams);
3356 err = -ENOMEM;
3357 goto out;
3358 }
3359 if (copy_from_user(oparams, _oparams, sizeof(*oparams))) {
3360 err = -EFAULT;
3361 goto out; 3337 goto out;
3362 } 3338 }
3363 snd_pcm_hw_convert_from_old_params(params, oparams); 3339 snd_pcm_hw_convert_from_old_params(params, oparams);
@@ -3367,9 +3343,10 @@ static int snd_pcm_hw_params_old_user(struct snd_pcm_substream *substream,
3367 if (!err) 3343 if (!err)
3368 err = -EFAULT; 3344 err = -EFAULT;
3369 } 3345 }
3346
3347 kfree(oparams);
3370out: 3348out:
3371 kfree(params); 3349 kfree(params);
3372 kfree(oparams);
3373 return err; 3350 return err;
3374} 3351}
3375#endif /* CONFIG_SND_SUPPORT_OLD_API */ 3352#endif /* CONFIG_SND_SUPPORT_OLD_API */
diff --git a/sound/core/seq/seq_compat.c b/sound/core/seq/seq_compat.c
index 38693f47c262..c956fe462569 100644
--- a/sound/core/seq/seq_compat.c
+++ b/sound/core/seq/seq_compat.c
@@ -48,12 +48,11 @@ static int snd_seq_call_port_info_ioctl(struct snd_seq_client *client, unsigned
48 struct snd_seq_port_info *data; 48 struct snd_seq_port_info *data;
49 mm_segment_t fs; 49 mm_segment_t fs;
50 50
51 data = kmalloc(sizeof(*data), GFP_KERNEL); 51 data = memdup_user(data32, sizeof(*data32));
52 if (! data) 52 if (IS_ERR(data))
53 return -ENOMEM; 53 return PTR_ERR(data);
54 54
55 if (copy_from_user(data, data32, sizeof(*data32)) || 55 if (get_user(data->flags, &data32->flags) ||
56 get_user(data->flags, &data32->flags) ||
57 get_user(data->time_queue, &data32->time_queue)) 56 get_user(data->time_queue, &data32->time_queue))
58 goto error; 57 goto error;
59 data->kernel = NULL; 58 data->kernel = NULL;
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 3f0050d0b71e..8f8b17ac074d 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -1395,13 +1395,10 @@ static int snd_timer_user_ginfo(struct file *file,
1395 struct list_head *p; 1395 struct list_head *p;
1396 int err = 0; 1396 int err = 0;
1397 1397
1398 ginfo = kmalloc(sizeof(*ginfo), GFP_KERNEL); 1398 ginfo = memdup_user(_ginfo, sizeof(*ginfo));
1399 if (! ginfo) 1399 if (IS_ERR(ginfo))
1400 return -ENOMEM; 1400 return PTR_ERR(ginfo);
1401 if (copy_from_user(ginfo, _ginfo, sizeof(*ginfo))) { 1401
1402 kfree(ginfo);
1403 return -EFAULT;
1404 }
1405 tid = ginfo->tid; 1402 tid = ginfo->tid;
1406 memset(ginfo, 0, sizeof(*ginfo)); 1403 memset(ginfo, 0, sizeof(*ginfo));
1407 ginfo->tid = tid; 1404 ginfo->tid = tid;
diff --git a/sound/drivers/pcsp/pcsp_mixer.c b/sound/drivers/pcsp/pcsp_mixer.c
index caeb0f57fcca..771955a9be71 100644
--- a/sound/drivers/pcsp/pcsp_mixer.c
+++ b/sound/drivers/pcsp/pcsp_mixer.c
@@ -50,7 +50,7 @@ static int pcsp_treble_info(struct snd_kcontrol *kcontrol,
50 uinfo->value.enumerated.items = chip->max_treble + 1; 50 uinfo->value.enumerated.items = chip->max_treble + 1;
51 if (uinfo->value.enumerated.item > chip->max_treble) 51 if (uinfo->value.enumerated.item > chip->max_treble)
52 uinfo->value.enumerated.item = chip->max_treble; 52 uinfo->value.enumerated.item = chip->max_treble;
53 sprintf(uinfo->value.enumerated.name, "%d", 53 sprintf(uinfo->value.enumerated.name, "%lu",
54 PCSP_CALC_RATE(uinfo->value.enumerated.item)); 54 PCSP_CALC_RATE(uinfo->value.enumerated.item));
55 return 0; 55 return 0;
56} 56}
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index b2b6d50c9425..a25fb7b1f441 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -963,16 +963,11 @@ static int __devinit snd_serial_probe(struct platform_device *devptr)
963 if (err < 0) 963 if (err < 0)
964 goto _err; 964 goto _err;
965 965
966 sprintf(card->longname, "%s at 0x%lx, irq %d speed %d div %d outs %d ins %d adaptor %s droponfull %d", 966 sprintf(card->longname, "%s [%s] at %#lx, irq %d",
967 card->shortname, 967 card->shortname,
968 uart->base,
969 uart->irq,
970 uart->speed,
971 (int)uart->divisor,
972 outs[dev],
973 ins[dev],
974 adaptor_names[uart->adaptor], 968 adaptor_names[uart->adaptor],
975 uart->drop_on_full); 969 uart->base,
970 uart->irq);
976 971
977 snd_card_set_dev(card, &devptr->dev); 972 snd_card_set_dev(card, &devptr->dev);
978 973
diff --git a/sound/isa/msnd/msnd.c b/sound/isa/msnd/msnd.c
index 906454413ed2..3a1526ae1729 100644
--- a/sound/isa/msnd/msnd.c
+++ b/sound/isa/msnd/msnd.c
@@ -438,7 +438,8 @@ static void snd_msnd_capture_reset_queue(struct snd_msnd *chip,
438static struct snd_pcm_hardware snd_msnd_playback = { 438static struct snd_pcm_hardware snd_msnd_playback = {
439 .info = SNDRV_PCM_INFO_MMAP | 439 .info = SNDRV_PCM_INFO_MMAP |
440 SNDRV_PCM_INFO_INTERLEAVED | 440 SNDRV_PCM_INFO_INTERLEAVED |
441 SNDRV_PCM_INFO_MMAP_VALID, 441 SNDRV_PCM_INFO_MMAP_VALID |
442 SNDRV_PCM_INFO_BATCH,
442 .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, 443 .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
443 .rates = SNDRV_PCM_RATE_8000_48000, 444 .rates = SNDRV_PCM_RATE_8000_48000,
444 .rate_min = 8000, 445 .rate_min = 8000,
@@ -456,7 +457,8 @@ static struct snd_pcm_hardware snd_msnd_playback = {
456static struct snd_pcm_hardware snd_msnd_capture = { 457static struct snd_pcm_hardware snd_msnd_capture = {
457 .info = SNDRV_PCM_INFO_MMAP | 458 .info = SNDRV_PCM_INFO_MMAP |
458 SNDRV_PCM_INFO_INTERLEAVED | 459 SNDRV_PCM_INFO_INTERLEAVED |
459 SNDRV_PCM_INFO_MMAP_VALID, 460 SNDRV_PCM_INFO_MMAP_VALID |
461 SNDRV_PCM_INFO_BATCH,
460 .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE, 462 .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
461 .rates = SNDRV_PCM_RATE_8000_48000, 463 .rates = SNDRV_PCM_RATE_8000_48000,
462 .rate_min = 8000, 464 .rate_min = 8000,
diff --git a/sound/isa/sb/sb16_csp.c b/sound/isa/sb/sb16_csp.c
index 49037d074c71..bdc8dde4e4a2 100644
--- a/sound/isa/sb/sb16_csp.c
+++ b/sound/isa/sb/sb16_csp.c
@@ -684,15 +684,16 @@ static int snd_sb_csp_load(struct snd_sb_csp * p, const unsigned char *buf, int
684 684
685static int snd_sb_csp_load_user(struct snd_sb_csp * p, const unsigned char __user *buf, int size, int load_flags) 685static int snd_sb_csp_load_user(struct snd_sb_csp * p, const unsigned char __user *buf, int size, int load_flags)
686{ 686{
687 int err = -ENOMEM; 687 int err;
688 unsigned char *kbuf = kmalloc(size, GFP_KERNEL); 688 unsigned char *kbuf;
689 if (kbuf) { 689
690 if (copy_from_user(kbuf, buf, size)) 690 kbuf = memdup_user(buf, size);
691 err = -EFAULT; 691 if (IS_ERR(kbuf))
692 else 692 return PTR_ERR(kbuf);
693 err = snd_sb_csp_load(p, kbuf, size, load_flags); 693
694 kfree(kbuf); 694 err = snd_sb_csp_load(p, kbuf, size, load_flags);
695 } 695
696 kfree(kbuf);
696 return err; 697 return err;
697} 698}
698 699
diff --git a/sound/isa/wavefront/wavefront_fx.c b/sound/isa/wavefront/wavefront_fx.c
index a4345fc07561..2bb1cee09255 100644
--- a/sound/isa/wavefront/wavefront_fx.c
+++ b/sound/isa/wavefront/wavefront_fx.c
@@ -202,15 +202,11 @@ snd_wavefront_fx_ioctl (struct snd_hwdep *sdev, struct file *file,
202 "> 512 bytes to FX\n"); 202 "> 512 bytes to FX\n");
203 return -EIO; 203 return -EIO;
204 } 204 }
205 page_data = kmalloc(r.data[2] * sizeof(short), GFP_KERNEL); 205 page_data = memdup_user((unsigned char __user *)
206 if (!page_data) 206 r.data[3],
207 return -ENOMEM; 207 r.data[2] * sizeof(short));
208 if (copy_from_user (page_data, 208 if (IS_ERR(page_data))
209 (unsigned char __user *) r.data[3], 209 return PTR_ERR(page_data);
210 r.data[2] * sizeof(short))) {
211 kfree(page_data);
212 return -EFAULT;
213 }
214 pd = page_data; 210 pd = page_data;
215 } 211 }
216 212
diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index beb312cca75b..5d4ff48c4345 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1664,12 +1664,11 @@ snd_wavefront_synth_ioctl (struct snd_hwdep *hw, struct file *file,
1664 break; 1664 break;
1665 1665
1666 case WFCTL_WFCMD: 1666 case WFCTL_WFCMD:
1667 wc = kmalloc(sizeof(*wc), GFP_KERNEL); 1667 wc = memdup_user(argp, sizeof(*wc));
1668 if (! wc) 1668 if (IS_ERR(wc))
1669 return -ENOMEM; 1669 return PTR_ERR(wc);
1670 if (copy_from_user (wc, argp, sizeof (*wc))) 1670
1671 err = -EFAULT; 1671 if (wavefront_synth_control (acard, wc) < 0)
1672 else if (wavefront_synth_control (acard, wc) < 0)
1673 err = -EIO; 1672 err = -EIO;
1674 else if (copy_to_user (argp, wc, sizeof (*wc))) 1673 else if (copy_to_user (argp, wc, sizeof (*wc)))
1675 err = -EFAULT; 1674 err = -EFAULT;
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 97ee127ac33d..78288dbfc17a 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -2122,7 +2122,7 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
2122 } 2122 }
2123 /* nothing should be in powerdown mode */ 2123 /* nothing should be in powerdown mode */
2124 snd_ac97_write_cache(ac97, AC97_GENERAL_PURPOSE, 0); 2124 snd_ac97_write_cache(ac97, AC97_GENERAL_PURPOSE, 0);
2125 end_time = jiffies + msecs_to_jiffies(100); 2125 end_time = jiffies + msecs_to_jiffies(120);
2126 do { 2126 do {
2127 if ((snd_ac97_read(ac97, AC97_POWERDOWN) & 0x0f) == 0x0f) 2127 if ((snd_ac97_read(ac97, AC97_POWERDOWN) & 0x0f) == 0x0f)
2128 goto __ready_ok; 2128 goto __ready_ok;
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c
index 9ce8548c03e4..71515ddb4593 100644
--- a/sound/pci/atiixp.c
+++ b/sound/pci/atiixp.c
@@ -1393,6 +1393,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
1393 .name = "HP nx6125", 1393 .name = "HP nx6125",
1394 .type = AC97_TUNE_MUTE_LED 1394 .type = AC97_TUNE_MUTE_LED
1395 }, 1395 },
1396 {
1397 .subvendor = 0x103c,
1398 .subdevice = 0x3091,
1399 .name = "unknown HP",
1400 .type = AC97_TUNE_MUTE_LED
1401 },
1396 { } /* terminator */ 1402 { } /* terminator */
1397}; 1403};
1398 1404
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index a299340519df..ce3f2e90f4d7 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -349,7 +349,8 @@ static struct snd_pcm_hardware snd_bt87x_digital_hw = {
349 .info = SNDRV_PCM_INFO_MMAP | 349 .info = SNDRV_PCM_INFO_MMAP |
350 SNDRV_PCM_INFO_INTERLEAVED | 350 SNDRV_PCM_INFO_INTERLEAVED |
351 SNDRV_PCM_INFO_BLOCK_TRANSFER | 351 SNDRV_PCM_INFO_BLOCK_TRANSFER |
352 SNDRV_PCM_INFO_MMAP_VALID, 352 SNDRV_PCM_INFO_MMAP_VALID |
353 SNDRV_PCM_INFO_BATCH,
353 .formats = SNDRV_PCM_FMTBIT_S16_LE, 354 .formats = SNDRV_PCM_FMTBIT_S16_LE,
354 .rates = 0, /* set at runtime */ 355 .rates = 0, /* set at runtime */
355 .channels_min = 2, 356 .channels_min = 2,
@@ -365,7 +366,8 @@ static struct snd_pcm_hardware snd_bt87x_analog_hw = {
365 .info = SNDRV_PCM_INFO_MMAP | 366 .info = SNDRV_PCM_INFO_MMAP |
366 SNDRV_PCM_INFO_INTERLEAVED | 367 SNDRV_PCM_INFO_INTERLEAVED |
367 SNDRV_PCM_INFO_BLOCK_TRANSFER | 368 SNDRV_PCM_INFO_BLOCK_TRANSFER |
368 SNDRV_PCM_INFO_MMAP_VALID, 369 SNDRV_PCM_INFO_MMAP_VALID |
370 SNDRV_PCM_INFO_BATCH,
369 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8, 371 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8,
370 .rates = SNDRV_PCM_RATE_KNOT, 372 .rates = SNDRV_PCM_RATE_KNOT,
371 .rate_min = ANALOG_CLOCK / CLOCK_DIV_MAX, 373 .rate_min = ANALOG_CLOCK / CLOCK_DIV_MAX,
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index c7899c32aba1..449fe02f666e 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -3014,7 +3014,7 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
3014 .dev_free = snd_cmipci_dev_free, 3014 .dev_free = snd_cmipci_dev_free,
3015 }; 3015 };
3016 unsigned int val; 3016 unsigned int val;
3017 long iomidi; 3017 long iomidi = 0;
3018 int integrated_midi = 0; 3018 int integrated_midi = 0;
3019 char modelstr[16]; 3019 char modelstr[16];
3020 int pcm_index, pcm_spdif_index; 3020 int pcm_index, pcm_spdif_index;
diff --git a/sound/pci/echoaudio/indigodjx.c b/sound/pci/echoaudio/indigodjx.c
index 3482ef69f491..2e44316530a2 100644
--- a/sound/pci/echoaudio/indigodjx.c
+++ b/sound/pci/echoaudio/indigodjx.c
@@ -88,6 +88,7 @@ static struct snd_pcm_hardware pcm_hardware_skel = {
88 .rates = SNDRV_PCM_RATE_32000 | 88 .rates = SNDRV_PCM_RATE_32000 |
89 SNDRV_PCM_RATE_44100 | 89 SNDRV_PCM_RATE_44100 |
90 SNDRV_PCM_RATE_48000 | 90 SNDRV_PCM_RATE_48000 |
91 SNDRV_PCM_RATE_64000 |
91 SNDRV_PCM_RATE_88200 | 92 SNDRV_PCM_RATE_88200 |
92 SNDRV_PCM_RATE_96000, 93 SNDRV_PCM_RATE_96000,
93 .rate_min = 32000, 94 .rate_min = 32000,
diff --git a/sound/pci/echoaudio/indigoiox.c b/sound/pci/echoaudio/indigoiox.c
index aebee27a40ff..eb3819f9654a 100644
--- a/sound/pci/echoaudio/indigoiox.c
+++ b/sound/pci/echoaudio/indigoiox.c
@@ -89,6 +89,7 @@ static struct snd_pcm_hardware pcm_hardware_skel = {
89 .rates = SNDRV_PCM_RATE_32000 | 89 .rates = SNDRV_PCM_RATE_32000 |
90 SNDRV_PCM_RATE_44100 | 90 SNDRV_PCM_RATE_44100 |
91 SNDRV_PCM_RATE_48000 | 91 SNDRV_PCM_RATE_48000 |
92 SNDRV_PCM_RATE_64000 |
92 SNDRV_PCM_RATE_88200 | 93 SNDRV_PCM_RATE_88200 |
93 SNDRV_PCM_RATE_96000, 94 SNDRV_PCM_RATE_96000,
94 .rate_min = 32000, 95 .rate_min = 32000,
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index 191e1cd9997d..4b302d86f5f2 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -2493,24 +2493,17 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
2493 case SNDRV_EMU10K1_IOCTL_CODE_POKE: 2493 case SNDRV_EMU10K1_IOCTL_CODE_POKE:
2494 if (!capable(CAP_SYS_ADMIN)) 2494 if (!capable(CAP_SYS_ADMIN))
2495 return -EPERM; 2495 return -EPERM;
2496 icode = kmalloc(sizeof(*icode), GFP_KERNEL); 2496
2497 if (icode == NULL) 2497 icode = memdup_user(argp, sizeof(*icode));
2498 return -ENOMEM; 2498 if (IS_ERR(icode))
2499 if (copy_from_user(icode, argp, sizeof(*icode))) { 2499 return PTR_ERR(icode);
2500 kfree(icode);
2501 return -EFAULT;
2502 }
2503 res = snd_emu10k1_icode_poke(emu, icode); 2500 res = snd_emu10k1_icode_poke(emu, icode);
2504 kfree(icode); 2501 kfree(icode);
2505 return res; 2502 return res;
2506 case SNDRV_EMU10K1_IOCTL_CODE_PEEK: 2503 case SNDRV_EMU10K1_IOCTL_CODE_PEEK:
2507 icode = kmalloc(sizeof(*icode), GFP_KERNEL); 2504 icode = memdup_user(argp, sizeof(*icode));
2508 if (icode == NULL) 2505 if (IS_ERR(icode))
2509 return -ENOMEM; 2506 return PTR_ERR(icode);
2510 if (copy_from_user(icode, argp, sizeof(*icode))) {
2511 kfree(icode);
2512 return -EFAULT;
2513 }
2514 res = snd_emu10k1_icode_peek(emu, icode); 2507 res = snd_emu10k1_icode_peek(emu, icode);
2515 if (res == 0 && copy_to_user(argp, icode, sizeof(*icode))) { 2508 if (res == 0 && copy_to_user(argp, icode, sizeof(*icode))) {
2516 kfree(icode); 2509 kfree(icode);
@@ -2519,24 +2512,16 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
2519 kfree(icode); 2512 kfree(icode);
2520 return res; 2513 return res;
2521 case SNDRV_EMU10K1_IOCTL_PCM_POKE: 2514 case SNDRV_EMU10K1_IOCTL_PCM_POKE:
2522 ipcm = kmalloc(sizeof(*ipcm), GFP_KERNEL); 2515 ipcm = memdup_user(argp, sizeof(*ipcm));
2523 if (ipcm == NULL) 2516 if (IS_ERR(ipcm))
2524 return -ENOMEM; 2517 return PTR_ERR(ipcm);
2525 if (copy_from_user(ipcm, argp, sizeof(*ipcm))) {
2526 kfree(ipcm);
2527 return -EFAULT;
2528 }
2529 res = snd_emu10k1_ipcm_poke(emu, ipcm); 2518 res = snd_emu10k1_ipcm_poke(emu, ipcm);
2530 kfree(ipcm); 2519 kfree(ipcm);
2531 return res; 2520 return res;
2532 case SNDRV_EMU10K1_IOCTL_PCM_PEEK: 2521 case SNDRV_EMU10K1_IOCTL_PCM_PEEK:
2533 ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL); 2522 ipcm = memdup_user(argp, sizeof(*ipcm));
2534 if (ipcm == NULL) 2523 if (IS_ERR(ipcm))
2535 return -ENOMEM; 2524 return PTR_ERR(ipcm);
2536 if (copy_from_user(ipcm, argp, sizeof(*ipcm))) {
2537 kfree(ipcm);
2538 return -EFAULT;
2539 }
2540 res = snd_emu10k1_ipcm_peek(emu, ipcm); 2525 res = snd_emu10k1_ipcm_peek(emu, ipcm);
2541 if (res == 0 && copy_to_user(argp, ipcm, sizeof(*ipcm))) { 2526 if (res == 0 && copy_to_user(argp, ipcm, sizeof(*ipcm))) {
2542 kfree(ipcm); 2527 kfree(ipcm);
diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c
index 4bfc31d1b281..c1a5aa15af8f 100644
--- a/sound/pci/emu10k1/io.c
+++ b/sound/pci/emu10k1/io.c
@@ -490,7 +490,7 @@ void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait)
490 if (newtime != curtime) 490 if (newtime != curtime)
491 break; 491 break;
492 } 492 }
493 if (count >= 16384) 493 if (count > 16384)
494 break; 494 break;
495 curtime = newtime; 495 curtime = newtime;
496 } 496 }
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index a4e5e5952115..8820faf6c9d8 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -642,19 +642,21 @@ static int get_codec_name(struct hda_codec *codec)
642 */ 642 */
643static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec) 643static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec)
644{ 644{
645 int i, total_nodes; 645 int i, total_nodes, function_id;
646 hda_nid_t nid; 646 hda_nid_t nid;
647 647
648 total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid); 648 total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid);
649 for (i = 0; i < total_nodes; i++, nid++) { 649 for (i = 0; i < total_nodes; i++, nid++) {
650 codec->function_id = snd_hda_param_read(codec, nid, 650 function_id = snd_hda_param_read(codec, nid,
651 AC_PAR_FUNCTION_TYPE) & 0xff; 651 AC_PAR_FUNCTION_TYPE) & 0xff;
652 switch (codec->function_id) { 652 switch (function_id) {
653 case AC_GRP_AUDIO_FUNCTION: 653 case AC_GRP_AUDIO_FUNCTION:
654 codec->afg = nid; 654 codec->afg = nid;
655 codec->function_id = function_id;
655 break; 656 break;
656 case AC_GRP_MODEM_FUNCTION: 657 case AC_GRP_MODEM_FUNCTION:
657 codec->mfg = nid; 658 codec->mfg = nid;
659 codec->function_id = function_id;
658 break; 660 break;
659 default: 661 default:
660 break; 662 break;
@@ -2250,7 +2252,11 @@ int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid,
2250 err = bus->ops.command(bus, res); 2252 err = bus->ops.command(bus, res);
2251 if (!err) { 2253 if (!err) {
2252 struct hda_cache_head *c; 2254 struct hda_cache_head *c;
2253 u32 key = build_cmd_cache_key(nid, verb); 2255 u32 key;
2256 /* parm may contain the verb stuff for get/set amp */
2257 verb = verb | (parm >> 8);
2258 parm &= 0xff;
2259 key = build_cmd_cache_key(nid, verb);
2254 c = get_alloc_hash(&codec->cmd_cache, key); 2260 c = get_alloc_hash(&codec->cmd_cache, key);
2255 if (c) 2261 if (c)
2256 c->val = parm; 2262 c->val = parm;
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 30829ee920c3..21e99cfa8c49 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -312,6 +312,8 @@ struct azx_dev {
312 unsigned int period_bytes; /* size of the period in bytes */ 312 unsigned int period_bytes; /* size of the period in bytes */
313 unsigned int frags; /* number for period in the play buffer */ 313 unsigned int frags; /* number for period in the play buffer */
314 unsigned int fifo_size; /* FIFO size */ 314 unsigned int fifo_size; /* FIFO size */
315 unsigned long start_jiffies; /* start + minimum jiffies */
316 unsigned long min_jiffies; /* minimum jiffies before position is valid */
315 317
316 void __iomem *sd_addr; /* stream descriptor pointer */ 318 void __iomem *sd_addr; /* stream descriptor pointer */
317 319
@@ -330,7 +332,7 @@ struct azx_dev {
330 unsigned int opened :1; 332 unsigned int opened :1;
331 unsigned int running :1; 333 unsigned int running :1;
332 unsigned int irq_pending :1; 334 unsigned int irq_pending :1;
333 unsigned int irq_ignore :1; 335 unsigned int start_flag: 1; /* stream full start flag */
334 /* 336 /*
335 * For VIA: 337 * For VIA:
336 * A flag to ensure DMA position is 0 338 * A flag to ensure DMA position is 0
@@ -975,7 +977,7 @@ static irqreturn_t azx_interrupt(int irq, void *dev_id)
975 struct azx *chip = dev_id; 977 struct azx *chip = dev_id;
976 struct azx_dev *azx_dev; 978 struct azx_dev *azx_dev;
977 u32 status; 979 u32 status;
978 int i; 980 int i, ok;
979 981
980 spin_lock(&chip->reg_lock); 982 spin_lock(&chip->reg_lock);
981 983
@@ -991,18 +993,14 @@ static irqreturn_t azx_interrupt(int irq, void *dev_id)
991 azx_sd_writeb(azx_dev, SD_STS, SD_INT_MASK); 993 azx_sd_writeb(azx_dev, SD_STS, SD_INT_MASK);
992 if (!azx_dev->substream || !azx_dev->running) 994 if (!azx_dev->substream || !azx_dev->running)
993 continue; 995 continue;
994 /* ignore the first dummy IRQ (due to pos_adj) */
995 if (azx_dev->irq_ignore) {
996 azx_dev->irq_ignore = 0;
997 continue;
998 }
999 /* check whether this IRQ is really acceptable */ 996 /* check whether this IRQ is really acceptable */
1000 if (azx_position_ok(chip, azx_dev)) { 997 ok = azx_position_ok(chip, azx_dev);
998 if (ok == 1) {
1001 azx_dev->irq_pending = 0; 999 azx_dev->irq_pending = 0;
1002 spin_unlock(&chip->reg_lock); 1000 spin_unlock(&chip->reg_lock);
1003 snd_pcm_period_elapsed(azx_dev->substream); 1001 snd_pcm_period_elapsed(azx_dev->substream);
1004 spin_lock(&chip->reg_lock); 1002 spin_lock(&chip->reg_lock);
1005 } else if (chip->bus && chip->bus->workq) { 1003 } else if (ok == 0 && chip->bus && chip->bus->workq) {
1006 /* bogus IRQ, process it later */ 1004 /* bogus IRQ, process it later */
1007 azx_dev->irq_pending = 1; 1005 azx_dev->irq_pending = 1;
1008 queue_work(chip->bus->workq, 1006 queue_work(chip->bus->workq,
@@ -1088,7 +1086,6 @@ static int azx_setup_periods(struct azx *chip,
1088 bdl = (u32 *)azx_dev->bdl.area; 1086 bdl = (u32 *)azx_dev->bdl.area;
1089 ofs = 0; 1087 ofs = 0;
1090 azx_dev->frags = 0; 1088 azx_dev->frags = 0;
1091 azx_dev->irq_ignore = 0;
1092 pos_adj = bdl_pos_adj[chip->dev_index]; 1089 pos_adj = bdl_pos_adj[chip->dev_index];
1093 if (pos_adj > 0) { 1090 if (pos_adj > 0) {
1094 struct snd_pcm_runtime *runtime = substream->runtime; 1091 struct snd_pcm_runtime *runtime = substream->runtime;
@@ -1109,7 +1106,6 @@ static int azx_setup_periods(struct azx *chip,
1109 &bdl, ofs, pos_adj, 1); 1106 &bdl, ofs, pos_adj, 1);
1110 if (ofs < 0) 1107 if (ofs < 0)
1111 goto error; 1108 goto error;
1112 azx_dev->irq_ignore = 1;
1113 } 1109 }
1114 } else 1110 } else
1115 pos_adj = 0; 1111 pos_adj = 0;
@@ -1155,6 +1151,9 @@ static void azx_stream_reset(struct azx *chip, struct azx_dev *azx_dev)
1155 while (((val = azx_sd_readb(azx_dev, SD_CTL)) & SD_CTL_STREAM_RESET) && 1151 while (((val = azx_sd_readb(azx_dev, SD_CTL)) & SD_CTL_STREAM_RESET) &&
1156 --timeout) 1152 --timeout)
1157 ; 1153 ;
1154
1155 /* reset first position - may not be synced with hw at this time */
1156 *azx_dev->posbuf = 0;
1158} 1157}
1159 1158
1160/* 1159/*
@@ -1409,7 +1408,6 @@ static int azx_pcm_open(struct snd_pcm_substream *substream)
1409 snd_pcm_set_sync(substream); 1408 snd_pcm_set_sync(substream);
1410 mutex_unlock(&chip->open_mutex); 1409 mutex_unlock(&chip->open_mutex);
1411 1410
1412 azx_stream_reset(chip, azx_dev);
1413 return 0; 1411 return 0;
1414} 1412}
1415 1413
@@ -1474,6 +1472,7 @@ static int azx_pcm_prepare(struct snd_pcm_substream *substream)
1474 unsigned int bufsize, period_bytes, format_val; 1472 unsigned int bufsize, period_bytes, format_val;
1475 int err; 1473 int err;
1476 1474
1475 azx_stream_reset(chip, azx_dev);
1477 format_val = snd_hda_calc_stream_format(runtime->rate, 1476 format_val = snd_hda_calc_stream_format(runtime->rate,
1478 runtime->channels, 1477 runtime->channels,
1479 runtime->format, 1478 runtime->format,
@@ -1502,6 +1501,8 @@ static int azx_pcm_prepare(struct snd_pcm_substream *substream)
1502 return err; 1501 return err;
1503 } 1502 }
1504 1503
1504 azx_dev->min_jiffies = (runtime->period_size * HZ) /
1505 (runtime->rate * 2);
1505 azx_setup_controller(chip, azx_dev); 1506 azx_setup_controller(chip, azx_dev);
1506 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 1507 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
1507 azx_dev->fifo_size = azx_sd_readw(azx_dev, SD_FIFOSIZE) + 1; 1508 azx_dev->fifo_size = azx_sd_readw(azx_dev, SD_FIFOSIZE) + 1;
@@ -1518,13 +1519,14 @@ static int azx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
1518 struct azx *chip = apcm->chip; 1519 struct azx *chip = apcm->chip;
1519 struct azx_dev *azx_dev; 1520 struct azx_dev *azx_dev;
1520 struct snd_pcm_substream *s; 1521 struct snd_pcm_substream *s;
1521 int start, nsync = 0, sbits = 0; 1522 int rstart = 0, start, nsync = 0, sbits = 0;
1522 int nwait, timeout; 1523 int nwait, timeout;
1523 1524
1524 switch (cmd) { 1525 switch (cmd) {
1526 case SNDRV_PCM_TRIGGER_START:
1527 rstart = 1;
1525 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 1528 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
1526 case SNDRV_PCM_TRIGGER_RESUME: 1529 case SNDRV_PCM_TRIGGER_RESUME:
1527 case SNDRV_PCM_TRIGGER_START:
1528 start = 1; 1530 start = 1;
1529 break; 1531 break;
1530 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 1532 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
@@ -1554,6 +1556,10 @@ static int azx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
1554 if (s->pcm->card != substream->pcm->card) 1556 if (s->pcm->card != substream->pcm->card)
1555 continue; 1557 continue;
1556 azx_dev = get_azx_dev(s); 1558 azx_dev = get_azx_dev(s);
1559 if (rstart) {
1560 azx_dev->start_flag = 1;
1561 azx_dev->start_jiffies = jiffies + azx_dev->min_jiffies;
1562 }
1557 if (start) 1563 if (start)
1558 azx_stream_start(chip, azx_dev); 1564 azx_stream_start(chip, azx_dev);
1559 else 1565 else
@@ -1703,6 +1709,11 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev)
1703{ 1709{
1704 unsigned int pos; 1710 unsigned int pos;
1705 1711
1712 if (azx_dev->start_flag &&
1713 time_before_eq(jiffies, azx_dev->start_jiffies))
1714 return -1; /* bogus (too early) interrupt */
1715 azx_dev->start_flag = 0;
1716
1706 pos = azx_get_position(chip, azx_dev); 1717 pos = azx_get_position(chip, azx_dev);
1707 if (chip->position_fix == POS_FIX_AUTO) { 1718 if (chip->position_fix == POS_FIX_AUTO) {
1708 if (!pos) { 1719 if (!pos) {
@@ -2260,11 +2271,11 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2260 gcap &= ~0x01; 2271 gcap &= ~0x01;
2261 2272
2262 /* allow 64bit DMA address if supported by H/W */ 2273 /* allow 64bit DMA address if supported by H/W */
2263 if ((gcap & 0x01) && !pci_set_dma_mask(pci, DMA_64BIT_MASK)) 2274 if ((gcap & 0x01) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64)))
2264 pci_set_consistent_dma_mask(pci, DMA_64BIT_MASK); 2275 pci_set_consistent_dma_mask(pci, DMA_BIT_MASK(64));
2265 else { 2276 else {
2266 pci_set_dma_mask(pci, DMA_32BIT_MASK); 2277 pci_set_dma_mask(pci, DMA_BIT_MASK(32));
2267 pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK); 2278 pci_set_consistent_dma_mask(pci, DMA_BIT_MASK(32));
2268 } 2279 }
2269 2280
2270 /* read number of streams from GCAP register instead of using 2281 /* read number of streams from GCAP register instead of using
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 38ad3f7b040f..84cc49ca9148 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -3817,6 +3817,49 @@ static struct hda_verb ad1884a_laptop_verbs[] = {
3817 { } /* end */ 3817 { } /* end */
3818}; 3818};
3819 3819
3820static struct hda_verb ad1884a_mobile_verbs[] = {
3821 /* DACs; unmute as default */
3822 {0x03, AC_VERB_SET_AMP_GAIN_MUTE, 0x27}, /* 0dB */
3823 {0x04, AC_VERB_SET_AMP_GAIN_MUTE, 0x27}, /* 0dB */
3824 /* Port-A (HP) mixer - route only from analog mixer */
3825 {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
3826 {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
3827 /* Port-A pin */
3828 {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
3829 /* Port-A (HP) pin - always unmuted */
3830 {0x11, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
3831 /* Port-B (mic jack) pin */
3832 {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
3833 {0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */
3834 /* Port-C (int mic) pin */
3835 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
3836 {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */
3837 /* Port-F (int speaker) mixer - route only from analog mixer */
3838 {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
3839 {0x0b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
3840 /* Port-F pin */
3841 {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
3842 {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
3843 /* Analog mixer; mute as default */
3844 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
3845 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
3846 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(2)},
3847 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(3)},
3848 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
3849 {0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(5)},
3850 /* Analog Mix output amp */
3851 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
3852 /* capture sources */
3853 /* {0x0c, AC_VERB_SET_CONNECT_SEL, 0x0}, */ /* set via unsol */
3854 {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
3855 {0x0d, AC_VERB_SET_CONNECT_SEL, 0x0},
3856 {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},
3857 /* unsolicited event for pin-sense */
3858 {0x11, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | AD1884A_HP_EVENT},
3859 {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | AD1884A_MIC_EVENT},
3860 { } /* end */
3861};
3862
3820/* 3863/*
3821 * Thinkpad X300 3864 * Thinkpad X300
3822 * 0x11 - HP 3865 * 0x11 - HP
@@ -3977,10 +4020,18 @@ static int patch_ad1884a(struct hda_codec *codec)
3977 spec->input_mux = &ad1884a_laptop_capture_source; 4020 spec->input_mux = &ad1884a_laptop_capture_source;
3978 codec->patch_ops.unsol_event = ad1884a_hp_unsol_event; 4021 codec->patch_ops.unsol_event = ad1884a_hp_unsol_event;
3979 codec->patch_ops.init = ad1884a_hp_init; 4022 codec->patch_ops.init = ad1884a_hp_init;
4023 /* set the upper-limit for mixer amp to 0dB for avoiding the
4024 * possible damage by overloading
4025 */
4026 snd_hda_override_amp_caps(codec, 0x20, HDA_INPUT,
4027 (0x17 << AC_AMPCAP_OFFSET_SHIFT) |
4028 (0x17 << AC_AMPCAP_NUM_STEPS_SHIFT) |
4029 (0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) |
4030 (1 << AC_AMPCAP_MUTE_SHIFT));
3980 break; 4031 break;
3981 case AD1884A_MOBILE: 4032 case AD1884A_MOBILE:
3982 spec->mixers[0] = ad1884a_mobile_mixers; 4033 spec->mixers[0] = ad1884a_mobile_mixers;
3983 spec->init_verbs[spec->num_init_verbs++] = ad1884a_laptop_verbs; 4034 spec->init_verbs[0] = ad1884a_mobile_verbs;
3984 spec->multiout.dig_out_nid = 0; 4035 spec->multiout.dig_out_nid = 0;
3985 codec->patch_ops.unsol_event = ad1884a_hp_unsol_event; 4036 codec->patch_ops.unsol_event = ad1884a_hp_unsol_event;
3986 codec->patch_ops.init = ad1884a_hp_init; 4037 codec->patch_ops.init = ad1884a_hp_init;
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 1f2ad76ca94b..56ce19e68cb5 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -350,12 +350,20 @@ static int conexant_mux_enum_put(struct snd_kcontrol *kcontrol,
350} 350}
351 351
352#ifdef CONFIG_SND_JACK 352#ifdef CONFIG_SND_JACK
353static void conexant_free_jack_priv(struct snd_jack *jack)
354{
355 struct conexant_jack *jacks = jack->private_data;
356 jacks->nid = 0;
357 jacks->jack = NULL;
358}
359
353static int conexant_add_jack(struct hda_codec *codec, 360static int conexant_add_jack(struct hda_codec *codec,
354 hda_nid_t nid, int type) 361 hda_nid_t nid, int type)
355{ 362{
356 struct conexant_spec *spec; 363 struct conexant_spec *spec;
357 struct conexant_jack *jack; 364 struct conexant_jack *jack;
358 const char *name; 365 const char *name;
366 int err;
359 367
360 spec = codec->spec; 368 spec = codec->spec;
361 snd_array_init(&spec->jacks, sizeof(*jack), 32); 369 snd_array_init(&spec->jacks, sizeof(*jack), 32);
@@ -368,7 +376,12 @@ static int conexant_add_jack(struct hda_codec *codec,
368 jack->nid = nid; 376 jack->nid = nid;
369 jack->type = type; 377 jack->type = type;
370 378
371 return snd_jack_new(codec->bus->card, name, type, &jack->jack); 379 err = snd_jack_new(codec->bus->card, name, type, &jack->jack);
380 if (err < 0)
381 return err;
382 jack->jack->private_data = jack;
383 jack->jack->private_free = conexant_free_jack_priv;
384 return 0;
372} 385}
373 386
374static void conexant_report_jack(struct hda_codec *codec, hda_nid_t nid) 387static void conexant_report_jack(struct hda_codec *codec, hda_nid_t nid)
@@ -455,8 +468,10 @@ static void conexant_free(struct hda_codec *codec)
455 if (spec->jacks.list) { 468 if (spec->jacks.list) {
456 struct conexant_jack *jacks = spec->jacks.list; 469 struct conexant_jack *jacks = spec->jacks.list;
457 int i; 470 int i;
458 for (i = 0; i < spec->jacks.used; i++) 471 for (i = 0; i < spec->jacks.used; i++, jacks++) {
459 snd_device_free(codec->bus->card, &jacks[i].jack); 472 if (jacks->jack)
473 snd_device_free(codec->bus->card, jacks->jack);
474 }
460 snd_array_free(&spec->jacks); 475 snd_array_free(&spec->jacks);
461 } 476 }
462#endif 477#endif
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index f35e58a2d921..b8a0d3e79272 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -188,6 +188,8 @@ enum {
188 ALC663_ASUS_MODE4, 188 ALC663_ASUS_MODE4,
189 ALC663_ASUS_MODE5, 189 ALC663_ASUS_MODE5,
190 ALC663_ASUS_MODE6, 190 ALC663_ASUS_MODE6,
191 ALC272_DELL,
192 ALC272_DELL_ZM1,
191 ALC662_AUTO, 193 ALC662_AUTO,
192 ALC662_MODEL_LAST, 194 ALC662_MODEL_LAST,
193}; 195};
@@ -8742,10 +8744,9 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8742 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC883_LAPTOP_EAPD), 8744 SND_PCI_QUIRK_VENDOR(0x1558, "Clevo laptop", ALC883_LAPTOP_EAPD),
8743 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch), 8745 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch),
8744 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION), 8746 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION),
8745 SND_PCI_QUIRK(0x1734, 0x1107, "FSC AMILO Xi2550", 8747 SND_PCI_QUIRK_MASK(0x1734, 0xfff0, 0x1100, "FSC AMILO Xi/Pi25xx",
8746 ALC883_FUJITSU_PI2515), 8748 ALC883_FUJITSU_PI2515),
8747 SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515), 8749 SND_PCI_QUIRK_MASK(0x1734, 0xfff0, 0x1130, "Fujitsu AMILO Xa35xx",
8748 SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530",
8749 ALC888_FUJITSU_XA3530), 8750 ALC888_FUJITSU_XA3530),
8750 SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo 101e", ALC883_LENOVO_101E_2ch), 8751 SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo 101e", ALC883_LENOVO_101E_2ch),
8751 SND_PCI_QUIRK(0x17aa, 0x2085, "Lenovo NB0763", ALC883_LENOVO_NB0763), 8752 SND_PCI_QUIRK(0x17aa, 0x2085, "Lenovo NB0763", ALC883_LENOVO_NB0763),
@@ -12977,10 +12978,17 @@ static struct snd_pci_quirk alc269_cfg_tbl[] = {
12977 SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_QUANTA_FL1), 12978 SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_QUANTA_FL1),
12978 SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A", 12979 SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A",
12979 ALC269_ASUS_EEEPC_P703), 12980 ALC269_ASUS_EEEPC_P703),
12981 SND_PCI_QUIRK(0x1043, 0x1883, "ASUS F81Se", ALC269_ASUS_EEEPC_P703),
12982 SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS F5Q", ALC269_ASUS_EEEPC_P703),
12983 SND_PCI_QUIRK(0x1043, 0x1723, "ASUS P80", ALC269_ASUS_EEEPC_P703),
12984 SND_PCI_QUIRK(0x1043, 0x1773, "ASUS U20A", ALC269_ASUS_EEEPC_P703),
12985 SND_PCI_QUIRK(0x1043, 0x1743, "ASUS U80", ALC269_ASUS_EEEPC_P703),
12986 SND_PCI_QUIRK(0x1043, 0x1653, "ASUS U50", ALC269_ASUS_EEEPC_P703),
12980 SND_PCI_QUIRK(0x1043, 0x831a, "ASUS Eeepc P901", 12987 SND_PCI_QUIRK(0x1043, 0x831a, "ASUS Eeepc P901",
12981 ALC269_ASUS_EEEPC_P901), 12988 ALC269_ASUS_EEEPC_P901),
12982 SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101", 12989 SND_PCI_QUIRK(0x1043, 0x834a, "ASUS Eeepc S101",
12983 ALC269_ASUS_EEEPC_P901), 12990 ALC269_ASUS_EEEPC_P901),
12991 SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_ASUS_EEEPC_P901),
12984 SND_PCI_QUIRK(0x1734, 0x115d, "FSC Amilo", ALC269_FUJITSU), 12992 SND_PCI_QUIRK(0x1734, 0x115d, "FSC Amilo", ALC269_FUJITSU),
12985 SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook ICH9M-based", ALC269_LIFEBOOK), 12993 SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook ICH9M-based", ALC269_LIFEBOOK),
12986 {} 12994 {}
@@ -15211,12 +15219,23 @@ static hda_nid_t alc662_dac_nids[4] = {
15211 0x02, 0x03, 0x04 15219 0x02, 0x03, 0x04
15212}; 15220};
15213 15221
15222static hda_nid_t alc272_dac_nids[2] = {
15223 0x02, 0x03
15224};
15225
15214static hda_nid_t alc662_adc_nids[1] = { 15226static hda_nid_t alc662_adc_nids[1] = {
15215 /* ADC1-2 */ 15227 /* ADC1-2 */
15216 0x09, 15228 0x09,
15217}; 15229};
15218 15230
15231static hda_nid_t alc272_adc_nids[1] = {
15232 /* ADC1-2 */
15233 0x08,
15234};
15235
15219static hda_nid_t alc662_capsrc_nids[1] = { 0x22 }; 15236static hda_nid_t alc662_capsrc_nids[1] = { 0x22 };
15237static hda_nid_t alc272_capsrc_nids[1] = { 0x23 };
15238
15220 15239
15221/* input MUX */ 15240/* input MUX */
15222/* FIXME: should be a matrix-type input source selection */ 15241/* FIXME: should be a matrix-type input source selection */
@@ -15642,14 +15661,7 @@ static struct hda_verb alc662_init_verbs[] = {
15642 /* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */ 15661 /* Mixer elements: 0x18, 19, 1a, 1b, 1c, 1d, 14, 15, 16, 17, 0b */
15643 /* Input mixer */ 15662 /* Input mixer */
15644 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 15663 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
15645 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
15646 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)},
15647 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)},
15648
15649 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, 15664 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
15650 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
15651 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)},
15652 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(4)},
15653 15665
15654 /* always trun on EAPD */ 15666 /* always trun on EAPD */
15655 {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2}, 15667 {0x14, AC_VERB_SET_EAPD_BTLENABLE, 2},
@@ -15844,12 +15856,48 @@ static struct hda_verb alc662_ecs_init_verbs[] = {
15844 {} 15856 {}
15845}; 15857};
15846 15858
15859static struct hda_verb alc272_dell_zm1_init_verbs[] = {
15860 {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15861 {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15862 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15863 {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15864 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
15865 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
15866 {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */
15867 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
15868 {0x22, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(9)},
15869 {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT},
15870 {0x21, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT},
15871 {}
15872};
15873
15874static struct hda_verb alc272_dell_init_verbs[] = {
15875 {0x12, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15876 {0x13, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15877 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15878 {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN},
15879 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
15880 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
15881 {0x21, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Headphone */
15882 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
15883 {0x23, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(9)},
15884 {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT},
15885 {0x21, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT},
15886 {}
15887};
15888
15847static struct snd_kcontrol_new alc662_auto_capture_mixer[] = { 15889static struct snd_kcontrol_new alc662_auto_capture_mixer[] = {
15848 HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT), 15890 HDA_CODEC_VOLUME("Capture Volume", 0x09, 0x0, HDA_INPUT),
15849 HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT), 15891 HDA_CODEC_MUTE("Capture Switch", 0x09, 0x0, HDA_INPUT),
15850 { } /* end */ 15892 { } /* end */
15851}; 15893};
15852 15894
15895static struct snd_kcontrol_new alc272_auto_capture_mixer[] = {
15896 HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
15897 HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT),
15898 { } /* end */
15899};
15900
15853static void alc662_lenovo_101e_ispeaker_automute(struct hda_codec *codec) 15901static void alc662_lenovo_101e_ispeaker_automute(struct hda_codec *codec)
15854{ 15902{
15855 unsigned int present; 15903 unsigned int present;
@@ -16361,6 +16409,8 @@ static const char *alc662_models[ALC662_MODEL_LAST] = {
16361 16409
16362static struct snd_pci_quirk alc662_cfg_tbl[] = { 16410static struct snd_pci_quirk alc662_cfg_tbl[] = {
16363 SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_ECS), 16411 SND_PCI_QUIRK(0x1019, 0x9087, "ECS", ALC662_ECS),
16412 SND_PCI_QUIRK(0x1028, 0x02d6, "DELL", ALC272_DELL),
16413 SND_PCI_QUIRK(0x1028, 0x02f4, "DELL ZM1", ALC272_DELL_ZM1),
16364 SND_PCI_QUIRK(0x1043, 0x1000, "ASUS N50Vm", ALC663_ASUS_MODE1), 16414 SND_PCI_QUIRK(0x1043, 0x1000, "ASUS N50Vm", ALC663_ASUS_MODE1),
16365 SND_PCI_QUIRK(0x1043, 0x1092, "ASUS NB", ALC663_ASUS_MODE3), 16415 SND_PCI_QUIRK(0x1043, 0x1092, "ASUS NB", ALC663_ASUS_MODE3),
16366 SND_PCI_QUIRK(0x1043, 0x11c3, "ASUS M70V", ALC663_ASUS_MODE3), 16416 SND_PCI_QUIRK(0x1043, 0x11c3, "ASUS M70V", ALC663_ASUS_MODE3),
@@ -16373,26 +16423,36 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
16373 SND_PCI_QUIRK(0x1043, 0x1763, "ASUS NB", ALC663_ASUS_MODE6), 16423 SND_PCI_QUIRK(0x1043, 0x1763, "ASUS NB", ALC663_ASUS_MODE6),
16374 SND_PCI_QUIRK(0x1043, 0x1765, "ASUS NB", ALC663_ASUS_MODE6), 16424 SND_PCI_QUIRK(0x1043, 0x1765, "ASUS NB", ALC663_ASUS_MODE6),
16375 SND_PCI_QUIRK(0x1043, 0x1783, "ASUS NB", ALC662_ASUS_MODE2), 16425 SND_PCI_QUIRK(0x1043, 0x1783, "ASUS NB", ALC662_ASUS_MODE2),
16426 SND_PCI_QUIRK(0x1043, 0x17b3, "ASUS F70SL", ALC663_ASUS_MODE3),
16427 SND_PCI_QUIRK(0x1043, 0x17c3, "ASUS UX20", ALC663_ASUS_M51VA),
16428 SND_PCI_QUIRK(0x1043, 0x17f3, "ASUS X58LE", ALC662_ASUS_MODE2),
16376 SND_PCI_QUIRK(0x1043, 0x1813, "ASUS NB", ALC662_ASUS_MODE2), 16429 SND_PCI_QUIRK(0x1043, 0x1813, "ASUS NB", ALC662_ASUS_MODE2),
16377 SND_PCI_QUIRK(0x1043, 0x1823, "ASUS NB", ALC663_ASUS_MODE5), 16430 SND_PCI_QUIRK(0x1043, 0x1823, "ASUS NB", ALC663_ASUS_MODE5),
16378 SND_PCI_QUIRK(0x1043, 0x1833, "ASUS NB", ALC663_ASUS_MODE6), 16431 SND_PCI_QUIRK(0x1043, 0x1833, "ASUS NB", ALC663_ASUS_MODE6),
16379 SND_PCI_QUIRK(0x1043, 0x1843, "ASUS NB", ALC662_ASUS_MODE2), 16432 SND_PCI_QUIRK(0x1043, 0x1843, "ASUS NB", ALC662_ASUS_MODE2),
16433 SND_PCI_QUIRK(0x1043, 0x1853, "ASUS F50Z", ALC663_ASUS_MODE1),
16380 SND_PCI_QUIRK(0x1043, 0x1864, "ASUS NB", ALC662_ASUS_MODE2), 16434 SND_PCI_QUIRK(0x1043, 0x1864, "ASUS NB", ALC662_ASUS_MODE2),
16381 SND_PCI_QUIRK(0x1043, 0x1876, "ASUS NB", ALC662_ASUS_MODE2), 16435 SND_PCI_QUIRK(0x1043, 0x1876, "ASUS NB", ALC662_ASUS_MODE2),
16382 SND_PCI_QUIRK(0x1043, 0x1878, "ASUS M51VA", ALC663_ASUS_M51VA), 16436 SND_PCI_QUIRK(0x1043, 0x1878, "ASUS M51VA", ALC663_ASUS_M51VA),
16383 /*SND_PCI_QUIRK(0x1043, 0x1878, "ASUS M50Vr", ALC663_ASUS_MODE1),*/ 16437 /*SND_PCI_QUIRK(0x1043, 0x1878, "ASUS M50Vr", ALC663_ASUS_MODE1),*/
16384 SND_PCI_QUIRK(0x1043, 0x1893, "ASUS M50Vm", ALC663_ASUS_MODE3), 16438 SND_PCI_QUIRK(0x1043, 0x1893, "ASUS M50Vm", ALC663_ASUS_MODE3),
16385 SND_PCI_QUIRK(0x1043, 0x1894, "ASUS X55", ALC663_ASUS_MODE3), 16439 SND_PCI_QUIRK(0x1043, 0x1894, "ASUS X55", ALC663_ASUS_MODE3),
16440 SND_PCI_QUIRK(0x1043, 0x18b3, "ASUS N80Vc", ALC663_ASUS_MODE1),
16441 SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS N81Te", ALC663_ASUS_MODE1),
16442 SND_PCI_QUIRK(0x1043, 0x18f3, "ASUS N505Tp", ALC663_ASUS_MODE1),
16386 SND_PCI_QUIRK(0x1043, 0x1903, "ASUS F5GL", ALC663_ASUS_MODE1), 16443 SND_PCI_QUIRK(0x1043, 0x1903, "ASUS F5GL", ALC663_ASUS_MODE1),
16387 SND_PCI_QUIRK(0x1043, 0x1913, "ASUS NB", ALC662_ASUS_MODE2), 16444 SND_PCI_QUIRK(0x1043, 0x1913, "ASUS NB", ALC662_ASUS_MODE2),
16388 SND_PCI_QUIRK(0x1043, 0x1933, "ASUS F80Q", ALC662_ASUS_MODE2), 16445 SND_PCI_QUIRK(0x1043, 0x1933, "ASUS F80Q", ALC662_ASUS_MODE2),
16446 SND_PCI_QUIRK(0x1043, 0x1943, "ASUS Vx3V", ALC663_ASUS_MODE1),
16389 SND_PCI_QUIRK(0x1043, 0x1953, "ASUS NB", ALC663_ASUS_MODE1), 16447 SND_PCI_QUIRK(0x1043, 0x1953, "ASUS NB", ALC663_ASUS_MODE1),
16390 SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71C", ALC663_ASUS_MODE3), 16448 SND_PCI_QUIRK(0x1043, 0x1963, "ASUS X71C", ALC663_ASUS_MODE3),
16449 SND_PCI_QUIRK(0x1043, 0x1983, "ASUS N5051A", ALC663_ASUS_MODE1),
16391 SND_PCI_QUIRK(0x1043, 0x1993, "ASUS N20", ALC663_ASUS_MODE1), 16450 SND_PCI_QUIRK(0x1043, 0x1993, "ASUS N20", ALC663_ASUS_MODE1),
16392 SND_PCI_QUIRK(0x1043, 0x19a3, "ASUS G50V", ALC663_ASUS_G50V), 16451 SND_PCI_QUIRK(0x1043, 0x19a3, "ASUS G50V", ALC663_ASUS_G50V),
16393 /*SND_PCI_QUIRK(0x1043, 0x19a3, "ASUS NB", ALC663_ASUS_MODE1),*/ 16452 /*SND_PCI_QUIRK(0x1043, 0x19a3, "ASUS NB", ALC663_ASUS_MODE1),*/
16394 SND_PCI_QUIRK(0x1043, 0x19b3, "ASUS F7Z", ALC663_ASUS_MODE1), 16453 SND_PCI_QUIRK(0x1043, 0x19b3, "ASUS F7Z", ALC663_ASUS_MODE1),
16395 SND_PCI_QUIRK(0x1043, 0x19c3, "ASUS F5Z/F6x", ALC662_ASUS_MODE2), 16454 SND_PCI_QUIRK(0x1043, 0x19c3, "ASUS F5Z/F6x", ALC662_ASUS_MODE2),
16455 SND_PCI_QUIRK(0x1043, 0x19d3, "ASUS NB", ALC663_ASUS_M51VA),
16396 SND_PCI_QUIRK(0x1043, 0x19e3, "ASUS NB", ALC663_ASUS_MODE1), 16456 SND_PCI_QUIRK(0x1043, 0x19e3, "ASUS NB", ALC663_ASUS_MODE1),
16397 SND_PCI_QUIRK(0x1043, 0x19f3, "ASUS NB", ALC663_ASUS_MODE4), 16457 SND_PCI_QUIRK(0x1043, 0x19f3, "ASUS NB", ALC663_ASUS_MODE4),
16398 SND_PCI_QUIRK(0x1043, 0x8290, "ASUS P5GC-MX", ALC662_3ST_6ch_DIG), 16458 SND_PCI_QUIRK(0x1043, 0x8290, "ASUS P5GC-MX", ALC662_3ST_6ch_DIG),
@@ -16404,6 +16464,7 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
16404 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L", 16464 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L",
16405 ALC662_3ST_6ch_DIG), 16465 ALC662_3ST_6ch_DIG),
16406 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG), 16466 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG),
16467 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA),
16407 SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo", ALC662_LENOVO_101E), 16468 SND_PCI_QUIRK(0x17aa, 0x101e, "Lenovo", ALC662_LENOVO_101E),
16408 SND_PCI_QUIRK(0x1849, 0x3662, "ASROCK K10N78FullHD-hSLI R3.0", 16469 SND_PCI_QUIRK(0x1849, 0x3662, "ASROCK K10N78FullHD-hSLI R3.0",
16409 ALC662_3ST_6ch_DIG), 16470 ALC662_3ST_6ch_DIG),
@@ -16641,6 +16702,36 @@ static struct alc_config_preset alc662_presets[] = {
16641 .unsol_event = alc663_mode6_unsol_event, 16702 .unsol_event = alc663_mode6_unsol_event,
16642 .init_hook = alc663_mode6_inithook, 16703 .init_hook = alc663_mode6_inithook,
16643 }, 16704 },
16705 [ALC272_DELL] = {
16706 .mixers = { alc663_m51va_mixer },
16707 .cap_mixer = alc272_auto_capture_mixer,
16708 .init_verbs = { alc662_init_verbs, alc272_dell_init_verbs },
16709 .num_dacs = ARRAY_SIZE(alc272_dac_nids),
16710 .dac_nids = alc662_dac_nids,
16711 .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
16712 .adc_nids = alc272_adc_nids,
16713 .num_adc_nids = ARRAY_SIZE(alc272_adc_nids),
16714 .capsrc_nids = alc272_capsrc_nids,
16715 .channel_mode = alc662_3ST_2ch_modes,
16716 .input_mux = &alc663_m51va_capture_source,
16717 .unsol_event = alc663_m51va_unsol_event,
16718 .init_hook = alc663_m51va_inithook,
16719 },
16720 [ALC272_DELL_ZM1] = {
16721 .mixers = { alc663_m51va_mixer },
16722 .cap_mixer = alc662_auto_capture_mixer,
16723 .init_verbs = { alc662_init_verbs, alc272_dell_zm1_init_verbs },
16724 .num_dacs = ARRAY_SIZE(alc272_dac_nids),
16725 .dac_nids = alc662_dac_nids,
16726 .num_channel_mode = ARRAY_SIZE(alc662_3ST_2ch_modes),
16727 .adc_nids = alc662_adc_nids,
16728 .num_adc_nids = ARRAY_SIZE(alc662_adc_nids),
16729 .capsrc_nids = alc662_capsrc_nids,
16730 .channel_mode = alc662_3ST_2ch_modes,
16731 .input_mux = &alc663_m51va_capture_source,
16732 .unsol_event = alc663_m51va_unsol_event,
16733 .init_hook = alc663_m51va_inithook,
16734 },
16644}; 16735};
16645 16736
16646 16737
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 61996a2f45df..03b3646018a1 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -3076,6 +3076,11 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
3076 unsigned int wid_caps; 3076 unsigned int wid_caps;
3077 3077
3078 for (i = 0; i < num_outs && i < ARRAY_SIZE(chname); i++) { 3078 for (i = 0; i < num_outs && i < ARRAY_SIZE(chname); i++) {
3079 if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
3080 wid_caps = get_wcaps(codec, pins[i]);
3081 if (wid_caps & AC_WCAP_UNSOL_CAP)
3082 spec->hp_detect = 1;
3083 }
3079 nid = dac_nids[i]; 3084 nid = dac_nids[i];
3080 if (!nid) 3085 if (!nid)
3081 continue; 3086 continue;
@@ -3119,11 +3124,6 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
3119 err = create_controls_idx(codec, name, idx, nid, 3); 3124 err = create_controls_idx(codec, name, idx, nid, 3);
3120 if (err < 0) 3125 if (err < 0)
3121 return err; 3126 return err;
3122 if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
3123 wid_caps = get_wcaps(codec, pins[i]);
3124 if (wid_caps & AC_WCAP_UNSOL_CAP)
3125 spec->hp_detect = 1;
3126 }
3127 } 3127 }
3128 } 3128 }
3129 return 0; 3129 return 0;
@@ -3851,6 +3851,15 @@ static void stac_gpio_set(struct hda_codec *codec, unsigned int mask,
3851 AC_VERB_SET_GPIO_DATA, gpiostate); /* sync */ 3851 AC_VERB_SET_GPIO_DATA, gpiostate); /* sync */
3852} 3852}
3853 3853
3854#ifdef CONFIG_SND_JACK
3855static void stac92xx_free_jack_priv(struct snd_jack *jack)
3856{
3857 struct sigmatel_jack *jacks = jack->private_data;
3858 jacks->nid = 0;
3859 jacks->jack = NULL;
3860}
3861#endif
3862
3854static int stac92xx_add_jack(struct hda_codec *codec, 3863static int stac92xx_add_jack(struct hda_codec *codec,
3855 hda_nid_t nid, int type) 3864 hda_nid_t nid, int type)
3856{ 3865{
@@ -3860,6 +3869,7 @@ static int stac92xx_add_jack(struct hda_codec *codec,
3860 int def_conf = snd_hda_codec_get_pincfg(codec, nid); 3869 int def_conf = snd_hda_codec_get_pincfg(codec, nid);
3861 int connectivity = get_defcfg_connect(def_conf); 3870 int connectivity = get_defcfg_connect(def_conf);
3862 char name[32]; 3871 char name[32];
3872 int err;
3863 3873
3864 if (connectivity && connectivity != AC_JACK_PORT_FIXED) 3874 if (connectivity && connectivity != AC_JACK_PORT_FIXED)
3865 return 0; 3875 return 0;
@@ -3876,10 +3886,15 @@ static int stac92xx_add_jack(struct hda_codec *codec,
3876 snd_hda_get_jack_connectivity(def_conf), 3886 snd_hda_get_jack_connectivity(def_conf),
3877 snd_hda_get_jack_location(def_conf)); 3887 snd_hda_get_jack_location(def_conf));
3878 3888
3879 return snd_jack_new(codec->bus->card, name, type, &jack->jack); 3889 err = snd_jack_new(codec->bus->card, name, type, &jack->jack);
3880#else 3890 if (err < 0) {
3881 return 0; 3891 jack->nid = 0;
3892 return err;
3893 }
3894 jack->jack->private_data = jack;
3895 jack->jack->private_free = stac92xx_free_jack_priv;
3882#endif 3896#endif
3897 return 0;
3883} 3898}
3884 3899
3885static int stac_add_event(struct sigmatel_spec *spec, hda_nid_t nid, 3900static int stac_add_event(struct sigmatel_spec *spec, hda_nid_t nid,
@@ -4064,7 +4079,12 @@ static int stac92xx_init(struct hda_codec *codec)
4064 pinctl = snd_hda_codec_read(codec, nid, 0, 4079 pinctl = snd_hda_codec_read(codec, nid, 0,
4065 AC_VERB_GET_PIN_WIDGET_CONTROL, 0); 4080 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
4066 /* if PINCTL already set then skip */ 4081 /* if PINCTL already set then skip */
4067 if (!(pinctl & AC_PINCTL_IN_EN)) { 4082 /* Also, if both INPUT and OUTPUT are set,
4083 * it must be a BIOS bug; need to override, too
4084 */
4085 if (!(pinctl & AC_PINCTL_IN_EN) ||
4086 (pinctl & AC_PINCTL_OUT_EN)) {
4087 pinctl &= ~AC_PINCTL_OUT_EN;
4068 pinctl |= AC_PINCTL_IN_EN; 4088 pinctl |= AC_PINCTL_IN_EN;
4069 stac92xx_auto_set_pinctl(codec, nid, 4089 stac92xx_auto_set_pinctl(codec, nid,
4070 pinctl); 4090 pinctl);
@@ -4138,8 +4158,10 @@ static void stac92xx_free_jacks(struct hda_codec *codec)
4138 if (!codec->bus->shutdown && spec->jacks.list) { 4158 if (!codec->bus->shutdown && spec->jacks.list) {
4139 struct sigmatel_jack *jacks = spec->jacks.list; 4159 struct sigmatel_jack *jacks = spec->jacks.list;
4140 int i; 4160 int i;
4141 for (i = 0; i < spec->jacks.used; i++) 4161 for (i = 0; i < spec->jacks.used; i++, jacks++) {
4142 snd_device_free(codec->bus->card, &jacks[i].jack); 4162 if (jacks->jack)
4163 snd_device_free(codec->bus->card, jacks->jack);
4164 }
4143 } 4165 }
4144 snd_array_free(&spec->jacks); 4166 snd_array_free(&spec->jacks);
4145#endif 4167#endif
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 57648810eaf1..173bebf9f51d 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -355,6 +355,9 @@ struct ichdev {
355 unsigned int fragsize1; 355 unsigned int fragsize1;
356 unsigned int position; 356 unsigned int position;
357 unsigned int pos_shift; 357 unsigned int pos_shift;
358 unsigned int last_pos;
359 unsigned long last_pos_jiffies;
360 unsigned int jiffy_to_bytes;
358 int frags; 361 int frags;
359 int lvi; 362 int lvi;
360 int lvi_frag; 363 int lvi_frag;
@@ -838,7 +841,10 @@ static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd
838 ichdev->suspended = 0; 841 ichdev->suspended = 0;
839 /* fallthru */ 842 /* fallthru */
840 case SNDRV_PCM_TRIGGER_START: 843 case SNDRV_PCM_TRIGGER_START:
844 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
841 val = ICH_IOCE | ICH_STARTBM; 845 val = ICH_IOCE | ICH_STARTBM;
846 ichdev->last_pos = ichdev->position;
847 ichdev->last_pos_jiffies = jiffies;
842 break; 848 break;
843 case SNDRV_PCM_TRIGGER_SUSPEND: 849 case SNDRV_PCM_TRIGGER_SUSPEND:
844 ichdev->suspended = 1; 850 ichdev->suspended = 1;
@@ -849,9 +855,6 @@ static int snd_intel8x0_pcm_trigger(struct snd_pcm_substream *substream, int cmd
849 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 855 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
850 val = ICH_IOCE; 856 val = ICH_IOCE;
851 break; 857 break;
852 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
853 val = ICH_IOCE | ICH_STARTBM;
854 break;
855 default: 858 default:
856 return -EINVAL; 859 return -EINVAL;
857 } 860 }
@@ -1045,6 +1048,7 @@ static int snd_intel8x0_pcm_prepare(struct snd_pcm_substream *substream)
1045 ichdev->pos_shift = (runtime->sample_bits > 16) ? 2 : 1; 1048 ichdev->pos_shift = (runtime->sample_bits > 16) ? 2 : 1;
1046 } 1049 }
1047 snd_intel8x0_setup_periods(chip, ichdev); 1050 snd_intel8x0_setup_periods(chip, ichdev);
1051 ichdev->jiffy_to_bytes = (runtime->rate * 4 * ichdev->pos_shift) / HZ;
1048 return 0; 1052 return 0;
1049} 1053}
1050 1054
@@ -1053,7 +1057,7 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
1053 struct intel8x0 *chip = snd_pcm_substream_chip(substream); 1057 struct intel8x0 *chip = snd_pcm_substream_chip(substream);
1054 struct ichdev *ichdev = get_ichdev(substream); 1058 struct ichdev *ichdev = get_ichdev(substream);
1055 size_t ptr1, ptr; 1059 size_t ptr1, ptr;
1056 int civ, timeout = 100; 1060 int civ, timeout = 10;
1057 unsigned int position; 1061 unsigned int position;
1058 1062
1059 spin_lock(&chip->reg_lock); 1063 spin_lock(&chip->reg_lock);
@@ -1069,9 +1073,19 @@ static snd_pcm_uframes_t snd_intel8x0_pcm_pointer(struct snd_pcm_substream *subs
1069 ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb)) 1073 ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
1070 break; 1074 break;
1071 } while (timeout--); 1075 } while (timeout--);
1072 ptr1 <<= ichdev->pos_shift; 1076 if (ptr1 != 0) {
1073 ptr = ichdev->fragsize1 - ptr1; 1077 ptr1 <<= ichdev->pos_shift;
1074 ptr += position; 1078 ptr = ichdev->fragsize1 - ptr1;
1079 ptr += position;
1080 ichdev->last_pos = ptr;
1081 ichdev->last_pos_jiffies = jiffies;
1082 } else {
1083 ptr1 = jiffies - ichdev->last_pos_jiffies;
1084 if (ptr1)
1085 ptr1 -= 1;
1086 ptr = ichdev->last_pos + ptr1 * ichdev->jiffy_to_bytes;
1087 ptr %= ichdev->size;
1088 }
1075 spin_unlock(&chip->reg_lock); 1089 spin_unlock(&chip->reg_lock);
1076 if (ptr >= ichdev->size) 1090 if (ptr >= ichdev->size)
1077 return 0; 1091 return 0;
@@ -1840,6 +1854,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
1840 }, 1854 },
1841 { 1855 {
1842 .subvendor = 0x1028, 1856 .subvendor = 0x1028,
1857 .subdevice = 0x016a,
1858 .name = "Dell Inspiron 8600", /* STAC9750/51 */
1859 .type = AC97_TUNE_HP_ONLY
1860 },
1861 {
1862 .subvendor = 0x1028,
1843 .subdevice = 0x0186, 1863 .subdevice = 0x0186,
1844 .name = "Dell Latitude D810", /* cf. Malone #41015 */ 1864 .name = "Dell Latitude D810", /* cf. Malone #41015 */
1845 .type = AC97_TUNE_HP_MUTE_LED 1865 .type = AC97_TUNE_HP_MUTE_LED
@@ -1882,12 +1902,6 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
1882 }, 1902 },
1883 { 1903 {
1884 .subvendor = 0x103c, 1904 .subvendor = 0x103c,
1885 .subdevice = 0x0934,
1886 .name = "HP nx8220",
1887 .type = AC97_TUNE_MUTE_LED
1888 },
1889 {
1890 .subvendor = 0x103c,
1891 .subdevice = 0x129d, 1905 .subdevice = 0x129d,
1892 .name = "HP xw8000", 1906 .name = "HP xw8000",
1893 .type = AC97_TUNE_HP_ONLY 1907 .type = AC97_TUNE_HP_ONLY
@@ -2661,12 +2675,14 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
2661 struct snd_pcm_substream *subs; 2675 struct snd_pcm_substream *subs;
2662 struct ichdev *ichdev; 2676 struct ichdev *ichdev;
2663 unsigned long port; 2677 unsigned long port;
2664 unsigned long pos, t; 2678 unsigned long pos, pos1, t;
2665 struct timeval start_time, stop_time; 2679 int civ, timeout = 1000, attempt = 1;
2680 struct timespec start_time, stop_time;
2666 2681
2667 if (chip->ac97_bus->clock != 48000) 2682 if (chip->ac97_bus->clock != 48000)
2668 return; /* specified in module option */ 2683 return; /* specified in module option */
2669 2684
2685 __again:
2670 subs = chip->pcm[0]->streams[0].substream; 2686 subs = chip->pcm[0]->streams[0].substream;
2671 if (! subs || subs->dma_buffer.bytes < INTEL8X0_TESTBUF_SIZE) { 2687 if (! subs || subs->dma_buffer.bytes < INTEL8X0_TESTBUF_SIZE) {
2672 snd_printk(KERN_WARNING "no playback buffer allocated - aborting measure ac97 clock\n"); 2688 snd_printk(KERN_WARNING "no playback buffer allocated - aborting measure ac97 clock\n");
@@ -2674,7 +2690,7 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
2674 } 2690 }
2675 ichdev = &chip->ichd[ICHD_PCMOUT]; 2691 ichdev = &chip->ichd[ICHD_PCMOUT];
2676 ichdev->physbuf = subs->dma_buffer.addr; 2692 ichdev->physbuf = subs->dma_buffer.addr;
2677 ichdev->size = chip->ichd[ICHD_PCMOUT].fragsize = INTEL8X0_TESTBUF_SIZE; 2693 ichdev->size = ichdev->fragsize = INTEL8X0_TESTBUF_SIZE;
2678 ichdev->substream = NULL; /* don't process interrupts */ 2694 ichdev->substream = NULL; /* don't process interrupts */
2679 2695
2680 /* set rate */ 2696 /* set rate */
@@ -2693,16 +2709,31 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
2693 iputbyte(chip, port + ICH_REG_OFF_CR, ICH_IOCE); 2709 iputbyte(chip, port + ICH_REG_OFF_CR, ICH_IOCE);
2694 iputdword(chip, ICHREG(ALI_DMACR), 1 << ichdev->ali_slot); 2710 iputdword(chip, ICHREG(ALI_DMACR), 1 << ichdev->ali_slot);
2695 } 2711 }
2696 do_gettimeofday(&start_time); 2712 do_posix_clock_monotonic_gettime(&start_time);
2697 spin_unlock_irq(&chip->reg_lock); 2713 spin_unlock_irq(&chip->reg_lock);
2698 msleep(50); 2714 msleep(50);
2699 spin_lock_irq(&chip->reg_lock); 2715 spin_lock_irq(&chip->reg_lock);
2700 /* check the position */ 2716 /* check the position */
2701 pos = ichdev->fragsize1; 2717 do {
2702 pos -= igetword(chip, ichdev->reg_offset + ichdev->roff_picb) << ichdev->pos_shift; 2718 civ = igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV);
2703 pos += ichdev->position; 2719 pos1 = igetword(chip, ichdev->reg_offset + ichdev->roff_picb);
2720 if (pos1 == 0) {
2721 udelay(10);
2722 continue;
2723 }
2724 if (civ == igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV) &&
2725 pos1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
2726 break;
2727 } while (timeout--);
2728 if (pos1 == 0) { /* oops, this value is not reliable */
2729 pos = 0;
2730 } else {
2731 pos = ichdev->fragsize1;
2732 pos -= pos1 << ichdev->pos_shift;
2733 pos += ichdev->position;
2734 }
2704 chip->in_measurement = 0; 2735 chip->in_measurement = 0;
2705 do_gettimeofday(&stop_time); 2736 do_posix_clock_monotonic_gettime(&stop_time);
2706 /* stop */ 2737 /* stop */
2707 if (chip->device_type == DEVICE_ALI) { 2738 if (chip->device_type == DEVICE_ALI) {
2708 iputdword(chip, ICHREG(ALI_DMACR), 1 << (ichdev->ali_slot + 16)); 2739 iputdword(chip, ICHREG(ALI_DMACR), 1 << (ichdev->ali_slot + 16));
@@ -2717,22 +2748,42 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
2717 iputbyte(chip, port + ICH_REG_OFF_CR, ICH_RESETREGS); 2748 iputbyte(chip, port + ICH_REG_OFF_CR, ICH_RESETREGS);
2718 spin_unlock_irq(&chip->reg_lock); 2749 spin_unlock_irq(&chip->reg_lock);
2719 2750
2751 if (pos == 0) {
2752 snd_printk(KERN_ERR "intel8x0: measure - unreliable DMA position..\n");
2753 __retry:
2754 if (attempt < 3) {
2755 msleep(300);
2756 attempt++;
2757 goto __again;
2758 }
2759 goto __end;
2760 }
2761
2762 pos /= 4;
2720 t = stop_time.tv_sec - start_time.tv_sec; 2763 t = stop_time.tv_sec - start_time.tv_sec;
2721 t *= 1000000; 2764 t *= 1000000;
2722 t += stop_time.tv_usec - start_time.tv_usec; 2765 t += (stop_time.tv_nsec - start_time.tv_nsec) / 1000;
2723 printk(KERN_INFO "%s: measured %lu usecs\n", __func__, t); 2766 printk(KERN_INFO "%s: measured %lu usecs (%lu samples)\n", __func__, t, pos);
2724 if (t == 0) { 2767 if (t == 0) {
2725 snd_printk(KERN_ERR "?? calculation error..\n"); 2768 snd_printk(KERN_ERR "intel8x0: ?? calculation error..\n");
2726 return; 2769 goto __retry;
2727 } 2770 }
2728 pos = (pos / 4) * 1000; 2771 pos *= 1000;
2729 pos = (pos / t) * 1000 + ((pos % t) * 1000) / t; 2772 pos = (pos / t) * 1000 + ((pos % t) * 1000) / t;
2730 if (pos < 40000 || pos >= 60000) 2773 if (pos < 40000 || pos >= 60000) {
2731 /* abnormal value. hw problem? */ 2774 /* abnormal value. hw problem? */
2732 printk(KERN_INFO "intel8x0: measured clock %ld rejected\n", pos); 2775 printk(KERN_INFO "intel8x0: measured clock %ld rejected\n", pos);
2776 goto __retry;
2777 } else if (pos > 40500 && pos < 41500)
2778 /* first exception - 41000Hz reference clock */
2779 chip->ac97_bus->clock = 41000;
2780 else if (pos > 43600 && pos < 44600)
2781 /* second exception - 44100HZ reference clock */
2782 chip->ac97_bus->clock = 44100;
2733 else if (pos < 47500 || pos > 48500) 2783 else if (pos < 47500 || pos > 48500)
2734 /* not 48000Hz, tuning the clock.. */ 2784 /* not 48000Hz, tuning the clock.. */
2735 chip->ac97_bus->clock = (chip->ac97_bus->clock * 48000) / pos; 2785 chip->ac97_bus->clock = (chip->ac97_bus->clock * 48000) / pos;
2786 __end:
2736 printk(KERN_INFO "intel8x0: clocking to %d\n", chip->ac97_bus->clock); 2787 printk(KERN_INFO "intel8x0: clocking to %d\n", chip->ac97_bus->clock);
2737 snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0); 2788 snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0);
2738} 2789}
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
index 8b79969034be..7cc38a11e997 100644
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -1238,7 +1238,8 @@ static struct snd_pcm_hardware snd_korg1212_playback_info =
1238{ 1238{
1239 .info = (SNDRV_PCM_INFO_MMAP | 1239 .info = (SNDRV_PCM_INFO_MMAP |
1240 SNDRV_PCM_INFO_MMAP_VALID | 1240 SNDRV_PCM_INFO_MMAP_VALID |
1241 SNDRV_PCM_INFO_INTERLEAVED), 1241 SNDRV_PCM_INFO_INTERLEAVED |
1242 SNDRV_PCM_INFO_BATCH),
1242 .formats = SNDRV_PCM_FMTBIT_S16_LE, 1243 .formats = SNDRV_PCM_FMTBIT_S16_LE,
1243 .rates = (SNDRV_PCM_RATE_44100 | 1244 .rates = (SNDRV_PCM_RATE_44100 |
1244 SNDRV_PCM_RATE_48000), 1245 SNDRV_PCM_RATE_48000),
@@ -1258,7 +1259,8 @@ static struct snd_pcm_hardware snd_korg1212_capture_info =
1258{ 1259{
1259 .info = (SNDRV_PCM_INFO_MMAP | 1260 .info = (SNDRV_PCM_INFO_MMAP |
1260 SNDRV_PCM_INFO_MMAP_VALID | 1261 SNDRV_PCM_INFO_MMAP_VALID |
1261 SNDRV_PCM_INFO_INTERLEAVED), 1262 SNDRV_PCM_INFO_INTERLEAVED |
1263 SNDRV_PCM_INFO_BATCH),
1262 .formats = SNDRV_PCM_FMTBIT_S16_LE, 1264 .formats = SNDRV_PCM_FMTBIT_S16_LE,
1263 .rates = (SNDRV_PCM_RATE_44100 | 1265 .rates = (SNDRV_PCM_RATE_44100 |
1264 SNDRV_PCM_RATE_48000), 1266 SNDRV_PCM_RATE_48000),
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index 6f1034417a02..e51a5ef1954d 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -889,7 +889,7 @@ static int sendcmd(struct cmdif *cif, u32 flags, u32 cmd, u32 parm,
889 spin_lock_irqsave(&cif->lock, irqflags); 889 spin_lock_irqsave(&cif->lock, irqflags);
890 while (i++ < CMDIF_TIMEOUT && !IS_READY(cif->hwport)) 890 while (i++ < CMDIF_TIMEOUT && !IS_READY(cif->hwport))
891 udelay(10); 891 udelay(10);
892 if (i >= CMDIF_TIMEOUT) { 892 if (i > CMDIF_TIMEOUT) {
893 err = -EBUSY; 893 err = -EBUSY;
894 goto errout; 894 goto errout;
895 } 895 }
@@ -907,8 +907,10 @@ static int sendcmd(struct cmdif *cif, u32 flags, u32 cmd, u32 parm,
907 WRITE_PORT_ULONG(cmdport->data1, cmd); /* write cmd */ 907 WRITE_PORT_ULONG(cmdport->data1, cmd); /* write cmd */
908 if ((flags & RESP) && ret) { 908 if ((flags & RESP) && ret) {
909 while (!IS_DATF(cmdport) && 909 while (!IS_DATF(cmdport) &&
910 time++ < CMDIF_TIMEOUT) 910 time < CMDIF_TIMEOUT) {
911 udelay(10); 911 udelay(10);
912 time++;
913 }
912 if (time < CMDIF_TIMEOUT) { /* read response */ 914 if (time < CMDIF_TIMEOUT) { /* read response */
913 ret->retlongs[0] = 915 ret->retlongs[0] =
914 READ_PORT_ULONG(cmdport->data1); 916 READ_PORT_ULONG(cmdport->data1);
@@ -1454,7 +1456,7 @@ static int snd_riptide_trigger(struct snd_pcm_substream *substream, int cmd)
1454 SEND_GPOS(cif, 0, data->id, &rptr); 1456 SEND_GPOS(cif, 0, data->id, &rptr);
1455 udelay(1); 1457 udelay(1);
1456 } while (i != rptr.retlongs[1] && j++ < MAX_WRITE_RETRY); 1458 } while (i != rptr.retlongs[1] && j++ < MAX_WRITE_RETRY);
1457 if (j >= MAX_WRITE_RETRY) 1459 if (j > MAX_WRITE_RETRY)
1458 snd_printk(KERN_ERR "Riptide: Could not stop stream!"); 1460 snd_printk(KERN_ERR "Riptide: Could not stop stream!");
1459 break; 1461 break;
1460 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 1462 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
@@ -1783,7 +1785,7 @@ snd_riptide_codec_write(struct snd_ac97 *ac97, unsigned short reg,
1783 SEND_SACR(cif, val, reg); 1785 SEND_SACR(cif, val, reg);
1784 SEND_RACR(cif, reg, &rptr); 1786 SEND_RACR(cif, reg, &rptr);
1785 } while (rptr.retwords[1] != val && i++ < MAX_WRITE_RETRY); 1787 } while (rptr.retwords[1] != val && i++ < MAX_WRITE_RETRY);
1786 if (i == MAX_WRITE_RETRY) 1788 if (i > MAX_WRITE_RETRY)
1787 snd_printdd("Write AC97 reg failed\n"); 1789 snd_printdd("Write AC97 reg failed\n");
1788} 1790}
1789 1791
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 809b233dd4a3..1ef58c51c213 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -1687,7 +1687,7 @@ static int snd_via8233_pcmdxs_volume_put(struct snd_kcontrol *kcontrol,
1687 return change; 1687 return change;
1688} 1688}
1689 1689
1690static const DECLARE_TLV_DB_SCALE(db_scale_dxs, -9450, 150, 1); 1690static const DECLARE_TLV_DB_SCALE(db_scale_dxs, -4650, 150, 1);
1691 1691
1692static struct snd_kcontrol_new snd_via8233_pcmdxs_volume_control __devinitdata = { 1692static struct snd_kcontrol_new snd_via8233_pcmdxs_volume_control __devinitdata = {
1693 .name = "PCM Playback Volume", 1693 .name = "PCM Playback Volume",
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c
index 01066c95580e..d057e6489643 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c
@@ -240,7 +240,8 @@ static int pdacf_pcm_prepare(struct snd_pcm_substream *subs)
240static struct snd_pcm_hardware pdacf_pcm_capture_hw = { 240static struct snd_pcm_hardware pdacf_pcm_capture_hw = {
241 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 241 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
242 SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME | 242 SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME |
243 SNDRV_PCM_INFO_MMAP_VALID), 243 SNDRV_PCM_INFO_MMAP_VALID |
244 SNDRV_PCM_INFO_BATCH),
244 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE | 245 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE |
245 SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE | 246 SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |
246 SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE, 247 SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE,
diff --git a/sound/ppc/keywest.c b/sound/ppc/keywest.c
index 6ff99ed77516..a5afb2682e7f 100644
--- a/sound/ppc/keywest.c
+++ b/sound/ppc/keywest.c
@@ -33,26 +33,25 @@
33static struct pmac_keywest *keywest_ctx; 33static struct pmac_keywest *keywest_ctx;
34 34
35 35
36static int keywest_attach_adapter(struct i2c_adapter *adapter);
37static int keywest_detach_client(struct i2c_client *client);
38
39struct i2c_driver keywest_driver = {
40 .driver = {
41 .name = "PMac Keywest Audio",
42 },
43 .attach_adapter = &keywest_attach_adapter,
44 .detach_client = &keywest_detach_client,
45};
46
47
48#ifndef i2c_device_name 36#ifndef i2c_device_name
49#define i2c_device_name(x) ((x)->name) 37#define i2c_device_name(x) ((x)->name)
50#endif 38#endif
51 39
40static int keywest_probe(struct i2c_client *client,
41 const struct i2c_device_id *id)
42{
43 i2c_set_clientdata(client, keywest_ctx);
44 return 0;
45}
46
47/*
48 * This is kind of a hack, best would be to turn powermac to fixed i2c
49 * bus numbers and declare the sound device as part of platform
50 * initialization
51 */
52static int keywest_attach_adapter(struct i2c_adapter *adapter) 52static int keywest_attach_adapter(struct i2c_adapter *adapter)
53{ 53{
54 int err; 54 struct i2c_board_info info;
55 struct i2c_client *new_client;
56 55
57 if (! keywest_ctx) 56 if (! keywest_ctx)
58 return -EINVAL; 57 return -EINVAL;
@@ -60,46 +59,47 @@ static int keywest_attach_adapter(struct i2c_adapter *adapter)
60 if (strncmp(i2c_device_name(adapter), "mac-io", 6)) 59 if (strncmp(i2c_device_name(adapter), "mac-io", 6))
61 return 0; /* ignored */ 60 return 0; /* ignored */
62 61
63 new_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); 62 memset(&info, 0, sizeof(struct i2c_board_info));
64 if (! new_client) 63 strlcpy(info.type, "keywest", I2C_NAME_SIZE);
65 return -ENOMEM; 64 info.addr = keywest_ctx->addr;
66 65 keywest_ctx->client = i2c_new_device(adapter, &info);
67 new_client->addr = keywest_ctx->addr;
68 i2c_set_clientdata(new_client, keywest_ctx);
69 new_client->adapter = adapter;
70 new_client->driver = &keywest_driver;
71 new_client->flags = 0;
72
73 strcpy(i2c_device_name(new_client), keywest_ctx->name);
74 keywest_ctx->client = new_client;
75 66
76 /* Tell the i2c layer a new client has arrived */ 67 /*
77 if (i2c_attach_client(new_client)) { 68 * Let i2c-core delete that device on driver removal.
78 snd_printk(KERN_ERR "tumbler: cannot attach i2c client\n"); 69 * This is safe because i2c-core holds the core_lock mutex for us.
79 err = -ENODEV; 70 */
80 goto __err; 71 list_add_tail(&keywest_ctx->client->detected,
81 } 72 &keywest_ctx->client->driver->clients);
82
83 return 0; 73 return 0;
84
85 __err:
86 kfree(new_client);
87 keywest_ctx->client = NULL;
88 return err;
89} 74}
90 75
91static int keywest_detach_client(struct i2c_client *client) 76static int keywest_remove(struct i2c_client *client)
92{ 77{
78 i2c_set_clientdata(client, NULL);
93 if (! keywest_ctx) 79 if (! keywest_ctx)
94 return 0; 80 return 0;
95 if (client == keywest_ctx->client) 81 if (client == keywest_ctx->client)
96 keywest_ctx->client = NULL; 82 keywest_ctx->client = NULL;
97 83
98 i2c_detach_client(client);
99 kfree(client);
100 return 0; 84 return 0;
101} 85}
102 86
87
88static const struct i2c_device_id keywest_i2c_id[] = {
89 { "keywest", 0 },
90 { }
91};
92
93struct i2c_driver keywest_driver = {
94 .driver = {
95 .name = "PMac Keywest Audio",
96 },
97 .attach_adapter = keywest_attach_adapter,
98 .probe = keywest_probe,
99 .remove = keywest_remove,
100 .id_table = keywest_i2c_id,
101};
102
103/* exported */ 103/* exported */
104void snd_pmac_keywest_cleanup(struct pmac_keywest *i2c) 104void snd_pmac_keywest_cleanup(struct pmac_keywest *i2c)
105{ 105{
diff --git a/sound/soc/au1x/dbdma2.c b/sound/soc/au1x/dbdma2.c
index 30490a259148..594c6c5b7838 100644
--- a/sound/soc/au1x/dbdma2.c
+++ b/sound/soc/au1x/dbdma2.c
@@ -82,7 +82,7 @@ static struct au1xpsc_audio_dmadata *au1xpsc_audio_pcmdma[2];
82/* PCM hardware DMA capabilities - platform specific */ 82/* PCM hardware DMA capabilities - platform specific */
83static const struct snd_pcm_hardware au1xpsc_pcm_hardware = { 83static const struct snd_pcm_hardware au1xpsc_pcm_hardware = {
84 .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | 84 .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |
85 SNDRV_PCM_INFO_INTERLEAVED, 85 SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BATCH,
86 .formats = AU1XPSC_PCM_FMTS, 86 .formats = AU1XPSC_PCM_FMTS,
87 .period_bytes_min = AU1XPSC_PERIOD_MIN_BYTES, 87 .period_bytes_min = AU1XPSC_PERIOD_MIN_BYTES,
88 .period_bytes_max = 4096 * 1024 - 1, 88 .period_bytes_max = 4096 * 1024 - 1,
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 030d2454725f..f2653803ede8 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -56,7 +56,6 @@ obj-$(CONFIG_SND_SOC_WM8900) += snd-soc-wm8900.o
56obj-$(CONFIG_SND_SOC_WM8903) += snd-soc-wm8903.o 56obj-$(CONFIG_SND_SOC_WM8903) += snd-soc-wm8903.o
57obj-$(CONFIG_SND_SOC_WM8971) += snd-soc-wm8971.o 57obj-$(CONFIG_SND_SOC_WM8971) += snd-soc-wm8971.o
58obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o 58obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o
59obj-$(CONFIG_SND_SOC_WM8991) += snd-soc-wm8991.o
60obj-$(CONFIG_SND_SOC_WM9705) += snd-soc-wm9705.o 59obj-$(CONFIG_SND_SOC_WM9705) += snd-soc-wm9705.o
61obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o 60obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o
62obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o 61obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 921b205de28a..df7c8c281d2f 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -836,6 +836,12 @@ static DECLARE_TLV_DB_SCALE(analog_tlv, -2400, 200, 0);
836static DECLARE_TLV_DB_SCALE(output_tvl, -1200, 600, 1); 836static DECLARE_TLV_DB_SCALE(output_tvl, -1200, 600, 1);
837 837
838/* 838/*
839 * Gain control for earpiece amplifier
840 * 0 dB to 12 dB in 6 dB steps (mute instead of -6)
841 */
842static DECLARE_TLV_DB_SCALE(output_ear_tvl, -600, 600, 1);
843
844/*
839 * Capture gain after the ADCs 845 * Capture gain after the ADCs
840 * from 0 dB to 31 dB in 1 dB steps 846 * from 0 dB to 31 dB in 1 dB steps
841 */ 847 */
@@ -900,7 +906,7 @@ static const struct snd_kcontrol_new twl4030_snd_controls[] = {
900 4, 3, 0, output_tvl), 906 4, 3, 0, output_tvl),
901 907
902 SOC_SINGLE_TLV_TWL4030("Earpiece Playback Volume", 908 SOC_SINGLE_TLV_TWL4030("Earpiece Playback Volume",
903 TWL4030_REG_EAR_CTL, 4, 3, 0, output_tvl), 909 TWL4030_REG_EAR_CTL, 4, 3, 0, output_ear_tvl),
904 910
905 /* Common capture gain controls */ 911 /* Common capture gain controls */
906 SOC_DOUBLE_R_TLV("TX1 Digital Capture Volume", 912 SOC_DOUBLE_R_TLV("TX1 Digital Capture Volume",
diff --git a/sound/soc/codecs/wm8350.c b/sound/soc/codecs/wm8350.c
index 3b1d0993bed9..0275321ff8ab 100644
--- a/sound/soc/codecs/wm8350.c
+++ b/sound/soc/codecs/wm8350.c
@@ -968,7 +968,7 @@ static int wm8350_pcm_trigger(struct snd_pcm_substream *substream,
968 * required for LRC in master mode. The DACs or ADCs need a 968 * required for LRC in master mode. The DACs or ADCs need a
969 * valid audio path i.e. pin -> ADC or DAC -> pin before 969 * valid audio path i.e. pin -> ADC or DAC -> pin before
970 * the LRC will be enabled in master mode. */ 970 * the LRC will be enabled in master mode. */
971 if (!master && cmd != SNDRV_PCM_TRIGGER_START) 971 if (!master || cmd != SNDRV_PCM_TRIGGER_START)
972 return 0; 972 return 0;
973 973
974 if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { 974 if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
index 442ea6f160fc..9f6be3d31ac0 100644
--- a/sound/soc/codecs/wm8580.c
+++ b/sound/soc/codecs/wm8580.c
@@ -268,9 +268,11 @@ static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1);
268static int wm8580_out_vu(struct snd_kcontrol *kcontrol, 268static int wm8580_out_vu(struct snd_kcontrol *kcontrol,
269 struct snd_ctl_elem_value *ucontrol) 269 struct snd_ctl_elem_value *ucontrol)
270{ 270{
271 struct soc_mixer_control *mc =
272 (struct soc_mixer_control *)kcontrol->private_value;
271 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); 273 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
272 int reg = kcontrol->private_value & 0xff; 274 unsigned int reg = mc->reg;
273 int reg2 = (kcontrol->private_value >> 24) & 0xff; 275 unsigned int reg2 = mc->rreg;
274 int ret; 276 int ret;
275 u16 val; 277 u16 val;
276 278
@@ -292,15 +294,17 @@ static int wm8580_out_vu(struct snd_kcontrol *kcontrol,
292 return 0; 294 return 0;
293} 295}
294 296
295#define SOC_WM8580_OUT_DOUBLE_R_TLV(xname, reg_left, reg_right, shift, max, invert, tlv_array) \ 297#define SOC_WM8580_OUT_DOUBLE_R_TLV(xname, reg_left, reg_right, xshift, xmax, \
298 xinvert, tlv_array) \
296{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \ 299{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \
297 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\ 300 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\
298 SNDRV_CTL_ELEM_ACCESS_READWRITE, \ 301 SNDRV_CTL_ELEM_ACCESS_READWRITE, \
299 .tlv.p = (tlv_array), \ 302 .tlv.p = (tlv_array), \
300 .info = snd_soc_info_volsw_2r, \ 303 .info = snd_soc_info_volsw_2r, \
301 .get = snd_soc_get_volsw_2r, .put = wm8580_out_vu, \ 304 .get = snd_soc_get_volsw_2r, .put = wm8580_out_vu, \
302 .private_value = (reg_left) | ((shift) << 8) | \ 305 .private_value = (unsigned long)&(struct soc_mixer_control) \
303 ((max) << 12) | ((invert) << 20) | ((reg_right) << 24) } 306 {.reg = reg_left, .rreg = reg_right, .shift = xshift, \
307 .max = xmax, .invert = xinvert} }
304 308
305static const struct snd_kcontrol_new wm8580_snd_controls[] = { 309static const struct snd_kcontrol_new wm8580_snd_controls[] = {
306SOC_WM8580_OUT_DOUBLE_R_TLV("DAC1 Playback Volume", 310SOC_WM8580_OUT_DOUBLE_R_TLV("DAC1 Playback Volume",
@@ -522,7 +526,7 @@ static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai,
522 reg = wm8580_read(codec, WM8580_PLLA4 + offset); 526 reg = wm8580_read(codec, WM8580_PLLA4 + offset);
523 reg &= ~0x3f; 527 reg &= ~0x3f;
524 reg |= pll_div.prescale | pll_div.postscale << 1 | 528 reg |= pll_div.prescale | pll_div.postscale << 1 |
525 pll_div.freqmode << 4; 529 pll_div.freqmode << 3;
526 530
527 wm8580_write(codec, WM8580_PLLA4 + offset, reg); 531 wm8580_write(codec, WM8580_PLLA4 + offset, reg);
528 532
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index c518c3e5aa3f..40cd274eb1ef 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -729,7 +729,7 @@ SND_SOC_DAPM_MIXER_E("INMIXL", WM8990_INTDRIVBITS, WM8990_INMIXL_PWR_BIT, 0,
729 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 729 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
730 730
731/* AINLMUX */ 731/* AINLMUX */
732SND_SOC_DAPM_MUX_E("AILNMUX", WM8990_INTDRIVBITS, WM8990_AINLMUX_PWR_BIT, 0, 732SND_SOC_DAPM_MUX_E("AINLMUX", WM8990_INTDRIVBITS, WM8990_AINLMUX_PWR_BIT, 0,
733 &wm8990_dapm_ainlmux_controls, inmixer_event, 733 &wm8990_dapm_ainlmux_controls, inmixer_event,
734 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 734 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
735 735
@@ -740,7 +740,7 @@ SND_SOC_DAPM_MIXER_E("INMIXR", WM8990_INTDRIVBITS, WM8990_INMIXR_PWR_BIT, 0,
740 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 740 inmixer_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
741 741
742/* AINRMUX */ 742/* AINRMUX */
743SND_SOC_DAPM_MUX_E("AIRNMUX", WM8990_INTDRIVBITS, WM8990_AINRMUX_PWR_BIT, 0, 743SND_SOC_DAPM_MUX_E("AINRMUX", WM8990_INTDRIVBITS, WM8990_AINRMUX_PWR_BIT, 0,
744 &wm8990_dapm_ainrmux_controls, inmixer_event, 744 &wm8990_dapm_ainrmux_controls, inmixer_event,
745 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), 745 SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
746 746
@@ -848,40 +848,40 @@ static const struct snd_soc_dapm_route audio_map[] = {
848 {"LIN12 PGA", "LIN2 Switch", "LIN2"}, 848 {"LIN12 PGA", "LIN2 Switch", "LIN2"},
849 /* LIN34 PGA */ 849 /* LIN34 PGA */
850 {"LIN34 PGA", "LIN3 Switch", "LIN3"}, 850 {"LIN34 PGA", "LIN3 Switch", "LIN3"},
851 {"LIN34 PGA", "LIN4 Switch", "LIN4"}, 851 {"LIN34 PGA", "LIN4 Switch", "LIN4/RXN"},
852 /* INMIXL */ 852 /* INMIXL */
853 {"INMIXL", "Record Left Volume", "LOMIX"}, 853 {"INMIXL", "Record Left Volume", "LOMIX"},
854 {"INMIXL", "LIN2 Volume", "LIN2"}, 854 {"INMIXL", "LIN2 Volume", "LIN2"},
855 {"INMIXL", "LINPGA12 Switch", "LIN12 PGA"}, 855 {"INMIXL", "LINPGA12 Switch", "LIN12 PGA"},
856 {"INMIXL", "LINPGA34 Switch", "LIN34 PGA"}, 856 {"INMIXL", "LINPGA34 Switch", "LIN34 PGA"},
857 /* AILNMUX */ 857 /* AINLMUX */
858 {"AILNMUX", "INMIXL Mix", "INMIXL"}, 858 {"AINLMUX", "INMIXL Mix", "INMIXL"},
859 {"AILNMUX", "DIFFINL Mix", "LIN12PGA"}, 859 {"AINLMUX", "DIFFINL Mix", "LIN12 PGA"},
860 {"AILNMUX", "DIFFINL Mix", "LIN34PGA"}, 860 {"AINLMUX", "DIFFINL Mix", "LIN34 PGA"},
861 {"AILNMUX", "RXVOICE Mix", "LIN4/RXN"}, 861 {"AINLMUX", "RXVOICE Mix", "LIN4/RXN"},
862 {"AILNMUX", "RXVOICE Mix", "RIN4/RXP"}, 862 {"AINLMUX", "RXVOICE Mix", "RIN4/RXP"},
863 /* ADC */ 863 /* ADC */
864 {"Left ADC", NULL, "AILNMUX"}, 864 {"Left ADC", NULL, "AINLMUX"},
865 865
866 /* RIN12 PGA */ 866 /* RIN12 PGA */
867 {"RIN12 PGA", "RIN1 Switch", "RIN1"}, 867 {"RIN12 PGA", "RIN1 Switch", "RIN1"},
868 {"RIN12 PGA", "RIN2 Switch", "RIN2"}, 868 {"RIN12 PGA", "RIN2 Switch", "RIN2"},
869 /* RIN34 PGA */ 869 /* RIN34 PGA */
870 {"RIN34 PGA", "RIN3 Switch", "RIN3"}, 870 {"RIN34 PGA", "RIN3 Switch", "RIN3"},
871 {"RIN34 PGA", "RIN4 Switch", "RIN4"}, 871 {"RIN34 PGA", "RIN4 Switch", "RIN4/RXP"},
872 /* INMIXL */ 872 /* INMIXL */
873 {"INMIXR", "Record Right Volume", "ROMIX"}, 873 {"INMIXR", "Record Right Volume", "ROMIX"},
874 {"INMIXR", "RIN2 Volume", "RIN2"}, 874 {"INMIXR", "RIN2 Volume", "RIN2"},
875 {"INMIXR", "RINPGA12 Switch", "RIN12 PGA"}, 875 {"INMIXR", "RINPGA12 Switch", "RIN12 PGA"},
876 {"INMIXR", "RINPGA34 Switch", "RIN34 PGA"}, 876 {"INMIXR", "RINPGA34 Switch", "RIN34 PGA"},
877 /* AIRNMUX */ 877 /* AINRMUX */
878 {"AIRNMUX", "INMIXR Mix", "INMIXR"}, 878 {"AINRMUX", "INMIXR Mix", "INMIXR"},
879 {"AIRNMUX", "DIFFINR Mix", "RIN12PGA"}, 879 {"AINRMUX", "DIFFINR Mix", "RIN12 PGA"},
880 {"AIRNMUX", "DIFFINR Mix", "RIN34PGA"}, 880 {"AINRMUX", "DIFFINR Mix", "RIN34 PGA"},
881 {"AIRNMUX", "RXVOICE Mix", "RIN4/RXN"}, 881 {"AINRMUX", "RXVOICE Mix", "LIN4/RXN"},
882 {"AIRNMUX", "RXVOICE Mix", "RIN4/RXP"}, 882 {"AINRMUX", "RXVOICE Mix", "RIN4/RXP"},
883 /* ADC */ 883 /* ADC */
884 {"Right ADC", NULL, "AIRNMUX"}, 884 {"Right ADC", NULL, "AINRMUX"},
885 885
886 /* LOMIX */ 886 /* LOMIX */
887 {"LOMIX", "LOMIX RIN3 Bypass Switch", "RIN3"}, 887 {"LOMIX", "LOMIX RIN3 Bypass Switch", "RIN3"},
@@ -922,7 +922,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
922 {"LOPMIX", "LOPMIX Left Mixer PGA Switch", "LOPGA"}, 922 {"LOPMIX", "LOPMIX Left Mixer PGA Switch", "LOPGA"},
923 923
924 /* OUT3MIX */ 924 /* OUT3MIX */
925 {"OUT3MIX", "OUT3MIX LIN4/RXP Bypass Switch", "LIN4/RXP"}, 925 {"OUT3MIX", "OUT3MIX LIN4/RXP Bypass Switch", "LIN4/RXN"},
926 {"OUT3MIX", "OUT3MIX Left Out PGA Switch", "LOPGA"}, 926 {"OUT3MIX", "OUT3MIX Left Out PGA Switch", "LOPGA"},
927 927
928 /* OUT4MIX */ 928 /* OUT4MIX */
@@ -949,7 +949,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
949 /* Output Pins */ 949 /* Output Pins */
950 {"LON", NULL, "LONMIX"}, 950 {"LON", NULL, "LONMIX"},
951 {"LOP", NULL, "LOPMIX"}, 951 {"LOP", NULL, "LOPMIX"},
952 {"OUT", NULL, "OUT3MIX"}, 952 {"OUT3", NULL, "OUT3MIX"},
953 {"LOUT", NULL, "LOUT PGA"}, 953 {"LOUT", NULL, "LOUT PGA"},
954 {"SPKN", NULL, "SPKMIX"}, 954 {"SPKN", NULL, "SPKMIX"},
955 {"ROUT", NULL, "ROUT PGA"}, 955 {"ROUT", NULL, "ROUT PGA"},
diff --git a/sound/soc/codecs/wm9705.c b/sound/soc/codecs/wm9705.c
index 6e23a81dba78..c2d1a7a18fa3 100644
--- a/sound/soc/codecs/wm9705.c
+++ b/sound/soc/codecs/wm9705.c
@@ -318,7 +318,7 @@ static int wm9705_reset(struct snd_soc_codec *codec)
318} 318}
319 319
320#ifdef CONFIG_PM 320#ifdef CONFIG_PM
321static int wm9705_soc_suspend(struct platform_device *pdev) 321static int wm9705_soc_suspend(struct platform_device *pdev, pm_message_t msg)
322{ 322{
323 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 323 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
324 struct snd_soc_codec *codec = socdev->card->codec; 324 struct snd_soc_codec *codec = socdev->card->codec;
diff --git a/sound/soc/davinci/Kconfig b/sound/soc/davinci/Kconfig
index bd7392c9657e..411a710be660 100644
--- a/sound/soc/davinci/Kconfig
+++ b/sound/soc/davinci/Kconfig
@@ -10,13 +10,14 @@ config SND_DAVINCI_SOC_I2S
10 tristate 10 tristate
11 11
12config SND_DAVINCI_SOC_EVM 12config SND_DAVINCI_SOC_EVM
13 tristate "SoC Audio support for DaVinci EVM" 13 tristate "SoC Audio support for DaVinci DM6446 or DM355 EVM"
14 depends on SND_DAVINCI_SOC && MACH_DAVINCI_EVM 14 depends on SND_DAVINCI_SOC
15 depends on MACH_DAVINCI_EVM || MACH_DAVINCI_DM355_EVM
15 select SND_DAVINCI_SOC_I2S 16 select SND_DAVINCI_SOC_I2S
16 select SND_SOC_TLV320AIC3X 17 select SND_SOC_TLV320AIC3X
17 help 18 help
18 Say Y if you want to add support for SoC audio on TI 19 Say Y if you want to add support for SoC audio on TI
19 DaVinci EVM platform. 20 DaVinci DM6446 or DM355 EVM platforms.
20 21
21config SND_DAVINCI_SOC_SFFSDR 22config SND_DAVINCI_SOC_SFFSDR
22 tristate "SoC Audio support for SFFSDR" 23 tristate "SoC Audio support for SFFSDR"
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 9b90b347007c..58fd1cbedd88 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -20,7 +20,11 @@
20#include <sound/soc-dapm.h> 20#include <sound/soc-dapm.h>
21 21
22#include <asm/dma.h> 22#include <asm/dma.h>
23#include <mach/hardware.h> 23#include <asm/mach-types.h>
24
25#include <mach/asp.h>
26#include <mach/edma.h>
27#include <mach/mux.h>
24 28
25#include "../codecs/tlv320aic3x.h" 29#include "../codecs/tlv320aic3x.h"
26#include "davinci-pcm.h" 30#include "davinci-pcm.h"
@@ -150,7 +154,7 @@ static struct snd_soc_card snd_soc_card_evm = {
150 154
151/* evm audio private data */ 155/* evm audio private data */
152static struct aic3x_setup_data evm_aic3x_setup = { 156static struct aic3x_setup_data evm_aic3x_setup = {
153 .i2c_bus = 0, 157 .i2c_bus = 1,
154 .i2c_address = 0x1b, 158 .i2c_address = 0x1b,
155}; 159};
156 160
@@ -161,36 +165,73 @@ static struct snd_soc_device evm_snd_devdata = {
161 .codec_data = &evm_aic3x_setup, 165 .codec_data = &evm_aic3x_setup,
162}; 166};
163 167
168/* DM6446 EVM uses ASP0; line-out is a pair of RCA jacks */
164static struct resource evm_snd_resources[] = { 169static struct resource evm_snd_resources[] = {
165 { 170 {
166 .start = DAVINCI_MCBSP_BASE, 171 .start = DAVINCI_ASP0_BASE,
167 .end = DAVINCI_MCBSP_BASE + SZ_8K - 1, 172 .end = DAVINCI_ASP0_BASE + SZ_8K - 1,
168 .flags = IORESOURCE_MEM, 173 .flags = IORESOURCE_MEM,
169 }, 174 },
170}; 175};
171 176
172static struct evm_snd_platform_data evm_snd_data = { 177static struct evm_snd_platform_data evm_snd_data = {
173 .tx_dma_ch = DM644X_DMACH_MCBSP_TX, 178 .tx_dma_ch = DAVINCI_DMA_ASP0_TX,
174 .rx_dma_ch = DM644X_DMACH_MCBSP_RX, 179 .rx_dma_ch = DAVINCI_DMA_ASP0_RX,
180};
181
182/* DM335 EVM uses ASP1; line-out is a stereo mini-jack */
183static struct resource dm335evm_snd_resources[] = {
184 {
185 .start = DAVINCI_ASP1_BASE,
186 .end = DAVINCI_ASP1_BASE + SZ_8K - 1,
187 .flags = IORESOURCE_MEM,
188 },
189};
190
191static struct evm_snd_platform_data dm335evm_snd_data = {
192 .tx_dma_ch = DAVINCI_DMA_ASP1_TX,
193 .rx_dma_ch = DAVINCI_DMA_ASP1_RX,
175}; 194};
176 195
177static struct platform_device *evm_snd_device; 196static struct platform_device *evm_snd_device;
178 197
179static int __init evm_init(void) 198static int __init evm_init(void)
180{ 199{
200 struct resource *resources;
201 unsigned num_resources;
202 struct evm_snd_platform_data *data;
203 int index;
181 int ret; 204 int ret;
182 205
183 evm_snd_device = platform_device_alloc("soc-audio", 0); 206 if (machine_is_davinci_evm()) {
207 davinci_cfg_reg(DM644X_MCBSP);
208
209 resources = evm_snd_resources;
210 num_resources = ARRAY_SIZE(evm_snd_resources);
211 data = &evm_snd_data;
212 index = 0;
213 } else if (machine_is_davinci_dm355_evm()) {
214 /* we don't use ASP1 IRQs, or we'd need to mux them ... */
215 davinci_cfg_reg(DM355_EVT8_ASP1_TX);
216 davinci_cfg_reg(DM355_EVT9_ASP1_RX);
217
218 resources = dm335evm_snd_resources;
219 num_resources = ARRAY_SIZE(dm335evm_snd_resources);
220 data = &dm335evm_snd_data;
221 index = 1;
222 } else
223 return -EINVAL;
224
225 evm_snd_device = platform_device_alloc("soc-audio", index);
184 if (!evm_snd_device) 226 if (!evm_snd_device)
185 return -ENOMEM; 227 return -ENOMEM;
186 228
187 platform_set_drvdata(evm_snd_device, &evm_snd_devdata); 229 platform_set_drvdata(evm_snd_device, &evm_snd_devdata);
188 evm_snd_devdata.dev = &evm_snd_device->dev; 230 evm_snd_devdata.dev = &evm_snd_device->dev;
189 platform_device_add_data(evm_snd_device, &evm_snd_data, 231 platform_device_add_data(evm_snd_device, data, sizeof(*data));
190 sizeof(evm_snd_data));
191 232
192 ret = platform_device_add_resources(evm_snd_device, evm_snd_resources, 233 ret = platform_device_add_resources(evm_snd_device, resources,
193 ARRAY_SIZE(evm_snd_resources)); 234 num_resources);
194 if (ret) { 235 if (ret) {
195 platform_device_put(evm_snd_device); 236 platform_device_put(evm_snd_device);
196 return ret; 237 return ret;
diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c
index ffdb9439d3d8..b1ea52fc83c7 100644
--- a/sound/soc/davinci/davinci-i2s.c
+++ b/sound/soc/davinci/davinci-i2s.c
@@ -24,6 +24,26 @@
24 24
25#include "davinci-pcm.h" 25#include "davinci-pcm.h"
26 26
27
28/*
29 * NOTE: terminology here is confusing.
30 *
31 * - This driver supports the "Audio Serial Port" (ASP),
32 * found on dm6446, dm355, and other DaVinci chips.
33 *
34 * - But it labels it a "Multi-channel Buffered Serial Port"
35 * (McBSP) as on older chips like the dm642 ... which was
36 * backward-compatible, possibly explaining that confusion.
37 *
38 * - OMAP chips have a controller called McBSP, which is
39 * incompatible with the DaVinci flavor of McBSP.
40 *
41 * - Newer DaVinci chips have a controller called McASP,
42 * incompatible with ASP and with either McBSP.
43 *
44 * In short: this uses ASP to implement I2S, not McBSP.
45 * And it won't be the only DaVinci implemention of I2S.
46 */
27#define DAVINCI_MCBSP_DRR_REG 0x00 47#define DAVINCI_MCBSP_DRR_REG 0x00
28#define DAVINCI_MCBSP_DXR_REG 0x04 48#define DAVINCI_MCBSP_DXR_REG 0x04
29#define DAVINCI_MCBSP_SPCR_REG 0x08 49#define DAVINCI_MCBSP_SPCR_REG 0x08
@@ -421,7 +441,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,
421{ 441{
422 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 442 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
423 struct snd_soc_card *card = socdev->card; 443 struct snd_soc_card *card = socdev->card;
424 struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; 444 struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;
425 struct davinci_mcbsp_dev *dev; 445 struct davinci_mcbsp_dev *dev;
426 struct resource *mem, *ioarea; 446 struct resource *mem, *ioarea;
427 struct evm_snd_platform_data *pdata; 447 struct evm_snd_platform_data *pdata;
@@ -448,7 +468,7 @@ static int davinci_i2s_probe(struct platform_device *pdev,
448 468
449 cpu_dai->private_data = dev; 469 cpu_dai->private_data = dev;
450 470
451 dev->clk = clk_get(&pdev->dev, "McBSPCLK"); 471 dev->clk = clk_get(&pdev->dev, NULL);
452 if (IS_ERR(dev->clk)) { 472 if (IS_ERR(dev->clk)) {
453 ret = -ENODEV; 473 ret = -ENODEV;
454 goto err_free_mem; 474 goto err_free_mem;
@@ -483,7 +503,7 @@ static void davinci_i2s_remove(struct platform_device *pdev,
483{ 503{
484 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 504 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
485 struct snd_soc_card *card = socdev->card; 505 struct snd_soc_card *card = socdev->card;
486 struct snd_soc_dai *cpu_dai = card->dai_link[pdev->id].cpu_dai; 506 struct snd_soc_dai *cpu_dai = card->dai_link->cpu_dai;
487 struct davinci_mcbsp_dev *dev = cpu_dai->private_data; 507 struct davinci_mcbsp_dev *dev = cpu_dai->private_data;
488 struct resource *mem; 508 struct resource *mem;
489 509
diff --git a/sound/soc/davinci/davinci-pcm.c b/sound/soc/davinci/davinci-pcm.c
index 7af3b5b3a53d..a05996588489 100644
--- a/sound/soc/davinci/davinci-pcm.c
+++ b/sound/soc/davinci/davinci-pcm.c
@@ -22,6 +22,7 @@
22#include <sound/soc.h> 22#include <sound/soc.h>
23 23
24#include <asm/dma.h> 24#include <asm/dma.h>
25#include <mach/edma.h>
25 26
26#include "davinci-pcm.h" 27#include "davinci-pcm.h"
27 28
@@ -51,7 +52,7 @@ struct davinci_runtime_data {
51 spinlock_t lock; 52 spinlock_t lock;
52 int period; /* current DMA period */ 53 int period; /* current DMA period */
53 int master_lch; /* Master DMA channel */ 54 int master_lch; /* Master DMA channel */
54 int slave_lch; /* Slave DMA channel */ 55 int slave_lch; /* linked parameter RAM reload slot */
55 struct davinci_pcm_dma_params *params; /* DMA params */ 56 struct davinci_pcm_dma_params *params; /* DMA params */
56}; 57};
57 58
@@ -90,18 +91,18 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
90 dst_bidx = data_type; 91 dst_bidx = data_type;
91 } 92 }
92 93
93 davinci_set_dma_src_params(lch, src, INCR, W8BIT); 94 edma_set_src(lch, src, INCR, W8BIT);
94 davinci_set_dma_dest_params(lch, dst, INCR, W8BIT); 95 edma_set_dest(lch, dst, INCR, W8BIT);
95 davinci_set_dma_src_index(lch, src_bidx, 0); 96 edma_set_src_index(lch, src_bidx, 0);
96 davinci_set_dma_dest_index(lch, dst_bidx, 0); 97 edma_set_dest_index(lch, dst_bidx, 0);
97 davinci_set_dma_transfer_params(lch, data_type, count, 1, 0, ASYNC); 98 edma_set_transfer_params(lch, data_type, count, 1, 0, ASYNC);
98 99
99 prtd->period++; 100 prtd->period++;
100 if (unlikely(prtd->period >= runtime->periods)) 101 if (unlikely(prtd->period >= runtime->periods))
101 prtd->period = 0; 102 prtd->period = 0;
102} 103}
103 104
104static void davinci_pcm_dma_irq(int lch, u16 ch_status, void *data) 105static void davinci_pcm_dma_irq(unsigned lch, u16 ch_status, void *data)
105{ 106{
106 struct snd_pcm_substream *substream = data; 107 struct snd_pcm_substream *substream = data;
107 struct davinci_runtime_data *prtd = substream->runtime->private_data; 108 struct davinci_runtime_data *prtd = substream->runtime->private_data;
@@ -125,7 +126,7 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
125 struct davinci_runtime_data *prtd = substream->runtime->private_data; 126 struct davinci_runtime_data *prtd = substream->runtime->private_data;
126 struct snd_soc_pcm_runtime *rtd = substream->private_data; 127 struct snd_soc_pcm_runtime *rtd = substream->private_data;
127 struct davinci_pcm_dma_params *dma_data = rtd->dai->cpu_dai->dma_data; 128 struct davinci_pcm_dma_params *dma_data = rtd->dai->cpu_dai->dma_data;
128 int tcc = TCC_ANY; 129 struct edmacc_param p_ram;
129 int ret; 130 int ret;
130 131
131 if (!dma_data) 132 if (!dma_data)
@@ -134,22 +135,34 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
134 prtd->params = dma_data; 135 prtd->params = dma_data;
135 136
136 /* Request master DMA channel */ 137 /* Request master DMA channel */
137 ret = davinci_request_dma(prtd->params->channel, prtd->params->name, 138 ret = edma_alloc_channel(prtd->params->channel,
138 davinci_pcm_dma_irq, substream, 139 davinci_pcm_dma_irq, substream,
139 &prtd->master_lch, &tcc, EVENTQ_0); 140 EVENTQ_0);
140 if (ret) 141 if (ret < 0)
141 return ret; 142 return ret;
143 prtd->master_lch = ret;
142 144
143 /* Request slave DMA channel */ 145 /* Request parameter RAM reload slot */
144 ret = davinci_request_dma(PARAM_ANY, "Link", 146 ret = edma_alloc_slot(EDMA_SLOT_ANY);
145 NULL, NULL, &prtd->slave_lch, &tcc, EVENTQ_0); 147 if (ret < 0) {
146 if (ret) { 148 edma_free_channel(prtd->master_lch);
147 davinci_free_dma(prtd->master_lch);
148 return ret; 149 return ret;
149 } 150 }
150 151 prtd->slave_lch = ret;
151 /* Link slave DMA channel in loopback */ 152
152 davinci_dma_link_lch(prtd->slave_lch, prtd->slave_lch); 153 /* Issue transfer completion IRQ when the channel completes a
154 * transfer, then always reload from the same slot (by a kind
155 * of loopback link). The completion IRQ handler will update
156 * the reload slot with a new buffer.
157 *
158 * REVISIT save p_ram here after setting up everything except
159 * the buffer and its length (ccnt) ... use it as a template
160 * so davinci_pcm_enqueue_dma() takes less time in IRQ.
161 */
162 edma_read_slot(prtd->slave_lch, &p_ram);
163 p_ram.opt |= TCINTEN | EDMA_TCC(prtd->master_lch);
164 p_ram.link_bcntrld = prtd->slave_lch << 5;
165 edma_write_slot(prtd->slave_lch, &p_ram);
153 166
154 return 0; 167 return 0;
155} 168}
@@ -165,12 +178,12 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
165 case SNDRV_PCM_TRIGGER_START: 178 case SNDRV_PCM_TRIGGER_START:
166 case SNDRV_PCM_TRIGGER_RESUME: 179 case SNDRV_PCM_TRIGGER_RESUME:
167 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 180 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
168 davinci_start_dma(prtd->master_lch); 181 edma_start(prtd->master_lch);
169 break; 182 break;
170 case SNDRV_PCM_TRIGGER_STOP: 183 case SNDRV_PCM_TRIGGER_STOP:
171 case SNDRV_PCM_TRIGGER_SUSPEND: 184 case SNDRV_PCM_TRIGGER_SUSPEND:
172 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 185 case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
173 davinci_stop_dma(prtd->master_lch); 186 edma_stop(prtd->master_lch);
174 break; 187 break;
175 default: 188 default:
176 ret = -EINVAL; 189 ret = -EINVAL;
@@ -185,14 +198,14 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
185static int davinci_pcm_prepare(struct snd_pcm_substream *substream) 198static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
186{ 199{
187 struct davinci_runtime_data *prtd = substream->runtime->private_data; 200 struct davinci_runtime_data *prtd = substream->runtime->private_data;
188 struct paramentry_descriptor temp; 201 struct edmacc_param temp;
189 202
190 prtd->period = 0; 203 prtd->period = 0;
191 davinci_pcm_enqueue_dma(substream); 204 davinci_pcm_enqueue_dma(substream);
192 205
193 /* Get slave channel dma params for master channel startup */ 206 /* Copy self-linked parameter RAM entry into master channel */
194 davinci_get_dma_params(prtd->slave_lch, &temp); 207 edma_read_slot(prtd->slave_lch, &temp);
195 davinci_set_dma_params(prtd->master_lch, &temp); 208 edma_write_slot(prtd->master_lch, &temp);
196 209
197 return 0; 210 return 0;
198} 211}
@@ -208,7 +221,7 @@ davinci_pcm_pointer(struct snd_pcm_substream *substream)
208 221
209 spin_lock(&prtd->lock); 222 spin_lock(&prtd->lock);
210 223
211 davinci_dma_getposition(prtd->master_lch, &src, &dst); 224 edma_get_position(prtd->master_lch, &src, &dst);
212 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 225 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
213 count = src - runtime->dma_addr; 226 count = src - runtime->dma_addr;
214 else 227 else
@@ -253,10 +266,10 @@ static int davinci_pcm_close(struct snd_pcm_substream *substream)
253 struct snd_pcm_runtime *runtime = substream->runtime; 266 struct snd_pcm_runtime *runtime = substream->runtime;
254 struct davinci_runtime_data *prtd = runtime->private_data; 267 struct davinci_runtime_data *prtd = runtime->private_data;
255 268
256 davinci_dma_unlink_lch(prtd->slave_lch, prtd->slave_lch); 269 edma_unlink(prtd->slave_lch);
257 270
258 davinci_free_dma(prtd->slave_lch); 271 edma_free_slot(prtd->slave_lch);
259 davinci_free_dma(prtd->master_lch); 272 edma_free_channel(prtd->master_lch);
260 273
261 kfree(prtd); 274 kfree(prtd);
262 275
diff --git a/sound/soc/fsl/mpc5200_psc_i2s.c b/sound/soc/fsl/mpc5200_psc_i2s.c
index 3aa729df27b5..1111c710118a 100644
--- a/sound/soc/fsl/mpc5200_psc_i2s.c
+++ b/sound/soc/fsl/mpc5200_psc_i2s.c
@@ -504,7 +504,8 @@ static struct snd_soc_dai psc_i2s_dai_template = {
504 504
505static const struct snd_pcm_hardware psc_i2s_pcm_hardware = { 505static const struct snd_pcm_hardware psc_i2s_pcm_hardware = {
506 .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | 506 .info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |
507 SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER, 507 SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER |
508 SNDRV_PCM_INFO_BATCH,
508 .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_BE | 509 .formats = SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_BE |
509 SNDRV_PCM_FMTBIT_S24_BE | SNDRV_PCM_FMTBIT_S32_BE, 510 SNDRV_PCM_FMTBIT_S24_BE | SNDRV_PCM_FMTBIT_S32_BE,
510 .rate_min = 8000, 511 .rate_min = 8000,
diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
index a6d1178ce128..91ef17992de5 100644
--- a/sound/soc/omap/n810.c
+++ b/sound/soc/omap/n810.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 2008 Nokia Corporation 4 * Copyright (C) 2008 Nokia Corporation
5 * 5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> 6 * Contact: Jarkko Nikula <jhnikula@gmail.com>
7 * 7 *
8 * This program is free software; you can redistribute it and/or 8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 9 * modify it under the terms of the GNU General Public License
@@ -417,6 +417,6 @@ static void __exit n810_soc_exit(void)
417module_init(n810_soc_init); 417module_init(n810_soc_init);
418module_exit(n810_soc_exit); 418module_exit(n810_soc_exit);
419 419
420MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); 420MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>");
421MODULE_DESCRIPTION("ALSA SoC Nokia N810"); 421MODULE_DESCRIPTION("ALSA SoC Nokia N810");
422MODULE_LICENSE("GPL"); 422MODULE_LICENSE("GPL");
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 9c09b94f0cf8..912614283848 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -3,7 +3,8 @@
3 * 3 *
4 * Copyright (C) 2008 Nokia Corporation 4 * Copyright (C) 2008 Nokia Corporation
5 * 5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> 6 * Contact: Jarkko Nikula <jhnikula@gmail.com>
7 * Peter Ujfalusi <peter.ujfalusi@nokia.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
@@ -283,7 +284,7 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
283 break; 284 break;
284 case SND_SOC_DAIFMT_DSP_B: 285 case SND_SOC_DAIFMT_DSP_B:
285 regs->srgr2 |= FPER(wlen * channels - 1); 286 regs->srgr2 |= FPER(wlen * channels - 1);
286 regs->srgr1 |= FWID(wlen * channels - 2); 287 regs->srgr1 |= FWID(0);
287 break; 288 break;
288 } 289 }
289 290
@@ -302,6 +303,7 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
302{ 303{
303 struct omap_mcbsp_data *mcbsp_data = to_mcbsp(cpu_dai->private_data); 304 struct omap_mcbsp_data *mcbsp_data = to_mcbsp(cpu_dai->private_data);
304 struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs; 305 struct omap_mcbsp_reg_cfg *regs = &mcbsp_data->regs;
306 unsigned int temp_fmt = fmt;
305 307
306 if (mcbsp_data->configured) 308 if (mcbsp_data->configured)
307 return 0; 309 return 0;
@@ -328,6 +330,8 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
328 /* 0-bit data delay */ 330 /* 0-bit data delay */
329 regs->rcr2 |= RDATDLY(0); 331 regs->rcr2 |= RDATDLY(0);
330 regs->xcr2 |= XDATDLY(0); 332 regs->xcr2 |= XDATDLY(0);
333 /* Invert FS polarity configuration */
334 temp_fmt ^= SND_SOC_DAIFMT_NB_IF;
331 break; 335 break;
332 default: 336 default:
333 /* Unsupported data format */ 337 /* Unsupported data format */
@@ -351,7 +355,7 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
351 } 355 }
352 356
353 /* Set bit clock (CLKX/CLKR) and FS polarities */ 357 /* Set bit clock (CLKX/CLKR) and FS polarities */
354 switch (fmt & SND_SOC_DAIFMT_INV_MASK) { 358 switch (temp_fmt & SND_SOC_DAIFMT_INV_MASK) {
355 case SND_SOC_DAIFMT_NB_NF: 359 case SND_SOC_DAIFMT_NB_NF:
356 /* 360 /*
357 * Normal BCLK + FS. 361 * Normal BCLK + FS.
@@ -529,6 +533,6 @@ static void __exit snd_omap_mcbsp_exit(void)
529} 533}
530module_exit(snd_omap_mcbsp_exit); 534module_exit(snd_omap_mcbsp_exit);
531 535
532MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); 536MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>");
533MODULE_DESCRIPTION("OMAP I2S SoC Interface"); 537MODULE_DESCRIPTION("OMAP I2S SoC Interface");
534MODULE_LICENSE("GPL"); 538MODULE_LICENSE("GPL");
diff --git a/sound/soc/omap/omap-mcbsp.h b/sound/soc/omap/omap-mcbsp.h
index df7ad13ba73d..c8147aace813 100644
--- a/sound/soc/omap/omap-mcbsp.h
+++ b/sound/soc/omap/omap-mcbsp.h
@@ -3,7 +3,8 @@
3 * 3 *
4 * Copyright (C) 2008 Nokia Corporation 4 * Copyright (C) 2008 Nokia Corporation
5 * 5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> 6 * Contact: Jarkko Nikula <jhnikula@gmail.com>
7 * Peter Ujfalusi <peter.ujfalusi@nokia.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
index 1bdbb0427183..07cf7f46b584 100644
--- a/sound/soc/omap/omap-pcm.c
+++ b/sound/soc/omap/omap-pcm.c
@@ -3,7 +3,8 @@
3 * 3 *
4 * Copyright (C) 2008 Nokia Corporation 4 * Copyright (C) 2008 Nokia Corporation
5 * 5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> 6 * Contact: Jarkko Nikula <jhnikula@gmail.com>
7 * Peter Ujfalusi <peter.ujfalusi@nokia.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
@@ -367,6 +368,6 @@ static void __exit omap_soc_platform_exit(void)
367} 368}
368module_exit(omap_soc_platform_exit); 369module_exit(omap_soc_platform_exit);
369 370
370MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@nokia.com>"); 371MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>");
371MODULE_DESCRIPTION("OMAP PCM DMA module"); 372MODULE_DESCRIPTION("OMAP PCM DMA module");
372MODULE_LICENSE("GPL"); 373MODULE_LICENSE("GPL");
diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h
index e4369bdfd77d..8d9d26916b05 100644
--- a/sound/soc/omap/omap-pcm.h
+++ b/sound/soc/omap/omap-pcm.h
@@ -3,7 +3,8 @@
3 * 3 *
4 * Copyright (C) 2008 Nokia Corporation 4 * Copyright (C) 2008 Nokia Corporation
5 * 5 *
6 * Contact: Jarkko Nikula <jarkko.nikula@nokia.com> 6 * Contact: Jarkko Nikula <jhnikula@gmail.com>
7 * Peter Ujfalusi <peter.ujfalusi@nokia.com>
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
diff --git a/sound/soc/omap/osk5912.c b/sound/soc/omap/osk5912.c
index a952a4eb3361..a4e149b7f0eb 100644
--- a/sound/soc/omap/osk5912.c
+++ b/sound/soc/omap/osk5912.c
@@ -62,7 +62,7 @@ static int osk_hw_params(struct snd_pcm_substream *substream,
62 /* Set codec DAI configuration */ 62 /* Set codec DAI configuration */
63 err = snd_soc_dai_set_fmt(codec_dai, 63 err = snd_soc_dai_set_fmt(codec_dai,
64 SND_SOC_DAIFMT_DSP_B | 64 SND_SOC_DAIFMT_DSP_B |
65 SND_SOC_DAIFMT_NB_IF | 65 SND_SOC_DAIFMT_NB_NF |
66 SND_SOC_DAIFMT_CBM_CFM); 66 SND_SOC_DAIFMT_CBM_CFM);
67 if (err < 0) { 67 if (err < 0) {
68 printk(KERN_ERR "can't set codec DAI configuration\n"); 68 printk(KERN_ERR "can't set codec DAI configuration\n");
@@ -72,7 +72,7 @@ static int osk_hw_params(struct snd_pcm_substream *substream,
72 /* Set cpu DAI configuration */ 72 /* Set cpu DAI configuration */
73 err = snd_soc_dai_set_fmt(cpu_dai, 73 err = snd_soc_dai_set_fmt(cpu_dai,
74 SND_SOC_DAIFMT_DSP_B | 74 SND_SOC_DAIFMT_DSP_B |
75 SND_SOC_DAIFMT_NB_IF | 75 SND_SOC_DAIFMT_NB_NF |
76 SND_SOC_DAIFMT_CBM_CFM); 76 SND_SOC_DAIFMT_CBM_CFM);
77 if (err < 0) { 77 if (err < 0) {
78 printk(KERN_ERR "can't set cpu DAI configuration\n"); 78 printk(KERN_ERR "can't set cpu DAI configuration\n");
diff --git a/sound/soc/pxa/magician.c b/sound/soc/pxa/magician.c
index f7c4544f7859..0625c342a1c9 100644
--- a/sound/soc/pxa/magician.c
+++ b/sound/soc/pxa/magician.c
@@ -27,8 +27,6 @@
27#include <sound/soc.h> 27#include <sound/soc.h>
28#include <sound/soc-dapm.h> 28#include <sound/soc-dapm.h>
29 29
30#include <mach/pxa-regs.h>
31#include <mach/hardware.h>
32#include <mach/magician.h> 30#include <mach/magician.h>
33#include <asm/mach-types.h> 31#include <asm/mach-types.h>
34#include "../codecs/uda1380.h" 32#include "../codecs/uda1380.h"
diff --git a/sound/soc/pxa/palm27x.c b/sound/soc/pxa/palm27x.c
index 48a73f64500b..44fcc4e01e08 100644
--- a/sound/soc/pxa/palm27x.c
+++ b/sound/soc/pxa/palm27x.c
@@ -200,7 +200,7 @@ static struct snd_soc_device palm27x_snd_devdata = {
200 200
201static struct platform_device *palm27x_snd_device; 201static struct platform_device *palm27x_snd_device;
202 202
203static int __init palm27x_asoc_init(void) 203static int palm27x_asoc_probe(struct platform_device *pdev)
204{ 204{
205 int ret; 205 int ret;
206 206
@@ -208,6 +208,10 @@ static int __init palm27x_asoc_init(void)
208 machine_is_palmld())) 208 machine_is_palmld()))
209 return -ENODEV; 209 return -ENODEV;
210 210
211 if (pdev->dev.platform_data)
212 palm27x_ep_gpio = ((struct palm27x_asoc_info *)
213 (pdev->dev.platform_data))->jack_gpio;
214
211 ret = gpio_request(palm27x_ep_gpio, "Headphone Jack"); 215 ret = gpio_request(palm27x_ep_gpio, "Headphone Jack");
212 if (ret) 216 if (ret)
213 return ret; 217 return ret;
@@ -245,16 +249,31 @@ err_alloc:
245 return ret; 249 return ret;
246} 250}
247 251
248static void __exit palm27x_asoc_exit(void) 252static int __devexit palm27x_asoc_remove(struct platform_device *pdev)
249{ 253{
250 free_irq(gpio_to_irq(palm27x_ep_gpio), NULL); 254 free_irq(gpio_to_irq(palm27x_ep_gpio), NULL);
251 gpio_free(palm27x_ep_gpio); 255 gpio_free(palm27x_ep_gpio);
252 platform_device_unregister(palm27x_snd_device); 256 platform_device_unregister(palm27x_snd_device);
257 return 0;
253} 258}
254 259
255void __init palm27x_asoc_set_pdata(struct palm27x_asoc_info *data) 260static struct platform_driver palm27x_wm9712_driver = {
261 .probe = palm27x_asoc_probe,
262 .remove = __devexit_p(palm27x_asoc_remove),
263 .driver = {
264 .name = "palm27x-asoc",
265 .owner = THIS_MODULE,
266 },
267};
268
269static int __init palm27x_asoc_init(void)
270{
271 return platform_driver_register(&palm27x_wm9712_driver);
272}
273
274static void __exit palm27x_asoc_exit(void)
256{ 275{
257 palm27x_ep_gpio = data->jack_gpio; 276 platform_driver_unregister(&palm27x_wm9712_driver);
258} 277}
259 278
260module_init(palm27x_asoc_init); 279module_init(palm27x_asoc_init);
diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c
index 308a657928d2..286be31545df 100644
--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@ -280,12 +280,33 @@ static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai)
280 * ssp_set_clkdiv - set SSP clock divider 280 * ssp_set_clkdiv - set SSP clock divider
281 * @div: serial clock rate divider 281 * @div: serial clock rate divider
282 */ 282 */
283static void ssp_set_scr(struct ssp_dev *dev, u32 div) 283static void ssp_set_scr(struct ssp_device *ssp, u32 div)
284{ 284{
285 struct ssp_device *ssp = dev->ssp; 285 u32 sscr0 = ssp_read_reg(ssp, SSCR0);
286 u32 sscr0 = ssp_read_reg(dev->ssp, SSCR0) & ~SSCR0_SCR; 286
287 if (cpu_is_pxa25x() && ssp->type == PXA25x_SSP) {
288 sscr0 &= ~0x0000ff00;
289 sscr0 |= ((div - 2)/2) << 8; /* 2..512 */
290 } else {
291 sscr0 &= ~0x000fff00;
292 sscr0 |= (div - 1) << 8; /* 1..4096 */
293 }
294 ssp_write_reg(ssp, SSCR0, sscr0);
295}
296
297/**
298 * ssp_get_clkdiv - get SSP clock divider
299 */
300static u32 ssp_get_scr(struct ssp_device *ssp)
301{
302 u32 sscr0 = ssp_read_reg(ssp, SSCR0);
303 u32 div;
287 304
288 ssp_write_reg(ssp, SSCR0, (sscr0 | SSCR0_SerClkDiv(div))); 305 if (cpu_is_pxa25x() && ssp->type == PXA25x_SSP)
306 div = ((sscr0 >> 8) & 0xff) * 2 + 2;
307 else
308 div = ((sscr0 >> 8) & 0xfff) + 1;
309 return div;
289} 310}
290 311
291/* 312/*
@@ -326,7 +347,7 @@ static int pxa_ssp_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
326 break; 347 break;
327 case PXA_SSP_CLK_AUDIO: 348 case PXA_SSP_CLK_AUDIO:
328 priv->sysclk = 0; 349 priv->sysclk = 0;
329 ssp_set_scr(&priv->dev, 1); 350 ssp_set_scr(ssp, 1);
330 sscr0 |= SSCR0_ACS; 351 sscr0 |= SSCR0_ACS;
331 break; 352 break;
332 default: 353 default:
@@ -387,7 +408,7 @@ static int pxa_ssp_set_dai_clkdiv(struct snd_soc_dai *cpu_dai,
387 ssp_write_reg(ssp, SSACD, val); 408 ssp_write_reg(ssp, SSACD, val);
388 break; 409 break;
389 case PXA_SSP_DIV_SCR: 410 case PXA_SSP_DIV_SCR:
390 ssp_set_scr(&priv->dev, div); 411 ssp_set_scr(ssp, div);
391 break; 412 break;
392 default: 413 default:
393 return -ENODEV; 414 return -ENODEV;
@@ -674,8 +695,7 @@ static int pxa_ssp_hw_params(struct snd_pcm_substream *substream,
674 case SND_SOC_DAIFMT_I2S: 695 case SND_SOC_DAIFMT_I2S:
675 sspsp = ssp_read_reg(ssp, SSPSP); 696 sspsp = ssp_read_reg(ssp, SSPSP);
676 697
677 if (((sscr0 & SSCR0_SCR) == SSCR0_SerClkDiv(4)) && 698 if ((ssp_get_scr(ssp) == 4) && (width == 16)) {
678 (width == 16)) {
679 /* This is a special case where the bitclk is 64fs 699 /* This is a special case where the bitclk is 64fs
680 * and we're not dealing with 2*32 bits of audio 700 * and we're not dealing with 2*32 bits of audio
681 * samples. 701 * samples.
@@ -806,6 +826,7 @@ static int pxa_ssp_probe(struct platform_device *pdev,
806 goto err_priv; 826 goto err_priv;
807 } 827 }
808 828
829 priv->dai_fmt = (unsigned int) -1;
809 dai->private_data = priv; 830 dai->private_data = priv;
810 831
811 return 0; 832 return 0;
diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig
index 2f3a21eee051..df494d1e346f 100644
--- a/sound/soc/s3c24xx/Kconfig
+++ b/sound/soc/s3c24xx/Kconfig
@@ -1,10 +1,10 @@
1config SND_S3C24XX_SOC 1config SND_S3C24XX_SOC
2 tristate "SoC Audio for the Samsung S3CXXXX chips" 2 tristate "SoC Audio for the Samsung S3CXXXX chips"
3 depends on ARCH_S3C2410 || ARCH_S3C64XX 3 depends on ARCH_S3C2410
4 help 4 help
5 Say Y or M if you want to add support for codecs attached to 5 Say Y or M if you want to add support for codecs attached to
6 the S3C24XX and S3C64XX AC97, I2S or SSP interface. You will 6 the S3C24XX AC97 or I2S interfaces. You will also need to
7 also need to select the audio interfaces to support below. 7 select the audio interfaces to support below.
8 8
9config SND_S3C24XX_SOC_I2S 9config SND_S3C24XX_SOC_I2S
10 tristate 10 tristate
diff --git a/sound/soc/s3c24xx/jive_wm8750.c b/sound/soc/s3c24xx/jive_wm8750.c
index 32063790d95b..93e6c87b7399 100644
--- a/sound/soc/s3c24xx/jive_wm8750.c
+++ b/sound/soc/s3c24xx/jive_wm8750.c
@@ -69,8 +69,8 @@ static int jive_hw_params(struct snd_pcm_substream *substream,
69 break; 69 break;
70 } 70 }
71 71
72 s3c_i2sv2_calc_rate(&div, NULL, params_rate(params), 72 s3c_i2sv2_iis_calc_rate(&div, NULL, params_rate(params),
73 s3c2412_get_iisclk()); 73 s3c2412_get_iisclk());
74 74
75 /* set codec DAI configuration */ 75 /* set codec DAI configuration */
76 ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S | 76 ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
@@ -145,8 +145,9 @@ static struct snd_soc_dai_link jive_dai = {
145}; 145};
146 146
147/* jive audio machine driver */ 147/* jive audio machine driver */
148static struct snd_soc_machine snd_soc_machine_jive = { 148static struct snd_soc_card snd_soc_machine_jive = {
149 .name = "Jive", 149 .name = "Jive",
150 .platform = &s3c24xx_soc_platform,
150 .dai_link = &jive_dai, 151 .dai_link = &jive_dai,
151 .num_links = 1, 152 .num_links = 1,
152}; 153};
@@ -157,9 +158,8 @@ static struct wm8750_setup_data jive_wm8750_setup = {
157 158
158/* jive audio subsystem */ 159/* jive audio subsystem */
159static struct snd_soc_device jive_snd_devdata = { 160static struct snd_soc_device jive_snd_devdata = {
160 .machine = &snd_soc_machine_jive, 161 .card = &snd_soc_machine_jive,
161 .platform = &s3c24xx_soc_platform, 162 .codec_dev = &soc_codec_dev_wm8750,
162 .codec_dev = &soc_codec_dev_wm8750_spi,
163 .codec_data = &jive_wm8750_setup, 163 .codec_data = &jive_wm8750_setup,
164}; 164};
165 165
diff --git a/sound/soc/s3c24xx/s3c-i2s-v2.c b/sound/soc/s3c24xx/s3c-i2s-v2.c
index 295a4c910262..ab680aac3fcb 100644
--- a/sound/soc/s3c24xx/s3c-i2s-v2.c
+++ b/sound/soc/s3c24xx/s3c-i2s-v2.c
@@ -473,9 +473,9 @@ static int s3c2412_i2s_set_clkdiv(struct snd_soc_dai *cpu_dai,
473/* default table of all avaialable root fs divisors */ 473/* default table of all avaialable root fs divisors */
474static unsigned int iis_fs_tab[] = { 256, 512, 384, 768 }; 474static unsigned int iis_fs_tab[] = { 256, 512, 384, 768 };
475 475
476int s3c2412_iis_calc_rate(struct s3c_i2sv2_rate_calc *info, 476int s3c_i2sv2_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,
477 unsigned int *fstab, 477 unsigned int *fstab,
478 unsigned int rate, struct clk *clk) 478 unsigned int rate, struct clk *clk)
479{ 479{
480 unsigned long clkrate = clk_get_rate(clk); 480 unsigned long clkrate = clk_get_rate(clk);
481 unsigned int div; 481 unsigned int div;
@@ -531,7 +531,7 @@ int s3c2412_iis_calc_rate(struct s3c_i2sv2_rate_calc *info,
531 531
532 return 0; 532 return 0;
533} 533}
534EXPORT_SYMBOL_GPL(s3c2412_iis_calc_rate); 534EXPORT_SYMBOL_GPL(s3c_i2sv2_iis_calc_rate);
535 535
536int s3c_i2sv2_probe(struct platform_device *pdev, 536int s3c_i2sv2_probe(struct platform_device *pdev,
537 struct snd_soc_dai *dai, 537 struct snd_soc_dai *dai,
@@ -624,15 +624,18 @@ static int s3c2412_i2s_resume(struct snd_soc_dai *dai)
624 624
625int s3c_i2sv2_register_dai(struct snd_soc_dai *dai) 625int s3c_i2sv2_register_dai(struct snd_soc_dai *dai)
626{ 626{
627 dai->ops.trigger = s3c2412_i2s_trigger; 627 struct snd_soc_dai_ops *ops = dai->ops;
628 dai->ops.hw_params = s3c2412_i2s_hw_params; 628
629 dai->ops.set_fmt = s3c2412_i2s_set_fmt; 629 ops->trigger = s3c2412_i2s_trigger;
630 dai->ops.set_clkdiv = s3c2412_i2s_set_clkdiv; 630 ops->hw_params = s3c2412_i2s_hw_params;
631 ops->set_fmt = s3c2412_i2s_set_fmt;
632 ops->set_clkdiv = s3c2412_i2s_set_clkdiv;
631 633
632 dai->suspend = s3c2412_i2s_suspend; 634 dai->suspend = s3c2412_i2s_suspend;
633 dai->resume = s3c2412_i2s_resume; 635 dai->resume = s3c2412_i2s_resume;
634 636
635 return snd_soc_register_dai(dai); 637 return snd_soc_register_dai(dai);
636} 638}
637
638EXPORT_SYMBOL_GPL(s3c_i2sv2_register_dai); 639EXPORT_SYMBOL_GPL(s3c_i2sv2_register_dai);
640
641MODULE_LICENSE("GPL");
diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c
index 1ca3cdaa8213..b7e0b3f0bfc8 100644
--- a/sound/soc/s3c24xx/s3c2412-i2s.c
+++ b/sound/soc/s3c24xx/s3c2412-i2s.c
@@ -33,8 +33,8 @@
33 33
34#include <plat/regs-s3c2412-iis.h> 34#include <plat/regs-s3c2412-iis.h>
35 35
36#include <plat/regs-gpio.h>
37#include <plat/audio.h> 36#include <plat/audio.h>
37#include <mach/regs-gpio.h>
38#include <mach/dma.h> 38#include <mach/dma.h>
39 39
40#include "s3c24xx-pcm.h" 40#include "s3c24xx-pcm.h"
diff --git a/sound/soc/sh/dma-sh7760.c b/sound/soc/sh/dma-sh7760.c
index 0dad3a0bb920..baddb1242c71 100644
--- a/sound/soc/sh/dma-sh7760.c
+++ b/sound/soc/sh/dma-sh7760.c
@@ -103,7 +103,8 @@ static struct snd_pcm_hardware camelot_pcm_hardware = {
103 .info = (SNDRV_PCM_INFO_MMAP | 103 .info = (SNDRV_PCM_INFO_MMAP |
104 SNDRV_PCM_INFO_INTERLEAVED | 104 SNDRV_PCM_INFO_INTERLEAVED |
105 SNDRV_PCM_INFO_BLOCK_TRANSFER | 105 SNDRV_PCM_INFO_BLOCK_TRANSFER |
106 SNDRV_PCM_INFO_MMAP_VALID), 106 SNDRV_PCM_INFO_MMAP_VALID |
107 SNDRV_PCM_INFO_BATCH),
107 .formats = DMABRG_FMTS, 108 .formats = DMABRG_FMTS,
108 .rates = DMABRG_RATES, 109 .rates = DMABRG_RATES,
109 .rate_min = 8000, 110 .rate_min = 8000,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 99712f652d0d..1cd149b9ce69 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -954,6 +954,9 @@ static int soc_remove(struct platform_device *pdev)
954 struct snd_soc_platform *platform = card->platform; 954 struct snd_soc_platform *platform = card->platform;
955 struct snd_soc_codec_device *codec_dev = socdev->codec_dev; 955 struct snd_soc_codec_device *codec_dev = socdev->codec_dev;
956 956
957 if (!card->instantiated)
958 return 0;
959
957 run_delayed_work(&card->delayed_work); 960 run_delayed_work(&card->delayed_work);
958 961
959 if (platform->remove) 962 if (platform->remove)
diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c
index af95ff1e126c..1d2e51b3f918 100644
--- a/sound/sparc/dbri.c
+++ b/sound/sparc/dbri.c
@@ -1975,7 +1975,8 @@ static struct snd_pcm_hardware snd_dbri_pcm_hw = {
1975 .info = SNDRV_PCM_INFO_MMAP | 1975 .info = SNDRV_PCM_INFO_MMAP |
1976 SNDRV_PCM_INFO_INTERLEAVED | 1976 SNDRV_PCM_INFO_INTERLEAVED |
1977 SNDRV_PCM_INFO_BLOCK_TRANSFER | 1977 SNDRV_PCM_INFO_BLOCK_TRANSFER |
1978 SNDRV_PCM_INFO_MMAP_VALID, 1978 SNDRV_PCM_INFO_MMAP_VALID |
1979 SNDRV_PCM_INFO_BATCH,
1979 .formats = SNDRV_PCM_FMTBIT_MU_LAW | 1980 .formats = SNDRV_PCM_FMTBIT_MU_LAW |
1980 SNDRV_PCM_FMTBIT_A_LAW | 1981 SNDRV_PCM_FMTBIT_A_LAW |
1981 SNDRV_PCM_FMTBIT_U8 | 1982 SNDRV_PCM_FMTBIT_U8 |
diff --git a/sound/usb/caiaq/Makefile b/sound/usb/caiaq/Makefile
index 23dadd5a11cd..388999653aaa 100644
--- a/sound/usb/caiaq/Makefile
+++ b/sound/usb/caiaq/Makefile
@@ -1,4 +1,4 @@
1snd-usb-caiaq-y := caiaq-device.o caiaq-audio.o caiaq-midi.o caiaq-control.o 1snd-usb-caiaq-y := device.o audio.o midi.o control.o
2snd-usb-caiaq-$(CONFIG_SND_USB_CAIAQ_INPUT) += caiaq-input.o 2snd-usb-caiaq-$(CONFIG_SND_USB_CAIAQ_INPUT) += input.o
3 3
4obj-$(CONFIG_SND_USB_CAIAQ) += snd-usb-caiaq.o 4obj-$(CONFIG_SND_USB_CAIAQ) += snd-usb-caiaq.o
diff --git a/sound/usb/caiaq/caiaq-audio.c b/sound/usb/caiaq/audio.c
index 08d51e0c9fea..b13ce767ac72 100644
--- a/sound/usb/caiaq/caiaq-audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -16,20 +16,14 @@
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/ 17*/
18 18
19#include <linux/spinlock.h>
19#include <linux/init.h> 20#include <linux/init.h>
20#include <linux/module.h>
21#include <linux/moduleparam.h>
22#include <linux/interrupt.h>
23#include <linux/usb.h> 21#include <linux/usb.h>
24#include <linux/spinlock.h>
25#include <sound/core.h> 22#include <sound/core.h>
26#include <sound/initval.h>
27#include <sound/pcm.h> 23#include <sound/pcm.h>
28#include <sound/rawmidi.h>
29#include <linux/input.h>
30 24
31#include "caiaq-device.h" 25#include "device.h"
32#include "caiaq-audio.h" 26#include "audio.h"
33 27
34#define N_URBS 32 28#define N_URBS 32
35#define CLOCK_DRIFT_TOLERANCE 5 29#define CLOCK_DRIFT_TOLERANCE 5
@@ -201,11 +195,14 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
201 195
202 debug("%s(%p)\n", __func__, substream); 196 debug("%s(%p)\n", __func__, substream);
203 197
204 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 198 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
199 dev->period_out_count[index] = BYTES_PER_SAMPLE + 1;
205 dev->audio_out_buf_pos[index] = BYTES_PER_SAMPLE + 1; 200 dev->audio_out_buf_pos[index] = BYTES_PER_SAMPLE + 1;
206 else 201 } else {
202 dev->period_in_count[index] = BYTES_PER_SAMPLE;
207 dev->audio_in_buf_pos[index] = BYTES_PER_SAMPLE; 203 dev->audio_in_buf_pos[index] = BYTES_PER_SAMPLE;
208 204 }
205
209 if (dev->streaming) 206 if (dev->streaming)
210 return 0; 207 return 0;
211 208
@@ -306,8 +303,7 @@ static void check_for_elapsed_periods(struct snd_usb_caiaqdev *dev,
306 if (!sub) 303 if (!sub)
307 continue; 304 continue;
308 305
309 pb = frames_to_bytes(sub->runtime, 306 pb = snd_pcm_lib_period_bytes(sub);
310 sub->runtime->period_size);
311 cnt = (sub->stream == SNDRV_PCM_STREAM_PLAYBACK) ? 307 cnt = (sub->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
312 &dev->period_out_count[stream] : 308 &dev->period_out_count[stream] :
313 &dev->period_in_count[stream]; 309 &dev->period_in_count[stream];
diff --git a/sound/usb/caiaq/caiaq-audio.h b/sound/usb/caiaq/audio.h
index 8ab1f8d9529e..8ab1f8d9529e 100644
--- a/sound/usb/caiaq/caiaq-audio.h
+++ b/sound/usb/caiaq/audio.h
diff --git a/sound/usb/caiaq/caiaq-control.c b/sound/usb/caiaq/control.c
index e92c2bbf4fe9..537102ba6b9d 100644
--- a/sound/usb/caiaq/caiaq-control.c
+++ b/sound/usb/caiaq/control.c
@@ -18,17 +18,13 @@
18 */ 18 */
19 19
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/interrupt.h>
22#include <linux/usb.h> 21#include <linux/usb.h>
22#include <sound/control.h>
23#include <sound/core.h> 23#include <sound/core.h>
24#include <sound/initval.h>
25#include <sound/pcm.h> 24#include <sound/pcm.h>
26#include <sound/rawmidi.h>
27#include <sound/control.h>
28#include <linux/input.h>
29 25
30#include "caiaq-device.h" 26#include "device.h"
31#include "caiaq-control.h" 27#include "control.h"
32 28
33#define CNT_INTVAL 0x10000 29#define CNT_INTVAL 0x10000
34 30
diff --git a/sound/usb/caiaq/caiaq-control.h b/sound/usb/caiaq/control.h
index 2e7ab1aa4fb3..2e7ab1aa4fb3 100644
--- a/sound/usb/caiaq/caiaq-control.h
+++ b/sound/usb/caiaq/control.h
diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/device.c
index cf573a982fdc..515de1cd2a3e 100644
--- a/sound/usb/caiaq/caiaq-device.c
+++ b/sound/usb/caiaq/device.c
@@ -19,30 +19,23 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20*/ 20*/
21 21
22#include <linux/init.h>
23#include <linux/module.h>
24#include <linux/moduleparam.h> 22#include <linux/moduleparam.h>
25#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/module.h>
25#include <linux/init.h>
26#include <linux/usb.h> 26#include <linux/usb.h>
27#include <linux/input.h>
28#include <linux/spinlock.h>
29#include <sound/core.h>
30#include <sound/initval.h> 27#include <sound/initval.h>
28#include <sound/core.h>
31#include <sound/pcm.h> 29#include <sound/pcm.h>
32#include <sound/rawmidi.h>
33#include <sound/control.h>
34
35#include "caiaq-device.h"
36#include "caiaq-audio.h"
37#include "caiaq-midi.h"
38#include "caiaq-control.h"
39 30
40#ifdef CONFIG_SND_USB_CAIAQ_INPUT 31#include "device.h"
41#include "caiaq-input.h" 32#include "audio.h"
42#endif 33#include "midi.h"
34#include "control.h"
35#include "input.h"
43 36
44MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>"); 37MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>");
45MODULE_DESCRIPTION("caiaq USB audio, version 1.3.13"); 38MODULE_DESCRIPTION("caiaq USB audio, version 1.3.14");
46MODULE_LICENSE("GPL"); 39MODULE_LICENSE("GPL");
47MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2}," 40MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2},"
48 "{Native Instruments, RigKontrol3}," 41 "{Native Instruments, RigKontrol3},"
diff --git a/sound/usb/caiaq/caiaq-device.h b/sound/usb/caiaq/device.h
index 4cce1ad7493d..4cce1ad7493d 100644
--- a/sound/usb/caiaq/caiaq-device.h
+++ b/sound/usb/caiaq/device.h
diff --git a/sound/usb/caiaq/caiaq-input.c b/sound/usb/caiaq/input.c
index f743847a5e5a..a48d309bd94c 100644
--- a/sound/usb/caiaq/caiaq-input.c
+++ b/sound/usb/caiaq/input.c
@@ -17,17 +17,12 @@
17*/ 17*/
18 18
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/module.h>
21#include <linux/moduleparam.h>
22#include <linux/input.h>
23#include <linux/usb.h> 20#include <linux/usb.h>
24#include <linux/usb/input.h> 21#include <linux/usb/input.h>
25#include <linux/spinlock.h>
26#include <sound/core.h>
27#include <sound/rawmidi.h>
28#include <sound/pcm.h> 22#include <sound/pcm.h>
29#include "caiaq-device.h" 23
30#include "caiaq-input.h" 24#include "device.h"
25#include "input.h"
31 26
32static unsigned short keycode_ak1[] = { KEY_C, KEY_B, KEY_A }; 27static unsigned short keycode_ak1[] = { KEY_C, KEY_B, KEY_A };
33static unsigned short keycode_rk2[] = { KEY_1, KEY_2, KEY_3, KEY_4, 28static unsigned short keycode_rk2[] = { KEY_1, KEY_2, KEY_3, KEY_4,
diff --git a/sound/usb/caiaq/caiaq-input.h b/sound/usb/caiaq/input.h
index ced535577864..ced535577864 100644
--- a/sound/usb/caiaq/caiaq-input.h
+++ b/sound/usb/caiaq/input.h
diff --git a/sound/usb/caiaq/caiaq-midi.c b/sound/usb/caiaq/midi.c
index f19fd360c936..8fa8cd88d763 100644
--- a/sound/usb/caiaq/caiaq-midi.c
+++ b/sound/usb/caiaq/midi.c
@@ -16,20 +16,13 @@
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/ 17*/
18 18
19#include <linux/init.h>
20#include <linux/module.h>
21#include <linux/moduleparam.h>
22#include <linux/interrupt.h>
23#include <linux/usb.h> 19#include <linux/usb.h>
24#include <linux/input.h>
25#include <linux/spinlock.h>
26#include <sound/core.h>
27#include <sound/rawmidi.h> 20#include <sound/rawmidi.h>
21#include <sound/core.h>
28#include <sound/pcm.h> 22#include <sound/pcm.h>
29 23
30#include "caiaq-device.h" 24#include "device.h"
31#include "caiaq-midi.h" 25#include "midi.h"
32
33 26
34static int snd_usb_caiaq_midi_input_open(struct snd_rawmidi_substream *substream) 27static int snd_usb_caiaq_midi_input_open(struct snd_rawmidi_substream *substream)
35{ 28{
diff --git a/sound/usb/caiaq/caiaq-midi.h b/sound/usb/caiaq/midi.h
index 9d16db027fc3..9d16db027fc3 100644
--- a/sound/usb/caiaq/caiaq-midi.h
+++ b/sound/usb/caiaq/midi.h
diff --git a/sound/usb/usx2y/us122l.c b/sound/usb/usx2y/us122l.c
index 98276aafefe6..a5aae9d67f31 100644
--- a/sound/usb/usx2y/us122l.c
+++ b/sound/usb/usx2y/us122l.c
@@ -349,14 +349,10 @@ static int usb_stream_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
349 if (cmd != SNDRV_USB_STREAM_IOCTL_SET_PARAMS) 349 if (cmd != SNDRV_USB_STREAM_IOCTL_SET_PARAMS)
350 return -ENOTTY; 350 return -ENOTTY;
351 351
352 cfg = kmalloc(sizeof(*cfg), GFP_KERNEL); 352 cfg = memdup_user((void *)arg, sizeof(*cfg));
353 if (!cfg) 353 if (IS_ERR(cfg))
354 return -ENOMEM; 354 return PTR_ERR(cfg);
355 355
356 if (copy_from_user(cfg, (void *)arg, sizeof(*cfg))) {
357 err = -EFAULT;
358 goto free;
359 }
360 if (cfg->version != USB_STREAM_INTERFACE_VERSION) { 356 if (cfg->version != USB_STREAM_INTERFACE_VERSION) {
361 err = -ENXIO; 357 err = -ENXIO;
362 goto free; 358 goto free;
@@ -478,6 +474,14 @@ static bool us122l_create_card(struct snd_card *card)
478 return true; 474 return true;
479} 475}
480 476
477static void snd_us122l_free(struct snd_card *card)
478{
479 struct us122l *us122l = US122L(card);
480 int index = us122l->chip.index;
481 if (index >= 0 && index < SNDRV_CARDS)
482 snd_us122l_card_used[index] = 0;
483}
484
481static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp) 485static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp)
482{ 486{
483 int dev; 487 int dev;
@@ -494,7 +498,7 @@ static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp)
494 if (err < 0) 498 if (err < 0)
495 return err; 499 return err;
496 snd_us122l_card_used[US122L(card)->chip.index = dev] = 1; 500 snd_us122l_card_used[US122L(card)->chip.index = dev] = 1;
497 501 card->private_free = snd_us122l_free;
498 US122L(card)->chip.dev = device; 502 US122L(card)->chip.dev = device;
499 US122L(card)->chip.card = card; 503 US122L(card)->chip.card = card;
500 mutex_init(&US122L(card)->mutex); 504 mutex_init(&US122L(card)->mutex);
@@ -588,7 +592,7 @@ static void snd_us122l_disconnect(struct usb_interface *intf)
588 } 592 }
589 593
590 usb_put_intf(intf); 594 usb_put_intf(intf);
591 usb_put_dev(US122L(card)->chip.dev); 595 usb_put_dev(us122l->chip.dev);
592 596
593 while (atomic_read(&us122l->mmap_count)) 597 while (atomic_read(&us122l->mmap_count))
594 msleep(500); 598 msleep(500);
diff --git a/sound/usb/usx2y/usX2Yhwdep.c b/sound/usb/usx2y/usX2Yhwdep.c
index 4af8740db717..f3d8f71265dd 100644
--- a/sound/usb/usx2y/usX2Yhwdep.c
+++ b/sound/usb/usx2y/usX2Yhwdep.c
@@ -203,13 +203,12 @@ static int snd_usX2Y_hwdep_dsp_load(struct snd_hwdep *hw,
203 203
204 if (access_ok(VERIFY_READ, dsp->image, dsp->length)) { 204 if (access_ok(VERIFY_READ, dsp->image, dsp->length)) {
205 struct usb_device* dev = priv->chip.dev; 205 struct usb_device* dev = priv->chip.dev;
206 char *buf = kmalloc(dsp->length, GFP_KERNEL); 206 char *buf;
207 if (!buf) 207
208 return -ENOMEM; 208 buf = memdup_user(dsp->image, dsp->length);
209 if (copy_from_user(buf, dsp->image, dsp->length)) { 209 if (IS_ERR(buf))
210 kfree(buf); 210 return PTR_ERR(buf);
211 return -EFAULT; 211
212 }
213 err = usb_set_interface(dev, 0, 1); 212 err = usb_set_interface(dev, 0, 1);
214 if (err) 213 if (err)
215 snd_printk(KERN_ERR "usb_set_interface error \n"); 214 snd_printk(KERN_ERR "usb_set_interface error \n");
diff --git a/sound/usb/usx2y/usb_stream.c b/sound/usb/usx2y/usb_stream.c
index 24393dafcb6e..12ae0340adc0 100644
--- a/sound/usb/usx2y/usb_stream.c
+++ b/sound/usb/usx2y/usb_stream.c
@@ -33,32 +33,26 @@ static unsigned usb_stream_next_packet_size(struct usb_stream_kernel *sk)
33static void playback_prep_freqn(struct usb_stream_kernel *sk, struct urb *urb) 33static void playback_prep_freqn(struct usb_stream_kernel *sk, struct urb *urb)
34{ 34{
35 struct usb_stream *s = sk->s; 35 struct usb_stream *s = sk->s;
36 unsigned l = 0; 36 int pack, lb = 0;
37 int pack; 37
38 38 for (pack = 0; pack < sk->n_o_ps; pack++) {
39 urb->iso_frame_desc[0].offset = 0; 39 int l = usb_stream_next_packet_size(sk);
40 urb->iso_frame_desc[0].length = usb_stream_next_packet_size(sk); 40 if (s->idle_outsize + lb + l > s->period_size)
41 sk->out_phase = sk->out_phase_peeked;
42 urb->transfer_buffer_length = urb->iso_frame_desc[0].length;
43
44 for (pack = 1; pack < sk->n_o_ps; pack++) {
45 l = usb_stream_next_packet_size(sk);
46 if (s->idle_outsize + urb->transfer_buffer_length + l >
47 s->period_size)
48 goto check; 41 goto check;
49 42
50 sk->out_phase = sk->out_phase_peeked; 43 sk->out_phase = sk->out_phase_peeked;
51 urb->iso_frame_desc[pack].offset = urb->transfer_buffer_length; 44 urb->iso_frame_desc[pack].offset = lb;
52 urb->iso_frame_desc[pack].length = l; 45 urb->iso_frame_desc[pack].length = l;
53 urb->transfer_buffer_length += l; 46 lb += l;
54 } 47 }
55 snd_printdd(KERN_DEBUG "%i\n", urb->transfer_buffer_length); 48 snd_printdd(KERN_DEBUG "%i\n", lb);
56 49
57check: 50check:
58 urb->number_of_packets = pack; 51 urb->number_of_packets = pack;
59 s->idle_outsize += urb->transfer_buffer_length - s->period_size; 52 urb->transfer_buffer_length = lb;
53 s->idle_outsize += lb - s->period_size;
60 snd_printdd(KERN_DEBUG "idle=%i ul=%i ps=%i\n", s->idle_outsize, 54 snd_printdd(KERN_DEBUG "idle=%i ul=%i ps=%i\n", s->idle_outsize,
61 urb->transfer_buffer_length, s->period_size); 55 lb, s->period_size);
62} 56}
63 57
64static void init_pipe_urbs(struct usb_stream_kernel *sk, unsigned use_packsize, 58static void init_pipe_urbs(struct usb_stream_kernel *sk, unsigned use_packsize,
@@ -282,21 +276,20 @@ static int usb_stream_prepare_playback(struct usb_stream_kernel *sk,
282 struct usb_stream *s = sk->s; 276 struct usb_stream *s = sk->s;
283 struct urb *io; 277 struct urb *io;
284 struct usb_iso_packet_descriptor *id, *od; 278 struct usb_iso_packet_descriptor *id, *od;
285 int p, l = 0; 279 int p = 0, lb = 0, l = 0;
286 280
287 io = sk->idle_outurb; 281 io = sk->idle_outurb;
288 od = io->iso_frame_desc; 282 od = io->iso_frame_desc;
289 io->transfer_buffer_length = 0;
290 283
291 for (p = 0; s->sync_packet < 0; ++p, ++s->sync_packet) { 284 for (; s->sync_packet < 0; ++p, ++s->sync_packet) {
292 struct urb *ii = sk->completed_inurb; 285 struct urb *ii = sk->completed_inurb;
293 id = ii->iso_frame_desc + 286 id = ii->iso_frame_desc +
294 ii->number_of_packets + s->sync_packet; 287 ii->number_of_packets + s->sync_packet;
295 l = id->actual_length; 288 l = id->actual_length;
296 289
297 od[p].length = l; 290 od[p].length = l;
298 od[p].offset = io->transfer_buffer_length; 291 od[p].offset = lb;
299 io->transfer_buffer_length += l; 292 lb += l;
300 } 293 }
301 294
302 for (; 295 for (;
@@ -304,38 +297,38 @@ static int usb_stream_prepare_playback(struct usb_stream_kernel *sk,
304 ++p, ++s->sync_packet) { 297 ++p, ++s->sync_packet) {
305 l = inurb->iso_frame_desc[s->sync_packet].actual_length; 298 l = inurb->iso_frame_desc[s->sync_packet].actual_length;
306 299
307 if (s->idle_outsize + io->transfer_buffer_length + l > 300 if (s->idle_outsize + lb + l > s->period_size)
308 s->period_size)
309 goto check_ok; 301 goto check_ok;
310 302
311 od[p].length = l; 303 od[p].length = l;
312 od[p].offset = io->transfer_buffer_length; 304 od[p].offset = lb;
313 io->transfer_buffer_length += l; 305 lb += l;
314 } 306 }
315 307
316check_ok: 308check_ok:
317 s->sync_packet -= inurb->number_of_packets; 309 s->sync_packet -= inurb->number_of_packets;
318 if (s->sync_packet < -2 || s->sync_packet > 0) { 310 if (unlikely(s->sync_packet < -2 || s->sync_packet > 0)) {
319 snd_printk(KERN_WARNING "invalid sync_packet = %i;" 311 snd_printk(KERN_WARNING "invalid sync_packet = %i;"
320 " p=%i nop=%i %i %x %x %x > %x\n", 312 " p=%i nop=%i %i %x %x %x > %x\n",
321 s->sync_packet, p, inurb->number_of_packets, 313 s->sync_packet, p, inurb->number_of_packets,
322 s->idle_outsize + io->transfer_buffer_length + l, 314 s->idle_outsize + lb + l,
323 s->idle_outsize, io->transfer_buffer_length, l, 315 s->idle_outsize, lb, l,
324 s->period_size); 316 s->period_size);
325 return -1; 317 return -1;
326 } 318 }
327 if (io->transfer_buffer_length % s->cfg.frame_size) { 319 if (unlikely(lb % s->cfg.frame_size)) {
328 snd_printk(KERN_WARNING"invalid outsize = %i\n", 320 snd_printk(KERN_WARNING"invalid outsize = %i\n",
329 io->transfer_buffer_length); 321 lb);
330 return -1; 322 return -1;
331 } 323 }
332 s->idle_outsize += io->transfer_buffer_length - s->period_size; 324 s->idle_outsize += lb - s->period_size;
333 io->number_of_packets = p; 325 io->number_of_packets = p;
334 if (s->idle_outsize > 0) { 326 io->transfer_buffer_length = lb;
335 snd_printk(KERN_WARNING "idle=%i\n", s->idle_outsize); 327 if (s->idle_outsize <= 0)
336 return -1; 328 return 0;
337 } 329
338 return 0; 330 snd_printk(KERN_WARNING "idle=%i\n", s->idle_outsize);
331 return -1;
339} 332}
340 333
341static void prepare_inurb(int number_of_packets, struct urb *iu) 334static void prepare_inurb(int number_of_packets, struct urb *iu)
diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
index 9a608fa85155..dd1ab6177840 100644
--- a/sound/usb/usx2y/usbusx2yaudio.c
+++ b/sound/usb/usx2y/usbusx2yaudio.c
@@ -870,7 +870,8 @@ static struct snd_pcm_hardware snd_usX2Y_2c =
870{ 870{
871 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 871 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
872 SNDRV_PCM_INFO_BLOCK_TRANSFER | 872 SNDRV_PCM_INFO_BLOCK_TRANSFER |
873 SNDRV_PCM_INFO_MMAP_VALID), 873 SNDRV_PCM_INFO_MMAP_VALID |
874 SNDRV_PCM_INFO_BATCH),
874 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE, 875 .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_3LE,
875 .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000, 876 .rates = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
876 .rate_min = 44100, 877 .rate_min = 44100,
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 605697e9c4dd..1ecbe2391c8b 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -920,6 +920,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
920 int r; 920 int r;
921 gfn_t base_gfn; 921 gfn_t base_gfn;
922 unsigned long npages; 922 unsigned long npages;
923 int largepages;
923 unsigned long i; 924 unsigned long i;
924 struct kvm_memory_slot *memslot; 925 struct kvm_memory_slot *memslot;
925 struct kvm_memory_slot old, new; 926 struct kvm_memory_slot old, new;
@@ -960,7 +961,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
960 for (i = 0; i < KVM_MEMORY_SLOTS; ++i) { 961 for (i = 0; i < KVM_MEMORY_SLOTS; ++i) {
961 struct kvm_memory_slot *s = &kvm->memslots[i]; 962 struct kvm_memory_slot *s = &kvm->memslots[i];
962 963
963 if (s == memslot) 964 if (s == memslot || !s->npages)
964 continue; 965 continue;
965 if (!((base_gfn + npages <= s->base_gfn) || 966 if (!((base_gfn + npages <= s->base_gfn) ||
966 (base_gfn >= s->base_gfn + s->npages))) 967 (base_gfn >= s->base_gfn + s->npages)))
@@ -995,11 +996,8 @@ int __kvm_set_memory_region(struct kvm *kvm,
995 new.userspace_addr = 0; 996 new.userspace_addr = 0;
996 } 997 }
997 if (npages && !new.lpage_info) { 998 if (npages && !new.lpage_info) {
998 int largepages = npages / KVM_PAGES_PER_HPAGE; 999 largepages = 1 + (base_gfn + npages - 1) / KVM_PAGES_PER_HPAGE;
999 if (npages % KVM_PAGES_PER_HPAGE) 1000 largepages -= base_gfn / KVM_PAGES_PER_HPAGE;
1000 largepages++;
1001 if (base_gfn % KVM_PAGES_PER_HPAGE)
1002 largepages++;
1003 1001
1004 new.lpage_info = vmalloc(largepages * sizeof(*new.lpage_info)); 1002 new.lpage_info = vmalloc(largepages * sizeof(*new.lpage_info));
1005 1003
@@ -1985,6 +1983,7 @@ static long kvm_dev_ioctl_check_extension_generic(long arg)
1985 switch (arg) { 1983 switch (arg) {
1986 case KVM_CAP_USER_MEMORY: 1984 case KVM_CAP_USER_MEMORY:
1987 case KVM_CAP_DESTROY_MEMORY_REGION_WORKS: 1985 case KVM_CAP_DESTROY_MEMORY_REGION_WORKS:
1986 case KVM_CAP_JOIN_MEMORY_REGIONS_WORKS:
1988 return 1; 1987 return 1;
1989#ifdef CONFIG_HAVE_KVM_IRQCHIP 1988#ifdef CONFIG_HAVE_KVM_IRQCHIP
1990 case KVM_CAP_IRQ_ROUTING: 1989 case KVM_CAP_IRQ_ROUTING: